react-semaphor 0.1.478 → 0.1.479

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 (39) hide show
  1. package/dist/brand-studio/index.cjs +1 -1
  2. package/dist/brand-studio/index.js +1 -1
  3. package/dist/chunks/{dashboard-briefing-launcher-7qAW16mO.cjs → dashboard-briefing-launcher-DWwSdfV7.cjs} +1 -1
  4. package/dist/chunks/{dashboard-briefing-launcher-DAhtLQPc.js → dashboard-briefing-launcher-Dk4yNOLY.js} +3 -3
  5. package/dist/chunks/{dashboard-controls-CoVqAeKG.cjs → dashboard-controls-B0Pm_y8L.cjs} +1 -1
  6. package/dist/chunks/{dashboard-controls-C_CBmEwW.js → dashboard-controls-CIC5_549.js} +5 -5
  7. package/dist/chunks/{dashboard-filter-value-compatibility-Bco2gN96.cjs → dashboard-filter-value-compatibility-ByT__CYM.cjs} +1 -1
  8. package/dist/chunks/{dashboard-filter-value-compatibility-BAatYtUS.js → dashboard-filter-value-compatibility-DQkUs41q.js} +72 -67
  9. package/dist/chunks/{dashboard-json-B3XSl7b_.cjs → dashboard-json-Bk6nEHap.cjs} +1 -1
  10. package/dist/chunks/{dashboard-json-0w58H39L.js → dashboard-json-YDTb3r4e.js} +2 -2
  11. package/dist/chunks/{edit-dashboard-visual-BsLRKeuO.cjs → edit-dashboard-visual-B3oH-O0L.cjs} +1 -1
  12. package/dist/chunks/{edit-dashboard-visual-BsWEU8xf.js → edit-dashboard-visual-q5Yj9dMP.js} +4 -4
  13. package/dist/chunks/{editor-action-buttons-B3CB5c__.js → editor-action-buttons-BqelO0n9.js} +2 -2
  14. package/dist/chunks/{editor-action-buttons-DMLDvrJD.cjs → editor-action-buttons-vZ63-lN-.cjs} +1 -1
  15. package/dist/chunks/{index-DgGcVyUs.js → index-CUCiMVzS.js} +22006 -22002
  16. package/dist/chunks/{index--0Il-Bpd.cjs → index-DhDfPZUu.cjs} +165 -165
  17. package/dist/chunks/{report-preferences-dialog-I0Pbn_Yb.cjs → report-preferences-dialog--aV7ITSE.cjs} +1 -1
  18. package/dist/chunks/{report-preferences-dialog-Bytgubvz.js → report-preferences-dialog-DKq0k5BH.js} +2 -2
  19. package/dist/chunks/switch-D12C40LN.cjs +138 -0
  20. package/dist/chunks/{switch-BsGTOjuD.js → switch-LucIPRtD.js} +5249 -4987
  21. package/dist/dashboard/index.cjs +1 -1
  22. package/dist/dashboard/index.js +1 -1
  23. package/dist/dashboard-authoring/index.cjs +1 -1
  24. package/dist/dashboard-authoring/index.js +2 -2
  25. package/dist/data-app-builder/index.cjs +1 -1
  26. package/dist/data-app-builder/index.js +2 -2
  27. package/dist/index.cjs +1 -1
  28. package/dist/index.js +7 -7
  29. package/dist/surfboard/index.cjs +1 -1
  30. package/dist/surfboard/index.js +2 -2
  31. package/dist/types/briefings.d.ts +8 -2
  32. package/dist/types/dashboard-authoring.d.ts +9 -3
  33. package/dist/types/dashboard.d.ts +9 -3
  34. package/dist/types/main.d.ts +27 -18
  35. package/dist/types/shared.d.ts +8 -2
  36. package/dist/types/surfboard.d.ts +9 -3
  37. package/dist/types/types.d.ts +9 -3
  38. package/package.json +1 -1
  39. package/dist/chunks/switch-Cpj3DrCZ.cjs +0 -138
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/index--0Il-Bpd.cjs"),e=require("../chunks/common-types-BCSbPclk.cjs");exports.Dashboard=o.Dashboard;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/index-DhDfPZUu.cjs"),e=require("../chunks/common-types-BCSbPclk.cjs");exports.Dashboard=o.Dashboard;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;
@@ -1,4 +1,4 @@
1
- import { D as o } from "../chunks/index-DgGcVyUs.js";
1
+ import { D as o } from "../chunks/index-CUCiMVzS.js";
2
2
  import { C as s, E as C } from "../chunks/common-types-D3r4PILe.js";
