react-semaphor 0.1.381 → 0.1.383

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 (86) hide show
  1. package/DATA_APP_SDK.md +238 -0
  2. package/README.md +7 -0
  3. package/dist/analytics-protocol/index.cjs +1 -1
  4. package/dist/analytics-protocol/index.js +45 -41
  5. package/dist/brand-studio/index.cjs +4 -4
  6. package/dist/brand-studio/index.js +28 -28
  7. package/dist/chunks/analyze-result-contract-CtXfp3nv.js +1 -0
  8. package/dist/chunks/analyze-result-contract-DuhlklhI.js +102 -0
  9. package/dist/chunks/{braces-DOxxfERN.js → braces--20GzUQh.js} +1 -1
  10. package/dist/chunks/{braces-BT-ZyB-g.js → braces-C0Vh_Mft.js} +1 -1
  11. package/dist/chunks/{calendar-preferences-dialog-Dsgs8WDv.js → calendar-preferences-dialog-B-VsxhsA.js} +4 -4
  12. package/dist/chunks/calendar-preferences-dialog-DE67Z3oQ.js +1 -0
  13. package/dist/chunks/catalog-field-grounding-Bnx-3tE0.js +1 -0
  14. package/dist/chunks/catalog-field-grounding-CJKAqtiC.js +100 -0
  15. package/dist/chunks/{dashboard-briefing-launcher-Coks66cV.js → dashboard-briefing-launcher-BIj3X7b3.js} +108 -107
  16. package/dist/chunks/dashboard-briefing-launcher-Czx6BcXW.js +80 -0
  17. package/dist/chunks/dashboard-controls-BP-DcPFs.js +52 -0
  18. package/dist/chunks/{dashboard-controls-BfkcnIdy.js → dashboard-controls-BXxucM4f.js} +115 -114
  19. package/dist/chunks/dashboard-json-BNwshkK2.js +1 -0
  20. package/dist/chunks/{dashboard-json-DjXi4cI6.js → dashboard-json-C6oZuipD.js} +9 -9
  21. package/dist/chunks/edit-dashboard-visual-BAprin3J.js +178 -0
  22. package/dist/chunks/{edit-dashboard-visual-DOW1Ap1N.js → edit-dashboard-visual-CmfrI_L3.js} +1278 -1277
  23. package/dist/chunks/{index-CkoRCh3g.js → index-4W_ElSBJ.js} +219 -239
  24. package/dist/chunks/{index-DlprYjr6.js → index-icb12JV1.js} +900 -952
  25. package/dist/chunks/{layout-grid-DccceHv4.js → layout-grid-B7-klXiK.js} +1 -1
  26. package/dist/chunks/{layout-grid-DTbOIOsE.js → layout-grid-DV89AC9_.js} +1 -1
  27. package/dist/chunks/operators-C8TxpM4C.js +48 -0
  28. package/dist/chunks/operators-DrTQsJXv.js +1 -0
  29. package/dist/chunks/{palette-DCzLwqIw.js → palette-5IwhMbSF.js} +1 -1
  30. package/dist/chunks/{palette-SimHJELn.js → palette-Dj-dgPYh.js} +1 -1
  31. package/dist/chunks/{save-zNVYH02T.js → save-16C6YSW2.js} +1 -1
  32. package/dist/chunks/{save-D2O96E5A.js → save-C5fwVdTF.js} +1 -1
  33. package/dist/chunks/search-0LmWwZzW.js +57 -0
  34. package/dist/chunks/search-Dq1Mbb03.js +21 -0
  35. package/dist/chunks/{source-identity-Dj3dryN9.js → source-identity-CN4xiyKJ.js} +5 -5
  36. package/dist/chunks/{switch-DMPsMpHW.js → switch-DUdaHFZQ.js} +2328 -2414
  37. package/dist/chunks/{switch-Jhyl63RF.js → switch-bdJp0Bkw.js} +29 -54
  38. package/dist/chunks/use-create-flow-overlay-state-BIHKf_XK.js +21 -0
  39. package/dist/chunks/{use-create-flow-overlay-state-r5JKyXU8.js → use-create-flow-overlay-state-YvqCp6Zo.js} +75 -75
  40. package/dist/chunks/{validators-CtNmgsvG.js → validators-CHPH6ORs.js} +641 -498
  41. package/dist/chunks/validators-lWo8m0Q7.js +1 -0
  42. package/dist/chunks/x-B_cx7LwM.js +26 -0
  43. package/dist/chunks/x-IdR_js6f.js +139 -0
  44. package/dist/dashboard/index.cjs +1 -1
  45. package/dist/dashboard/index.js +1 -1
  46. package/dist/dashboard-authoring/index.cjs +3 -3
  47. package/dist/dashboard-authoring/index.js +105 -92
  48. package/dist/data-app-builder/index.cjs +23 -23
  49. package/dist/data-app-builder/index.js +17 -15
  50. package/dist/data-app-sdk/index.cjs +68 -1
  51. package/dist/data-app-sdk/index.js +2731 -384
  52. package/dist/data-app-sdk-adapters/index.cjs +1 -0
  53. package/dist/data-app-sdk-adapters/index.js +383 -0
  54. package/dist/data-app-sdk-validation/index.cjs +1 -1
  55. package/dist/data-app-sdk-validation/index.js +1073 -6
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.js +15 -15
  58. package/dist/surfboard/index.cjs +1 -1
  59. package/dist/surfboard/index.js +2 -2
  60. package/dist/types/analytics-protocol.d.ts +58 -31
  61. package/dist/types/dashboard-assistant.d.ts +40 -15
  62. package/dist/types/dashboard-authoring.d.ts +36 -16
  63. package/dist/types/dashboard.d.ts +8 -8
  64. package/dist/types/data-app-builder.d.ts +35 -11
  65. package/dist/types/data-app-sdk-adapters.d.ts +733 -0
  66. package/dist/types/data-app-sdk-validation.d.ts +85 -25
  67. package/dist/types/data-app-sdk.d.ts +217 -147
  68. package/dist/types/main.d.ts +35 -11
  69. package/dist/types/shared.d.ts +8 -8
  70. package/dist/types/surfboard.d.ts +8 -8
  71. package/dist/types/types.d.ts +8 -8
  72. package/package.json +9 -2
  73. package/src/data-app-sdk/README.md +240 -0
  74. package/dist/chunks/calendar-preferences-dialog-iZs8XqyH.js +0 -1
  75. package/dist/chunks/catalog-field-grounding-8L9I0zdg.js +0 -1
  76. package/dist/chunks/catalog-field-grounding-BK4BX8sZ.js +0 -200
  77. package/dist/chunks/dashboard-briefing-launcher-B5vPTl8P.js +0 -80
  78. package/dist/chunks/dashboard-controls-Dyqye6fh.js +0 -52
  79. package/dist/chunks/dashboard-json-CV_LnO9x.js +0 -1
  80. package/dist/chunks/edit-dashboard-visual-yinO0yU-.js +0 -178
  81. package/dist/chunks/index-BxM99sFL.js +0 -1
  82. package/dist/chunks/index-CuHybtft.js +0 -51
  83. package/dist/chunks/use-create-flow-overlay-state-NsqFPwdB.js +0 -21
  84. package/dist/chunks/validation-BM3-ShHV.js +0 -1003
  85. package/dist/chunks/validation-BVpqRFar.js +0 -1
  86. package/dist/chunks/validators-jpoYhpHh.js +0 -1
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-CkoRCh3g.js"),d=require("./chunks/common-types-C73-Ud1-.js"),N=require("./chunks/calendar-preferences-dialog-iZs8XqyH.js"),t=require("react/jsx-runtime"),a=require("./chunks/switch-Jhyl63RF.js"),C=require("react"),y=require("./types/index.cjs"),r=require("./chunks/dashboard-briefing-launcher-B5vPTl8P.js"),P=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("./chunks/catalog-field-grounding-8L9I0zdg.js");require("react-dom");require("./chunks/index-DRlMUglg.js");const S=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js");require("./chunks/index-BxM99sFL.js");function _(i){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const n in i)if(n!=="default"){const u=Object.getOwnPropertyDescriptor(i,n);Object.defineProperty(o,n,u.get?u:{enumerable:!0,get:()=>i[n]})}}return o.default=i,Object.freeze(o)}const h=_(C);function R(i){const{displayPreferences:o,cardId:n,...u}=i,s={...u,id:i.dashboardId};return t.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:t.jsxs(e.SemaphorContextProvider,{dashboardProps:s,children:[t.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:i.cardId}),t.jsx(e.UXProvider,{appearance:i.appearance,children:t.jsx(e.DisplayPreferencesProvider,{displayPreferences:o,children:t.jsx(e.Container,{type:"visual",cardId:n,...s,children:t.jsx(w,{cardId:n})})})})]})})}function w({cardId:i}){const o=a.useDashboardStore(s=>{var c;return(c=s.dashboard)==null?void 0:c.sheets}),{card:n,frame:u}=C.useMemo(()=>{const s=o==null?void 0:o.flatMap(l=>l.frames),c=s==null?void 0:s.flatMap(l=>l==null?void 0:l.cards),D=c==null?void 0:c.find(l=>(l==null?void 0:l.id)===i),E=s==null?void 0:s.find(l=>{var p;return(p=l==null?void 0:l.cards)==null?void 0:p.find(g=>(g==null?void 0:g.id)===i)});return{card:D,frame:E}},[o,i]);return!n||!u?t.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${i}`}):t.jsx("main",{className:"flex h-full grow flex-col",children:t.jsx(e.ErrorBoundary,{FallbackComponent:({error:s,resetErrorBoundary:c})=>t.jsx(e.FallbackVisual,{error:s,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:t.jsx(e.DashboardCard,{card:n,frame:u})})})}function j(i,o,n,u){C.useEffect(()=>{i&&!n&&o&&u(e.cloneDeep(o))},[i,n,o,u])}function L({name:i,items:o,value:n,onChange:u,isLoading:s,isError:c,refetch:D,className:E,icon:l,showNone:p=!1}){const g=h.useRef(null),[b,T]=h.useState(!1),[B,A]=h.useState("100%"),x=p?[...o||[],{id:"none",name:"None"}]:o;h.useLayoutEffect(()=>{g.current&&A(g.current.offsetWidth)},[]);function v(){var f;return s?"Loading...":c?"Error":n?(f=o==null?void 0:o.find(m=>m.id===n))==null?void 0:f.name:`Select ${i}`}function F(f,m){u(m),T(!1)}return t.jsxs(a.Popover,{open:b,onOpenChange:T,children:[t.jsx(a.PopoverTrigger,{asChild:!0,children:t.jsxs(a.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":b,className:a.cn("flex h-9 w-full justify-between",E),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[l&&t.jsx("div",{className:"mr-2",children:l}),t.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),t.jsx(a.ChevronDown,{className:"size-4 opacity-50"})]})}),t.jsx(a.PopoverContent,{className:"w-full p-0",style:{minWidth:B},children:t.jsxs(e.Command,{children:[t.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[t.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),t.jsx(e.IconButton,{className:"h-7",onClick:D,children:t.jsx(e.RefreshCw,{className:a.cn("size-3.5 opacity-50",s&&"animate-spin")})})]}),t.jsxs(e.CommandList,{children:[t.jsxs(e.CommandEmpty,{children:["No ",i==null?void 0:i.toLowerCase()," found."]}),t.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>t.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:m=>F(m,f.id),children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(a.Check,{className:a.cn("size-4",n===f.id?"opacity-100":"opacity-0")}),t.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function M(i,o){C.useEffect(()=>(i&&o&&(window.__SEMAPHOR_PRINT_STATE__={...o}),()=>{i&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[i,o])}exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;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.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createExport=e.createExport;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;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.CALCULATED_FIELD_ENTITY_MARKER=d.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=d.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=d.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=d.EMPTY_SELECTION;exports.PivotMarkerEnum=d.PivotMarkerEnum;exports.getFieldRuntimeColumnName=d.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=d.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=d.hasCalculatedFormulaInputs;exports.isCalculatedDimension=d.isCalculatedDimension;exports.isCalculatedField=d.isCalculatedField;exports.isCalculatedMetric=d.isCalculatedMetric;exports.CalendarPreferencesDialog=N.CalendarPreferencesDialog;exports.createEmptyKpiConfig=a.createEmptyKpiConfig;exports.createSqlGenConfig=a.createSqlGenConfig;exports.emitDashboardLoad=a.emitDashboardLoad;exports.emitDashboardUnload=a.emitDashboardUnload;exports.fmt=a.fmt;exports.getColumnDataType=a.getColumnDataType;exports.getFilterValueType=a.getFilterValueType;exports.getFormattedTableNameForQuery=a.getFormattedTableNameForQuery;exports.getQualifiedTableName=a.getQualifiedTableName;exports.getSql=a.getSql;exports.invalidateToken=a.invalidateToken;exports.isBooleanDataType=a.isBooleanDataType;exports.isColumnInSqlGen=a.isColumnInSqlGen;exports.isDateDataType=a.isDateDataType;exports.isNumberDataType=a.isNumberDataType;exports.isTextDataType=a.isTextDataType;exports.resolveDataType=a.resolveDataType;exports.resolveDatamodelName=a.resolveDatamodelName;exports.useCurrentActiveCard=a.useCurrentActiveCard;exports.useCurrentCardConfig=a.useCurrentCardConfig;exports.useCurrentSheetActiveCards=a.useCurrentSheetActiveCards;exports.useDashboardActions=a.useDashboardActions;exports.useDashboardStore=a.useDashboardStore;exports.useEditorActions=a.useEditorActions;exports.useEditorStore=a.useEditorStore;exports.DEFAULT_CALENDAR_CONTEXT=y.DEFAULT_CALENDAR_CONTEXT;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=y.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=r.AdvancedModeToggle;exports.BriefingAuthor=r.BriefingAuthor;exports.BriefingsApiError=r.BriefingsApiError;exports.DashboardBriefingLauncher=r.DashboardBriefingLauncher;exports.DashboardControlsSettings=r.DashboardControlsSettings;exports.DashboardFilterControlsButton=r.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=r.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=r.DocumentControlsSettings;exports.ExportNotificationItem=r.ExportNotificationItem;exports.ExportNotificationList=r.ExportNotificationList;exports.NotificationBell=r.NotificationBell;exports.UnsavedChangesAlert=r.UnsavedChangesAlert;exports.VisualEditingControls=r.VisualEditingControls;exports.VisualsLibraryDialog=r.VisualsLibraryDialog;exports.WatchDashboardButton=r.WatchDashboardButton;exports.applyBriefingFormPatch=r.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=r.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=r.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=r.briefingToFormDraft;exports.cancelBriefingPreviewRun=r.cancelBriefingPreviewRun;exports.cancelBriefingRun=r.cancelBriefingRun;exports.createBriefing=r.createBriefing;exports.createBriefingFormDraft=r.createBriefingFormDraft;exports.deleteBriefing=r.deleteBriefing;exports.deleteBriefingRun=r.deleteBriefingRun;exports.getBriefing=r.getBriefing;exports.getBriefingArtifact=r.getBriefingArtifact;exports.getBriefingEvidence=r.getBriefingEvidence;exports.getBriefingPreviewRun=r.getBriefingPreviewRun;exports.getBriefingRun=r.getBriefingRun;exports.listBriefingRuns=r.listBriefingRuns;exports.listBriefingTenantSummaries=r.listBriefingTenantSummaries;exports.listBriefings=r.listBriefings;exports.pauseBriefing=r.pauseBriefing;exports.polishBriefingText=r.polishBriefingText;exports.previewBriefingPlan=r.previewBriefingPlan;exports.resumeBriefing=r.resumeBriefing;exports.runBriefingNow=r.runBriefingNow;exports.runBriefingPreview=r.runBriefingPreview;exports.updateBriefing=r.updateBriefing;exports.useExportPolling=r.useExportPolling;exports.useExportRecovery=r.useExportRecovery;exports.validateBriefingFormDraft=r.validateBriefingFormDraft;exports.useDebouncedDirtyCheck=P.useDebouncedDirtyCheck;exports.normalizeDashboardForDirtyCheck=S.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=S.serializeDashboardForDirtyCheck;exports.Combobox=L;exports.Visual=R;exports.useExposePrintState=M;exports.usePristineSnapshotInitializer=j;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-4W_ElSBJ.js"),d=require("./chunks/common-types-C73-Ud1-.js"),N=require("./chunks/calendar-preferences-dialog-DE67Z3oQ.js"),t=require("react/jsx-runtime"),a=require("./chunks/switch-bdJp0Bkw.js"),C=require("react"),y=require("./types/index.cjs"),r=require("./chunks/dashboard-briefing-launcher-Czx6BcXW.js"),P=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("./chunks/analyze-result-contract-CtXfp3nv.js");require("react-dom");require("./chunks/index-DRlMUglg.js");const S=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js");require("./chunks/x-B_cx7LwM.js");function _(i){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const n in i)if(n!=="default"){const u=Object.getOwnPropertyDescriptor(i,n);Object.defineProperty(o,n,u.get?u:{enumerable:!0,get:()=>i[n]})}}return o.default=i,Object.freeze(o)}const h=_(C);function R(i){const{displayPreferences:o,cardId:n,...u}=i,s={...u,id:i.dashboardId};return t.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:t.jsxs(e.SemaphorContextProvider,{dashboardProps:s,children:[t.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:i.cardId}),t.jsx(e.UXProvider,{appearance:i.appearance,children:t.jsx(e.DisplayPreferencesProvider,{displayPreferences:o,children:t.jsx(e.Container,{type:"visual",cardId:n,...s,children:t.jsx(w,{cardId:n})})})})]})})}function w({cardId:i}){const o=a.useDashboardStore(s=>{var c;return(c=s.dashboard)==null?void 0:c.sheets}),{card:n,frame:u}=C.useMemo(()=>{const s=o==null?void 0:o.flatMap(l=>l.frames),c=s==null?void 0:s.flatMap(l=>l==null?void 0:l.cards),D=c==null?void 0:c.find(l=>(l==null?void 0:l.id)===i),E=s==null?void 0:s.find(l=>{var p;return(p=l==null?void 0:l.cards)==null?void 0:p.find(g=>(g==null?void 0:g.id)===i)});return{card:D,frame:E}},[o,i]);return!n||!u?t.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${i}`}):t.jsx("main",{className:"flex h-full grow flex-col",children:t.jsx(e.ErrorBoundary,{FallbackComponent:({error:s,resetErrorBoundary:c})=>t.jsx(e.FallbackVisual,{error:s,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:t.jsx(e.DashboardCard,{card:n,frame:u})})})}function j(i,o,n,u){C.useEffect(()=>{i&&!n&&o&&u(e.cloneDeep(o))},[i,n,o,u])}function L({name:i,items:o,value:n,onChange:u,isLoading:s,isError:c,refetch:D,className:E,icon:l,showNone:p=!1}){const g=h.useRef(null),[b,T]=h.useState(!1),[B,A]=h.useState("100%"),x=p?[...o||[],{id:"none",name:"None"}]:o;h.useLayoutEffect(()=>{g.current&&A(g.current.offsetWidth)},[]);function v(){var f;return s?"Loading...":c?"Error":n?(f=o==null?void 0:o.find(m=>m.id===n))==null?void 0:f.name:`Select ${i}`}function F(f,m){u(m),T(!1)}return t.jsxs(a.Popover,{open:b,onOpenChange:T,children:[t.jsx(a.PopoverTrigger,{asChild:!0,children:t.jsxs(a.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":b,className:a.cn("flex h-9 w-full justify-between",E),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[l&&t.jsx("div",{className:"mr-2",children:l}),t.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),t.jsx(a.ChevronDown,{className:"size-4 opacity-50"})]})}),t.jsx(a.PopoverContent,{className:"w-full p-0",style:{minWidth:B},children:t.jsxs(e.Command,{children:[t.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[t.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),t.jsx(e.IconButton,{className:"h-7",onClick:D,children:t.jsx(e.RefreshCw,{className:a.cn("size-3.5 opacity-50",s&&"animate-spin")})})]}),t.jsxs(e.CommandList,{children:[t.jsxs(e.CommandEmpty,{children:["No ",i==null?void 0:i.toLowerCase()," found."]}),t.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>t.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:m=>F(m,f.id),children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(a.Check,{className:a.cn("size-4",n===f.id?"opacity-100":"opacity-0")}),t.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function M(i,o){C.useEffect(()=>(i&&o&&(window.__SEMAPHOR_PRINT_STATE__={...o}),()=>{i&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[i,o])}exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;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.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createExport=e.createExport;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;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.CALCULATED_FIELD_ENTITY_MARKER=d.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=d.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=d.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=d.EMPTY_SELECTION;exports.PivotMarkerEnum=d.PivotMarkerEnum;exports.getFieldRuntimeColumnName=d.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=d.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=d.hasCalculatedFormulaInputs;exports.isCalculatedDimension=d.isCalculatedDimension;exports.isCalculatedField=d.isCalculatedField;exports.isCalculatedMetric=d.isCalculatedMetric;exports.CalendarPreferencesDialog=N.CalendarPreferencesDialog;exports.createEmptyKpiConfig=a.createEmptyKpiConfig;exports.createSqlGenConfig=a.createSqlGenConfig;exports.emitDashboardLoad=a.emitDashboardLoad;exports.emitDashboardUnload=a.emitDashboardUnload;exports.fmt=a.fmt;exports.getColumnDataType=a.getColumnDataType;exports.getFilterValueType=a.getFilterValueType;exports.getFormattedTableNameForQuery=a.getFormattedTableNameForQuery;exports.getQualifiedTableName=a.getQualifiedTableName;exports.getSql=a.getSql;exports.invalidateToken=a.invalidateToken;exports.isBooleanDataType=a.isBooleanDataType;exports.isColumnInSqlGen=a.isColumnInSqlGen;exports.isDateDataType=a.isDateDataType;exports.isNumberDataType=a.isNumberDataType;exports.isTextDataType=a.isTextDataType;exports.resolveDataType=a.resolveDataType;exports.resolveDatamodelName=a.resolveDatamodelName;exports.useCurrentActiveCard=a.useCurrentActiveCard;exports.useCurrentCardConfig=a.useCurrentCardConfig;exports.useCurrentSheetActiveCards=a.useCurrentSheetActiveCards;exports.useDashboardActions=a.useDashboardActions;exports.useDashboardStore=a.useDashboardStore;exports.useEditorActions=a.useEditorActions;exports.useEditorStore=a.useEditorStore;exports.DEFAULT_CALENDAR_CONTEXT=y.DEFAULT_CALENDAR_CONTEXT;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=y.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=r.AdvancedModeToggle;exports.BriefingAuthor=r.BriefingAuthor;exports.BriefingsApiError=r.BriefingsApiError;exports.DashboardBriefingLauncher=r.DashboardBriefingLauncher;exports.DashboardControlsSettings=r.DashboardControlsSettings;exports.DashboardFilterControlsButton=r.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=r.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=r.DocumentControlsSettings;exports.ExportNotificationItem=r.ExportNotificationItem;exports.ExportNotificationList=r.ExportNotificationList;exports.NotificationBell=r.NotificationBell;exports.UnsavedChangesAlert=r.UnsavedChangesAlert;exports.VisualEditingControls=r.VisualEditingControls;exports.VisualsLibraryDialog=r.VisualsLibraryDialog;exports.WatchDashboardButton=r.WatchDashboardButton;exports.applyBriefingFormPatch=r.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=r.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=r.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=r.briefingToFormDraft;exports.cancelBriefingPreviewRun=r.cancelBriefingPreviewRun;exports.cancelBriefingRun=r.cancelBriefingRun;exports.createBriefing=r.createBriefing;exports.createBriefingFormDraft=r.createBriefingFormDraft;exports.deleteBriefing=r.deleteBriefing;exports.deleteBriefingRun=r.deleteBriefingRun;exports.getBriefing=r.getBriefing;exports.getBriefingArtifact=r.getBriefingArtifact;exports.getBriefingEvidence=r.getBriefingEvidence;exports.getBriefingPreviewRun=r.getBriefingPreviewRun;exports.getBriefingRun=r.getBriefingRun;exports.listBriefingRuns=r.listBriefingRuns;exports.listBriefingTenantSummaries=r.listBriefingTenantSummaries;exports.listBriefings=r.listBriefings;exports.pauseBriefing=r.pauseBriefing;exports.polishBriefingText=r.polishBriefingText;exports.previewBriefingPlan=r.previewBriefingPlan;exports.resumeBriefing=r.resumeBriefing;exports.runBriefingNow=r.runBriefingNow;exports.runBriefingPreview=r.runBriefingPreview;exports.updateBriefing=r.updateBriefing;exports.useExportPolling=r.useExportPolling;exports.useExportRecovery=r.useExportRecovery;exports.validateBriefingFormDraft=r.validateBriefingFormDraft;exports.useDebouncedDirtyCheck=P.useDebouncedDirtyCheck;exports.normalizeDashboardForDirtyCheck=S.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=S.serializeDashboardForDirtyCheck;exports.Combobox=L;exports.Visual=R;exports.useExposePrintState=M;exports.usePristineSnapshotInitializer=j;
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
- import { E as T, F as N, S, q as P, U as w, r as _, s as F, t as x, v as R, w as M, h as I, i as L, I as k, x as U, j as O, k as V, l as z, m as H } from "./chunks/index-DlprYjr6.js";
2
- import { X as fa, D as ma, V as pa, T as ha, O as ga, aa as Ca, M as Da, A as Ea, H as xa, H as Ta, J as ba, W as ya, a as va, a9 as Ba, a5 as Aa, Q as Na, P as Sa, ad as Pa, a8 as wa, a7 as _a, a6 as Fa, ac as Ra, ab as Ma, a2 as Ia, $ as La, N as ka, Z as Ua, L as Oa, z as Va, Y as za, _ as Ha, B as qa, a4 as Wa, a1 as ja, a0 as Ga, a3 as Qa, y as Ka, K as Xa, G as Ya } from "./chunks/index-DlprYjr6.js";
1
+ import { E as T, F as N, S, q as P, U as w, r as _, s as F, t as x, v as R, w as M, h as I, i as L, I as k, x as U, j as O, k as V, l as z, m as q } from "./chunks/index-icb12JV1.js";
2
+ import { X as fa, D as ma, V as pa, T as ha, O as ga, aa as Ca, M as Da, A as Ea, H as xa, H as Ta, J as ba, W as ya, a as va, a9 as Ba, a5 as Aa, Q as Na, P as Sa, ad as Pa, a8 as wa, a7 as _a, a6 as Fa, ac as Ra, ab as Ma, a2 as Ia, $ as La, N as ka, Z as Ua, L as Oa, z as Va, Y as za, _ as qa, B as Ha, a4 as Wa, a1 as ja, a0 as Ga, a3 as Qa, y as Ka, K as Xa, G as Ya } from "./chunks/index-icb12JV1.js";
3
3
  import { a as Ja, C as Za, D as ae, E as ee, P as se, g as re, d as oe, h as te, b as ie, c as ne, i as le } from "./chunks/common-types-4bjoIgvm.js";
4
- import { C as ue } from "./chunks/calendar-preferences-dialog-Dsgs8WDv.js";
4
+ import { C as ue } from "./chunks/calendar-preferences-dialog-B-VsxhsA.js";
5
5
  import { jsx as a, jsxs as d } from "react/jsx-runtime";
6
- import { u as q, P as W, b as j, B as G, a as C, g as Q, d as K, e as X } from "./chunks/switch-DMPsMpHW.js";
7
- import { F as fe, q as me, h as pe, i as he, k as ge, s as Ce, r as De, w as Ee, x as xe, p as Te, j as be, o as ye, t as ve, n as Be, m as Ae, l as Ne, y as Se, v as Pe, z as we, D as _e, A as Fe, E as Re, H as Me, G as Ie } from "./chunks/switch-DMPsMpHW.js";
6
+ import { u as H, P as W, a as j, B as G, c as C, f as Q, b as K, d as X } from "./chunks/switch-DUdaHFZQ.js";
7
+ import { E as fe, p as me, g as pe, h as he, j as ge, r as Ce, q as De, v as Ee, w as xe, o as Te, i as be, n as ye, s as ve, m as Be, l as Ae, k as Ne, x as Se, t as Pe, y as we, A as _e, z as Fe, D as Re, G as Me, F as Ie } from "./chunks/switch-DUdaHFZQ.js";
8
8
  import * as m from "react";
9
9
  import { useMemo as Y, useEffect as b } from "react";
10
10
  import { DEFAULT_CALENDAR_CONTEXT as ke, DEFAULT_SEMANTIC_DOMAIN_ACCESS as Ue } from "./types/index.js";
11
- import { A as Ve, L as ze, B as He, M as qe, D as We, e as je, f as Ge, d as Qe, b as Ke, E as Xe, N as Ye, U as $e, a as Je, V as Ze, W as as, G as es, I as ss, J as rs, H as os, s as ts, w as is, i as ns, F as ls, k as ds, x as us, h as cs, y as fs, z as ms, q as ps, v as hs, t as gs, g as Cs, l as Ds, p as Es, C as xs, n as Ts, r as bs, m as ys, o as vs, j as Bs, u as As, c as Ns, K as Ss } from "./chunks/dashboard-briefing-launcher-Coks66cV.js";
11
+ import { A as Ve, L as ze, B as qe, M as He, D as We, e as je, f as Ge, d as Qe, b as Ke, E as Xe, N as Ye, U as $e, a as Je, V as Ze, W as as, G as es, I as ss, J as rs, H as os, s as ts, w as is, i as ns, F as ls, k as ds, x as us, h as cs, y as fs, z as ms, q as ps, v as hs, t as gs, g as Cs, l as Ds, p as Es, C as xs, n as Ts, r as bs, m as ys, o as vs, j as Bs, u as As, c as Ns, K as Ss } from "./chunks/dashboard-briefing-launcher-BIj3X7b3.js";
12
12
  import { u as ws } from "./chunks/use-debounced-dirty-check-BwAbnX_5.js";
13
- import "./chunks/catalog-field-grounding-BK4BX8sZ.js";
13
+ import "./chunks/analyze-result-contract-DuhlklhI.js";
14
14
  import "react-dom";
15
15
  import "./chunks/index-CJdxSyQq.js";
16
16
  import { n as Fs, s as Rs } from "./chunks/normalize-dashboard-for-dirty-check-5KpZN8xr.js";
17
- import "./chunks/index-CuHybtft.js";
17
+ import "./chunks/x-IdR_js6f.js";
18
18
  function ia(e) {
19
19
  const { displayPreferences: s, cardId: t, ...l } = e, r = {
20
20
  ...l,
@@ -27,7 +27,7 @@ function ia(e) {
27
27
  ] }) });
28
28
  }
29
29
  function $({ cardId: e }) {
30
- const s = q((r) => {
30
+ const s = H((r) => {
31
31
  var i;
32
32
  return (i = r.dashboard) == null ? void 0 : i.sheets;
33
33
  }), { card: t, frame: l } = Y(() => {
@@ -136,7 +136,7 @@ function la({
136
136
  " found."
137
137
  ] }),
138
138
  /* @__PURE__ */ a(z, { children: g == null ? void 0 : g.map((n) => /* @__PURE__ */ a(
139
- H,
139
+ q,
140
140
  {
141
141
  className: "overflow-x-auto",
142
142
  value: n.name,
@@ -172,7 +172,7 @@ function da(e, s) {
172
172
  export {
173
173
  Ve as AdvancedModeToggle,
174
174
  ze as BriefingAuthor,
175
- He as BriefingsApiError,
175
+ qe as BriefingsApiError,
176
176
  Ja as CALCULATED_FIELD_ENTITY_MARKER,
177
177
  Za as CONTROL_CARD_DEFAULT_VALUE,
178
178
  ue as CalendarPreferencesDialog,
@@ -182,7 +182,7 @@ export {
182
182
  ke as DEFAULT_CALENDAR_CONTEXT,
183
183
  Ue as DEFAULT_SEMANTIC_DOMAIN_ACCESS,
184
184
  ma as Dashboard,
185
- qe as DashboardBriefingLauncher,
185
+ He as DashboardBriefingLauncher,
186
186
  We as DashboardControlsSettings,
187
187
  pa as DashboardCreateDialogBase,
188
188
  ha as DashboardExportDialog,
@@ -281,10 +281,10 @@ export {
281
281
  Re as useDashboardActions,
282
282
  Oa as useDashboardById,
283
283
  Va as useDashboardQuery,
284
- q as useDashboardStore,
284
+ H as useDashboardStore,
285
285
  za as useDashboardSummary,
286
- Ha as useDataColumns,
287
- qa as useDateFilterHook,
286
+ qa as useDataColumns,
287
+ Ha as useDateFilterHook,
288
288
  ws as useDebouncedDirtyCheck,
289
289
  Me as useEditorActions,
290
290
  Wa as useEditorAside,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../chunks/index-CkoRCh3g.js"),e=require("../chunks/common-types-C73-Ud1-.js"),a=require("../chunks/calendar-preferences-dialog-iZs8XqyH.js");exports.Surfboard=r.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=a.CalendarPreferencesDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../chunks/index-4W_ElSBJ.js"),e=require("../chunks/common-types-C73-Ud1-.js"),a=require("../chunks/calendar-preferences-dialog-DE67Z3oQ.js");exports.Surfboard=r.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=a.CalendarPreferencesDialog;
@@ -1,6 +1,6 @@
1
- import { a as e } from "../chunks/index-DlprYjr6.js";
1
+ import { a as e } from "../chunks/index-icb12JV1.js";
2
2
  import { C, E } from "../chunks/common-types-4bjoIgvm.js";
3
- import { C as s } from "../chunks/calendar-preferences-dialog-Dsgs8WDv.js";
3
+ import { C as s } from "../chunks/calendar-preferences-dialog-B-VsxhsA.js";
4
4
  export {
5
5
  C as CONTROL_CARD_DEFAULT_VALUE,
6
6
  s as CalendarPreferencesDialog,
@@ -13,7 +13,7 @@ export declare type AnalyticsCatalogField = {
13
13
  };
14
14
 
15
15
  export declare type AnalyticsCatalogFieldSummary = {
16
- validMetricCandidates: string[];
16
+ validMeasureCandidates: string[];
17
17
  validDateCandidates: string[];
18
18
  validDimensionCandidates: string[];
19
19
  };
@@ -407,7 +407,7 @@ export declare function normalizeSemaphorAnalyticsFilterOperator(value: Semaphor
407
407
 
408
408
  export declare function normalizeSemaphorDialect(input: string | undefined): SemaphorDialect;
409
409
 
410
- export declare function normalizeSemaphorInputOperator(value: SemaphorInputOperatorInput | string | null | undefined): SemaphorInputOperator | undefined;
410
+ export declare function normalizeSemaphorInputOperator(value: SemaphorInputOperator | string | null | undefined): SemaphorInputOperator | undefined;
411
411
 
412
412
  export declare function parseSemaphorAnalyzeResult(value: unknown): SemaphorAnalyzeResult;
413
413
 
@@ -430,11 +430,11 @@ export declare const SEMAPHOR_ANALYTICS_INTENT_FIXTURES: {
430
430
  readonly connectionId: "conn_sales";
431
431
  readonly label: "Orders";
432
432
  };
433
- metrics: {
433
+ measures: {
434
434
  name: string;
435
435
  role: "measure";
436
436
  }[];
437
- primaryMetric: {
437
+ primaryMeasure: {
438
438
  name: string;
439
439
  role: "measure";
440
440
  };
@@ -509,6 +509,7 @@ export declare const SEMAPHOR_ANALYTICS_INTENT_FIXTURES: {
509
509
  kind: "inputOptions";
510
510
  id: string;
511
511
  label: string;
512
+ inputId: string;
512
513
  source: {
513
514
  readonly kind: "semantic";
514
515
  readonly domainId: "domain_sales";
@@ -516,7 +517,12 @@ export declare const SEMAPHOR_ANALYTICS_INTENT_FIXTURES: {
516
517
  readonly connectionId: "conn_sales";
517
518
  readonly label: "Orders";
518
519
  };
519
- field: {
520
+ labelField: {
521
+ name: string;
522
+ role: "dimension";
523
+ dataType: "string";
524
+ };
525
+ valueField: {
520
526
  name: string;
521
527
  role: "dimension";
522
528
  dataType: "string";
@@ -535,11 +541,11 @@ export declare const SEMAPHOR_ANALYTICS_INTENT_FIXTURES: {
535
541
  readonly connectionId: "conn_sales";
536
542
  readonly label: "Orders";
537
543
  };
538
- metrics: {
544
+ measures: {
539
545
  name: string;
540
546
  role: "measure";
541
547
  }[];
542
- primaryMetric: {
548
+ primaryMeasure: {
543
549
  name: string;
544
550
  role: "measure";
545
551
  };
@@ -566,11 +572,11 @@ export declare const SEMAPHOR_ANALYTICS_INTENT_FIXTURES: {
566
572
  readonly connectionId: "conn_sales";
567
573
  readonly label: "Orders";
568
574
  };
569
- metrics: {
575
+ measures: {
570
576
  name: string;
571
577
  role: "measure";
572
578
  }[];
573
- primaryMetric: {
579
+ primaryMeasure: {
574
580
  name: string;
575
581
  role: "measure";
576
582
  };
@@ -736,7 +742,7 @@ export declare type SemaphorAnalyticsExecutionResult = {
736
742
 
737
743
  export declare type SemaphorAnalyticsExecutionStatus = 'answered' | 'partial' | 'failed';
738
744
 
739
- export declare type SemaphorAnalyticsFieldRole = 'metric' | 'dateField' | 'dimension' | 'input' | 'source' | 'sql';
745
+ export declare type SemaphorAnalyticsFieldRole = 'measure' | 'date' | 'dimension' | 'input' | 'source' | 'sql';
740
746
 
741
747
  export declare type SemaphorAnalyticsFilter = SemaphorAnalyticsValueFilter | SemaphorAnalyticsNullFilter;
742
748
 
@@ -771,9 +777,9 @@ export declare type SemaphorAnalyticsObligation = {
771
777
  type: SemaphorAnalyticsObligationType;
772
778
  subject: string;
773
779
  prompt: string;
774
- metricCandidates?: string[];
780
+ measureCandidates?: string[];
775
781
  entityCandidates?: string[];
776
- dateFieldCandidates?: string[];
782
+ dateCandidates?: string[];
777
783
  dimensionCandidates?: string[];
778
784
  displayFieldCandidates?: string[];
779
785
  requiredFieldCandidates?: string[];
@@ -787,7 +793,7 @@ export declare type SemaphorAnalyticsObligationType = 'record_list' | 'count' |
787
793
 
788
794
  export declare type SemaphorAnalyticsPopulation = {
789
795
  scope: 'filtered_query';
790
- metrics: Record<string, number | string | null>;
796
+ measures: Record<string, number | string | null>;
791
797
  };
792
798
 
793
799
  export declare type SemaphorAnalyticsRecoveryPlan = {
@@ -808,7 +814,7 @@ export declare type SemaphorAnalyticsRepairHint = {
808
814
  message?: string;
809
815
  invalidField?: string;
810
816
  fieldRole?: SemaphorAnalyticsFieldRole;
811
- validMetricCandidates?: string[];
817
+ validMeasureCandidates?: string[];
812
818
  validDateCandidates?: string[];
813
819
  validDimensionCandidates?: string[];
814
820
  recommendedNextStep: string;
@@ -826,7 +832,7 @@ export declare type SemaphorAnalyticsResultBase = {
826
832
  pagination?: SemaphorPaginationMetadata;
827
833
  };
828
834
 
829
- export declare type SemaphorAnalyticsValidationCode = 'missing_source' | 'invalid_source_kind' | 'missing_semantic_domain' | 'missing_dataset_name' | 'missing_connection_id' | 'missing_table_name' | 'missing_sql' | 'missing_metric' | 'missing_record_fields' | 'missing_input_options_field' | 'invalid_metric' | 'invalid_metric_list' | 'invalid_date_field' | 'invalid_dimension' | 'invalid_metric_dimensions' | 'conflicting_sql' | 'sql_policy_violation' | 'unsupported_intent_for_adapter' | 'invalid_analytics_kind' | 'invalid_analytics_intent';
835
+ export declare type SemaphorAnalyticsValidationCode = 'missing_source' | 'invalid_source_kind' | 'missing_semantic_domain' | 'missing_dataset_name' | 'missing_connection_id' | 'missing_table_name' | 'missing_sql' | 'missing_measure' | 'missing_record_fields' | 'missing_input_options_input_id' | 'missing_input_options_label_field' | 'missing_input_options_value_field' | 'invalid_input_options_dependencies' | 'invalid_input_options_population' | 'invalid_measure' | 'invalid_measure_list' | 'invalid_date_field' | 'invalid_dimension' | 'invalid_measure_dimensions' | 'conflicting_sql' | 'sql_policy_violation' | 'unsupported_intent_for_adapter' | 'invalid_analytics_kind' | 'invalid_analytics_intent';
830
836
 
831
837
  export declare type SemaphorAnalyticsValidationIssue = SemaphorProtocolIssue & {
832
838
  code: SemaphorAnalyticsValidationCode | string;
@@ -981,15 +987,9 @@ export declare type SemaphorDerivedFieldInput = {
981
987
  kind: 'field';
982
988
  field: SemaphorFieldRef;
983
989
  aggregate?: SemaphorAggregateFunction;
984
- } | {
985
- kind: 'metric';
986
- metric: SemaphorFieldRef;
987
- } | {
988
- kind: 'dimension';
989
- dimension: SemaphorFieldRef;
990
990
  };
991
991
 
992
- export declare type SemaphorDerivedFieldResultRole = 'measure' | 'group' | 'date' | 'id' | 'filter';
992
+ export declare type SemaphorDerivedFieldResultRole = 'measure' | 'dimension' | 'date' | 'id' | 'unknown';
993
993
 
994
994
  export declare type SemaphorDialect = 'postgres' | 'mysql' | 'mssql' | 'snowflake' | 'clickhouse' | 'bigquery' | 'redshift' | 'duckdb' | 'sqlite' | 'unknown';
995
995
 
@@ -1024,26 +1024,30 @@ export declare function semaphorFieldRefsMatch(left: SemaphorFieldRef, right: Se
1024
1024
  export declare type SemaphorInputBinding = {
1025
1025
  inputId: string;
1026
1026
  kind?: 'filter' | 'control';
1027
- controlRole?: 'grain' | 'metric' | 'dimension' | 'aggregation' | 'sqlParam';
1027
+ controlRole?: 'grain' | 'measure' | 'dimension' | 'aggregation' | 'sqlParam';
1028
1028
  operator?: SemaphorInputOperator;
1029
1029
  field?: SemaphorFieldRef;
1030
+ relationshipHint?: SemaphorRelationshipHint;
1030
1031
  };
1031
1032
 
1032
1033
  export declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'between' | 'not_between' | '>' | '>=' | '<' | '<=';
1033
1034
 
1034
- export declare type SemaphorInputOperatorAlias = 'eq' | 'equals' | 'not_equals' | 'neq' | 'not equal' | 'not equals' | 'not in' | 'like' | 'not_contains' | 'not contains' | 'not_like' | 'not like' | 'not_between' | 'not between';
1035
-
1036
- export declare type SemaphorInputOperatorInput = SemaphorInputOperator | SemaphorInputOperatorAlias;
1037
-
1038
1035
  export declare type SemaphorInputOptionsIntent = {
1039
1036
  kind: 'inputOptions';
1040
1037
  version?: SemaphorProtocolVersion;
1041
1038
  id?: string;
1042
1039
  label?: string;
1040
+ inputId: string;
1043
1041
  source: SemaphorSourceRef;
1044
- field: SemaphorFieldRef;
1042
+ labelField: SemaphorFieldRef;
1043
+ valueField: SemaphorFieldRef;
1044
+ searchField?: SemaphorFieldRef;
1045
+ disambiguationFields?: SemaphorFieldRef[];
1046
+ population?: SemaphorOptionPopulation;
1047
+ dependencies?: SemaphorOptionDependencies;
1045
1048
  search?: string;
1046
1049
  limit?: number;
1050
+ inputs?: SemaphorInputBinding[];
1047
1051
  derivedFields?: SemaphorDerivedFieldDefinition[];
1048
1052
  };
1049
1053
 
@@ -1053,6 +1057,7 @@ export declare type SemaphorInputOptionsResult = SemaphorAnalyticsResultBase & {
1053
1057
  label: string;
1054
1058
  value: unknown;
1055
1059
  count?: number;
1060
+ disambiguation?: string[];
1056
1061
  }>;
1057
1062
  };
1058
1063
 
@@ -1073,7 +1078,7 @@ export declare type SemaphorInputSpec = {
1073
1078
  kind: 'filter' | 'control';
1074
1079
  label: string;
1075
1080
  field: SemaphorFieldRef;
1076
- operator?: SemaphorInputOperatorInput;
1081
+ operator?: SemaphorInputOperator;
1077
1082
  multi?: boolean;
1078
1083
  defaultValue?: unknown;
1079
1084
  scope?: SemaphorInputScope;
@@ -1137,6 +1142,7 @@ export declare type SemaphorMatrixIntent = {
1137
1142
  values: SemaphorMatrixValueField[];
1138
1143
  filters?: SemaphorAnalyticsFilter[];
1139
1144
  inputs?: SemaphorInputBinding[];
1145
+ relationshipHint?: SemaphorRelationshipHint;
1140
1146
  totals?: SemaphorMatrixTotalOptions;
1141
1147
  sort?: SemaphorMatrixSortRule[];
1142
1148
  expansion?: SemaphorMatrixExpansionOptions;
@@ -1261,8 +1267,8 @@ export declare type SemaphorMetricIntent = {
1261
1267
  version?: SemaphorProtocolVersion;
1262
1268
  id?: string;
1263
1269
  source: SemaphorSourceRef;
1264
- metrics: SemaphorFieldRef[];
1265
- primaryMetric?: SemaphorFieldRef;
1270
+ measures: SemaphorFieldRef[];
1271
+ primaryMeasure?: SemaphorFieldRef;
1266
1272
  label?: string;
1267
1273
  dateField?: SemaphorFieldRef;
1268
1274
  timeGrain?: SemaphorTimeGrain;
@@ -1279,6 +1285,7 @@ export declare type SemaphorMetricIntent = {
1279
1285
  direction: 'asc' | 'desc';
1280
1286
  };
1281
1287
  inputs?: SemaphorInputBinding[];
1288
+ relationshipHint?: SemaphorRelationshipHint;
1282
1289
  limit?: number;
1283
1290
  derivedFields?: SemaphorDerivedFieldDefinition[];
1284
1291
  };
@@ -1315,6 +1322,21 @@ export declare type SemaphorOperationIntent = {
1315
1322
  context?: Record<string, unknown>;
1316
1323
  };
1317
1324
 
1325
+ export declare type SemaphorOptionDependencies = {
1326
+ mode?: 'auto' | 'independent' | 'explicit';
1327
+ includeInputIds?: string[];
1328
+ excludeInputIds?: string[];
1329
+ };
1330
+
1331
+ export declare type SemaphorOptionPopulation = {
1332
+ kind: 'option_source';
1333
+ baseSource?: never;
1334
+ } | {
1335
+ kind: 'related_population';
1336
+ baseSource: SemaphorSourceRef;
1337
+ relationshipHint?: SemaphorRelationshipHint;
1338
+ };
1339
+
1318
1340
  export declare type SemaphorPaginationMetadata = {
1319
1341
  page: number;
1320
1342
  pageSize: number;
@@ -1357,6 +1379,7 @@ export declare type SemaphorRecordsIntent = {
1357
1379
  direction: 'asc' | 'desc';
1358
1380
  };
1359
1381
  inputs?: SemaphorInputBinding[];
1382
+ relationshipHint?: SemaphorRelationshipHint;
1360
1383
  derivedFields?: SemaphorDerivedFieldDefinition[];
1361
1384
  };
1362
1385
 
@@ -1395,6 +1418,10 @@ export declare type SemaphorRelationshipDiagnostics = {
1395
1418
 
1396
1419
  export declare type SemaphorRelationshipDiagnosticStatus = 'not_required' | 'resolved' | 'missing' | 'ambiguous' | 'fanout_risk' | 'unknown';
1397
1420
 
1421
+ export declare type SemaphorRelationshipHint = {
1422
+ relationshipIds?: string[];
1423
+ };
1424
+
1398
1425
  export declare type SemaphorRelativeTimeWindow = {
1399
1426
  kind?: 'relative';
1400
1427
  unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
@@ -928,7 +928,7 @@ declare type SemaphorAnalyticsExecutionResult = {
928
928
 
929
929
  declare type SemaphorAnalyticsExecutionStatus = 'answered' | 'partial' | 'failed';
930
930
 
931
- declare type SemaphorAnalyticsFieldRole = 'metric' | 'dateField' | 'dimension' | 'input' | 'source' | 'sql';
931
+ declare type SemaphorAnalyticsFieldRole = 'measure' | 'date' | 'dimension' | 'input' | 'source' | 'sql';
932
932
 
933
933
  declare type SemaphorAnalyticsFilter = SemaphorAnalyticsValueFilter | SemaphorAnalyticsNullFilter;
934
934
 
@@ -958,7 +958,7 @@ declare type SemaphorAnalyticsNullFilterOperator = 'is_null' | 'is_not_null';
958
958
 
959
959
  declare type SemaphorAnalyticsPopulation = {
960
960
  scope: 'filtered_query';
961
- metrics: Record<string, number | string | null>;
961
+ measures: Record<string, number | string | null>;
962
962
  };
963
963
 
964
964
  declare type SemaphorAnalyticsRepairHint = {
@@ -966,7 +966,7 @@ declare type SemaphorAnalyticsRepairHint = {
966
966
  message?: string;
967
967
  invalidField?: string;
968
968
  fieldRole?: SemaphorAnalyticsFieldRole;
969
- validMetricCandidates?: string[];
969
+ validMeasureCandidates?: string[];
970
970
  validDateCandidates?: string[];
971
971
  validDimensionCandidates?: string[];
972
972
  recommendedNextStep: string;
@@ -984,7 +984,7 @@ declare type SemaphorAnalyticsResultBase = {
984
984
  pagination?: SemaphorPaginationMetadata;
985
985
  };
986
986
 
987
- declare type SemaphorAnalyticsValidationCode = 'missing_source' | 'invalid_source_kind' | 'missing_semantic_domain' | 'missing_dataset_name' | 'missing_connection_id' | 'missing_table_name' | 'missing_sql' | 'missing_metric' | 'missing_record_fields' | 'missing_input_options_field' | 'invalid_metric' | 'invalid_metric_list' | 'invalid_date_field' | 'invalid_dimension' | 'invalid_metric_dimensions' | 'conflicting_sql' | 'sql_policy_violation' | 'unsupported_intent_for_adapter' | 'invalid_analytics_kind' | 'invalid_analytics_intent';
987
+ declare type SemaphorAnalyticsValidationCode = 'missing_source' | 'invalid_source_kind' | 'missing_semantic_domain' | 'missing_dataset_name' | 'missing_connection_id' | 'missing_table_name' | 'missing_sql' | 'missing_measure' | 'missing_record_fields' | 'missing_input_options_input_id' | 'missing_input_options_label_field' | 'missing_input_options_value_field' | 'invalid_input_options_dependencies' | 'invalid_input_options_population' | 'invalid_measure' | 'invalid_measure_list' | 'invalid_date_field' | 'invalid_dimension' | 'invalid_measure_dimensions' | 'conflicting_sql' | 'sql_policy_violation' | 'unsupported_intent_for_adapter' | 'invalid_analytics_kind' | 'invalid_analytics_intent';
988
988
 
989
989
  declare type SemaphorAnalyticsValidationIssue = SemaphorProtocolIssue & {
990
990
  code: SemaphorAnalyticsValidationCode | string;
@@ -1061,15 +1061,9 @@ declare type SemaphorDerivedFieldInput = {
1061
1061
  kind: 'field';
1062
1062
  field: SemaphorFieldRef;
1063
1063
  aggregate?: SemaphorAggregateFunction;
1064
- } | {
1065
- kind: 'metric';
1066
- metric: SemaphorFieldRef;
1067
- } | {
1068
- kind: 'dimension';
1069
- dimension: SemaphorFieldRef;
1070
1064
  };
1071
1065
 
1072
- declare type SemaphorDerivedFieldResultRole = 'measure' | 'group' | 'date' | 'id' | 'filter';
1066
+ declare type SemaphorDerivedFieldResultRole = 'measure' | 'dimension' | 'date' | 'id' | 'unknown';
1073
1067
 
1074
1068
  declare type SemaphorDialect = 'postgres' | 'mysql' | 'mssql' | 'snowflake' | 'clickhouse' | 'bigquery' | 'redshift' | 'duckdb' | 'sqlite' | 'unknown';
1075
1069
 
@@ -1100,9 +1094,10 @@ declare type SemaphorFieldRef = {
1100
1094
  declare type SemaphorInputBinding = {
1101
1095
  inputId: string;
1102
1096
  kind?: 'filter' | 'control';
1103
- controlRole?: 'grain' | 'metric' | 'dimension' | 'aggregation' | 'sqlParam';
1097
+ controlRole?: 'grain' | 'measure' | 'dimension' | 'aggregation' | 'sqlParam';
1104
1098
  operator?: SemaphorInputOperator;
1105
1099
  field?: SemaphorFieldRef;
1100
+ relationshipHint?: SemaphorRelationshipHint;
1106
1101
  };
1107
1102
 
1108
1103
  declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'between' | 'not_between' | '>' | '>=' | '<' | '<=';
@@ -1112,10 +1107,17 @@ declare type SemaphorInputOptionsIntent = {
1112
1107
  version?: SemaphorProtocolVersion;
1113
1108
  id?: string;
1114
1109
  label?: string;
1110
+ inputId: string;
1115
1111
  source: SemaphorSourceRef;
1116
- field: SemaphorFieldRef;
1112
+ labelField: SemaphorFieldRef;
1113
+ valueField: SemaphorFieldRef;
1114
+ searchField?: SemaphorFieldRef;
1115
+ disambiguationFields?: SemaphorFieldRef[];
1116
+ population?: SemaphorOptionPopulation;
1117
+ dependencies?: SemaphorOptionDependencies;
1117
1118
  search?: string;
1118
1119
  limit?: number;
1120
+ inputs?: SemaphorInputBinding[];
1119
1121
  derivedFields?: SemaphorDerivedFieldDefinition[];
1120
1122
  };
1121
1123
 
@@ -1125,6 +1127,7 @@ declare type SemaphorInputOptionsResult = SemaphorAnalyticsResultBase & {
1125
1127
  label: string;
1126
1128
  value: unknown;
1127
1129
  count?: number;
1130
+ disambiguation?: string[];
1128
1131
  }>;
1129
1132
  };
1130
1133
 
@@ -1186,6 +1189,7 @@ declare type SemaphorMatrixIntent = {
1186
1189
  values: SemaphorMatrixValueField[];
1187
1190
  filters?: SemaphorAnalyticsFilter[];
1188
1191
  inputs?: SemaphorInputBinding[];
1192
+ relationshipHint?: SemaphorRelationshipHint;
1189
1193
  totals?: SemaphorMatrixTotalOptions;
1190
1194
  sort?: SemaphorMatrixSortRule[];
1191
1195
  expansion?: SemaphorMatrixExpansionOptions;
@@ -1310,8 +1314,8 @@ declare type SemaphorMetricIntent = {
1310
1314
  version?: SemaphorProtocolVersion;
1311
1315
  id?: string;
1312
1316
  source: SemaphorSourceRef;
1313
- metrics: SemaphorFieldRef[];
1314
- primaryMetric?: SemaphorFieldRef;
1317
+ measures: SemaphorFieldRef[];
1318
+ primaryMeasure?: SemaphorFieldRef;
1315
1319
  label?: string;
1316
1320
  dateField?: SemaphorFieldRef;
1317
1321
  timeGrain?: SemaphorTimeGrain;
@@ -1328,6 +1332,7 @@ declare type SemaphorMetricIntent = {
1328
1332
  direction: 'asc' | 'desc';
1329
1333
  };
1330
1334
  inputs?: SemaphorInputBinding[];
1335
+ relationshipHint?: SemaphorRelationshipHint;
1331
1336
  limit?: number;
1332
1337
  derivedFields?: SemaphorDerivedFieldDefinition[];
1333
1338
  };
@@ -1343,6 +1348,21 @@ declare type SemaphorMetricResult = SemaphorAnalyticsResultBase & {
1343
1348
  };
1344
1349
  };
1345
1350
 
1351
+ declare type SemaphorOptionDependencies = {
1352
+ mode?: 'auto' | 'independent' | 'explicit';
1353
+ includeInputIds?: string[];
1354
+ excludeInputIds?: string[];
1355
+ };
1356
+
1357
+ declare type SemaphorOptionPopulation = {
1358
+ kind: 'option_source';
1359
+ baseSource?: never;
1360
+ } | {
1361
+ kind: 'related_population';
1362
+ baseSource: SemaphorSourceRef;
1363
+ relationshipHint?: SemaphorRelationshipHint;
1364
+ };
1365
+
1346
1366
  declare type SemaphorPaginationMetadata = {
1347
1367
  page: number;
1348
1368
  pageSize: number;
@@ -1385,6 +1405,7 @@ declare type SemaphorRecordsIntent = {
1385
1405
  direction: 'asc' | 'desc';
1386
1406
  };
1387
1407
  inputs?: SemaphorInputBinding[];
1408
+ relationshipHint?: SemaphorRelationshipHint;
1388
1409
  derivedFields?: SemaphorDerivedFieldDefinition[];
1389
1410
  };
1390
1411
 
@@ -1415,6 +1436,10 @@ declare type SemaphorRelationshipDiagnostics = {
1415
1436
 
1416
1437
  declare type SemaphorRelationshipDiagnosticStatus = 'not_required' | 'resolved' | 'missing' | 'ambiguous' | 'fanout_risk' | 'unknown';
1417
1438
 
1439
+ declare type SemaphorRelationshipHint = {
1440
+ relationshipIds?: string[];
1441
+ };
1442
+
1418
1443
  declare type SemaphorRelativeTimeWindow = {
1419
1444
  kind?: 'relative';
1420
1445
  unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';