react-semaphor 0.1.377 → 0.1.378

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 (56) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +1 -1
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +6 -6
  5. package/dist/chunks/{braces-C2uBgj3t.js → braces-BT-ZyB-g.js} +1 -1
  6. package/dist/chunks/{braces-CkXyWzRh.js → braces-DOxxfERN.js} +1 -1
  7. package/dist/chunks/calendar-preferences-dialog-CRvQz4TE.js +1 -0
  8. package/dist/chunks/{calendar-preferences-dialog-C55VOTIy.js → calendar-preferences-dialog-DZe8Nd-4.js} +16 -17
  9. package/dist/chunks/catalog-field-grounding-8L9I0zdg.js +1 -0
  10. package/dist/chunks/{catalog-field-grounding-DHXEI7cW.js → catalog-field-grounding-BK4BX8sZ.js} +7 -6
  11. package/dist/chunks/{dashboard-briefing-launcher-DMKfG_z3.js → dashboard-briefing-launcher-BWyHpn2M.js} +1 -1
  12. package/dist/chunks/{dashboard-briefing-launcher-CUyeiL_T.js → dashboard-briefing-launcher-DURdx5Ox.js} +204 -204
  13. package/dist/chunks/{dashboard-controls-B4hxFc3Q.js → dashboard-controls-D5mjF67R.js} +40 -40
  14. package/dist/chunks/{dashboard-controls-D4vI0wvU.js → dashboard-controls-J71GLAxt.js} +1 -1
  15. package/dist/chunks/{dashboard-json-pl1_mFqJ.js → dashboard-json-BumvCRuk.js} +3 -3
  16. package/dist/chunks/{dashboard-json-DQnm6daE.js → dashboard-json-Cv8jXh0X.js} +1 -1
  17. package/dist/chunks/{edit-dashboard-visual-CjTXY51a.js → edit-dashboard-visual-dvhQzG_h.js} +33 -33
  18. package/dist/chunks/{edit-dashboard-visual-CF4aSsav.js → edit-dashboard-visual-eYJMy7aw.js} +1031 -1032
  19. package/dist/chunks/{index-B2kPleRS.js → index-c_0nwsOM.js} +199 -194
  20. package/dist/chunks/{index-Bn866BBY.js → index-hhH5F_tQ.js} +20664 -20526
  21. package/dist/chunks/{layout-grid-BFmJ7vmH.js → layout-grid-DTbOIOsE.js} +1 -1
  22. package/dist/chunks/{layout-grid-CTOW9oTg.js → layout-grid-DccceHv4.js} +1 -1
  23. package/dist/chunks/{palette-OFaniMPn.js → palette-DCzLwqIw.js} +1 -1
  24. package/dist/chunks/{palette-DrhPeer-.js → palette-SimHJELn.js} +1 -1
  25. package/dist/chunks/{save-BxWBiQv1.js → save-D2O96E5A.js} +1 -1
  26. package/dist/chunks/{save-Dh6gSC4x.js → save-zNVYH02T.js} +1 -1
  27. package/dist/chunks/{switch-C-fGjxjY.js → switch-DMPsMpHW.js} +1 -1
  28. package/dist/chunks/{switch-D5xopzFD.js → switch-Jhyl63RF.js} +1 -1
  29. package/dist/chunks/{use-create-flow-overlay-state-Dg2ffpCE.js → use-create-flow-overlay-state-D9UKBuCA.js} +1 -1
  30. package/dist/chunks/{use-create-flow-overlay-state-DrKP0jWE.js → use-create-flow-overlay-state-hlsTNh2b.js} +4 -4
  31. package/dist/chunks/{validation-bMedDBOo.js → validation-BM3-ShHV.js} +1 -1
  32. package/dist/chunks/{validation-BHFaWDU-.js → validation-BVpqRFar.js} +1 -1
  33. package/dist/dashboard/index.cjs +1 -1
  34. package/dist/dashboard/index.js +1 -1
  35. package/dist/dashboard-authoring/index.cjs +1 -1
  36. package/dist/dashboard-authoring/index.js +1 -1
  37. package/dist/data-app-builder/index.cjs +1 -1
  38. package/dist/data-app-builder/index.js +3 -3
  39. package/dist/data-app-sdk/index.cjs +1 -1
  40. package/dist/data-app-sdk/index.js +3 -3
  41. package/dist/data-app-sdk-validation/index.cjs +1 -1
  42. package/dist/data-app-sdk-validation/index.js +2 -2
  43. package/dist/index.cjs +1 -1
  44. package/dist/index.js +14 -14
  45. package/dist/style.css +1 -1
  46. package/dist/surfboard/index.cjs +1 -1
  47. package/dist/surfboard/index.js +2 -2
  48. package/dist/types/analytics-protocol.d.ts +44 -0
  49. package/dist/types/dashboard-assistant.d.ts +42 -0
  50. package/dist/types/data-app-sdk-validation.d.ts +42 -0
  51. package/dist/types/data-app-sdk.d.ts +42 -0
  52. package/package.json +1 -1
  53. package/dist/chunks/calendar-preferences-dialog-DAukJOaP.js +0 -1
  54. package/dist/chunks/catalog-field-grounding-BGW0hnB9.js +0 -1
  55. package/dist/chunks/chevrons-up-down-BnzChFLU.js +0 -14
  56. package/dist/chunks/chevrons-up-down-W0nzHzx0.js +0 -6
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../chunks/index-B2kPleRS.js"),e=require("../chunks/common-types-C73-Ud1-.js"),a=require("../chunks/calendar-preferences-dialog-DAukJOaP.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-c_0nwsOM.js"),e=require("../chunks/common-types-C73-Ud1-.js"),a=require("../chunks/calendar-preferences-dialog-CRvQz4TE.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-Bn866BBY.js";
1
+ import { a as e } from "../chunks/index-hhH5F_tQ.js";
2
2
  import { C, E } from "../chunks/common-types-4bjoIgvm.js";