3
3
  export {
4
4
  s as CONTROL_CARD_DEFAULT_VALUE,
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("../chunks/contracts-CtB2VONT.cjs"),D=require("../chunks/temporal-bucket-authoring-DueSgLJU.cjs"),w=require("../chunks/validators-DqIM0B3C.cjs");require("../chunks/analyze-result-contract-BX_nQmPN.cjs");require("../value-format-preferences/index.cjs");const h=require("../chunks/dashboard-filter-value-compatibility-Bco2gN96.cjs"),Te=require("../chunks/operators-DrTQsJXv.cjs"),X=require("../chunks/canonical-result-keys-Cb96edol.cjs");function S(e){return e&&typeof e=="object"?e:null}function T(e){return typeof e=="string"?e:null}function de(e){var t,r,a;return!!(e&&typeof e=="object")&&(((t=S(e))==null?void 0:t.kind)==="semantic"||((r=S(e))==null?void 0:r.kind)==="physical"||((a=S(e))==null?void 0:a.kind)==="sql")}function M(e){return de(e)?e.kind==="semantic"?!!(e.domainId&&e.datasetName):e.kind==="physical"?!!(e.connectionId&&e.tableName):!1:!1}function Fe(e){return w.semaphorSourceIdentityKey(e)}function Y(e,t){return w.semaphorSourcesReferToSameDataset(e,t)}function ce(e,t){return w.preferSemaphorSourceMetadata(e,t)}function B(e){const t=[];for(const r of e){const a=t.findIndex(o=>Y(o,r));a===-1?t.push(r):t[a]=ce(t[a],r)}return t}function ke(e){return B(e)[0]}function K(e,t){return e.kind!=="semantic"||e.connectionId||(t==null?void 0:t.kind)!=="semantic"||!w.semaphorSourcesReferToSameDataset(e,t)||!t.connectionId?e:{...e,connectionId:t.connectionId}}function U(e){return M(e)?e:void 0}function oe(e,t){if(!(e.kind!=="semantic"||e.connectionId))return t.find(r=>(r==null?void 0:r.kind)==="semantic"&&w.semaphorSourcesReferToSameDataset(e,r)&&!!r.connectionId)}function v(e,t){const r=U(e==null?void 0:e.source);return r?K(r,t):void 0}function le({explicitSource:e,field:t,defaultSource:r,fallbackSources:a}){const o=[r,...a||[]],i=U(e),n=i?K(i,oe(i,o)):void 0;if(n)return n;if(e!==void 0)return;const d=v(t,r),s=d?K(d,oe(d,o)):void 0;if(s)return s;if((t==null?void 0:t.source)===void 0)return U(r)}function xe(e,t){if(!(e!=null&&e.name)||!(t!=null&&t.name)||e.name!==t.name)return!1;const r=v(e),a=v(t);return!r||!a?!0:Y(r,a)}function x(e){var t;return T((t=S(e))==null?void 0:t.kind)}function ue(e){var t,r;return x(e)!=="semantic"?null:((r=T((t=S(e))==null?void 0:t.domainId))==null?void 0:r.trim())||null}function Re(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetName)}function Me(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetId)}function Ne(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.connectionId)}function Oe(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.tableName)}function Be(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.databaseName)||""}function $e(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.schemaName)||""}function pe(e){if(e.analyticsIntent&&typeof e.analyticsIntent=="object"&&"source"in e.analyticsIntent)return e.analyticsIntent.source}function fe({datasets:e,requireAtLeastOne:t}){if(t&&e.length<1)return{ok:!1,issue:"invalid_dataset_count"};if(e.length<=1)return{ok:!0};const r=e.map(ue),a=new Set(r.filter(Boolean));return r.some(o=>!o)||a.size!==1?{ok:!1,issue:"invalid_multi_dataset_scope"}:{ok:!0}}function z(e,t){if(!t)return!1;if(t.kind==="semantic"){const r=Me(e);return ue(e)===t.domainId?r&&t.datasetId?r===t.datasetId:Re(e)===t.datasetName:!1}return t.kind==="physical"?Ne(e)===t.connectionId&&Oe(e)===t.tableName&&Be(e)===(t.databaseName||"")&&$e(e)===(t.schemaName||""):!1}function Pe(e,t){return e.find(r=>z(r,t))}function f(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function E(e){const t=new Set;for(const r of e){if(t.has(r))return r;t.add(r)}return null}function he({card:e,datasets:t,errors:r}){if(e.type==="text")return;const a=pe(e);if(!a){if(t.length<=1)return;r.push(f("missing_card_analytics_source","Multi-dataset dashboard cards must include analytics intent with a source so the materializer can choose the correct dataset.",e.id));return}t.some(o=>z(o,a))||r.push(f("invalid_card_analytics_source","Dashboard cards with an explicit analytics source must use one of the selected datasets.",e.id))}function q(e){return e.map(t=>t==null?void 0:t.source).filter(t=>!!t)}function L(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function se(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function Ee(e){var r,a;if(!e)return[];const t=[e.source];return e.kind==="metric"?t.push(...q([...L(e.measures),e.primaryMeasure,e.dateField,...L(e.dimensions),...se(e.filters).map(o=>o.field)])):e.kind==="records"?t.push(...q([...L(e.fields),e.dateField,(r=e.orderBy)==null?void 0:r.field,...se(e.filters).map(o=>o.field)])):e.kind==="inputOptions"?(((a=e.population)==null?void 0:a.kind)==="related_population"&&t.push(e.population.baseSource),t.push(...q([e.labelField,e.valueField,e.searchField,...e.disambiguationFields||[]]))):e.kind==="sql"&&t.push(...q(e.fields||[])),t}function me({card:e,datasets:t,errors:r}){if(e.type!=="text"){for(const a of Ee(e.analyticsIntent))if(a&&!t.some(o=>z(o,a))){r.push(f("invalid_card_query_source","Dashboard card query field references must use one of the selected datasets.",e.id));return}}}function be({card:e,errors:t}){if(e.type==="text"||!e.analyticsIntent)return;const r=w.validateSemaphorAnalyticsIntent(e.analyticsIntent);if(!r.ok)for(const a of r.errors)t.push(f(a.code,a.path?`${a.path}: ${a.message}`:a.message,e.id))}function ge({datasets:e,errors:t,requireAtLeastOne:r}){const a=fe({datasets:e,requireAtLeastOne:r});if(!a.ok){if(a.issue==="invalid_dataset_count"){t.push(f("invalid_dataset_count","Dashboard authoring requires at least one selected dataset."));return}t.push(f("invalid_multi_dataset_scope","Multi-dataset dashboard authoring is limited to semantic datasets from one domain."))}}function Ie({input:e,errors:t}){var r;(r=e.filter.sql)!=null&&r.trim()&&t.push(f("generated_filter_sql_out_of_scope",`Generated dashboard filter "${e.label}" must use grounded filter configuration; custom SQL is outside the dashboard-authoring contract.`))}function ye(e){var p,g;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_plan","Dashboard plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard plan version must be 1.")),(p=r.title)!=null&&p.trim()||t.push(f("missing_title","Dashboard plan needs a title."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.sheets)?r.sheets:[];ge({datasets:o,errors:t,requireAtLeastOne:!0}),i.length!==1&&t.push(f("invalid_sheet_count","MVP dashboard authoring creates exactly one dashboard sheet."));const n=i[0];n&&n.kind!=="dashboard"&&t.push(f("invalid_sheet_kind",'Generated sheet must use kind "dashboard".'));const d=(n==null?void 0:n.cards)||[];d.length>k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS&&t.push(f("too_many_cards",`Generated dashboards can contain at most ${k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS} cards.`));const s=E(d.map(l=>l.id));s&&t.push(f("duplicate_card_id",`Duplicate generated card id: ${s}.`));const u=E(d.map(l=>l.frameId));u&&t.push(f("duplicate_frame_id",`Duplicate generated frame id: ${u}.`));for(const l of d)(g=l.title)!=null&&g.trim()||t.push(f("missing_card_title","Card title is required.",l.id)),l.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",l.id)),l.type!=="text"&&!l.analyticsIntent&&a.push(f("missing_analytics_intent","Non-text card has no analytics intent and may be skipped by the app layer.",l.id)),he({card:l,datasets:o,errors:t}),be({card:l,errors:t}),me({card:l,datasets:o,errors:t});const m=Array.isArray(r.filterInputs)?r.filterInputs:[],y=m.map(l=>l.id),A=E(y);A&&t.push(f("duplicate_input_id",`Duplicate dashboard input id: ${A}.`));const C=m.map(l=>l.variableName).filter(Boolean)||[],_=E(C);_&&t.push(f("duplicate_input_variable",`Duplicate dashboard input variable name: ${_}.`));for(const l of m)Ie({input:l,errors:t});const c=Array.isArray(r.calculatedFields)?r.calculatedFields:[];for(const l of c)l.scope==="domain"&&l.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${l.name}" is outside MVP.`));return{ok:t.length===0,errors:t,warnings:a}}function _e(e){var n;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_change_plan","Dashboard change plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard change plan version must be 1.")),(n=r.dashboardId)!=null&&n.trim()||t.push(f("missing_dashboard_id","Dashboard change plan needs a dashboard id."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.operations)?r.operations:[];ge({datasets:o,errors:t,requireAtLeastOne:!1});for(const d of i){if(d.kind==="unsupported"){a.push(f("unsupported_operation",d.reason||d.requestedAction));continue}d.kind==="addCard"&&d.card.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",d.card.id)),d.kind==="addCard"&&(he({card:d.card,datasets:o,errors:t}),be({card:d.card,errors:t}),me({card:d.card,datasets:o,errors:t})),d.kind==="addFilterInput"&&Ie({input:d.input,errors:t}),d.kind==="addCalculatedField"&&d.field.scope==="domain"&&d.field.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${d.field.name}" is outside MVP.`))}return{ok:t.length===0,errors:t,warnings:a}}const qe={lg:48,md:36,sm:24,xs:12,xxs:6};function ze(e,t){let r=0,a=0,o=0;return e.map(i=>{const n=Math.min(i.w,t);r>0&&r+n>t&&(r=0,a+=o,o=0);const d={i:i.frameId,x:r,y:a,w:n,h:i.h,minW:Math.min(i.minW,t),minH:i.minH,static:!1};return r+=n,o=Math.max(o,i.h),d})}function Ve(e){const t=[...e].sort((s,u)=>s.priority-u.priority),r=t.filter(s=>s.role==="kpi"),a=t.filter(s=>s.role==="chart"),o=t.filter(s=>s.role==="table"),i=t.filter(s=>s.role==="text"),n=i.slice(0,1),d=i.slice(n.length);return{kpis:r,introText:n,charts:a,tables:o,supportingText:d}}function He(e,t,r){return t==="xxs"||t==="xs"?r:t==="sm"?Math.min(12,r):t==="md"?e<=1||e===2?18:12:e<=1||e===2?24:e===3?16:12}function Le(e,t,r,a){return r==="xxs"||r==="xs"||r==="sm"||r==="md"||t===1||t%2===1&&e===0?a:a/2}function je(e){const{item:t,band:r,index:a,bandCount:o,breakpoint:i,columns:n}=e;return r==="kpi"?{...t,band:r,w:He(o,i,n),h:15,minW:Math.min(6,n),minH:12}:r==="table"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?34:38,minW:Math.min(12,n),minH:18}:r==="introText"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:r==="supportingText"?{...t,band:r,w:i==="lg"?n/2:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:{...t,band:r,w:Le(a,o,i,n),h:i==="xxs"||i==="xs"?28:30,minW:Math.min(12,n),minH:16}}function N(e,t,r,a){return e.map((o,i)=>je({item:o,band:t,index:i,bandCount:e.length,breakpoint:r,columns:a}))}function V(e){const t=Ve(e);return Object.fromEntries(k.DASHBOARD_AUTHORING_BREAKPOINTS.map(r=>{const a=qe[r],o=[...N(t.introText,"introText",r,a),...N(t.kpis,"kpi",r,a),...N(t.charts,"chart",r,a),...N(t.tables,"table",r,a),...N(t.supportingText,"supportingText",r,a)];return[r,ze(o,a)]}))}function Ge(e){const t=w.normalizeAnalyticsCatalogDataType(e);return t==="datetime"?"date":t==="unknown"?"string":t}function Ke(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function Ue(e){return Ke(e)&&typeof e.filterId=="string"&&typeof e.operation=="string"&&Array.isArray(e.values)}function We(e){return e.filter(t=>typeof t=="string"||typeof t=="number")}function Xe(e){return e.filter(t=>t instanceof Date||typeof t=="string")}function Q(e,t){if(t===void 0)return;const r=Ge(e.dataType),a=e.operation||"in";if(Ue(t))return h.materializeFilterValueNativeDataType({definition:e,sourceValue:t,value:{...t,filterId:e.id,name:t.name||e.column,valueType:r,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});if(a==="is null"||a==="is not null")return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:[],dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});const o=Array.isArray(t)?t:[t],i=r==="date"?Xe(o):We(o);if(i.length!==0&&!((a==="between"||a==="not between")&&i.length<2))return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:i,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}})}function Se(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function Ye(e,t,r){const a=(t||[]).filter(o=>o.scope==="card"&&o.targetCardId===r).map(o=>o.field).filter(Boolean);return a.length===0?e:{...e,calculatedFields:[...e.calculatedFields||[],...a]}}function W(e,t){return Array.from(new Set((e||[]).map(r=>t.get(r)).filter(r=>!!r)))}function Qe(e,t){if((e==null?void 0:e.kind)!=="cards")return e;const r=W(e.cardIds,t);return r.length>0?{...e,cardIds:r}:null}function Je(e,t){return!e.applyToCardIds&&!e.excludeCardIds?e:{...e,...e.applyToCardIds?{applyToCardIds:W(e.applyToCardIds,t)}:{},...e.excludeCardIds?{excludeCardIds:W(e.excludeCardIds,t)}:{}}}function Ze(e,t){const r={},a=[];return{inputs:(e.filterInputs||[]).flatMap((i,n)=>{const d=Qe(i.scope,t);if(d===null)return a.push(Se("filter_input_scope_empty",`Filter input "${i.label}" was skipped because all scoped cards were skipped during query validation.`)),[];const s=Q(i.filter,i.defaultValue);return s&&(r.shared??(r.shared={}),r.shared[i.id]={status:"set",value:{kind:"filter",filterValue:s}}),[{id:i.id,kind:"filter",label:i.label,variableName:i.variableName,scope:d||{kind:"allSheets",sheetKinds:["dashboard"]},runtimeScope:"shared",presentation:{placement:"toolbar",order:n},exports:["label","value","start","end","range"],filter:Je(i.filter,t)}]}),warnings:a,defaultInputValues:r.shared&&Object.keys(r.shared).length>0?r:void 0}}function et(e){var C,_;const t=ye(e.plan);if(!t.ok)throw new Error(t.errors.map(c=>c.message).join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("../chunks/contracts-CtB2VONT.cjs"),D=require("../chunks/temporal-bucket-authoring-DueSgLJU.cjs"),w=require("../chunks/validators-DqIM0B3C.cjs");require("../chunks/analyze-result-contract-BX_nQmPN.cjs");require("../value-format-preferences/index.cjs");const h=require("../chunks/dashboard-filter-value-compatibility-ByT__CYM.cjs"),Te=require("../chunks/operators-DrTQsJXv.cjs"),X=require("../chunks/canonical-result-keys-Cb96edol.cjs");function S(e){return e&&typeof e=="object"?e:null}function T(e){return typeof e=="string"?e:null}function de(e){var t,r,a;return!!(e&&typeof e=="object")&&(((t=S(e))==null?void 0:t.kind)==="semantic"||((r=S(e))==null?void 0:r.kind)==="physical"||((a=S(e))==null?void 0:a.kind)==="sql")}function M(e){return de(e)?e.kind==="semantic"?!!(e.domainId&&e.datasetName):e.kind==="physical"?!!(e.connectionId&&e.tableName):!1:!1}function Fe(e){return w.semaphorSourceIdentityKey(e)}function Y(e,t){return w.semaphorSourcesReferToSameDataset(e,t)}function ce(e,t){return w.preferSemaphorSourceMetadata(e,t)}function B(e){const t=[];for(const r of e){const a=t.findIndex(o=>Y(o,r));a===-1?t.push(r):t[a]=ce(t[a],r)}return t}function ke(e){return B(e)[0]}function K(e,t){return e.kind!=="semantic"||e.connectionId||(t==null?void 0:t.kind)!=="semantic"||!w.semaphorSourcesReferToSameDataset(e,t)||!t.connectionId?e:{...e,connectionId:t.connectionId}}function U(e){return M(e)?e:void 0}function oe(e,t){if(!(e.kind!=="semantic"||e.connectionId))return t.find(r=>(r==null?void 0:r.kind)==="semantic"&&w.semaphorSourcesReferToSameDataset(e,r)&&!!r.connectionId)}function v(e,t){const r=U(e==null?void 0:e.source);return r?K(r,t):void 0}function le({explicitSource:e,field:t,defaultSource:r,fallbackSources:a}){const o=[r,...a||[]],i=U(e),n=i?K(i,oe(i,o)):void 0;if(n)return n;if(e!==void 0)return;const d=v(t,r),s=d?K(d,oe(d,o)):void 0;if(s)return s;if((t==null?void 0:t.source)===void 0)return U(r)}function xe(e,t){if(!(e!=null&&e.name)||!(t!=null&&t.name)||e.name!==t.name)return!1;const r=v(e),a=v(t);return!r||!a?!0:Y(r,a)}function x(e){var t;return T((t=S(e))==null?void 0:t.kind)}function ue(e){var t,r;return x(e)!=="semantic"?null:((r=T((t=S(e))==null?void 0:t.domainId))==null?void 0:r.trim())||null}function Re(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetName)}function Me(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetId)}function Ne(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.connectionId)}function Oe(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.tableName)}function Be(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.databaseName)||""}function $e(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.schemaName)||""}function pe(e){if(e.analyticsIntent&&typeof e.analyticsIntent=="object"&&"source"in e.analyticsIntent)return e.analyticsIntent.source}function fe({datasets:e,requireAtLeastOne:t}){if(t&&e.length<1)return{ok:!1,issue:"invalid_dataset_count"};if(e.length<=1)return{ok:!0};const r=e.map(ue),a=new Set(r.filter(Boolean));return r.some(o=>!o)||a.size!==1?{ok:!1,issue:"invalid_multi_dataset_scope"}:{ok:!0}}function z(e,t){if(!t)return!1;if(t.kind==="semantic"){const r=Me(e);return ue(e)===t.domainId?r&&t.datasetId?r===t.datasetId:Re(e)===t.datasetName:!1}return t.kind==="physical"?Ne(e)===t.connectionId&&Oe(e)===t.tableName&&Be(e)===(t.databaseName||"")&&$e(e)===(t.schemaName||""):!1}function Pe(e,t){return e.find(r=>z(r,t))}function f(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function E(e){const t=new Set;for(const r of e){if(t.has(r))return r;t.add(r)}return null}function he({card:e,datasets:t,errors:r}){if(e.type==="text")return;const a=pe(e);if(!a){if(t.length<=1)return;r.push(f("missing_card_analytics_source","Multi-dataset dashboard cards must include analytics intent with a source so the materializer can choose the correct dataset.",e.id));return}t.some(o=>z(o,a))||r.push(f("invalid_card_analytics_source","Dashboard cards with an explicit analytics source must use one of the selected datasets.",e.id))}function q(e){return e.map(t=>t==null?void 0:t.source).filter(t=>!!t)}function L(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function se(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function Ee(e){var r,a;if(!e)return[];const t=[e.source];return e.kind==="metric"?t.push(...q([...L(e.measures),e.primaryMeasure,e.dateField,...L(e.dimensions),...se(e.filters).map(o=>o.field)])):e.kind==="records"?t.push(...q([...L(e.fields),e.dateField,(r=e.orderBy)==null?void 0:r.field,...se(e.filters).map(o=>o.field)])):e.kind==="inputOptions"?(((a=e.population)==null?void 0:a.kind)==="related_population"&&t.push(e.population.baseSource),t.push(...q([e.labelField,e.valueField,e.searchField,...e.disambiguationFields||[]]))):e.kind==="sql"&&t.push(...q(e.fields||[])),t}function me({card:e,datasets:t,errors:r}){if(e.type!=="text"){for(const a of Ee(e.analyticsIntent))if(a&&!t.some(o=>z(o,a))){r.push(f("invalid_card_query_source","Dashboard card query field references must use one of the selected datasets.",e.id));return}}}function be({card:e,errors:t}){if(e.type==="text"||!e.analyticsIntent)return;const r=w.validateSemaphorAnalyticsIntent(e.analyticsIntent);if(!r.ok)for(const a of r.errors)t.push(f(a.code,a.path?`${a.path}: ${a.message}`:a.message,e.id))}function ge({datasets:e,errors:t,requireAtLeastOne:r}){const a=fe({datasets:e,requireAtLeastOne:r});if(!a.ok){if(a.issue==="invalid_dataset_count"){t.push(f("invalid_dataset_count","Dashboard authoring requires at least one selected dataset."));return}t.push(f("invalid_multi_dataset_scope","Multi-dataset dashboard authoring is limited to semantic datasets from one domain."))}}function Ie({input:e,errors:t}){var r;(r=e.filter.sql)!=null&&r.trim()&&t.push(f("generated_filter_sql_out_of_scope",`Generated dashboard filter "${e.label}" must use grounded filter configuration; custom SQL is outside the dashboard-authoring contract.`))}function ye(e){var p,g;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_plan","Dashboard plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard plan version must be 1.")),(p=r.title)!=null&&p.trim()||t.push(f("missing_title","Dashboard plan needs a title."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.sheets)?r.sheets:[];ge({datasets:o,errors:t,requireAtLeastOne:!0}),i.length!==1&&t.push(f("invalid_sheet_count","MVP dashboard authoring creates exactly one dashboard sheet."));const n=i[0];n&&n.kind!=="dashboard"&&t.push(f("invalid_sheet_kind",'Generated sheet must use kind "dashboard".'));const d=(n==null?void 0:n.cards)||[];d.length>k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS&&t.push(f("too_many_cards",`Generated dashboards can contain at most ${k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS} cards.`));const s=E(d.map(l=>l.id));s&&t.push(f("duplicate_card_id",`Duplicate generated card id: ${s}.`));const u=E(d.map(l=>l.frameId));u&&t.push(f("duplicate_frame_id",`Duplicate generated frame id: ${u}.`));for(const l of d)(g=l.title)!=null&&g.trim()||t.push(f("missing_card_title","Card title is required.",l.id)),l.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",l.id)),l.type!=="text"&&!l.analyticsIntent&&a.push(f("missing_analytics_intent","Non-text card has no analytics intent and may be skipped by the app layer.",l.id)),he({card:l,datasets:o,errors:t}),be({card:l,errors:t}),me({card:l,datasets:o,errors:t});const m=Array.isArray(r.filterInputs)?r.filterInputs:[],y=m.map(l=>l.id),A=E(y);A&&t.push(f("duplicate_input_id",`Duplicate dashboard input id: ${A}.`));const C=m.map(l=>l.variableName).filter(Boolean)||[],_=E(C);_&&t.push(f("duplicate_input_variable",`Duplicate dashboard input variable name: ${_}.`));for(const l of m)Ie({input:l,errors:t});const c=Array.isArray(r.calculatedFields)?r.calculatedFields:[];for(const l of c)l.scope==="domain"&&l.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${l.name}" is outside MVP.`));return{ok:t.length===0,errors:t,warnings:a}}function _e(e){var n;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_change_plan","Dashboard change plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard change plan version must be 1.")),(n=r.dashboardId)!=null&&n.trim()||t.push(f("missing_dashboard_id","Dashboard change plan needs a dashboard id."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.operations)?r.operations:[];ge({datasets:o,errors:t,requireAtLeastOne:!1});for(const d of i){if(d.kind==="unsupported"){a.push(f("unsupported_operation",d.reason||d.requestedAction));continue}d.kind==="addCard"&&d.card.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",d.card.id)),d.kind==="addCard"&&(he({card:d.card,datasets:o,errors:t}),be({card:d.card,errors:t}),me({card:d.card,datasets:o,errors:t})),d.kind==="addFilterInput"&&Ie({input:d.input,errors:t}),d.kind==="addCalculatedField"&&d.field.scope==="domain"&&d.field.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${d.field.name}" is outside MVP.`))}return{ok:t.length===0,errors:t,warnings:a}}const qe={lg:48,md:36,sm:24,xs:12,xxs:6};function ze(e,t){let r=0,a=0,o=0;return e.map(i=>{const n=Math.min(i.w,t);r>0&&r+n>t&&(r=0,a+=o,o=0);const d={i:i.frameId,x:r,y:a,w:n,h:i.h,minW:Math.min(i.minW,t),minH:i.minH,static:!1};return r+=n,o=Math.max(o,i.h),d})}function Ve(e){const t=[...e].sort((s,u)=>s.priority-u.priority),r=t.filter(s=>s.role==="kpi"),a=t.filter(s=>s.role==="chart"),o=t.filter(s=>s.role==="table"),i=t.filter(s=>s.role==="text"),n=i.slice(0,1),d=i.slice(n.length);return{kpis:r,introText:n,charts:a,tables:o,supportingText:d}}function He(e,t,r){return t==="xxs"||t==="xs"?r:t==="sm"?Math.min(12,r):t==="md"?e<=1||e===2?18:12:e<=1||e===2?24:e===3?16:12}function Le(e,t,r,a){return r==="xxs"||r==="xs"||r==="sm"||r==="md"||t===1||t%2===1&&e===0?a:a/2}function je(e){const{item:t,band:r,index:a,bandCount:o,breakpoint:i,columns:n}=e;return r==="kpi"?{...t,band:r,w:He(o,i,n),h:15,minW:Math.min(6,n),minH:12}:r==="table"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?34:38,minW:Math.min(12,n),minH:18}:r==="introText"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:r==="supportingText"?{...t,band:r,w:i==="lg"?n/2:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:{...t,band:r,w:Le(a,o,i,n),h:i==="xxs"||i==="xs"?28:30,minW:Math.min(12,n),minH:16}}function N(e,t,r,a){return e.map((o,i)=>je({item:o,band:t,index:i,bandCount:e.length,breakpoint:r,columns:a}))}function V(e){const t=Ve(e);return Object.fromEntries(k.DASHBOARD_AUTHORING_BREAKPOINTS.map(r=>{const a=qe[r],o=[...N(t.introText,"introText",r,a),...N(t.kpis,"kpi",r,a),...N(t.charts,"chart",r,a),...N(t.tables,"table",r,a),...N(t.supportingText,"supportingText",r,a)];return[r,ze(o,a)]}))}function Ge(e){const t=w.normalizeAnalyticsCatalogDataType(e);return t==="datetime"?"date":t==="unknown"?"string":t}function Ke(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function Ue(e){return Ke(e)&&typeof e.filterId=="string"&&typeof e.operation=="string"&&Array.isArray(e.values)}function We(e){return e.filter(t=>typeof t=="string"||typeof t=="number")}function Xe(e){return e.filter(t=>t instanceof Date||typeof t=="string")}function Q(e,t){if(t===void 0)return;const r=Ge(e.dataType),a=e.operation||"in";if(Ue(t))return h.materializeFilterValueNativeDataType({definition:e,sourceValue:t,value:{...t,filterId:e.id,name:t.name||e.column,valueType:r,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});if(a==="is null"||a==="is not null")return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:[],dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});const o=Array.isArray(t)?t:[t],i=r==="date"?Xe(o):We(o);if(i.length!==0&&!((a==="between"||a==="not between")&&i.length<2))return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:i,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}})}function Se(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function Ye(e,t,r){const a=(t||[]).filter(o=>o.scope==="card"&&o.targetCardId===r).map(o=>o.field).filter(Boolean);return a.length===0?e:{...e,calculatedFields:[...e.calculatedFields||[],...a]}}function W(e,t){return Array.from(new Set((e||[]).map(r=>t.get(r)).filter(r=>!!r)))}function Qe(e,t){if((e==null?void 0:e.kind)!=="cards")return e;const r=W(e.cardIds,t);return r.length>0?{...e,cardIds:r}:null}function Je(e,t){return!e.applyToCardIds&&!e.excludeCardIds?e:{...e,...e.applyToCardIds?{applyToCardIds:W(e.applyToCardIds,t)}:{},...e.excludeCardIds?{excludeCardIds:W(e.excludeCardIds,t)}:{}}}function Ze(e,t){const r={},a=[];return{inputs:(e.filterInputs||[]).flatMap((i,n)=>{const d=Qe(i.scope,t);if(d===null)return a.push(Se("filter_input_scope_empty",`Filter input "${i.label}" was skipped because all scoped cards were skipped during query validation.`)),[];const s=Q(i.filter,i.defaultValue);return s&&(r.shared??(r.shared={}),r.shared[i.id]={status:"set",value:{kind:"filter",filterValue:s}}),[{id:i.id,kind:"filter",label:i.label,variableName:i.variableName,scope:d||{kind:"allSheets",sheetKinds:["dashboard"]},runtimeScope:"shared",presentation:{placement:"toolbar",order:n},exports:["label","value","start","end","range"],filter:Je(i.filter,t)}]}),warnings:a,defaultInputValues:r.shared&&Object.keys(r.shared).length>0?r:void 0}}function et(e){var C,_;const t=ye(e.plan);if(!t.ok)throw new Error(t.errors.map(c=>c.message).join(`
2
2
  `)||"Dashboard plan is invalid.");const r=e.plan.sheets[0],a=[...t.warnings],o=[],i=new Map(e.cardArtifacts.map(c=>[c.planCardId,c])),n=new Map(e.cardArtifacts.map(c=>[c.planCardId,c.card.id])),d=[];for(const c of r.cards){const p=i.get(c.id);if(!p){const l=Se("missing_card_artifact",`Card "${c.title}" was skipped because no generated artifact was supplied.`,c.id);o.push(l);continue}a.push(...p.warnings||[]);const g=Ye(p.card,e.plan.calculatedFields,c.id);d.push({id:c.frameId,cards:[g],activeCardId:g.id})}if(d.length===0)throw new Error("Dashboard plan did not produce any persistable cards.");const{inputs:s,defaultInputValues:u,warnings:m}=Ze(e.plan,n);a.push(...m);const y=V(r.cards.filter(c=>d.some(p=>p.id===c.frameId)).map(c=>({frameId:c.frameId,priority:c.priority,role:c.role})));return{dashboard:{id:e.dashboardId,title:e.plan.title,description:e.plan.description||"",sheets:[{id:r.id,kind:"dashboard",title:r.title,description:r.description,frames:d,layouts:y,calculatedFields:(C=e.plan.calculatedFields)==null?void 0:C.filter(c=>c.scope==="sheet"&&c.field).map(c=>c.field)}],calculatedFields:(_=e.plan.calculatedFields)==null?void 0:_.filter(c=>c.scope==="dashboard"&&c.field).map(c=>c.field),inputs:s,...u?{defaultInputValues:u}:{}},warnings:a,skippedOperations:o}}function R(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function tt(e){return JSON.parse(JSON.stringify(e))}function rt(e){var t;return(t=e.sheets)==null?void 0:t.find(r=>(r.kind||"dashboard")==="dashboard")}function j(e,t){var r;for(const a of e.sheets||[])for(const o of a.frames||[]){const i=(r=o.cards)==null?void 0:r.find(n=>n.id===t);if(i)return{sheet:a,frame:o,card:i}}return null}function De(e){var r,a;const t=(a=(r=e.cards)==null?void 0:r[0])==null?void 0:a.type;return t==="kpi"?"kpi":t==="table"||t==="detailTable"||t==="pivotTable"?"table":t==="text"?"text":"chart"}function at(e){var t;return new Map((((t=e.layouts)==null?void 0:t.lg)||[]).map((r,a)=>[r.i,a]))}function Ae(e,t=new Map){const r=at(e),a=Math.max(r.size,t.size),o=(e.frames||[]).map((i,n)=>({frameId:i.id,role:De(i),priority:t.get(i.id)??r.get(i.id)??a+n}));e.layouts=V(o)}function nt(e){return Object.values(e.layouts||{}).some(t=>t.length>0)}function it(e,t){if(!nt(e)){Ae(e);return}const r=V([{frameId:t.id,role:De(t),priority:0}]);e.layouts??(e.layouts={});for(const[a,o]of Object.entries(r)){const i=e.layouts[a]||[];if(i.some(s=>s.i===t.id))continue;const n=o[0];if(!n)continue;const d=i.reduce((s,u)=>Math.max(s,u.y+u.h),0);e.layouts[a]=[...i,{...n,y:d}]}}function ot(e,t){var a;const r=Q(t.filter,t.defaultValue);r&&(e.defaultInputValues??(e.defaultInputValues={}),(a=e.defaultInputValues).shared??(a.shared={}),e.defaultInputValues.shared[t.id]={status:"set",value:{kind:"filter",filterValue:r}})}function st(e){var d;const t=_e(e.changePlan);if(!t.ok)throw new Error(t.errors.map(s=>s.message).join(`
