react-semaphor 0.1.472 → 0.1.474

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 (67) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +102 -94
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.js +4 -4
  6. package/dist/chunks/{analyze-result-contract-B3agc2XU.js → analyze-result-contract-C8s8EUL5.js} +1 -1
  7. package/dist/chunks/{common-types-g_1fKJLK.js → common-types-BLPy5_E0.js} +1 -1
  8. package/dist/chunks/{dashboard-briefing-launcher-Lw4gjW_M.js → dashboard-briefing-launcher-B0f28WrK.js} +9 -9
  9. package/dist/chunks/{dashboard-briefing-launcher-8vxGyexK.cjs → dashboard-briefing-launcher-BjCkA5vw.cjs} +1 -1
  10. package/dist/chunks/{dashboard-controls-BKR8g3M9.cjs → dashboard-controls-BRclCQEX.cjs} +1 -1
  11. package/dist/chunks/{dashboard-controls-CRgDlxdt.js → dashboard-controls-CMJqSLgo.js} +9 -9
  12. package/dist/chunks/{dashboard-filter-value-compatibility-ilbH2A31.js → dashboard-filter-value-compatibility-9W8Ckcle.js} +168 -158
  13. package/dist/chunks/dashboard-filter-value-compatibility-Co1dn9Bc.cjs +1 -0
  14. package/dist/chunks/{dashboard-input-contract-Vr_3ApfF.js → dashboard-input-contract-BrGdGFz0.js} +6 -6
  15. package/dist/chunks/{dashboard-json-BhhVg9mI.js → dashboard-json-1ohpjO_q.js} +7 -7
  16. package/dist/chunks/{dashboard-json-CUgAzrYq.cjs → dashboard-json-DmtGHdDq.cjs} +1 -1
  17. package/dist/chunks/{edit-dashboard-visual-DlQtYQOO.js → edit-dashboard-visual-D9oKtOo6.js} +12 -12
  18. package/dist/chunks/{edit-dashboard-visual-BxmanBVo.cjs → edit-dashboard-visual-DNqJHdHE.cjs} +1 -1
  19. package/dist/chunks/{editor-action-buttons-CRWacpxi.js → editor-action-buttons-C_B8Wzkf.js} +6 -6
  20. package/dist/chunks/{editor-action-buttons-DKcD0UQy.cjs → editor-action-buttons-DwI3FcSw.cjs} +1 -1
  21. package/dist/chunks/{index-xdqe-Zvd.cjs → index-B6zSYUN4.cjs} +167 -167
  22. package/dist/chunks/{index-0fmECZL2.js → index-DalKzjEZ.js} +31914 -31864
  23. package/dist/chunks/{index-oVXvCLH-.js → index-DsvIlrI-.js} +9 -9
  24. package/dist/chunks/matrix-result-contract-Bhg60NtS.cjs +1 -0
  25. package/dist/chunks/matrix-result-contract-BpzhImar.js +421 -0
  26. package/dist/chunks/{pivot-header-presentation-7XrwJYDm.js → pivot-header-presentation-Be3FyR0N.js} +2 -2
  27. package/dist/chunks/{pivot-result-identity-5v4hRVbc.js → pivot-result-identity-CIZXsI53.js} +1 -1
  28. package/dist/chunks/{pivot-result-lifecycle-O_roVguV.js → pivot-result-lifecycle-PxmbJWkm.js} +19 -19
  29. package/dist/chunks/{raw-temporal-contract-BEMf3avg.js → raw-temporal-contract-U8J9RlEH.js} +1 -1
  30. package/dist/chunks/{report-preferences-dialog-Dxt9XMpd.js → report-preferences-dialog-C9mJffNQ.js} +6 -6
  31. package/dist/chunks/{report-preferences-dialog-8KYKazoG.cjs → report-preferences-dialog-DGMd-eTT.cjs} +1 -1
  32. package/dist/chunks/{report-runtime-context-DnNbpkGo.js → report-runtime-context-DNbgCsko.js} +7 -7
  33. package/dist/chunks/{saved-temporal-bucket-format-CygnBDO2.js → saved-temporal-bucket-format-CHsXUPJI.js} +8 -8
  34. package/dist/chunks/source-entity-resolution-BDC-Qngk.cjs +1 -0
  35. package/dist/chunks/source-entity-resolution-ugN3sZUk.js +781 -0
  36. package/dist/chunks/{switch-CQN9Hzho.cjs → switch-B4eH4guz.cjs} +13 -13
  37. package/dist/chunks/{switch-n2yUNY8i.js → switch-D20CIzj6.js} +1460 -1455
  38. package/dist/chunks/{temporal-bucket-CUKJktCl.js → temporal-bucket-CtP7hKLa.js} +12 -12
  39. package/dist/chunks/{temporal-bucket-authoring-CZoJV2L6.js → temporal-bucket-authoring-DJ9kK2wD.js} +3 -3
  40. package/dist/chunks/{temporal-bucket-contract-Cno9TlYr.js → temporal-bucket-contract-CZl5D7FZ.js} +1 -1
  41. package/dist/chunks/{token-types-W3EHNW-D.js → token-types-DfDtCqlw.js} +1 -1
  42. package/dist/chunks/{update-policy-kRNJwwUV.js → update-policy-BybMiM61.js} +1 -1
  43. package/dist/chunks/{validators-B5t1s8oh.js → validators-D-T-2HOR.js} +50 -50
  44. package/dist/dashboard/index.cjs +1 -1
  45. package/dist/dashboard/index.js +2 -2
  46. package/dist/dashboard-authoring/index.cjs +3 -3
  47. package/dist/dashboard-authoring/index.js +355 -341
  48. package/dist/data-app-builder/index.cjs +1 -1
  49. package/dist/data-app-builder/index.js +2 -2
  50. package/dist/data-app-codegen/index.js +2 -2
  51. package/dist/data-app-codegen-node/index.js +3 -3
  52. package/dist/data-app-sdk/index.js +3 -3
  53. package/dist/data-app-sdk-adapters/index.js +2 -2
  54. package/dist/data-app-sdk-validation/index.js +9 -9
  55. package/dist/format-utils/index.js +10 -10
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.js +14 -14
  58. package/dist/report-runtime-context/index.js +2 -2
  59. package/dist/surfboard/index.cjs +1 -1
  60. package/dist/surfboard/index.js +3 -3
  61. package/dist/types/analytics-protocol.d.ts +141 -0
  62. package/dist/types/index.js +4 -4
  63. package/dist/types/main.d.ts +7 -0
  64. package/package.json +1 -1
  65. package/dist/chunks/dashboard-filter-value-compatibility-Dmh-NaPK.cjs +0 -1
  66. package/dist/chunks/matrix-result-contract-DoU9diAh.js +0 -822
  67. package/dist/chunks/matrix-result-contract-SrzyG_KQ.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";const e=require("react/jsx-runtime"),o=require("react"),l=require("./index-xdqe-Zvd.cjs"),u=require("./switch-CQN9Hzho.cjs"),V=require("./report-runtime-context-RFiWq4wK.cjs");require("./x-B6ghREd2.cjs");require("./saved-temporal-bucket-format-DNMtD77o.cjs");require("./validators-DcshgK7w.cjs");require("./analyze-result-contract-OgPk-zGu.cjs");const L=require("../value-format-preferences/index.cjs");function G(a={}){const{authToken:c,tokenProps:t}=l.useSemaphorContext(),m=u.useDashboardStore(p=>p.actions.applyResolvedCalendarPreferences),s=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,[g,S]=o.useState(!1),[b,C]=o.useState(!1),[f,j]=o.useState(!1),[T,x]=o.useState(null),[w,P]=o.useState(null),v=o.useRef(i);v.current=i,o.useEffect(()=>{P(null),x(null),S(!1),C(!1),j(!1)},[i]);const N=o.useCallback(async p=>{const r=V.parseCalendarPreferencesResponse(await p.json());if(!r.ok)throw new Error("Calendar preferences response is invalid");return r.value},[]),k=o.useCallback(async()=>{if(!s||!i||!h)return;const p=i;S(!0),x(null);try{const r=await fetch(`${h}/v1/user-preferences/calendar`,{method:"GET",headers:{Authorization:`Bearer ${i}`}});if(!r.ok){const y=await r.json().catch(()=>({}));throw new Error(y.error||"Failed to fetch preferences")}const n=await N(r);v.current===p&&P(n)}catch(r){v.current===p&&x(r instanceof Error?r.message:"Unknown error")}finally{v.current===p&&S(!1)}},[i,h,s,N]);o.useEffect(()=>{s&&k()},[s,k]);const E=o.useCallback(async p=>{if(!i||!h)return x("Not authenticated"),!1;const r=i;C(!0),x(null);try{const n=await fetch(`${h}/v1/user-preferences/calendar`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(p)});if(!n.ok){const D=await n.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}const y=await N(n);return v.current!==r?!1:(P(y),m(y.resolved,y.sources),!0)}catch(n){return v.current===r&&x(n instanceof Error?n.message:"Unknown error"),!1}finally{v.current===r&&C(!1)}},[i,h,m,N]),A=o.useCallback(async()=>{if(!i||!h)return x("Not authenticated"),!1;const p=i;j(!0),x(null);try{const r=await fetch(`${h}/v1/user-preferences/calendar`,{method:"DELETE",headers:{Authorization:`Bearer ${i}`}});if(!r.ok){const y=await r.json().catch(()=>({}));throw new Error(y.error||"Failed to clear preferences")}const n=await N(r);return v.current!==p?!1:(P(n),m(n.resolved,n.sources),!0)}catch(r){return v.current===p&&x(r instanceof Error?r.message:"Unknown error"),!1}finally{v.current===p&&j(!1)}},[i,h,m,N]);return{preferences:w,isLoading:g,isSaving:b,isClearing:f,error:T,updatePreferences:E,clearPreferences:A,refetch:k}}const F=[{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"}],B=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:6,label:"Saturday"}],R="text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground";function W(){try{const a=Intl;if(a.supportedValuesOf)return a.supportedValuesOf("timeZone")}catch{}return F.map(a=>a.value)}function H(a){if(!a)return"default";if(a.tz!==a.weekStart)return"inherited";switch(a.tz){case"viewer_tenant":return"tenant";case"viewer_organization":return"organization";case"system_default":return"system";case"session_initial":return"embedded";default:return"default"}}function U(a){const c=F.find(t=>t.value===a);return c?c.label:a}function K(a){const c=B.find(t=>t.value===a);return c?c.label:String(a)}function J({active:a,onClose:c}){const{preferences:t,isLoading:m,isSaving:s,isClearing:i,updatePreferences:h,clearPreferences:g}=G({enabled:a}),S=l.useCalendarContext(),b=(t==null?void 0:t.resolved.tz)||(S==null?void 0:S.tz)||"UTC",C=(t==null?void 0:t.resolved.weekStart)??(S==null?void 0:S.weekStart)??1,[f,j]=o.useState((t==null?void 0:t.stored)===null),[T,x]=o.useState(!1),[w,P]=o.useState(b),[v,N]=o.useState(C),[k,E]=o.useState(!1),A=o.useMemo(()=>W(),[]),p=o.useMemo(()=>A.filter(d=>!F.some(M=>M.value===d)),[A]),r=o.useMemo(()=>U(w),[w]),n=t!=null&&t.inherited?U(t.inherited.tz):"UTC",y=t!=null&&t.inherited?K(t.inherited.weekStart):"Monday",D=H(t==null?void 0:t.inheritedSources);o.useEffect(()=>{if(!a){x(!1);return}T||(t&&j(t.stored===null),P(b),N(C))},[a,T,t,b,C]);const O=async()=>{if(m){l.ue.error("Preferences are still loading. Please try again.");return}f?await g()?(l.ue.success("Now using default settings."),c()):l.ue.error("Failed to save preferences. Please try again."):await h({tz:w,weekStart:v})?(l.ue.success("Preferences saved."),c()):l.ue.error("Failed to save preferences. Please try again.")},_=()=>{c()},z=s||i,$=z||m;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4 py-1",children:[e.jsxs(l.RadioGroup,{value:f?"defaults":"custom",onValueChange:d=>{x(!0),j(d==="defaults")},className:"space-y-0.5",children:[e.jsxs("label",{htmlFor:"mode-defaults",className:u.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",f&&"bg-muted/50"),onClick:()=>{x(!0),j(!0)},children:[e.jsx(l.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 ",D," defaults"]}),e.jsxs("p",{className:"text-[12px] text-muted-foreground",children:[n,", week starts ",y]})]})]}),e.jsxs("label",{htmlFor:"mode-custom",className:u.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",!f&&"bg-muted/50"),onClick:()=>{x(!0),j(!1)},children:[e.jsx(l.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:u.cn("space-y-4 border-t border-border/60 pt-4 transition-opacity",f&&"pointer-events-none opacity-50"),children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(u.Label,{className:R,children:"Timezone"}),e.jsxs(u.Popover,{open:k,onOpenChange:E,modal:!0,children:[e.jsx(u.PopoverTrigger,{asChild:!0,children:e.jsxs(u.Button,{variant:"outline",size:"xs",role:"combobox","aria-expanded":k,className:"w-full justify-between text-[12px] font-normal",disabled:f,children:[e.jsx("span",{className:"truncate",children:r}),e.jsx(l.ChevronsUpDown,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),e.jsx(u.PopoverContent,{className:"z-50 w-[--radix-popover-trigger-width] p-0",align:"start",children:e.jsxs(l.Command,{className:"overflow-visible",children:[e.jsx(l.CommandInput,{placeholder:"Search timezones…"}),e.jsxs(l.CommandList,{children:[e.jsx(l.CommandEmpty,{children:"No timezone found."}),e.jsx(l.CommandGroup,{heading:"Common",children:F.map(d=>e.jsxs(l.CommandItem,{value:`${d.value} ${d.label}`,onSelect:()=>{x(!0),P(d.value),E(!1)},children:[e.jsx(u.Check,{className:u.cn("h-3.5 w-3.5",w===d.value?"opacity-100":"opacity-0")}),e.jsx("span",{className:"flex-1",children:d.label}),e.jsx("span",{className:"text-[11px] text-muted-foreground",children:d.value})]},d.value))}),e.jsx(l.CommandSeparator,{}),e.jsx(l.CommandGroup,{heading:"All timezones",children:p.map(d=>e.jsxs(l.CommandItem,{value:d,onSelect:()=>{x(!0),P(d),E(!1)},children:[e.jsx(u.Check,{className:u.cn("h-3.5 w-3.5",w===d?"opacity-100":"opacity-0")}),d]},d))})]})]})})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(u.Label,{className:R,children:"Week starts on"}),e.jsx(l.RadioGroup,{value:String(v),onValueChange:d=>{x(!0),N(Number(d))},className:"flex gap-4",disabled:f,children:B.map(d=>e.jsxs("label",{htmlFor:`week-start-${d.value}`,className:u.cn("flex cursor-pointer items-center gap-2 text-[13px]",f&&"cursor-not-allowed"),children:[e.jsx(l.RadioGroupItem,{value:String(d.value),id:`week-start-${d.value}`,disabled:f}),d.label]},d.value))})]})]})]}),e.jsxs(l.DialogFooter,{children:[e.jsx(u.Button,{variant:"outline",size:"xs",onClick:_,disabled:z,children:"Cancel"}),e.jsx(u.Button,{size:"xs",onClick:O,disabled:$,children:z?e.jsxs(e.Fragment,{children:[e.jsx(u.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})}function Y(a={}){const{authToken:c,tokenProps:t}=l.useSemaphorContext(),m=u.useDashboardStore(r=>r.actions.applyResolvedValueFormatPreferences),s=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,g=o.useRef(i);g.current=i;const[S,b]=o.useState(null),[C,f]=o.useState(!1),[j,T]=o.useState(!1),[x,w]=o.useState(!1),[P,v]=o.useState(null);o.useEffect(()=>{b(null),v(null),f(!1),T(!1),w(!1)},[i]);const N=o.useCallback(async r=>{const n=L.parseValueFormatPreferencesResponse(await r.json());if(!n.ok)throw new Error("Value format preferences response is invalid");return n.value},[]),k=o.useCallback(async(r,n)=>{if(!i||!h)throw new Error("Not authenticated");const y=await fetch(`${h}/v1/user-preferences/value-format`,{method:r,headers:{Authorization:`Bearer ${i}`,...n?{"Content-Type":"application/json"}:{}},body:n?JSON.stringify(n):void 0});if(!y.ok){const D=await y.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}return N(y)},[i,h,N]),E=o.useCallback(async()=>{if(!s||!i||!h)return;const r=i;f(!0),v(null);try{const n=await k("GET");g.current===r&&b(n)}catch(n){g.current===r&&v(n instanceof Error?n.message:"Unknown error")}finally{g.current===r&&f(!1)}},[i,h,s,k]);o.useEffect(()=>{s&&E()},[s,E]);const A=o.useCallback(async r=>{const n=i;T(!0),v(null);try{const y=await k("PATCH",r);return g.current!==n?!1:(b(y),m(y.resolved,y.sources),!0)}catch(y){return g.current===n&&v(y instanceof Error?y.message:"Unknown error"),!1}finally{g.current===n&&T(!1)}},[i,m,k]),p=o.useCallback(async()=>{const r=i;w(!0),v(null);try{const n=await k("DELETE");return g.current!==r?!1:(b(n),m(n.resolved,n.sources),!0)}catch(n){return g.current===r&&v(n instanceof Error?n.message:"Unknown error"),!1}finally{g.current===r&&w(!1)}},[i,m,k]);return{preferences:S,isLoading:C,isSaving:j,isClearing:x,error:P,updatePreferences:A,clearPreferences:p,refetch:E}}const I=["locale","dateStyle","dateTime.dateStyle","dateTime.timeStyle","defaultCurrency"];function q(a,c){var t,m;switch(c){case"locale":return a==null?void 0:a.locale;case"dateStyle":return a==null?void 0:a.dateStyle;case"dateTime.dateStyle":return(t=a==null?void 0:a.dateTime)==null?void 0:t.dateStyle;case"dateTime.timeStyle":return(m=a==null?void 0:a.dateTime)==null?void 0:m.timeStyle;case"defaultCurrency":return a==null?void 0:a.defaultCurrency}}function Z(a){var m,s;const c=(m=a==null?void 0:a.dateTime)==null?void 0:m.dateStyle,t=(s=a==null?void 0:a.dateTime)==null?void 0:s.timeStyle;return{locale:a==null?void 0:a.locale,dateStyle:a==null?void 0:a.dateStyle,dateTime:c===void 0&&t===void 0?void 0:{dateStyle:c,timeStyle:t},defaultCurrency:a==null?void 0:a.defaultCurrency}}function Q({active:a,onClose:c}){var g,S,b,C,f,j,T;const{preferences:t,isLoading:m,isSaving:s,updatePreferences:i}=Y({enabled:a});if(!a)return null;if(!t)return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx("div",{className:"flex min-h-36 items-center justify-center text-[12px] text-muted-foreground",children:m?"Loading preferences…":"Preferences unavailable."})}),e.jsxs(l.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(u.Button,{variant:"ghost",size:"xs",disabled:!0,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(u.Button,{variant:"outline",size:"xs",onClick:c,children:"Cancel"}),e.jsx(u.Button,{size:"xs",disabled:!0,children:"Save"})]})]})]});const h=[((g=t.stored)==null?void 0:g.locale)??"",((S=t.stored)==null?void 0:S.dateStyle)??"",((C=(b=t.stored)==null?void 0:b.dateTime)==null?void 0:C.dateStyle)??"",((j=(f=t.stored)==null?void 0:f.dateTime)==null?void 0:j.timeStyle)??"",((T=t.stored)==null?void 0:T.defaultCurrency)??""].join(":");return e.jsx(X,{preferences:t,isSaving:s,updatePreferences:i,onClose:c},h)}function X({preferences:a,isSaving:c,updatePreferences:t,onClose:m}){var b,C;const[s,i]=o.useState(()=>Z(a.stored)),h=(s.locale===void 0||L.canonicalizeSupportedLocale(s.locale)!==void 0)&&(s.defaultCurrency===void 0||L.canonicalizeSupportedCurrencyCode(s.defaultCurrency)!==void 0)&&(s.dateStyle===void 0||["short","medium","long"].includes(s.dateStyle))&&(((b=s.dateTime)==null?void 0:b.dateStyle)===void 0||["short","medium","long"].includes(s.dateTime.dateStyle))&&(((C=s.dateTime)==null?void 0:C.timeStyle)===void 0||["short","medium","long"].includes(s.dateTime.timeStyle)),g=async()=>{const f={...s.locale!==void 0?{locale:s.locale}:{},...s.dateStyle!==void 0?{dateStyle:s.dateStyle}:{},...s.dateTime?{dateTime:{...s.dateTime}}:{},...s.defaultCurrency!==void 0?{defaultCurrency:s.defaultCurrency}:{}},j=I.filter(w=>q(s,w)===void 0&&q(a.stored,w)!==void 0),T={...Object.keys(f).length>0?{set:f}:{},...j.length>0?{clear:j}:{}};(Object.keys(T).length===0?!0:await t(T))?(l.ue.success("Display format preferences saved."),m()):l.ue.error("Failed to save preferences. Please try again.")},S=async()=>{await t({clear:[...I]})?(l.ue.success("Display format preferences reset."),m()):l.ue.error("Failed to reset display format preferences. Please try again.")};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(l.DisplayFormatPreferencesFields,{value:s,inherited:a.inherited,inheritedSources:a.inheritedSources,onChange:i,disabled:c})}),e.jsxs(l.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(u.Button,{variant:"ghost",size:"xs",onClick:S,disabled:c||a.stored===null,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(u.Button,{variant:"outline",size:"xs",onClick:m,disabled:c,children:"Cancel"}),e.jsx(u.Button,{size:"xs",onClick:g,disabled:c||!h,children:c?e.jsxs(e.Fragment,{children:[e.jsx(u.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})]})}function ee({open:a,onOpenChange:c}){const[t,m]=o.useState("display"),s=()=>c(!1);return e.jsx(l.Dialog,{open:a,onOpenChange:c,children:e.jsxs(l.DialogContent,{className:"rounded-control border-border/60 sm:max-w-[440px] sm:rounded-control",children:[e.jsxs(l.DialogHeader,{children:[e.jsx(l.DialogTitle,{className:"text-[15px]",children:"Report preferences"}),e.jsx(l.DialogDescription,{className:"text-[13px] leading-5",children:"Set how values and Calendar periods appear for you."})]}),e.jsxs(u.Tabs,{value:t,onValueChange:m,children:[e.jsxs(u.TabsList,{variant:"underline",className:"w-full justify-start",children:[e.jsx(u.TabsTrigger,{value:"display",children:"Display formats"}),e.jsx(u.TabsTrigger,{value:"calendar",children:"Calendar"})]}),e.jsx(u.TabsContent,{value:"display",children:e.jsx(Q,{active:a&&t==="display",onClose:s})}),e.jsx(u.TabsContent,{value:"calendar",children:e.jsx(J,{active:a&&t==="calendar",onClose:s})})]})]})})}exports.ReportPreferencesDialog=ee;
1
+ "use strict";const e=require("react/jsx-runtime"),o=require("react"),l=require("./index-B6zSYUN4.cjs"),u=require("./switch-B4eH4guz.cjs"),V=require("./report-runtime-context-RFiWq4wK.cjs");require("./x-B6ghREd2.cjs");require("./saved-temporal-bucket-format-DNMtD77o.cjs");require("./validators-DcshgK7w.cjs");require("./analyze-result-contract-OgPk-zGu.cjs");const L=require("../value-format-preferences/index.cjs");function G(a={}){const{authToken:c,tokenProps:t}=l.useSemaphorContext(),m=u.useDashboardStore(p=>p.actions.applyResolvedCalendarPreferences),s=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,[g,S]=o.useState(!1),[b,C]=o.useState(!1),[f,j]=o.useState(!1),[T,x]=o.useState(null),[w,P]=o.useState(null),v=o.useRef(i);v.current=i,o.useEffect(()=>{P(null),x(null),S(!1),C(!1),j(!1)},[i]);const N=o.useCallback(async p=>{const r=V.parseCalendarPreferencesResponse(await p.json());if(!r.ok)throw new Error("Calendar preferences response is invalid");return r.value},[]),k=o.useCallback(async()=>{if(!s||!i||!h)return;const p=i;S(!0),x(null);try{const r=await fetch(`${h}/v1/user-preferences/calendar`,{method:"GET",headers:{Authorization:`Bearer ${i}`}});if(!r.ok){const y=await r.json().catch(()=>({}));throw new Error(y.error||"Failed to fetch preferences")}const n=await N(r);v.current===p&&P(n)}catch(r){v.current===p&&x(r instanceof Error?r.message:"Unknown error")}finally{v.current===p&&S(!1)}},[i,h,s,N]);o.useEffect(()=>{s&&k()},[s,k]);const E=o.useCallback(async p=>{if(!i||!h)return x("Not authenticated"),!1;const r=i;C(!0),x(null);try{const n=await fetch(`${h}/v1/user-preferences/calendar`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(p)});if(!n.ok){const D=await n.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}const y=await N(n);return v.current!==r?!1:(P(y),m(y.resolved,y.sources),!0)}catch(n){return v.current===r&&x(n instanceof Error?n.message:"Unknown error"),!1}finally{v.current===r&&C(!1)}},[i,h,m,N]),A=o.useCallback(async()=>{if(!i||!h)return x("Not authenticated"),!1;const p=i;j(!0),x(null);try{const r=await fetch(`${h}/v1/user-preferences/calendar`,{method:"DELETE",headers:{Authorization:`Bearer ${i}`}});if(!r.ok){const y=await r.json().catch(()=>({}));throw new Error(y.error||"Failed to clear preferences")}const n=await N(r);return v.current!==p?!1:(P(n),m(n.resolved,n.sources),!0)}catch(r){return v.current===p&&x(r instanceof Error?r.message:"Unknown error"),!1}finally{v.current===p&&j(!1)}},[i,h,m,N]);return{preferences:w,isLoading:g,isSaving:b,isClearing:f,error:T,updatePreferences:E,clearPreferences:A,refetch:k}}const F=[{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"}],B=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:6,label:"Saturday"}],R="text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground";function W(){try{const a=Intl;if(a.supportedValuesOf)return a.supportedValuesOf("timeZone")}catch{}return F.map(a=>a.value)}function H(a){if(!a)return"default";if(a.tz!==a.weekStart)return"inherited";switch(a.tz){case"viewer_tenant":return"tenant";case"viewer_organization":return"organization";case"system_default":return"system";case"session_initial":return"embedded";default:return"default"}}function U(a){const c=F.find(t=>t.value===a);return c?c.label:a}function K(a){const c=B.find(t=>t.value===a);return c?c.label:String(a)}function J({active:a,onClose:c}){const{preferences:t,isLoading:m,isSaving:s,isClearing:i,updatePreferences:h,clearPreferences:g}=G({enabled:a}),S=l.useCalendarContext(),b=(t==null?void 0:t.resolved.tz)||(S==null?void 0:S.tz)||"UTC",C=(t==null?void 0:t.resolved.weekStart)??(S==null?void 0:S.weekStart)??1,[f,j]=o.useState((t==null?void 0:t.stored)===null),[T,x]=o.useState(!1),[w,P]=o.useState(b),[v,N]=o.useState(C),[k,E]=o.useState(!1),A=o.useMemo(()=>W(),[]),p=o.useMemo(()=>A.filter(d=>!F.some(M=>M.value===d)),[A]),r=o.useMemo(()=>U(w),[w]),n=t!=null&&t.inherited?U(t.inherited.tz):"UTC",y=t!=null&&t.inherited?K(t.inherited.weekStart):"Monday",D=H(t==null?void 0:t.inheritedSources);o.useEffect(()=>{if(!a){x(!1);return}T||(t&&j(t.stored===null),P(b),N(C))},[a,T,t,b,C]);const O=async()=>{if(m){l.ue.error("Preferences are still loading. Please try again.");return}f?await g()?(l.ue.success("Now using default settings."),c()):l.ue.error("Failed to save preferences. Please try again."):await h({tz:w,weekStart:v})?(l.ue.success("Preferences saved."),c()):l.ue.error("Failed to save preferences. Please try again.")},_=()=>{c()},z=s||i,$=z||m;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4 py-1",children:[e.jsxs(l.RadioGroup,{value:f?"defaults":"custom",onValueChange:d=>{x(!0),j(d==="defaults")},className:"space-y-0.5",children:[e.jsxs("label",{htmlFor:"mode-defaults",className:u.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",f&&"bg-muted/50"),onClick:()=>{x(!0),j(!0)},children:[e.jsx(l.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 ",D," defaults"]}),e.jsxs("p",{className:"text-[12px] text-muted-foreground",children:[n,", week starts ",y]})]})]}),e.jsxs("label",{htmlFor:"mode-custom",className:u.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",!f&&"bg-muted/50"),onClick:()=>{x(!0),j(!1)},children:[e.jsx(l.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:u.cn("space-y-4 border-t border-border/60 pt-4 transition-opacity",f&&"pointer-events-none opacity-50"),children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(u.Label,{className:R,children:"Timezone"}),e.jsxs(u.Popover,{open:k,onOpenChange:E,modal:!0,children:[e.jsx(u.PopoverTrigger,{asChild:!0,children:e.jsxs(u.Button,{variant:"outline",size:"xs",role:"combobox","aria-expanded":k,className:"w-full justify-between text-[12px] font-normal",disabled:f,children:[e.jsx("span",{className:"truncate",children:r}),e.jsx(l.ChevronsUpDown,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),e.jsx(u.PopoverContent,{className:"z-50 w-[--radix-popover-trigger-width] p-0",align:"start",children:e.jsxs(l.Command,{className:"overflow-visible",children:[e.jsx(l.CommandInput,{placeholder:"Search timezones…"}),e.jsxs(l.CommandList,{children:[e.jsx(l.CommandEmpty,{children:"No timezone found."}),e.jsx(l.CommandGroup,{heading:"Common",children:F.map(d=>e.jsxs(l.CommandItem,{value:`${d.value} ${d.label}`,onSelect:()=>{x(!0),P(d.value),E(!1)},children:[e.jsx(u.Check,{className:u.cn("h-3.5 w-3.5",w===d.value?"opacity-100":"opacity-0")}),e.jsx("span",{className:"flex-1",children:d.label}),e.jsx("span",{className:"text-[11px] text-muted-foreground",children:d.value})]},d.value))}),e.jsx(l.CommandSeparator,{}),e.jsx(l.CommandGroup,{heading:"All timezones",children:p.map(d=>e.jsxs(l.CommandItem,{value:d,onSelect:()=>{x(!0),P(d),E(!1)},children:[e.jsx(u.Check,{className:u.cn("h-3.5 w-3.5",w===d?"opacity-100":"opacity-0")}),d]},d))})]})]})})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(u.Label,{className:R,children:"Week starts on"}),e.jsx(l.RadioGroup,{value:String(v),onValueChange:d=>{x(!0),N(Number(d))},className:"flex gap-4",disabled:f,children:B.map(d=>e.jsxs("label",{htmlFor:`week-start-${d.value}`,className:u.cn("flex cursor-pointer items-center gap-2 text-[13px]",f&&"cursor-not-allowed"),children:[e.jsx(l.RadioGroupItem,{value:String(d.value),id:`week-start-${d.value}`,disabled:f}),d.label]},d.value))})]})]})]}),e.jsxs(l.DialogFooter,{children:[e.jsx(u.Button,{variant:"outline",size:"xs",onClick:_,disabled:z,children:"Cancel"}),e.jsx(u.Button,{size:"xs",onClick:O,disabled:$,children:z?e.jsxs(e.Fragment,{children:[e.jsx(u.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})}function Y(a={}){const{authToken:c,tokenProps:t}=l.useSemaphorContext(),m=u.useDashboardStore(r=>r.actions.applyResolvedValueFormatPreferences),s=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,g=o.useRef(i);g.current=i;const[S,b]=o.useState(null),[C,f]=o.useState(!1),[j,T]=o.useState(!1),[x,w]=o.useState(!1),[P,v]=o.useState(null);o.useEffect(()=>{b(null),v(null),f(!1),T(!1),w(!1)},[i]);const N=o.useCallback(async r=>{const n=L.parseValueFormatPreferencesResponse(await r.json());if(!n.ok)throw new Error("Value format preferences response is invalid");return n.value},[]),k=o.useCallback(async(r,n)=>{if(!i||!h)throw new Error("Not authenticated");const y=await fetch(`${h}/v1/user-preferences/value-format`,{method:r,headers:{Authorization:`Bearer ${i}`,...n?{"Content-Type":"application/json"}:{}},body:n?JSON.stringify(n):void 0});if(!y.ok){const D=await y.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}return N(y)},[i,h,N]),E=o.useCallback(async()=>{if(!s||!i||!h)return;const r=i;f(!0),v(null);try{const n=await k("GET");g.current===r&&b(n)}catch(n){g.current===r&&v(n instanceof Error?n.message:"Unknown error")}finally{g.current===r&&f(!1)}},[i,h,s,k]);o.useEffect(()=>{s&&E()},[s,E]);const A=o.useCallback(async r=>{const n=i;T(!0),v(null);try{const y=await k("PATCH",r);return g.current!==n?!1:(b(y),m(y.resolved,y.sources),!0)}catch(y){return g.current===n&&v(y instanceof Error?y.message:"Unknown error"),!1}finally{g.current===n&&T(!1)}},[i,m,k]),p=o.useCallback(async()=>{const r=i;w(!0),v(null);try{const n=await k("DELETE");return g.current!==r?!1:(b(n),m(n.resolved,n.sources),!0)}catch(n){return g.current===r&&v(n instanceof Error?n.message:"Unknown error"),!1}finally{g.current===r&&w(!1)}},[i,m,k]);return{preferences:S,isLoading:C,isSaving:j,isClearing:x,error:P,updatePreferences:A,clearPreferences:p,refetch:E}}const I=["locale","dateStyle","dateTime.dateStyle","dateTime.timeStyle","defaultCurrency"];function q(a,c){var t,m;switch(c){case"locale":return a==null?void 0:a.locale;case"dateStyle":return a==null?void 0:a.dateStyle;case"dateTime.dateStyle":return(t=a==null?void 0:a.dateTime)==null?void 0:t.dateStyle;case"dateTime.timeStyle":return(m=a==null?void 0:a.dateTime)==null?void 0:m.timeStyle;case"defaultCurrency":return a==null?void 0:a.defaultCurrency}}function Z(a){var m,s;const c=(m=a==null?void 0:a.dateTime)==null?void 0:m.dateStyle,t=(s=a==null?void 0:a.dateTime)==null?void 0:s.timeStyle;return{locale:a==null?void 0:a.locale,dateStyle:a==null?void 0:a.dateStyle,dateTime:c===void 0&&t===void 0?void 0:{dateStyle:c,timeStyle:t},defaultCurrency:a==null?void 0:a.defaultCurrency}}function Q({active:a,onClose:c}){var g,S,b,C,f,j,T;const{preferences:t,isLoading:m,isSaving:s,updatePreferences:i}=Y({enabled:a});if(!a)return null;if(!t)return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx("div",{className:"flex min-h-36 items-center justify-center text-[12px] text-muted-foreground",children:m?"Loading preferences…":"Preferences unavailable."})}),e.jsxs(l.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(u.Button,{variant:"ghost",size:"xs",disabled:!0,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(u.Button,{variant:"outline",size:"xs",onClick:c,children:"Cancel"}),e.jsx(u.Button,{size:"xs",disabled:!0,children:"Save"})]})]})]});const h=[((g=t.stored)==null?void 0:g.locale)??"",((S=t.stored)==null?void 0:S.dateStyle)??"",((C=(b=t.stored)==null?void 0:b.dateTime)==null?void 0:C.dateStyle)??"",((j=(f=t.stored)==null?void 0:f.dateTime)==null?void 0:j.timeStyle)??"",((T=t.stored)==null?void 0:T.defaultCurrency)??""].join(":");return e.jsx(X,{preferences:t,isSaving:s,updatePreferences:i,onClose:c},h)}function X({preferences:a,isSaving:c,updatePreferences:t,onClose:m}){var b,C;const[s,i]=o.useState(()=>Z(a.stored)),h=(s.locale===void 0||L.canonicalizeSupportedLocale(s.locale)!==void 0)&&(s.defaultCurrency===void 0||L.canonicalizeSupportedCurrencyCode(s.defaultCurrency)!==void 0)&&(s.dateStyle===void 0||["short","medium","long"].includes(s.dateStyle))&&(((b=s.dateTime)==null?void 0:b.dateStyle)===void 0||["short","medium","long"].includes(s.dateTime.dateStyle))&&(((C=s.dateTime)==null?void 0:C.timeStyle)===void 0||["short","medium","long"].includes(s.dateTime.timeStyle)),g=async()=>{const f={...s.locale!==void 0?{locale:s.locale}:{},...s.dateStyle!==void 0?{dateStyle:s.dateStyle}:{},...s.dateTime?{dateTime:{...s.dateTime}}:{},...s.defaultCurrency!==void 0?{defaultCurrency:s.defaultCurrency}:{}},j=I.filter(w=>q(s,w)===void 0&&q(a.stored,w)!==void 0),T={...Object.keys(f).length>0?{set:f}:{},...j.length>0?{clear:j}:{}};(Object.keys(T).length===0?!0:await t(T))?(l.ue.success("Display format preferences saved."),m()):l.ue.error("Failed to save preferences. Please try again.")},S=async()=>{await t({clear:[...I]})?(l.ue.success("Display format preferences reset."),m()):l.ue.error("Failed to reset display format preferences. Please try again.")};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(l.DisplayFormatPreferencesFields,{value:s,inherited:a.inherited,inheritedSources:a.inheritedSources,onChange:i,disabled:c})}),e.jsxs(l.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(u.Button,{variant:"ghost",size:"xs",onClick:S,disabled:c||a.stored===null,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(u.Button,{variant:"outline",size:"xs",onClick:m,disabled:c,children:"Cancel"}),e.jsx(u.Button,{size:"xs",onClick:g,disabled:c||!h,children:c?e.jsxs(e.Fragment,{children:[e.jsx(u.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})]})}function ee({open:a,onOpenChange:c}){const[t,m]=o.useState("display"),s=()=>c(!1);return e.jsx(l.Dialog,{open:a,onOpenChange:c,children:e.jsxs(l.DialogContent,{className:"rounded-control border-border/60 sm:max-w-[440px] sm:rounded-control",children:[e.jsxs(l.DialogHeader,{children:[e.jsx(l.DialogTitle,{className:"text-[15px]",children:"Report preferences"}),e.jsx(l.DialogDescription,{className:"text-[13px] leading-5",children:"Set how values and Calendar periods appear for you."})]}),e.jsxs(u.Tabs,{value:t,onValueChange:m,children:[e.jsxs(u.TabsList,{variant:"underline",className:"w-full justify-start",children:[e.jsx(u.TabsTrigger,{value:"display",children:"Display formats"}),e.jsx(u.TabsTrigger,{value:"calendar",children:"Calendar"})]}),e.jsx(u.TabsContent,{value:"display",children:e.jsx(Q,{active:a&&t==="display",onClose:s})}),e.jsx(u.TabsContent,{value:"calendar",children:e.jsx(J,{active:a&&t==="calendar",onClose:s})})]})]})})}exports.ReportPreferencesDialog=ee;
@@ -1,5 +1,5 @@
1
1
  import { parseValueFormatPreferences as _, isReportPreferenceSource as C } from "../value-format-preferences/index.js";
2
- import { b as k, g } from "./validators-B5t1s8oh.js";
2
+ import { b as k, h as g } from "./validators-D-T-2HOR.js";
3
3
  const M = {
4
4
  tz: "UTC",
5
5
  weekStart: 1,
@@ -170,7 +170,7 @@ function l(e, a, r) {
170
170
  }
171
171
  return e;
172
172
  }
173
- function h(e, a) {
173
+ function v(e, a) {
174
174
  if (!o(e))
175
175
  return {
176
176
  ok: !1,
@@ -205,10 +205,10 @@ function D(e) {
205
205
  e.inherited,
206
206
  "inherited",
207
207
  !1
208
- ), s = h(
208
+ ), s = v(
209
209
  e.inheritedSources,
210
210
  "inheritedSources"
211
- ), c = d(e.resolved, "resolved", !1), i = h(e.sources, "sources");
211
+ ), c = d(e.resolved, "resolved", !1), i = v(e.sources, "sources");
212
212
  for (const u of [r, t, s, c, i])
213
213
  u.ok || a.push(...u.issues);
214
214
  return a.length || !r.ok || !t.ok || !s.ok || !c.ok || !i.ok ? { ok: !1, issues: a } : {
@@ -293,12 +293,12 @@ function j(e) {
293
293
  s.timeStyle,
294
294
  "preferenceSources.valueFormat.dateTime.timeStyle",
295
295
  a
296
- ) : void 0, v = l(
296
+ ) : void 0, h = l(
297
297
  t.defaultCurrency,
298
298
  "preferenceSources.valueFormat.defaultCurrency",
299
299
  a
300
300
  );
301
- return a.length || !c || !i || !u || !f || !m || !S || !v ? { ok: !1, issues: a } : {
301
+ return a.length || !c || !i || !u || !f || !m || !S || !h ? { ok: !1, issues: a } : {
302
302
  ok: !0,
303
303
  value: {
304
304
  calendar: {
@@ -312,7 +312,7 @@ function j(e) {
312
312
  dateStyle: m,
313
313
  timeStyle: S
314
314
  },
315
- defaultCurrency: v
315
+ defaultCurrency: h
316
316
  }
317
317
  }
318
318
  };
@@ -1,8 +1,8 @@
1
1
  import { S as P, a as k } from "./color-CJvdlFM_.js";
2
- import { N as R, am as v, l as O, E as D } from "./validators-B5t1s8oh.js";
3
- import "./analyze-result-contract-B3agc2XU.js";
2
+ import { O as R, am as v, m as O, F as D } from "./validators-D-T-2HOR.js";
3
+ import "./analyze-result-contract-C8s8EUL5.js";
4
4
  import "../value-format-preferences/index.js";
5
- import { A as g } from "./temporal-bucket-authoring-CZoJV2L6.js";
5
+ import { A as g } from "./temporal-bucket-authoring-DJ9kK2wD.js";
6
6
  var te = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
7
7
  function U(e) {
8
8
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
@@ -54,7 +54,7 @@ var T = {}, B = {}, A = { exports: {} }, o = String, S = function() {
54
54
  };
55
55
  A.exports = S();
56
56
  A.exports.createColors = S;
57
- var N = A.exports;
57
+ var j = A.exports;
58
58
  (function(e) {
59
59
  Object.defineProperty(e, "__esModule", {
60
60
  value: !0
@@ -73,7 +73,7 @@ var N = A.exports;
73
73
  return c;
74
74
  }
75
75
  });
76
- const a = /* @__PURE__ */ t(N);
76
+ const a = /* @__PURE__ */ t(j);
77
77
  function t(f) {
78
78
  return f && f.__esModule ? f : {
79
79
  default: f
@@ -464,10 +464,10 @@ var N = A.exports;
464
464
  };
465
465
  })(T);
466
466
  let _ = T;
467
- var j = (_.__esModule ? _ : { default: _ }).default;
468
- const i = /* @__PURE__ */ U(j), q = ".semaphor-scope";
467
+ var q = (_.__esModule ? _ : { default: _ }).default;
468
+ const i = /* @__PURE__ */ U(q), N = ".semaphor-scope";
469
469
  function V(e) {
470
- return e ? e.closest(q) : null;
470
+ return e ? e.closest(N) : null;
471
471
  }
472
472
  function Q(e) {
473
473
  if (!e) return "light";
@@ -0,0 +1 @@
1
+ "use strict";const Y=require("./validators-DcshgK7w.cjs");function y(e){const i=ae(e);return i.length>0?i.join("."):void 0}function Q(e){const i=y(e.qualifiedName),t=(i==null?void 0:i.split("."))||[];if(t.length===0)return{};const a={};let s=t.length-1;for(let r=e.capabilities.prefixLevels.length-1;r>=0&&s>=0;r-=1,s-=1)te(a,e.capabilities.prefixLevels[r],t[s]);return a}function B(e){return!e.left.tableName||!e.right.tableName?!1:e.capabilities.prefixLevels.every(i=>{const t=S(e.left,i),a=S(e.right,i);return!t||!a||t===a})}function Z(e){return e.capabilities.prefixLevels.every(i=>{const t=S(e.requested,i);return t?S(e.allowed,i)===t:!0})}function G(e,i={}){const t=F(e),a={connectionId:i.connectionId,connectionType:e,path:["database","schema","table"],labels:{database:"Database",schema:"Schema",table:"Table"},prefixLevels:["database","schema","table"],dialect:"postgres",supportsFilterClause:!0};return t.includes("postgres")?{...a,prefixLevels:["schema","table"],dialect:"postgres"}:t.includes("mysql")?{...a,prefixLevels:["database","table"],dialect:"mysql",supportsFilterClause:!1}:t.includes("mssql")||t.includes("sqlserver")?{...a,dialect:"mssql",supportsFilterClause:!1}:t.includes("redshift")?{...a,prefixLevels:["schema","table"],dialect:"redshift"}:t.includes("snowflake")?{...a,dialect:"snowflake"}:t.includes("clickhouse")?{connectionId:i.connectionId,connectionType:e,path:["database","table"],labels:{database:"Database",table:"Table"},prefixLevels:["database","table"],dialect:"clickhouse",supportsFilterClause:!1}:t==="s3"||t==="api"?{connectionId:i.connectionId,connectionType:e,path:["table"],labels:{table:t==="api"?"API Table":"File Table"},prefixLevels:["table"],dialect:"duckdb",supportsFilterClause:!0}:t==="googlesheets"||t==="fileupload"?{connectionId:i.connectionId,connectionType:e,path:["table"],labels:{table:"Table"},prefixLevels:["table"],dialect:"postgres",supportsFilterClause:!0}:t==="s3tables"?{...a,labels:{database:"Database",schema:"Namespace",table:"Table"},dialect:"duckdb"}:t==="bigquery"?{...a,labels:{database:"Project",schema:"Dataset",table:"Table"},prefixLevels:["schema","table"],dialect:"bigquery",supportsFilterClause:!1}:a}function v(e,i={}){return j(e)?G(e,i):void 0}function j(e){const i=F(e);if(i.includes("postgres"))return"postgres";if(i.includes("mysql"))return"mysql";if(i.includes("mssql")||i.includes("sqlserver"))return"mssql";if(i.includes("redshift"))return"redshift";if(i.includes("snowflake"))return"snowflake";if(i.includes("clickhouse"))return"clickhouse";if(i==="s3"||i==="api"||i==="googlesheets"||i==="fileupload"||i==="s3tables"||i==="bigquery")return i}function T(e){const i=F(e);switch(i){case"mysql":case"bigquery":case"redshift":case"snowflake":case"clickhouse":case"duckdb":case"sqlite":return i;case"mssql":case"sqlserver":return"mssql";case"postgres":case"postgresql":return"postgres";default:return"unknown"}}function ee(e){return e.capabilities.prefixLevels.every(i=>!!S(e.source,i))}function ie(e){const i=e.quoteIdentifier??ne;return e.capabilities.prefixLevels.map(t=>S(e.source,t)).filter(t=>!!t).map(t=>i(t,e.capabilities.dialect)).join(".")}function S(e,i){return i==="database"?e.databaseName:i==="schema"?e.schemaName:e.tableName}function te(e,i,t){i==="database"?e.databaseName=t:i==="schema"?e.schemaName=t:e.tableName=t}function ae(e){const i=e==null?void 0:e.trim();if(!i)return[];const t=i.split(".").map(a=>{const s=a.trim();return s.length>=2&&s.startsWith('"')&&s.endsWith('"')?s.slice(1,-1):s});return t.some(a=>!a)?[]:t}function ne(e,i){return i==="mysql"||i==="bigquery"||i==="clickhouse"||i==="duckdb"?`\`${e.replace(/`/g,"``")}\``:i==="mssql"?`[${e.replace(/]/g,"]]")}]`:`"${e.replace(/"/g,'""')}"`}function F(e){if(typeof e!="string")return"";const i=[];for(const t of e.trim().toLowerCase())se(t)&&i.push(t);return i.join("")}function se(e){const i=e.charCodeAt(0);return i>=48&&i<=57||i>=97&&i<=122}function R(e){return e.prefixLevels.length===1&&e.prefixLevels[0]==="table"?["table"]:Array.from(new Set(["database",...e.prefixLevels]))}function oe(e){const i=e.source.connectionType?v(e.source.connectionType):void 0,t=e.source.dialect?T(e.source.dialect):void 0,a=e.source.dialect&&e.source.dialect!=="unknown"?v(e.source.dialect):void 0;if(!e.capabilities&&e.source.connectionType&&e.source.dialect&&e.source.dialect!=="unknown"&&(!i||t==="unknown"||i.dialect!==t))return{kind:"incompatible_capabilities"};const s=e.capabilities||i||a;if(!s)return{kind:"incompatible_capabilities"};const r=R(s),o={...r.includes("database")&&e.source.databaseName?{databaseName:e.source.databaseName}:{},...r.includes("schema")&&e.source.schemaName?{schemaName:e.source.schemaName}:{},...e.source.tableName?{tableName:e.source.tableName}:{}},n=r.filter(d=>d==="database"?!o.databaseName:d==="schema"?!o.schemaName:!o.tableName);return n.length>0?{kind:"missing_coordinates",missing:n}:{kind:"resolved",coordinates:o}}function f(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function w(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function $(e){const i=w(e);return!i||!f(i.name)||i.type==="model"?!1:i.type==="dataset"?i.datasetType==="physical":!0}function x(e){const i=w(e);if(!i)return{};const t=f(i.table)||f(i.name);return{...f(i.database)?{databaseName:f(i.database)}:{},...f(i.schema)?{schemaName:f(i.schema)}:{},...t?{tableName:t}:{}}}function J(e){if(de(e))return{kind:"malformed"};const i=e.entities.filter($),t=re(e),a=ce({entities:i,connectionType:e.connectionType,dialect:e.dialect,capabilities:e.capabilities});if(!a)return{kind:"incompatible_capabilities"};const{capabilities:s}=a,r=ue({hints:e.qualifiedHints||[],coordinateHint:e.coordinateHint,capabilityAuthority:a});if(r.kind!=="valid")return{kind:r.kind};const o=r.coordinates,n=o?i.filter(c=>B({left:K(x(c),s),right:o,capabilities:s})):i;if(o&&n.length===0)return{kind:"not_found",basis:"qualified",coordinates:o,capabilityAuthority:a};if(o&&n.length===1){const c=n[0],u=D(a,c);return{kind:"resolved",basis:"qualified",entity:c,coordinates:he(x(c),o,u),capabilityAuthority:u}}const d=U([...e.bareHints||[],...r.bareHints,o==null?void 0:o.tableName]);if(d.size>0){const c=n.filter(u=>{const b=be(u);return Array.from(d).some(h=>b.has(h))});if(c.length===1){const u=c[0],b=D(a,u);return{kind:"resolved",basis:"bare",entity:u,coordinates:A(x(u),b),capabilityAuthority:b}}return c.length>1?{kind:"ambiguous",basis:"bare"}:{kind:"not_found",basis:"bare",capabilityAuthority:a}}if(o)return{kind:"ambiguous",basis:"qualified"};if(t)return{kind:"not_found",basis:t,capabilityAuthority:a};if(i.length===1){const c=i[0],u=D(a,c);return{kind:"resolved",basis:"unqualified",entity:c,coordinates:A(x(c),u),capabilityAuthority:u}}return{kind:"unqualified"}}function re(e){const i=(e.qualifiedHints||[]).map(f).filter(a=>!!a);return Object.values(e.coordinateHint||{}).some(a=>!!f(a))||i.some(a=>a.includes("."))?"qualified":[...i,...e.bareHints||[]].some(a=>!!f(a))?"bare":void 0}function q(e){return`${e.dialect}:${e.prefixLevels.join(".")}`}function L(e){return{dialect:e.dialect,prefixLevels:[...e.prefixLevels]}}function ce(e){var I;const i=f(e.connectionType),t=f(e.dialect),a=e.capabilities?L(e.capabilities):void 0,s=i?v(i):void 0,r=t?T(t):void 0,o=t&&t!=="unknown"?v(t):void 0;if(i&&!s||t&&t!=="unknown"&&r==="unknown"||a&&s&&q(a)!==q(s))return;const n=a||(s?L(s):o?L(o):void 0);if(n)return r&&r!=="unknown"&&n.dialect!==r?void 0:{capabilities:n,...i?{connectionType:i}:{},dialect:n.dialect,evidence:"explicit"};const d=e.entities.map(m=>{const k=w(m),g=f(k==null?void 0:k.connectionType),p=f(k==null?void 0:k.dialect),C=g?v(g):void 0,H=p?T(p):void 0,E=p&&p!=="unknown"?v(p):void 0;if(g&&!C||p&&p!=="unknown"&&H==="unknown"||p&&p!=="unknown"&&!C&&!E||C&&H&&H!=="unknown"&&C.dialect!==H)return;const V=C||E,P=V?L(V):le(k);return P?{capabilities:P,connectionType:g,capabilityIdentity:g?j(g):void 0,inferred:!C&&!E,signature:q(P)}:void 0});if(d.some(m=>!m))return;const c=d.filter(m=>!!m);if(new Set(c.map(m=>m.signature)).size>1)return;const u=(I=c[0])==null?void 0:I.capabilities;if(!u||r&&r!=="unknown"&&u.dialect!==r)return;const b=new Set(c.map(m=>m.capabilityIdentity).filter(m=>!!m)),h=c.every(m=>m.connectionType&&m.capabilityIdentity);return{capabilities:u,...h&&b.size===1?{connectionType:c[0].connectionType}:{},dialect:u.dialect,evidence:c.every(m=>m.inferred)?"coordinates":"entity"}}function le(e){const i=!!f(e==null?void 0:e.database),t=!!f(e==null?void 0:e.schema);if(!(i&&t)){if(t)return{dialect:"unknown",prefixLevels:["schema","table"]};if(i)return{dialect:"unknown",prefixLevels:["database","table"]}}}function D(e,i){var s;if(e.evidence!=="entity")return e;const t=f((s=w(i))==null?void 0:s.connectionType),a=t?v(t):void 0;return a&&q(a)===q(e.capabilities)?{...e,connectionType:t}:e}function de(e){return(e.qualifiedHints||[]).some(t=>{const a=f(t);return!!(a&&a.includes(".")&&!y(a))})?!0:Object.values(e.coordinateHint||{}).some(t=>{const a=f(t);return!!(a&&!y(a))})}function ue(e){const{capabilities:i}=e.capabilityAuthority,t=[],a=[];for(const b of e.hints){const h=f(b);if(!h)continue;if(!h.includes(".")){a.push(h);continue}const I=y(h);if(!I)return{kind:"malformed"};t.push(I)}const s=fe(e.coordinateHint);if(s.kind==="malformed")return s;const r=Array.from(new Set(t)).map(b=>Q({qualifiedName:b,capabilities:i}));if(!me(r,i))return{kind:"conflicting"};const o=[...new Set(t)].sort((b,h)=>h.split(".").length-b.split(".").length)[0],n=o?Q({qualifiedName:o,capabilities:i}):void 0,d=K(s.coordinates,i),c=A(s.coordinates,e.capabilityAuthority),u=!!(d.tableName&&(d.databaseName||d.schemaName));return n&&u&&!B({left:n,right:d,capabilities:i})?{kind:"conflicting"}:{kind:"valid",coordinates:n?{...c,...n}:u?c:void 0,bareHints:[...a,...!u&&d.tableName?[d.tableName]:[]]}}function fe(e){const i={};for(const[t,a]of Object.entries(e||{})){const s=f(a);if(!s)continue;const r=y(s);if(!r)return{kind:"malformed"};i[t]=r}return{kind:"valid",coordinates:i}}function K(e,i){return{...i.prefixLevels.includes("database")&&e.databaseName?{databaseName:e.databaseName}:{},...i.prefixLevels.includes("schema")&&e.schemaName?{schemaName:e.schemaName}:{},...e.tableName?{tableName:e.tableName}:{}}}function me(e,i){return e.every((t,a)=>e.slice(a+1).every(s=>B({left:t,right:s,capabilities:i})))}function U(e){return new Set(e.map(f).map(y).filter(i=>!!i))}function be(e){const i=w(e);return i?U([f(i.name),f(i.table),f(i.id)]):new Set}function he(e,i,t){return A({...e,...i},t)}function A(e,i){const t=i.evidence==="coordinates"?i.capabilities.prefixLevels:R(i.capabilities);return{...t.includes("database")&&e.databaseName?{databaseName:e.databaseName}:{},...t.includes("schema")&&e.schemaName?{schemaName:e.schemaName}:{},...e.tableName?{tableName:e.tableName}:{}}}function l(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function N(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function ye(e){const i=N(e);return!!(i&&i.type==="dataset"&&l(i.name))}function M(e){const i=N(e);return!!(i&&i.type==="dataset"&&i.datasetType!=="physical"&&l(i.name))}function O(e){const i=new Set;for(const t of e){const a=l(t);if(!a)continue;const s=y(a);if(!s)continue;const r=s.toLowerCase();i.add(r);const o=r.split("."),n=o[o.length-1];n&&i.add(n)}return i}function W(e){var t;const i=l(e);return i?(t=y(i))==null?void 0:t.toLowerCase():void 0}function z(e,i){const t=N(i),a=l(t==null?void 0:t.domainId)||l(e.semanticDomainId),s=l(t==null?void 0:t.name);if(!a||!s)return;const r=(t==null?void 0:t.datasetType)==="physical"?void 0:Y.getSemaphorDatasetEntityId(t||{}),o=l(t==null?void 0:t.connectionId)||l(e.connectionId);return{kind:"semantic",domainId:a,datasetName:s,...r?{datasetId:r}:{},...o?{connectionId:o}:{}}}function X(e,i={}){const t=l(e.fieldEntityType);if(t&&t!=="dataset")return{kind:"unqualified"};const a=e.entities.filter(o=>i.includePhysicalDatasets?ye(o):M(o)),s=l(e.entityId);if(s){const o=W(s),n=a.filter(d=>{const c=N(d);return!!(o&&W(c==null?void 0:c.id)===o)});if(n.length>1)return{kind:"ambiguous",basis:"bare"};if(n.length===1){const d=z(e,n[0]);return d?{kind:"resolved",basis:"bare",entity:n[0],source:d,matchedById:!0}:{kind:"not_found",basis:"bare"}}}const r=O([e.entityName,...e.qualifiedHints||[],...e.bareHints||[]]);if(r.size>0){const o=a.filter(n=>{const d=N(n);return[...O([d==null?void 0:d.id,d==null?void 0:d.name])].some(u=>r.has(u))});if(o.length>1)return{kind:"ambiguous",basis:"bare"};if(o.length===1){const n=z(e,o[0]);return n?{kind:"resolved",basis:"bare",entity:o[0],source:n,matchedById:!1}:{kind:"not_found",basis:"bare"}}return{kind:"not_found",basis:"bare"}}if(a.length===1){const o=z(e,a[0]);return o?{kind:"resolved",basis:"unqualified",entity:a[0],source:o,matchedById:!1}:{kind:"unqualified"}}return{kind:"unqualified"}}function _(e){const i=e.resolution.kind==="resolved"?N(e.resolution.entity):void 0,t=l(e.connectionId)||l(i==null?void 0:i.connectionId),{connectionType:a,dialect:s}=e.resolution.capabilityAuthority,r=v(s),o=!!(r&&r.dialect===e.resolution.capabilityAuthority.capabilities.dialect&&r.prefixLevels.join(".")===e.resolution.capabilityAuthority.capabilities.prefixLevels.join(".")),n=e.resolution.coordinates;if(!(!t||!(n!=null&&n.tableName)))return{kind:"physical",connectionId:t,...a?{connectionType:a}:{},...!a&&o?{dialect:s}:{},tableName:n.tableName,...n.databaseName?{databaseName:n.databaseName}:{},...n.schemaName?{schemaName:n.schemaName}:{}}}function pe(e){var s,r,o;if(l(e.connectionType)||l(e.dialect)||e.capabilities||l(e.semanticDomainId)||l(e.fieldEntityType)==="dataset"||l((s=e.fallbackCoordinateHint)==null?void 0:s.databaseName)||l((r=e.fallbackCoordinateHint)==null?void 0:r.schemaName))return;const i=[l((o=e.fallbackCoordinateHint)==null?void 0:o.tableName),...(e.qualifiedHints||[]).map(l),...(e.bareHints||[]).map(l),l(e.entityName),...l(e.fieldEntityType)==="table"?[l(e.entityId)]:[]].filter(n=>!!n);if(!i.length||i.some(n=>n.includes(".")))return;const t=i.map(y);return t.some(n=>!n)?void 0:new Set(t.map(n=>n.toLowerCase())).size===1?t[0]:void 0}function ve(e){const i=e.entities.filter($),t=e.entities.filter(M),a=i.length>0||t.length>0,s=X(e),r=e.qualifiedHints||[],o=r.some(c=>{var u;return(u=l(c))==null?void 0:u.includes(".")}),n=J({entities:i,connectionType:l(e.connectionType),dialect:e.dialect,capabilities:e.capabilities,qualifiedHints:r,bareHints:[e.entityName,e.entityId,...e.bareHints||[]],...!o&&e.fallbackCoordinateHint?{coordinateHint:e.fallbackCoordinateHint}:{}});if(n.kind==="malformed"||n.kind==="conflicting"||n.kind==="incompatible_capabilities"&&o||n.kind==="ambiguous"&&n.basis==="qualified")return n;if(n.kind==="resolved"&&n.basis==="qualified"){const c=_({resolution:n,connectionId:e.connectionId});return c?{kind:"resolved",basis:n.basis,source:c,entity:n.entity}:{kind:"missing_connection"}}if(n.kind==="not_found"&&n.basis==="qualified"&&n.coordinates){const c=_({resolution:n,connectionId:e.connectionId});return c?a?{kind:"candidate",basis:"qualified",source:c}:{kind:"resolved",basis:"qualified",source:c}:{kind:"missing_connection"}}if(s.kind==="resolved")return n.kind==="resolved"&&n.basis==="bare"&&!s.matchedById?{kind:"ambiguous",basis:"bare"}:{kind:"resolved",basis:s.basis,source:s.source,entity:s.entity};if(s.kind==="ambiguous")return s;if(n.kind==="resolved"){const c=_({resolution:n,connectionId:e.connectionId});return c?{kind:"resolved",basis:n.basis,source:c,entity:n.entity}:{kind:"missing_connection"}}const d=l(e.entityName)||l(e.entityId);if(!a&&!o&&l(e.semanticDomainId)&&(!l(e.fieldEntityType)||l(e.fieldEntityType)==="dataset")&&d)return{kind:"resolved",basis:"historical",source:{kind:"semantic",domainId:l(e.semanticDomainId),datasetName:d,...l(e.connectionId)?{connectionId:l(e.connectionId)}:{}}};if(n.kind==="incompatible_capabilities"){const c=a?void 0:pe(e),u=l(e.connectionId);return c&&u?{kind:"resolved",basis:"historical",source:{kind:"physical",connectionId:u,tableName:c}}:n}return n.kind==="ambiguous"?n:n.kind==="not_found"?{kind:"not_found",basis:n.basis}:{kind:"unqualified"}}exports.buildSemaphorQualifiedSourcePath=ie;exports.canonicalizeSemaphorQualifiedSourcePath=y;exports.getSemaphorCatalogCoordinateLevels=R;exports.getSemaphorConnectionCapabilities=G;exports.isSemaphorPhysicalSourceEntity=$;exports.isSemaphorSemanticSourceEntity=M;exports.normalizeSemaphorDialect=T;exports.parseSemaphorQualifiedSourcePath=Q;exports.resolveSemaphorConnectionCapabilities=v;exports.resolveSemaphorConnectionCapabilityIdentity=j;exports.resolveSemaphorPhysicalCatalogAddress=oe;exports.resolveSemaphorPhysicalSourceEntity=J;exports.resolveSemaphorSemanticDatasetEntity=X;exports.resolveSemaphorSourceEntity=ve;exports.semaphorPhysicalSourceCoordinatesAreCompatible=B;exports.semaphorPhysicalSourceCoordinatesCover=Z;exports.semaphorSourceHasRequiredCoordinates=ee;