3
- import { C as s } from "../chunks/calendar-preferences-dialog-C55VOTIy.js";
3
+ import { C as s } from "../chunks/calendar-preferences-dialog-DZe8Nd-4.js";
4
4
  export {
5
5
  C as CONTROL_CARD_DEFAULT_VALUE,
6
6
  s as CalendarPreferencesDialog,
@@ -643,6 +643,7 @@ export declare const SEMAPHOR_ANALYZE_RESULT_FIELD_CONTRACT: {
643
643
  readonly metadata: "record";
644
644
  readonly validation: "unknown";
645
645
  readonly coverage: "unknown";
646
+ readonly diagnosticFeedback: "unknown";
646
647
  readonly missingFields: "stringArray";
647
648
  readonly warnings: "unknownArray";
648
649
  readonly comparison: "unknown";
@@ -669,6 +670,47 @@ export declare type SemaphorAbsoluteTimeWindow = {
669
670
 
670
671
  export declare type SemaphorAggregateFunction = 'SUM' | 'COUNT' | 'AVG' | 'MIN' | 'MAX' | 'MEDIAN' | 'DISTINCT';
671
672
 
673
+ export declare type SemaphorAnalyticsDiagnosticAnsweredItem = {
674
+ slotId?: string;
675
+ queryId?: string;
676
+ summary: string;
677
+ evidenceIds?: string[];
678
+ fieldsUsed?: SemaphorExecutionFieldRef[];
679
+ };
680
+
681
+ export declare type SemaphorAnalyticsDiagnosticBlockedItem = {
682
+ slotId?: string;
683
+ queryId?: string;
684
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
685
+ message: string;
686
+ missingFields?: string[];
687
+ availableFields?: string[];
688
+ ambiguousFields?: string[];
689
+ missingRelationships?: string[];
690
+ evidenceIds?: string[];
691
+ neededFromUser?: string[];
692
+ recommendedNextStep?: string;
693
+ };
694
+
695
+ export declare type SemaphorAnalyticsDiagnosticFeedback = {
696
+ version: 1;
697
+ status: SemaphorAnalyticsDiagnosticStatus;
698
+ summary: string;
699
+ answered: SemaphorAnalyticsDiagnosticAnsweredItem[];
700
+ blocked: SemaphorAnalyticsDiagnosticBlockedItem[];
701
+ semanticModelRecommendations?: SemaphorAnalyticsDiagnosticRecommendation[];
702
+ };
703
+
704
+ export declare type SemaphorAnalyticsDiagnosticReasonCode = 'ambiguous_fields' | 'empty_result' | 'missing_grounded_fields' | 'missing_relationship' | 'no_grounded_query' | 'partial_result' | 'presentation_incomplete' | 'query_validation_failed' | 'unsafe_join';
705
+
706
+ export declare type SemaphorAnalyticsDiagnosticRecommendation = {
707
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
708
+ message: string;
709
+ recommendedNextStep?: string;
710
+ };
711
+
712
+ export declare type SemaphorAnalyticsDiagnosticStatus = 'answered' | 'partial' | 'blocked';
713
+
672
714
  export declare type SemaphorAnalyticsExecutionResult = {
673
715
  intentId?: string;
674
716
  queryId?: string;
@@ -687,6 +729,7 @@ export declare type SemaphorAnalyticsExecutionResult = {
687
729
  missingFields?: string[];
688
730
  warnings?: string[];
689
731
  relationshipDiagnostics?: SemaphorRelationshipDiagnostics;
732
+ diagnosticFeedback?: SemaphorAnalyticsDiagnosticFeedback;
690
733
  population?: SemaphorAnalyticsPopulation;
691
734
  metadata?: Record<string, unknown>;
692
735
  };
@@ -825,6 +868,7 @@ export declare type SemaphorAnalyzeResult = Partial<Record<SemaphorAnalyzeResult
825
868
  metadata?: Record<string, unknown>;
826
869
  validation?: unknown;
827
870
  coverage?: unknown;
871
+ diagnosticFeedback?: SemaphorAnalyticsExecutionResult['diagnosticFeedback'];
828
872
  missingFields?: string[];
829
873
  warnings?: unknown[];
830
874
  comparison?: unknown;
@@ -862,6 +862,47 @@ declare type SemaphorAbsoluteTimeWindow = {
862
862
 
863
863
  declare type SemaphorAggregateFunction = 'SUM' | 'COUNT' | 'AVG' | 'MIN' | 'MAX' | 'MEDIAN' | 'DISTINCT';
864
864
 
865
+ declare type SemaphorAnalyticsDiagnosticAnsweredItem = {
866
+ slotId?: string;
867
+ queryId?: string;
868
+ summary: string;
869
+ evidenceIds?: string[];
870
+ fieldsUsed?: SemaphorExecutionFieldRef[];
871
+ };
872
+
873
+ declare type SemaphorAnalyticsDiagnosticBlockedItem = {
874
+ slotId?: string;
875
+ queryId?: string;
876
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
877
+ message: string;
878
+ missingFields?: string[];
879
+ availableFields?: string[];
880
+ ambiguousFields?: string[];
881
+ missingRelationships?: string[];
882
+ evidenceIds?: string[];
883
+ neededFromUser?: string[];
884
+ recommendedNextStep?: string;
885
+ };
886
+
887
+ declare type SemaphorAnalyticsDiagnosticFeedback = {
888
+ version: 1;
889
+ status: SemaphorAnalyticsDiagnosticStatus;
890
+ summary: string;
891
+ answered: SemaphorAnalyticsDiagnosticAnsweredItem[];
892
+ blocked: SemaphorAnalyticsDiagnosticBlockedItem[];
893
+ semanticModelRecommendations?: SemaphorAnalyticsDiagnosticRecommendation[];
894
+ };
895
+
896
+ declare type SemaphorAnalyticsDiagnosticReasonCode = 'ambiguous_fields' | 'empty_result' | 'missing_grounded_fields' | 'missing_relationship' | 'no_grounded_query' | 'partial_result' | 'presentation_incomplete' | 'query_validation_failed' | 'unsafe_join';
897
+
898
+ declare type SemaphorAnalyticsDiagnosticRecommendation = {
899
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
900
+ message: string;
901
+ recommendedNextStep?: string;
902
+ };
903
+
904
+ declare type SemaphorAnalyticsDiagnosticStatus = 'answered' | 'partial' | 'blocked';
905
+
865
906
  declare type SemaphorAnalyticsExecutionResult = {
866
907
  intentId?: string;
867
908
  queryId?: string;
@@ -880,6 +921,7 @@ declare type SemaphorAnalyticsExecutionResult = {
880
921
  missingFields?: string[];
881
922
  warnings?: string[];
882
923
  relationshipDiagnostics?: SemaphorRelationshipDiagnostics;
924
+ diagnosticFeedback?: SemaphorAnalyticsDiagnosticFeedback;
883
925
  population?: SemaphorAnalyticsPopulation;
884
926
  metadata?: Record<string, unknown>;
885
927
  };
@@ -305,6 +305,47 @@ declare type SemaphorAnalysisQuerySpec = SemaphorMetricQuerySpec & SemaphorAnaly
305
305
 
306
306
  export declare type SemaphorAnalysisTimezoneValidator = (tz: string) => string | null;
307
307
 
308
+ declare type SemaphorAnalyticsDiagnosticAnsweredItem = {
309
+ slotId?: string;
310
+ queryId?: string;
311
+ summary: string;
312
+ evidenceIds?: string[];
313
+ fieldsUsed?: SemaphorExecutionFieldRef[];
314
+ };
315
+
316
+ declare type SemaphorAnalyticsDiagnosticBlockedItem = {
317
+ slotId?: string;
318
+ queryId?: string;
319
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
320
+ message: string;
321
+ missingFields?: string[];
322
+ availableFields?: string[];
323
+ ambiguousFields?: string[];
324
+ missingRelationships?: string[];
325
+ evidenceIds?: string[];
326
+ neededFromUser?: string[];
327
+ recommendedNextStep?: string;
328
+ };
329
+
330
+ declare type SemaphorAnalyticsDiagnosticFeedback = {
331
+ version: 1;
332
+ status: SemaphorAnalyticsDiagnosticStatus;
333
+ summary: string;
334
+ answered: SemaphorAnalyticsDiagnosticAnsweredItem[];
335
+ blocked: SemaphorAnalyticsDiagnosticBlockedItem[];
336
+ semanticModelRecommendations?: SemaphorAnalyticsDiagnosticRecommendation[];
337
+ };
338
+
339
+ declare type SemaphorAnalyticsDiagnosticReasonCode = 'ambiguous_fields' | 'empty_result' | 'missing_grounded_fields' | 'missing_relationship' | 'no_grounded_query' | 'partial_result' | 'presentation_incomplete' | 'query_validation_failed' | 'unsafe_join';
340
+
341
+ declare type SemaphorAnalyticsDiagnosticRecommendation = {
342
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
343
+ message: string;
344
+ recommendedNextStep?: string;
345
+ };
346
+
347
+ declare type SemaphorAnalyticsDiagnosticStatus = 'answered' | 'partial' | 'blocked';
348
+
308
349
  declare type SemaphorAnalyticsExecutionResult = {
309
350
  intentId?: string;
310
351
  queryId?: string;
@@ -323,6 +364,7 @@ declare type SemaphorAnalyticsExecutionResult = {
323
364
  missingFields?: string[];
324
365
  warnings?: string[];
325
366
  relationshipDiagnostics?: SemaphorRelationshipDiagnostics;
367
+ diagnosticFeedback?: SemaphorAnalyticsDiagnosticFeedback;
326
368
  population?: SemaphorAnalyticsPopulation;
327
369
  metadata?: Record<string, unknown>;
328
370
  };
@@ -477,6 +477,47 @@ export declare type SemaphorAnalysisResultSet = {
477
477
 
478
478
  export declare type SemaphorAnalysisTimezoneValidator = (tz: string) => string | null;
479
479
 
480
+ declare type SemaphorAnalyticsDiagnosticAnsweredItem = {
481
+ slotId?: string;
482
+ queryId?: string;
483
+ summary: string;
484
+ evidenceIds?: string[];
485
+ fieldsUsed?: SemaphorExecutionFieldRef[];
486
+ };
487
+
488
+ declare type SemaphorAnalyticsDiagnosticBlockedItem = {
489
+ slotId?: string;
490
+ queryId?: string;
491
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
492
+ message: string;
493
+ missingFields?: string[];
494
+ availableFields?: string[];
495
+ ambiguousFields?: string[];
496
+ missingRelationships?: string[];
497
+ evidenceIds?: string[];
498
+ neededFromUser?: string[];
499
+ recommendedNextStep?: string;
500
+ };
501
+
502
+ declare type SemaphorAnalyticsDiagnosticFeedback = {
503
+ version: 1;
504
+ status: SemaphorAnalyticsDiagnosticStatus;
505
+ summary: string;
506
+ answered: SemaphorAnalyticsDiagnosticAnsweredItem[];
507
+ blocked: SemaphorAnalyticsDiagnosticBlockedItem[];
508
+ semanticModelRecommendations?: SemaphorAnalyticsDiagnosticRecommendation[];
509
+ };
510
+
511
+ declare type SemaphorAnalyticsDiagnosticReasonCode = 'ambiguous_fields' | 'empty_result' | 'missing_grounded_fields' | 'missing_relationship' | 'no_grounded_query' | 'partial_result' | 'presentation_incomplete' | 'query_validation_failed' | 'unsafe_join';
512
+
513
+ declare type SemaphorAnalyticsDiagnosticRecommendation = {
514
+ reasonCode: SemaphorAnalyticsDiagnosticReasonCode;
515
+ message: string;
516
+ recommendedNextStep?: string;
517
+ };
518
+
519
+ declare type SemaphorAnalyticsDiagnosticStatus = 'answered' | 'partial' | 'blocked';
520
+
480
521
  declare type SemaphorAnalyticsExecutionResult = {
481
522
  intentId?: string;
482
523
  queryId?: string;
@@ -495,6 +536,7 @@ declare type SemaphorAnalyticsExecutionResult = {
495
536
  missingFields?: string[];
496
537
  warnings?: string[];
497
538
  relationshipDiagnostics?: SemaphorRelationshipDiagnostics;
539
+ diagnosticFeedback?: SemaphorAnalyticsDiagnosticFeedback;
498
540
  population?: SemaphorAnalyticsPopulation;
499
541
  metadata?: Record<string, unknown>;
500
542
  };
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "email": "support@semaphor.cloud"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "0.1.377",
8
+ "version": "0.1.378",
9
9
  "description": "Fully interactive and customizable dashboards for your apps.",
10
10
  "keywords": [
11
11
  "react",
@@ -1 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),l=require("react"),t=require("./index-B2kPleRS.js"),i=require("./switch-D5xopzFD.js");require("./index-BxM99sFL.js");require("./catalog-field-grounding-BGW0hnB9.js");const G=require("./chevrons-up-down-W0nzHzx0.js");function W(n={}){var y,P,z,A;const{authToken:d,tokenProps:a}=t.useSemaphorContext(),x=n.enabled??!0,m=(d==null?void 0:d.accessToken)??null,f=(a==null?void 0:a.apiServiceUrl)??null,[L,C]=l.useState(!1),[j,b]=l.useState(!1),[h,g]=l.useState(!1),[N,c]=l.useState(null),[v,S]=l.useState(null),k=v||{tz:((P=(y=a==null?void 0:a.params)==null?void 0:y.calendarContext)==null?void 0:P.tz)||null,weekStart:((A=(z=a==null?void 0:a.params)==null?void 0:z.calendarContext)==null?void 0:A.weekStart)??null},p=l.useCallback(async()=>{if(!(!x||!m||!f)){C(!0),c(null);try{const o=await fetch(`${f}/v1/user-preferences/calendar`,{method:"GET",headers:{Authorization:`Bearer ${m}`}});if(!o.ok){const u=await o.json().catch(()=>({}));throw new Error(u.error||"Failed to fetch preferences")}const r=await o.json();S({tz:r.tz,weekStart:r.weekStart,source:r.source,isInherited:r.isInherited,userHasPrefs:r.userHasPrefs,inherited:r.inherited})}catch(o){const r=o instanceof Error?o.message:"Unknown error";c(r)}finally{C(!1)}}},[m,f,x]);l.useEffect(()=>{x&&p()},[x,p]);const T=l.useCallback(async o=>{if(!m||!f)return c("Not authenticated"),!1;b(!0),c(null);try{const r=await fetch(`${f}/v1/user-preferences/calendar`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`},body:JSON.stringify(o)});if(!r.ok){const u=await r.json().catch(()=>({}));throw new Error(u.error||"Failed to update preferences")}return await p(),!0}catch(r){const u=r instanceof Error?r.message:"Unknown error";return c(u),!1}finally{b(!1)}},[m,f,p]),w=l.useCallback(async()=>{if(!m||!f)return c("Not authenticated"),!1;g(!0),c(null);try{const o=await fetch(`${f}/v1/user-preferences/calendar`,{method:"DELETE",headers:{Authorization:`Bearer ${m}`}});if(!o.ok){const u=await o.json().catch(()=>({}));throw new Error(u.error||"Failed to clear preferences")}const r=await o.text();if(r)try{const u=JSON.parse(r);return S({tz:u.tz,weekStart:u.weekStart,source:u.source,isInherited:u.isInherited??!0,userHasPrefs:!1,inherited:u.inherited}),!0}catch{}return await p(),!0}catch(o){const r=o instanceof Error?o.message:"Unknown error";return c(r),!1}finally{g(!1)}},[m,f,p]);return{preferences:k,isLoading:L,isSaving:j,isClearing:h,error:N,updatePreferences:T,clearPreferences:w,refetch:p}}const E=[{value:"America/New_York",label:"Eastern Time (US & Canada)"},{value:"America/Chicago",label:"Central Time (US & Canada)"},{value:"America/Denver",label:"Mountain Time (US & Canada)"},{value:"America/Los_Angeles",label:"Pacific Time (US & Canada)"},{value:"America/Phoenix",label:"Arizona"},{value:"America/Anchorage",label:"Alaska"},{value:"Pacific/Honolulu",label:"Hawaii"},{value:"Europe/London",label:"London"},{value:"Europe/Paris",label:"Paris, Berlin, Rome"},{value:"Asia/Tokyo",label:"Tokyo"},{value:"Asia/Shanghai",label:"Beijing, Shanghai"},{value:"Asia/Kolkata",label:"Mumbai, New Delhi"},{value:"Australia/Sydney",label:"Sydney"},{value:"UTC",label:"UTC"}],M=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:6,label:"Saturday"}],H="text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground";function q(){try{const n=Intl;if(n.supportedValuesOf)return n.supportedValuesOf("timeZone")}catch{}return E.map(n=>n.value)}function _(n){switch(n){case"tenant":return"tenant";case"organization":return"organization";case"system":return"system";default:return"default"}}function O(n){const d=E.find(a=>a.value===n);return d?d.label:n}function V(n){const d=M.find(a=>a.value===n);return d?d.label:String(n)}function Z({open:n,onOpenChange:d}){var D,U,F;const{preferences:a,isLoading:x,isSaving:m,isClearing:f,updatePreferences:L,clearPreferences:C}=W({enabled:n}),j=a.tz||((D=a.inherited)==null?void 0:D.tz)||Intl.DateTimeFormat().resolvedOptions().timeZone,b=a.weekStart??((U=a.inherited)==null?void 0:U.weekStart)??1,[h,g]=l.useState(!a.userHasPrefs),[N,c]=l.useState(!1),[v,S]=l.useState(j),[k,p]=l.useState(b),[T,w]=l.useState(!1),y=l.useMemo(()=>q(),[]),P=l.useMemo(()=>y.filter(s=>!E.some(R=>R.value===s)),[y]),z=l.useMemo(()=>O(v),[v]),A=a.inherited?O(a.inherited.tz):"UTC",o=a.inherited?V(a.inherited.weekStart):"Monday",r=_((F=a.inherited)==null?void 0:F.source);l.useEffect(()=>{if(!n){c(!1);return}N||(a.userHasPrefs!==void 0&&g(!a.userHasPrefs),S(j),p(b))},[n,N,a.userHasPrefs,j,b]);const u=async()=>{if(x){t.ue.error("Preferences are still loading. Please try again.");return}h?await C()?(t.ue.success("Now using default settings. Please refresh the page to apply changes.",{duration:5e3}),d(!1)):t.ue.error("Failed to save preferences. Please try again."):await L({tz:v,weekStart:k})?(t.ue.success("Preferences saved. Please refresh the page to apply changes.",{duration:5e3}),d(!1)):t.ue.error("Failed to save preferences. Please try again.")},$=()=>{d(!1)},I=m||f,B=I||x;return e.jsx(t.Dialog,{open:n,onOpenChange:d,children:e.jsxs(t.DialogContent,{className:"rounded-control border-border/60 sm:max-w-[440px] sm:rounded-control",children:[e.jsxs(t.DialogHeader,{children:[e.jsx(t.DialogTitle,{className:"text-[15px]",children:"Calendar preferences"}),e.jsx(t.DialogDescription,{className:"text-[13px] leading-5",children:"Set your timezone and week-start for date calculations and displays."})]}),e.jsxs("div",{className:"space-y-4 py-1",children:[e.jsxs(t.RadioGroup,{value:h?"defaults":"custom",onValueChange:s=>{c(!0),g(s==="defaults")},className:"space-y-0.5",children:[e.jsxs("label",{htmlFor:"mode-defaults",className:i.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",h&&"bg-muted/50"),onClick:()=>{c(!0),g(!0)},children:[e.jsx(t.RadioGroupItem,{value:"defaults",id:"mode-defaults",className:"mt-0.5"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-[13px] font-medium text-foreground",children:["Use ",r," defaults"]}),e.jsxs("p",{className:"text-[12px] text-muted-foreground",children:[A,", week starts ",o]})]})]}),e.jsxs("label",{htmlFor:"mode-custom",className:i.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",!h&&"bg-muted/50"),onClick:()=>{c(!0),g(!1)},children:[e.jsx(t.RadioGroupItem,{value:"custom",id:"mode-custom",className:"mt-0.5"}),e.jsx("p",{className:"flex-1 text-[13px] font-medium text-foreground",children:"Use custom settings"})]})]}),e.jsxs("div",{className:i.cn("space-y-4 border-t border-border/60 pt-4 transition-opacity",h&&"pointer-events-none opacity-50"),children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(i.Label,{className:H,children:"Timezone"}),e.jsxs(i.Popover,{open:T,onOpenChange:w,modal:!0,children:[e.jsx(i.PopoverTrigger,{asChild:!0,children:e.jsxs(i.Button,{variant:"outline",size:"xs",role:"combobox","aria-expanded":T,className:"w-full justify-between text-[12px] font-normal",disabled:h,children:[e.jsx("span",{className:"truncate",children:z}),e.jsx(G.ChevronsUpDown,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),e.jsx(i.PopoverContent,{className:"z-50 w-[--radix-popover-trigger-width] p-0",align:"start",children:e.jsxs(t.Command,{className:"overflow-visible",children:[e.jsx(t.CommandInput,{placeholder:"Search timezones…"}),e.jsxs(t.CommandList,{children:[e.jsx(t.CommandEmpty,{children:"No timezone found."}),e.jsx(t.CommandGroup,{heading:"Common",children:E.map(s=>e.jsxs(t.CommandItem,{value:`${s.value} ${s.label}`,onSelect:()=>{c(!0),S(s.value),w(!1)},children:[e.jsx(i.Check,{className:i.cn("h-3.5 w-3.5",v===s.value?"opacity-100":"opacity-0")}),e.jsx("span",{className:"flex-1",children:s.label}),e.jsx("span",{className:"text-[11px] text-muted-foreground",children:s.value})]},s.value))}),e.jsx(t.CommandSeparator,{}),e.jsx(t.CommandGroup,{heading:"All timezones",children:P.map(s=>e.jsxs(t.CommandItem,{value:s,onSelect:()=>{c(!0),S(s),w(!1)},children:[e.jsx(i.Check,{className:i.cn("h-3.5 w-3.5",v===s?"opacity-100":"opacity-0")}),s]},s))})]})]})})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(i.Label,{className:H,children:"Week starts on"}),e.jsx(t.RadioGroup,{value:String(k),onValueChange:s=>{c(!0),p(Number(s))},className:"flex gap-4",disabled:h,children:M.map(s=>e.jsxs("label",{htmlFor:`week-start-${s.value}`,className:i.cn("flex cursor-pointer items-center gap-2 text-[13px]",h&&"cursor-not-allowed"),children:[e.jsx(t.RadioGroupItem,{value:String(s.value),id:`week-start-${s.value}`,disabled:h}),s.label]},s.value))})]})]})]}),e.jsxs(t.DialogFooter,{children:[e.jsx(i.Button,{variant:"outline",size:"xs",onClick:$,disabled:I,children:"Cancel"}),e.jsx(i.Button,{size:"xs",onClick:u,disabled:B,children:I?e.jsxs(e.Fragment,{children:[e.jsx(i.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})})}exports.CalendarPreferencesDialog=Z;
@@ -1 +0,0 @@
1
- "use strict";const o={answerSummary:"string",responseDetail:"responseDetail",mode:"string",comparisonType:"string",executionResult:"unknown",compiledQuery:"unknown",data:"unknown",resultSets:"record",columns:"unknownArray",records:"recordArray",rowCount:"number",rowLimitExceeded:"boolean",output:"string",querySpec:"unknown",metadata:"record",validation:"unknown",coverage:"unknown",missingFields:"stringArray",warnings:"unknownArray",comparison:"unknown",population:"unknown",comparisons:"recordArray",fieldsUsed:"unknown",changes:"recordArray",largestNegativeChanges:"recordArray",largestPositiveChanges:"recordArray",drivers:"recordArray",absoluteDeltaDrivers:"recordArray",largestNegativeDrivers:"recordArray",largestPositiveDrivers:"recordArray",periodRows:"recordArray",sql:"unknown",omitted:"stringArray"},S=new Set(Object.keys(o)),b=new Set(["compact","standard","debug"]);function D(){return Object.keys(o)}function g(e){return S.has(e)}function F(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Semaphor analyze result must be an object.");const n=e,r=Object.keys(n).filter(t=>!g(t));if(r.length)throw new Error(`Semaphor analyze result contains unsupported top-level field(s): ${r.join(", ")}.`);for(const[t,i]of Object.entries(n)){if(i===void 0)continue;const a=o[t];if(!k(i,a))throw new Error(`Semaphor analyze result field "${t}" does not match contract kind "${a}".`)}return n}function k(e,n){switch(n){case"boolean":return typeof e=="boolean";case"number":return typeof e=="number"&&Number.isFinite(e);case"record":return A(e);case"recordArray":return Array.isArray(e)&&e.every(A);case"responseDetail":return typeof e=="string"&&b.has(e);case"string":return typeof e=="string";case"stringArray":return Array.isArray(e)&&e.every(r=>typeof r=="string");case"unknown":return!0;case"unknownArray":return Array.isArray(e)}}function A(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function c(e){return typeof e=="string"?e.trim().toLowerCase():""}function p(e){return String(e.column_name||e.name||e.qualifiedFieldName||"")}function w(e){return Array.from(new Set([e.column_name,e.name,e.qualifiedFieldName,e.alias].filter(n=>typeof n=="string"&&n.trim().length>0).map(n=>n.trim())))}function d(e){const n=T(e);return n?n.includes("int")||n.includes("uint")||n.includes("bigint")||n.includes("smallint")||n.includes("tinyint")||n.includes("numeric")||n.includes("decimal")||n.includes("double")||n.includes("float")||n.includes("number")||n.includes("real")||n.includes("money")||n.includes("currency")||n.includes("percent")?"number":n.includes("timestamp")||n.includes("datetime")||n.startsWith("time")?"datetime":n.includes("date")?"date":n.includes("bool")?"boolean":"string":"unknown"}function T(e){let n=c(e),r="";for(;n&&n!==r;)r=n,n=f(n,"nullable"),n=f(n,"lowcardinality");return n}function f(e,n){const r=`${n}(`;return!e.startsWith(r)||!e.endsWith(")")?e:e.slice(r.length,-1).trim()}function h(e){const n=d(e);return n==="date"||n==="datetime"}function u(e){return h(e.dataType||e.data_type)}function y(e){const n=C(e);return n==="id"||n==="row_id"}function l(e){const n=C(e);return y(e)||n.endsWith("_id")||n.endsWith("_key")||n.endsWith("_number")}function C(e){return c(p(e)||e.name||e.alias).replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")}function m(e,n={}){const r=c(e.role);return r==="metric"||r==="measure"?!n.excludeIdentifiers||!l(e):r==="groupby"||r==="dimension"||r==="date"||r==="id"?!1:d(e.dataType||e.data_type)==="number"&&(!n.excludeIdentifiers||!l(e))}function _(e){return!m(e)&&!u(e)}function E(e){const n=new Set,r=new Set,t=new Set;for(const i of e){if(y(i))continue;const a=w(i);if(a.length!==0){if(u(i)){a.forEach(s=>r.add(s));continue}if(m(i,{excludeIdentifiers:!0})){a.forEach(s=>n.add(s));continue}a.forEach(s=>t.add(s))}}return{validMetricCandidates:Array.from(n).sort(),validDateCandidates:Array.from(r).sort(),validDimensionCandidates:Array.from(t).sort()}}exports.SEMAPHOR_ANALYZE_RESULT_FIELD_CONTRACT=o;exports.buildAnalyticsCatalogFieldSummary=E;exports.getAnalyticsCatalogFieldCandidates=w;exports.getAnalyticsCatalogFieldName=p;exports.getSemaphorAnalyzeResultFieldNames=D;exports.isAnalyticsCatalogDateField=u;exports.isAnalyticsCatalogDimensionField=_;exports.isAnalyticsCatalogMetricField=m;exports.isAnalyticsDateLikeDataType=h;exports.isAnalyticsMetricIdentifierField=l;exports.isAnalyticsTechnicalIdentifierField=y;exports.isSemaphorAnalyzeResultFieldName=g;exports.normalizeAnalyticsCatalogDataType=d;exports.normalizeAnalyticsCatalogName=c;exports.parseSemaphorAnalyzeResult=F;
@@ -1,14 +0,0 @@
1
- import { c as o } from "./switch-C-fGjxjY.js";
2
- /**
3
- * @license lucide-react v0.453.0 - ISC
4
- *
5
- * This source code is licensed under the ISC license.
6
- * See the LICENSE file in the root directory of this source tree.
7
- */
8
- const t = o("ChevronsUpDown", [
9
- ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
10
- ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
11
- ]);
12
- export {
13
- t as C
14
- };
@@ -1,6 +0,0 @@
1
- "use strict";const e=require("./switch-D5xopzFD.js");/**
2
- * @license lucide-react v0.453.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const t=e.createLucideIcon("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);exports.ChevronsUpDown=t;