3
3
  `)||"Dashboard change plan is invalid.");const r=tt(e.dashboard),a=[...t.warnings],o=[],i=new Map(e.cardArtifacts.map(s=>[s.planCardId,s])),n=rt(r);if(!n)throw new Error("Dashboard has no editable dashboard sheet.");n.frames??(n.frames=[]);for(const s of e.changePlan.operations)switch(s.kind){case"addCard":{if((n.frames||[]).reduce((A,C)=>{var _;return A+(((_=C.cards)==null?void 0:_.length)||0)},0)>=k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS){o.push(R("generated_card_limit_reached",`AI refinement is capped at ${k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS} cards.`,s.card.id));break}const m=i.get(s.card.id);if(!m){o.push(R("missing_card_artifact",`Card "${s.card.title}" was skipped because no generated artifact was supplied.`,s.card.id));break}const y={id:s.card.frameId,cards:[m.card],activeCardId:m.card.id};n.frames.push(y),it(n,y);break}case"addFilterInput":{r.inputs??(r.inputs=[]);const u={id:s.input.id,kind:"filter",label:s.input.label,variableName:s.input.variableName,scope:s.input.scope||{kind:"allSheets",sheetKinds:["dashboard"]},runtimeScope:"shared",presentation:{placement:"toolbar",order:r.inputs.length},exports:["label","value","start","end","range"],filter:s.input.filter};r.inputs.push(u),ot(r,s.input);break}case"addCalculatedField":{if(s.field.scope==="dashboard"&&s.field.field)r.calculatedFields??(r.calculatedFields=[]),r.calculatedFields.push(s.field.field);else if(s.field.scope==="sheet"&&s.field.field)n.calculatedFields??(n.calculatedFields=[]),n.calculatedFields.push(s.field.field);else if(s.field.scope==="card"&&s.field.field){const u=s.field.targetCardId?j(r,s.field.targetCardId):null;u?((d=u.card).calculatedFields??(d.calculatedFields=[]),u.card.calculatedFields.push(s.field.field)):o.push(R("missing_calculated_field_target",`Calculated field "${s.field.name}" needs a valid target card.`))}break}case"renameCard":{const u=j(r,s.cardId);if(!u){o.push(R("card_not_found",`Card "${s.cardId}" could not be renamed because it was not found.`,s.cardId));break}u.card.title=s.title,s.description!==void 0&&(u.card.description=s.description);break}case"reorderCards":{const u=new Map;for(let m=0;m<s.cardIds.length;m+=1){const y=s.cardIds[m],A=j(r,y);A&&u.set(A.frame.id,m)}Ae(n,u);break}case"reuseCalculatedField":a.push(R("reused_calculated_field",`Calculated field "${s.fieldId}" is reused by reference.`));break;case"unsupported":o.push(R("unsupported_operation",s.reason||s.requestedAction));break}return{dashboard:r,warnings:a,skippedOperations:o}}function I(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function O(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function Ce(e,t){if(!t.has(e))return t.add(e),e;let r=2,a=`${e}-${r}`;for(;t.has(a);)r+=1,a=`${e}-${r}`;return t.add(a),a}function $(e){return!!(e&&typeof e=="object")}function ve(e){return Array.isArray(e.inputs)?e.inputs.filter(t=>$(t)&&typeof t.id=="string"):[]}function J(e){return Array.isArray(e.sections)?e.sections.filter(t=>$(t)):[]}function Z(e){return Array.isArray(e.views)?e.views.filter(t=>$(t)):[]}function F(e){if(!Array.isArray(e))return[];const t=[];for(const r of e){const a=v(r);a&&t.push(a)}return t}function dt(e){var a,o,i;if(!e)return[];const t=[];if(M(e.source)&&t.push(e.source),e.kind==="metric"){t.push(...F(e.measures));const n=v(e.dateField);n&&t.push(n),t.push(...F(e.dimensions)),t.push(...F((a=e.filters)==null?void 0:a.map(d=>d.field)))}else if(e.kind==="records"){const n=v(e.dateField);n&&t.push(n),t.push(...F(e.fields)),t.push(...F((o=e.filters)==null?void 0:o.map(d=>d.field)))}else e.kind==="inputOptions"?(((i=e.population)==null?void 0:i.kind)==="related_population"&&M(e.population.baseSource)&&t.push(e.population.baseSource),t.push(...F([e.labelField,e.valueField,e.searchField,...e.disambiguationFields||[]].filter(n=>!!n)))):e.kind==="sql"&&t.push(...F(e.fields));const r="inputs"in e&&Array.isArray(e.inputs)?e.inputs:[];for(const n of r){const d=v(n.field);d&&t.push(d)}return t}function ct(e){const t=[];for(const r of ve(e)){const a=v(r.field);a&&t.push(a)}for(const r of J(e))for(const a of Z(r))t.push(...dt(a.analytics));return t}function lt(e){var r;const t=[];for(const a of J(e))for(const o of Z(a))M((r=o.analytics)==null?void 0:r.source)&&t.push(o.analytics.source);return t}function ut(e,t){const r=B(e).filter(M);if(r.length===0)return t.push(I("missing_materializable_dataset","No semantic or physical source could be converted into the current dashboard authoring dataset reference.")),[];const a=r.every(i=>i.kind==="semantic"),o=Array.from(new Set(r.filter(i=>i.kind==="semantic").map(i=>i.domainId)));return r.length>1&&(!a||o.length!==1)?(t.push(I("multiple_datasets_out_of_scope","The dashboard authoring compiler supports multiple datasets only within one semantic domain; using the first source and deferring the rest.")),[r[0]]):r}function pt(e,t){const r=J(e),a=ve(e),o=B(ct(e)),i=B(lt(e));return{sections:r,inputs:a,sources:o,primarySources:i,defaultSource:i.length===1?i[0]:void 0,datasets:ut(o,t)}}function ft(e){return e&&w.validateSemaphorAnalyticsIntent(e).ok?e:void 0}function ht(e){var t;switch((t=e.presentation)==null?void 0:t.kind){case"kpi":return"kpi";case"lineChart":return"line";case"barChart":return"bar";case"areaChart":return"area";case"table":return"table";case"text":return"text";default:return null}}function mt(e){var t,r,a;return((t=e.presentation)==null?void 0:t.kind)==="kpi"?"kpi":((r=e.presentation)==null?void 0:r.kind)==="table"?"table":((a=e.presentation)==null?void 0:a.kind)==="text"?"text":"chart"}function bt(e){const t=Te.normalizeSemaphorInputOperator(e);switch(t){case"not_in":return"not in";case"not_between":return"not between";case"contains":return"like";case"not_contains":return"not like";default:return t||"in"}}function gt(e){return $(e.field)?e.field.dataType==="datetime"?"date":e.field.dataType||"string":"string"}function It(e){if(!(!e||e.kind!=="physical"))return[e.databaseName,e.schemaName,e.tableName].filter(Boolean).join(".")}function yt(e,t,r,a,o,i){if(e.kind!=="filter")return i.push(I("control_inputs_deferred",`Control input "${e.label}" is represented in the protocol but not yet materialized by the dashboard authoring adapter.`)),null;if(!$(e.field)||typeof e.field.name!="string")return i.push(I("filter_requires_field",`Filter "${e.label||e.id}" needs a field before the dashboard compiler can materialize it.`)),null;const n=le({explicitSource:void 0,field:e.field,defaultSource:t,fallbackSources:r}),d=(n==null?void 0:n.kind)==="semantic"||(n==null?void 0:n.kind)==="physical"?n.connectionId:void 0;if(!d)return i.push(I("filter_requires_connection_id",`Filter "${e.label}" needs a source connectionId before the dashboard compiler can materialize it.`)),null;const m={id:`filter-${Ce(O(e.id,e.field.name),o)}`,variableName:e.id,connectionId:d,title:e.label,column:e.field.name,dataType:gt(e),qualifiedTableName:It(n),sql:"",operation:bt(e.operator),type:e.multi===!1?"single":"multiple",location:"dashboard",displayMode:"toolbar",fieldMeta:(n==null?void 0:n.kind)==="semantic"?{name:e.field.name,qualifiedFieldName:e.field.name,dataType:e.field.dataType,role:e.field.role==="measure"?"metric":"groupby"}:void 0,semanticContext:(n==null?void 0:n.kind)==="semantic"?{semanticDomainId:n.domainId,connectionId:n.connectionId}:(n==null?void 0:n.kind)==="physical"?{connectionId:n.connectionId,connectionType:n.connectionType,selectedEntities:[{type:"table",connectionId:n.connectionId,connectionType:n.connectionType,dialect:n.dialect,database:n.databaseName,schema:n.schemaName,name:n.tableName}]}:void 0};return{id:e.id,label:e.label,variableName:e.id,scope:a,filter:m,defaultValue:Q(m,e.defaultValue)}}function G(e){const t=[],r=[];for(const a of e.viewIds){const o=e.viewIdToCardId.get(a);o?t.push(o):r.push(a)}return r.length>0&&e.warnings.push(I("input_scope_view_not_found",`Filter "${e.inputLabel}" referenced unknown view ids: ${r.join(", ")}.`)),Array.from(new Set(t))}function _t(e){var a,o;if(!e.protocolScope){const i=Array.from(new Set(e.boundCardIds));return i.length>0&&i.length<e.allCardIds.length?{kind:"cards",cardIds:i}:void 0}if(e.protocolScope.level==="dashboard"){if(!((a=e.protocolScope.excludeViewIds)!=null&&a.length))return;const i=new Set(G({inputLabel:e.inputLabel,viewIds:e.protocolScope.excludeViewIds,viewIdToCardId:e.viewIdToCardId,warnings:e.warnings}));return{kind:"cards",cardIds:e.allCardIds.filter(n=>!i.has(n))}}if(e.protocolScope.level==="view"){const i=G({inputLabel:e.inputLabel,viewIds:e.protocolScope.viewIds,viewIdToCardId:e.viewIdToCardId,warnings:e.warnings});return i.length===0?(e.warnings.push(I("input_scope_has_no_materialized_cards",`Filter "${e.inputLabel}" was deferred because its view scope does not match any materialized cards.`)),null):{kind:"cards",cardIds:i}}const t=e.sectionIdToCardIds.get(e.protocolScope.sectionId)||[];if(t.length===0)return e.warnings.push(I("input_scope_section_not_found",`Filter "${e.inputLabel}" was deferred because section "${e.protocolScope.sectionId}" does not match any materialized cards.`)),null;if(!((o=e.protocolScope.excludeViewIds)!=null&&o.length))return{kind:"cards",cardIds:t};const r=new Set(G({inputLabel:e.inputLabel,viewIds:e.protocolScope.excludeViewIds,viewIdToCardId:e.viewIdToCardId,warnings:e.warnings}));return{kind:"cards",cardIds:t.filter(i=>!r.has(i))}}function St(e){var C,_,c;const t=[],r=w.validateSemaphorDashboardIntent(e);for(const p of r.warnings)t.push(I(p.code,p.message));for(const p of r.errors)t.push(I(p.code,p.message));const a=pt(e,t),o=[],i=new Map,n=new Map,d=new Map,s=new Set,u=new Set;let m=0;for(const[p,g]of a.sections.entries()){const l=typeof g.title=="string"?g.title:`Section ${p+1}`,ee=g.id||O(l,`section-${p+1}`);n.set(ee,[]);for(const[te,b]of Z(g).entries()){const re=ht(b),H=O(b.id||`${l}-${b.title||`View ${te+1}`}`,`card-${p+1}-${te+1}`);if(!re){t.push(I("unsupported_presentation",`Dashboard presentation "${((C=b.presentation)==null?void 0:C.kind)||"unknown"}" is not supported by the dashboard authoring adapter.`,`card-${H}`));continue}if(((_=b.analytics)==null?void 0:_.kind)==="sql"){t.push(I("sql_intent_deferred","SQL analytics intent is valid protocol, but the current dashboard authoring adapter only materializes semantic and physical config-card intents.",`card-${H}`));continue}const ae=Ce(H,s),P=`card-${ae}`;b.id&&i.set(b.id,P),(c=n.get(ee))==null||c.push(P);const we=b.analytics&&"inputs"in b.analytics?b.analytics.inputs:void 0;for(const ne of we||[]){const ie=d.get(ne.inputId)||[];ie.push(P),d.set(ne.inputId,ie)}o.push({id:P,frameId:`frame-${ae}`,title:b.title,description:b.description,type:re,role:mt(b),priority:m,section:l,analyticsIntent:ft(b.analytics),text:b.text}),m+=1}}const y=a.inputs.map(p=>{const g=_t({protocolScope:p.scope,inputLabel:p.label,allCardIds:o.map(l=>l.id),boundCardIds:d.get(p.id)||[],viewIdToCardId:i,sectionIdToCardIds:n,warnings:t});return g===null?null:yt(p,a.defaultSource,a.sources,g,u,t)}).filter(p=>!!p);return{plan:{version:1,id:`plan-${O(e.title,"dashboard")}`,title:e.title,description:e.description,datasets:a.datasets,sheets:[{id:`sheet-${O(e.title,"dashboard")}`,title:e.title,description:e.description,kind:"dashboard",cards:o}],filterInputs:y.length?y:void 0,warnings:t.length?t:void 0,unresolvedRequests:r.ok?void 0:r.errors.map(p=>p.message)},warnings:t}}exports.DASHBOARD_AUTHORING_BREAKPOINTS=k.DASHBOARD_AUTHORING_BREAKPOINTS;exports.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS=k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS;exports.AUTOMATIC_TEMPORAL_BUCKET_FORMAT=D.AUTOMATIC_TEMPORAL_BUCKET_FORMAT;exports.SEMAPHOR_CARTESIAN_CHART_TYPES=D.SEMAPHOR_CARTESIAN_CHART_TYPES;exports.getTemporalBucketAuthoringOptions=D.getTemporalBucketAuthoringOptions;exports.getTemporalBucketAuthoringSelection=D.getTemporalBucketAuthoringSelection;exports.isSemaphorCartesianChartType=D.isSemaphorCartesianChartType;exports.previewTemporalBucketAuthoringFormat=D.previewTemporalBucketAuthoringFormat;exports.reconcileTemporalBucketAuthoringFormat=D.reconcileTemporalBucketAuthoringFormat;exports.resolveTemporalBucketAuthoringFormat=D.resolveTemporalBucketAuthoringFormat;exports.resolveTemporalResultOwner=D.resolveTemporalResultOwner;exports.supportsCanonicalDashboardTemporalResult=D.supportsCanonicalDashboardTemporalResult;exports.transformComparisonDocument=D.transformComparisonDocument;exports.DashboardFilterMappingContractError=h.DashboardFilterMappingContractError;exports.applyCardReferenceRemapping=h.applyCardReferenceRemapping;exports.buildDashboardCardSourceIndex=h.buildDashboardCardSourceIndex;exports.composeCardReferenceRemapping=h.composeCardReferenceRemapping;exports.createDashboardFilterBindingId=h.createDashboardFilterBindingId;exports.dashboardCardFilterSourceInventoryContains=h.dashboardCardFilterSourceInventoryContains;exports.dashboardFilterTargetMatchesLogicalValue=h.dashboardFilterTargetMatchesLogicalValue;exports.dashboardFilterValueTypeForDataType=h.dashboardFilterValueTypeForDataType;exports.findDashboardCardExecutableSource=h.findDashboardCardExecutableSource;exports.findDashboardCardPinnedCatalogSource=h.findDashboardCardPinnedCatalogSource;exports.findDashboardSqlPinnedCatalogSource=h.findDashboardSqlPinnedCatalogSource;exports.getDashboardFilterSubscriptionHint=h.getDashboardFilterSubscriptionHint;exports.hasDashboardFilterSubscription=h.hasDashboardFilterSubscription;exports.isDashboardFilterOperationCompatible=h.isDashboardFilterOperationCompatible;exports.normalizeDashboardInputs=h.normalizeDashboardInputs;exports.requireNormalizedDashboardInputs=h.requireNormalizedDashboardInputs;exports.resolveDashboardFilterAutomaticTarget=h.resolveDashboardFilterAutomaticTarget;exports.resolveDashboardFilterInheritedTarget=h.resolveDashboardFilterInheritedTarget;exports.resolveDashboardSqlFilterTarget=h.resolveDashboardSqlFilterTarget;exports.resolveCanonicalDetailResultRawKey=X.resolveCanonicalDetailResultRawKey;exports.resolveCanonicalResultOutputKey=X.resolveCanonicalResultOutputKey;exports.resolveCanonicalResultRawKey=X.resolveCanonicalResultRawKey;exports.applyDashboardChangePlan=st;exports.compileDashboardFromPlan=et;exports.compileResponsiveDashboardLayouts=V;exports.dashboardAuthoringDatasetMatchesSource=z;exports.dashboardAuthoringFieldsReferToSameTarget=xe;exports.dashboardAuthoringSourceFromField=v;exports.dashboardAuthoringSourceKey=Fe;exports.dashboardAuthoringSourcesReferToSameDataset=Y;exports.dashboardPlanFromSemaphorDashboardIntent=St;exports.findDashboardAuthoringDatasetForSource=Pe;exports.getDashboardAuthoringCardSource=pe;exports.isMaterializableDashboardAuthoringSource=M;exports.isSemaphorSourceRef=de;exports.mergeDashboardAuthoringSources=B;exports.preferDashboardAuthoringSourceMetadata=ce;exports.preferredDashboardAuthoringSource=ke;exports.resolveDashboardAuthoringSource=le;exports.validateDashboardAuthoringDatasetScope=fe;exports.validateDashboardChangePlan=_e;exports.validateDashboardPlan=ye;
@@ -3,8 +3,8 @@ import { A as Rt, S as Bt, g as Pt, a as zt, i as Ot, p as qt, c as Vt, b as Lt,
3
3
  import { k as _e, ai as W, aj as we, y as ie, F as ve, B as Ce } from "../chunks/validators-D3AarM2T.js";
4
4
  import "../chunks/analyze-result-contract-DsiAzCYn.js";
5
5
  import "../value-format-preferences/index.js";
6
- import { m as O } from "../chunks/dashboard-filter-value-compatibility-BAatYtUS.js";
7
- import { D as Kt, t as Gt, b as Ut, s as Qt, o as Yt, d as Jt, g as Xt, p as Zt, f as en, a as tn, e as nn, j as rn, i as an, q as on, n as sn, l as dn, r as cn, h as ln, k as un } from "../chunks/dashboard-filter-value-compatibility-BAatYtUS.js";
6
+ import { m as O } from "../chunks/dashboard-filter-value-compatibility-DQkUs41q.js";
7
+ import { D as Kt, t as Gt, b as Ut, s as Qt, o as Yt, d as Jt, g as Xt, p as Zt, f as en, a as tn, e as nn, j as rn, i as an, q as on, n as sn, l as dn, r as cn, h as ln, k as un } from "../chunks/dashboard-filter-value-compatibility-DQkUs41q.js";
8
8
  import { n as Se } from "../chunks/operators-C8TxpM4C.js";
9
9
  import { a as pn, b as hn, r as mn } from "../chunks/canonical-result-keys-CEQefvdO.js";
10
10
  function _(e) {
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("react"),An=require("react-dom/client"),k=require("../chunks/index--0Il-Bpd.cjs"),w=require("../chunks/switch-Cpj3DrCZ.cjs"),Ze=require("../data-app-builder-browser-runtime/index.cjs"),te=require("../chunks/x-B6ghREd2.cjs"),Cn=require("../chunks/save-3dYRmehL.cjs"),Rn=require("../chunks/mouse-pointer-2-DX4A_XZw.cjs"),tt=require("../chunks/search-BqqhaMx9.cjs");function Tr(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const d=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(s,a,d.get?d:{enumerable:!0,get:()=>t[a]})}}return s.default=t,Object.freeze(s)}const Bn=Tr(p),Dn=Tr(An);/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("react"),An=require("react-dom/client"),k=require("../chunks/index-DhDfPZUu.cjs"),w=require("../chunks/switch-D12C40LN.cjs"),Ze=require("../data-app-builder-browser-runtime/index.cjs"),te=require("../chunks/x-B6ghREd2.cjs"),Cn=require("../chunks/save-3dYRmehL.cjs"),Rn=require("../chunks/mouse-pointer-2-DX4A_XZw.cjs"),tt=require("../chunks/search-BqqhaMx9.cjs");function Tr(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const d=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(s,a,d.get?d:{enumerable:!0,get:()=>t[a]})}}return s.default=t,Object.freeze(s)}const Bn=Tr(p),Dn=Tr(An);/**
2
2
  * @license lucide-react v0.453.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -2,8 +2,8 @@ import { jsx as r, jsxs as c, Fragment as re } from "react/jsx-runtime";
2
2
  import * as Zn from "react";
3
3
  import { useContext as qn, useState as x, useRef as oe, useMemo as je, useEffect as W, useCallback as Ot } from "react";
4
4
  import * as Xn from "react-dom/client";
5
- import { aL as ea, aM as ta, aN as Ir, aO as jr, aP as zr, aQ as ra, aR as Wr, aS as Hr, aT as Jr, aU as Vr, aV as _r, aW as Ur, aX as Gr, aY as na, aZ as aa, a_ as oa, a$ as Ht, b0 as on, R as Kr, b1 as sa, b2 as Vt, b3 as sn, b4 as ia, b5 as la } from "../chunks/index-DgGcVyUs.js";
6
- import { B as H, P as it, a as lt, b as dt, _ as da, $ as ca, a0 as ua, a1 as pa, a2 as ha, L as me, R as ma, d as _t } from "../chunks/switch-BsGTOjuD.js";
5
+ import { aL as ea, aM as ta, aN as Ir, aO as jr, aP as zr, aQ as ra, aR as Wr, aS as Hr, aT as Jr, aU as Vr, aV as _r, aW as Ur, aX as Gr, aY as na, aZ as aa, a_ as oa, a$ as Ht, b0 as on, R as Kr, b1 as sa, b2 as Vt, b3 as sn, b4 as ia, b5 as la } from "../chunks/index-CUCiMVzS.js";
6
+ import { B as H, P as it, a as lt, b as dt, _ as da, $ as ca, a0 as ua, a1 as pa, a2 as ha, L as me, R as ma, d as _t } from "../chunks/switch-LucIPRtD.js";
7
7
  import { loadSemaphorBrowserRuntime as ot } from "../data-app-builder-browser-runtime/index.js";
8
8
  import { c as Ve, X as He } from "../chunks/x-CXDkqdur.js";
9
9
  import { S as fa } from "../chunks/save-DgMfP0j8.js";
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index--0Il-Bpd.cjs"),u=require("./chunks/common-types-BCSbPclk.cjs"),P=require("./chunks/report-preferences-dialog-I0Pbn_Yb.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/switch-Cpj3DrCZ.cjs"),h=require("react"),N=require("./chunks/token-types-D9eN35rf.cjs"),l=require("./chunks/dashboard-briefing-launcher-7qAW16mO.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");require("./chunks/validators-DqIM0B3C.cjs");const w=require("./chunks/report-runtime-context-BfW4qiMJ.cjs"),T=require("./chunks/pivot-result-identity-BVnhG2rR.cjs");require("./chunks/analyze-result-contract-BX_nQmPN.cjs");require("./chunks/temporal-bucket-authoring-DueSgLJU.cjs");const B=require("./chunks/dashboard-filter-value-compatibility-Bco2gN96.cjs");require("./chunks/card-config-utils-D3Xuu0ub.cjs");require("react-dom");require("./chunks/appearance-context-DhyjbQk1.cjs");require("./chunks/color-CyB5o13F.cjs");require("./chunks/index-ByFbacH7.cjs");const A=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),L=require("./chunks/x-B6ghREd2.cjs");require("./chunks/appearance-runtime-provider-BgNYdUYH.cjs");function M(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const m=M(h);function j(a){const{displayPreferences:t,cardId:o,...d}=a,n={...d,id:a.dashboardId};return i.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:i.jsxs(e.SemaphorContextProvider,{dashboardProps:n,children:[i.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:a.cardId}),i.jsx(e.UXProvider,{appearance:a.appearance,children:i.jsx(e.DisplayPreferencesProvider,{displayPreferences:t,children:i.jsx(e.Container,{type:"visual",cardId:o,...n,children:i.jsx(I,{cardId:o})})})})]})})}function I({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:d}=h.useMemo(()=>{const n=t==null?void 0:t.flatMap(s=>s.frames),c=n==null?void 0:n.flatMap(s=>s==null?void 0:s.cards),D=c==null?void 0:c.find(s=>(s==null?void 0:s.id)===a),E=n==null?void 0:n.find(s=>{var C;return(C=s==null?void 0:s.cards)==null?void 0:C.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!d?i.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${a}`}):i.jsx("main",{className:"flex h-full grow flex-col",children:i.jsx(e.ErrorBoundary,{FallbackComponent:({error:n,resetErrorBoundary:c})=>i.jsx(e.FallbackVisual,{error:n,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:i.jsx(e.DashboardCard,{card:o,frame:d})})})}function q(a,t,o,d){h.useEffect(()=>{a&&!o&&t&&d(B.cloneDeep(t))},[a,o,t,d])}function U({name:a,items:t,value:o,onChange:d,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:C=!1}){const g=m.useRef(null),[y,b]=m.useState(!1),[S,F]=m.useState("100%"),x=C?[...t||[],{id:"none",name:"None"}]:t;m.useLayoutEffect(()=>{g.current&&F(g.current.offsetWidth)},[]);function v(){var f;return n?"Loading...":c?"Error":o?(f=t==null?void 0:t.find(p=>p.id===o))==null?void 0:f.name:`Select ${a}`}function _(f,p){d(p),b(!1)}return i.jsxs(r.Popover,{open:y,onOpenChange:b,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":y,className:r.cn("flex h-9 w-full justify-between",E),children:[i.jsxs("div",{className:"flex items-center gap-2",children:[s&&i.jsx("div",{className:"mr-2",children:s}),i.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),i.jsx(L.ChevronDown,{className:"size-4 opacity-50"})]})}),i.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:S},children:i.jsxs(e.Command,{children:[i.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[i.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),i.jsx(e.IconButton,{className:"h-7",onClick:D,children:i.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",n&&"animate-spin")})})]}),i.jsxs(e.CommandList,{children:[i.jsxs(e.CommandEmpty,{children:["No ",a==null?void 0:a.toLowerCase()," found."]}),i.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>i.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:p=>_(p,f.id),children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(r.Check,{className:r.cn("size-4",o===f.id?"opacity-100":"opacity-0")}),i.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function k(a,t){h.useEffect(()=>(a&&t&&(window.__SEMAPHOR_PRINT_STATE__={...t}),()=>{a&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[a,t])}exports.BriefingAuthor=e.BriefingAuthor;exports.BriefingAuthorDialog=e.BriefingAuthorDialog;exports.BriefingUiCapabilitiesBoundary=e.BriefingUiCapabilitiesBoundary;exports.BriefingUiCapabilitiesProvider=e.BriefingUiCapabilitiesProvider;exports.BriefingsApiError=e.BriefingsApiError;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.ExportError=e.ExportError;exports.MatrixTableVisual=e.MatrixTableVisual;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.applyBriefingFormPatch=e.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=e.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=e.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=e.briefingToFormDraft;exports.cancelBriefingPreviewRun=e.cancelBriefingPreviewRun;exports.cancelBriefingRun=e.cancelBriefingRun;exports.cancelExport=e.cancelExport;exports.createBriefing=e.createBriefing;exports.createBriefingFormDraft=e.createBriefingFormDraft;exports.createExport=e.createExport;exports.deleteBriefing=e.deleteBriefing;exports.deleteBriefingRun=e.deleteBriefingRun;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getBriefing=e.getBriefing;exports.getBriefingArtifact=e.getBriefingArtifact;exports.getBriefingEvidence=e.getBriefingEvidence;exports.getBriefingPreviewRun=e.getBriefingPreviewRun;exports.getBriefingRun=e.getBriefingRun;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listBriefingRuns=e.listBriefingRuns;exports.listBriefingTenantSummaries=e.listBriefingTenantSummaries;exports.listBriefings=e.listBriefings;exports.pauseBriefing=e.pauseBriefing;exports.polishBriefingText=e.polishBriefingText;exports.previewBriefingPlan=e.previewBriefingPlan;exports.resumeBriefing=e.resumeBriefing;exports.runBriefingNow=e.runBriefingNow;exports.runBriefingPreview=e.runBriefingPreview;exports.updateBriefing=e.updateBriefing;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useBriefingUiCapabilities=e.useBriefingUiCapabilities;exports.useCard=e.useCard;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useTextFilterHook=e.useTextFilterHook;exports.validateBriefingFormDraft=e.validateBriefingFormDraft;exports.CALCULATED_FIELD_ENTITY_MARKER=u.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=u.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=u.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=u.EMPTY_SELECTION;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=u.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=u.PivotMarkerEnum;exports.getFieldRuntimeColumnName=u.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=u.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=u.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=u.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=u.isCalculatedDimension;exports.isCalculatedField=u.isCalculatedField;exports.isCalculatedMetric=u.isCalculatedMetric;exports.ReportPreferencesDialog=P.ReportPreferencesDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=N.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=l.AdvancedModeToggle;exports.DashboardBriefingLauncher=l.DashboardBriefingLauncher;exports.DashboardControlsSettings=l.DashboardControlsSettings;exports.DashboardFilterControlsButton=l.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=l.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=l.DocumentControlsSettings;exports.ExportNotificationItem=l.ExportNotificationItem;exports.ExportNotificationList=l.ExportNotificationList;exports.NotificationBell=l.NotificationBell;exports.UnsavedChangesAlert=l.UnsavedChangesAlert;exports.VisualEditingControls=l.VisualEditingControls;exports.VisualsLibraryDialog=l.VisualsLibraryDialog;exports.WatchDashboardButton=l.WatchDashboardButton;exports.useExportPolling=l.useExportPolling;exports.useExportRecovery=l.useExportRecovery;exports.useDebouncedDirtyCheck=R.useDebouncedDirtyCheck;exports.DEFAULT_CALENDAR_CONTEXT=w.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.cloneDeep=B.cloneDeep;exports.normalizeDashboardForDirtyCheck=A.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=A.serializeDashboardForDirtyCheck;exports.Combobox=U;exports.Visual=j;exports.useExposePrintState=k;exports.usePristineSnapshotInitializer=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-DhDfPZUu.cjs"),u=require("./chunks/common-types-BCSbPclk.cjs"),P=require("./chunks/report-preferences-dialog--aV7ITSE.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/switch-D12C40LN.cjs"),h=require("react"),N=require("./chunks/token-types-D9eN35rf.cjs"),l=require("./chunks/dashboard-briefing-launcher-DWwSdfV7.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");require("./chunks/validators-DqIM0B3C.cjs");const w=require("./chunks/report-runtime-context-BfW4qiMJ.cjs"),T=require("./chunks/pivot-result-identity-BVnhG2rR.cjs");require("./chunks/analyze-result-contract-BX_nQmPN.cjs");require("./chunks/temporal-bucket-authoring-DueSgLJU.cjs");const B=require("./chunks/dashboard-filter-value-compatibility-ByT__CYM.cjs");require("./chunks/card-config-utils-D3Xuu0ub.cjs");require("react-dom");require("./chunks/appearance-context-DhyjbQk1.cjs");require("./chunks/color-CyB5o13F.cjs");require("./chunks/index-ByFbacH7.cjs");const A=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),L=require("./chunks/x-B6ghREd2.cjs");require("./chunks/appearance-runtime-provider-BgNYdUYH.cjs");function M(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const m=M(h);function j(a){const{displayPreferences:t,cardId:o,...d}=a,n={...d,id:a.dashboardId};return i.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:i.jsxs(e.SemaphorContextProvider,{dashboardProps:n,children:[i.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:a.cardId}),i.jsx(e.UXProvider,{appearance:a.appearance,children:i.jsx(e.DisplayPreferencesProvider,{displayPreferences:t,children:i.jsx(e.Container,{type:"visual",cardId:o,...n,children:i.jsx(I,{cardId:o})})})})]})})}function I({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:d}=h.useMemo(()=>{const n=t==null?void 0:t.flatMap(s=>s.frames),c=n==null?void 0:n.flatMap(s=>s==null?void 0:s.cards),D=c==null?void 0:c.find(s=>(s==null?void 0:s.id)===a),E=n==null?void 0:n.find(s=>{var C;return(C=s==null?void 0:s.cards)==null?void 0:C.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!d?i.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${a}`}):i.jsx("main",{className:"flex h-full grow flex-col",children:i.jsx(e.ErrorBoundary,{FallbackComponent:({error:n,resetErrorBoundary:c})=>i.jsx(e.FallbackVisual,{error:n,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:i.jsx(e.DashboardCard,{card:o,frame:d})})})}function q(a,t,o,d){h.useEffect(()=>{a&&!o&&t&&d(B.cloneDeep(t))},[a,o,t,d])}function U({name:a,items:t,value:o,onChange:d,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:C=!1}){const g=m.useRef(null),[y,b]=m.useState(!1),[S,F]=m.useState("100%"),x=C?[...t||[],{id:"none",name:"None"}]:t;m.useLayoutEffect(()=>{g.current&&F(g.current.offsetWidth)},[]);function v(){var f;return n?"Loading...":c?"Error":o?(f=t==null?void 0:t.find(p=>p.id===o))==null?void 0:f.name:`Select ${a}`}function _(f,p){d(p),b(!1)}return i.jsxs(r.Popover,{open:y,onOpenChange:b,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":y,className:r.cn("flex h-9 w-full justify-between",E),children:[i.jsxs("div",{className:"flex items-center gap-2",children:[s&&i.jsx("div",{className:"mr-2",children:s}),i.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),i.jsx(L.ChevronDown,{className:"size-4 opacity-50"})]})}),i.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:S},children:i.jsxs(e.Command,{children:[i.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[i.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),i.jsx(e.IconButton,{className:"h-7",onClick:D,children:i.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",n&&"animate-spin")})})]}),i.jsxs(e.CommandList,{children:[i.jsxs(e.CommandEmpty,{children:["No ",a==null?void 0:a.toLowerCase()," found."]}),i.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>i.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:p=>_(p,f.id),children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(r.Check,{className:r.cn("size-4",o===f.id?"opacity-100":"opacity-0")}),i.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function k(a,t){h.useEffect(()=>(a&&t&&(window.__SEMAPHOR_PRINT_STATE__={...t}),()=>{a&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[a,t])}exports.BriefingAuthor=e.BriefingAuthor;exports.BriefingAuthorDialog=e.BriefingAuthorDialog;exports.BriefingUiCapabilitiesBoundary=e.BriefingUiCapabilitiesBoundary;exports.BriefingUiCapabilitiesProvider=e.BriefingUiCapabilitiesProvider;exports.BriefingsApiError=e.BriefingsApiError;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.ExportError=e.ExportError;exports.MatrixTableVisual=e.MatrixTableVisual;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.applyBriefingFormPatch=e.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=e.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=e.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=e.briefingToFormDraft;exports.cancelBriefingPreviewRun=e.cancelBriefingPreviewRun;exports.cancelBriefingRun=e.cancelBriefingRun;exports.cancelExport=e.cancelExport;exports.createBriefing=e.createBriefing;exports.createBriefingFormDraft=e.createBriefingFormDraft;exports.createExport=e.createExport;exports.deleteBriefing=e.deleteBriefing;exports.deleteBriefingRun=e.deleteBriefingRun;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getBriefing=e.getBriefing;exports.getBriefingArtifact=e.getBriefingArtifact;exports.getBriefingEvidence=e.getBriefingEvidence;exports.getBriefingPreviewRun=e.getBriefingPreviewRun;exports.getBriefingRun=e.getBriefingRun;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listBriefingRuns=e.listBriefingRuns;exports.listBriefingTenantSummaries=e.listBriefingTenantSummaries;exports.listBriefings=e.listBriefings;exports.pauseBriefing=e.pauseBriefing;exports.polishBriefingText=e.polishBriefingText;exports.previewBriefingPlan=e.previewBriefingPlan;exports.resumeBriefing=e.resumeBriefing;exports.runBriefingNow=e.runBriefingNow;exports.runBriefingPreview=e.runBriefingPreview;exports.updateBriefing=e.updateBriefing;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useBriefingUiCapabilities=e.useBriefingUiCapabilities;exports.useCard=e.useCard;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useTextFilterHook=e.useTextFilterHook;exports.validateBriefingFormDraft=e.validateBriefingFormDraft;exports.CALCULATED_FIELD_ENTITY_MARKER=u.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=u.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=u.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=u.EMPTY_SELECTION;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=u.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=u.PivotMarkerEnum;exports.getFieldRuntimeColumnName=u.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=u.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=u.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=u.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=u.isCalculatedDimension;exports.isCalculatedField=u.isCalculatedField;exports.isCalculatedMetric=u.isCalculatedMetric;exports.ReportPreferencesDialog=P.ReportPreferencesDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=N.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=l.AdvancedModeToggle;exports.DashboardBriefingLauncher=l.DashboardBriefingLauncher;exports.DashboardControlsSettings=l.DashboardControlsSettings;exports.DashboardFilterControlsButton=l.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=l.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=l.DocumentControlsSettings;exports.ExportNotificationItem=l.ExportNotificationItem;exports.ExportNotificationList=l.ExportNotificationList;exports.NotificationBell=l.NotificationBell;exports.UnsavedChangesAlert=l.UnsavedChangesAlert;exports.VisualEditingControls=l.VisualEditingControls;exports.VisualsLibraryDialog=l.VisualsLibraryDialog;exports.WatchDashboardButton=l.WatchDashboardButton;exports.useExportPolling=l.useExportPolling;exports.useExportRecovery=l.useExportRecovery;exports.useDebouncedDirtyCheck=R.useDebouncedDirtyCheck;exports.DEFAULT_CALENDAR_CONTEXT=w.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.cloneDeep=B.cloneDeep;exports.normalizeDashboardForDirtyCheck=A.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=A.serializeDashboardForDirtyCheck;exports.Combobox=U;exports.Visual=j;exports.useExposePrintState=k;exports.usePristineSnapshotInitializer=q;
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { E as y, F as N, S, c as _, U as P, d as w, C as F, e as x, f as R, g as L, h as M, I, R as U, i as k, j as O, k as V, l as q } from "./chunks/index-DgGcVyUs.js";
2
- import { ak as xa, al as ya, am as ba, an as Ta, V as va, G as Aa, D as Ba, A as Na, z as Sa, w as _a, b as Pa, au as wa, M as Fa, n as Ra, q as La, q as Ma, r as Ia, B as Ua, a as ka, af as Oa, ah as Va, ai as qa, ag as za, a6 as Wa, a9 as ja, at as Qa, Z as Ha, ae as Ka, ap as Ga, a1 as Ya, aa as Xa, y as $a, x as Ja, ax as Za, Y as ae, ab as ee, ac as se, a5 as re, a8 as oe, as as ie, ar as te, aq as ne, aw as le, av as ue, a7 as de, X as ce, W as fe, $ as pe, ad as me, a3 as he, a0 as ge, a2 as Ce, a4 as De, _ as Ee, P as xe, L as ye, ao as be, v as Te, J as ve, t as Ae, m as Be, H as Ne, K as Se, o as _e, T as Pe, O as we, N as Fe, Q as Re, u as Le, s as Me, p as Ie, aj as Ue } from "./chunks/index-DgGcVyUs.js";
1
+ import { E as y, F as N, S, c as _, U as P, d as w, C as F, e as x, f as R, g as L, h as M, I, R as U, i as k, j as O, k as V, l as q } from "./chunks/index-CUCiMVzS.js";
2
+ import { ak as xa, al as ya, am as ba, an as Ta, V as va, G as Aa, D as Ba, A as Na, z as Sa, w as _a, b as Pa, au as wa, M as Fa, n as Ra, q as La, q as Ma, r as Ia, B as Ua, a as ka, af as Oa, ah as Va, ai as qa, ag as za, a6 as Wa, a9 as ja, at as Qa, Z as Ha, ae as Ka, ap as Ga, a1 as Ya, aa as Xa, y as $a, x as Ja, ax as Za, Y as ae, ab as ee, ac as se, a5 as re, a8 as oe, as as ie, ar as te, aq as ne, aw as le, av as ue, a7 as de, X as ce, W as fe, $ as pe, ad as me, a3 as he, a0 as ge, a2 as Ce, a4 as De, _ as Ee, P as xe, L as ye, ao as be, v as Te, J as ve, t as Ae, m as Be, H as Ne, K as Se, o as _e, T as Pe, O as we, N as Fe, Q as Re, u as Le, s as Me, p as Ie, aj as Ue } from "./chunks/index-CUCiMVzS.js";
3
3
  import { a as Oe, C as Ve, D as qe, E as ze, L as We, P as je, g as Qe, d as He, h as Ke, e as Ge, b as Ye, c as Xe, i as $e } from "./chunks/common-types-D3r4PILe.js";
4
- import { R as Ze } from "./chunks/report-preferences-dialog-Bytgubvz.js";
4
+ import { R as Ze } from "./chunks/report-preferences-dialog-DKq0k5BH.js";
5
5
  import { jsx as a, jsxs as u } from "react/jsx-runtime";
6
- import { u as z, P as W, a as j, B as Q, c as C, b as H, d as K } from "./chunks/switch-BsGTOjuD.js";
7
- import { A as es, n as ss, e as rs, f as os, g as is, p as ts, o as ns, s as ls, t as us, m as ds, i as cs, l as fs, q as ps, k as ms, j as hs, h as gs, v as Cs, r as Ds, w as Es, y as xs, x as ys, z as bs, E as Ts, D as vs } from "./chunks/switch-BsGTOjuD.js";
6
+ import { u as z, P as W, a as j, B as Q, c as C, b as H, d as K } from "./chunks/switch-LucIPRtD.js";
7
+ import { A as es, n as ss, e as rs, f as os, g as is, p as ts, o as ns, s as ls, t as us, m as ds, i as cs, l as fs, q as ps, k as ms, j as hs, h as gs, v as Cs, r as Ds, w as Es, y as xs, x as ys, z as bs, E as Ts, D as vs } from "./chunks/switch-LucIPRtD.js";
8
8
  import * as p from "react";
9
9
  import { useMemo as G, useEffect as b } from "react";
10
10
  import { D as Bs } from "./chunks/token-types-Dvomvqw0.js";
11
- import { A as Ss, g as _s, D as Ps, e as ws, f as Fs, d as Rs, b as Ls, E as Ms, N as Is, U as Us, a as ks, V as Os, W as Vs, u as qs, c as zs } from "./chunks/dashboard-briefing-launcher-DAhtLQPc.js";
11
+ import { A as Ss, g as _s, D as Ps, e as ws, f as Fs, d as Rs, b as Ls, E as Ms, N as Is, U as Us, a as ks, V as Os, W as Vs, u as qs, c as zs } from "./chunks/dashboard-briefing-launcher-Dk4yNOLY.js";
12
12
  import { u as js } from "./chunks/use-debounced-dirty-check-BwAbnX_5.js";
13
13
  import "./value-format-preferences/index.js";
14
14
  import "./chunks/validators-D3AarM2T.js";
@@ -16,7 +16,7 @@ import { D as Hs } from "./chunks/report-runtime-context-B_pAmqxl.js";
16
16
  import { r as Gs, a as Ys } from "./chunks/pivot-result-identity-BIeP9v8I.js";
17
17
  import "./chunks/analyze-result-contract-DsiAzCYn.js";
18
18
  import "./chunks/temporal-bucket-authoring-CyTCHy1K.js";
19
- import { c as Y } from "./chunks/dashboard-filter-value-compatibility-BAatYtUS.js";
19
+ import { c as Y } from "./chunks/dashboard-filter-value-compatibility-DQkUs41q.js";
20
20
  import "./chunks/card-config-utils-CyDKaPNT.js";
21
21
  import "react-dom";
22
22
  import "./chunks/appearance-context-DVXt8qjW.js";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index--0Il-Bpd.cjs"),r=require("../chunks/common-types-BCSbPclk.cjs"),o=require("../chunks/report-preferences-dialog-I0Pbn_Yb.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-DhDfPZUu.cjs"),r=require("../chunks/common-types-BCSbPclk.cjs"),o=require("../chunks/report-preferences-dialog--aV7ITSE.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-DgGcVyUs.js";
1
+ import { b as a, a as o } from "../chunks/index-CUCiMVzS.js";
2
2
  import { C as f, E } from "../chunks/common-types-D3r4PILe.js";
3
- import { R as t } from "../chunks/report-preferences-dialog-Bytgubvz.js";
3
+ import { R as t } from "../chunks/report-preferences-dialog-DKq0k5BH.js";
4
4
  export {
5
5
  f as CONTROL_CARD_DEFAULT_VALUE,
6
6
  a as DisplayFormatPreferencesFields,
@@ -1649,7 +1649,7 @@ declare type EmailSettings = {
1649
1649
  senderTitle: string;
1650
1650
  };
1651
1651
 
1652
- declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
1652
+ declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
1653
1653
  kind: 'filter';
1654
1654
  filter: TFilter;
1655
1655
  filterReference?: never;
@@ -1764,6 +1764,12 @@ declare interface FilterCondition {
1764
1764
 
1765
1765
  declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
1766
1766
 
1767
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
1768
+ declare type FilterDashboardInputBase = DashboardInputBase & {
1769
+ /** Empty selections restore the authored default; viewers may replace it. */
1770
+ forceSelection?: boolean;
1771
+ };
1772
+
1767
1773
  /**
1768
1774
  * Display mode for individual filters
1769
1775
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -2380,7 +2386,7 @@ declare type RawTemporalPresentationTarget = {
2380
2386
  columnKey: string;
2381
2387
  };
2382
2388
 
2383
- declare type ReferencedFilterDashboardInput = DashboardInputBase & {
2389
+ declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
2384
2390
  kind: 'filter';
2385
2391
  filter?: never;
2386
2392
  filterReference: {
@@ -1495,7 +1495,7 @@ declare type EmailSettings = {
1495
1495
  senderTitle: string;
1496
1496
  };
1497
1497
 
1498
- declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
1498
+ declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
1499
1499
  kind: 'filter';
1500
1500
  filter: TFilter;
1501
1501
  filterReference?: never;
@@ -1610,6 +1610,12 @@ declare interface FilterCondition {
1610
1610
 
1611
1611
  declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
1612
1612
 
1613
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
1614
+ declare type FilterDashboardInputBase = DashboardInputBase & {
1615
+ /** Empty selections restore the authored default; viewers may replace it. */
1616
+ forceSelection?: boolean;
1617
+ };
1618
+
1613
1619
  /**
1614
1620
  * Display mode for individual filters
1615
1621
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -2082,7 +2088,7 @@ export declare type NormalizeDashboardInputsResult = {
2082
2088
  declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
2083
2089
 
2084
2090
  /** Runtime form after dashboard-filter references are resolved once. */
2085
- declare type NormalizedFilterDashboardInput = DashboardInputBase & {
2091
+ declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
2086
2092
  kind: 'filter';
2087
2093
  filter: TFilter;
2088
2094
  optionSource?: DashboardFilterOptionSource;
@@ -2219,7 +2225,7 @@ declare type RangeValue = {
2219
2225
 
2220
2226
  export declare function reconcileTemporalBucketAuthoringFormat(format: TemporalBucketFormat, granularity: SemaphorTimeGrain): TemporalBucketFormat;
2221
2227
 
2222
- declare type ReferencedFilterDashboardInput = DashboardInputBase & {
2228
+ declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
2223
2229
  kind: 'filter';
2224
2230
  filter?: never;
2225
2231
  filterReference: {
@@ -1502,7 +1502,7 @@ export declare type EmailSettings = {
1502
1502
  senderTitle: string;
1503
1503
  };
1504
1504
 
1505
- export declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
1505
+ export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
1506
1506
  kind: 'filter';
1507
1507
  filter: TFilter;
1508
1508
  filterReference?: never;
@@ -1630,6 +1630,12 @@ declare interface FilterCondition {
1630
1630
 
1631
1631
  export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
1632
1632
 
1633
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
1634
+ declare type FilterDashboardInputBase = DashboardInputBase & {
1635
+ /** Empty selections restore the authored default; viewers may replace it. */
1636
+ forceSelection?: boolean;
1637
+ };
1638
+
1633
1639
  /**
1634
1640
  * Display mode for individual filters
1635
1641
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -2150,7 +2156,7 @@ declare type NoneOptions = {};
2150
2156
  export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
2151
2157
 
2152
2158
  /** Runtime form after dashboard-filter references are resolved once. */
2153
- export declare type NormalizedFilterDashboardInput = DashboardInputBase & {
2159
+ export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
2154
2160
  kind: 'filter';
2155
2161
  filter: TFilter;
2156
2162
  optionSource?: DashboardFilterOptionSource;
@@ -2317,7 +2323,7 @@ declare type RawTemporalPresentationTarget = {
2317
2323
  columnKey: string;
2318
2324
  };
2319
2325
 
2320
- export declare type ReferencedFilterDashboardInput = DashboardInputBase & {
2326
+ export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
2321
2327
  kind: 'filter';
2322
2328
  filter?: never;
2323
2329
  filterReference: {
@@ -46,10 +46,12 @@ declare type Actions_2 = {
46
46
  updateFilterDashboardInputDefinition: (inputId: string, filter: TFilter, metadata?: {
47
47
  variableName?: string;
48
48
  label?: string;
49
+ forceSelection?: boolean;
50
+ exports?: DashboardInput['exports'];
49
51
  }) => void;
50
- acceptDashboardFilterOptionSource: (updatedFilter: TFilter, optionSource: DashboardFilterOptionSource, settings?: DashboardFilterAuthoringSettingsUpdate, inputMetadata?: {
52
+ acceptDashboardFilterInput: (updatedFilter: TFilter, optionSource: DashboardFilterOptionSource | undefined, settings?: DashboardFilterAuthoringSettingsUpdate, inputMetadata?: {
51
53
  variableName?: string;
52
- }) => DashboardFilterOptionSourceAcceptanceResult;
54
+ }) => DashboardFilterInputAcceptanceResult;
53
55
  acceptDashboardFilterMapping: (request: DashboardFilterMappingAuthoringRequest, updatedFilter?: TFilter, settings?: DashboardFilterAuthoringSettingsUpdate) => DashboardFilterMappingAcceptanceResult;
54
56
  disableDashboardFilterMapping: (filterId: string, updatedFilter?: TFilter, settings?: DashboardFilterAuthoringSettingsUpdate) => DashboardFilterMappingDisableResult;
55
57
  removeDashboardInput: (inputId: string) => void;
@@ -2074,11 +2076,12 @@ export declare type DashboardFilterApplication = {
2074
2076
  };
2075
2077
 
2076
2078
  declare type DashboardFilterAuthoringSettingsUpdate = {
2077
- defaultValueChanged: boolean;
2078
- defaultFilterValue?: TFilterValue;
2079
- defaultComparisonChanged: boolean;
2079
+ forceSelection?: boolean;
2080
+ /** Explicit reset of a persisted default slot that may lack a backing default. */
2081
+ defaultValueChanged?: boolean;
2082
+ defaultComparisonChanged?: boolean;
2080
2083
  defaultComparisonSelection?: GlobalDateComparisonSelection;
2081
- target: DashboardInputRuntimeTarget;
2084
+ target?: DashboardInputRuntimeTarget;
2082
2085
  optionSourceChanged?: boolean;
2083
2086
  optionSource?: DashboardFilterOptionSource;
2084
2087
  /** Raw selection identity changed; the previous runtime value is invalid. */
@@ -2160,6 +2163,15 @@ export declare type DashboardFilterExcludedCardApplication = {
2160
2163
  cardId: string;
2161
2164
  };
2162
2165
 
2166
+ declare type DashboardFilterInputAcceptanceResult = {
2167
+ ok: true;
2168
+ input: ReferencedFilterDashboardInput;
2169
+ created: boolean;
2170
+ } | {
2171
+ ok: false;
2172
+ issues: DashboardFilterMappingAuthoringIssue[];
2173
+ };
2174
+
2163
2175
  declare type DashboardFilterMappingAcceptanceResult = {
2164
2176
  ok: true;
2165
2177
  draft: DashboardFilterMappingDraft;
@@ -2255,15 +2267,6 @@ declare type DashboardFilterMappingDraftStatus = 'pendingSource' | 'automatic' |
2255
2267
  /** Persisted label/value option definition for a mapped dashboard filter. */
2256
2268
  export declare type DashboardFilterOptionSource = SemaphorInputOptionSource;
2257
2269
 
2258
- declare type DashboardFilterOptionSourceAcceptanceResult = {
2259
- ok: true;
2260
- input: ReferencedFilterDashboardInput;
2261
- created: boolean;
2262
- } | {
2263
- ok: false;
2264
- issues: DashboardFilterMappingAuthoringIssue[];
2265
- };
2266
-
2267
2270
  export declare type DashboardFilterTarget = {
2268
2271
  kind: 'field';
2269
2272
  field: DashboardFilterTargetField;
@@ -3463,7 +3466,7 @@ export declare type EmailSettings = {
3463
3466
  senderTitle: string;
3464
3467
  };
3465
3468
 
3466
- export declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
3469
+ export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
3467
3470
  kind: 'filter';
3468
3471
  filter: TFilter;
3469
3472
  filterReference?: never;
@@ -3764,6 +3767,12 @@ export declare interface FilterCondition {
3764
3767
 
3765
3768
  export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
3766
3769
 
3770
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
3771
+ declare type FilterDashboardInputBase = DashboardInputBase & {
3772
+ /** Empty selections restore the authored default; viewers may replace it. */
3773
+ forceSelection?: boolean;
3774
+ };
3775
+
3767
3776
  /**
3768
3777
  * Display mode for individual filters
3769
3778
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -4941,7 +4950,7 @@ export declare function normalizeDashboardForDirtyCheck(dashboard: TDashboard |
4941
4950
  export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
4942
4951
 
4943
4952
  /** Runtime form after dashboard-filter references are resolved once. */
4944
- export declare type NormalizedFilterDashboardInput = DashboardInputBase & {
4953
+ export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
4945
4954
  kind: 'filter';
4946
4955
  filter: TFilter;
4947
4956
  optionSource?: DashboardFilterOptionSource;
@@ -5277,7 +5286,7 @@ declare type RawTemporalValueMetadata = {
5277
5286
  valueKind: RawTemporalValueKind;
5278
5287
  };
5279
5288
 
5280
- export declare type ReferencedFilterDashboardInput = DashboardInputBase & {
5289
+ export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
5281
5290
  kind: 'filter';
5282
5291
  filter?: never;
5283
5292
  filterReference: {
@@ -1156,7 +1156,7 @@ declare type EmailSettings = {
1156
1156
  senderTitle: string;
1157
1157
  };
1158
1158
 
1159
- declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
1159
+ declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
1160
1160
  kind: 'filter';
1161
1161
  filter: TFilter;
1162
1162
  filterReference?: never;
@@ -1271,6 +1271,12 @@ declare interface FilterCondition {
1271
1271
 
1272
1272
  declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
1273
1273
 
1274
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
1275
+ declare type FilterDashboardInputBase = DashboardInputBase & {
1276
+ /** Empty selections restore the authored default; viewers may replace it. */
1277
+ forceSelection?: boolean;
1278
+ };
1279
+
1274
1280
  /**
1275
1281
  * Display mode for individual filters
1276
1282
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -1782,7 +1788,7 @@ declare type RangeValue = {
1782
1788
  gt?: string | number;
1783
1789
  };
1784
1790
 
1785
- declare type ReferencedFilterDashboardInput = DashboardInputBase & {
1791
+ declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
1786
1792
  kind: 'filter';
1787
1793
  filter?: never;
1788
1794
  filterReference: {
@@ -1515,7 +1515,7 @@ export declare type EmailSettings = {
1515
1515
  senderTitle: string;
1516
1516
  };
1517
1517
 
1518
- export declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
1518
+ export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
1519
1519
  kind: 'filter';
1520
1520
  filter: TFilter;
1521
1521
  filterReference?: never;
@@ -1643,6 +1643,12 @@ declare interface FilterCondition {
1643
1643
 
1644
1644
  export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
1645
1645
 
1646
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
1647
+ declare type FilterDashboardInputBase = DashboardInputBase & {
1648
+ /** Empty selections restore the authored default; viewers may replace it. */
1649
+ forceSelection?: boolean;
1650
+ };
1651
+
1646
1652
  /**
1647
1653
  * Display mode for individual filters
1648
1654
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -2163,7 +2169,7 @@ declare type NoneOptions = {};
2163
2169
  export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
2164
2170
 
2165
2171
  /** Runtime form after dashboard-filter references are resolved once. */
2166
- export declare type NormalizedFilterDashboardInput = DashboardInputBase & {
2172
+ export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
2167
2173
  kind: 'filter';
2168
2174
  filter: TFilter;
2169
2175
  optionSource?: DashboardFilterOptionSource;
@@ -2330,7 +2336,7 @@ declare type RawTemporalPresentationTarget = {
2330
2336
  columnKey: string;
2331
2337
  };
2332
2338
 
2333
- export declare type ReferencedFilterDashboardInput = DashboardInputBase & {
2339
+ export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
2334
2340
  kind: 'filter';
2335
2341
  filter?: never;
2336
2342
  filterReference: {
@@ -2087,7 +2087,7 @@ export declare type EmailSettings = {
2087
2087
  senderTitle: string;
2088
2088
  };
2089
2089
 
2090
- export declare type EmbeddedFilterDashboardInput = DashboardInputBase & {
2090
+ export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
2091
2091
  kind: 'filter';
2092
2092
  filter: TFilter;
2093
2093
  filterReference?: never;
@@ -2225,6 +2225,12 @@ export declare interface FilterCondition {
2225
2225
 
2226
2226
  export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
2227
2227
 
2228
+ /** Filter-only lifecycle policy, independent of requiredAtExecution. */
2229
+ declare type FilterDashboardInputBase = DashboardInputBase & {
2230
+ /** Empty selections restore the authored default; viewers may replace it. */
2231
+ forceSelection?: boolean;
2232
+ };
2233
+
2228
2234
  /**
2229
2235
  * Display mode for individual filters
2230
2236
  * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
@@ -3052,7 +3058,7 @@ declare type NoneOptions = {};
3052
3058
  export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
3053
3059
 
3054
3060
  /** Runtime form after dashboard-filter references are resolved once. */
3055
- export declare type NormalizedFilterDashboardInput = DashboardInputBase & {
3061
+ export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
3056
3062
  kind: 'filter';
3057
3063
  filter: TFilter;
3058
3064
  optionSource?: DashboardFilterOptionSource;
@@ -3358,7 +3364,7 @@ declare type RawTemporalValueMetadata = {
3358
3364
  valueKind: RawTemporalValueKind;
3359
3365
  };
3360
3366
 
3361
- export declare type ReferencedFilterDashboardInput = DashboardInputBase & {
3367
+ export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
3362
3368
  kind: 'filter';
3363
3369
  filter?: never;
3364
3370
  filterReference: {
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "email": "support@semaphor.cloud"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "0.1.478",
8
+ "version": "0.1.479",
9
9
  "description": "Fully interactive and customizable dashboards for your apps.",
10
10
  "keywords": [
11
11
  "react",