react-semaphor 0.1.192 → 0.1.193

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 (27) hide show
  1. package/dist/chunks/{calendar-preferences-dialog-CMM-uye9.js → calendar-preferences-dialog-B8R2MaI1.js} +1 -1
  2. package/dist/chunks/{calendar-preferences-dialog-wu_fGBRY.js → calendar-preferences-dialog-B9bwWqMI.js} +1 -1
  3. package/dist/chunks/{dashboard-controls-CZiglER8.js → dashboard-controls-BB-6s-Ht.js} +5 -5
  4. package/dist/chunks/{dashboard-controls-DZ3RdkPp.js → dashboard-controls-ehLCW0nC.js} +1 -1
  5. package/dist/chunks/{dashboard-json-CBLwtP5m.js → dashboard-json-BlY0uqcf.js} +1 -1
  6. package/dist/chunks/{dashboard-json-DxsH7NvN.js → dashboard-json-CSA80k9J.js} +1 -1
  7. package/dist/chunks/{edit-dashboard-visual-CdR2ywTB.js → edit-dashboard-visual-D5zVmGO7.js} +2 -2
  8. package/dist/chunks/{edit-dashboard-visual-DyvG8L5y.js → edit-dashboard-visual-_s5p9j5B.js} +1 -1
  9. package/dist/chunks/{editor-action-buttons-DRX64gHq.js → editor-action-buttons-B452b6bO.js} +1 -1
  10. package/dist/chunks/{editor-action-buttons-BvRPaQoF.js → editor-action-buttons-Vkwsm2kl.js} +2 -2
  11. package/dist/chunks/{index-C5wrl3dy.js → index-C5XVrMzP.js} +408 -411
  12. package/dist/chunks/{index-BmPlQ_Vy.js → index-DEzod5lN.js} +3 -3
  13. package/dist/chunks/{notification-bell-sAl4kF0A.js → notification-bell-BTLjXwXd.js} +1 -1
  14. package/dist/chunks/{notification-bell-C4cn4uYe.js → notification-bell-e236UlND.js} +3 -3
  15. package/dist/chunks/{resource-management-panel-DRpbtjWO.js → resource-management-panel-BuyYkjBW.js} +3 -3
  16. package/dist/chunks/{resource-management-panel-DNffk7G6.js → resource-management-panel-XB3llD7A.js} +1 -1
  17. package/dist/chunks/{use-role-aware-display-preferences-DEWoTnfO.js → use-role-aware-display-preferences-DmiYlSDa.js} +1 -1
  18. package/dist/chunks/{use-role-aware-display-preferences-BIAB5o80.js → use-role-aware-display-preferences-MtOAYA2Y.js} +1 -1
  19. package/dist/chunks/{use-visual-utils-BMqAflAg.js → use-visual-utils-B3dd_yYT.js} +1 -1
  20. package/dist/chunks/{use-visual-utils-BfZLkFD4.js → use-visual-utils-CYy0761D.js} +1 -1
  21. package/dist/dashboard/index.cjs +1 -1
  22. package/dist/dashboard/index.js +1 -1
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +6 -6
  25. package/dist/surfboard/index.cjs +1 -1
  26. package/dist/surfboard/index.js +2 -2
  27. package/package.json +1 -1
@@ -1074,8 +1074,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
1074
1074
 
1075
1075
  `)},flush(e){e.enqueue(`data: [DONE]
1076
1076
 
1077
- `)}})}});var AZe=EKe(()=>wee(vi([ir({type:Lt("text-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("error"),errorText:ft()}),ir({type:Lt("tool-input-start"),toolCallId:ft(),toolName:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-delta"),toolCallId:ft(),inputTextDelta:ft()}),ir({type:Lt("tool-input-available"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-error"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional(),errorText:ft()}),ir({type:Lt("tool-output-available"),toolCallId:ft(),output:ya(),providerExecuted:co().optional(),dynamic:co().optional(),preliminary:co().optional()}),ir({type:Lt("tool-output-error"),toolCallId:ft(),errorText:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("reasoning-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("source-url"),sourceId:ft(),url:ft(),title:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("source-document"),sourceId:ft(),mediaType:ft(),title:ft(),filename:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("file"),url:ft(),mediaType:ft(),providerMetadata:Sr.optional()}),ir({type:gee(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:ft().optional(),data:ya(),transient:co().optional()}),ir({type:Lt("start-step")}),ir({type:Lt("finish-step")}),ir({type:Lt("start"),messageId:ft().optional(),messageMetadata:ya().optional()}),ir({type:Lt("finish"),finishReason:hee(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:ya().optional()}),ir({type:Lt("abort")}),ir({type:Lt("message-metadata"),messageMetadata:ya()})])));function PZe(e){return e.type.startsWith("data-")}function Tee(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;const n={...e};for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const s=t[r];if(s===void 0)continue;const o=r in e?e[r]:void 0,i=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),a=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);i&&a?n[r]=Tee(o,s):n[r]=s}return n}function OZe(e){const t=["ROOT"];let n=-1,r=null;function s(l,u,d){switch(l){case'"':{n=u,t.pop(),t.push(d),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=u,r=u,t.pop(),t.push(d),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=u,t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"{":{n=u,t.pop(),t.push(d),t.push("INSIDE_OBJECT_START");break}case"[":{n=u,t.pop(),t.push(d),t.push("INSIDE_ARRAY_START");break}}}function o(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=u,t.pop();break}}}function i(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=u,t.pop();break}}}for(let l=0;l<e.length;l++){const u=e[l];switch(t[t.length-1]){case"ROOT":s(u,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(u){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(u,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{o(u,l);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),n=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=l}break}case"INSIDE_ARRAY_START":{switch(u){case"]":{n=l,t.pop();break}default:{n=l,s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=l,t.pop();break}default:{n=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=l;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const f=e.substring(r,l+1);!"false".startsWith(f)&&!"true".startsWith(f)&&!"null".startsWith(f)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?o(u,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l)):n=l;break}}}let a=e.slice(0,n+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{a+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{a+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{a+="]";break}case"INSIDE_LITERAL":{const d=e.substring(r,e.length);"true".startsWith(d)?a+="true".slice(d.length):"false".startsWith(d)?a+="false".slice(d.length):"null".startsWith(d)&&(a+="null".slice(d.length))}}return a}async function Mee(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await j1({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await j1({text:OZe(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function $v(e){return e.type.startsWith("tool-")}function FZe(e){return e.type==="dynamic-tool"}function J_(e){return $v(e)||FZe(e)}function h6(e){return e.type.split("-").slice(1).join("-")}function $Ze({lastMessage:e,messageId:t}){return{message:(e==null?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function LZe({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:r,onError:s,onToolCall:o,onData:i}){return e.pipeThrough(new TransformStream({async transform(a,l){await r(async({state:u,write:d})=>{var f,h,m,p;function g(w){const S=u.message.parts.filter($v).find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function b(w){const S=u.message.parts.filter(N=>N.type==="dynamic-tool").find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function x(w){var j;const S=u.message.parts.find(_=>$v(_)&&_.toolCallId===w.toolCallId),N=w,E=S;S!=null?(S.state=w.state,E.input=N.input,E.output=N.output,E.errorText=N.errorText,E.rawInput=N.rawInput,E.preliminary=N.preliminary,E.providerExecuted=(j=N.providerExecuted)!=null?j:S.providerExecuted,N.providerMetadata!=null&&S.state==="input-available"&&(S.callProviderMetadata=N.providerMetadata)):u.message.parts.push({type:`tool-${w.toolName}`,toolCallId:w.toolCallId,state:w.state,input:N.input,output:N.output,rawInput:N.rawInput,errorText:N.errorText,providerExecuted:N.providerExecuted,preliminary:N.preliminary,...N.providerMetadata!=null?{callProviderMetadata:N.providerMetadata}:{}})}function y(w){var j,S;const N=u.message.parts.find(k=>k.type==="dynamic-tool"&&k.toolCallId===w.toolCallId),E=w,_=N;N!=null?(N.state=w.state,_.toolName=w.toolName,_.input=E.input,_.output=E.output,_.errorText=E.errorText,_.rawInput=(j=E.rawInput)!=null?j:_.rawInput,_.preliminary=E.preliminary,_.providerExecuted=(S=E.providerExecuted)!=null?S:N.providerExecuted,E.providerMetadata!=null&&N.state==="input-available"&&(N.callProviderMetadata=E.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:w.toolName,toolCallId:w.toolCallId,state:w.state,input:E.input,output:E.output,errorText:E.errorText,preliminary:E.preliminary,providerExecuted:E.providerExecuted,...E.providerMetadata!=null?{callProviderMetadata:E.providerMetadata}:{}})}async function v(w){if(w!=null){const j=u.message.metadata!=null?Tee(u.message.metadata,w):w;t!=null&&await l6({value:j,schema:t}),u.message.metadata=j}}switch(a.type){case"text-start":{const w={type:"text",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeTextParts[a.id]=w,u.message.parts.push(w),d();break}case"text-delta":{const w=u.activeTextParts[a.id];w.text+=a.delta,w.providerMetadata=(f=a.providerMetadata)!=null?f:w.providerMetadata,d();break}case"text-end":{const w=u.activeTextParts[a.id];w.state="done",w.providerMetadata=(h=a.providerMetadata)!=null?h:w.providerMetadata,delete u.activeTextParts[a.id],d();break}case"reasoning-start":{const w={type:"reasoning",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeReasoningParts[a.id]=w,u.message.parts.push(w),d();break}case"reasoning-delta":{const w=u.activeReasoningParts[a.id];w.text+=a.delta,w.providerMetadata=(m=a.providerMetadata)!=null?m:w.providerMetadata,d();break}case"reasoning-end":{const w=u.activeReasoningParts[a.id];w.providerMetadata=(p=a.providerMetadata)!=null?p:w.providerMetadata,w.state="done",delete u.activeReasoningParts[a.id],d();break}case"file":{u.message.parts.push({type:"file",mediaType:a.mediaType,url:a.url}),d();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:a.sourceId,url:a.url,title:a.title,providerMetadata:a.providerMetadata}),d();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:a.sourceId,mediaType:a.mediaType,title:a.title,filename:a.filename,providerMetadata:a.providerMetadata}),d();break}case"tool-input-start":{const w=u.message.parts.filter($v);u.partialToolCalls[a.toolCallId]={text:"",toolName:a.toolName,index:w.length,dynamic:a.dynamic},a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}),d();break}case"tool-input-delta":{const w=u.partialToolCalls[a.toolCallId];w.text+=a.inputTextDelta;const{value:j}=await Mee(w.text);w.dynamic?y({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}):x({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}),d();break}case"tool-input-available":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d(),o&&!a.providerExecuted&&await o({toolCall:a});break}case"tool-input-error":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:void 0,rawInput:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d();break}case"tool-output-available":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-available",input:w.input,output:a.output,preliminary:a.preliminary})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-available",input:w.input,output:a.output,providerExecuted:a.providerExecuted,preliminary:a.preliminary})}d();break}case"tool-output-error":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-error",input:w.input,errorText:a.errorText,providerExecuted:a.providerExecuted})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-error",input:w.input,rawInput:w.rawInput,errorText:a.errorText,providerExecuted:a.providerExecuted})}d();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{a.messageId!=null&&(u.message.id=a.messageId),await v(a.messageMetadata),(a.messageId!=null||a.messageMetadata!=null)&&d();break}case"finish":{a.finishReason!=null&&(u.finishReason=a.finishReason),await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"message-metadata":{await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"error":{s==null||s(new Error(a.errorText));break}default:if(PZe(a)){(n==null?void 0:n[a.type])!=null&&await l6({value:a.data,schema:n[a.type]});const w=a;if(w.transient){i==null||i(w);break}const j=w.id!=null?u.message.parts.find(S=>w.type===S.type&&w.id===S.id):void 0;j!=null?j.data=w.data:u.message.parts.push(w),i==null||i(w),d()}}l.enqueue(a)})}}))}async function zZe({stream:e,onError:t}){const n=e.getReader();try{for(;;){const{done:r}=await n.read();if(r)break}}catch(r){t==null||t(r)}finally{n.releaseLock()}}Ay({prefix:"aitxt",size:24});Ay({prefix:"aiobj",size:24});var BZe=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,n)=>{this.queue.push(async()=>{try{await e(),t()}catch(r){n(r)}}),this.processQueue()})}};Ay({prefix:"aiobj",size:24});var VZe={};jZe(VZe,{object:()=>UZe,text:()=>HZe});var HZe=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),UZe=({schema:e})=>{const t=CZe(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:n}){const r=await Mee(n);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:r.value};default:{const s=r.state;throw new Error(`Unsupported parse state: ${s}`)}}},async parseOutput({text:n},r){const s=await j1({text:n});if(!s.success)throw new d6({message:"No object generated: could not parse the response.",cause:s.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});const o=await _A({value:s.value,schema:t});if(!o.success)throw new d6({message:"No object generated: response did not match schema.",cause:o.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});return o.value}}};async function WZe(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{const{name:n,type:r}=t,s=await new Promise((o,i)=>{const a=new FileReader;a.onload=l=>{var u;o((u=l.target)==null?void 0:u.result)},a.onerror=l=>i(l),a.readAsDataURL(t)});return{type:"file",mediaType:r,filename:n,url:s}}))}var qZe=class{constructor({api:e="/api/chat",credentials:t,headers:n,body:r,fetch:s,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=n,this.body=r,this.fetch=s,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var n,r,s,o,i;const a=await nh(this.body),l=await nh(this.headers),u=await nh(this.credentials),d={...ed(l),...ed(t.headers)},f=await((n=this.prepareSendMessagesRequest)==null?void 0:n.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...a,...t.body},headers:d,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),h=(r=f==null?void 0:f.api)!=null?r:this.api,m=(f==null?void 0:f.headers)!==void 0?ed(f.headers):d,p=(f==null?void 0:f.body)!==void 0?f.body:{...a,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},g=(s=f==null?void 0:f.credentials)!=null?s:u,x=await((o=this.fetch)!=null?o:globalThis.fetch)(h,{method:"POST",headers:i6({"Content-Type":"application/json",...m},`ai-sdk/${f6}`,o6()),body:JSON.stringify(p),credentials:g,signal:e});if(!x.ok)throw new Error((i=await x.text())!=null?i:"Failed to fetch the chat response.");if(!x.body)throw new Error("The response body is empty.");return this.processResponseStream(x.body)}async reconnectToStream(e){var t,n,r,s,o;const i=await nh(this.body),a=await nh(this.headers),l=await nh(this.credentials),u={...ed(a),...ed(e.headers)},d=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:u,credentials:l,requestMetadata:e.metadata})),f=(n=d==null?void 0:d.api)!=null?n:`${this.api}/${e.chatId}/stream`,h=(d==null?void 0:d.headers)!==void 0?ed(d.headers):u,m=(r=d==null?void 0:d.credentials)!=null?r:l,g=await((s=this.fetch)!=null?s:globalThis.fetch)(f,{method:"GET",headers:i6(h,`ai-sdk/${f6}`,o6()),credentials:m});if(g.status===204)return null;if(!g.ok)throw new Error((o=await g.text())!=null?o:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}},MA=class extends qZe{constructor(e={}){super(e)}processResponseStream(e){return MKe({stream:e,schema:AZe}).pipeThrough(new TransformStream({async transform(t,n){if(!t.success)throw t.error;n.enqueue(t.value)}}))}},YZe=class{constructor({generateId:e=vKe,id:t=e(),transport:n=new MA,messageMetadataSchema:r,dataPartSchemas:s,state:o,onError:i,onToolCall:a,onFinish:l,onData:u,sendAutomaticallyWhen:d}){this.activeResponse=void 0,this.jobExecutor=new BZe,this.sendMessage=async(f,h)=>{var m,p,g,b;if(f==null){await this.makeRequest({trigger:"submit-message",messageId:(m=this.lastMessage)==null?void 0:m.id,...h});return}let x;if("text"in f||"files"in f?x={parts:[...Array.isArray(f.files)?f.files:await WZe(f.files),..."text"in f&&f.text!=null?[{type:"text",text:f.text}]:[]]}:x=f,f.messageId!=null){const y=this.state.messages.findIndex(v=>v.id===f.messageId);if(y===-1)throw new Error(`message with id ${f.messageId} not found`);if(this.state.messages[y].role!=="user")throw new Error(`message with id ${f.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,y+1),this.state.replaceMessage(y,{...x,id:f.messageId,role:(p=x.role)!=null?p:"user",metadata:f.metadata})}else this.state.pushMessage({...x,id:(g=x.id)!=null?g:this.generateId(),role:(b=x.role)!=null?b:"user",metadata:f.metadata});await this.makeRequest({trigger:"submit-message",messageId:f.messageId,...h})},this.regenerate=async({messageId:f,...h}={})=>{const m=f==null?this.state.messages.length-1:this.state.messages.findIndex(p=>p.id===f);if(m===-1)throw new Error(`message ${f} not found`);this.state.messages=this.state.messages.slice(0,this.messages[m].role==="assistant"?m:m+1),await this.makeRequest({trigger:"regenerate-message",messageId:f,...h})},this.resumeStream=async(f={})=>{await this.makeRequest({trigger:"resume-stream",...f})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:f="output-available",tool:h,toolCallId:m,output:p,errorText:g})=>this.jobExecutor.run(async()=>{var b,x;const y=this.state.messages,v=y[y.length-1];this.state.replaceMessage(y.length-1,{...v,parts:v.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)),this.status!=="streaming"&&this.status!=="submitted"&&((b=this.sendAutomaticallyWhen)!=null&&b.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:(x=this.lastMessage)==null?void 0:x.id})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var f;this.status!=="streaming"&&this.status!=="submitted"||(f=this.activeResponse)!=null&&f.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=n,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=s,this.state=o,this.onError=i,this.onToolCall=a,this.onFinish=l,this.onData=u,this.sendAutomaticallyWhen=d}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:n,body:r,messageId:s}){var o,i,a,l;this.setStatus({status:"submitted",error:void 0});const u=this.lastMessage;let d=!1,f=!1,h=!1;try{const m={state:$Ze({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};m.abortController.signal.addEventListener("abort",()=>{d=!0}),this.activeResponse=m;let p;if(e==="resume-stream"){const b=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:n,body:r});if(b==null){this.setStatus({status:"ready"});return}p=b}else p=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:m.abortController.signal,metadata:t,headers:n,body:r,trigger:e,messageId:s});const g=b=>this.jobExecutor.run(()=>b({state:m.state,write:()=>{var x;this.setStatus({status:"streaming"}),m.state.message.id===((x=this.lastMessage)==null?void 0:x.id)?this.state.replaceMessage(this.state.messages.length-1,m.state.message):this.state.pushMessage(m.state.message)}}));await zZe({stream:LZe({stream:p,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:g,onError:b=>{throw b}}),onError:b=>{throw b}}),this.setStatus({status:"ready"})}catch(m){if(d||m.name==="AbortError")return d=!0,this.setStatus({status:"ready"}),null;h=!0,m instanceof TypeError&&(m.message.toLowerCase().includes("fetch")||m.message.toLowerCase().includes("network"))&&(f=!0),this.onError&&m instanceof Error&&this.onError(m),this.setStatus({status:"error",error:m})}finally{try{(i=this.onFinish)==null||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:d,isDisconnect:f,isError:h,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(m){console.error(m)}this.activeResponse=void 0}(a=this.sendAutomaticallyWhen)!=null&&a.call(this,{messages:this.state.messages})&&!h&&await this.makeRequest({trigger:"submit-message",messageId:(l=this.lastMessage)==null?void 0:l.id,metadata:t,headers:n,body:r})}};function GZe({messages:e}){const t=e[e.length-1];if(!t||t.role!=="assistant")return!1;const n=t.parts.reduce((s,o,i)=>o.type==="step-start"?i:s,-1),r=t.parts.slice(n+1).filter(J_).filter(s=>!s.providerExecuted);return r.length>0&&r.every(s=>s.state==="output-available"||s.state==="output-error")}function KZe(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let n,r=0;return function(...o){clearTimeout(n);const i=Date.now(),a=i-r,l=t-a;l<=0?(r=i,e.apply(this,o)):n=setTimeout(()=>{r=Date.now(),e.apply(this,o)},l)}}var ZZe=KZe;const XZe=hf(ZZe);var Dee=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Gn=(e,t,n)=>(Dee(e,t,"read from private field"),n?n.call(e):t.get(e)),ma=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},vc=(e,t,n,r)=>(Dee(e,t,"write to private field"),t.set(e,n),n);function QZe(e,t){return t!=null?XZe(e,t):e}var Qo,Lv,zv,kg,Eg,_g,lh,eT,tT,JZe=class{constructor(e=[]){ma(this,Qo,void 0),ma(this,Lv,"ready"),ma(this,zv,void 0),ma(this,kg,new Set),ma(this,Eg,new Set),ma(this,_g,new Set),this.pushMessage=t=>{vc(this,Qo,Gn(this,Qo).concat(t)),Gn(this,lh).call(this)},this.popMessage=()=>{vc(this,Qo,Gn(this,Qo).slice(0,-1)),Gn(this,lh).call(this)},this.replaceMessage=(t,n)=>{vc(this,Qo,[...Gn(this,Qo).slice(0,t),this.snapshot(n),...Gn(this,Qo).slice(t+1)]),Gn(this,lh).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,n)=>{const r=n?QZe(t,n):t;return Gn(this,kg).add(r),()=>{Gn(this,kg).delete(r)}},this["~registerStatusCallback"]=t=>(Gn(this,Eg).add(t),()=>{Gn(this,Eg).delete(t)}),this["~registerErrorCallback"]=t=>(Gn(this,_g).add(t),()=>{Gn(this,_g).delete(t)}),ma(this,lh,()=>{Gn(this,kg).forEach(t=>t())}),ma(this,eT,()=>{Gn(this,Eg).forEach(t=>t())}),ma(this,tT,()=>{Gn(this,_g).forEach(t=>t())}),vc(this,Qo,e)}get status(){return Gn(this,Lv)}set status(e){vc(this,Lv,e),Gn(this,eT).call(this)}get error(){return Gn(this,zv)}set error(e){vc(this,zv,e),Gn(this,tT).call(this)}get messages(){return Gn(this,Qo)}set messages(e){vc(this,Qo,[...e]),Gn(this,lh).call(this)}};Qo=new WeakMap;Lv=new WeakMap;zv=new WeakMap;kg=new WeakMap;Eg=new WeakMap;_g=new WeakMap;lh=new WeakMap;eT=new WeakMap;tT=new WeakMap;var ch,m6=class extends YZe{constructor({messages:e,...t}){const n=new JZe(e);super({...t,state:n}),ma(this,ch,void 0),this["~registerMessagesCallback"]=(r,s)=>Gn(this,ch)["~registerMessagesCallback"](r,s),this["~registerStatusCallback"]=r=>Gn(this,ch)["~registerStatusCallback"](r),this["~registerErrorCallback"]=r=>Gn(this,ch)["~registerErrorCallback"](r),vc(this,ch,n)}};ch=new WeakMap;function Iee({experimental_throttle:e,resume:t=!1,...n}={}){const r=C.useRef("chat"in n?n.chat:new m6(n));("chat"in n&&n.chat!==r.current||"id"in n&&r.current.id!==n.id)&&(r.current="chat"in n?n.chat:new m6(n));const o="id"in n?n.id:null,i=C.useCallback(f=>r.current["~registerMessagesCallback"](f,e),[e,o]),a=C.useSyncExternalStore(i,()=>r.current.messages,()=>r.current.messages),l=C.useSyncExternalStore(r.current["~registerStatusCallback"],()=>r.current.status,()=>r.current.status),u=C.useSyncExternalStore(r.current["~registerErrorCallback"],()=>r.current.error,()=>r.current.error),d=C.useCallback(f=>{typeof f=="function"&&(f=f(r.current.messages)),r.current.messages=f},[r]);return C.useEffect(()=>{t&&r.current.resumeStream()},[t,r]),{id:r.current.id,messages:a,setMessages:d,sendMessage:r.current.sendMessage,regenerate:r.current.regenerate,clearError:r.current.clearError,stop:r.current.stop,error:u,resumeStream:r.current.resumeStream,status:l,addToolResult:r.current.addToolOutput,addToolOutput:r.current.addToolOutput}}function eXe(e,t){return e.some(n=>n.tableName&&n.tableName===t.tableName||n.datamodelName&&n.datamodelName===t.datamodelName)}function tXe(e){return e.filter((n,r,s)=>r===s.findIndex(o=>o.tableName===n.tableName&&o.datamodelName===n.datamodelName))}function nXe(e,t){return e.filter(n=>!(n.connectionId===t.connectionId&&n.tableName===t.tableName&&n.datamodelName===t.datamodelName))}function rXe(e){return e.toLowerCase()==="clickhouse"?"{database_name}.{table_name}":e.toLowerCase()==="postgres"?"{schema_name}.{table_name}":"{table_name}"}function Ree(e){return e.map(r=>{const s=r.connectionType==="API"||r.connectionType==="S3"||r.connectionType==="S3Tables"?"DuckDb":r.connectionType;return r.datamodelName?{...r,databaseName:"",schemaName:"",tableName:"",connectionType:s,tableReferenceFormat:"dm.{table_name}"}:{...r,connectionType:s,tableReferenceFormat:rXe(s)}}).filter(r=>r.datamodelName?r.connectionId&&r.datamodelName&&r.connectionType:r.connectionId&&r.tableName&&r.connectionType)}function Aee(e){var n,r;if(!e)return"";let t="";try{const s=JSON.parse((e==null?void 0:e.message)||"{}");t=((r=(n=s==null?void 0:s.error)==null?void 0:n.lastError)==null?void 0:r.message)||(s==null?void 0:s.error)||e.message}catch{t=e.message}return t}function sXe(){var b;const{authToken:e,tokenProps:t}=Xe(),n=J(x=>x.dashboard.aiScopeTables),r=(b=L1().data)==null?void 0:b.assistantProfileId,{sendMessage:s,messages:o,setMessages:i,regenerate:a,status:l,addToolResult:u,error:d,stop:f,clearError:h}=Iee({transport:new MA({api:`${t.apiServiceUrl}/v1/assistant`,headers:()=>({Authorization:`Bearer ${e==null?void 0:e.accessToken}`}),body:()=>{const x=la.getState();return{assistantId:"dashboard-assistant",assistantProfileId:r,aiContext:x.currentAIContext,reasoningEffort:x.reasoningEffort,showReasoning:x.showReasoning}},credentials:"omit",prepareSendMessagesRequest:({messages:x,body:y})=>({body:{...y,messages:Dq(x)}})}),onToolCall:m,sendAutomaticallyWhen:GZe,onFinish({isAbort:x,isDisconnect:y,isError:v}){console.log(x?"[Dashboard Assistant] Stream aborted by user":y?"[Dashboard Assistant] Stream disconnected (network error)":v?"[Dashboard Assistant] Stream error occurred":"[Dashboard Assistant] Stream completed successfully")},onError(x){var y;if(x.name==="AbortError"||(y=x.message)!=null&&y.includes("aborted")){console.log("[Dashboard Assistant] Stream aborted (expected)");return}console.error("[Dashboard Assistant] Stream error:",x)}});async function m({toolCall:x}){if(x.toolName==="getCurrentTableScope"&&u({tool:x.toolName,toolCallId:x.toolCallId,output:{tables:Ree(n||[])}}),x.toolName==="getDashboardContext"){const y=J.getState().dashboard;u({tool:x.toolName,toolCallId:x.toolCallId,output:{dashboardContext:y}})}}const p=!["ready","error"].includes(l),g=Aee(d);return{sendMessage:s,regenerate:a,isLoading:p,messages:o,setMessages:i,status:l,stop:f,errorMessage:g,clearError:h}}function Pee(){var u;const{authToken:e,tokenProps:t}=Xe(),n=(u=L1().data)==null?void 0:u.assistantProfileId;function r(){return!(!n||!(e!=null&&e.accessToken))}const{data:s,isLoading:o,isFetching:i,isError:a}=En({queryKey:["assistant-profile",n],queryFn:()=>rr(`${t.apiServiceUrl}/v1/assistant/${n}`,(e==null?void 0:e.accessToken)||""),enabled:r()});return{assistantProfile:s==null?void 0:s.assistantProfile,isLoading:o,isFetching:i,isError:a}}function Oee({seedQuestions:e,handleSeedQuestionClick:t}){return e.length===0?null:c.jsxs("div",{className:"overflow-x-auto rounded-md border bg-muted/40 p-4",children:[c.jsxs("div",{className:"mb-3 flex items-center",children:[c.jsx(c8,{className:"mr-2 h-4 w-4 text-muted-foreground"}),c.jsx("h3",{className:"font-medium",children:"Example Questions"})]}),c.jsx("div",{className:"flex flex-wrap gap-2",children:e.map((n,r)=>c.jsx(se,{variant:"outline",size:"sm",onClick:()=>t(n),className:"text-sm",children:n},r))})]})}function N1(e,t={}){const{size:n="h-4 w-4"}=t,r=n;switch(e){case"table":return c.jsx(eM,{className:r});case"view":return c.jsx(tu,{className:r});case"materialized view":return c.jsx(Woe,{className:r});case"model":return c.jsx(U1,{className:r});case"file":return c.jsx(Ji,{className:r});case"dataset":return c.jsx($l,{className:r});case"upload":return c.jsx(sM,{className:r});case"url":return c.jsx(p8,{className:r});default:return c.jsx(Sx,{className:r})}}const Fee=D.forwardRef(({className:e,...t},n)=>c.jsxs("div",{className:"flex items-center px-3","cmdk-input-wrapper":"",children:[c.jsx(Ko,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),c.jsx($s.Input,{ref:n,className:X("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Fee.displayName=$s.Input.displayName;const uv=e=>e.label||(e==null?void 0:e.name),p6=e=>"description"in e?e.description:`${e.type} from ${e.database||"database"}`;function oXe({isOpen:e,onSelect:t,onDeselect:n,onClose:r,availableEntities:s,selectedEntities:o,onTabComplete:i,onSelectAll:a,onRemoveAll:l,onAddContext:u}){const{tokenProps:d}=Xe(),f=(d==null?void 0:d.type)==="dashboard",[h,m]=C.useState(""),[p,g]=C.useState(""),b=s.filter(S=>{if(!h)return!0;const N=uv(S).toLowerCase(),E=p6(S).toLowerCase(),_=h.toLowerCase();return N.includes(_)||E.includes(_)});C.useEffect(()=>{e||(m(""),g(""))},[e]),C.useEffect(()=>{b.length>0&&!p&&g(uv(b[0]))},[b,p]);const x=()=>{if(!p)return;const S=b.find(N=>uv(N)===p);S&&(o.some(E=>"id"in S&&"id"in E?S.id===E.id:S.name===E.name&&S.connectionId===E.connectionId)||t(S),i(S),r())},y=S=>{(S.key==="Tab"||S.key==="Enter")&&(S.preventDefault(),x())};if(!e)return null;const v=S=>o.some(N=>"id"in S&&"id"in N?S.id===N.id:S.name===N.name&&S.connectionId===N.connectionId),w=o.length===s.length,j=o.length>0;return c.jsx(c.Fragment,{children:c.jsxs(op,{shouldFilter:!1,value:p,onValueChange:g,onKeyDown:y,children:[s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b pr-3",children:[c.jsx(Fee,{placeholder:"Search entities...",value:h,onValueChange:m,className:"flex-1 border-0",autoFocus:!0}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"outline",size:"sm",className:"h-7 shrink-0",children:[c.jsx(Tr,{className:"mr-1 h-4 w-4"}),"Add"]})]}),s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b px-3 py-2 text-sm",children:[c.jsxs("div",{className:"text-muted-foreground",children:[o.length," ",o.length===1?"entity":"entities"," selected"]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),a==null||a()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},disabled:w,variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",children:"Select All"}),j&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),l==null||l()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",children:[c.jsx(St,{className:"h-3.5 w-3.5"}),"Clear"]})]})]}),c.jsxs(ip,{className:"min-h-60",children:[c.jsx(ap,{children:c.jsxs("div",{className:"flex flex-col items-center justify-center py-4",children:[c.jsx("p",{className:"mb-3 text-sm text-muted-foreground",children:"No entities found."}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},size:"sm",variant:"outline",className:"flex items-center gap-2",children:[c.jsx(Tr,{className:"h-4 w-4"}),"Add Datasets"]})]})}),c.jsx(lp,{children:b.map((S,N)=>{const E=v(S),_="id"in S?S.id:`${S.connectionId}-${S.name}`,k=uv(S);return c.jsxs(cp,{value:k,onSelect:()=>{E?n==null||n(S):t(S)},onMouseDown:M=>{M.preventDefault(),M.stopPropagation()},className:X("flex cursor-pointer items-start gap-2 p-2 hover:bg-gray-100"),children:[c.jsx("div",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center",children:N1(S.type)}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate font-medium",children:k}),c.jsx("div",{className:"truncate text-xs text-muted-foreground",children:p6(S)})]}),E&&c.jsx("div",{className:"ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-foreground/80",children:c.jsx(Ar,{className:"h-3 w-3 text-background"})})]},_)})})]})]})})}const nT=e=>e.name||e.name,iXe=e=>{const t=nT(e),n="description"in e?e.description:"",r=e.database||"",s=e.schema||"";return c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"font-medium",children:t}),n&&c.jsx("div",{className:"text-sm text-muted-foreground",children:n}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",e.type,r&&` • Database: ${r}`,s&&` • Schema: ${s}`]})]})};function aXe({entities:e,availableEntities:t,onRemoveEntity:n,onRemoveEntities:r}){const[s,o]=C.useState(!1),i=e.length>0;e.length,t.length,e.length<t.length;const a=e.length>=3?e.slice(0,2):e,l=e.length>=3?e.slice(2):[],u=l.length>0;return c.jsx(Ln,{children:c.jsx("div",{className:"space-y-2",children:i&&c.jsxs("div",{className:"flex flex-wrap gap-1",children:[a.map((d,f)=>{const h="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer gap-2 transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[N1(d.type,{size:"h-3 w-3"}),c.jsx("span",{className:"max-w-24 truncate text-xs",children:nT(d)}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>n(d),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-w-xs",children:iXe(d)})]},h)}),u&&c.jsxs(an,{open:s,onOpenChange:o,children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"flex cursor-pointer items-center gap-1 transition-colors hover:bg-secondary/80",onClick:()=>o(!0),children:[c.jsx(f8,{className:"h-3 w-3"}),c.jsxs("span",{className:"text-xs",children:[l.length," more"]}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>r(l),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-h-60 max-w-xs overflow-y-auto p-2",children:c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Additional Datasets"}),c.jsx("div",{className:"space-y-2",children:l.map(d=>{const f="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs("div",{className:"group flex items-center justify-between gap-2",children:[c.jsxs("div",{className:"flex items-start gap-2",children:[c.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:N1(d.type,{size:"h-3 w-3"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate text-sm font-medium",children:nT(d)}),c.jsxs("div",{className:"truncate text-xs text-muted-foreground",children:[d.type," ",d.database?`• ${d.database}`:""]})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",onClick:()=>{n(d),l.length===1&&o(!1)},children:c.jsx(St,{className:"h-3 w-3"})})]},f)})})]})})]})]})})})}function $ee(e){return e.type==="dataset"&&e.label||e.name}function lXe(e){const t=[];return t.push({label:"Type",value:e.type}),t.push({label:"Name",value:e.name}),e.connectionType&&t.push({label:"Connection",value:e.connectionType}),e.database&&t.push({label:"Database",value:e.database}),e.schema&&t.push({label:"Schema",value:e.schema}),e.type==="dataset"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="dataset"&&e.description&&t.push({label:"Description",value:e.description}),e.type==="model"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="model"&&e.description&&t.push({label:"Description",value:e.description}),t}function cXe({selectedEntities:e,onDeselectEntity:t}){return e.length===0?null:c.jsxs("div",{className:"mb-4 space-y-2",children:[c.jsxs(ae,{className:"mb-2 text-xs font-medium text-muted-foreground",children:["Selected Entities (",e.length,")"]}),c.jsx("div",{className:"max-h-32 overflow-y-auto rounded-md border border-border/50 p-2",children:c.jsx("div",{className:"flex flex-wrap gap-1",children:e.map((n,r)=>c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer pr-6 text-xs transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[c.jsxs("span",{className:"mr-1 text-gray-500",children:["[",n.type,"]"]}),$ee(n),c.jsx("button",{onClick:s=>{s.stopPropagation(),t(n)},className:"absolute right-1 top-1/2 -translate-y-1/2 rounded-full p-0.5 opacity-0 transition-opacity hover:bg-red-100 group-hover:opacity-100",children:c.jsx(St,{className:"h-2.5 w-2.5 text-red-500"})})]},`${n.type}-${n.name}-${r}`))})})]})}function uXe(e){const{tokenProps:t}=Xe(),n=J(l=>l.authToken)||e;Ae(l=>l.selectedConnectionId),Ae(l=>{var u,d;return(d=(u=l==null?void 0:l.card)==null?void 0:u.dataSource)==null?void 0:d.connectionId});const{refetch:r,isPending:s,data:o,isLoading:i,isError:a}=En({queryKey:["semantic-domains"],queryFn:()=>rr(`${t.apiServiceUrl}/v1/domains`,(n==null?void 0:n.accessToken)||""),enabled:!!(n!=null&&n.accessToken)});return{isPending:s,error:a,semanticDomainsData:o,semanticDomains:(o==null?void 0:o.domains)||[],isSemanticDomainsLoading:i,isSemanticDomainsError:a,refetchSemanticDomains:r}}function dXe(e,t){const{tokenProps:n}=Xe(),r=J(u=>u.authToken)||t,{refetch:s,isPending:o,data:i,isLoading:a,isError:l}=En({queryKey:["datasets",e],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datasets`,(r==null?void 0:r.accessToken)||"",{domainId:e}),enabled:!!(r!=null&&r.accessToken)&&!!e});return{isPending:o,error:l,datasets:(i==null?void 0:i.datasets)||[],isDatasetsLoading:a,isDatasetsError:l,refetchDatasets:s}}function fXe(e){var g,b;const{tokenProps:t}=Xe(),n=J(x=>x.authToken)||e,{connections:r}=Ci(e),s=Ae(x=>{var y,v;return(v=(y=x==null?void 0:x.card)==null?void 0:y.dataSource)==null?void 0:v.connectionId}),o=r==null?void 0:r.find(x=>x.id===s),i=o==null?void 0:o.type,a=o==null?void 0:o.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.database)||"Database";function u(x){return s&&x?!(x==="API"||x==="S3"):!1}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["databases",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/databases`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:u(i)}),p=(b=d==null?void 0:d.databases)==null?void 0:b.map(x=>({id:x.database_name,name:x.database_name}));return{isPending:f,error:h,databases:p||[],refetch:m,label:l}}function hXe(e){var g;const{tokenProps:t}=Xe(),n=J(b=>b.authToken)||e,{connections:r}=Ci(e),s=Ae(b=>{var x,y;return(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.connectionId}),o=Ae(b=>{var x,y,v;return(v=(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.dbSelection)==null?void 0:v.database}),i=r==null?void 0:r.find(b=>b.id===s),a=i==null?void 0:i.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.schema)||"Schema";function u(){return!(!s||(i==null?void 0:i.type)==="API"||(i==null?void 0:i.type)==="S3"||!o||!(a!=null&&a.path.includes("schema")))}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["schemas",s,o],queryFn:()=>rr(`${t.apiServiceUrl}/v1/schemas`,(n==null?void 0:n.accessToken)||"",{connection_id:s,database_name:o}),enabled:u()}),p=d==null?void 0:d.schemas.map(b=>({id:b.schema_name,name:b.schema_name}));return{isPending:f,error:h,schemas:p||[],refetch:m,label:l}}function Lee(e){const{tokenProps:t}=Xe(),n=J(h=>h.authToken)||e,{connections:r}=Ci(e),s=Ae(h=>{var m,p;return(p=(m=h==null?void 0:h.card)==null?void 0:m.dataSource)==null?void 0:p.connectionId}),o=r.find(h=>h.id===s);function i(){return!(!(n!=null&&n.accessToken)||!s)}const{data:a,isPending:l,error:u,refetch:d}=En({queryKey:["dataModels",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/datamodels`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:i()}),f=a==null?void 0:a.datamodels.map(h=>({id:h.id,name:h.name,label:h.label,description:h.description,connectionId:s,dialect:h.dialect,connectionType:o==null?void 0:o.type,type:"model",database:h.database,schema:h.schema}));return{isPending:l,error:u,dataModels:f||[],refetch:d}}function mXe(){var j,S,N;const e=Ae(E=>E.card.dataSource);Ae(E=>E.actions.updateDirectSource);const t=Ae(E=>E.actions.updateDataSource),[n,r]=C.useState(""),{selectedConnection:s,error:o}=Ci(),{databases:i,isPending:a,error:l,label:u}=fXe(),{schemas:d,isPending:f,error:h,label:m}=hXe(),{error:p}=Lee(),g=s==null?void 0:s.capabilities.path.includes("schema"),b=s==null?void 0:s.capabilities.path.includes("database"),x=u==null?void 0:u.toLowerCase(),y=m==null?void 0:m.toLowerCase(),v=E=>{e&&t({...e,dbSelection:{database:E,schema:"",entityType:"table"},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})},w=E=>{var k;if(!((k=e==null?void 0:e.dbSelection)!=null&&k.database))return;const _=e.dbSelection||{database:"",schema:"",entityType:"table"};t({...e,dbSelection:{..._,schema:E},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})};return c.jsxs(c.Fragment,{children:[(o||l||h||p)&&c.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-3",children:[c.jsx("div",{className:"flex items-center",children:c.jsxs("div",{className:"text-sm text-red-800",children:[c.jsx("strong",{children:"Error loading data:"}),c.jsxs("ul",{className:"mt-1 list-inside list-disc",children:[o&&c.jsxs("li",{children:["Connections: ",o]}),l&&c.jsxs("li",{children:[u,": ",l.message]}),h&&c.jsxs("li",{children:[m,": ",h.message]}),p&&c.jsxs("li",{children:["Data Models: ",p.message]})]})]})}),c.jsx(se,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>window.location.reload(),children:"Retry"})]}),c.jsxs("div",{className:"space-y-4",children:[b&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:u}),c.jsxs(ot,{value:((j=e==null?void 0:e.dbSelection)==null?void 0:j.database)||"",onValueChange:v,disabled:a,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[a&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:l?`Error loading ${x}`:a?`Loading ${x}...`:`Select ${x}...`})]})}),c.jsx(rt,{children:i.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]}),((S=e==null?void 0:e.dbSelection)==null?void 0:S.database)&&g&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:m}),c.jsxs(ot,{value:((N=e==null?void 0:e.dbSelection)==null?void 0:N.schema)||"",onValueChange:w,disabled:f,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[f&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:h?`Error loading ${y}`:f?`Loading ${y}...`:`Select ${y}...`})]})}),c.jsx(rt,{children:d.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]})]})]})}function pXe(){const e=Ae(l=>l.card.dataSource),t=Ae(l=>l.actions.updateDataSource),[n,r]=C.useState(!1),s=l=>{if(!l||(e==null?void 0:e.mode)!=="upload")return;const u=Array.from(l).map(f=>({id:`file-${Date.now()}-${Math.random()}`,name:f.name,type:"upload",connectionId:"default",connectionType:"none",label:f.name,description:`Uploaded ${new Date().toLocaleString()}`,originalName:f.name,file:f})),d=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...d,...u]})},o=l=>{if(!e)return;const u=(e.selectedEntities||[]).filter(d=>d.id!==l);t({...e,selectedEntities:u})},i=l=>{if(l===0)return"0 Bytes";const u=1024,d=["Bytes","KB","MB","GB"],f=Math.floor(Math.log(l)/Math.log(u));return Number.parseFloat((l/Math.pow(u,f)).toFixed(2))+" "+d[f]},a=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Upload Files"}),c.jsxs("div",{className:`rounded-lg border-2 border-dashed p-6 text-center transition-colors ${n?"border-blue-400 bg-blue-50":"border-gray-300 hover:border-gray-400"}`,onDragOver:l=>{l.preventDefault(),r(!0)},onDragLeave:()=>r(!1),onDrop:l=>{l.preventDefault(),r(!1),s(l.dataTransfer.files)},children:[c.jsx(sM,{className:"mx-auto mb-2 h-8 w-8 text-gray-400"}),c.jsx("p",{className:"mb-2 text-sm text-gray-600",children:"Drag and drop files here, or click to select"}),c.jsx("input",{type:"file",multiple:!0,className:"hidden",id:"file-upload",onChange:l=>s(l.target.files),accept:".csv,.json,.xlsx,.xls"}),c.jsx(se,{variant:"outline",size:"sm",onClick:()=>{var l;return(l=document.getElementById("file-upload"))==null?void 0:l.click()},children:"Select Files"}),c.jsx("p",{className:"mt-2 text-xs text-gray-500",children:"Supports CSV, JSON, Excel files"})]})]}),a.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Uploaded Files (",a.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:a.map(l=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Ji,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:l.originalName}),c.jsx("p",{className:"text-xs text-gray-500",children:l.file?i(l.file.size):""})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>o(l.id),children:c.jsx(St,{className:"h-3 w-3"})})]},l.id))})]})]})}function gXe(){const e=Ae(f=>f.card.dataSource),t=Ae(f=>f.actions.updateDataSource),[n,r]=C.useState(""),[s,o]=C.useState(""),[i,a]=C.useState("api"),l=()=>{if(!n.trim()||!s.trim()||!e)return;const f={id:`url-${Date.now()}-${Math.random()}`,name:n.trim(),type:"url",connectionId:"default",connectionType:"none",label:n.trim(),description:`URL source of type ${i}`,url:s.trim(),sourceType:i,originalName:n.trim()},h=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...h,f]}),r(""),o(""),a("api")},u=f=>{if(!e)return;const h=(e.selectedEntities||[]).filter(m=>m.id!==f);t({...e,selectedEntities:h})},d=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"URL Sources"}),c.jsxs("div",{className:"space-y-3 rounded-lg border bg-gray-50 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Source Name"}),c.jsx(mn,{placeholder:"e.g., Sales API, Customer Data",value:n,onChange:f=>r(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"URL"}),c.jsx(mn,{placeholder:"https://api.example.com/data",value:s,onChange:f=>o(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Type"}),c.jsxs("select",{value:i,onChange:f=>a(f.target.value),className:"h-8 w-full rounded-md border border-gray-300 px-2 text-sm",children:[c.jsx("option",{value:"api",children:"API Endpoint"}),c.jsx("option",{value:"csv",children:"CSV File"}),c.jsx("option",{value:"json",children:"JSON File"})]})]}),c.jsxs(se,{onClick:l,disabled:!n.trim()||!s.trim(),size:"sm",className:"w-full",children:[c.jsx(Tr,{className:"mr-1 h-3 w-3"}),"Add Source"]})]})]}),d.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Added Sources (",d.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:d.map(f=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Sx,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:f.name}),c.jsx("p",{className:"truncate text-xs text-gray-500",children:f.url})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>u(f.id),children:c.jsx(St,{className:"h-3 w-3"})})]},f.id))})]})]})}function bXe(e,t){var y,v;const{tokenProps:n}=Xe(),r=J(w=>w.authToken)||t,{connections:s}=Ci(t),o=Ae(w=>{var j,S;return(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.connectionId}),i=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.database}),a=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.schema}),l=s==null?void 0:s.find(w=>w.id===o),u=l==null?void 0:l.capabilities,d=((y=u==null?void 0:u.labels)==null?void 0:y.schema)||"Schema";function f(){return o?(l==null?void 0:l.type)==="API"||(l==null?void 0:l.type)==="S3"?!0:!(!i||u!=null&&u.path.includes("schema")&&!a):!1}const{data:h,isPending:m,isLoading:p,error:g,refetch:b}=En({queryKey:[e,o,i,a],queryFn:()=>rr(`${n.apiServiceUrl}/v1/${e}s`,(r==null?void 0:r.accessToken)||"",{connection_id:o,database_name:i,schema_name:a}),enabled:f()}),x=(v=h==null?void 0:h[`${e}s`])==null?void 0:v.map(w=>{var j;return{connectionId:l==null?void 0:l.id,connectionType:l==null?void 0:l.type,dialect:l==null?void 0:l.dialect,type:e,dbObjectType:(j=w==null?void 0:w.table_type)==null?void 0:j.toLowerCase(),id:w[`${e}_name`],database:i,schema:a,name:w[`${e}_name`]}});return{isPending:m,isLoading:p,error:g,entities:x||[],refetch:b,label:d}}function k1({title:e,message:t}){return c.jsx("div",{className:"rounded-xl border border-destructive/40 bg-destructive/10 p-4 text-destructive shadow-sm",children:c.jsxs("div",{className:"flex items-start gap-4",children:[c.jsx(Yl,{className:"h-6 w-6 flex-shrink-0"}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h4",{className:"text-base font-semibold",children:e}),t&&c.jsx("p",{className:"mt-1 text-sm text-destructive/90",children:t})]})]})})}function xXe({dataSource:e,onSelectionChange:t,selectedEntities:n,onRegisterSelectAll:r}){const{connections:s,isPending:o}=Ci(),[i,a]=C.useState(""),[l,u]=C.useState(""),[d,f]=C.useState("tables"),{updateDataSource:h,setSelectedConnectionId:m}=cr(),{entities:p,isLoading:g,error:b}=bXe("table"),{dataModels:x,isPending:y,error:v}=Lee(),w=k=>{const M=s.find(P=>P.id===k);if(!M)return;const T=M.type==="upload"?"upload":M.type==="url"?"url":"database";h({...e,connectionId:k,connectionType:M.type,mode:T,dbSelection:{database:"",schema:"",entityType:"table"}}),m(k)},j=k=>{var O,I;const M=n||[],T=M.some($=>$.name===k.name&&$.type===k.type);let P;if(T)P=M.filter($=>!($.name===k.name&&$.type===k.type));else{const $={connectionId:e.connectionId,connectionType:e.connectionType,type:k.type,dbObjectType:k.dbObjectType,database:((O=e.dbSelection)==null?void 0:O.database)||"",schema:((I=e.dbSelection)==null?void 0:I.schema)||"",name:k.name,dialect:k.dialect};P=[...M,$]}t==null||t(P)},S=k=>{const M=n||[],T=M.some(O=>O.type==="model"&&O.name===k.name);let P;T?P=M.filter(O=>!(O.type==="model"&&O.name===k.name)):P=[...M,k],t==null||t(P)},N=p.filter(k=>k.name.toLowerCase().includes(i.toLowerCase())),E=x.filter(k=>k.name.toLowerCase().includes(l.toLowerCase())),_=C.useCallback(()=>{if(!t)return;const k=n||[];let M=[...k];if(d==="tables"){const P=N.filter(O=>!k.some(I=>I.name===O.name&&I.type==="table")).map(O=>{var I,$;return{connectionId:e.connectionId,connectionType:e.connectionType,type:"table",dbObjectType:O.dbObjectType,database:((I=e.dbSelection)==null?void 0:I.database)||"",schema:(($=e.dbSelection)==null?void 0:$.schema)||"",name:O.name,dialect:O.dialect}});M=[...k,...P]}else if(d==="datamodels"){const T=E.filter(P=>!k.some(O=>O.name===P.name&&O.type==="model"));M=[...k,...T]}t(M)},[d,N,E,n,e,t]);return C.useEffect(()=>{r&&r(_)},[r,_]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"font-medium= text-sm",children:"Connection"}),c.jsxs(ot,{value:(e==null?void 0:e.connectionId)||"",onValueChange:w,disabled:o,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:o?"Loading connections...":"Select connection..."})}),c.jsx(rt,{children:s.map(k=>c.jsx(ve,{className:"hover:bg-muted",value:k.id,children:c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx($l,{className:"h-4 w-4 flex-shrink-0"}),c.jsx("span",{className:"truncate",children:k.name}),c.jsx(Ve,{variant:"secondary",className:"flex-shrink-0 text-xs",children:k.type})]})},k.id))})]})]}),(e==null?void 0:e.connectionId)&&c.jsxs(c.Fragment,{children:[e.connectionType==="upload"&&c.jsx(pXe,{}),e.connectionType==="url"&&c.jsx(gXe,{}),e.connectionType!=="upload"&&e.connectionType!=="url"&&c.jsxs(c.Fragment,{children:[c.jsx(mXe,{}),c.jsx("div",{className:"space-y-4",children:c.jsx("div",{className:"space-y-2",children:c.jsxs(Os,{defaultValue:"tables",value:d,onValueChange:k=>f(k),className:"w-full",children:[c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsxs(nn,{value:"tables",children:["Tables & Views (",N.length,")"]}),c.jsxs(nn,{value:"datamodels",children:["Data Models (",E.length,")"]})]}),c.jsxs(pr,{value:"tables",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search tables and views...",value:i,onChange:k=>a(k.target.value),className:"h-8 text-sm",disabled:g}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:g?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading tables..."}):b?c.jsx(k1,{title:"Error loading tables",message:b.message||"Failed to load tables. Please try again.",onRetry:()=>window.location.reload()}):N.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No tables or views found"}):N.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="table");return c.jsxs("div",{className:"group flex cursor-pointer items-center space-x-2 rounded p-2 hover:bg-muted",onClick:()=>j(k),children:[c.jsx(cn,{id:`table-${k.name}`,checked:M,onCheckedChange:()=>j(k),onClick:T=>T.stopPropagation(),disabled:g}),c.jsxs(ae,{className:"flex flex-1 cursor-pointer items-center gap-2",children:[k.name,k.dbObjectType==="view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"View"}),k.dbObjectType==="materialized view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"Materialized View"})]})]},k.name)})})]}),c.jsxs(pr,{value:"datamodels",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search data models...",value:l,onChange:k=>u(k.target.value),className:"h-8 text-sm",disabled:y}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:y?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading data models..."}):v?c.jsx(k1,{title:"Error loading data models",message:v.message||"Failed to load data models. Please try again.",onRetry:()=>window.location.reload()}):E.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No data models found"}):E.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="model");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-muted",onClick:()=>S(k),children:[c.jsx(cn,{id:`dataModel-${k.name}`,checked:M,onCheckedChange:()=>S(k),onClick:T=>T.stopPropagation(),disabled:y}),c.jsxs("div",{className:"flex flex-1 cursor-pointer flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer",children:k.name}),c.jsx("span",{className:"text-xs text-muted-foreground",children:k.description})]})]},k.name)})})]})]})})})]})]})]})}function yXe({dataSource:e,onDataSourceUpdate:t,onSelectionChange:n,selectedEntities:r,allowedDomainIds:s=[],isRestricted:o=!1,autoSelectedDomainId:i,onRegisterSelectAll:a}){var j;const[l,u]=C.useState(""),d=C.useCallback(S=>{const N={...e,connectionId:e.connectionId||"none",connectionType:e.connectionType||"none",mode:"semanticDomain",semanticDomainId:S};t({...N})},[e,t]);C.useEffect(()=>{i&&!(e!=null&&e.semanticDomainId)&&d(i)},[i,e==null?void 0:e.semanticDomainId,d]);const{semanticDomains:f,isPending:h,error:m}=uXe(),p=o?f.filter(S=>s.includes(S.id)):f,{datasets:g,isPending:b,error:x}=dXe(e==null?void 0:e.semanticDomainId),y=S=>{const N=r||[],E=N.some(k=>k.id===S.id&&k.type==="dataset");let _;if(E)_=N.filter(k=>!(k.id===S.id&&k.type==="dataset"));else{const k={id:S.id,datasetType:S.type,name:S.name||S.table,label:S.label,domainId:S.domainId,description:S.description,database:S.database,schema:S.schema,type:"dataset",connectionId:S.connectionId,connectionType:S.connectionType,dialect:S.dialect,datamodelId:S.datamodelId,sql:S.sql};_=[...N,k]}n==null||n(_)},v=g.filter(S=>S.name.toLowerCase().includes(l.toLowerCase())),w=C.useCallback(()=>{if(!n||!(e!=null&&e.semanticDomainId))return;const S=r||[],E=v.filter(k=>!S.some(M=>M.id===k.id&&M.type==="dataset")).map(k=>({id:k.id,datasetType:k.type,name:k.name||k.table,label:k.label,domainId:k.domainId,description:k.description,database:k.database,schema:k.schema,type:"dataset",connectionId:k.connectionId,connectionType:k.connectionType,dialect:k.dialect,datamodelId:k.datamodelId,sql:k.sql})),_=[...S,...E];n(_)},[v,r,e==null?void 0:e.semanticDomainId,n]);return C.useEffect(()=>{a&&a(w)},[a,w]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Semantic Domain"}),c.jsxs(ot,{value:(e==null?void 0:e.semanticDomainId)||"",onValueChange:d,disabled:h||o&&!!i,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:h?"Loading semantic domains...":o&&i?"Loading domain...":"Select semantic domain...",children:((j=p.find(S=>S.id===(e==null?void 0:e.semanticDomainId)))==null?void 0:j.label)||"Select semantic domain"})}),c.jsx(rt,{children:p.map(S=>c.jsx(ve,{className:"hover:bg-muted",value:S.id,children:c.jsxs("div",{className:"flex flex-col items-start",children:[c.jsx("span",{className:"font-medium",children:S.label}),c.jsx("span",{className:"text-xs",children:S.description})]})},S.id))})]}),m&&c.jsx(k1,{title:"Error loading semantic models",message:m.message})]}),(e==null?void 0:e.semanticDomainId)&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"Datasets"}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search datasets...",value:l,onChange:S=>u(S.target.value),className:"h-8 text-sm",disabled:b}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:b?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"Loading datasets..."}):x?c.jsx(k1,{title:"Error loading datasets",message:x.message||"Failed to load datasets. Please try again.",onRetry:()=>window.location.reload()}):v.length===0?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:l?"No datasets match your search":"No datasets available"}):v.map(S=>{const N=r.some(E=>E.id===S.id&&E.type==="dataset");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-gray-50",onClick:()=>y(S),children:[c.jsx(cn,{id:`dataset-${S.id}`,checked:N,onCheckedChange:()=>y(S),onClick:E=>E.stopPropagation(),disabled:b}),c.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer font-medium",children:S.label||S.name}),c.jsx("span",{className:"text-xs text-gray-500",children:S.description})]})]},S.label||S.name)})})]})]})]})}function DA({open:e,onOpenChange:t,dataSource:n,dialogMode:r,incomingSelectedEntities:s}){const{tokenProps:o}=Xe(),{allowedSemanticDomains:i}=o,[a,l]=C.useState([]),{updateDataSource:u}=cr(),d=J(M=>M.isVisualEditing),f=J(M=>M.dashboard.aiContext),{setAiContext:h}=Wt(),m=C.useRef(null),[p,g]=C.useState(!1),b=i&&i.length>0,x=!b,y=b&&i.length===1?i[0]:void 0,v=C.useCallback(M=>{const T=M;u({...n,connectionId:(n==null?void 0:n.connectionId)||"",connectionType:(n==null?void 0:n.connectionType)||"",mode:T,selectedEntities:(n==null?void 0:n.selectedEntities)||[],...T!=="semanticDomain"&&{semanticDomainId:void 0}})},[n,u]),w=C.useCallback(M=>{u({...n,...M})},[n,u]);C.useEffect(()=>{b&&n.mode!=="semanticDomain"&&v("semanticDomain")},[b,n.mode,v]),C.useEffect(()=>{y&&!n.semanticDomainId&&w({semanticDomainId:y})},[y,n.semanticDomainId,w]),C.useEffect(()=>{e?l(s||[]):(m.current=null,g(!1))},[e,n==null?void 0:n.selectedEntities,r,u,s,n]);const j=M=>{const T=a.filter(P=>!(P.name===M.name&&P.type===M.type));l(T)},S=()=>{l([])},N=C.useCallback(M=>{l(M)},[]),E=C.useCallback(()=>{m.current&&m.current()},[]),_=C.useCallback(M=>{m.current=M,g(!0)},[]);function k(){var M,T;if(r==="aiContext")d&&u(n),h({...f,selectedEntities:a}),t(!1);else if(r==="dataSource"){if(n.mode==="semanticDomain"){const P=(M=a==null?void 0:a[0])==null?void 0:M.connectionId,O=(T=a==null?void 0:a[0])==null?void 0:T.connectionType;u({...n,connectionId:P,connectionType:O,selectedEntities:a})}else u({...n,selectedEntities:a});t(!1)}}return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsx(zr,{className:"flex max-w-2xl flex-col",children:c.jsxs("div",{children:[c.jsxs(Br,{className:"flex-shrink-0",children:[c.jsx(Vr,{children:r==="aiContext"?"Data Context":"Select Data Source"}),c.jsx(is,{children:r==="aiContext"?"Set the overall data scope for the dashboard":"Select data sets to analyze"})]}),c.jsx("div",{className:"flex-1 grow overflow-y-auto py-4",children:c.jsxs("div",{className:"space-y-4",children:[x&&c.jsx("div",{className:"space-y-2",children:c.jsx(Os,{defaultValue:(n==null?void 0:n.mode)||"database",value:(n==null?void 0:n.mode)||"database",onValueChange:v,className:"w-full",children:c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsx(nn,{value:"database",children:"Direct Source"}),c.jsx(nn,{value:"semanticDomain",children:"Semantic Domain"})]})})}),(n==null?void 0:n.mode)==="semanticDomain"&&c.jsx(yXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,allowedDomainIds:i||[],isRestricted:b,autoSelectedDomainId:y,onRegisterSelectAll:_}),(n==null?void 0:n.mode)==="database"&&x&&c.jsx(xXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,onRegisterSelectAll:_})]})}),c.jsx(cXe,{selectedEntities:a,onDeselectEntity:j}),c.jsx(os,{className:"flex-shrink-0",children:c.jsx("div",{className:"flex w-full justify-between",children:c.jsxs("div",{className:"flex grow justify-end gap-2",children:[c.jsx(se,{variant:"outline",onClick:E,disabled:!p,children:"Select All"}),c.jsx(se,{variant:"outline",onClick:S,disabled:a.length===0,children:"Clear All"}),c.jsxs(se,{variant:"outline",onClick:()=>t(!1),children:[c.jsx(St,{className:"mr-2 h-4 w-4"}),"Close"]}),c.jsxs(se,{onClick:k,children:[c.jsx(Ar,{className:"mr-2 h-4 w-4"}),"Accept"]})]})})})]})})})}function vXe({onFilesSelected:e,disabled:t=!1,currentFileCount:n=0,className:r}){const s=C.useRef(null),o=async a=>{const l=Array.from(a.target.files||[]);if(l.length===0)return;const u=gl-n;if(l.length>u){ze.error(`You can only attach ${gl} files per message. You have ${u} slot(s) remaining.`);return}const{valid:d,errors:f}=SJ(l);if(f.forEach(({file:h,error:m})=>{ze.error(`${h.name}: ${m}`)}),d.length>0)try{const h=await Promise.all(d.map(m=>vA(m)));e(h)}catch(h){console.error("Failed to process files:",h),ze.error("Failed to process one or more files")}s.current&&(s.current.value="")},i=()=>{var a;(a=s.current)==null||a.click()};return c.jsxs(c.Fragment,{children:[c.jsx("input",{ref:s,type:"file",multiple:!0,accept:".png,.jpg,.jpeg,.gif,.webp,.pdf,.txt,.md,.csv,.json,.xml,.js,.jsx,.ts,.tsx,.py,.sql",onChange:o,className:"hidden",disabled:t||n>=gl}),c.jsx(se,{variant:"secondary",size:"sm",className:`h-7 px-2 ${r}`,onClick:i,disabled:t||n>=gl,title:n>=gl?`Maximum ${gl} files allowed`:"Attach files",children:c.jsx(ZT,{className:"h-4 w-4 text-muted-foreground"})})]})}function wXe({children:e,onFilesDropped:t,disabled:n=!1,currentFileCount:r=0,className:s}){const[o,i]=C.useState(!1),a=C.useCallback(f=>{f.preventDefault(),f.stopPropagation(),n||i(!0)},[n]),l=C.useCallback(f=>{f.preventDefault(),f.stopPropagation();const h=f.currentTarget.getBoundingClientRect(),m=f.clientX,p=f.clientY;(m<h.left||m>=h.right||p<h.top||p>=h.bottom)&&i(!1)},[]),u=C.useCallback(f=>{f.preventDefault(),f.stopPropagation()},[]),d=C.useCallback(async f=>{if(f.preventDefault(),f.stopPropagation(),i(!1),n)return;const h=Array.from(f.dataTransfer.files);if(h.length===0)return;const m=gl-r;if(h.length>m){ze.error(`You can only attach ${gl} files per message. You have ${m} slot(s) remaining.`);return}const{valid:p,errors:g}=SJ(h);if(g.forEach(({file:b,error:x})=>{ze.error(`${b.name}: ${x}`)}),p.length>0)try{const b=await Promise.all(p.map(x=>vA(x)));t(b),ze.success(`${b.length} file(s) attached successfully`)}catch(b){console.error("Failed to process files:",b),ze.error("Failed to process one or more files")}},[n,r,t]);return c.jsxs("div",{className:X("relative",s),onDragEnter:a,onDragLeave:l,onDragOver:u,onDrop:d,children:[e,o&&!n&&c.jsx("div",{className:"pointer-events-none absolute inset-0 z-50 flex items-center justify-center rounded-lg border-2 border-dashed border-primary bg-primary/5 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-2",children:[c.jsx(sM,{className:"h-8 w-8 text-primary"}),c.jsx("p",{className:"text-sm font-medium text-primary",children:"Drop files here to upload"}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[gl-r," slot(s) available"]})]})})]})}const IA=C.forwardRef(({input:e,setInput:t,handleInputChange:n,handleSubmit:r,isLoading:s,stop:o,onFocus:i,status:a,assistantType:l},u)=>{const[d,f]=C.useState(!1),[h,m]=C.useState(!1),[p,g]=C.useState(!1),b=C.useRef(null),x=dp();gje(),pje();const{setCurrentAIContext:y,updateSelectedEntities:v,setReasoningEffort:w,setShowReasoning:j}=WC(),{queueMessage:S}=fp(),{addFileAttachment:N,removeFileAttachment:E,clearFileAttachments:_,getFileAttachments:k}=QD(),M=XD(l),T=Ae(U=>U.card.dataSource),P=J(U=>U.dashboard.aiContext),O=J(U=>{var G;return(G=U.dashboard.aiContext)==null?void 0:G.selectedEntities});C.useEffect(()=>{u&&"current"in u&&(u.current=b.current)},[u]);const I=C.useCallback(()=>{const U=b.current;if(U){if(!e||e.length===0){U.style.height="10px";return}U.style.height="auto";const G=Math.min(Math.max(U.scrollHeight,10),200);U.style.height=`${G}px`}},[e]);C.useEffect(()=>{I()},[I]),C.useEffect(()=>{const U=setTimeout(()=>{I()},0);return()=>clearTimeout(U)},[I]);const $=()=>{const U=e.trim();!U&&M.length===0||(a!=="ready"?(S(l,U,M),t(""),_(l)):r({preventDefault:()=>{}}))},V=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),$()),U.key==="@"&&(q(),f(!0))},W=C.useCallback(U=>{const G=WUe(U.nativeEvent);G.length>0&&(U.preventDefault(),G.forEach(async Z=>{const Q=await vA(Z);N(l,Q)}))},[N,l]),L=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),R=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),z=C.useCallback(U=>{E(l,U)},[E,l]),F=U=>{if(x.selectedEntities.some(Z=>Z.id&&Z.id===U.id||Z.name===U.name)){const Z=x.selectedEntities.filter(Q=>!(Q.id&&Q.id===U.id||Q.name===U.name));y({selectedEntities:Z})}else{const Z=[...x.selectedEntities,U];y({selectedEntities:Z})}},A=U=>{F(U)},H=U=>{var Q;if(!x.selectedEntities.some(K=>K.id&&K.id===U.id||K.name===U.name)){const K=[...x.selectedEntities,U];y({selectedEntities:K})}const Z="label"in U?U.label:U.name;t(e+`@${Z} `),f(!1),(Q=b.current)==null||Q.focus()},B=U=>{const G=x.selectedEntities.filter(K=>!(K.id&&K.id===U.id||K.name===U.name));y({selectedEntities:G});const Q=`@${"label"in U?U.label:U.name}`;e.includes(Q)&&t(e.replace(Q,"").trim())},Y=U=>{const G=new Set(U.map(K=>K.id||K.name)),Z=x.selectedEntities.filter(K=>!G.has(K.id||K.name));y({selectedEntities:Z});let Q=e;U.forEach(K=>{const le=`@${"label"in K?K.label:K.name}`;Q=Q.replace(le,"").trim()}),t(Q)},q=C.useCallback(()=>{x.selectedEntities.length===0&&y({selectedEntities:(P==null?void 0:P.selectedEntities)||[]})},[x.selectedEntities.length,P==null?void 0:P.selectedEntities,y]);return c.jsxs(wXe,{onFilesDropped:L,currentFileCount:M.length,disabled:s,className:"space-y-4",children:[c.jsx(aXe,{entities:x.selectedEntities,availableEntities:O||[],onRemoveEntity:B,onRemoveEntities:Y}),M.length>0&&c.jsx(qUe,{files:M,onRemove:z,showRemove:!s,className:"mb-2"}),c.jsxs("div",{className:"rounded-lg border border-border bg-background shadow-sm focus-within:ring-1 focus-within:ring-foreground/40",children:[c.jsx("textarea",{ref:b,value:e,onChange:n,onKeyDown:V,onPaste:W,onFocus:()=>{I(),i==null||i()},placeholder:"Ask a question...",className:"max-h-[200px] min-h-[40px] w-full resize-none overflow-y-auto border-0 bg-transparent px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-0",style:{height:"40px",lineHeight:"1.5"}}),c.jsxs("div",{className:"flex items-center justify-between border-foreground/10 px-3 py-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[l==="dashboard"&&c.jsxs(ms,{open:d,onOpenChange:U=>{U&&q(),f(U)},children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"secondary",size:"sm",className:"h-7 px-2",title:"Add entity",children:c.jsx(zoe,{className:"h-4 w-4 text-muted-foreground"})})}),c.jsx(gs,{className:"w-80 p-0",align:"start",side:"top",sideOffset:8,onOpenAutoFocus:U=>U.preventDefault(),children:c.jsx(oXe,{isOpen:!0,onSelect:F,onDeselect:A,onClose:()=>{var U;f(!1),(U=b.current)==null||U.focus()},availableEntities:O||[],selectedEntities:x.selectedEntities,onTabComplete:H,onSelectAll:()=>{O&&y({selectedEntities:O})},onRemoveAll:()=>{y({selectedEntities:[]})},onAddContext:()=>{f(!1),m(!0)}})})]}),c.jsx(vXe,{onFilesSelected:R,disabled:s,currentFileCount:M.length})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[s&&c.jsx(se,{className:"rounded-full",size:"sm",onClick:o,children:c.jsx(tie,{className:"size-3.5 bg-background"})}),!s&&c.jsx(se,{disabled:!e.trim()&&M.length===0,size:"sm",variant:a!=="ready"?"secondary":"default",onClick:$,title:a!=="ready"?"Message will be queued":void 0,children:c.jsx(w8,{className:"size-4"})})]})]})]}),c.jsx(DA,{incomingSelectedEntities:x.selectedEntities,open:h,onOpenChange:m,dataSource:T||HS,dialogMode:"aiContext"})]})});IA.displayName="ChatInputWithContext";function zee({assistantType:e,className:t}){const n=Iq(e),{removeFromQueue:r}=fp();return n.length===0?null:c.jsxs("div",{className:X("space-y-2",t),children:[c.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[c.jsx(Gl,{className:"h-3 w-3"}),c.jsxs("span",{children:["Pending messages (",n.length,")"]})]}),c.jsx("div",{className:"space-y-2",children:n.map(s=>c.jsx("div",{className:"group relative rounded-lg border border-dashed border-muted-foreground/30 bg-muted/30 px-3 py-2 text-sm animate-in fade-in-0 slide-in-from-bottom-1",children:c.jsxs("div",{className:"flex items-start justify-between gap-2",children:[c.jsx("div",{className:"flex-1 space-y-1",children:c.jsx("p",{className:"break-words text-foreground/70",children:s.text})}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:()=>r(e,s.id),title:"Remove from queue",children:c.jsx(St,{className:"h-3 w-3"})})]})},s.id))})]})}function Bee({assistantType:e,status:t,isLoading:n,sendMessage:r}){const s=Iq(e),{dequeueMessage:o}=fp();C.useEffect(()=>{if(t!=="ready"||n||!(s&&s.length>0))return;const a=o(e);a&&r({role:"user",parts:[{type:"text",text:a.text}]})},[t,n,s,o,r,e])}function Vee(e,t={}){const{threshold:n=50,behavior:r="smooth",forceScrollOnStream:s=!0,isStreaming:o=!1}=t,i=C.useRef(null),[a,l]=C.useState(!0),[u,d]=C.useState(!0),[f,h]=C.useState(!1),[m,p]=C.useState(0),g=C.useRef(0),b=C.useRef(!1),x=C.useRef(0),y=C.useRef(a),v=C.useRef(void 0),w=C.useRef({key:null,count:0,length:0}),j=C.useCallback(()=>{const _=i.current;return _?_.scrollHeight-_.scrollTop-_.clientHeight:0},[]),S=C.useCallback((_={})=>{if(!i.current)return;const{force:M=!1,instant:T=!1}=_;if(!M&&!y.current||!a&&!M)return;const P=T||r==="auto"||r==="instant"?"auto":r;v.current&&cancelAnimationFrame(v.current),b.current=!0,v.current=requestAnimationFrame(()=>{if(!M&&!y.current){b.current=!1,v.current=void 0;return}const O=i.current;if(!O){b.current=!1,v.current=void 0;return}const I=O.scrollHeight;P==="smooth"&&"scrollTo"in O?O.scrollTo({top:I,behavior:P}):O.scrollTop=I,g.current=O.scrollTop,d(!0),l(!0),y.current=!0,h(!1),p(0),b.current=!1,v.current=void 0})},[r,a]),N=C.useCallback(()=>{const _=i.current;if(!_)return;const k=g.current,M=_.scrollTop,T=M-k;if(g.current=M,T<-1){v.current&&(cancelAnimationFrame(v.current),v.current=void 0),b.current=!1,y.current=!1,l(!1),d(!1);return}if(b.current)return;const P=j()<=n;d(P),l(P),y.current=P,P&&(h(!1),p(0))},[j,n]),E=C.useCallback(()=>{p(0),h(!1)},[]);return C.useEffect(()=>{y.current=a},[a]),C.useEffect(()=>{const _=i.current;if(!_||!e||e.length===0){h(!1),p(0),w.current={key:null,count:0,length:0},g.current=_?_.scrollTop:0,x.current=_?_.scrollHeight:0;return}g.current=_.scrollTop,x.current=_.scrollHeight;const k=w.current,M=e[e.length-1],T=(M==null?void 0:M.id)??(M==null?void 0:M.messageId)??(M==null?void 0:M.createdAt)??(M==null?void 0:M.timestamp)??e.length,P=Array.isArray(M==null?void 0:M.parts)?M.parts.reduce((L,R)=>R?typeof R=="string"?L+R.length:typeof R.text=="string"?L+R.text.length:typeof R.content=="string"?L+R.content.length:typeof R.value=="string"?L+R.value.length:L:L,0):typeof(M==null?void 0:M.content)=="string"?M.content.length:typeof(M==null?void 0:M.text)=="string"?M.text.length:0,O=e.length>k.count,I=T!==k.key,$=P>k.length,V=s&&(M==null?void 0:M.role)==="assistant"&&!O&&(I||$),W=o||V;if(w.current={key:T,count:e.length,length:P},a&&(O||I||$||W)){S({force:!1,instant:W});return}if(!a&&O){const L=e.length-k.count;L>0&&(h(!0),p(R=>R+L))}else!a&&$&&(h(!0),p(L=>L>0?L:1))},[e,S,a,s,o]),C.useEffect(()=>{S({instant:!0})},[S]),C.useEffect(()=>{if(typeof ResizeObserver>"u")return;const _=i.current;if(!_)return;x.current=_.scrollHeight;const k=new ResizeObserver(()=>{const M=i.current;if(!M)return;const T=x.current,P=M.scrollHeight;x.current=P,!b.current&&y.current&&P>T&&S({force:!1,instant:!0})});return k.observe(_),()=>{k.disconnect()}},[S]),C.useEffect(()=>()=>{v.current&&cancelAnimationFrame(v.current)},[]),{scrollRef:i,isAutoScrollEnabled:a,isAtBottom:u,hasNewMessages:f,newMessageCount:m,scrollToBottom:S,handleScroll:N,resetNewMessageCount:E}}function Hee(e,t={}){const{maxVisibleMessages:n=50,initialLoadCount:r=20,loadMoreCount:s=10}=t,[o,i]=C.useState(r),a=C.useMemo(()=>{if(e.length<=o)return e;const h=Math.max(0,e.length-o);return e.slice(h)},[e,o]),l=e.length>o,u=o>=e.length,d=C.useCallback(()=>{i(h=>Math.min(h+s,n))},[s,n]),f=C.useCallback(()=>{i(r)},[r]);return C.useEffect(()=>{u&&e.length>o&&o<n&&i(Math.min(e.length,n))},[e.length,o,u,n]),{visibleMessages:a,hasMoreMessages:l,totalMessageCount:e.length,loadMoreMessages:d,resetMessageWindow:f,isShowingAll:u}}function Uee(e){var n;if(!e||e.length===0)return{hasActiveTools:!1};const t=e[e.length-1];if(!(t!=null&&t.parts))return{hasActiveTools:!1};for(const r of t.parts){if(r.type==="reasoning"&&"state"in r&&r.state==="streaming")return{hasActiveTools:!0,activeToolText:r.text||"Reasoning...",toolType:"reasoning"};if(((n=r.type)!=null&&n.startsWith("tool-")||r.type==="dynamic-tool")&&"state"in r&&["input-streaming","input-available"].includes(r.state)){const s=r,o=s.state;return{hasActiveTools:!0,activeToolText:jJ(s.type,o),toolType:s.type}}}return{hasActiveTools:!1}}const CXe=[{title:"Show top 3 insights",subtitle:"from this dataset"},{title:"Create a bar chart for",subtitle:"sales by product category"}];function SXe({open:e,setOpen:t,isFullscreen:n,onFullscreenChange:r,fullscreenContainer:s}){const[o,i]=C.useState(!1),[a,l]=C.useState(gT),[u,d]=C.useState(!1),[f,h]=C.useState(!1),[m,p]=C.useState(!1),g=n??m,{isLocalDev:b,isConsoleMode:x}=Hm(),y=C.useRef(null);J(Ye=>Ye.dashboard.aiScopeTables),J(Ye=>Ye.isDashboardEditing);const v=J(Ye=>Ye.selectedSheetId),{setDataSource:w}=cr(),{addFrame:j,setSelectedFrameId:S,setIsDashboardEditing:N}=Wt(),E=dp(),{setCurrentAIContext:_,updateSelectedEntities:k,setReasoningEffort:M,setShowReasoning:T}=WC(),{clearQueue:P}=fp(),{clearFileAttachments:O,getFileAttachments:I}=QD(),$=XD("dashboard"),V=J(Ye=>Ye.dashboard.aiContext),W=Ae(Ye=>Ye.card.dataSource),{assistantProfile:L}=Pee(),R=J(Ye=>Ye.handleOpenAssistantProfile),{sendMessage:z,isLoading:F,messages:A,setMessages:H,status:B,stop:Y,errorMessage:q,clearError:U}=sXe(),G=C.useCallback(Ye=>{r==null||r(Ye),n===void 0&&p(Ye)},[n,r]),Z=C.useCallback(()=>{G(!g)},[g,G]);C.useEffect(()=>{if(!g)return;function Ye(Yt){Yt.key==="Escape"&&G(!1)}return window.addEventListener("keydown",Ye),()=>{window.removeEventListener("keydown",Ye)}},[g,G]);const[Q,K]=C.useState(""),te=Ye=>{K(Ye.target.value)};function le({sql:Ye,cardTitle:Yt,connectionId:Ge,cardType:et,python:Be,cardConfig:Ke,dataSource:kt,customVisualPreferences:pe}){if(!v)return;const Re={id:Rr(),title:Yt||"Title",preferences:{onClickFilter:[{columnIndex:0,expression:""}],chartOptions:{indexAxis:et==="horizontalBar"?"y":"x"}},type:et,sql:Ye,python:Be,dataSource:kt,config:Ke,connectionId:Ge,customCardPreferences:pe?{url:pe.url,componentName:pe.componentName,pluginChartType:pe.pluginChartType,settings:pe.settings,type:"component"}:void 0},re={id:Rr(),cards:[Re],activeCardId:Re.id};N(!0),j(v,re,"end"),S(re.id)}const de=Ye=>{Ye.preventDefault();const Yt=Q.trim();if(!Yt&&$.length===0)return;const Ge=[];Yt&&Ge.push({type:"text",text:Yt}),$.forEach(et=>{et.data&&Ge.push({type:"file",mediaType:et.type,filename:et.name,url:`data:${et.type};base64,${et.data}`})}),z({role:"user",parts:Ge}),K(""),O("dashboard"),ie({force:!0})};C.useEffect(()=>{var Ye;e&&((Ye=y.current)==null||Ye.focus())},[e]),Bee({assistantType:"dashboard",status:B,isLoading:F,sendMessage:z});const{hasActiveTools:ce}=Uee(A),{visibleMessages:Ce,hasMoreMessages:ge,totalMessageCount:he,loadMoreMessages:me,resetMessageWindow:oe}=Hee(A,{maxVisibleMessages:15,initialLoadCount:10,loadMoreCount:5}),{scrollRef:Ne,isAtBottom:fe,hasNewMessages:Me,newMessageCount:ke,scrollToBottom:ie,handleScroll:xe,resetNewMessageCount:Oe}=Vee(Ce,{threshold:50,behavior:"smooth",isStreaming:F});function be(Ye){Fe();const Yt={role:"user",parts:[{type:"text",text:Ye.title+" "+Ye.subtitle}]};z(Yt)}function De(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]})}function qe(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]}),ie({force:!0})}const He=C.useCallback(async()=>{const Ye=JSON.stringify(A??[],null,2);try{if(typeof navigator>"u"||!navigator.clipboard)throw new Error("Clipboard API unavailable");await navigator.clipboard.writeText(Ye),ze.success("Conversation copied")}catch(Yt){console.error("Failed to copy conversation",Yt),ze.error("Unable to copy conversation")}},[A]);function Fe(){E.selectedEntities.length===0&&_({selectedEntities:(V==null?void 0:V.selectedEntities)||[]})}const yt=(Q==null?void 0:Q.length)===0&&(A==null?void 0:A.filter(Ye=>Ye.role==="user").length)===0;function je(){return c.jsx("div",{"data-role":"header",children:c.jsx("div",{className:"text-lg font-semibold",children:"Assistant"})})}function dt(){return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",children:c.jsx(Pm,{className:"size-3.5"})})}),c.jsxs(yu,{align:"end",children:[c.jsx(Eh,{children:"Options"}),c.jsx(Kd,{}),c.jsx(Mg,{checked:o,onCheckedChange:i,children:"Token Usage"}),c.jsx(Mg,{checked:a,onCheckedChange:l,children:"Tool Invocations"}),c.jsx(Mg,{checked:u,onCheckedChange:d,children:"System Message"})]})]})}const Ct=c.jsxs("div",{"data-role":"dashboard-assistant",className:X("flex h-full grow flex-col justify-between break-words px-6 py-4",g&&"rounded-2xl border border-border/60 bg-background px-8 pb-6 pt-6 shadow-xl"),children:[c.jsxs("div",{"data-role":"header-section",className:"flex items-start justify-between gap-2",children:[je(),R&&c.jsx(se,{variant:"outline",size:"sm",className:"h-7 p-2",onClick:R,children:(L==null?void 0:L.name)||"Default Profile"}),c.jsxs("div",{"data-role":"header-actions",className:"flex items-center",children:[x&&dt(),a&&c.jsx(se,{variant:"ghost",size:"sm",className:"ml-2 h-7 px-2 text-muted-foreground hover:text-foreground",onClick:He,children:"Copy Conversation"}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:g?"Exit Fullscreen":"Expand",onClick:Z,children:g?c.jsx(KT,{className:"size-4"}):c.jsx(W1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:"New Chat",onClick:()=>{H([]),P("dashboard"),U(),oe()},children:c.jsx(Y1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",onClick:()=>{t(!1)},children:c.jsx(St,{className:"size-4"})})]})]}),c.jsxs(tl,{"data-role":"dashboard-assistant-scroll-area",ref:Ne,className:"mt-4 flex flex-1 basis-0 flex-col flex-wrap justify-end pr-2",onScroll:xe,children:[c.jsxs("div",{className:"space-y-3 pb-4",children:[ge&&c.jsx("div",{className:"flex justify-center py-2",children:c.jsxs(se,{variant:"outline",size:"sm",onClick:me,className:"text-xs",children:["Load ",Math.min(5,he-Ce.length)," ","more messages (",he-Ce.length," ","hidden)"]})}),c.jsx(kJ,{showTools:a,showSystemMessage:u,messages:Ce,onAddToDashboard:le,onQuickReply:qe,disableQuickReplies:F}),!ce&&c.jsx(NJ,{status:B,errorMessage:q})]}),c.jsx(bi,{orientation:"horizontal"})]}),e&&!fe&&c.jsx("div",{className:"absolute bottom-24 right-8 z-10",children:c.jsxs(se,{onClick:()=>{ie({force:!0}),Oe()},size:"sm",variant:"secondary",className:"rounded-full shadow-lg","aria-label":"Scroll to bottom",children:[c.jsx(kr,{className:"h-4 w-4"}),Me&&ke>0&&c.jsx("span",{className:"ml-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-xs text-primary-foreground",children:ke>9?"9+":ke})]})}),c.jsxs("div",{className:"space-y-3",children:[!L&&yt&&c.jsx(EJ,{onClick:be,placeholders:CXe}),c.jsx("div",{children:yt&&L&&c.jsx(Oee,{seedQuestions:L.seedQuestions||[],handleSeedQuestionClick:De})}),c.jsx(zee,{assistantType:"dashboard",className:"mb-3"}),c.jsx(IA,{ref:y,setInput:K,stop:Y,input:Q,handleInputChange:te,handleSubmit:Ye=>{Fe(),de(Ye),ie({force:!0})},isLoading:F,status:B,assistantType:"dashboard",onFocus:()=>{}})]}),c.jsx(DA,{incomingSelectedEntities:(V==null?void 0:V.selectedEntities)||[],open:f,onOpenChange:h,dataSource:W||HS,dialogMode:"aiContext"})]});return g&&s?Zn.createPortal(c.jsx("div",{className:"pointer-events-auto absolute inset-0 z-50 flex bg-background px-6 pb-6 pt-[calc(var(--app-header-height,15px)+1rem)]",children:c.jsx("div",{className:"flex h-full w-full",children:Ct})}),s):Ct}function jXe(e){const t=e.current,{getSelectedFrame:n,addFrame:r,setSelectedFrameId:s}=Wt(),o=J(d=>d.dashboard.sheets),a=J(d=>d.selectedSheetId)??(o==null?void 0:o[0].id),l=J(d=>d.isDashboardEditing),u=J(d=>d.isVisualEditing);C.useEffect(()=>{if(!l||u)return;async function d(m){const p=m.ctrlKey||m.metaKey;p&&m.key==="c"?(await f(),ze.success("Card copied to clipboard"),m.preventDefault()):p&&m.key==="v"&&(await h(),m.preventDefault())}async function f(){try{const m=n();m&&await navigator.clipboard.writeText(JSON.stringify(m))}catch(m){console.error("Failed to copy text:",m)}}async function h(){if(!a)return null;try{const m=await navigator.clipboard.readText();try{const p=JSON.parse(m);if(p!=null&&p.id){const g=NR(p),b=g.cards.findIndex(x=>x.id===g.activeCardId);b!==-1&&(g.cards[b].title=`${g.cards[b].title} (Copy)`),r(a,g),s(g.id),ze.success("Card pasted from clipboard")}}catch(p){console.error("Failed to parse clipboard contents: ",p)}return m}catch(m){return console.error("Failed to paste text:",m),null}}return t==null||t.addEventListener("keydown",d),()=>t==null?void 0:t.removeEventListener("keydown",d)},[r,n,s,a,l,u,t])}function NXe(e,t){switch(e.interactionMode){case"drillToDetail":kXe(e,t);break;case"drillThrough":EXe(e,t);break;case"drillToURL":_Xe(e);break;case"inlineDrill":console.warn("Inline drill execution not yet implemented");break;case"clickFilter":case"drillDown":case"dynamicDrill":break;default:console.warn("Unknown interaction mode:",e.interactionMode)}}function kXe(e,t){var l;const{targetInsightId:n,contextMode:r,displayMode:s,filterGroups:o}=e;if(!n){console.warn("drillToDetail event missing targetInsightId");return}const i=r||"full";let a=[];switch(i){case"interactionFilters":a=o.flatMap(u=>u.filters);break;case"full":{const u=((l=t.getCurrentFilters)==null?void 0:l.call(t))||[],d=o.flatMap(f=>f.filters);a=[...u,...d];break}case"none":default:a=[];break}s==="replace-card"?t.replaceCardContent({cardId:e.sourceCardId,insightId:n,filters:a,contextMode:r}):t.openInsightModal({insightId:n,filters:a,contextMode:r})}function EXe(e,t){var u,d;const{targetDashboardId:n,contextMode:r="interactionFilters",filterGroups:s,sourceCardId:o}=e;if(!n){console.warn("[DrillThrough] Event missing targetDashboardId. This interaction needs to be reconfigured with a target dashboard.",e);return}const i=s.flatMap(f=>f.filters),a=((u=t.getCurrentDashboardId)==null?void 0:u.call(t))||"",l=(d=t.getCurrentDashboardTitle)==null?void 0:d.call(t);t.setGlobalDrillContext&&t.setGlobalDrillContext({filters:i,contextMode:r,sourceDashboardId:a,sourceDashboardTitle:l,targetDashboardId:n}),t.setPendingDrillThrough&&t.setPendingDrillThrough({targetDashboardId:n,sourceDashboardId:a,sourceDashboardTitle:l,filters:i,contextMode:r})}function _Xe(e){const{url:t}=e;if(!t){console.warn("drillToURL event missing url");return}try{new URL(t)}catch(n){console.error("Invalid URL:",t,n);return}window.open(t,"_blank","noopener,noreferrer")}function TXe({open:e,onOpenChange:t,insightId:n,filters:r,filterDefinitions:s,contextMode:o,cardTitle:i,cardDescription:a}){return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsxs(zr,{className:"max-h-[90vh] max-w-[90vw] p-6",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:i||"Insight Detail"}),c.jsx(is,{children:a||"View detailed insight data with applied filters"})]}),c.jsx(YZ,{filters:r,filterDefinitions:s,contextMode:o}),c.jsx("div",{className:"h-[400px] flex-1 overflow-auto",children:n?c.jsx(XZ,{insightId:n,filters:r,contextMode:o}):c.jsx("div",{className:"flex items-center justify-center p-12 text-muted-foreground",children:"No insight selected"})})]})})}function MXe(){const e=Vt(w=>w.interactionStates),t=Vt(w=>w.setInteractionState),n=Vt(w=>w.clearLastInteractionEvent),r=Vt(w=>w.replaceCardWithInsight),s=Vt(w=>w.setPendingDrillThrough),o=Vt(w=>w.pendingDrillThrough),i=Vt(w=>w.clearPendingDrillThrough),{setSelectedSheetId:a,navigateWithDrill:l}=Wt(),{selectDashboard:u}=Cx(),d=J(w=>w.dashboard),f=J(w=>w.filterValues),{data:h,isLoading:m}=F7((o==null?void 0:o.targetDashboardId)||"",{enabled:!!(o!=null&&o.targetDashboardId)}),[p,g]=C.useState({open:!1,insightId:""}),b=QZ(p.insightId,{enabled:p.open&&!!p.insightId}),x=C.useRef(new Set),y=C.useMemo(()=>({setSelectedSheetId:a,openInsightModal:({insightId:w,filters:j,contextMode:S})=>{g({open:!0,insightId:w,filters:j,filterDefinitions:(d==null?void 0:d.filters)||[],contextMode:S})},replaceCardContent:({cardId:w,insightId:j,filters:S,contextMode:N})=>{r(w,j,S,N)},getCurrentFilters:()=>f||[],navigateWithDrill:l,getCurrentDashboardId:()=>(d==null?void 0:d.id)||"",getCurrentDashboardTitle:()=>d==null?void 0:d.title,setPendingDrillThrough:s,setGlobalDrillContext:({filters:w,contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E})=>{const k={sourceCardId:Da,interactionMode:"clickFilter",filterGroups:[{filters:w}]},M={...ii(),appliedClickFilters:[k],contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E};t(Da,M)}}),[a,r,f,l,d,s,t]);C.useEffect(()=>{Object.entries(e).forEach(([w,j])=>{if(j!=null&&j.lastInteractionEvent){const S=j.lastInteractionEvent,N=`${w}-${S.interactionMode}-${S.sourceCardId}-${Date.now()}`;if(x.current.has(N))return;x.current.add(N);try{NXe(S,y)}catch(E){console.error("Error executing interaction event:",E)}finally{n(w),setTimeout(()=>{x.current.delete(N)},5e3)}}})},[e,n,y]),C.useEffect(()=>{if(!(!o||!h||m))try{u(h),l(o.targetDashboardId,o.sourceDashboardId,o.sourceDashboardTitle,o.filters,o.contextMode),i()}catch(w){console.error("[DrillThrough] Error during automatic navigation:",w),i()}},[o,h,m,u,l,i]);const v=()=>{g({open:!1,insightId:""})};return c.jsxs(c.Fragment,{children:[c.jsx(TXe,{open:p.open,onOpenChange:v,insightId:p.insightId,filters:p.filters,filterDefinitions:p.filterDefinitions,contextMode:p.contextMode,cardTitle:b.title,cardDescription:b.description}),o&&m&&c.jsx("div",{className:"fixed inset-0 z-[51] flex items-center justify-center bg-background/80 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border bg-background p-6 shadow-lg",children:[c.jsx(xn,{className:"h-8 w-8 animate-spin text-primary"}),c.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading dashboard..."})]})})]})}function DXe(e){return e.length===0?"":e.map(t=>{const n=t.field.label||t.field.name,r=t.operator,s=IXe(t.value);return r==="="?`${n} = ${s}`:`${n} ${r} ${s}`}).join(", ")}function IXe(e){return e==null?"null":Array.isArray(e)?e.join(", "):typeof e=="object"&&e.toString?e.toString():String(e)}function RXe(e){return e?`Back to ${e}`:"Back"}function AXe(){var x,y,v,w,j;const e=Vt(S=>S.interactionStates[Da]),t=J(S=>S.actions.goBackFromDrill),n=J(S=>S.actions.clearDrillContext),{selectDashboard:r}=Cx(),[s,o]=C.useState({x:16,y:16}),[i,a]=C.useState(!1),l=C.useRef({x:0,y:0});C.useEffect(()=>{if(!i)return;const S=E=>{o({x:E.clientX-l.current.x,y:E.clientY-l.current.y})},N=()=>{a(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",N),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",N)}},[i]);const u=e==null?void 0:e.sourceDashboardId,d=e==null?void 0:e.sourceDashboardTitle,f=((w=(v=(y=(x=e==null?void 0:e.appliedClickFilters)==null?void 0:x[0])==null?void 0:y.filterGroups)==null?void 0:v[0])==null?void 0:w.filters)||[],h=u?{id:u,title:d||"Previous Dashboard",description:"",isPrivate:!1,isPublic:!1,version:"",createdBy:null,createdByTenantUser:"",tenantId:"",projectId:"",createdAt:"",updatedAt:"",lastModified:"",lastModifiedBy:"",createdByUser:null,createdByTenantUserRel:{name:"",email:""},permissions:{canEdit:!0,canShare:!0,canDelete:!0},ownership:{status:"private",isOwner:!0,sharedCount:0,createdBy:{type:"user",userId:"",name:"",email:""}}}:null;if(!e||!((j=e.appliedClickFilters)!=null&&j.length))return null;const m=()=>{if(!h){console.warn("[DrillBack] No source dashboard in context");return}try{t(),r(h)}catch(S){console.error("[DrillBack] Error during back navigation:",S)}},p=()=>{n()},g=S=>{S.target.closest("button")||(a(!0),l.current={x:S.clientX-s.x,y:S.clientY-s.y})};DXe(f);const b=RXe(d);return c.jsx("div",{className:"fixed z-50 max-w-md",style:{left:0,top:0,transform:`translate(${s.x}px, ${s.y}px)`,transition:i?"none":void 0},children:c.jsxs("div",{className:"select-none rounded-lg border bg-background/95 p-3 shadow-lg backdrop-blur-sm",onMouseDown:g,style:{cursor:i?"grabbing":"grab"},children:[c.jsxs("div",{className:"mb-3 flex items-start justify-between gap-2",children:[c.jsxs("div",{className:"flex flex-col gap-2",children:[c.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Viewing:"}),c.jsx("div",{className:"flex flex-wrap gap-2",children:f.map((S,N)=>{const E=S.field.label||S.field.name,_=String(S.value);return c.jsxs(Ve,{variant:"secondary",className:"pointer-events-none text-xs",children:[E," = ",_]},N)})})]}),c.jsx(se,{variant:"ghost",size:"sm",onClick:p,className:"h-6 w-6 cursor-pointer p-0",title:"Clear drill context",children:c.jsx(St,{className:"h-3 w-3"})})]}),c.jsx("div",{className:"flex items-center gap-2 border-t pt-2",children:c.jsxs(se,{variant:"secondary",size:"sm",onClick:m,disabled:!h,className:"w-full cursor-pointer",children:[c.jsx(t8,{className:"mr-2 h-4 w-4"}),b]})})]})})}function Wee(){var ge;const{showAssistant:e,tokenProps:t}=Xe(),{preferences:n,isConsoleMode:r}=Hm(),s=((ge=n==null?void 0:n.cardDisplay)==null?void 0:ge.mode)==="print",o=C.useRef(null),i=C.useRef(null),[a,l]=C.useState(!1),{handleDragStart:u,isDraggingRef:d,getStyle:f,getPositionClasses:h}=L6e({initialPosition:"bottom-right"}),m=Od(he=>he.setFullscreen),p=Od(he=>he.setPanelOpen),g=Od(he=>he.setContainer),b=_q("dashboard"),x=Tq(),y=Mq("dashboard"),v=b.isOpen,w=x==="dashboard",j=J(he=>he.isVisualEditing),S=J(he=>he.themeStyle),N=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.sheets}),E=J(he=>he.showFilters),_=J(he=>he.isDashboardEditing),k=J(he=>he.selectedSheetId),M=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.id}),T=J(he=>he.isDashboardPanelOpen),P=J(he=>he.actions.setIsDashboardPanelOpen),{getDefaultSheetId:O,setDefaultSheetId:I,clearDefaultSheetId:$}=Zz(M),[V,W]=C.useState(null);iC(Ut.DASHBOARD);const{setSelectedSheetId:L,setSheetTitle:R,addSheet:z,setSheets:F}=Wt();jXe(i);const{setActiveAssistantType:A}=WC();C.useEffect(()=>{if(M){const he=O();W(he)}},[M,O]),C.useEffect(()=>{v?A("dashboard"):x==="dashboard"&&m(null)},[v,A,x,m]),C.useEffect(()=>{var he;v||(he=o.current)==null||he.resize(0)},[v]);function H(he){var me,oe;he?((me=o.current)==null||me.resize(40),p("dashboard",!0),A("dashboard")):(p("dashboard",!1),m(null),(oe=o.current)==null||oe.resize(0),A(null))}function B(){const he={id:Rr(),title:"New Sheet"};z(he),L(he.id)}function Y(he,me){if(!M)return;V===he?($(),W(null),ze.success("Default sheet cleared")):(I(he),W(he),ze.success(`"${me}" set as default sheet`))}function q(he){var me;he<1?(p("dashboard",!1),m(null),A(null),(me=o.current)==null||me.resize(0)):(v||p("dashboard",!0),A("dashboard"))}function U(){return(S==null?void 0:S.canvasTheme)==="muted"||!(S!=null&&S.canvasTheme)?"hsl(var(--semaphor-muted))":(S==null?void 0:S.canvasTheme)==="clear"?"":S==null?void 0:S.canvasTheme}const G=(he,me)=>{he.dataTransfer.setData("tabIndex",me.toString())},Z=he=>{he.preventDefault()},Q=(he,me)=>{const oe=he.dataTransfer.getData("tabIndex");if(oe===me.toString())return;const Ne=Array.from(N||[]),[fe]=Ne.splice(parseInt(oe),1);Ne.splice(me,0,fe),F(Ne)},K=t.orgUserId||t.tenantId&&t.endUserId&&t.endUserEmail,te=e===!0&&!s&&!v&&!j&&!E;function le(){var he,me;if(N&&N.length>1||_)return c.jsxs(ys,{role:"tab-list",className:"flex h-12 w-0 min-w-full items-center justify-start gap-2 overflow-x-auto rounded-none border-b border-b-muted bg-transparent px-3",children:[r&&K&&c.jsx(se,{style:{borderRadius:S==null?void 0:S.controlInputRadius},variant:"outline","aria-label":"Manage Dashboards and Visuals",onClick:()=>{P(!T)},className:"h-8 shrink-0 p-2",children:T?c.jsx(i8,{className:"h-4 w-4"}):c.jsx(a8,{className:"h-4 w-4"})}),N==null?void 0:N.map((oe,Ne)=>{const fe=k===oe.id,Me=V===oe.id;return c.jsxs(nn,{draggable:!0,onDragStart:ke=>G(ke,Ne),onDragOver:Z,onDrop:ke=>Q(ke,Ne),style:{borderRadius:S==null?void 0:S.controlInputRadius},onClick:()=>L(oe.id),className:"flex shrink-0 items-center gap-1 border px-2 py-1",value:oe.id,children:[c.jsx(Vb,{enabled:_&&fe,text:oe.title,onSave:ke=>R(oe.id,ke),children:oe.title},oe.id),!_&&fe&&c.jsx("div",{title:Me?"Clear default sheet":"Set as default sheet",children:c.jsx(JT,{className:X("ml-1 size-3 cursor-pointer transition-all",Me?"fill-yellow-500 text-yellow-500":"text-muted-foreground hover:text-foreground"),onClick:ke=>{ke.stopPropagation(),Y(oe.id,oe.title||"Sheet")}})}),_&&fe&&N.length>1&&c.jsx(St,{className:"ml-1 size-3",onClick:()=>l(!0)})]},oe.id)}),_&&c.jsx("div",{style:{borderRadius:(me=(he=S==null?void 0:S.chart)==null?void 0:he.options)==null?void 0:me.borderRadius},className:"flex h-7 shrink-0 items-center justify-center border-none bg-muted p-2 hover:cursor-pointer dark:border-l-background",onClick:B,children:c.jsx(Tr,{className:"size-3"})})]})}function de(){return c.jsx("div",{ref:i,style:{},className:"grow",children:N==null?void 0:N.map(he=>c.jsx(pr,{style:{backgroundColor:U()},className:X("mt-0",{}),value:he.id,children:c.jsx(c6e,{sheet:he})},he.id))})}function ce(){var he;return c.jsxs(Os,{"data-role":"dashboard-tabs-container",className:X("relative flex h-full flex-col",S==null?void 0:S.dashboardTabsContainer),onValueChange:me=>{L(me)},value:k||((he=N==null?void 0:N[0])==null?void 0:he.id),children:[le(),c.jsx(tl,{"data-role":"dashboard-tabs-content",className:"flex-1 grow basis-0 overflow-y-auto",children:de()}),c.jsx(z6e,{open:a,setOpen:l})]})}const Ce=C.useCallback(he=>{g("dashboard",he)},[g]);return N?c.jsxs(c.Fragment,{children:[c.jsx(MXe,{}),c.jsx(AXe,{}),c.jsxs("div",{className:"relative flex-1 basis-0 overflow-hidden",children:[c.jsxs(aQ,{className:X("flex-1 basis-0 overflow-y-auto transition-opacity",w&&"pointer-events-none opacity-0"),direction:"horizontal",children:[c.jsx(I_,{children:ce()}),e===!0&&c.jsxs(c.Fragment,{children:[c.jsx($6e,{open:v,onTabClick:H,withHandle:!0,disabled:!v}),c.jsx(I_,{className:"flex grow","data-role":"dashboard-assistant-panel",onResize:q,defaultSize:v?40:0,ref:o,children:c.jsx("div",{className:"grow overflow-y-auto",children:c.jsx(SXe,{open:v,setOpen:H,isFullscreen:w,onFullscreenChange:he=>m(he?"dashboard":null),fullscreenContainer:y})})})]})]}),c.jsx("div",{ref:Ce,className:X("absolute inset-0",!w&&"pointer-events-none")}),te&&c.jsx("div",{className:X("absolute z-50 transition-all duration-300 ease-in-out",h().horizontal,h().vertical),style:f(),children:c.jsx(se,{size:"sm",variant:"outline",className:"h-12 w-12 cursor-grab rounded-full border-border bg-background p-0 shadow-lg hover:bg-muted active:cursor-grabbing",onClick:()=>{d.current||H(!0)},onMouseDown:u,onTouchStart:u,title:"Open Assistant (drag to move)",children:c.jsx(q1,{className:"h-5 w-5"})})})]})]}):null}function RA({children:e}){return c.jsx(Za,{style:{height:"100%",width:"100%"},children:c.jsx(eoe,{defaultTheme:"system",storageKey:"vite-ui-theme",children:c.jsx(Ln,{delayDuration:0,children:e})})})}function qee({children:e,preferences:t}){const{currentUser:n}=Ps(),r=C.useMemo(()=>{var s,o;return{preferences:t||{},isLocalDev:((s=t==null?void 0:t.uiMode)==null?void 0:s.developer)||!1,isConsoleMode:((o=t==null?void 0:t.uiMode)==null?void 0:o.console)||!1}},[t]);return c.jsx(m7.Provider,{value:r,children:c.jsx(AR,{displayPreferences:t==null?void 0:t.cardDisplay,currentUser:n,children:e})})}function PXe(e=2e3,t=500){const n=Toe(),[r,s]=C.useState(!1),[o,i]=C.useState(!1),a=C.useRef(null);return C.useEffect(()=>{const l=setTimeout(()=>s(!0),e);return()=>clearTimeout(l)},[e]),C.useEffect(()=>{if(r){if(n>0){i(!1),a.current&&(clearTimeout(a.current),a.current=null);return}return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i(!0)},t),()=>{a.current&&clearTimeout(a.current)}}},[r,n,t]),o}function AA({delayMs:e=2e3,quietMs:t=500,componentType:n,componentId:r}){const s=PXe(e,t);return C.useEffect(()=>(s&&(window.__SEMAPHOR_READY__={ready:!0,type:n,componentId:r||null,timestamp:Date.now()}),()=>{window.__SEMAPHOR_READY__={ready:!1,type:n,componentId:r||null,timestamp:Date.now()}}),[s,n,r]),c.jsx("div",{id:"idle-check","aria-hidden":"true",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:s?"ready":""})}function Yee(e){if(typeof window>"u")return null;const{preferences:t}=e;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:e,children:[c.jsx(AA,{componentType:"dashboard",componentId:e.id}),c.jsx(RA,{children:c.jsx(qee,{preferences:t,children:c.jsx("main",{className:"flex h-full flex-col",children:c.jsx(JD,{...e,type:"dashboard",children:c.jsx(Wee,{})})})})})]})})}function g6(e,t){return e.map(n=>({...n,fieldScope:t}))}function OXe(e){const t=new Map;return e.forEach(n=>{const r=`${n.name}-${n.role||"unknown"}`;t.has(r)||t.set(r,n)}),Array.from(t.values())}function b6(e){if(sc(e)||Ux(e))return e.expression}function PA(){const{columns:e,columnGroups:t,isLoading:n,hasError:r,error:s,refetch:o}=kD(),i=Ae(g=>g.frame.calculatedFields),a=Ae(g=>g.card.config),l=C.useMemo(()=>e.filter(g=>g.fieldScope==="domain"),[e]),u=C.useMemo(()=>e.filter(g=>g.fieldScope!=="domain"),[e]),d=C.useMemo(()=>i!=null&&i.length?g6(i,"dashboard"):[],[i]),f=C.useMemo(()=>{const g=new Map;return d.forEach(b=>{const x=`${b.name}-${b.role||"unknown"}`;g.set(x,b)}),g},[d]),h=C.useMemo(()=>{const g=((a==null?void 0:a.metricColumns)||[]).filter(sc),b=((a==null?void 0:a.groupByColumns)||[]).filter(Ux),y=OXe([...g,...b]).filter(v=>{const w=`${v.name}-${v.role||"unknown"}`,j=f.get(w);if(!j)return!0;const S=b6(v),N=b6(j);return S&&N?S!==N:!0});return g6(y,"card").map(v=>({...v,id:`card-source-${v.id}`}))},[a==null?void 0:a.groupByColumns,a==null?void 0:a.metricColumns,f]),m=C.useMemo(()=>[...l,...d,...h,...u],[h,u,d,l]),p=C.useMemo(()=>t.filter(g=>g.entityId!==pz),[t]);return{columns:e,columnGroups:p,rawColumnGroups:t,columnFields:u,domainCalculatedFields:l,dashboardCalculatedFields:d,cardCalculatedFields:h,scopedFields:m,isLoading:n,hasError:r,error:s,refetch:o}}function OA(e){const{tokenProps:t,authToken:n}=Xe(),r=t==null?void 0:t.apiServiceUrl;return En({queryKey:["joinability-map",e],queryFn:async()=>{if(!e||!(n!=null&&n.accessToken))return null;const s=`${r}/v1/domains/${e}/joinability`;return rr(s,n.accessToken)},enabled:!!e&&!!(n!=null&&n.accessToken)&&!!r,staleTime:5*60*1e3,gcTime:10*60*1e3,retry:2,retryDelay:s=>Math.min(1e3*2**s,3e4)})}function Gee(e,t,n){if(t==="source")return{isValid:!0};const r=yr(e.dataType);if(n==="detailTable"&&t!=="detailColumns"&&t!=="sortBy")return{isValid:!1,reason:"Detail tables only accept columns"};if(n==="kpi"){if(t==="groupBy"&&r!=="date")return{isValid:!1,reason:"KPI Trend By only accepts date fields"};if(t==="metrics"&&r==="date")return{isValid:!1,reason:"KPI metrics cannot be date fields"}}return{isValid:!0}}function Kee(e,t,n,r,s){if(e!=="kpi"||s.length<3)return;const o=(t==null?void 0:t.groupByColumns)&&t.groupByColumns.length>0,i=(t==null?void 0:t.comparisonType)==="none";!o&&i||n(r,{groupByColumns:[],comparisonType:"none"})}const Zee=e=>{var O;const t=(O=e==null?void 0:e.dataSource)==null?void 0:O.semanticDomainId,{data:n}=OA(t),{updateCardConfig:r,updateGroupByColumn:s,updateMetricColumn:o,updatePivotByColumn:i,updateSortByColumn:a,removeGroupByColumn:l,removeMetricColumn:u,removePivotByColumn:d,removeSortByColumn:f}=cr(),h=Ae(I=>I.card.type),m=e==null?void 0:e.id,p=(I,$)=>{if(I.id)return I.id;const V=I.qualifiedEntityName||I.entityName||$;return`${$}-${V}-${I.name}`},g=C.useCallback(I=>{if(!(e!=null&&e.config))return[];switch(I){case"groupBy":return(e.config.groupByColumns||[]).map($=>({...$,id:p($,"groupBy"),label:$.label!==void 0?$.label:$.name}));case"metrics":return(e.config.metricColumns||[]).map($=>({...$,id:p($,"metrics"),label:$.label!==void 0?$.label:$.name}));case"pivotBy":return(e.config.pivotByColumns||[]).map($=>({id:p($,"pivotBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType}));case"sortBy":return(e.config.sortByColumns||[]).map($=>({id:p($,"sortBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType,direction:$.direction}));case"detailColumns":return(e.config.detailColumns||[]).map($=>({id:p($,"detailColumns"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType,dateFormat:$.dateFormat,customFormat:$.customFormat}));case"source":return[];default:return[]}},[e]),b=C.useCallback((I,$)=>{if(m)switch(I){case"groupBy":{r(m,{groupByColumns:$});break}case"metrics":{r(m,{metricColumns:$});break}case"pivotBy":{r(m,{pivotByColumns:$});break}case"sortBy":{r(m,{sortByColumns:$});break}case"detailColumns":{r(m,{detailColumns:$});break}}},[m,r]),x=C.useCallback((I,$,V)=>{if(!m)return;const W=g(I),L=W[$];if(L)switch(I){case"groupBy":s(m,L.id,{label:V});break;case"metrics":o(m,L.id,{label:V});break;case"pivotBy":i(m,L.id,{label:V});break;case"sortBy":a(m,L.id,{label:V});break;case"detailColumns":{const R=W.map((z,F)=>F===$?{...z,label:V}:z);r(m,{detailColumns:R});break}}},[m,g,s,o,i,a,r]),y=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aggregate:$,label:IU(W.name,$)})},[m,g,o]),v=C.useCallback((I,$,V,W="groupBy")=>{if(!m)return;const L=g(W),R=L[I];if(!R)return;const z={dateFormat:$,customFormat:$==="custom"&&V?V:void 0};if(W==="detailColumns"){const F=L.map((A,H)=>H===I?{...A,...z}:A);r(m,{detailColumns:F});return}s(m,R.id,z)},[m,g,r,s]),w=C.useCallback((I,$)=>{if(!m)return;const W=g("groupBy")[I];W&&s(m,W.id,{granularity:$})},[m,g,s]),j=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aliasTemplate:$})},[m,g,o]),S=C.useCallback((I,$)=>{if(console.log("handleValueAliasesChange",I,$),!m)return;console.log("handleValueAliasesChange",I,$);const W=g("metrics")[I];W&&(console.log("handleValueAliasesChange",$),o(m,W.id,{valueAliases:$}))},[m,g,o]),N=C.useCallback(I=>{if(!m)return;if(g("metrics").length===0){ze.error("Add Metric First",{description:"Please add a metric field before selecting a comparison type",position:"top-center",duration:3e3});return}r(m,{comparisonType:I})},[m,r,g]),E=C.useCallback(I=>{m&&r(m,{showTrendline:I})},[m,r]),_=C.useCallback(I=>{m&&r(m,{trendlineWindow:I})},[m,r]),k=C.useCallback(I=>{m&&r(m,{trendlineGranularity:I})},[m,r]),M=C.useCallback(I=>{m&&r(m,{targetValue:I})},[m,r]),T=C.useCallback(async I=>{var A;if(!m)return;const $=[...g("groupBy"),...g("pivotBy"),...g("metrics"),...g("sortBy"),...g("detailColumns")],V=I,W=G1e(V,$,{joinPlan:(A=e==null?void 0:e.config)==null?void 0:A.joinPlan,joinabilityMap:n==null?void 0:n.joinabilityMap,semanticDomainId:t});if(!W.isValid){W.showError&&TU();return}const L=X1e(V,$,h);if(!L){ze.error("Invalid Field",{description:"This field cannot be added to any container",position:"top-center",duration:3e3});return}const R=Gee(V,L,h);if(!R.isValid){ze.error("Invalid Field Type",{description:R.reason,position:"top-center",duration:3e3});return}const z=g(L);if(MU(V,z))return;const F=RU(V,L,z);if(F){const H=[...z,F];b(L,H),L==="metrics"&&Kee(h,e==null?void 0:e.config,r,m,H)}},[m,e==null?void 0:e.config,g,b,t,n,h,r]),P=C.useCallback((I,$)=>{if(!m)return;const W=g(I)[$];if(W){if(I!=="sortBy"){const L=g("sortBy"),R=L.filter(z=>!(z.name===W.name&&z.qualifiedEntityName===W.qualifiedEntityName));R.length!==L.length&&r(m,{sortByColumns:R})}switch(I){case"groupBy":l(m,W.id);break;case"metrics":u(m,W.id);break;case"pivotBy":d(m,W.id);break;case"sortBy":f(m,W.id);break;case"detailColumns":{r(m,{detailColumns:(g("detailColumns")||[]).filter((L,R)=>R!==$)});break}}}},[m,g,l,u,d,f,r]);return{getFieldsForContainer:g,setFieldsForContainer:b,updateLabel:x,handleAggregationChange:y,handleDateFormatChange:v,handleGranularityChange:w,handleAliasTemplateChange:j,handleValueAliasesChange:S,removeField:P,handleFieldClick:T,handleKpiComparisonTypeChange:N,handleKpiShowTrendlineChange:E,handleKpiTrendlineWindowChange:_,handleKpiTrendlineGranularityChange:k,handleKpiTargetValueChange:M,cardType:h}};function YS(e,t){var De,qe,He,Fe,yt;const{tokenProps:n}=Xe(),r=so(),s=Xe().authToken||e,o=Ae(je=>je.selectedConnectionId),i=Ae(je=>je.card),{queryKey:a}=phe(i),l=Ae(je=>je.selectedDatamodelId),u=Ae(je=>je.isDevMode),d=Ae(je=>je.selectedDatabaseName),f=Ae(je=>je.selectedSchemaName),h=Ae(je=>je.selectedTableName),m=Ae(je=>je.actions.setSelectedConnectionId),p=Ae(je=>je.actions.setSelectedDatamodelId),g=Ae(je=>je.actions.setSelectedDatabaseName),b=Ae(je=>je.actions.setSelectedSchemaName),x=Ae(je=>je.actions.setSelectedTableName);Ae(je=>je.actions.setCardSql);const{setQueryConfig:y}=cr();function v(je){var Ct;return o&&je==="API"?!1:o&&je==="S3"?!0:!(!o||!d||d==="NA"||((Ct=_==null?void 0:_.capabilities)==null?void 0:Ct.path.includes("schema"))&&!f)}function w(je){return o&&je?!(je==="API"||je==="S3"):!1}const{refetchConnections:j,connectionsData:S,isConnectionsLoading:N,isConnectionsError:E,selectedConnection:_}=Ci(e),{refetch:k,data:M,isLoading:T,isError:P}=En({queryKey:["models",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datamodels`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:!!(s!=null&&s.accessToken)&&!!o}),O=_==null?void 0:_.type,I=(_==null?void 0:_.type)==="API"||(_==null?void 0:_.type)==="S3",{data:$,isLoading:V,isFetching:W,isError:L,refetch:R}=En({queryKey:["databases",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/databases`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:w(O)}),{data:z,isLoading:F,isFetching:A,isError:H,refetch:B}=En({queryKey:["schemas",o,d],queryFn:()=>rr(`${n.apiServiceUrl}/v1/schemas`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d}),enabled:!!o&&!!d&&!I&&d!=="NA"}),{data:Y,isLoading:q,isFetching:U,isError:G,refetch:Z}=En({queryKey:["tables",o,d,f],queryFn:()=>rr(`${n.apiServiceUrl}/v1/tables`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d,schema_name:f}),enabled:v(O)}),{columns:Q,isColumnsLoading:K,isColumnsFetching:te,isColumnsError:le,refetchColumns:de}=AU(e);C.useEffect(()=>{(O==="S3"||O==="API")&&(g(""),b(""),p(""),O==="API"&&x("api"))},[O,x,g,b,p]);const ce=(_==null?void 0:_.type)==="API"?(De=_==null?void 0:_.type)==null?void 0:De.toLowerCase():h||"",Ce=I?"":f||"";function ge(je){x(je),y(void 0),u||(r.setQueryData(a,null),r.removeQueries({queryKey:a,exact:!0}))}function he(je){b(je),x("")}function me(je){g(je==="none"?"":je),b(""),x(""),je!=="none"&&je!==""&&p("")}function oe(je){m(je)}function Ne(je){p(je==="none"?"":je),je!=="none"&&je!==""&&g("")}$&&((qe=$==null?void 0:$.databases)==null?void 0:qe.length)>0,z&&((He=z==null?void 0:z.schemas)==null?void 0:He.length)>0;const fe=S==null?void 0:S.connections.map(je=>({id:je.id,name:je.name,type:je.type})),Me=(Fe=M==null?void 0:M.datamodels)==null?void 0:Fe.map(je=>({id:je.id,name:je.name})),ke=$==null?void 0:$.databases.map(je=>({id:je.database_name,name:je.database_name})),ie=z==null?void 0:z.schemas.map(je=>({id:je.schema_name,name:je.schema_name})),xe=Y==null?void 0:Y.tables.map(je=>({id:je.table_name,name:je.table_name})),Oe=(yt=M==null?void 0:M.datamodels.find(je=>je.id===l))==null?void 0:yt.name,be=_!=null&&_.capabilities?qv({schemaName:Ce,tableName:ce,modelName:Oe,databaseName:d||"",capabilities:_.capabilities}):ce;return{connectionItems:fe,selectedConnectionId:o,selectedConnection:_,isConnectionsLoading:N,isConnectionsError:E,modelItems:Me,selectedDatamodelId:l,selectedDatamodelName:Oe,isModelsLoading:T,isModelsError:P,selectedDatabaseName:d,databaseItems:ke,isDatabasesLoadingOrFetching:V||W,isDatabaseError:L,schemaItems:ie,selectedSchemaName:f,isSchemaLoadingOrFetching:F||A,isSchemaError:H,tableItems:xe,selectedTableName:h,isTableLoadingOrFetching:q||U,isTableError:G,columns:Q,isColumnsLoadingOrFetching:K||te,isColumnsError:le,isNonDbConnection:I,connectionType:O,tableName:ce,formattedTableName:be,schemaName:Ce,refetchConnections:j,refetchModels:k,refetchDatabases:R,refetchSchemas:B,refetchTables:Z,refetchColumns:de,handleConnectionChange:oe,handleDatamodelChange:Ne,handleDatabaseChange:me,handleSchemaChange:he,handleTableChange:ge}}function dv(e){return`${e}-${Rr()}`}function x6(e,t){const n=pi(e.replace(/_/g," "));switch(t){case"SUM":return`Sum of ${n}`;case"COUNT":return`Count of ${n}`;case"DISTINCT":return`Unique ${n}`;case"AVG":return`Average of ${n}`;case"MIN":return`Min of ${n}`;case"MAX":return`Max of ${n}`;default:return n}}function FXe(e,t){const n=pi(e.replace(/_/g," "));switch(t){case"day":return`Date of ${n}`;case"week":return`Week of ${n}`;case"month":return`Month of ${n}`;case"year":return`Year of ${n}`;default:return n}}function FA(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return{tableName:void 0,schemaName:void 0,databaseName:void 0,connectionId:e==null?void 0:e.connectionId,connectionType:e==null?void 0:e.connectionType};const t=e.selectedEntities[0];return{tableName:t==null?void 0:t.name,schemaName:t==null?void 0:t.schema,databaseName:t==null?void 0:t.database,connectionId:e.connectionId,connectionType:e.connectionType}}function Xee(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return!1;const t=e.selectedEntities[0];return!!(t!=null&&t.name)}function Qee(){const e=Ae(N=>N.sqlGen),t=Ae(N=>N.isDevMode),n=Ae(N=>N.card.dataSource),r=Ae(N=>{var E,_;return(_=(E=N.card)==null?void 0:E.queryConfig)==null?void 0:_.metricColumns}),{tableName:s,schemaName:o,databaseName:i}=FA(n),a=Xee(n),l=Ae(N=>N.selectedDatamodelId),{addColumnToMetricColumns:u,addColumnToGroupBy:d,setCardSql:f,setRunSql:h,setSqlGen:m,setIsShowingVisual:p}=cr(),{modelItems:g,selectedDatamodelName:b}=YS(),{selectedConnection:x}=Ci(),y=x==null?void 0:x.capabilities,v=N=>({column_name:N.name,data_type:N.dataType,label:N.label,description:N.description});return{handleDevModeFieldClick:N=>{var _;if(!t)return;const E=v(N);if(t&&a&&s&&y){const k=CT(E,e);m(k);const M=(_=g==null?void 0:g.find(P=>P.id===l))==null?void 0:_.name,T=wT(k,o||"",s,M||"",i||"",y,N.qualifiedEntityName);T&&(f(T),h(!0))}else if(!t){if(yx(E.data_type))if(r&&r.length>0){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type};d(k)}else{const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"COUNT"),type:E.data_type,aggregate:"COUNT"};u(k)}if(Ki(E.data_type)){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type,label:FXe(E.column_name,"month"),granularity:"month"};d(k)}if(Gi(E.data_type)){const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"SUM"),type:E.data_type,aggregate:"SUM"};u(k)}}},handleShowSample:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});p(!1);const _=(x==null?void 0:x.type)==="MSSQL"?`SELECT top 10 * FROM ${N}`:`SELECT * FROM ${N} LIMIT 10`;f(_),h(!0)},handleShowCount:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});f(`SELECT COUNT(*) as count FROM ${N}`),h(!0)},isNumberField:N=>Gi(N.dataType)}}function $Xe(e){const t=e.qualifiedFieldName,r=(e.qualifiedEntityName||e.qualifiedFieldName.split(".").slice(0,-1).join(".")).split(".").map(o=>ab(o)).join("."),s=ab(e.name);return{qualifiedColumnName:t,qualifiedTableName:r,formattedColumnName:s}}function Jee(){const e=J(a=>a.dashboard.filters)||[],t=J(a=>a.selectedSheetId),n=J(a=>a.actions.addFilter),r=J(a=>a.actions.removeFilter),{removeFilterValues:s}=Wt(),{selectedConnection:o}=Ci();function i(a,l="sheet"){const{qualifiedColumnName:u,qualifiedTableName:d,formattedColumnName:f}=$Xe(a);let h;if(l==="sheet"&&t?h=oke(e,u,d,t):h=e==null?void 0:e.find(m=>wm(m.column)===wm(u)),h)s(h.id),r(h.id);else{const m=Rr(),p=l==="sheet"&&t?[t]:void 0;return n({id:m,location:l,column:u,title:a.label||a.name,dataType:a.dataType,qualifiedTableName:d,connectionId:(o==null?void 0:o.id)||"",operation:"in",applyToSheetIds:p,sql:wK(a.dataType,d,f)}),m}}return{assignFilter:i}}function LXe({column:e}){const[t,n]=C.useState(!1),r=Ae(y=>y.card.dataSource),{tableName:s,schemaName:o,databaseName:i}=FA(r),a=Ae(y=>y.selectedDatamodelId),l=Ae(y=>y.sqlGen),{modelItems:u,selectedConnection:d}=YS(),f=d==null?void 0:d.capabilities,h=Ae(y=>y.actions.setSqlGen),m=Ae(y=>y.actions.setCardSql),p=Ae(y=>y.actions.setRunSql),g=Xee(r);function b(y,v){var E,_;if(!g||!s){console.warn("Cannot generate SQL: missing table metadata");return}const w=CT(y,l,v),j=(E=u==null?void 0:u.find(k=>k.id===a))==null?void 0:E.name;if(h(w),!f){console.warn("Cannot generate SQL: missing connection capabilities");return}const S=(_=y.qualifiedFieldName)==null?void 0:_.split(".").slice(0,-1).join("."),N=wT(w,o||"",s,j||"",i||"",f,S);N&&(m(N),p(!0)),n(!1)}function x(){return c.jsxs("ul",{className:"text-xs",children:[c.jsx("li",{onClick:()=>b(e,"COUNT"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Count"}),c.jsx("li",{onClick:()=>b(e,"AVG"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Avg"}),c.jsx("li",{onClick:()=>b(e,"SUM"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Sum"}),c.jsx("li",{onClick:()=>b(e,"MAX"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Max"}),c.jsx("li",{onClick:()=>b(e,"MIN"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Min"})]})}return g?c.jsxs(Wm,{openDelay:0,open:t,onOpenChange:n,children:[c.jsx(qm,{asChild:!0,children:c.jsx(Pm,{className:"invisible size-3.5 cursor-pointer text-foreground/40 group-hover/container:visible"})}),c.jsx(Mf,{align:"center",className:"w-20 rounded-md p-0 shadow-none",children:x()})]}):null}function zXe({field:e,fieldState:t}){return c.jsxs("div",{className:"w-64 bg-background p-0",children:[c.jsxs("div",{className:"mb-2 flex items-start justify-between gap-2",children:[c.jsx("h3",{className:"text-sm font-medium text-foreground",children:e.label||e.name}),c.jsx("span",{className:"rounded bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground",children:e.dataType})]}),e.description&&c.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:e.description}),t&&t.tooltip&&c.jsx("div",{className:"mb-2 rounded bg-muted/50 p-2",children:c.jsx("p",{className:"text-xs text-muted-foreground",children:t.tooltip})}),c.jsx("div",{className:"overflow-x-auto border-t border-border pb-2 pt-2",children:c.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:e.name})})]})}function y6({field:e,context:t="editor",fieldState:n,onFieldSelect:r,inlineFilters:s,actions:o}){const i=Ae(K=>K.isDevMode),a=t==="filter"||t==="inline-filter",l=i||a||(n==null?void 0:n.state)==="unreachable"&&!a,u=J(K=>K.dashboard.filters),d=J(K=>K.selectedSheetId),f=J(K=>K.actions.removeFilter),{removeFilterValues:h}=Wt(),{assignFilter:m}=Jee(),p=t==="filter"?oc(u,d):u,g=t==="filter"?p==null?void 0:p.find(K=>{if(K.title===e.name)return!0;const te=wm(K.column||""),le=wm(e.name);return te.endsWith(`.${le}`)||te===le}):void 0,b=!!g,x=t==="inline-filter"&&(s==null?void 0:s.some(K=>K.column===e.qualifiedFieldName||K.column===e.name)),y=b||x,v=g&&a?u==null?void 0:u.find(K=>K.id===g.id):void 0,w=v&&(v.applyToSheetIds&&v.applyToSheetIds.length>1||v.excludeSheetIds&&v.excludeSheetIds.length>0||!v.applyToSheetIds&&!v.excludeSheetIds&&!v.sheetId);a&&y&&console.log("[SourceField Debug]",{fieldName:e.name,hasActiveFilter:y,activeFilterOnSheet:g?{id:g.id,title:g.title,column:g.column,applyToSheetIds:g.applyToSheetIds,excludeSheetIds:g.excludeSheetIds}:null,activeFilterForField:v?{id:v.id,title:v.title,column:v.column,applyToSheetIds:v.applyToSheetIds,excludeSheetIds:v.excludeSheetIds}:null,isMultiSheetFilter:w,selectedSheetId:d});const[j,S]=C.useState(!1),[N,E]=C.useState(null),{attributes:_,listeners:k,setNodeRef:M,transform:T,transition:P,isDragging:O}=Ey({id:e.id,disabled:l}),[I,$]=C.useState(!1),V=Ae(K=>K.card),{handleFieldClick:W}=Zee(V),{handleDevModeFieldClick:L,isNumberField:R}=Qee(),z=()=>{v&&(console.log("[SourceField] Removing multi-sheet filter:",v.id),h(v.id),f(v.id)),E(null),S(!1)},F=()=>{if(t==="inline-filter"&&r){r(e);return}t==="filter"?y&&w?(E(e),S(!0)):m(e,"sheet"):i?L(e):W(e)},A={column_name:e.name,data_type:e.dataType,label:e.label,description:e.description},H={transform:yi.Transform.toString(T),transition:P},B=()=>{if(!n||a)return{};const te={base:{hoverBorderColor:"hover:border-blue-500/40",hoverBgColor:"hover:bg-blue-50/50 dark:hover:bg-blue-950/20"},draggable:{hoverBorderColor:"hover:border-green-500/40",hoverBgColor:"hover:bg-green-50/30 dark:hover:bg-green-950/20"},indirect:{hoverBorderColor:"hover:border-yellow-500/40",hoverBgColor:"hover:bg-yellow-50/30 dark:hover:bg-yellow-950/20"},unreachable:{borderColor:"border-gray-300/40 dark:border-gray-700/40",bgColor:"bg-gray-50/30 dark:bg-gray-900/20",hoverBgColor:"hover:bg-gray-100/30 dark:hover:bg-gray-800/20",opacity:"opacity-50",cursor:"cursor-not-allowed"}}[n.state]||{};return n.isSelected&&{base:{borderColor:"border-blue-300/30 dark:border-blue-700/30",bgColor:"bg-blue-50/20 dark:bg-blue-950/10",...te},draggable:{borderColor:"border-green-300/30 dark:border-green-700/30",bgColor:"bg-green-50/20 dark:bg-green-950/10",...te},indirect:{borderColor:"border-yellow-300/30 dark:border-yellow-700/30",bgColor:"bg-yellow-50/20 dark:bg-yellow-950/10",...te}}[n.state]||te};function Y(K){return K==="domain"?{label:"Domain",Icon:Sx,className:"border-border bg-muted text-foreground"}:K==="dashboard"?{label:"Dashboard",Icon:qT,className:"border-border bg-muted/70 text-foreground"}:{label:"Card",Icon:S8,className:"border-border bg-muted/40 text-foreground"}}const q=B(),U=e.fieldScope,G=U?Y(U):null,Z=Pw(e),Q=Z&&sc(e);return c.jsxs("div",{ref:M,style:H,...l?{}:_,...l?{}:k,className:X("group/container max-w-[265px] overflow-hidden rounded-lg transition-all",O&&"scale-95 opacity-50",!O&&"border",q.borderColor||"border-transparent",q.bgColor||"",q.hoverBorderColor,q.hoverBgColor||"hover:bg-muted",q.opacity,q.cursor,b&&"border-accent-foreground/20 bg-accent",x&&"border-primary/20 bg-primary/10",{"cursor-pointer":i||a,"cursor-grab active:cursor-grabbing":!l&&!i&&!a}),title:n==null?void 0:n.tooltip,children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-3 p-2",onClick:F,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(e.dataType),Z&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",Q?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx(Ln,{children:c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:`block text-sm text-foreground/80 hover:text-foreground dark:text-muted-foreground ${I?"whitespace-normal break-words":"truncate"}`,children:e.label||e.name})})}),c.jsx(dn,{side:"bottom",align:"start",className:"ml-5 max-w-xs px-4 pb-2 pt-4",children:c.jsx(zXe,{field:e,fieldState:n})})]})}),t==="editor"&&G&&c.jsx("span",{title:G.label,className:X("shrink-0 rounded-full border p-1",G.className),children:c.jsx(G.Icon,{className:"h-3.5 w-3.5"})}),i&&!a&&R(e)&&c.jsx("div",{onClick:K=>K.stopPropagation(),children:c.jsx(LXe,{column:A})}),o&&c.jsx("div",{className:"ml-auto flex items-center",onClick:K=>K.stopPropagation(),onPointerDown:K=>K.stopPropagation(),children:o})]}),I&&c.jsx("div",{className:"text-muted-foreground-700 px-2 pb-3 text-sm",children:c.jsx(Uo,{className:"",children:c.jsxs(Qi,{className:"space-y-2 p-3",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(j8,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.label||e.name})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(iie,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.name})]}),c.jsx(Ve,{variant:"outline",className:"mt-2 text-xs",children:e.dataType})]})})}),c.jsx(Um,{open:j,onOpenChange:S,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Remove Filter from Multiple Sheets?"}),c.jsx(Ef,{children:"This filter is currently applied to multiple sheets. Removing it will affect all sheets where it's applied."})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{children:"Cancel"}),c.jsx(_f,{onClick:z,children:"Remove Filter"})]})]})})]})}var da="Accordion",BXe=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[$A,VXe,HXe]=Ex(da),[GS]=Lr(da,[HXe,gW]),LA=gW(),ete=C.forwardRef((e,t)=>{const{type:n,...r}=e,s=r,o=r;return c.jsx($A.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?c.jsx(YXe,{...o,ref:t}):c.jsx(qXe,{...s,ref:t})})});ete.displayName=da;var[tte,UXe]=GS(da),[nte,WXe]=GS(da,{collapsible:!1}),qXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},collapsible:o=!1,...i}=e,[a,l]=ss({prop:n,defaultProp:r??"",onChange:s,caller:da});return c.jsx(tte,{scope:e.__scopeAccordion,value:C.useMemo(()=>a?[a]:[],[a]),onItemOpen:l,onItemClose:C.useCallback(()=>o&&l(""),[o,l]),children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:o,children:c.jsx(rte,{...i,ref:t})})})}),YXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},...o}=e,[i,a]=ss({prop:n,defaultProp:r??[],onChange:s,caller:da}),l=C.useCallback(d=>a((f=[])=>[...f,d]),[a]),u=C.useCallback(d=>a((f=[])=>f.filter(h=>h!==d)),[a]);return c.jsx(tte,{scope:e.__scopeAccordion,value:i,onItemOpen:l,onItemClose:u,children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:!0,children:c.jsx(rte,{...o,ref:t})})})}),[GXe,KS]=GS(da),rte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:s,orientation:o="vertical",...i}=e,a=C.useRef(null),l=ut(a,t),u=VXe(n),f=bu(s)==="ltr",h=Ie(e.onKeyDown,m=>{var E;if(!BXe.includes(m.key))return;const p=m.target,g=u().filter(_=>{var k;return!((k=_.ref.current)!=null&&k.disabled)}),b=g.findIndex(_=>_.ref.current===p),x=g.length;if(b===-1)return;m.preventDefault();let y=b;const v=0,w=x-1,j=()=>{y=b+1,y>w&&(y=v)},S=()=>{y=b-1,y<v&&(y=w)};switch(m.key){case"Home":y=v;break;case"End":y=w;break;case"ArrowRight":o==="horizontal"&&(f?j():S());break;case"ArrowDown":o==="vertical"&&j();break;case"ArrowLeft":o==="horizontal"&&(f?S():j());break;case"ArrowUp":o==="vertical"&&S();break}const N=y%x;(E=g[N].ref.current)==null||E.focus()});return c.jsx(GXe,{scope:n,disabled:r,direction:s,orientation:o,children:c.jsx($A.Slot,{scope:n,children:c.jsx(Ze.div,{...i,"data-orientation":o,ref:l,onKeyDown:r?void 0:h})})})}),E1="AccordionItem",[KXe,zA]=GS(E1),ste=C.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...s}=e,o=KS(E1,n),i=UXe(E1,n),a=LA(n),l=xr(),u=r&&i.value.includes(r)||!1,d=o.disabled||e.disabled;return c.jsx(KXe,{scope:n,open:u,disabled:d,triggerId:l,children:c.jsx(yW,{"data-orientation":o.orientation,"data-state":ute(u),...a,...s,ref:t,disabled:d,open:u,onOpenChange:f=>{f?i.onItemOpen(r):i.onItemClose(r)}})})});ste.displayName=E1;var ote="AccordionHeader",ite=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(ote,n);return c.jsx(Ze.h3,{"data-orientation":s.orientation,"data-state":ute(o.open),"data-disabled":o.disabled?"":void 0,...r,ref:t})});ite.displayName=ote;var rT="AccordionTrigger",ate=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(rT,n),i=WXe(rT,n),a=LA(n);return c.jsx($A.ItemSlot,{scope:n,children:c.jsx(aSe,{"aria-disabled":o.open&&!i.collapsible||void 0,"data-orientation":s.orientation,id:o.triggerId,...a,...r,ref:t})})});ate.displayName=rT;var lte="AccordionContent",cte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(lte,n),i=LA(n);return c.jsx(lSe,{role:"region","aria-labelledby":o.triggerId,"data-orientation":s.orientation,...i,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});cte.displayName=lte;function ute(e){return e?"open":"closed"}var ZXe=ete,XXe=ste,QXe=ite,dte=ate,fte=cte;const BA=ZXe,rx=D.forwardRef(({className:e,...t},n)=>c.jsx(XXe,{ref:n,className:X("border-b",e),...t}));rx.displayName="AccordionItem";const sx=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(QXe,{className:"flex",children:c.jsxs(dte,{ref:r,className:X("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,c.jsx(kr,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));sx.displayName=dte.displayName;const ox=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(fte,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:c.jsx("div",{className:X("pb-4 pt-0",e),children:t})}));ox.displayName=fte.displayName;let hte=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");const ix=[{id:"sum",label:"Sum",symbol:"+",description:"Add two metrics together",template:()=>"({field_0} + {field_1})",requiresTwoInputs:!0},{id:"difference",label:"Difference",symbol:"−",description:"Subtract one metric from another",template:()=>"({field_0} - {field_1})",requiresTwoInputs:!0},{id:"product",label:"Product (Multiplication)",symbol:"×",description:"Multiply two metrics",template:()=>"({field_0} * {field_1})",requiresTwoInputs:!0},{id:"ratio",label:"Ratio",symbol:"÷",description:"Divide one metric by another",template:()=>"({field_0} / NULLIF({field_1}, 0))",requiresTwoInputs:!0},{id:"change",label:"Change",symbol:"Δ",description:"Calculate percentage change from A to B",template:()=>"(({field_1} - {field_0}) / NULLIF({field_0}, 0))",requiresTwoInputs:!0},{id:"percentage",label:"Percentage",symbol:"%",description:"Calculate (A / B) × 100",template:()=>"(({field_0} / NULLIF({field_1}, 0)) * 100)",requiresTwoInputs:!0},{id:"scale",label:"Scale (Multiply by Factor)",symbol:"×n",description:"Multiply a metric by a constant factor",template:()=>"({field_0} * {constant})",requiresTwoInputs:!1},{id:"custom",label:"Custom Expression",symbol:"{}",description:"Drag fields to create custom expression with tokens",requiresTwoInputs:!1,allowsCustomExpression:!0}],fl=e=>e.trim().toLowerCase().replace(/\s+/g,"_"),Nl=e=>e!=null&&e.startsWith("card-source-")?e.replace("card-source-",""):e;function v6(e,t,n,r,s,o,i,a,l,u){const d=ix.find(x=>x.id===t);if(!d)throw new Error(`Unknown operation: ${t}`);let f,h=[],m;if(t==="custom"){if(!(a!=null&&a.trim()))throw new Error("Custom expression is required");f=a.trim(),h=u||[]}else if(t==="scale"){if(!n)throw new Error("Metric A is required for scale operation");if(l===void 0||Number.isNaN(l))throw new Error("Constant factor is required for scale operation");f=d.template().replace("{constant}",String(l)),h=[n],m=l}else{if(!n||!r)throw new Error("Metrics A and B are required for standard operations");f=d.template(),h=[n,r]}const p={operation:t,inputFields:h,...m!==void 0&&{constant:m}},g=fl(e);return{id:i||`calc_${hte(10)}`,name:g,label:e,alias:g,qualifiedFieldName:g,dataType:"number",role:"metric",aggregate:"SUM",expression:f,calculatedFormula:p,entityId:o,entityName:cu,entityType:"table",description:`Calculated field: ${e}`}}function JXe(e){var r,s;const t=ix.find(o=>o.id===e.operation);if(!t)return"Unknown operation";if(e.operation==="custom")return"Custom expression";if(e.operation==="scale"){const o=((r=e.inputFields[0])==null?void 0:r.label)||((s=e.inputFields[0])==null?void 0:s.name)||"A",i=e.constant??1;return`${o} × ${i}`}return e.inputFields.map(o=>o.label||o.name).join(` ${t.symbol} `)}function eQe(e,t,n,r,s,o){const i=fl(e);return{id:o||`calc_dim_${hte(10)}`,name:i,label:e.trim(),alias:i,qualifiedFieldName:i,dataType:r,role:"groupby",expression:t.trim(),calculatedFormula:{operation:"custom",inputFields:n.map(a=>a.role==="metric"?{...a,role:"metric"}:{...a,role:"groupby"})},entityId:s,entityName:cu,entityType:"table",description:`Calculated field: ${e.trim()}`}}function tQe(){const{domainCalculatedFields:e}=PA(),t=C.useMemo(()=>e.filter(r=>r.role==="metric"),[e]),n=C.useMemo(()=>e.filter(r=>r.role==="groupby"),[e]);return{fields:e,metrics:t,dimensions:n}}function nQe({value:e,onChange:t,disabled:n,options:r=["dimension","metric"]}){const s=r.length>0?r:["dimension","metric"],o=["dimension","metric"].filter(l=>s.includes(l)),i=n||o.length<=1,a=o.includes(e)?e:o[0];return c.jsx(Os,{value:a,onValueChange:l=>t(l),className:"w-full",children:c.jsx(ys,{className:"grid h-9 w-full",style:{gridTemplateColumns:`repeat(${o.length}, minmax(0, 1fr))`},children:o.map(l=>c.jsx(nn,{value:l,disabled:i,className:"text-xs",children:l==="metric"?"Calculated Metric":"Calculated Dimension"},l))})})}function rQe({groups:e,searchTerm:t,onSearchTermChange:n,onFieldClick:r,selectedFieldIds:s,disabled:o}){const i=new Set(s||[]),a=e.length>0||t.length>0,l=e.map(f=>f.id),u=(f,h)=>{if(!h)return f;const m=f.toLowerCase(),p=h.toLowerCase();return m.startsWith(`${p}.`)?f.slice(h.length+1):f},d=(f,h)=>{const p=(f.name||f.baseLabel||f.label||f.tokenLabel||"").trim(),g=[h,f.qualifiedEntityName,f.entityName].filter(Boolean);for(const b of g){const x=u(p,b);if(x!==p)return x}return p.includes(".")&&p.split(".").pop()||p};return c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-3 border-r border-border pr-4",children:[a&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{value:t,onChange:f=>n(f.target.value),placeholder:"Search fields...",className:"pl-10 pr-10"}),t&&c.jsx("button",{type:"button",onClick:()=>n(""),className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",children:c.jsx(St,{className:"size-3.5"})})]}),c.jsx(tl,{className:"min-h-0 flex-1",children:e.length===0?c.jsx("div",{className:"rounded-md border border-dashed border-muted px-3 py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."}):c.jsx(BA,{type:"multiple",defaultValue:l,className:"space-y-2",children:e.map(f=>c.jsxs(rx,{value:f.id,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:f.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:f.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:f.fields.map(h=>{const m=i.has(h.id),p=!h.isCompatible||o,g=h.isCalculated&&h.role==="metric",b=d(h,f.label);return c.jsxs("button",{type:"button",onClick:()=>h.isCompatible&&!o&&r(h),className:X("group/container flex w-full items-center gap-3 rounded-lg border border-transparent px-2 py-2 text-left transition-all",p?"cursor-not-allowed opacity-50":"hover:bg-muted",m&&"border-border bg-muted"),disabled:p,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(h.dataType),h.isCalculated&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",g?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:X("block truncate text-sm text-foreground/80",!p&&"group-hover/container:text-foreground"),children:b})}),m&&c.jsx(Ve,{variant:"secondary",className:"shrink-0 text-[10px]",children:"Selected"})]},h.id)})})})]},f.id))})})]})}function sQe({value:e,onChange:t,allowCustom:n,disabled:r}){const s=ix.filter(l=>n?!0:l.id!=="custom"),i=!s.some(l=>l.id==="custom")&&e==="custom"?[...s,ix.find(l=>l.id==="custom")]:s,a=i.find(l=>l.id===e);return c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ot,{value:e,onValueChange:l=>t(l),disabled:r,children:[c.jsx(nt,{children:c.jsx(at,{})}),c.jsx(rt,{children:c.jsxs(WD,{children:[c.jsx(BC,{children:"OPERATIONS"}),i.map(l=>c.jsx(ve,{value:l.id,children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"font-mono text-sm",children:l.symbol}),c.jsx("span",{children:l.label})]})},l.id))]})})]}),a&&c.jsx("p",{className:"text-xs text-muted-foreground",children:a.description})]})}const oQe={COUNT:"Count",DISTINCT:"Count Distinct",SUM:"Sum",AVG:"Average",MIN:"Minimum",MAX:"Maximum",MEDIAN:"Median"};function iQe({value:e,onChange:t,disabled:n,fieldDataType:r,allowMedian:s}){const i=(r?yr(r):"number")==="number",a=["SUM","AVG","COUNT","DISTINCT","MIN","MAX"],l=i?s?[...a,"MEDIAN"]:a:["COUNT","DISTINCT"];return c.jsxs(ot,{value:e,onValueChange:u=>t(u),disabled:n,children:[c.jsx(nt,{className:"h-9",children:c.jsx(at,{})}),c.jsx(rt,{children:l.map(u=>c.jsx(ve,{value:u,children:oQe[u]},u))})]})}const aQe=e=>{const n=(e.name||e.baseLabel||e.label||e.tokenLabel||"").trim();return n.includes(".")&&n.split(".").pop()||n};function w6({label:e,input:t,availableFields:n,excludeFieldIds:r,onFieldSelect:s,onAggregateChange:o,onRemove:i,onActivate:a,allowMedian:l,disabled:u}){const d=(t==null?void 0:t.field.id)||"",f=r!=null&&r.length?n.filter(h=>!r.includes(h.id)):n;return c.jsxs("div",{className:X("flex items-center gap-2 rounded-md border border-border px-2 py-2",a&&!u&&"cursor-pointer",u&&"opacity-60"),onClick:u?void 0:a,children:[c.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded bg-muted font-mono text-xs font-semibold",children:e}),c.jsxs("div",{className:"flex flex-1 gap-2",children:[c.jsxs(ot,{value:d,onValueChange:h=>{const m=f.find(p=>p.id===h);m&&s(m)},disabled:u,children:[c.jsx(nt,{className:"h-9 flex-1",children:c.jsx(at,{placeholder:"Select field"})}),c.jsx(rt,{children:f.map(h=>c.jsx(ve,{value:h.id,children:aQe(h)},h.id))})]}),c.jsx("div",{className:"w-36",children:c.jsx(iQe,{value:(t==null?void 0:t.aggregate)||"SUM",onChange:o,disabled:u||(t==null?void 0:t.isCalculatedField),fieldDataType:t==null?void 0:t.field.dataType,allowMedian:l})})]}),t&&c.jsx(se,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:h=>{h.stopPropagation(),i()},disabled:u,children:c.jsx(St,{className:"h-3.5 w-3.5"})})]})}const C6=C.forwardRef(function({value:t,onChange:n,onGenerate:r,showGenerate:s,disabled:o},i){return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"text-sm font-medium",children:"Expression"}),s&&c.jsxs(se,{type:"button",size:"sm",variant:"outline",onClick:r,disabled:o,className:"h-7 gap-2 text-xs",children:[c.jsx(q1,{className:"h-3.5 w-3.5"}),"Generate with AI"]})]}),c.jsx(Yb,{ref:i,value:t,onChange:a=>n(a.target.value),disabled:o,placeholder:"CASE WHEN {Amount} > 100 THEN 'Large' ELSE 'Small' END",className:"min-h-[140px] font-mono text-xs"})]})});function lQe({result:e}){const t=e.errors.length>0;return c.jsxs("div",{className:X("rounded-md border px-3 py-2 text-xs",t?"border-destructive/40 bg-destructive/10 text-destructive":"border-emerald-500/30 bg-emerald-500/10 text-emerald-700"),children:[c.jsx("div",{className:"font-medium",children:t?"Validation Failed":"Validation Passed"}),e.tokens.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Tokens Found"}),e.tokens.map(n=>c.jsx("div",{children:n.field?`{${n.token}} -> ${n.field.qualifiedFieldName||n.field.name}`:`{${n.token}}`},n.token))]}),e.errors.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Errors"}),e.errors.map((n,r)=>c.jsxs("div",{children:[n.message,n.suggestion?` (${n.suggestion})`:""]},`${n.code}-${r}`))]}),e.warnings.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Warnings"}),e.warnings.map((n,r)=>c.jsxs("div",{children:[n.message," ",n.suggestion]},`${n.code}-${r}`))]}),e.inferredDataType&&c.jsxs("div",{className:"mt-2 text-[11px] text-muted-foreground",children:["Inferred Output Type: ",e.inferredDataType]})]})}function S6({onValidate:e,isValidating:t,validationResult:n,fallbackResult:r,error:s,showFallback:o,disabled:i}){return c.jsxs("div",{className:"space-y-2",children:[c.jsx(se,{type:"button",variant:"outline",onClick:e,disabled:t||i,className:"h-8",children:t?"Validating...":"Validate Expression"}),s&&c.jsx("div",{className:"text-xs text-destructive",children:s}),(n||o)&&c.jsx(lQe,{result:n||r})]})}function cQe({scope:e,onChange:t,showDashboardScope:n,showDomainScope:r,error:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 border-t border-border pt-4",children:[c.jsx(ae,{children:"Availability"}),c.jsxs(Qs,{value:e,onValueChange:i=>t(i),className:"space-y-2",disabled:o,children:[c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-card",value:"card"}),c.jsx(ae,{htmlFor:"scope-card",className:"text-sm font-normal",children:"This card only"})]}),n&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-dashboard",value:"dashboard"}),c.jsx(ae,{htmlFor:"scope-dashboard",className:"text-sm font-normal",children:"All cards in this dashboard"})]}),r&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-domain",value:"domain"}),c.jsx(ae,{htmlFor:"scope-domain",className:"text-sm font-normal",children:"Save to domain"})]})]}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]})}function uQe({description:e,tags:t,onDescriptionChange:n,onTagsChange:r,descriptionError:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 rounded-md border border-muted bg-muted/30 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-description",children:"Description"}),c.jsx(vu,{id:"domain-description",value:e,onChange:i=>n(i.target.value),placeholder:"Explain what this metric represents",className:X("text-sm",s&&"border-red-500"),rows:3,disabled:o}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-tags",children:"Tags (optional)"}),c.jsx(mn,{id:"domain-tags",value:t,onChange:i=>r(i.target.value),placeholder:"profitability, kpi",disabled:o})]}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"This field will be visible to all dashboards using this domain."})]})}function dQe({endpoint:e,availableFields:t,fieldType:n,dialect:r}){const{authToken:s}=Xe(),[o,i]=C.useState(!1),[a,l]=C.useState(null);return{generateExpression:C.useCallback(async d=>{var f;if(!e)return l("AI generation is not available"),null;if(!d.trim())return l("Describe what you want to calculate"),null;i(!0),l(null);try{const h={type:"calculated-field-expression",context:{userQuery:d,availableFields:t.map(p=>({name:p.tokenLabel,dataType:p.dataType})),fieldType:n},options:{dialect:r}},m=await eo(e,(s==null?void 0:s.accessToken)||"",h);if(!m.success||!((f=m.result)!=null&&f.generated))throw new Error(m.error||"No expression generated");return m.result.generated}catch(h){return l((h==null?void 0:h.error)||(h==null?void 0:h.message)||"AI generation failed"),null}finally{i(!1)}},[e,t,n,r,s==null?void 0:s.accessToken]),isGenerating:o,error:a}}function fQe({open:e,onOpenChange:t,availableFields:n,fieldType:r,onExpressionGenerated:s,endpoint:o,dialect:i}){const[a,l]=C.useState(""),[u,d]=C.useState(""),[f,h]=C.useState(""),{generateExpression:m,isGenerating:p,error:g}=dQe({endpoint:o,availableFields:n,fieldType:r,dialect:i}),b=C.useMemo(()=>{const S=f.trim().toLowerCase();return S?n.filter(N=>[N.label,N.baseLabel,N.name,N.tokenLabel,N.entityName,N.qualifiedEntityName].filter(Boolean).join(" ").toLowerCase().includes(S)):n},[n,f]),x=S=>{const E=(S.name||S.baseLabel||S.label||S.tokenLabel||"").trim();return E.includes(".")&&E.split(".").pop()||E},y=S=>{const N=S.entityName||S.qualifiedEntityName||"";return N?N==="SEMAPHOR_CALCULATED_FIELD"?"Calculated":N.includes(".")&&N.split(".").pop()||N:"—"},v=async()=>{const S=await m(a.trim());S&&d(S)},w=()=>{u.trim()&&(s(u.trim()),l(""),d(""),t(!1))},j=()=>{l(""),d(""),h(""),t(!1)};return c.jsx(Gr,{open:e,onOpenChange:S=>{S?t(!0):j()},children:c.jsxs(zr,{className:"max-w-3xl",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:"Generate Expression with AI"}),c.jsx(is,{children:"Describe what you want to calculate and we will draft a SQL expression."})]}),c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"ai-prompt",children:"Describe what you want to calculate"}),c.jsx(Yb,{id:"ai-prompt",value:a,onChange:S=>l(S.target.value),placeholder:"Create a bucket that categorizes orders as 'Large' when amount is greater than 1000",rows:2})]}),c.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs text-muted-foreground",children:[c.jsx("span",{children:"Be specific about conditions, buckets, or math you want to apply."}),c.jsx(se,{size:"sm",onClick:v,disabled:p||!a.trim(),children:p?"Generating...":u?"Regenerate":"Generate"})]}),g&&c.jsx("p",{className:"text-xs text-destructive",children:g})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Available fields"}),c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),c.jsx(mn,{value:f,onChange:S=>h(S.target.value),placeholder:"Search fields...",className:"pl-9"})]}),c.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:c.jsx("div",{className:"max-h-48 overflow-y-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"sticky top-0 z-10 border-b bg-muted",children:c.jsxs("tr",{children:[c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Field"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Type"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Category"})]})}),c.jsx("tbody",{className:"divide-y",children:b.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:3,className:"py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."})}):b.map(S=>c.jsxs("tr",{className:"hover:bg-muted/30",children:[c.jsx("td",{className:"px-3 py-1.5 font-mono text-xs",children:x(S)}),c.jsx("td",{className:"px-3 py-1.5",children:c.jsx(Ve,{variant:"secondary",className:"px-1.5 py-0 text-[11px]",children:S.dataType})}),c.jsx("td",{className:"px-3 py-1.5 text-sm text-muted-foreground",children:y(S)})]},S.id))})]})})})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Generated expression"}),c.jsx(Yb,{value:u,readOnly:!0,rows:2,className:"font-mono text-sm"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Review the generated expression before using it."})]})]}),c.jsxs(os,{className:"gap-2",children:[c.jsx(se,{variant:"ghost",onClick:j,children:"Cancel"}),c.jsx(se,{onClick:w,disabled:!u.trim(),children:"Use Expression"})]})]})})}const hQe=/\{([^}]+)\}/g;function ZS(e){return e.trim().toLowerCase()}function _1(e){return Array.from(e.matchAll(hQe)).map(t=>t[1]).filter(Boolean)}function mQe(e){const t=new Set,n=[];return e.forEach(r=>{const s=ZS(r);t.has(s)||(t.add(s),n.push(r))}),n}function VA(e){const t=new Map,n=(r,s)=>{const o=ZS(r),i=t.get(o)||[];i.some(a=>a.id===s.id)||t.set(o,[...i,s])};return e.forEach(r=>{n(r.tokenLabel,r),r.name&&r.name!==r.tokenLabel&&n(r.name,r),r.baseLabel&&r.baseLabel!==r.tokenLabel&&n(r.baseLabel,r)}),t}function tg(e,t){const n=_1(e),r=mQe(n),s=VA(t),o=r.map(a=>{const l=s.get(ZS(a))||[];return l.length===1?l[0]:null}),i=r.filter((a,l)=>!o[l]);return{orderedTokens:r,orderedFields:o,unresolvedTokens:i}}function j6(e,t){return t.reduce((n,r,s)=>{const o=new RegExp(`\\{${pQe(r)}\\}`,"gi");return n.replace(o,`{field_${s}}`)},e)}function pQe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const gQe=e=>e.entityName===Qh||e.entityName===cu?"Calculated Fields":e.qualifiedEntityName?cb(e.entityName||e.qualifiedEntityName):cb(e.entityName||"Other"),bQe=e=>yr(e.dataType||"")==="number";function xQe(e,t,n){const r=new Set((n||[]).map(s=>Nl(s)));return e.filter(s=>{const o=Nl(s.id);return o&&r.has(o)?!1:t==="dimension"?s.role!=="metric":!0})}function yQe(e){const t=new Map,n=new Map;return e.forEach(r=>{let o=r.entityName&&r.entityName!==cu?`${r.entityName}.${r.name}`:r.name;const i=o.toLowerCase(),a=n.get(i)||0;a>0&&(o=`${o} ${a+1}`),n.set(i,a+1),t.set(r.id,o)}),t}function vQe(e,t,n,r){if(t!=="metric")return e.map(o=>({...o,isCompatible:!0}));if(!n)return e.map(o=>({...o,isCompatible:!0}));const s=n==="COUNT"||n==="DISTINCT";return e.map(o=>{const i=s||bQe(o);return{...o,isCompatible:i}}).filter(o=>r)}function wQe(e,t){if(!t)return e;const n=t.toLowerCase();return e.filter(r=>r.name.toLowerCase().includes(n)||r.baseLabel.toLowerCase().includes(n)||r.tokenLabel.toLowerCase().includes(n)||r.dataType.toLowerCase().includes(n)||(r.qualifiedEntityName||r.entityName||"").toLowerCase().includes(n))}function CQe(e){const t=new Map;return e.forEach(n=>{var s;const r=n.qualifiedEntityName||n.entityName||"Other";t.has(r)||t.set(r,{id:r,label:gQe(n),fields:[]}),(s=t.get(r))==null||s.fields.push(n)}),Array.from(t.values())}function SQe({fields:e,mode:t,searchTerm:n,excludeFieldIds:r,selectedAggregate:s,showIncompatible:o}){const i=C.useMemo(()=>xQe(e,t,r),[e,t,r]),a=C.useMemo(()=>yQe(i),[i]),l=C.useMemo(()=>i.map(m=>{const p=m.label||m.name,g=m.role==="metric"&&sc(m)||m.role==="groupby"&&Ux(m);return{...m,baseLabel:p,tokenLabel:a.get(m.id)||p,isCalculated:g,isCompatible:!0}}),[i,a]),u=C.useMemo(()=>VA(l),[l]),d=C.useMemo(()=>vQe(l,t,s,o),[l,t,s,o]),f=C.useMemo(()=>wQe(d,n),[d,n]),h=C.useMemo(()=>CQe(f),[f]);return{allFields:l,filteredFields:f,groups:h,tokenCandidates:u}}const jQe=e=>{let t=0;for(const n of e)if(n==="("&&(t+=1),n===")"&&(t-=1),t<0)return!1;return t===0},NQe=(e,t)=>{const n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return 0;if(!n.length)return r.length;if(!r.length)return n.length;const s=[];for(let o=0;o<=r.length;o+=1)s[o]=[o];for(let o=0;o<=n.length;o+=1)s[0][o]=o;for(let o=1;o<=r.length;o+=1)for(let i=1;i<=n.length;i+=1)r.charAt(o-1)===n.charAt(i-1)?s[o][i]=s[o-1][i-1]:s[o][i]=Math.min(s[o-1][i-1]+1,s[o][i-1]+1,s[o-1][i]+1);return s[r.length][n.length]},kQe=(e,t)=>t.map(r=>({candidate:r,distance:NQe(e,r)})).filter(r=>r.distance>0&&r.distance<=3).sort((r,s)=>r.distance-s.distance).slice(0,3).map(r=>r.candidate),EQe=(e,t)=>{var r;const n=e.trim();if(n){if(/\bDATE_TRUNC\b/i.test(n))return"date";if(/\bTIMESTAMP\b/i.test(n))return"datetime";if(/\bDATE\b/i.test(n)&&!/\bUPDATE\b/i.test(n))return"date";if(/['"]/.test(n))return"string";if(/[+\-*/]/.test(n))return"number";if(t.length===1){const s=((r=t[0])==null?void 0:r.dataType)||"";if(/date|timestamp/i.test(s))return"date";if(/int|decimal|float|double|num|real/i.test(s))return"number";if(/boolean/i.test(s))return"boolean"}return"string"}},_Qe=e=>e.map(t=>({id:t.id,name:t.name,label:t.tokenLabel,dataType:t.dataType,entityName:t.entityName,role:t.role}));function TQe({expression:e,availableFields:t,excludeFieldIds:n,validationEndpoint:r,connectionId:s,dialect:o}){const{authToken:i}=Xe(),[a,l]=C.useState(null),[u,d]=C.useState(!1),[f,h]=C.useState(null),m=C.useMemo(()=>VA(t),[t]),p=C.useMemo(()=>{const x=[],y=[],v=e.trim();v||x.push({code:"SYNTAX_ERROR",message:"Expression is required"}),v&&!jQe(v)&&x.push({code:"SYNTAX_ERROR",message:"Unbalanced parentheses in expression"});const j=_1(e).map(N=>{const E=m.get(ZS(N))||[];if(!E.length){const M=Array.from(m.keys()),T=kQe(N,M),P=T.length?`Did you mean {${T[0]}}?`:void 0;return x.push({code:"UNKNOWN_TOKEN",message:`Unknown field token: {${N}}`,suggestion:P}),{token:N,field:null,error:"Unknown token"}}if(E.length>1)return x.push({code:"UNKNOWN_TOKEN",message:`Token {${N}} matches multiple fields. Use a disambiguated label.`}),{token:N,field:null,error:"Ambiguous token"};const _=E[0];return(n||[]).map(Nl).includes(Nl(_.id))?(x.push({code:"SELF_REFERENCE",message:"Cannot reference the field being edited"}),{token:N,field:null,error:"Self reference"}):{token:N,field:_}});/\bCASE\b/i.test(e)&&!/\bELSE\b/i.test(e)&&y.push({code:"MISSING_ELSE",message:"CASE expression missing ELSE clause",suggestion:"Add an ELSE branch to handle default values."}),/\//.test(e)&&!/NULLIF\s*\(/i.test(e)&&y.push({code:"DIVISION_BY_ZERO",message:"Division may result in divide-by-zero errors",suggestion:"Wrap the denominator in NULLIF(..., 0)."});const S=j.map(N=>N.field).filter(Boolean);return{isValid:x.length===0,tokens:j,errors:x,warnings:y,inferredDataType:EQe(e,S)}},[e,n,m]),g=C.useCallback(async()=>{var v;if(h(null),!r||!p.isValid)return l(p),p;const x=r,y={type:"calculated-field-expression",value:e,context:{availableFields:_Qe(t),connectionId:s,excludeFieldIds:n,dialect:o}};d(!0);try{const w=await eo(x,(i==null?void 0:i.accessToken)||"",y),j=w.errors||[],S=w.warnings||[],N={...p,isValid:w.valid&&j.length===0,errors:j,warnings:S,inferredDataType:((v=w.metadata)==null?void 0:v.inferredType)||p.inferredDataType};return l(N),N}catch(w){return h((w==null?void 0:w.error)||"Validation failed"),l(p),p}finally{d(!1)}},[r,p,e,t,s,n,o,i==null?void 0:i.accessToken]),b=C.useCallback(()=>{l(null),h(null)},[]);return{clientResult:p,validationResult:a,isValidating:u,serverError:f,validateExpression:g,resetValidation:b}}const N6=[{value:"string",label:"String"},{value:"number",label:"Number"},{value:"boolean",label:"Boolean"},{value:"date",label:"Date"},{value:"datetime",label:"Datetime"},{value:"json",label:"JSON"},{value:"geo",label:"Geo"}],G2=e=>{if(!e)return"";const t=e.field.tokenLabel||e.field.label||e.field.name,n=e.aggregate;return n==="DISTINCT"?`COUNT(DISTINCT ${t})`:n==="COUNT"?`COUNT(${t})`:`${n}(${t})`},mte=e=>yr(e.dataType||"")==="number",uh=e=>mte(e)?"SUM":"COUNT",K2=(e,t)=>mte(e)||t==="COUNT"||t==="DISTINCT"?t:uh(e);function Z2(e,t){if(e.role==="metric"){const n=e;return sc(n)?n:{...n,aggregate:t}}return{...e,id:`${e.id}_${t.toLowerCase()}`,role:"metric",aggregate:t,alias:`${(e.alias||e.name).toLowerCase()}_${t.toLowerCase()}`,entityName:e.entityName,entityId:e.entityId,qualifiedEntityName:e.qualifiedEntityName}}function rh(e,t){const n=e.role==="metric"&&sc(e);return{field:e,aggregate:n&&e.aggregate||t,isCalculatedField:n}}function pte({open:e,onOpenChange:t,availableFields:n,existingField:r,existingFieldScope:s,onSave:o,onSaveToDashboard:i,onPromoteMetricToDomain:a,onPromoteDimensionToDomain:l,cardId:u,domainId:d,initialFieldType:f="metric",allowedFieldTypes:h}){var zf;const{tokenProps:m}=Xe(),{selectedConnection:p}=EU(),g=(p==null?void 0:p.dialect)==="bigquery"||(p==null?void 0:p.dialect)==="snowflake",[b,x]=C.useState(f),[y,v]=C.useState(""),[w,j]=C.useState("ratio"),[S,N]=C.useState(null),[E,_]=C.useState(null),[k,M]=C.useState(1),[T,P]=C.useState(""),[O,I]=C.useState(null),[$,V]=C.useState("card"),[W,L]=C.useState(""),[R,z]=C.useState(""),[F,A]=C.useState({}),[H,B]=C.useState("A"),[Y,q]=C.useState(""),[U,G]=C.useState(!1),[Z,Q]=C.useState(null),[K,te]=C.useState(!1),[le,de]=C.useState(!1),[ce,Ce]=C.useState(!1),ge=C.useRef(null),he=C.useRef(!1),me=C.useRef(null),{userContext:oe}=Ps(),{metrics:Ne,dimensions:fe}=tQe(),Me=(oe==null?void 0:oe.type)==="organization",ke=!Me,ie=!!d&&Me,xe=ie&&!!a,Oe=ie&&!!l,be=!!(i||xe||Oe),De=!!i,qe=b==="metric"?xe:Oe,He=(zf=m==null?void 0:m.apiServiceUrl)==null?void 0:zf.replace(/\/$/,""),Fe=He?`${He}/v1/validate`:"/v1/validate",yt=He?`${He}/v1/ai/generate`:"/v1/ai/generate",je=C.useMemo(()=>{var Mt;const Se=[...n];return(((Mt=r==null?void 0:r.calculatedFormula)==null?void 0:Mt.inputFields)||[]).forEach(vn=>{Se.some(qn=>qn.id===vn.id||qn.qualifiedFieldName===vn.qualifiedFieldName||qn.name===vn.name)||Se.push(vn)}),Se},[n,r]),dt=H==="A"?S:E,Ct=b==="metric"&&w!=="custom"?dt==null?void 0:dt.aggregate:void 0,{allFields:Ye,groups:Yt}=SQe({fields:je,mode:b,searchTerm:Y,excludeFieldIds:r?[r.id]:void 0,selectedAggregate:Ct,showIncompatible:!0}),Ge=Ye,{clientResult:et,validationResult:Be,validateExpression:Ke,isValidating:kt,serverError:pe,resetValidation:Re}=TQe({expression:T,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,validationEndpoint:Fe,connectionId:p==null?void 0:p.id,dialect:p==null?void 0:p.dialect}),re=(Be==null?void 0:Be.inferredDataType)||et.inferredDataType,_e=O||re||"string",We=ix.find(Se=>Se.id===w),it=C.useMemo(()=>{if(!y.trim())return!1;const Se=fl(y),lt=s==="domain"&&(r!=null&&r.name)?fl(r.name):null;return(b==="metric"?Ne:fe).some(vn=>{const Qt=fl(vn.name);return lt&&Qt===lt?!1:Qt===Se})},[fe,Ne,r,s,b,y]),zt=C.useMemo(()=>{if(b==="metric"&&w==="custom"){const{orderedFields:lt}=tg(T,Ge);return lt.filter(Mt=>!!Mt).map(Mt=>Mt.id)}const Se=[];return S!=null&&S.field.id&&Se.push(S.field.id),E!=null&&E.field.id&&Se.push(E.field.id),Se},[Ge,T,b,S,E,w]),un=Se=>{ke||(x(Se),Se==="dimension"&&$==="domain"&&!Oe&&V("card"),Se==="metric"&&$==="domain"&&!xe&&V("card"))},Dn=Se=>{ke||(j(Se),Se==="scale"&&_(null),Se==="custom"&&(N(null),_(null)))},Kr=()=>{v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z(""),A({}),q(""),G(!1),Q(null),te(!1),Ce(!1),Re(),t(!1)},Hr=C.useCallback(Se=>je.find(lt=>lt.qualifiedFieldName===Se.qualifiedFieldName||lt.name===Se.name)||Se,[je]),zs=C.useCallback(Se=>{if(!Se.calculatedFormula)return;const lt=Se.calculatedFormula;if(j(lt.operation),P(""),lt.operation==="scale"){const Qt=lt.inputFields[0];Qt&&N(rh(Hr(Qt),Qt.aggregate||"SUM")),M(lt.constant===void 0?1:lt.constant);return}if(lt.operation==="custom"){P(Ni(Se.expression||"",lt.inputFields||[])),N(null),_(null);return}const[Mt,vn]=lt.inputFields;Mt&&N(rh(Hr(Mt),Mt.aggregate||"SUM")),vn&&_(rh(Hr(vn),vn.aggregate||"SUM"))},[Hr]),Ni=C.useCallback((Se,lt)=>Se.replace(/\{field_(\d+)\}/g,(Mt,vn)=>{var Cr;const Qt=lt[Number(vn)];return Qt?`{${((Cr=Ge.find(ki=>ki.id===Qt.id))==null?void 0:Cr.tokenLabel)||Qt.label||Qt.name}}`:Mt}),[Ge]);C.useEffect(()=>{var Mt;if(!e){he.current=!1,me.current=null;return}const Se=r?`${r.role}-${r.id||r.name}`:"new";if(he.current&&me.current===Se)return;if(he.current=!0,me.current=Se,A({}),q(""),Ce(!1),Re(),r){const vn=r.tags||[];if(r.role==="metric"){x("metric"),v(r.label||r.name),V(s||"card"),L(r.description||""),z(vn.join(", ")),zs(r);return}x("dimension");const Qt=r;v(Qt.label||Qt.name),V(s||"card"),P(Ni(Qt.expression||"",((Mt=Qt.calculatedFormula)==null?void 0:Mt.inputFields)||[]));const qn=N6.some(Cr=>Cr.value===Qt.dataType)?Qt.dataType:"string";I(qn),L(Qt.description||""),z(vn.join(", "));return}const lt=h&&h.length>0?h.includes(f)?f:h[0]:f;x(lt),v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z("")},[e,r,s,f,h,zs,Ni,Re]);const Fu=Se=>{const lt=`{${Se}}`,Mt=ge.current;if(!Mt){P(Cr=>Cr+lt);return}const vn=Mt.selectionStart||0,Qt=Mt.selectionEnd||0,qn=`${T.slice(0,vn)}${lt}${T.slice(Qt)}`;P(qn),requestAnimationFrame(()=>{Mt.focus();const Cr=vn+lt.length;Mt.setSelectionRange(Cr,Cr)})},JS=Se=>{if(ke)return;if(b==="dimension"||w==="custom"){Fu(Se.tokenLabel||Se.label||Se.name);return}const lt=K2(Se,H==="A"?(S==null?void 0:S.aggregate)||uh(Se):(E==null?void 0:E.aggregate)||uh(Se)),Mt=rh(Se,lt);if(H==="A"){N(Mt),E||B("B");return}_(Mt),S||B("A")},Oy=(Se,lt)=>{if(!ke){if(Se==="A"&&S){N({...S,aggregate:lt});return}Se==="B"&&E&&_({...E,aggregate:lt})}},uc=async()=>{const Se={};if(y.trim()||(Se.name="Name is required"),w==="custom")T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving");else if(w==="scale")S||(Se.inputA="Please select a metric for input A"),Number.isNaN(k)&&(Se.constant="Please enter a valid multiplication factor");else{if(S||(Se.inputA="Please select a metric for input A"),E||(Se.inputB="Please select a metric for input B"),S&&E){const lt=S.field.id===E.field.id,Mt=S.aggregate===E.aggregate;lt&&Mt&&(Se.inputs="Inputs A and B must be different metrics")}if(r&&r.role==="metric"){const lt=Nl(r.id);(Nl(S==null?void 0:S.field.id)===lt||Nl(E==null?void 0:E.field.id)===lt)&&(Se.inputs="Cannot reference the field being edited")}}return be&&($==="domain"&&!xe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},ej=async()=>{const Se={};return y.trim()||(Se.name="Name is required"),T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving"),be&&($==="domain"&&!Oe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},tj=()=>{const{orderedTokens:Se,orderedFields:lt}=tg(T,Ge),Mt=lt.filter(qn=>!!qn),vn=j6(T,Se),Qt=eQe(y,vn,Mt,_e,u,r==null?void 0:r.id);return r&&r.role==="groupby"?{...r,...Qt}:Qt},nj=()=>{var vn;if(w==="custom"){const{orderedTokens:Qt,orderedFields:qn}=tg(T,Ge),Cr=qn.filter(Ot=>!!Ot),ki=(r==null?void 0:r.role)==="metric"?((vn=r.calculatedFormula)==null?void 0:vn.inputFields)||[]:[],No=new Map;ki.forEach(Ot=>{const dr=Nl(Ot.id);dr&&No.set(dr,Ot),Ot.qualifiedFieldName&&No.set(Ot.qualifiedFieldName,Ot),Ot.name&&No.set(Ot.name,Ot)});const dc=Cr.map(Ot=>{const dr=Nl(Ot.id),Ei=dr&&No.get(dr)||Ot.qualifiedFieldName&&No.get(Ot.qualifiedFieldName)||No.get(Ot.name),oj=((Ei==null?void 0:Ei.role)==="metric"?Ei.aggregate:void 0)||(Ot.role==="metric"?Ot.aggregate:void 0)||uh(Ot);return Z2(Ot,oj)}),Jn=j6(T,Qt),rn=v6(y,w,null,null,{},u,r==null?void 0:r.id,Jn,void 0,dc);return r&&r.role==="metric"?{...r,...rn}:rn}const Se=S?Z2(S.field,S.aggregate):null,lt=E?Z2(E.field,E.aggregate):null,Mt=v6(y,w,Se,lt,{},u,r==null?void 0:r.id,void 0,w==="scale"?k:void 0);return r&&r.role==="metric"?{...r,...Mt}:Mt},Fy=async Se=>{var Mt,vn,Qt;if(b==="dimension"){const qn=tj();if(Se==="dashboard"){if(!i){A(Cr=>({...Cr,scope:"Dashboard scope is not available"}));return}i(qn),Kr();return}if(Se==="domain"){if(!l){A(rn=>({...rn,scope:"Domain scope is not available"}));return}const Cr=((Mt=qn.calculatedFormula)==null?void 0:Mt.inputFields)||[],ki=new Map,No=Cr.map(rn=>{const Ot=fl(rn.label||rn.name),dr=ki.get(Ot)||0;return ki.set(Ot,dr+1),dr===0?Ot:`${Ot}_${dr+1}`}),dc=((vn=qn.expression)==null?void 0:vn.replace(/\{field_(\d+)\}/g,(rn,Ot)=>`{${No[Number(Ot)]||Ot}}`))||"",Jn=No.reduce((rn,Ot,dr)=>{const Ei=Cr[dr];return Ux(Ei)?rn[Ot]={dimension:Ei.name}:rn[Ot]={dataset:Ei.entityName,field:Ei.name},rn},{});try{await l({name:fl(y),label:y.trim(),description:W.trim(),expression:dc,inputs:Jn,dataType:_e,tags:R.split(",").map(rn=>rn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(rn){A(Ot=>({...Ot,scope:(rn==null?void 0:rn.message)||"Failed to save to domain"}));return}Kr();return}o(qn),Kr();return}const lt=nj();if(Se==="dashboard"){if(!i){A(qn=>({...qn,scope:"Dashboard scope is not available"}));return}i(lt),Kr();return}if(Se==="domain"){if(!a){A(Jn=>({...Jn,scope:"Domain scope is not available"}));return}if(!lt.calculatedFormula){A(Jn=>({...Jn,scope:"Calculated formula missing"}));return}const qn=lt.calculatedFormula.inputFields,Cr=new Map,ki=qn.map(Jn=>{const rn=fl(Jn.label||Jn.name),Ot=Cr.get(rn)||0;return Cr.set(rn,Ot+1),Ot===0?rn:`${rn}_${Ot+1}`}),No=((Qt=lt.expression)==null?void 0:Qt.replace(/\{field_(\d+)\}/g,(Jn,rn)=>`{${ki[Number(rn)]||rn}}`))||"",dc=ki.reduce((Jn,rn,Ot)=>{const dr=qn[Ot];return dr.role==="metric"?sc(dr)?Jn[rn]={metric:dr.name}:Jn[rn]={dataset:dr.entityName,field:dr.name,aggregate:dr.aggregate}:Jn[rn]={dataset:dr.entityName,field:dr.name},Jn},{});try{await a({name:fl(y),label:y.trim(),description:W.trim(),expression:No,inputs:dc,tags:R.split(",").map(Jn=>Jn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(Jn){A(rn=>({...rn,scope:(Jn==null?void 0:Jn.message)||"Failed to save to domain"}));return}Kr();return}o(lt),Kr()},rj=async()=>{if(ke)return;if(A({}),b==="metric"){if(!await uc())return}else if(!await ej())return;const Se=be?$:s||"card";if(b==="metric"&&Se!=="domain"&&it&&!r){Q(Se),te(!0);return}de(!0);try{await Fy(Se)}finally{de(!1)}},sj=C.useMemo(()=>{if(!We||w==="custom")return"";if(w==="scale"){const Se=Number.isFinite(k)?k:1;return`${G2(S)} x ${Se}`}return`${G2(S)||"A"} ${We.symbol} ${G2(E)||"B"}`},[We,w,S,E,k]);return c.jsxs(c.Fragment,{children:[c.jsxs(Gr,{modal:!1,open:e,onOpenChange:Se=>{Se?t(!0):Kr()},children:[e&&c.jsx("div",{className:"pointer-events-none fixed inset-0 z-40 bg-background/80 backdrop-blur-sm"}),c.jsxs(zr,{className:"max-w-5xl max-h-[90vh] overflow-hidden",onInteractOutside:Se=>{Se.preventDefault()},children:[c.jsxs(Br,{children:[c.jsxs(Vr,{children:[r?"Edit":"Create"," Calculated Field"]}),c.jsx(is,{children:"Build calculated metrics and dimensions using expressions."})]}),c.jsxs("div",{className:"grid h-[70vh] min-h-0 grid-cols-[320px_1fr] gap-6",children:[c.jsx(rQe,{groups:Yt,searchTerm:Y,onSearchTermChange:q,onFieldClick:JS,selectedFieldIds:zt,disabled:ke}),c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-y-auto pr-2",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Field Type"}),c.jsx(nQe,{value:b,onChange:un,disabled:ke||!!r,options:h||["metric","dimension"]})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"calculated-name",children:"Name"}),c.jsx(mn,{id:"calculated-name",value:y,onChange:Se=>v(Se.target.value),placeholder:"e.g., Profit Margin",className:F.name?"border-red-500":"",disabled:ke}),F.name&&c.jsx("p",{className:"text-xs text-red-500",children:F.name})]}),b==="metric"&&c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Operation"}),c.jsx(sQe,{value:w,onChange:Dn,allowCustom:!0,disabled:ke}),F.operation&&c.jsx("p",{className:"text-xs text-red-500",children:F.operation})]}),w==="custom"?c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression})]}):c.jsxs("div",{className:"space-y-3",children:[c.jsx(ae,{children:"Inputs"}),c.jsx(w6,{label:"A",input:S,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(S==null?void 0:S.aggregate)||uh(Se));N(rh(Se,lt))},onAggregateChange:Se=>Oy("A",Se),onRemove:()=>N(null),onActivate:()=>B("A"),allowMedian:g,disabled:ke}),F.inputA&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputA}),w!=="scale"&&c.jsxs(c.Fragment,{children:[c.jsx(w6,{label:"B",input:E,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(E==null?void 0:E.aggregate)||uh(Se));_(rh(Se,lt))},onAggregateChange:Se=>Oy("B",Se),onRemove:()=>_(null),onActivate:()=>B("B"),allowMedian:g,disabled:ke}),F.inputB&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputB})]}),w==="scale"&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"constantFactor",children:"Multiplication Factor"}),c.jsx(mn,{id:"constantFactor",type:"number",step:"any",value:Number.isNaN(k)?"":k,onChange:Se=>M(Se.target.value===""?Number.NaN:Number(Se.target.value)),className:F.constant?"border-red-500":"",placeholder:"e.g., 0.15",disabled:ke}),F.constant&&c.jsx("p",{className:"text-xs text-red-500",children:F.constant})]}),c.jsx("div",{className:"rounded-md border border-border bg-muted/40 p-3 text-sm font-mono",children:sj||"Select inputs to preview formula"}),F.inputs&&c.jsxs(kI,{variant:"destructive",children:[c.jsx(Yl,{className:"h-4 w-4"}),c.jsx(EI,{children:F.inputs})]})]})]}),b==="dimension"&&c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Output Type"}),c.jsxs(ot,{value:_e,onValueChange:Se=>I(Se),disabled:ke,children:[c.jsx(nt,{className:"h-9 w-full",children:c.jsx(at,{placeholder:"Select output type"})}),c.jsx(rt,{children:N6.map(Se=>c.jsx(ve,{value:Se.value,children:Se.label},Se.value))})]}),re&&!O&&c.jsxs("p",{className:"text-xs text-muted-foreground",children:["Suggested type: ",re]})]})]}),be&&(De||qe)&&c.jsxs("div",{className:"space-y-3",children:[c.jsx(cQe,{scope:$,onChange:V,showDashboardScope:De,showDomainScope:qe,error:F.scope,disabled:ke}),$==="domain"&&c.jsx(uQe,{description:W,tags:R,onDescriptionChange:L,onTagsChange:z,descriptionError:F.description,disabled:ke})]})]})]}),c.jsxs(os,{children:[c.jsx(se,{variant:"outline",onClick:Kr,children:"Cancel"}),c.jsxs(se,{onClick:rj,disabled:le||ke,children:[r?"Update":"Create"," ",b==="metric"?"Metric":"Dimension"]})]})]})]}),c.jsx(fQe,{open:U,onOpenChange:G,availableFields:Ge,fieldType:b,onExpressionGenerated:async Se=>{P(Se),Ce(!1),Re()},endpoint:yt,dialect:p==null?void 0:p.dialect}),c.jsx(Um,{open:K,onOpenChange:te,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Name Conflict"}),c.jsxs(Ef,{children:['A domain metric named "',y.trim(),'" already exists. Your local version will override it in this'," ",Z==="dashboard"?"dashboard":"card",". Continue?"]})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{onClick:()=>{Q(null)},children:"Choose Different Name"}),c.jsx(_f,{onClick:async()=>{if(Z){te(!1),de(!0);try{await Fy(Z)}finally{de(!1),Q(null)}}},children:"Continue"})]})]})})]})}function gte({domainId:e}){const{authToken:t,tokenProps:n}=Xe(),[r,s]=C.useState(!1),[o,i]=C.useState(null),a=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-metrics`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),l=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-dimensions`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),u=C.useCallback(async f=>{if(!a){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(a,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[a,t==null?void 0:t.accessToken]),d=C.useCallback(async f=>{if(!l){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(l,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[l,t==null?void 0:t.accessToken]);return{promoteMetric:u,promoteDimension:d,isPromoting:r,error:o}}const bte=C.memo(function({context:t="editor",onFieldSelect:n,inlineFilters:r}={}){var Ke,kt,pe,Re;const[s,o]=C.useState(""),[i,a]=C.useState("all"),[l,u]=C.useState(!1),[d,f]=C.useState(null),[h,m]=C.useState("card"),[p,g]=C.useState("metric");Ae(re=>re.isDevMode);const b=Ae(re=>re.card.dataSource),x=Ae(re=>re.card.config),y=Ae(re=>re.card),v=Ae(re=>re.frame),w=Ae(re=>re.actions.updateCardConfig),j=Ae(re=>re.actions.updateFrame),{userContext:S}=Ps(),{autoJoinMetadata:N}=Ha(y),{columns:E,rawColumnGroups:_,scopedFields:k,dashboardCalculatedFields:M,cardCalculatedFields:T,isLoading:P,error:O,refetch:I}=PA(),$=(b==null?void 0:b.mode)==="semanticDomain"?b.semanticDomainId:void 0,{data:V}=OA($),{promoteMetric:W,promoteDimension:L}=gte({domainId:$}),R=C.useMemo(()=>[...(x==null?void 0:x.groupByColumns)||[],...(x==null?void 0:x.metricColumns)||[],...(x==null?void 0:x.detailColumns)||[]],[x==null?void 0:x.groupByColumns,x==null?void 0:x.metricColumns,x==null?void 0:x.detailColumns]);(kt=(Ke=x==null?void 0:x.joinPlan)==null?void 0:Ke.baseEntity)==null||kt.name,(Re=(pe=N==null?void 0:N.resolvedJoinPlan)==null?void 0:pe.baseEntity)==null||Re.name,Qee();const z=t==="editor",F=(S==null?void 0:S.type)==="organization",A=z?k:E,H=_,B=s.toLowerCase(),Y=(x==null?void 0:x.metricColumns)||[],q=(x==null?void 0:x.groupByColumns)||[],U=C.useCallback(async re=>{await W(re),I()},[W,I]),G=C.useCallback(async re=>{await L(re),I()},[L,I]),Z=re=>re.name.toLowerCase().includes(B)||re.dataType.toLowerCase().includes(B)||re.label&&re.label.toLowerCase().includes(B)||re.qualifiedEntityName&&re.qualifiedEntityName.toLowerCase().includes(B),Q=A.filter(Z),K=re=>{if(re.role==="metric"&&sc(re)||re.role==="groupby"&&re.expression)return"calculated";if(re.dataType==="number"||re.dataType==="integer"||re.dataType==="float"||re.dataType==="decimal"||re.dataType==="currency")return"metrics";const _e=yr(re.dataType);return["date","string","boolean"].includes(_e)?"dimensions":_e==="number"?"metrics":"dimensions"},te=re=>{const _e=re.filter(Z);return i==="all"?_e:_e.filter(We=>K(We)===i)},le=i==="all"?Q:Q.filter(re=>K(re)===i),de=z?[...M,...T]:[],ce=z?te(de):[],ge=te(E).reduce((re,_e)=>{const We=_e.qualifiedEntityName||"Other Fields";return re[We]||(re[We]={label:cb(_e.entityName),fields:[]}),re[We].fields.push(_e),re},{}),he=re=>re.id||`${re.entityName}-${re.qualifiedEntityName}-${re.name}-${re.role||"field"}`,me=C.useMemo(()=>{const re=new Map;return(z?k:E).forEach(We=>{re.set(he(We),ED(We,{joinabilityMap:(V==null?void 0:V.joinabilityMap)||null,selectedFields:R,cardConfig:x,autoJoinMetadata:N}))}),re},[z,k,E,V==null?void 0:V.joinabilityMap,R,x,N]),oe=z?[{key:"scope-calculated",label:"Calculated Fields",fields:ce}].filter(re=>re.fields.length>0):[],fe=[...oe.map(re=>re.key),...Object.keys(ge)],Me=Q.filter(re=>K(re)==="dimensions").length,ke=Q.filter(re=>K(re)==="metrics").length,ie=Q.filter(re=>K(re)==="calculated").length,xe=Q.length>0&&t!=="inline-filter",Oe=t==="inline-filter"?"w-full":"w-[290px]";if(P)return c.jsx("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:c.jsx(fu,{size:"md",color:"muted","aria-label":"Loading data"})});if(O)return c.jsxs("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-red-300"}),c.jsx("p",{className:"mb-2 text-sm text-red-500",children:"Error loading fields"}),c.jsx("p",{className:"px-4 text-center text-xs text-red-400",children:O.message||"Failed to load column data"})]});if(!b||!b.selectedEntities||b.selectedEntities.length===0)return c.jsxs("div",{className:X("flex flex-col items-center justify-center py-8 text-center",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-gray-300"}),c.jsx("p",{className:"mb-2 text-sm text-gray-500",children:"No data source selected"}),c.jsx("p",{className:"px-4 text-xs text-gray-400",children:t==="filter"||t==="inline-filter"?"Configure a data source for this card to see available fields":"Select a table, view, or dataset from the data source panel to see available fields"})]});const be=t==="inline-filter"?"px-3 pb-3":"px-6 pb-6",De=t==="inline-filter"?"overflow-hidden":"",qe=re=>re!=null&&re.startsWith("card-source-")?re.replace("card-source-",""):re,He=(re,_e,We)=>{const it=qe(re.id),zt=qe(_e.id);return it&&zt&&it===zt?!0:!it||!zt||We!=null&&We.allowNameFallback?re.name===_e.name&&re.role===_e.role:!1},Fe=(re,_e,We)=>re.findIndex(it=>He(it,_e,We)),yt=re=>{if(!v)return re;const _e=v.calculatedFields||[],We=Fe(_e,re),it=We>=0&&_e[We].id!==re.id?{...re,id:_e[We].id}:re,zt=We>=0?_e.map((un,Dn)=>Dn===We?it:un):[..._e,it];return j({calculatedFields:zt}),it},je=(re,_e,We,it)=>{var un;const zt=Fe(re,We||_e,it);if(zt>=0){const Dn=(un=re[zt])==null?void 0:un.id,Kr=Dn&&Dn!==_e.id?{..._e,id:Dn}:_e;return re.map((Hr,zs)=>zs===zt?Kr:Hr)}return[...re,_e]},dt=re=>{if(re.role==="metric")return Y.find(_e=>He(_e,re));if(re.role==="groupby")return q.find(_e=>He(_e,re))},Ct=re=>{var _e;return(_e=v==null?void 0:v.calculatedFields)==null?void 0:_e.find(We=>He(We,re))},Ye=re=>{if(re.role==="metric"){w(y.id,{metricColumns:Y.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))});return}re.role==="groupby"&&w(y.id,{groupByColumns:q.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))})},Yt=re=>{if(!v)return;const _e=(v.calculatedFields||[]).filter(We=>!He(We,re));j({calculatedFields:_e})},Ge=re=>{if(!F)return;if(re.fieldScope==="domain"){f(re),m("domain"),g(re.role==="metric"?"metric":"dimension"),u(!0);return}if(re.fieldScope==="dashboard"){const We=Ct(re);if(!We)return;f(We),m("dashboard"),g(We.role==="metric"?"metric":"dimension"),u(!0);return}const _e=dt(re);_e&&(f(_e),m("card"),g(_e.role==="metric"?"metric":"dimension"),u(!0))},et=re=>{if(F&&re.fieldScope!=="domain"){if(re.fieldScope==="dashboard"){Yt(re),Ye(re);return}Ye(re)}},Be=re=>{if(!F)return null;const _e=re.fieldScope==="domain";return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"icon",className:"h-6 w-6","aria-label":"Calculated field actions",children:c.jsx(f8,{className:"h-4 w-4"})})}),c.jsxs(yu,{align:"end",className:"w-40",children:[c.jsx(po,{onClick:()=>Ge(re),children:"Edit"}),c.jsx(po,{disabled:_e,onClick:()=>et(re),children:"Delete"})]})]})};return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:X("mt-2 flex h-full w-full grow flex-col gap-2",be,De),children:[c.jsxs("div",{className:"mt-1 flex-shrink-0 space-y-2",children:[A.length>0&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{className:"pl-10 pr-10",type:"text",placeholder:"Search fields...",value:s,onChange:re=>o(re.target.value)}),s&&c.jsx("button",{className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",onClick:()=>o(""),type:"button",children:c.jsx(St,{className:"size-3.5"})})]}),xe&&c.jsx(Os,{defaultValue:"all",value:i,onValueChange:re=>a(re),className:"mb-4",children:c.jsxs(ys,{className:"grid h-9 w-full grid-cols-4",children:[c.jsxs(nn,{value:"all",className:"text-xs",children:["All",c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Q.length})]}),c.jsxs(nn,{value:"dimensions",className:"text-xs",children:[c.jsx(U1,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Me})]}),c.jsxs(nn,{value:"metrics",className:"text-xs",children:[c.jsx(Am,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ke})]}),c.jsxs(nn,{value:"calculated",className:"text-xs",children:[c.jsx(OT,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ie})]})]})}),t==="editor"&&i==="calculated"&&F&&c.jsx("div",{className:"flex items-center justify-end gap-2",children:c.jsxs(se,{size:"sm",variant:"outline",className:"w-full",onClick:()=>{f(null),m("card"),g("dimension"),u(!0)},children:[c.jsx(Tr,{className:"mr-2 h-3.5 w-3.5"}),"Add calculated field"]})})]}),c.jsxs(tl,{className:"min-h-0 flex-1",children:[c.jsxs(BA,{type:"multiple",defaultValue:fe,className:"space-y-2",children:[oe.map(re=>c.jsxs(rx,{value:re.key,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:re.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:re.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:re.fields.map(_e=>{const We=me.get(he(_e)),it=t==="editor"&&i==="calculated";return c.jsx(y6,{field:_e,context:t,fieldState:We,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0,actions:it?Be(_e):void 0},_e.id)})})})]},re.key)),Object.entries(ge).map(([re,_e])=>{const We=H.find(zt=>zt.entityName===re)||{entityName:re,label:_e.label},it=re===Qh?"Domain Calculated Fields":We.label||We.entityName;return c.jsxs(rx,{value:re,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{title:it,className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:it}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:_e.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:_e.fields.map(zt=>{const un=me.get(he(zt));return c.jsx(y6,{field:zt,context:t,fieldState:un,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0},zt.id)})})})]},re)})]}),A.length===0&&c.jsxs("div",{className:"py-8 text-center text-sm text-gray-500",children:[c.jsx("p",{children:"No fields found for selected data source"}),c.jsx("p",{className:"mt-1 text-xs text-gray-400",children:t==="filter"?"The selected data source has no available fields":"Try selecting different data sources"})]}),A.length>0&&le.length===0&&c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"No fields found for this category"}),c.jsx(bi,{orientation:"horizontal"}),c.jsx(bi,{orientation:"vertical"})]})]}),c.jsx(pte,{open:l,onOpenChange:re=>{u(re),re||(f(null),m("card"))},availableFields:k,existingField:d??void 0,existingFieldScope:h,initialFieldType:p,onSave:re=>{if(re.role==="metric"){if(d&&h==="card"){w(y.id,{metricColumns:je(Y,re,d)});return}w(y.id,{metricColumns:je(Y,re)});return}if(d&&h==="card"){w(y.id,{groupByColumns:je(q,re,d)});return}w(y.id,{groupByColumns:je(q,re)})},onSaveToDashboard:re=>{const _e=!!(d&&h==="dashboard"),We=_e?d:void 0;if(re.role==="metric"){const zt=yt(re);w(y.id,{metricColumns:je(Y,zt,We,{allowNameFallback:_e})});return}const it=yt(re);w(y.id,{groupByColumns:je(q,it,We,{allowNameFallback:_e})})},cardId:y.id,onPromoteMetricToDomain:$?U:void 0,onPromoteDimensionToDomain:$?G:void 0,domainId:$})]})}),xte=C.memo(function({context:t="editor"}={}){return c.jsxs("div",{"data-content":"fields-section",className:"flex h-full grow flex-col items-center overflow-hidden",children:[" ",c.jsx(bte,{context:t})," "]})});function yte(){const e=Ae(i=>i.card.dataSource),{setSelectedConnectionId:t,setSelectedDatabaseName:n,setSelectedSchemaName:r,setSelectedTableName:s,setSelectedDatamodelId:o}=cr();C.useEffect(()=>{var m;if(!e)return;const{tableName:i,schemaName:a,databaseName:l,connectionId:u}=FA(e),d=(m=e.selectedEntities)==null?void 0:m[0],h=(d==null?void 0:d.type)==="model"&&"id"in d?d.id:"";t(u||""),n(l||""),r(a||""),s(i||""),o(h)},[e,t,n,r,s,o])}function MQe(){yte();const e=J(l=>l.selectedSheetId),t=J(l=>l.selectedFrameId),n=J(l=>l.dashboard),r=J(l=>l.actions.getSelectedFrame),{setSelectedFrameId:s}=Wt(),{setCard:o}=cr(),i=Ae(l=>l.card.dataSource);return C.useEffect(()=>{var u,d;let l=r();if(!l){const f=(u=n==null?void 0:n.sheets)==null?void 0:u.find(m=>m.id===e),h=(d=f==null?void 0:f.frames)==null?void 0:d[0];h&&(s(h.id),l=h)}if(l){const f=l.cards.find(h=>h.id===l.activeCardId);f&&o(f)}},[r,e,t,n,s,o]),{hasEntities:!!(i!=null&&i.selectedEntities&&i.selectedEntities.length>0)}}function DQe(){const e=J(o=>o.dashboard.filterLayout),{setFilterLayout:t}=Wt(),n=(e==null?void 0:e.displayMode)||"canvas",r=(e==null?void 0:e.toolbarWrap)??!1,s=(e==null?void 0:e.showDownloadButton)??!1;return c.jsxs(ms,{children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0","aria-label":"Filter display settings",children:c.jsx(Ll,{className:"h-4 w-4"})})}),c.jsx(gs,{className:"w-[280px]",align:"end",children:c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{children:[c.jsx("h4",{className:"mb-3 text-sm font-medium",children:"Filter Display"}),c.jsxs(Qs,{value:n,onValueChange:o=>t({displayMode:o}),className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"canvas",id:"canvas",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"canvas",className:"cursor-pointer font-normal",children:"Canvas Cards"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Filters as draggable, resizable cards on the dashboard"})]})]}),c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"toolbar",id:"toolbar",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"toolbar",className:"cursor-pointer font-normal",children:"Toolbar"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Compact horizontal toolbar below dashboard controls"})]})]})]})]}),n==="toolbar"&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center space-x-2 border-t pt-4",children:[c.jsx(cn,{id:"wrap",checked:r,onCheckedChange:o=>t({toolbarWrap:o===!0})}),c.jsx(ae,{htmlFor:"wrap",className:"cursor-pointer text-sm font-normal",children:"Wrap filters to multiple lines"})]}),c.jsxs("div",{className:"flex items-center space-x-2 pt-2",children:[c.jsx(cn,{id:"download",checked:s,onCheckedChange:o=>t({showDownloadButton:o===!0})}),c.jsx(ae,{htmlFor:"download",className:"cursor-pointer text-sm font-normal",children:"Show download button"})]})]}),c.jsx("p",{className:"border-t pt-3 text-xs text-muted-foreground",children:"Individual filters can override this setting in their configuration."})]})})]})}function IQe(){const e=J(n=>n.actions.setShowFilters),{hasEntities:t}=MQe();return c.jsxs("section",{className:"relative flex min-w-[320px] grow flex-col overflow-hidden border-l",children:[c.jsxs("div",{className:"mt-4 flex items-center justify-between gap-2 px-4",children:[c.jsx(ae,{className:"px-2 text-base",children:"Dashboard Filters"}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(DQe,{}),c.jsx(se,{onClick:()=>e(!1),className:"h-7 w-7 p-0",variant:"ghost",children:c.jsx(eX,{})})]})]}),!t&&c.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 py-12 text-center",children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-muted-foreground/50"}),c.jsx("h3",{className:"mb-2 text-sm font-medium text-foreground",children:"No fields configured"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Please configure a data source for this card to enable filtering"})]}),t&&c.jsx("div",{className:"flex grow overflow-y-auto",children:c.jsx(Ny,{collisionDetection:Cy,children:c.jsx(ky,{items:[],strategy:WR,children:c.jsx(xte,{context:"filter"})})})})]})}function RQe(){const e=J(r=>r.dashboard.filters),t=J(r=>r.theme),n=e==null?void 0:e.filter(r=>r.hide);return n!=null&&n.length?c.jsx("div",{className:X("mb-1 flex items-center gap-2 border-y px-0.5 pb-0.5",{"bg-[repeating-linear-gradient(45deg,_#ffffff_0_3px,_#f3f3f3_3px_6px)]":t==="light","bg-[repeating-linear-gradient(45deg,_#18171d_0_3px,_#272729_3px_6px)]":t==="dark"}),children:n==null?void 0:n.map(r=>c.jsxs("div",{className:"flex min-w-[250px] max-w-fit flex-col gap-1 p-2",children:[c.jsx($R,{filter:r}),c.jsx(Sp,{filter:r})]},r.id))}):null}function AQe(){const e=J(r=>r.showFilters),t=J(r=>r.isVisualEditing),n=J(r=>r.isDashboardEditing);return c.jsxs("div",{role:"dashboard-plus-main",className:X("",{"max-h-0 overflow-hidden":t,"flex grow overflow-hidden":!t}),children:[c.jsxs("section",{className:"flex grow flex-col overflow-y-auto",children:[n&&c.jsx(RQe,{}),c.jsx(Wee,{})]}),e&&c.jsx("div",{role:"filter-aside-container",className:"flex overflow-hidden",children:c.jsx(IQe,{})})]})}const PQe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-controls-DZ3RdkPp.js"))),OQe=C.lazy(()=>Promise.resolve().then(()=>require("./edit-dashboard-visual-DyvG8L5y.js"))),FQe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-json-CBLwtP5m.js"))),$Qe=C.lazy(()=>Promise.resolve().then(()=>require("./resource-management-panel-DNffk7G6.js")).then(e=>({default:e.ResourceManagementPanel})));function LQe({showControls:e=!1,showFooter:t=!0,...n}){const r=J(l=>l.isDashboardPanelOpen),s=J(l=>l.isVisualEditing),o=J(l=>l.showDashboardJSON),i=J(l=>l.actions.setIsDashboardPanelOpen),{preferences:a}=n;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:n,children:[c.jsx(tde,{}),c.jsx(AA,{componentType:"surfboard",componentId:n.id}),c.jsx(RA,{children:c.jsxs(qee,{preferences:a,children:[o&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(FQe,{})}),c.jsxs("main",{className:"relative flex h-full w-full flex-col overflow-hidden",children:[e&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(PQe,{})}),c.jsxs("div",{className:"flex grow overflow-hidden",children:[r&&c.jsx(C.Suspense,{fallback:null,children:c.jsx($Qe,{isOpen:r,onClose:()=>i(!1),variant:"inline"})}),c.jsx("div",{className:"flex min-w-0 flex-1",children:c.jsxs(JD,{...n,type:"dashboard",children:[s&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(OQe,{})}),c.jsx(AQe,{})]})})]})]})]})})]})})}var zQe=Object.defineProperty,BQe=(e,t,n)=>t in e?zQe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fv=(e,t,n)=>BQe(e,typeof t!="symbol"?t+"":t,n);const VQe={stringify:e=>e?"true":"false",parse:e=>/^[ty1-9]/i.test(e)},HQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{if(typeof window<"u"&&e in window)return window[e];if(typeof global<"u"&&e in global)return global[e]})();return typeof r=="function"?r.bind(n):void 0}},UQe={stringify:e=>JSON.stringify(e),parse:e=>JSON.parse(e)};function WQe(e){return e.replace(/([a-z0-9])([A-Z])/g,(t,n,r)=>`${n}-${r.toLowerCase()}`)}function vte(e){return e.replace(/[-:]([a-z])/g,(t,n)=>`${n.toUpperCase()}`)}const qQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{const s=vte(t);if(typeof n<"u"&&s in n.container)return n.container[s]})();return typeof r=="function"?r.bind(n):void 0}},YQe={stringify:e=>`${e}`,parse:e=>parseFloat(e)},GQe={stringify:e=>e,parse:e=>e},X2={string:GQe,number:YQe,boolean:VQe,function:HQe,method:qQe,json:UQe},ng=Symbol.for("r2wc.render"),hv=Symbol.for("r2wc.connected"),Ku=Symbol.for("r2wc.context"),To=Symbol.for("r2wc.props");function KQe(e,t,n){var r,s,o;t.props||(t.props=e.propTypes?Object.keys(e.propTypes):[]),t.events||(t.events=[]);const i=Array.isArray(t.props)?t.props.slice():Object.keys(t.props),a=Array.isArray(t.events)?t.events.slice():Object.keys(t.events),l={},u={},d={},f={};for(const m of i){l[m]=Array.isArray(t.props)?"string":t.props[m];const p=WQe(m);d[m]=p,f[p]=m}for(const m of a)u[m]=Array.isArray(t.events)?{}:t.events[m];class h extends HTMLElement{constructor(){super(),fv(this,o,!0),fv(this,s),fv(this,r,{}),fv(this,"container"),t.shadow?this.container=this.attachShadow({mode:t.shadow}):this.container=this,this[To].container=this.container;for(const p of i){const g=d[p],b=this.getAttribute(g),x=l[p],y=x?X2[x]:null;if(x==="method"){const v=vte(g);Object.defineProperty(this[To].container,v,{enumerable:!0,configurable:!0,get(){return this[To][v]},set(w){this[To][v]=w,this[ng]()}}),this[To][p]=y.parse(b,g,this)}y!=null&&y.parse&&b&&(this[To][p]=y.parse(b,g,this))}for(const p of a)this[To][p]=g=>{const b=p.replace(/^on/,"").toLowerCase();this.dispatchEvent(new CustomEvent(b,{detail:g,...u[p]}))}}static get observedAttributes(){return Object.keys(f)}connectedCallback(){this[hv]=!0,this[ng]()}disconnectedCallback(){this[hv]=!1,this[Ku]&&n.unmount(this[Ku]),delete this[Ku]}attributeChangedCallback(p,g,b){const x=f[p],y=l[x],v=y?X2[y]:null;x in l&&v!=null&&v.parse&&b&&(this[To][x]=v.parse(b,p,this),this[ng]())}[(o=hv,s=Ku,r=To,ng)](){this[hv]&&(this[Ku]?n.update(this[Ku],this[To]):this[Ku]=n.mount(this.container,e,this[To]))}}for(const m of i){const p=d[m],g=l[m];Object.defineProperty(h.prototype,m,{enumerable:!0,configurable:!0,get(){return this[To][m]},set(b){this[To][m]=b;const x=g?X2[g]:null;if(x!=null&&x.stringify){const y=x.stringify(b,p,this);this.getAttribute(p)!==y&&this.setAttribute(p,y)}else this[ng]()}})}return h}function ZQe(e,t,n){const r=vne.createRoot(e),s=C.createElement(t,n);return r.render(s),{root:r,ReactComponent:t}}function XQe({root:e,ReactComponent:t},n){const r=C.createElement(t,n);e.render(r)}function QQe({root:e}){e.unmount()}function JQe(e,t={}){return KQe(e,t,{mount:ZQe,update:XQe,unmount:QQe})}const eJe={id:"string",version:"string",authToken:"json",placeholders:"json",defaultFilterValues:"json",currentTheme:"string",customCards:"json",customStyle:"json",onChartElementClicked:"function",onFilterValuesChange:"function",onEvent:"function",onSave:"function",LoadingComponent:"function",ErrorComponent:"function",showAssistant:"boolean",selectedSheetId:"string",eventHandlers:"json",preferences:"json"},tJe=JQe(Yee,{props:eJe});function k6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nJe(e){if(Array.isArray(e))return e}function rJe(e,t,n){return(t=uJe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sJe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,s,o,i,a=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(d){u=!0,s=d}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw s}}return a}}function oJe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1078
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function _6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E6(Object(n),!0).forEach(function(r){rJe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function iJe(e,t){if(e==null)return{};var n,r,s=aJe(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function aJe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function lJe(e,t){return nJe(e)||sJe(e,t)||dJe(e,t)||oJe()}function cJe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function uJe(e){var t=cJe(e,"string");return typeof t=="symbol"?t:t+""}function dJe(e,t){if(e){if(typeof e=="string")return k6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k6(e,t):void 0}}function fJe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function M6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?T6(Object(n),!0).forEach(function(r){fJe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function hJe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(s,o){return o(s)},r)}}function Tg(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),o=0;o<r;o++)s[o]=arguments[o];return s.length>=e.length?e.apply(this,s):function(){for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return t.apply(n,[].concat(s,a))}}}function T1(e){return{}.toString.call(e).includes("Object")}function mJe(e){return!Object.keys(e).length}function ax(e){return typeof e=="function"}function pJe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function gJe(e,t){return T1(t)||eu("changeType"),Object.keys(t).some(function(n){return!pJe(e,n)})&&eu("changeField"),t}function bJe(e){ax(e)||eu("selectorType")}function xJe(e){ax(e)||T1(e)||eu("handlerType"),T1(e)&&Object.values(e).some(function(t){return!ax(t)})&&eu("handlersType")}function yJe(e){e||eu("initialIsRequired"),T1(e)||eu("initialType"),mJe(e)&&eu("initialContent")}function vJe(e,t){throw new Error(e[t]||e.default)}var wJe={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},eu=Tg(vJe)(wJe),mv={changes:gJe,selector:bJe,handler:xJe,initial:yJe};function CJe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};mv.initial(e),mv.handler(t);var n={current:e},r=Tg(NJe)(n,t),s=Tg(jJe)(n),o=Tg(mv.changes)(e),i=Tg(SJe)(n);function a(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return mv.selector(u),u(n.current)}function l(u){hJe(r,s,o,i)(u)}return[a,l]}function SJe(e,t){return ax(t)?t(e.current):t}function jJe(e,t){return e.current=M6(M6({},e.current),t),t}function NJe(e,t,n){return ax(t)?t(e.current):Object.keys(n).forEach(function(r){var s;return(s=t[r])===null||s===void 0?void 0:s.call(t,e.current[r])}),n}var kJe={create:CJe},EJe={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function _Je(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),o=0;o<r;o++)s[o]=arguments[o];return s.length>=e.length?e.apply(this,s):function(){for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return t.apply(n,[].concat(s,a))}}}function TJe(e){return{}.toString.call(e).includes("Object")}function MJe(e){return e||D6("configIsRequired"),TJe(e)||D6("configType"),e.urls?(DJe(),{paths:{vs:e.urls.monacoBase}}):e}function DJe(){console.warn(wte.deprecation)}function IJe(e,t){throw new Error(e[t]||e.default)}var wte={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
1077
+ `)}})}});var AZe=EKe(()=>wee(vi([ir({type:Lt("text-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("error"),errorText:ft()}),ir({type:Lt("tool-input-start"),toolCallId:ft(),toolName:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-delta"),toolCallId:ft(),inputTextDelta:ft()}),ir({type:Lt("tool-input-available"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-error"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional(),errorText:ft()}),ir({type:Lt("tool-output-available"),toolCallId:ft(),output:ya(),providerExecuted:co().optional(),dynamic:co().optional(),preliminary:co().optional()}),ir({type:Lt("tool-output-error"),toolCallId:ft(),errorText:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("reasoning-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("source-url"),sourceId:ft(),url:ft(),title:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("source-document"),sourceId:ft(),mediaType:ft(),title:ft(),filename:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("file"),url:ft(),mediaType:ft(),providerMetadata:Sr.optional()}),ir({type:gee(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:ft().optional(),data:ya(),transient:co().optional()}),ir({type:Lt("start-step")}),ir({type:Lt("finish-step")}),ir({type:Lt("start"),messageId:ft().optional(),messageMetadata:ya().optional()}),ir({type:Lt("finish"),finishReason:hee(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:ya().optional()}),ir({type:Lt("abort")}),ir({type:Lt("message-metadata"),messageMetadata:ya()})])));function PZe(e){return e.type.startsWith("data-")}function Tee(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;const n={...e};for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const s=t[r];if(s===void 0)continue;const o=r in e?e[r]:void 0,i=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),a=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);i&&a?n[r]=Tee(o,s):n[r]=s}return n}function OZe(e){const t=["ROOT"];let n=-1,r=null;function s(l,u,d){switch(l){case'"':{n=u,t.pop(),t.push(d),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=u,r=u,t.pop(),t.push(d),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=u,t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"{":{n=u,t.pop(),t.push(d),t.push("INSIDE_OBJECT_START");break}case"[":{n=u,t.pop(),t.push(d),t.push("INSIDE_ARRAY_START");break}}}function o(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=u,t.pop();break}}}function i(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=u,t.pop();break}}}for(let l=0;l<e.length;l++){const u=e[l];switch(t[t.length-1]){case"ROOT":s(u,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(u){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(u,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{o(u,l);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),n=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=l}break}case"INSIDE_ARRAY_START":{switch(u){case"]":{n=l,t.pop();break}default:{n=l,s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=l,t.pop();break}default:{n=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=l;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const f=e.substring(r,l+1);!"false".startsWith(f)&&!"true".startsWith(f)&&!"null".startsWith(f)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?o(u,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l)):n=l;break}}}let a=e.slice(0,n+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{a+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{a+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{a+="]";break}case"INSIDE_LITERAL":{const d=e.substring(r,e.length);"true".startsWith(d)?a+="true".slice(d.length):"false".startsWith(d)?a+="false".slice(d.length):"null".startsWith(d)&&(a+="null".slice(d.length))}}return a}async function Mee(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await j1({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await j1({text:OZe(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function $v(e){return e.type.startsWith("tool-")}function FZe(e){return e.type==="dynamic-tool"}function J_(e){return $v(e)||FZe(e)}function h6(e){return e.type.split("-").slice(1).join("-")}function $Ze({lastMessage:e,messageId:t}){return{message:(e==null?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function LZe({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:r,onError:s,onToolCall:o,onData:i}){return e.pipeThrough(new TransformStream({async transform(a,l){await r(async({state:u,write:d})=>{var f,h,m,p;function g(w){const S=u.message.parts.filter($v).find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function b(w){const S=u.message.parts.filter(N=>N.type==="dynamic-tool").find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function x(w){var j;const S=u.message.parts.find(_=>$v(_)&&_.toolCallId===w.toolCallId),N=w,E=S;S!=null?(S.state=w.state,E.input=N.input,E.output=N.output,E.errorText=N.errorText,E.rawInput=N.rawInput,E.preliminary=N.preliminary,E.providerExecuted=(j=N.providerExecuted)!=null?j:S.providerExecuted,N.providerMetadata!=null&&S.state==="input-available"&&(S.callProviderMetadata=N.providerMetadata)):u.message.parts.push({type:`tool-${w.toolName}`,toolCallId:w.toolCallId,state:w.state,input:N.input,output:N.output,rawInput:N.rawInput,errorText:N.errorText,providerExecuted:N.providerExecuted,preliminary:N.preliminary,...N.providerMetadata!=null?{callProviderMetadata:N.providerMetadata}:{}})}function y(w){var j,S;const N=u.message.parts.find(k=>k.type==="dynamic-tool"&&k.toolCallId===w.toolCallId),E=w,_=N;N!=null?(N.state=w.state,_.toolName=w.toolName,_.input=E.input,_.output=E.output,_.errorText=E.errorText,_.rawInput=(j=E.rawInput)!=null?j:_.rawInput,_.preliminary=E.preliminary,_.providerExecuted=(S=E.providerExecuted)!=null?S:N.providerExecuted,E.providerMetadata!=null&&N.state==="input-available"&&(N.callProviderMetadata=E.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:w.toolName,toolCallId:w.toolCallId,state:w.state,input:E.input,output:E.output,errorText:E.errorText,preliminary:E.preliminary,providerExecuted:E.providerExecuted,...E.providerMetadata!=null?{callProviderMetadata:E.providerMetadata}:{}})}async function v(w){if(w!=null){const j=u.message.metadata!=null?Tee(u.message.metadata,w):w;t!=null&&await l6({value:j,schema:t}),u.message.metadata=j}}switch(a.type){case"text-start":{const w={type:"text",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeTextParts[a.id]=w,u.message.parts.push(w),d();break}case"text-delta":{const w=u.activeTextParts[a.id];w.text+=a.delta,w.providerMetadata=(f=a.providerMetadata)!=null?f:w.providerMetadata,d();break}case"text-end":{const w=u.activeTextParts[a.id];w.state="done",w.providerMetadata=(h=a.providerMetadata)!=null?h:w.providerMetadata,delete u.activeTextParts[a.id],d();break}case"reasoning-start":{const w={type:"reasoning",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeReasoningParts[a.id]=w,u.message.parts.push(w),d();break}case"reasoning-delta":{const w=u.activeReasoningParts[a.id];w.text+=a.delta,w.providerMetadata=(m=a.providerMetadata)!=null?m:w.providerMetadata,d();break}case"reasoning-end":{const w=u.activeReasoningParts[a.id];w.providerMetadata=(p=a.providerMetadata)!=null?p:w.providerMetadata,w.state="done",delete u.activeReasoningParts[a.id],d();break}case"file":{u.message.parts.push({type:"file",mediaType:a.mediaType,url:a.url}),d();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:a.sourceId,url:a.url,title:a.title,providerMetadata:a.providerMetadata}),d();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:a.sourceId,mediaType:a.mediaType,title:a.title,filename:a.filename,providerMetadata:a.providerMetadata}),d();break}case"tool-input-start":{const w=u.message.parts.filter($v);u.partialToolCalls[a.toolCallId]={text:"",toolName:a.toolName,index:w.length,dynamic:a.dynamic},a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}),d();break}case"tool-input-delta":{const w=u.partialToolCalls[a.toolCallId];w.text+=a.inputTextDelta;const{value:j}=await Mee(w.text);w.dynamic?y({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}):x({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}),d();break}case"tool-input-available":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d(),o&&!a.providerExecuted&&await o({toolCall:a});break}case"tool-input-error":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:void 0,rawInput:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d();break}case"tool-output-available":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-available",input:w.input,output:a.output,preliminary:a.preliminary})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-available",input:w.input,output:a.output,providerExecuted:a.providerExecuted,preliminary:a.preliminary})}d();break}case"tool-output-error":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-error",input:w.input,errorText:a.errorText,providerExecuted:a.providerExecuted})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-error",input:w.input,rawInput:w.rawInput,errorText:a.errorText,providerExecuted:a.providerExecuted})}d();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{a.messageId!=null&&(u.message.id=a.messageId),await v(a.messageMetadata),(a.messageId!=null||a.messageMetadata!=null)&&d();break}case"finish":{a.finishReason!=null&&(u.finishReason=a.finishReason),await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"message-metadata":{await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"error":{s==null||s(new Error(a.errorText));break}default:if(PZe(a)){(n==null?void 0:n[a.type])!=null&&await l6({value:a.data,schema:n[a.type]});const w=a;if(w.transient){i==null||i(w);break}const j=w.id!=null?u.message.parts.find(S=>w.type===S.type&&w.id===S.id):void 0;j!=null?j.data=w.data:u.message.parts.push(w),i==null||i(w),d()}}l.enqueue(a)})}}))}async function zZe({stream:e,onError:t}){const n=e.getReader();try{for(;;){const{done:r}=await n.read();if(r)break}}catch(r){t==null||t(r)}finally{n.releaseLock()}}Ay({prefix:"aitxt",size:24});Ay({prefix:"aiobj",size:24});var BZe=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,n)=>{this.queue.push(async()=>{try{await e(),t()}catch(r){n(r)}}),this.processQueue()})}};Ay({prefix:"aiobj",size:24});var VZe={};jZe(VZe,{object:()=>UZe,text:()=>HZe});var HZe=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),UZe=({schema:e})=>{const t=CZe(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:n}){const r=await Mee(n);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:r.value};default:{const s=r.state;throw new Error(`Unsupported parse state: ${s}`)}}},async parseOutput({text:n},r){const s=await j1({text:n});if(!s.success)throw new d6({message:"No object generated: could not parse the response.",cause:s.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});const o=await _A({value:s.value,schema:t});if(!o.success)throw new d6({message:"No object generated: response did not match schema.",cause:o.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});return o.value}}};async function WZe(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{const{name:n,type:r}=t,s=await new Promise((o,i)=>{const a=new FileReader;a.onload=l=>{var u;o((u=l.target)==null?void 0:u.result)},a.onerror=l=>i(l),a.readAsDataURL(t)});return{type:"file",mediaType:r,filename:n,url:s}}))}var qZe=class{constructor({api:e="/api/chat",credentials:t,headers:n,body:r,fetch:s,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=n,this.body=r,this.fetch=s,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var n,r,s,o,i;const a=await nh(this.body),l=await nh(this.headers),u=await nh(this.credentials),d={...ed(l),...ed(t.headers)},f=await((n=this.prepareSendMessagesRequest)==null?void 0:n.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...a,...t.body},headers:d,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),h=(r=f==null?void 0:f.api)!=null?r:this.api,m=(f==null?void 0:f.headers)!==void 0?ed(f.headers):d,p=(f==null?void 0:f.body)!==void 0?f.body:{...a,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},g=(s=f==null?void 0:f.credentials)!=null?s:u,x=await((o=this.fetch)!=null?o:globalThis.fetch)(h,{method:"POST",headers:i6({"Content-Type":"application/json",...m},`ai-sdk/${f6}`,o6()),body:JSON.stringify(p),credentials:g,signal:e});if(!x.ok)throw new Error((i=await x.text())!=null?i:"Failed to fetch the chat response.");if(!x.body)throw new Error("The response body is empty.");return this.processResponseStream(x.body)}async reconnectToStream(e){var t,n,r,s,o;const i=await nh(this.body),a=await nh(this.headers),l=await nh(this.credentials),u={...ed(a),...ed(e.headers)},d=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:u,credentials:l,requestMetadata:e.metadata})),f=(n=d==null?void 0:d.api)!=null?n:`${this.api}/${e.chatId}/stream`,h=(d==null?void 0:d.headers)!==void 0?ed(d.headers):u,m=(r=d==null?void 0:d.credentials)!=null?r:l,g=await((s=this.fetch)!=null?s:globalThis.fetch)(f,{method:"GET",headers:i6(h,`ai-sdk/${f6}`,o6()),credentials:m});if(g.status===204)return null;if(!g.ok)throw new Error((o=await g.text())!=null?o:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}},MA=class extends qZe{constructor(e={}){super(e)}processResponseStream(e){return MKe({stream:e,schema:AZe}).pipeThrough(new TransformStream({async transform(t,n){if(!t.success)throw t.error;n.enqueue(t.value)}}))}},YZe=class{constructor({generateId:e=vKe,id:t=e(),transport:n=new MA,messageMetadataSchema:r,dataPartSchemas:s,state:o,onError:i,onToolCall:a,onFinish:l,onData:u,sendAutomaticallyWhen:d}){this.activeResponse=void 0,this.jobExecutor=new BZe,this.sendMessage=async(f,h)=>{var m,p,g,b;if(f==null){await this.makeRequest({trigger:"submit-message",messageId:(m=this.lastMessage)==null?void 0:m.id,...h});return}let x;if("text"in f||"files"in f?x={parts:[...Array.isArray(f.files)?f.files:await WZe(f.files),..."text"in f&&f.text!=null?[{type:"text",text:f.text}]:[]]}:x=f,f.messageId!=null){const y=this.state.messages.findIndex(v=>v.id===f.messageId);if(y===-1)throw new Error(`message with id ${f.messageId} not found`);if(this.state.messages[y].role!=="user")throw new Error(`message with id ${f.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,y+1),this.state.replaceMessage(y,{...x,id:f.messageId,role:(p=x.role)!=null?p:"user",metadata:f.metadata})}else this.state.pushMessage({...x,id:(g=x.id)!=null?g:this.generateId(),role:(b=x.role)!=null?b:"user",metadata:f.metadata});await this.makeRequest({trigger:"submit-message",messageId:f.messageId,...h})},this.regenerate=async({messageId:f,...h}={})=>{const m=f==null?this.state.messages.length-1:this.state.messages.findIndex(p=>p.id===f);if(m===-1)throw new Error(`message ${f} not found`);this.state.messages=this.state.messages.slice(0,this.messages[m].role==="assistant"?m:m+1),await this.makeRequest({trigger:"regenerate-message",messageId:f,...h})},this.resumeStream=async(f={})=>{await this.makeRequest({trigger:"resume-stream",...f})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:f="output-available",tool:h,toolCallId:m,output:p,errorText:g})=>this.jobExecutor.run(async()=>{var b,x;const y=this.state.messages,v=y[y.length-1];this.state.replaceMessage(y.length-1,{...v,parts:v.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)),this.status!=="streaming"&&this.status!=="submitted"&&((b=this.sendAutomaticallyWhen)!=null&&b.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:(x=this.lastMessage)==null?void 0:x.id})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var f;this.status!=="streaming"&&this.status!=="submitted"||(f=this.activeResponse)!=null&&f.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=n,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=s,this.state=o,this.onError=i,this.onToolCall=a,this.onFinish=l,this.onData=u,this.sendAutomaticallyWhen=d}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:n,body:r,messageId:s}){var o,i,a,l;this.setStatus({status:"submitted",error:void 0});const u=this.lastMessage;let d=!1,f=!1,h=!1;try{const m={state:$Ze({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};m.abortController.signal.addEventListener("abort",()=>{d=!0}),this.activeResponse=m;let p;if(e==="resume-stream"){const b=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:n,body:r});if(b==null){this.setStatus({status:"ready"});return}p=b}else p=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:m.abortController.signal,metadata:t,headers:n,body:r,trigger:e,messageId:s});const g=b=>this.jobExecutor.run(()=>b({state:m.state,write:()=>{var x;this.setStatus({status:"streaming"}),m.state.message.id===((x=this.lastMessage)==null?void 0:x.id)?this.state.replaceMessage(this.state.messages.length-1,m.state.message):this.state.pushMessage(m.state.message)}}));await zZe({stream:LZe({stream:p,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:g,onError:b=>{throw b}}),onError:b=>{throw b}}),this.setStatus({status:"ready"})}catch(m){if(d||m.name==="AbortError")return d=!0,this.setStatus({status:"ready"}),null;h=!0,m instanceof TypeError&&(m.message.toLowerCase().includes("fetch")||m.message.toLowerCase().includes("network"))&&(f=!0),this.onError&&m instanceof Error&&this.onError(m),this.setStatus({status:"error",error:m})}finally{try{(i=this.onFinish)==null||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:d,isDisconnect:f,isError:h,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(m){console.error(m)}this.activeResponse=void 0}(a=this.sendAutomaticallyWhen)!=null&&a.call(this,{messages:this.state.messages})&&!h&&await this.makeRequest({trigger:"submit-message",messageId:(l=this.lastMessage)==null?void 0:l.id,metadata:t,headers:n,body:r})}};function GZe({messages:e}){const t=e[e.length-1];if(!t||t.role!=="assistant")return!1;const n=t.parts.reduce((s,o,i)=>o.type==="step-start"?i:s,-1),r=t.parts.slice(n+1).filter(J_).filter(s=>!s.providerExecuted);return r.length>0&&r.every(s=>s.state==="output-available"||s.state==="output-error")}function KZe(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let n,r=0;return function(...o){clearTimeout(n);const i=Date.now(),a=i-r,l=t-a;l<=0?(r=i,e.apply(this,o)):n=setTimeout(()=>{r=Date.now(),e.apply(this,o)},l)}}var ZZe=KZe;const XZe=hf(ZZe);var Dee=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Gn=(e,t,n)=>(Dee(e,t,"read from private field"),n?n.call(e):t.get(e)),ma=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},vc=(e,t,n,r)=>(Dee(e,t,"write to private field"),t.set(e,n),n);function QZe(e,t){return t!=null?XZe(e,t):e}var Qo,Lv,zv,kg,Eg,_g,lh,eT,tT,JZe=class{constructor(e=[]){ma(this,Qo,void 0),ma(this,Lv,"ready"),ma(this,zv,void 0),ma(this,kg,new Set),ma(this,Eg,new Set),ma(this,_g,new Set),this.pushMessage=t=>{vc(this,Qo,Gn(this,Qo).concat(t)),Gn(this,lh).call(this)},this.popMessage=()=>{vc(this,Qo,Gn(this,Qo).slice(0,-1)),Gn(this,lh).call(this)},this.replaceMessage=(t,n)=>{vc(this,Qo,[...Gn(this,Qo).slice(0,t),this.snapshot(n),...Gn(this,Qo).slice(t+1)]),Gn(this,lh).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,n)=>{const r=n?QZe(t,n):t;return Gn(this,kg).add(r),()=>{Gn(this,kg).delete(r)}},this["~registerStatusCallback"]=t=>(Gn(this,Eg).add(t),()=>{Gn(this,Eg).delete(t)}),this["~registerErrorCallback"]=t=>(Gn(this,_g).add(t),()=>{Gn(this,_g).delete(t)}),ma(this,lh,()=>{Gn(this,kg).forEach(t=>t())}),ma(this,eT,()=>{Gn(this,Eg).forEach(t=>t())}),ma(this,tT,()=>{Gn(this,_g).forEach(t=>t())}),vc(this,Qo,e)}get status(){return Gn(this,Lv)}set status(e){vc(this,Lv,e),Gn(this,eT).call(this)}get error(){return Gn(this,zv)}set error(e){vc(this,zv,e),Gn(this,tT).call(this)}get messages(){return Gn(this,Qo)}set messages(e){vc(this,Qo,[...e]),Gn(this,lh).call(this)}};Qo=new WeakMap;Lv=new WeakMap;zv=new WeakMap;kg=new WeakMap;Eg=new WeakMap;_g=new WeakMap;lh=new WeakMap;eT=new WeakMap;tT=new WeakMap;var ch,m6=class extends YZe{constructor({messages:e,...t}){const n=new JZe(e);super({...t,state:n}),ma(this,ch,void 0),this["~registerMessagesCallback"]=(r,s)=>Gn(this,ch)["~registerMessagesCallback"](r,s),this["~registerStatusCallback"]=r=>Gn(this,ch)["~registerStatusCallback"](r),this["~registerErrorCallback"]=r=>Gn(this,ch)["~registerErrorCallback"](r),vc(this,ch,n)}};ch=new WeakMap;function Iee({experimental_throttle:e,resume:t=!1,...n}={}){const r=C.useRef("chat"in n?n.chat:new m6(n));("chat"in n&&n.chat!==r.current||"id"in n&&r.current.id!==n.id)&&(r.current="chat"in n?n.chat:new m6(n));const o="id"in n?n.id:null,i=C.useCallback(f=>r.current["~registerMessagesCallback"](f,e),[e,o]),a=C.useSyncExternalStore(i,()=>r.current.messages,()=>r.current.messages),l=C.useSyncExternalStore(r.current["~registerStatusCallback"],()=>r.current.status,()=>r.current.status),u=C.useSyncExternalStore(r.current["~registerErrorCallback"],()=>r.current.error,()=>r.current.error),d=C.useCallback(f=>{typeof f=="function"&&(f=f(r.current.messages)),r.current.messages=f},[r]);return C.useEffect(()=>{t&&r.current.resumeStream()},[t,r]),{id:r.current.id,messages:a,setMessages:d,sendMessage:r.current.sendMessage,regenerate:r.current.regenerate,clearError:r.current.clearError,stop:r.current.stop,error:u,resumeStream:r.current.resumeStream,status:l,addToolResult:r.current.addToolOutput,addToolOutput:r.current.addToolOutput}}function eXe(e,t){return e.some(n=>n.tableName&&n.tableName===t.tableName||n.datamodelName&&n.datamodelName===t.datamodelName)}function tXe(e){return e.filter((n,r,s)=>r===s.findIndex(o=>o.tableName===n.tableName&&o.datamodelName===n.datamodelName))}function nXe(e,t){return e.filter(n=>!(n.connectionId===t.connectionId&&n.tableName===t.tableName&&n.datamodelName===t.datamodelName))}function rXe(e){return e.toLowerCase()==="clickhouse"?"{database_name}.{table_name}":e.toLowerCase()==="postgres"?"{schema_name}.{table_name}":"{table_name}"}function Ree(e){return e.map(r=>{const s=r.connectionType==="API"||r.connectionType==="S3"||r.connectionType==="S3Tables"?"DuckDb":r.connectionType;return r.datamodelName?{...r,databaseName:"",schemaName:"",tableName:"",connectionType:s,tableReferenceFormat:"dm.{table_name}"}:{...r,connectionType:s,tableReferenceFormat:rXe(s)}}).filter(r=>r.datamodelName?r.connectionId&&r.datamodelName&&r.connectionType:r.connectionId&&r.tableName&&r.connectionType)}function Aee(e){var n,r;if(!e)return"";let t="";try{const s=JSON.parse((e==null?void 0:e.message)||"{}");t=((r=(n=s==null?void 0:s.error)==null?void 0:n.lastError)==null?void 0:r.message)||(s==null?void 0:s.error)||e.message}catch{t=e.message}return t}function sXe(){var b;const{authToken:e,tokenProps:t}=Xe(),n=J(x=>x.dashboard.aiScopeTables),r=(b=L1().data)==null?void 0:b.assistantProfileId,{sendMessage:s,messages:o,setMessages:i,regenerate:a,status:l,addToolResult:u,error:d,stop:f,clearError:h}=Iee({transport:new MA({api:`${t.apiServiceUrl}/v1/assistant`,headers:()=>({Authorization:`Bearer ${e==null?void 0:e.accessToken}`}),body:()=>{const x=la.getState();return{assistantId:"dashboard-assistant",assistantProfileId:r,aiContext:x.currentAIContext,reasoningEffort:x.reasoningEffort,showReasoning:x.showReasoning}},credentials:"omit",prepareSendMessagesRequest:({messages:x,body:y})=>({body:{...y,messages:Dq(x)}})}),onToolCall:m,sendAutomaticallyWhen:GZe,onFinish({isAbort:x,isDisconnect:y,isError:v}){console.log(x?"[Dashboard Assistant] Stream aborted by user":y?"[Dashboard Assistant] Stream disconnected (network error)":v?"[Dashboard Assistant] Stream error occurred":"[Dashboard Assistant] Stream completed successfully")},onError(x){var y;if(x.name==="AbortError"||(y=x.message)!=null&&y.includes("aborted")){console.log("[Dashboard Assistant] Stream aborted (expected)");return}console.error("[Dashboard Assistant] Stream error:",x)}});async function m({toolCall:x}){if(x.toolName==="getCurrentTableScope"&&u({tool:x.toolName,toolCallId:x.toolCallId,output:{tables:Ree(n||[])}}),x.toolName==="getDashboardContext"){const y=J.getState().dashboard;u({tool:x.toolName,toolCallId:x.toolCallId,output:{dashboardContext:y}})}}const p=!["ready","error"].includes(l),g=Aee(d);return{sendMessage:s,regenerate:a,isLoading:p,messages:o,setMessages:i,status:l,stop:f,errorMessage:g,clearError:h}}function Pee(){var u;const{authToken:e,tokenProps:t}=Xe(),n=(u=L1().data)==null?void 0:u.assistantProfileId;function r(){return!(!n||!(e!=null&&e.accessToken))}const{data:s,isLoading:o,isFetching:i,isError:a}=En({queryKey:["assistant-profile",n],queryFn:()=>rr(`${t.apiServiceUrl}/v1/assistant/${n}`,(e==null?void 0:e.accessToken)||""),enabled:r()});return{assistantProfile:s==null?void 0:s.assistantProfile,isLoading:o,isFetching:i,isError:a}}function Oee({seedQuestions:e,handleSeedQuestionClick:t}){return e.length===0?null:c.jsxs("div",{className:"overflow-x-auto rounded-md border bg-muted/40 p-4",children:[c.jsxs("div",{className:"mb-3 flex items-center",children:[c.jsx(c8,{className:"mr-2 h-4 w-4 text-muted-foreground"}),c.jsx("h3",{className:"font-medium",children:"Example Questions"})]}),c.jsx("div",{className:"flex flex-wrap gap-2",children:e.map((n,r)=>c.jsx(se,{variant:"outline",size:"sm",onClick:()=>t(n),className:"text-sm",children:n},r))})]})}function N1(e,t={}){const{size:n="h-4 w-4"}=t,r=n;switch(e){case"table":return c.jsx(eM,{className:r});case"view":return c.jsx(tu,{className:r});case"materialized view":return c.jsx(Woe,{className:r});case"model":return c.jsx(U1,{className:r});case"file":return c.jsx(Ji,{className:r});case"dataset":return c.jsx($l,{className:r});case"upload":return c.jsx(sM,{className:r});case"url":return c.jsx(p8,{className:r});default:return c.jsx(Sx,{className:r})}}const Fee=D.forwardRef(({className:e,...t},n)=>c.jsxs("div",{className:"flex items-center px-3","cmdk-input-wrapper":"",children:[c.jsx(Ko,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),c.jsx($s.Input,{ref:n,className:X("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Fee.displayName=$s.Input.displayName;const uv=e=>e.label||(e==null?void 0:e.name),p6=e=>"description"in e?e.description:`${e.type} from ${e.database||"database"}`;function oXe({isOpen:e,onSelect:t,onDeselect:n,onClose:r,availableEntities:s,selectedEntities:o,onTabComplete:i,onSelectAll:a,onRemoveAll:l,onAddContext:u}){const{tokenProps:d}=Xe(),f=(d==null?void 0:d.type)==="dashboard",[h,m]=C.useState(""),[p,g]=C.useState(""),b=s.filter(S=>{if(!h)return!0;const N=uv(S).toLowerCase(),E=p6(S).toLowerCase(),_=h.toLowerCase();return N.includes(_)||E.includes(_)});C.useEffect(()=>{e||(m(""),g(""))},[e]),C.useEffect(()=>{b.length>0&&!p&&g(uv(b[0]))},[b,p]);const x=()=>{if(!p)return;const S=b.find(N=>uv(N)===p);S&&(o.some(E=>"id"in S&&"id"in E?S.id===E.id:S.name===E.name&&S.connectionId===E.connectionId)||t(S),i(S),r())},y=S=>{(S.key==="Tab"||S.key==="Enter")&&(S.preventDefault(),x())};if(!e)return null;const v=S=>o.some(N=>"id"in S&&"id"in N?S.id===N.id:S.name===N.name&&S.connectionId===N.connectionId),w=o.length===s.length,j=o.length>0;return c.jsx(c.Fragment,{children:c.jsxs(op,{shouldFilter:!1,value:p,onValueChange:g,onKeyDown:y,children:[s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b pr-3",children:[c.jsx(Fee,{placeholder:"Search entities...",value:h,onValueChange:m,className:"flex-1 border-0",autoFocus:!0}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"outline",size:"sm",className:"h-7 shrink-0",children:[c.jsx(Tr,{className:"mr-1 h-4 w-4"}),"Add"]})]}),s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b px-3 py-2 text-sm",children:[c.jsxs("div",{className:"text-muted-foreground",children:[o.length," ",o.length===1?"entity":"entities"," selected"]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),a==null||a()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},disabled:w,variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",children:"Select All"}),j&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),l==null||l()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",children:[c.jsx(St,{className:"h-3.5 w-3.5"}),"Clear"]})]})]}),c.jsxs(ip,{className:"min-h-60",children:[c.jsx(ap,{children:c.jsxs("div",{className:"flex flex-col items-center justify-center py-4",children:[c.jsx("p",{className:"mb-3 text-sm text-muted-foreground",children:"No entities found."}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},size:"sm",variant:"outline",className:"flex items-center gap-2",children:[c.jsx(Tr,{className:"h-4 w-4"}),"Add Datasets"]})]})}),c.jsx(lp,{children:b.map((S,N)=>{const E=v(S),_="id"in S?S.id:`${S.connectionId}-${S.name}`,k=uv(S);return c.jsxs(cp,{value:k,onSelect:()=>{E?n==null||n(S):t(S)},onMouseDown:M=>{M.preventDefault(),M.stopPropagation()},className:X("flex cursor-pointer items-start gap-2 p-2 hover:bg-gray-100"),children:[c.jsx("div",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center",children:N1(S.type)}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate font-medium",children:k}),c.jsx("div",{className:"truncate text-xs text-muted-foreground",children:p6(S)})]}),E&&c.jsx("div",{className:"ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-foreground/80",children:c.jsx(Ar,{className:"h-3 w-3 text-background"})})]},_)})})]})]})})}const nT=e=>e.name||e.name,iXe=e=>{const t=nT(e),n="description"in e?e.description:"",r=e.database||"",s=e.schema||"";return c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"font-medium",children:t}),n&&c.jsx("div",{className:"text-sm text-muted-foreground",children:n}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",e.type,r&&` • Database: ${r}`,s&&` • Schema: ${s}`]})]})};function aXe({entities:e,availableEntities:t,onRemoveEntity:n,onRemoveEntities:r}){const[s,o]=C.useState(!1),i=e.length>0;e.length,t.length,e.length<t.length;const a=e.length>=3?e.slice(0,2):e,l=e.length>=3?e.slice(2):[],u=l.length>0;return c.jsx(Ln,{children:c.jsx("div",{className:"space-y-2",children:i&&c.jsxs("div",{className:"flex flex-wrap gap-1",children:[a.map((d,f)=>{const h="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer gap-2 transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[N1(d.type,{size:"h-3 w-3"}),c.jsx("span",{className:"max-w-24 truncate text-xs",children:nT(d)}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>n(d),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-w-xs",children:iXe(d)})]},h)}),u&&c.jsxs(an,{open:s,onOpenChange:o,children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"flex cursor-pointer items-center gap-1 transition-colors hover:bg-secondary/80",onClick:()=>o(!0),children:[c.jsx(f8,{className:"h-3 w-3"}),c.jsxs("span",{className:"text-xs",children:[l.length," more"]}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>r(l),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-h-60 max-w-xs overflow-y-auto p-2",children:c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Additional Datasets"}),c.jsx("div",{className:"space-y-2",children:l.map(d=>{const f="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs("div",{className:"group flex items-center justify-between gap-2",children:[c.jsxs("div",{className:"flex items-start gap-2",children:[c.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:N1(d.type,{size:"h-3 w-3"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate text-sm font-medium",children:nT(d)}),c.jsxs("div",{className:"truncate text-xs text-muted-foreground",children:[d.type," ",d.database?`• ${d.database}`:""]})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",onClick:()=>{n(d),l.length===1&&o(!1)},children:c.jsx(St,{className:"h-3 w-3"})})]},f)})})]})})]})]})})})}function $ee(e){return e.type==="dataset"&&e.label||e.name}function lXe(e){const t=[];return t.push({label:"Type",value:e.type}),t.push({label:"Name",value:e.name}),e.connectionType&&t.push({label:"Connection",value:e.connectionType}),e.database&&t.push({label:"Database",value:e.database}),e.schema&&t.push({label:"Schema",value:e.schema}),e.type==="dataset"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="dataset"&&e.description&&t.push({label:"Description",value:e.description}),e.type==="model"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="model"&&e.description&&t.push({label:"Description",value:e.description}),t}function cXe({selectedEntities:e,onDeselectEntity:t}){return e.length===0?null:c.jsxs("div",{className:"mb-4 space-y-2",children:[c.jsxs(ae,{className:"mb-2 text-xs font-medium text-muted-foreground",children:["Selected Entities (",e.length,")"]}),c.jsx("div",{className:"max-h-32 overflow-y-auto rounded-md border border-border/50 p-2",children:c.jsx("div",{className:"flex flex-wrap gap-1",children:e.map((n,r)=>c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer pr-6 text-xs transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[c.jsxs("span",{className:"mr-1 text-gray-500",children:["[",n.type,"]"]}),$ee(n),c.jsx("button",{onClick:s=>{s.stopPropagation(),t(n)},className:"absolute right-1 top-1/2 -translate-y-1/2 rounded-full p-0.5 opacity-0 transition-opacity hover:bg-red-100 group-hover:opacity-100",children:c.jsx(St,{className:"h-2.5 w-2.5 text-red-500"})})]},`${n.type}-${n.name}-${r}`))})})]})}function uXe(e){const{tokenProps:t}=Xe(),n=J(l=>l.authToken)||e;Ae(l=>l.selectedConnectionId),Ae(l=>{var u,d;return(d=(u=l==null?void 0:l.card)==null?void 0:u.dataSource)==null?void 0:d.connectionId});const{refetch:r,isPending:s,data:o,isLoading:i,isError:a}=En({queryKey:["semantic-domains"],queryFn:()=>rr(`${t.apiServiceUrl}/v1/domains`,(n==null?void 0:n.accessToken)||""),enabled:!!(n!=null&&n.accessToken)});return{isPending:s,error:a,semanticDomainsData:o,semanticDomains:(o==null?void 0:o.domains)||[],isSemanticDomainsLoading:i,isSemanticDomainsError:a,refetchSemanticDomains:r}}function dXe(e,t){const{tokenProps:n}=Xe(),r=J(u=>u.authToken)||t,{refetch:s,isPending:o,data:i,isLoading:a,isError:l}=En({queryKey:["datasets",e],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datasets`,(r==null?void 0:r.accessToken)||"",{domainId:e}),enabled:!!(r!=null&&r.accessToken)&&!!e});return{isPending:o,error:l,datasets:(i==null?void 0:i.datasets)||[],isDatasetsLoading:a,isDatasetsError:l,refetchDatasets:s}}function fXe(e){var g,b;const{tokenProps:t}=Xe(),n=J(x=>x.authToken)||e,{connections:r}=Ci(e),s=Ae(x=>{var y,v;return(v=(y=x==null?void 0:x.card)==null?void 0:y.dataSource)==null?void 0:v.connectionId}),o=r==null?void 0:r.find(x=>x.id===s),i=o==null?void 0:o.type,a=o==null?void 0:o.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.database)||"Database";function u(x){return s&&x?!(x==="API"||x==="S3"):!1}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["databases",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/databases`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:u(i)}),p=(b=d==null?void 0:d.databases)==null?void 0:b.map(x=>({id:x.database_name,name:x.database_name}));return{isPending:f,error:h,databases:p||[],refetch:m,label:l}}function hXe(e){var g;const{tokenProps:t}=Xe(),n=J(b=>b.authToken)||e,{connections:r}=Ci(e),s=Ae(b=>{var x,y;return(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.connectionId}),o=Ae(b=>{var x,y,v;return(v=(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.dbSelection)==null?void 0:v.database}),i=r==null?void 0:r.find(b=>b.id===s),a=i==null?void 0:i.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.schema)||"Schema";function u(){return!(!s||(i==null?void 0:i.type)==="API"||(i==null?void 0:i.type)==="S3"||!o||!(a!=null&&a.path.includes("schema")))}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["schemas",s,o],queryFn:()=>rr(`${t.apiServiceUrl}/v1/schemas`,(n==null?void 0:n.accessToken)||"",{connection_id:s,database_name:o}),enabled:u()}),p=d==null?void 0:d.schemas.map(b=>({id:b.schema_name,name:b.schema_name}));return{isPending:f,error:h,schemas:p||[],refetch:m,label:l}}function Lee(e){const{tokenProps:t}=Xe(),n=J(h=>h.authToken)||e,{connections:r}=Ci(e),s=Ae(h=>{var m,p;return(p=(m=h==null?void 0:h.card)==null?void 0:m.dataSource)==null?void 0:p.connectionId}),o=r.find(h=>h.id===s);function i(){return!(!(n!=null&&n.accessToken)||!s)}const{data:a,isPending:l,error:u,refetch:d}=En({queryKey:["dataModels",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/datamodels`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:i()}),f=a==null?void 0:a.datamodels.map(h=>({id:h.id,name:h.name,label:h.label,description:h.description,connectionId:s,dialect:h.dialect,connectionType:o==null?void 0:o.type,type:"model",database:h.database,schema:h.schema}));return{isPending:l,error:u,dataModels:f||[],refetch:d}}function mXe(){var j,S,N;const e=Ae(E=>E.card.dataSource);Ae(E=>E.actions.updateDirectSource);const t=Ae(E=>E.actions.updateDataSource),[n,r]=C.useState(""),{selectedConnection:s,error:o}=Ci(),{databases:i,isPending:a,error:l,label:u}=fXe(),{schemas:d,isPending:f,error:h,label:m}=hXe(),{error:p}=Lee(),g=s==null?void 0:s.capabilities.path.includes("schema"),b=s==null?void 0:s.capabilities.path.includes("database"),x=u==null?void 0:u.toLowerCase(),y=m==null?void 0:m.toLowerCase(),v=E=>{e&&t({...e,dbSelection:{database:E,schema:"",entityType:"table"},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})},w=E=>{var k;if(!((k=e==null?void 0:e.dbSelection)!=null&&k.database))return;const _=e.dbSelection||{database:"",schema:"",entityType:"table"};t({...e,dbSelection:{..._,schema:E},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})};return c.jsxs(c.Fragment,{children:[(o||l||h||p)&&c.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-3",children:[c.jsx("div",{className:"flex items-center",children:c.jsxs("div",{className:"text-sm text-red-800",children:[c.jsx("strong",{children:"Error loading data:"}),c.jsxs("ul",{className:"mt-1 list-inside list-disc",children:[o&&c.jsxs("li",{children:["Connections: ",o]}),l&&c.jsxs("li",{children:[u,": ",l.message]}),h&&c.jsxs("li",{children:[m,": ",h.message]}),p&&c.jsxs("li",{children:["Data Models: ",p.message]})]})]})}),c.jsx(se,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>window.location.reload(),children:"Retry"})]}),c.jsxs("div",{className:"space-y-4",children:[b&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:u}),c.jsxs(ot,{value:((j=e==null?void 0:e.dbSelection)==null?void 0:j.database)||"",onValueChange:v,disabled:a,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[a&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:l?`Error loading ${x}`:a?`Loading ${x}...`:`Select ${x}...`})]})}),c.jsx(rt,{children:i.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]}),((S=e==null?void 0:e.dbSelection)==null?void 0:S.database)&&g&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:m}),c.jsxs(ot,{value:((N=e==null?void 0:e.dbSelection)==null?void 0:N.schema)||"",onValueChange:w,disabled:f,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[f&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:h?`Error loading ${y}`:f?`Loading ${y}...`:`Select ${y}...`})]})}),c.jsx(rt,{children:d.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]})]})]})}function pXe(){const e=Ae(l=>l.card.dataSource),t=Ae(l=>l.actions.updateDataSource),[n,r]=C.useState(!1),s=l=>{if(!l||(e==null?void 0:e.mode)!=="upload")return;const u=Array.from(l).map(f=>({id:`file-${Date.now()}-${Math.random()}`,name:f.name,type:"upload",connectionId:"default",connectionType:"none",label:f.name,description:`Uploaded ${new Date().toLocaleString()}`,originalName:f.name,file:f})),d=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...d,...u]})},o=l=>{if(!e)return;const u=(e.selectedEntities||[]).filter(d=>d.id!==l);t({...e,selectedEntities:u})},i=l=>{if(l===0)return"0 Bytes";const u=1024,d=["Bytes","KB","MB","GB"],f=Math.floor(Math.log(l)/Math.log(u));return Number.parseFloat((l/Math.pow(u,f)).toFixed(2))+" "+d[f]},a=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Upload Files"}),c.jsxs("div",{className:`rounded-lg border-2 border-dashed p-6 text-center transition-colors ${n?"border-blue-400 bg-blue-50":"border-gray-300 hover:border-gray-400"}`,onDragOver:l=>{l.preventDefault(),r(!0)},onDragLeave:()=>r(!1),onDrop:l=>{l.preventDefault(),r(!1),s(l.dataTransfer.files)},children:[c.jsx(sM,{className:"mx-auto mb-2 h-8 w-8 text-gray-400"}),c.jsx("p",{className:"mb-2 text-sm text-gray-600",children:"Drag and drop files here, or click to select"}),c.jsx("input",{type:"file",multiple:!0,className:"hidden",id:"file-upload",onChange:l=>s(l.target.files),accept:".csv,.json,.xlsx,.xls"}),c.jsx(se,{variant:"outline",size:"sm",onClick:()=>{var l;return(l=document.getElementById("file-upload"))==null?void 0:l.click()},children:"Select Files"}),c.jsx("p",{className:"mt-2 text-xs text-gray-500",children:"Supports CSV, JSON, Excel files"})]})]}),a.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Uploaded Files (",a.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:a.map(l=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Ji,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:l.originalName}),c.jsx("p",{className:"text-xs text-gray-500",children:l.file?i(l.file.size):""})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>o(l.id),children:c.jsx(St,{className:"h-3 w-3"})})]},l.id))})]})]})}function gXe(){const e=Ae(f=>f.card.dataSource),t=Ae(f=>f.actions.updateDataSource),[n,r]=C.useState(""),[s,o]=C.useState(""),[i,a]=C.useState("api"),l=()=>{if(!n.trim()||!s.trim()||!e)return;const f={id:`url-${Date.now()}-${Math.random()}`,name:n.trim(),type:"url",connectionId:"default",connectionType:"none",label:n.trim(),description:`URL source of type ${i}`,url:s.trim(),sourceType:i,originalName:n.trim()},h=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...h,f]}),r(""),o(""),a("api")},u=f=>{if(!e)return;const h=(e.selectedEntities||[]).filter(m=>m.id!==f);t({...e,selectedEntities:h})},d=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"URL Sources"}),c.jsxs("div",{className:"space-y-3 rounded-lg border bg-gray-50 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Source Name"}),c.jsx(mn,{placeholder:"e.g., Sales API, Customer Data",value:n,onChange:f=>r(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"URL"}),c.jsx(mn,{placeholder:"https://api.example.com/data",value:s,onChange:f=>o(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Type"}),c.jsxs("select",{value:i,onChange:f=>a(f.target.value),className:"h-8 w-full rounded-md border border-gray-300 px-2 text-sm",children:[c.jsx("option",{value:"api",children:"API Endpoint"}),c.jsx("option",{value:"csv",children:"CSV File"}),c.jsx("option",{value:"json",children:"JSON File"})]})]}),c.jsxs(se,{onClick:l,disabled:!n.trim()||!s.trim(),size:"sm",className:"w-full",children:[c.jsx(Tr,{className:"mr-1 h-3 w-3"}),"Add Source"]})]})]}),d.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Added Sources (",d.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:d.map(f=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Sx,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:f.name}),c.jsx("p",{className:"truncate text-xs text-gray-500",children:f.url})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>u(f.id),children:c.jsx(St,{className:"h-3 w-3"})})]},f.id))})]})]})}function bXe(e,t){var y,v;const{tokenProps:n}=Xe(),r=J(w=>w.authToken)||t,{connections:s}=Ci(t),o=Ae(w=>{var j,S;return(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.connectionId}),i=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.database}),a=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.schema}),l=s==null?void 0:s.find(w=>w.id===o),u=l==null?void 0:l.capabilities,d=((y=u==null?void 0:u.labels)==null?void 0:y.schema)||"Schema";function f(){return o?(l==null?void 0:l.type)==="API"||(l==null?void 0:l.type)==="S3"?!0:!(!i||u!=null&&u.path.includes("schema")&&!a):!1}const{data:h,isPending:m,isLoading:p,error:g,refetch:b}=En({queryKey:[e,o,i,a],queryFn:()=>rr(`${n.apiServiceUrl}/v1/${e}s`,(r==null?void 0:r.accessToken)||"",{connection_id:o,database_name:i,schema_name:a}),enabled:f()}),x=(v=h==null?void 0:h[`${e}s`])==null?void 0:v.map(w=>{var j;return{connectionId:l==null?void 0:l.id,connectionType:l==null?void 0:l.type,dialect:l==null?void 0:l.dialect,type:e,dbObjectType:(j=w==null?void 0:w.table_type)==null?void 0:j.toLowerCase(),id:w[`${e}_name`],database:i,schema:a,name:w[`${e}_name`]}});return{isPending:m,isLoading:p,error:g,entities:x||[],refetch:b,label:d}}function k1({title:e,message:t}){return c.jsx("div",{className:"rounded-xl border border-destructive/40 bg-destructive/10 p-4 text-destructive shadow-sm",children:c.jsxs("div",{className:"flex items-start gap-4",children:[c.jsx(Yl,{className:"h-6 w-6 flex-shrink-0"}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h4",{className:"text-base font-semibold",children:e}),t&&c.jsx("p",{className:"mt-1 text-sm text-destructive/90",children:t})]})]})})}function xXe({dataSource:e,onSelectionChange:t,selectedEntities:n,onRegisterSelectAll:r}){const{connections:s,isPending:o}=Ci(),[i,a]=C.useState(""),[l,u]=C.useState(""),[d,f]=C.useState("tables"),{updateDataSource:h,setSelectedConnectionId:m}=cr(),{entities:p,isLoading:g,error:b}=bXe("table"),{dataModels:x,isPending:y,error:v}=Lee(),w=k=>{const M=s.find(P=>P.id===k);if(!M)return;const T=M.type==="upload"?"upload":M.type==="url"?"url":"database";h({...e,connectionId:k,connectionType:M.type,mode:T,dbSelection:{database:"",schema:"",entityType:"table"}}),m(k)},j=k=>{var O,I;const M=n||[],T=M.some($=>$.name===k.name&&$.type===k.type);let P;if(T)P=M.filter($=>!($.name===k.name&&$.type===k.type));else{const $={connectionId:e.connectionId,connectionType:e.connectionType,type:k.type,dbObjectType:k.dbObjectType,database:((O=e.dbSelection)==null?void 0:O.database)||"",schema:((I=e.dbSelection)==null?void 0:I.schema)||"",name:k.name,dialect:k.dialect};P=[...M,$]}t==null||t(P)},S=k=>{const M=n||[],T=M.some(O=>O.type==="model"&&O.name===k.name);let P;T?P=M.filter(O=>!(O.type==="model"&&O.name===k.name)):P=[...M,k],t==null||t(P)},N=p.filter(k=>k.name.toLowerCase().includes(i.toLowerCase())),E=x.filter(k=>k.name.toLowerCase().includes(l.toLowerCase())),_=C.useCallback(()=>{if(!t)return;const k=n||[];let M=[...k];if(d==="tables"){const P=N.filter(O=>!k.some(I=>I.name===O.name&&I.type==="table")).map(O=>{var I,$;return{connectionId:e.connectionId,connectionType:e.connectionType,type:"table",dbObjectType:O.dbObjectType,database:((I=e.dbSelection)==null?void 0:I.database)||"",schema:(($=e.dbSelection)==null?void 0:$.schema)||"",name:O.name,dialect:O.dialect}});M=[...k,...P]}else if(d==="datamodels"){const T=E.filter(P=>!k.some(O=>O.name===P.name&&O.type==="model"));M=[...k,...T]}t(M)},[d,N,E,n,e,t]);return C.useEffect(()=>{r&&r(_)},[r,_]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"font-medium= text-sm",children:"Connection"}),c.jsxs(ot,{value:(e==null?void 0:e.connectionId)||"",onValueChange:w,disabled:o,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:o?"Loading connections...":"Select connection..."})}),c.jsx(rt,{children:s.map(k=>c.jsx(ve,{className:"hover:bg-muted",value:k.id,children:c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx($l,{className:"h-4 w-4 flex-shrink-0"}),c.jsx("span",{className:"truncate",children:k.name}),c.jsx(Ve,{variant:"secondary",className:"flex-shrink-0 text-xs",children:k.type})]})},k.id))})]})]}),(e==null?void 0:e.connectionId)&&c.jsxs(c.Fragment,{children:[e.connectionType==="upload"&&c.jsx(pXe,{}),e.connectionType==="url"&&c.jsx(gXe,{}),e.connectionType!=="upload"&&e.connectionType!=="url"&&c.jsxs(c.Fragment,{children:[c.jsx(mXe,{}),c.jsx("div",{className:"space-y-4",children:c.jsx("div",{className:"space-y-2",children:c.jsxs(Os,{defaultValue:"tables",value:d,onValueChange:k=>f(k),className:"w-full",children:[c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsxs(nn,{value:"tables",children:["Tables & Views (",N.length,")"]}),c.jsxs(nn,{value:"datamodels",children:["Data Models (",E.length,")"]})]}),c.jsxs(pr,{value:"tables",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search tables and views...",value:i,onChange:k=>a(k.target.value),className:"h-8 text-sm",disabled:g}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:g?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading tables..."}):b?c.jsx(k1,{title:"Error loading tables",message:b.message||"Failed to load tables. Please try again.",onRetry:()=>window.location.reload()}):N.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No tables or views found"}):N.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="table");return c.jsxs("div",{className:"group flex cursor-pointer items-center space-x-2 rounded p-2 hover:bg-muted",onClick:()=>j(k),children:[c.jsx(cn,{id:`table-${k.name}`,checked:M,onCheckedChange:()=>j(k),onClick:T=>T.stopPropagation(),disabled:g}),c.jsxs(ae,{className:"flex flex-1 cursor-pointer items-center gap-2",children:[k.name,k.dbObjectType==="view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"View"}),k.dbObjectType==="materialized view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"Materialized View"})]})]},k.name)})})]}),c.jsxs(pr,{value:"datamodels",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search data models...",value:l,onChange:k=>u(k.target.value),className:"h-8 text-sm",disabled:y}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:y?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading data models..."}):v?c.jsx(k1,{title:"Error loading data models",message:v.message||"Failed to load data models. Please try again.",onRetry:()=>window.location.reload()}):E.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No data models found"}):E.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="model");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-muted",onClick:()=>S(k),children:[c.jsx(cn,{id:`dataModel-${k.name}`,checked:M,onCheckedChange:()=>S(k),onClick:T=>T.stopPropagation(),disabled:y}),c.jsxs("div",{className:"flex flex-1 cursor-pointer flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer",children:k.name}),c.jsx("span",{className:"text-xs text-muted-foreground",children:k.description})]})]},k.name)})})]})]})})})]})]})]})}function yXe({dataSource:e,onDataSourceUpdate:t,onSelectionChange:n,selectedEntities:r,allowedDomainIds:s=[],isRestricted:o=!1,autoSelectedDomainId:i,onRegisterSelectAll:a}){var j;const[l,u]=C.useState(""),d=C.useCallback(S=>{const N={...e,connectionId:e.connectionId||"none",connectionType:e.connectionType||"none",mode:"semanticDomain",semanticDomainId:S};t({...N})},[e,t]);C.useEffect(()=>{i&&!(e!=null&&e.semanticDomainId)&&d(i)},[i,e==null?void 0:e.semanticDomainId,d]);const{semanticDomains:f,isPending:h,error:m}=uXe(),p=o?f.filter(S=>s.includes(S.id)):f,{datasets:g,isPending:b,error:x}=dXe(e==null?void 0:e.semanticDomainId),y=S=>{const N=r||[],E=N.some(k=>k.id===S.id&&k.type==="dataset");let _;if(E)_=N.filter(k=>!(k.id===S.id&&k.type==="dataset"));else{const k={id:S.id,datasetType:S.type,name:S.name||S.table,label:S.label,domainId:S.domainId,description:S.description,database:S.database,schema:S.schema,type:"dataset",connectionId:S.connectionId,connectionType:S.connectionType,dialect:S.dialect,datamodelId:S.datamodelId,sql:S.sql};_=[...N,k]}n==null||n(_)},v=g.filter(S=>S.name.toLowerCase().includes(l.toLowerCase())),w=C.useCallback(()=>{if(!n||!(e!=null&&e.semanticDomainId))return;const S=r||[],E=v.filter(k=>!S.some(M=>M.id===k.id&&M.type==="dataset")).map(k=>({id:k.id,datasetType:k.type,name:k.name||k.table,label:k.label,domainId:k.domainId,description:k.description,database:k.database,schema:k.schema,type:"dataset",connectionId:k.connectionId,connectionType:k.connectionType,dialect:k.dialect,datamodelId:k.datamodelId,sql:k.sql})),_=[...S,...E];n(_)},[v,r,e==null?void 0:e.semanticDomainId,n]);return C.useEffect(()=>{a&&a(w)},[a,w]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Semantic Domain"}),c.jsxs(ot,{value:(e==null?void 0:e.semanticDomainId)||"",onValueChange:d,disabled:h||o&&!!i,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:h?"Loading semantic domains...":o&&i?"Loading domain...":"Select semantic domain...",children:((j=p.find(S=>S.id===(e==null?void 0:e.semanticDomainId)))==null?void 0:j.label)||"Select semantic domain"})}),c.jsx(rt,{children:p.map(S=>c.jsx(ve,{className:"hover:bg-muted",value:S.id,children:c.jsxs("div",{className:"flex flex-col items-start",children:[c.jsx("span",{className:"font-medium",children:S.label}),c.jsx("span",{className:"text-xs",children:S.description})]})},S.id))})]}),m&&c.jsx(k1,{title:"Error loading semantic models",message:m.message})]}),(e==null?void 0:e.semanticDomainId)&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"Datasets"}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search datasets...",value:l,onChange:S=>u(S.target.value),className:"h-8 text-sm",disabled:b}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:b?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"Loading datasets..."}):x?c.jsx(k1,{title:"Error loading datasets",message:x.message||"Failed to load datasets. Please try again.",onRetry:()=>window.location.reload()}):v.length===0?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:l?"No datasets match your search":"No datasets available"}):v.map(S=>{const N=r.some(E=>E.id===S.id&&E.type==="dataset");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-gray-50",onClick:()=>y(S),children:[c.jsx(cn,{id:`dataset-${S.id}`,checked:N,onCheckedChange:()=>y(S),onClick:E=>E.stopPropagation(),disabled:b}),c.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer font-medium",children:S.label||S.name}),c.jsx("span",{className:"text-xs text-gray-500",children:S.description})]})]},S.label||S.name)})})]})]})]})}function DA({open:e,onOpenChange:t,dataSource:n,dialogMode:r,incomingSelectedEntities:s}){const{tokenProps:o}=Xe(),{allowedSemanticDomains:i}=o,[a,l]=C.useState([]),{updateDataSource:u}=cr(),d=J(M=>M.isVisualEditing),f=J(M=>M.dashboard.aiContext),{setAiContext:h}=Wt(),m=C.useRef(null),[p,g]=C.useState(!1),b=i&&i.length>0,x=!b,y=b&&i.length===1?i[0]:void 0,v=C.useCallback(M=>{const T=M;u({...n,connectionId:(n==null?void 0:n.connectionId)||"",connectionType:(n==null?void 0:n.connectionType)||"",mode:T,selectedEntities:(n==null?void 0:n.selectedEntities)||[],...T!=="semanticDomain"&&{semanticDomainId:void 0}})},[n,u]),w=C.useCallback(M=>{u({...n,...M})},[n,u]);C.useEffect(()=>{b&&n.mode!=="semanticDomain"&&v("semanticDomain")},[b,n.mode,v]),C.useEffect(()=>{y&&!n.semanticDomainId&&w({semanticDomainId:y})},[y,n.semanticDomainId,w]),C.useEffect(()=>{e?l(s||[]):(m.current=null,g(!1))},[e,n==null?void 0:n.selectedEntities,r,u,s,n]);const j=M=>{const T=a.filter(P=>!(P.name===M.name&&P.type===M.type));l(T)},S=()=>{l([])},N=C.useCallback(M=>{l(M)},[]),E=C.useCallback(()=>{m.current&&m.current()},[]),_=C.useCallback(M=>{m.current=M,g(!0)},[]);function k(){var M,T;if(r==="aiContext")d&&u(n),h({...f,selectedEntities:a}),t(!1);else if(r==="dataSource"){if(n.mode==="semanticDomain"){const P=(M=a==null?void 0:a[0])==null?void 0:M.connectionId,O=(T=a==null?void 0:a[0])==null?void 0:T.connectionType;u({...n,connectionId:P,connectionType:O,selectedEntities:a})}else u({...n,selectedEntities:a});t(!1)}}return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsx(zr,{className:"flex max-w-2xl flex-col",children:c.jsxs("div",{children:[c.jsxs(Br,{className:"flex-shrink-0",children:[c.jsx(Vr,{children:r==="aiContext"?"Data Context":"Select Data Source"}),c.jsx(is,{children:r==="aiContext"?"Set the overall data scope for the dashboard":"Select data sets to analyze"})]}),c.jsx("div",{className:"flex-1 grow overflow-y-auto py-4",children:c.jsxs("div",{className:"space-y-4",children:[x&&c.jsx("div",{className:"space-y-2",children:c.jsx(Os,{defaultValue:(n==null?void 0:n.mode)||"database",value:(n==null?void 0:n.mode)||"database",onValueChange:v,className:"w-full",children:c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsx(nn,{value:"database",children:"Direct Source"}),c.jsx(nn,{value:"semanticDomain",children:"Semantic Domain"})]})})}),(n==null?void 0:n.mode)==="semanticDomain"&&c.jsx(yXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,allowedDomainIds:i||[],isRestricted:b,autoSelectedDomainId:y,onRegisterSelectAll:_}),(n==null?void 0:n.mode)==="database"&&x&&c.jsx(xXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,onRegisterSelectAll:_})]})}),c.jsx(cXe,{selectedEntities:a,onDeselectEntity:j}),c.jsx(os,{className:"flex-shrink-0",children:c.jsx("div",{className:"flex w-full justify-between",children:c.jsxs("div",{className:"flex grow justify-end gap-2",children:[c.jsx(se,{variant:"outline",onClick:E,disabled:!p,children:"Select All"}),c.jsx(se,{variant:"outline",onClick:S,disabled:a.length===0,children:"Clear All"}),c.jsxs(se,{variant:"outline",onClick:()=>t(!1),children:[c.jsx(St,{className:"mr-2 h-4 w-4"}),"Close"]}),c.jsxs(se,{onClick:k,children:[c.jsx(Ar,{className:"mr-2 h-4 w-4"}),"Accept"]})]})})})]})})})}function vXe({onFilesSelected:e,disabled:t=!1,currentFileCount:n=0,className:r}){const s=C.useRef(null),o=async a=>{const l=Array.from(a.target.files||[]);if(l.length===0)return;const u=gl-n;if(l.length>u){ze.error(`You can only attach ${gl} files per message. You have ${u} slot(s) remaining.`);return}const{valid:d,errors:f}=SJ(l);if(f.forEach(({file:h,error:m})=>{ze.error(`${h.name}: ${m}`)}),d.length>0)try{const h=await Promise.all(d.map(m=>vA(m)));e(h)}catch(h){console.error("Failed to process files:",h),ze.error("Failed to process one or more files")}s.current&&(s.current.value="")},i=()=>{var a;(a=s.current)==null||a.click()};return c.jsxs(c.Fragment,{children:[c.jsx("input",{ref:s,type:"file",multiple:!0,accept:".png,.jpg,.jpeg,.gif,.webp,.pdf,.txt,.md,.csv,.json,.xml,.js,.jsx,.ts,.tsx,.py,.sql",onChange:o,className:"hidden",disabled:t||n>=gl}),c.jsx(se,{variant:"secondary",size:"sm",className:`h-7 px-2 ${r}`,onClick:i,disabled:t||n>=gl,title:n>=gl?`Maximum ${gl} files allowed`:"Attach files",children:c.jsx(ZT,{className:"h-4 w-4 text-muted-foreground"})})]})}function wXe({children:e,onFilesDropped:t,disabled:n=!1,currentFileCount:r=0,className:s}){const[o,i]=C.useState(!1),a=C.useCallback(f=>{f.preventDefault(),f.stopPropagation(),n||i(!0)},[n]),l=C.useCallback(f=>{f.preventDefault(),f.stopPropagation();const h=f.currentTarget.getBoundingClientRect(),m=f.clientX,p=f.clientY;(m<h.left||m>=h.right||p<h.top||p>=h.bottom)&&i(!1)},[]),u=C.useCallback(f=>{f.preventDefault(),f.stopPropagation()},[]),d=C.useCallback(async f=>{if(f.preventDefault(),f.stopPropagation(),i(!1),n)return;const h=Array.from(f.dataTransfer.files);if(h.length===0)return;const m=gl-r;if(h.length>m){ze.error(`You can only attach ${gl} files per message. You have ${m} slot(s) remaining.`);return}const{valid:p,errors:g}=SJ(h);if(g.forEach(({file:b,error:x})=>{ze.error(`${b.name}: ${x}`)}),p.length>0)try{const b=await Promise.all(p.map(x=>vA(x)));t(b),ze.success(`${b.length} file(s) attached successfully`)}catch(b){console.error("Failed to process files:",b),ze.error("Failed to process one or more files")}},[n,r,t]);return c.jsxs("div",{className:X("relative",s),onDragEnter:a,onDragLeave:l,onDragOver:u,onDrop:d,children:[e,o&&!n&&c.jsx("div",{className:"pointer-events-none absolute inset-0 z-50 flex items-center justify-center rounded-lg border-2 border-dashed border-primary bg-primary/5 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-2",children:[c.jsx(sM,{className:"h-8 w-8 text-primary"}),c.jsx("p",{className:"text-sm font-medium text-primary",children:"Drop files here to upload"}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[gl-r," slot(s) available"]})]})})]})}const IA=C.forwardRef(({input:e,setInput:t,handleInputChange:n,handleSubmit:r,isLoading:s,stop:o,onFocus:i,status:a,assistantType:l},u)=>{const[d,f]=C.useState(!1),[h,m]=C.useState(!1),[p,g]=C.useState(!1),b=C.useRef(null),x=dp();gje(),pje();const{setCurrentAIContext:y,updateSelectedEntities:v,setReasoningEffort:w,setShowReasoning:j}=WC(),{queueMessage:S}=fp(),{addFileAttachment:N,removeFileAttachment:E,clearFileAttachments:_,getFileAttachments:k}=QD(),M=XD(l),T=Ae(U=>U.card.dataSource),P=J(U=>U.dashboard.aiContext),O=J(U=>{var G;return(G=U.dashboard.aiContext)==null?void 0:G.selectedEntities});C.useEffect(()=>{u&&"current"in u&&(u.current=b.current)},[u]);const I=C.useCallback(()=>{const U=b.current;if(U){if(!e||e.length===0){U.style.height="10px";return}U.style.height="auto";const G=Math.min(Math.max(U.scrollHeight,10),200);U.style.height=`${G}px`}},[e]);C.useEffect(()=>{I()},[I]),C.useEffect(()=>{const U=setTimeout(()=>{I()},0);return()=>clearTimeout(U)},[I]);const $=()=>{const U=e.trim();!U&&M.length===0||(a!=="ready"?(S(l,U,M),t(""),_(l)):r({preventDefault:()=>{}}))},V=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),$()),U.key==="@"&&(q(),f(!0))},W=C.useCallback(U=>{const G=WUe(U.nativeEvent);G.length>0&&(U.preventDefault(),G.forEach(async Z=>{const Q=await vA(Z);N(l,Q)}))},[N,l]),L=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),R=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),z=C.useCallback(U=>{E(l,U)},[E,l]),F=U=>{if(x.selectedEntities.some(Z=>Z.id&&Z.id===U.id||Z.name===U.name)){const Z=x.selectedEntities.filter(Q=>!(Q.id&&Q.id===U.id||Q.name===U.name));y({selectedEntities:Z})}else{const Z=[...x.selectedEntities,U];y({selectedEntities:Z})}},A=U=>{F(U)},H=U=>{var Q;if(!x.selectedEntities.some(K=>K.id&&K.id===U.id||K.name===U.name)){const K=[...x.selectedEntities,U];y({selectedEntities:K})}const Z="label"in U?U.label:U.name;t(e+`@${Z} `),f(!1),(Q=b.current)==null||Q.focus()},B=U=>{const G=x.selectedEntities.filter(K=>!(K.id&&K.id===U.id||K.name===U.name));y({selectedEntities:G});const Q=`@${"label"in U?U.label:U.name}`;e.includes(Q)&&t(e.replace(Q,"").trim())},Y=U=>{const G=new Set(U.map(K=>K.id||K.name)),Z=x.selectedEntities.filter(K=>!G.has(K.id||K.name));y({selectedEntities:Z});let Q=e;U.forEach(K=>{const le=`@${"label"in K?K.label:K.name}`;Q=Q.replace(le,"").trim()}),t(Q)},q=C.useCallback(()=>{x.selectedEntities.length===0&&y({selectedEntities:(P==null?void 0:P.selectedEntities)||[]})},[x.selectedEntities.length,P==null?void 0:P.selectedEntities,y]);return c.jsxs(wXe,{onFilesDropped:L,currentFileCount:M.length,disabled:s,className:"space-y-4",children:[c.jsx(aXe,{entities:x.selectedEntities,availableEntities:O||[],onRemoveEntity:B,onRemoveEntities:Y}),M.length>0&&c.jsx(qUe,{files:M,onRemove:z,showRemove:!s,className:"mb-2"}),c.jsxs("div",{className:"rounded-lg border border-border bg-background shadow-sm focus-within:ring-1 focus-within:ring-foreground/40",children:[c.jsx("textarea",{ref:b,value:e,onChange:n,onKeyDown:V,onPaste:W,onFocus:()=>{I(),i==null||i()},placeholder:"Ask a question...",className:"max-h-[200px] min-h-[40px] w-full resize-none overflow-y-auto border-0 bg-transparent px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-0",style:{height:"40px",lineHeight:"1.5"}}),c.jsxs("div",{className:"flex items-center justify-between border-foreground/10 px-3 py-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[l==="dashboard"&&c.jsxs(ms,{open:d,onOpenChange:U=>{U&&q(),f(U)},children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"secondary",size:"sm",className:"h-7 px-2",title:"Add entity",children:c.jsx(zoe,{className:"h-4 w-4 text-muted-foreground"})})}),c.jsx(gs,{className:"w-80 p-0",align:"start",side:"top",sideOffset:8,onOpenAutoFocus:U=>U.preventDefault(),children:c.jsx(oXe,{isOpen:!0,onSelect:F,onDeselect:A,onClose:()=>{var U;f(!1),(U=b.current)==null||U.focus()},availableEntities:O||[],selectedEntities:x.selectedEntities,onTabComplete:H,onSelectAll:()=>{O&&y({selectedEntities:O})},onRemoveAll:()=>{y({selectedEntities:[]})},onAddContext:()=>{f(!1),m(!0)}})})]}),c.jsx(vXe,{onFilesSelected:R,disabled:s,currentFileCount:M.length})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[s&&c.jsx(se,{className:"rounded-full",size:"sm",onClick:o,children:c.jsx(tie,{className:"size-3.5 bg-background"})}),!s&&c.jsx(se,{disabled:!e.trim()&&M.length===0,size:"sm",variant:a!=="ready"?"secondary":"default",onClick:$,title:a!=="ready"?"Message will be queued":void 0,children:c.jsx(w8,{className:"size-4"})})]})]})]}),c.jsx(DA,{incomingSelectedEntities:x.selectedEntities,open:h,onOpenChange:m,dataSource:T||HS,dialogMode:"aiContext"})]})});IA.displayName="ChatInputWithContext";function zee({assistantType:e,className:t}){const n=Iq(e),{removeFromQueue:r}=fp();return n.length===0?null:c.jsxs("div",{className:X("space-y-2",t),children:[c.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[c.jsx(Gl,{className:"h-3 w-3"}),c.jsxs("span",{children:["Pending messages (",n.length,")"]})]}),c.jsx("div",{className:"space-y-2",children:n.map(s=>c.jsx("div",{className:"group relative rounded-lg border border-dashed border-muted-foreground/30 bg-muted/30 px-3 py-2 text-sm animate-in fade-in-0 slide-in-from-bottom-1",children:c.jsxs("div",{className:"flex items-start justify-between gap-2",children:[c.jsx("div",{className:"flex-1 space-y-1",children:c.jsx("p",{className:"break-words text-foreground/70",children:s.text})}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:()=>r(e,s.id),title:"Remove from queue",children:c.jsx(St,{className:"h-3 w-3"})})]})},s.id))})]})}function Bee({assistantType:e,status:t,isLoading:n,sendMessage:r}){const s=Iq(e),{dequeueMessage:o}=fp();C.useEffect(()=>{if(t!=="ready"||n||!(s&&s.length>0))return;const a=o(e);a&&r({role:"user",parts:[{type:"text",text:a.text}]})},[t,n,s,o,r,e])}function Vee(e,t={}){const{threshold:n=50,behavior:r="smooth",forceScrollOnStream:s=!0,isStreaming:o=!1}=t,i=C.useRef(null),[a,l]=C.useState(!0),[u,d]=C.useState(!0),[f,h]=C.useState(!1),[m,p]=C.useState(0),g=C.useRef(0),b=C.useRef(!1),x=C.useRef(0),y=C.useRef(a),v=C.useRef(void 0),w=C.useRef({key:null,count:0,length:0}),j=C.useCallback(()=>{const _=i.current;return _?_.scrollHeight-_.scrollTop-_.clientHeight:0},[]),S=C.useCallback((_={})=>{if(!i.current)return;const{force:M=!1,instant:T=!1}=_;if(!M&&!y.current||!a&&!M)return;const P=T||r==="auto"||r==="instant"?"auto":r;v.current&&cancelAnimationFrame(v.current),b.current=!0,v.current=requestAnimationFrame(()=>{if(!M&&!y.current){b.current=!1,v.current=void 0;return}const O=i.current;if(!O){b.current=!1,v.current=void 0;return}const I=O.scrollHeight;P==="smooth"&&"scrollTo"in O?O.scrollTo({top:I,behavior:P}):O.scrollTop=I,g.current=O.scrollTop,d(!0),l(!0),y.current=!0,h(!1),p(0),b.current=!1,v.current=void 0})},[r,a]),N=C.useCallback(()=>{const _=i.current;if(!_)return;const k=g.current,M=_.scrollTop,T=M-k;if(g.current=M,T<-1){v.current&&(cancelAnimationFrame(v.current),v.current=void 0),b.current=!1,y.current=!1,l(!1),d(!1);return}if(b.current)return;const P=j()<=n;d(P),l(P),y.current=P,P&&(h(!1),p(0))},[j,n]),E=C.useCallback(()=>{p(0),h(!1)},[]);return C.useEffect(()=>{y.current=a},[a]),C.useEffect(()=>{const _=i.current;if(!_||!e||e.length===0){h(!1),p(0),w.current={key:null,count:0,length:0},g.current=_?_.scrollTop:0,x.current=_?_.scrollHeight:0;return}g.current=_.scrollTop,x.current=_.scrollHeight;const k=w.current,M=e[e.length-1],T=(M==null?void 0:M.id)??(M==null?void 0:M.messageId)??(M==null?void 0:M.createdAt)??(M==null?void 0:M.timestamp)??e.length,P=Array.isArray(M==null?void 0:M.parts)?M.parts.reduce((L,R)=>R?typeof R=="string"?L+R.length:typeof R.text=="string"?L+R.text.length:typeof R.content=="string"?L+R.content.length:typeof R.value=="string"?L+R.value.length:L:L,0):typeof(M==null?void 0:M.content)=="string"?M.content.length:typeof(M==null?void 0:M.text)=="string"?M.text.length:0,O=e.length>k.count,I=T!==k.key,$=P>k.length,V=s&&(M==null?void 0:M.role)==="assistant"&&!O&&(I||$),W=o||V;if(w.current={key:T,count:e.length,length:P},a&&(O||I||$||W)){S({force:!1,instant:W});return}if(!a&&O){const L=e.length-k.count;L>0&&(h(!0),p(R=>R+L))}else!a&&$&&(h(!0),p(L=>L>0?L:1))},[e,S,a,s,o]),C.useEffect(()=>{S({instant:!0})},[S]),C.useEffect(()=>{if(typeof ResizeObserver>"u")return;const _=i.current;if(!_)return;x.current=_.scrollHeight;const k=new ResizeObserver(()=>{const M=i.current;if(!M)return;const T=x.current,P=M.scrollHeight;x.current=P,!b.current&&y.current&&P>T&&S({force:!1,instant:!0})});return k.observe(_),()=>{k.disconnect()}},[S]),C.useEffect(()=>()=>{v.current&&cancelAnimationFrame(v.current)},[]),{scrollRef:i,isAutoScrollEnabled:a,isAtBottom:u,hasNewMessages:f,newMessageCount:m,scrollToBottom:S,handleScroll:N,resetNewMessageCount:E}}function Hee(e,t={}){const{maxVisibleMessages:n=50,initialLoadCount:r=20,loadMoreCount:s=10}=t,[o,i]=C.useState(r),a=C.useMemo(()=>{if(e.length<=o)return e;const h=Math.max(0,e.length-o);return e.slice(h)},[e,o]),l=e.length>o,u=o>=e.length,d=C.useCallback(()=>{i(h=>Math.min(h+s,n))},[s,n]),f=C.useCallback(()=>{i(r)},[r]);return C.useEffect(()=>{u&&e.length>o&&o<n&&i(Math.min(e.length,n))},[e.length,o,u,n]),{visibleMessages:a,hasMoreMessages:l,totalMessageCount:e.length,loadMoreMessages:d,resetMessageWindow:f,isShowingAll:u}}function Uee(e){var n;if(!e||e.length===0)return{hasActiveTools:!1};const t=e[e.length-1];if(!(t!=null&&t.parts))return{hasActiveTools:!1};for(const r of t.parts){if(r.type==="reasoning"&&"state"in r&&r.state==="streaming")return{hasActiveTools:!0,activeToolText:r.text||"Reasoning...",toolType:"reasoning"};if(((n=r.type)!=null&&n.startsWith("tool-")||r.type==="dynamic-tool")&&"state"in r&&["input-streaming","input-available"].includes(r.state)){const s=r,o=s.state;return{hasActiveTools:!0,activeToolText:jJ(s.type,o),toolType:s.type}}}return{hasActiveTools:!1}}const CXe=[{title:"Show top 3 insights",subtitle:"from this dataset"},{title:"Create a bar chart for",subtitle:"sales by product category"}];function SXe({open:e,setOpen:t,isFullscreen:n,onFullscreenChange:r,fullscreenContainer:s}){const[o,i]=C.useState(!1),[a,l]=C.useState(gT),[u,d]=C.useState(!1),[f,h]=C.useState(!1),[m,p]=C.useState(!1),g=n??m,{isLocalDev:b,isConsoleMode:x}=Hm(),y=C.useRef(null);J(Ye=>Ye.dashboard.aiScopeTables),J(Ye=>Ye.isDashboardEditing);const v=J(Ye=>Ye.selectedSheetId),{setDataSource:w}=cr(),{addFrame:j,setSelectedFrameId:S,setIsDashboardEditing:N}=Wt(),E=dp(),{setCurrentAIContext:_,updateSelectedEntities:k,setReasoningEffort:M,setShowReasoning:T}=WC(),{clearQueue:P}=fp(),{clearFileAttachments:O,getFileAttachments:I}=QD(),$=XD("dashboard"),V=J(Ye=>Ye.dashboard.aiContext),W=Ae(Ye=>Ye.card.dataSource),{assistantProfile:L}=Pee(),R=J(Ye=>Ye.handleOpenAssistantProfile),{sendMessage:z,isLoading:F,messages:A,setMessages:H,status:B,stop:Y,errorMessage:q,clearError:U}=sXe(),G=C.useCallback(Ye=>{r==null||r(Ye),n===void 0&&p(Ye)},[n,r]),Z=C.useCallback(()=>{G(!g)},[g,G]);C.useEffect(()=>{if(!g)return;function Ye(Yt){Yt.key==="Escape"&&G(!1)}return window.addEventListener("keydown",Ye),()=>{window.removeEventListener("keydown",Ye)}},[g,G]);const[Q,K]=C.useState(""),te=Ye=>{K(Ye.target.value)};function le({sql:Ye,cardTitle:Yt,connectionId:Ge,cardType:et,python:Be,cardConfig:Ke,dataSource:kt,customVisualPreferences:pe}){if(!v)return;const Re={id:Rr(),title:Yt||"Title",preferences:{onClickFilter:[{columnIndex:0,expression:""}],chartOptions:{indexAxis:et==="horizontalBar"?"y":"x"}},type:et,sql:Ye,python:Be,dataSource:kt,config:Ke,connectionId:Ge,customCardPreferences:pe?{url:pe.url,componentName:pe.componentName,pluginChartType:pe.pluginChartType,settings:pe.settings,type:"component"}:void 0},re={id:Rr(),cards:[Re],activeCardId:Re.id};N(!0),j(v,re,"end"),S(re.id)}const de=Ye=>{Ye.preventDefault();const Yt=Q.trim();if(!Yt&&$.length===0)return;const Ge=[];Yt&&Ge.push({type:"text",text:Yt}),$.forEach(et=>{et.data&&Ge.push({type:"file",mediaType:et.type,filename:et.name,url:`data:${et.type};base64,${et.data}`})}),z({role:"user",parts:Ge}),K(""),O("dashboard"),ie({force:!0})};C.useEffect(()=>{var Ye;e&&((Ye=y.current)==null||Ye.focus())},[e]),Bee({assistantType:"dashboard",status:B,isLoading:F,sendMessage:z});const{hasActiveTools:ce}=Uee(A),{visibleMessages:Ce,hasMoreMessages:ge,totalMessageCount:he,loadMoreMessages:me,resetMessageWindow:oe}=Hee(A,{maxVisibleMessages:15,initialLoadCount:10,loadMoreCount:5}),{scrollRef:Ne,isAtBottom:fe,hasNewMessages:Me,newMessageCount:ke,scrollToBottom:ie,handleScroll:xe,resetNewMessageCount:Oe}=Vee(Ce,{threshold:50,behavior:"smooth",isStreaming:F});function be(Ye){Fe();const Yt={role:"user",parts:[{type:"text",text:Ye.title+" "+Ye.subtitle}]};z(Yt)}function De(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]})}function qe(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]}),ie({force:!0})}const He=C.useCallback(async()=>{const Ye=JSON.stringify(A??[],null,2);try{if(typeof navigator>"u"||!navigator.clipboard)throw new Error("Clipboard API unavailable");await navigator.clipboard.writeText(Ye),ze.success("Conversation copied")}catch(Yt){console.error("Failed to copy conversation",Yt),ze.error("Unable to copy conversation")}},[A]);function Fe(){E.selectedEntities.length===0&&_({selectedEntities:(V==null?void 0:V.selectedEntities)||[]})}const yt=(Q==null?void 0:Q.length)===0&&(A==null?void 0:A.filter(Ye=>Ye.role==="user").length)===0;function je(){return c.jsx("div",{"data-role":"header",children:c.jsx("div",{className:"text-lg font-semibold",children:"Assistant"})})}function dt(){return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",children:c.jsx(Pm,{className:"size-3.5"})})}),c.jsxs(yu,{align:"end",children:[c.jsx(Eh,{children:"Options"}),c.jsx(Kd,{}),c.jsx(Mg,{checked:o,onCheckedChange:i,children:"Token Usage"}),c.jsx(Mg,{checked:a,onCheckedChange:l,children:"Tool Invocations"}),c.jsx(Mg,{checked:u,onCheckedChange:d,children:"System Message"})]})]})}const Ct=c.jsxs("div",{"data-role":"dashboard-assistant",className:X("flex h-full grow flex-col justify-between break-words px-6 py-4",g&&"rounded-2xl border border-border/60 bg-background px-8 pb-6 pt-6 shadow-xl"),children:[c.jsxs("div",{"data-role":"header-section",className:"flex items-start justify-between gap-2",children:[je(),R&&c.jsx(se,{variant:"outline",size:"sm",className:"h-7 p-2",onClick:R,children:(L==null?void 0:L.name)||"Default Profile"}),c.jsxs("div",{"data-role":"header-actions",className:"flex items-center",children:[x&&dt(),a&&c.jsx(se,{variant:"ghost",size:"sm",className:"ml-2 h-7 px-2 text-muted-foreground hover:text-foreground",onClick:He,children:"Copy Conversation"}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:g?"Exit Fullscreen":"Expand",onClick:Z,children:g?c.jsx(KT,{className:"size-4"}):c.jsx(W1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:"New Chat",onClick:()=>{H([]),P("dashboard"),U(),oe()},children:c.jsx(Y1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",onClick:()=>{t(!1)},children:c.jsx(St,{className:"size-4"})})]})]}),c.jsxs(tl,{"data-role":"dashboard-assistant-scroll-area",ref:Ne,className:"mt-4 flex flex-1 basis-0 flex-col flex-wrap justify-end pr-2",onScroll:xe,children:[c.jsxs("div",{className:"space-y-3 pb-4",children:[ge&&c.jsx("div",{className:"flex justify-center py-2",children:c.jsxs(se,{variant:"outline",size:"sm",onClick:me,className:"text-xs",children:["Load ",Math.min(5,he-Ce.length)," ","more messages (",he-Ce.length," ","hidden)"]})}),c.jsx(kJ,{showTools:a,showSystemMessage:u,messages:Ce,onAddToDashboard:le,onQuickReply:qe,disableQuickReplies:F}),!ce&&c.jsx(NJ,{status:B,errorMessage:q})]}),c.jsx(bi,{orientation:"horizontal"})]}),e&&!fe&&c.jsx("div",{className:"absolute bottom-24 right-8 z-10",children:c.jsxs(se,{onClick:()=>{ie({force:!0}),Oe()},size:"sm",variant:"secondary",className:"rounded-full shadow-lg","aria-label":"Scroll to bottom",children:[c.jsx(kr,{className:"h-4 w-4"}),Me&&ke>0&&c.jsx("span",{className:"ml-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-xs text-primary-foreground",children:ke>9?"9+":ke})]})}),c.jsxs("div",{className:"space-y-3",children:[!L&&yt&&c.jsx(EJ,{onClick:be,placeholders:CXe}),c.jsx("div",{children:yt&&L&&c.jsx(Oee,{seedQuestions:L.seedQuestions||[],handleSeedQuestionClick:De})}),c.jsx(zee,{assistantType:"dashboard",className:"mb-3"}),c.jsx(IA,{ref:y,setInput:K,stop:Y,input:Q,handleInputChange:te,handleSubmit:Ye=>{Fe(),de(Ye),ie({force:!0})},isLoading:F,status:B,assistantType:"dashboard",onFocus:()=>{}})]}),c.jsx(DA,{incomingSelectedEntities:(V==null?void 0:V.selectedEntities)||[],open:f,onOpenChange:h,dataSource:W||HS,dialogMode:"aiContext"})]});return g&&s?Zn.createPortal(c.jsx("div",{className:"pointer-events-auto absolute inset-0 z-50 flex bg-background px-6 pb-6 pt-[calc(var(--app-header-height,15px)+1rem)]",children:c.jsx("div",{className:"flex h-full w-full",children:Ct})}),s):Ct}function jXe(e){const t=e.current,{getSelectedFrame:n,addFrame:r,setSelectedFrameId:s}=Wt(),o=J(d=>d.dashboard.sheets),a=J(d=>d.selectedSheetId)??(o==null?void 0:o[0].id),l=J(d=>d.isDashboardEditing),u=J(d=>d.isVisualEditing);C.useEffect(()=>{if(!l||u)return;async function d(m){const p=m.ctrlKey||m.metaKey;p&&m.key==="c"?(await f(),ze.success("Card copied to clipboard"),m.preventDefault()):p&&m.key==="v"&&(await h(),m.preventDefault())}async function f(){try{const m=n();m&&await navigator.clipboard.writeText(JSON.stringify(m))}catch(m){console.error("Failed to copy text:",m)}}async function h(){if(!a)return null;try{const m=await navigator.clipboard.readText();try{const p=JSON.parse(m);if(p!=null&&p.id){const g=NR(p),b=g.cards.findIndex(x=>x.id===g.activeCardId);b!==-1&&(g.cards[b].title=`${g.cards[b].title} (Copy)`),r(a,g),s(g.id),ze.success("Card pasted from clipboard")}}catch(p){console.error("Failed to parse clipboard contents: ",p)}return m}catch(m){return console.error("Failed to paste text:",m),null}}return t==null||t.addEventListener("keydown",d),()=>t==null?void 0:t.removeEventListener("keydown",d)},[r,n,s,a,l,u,t])}function NXe(e,t){switch(e.interactionMode){case"drillToDetail":kXe(e,t);break;case"drillThrough":EXe(e,t);break;case"drillToURL":_Xe(e);break;case"inlineDrill":console.warn("Inline drill execution not yet implemented");break;case"clickFilter":case"drillDown":case"dynamicDrill":break;default:console.warn("Unknown interaction mode:",e.interactionMode)}}function kXe(e,t){var l;const{targetInsightId:n,contextMode:r,displayMode:s,filterGroups:o}=e;if(!n){console.warn("drillToDetail event missing targetInsightId");return}const i=r||"full";let a=[];switch(i){case"interactionFilters":a=o.flatMap(u=>u.filters);break;case"full":{const u=((l=t.getCurrentFilters)==null?void 0:l.call(t))||[],d=o.flatMap(f=>f.filters);a=[...u,...d];break}case"none":default:a=[];break}s==="replace-card"?t.replaceCardContent({cardId:e.sourceCardId,insightId:n,filters:a,contextMode:r}):t.openInsightModal({insightId:n,filters:a,contextMode:r})}function EXe(e,t){var u,d;const{targetDashboardId:n,contextMode:r="interactionFilters",filterGroups:s,sourceCardId:o}=e;if(!n){console.warn("[DrillThrough] Event missing targetDashboardId. This interaction needs to be reconfigured with a target dashboard.",e);return}const i=s.flatMap(f=>f.filters),a=((u=t.getCurrentDashboardId)==null?void 0:u.call(t))||"",l=(d=t.getCurrentDashboardTitle)==null?void 0:d.call(t);t.setGlobalDrillContext&&t.setGlobalDrillContext({filters:i,contextMode:r,sourceDashboardId:a,sourceDashboardTitle:l,targetDashboardId:n}),t.setPendingDrillThrough&&t.setPendingDrillThrough({targetDashboardId:n,sourceDashboardId:a,sourceDashboardTitle:l,filters:i,contextMode:r})}function _Xe(e){const{url:t}=e;if(!t){console.warn("drillToURL event missing url");return}try{new URL(t)}catch(n){console.error("Invalid URL:",t,n);return}window.open(t,"_blank","noopener,noreferrer")}function TXe({open:e,onOpenChange:t,insightId:n,filters:r,filterDefinitions:s,contextMode:o,cardTitle:i,cardDescription:a}){return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsxs(zr,{className:"max-h-[90vh] max-w-[90vw] p-6",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:i||"Insight Detail"}),c.jsx(is,{children:a||"View detailed insight data with applied filters"})]}),c.jsx(YZ,{filters:r,filterDefinitions:s,contextMode:o}),c.jsx("div",{className:"h-[400px] flex-1 overflow-auto",children:n?c.jsx(XZ,{insightId:n,filters:r,contextMode:o}):c.jsx("div",{className:"flex items-center justify-center p-12 text-muted-foreground",children:"No insight selected"})})]})})}function MXe(){const e=Vt(w=>w.interactionStates),t=Vt(w=>w.setInteractionState),n=Vt(w=>w.clearLastInteractionEvent),r=Vt(w=>w.replaceCardWithInsight),s=Vt(w=>w.setPendingDrillThrough),o=Vt(w=>w.pendingDrillThrough),i=Vt(w=>w.clearPendingDrillThrough),{setSelectedSheetId:a,navigateWithDrill:l}=Wt(),{selectDashboard:u}=Cx(),d=J(w=>w.dashboard),f=J(w=>w.filterValues),{data:h,isLoading:m}=F7((o==null?void 0:o.targetDashboardId)||"",{enabled:!!(o!=null&&o.targetDashboardId)}),[p,g]=C.useState({open:!1,insightId:""}),b=QZ(p.insightId,{enabled:p.open&&!!p.insightId}),x=C.useRef(new Set),y=C.useMemo(()=>({setSelectedSheetId:a,openInsightModal:({insightId:w,filters:j,contextMode:S})=>{g({open:!0,insightId:w,filters:j,filterDefinitions:(d==null?void 0:d.filters)||[],contextMode:S})},replaceCardContent:({cardId:w,insightId:j,filters:S,contextMode:N})=>{r(w,j,S,N)},getCurrentFilters:()=>f||[],navigateWithDrill:l,getCurrentDashboardId:()=>(d==null?void 0:d.id)||"",getCurrentDashboardTitle:()=>d==null?void 0:d.title,setPendingDrillThrough:s,setGlobalDrillContext:({filters:w,contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E})=>{const k={sourceCardId:Da,interactionMode:"clickFilter",filterGroups:[{filters:w}]},M={...ii(),appliedClickFilters:[k],contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E};t(Da,M)}}),[a,r,f,l,d,s,t]);C.useEffect(()=>{Object.entries(e).forEach(([w,j])=>{if(j!=null&&j.lastInteractionEvent){const S=j.lastInteractionEvent,N=`${w}-${S.interactionMode}-${S.sourceCardId}-${Date.now()}`;if(x.current.has(N))return;x.current.add(N);try{NXe(S,y)}catch(E){console.error("Error executing interaction event:",E)}finally{n(w),setTimeout(()=>{x.current.delete(N)},5e3)}}})},[e,n,y]),C.useEffect(()=>{if(!(!o||!h||m))try{u(h),l(o.targetDashboardId,o.sourceDashboardId,o.sourceDashboardTitle,o.filters,o.contextMode),i()}catch(w){console.error("[DrillThrough] Error during automatic navigation:",w),i()}},[o,h,m,u,l,i]);const v=()=>{g({open:!1,insightId:""})};return c.jsxs(c.Fragment,{children:[c.jsx(TXe,{open:p.open,onOpenChange:v,insightId:p.insightId,filters:p.filters,filterDefinitions:p.filterDefinitions,contextMode:p.contextMode,cardTitle:b.title,cardDescription:b.description}),o&&m&&c.jsx("div",{className:"fixed inset-0 z-[51] flex items-center justify-center bg-background/80 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border bg-background p-6 shadow-lg",children:[c.jsx(xn,{className:"h-8 w-8 animate-spin text-primary"}),c.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading dashboard..."})]})})]})}function DXe(e){return e.length===0?"":e.map(t=>{const n=t.field.label||t.field.name,r=t.operator,s=IXe(t.value);return r==="="?`${n} = ${s}`:`${n} ${r} ${s}`}).join(", ")}function IXe(e){return e==null?"null":Array.isArray(e)?e.join(", "):typeof e=="object"&&e.toString?e.toString():String(e)}function RXe(e){return e?`Back to ${e}`:"Back"}function AXe(){var x,y,v,w,j;const e=Vt(S=>S.interactionStates[Da]),t=J(S=>S.actions.goBackFromDrill),n=J(S=>S.actions.clearDrillContext),{selectDashboard:r}=Cx(),[s,o]=C.useState({x:16,y:16}),[i,a]=C.useState(!1),l=C.useRef({x:0,y:0});C.useEffect(()=>{if(!i)return;const S=E=>{o({x:E.clientX-l.current.x,y:E.clientY-l.current.y})},N=()=>{a(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",N),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",N)}},[i]);const u=e==null?void 0:e.sourceDashboardId,d=e==null?void 0:e.sourceDashboardTitle,f=((w=(v=(y=(x=e==null?void 0:e.appliedClickFilters)==null?void 0:x[0])==null?void 0:y.filterGroups)==null?void 0:v[0])==null?void 0:w.filters)||[],h=u?{id:u,title:d||"Previous Dashboard",description:"",isPrivate:!1,isPublic:!1,version:"",createdBy:null,createdByTenantUser:"",tenantId:"",projectId:"",createdAt:"",updatedAt:"",lastModified:"",lastModifiedBy:"",createdByUser:null,createdByTenantUserRel:{name:"",email:""},permissions:{canEdit:!0,canShare:!0,canDelete:!0},ownership:{status:"private",isOwner:!0,sharedCount:0,createdBy:{type:"user",userId:"",name:"",email:""}}}:null;if(!e||!((j=e.appliedClickFilters)!=null&&j.length))return null;const m=()=>{if(!h){console.warn("[DrillBack] No source dashboard in context");return}try{t(),r(h)}catch(S){console.error("[DrillBack] Error during back navigation:",S)}},p=()=>{n()},g=S=>{S.target.closest("button")||(a(!0),l.current={x:S.clientX-s.x,y:S.clientY-s.y})};DXe(f);const b=RXe(d);return c.jsx("div",{className:"fixed z-50 max-w-md",style:{left:0,top:0,transform:`translate(${s.x}px, ${s.y}px)`,transition:i?"none":void 0},children:c.jsxs("div",{className:"select-none rounded-lg border bg-background/95 p-3 shadow-lg backdrop-blur-sm",onMouseDown:g,style:{cursor:i?"grabbing":"grab"},children:[c.jsxs("div",{className:"mb-3 flex items-start justify-between gap-2",children:[c.jsxs("div",{className:"flex flex-col gap-2",children:[c.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Viewing:"}),c.jsx("div",{className:"flex flex-wrap gap-2",children:f.map((S,N)=>{const E=S.field.label||S.field.name,_=String(S.value);return c.jsxs(Ve,{variant:"secondary",className:"pointer-events-none text-xs",children:[E," = ",_]},N)})})]}),c.jsx(se,{variant:"ghost",size:"sm",onClick:p,className:"h-6 w-6 cursor-pointer p-0",title:"Clear drill context",children:c.jsx(St,{className:"h-3 w-3"})})]}),c.jsx("div",{className:"flex items-center gap-2 border-t pt-2",children:c.jsxs(se,{variant:"secondary",size:"sm",onClick:m,disabled:!h,className:"w-full cursor-pointer",children:[c.jsx(t8,{className:"mr-2 h-4 w-4"}),b]})})]})})}function Wee(){var ge;const{showAssistant:e,tokenProps:t}=Xe(),{preferences:n,isConsoleMode:r}=Hm(),s=((ge=n==null?void 0:n.cardDisplay)==null?void 0:ge.mode)==="print",o=C.useRef(null),i=C.useRef(null),[a,l]=C.useState(!1),{handleDragStart:u,isDraggingRef:d,getStyle:f,getPositionClasses:h}=L6e({initialPosition:"bottom-right"}),m=Od(he=>he.setFullscreen),p=Od(he=>he.setPanelOpen),g=Od(he=>he.setContainer),b=_q("dashboard"),x=Tq(),y=Mq("dashboard"),v=b.isOpen,w=x==="dashboard",j=J(he=>he.isVisualEditing),S=J(he=>he.themeStyle),N=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.sheets}),E=J(he=>he.showFilters),_=J(he=>he.isDashboardEditing),k=J(he=>he.selectedSheetId),M=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.id}),T=J(he=>he.isDashboardPanelOpen),P=J(he=>he.actions.setIsDashboardPanelOpen),{getDefaultSheetId:O,setDefaultSheetId:I,clearDefaultSheetId:$}=Zz(M),[V,W]=C.useState(null);iC(Ut.DASHBOARD);const{setSelectedSheetId:L,setSheetTitle:R,addSheet:z,setSheets:F}=Wt();jXe(i);const{setActiveAssistantType:A}=WC();C.useEffect(()=>{if(M){const he=O();W(he)}},[M,O]),C.useEffect(()=>{v?A("dashboard"):x==="dashboard"&&m(null)},[v,A,x,m]),C.useEffect(()=>{var he;v||(he=o.current)==null||he.resize(0)},[v]);function H(he){var me,oe;he?((me=o.current)==null||me.resize(40),p("dashboard",!0),A("dashboard")):(p("dashboard",!1),m(null),(oe=o.current)==null||oe.resize(0),A(null))}function B(){const he={id:Rr(),title:"New Sheet"};z(he),L(he.id)}function Y(he,me){if(!M)return;V===he?($(),W(null),ze.success("Default sheet cleared")):(I(he),W(he),ze.success(`"${me}" set as default sheet`))}function q(he){var me;he<1?(p("dashboard",!1),m(null),A(null),(me=o.current)==null||me.resize(0)):(v||p("dashboard",!0),A("dashboard"))}function U(){return(S==null?void 0:S.canvasTheme)==="muted"||!(S!=null&&S.canvasTheme)?"hsl(var(--semaphor-muted))":(S==null?void 0:S.canvasTheme)==="clear"?"":S==null?void 0:S.canvasTheme}const G=(he,me)=>{he.dataTransfer.setData("tabIndex",me.toString())},Z=he=>{he.preventDefault()},Q=(he,me)=>{const oe=he.dataTransfer.getData("tabIndex");if(oe===me.toString())return;const Ne=Array.from(N||[]),[fe]=Ne.splice(parseInt(oe),1);Ne.splice(me,0,fe),F(Ne)},K=t.orgUserId||t.tenantId&&t.endUserId&&t.endUserEmail,te=e===!0&&!s&&!v&&!j&&!E;function le(){var he,me;if(N&&N.length>1||_)return c.jsxs(ys,{role:"tab-list",className:"flex h-12 w-0 min-w-full items-center justify-start gap-2 overflow-x-auto rounded-none border-b border-b-muted bg-transparent px-3",children:[r&&K&&c.jsx(se,{style:{borderRadius:S==null?void 0:S.controlInputRadius},variant:"outline","aria-label":"Manage Dashboards and Visuals",onClick:()=>{P(!T)},className:"h-8 shrink-0 p-2",children:T?c.jsx(i8,{className:"h-4 w-4"}):c.jsx(a8,{className:"h-4 w-4"})}),N==null?void 0:N.map((oe,Ne)=>{const fe=k===oe.id,Me=V===oe.id;return c.jsxs(nn,{draggable:!0,onDragStart:ke=>G(ke,Ne),onDragOver:Z,onDrop:ke=>Q(ke,Ne),style:{borderRadius:S==null?void 0:S.controlInputRadius},onClick:()=>L(oe.id),className:"flex shrink-0 items-center gap-1 border px-2 py-1",value:oe.id,children:[c.jsx(Vb,{enabled:_&&fe,text:oe.title,onSave:ke=>R(oe.id,ke),children:oe.title},oe.id),!_&&fe&&c.jsx("div",{title:Me?"Clear default sheet":"Set as default sheet",children:c.jsx(JT,{className:X("ml-1 size-3 cursor-pointer transition-all",Me?"fill-yellow-500 text-yellow-500":"text-muted-foreground hover:text-foreground"),onClick:ke=>{ke.stopPropagation(),Y(oe.id,oe.title||"Sheet")}})}),_&&fe&&N.length>1&&c.jsx(St,{className:"ml-1 size-3",onClick:()=>l(!0)})]},oe.id)}),_&&c.jsx("div",{style:{borderRadius:(me=(he=S==null?void 0:S.chart)==null?void 0:he.options)==null?void 0:me.borderRadius},className:"flex h-7 shrink-0 items-center justify-center border-none bg-muted p-2 hover:cursor-pointer dark:border-l-background",onClick:B,children:c.jsx(Tr,{className:"size-3"})})]})}function de(){return c.jsx("div",{ref:i,style:{},className:"grow",children:N==null?void 0:N.map(he=>c.jsx(pr,{style:{backgroundColor:U()},className:X("mt-0",{}),value:he.id,children:c.jsx(c6e,{sheet:he})},he.id))})}function ce(){var he;return c.jsxs(Os,{"data-role":"dashboard-tabs-container",className:X("relative flex h-full flex-col",S==null?void 0:S.dashboardTabsContainer),onValueChange:me=>{L(me)},value:k||((he=N==null?void 0:N[0])==null?void 0:he.id),children:[le(),c.jsx(tl,{"data-role":"dashboard-tabs-content",className:"flex-1 grow basis-0 overflow-y-auto",children:de()}),c.jsx(z6e,{open:a,setOpen:l})]})}const Ce=C.useCallback(he=>{g("dashboard",he)},[g]);return N?c.jsxs(c.Fragment,{children:[c.jsx(MXe,{}),c.jsx(AXe,{}),c.jsxs("div",{className:"relative flex-1 basis-0 overflow-hidden",children:[c.jsxs(aQ,{className:X("flex-1 basis-0 overflow-y-auto transition-opacity",w&&"pointer-events-none opacity-0"),direction:"horizontal",children:[c.jsx(I_,{children:ce()}),e===!0&&c.jsxs(c.Fragment,{children:[c.jsx($6e,{open:v,onTabClick:H,withHandle:!0,disabled:!v}),c.jsx(I_,{className:"flex grow","data-role":"dashboard-assistant-panel",onResize:q,defaultSize:v?40:0,ref:o,children:c.jsx("div",{className:"grow overflow-y-auto",children:c.jsx(SXe,{open:v,setOpen:H,isFullscreen:w,onFullscreenChange:he=>m(he?"dashboard":null),fullscreenContainer:y})})})]})]}),c.jsx("div",{ref:Ce,className:X("absolute inset-0",!w&&"pointer-events-none")}),te&&c.jsx("div",{className:X("absolute z-50 transition-all duration-300 ease-in-out",h().horizontal,h().vertical),style:f(),children:c.jsx(se,{size:"sm",variant:"outline",className:"h-12 w-12 cursor-grab rounded-full border-border bg-background p-0 shadow-lg hover:bg-muted active:cursor-grabbing",onClick:()=>{d.current||H(!0)},onMouseDown:u,onTouchStart:u,title:"Open Assistant (drag to move)",children:c.jsx(q1,{className:"h-5 w-5"})})})]})]}):null}function RA({children:e}){return c.jsx(Za,{style:{height:"100%",width:"100%"},children:c.jsx(eoe,{defaultTheme:"system",storageKey:"vite-ui-theme",children:c.jsx(Ln,{delayDuration:0,children:e})})})}function qee({children:e,preferences:t}){const{currentUser:n}=Ps(),r=C.useMemo(()=>{var s,o;return{preferences:t||{},isLocalDev:((s=t==null?void 0:t.uiMode)==null?void 0:s.developer)||!1,isConsoleMode:((o=t==null?void 0:t.uiMode)==null?void 0:o.console)||!1}},[t]);return c.jsx(m7.Provider,{value:r,children:c.jsx(AR,{displayPreferences:t==null?void 0:t.cardDisplay,currentUser:n,children:e})})}function PXe(e=2e3,t=500){const n=Toe(),[r,s]=C.useState(!1),[o,i]=C.useState(!1),a=C.useRef(null);return C.useEffect(()=>{const l=setTimeout(()=>s(!0),e);return()=>clearTimeout(l)},[e]),C.useEffect(()=>{if(r){if(n>0){i(!1),a.current&&(clearTimeout(a.current),a.current=null);return}return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i(!0)},t),()=>{a.current&&clearTimeout(a.current)}}},[r,n,t]),o}function AA({delayMs:e=2e3,quietMs:t=500,componentType:n,componentId:r}){const s=PXe(e,t);return C.useEffect(()=>(s&&(window.__SEMAPHOR_READY__={ready:!0,type:n,componentId:r||null,timestamp:Date.now()}),()=>{window.__SEMAPHOR_READY__={ready:!1,type:n,componentId:r||null,timestamp:Date.now()}}),[s,n,r]),c.jsx("div",{id:"idle-check","aria-hidden":"true",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:s?"ready":""})}function Yee(e){if(typeof window>"u")return null;const{preferences:t}=e;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:e,children:[c.jsx(AA,{componentType:"dashboard",componentId:e.id}),c.jsx(RA,{children:c.jsx(qee,{preferences:t,children:c.jsx("main",{className:"flex h-full flex-col",children:c.jsx(JD,{...e,type:"dashboard",children:c.jsx(Wee,{})})})})})]})})}function g6(e,t){return e.map(n=>({...n,fieldScope:t}))}function OXe(e){const t=new Map;return e.forEach(n=>{const r=`${n.name}-${n.role||"unknown"}`;t.has(r)||t.set(r,n)}),Array.from(t.values())}function b6(e){if(sc(e)||Ux(e))return e.expression}function PA(){const{columns:e,columnGroups:t,isLoading:n,hasError:r,error:s,refetch:o}=kD(),i=Ae(g=>g.frame.calculatedFields),a=Ae(g=>g.card.config),l=C.useMemo(()=>e.filter(g=>g.fieldScope==="domain"),[e]),u=C.useMemo(()=>e.filter(g=>g.fieldScope!=="domain"),[e]),d=C.useMemo(()=>i!=null&&i.length?g6(i,"dashboard"):[],[i]),f=C.useMemo(()=>{const g=new Map;return d.forEach(b=>{const x=`${b.name}-${b.role||"unknown"}`;g.set(x,b)}),g},[d]),h=C.useMemo(()=>{const g=((a==null?void 0:a.metricColumns)||[]).filter(sc),b=((a==null?void 0:a.groupByColumns)||[]).filter(Ux),y=OXe([...g,...b]).filter(v=>{const w=`${v.name}-${v.role||"unknown"}`,j=f.get(w);if(!j)return!0;const S=b6(v),N=b6(j);return S&&N?S!==N:!0});return g6(y,"card").map(v=>({...v,id:`card-source-${v.id}`}))},[a==null?void 0:a.groupByColumns,a==null?void 0:a.metricColumns,f]),m=C.useMemo(()=>[...l,...d,...h,...u],[h,u,d,l]),p=C.useMemo(()=>t.filter(g=>g.entityId!==pz),[t]);return{columns:e,columnGroups:p,rawColumnGroups:t,columnFields:u,domainCalculatedFields:l,dashboardCalculatedFields:d,cardCalculatedFields:h,scopedFields:m,isLoading:n,hasError:r,error:s,refetch:o}}function OA(e){const{tokenProps:t,authToken:n}=Xe(),r=t==null?void 0:t.apiServiceUrl;return En({queryKey:["joinability-map",e],queryFn:async()=>{if(!e||!(n!=null&&n.accessToken))return null;const s=`${r}/v1/domains/${e}/joinability`;return rr(s,n.accessToken)},enabled:!!e&&!!(n!=null&&n.accessToken)&&!!r,staleTime:5*60*1e3,gcTime:10*60*1e3,retry:2,retryDelay:s=>Math.min(1e3*2**s,3e4)})}function Gee(e,t,n){if(t==="source")return{isValid:!0};const r=yr(e.dataType);if(n==="detailTable"&&t!=="detailColumns"&&t!=="sortBy")return{isValid:!1,reason:"Detail tables only accept columns"};if(n==="kpi"){if(t==="groupBy"&&r!=="date")return{isValid:!1,reason:"KPI Trend By only accepts date fields"};if(t==="metrics"&&r==="date")return{isValid:!1,reason:"KPI metrics cannot be date fields"}}return{isValid:!0}}function Kee(e,t,n,r,s){if(e!=="kpi"||s.length<3)return;const o=(t==null?void 0:t.groupByColumns)&&t.groupByColumns.length>0,i=(t==null?void 0:t.comparisonType)==="none";!o&&i||n(r,{groupByColumns:[],comparisonType:"none"})}function FXe(e,t){return(e||[]).map(n=>({...n,id:t(n),label:n.label!==void 0?n.label:n.name}))}const Zee=e=>{var O;const t=(O=e==null?void 0:e.dataSource)==null?void 0:O.semanticDomainId,{data:n}=OA(t),{updateCardConfig:r,updateGroupByColumn:s,updateMetricColumn:o,updatePivotByColumn:i,updateSortByColumn:a,removeGroupByColumn:l,removeMetricColumn:u,removePivotByColumn:d,removeSortByColumn:f}=cr(),h=Ae(I=>I.card.type),m=e==null?void 0:e.id,p=(I,$)=>{if(I.id)return I.id;const V=I.qualifiedEntityName||I.entityName||$;return`${$}-${V}-${I.name}`},g=C.useCallback(I=>{if(!(e!=null&&e.config))return[];switch(I){case"groupBy":return(e.config.groupByColumns||[]).map($=>({...$,id:p($,"groupBy"),label:$.label!==void 0?$.label:$.name}));case"metrics":return(e.config.metricColumns||[]).map($=>({...$,id:p($,"metrics"),label:$.label!==void 0?$.label:$.name}));case"pivotBy":return(e.config.pivotByColumns||[]).map($=>({id:p($,"pivotBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType}));case"sortBy":return(e.config.sortByColumns||[]).map($=>({id:p($,"sortBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType,direction:$.direction}));case"detailColumns":return FXe(e.config.detailColumns,$=>p($,"detailColumns"));case"source":return[];default:return[]}},[e]),b=C.useCallback((I,$)=>{if(m)switch(I){case"groupBy":{r(m,{groupByColumns:$});break}case"metrics":{r(m,{metricColumns:$});break}case"pivotBy":{r(m,{pivotByColumns:$});break}case"sortBy":{r(m,{sortByColumns:$});break}case"detailColumns":{r(m,{detailColumns:$});break}}},[m,r]),x=C.useCallback((I,$,V)=>{if(!m)return;const W=g(I),L=W[$];if(L)switch(I){case"groupBy":s(m,L.id,{label:V});break;case"metrics":o(m,L.id,{label:V});break;case"pivotBy":i(m,L.id,{label:V});break;case"sortBy":a(m,L.id,{label:V});break;case"detailColumns":{const R=W.map((z,F)=>F===$?{...z,label:V}:z);r(m,{detailColumns:R});break}}},[m,g,s,o,i,a,r]),y=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aggregate:$,label:IU(W.name,$)})},[m,g,o]),v=C.useCallback((I,$,V,W="groupBy")=>{if(!m)return;const L=g(W),R=L[I];if(!R)return;const z={dateFormat:$,customFormat:$==="custom"&&V?V:void 0};if(W==="detailColumns"){const F=L.map((A,H)=>H===I?{...A,...z}:A);r(m,{detailColumns:F});return}s(m,R.id,z)},[m,g,r,s]),w=C.useCallback((I,$)=>{if(!m)return;const W=g("groupBy")[I];W&&s(m,W.id,{granularity:$})},[m,g,s]),j=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aliasTemplate:$})},[m,g,o]),S=C.useCallback((I,$)=>{if(console.log("handleValueAliasesChange",I,$),!m)return;console.log("handleValueAliasesChange",I,$);const W=g("metrics")[I];W&&(console.log("handleValueAliasesChange",$),o(m,W.id,{valueAliases:$}))},[m,g,o]),N=C.useCallback(I=>{if(!m)return;if(g("metrics").length===0){ze.error("Add Metric First",{description:"Please add a metric field before selecting a comparison type",position:"top-center",duration:3e3});return}r(m,{comparisonType:I})},[m,r,g]),E=C.useCallback(I=>{m&&r(m,{showTrendline:I})},[m,r]),_=C.useCallback(I=>{m&&r(m,{trendlineWindow:I})},[m,r]),k=C.useCallback(I=>{m&&r(m,{trendlineGranularity:I})},[m,r]),M=C.useCallback(I=>{m&&r(m,{targetValue:I})},[m,r]),T=C.useCallback(async I=>{var A;if(!m)return;const $=[...g("groupBy"),...g("pivotBy"),...g("metrics"),...g("sortBy"),...g("detailColumns")],V=I,W=G1e(V,$,{joinPlan:(A=e==null?void 0:e.config)==null?void 0:A.joinPlan,joinabilityMap:n==null?void 0:n.joinabilityMap,semanticDomainId:t});if(!W.isValid){W.showError&&TU();return}const L=X1e(V,$,h);if(!L){ze.error("Invalid Field",{description:"This field cannot be added to any container",position:"top-center",duration:3e3});return}const R=Gee(V,L,h);if(!R.isValid){ze.error("Invalid Field Type",{description:R.reason,position:"top-center",duration:3e3});return}const z=g(L);if(MU(V,z))return;const F=RU(V,L,z);if(F){const H=[...z,F];b(L,H),L==="metrics"&&Kee(h,e==null?void 0:e.config,r,m,H)}},[m,e==null?void 0:e.config,g,b,t,n,h,r]),P=C.useCallback((I,$)=>{if(!m)return;const W=g(I)[$];if(W){if(I!=="sortBy"){const L=g("sortBy"),R=L.filter(z=>!(z.name===W.name&&z.qualifiedEntityName===W.qualifiedEntityName));R.length!==L.length&&r(m,{sortByColumns:R})}switch(I){case"groupBy":l(m,W.id);break;case"metrics":u(m,W.id);break;case"pivotBy":d(m,W.id);break;case"sortBy":f(m,W.id);break;case"detailColumns":{r(m,{detailColumns:(g("detailColumns")||[]).filter((L,R)=>R!==$)});break}}}},[m,g,l,u,d,f,r]);return{getFieldsForContainer:g,setFieldsForContainer:b,updateLabel:x,handleAggregationChange:y,handleDateFormatChange:v,handleGranularityChange:w,handleAliasTemplateChange:j,handleValueAliasesChange:S,removeField:P,handleFieldClick:T,handleKpiComparisonTypeChange:N,handleKpiShowTrendlineChange:E,handleKpiTrendlineWindowChange:_,handleKpiTrendlineGranularityChange:k,handleKpiTargetValueChange:M,cardType:h}};function YS(e,t){var De,qe,He,Fe,yt;const{tokenProps:n}=Xe(),r=so(),s=Xe().authToken||e,o=Ae(je=>je.selectedConnectionId),i=Ae(je=>je.card),{queryKey:a}=phe(i),l=Ae(je=>je.selectedDatamodelId),u=Ae(je=>je.isDevMode),d=Ae(je=>je.selectedDatabaseName),f=Ae(je=>je.selectedSchemaName),h=Ae(je=>je.selectedTableName),m=Ae(je=>je.actions.setSelectedConnectionId),p=Ae(je=>je.actions.setSelectedDatamodelId),g=Ae(je=>je.actions.setSelectedDatabaseName),b=Ae(je=>je.actions.setSelectedSchemaName),x=Ae(je=>je.actions.setSelectedTableName);Ae(je=>je.actions.setCardSql);const{setQueryConfig:y}=cr();function v(je){var Ct;return o&&je==="API"?!1:o&&je==="S3"?!0:!(!o||!d||d==="NA"||((Ct=_==null?void 0:_.capabilities)==null?void 0:Ct.path.includes("schema"))&&!f)}function w(je){return o&&je?!(je==="API"||je==="S3"):!1}const{refetchConnections:j,connectionsData:S,isConnectionsLoading:N,isConnectionsError:E,selectedConnection:_}=Ci(e),{refetch:k,data:M,isLoading:T,isError:P}=En({queryKey:["models",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datamodels`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:!!(s!=null&&s.accessToken)&&!!o}),O=_==null?void 0:_.type,I=(_==null?void 0:_.type)==="API"||(_==null?void 0:_.type)==="S3",{data:$,isLoading:V,isFetching:W,isError:L,refetch:R}=En({queryKey:["databases",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/databases`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:w(O)}),{data:z,isLoading:F,isFetching:A,isError:H,refetch:B}=En({queryKey:["schemas",o,d],queryFn:()=>rr(`${n.apiServiceUrl}/v1/schemas`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d}),enabled:!!o&&!!d&&!I&&d!=="NA"}),{data:Y,isLoading:q,isFetching:U,isError:G,refetch:Z}=En({queryKey:["tables",o,d,f],queryFn:()=>rr(`${n.apiServiceUrl}/v1/tables`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d,schema_name:f}),enabled:v(O)}),{columns:Q,isColumnsLoading:K,isColumnsFetching:te,isColumnsError:le,refetchColumns:de}=AU(e);C.useEffect(()=>{(O==="S3"||O==="API")&&(g(""),b(""),p(""),O==="API"&&x("api"))},[O,x,g,b,p]);const ce=(_==null?void 0:_.type)==="API"?(De=_==null?void 0:_.type)==null?void 0:De.toLowerCase():h||"",Ce=I?"":f||"";function ge(je){x(je),y(void 0),u||(r.setQueryData(a,null),r.removeQueries({queryKey:a,exact:!0}))}function he(je){b(je),x("")}function me(je){g(je==="none"?"":je),b(""),x(""),je!=="none"&&je!==""&&p("")}function oe(je){m(je)}function Ne(je){p(je==="none"?"":je),je!=="none"&&je!==""&&g("")}$&&((qe=$==null?void 0:$.databases)==null?void 0:qe.length)>0,z&&((He=z==null?void 0:z.schemas)==null?void 0:He.length)>0;const fe=S==null?void 0:S.connections.map(je=>({id:je.id,name:je.name,type:je.type})),Me=(Fe=M==null?void 0:M.datamodels)==null?void 0:Fe.map(je=>({id:je.id,name:je.name})),ke=$==null?void 0:$.databases.map(je=>({id:je.database_name,name:je.database_name})),ie=z==null?void 0:z.schemas.map(je=>({id:je.schema_name,name:je.schema_name})),xe=Y==null?void 0:Y.tables.map(je=>({id:je.table_name,name:je.table_name})),Oe=(yt=M==null?void 0:M.datamodels.find(je=>je.id===l))==null?void 0:yt.name,be=_!=null&&_.capabilities?qv({schemaName:Ce,tableName:ce,modelName:Oe,databaseName:d||"",capabilities:_.capabilities}):ce;return{connectionItems:fe,selectedConnectionId:o,selectedConnection:_,isConnectionsLoading:N,isConnectionsError:E,modelItems:Me,selectedDatamodelId:l,selectedDatamodelName:Oe,isModelsLoading:T,isModelsError:P,selectedDatabaseName:d,databaseItems:ke,isDatabasesLoadingOrFetching:V||W,isDatabaseError:L,schemaItems:ie,selectedSchemaName:f,isSchemaLoadingOrFetching:F||A,isSchemaError:H,tableItems:xe,selectedTableName:h,isTableLoadingOrFetching:q||U,isTableError:G,columns:Q,isColumnsLoadingOrFetching:K||te,isColumnsError:le,isNonDbConnection:I,connectionType:O,tableName:ce,formattedTableName:be,schemaName:Ce,refetchConnections:j,refetchModels:k,refetchDatabases:R,refetchSchemas:B,refetchTables:Z,refetchColumns:de,handleConnectionChange:oe,handleDatamodelChange:Ne,handleDatabaseChange:me,handleSchemaChange:he,handleTableChange:ge}}function dv(e){return`${e}-${Rr()}`}function x6(e,t){const n=pi(e.replace(/_/g," "));switch(t){case"SUM":return`Sum of ${n}`;case"COUNT":return`Count of ${n}`;case"DISTINCT":return`Unique ${n}`;case"AVG":return`Average of ${n}`;case"MIN":return`Min of ${n}`;case"MAX":return`Max of ${n}`;default:return n}}function $Xe(e,t){const n=pi(e.replace(/_/g," "));switch(t){case"day":return`Date of ${n}`;case"week":return`Week of ${n}`;case"month":return`Month of ${n}`;case"year":return`Year of ${n}`;default:return n}}function FA(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return{tableName:void 0,schemaName:void 0,databaseName:void 0,connectionId:e==null?void 0:e.connectionId,connectionType:e==null?void 0:e.connectionType};const t=e.selectedEntities[0];return{tableName:t==null?void 0:t.name,schemaName:t==null?void 0:t.schema,databaseName:t==null?void 0:t.database,connectionId:e.connectionId,connectionType:e.connectionType}}function Xee(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return!1;const t=e.selectedEntities[0];return!!(t!=null&&t.name)}function Qee(){const e=Ae(N=>N.sqlGen),t=Ae(N=>N.isDevMode),n=Ae(N=>N.card.dataSource),r=Ae(N=>{var E,_;return(_=(E=N.card)==null?void 0:E.queryConfig)==null?void 0:_.metricColumns}),{tableName:s,schemaName:o,databaseName:i}=FA(n),a=Xee(n),l=Ae(N=>N.selectedDatamodelId),{addColumnToMetricColumns:u,addColumnToGroupBy:d,setCardSql:f,setRunSql:h,setSqlGen:m,setIsShowingVisual:p}=cr(),{modelItems:g,selectedDatamodelName:b}=YS(),{selectedConnection:x}=Ci(),y=x==null?void 0:x.capabilities,v=N=>({column_name:N.name,data_type:N.dataType,label:N.label,description:N.description});return{handleDevModeFieldClick:N=>{var _;if(!t)return;const E=v(N);if(t&&a&&s&&y){const k=CT(E,e);m(k);const M=(_=g==null?void 0:g.find(P=>P.id===l))==null?void 0:_.name,T=wT(k,o||"",s,M||"",i||"",y,N.qualifiedEntityName);T&&(f(T),h(!0))}else if(!t){if(yx(E.data_type))if(r&&r.length>0){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type};d(k)}else{const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"COUNT"),type:E.data_type,aggregate:"COUNT"};u(k)}if(Ki(E.data_type)){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type,label:$Xe(E.column_name,"month"),granularity:"month"};d(k)}if(Gi(E.data_type)){const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"SUM"),type:E.data_type,aggregate:"SUM"};u(k)}}},handleShowSample:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});p(!1);const _=(x==null?void 0:x.type)==="MSSQL"?`SELECT top 10 * FROM ${N}`:`SELECT * FROM ${N} LIMIT 10`;f(_),h(!0)},handleShowCount:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});f(`SELECT COUNT(*) as count FROM ${N}`),h(!0)},isNumberField:N=>Gi(N.dataType)}}function LXe(e){const t=e.qualifiedFieldName,r=(e.qualifiedEntityName||e.qualifiedFieldName.split(".").slice(0,-1).join(".")).split(".").map(o=>ab(o)).join("."),s=ab(e.name);return{qualifiedColumnName:t,qualifiedTableName:r,formattedColumnName:s}}function Jee(){const e=J(a=>a.dashboard.filters)||[],t=J(a=>a.selectedSheetId),n=J(a=>a.actions.addFilter),r=J(a=>a.actions.removeFilter),{removeFilterValues:s}=Wt(),{selectedConnection:o}=Ci();function i(a,l="sheet"){const{qualifiedColumnName:u,qualifiedTableName:d,formattedColumnName:f}=LXe(a);let h;if(l==="sheet"&&t?h=oke(e,u,d,t):h=e==null?void 0:e.find(m=>wm(m.column)===wm(u)),h)s(h.id),r(h.id);else{const m=Rr(),p=l==="sheet"&&t?[t]:void 0;return n({id:m,location:l,column:u,title:a.label||a.name,dataType:a.dataType,qualifiedTableName:d,connectionId:(o==null?void 0:o.id)||"",operation:"in",applyToSheetIds:p,sql:wK(a.dataType,d,f)}),m}}return{assignFilter:i}}function zXe({column:e}){const[t,n]=C.useState(!1),r=Ae(y=>y.card.dataSource),{tableName:s,schemaName:o,databaseName:i}=FA(r),a=Ae(y=>y.selectedDatamodelId),l=Ae(y=>y.sqlGen),{modelItems:u,selectedConnection:d}=YS(),f=d==null?void 0:d.capabilities,h=Ae(y=>y.actions.setSqlGen),m=Ae(y=>y.actions.setCardSql),p=Ae(y=>y.actions.setRunSql),g=Xee(r);function b(y,v){var E,_;if(!g||!s){console.warn("Cannot generate SQL: missing table metadata");return}const w=CT(y,l,v),j=(E=u==null?void 0:u.find(k=>k.id===a))==null?void 0:E.name;if(h(w),!f){console.warn("Cannot generate SQL: missing connection capabilities");return}const S=(_=y.qualifiedFieldName)==null?void 0:_.split(".").slice(0,-1).join("."),N=wT(w,o||"",s,j||"",i||"",f,S);N&&(m(N),p(!0)),n(!1)}function x(){return c.jsxs("ul",{className:"text-xs",children:[c.jsx("li",{onClick:()=>b(e,"COUNT"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Count"}),c.jsx("li",{onClick:()=>b(e,"AVG"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Avg"}),c.jsx("li",{onClick:()=>b(e,"SUM"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Sum"}),c.jsx("li",{onClick:()=>b(e,"MAX"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Max"}),c.jsx("li",{onClick:()=>b(e,"MIN"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Min"})]})}return g?c.jsxs(Wm,{openDelay:0,open:t,onOpenChange:n,children:[c.jsx(qm,{asChild:!0,children:c.jsx(Pm,{className:"invisible size-3.5 cursor-pointer text-foreground/40 group-hover/container:visible"})}),c.jsx(Mf,{align:"center",className:"w-20 rounded-md p-0 shadow-none",children:x()})]}):null}function BXe({field:e,fieldState:t}){return c.jsxs("div",{className:"w-64 bg-background p-0",children:[c.jsxs("div",{className:"mb-2 flex items-start justify-between gap-2",children:[c.jsx("h3",{className:"text-sm font-medium text-foreground",children:e.label||e.name}),c.jsx("span",{className:"rounded bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground",children:e.dataType})]}),e.description&&c.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:e.description}),t&&t.tooltip&&c.jsx("div",{className:"mb-2 rounded bg-muted/50 p-2",children:c.jsx("p",{className:"text-xs text-muted-foreground",children:t.tooltip})}),c.jsx("div",{className:"overflow-x-auto border-t border-border pb-2 pt-2",children:c.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:e.name})})]})}function y6({field:e,context:t="editor",fieldState:n,onFieldSelect:r,inlineFilters:s,actions:o}){const i=Ae(K=>K.isDevMode),a=t==="filter"||t==="inline-filter",l=i||a||(n==null?void 0:n.state)==="unreachable"&&!a,u=J(K=>K.dashboard.filters),d=J(K=>K.selectedSheetId),f=J(K=>K.actions.removeFilter),{removeFilterValues:h}=Wt(),{assignFilter:m}=Jee(),p=t==="filter"?oc(u,d):u,g=t==="filter"?p==null?void 0:p.find(K=>{if(K.title===e.name)return!0;const te=wm(K.column||""),le=wm(e.name);return te.endsWith(`.${le}`)||te===le}):void 0,b=!!g,x=t==="inline-filter"&&(s==null?void 0:s.some(K=>K.column===e.qualifiedFieldName||K.column===e.name)),y=b||x,v=g&&a?u==null?void 0:u.find(K=>K.id===g.id):void 0,w=v&&(v.applyToSheetIds&&v.applyToSheetIds.length>1||v.excludeSheetIds&&v.excludeSheetIds.length>0||!v.applyToSheetIds&&!v.excludeSheetIds&&!v.sheetId);a&&y&&console.log("[SourceField Debug]",{fieldName:e.name,hasActiveFilter:y,activeFilterOnSheet:g?{id:g.id,title:g.title,column:g.column,applyToSheetIds:g.applyToSheetIds,excludeSheetIds:g.excludeSheetIds}:null,activeFilterForField:v?{id:v.id,title:v.title,column:v.column,applyToSheetIds:v.applyToSheetIds,excludeSheetIds:v.excludeSheetIds}:null,isMultiSheetFilter:w,selectedSheetId:d});const[j,S]=C.useState(!1),[N,E]=C.useState(null),{attributes:_,listeners:k,setNodeRef:M,transform:T,transition:P,isDragging:O}=Ey({id:e.id,disabled:l}),[I,$]=C.useState(!1),V=Ae(K=>K.card),{handleFieldClick:W}=Zee(V),{handleDevModeFieldClick:L,isNumberField:R}=Qee(),z=()=>{v&&(console.log("[SourceField] Removing multi-sheet filter:",v.id),h(v.id),f(v.id)),E(null),S(!1)},F=()=>{if(t==="inline-filter"&&r){r(e);return}t==="filter"?y&&w?(E(e),S(!0)):m(e,"sheet"):i?L(e):W(e)},A={column_name:e.name,data_type:e.dataType,label:e.label,description:e.description},H={transform:yi.Transform.toString(T),transition:P},B=()=>{if(!n||a)return{};const te={base:{hoverBorderColor:"hover:border-blue-500/40",hoverBgColor:"hover:bg-blue-50/50 dark:hover:bg-blue-950/20"},draggable:{hoverBorderColor:"hover:border-green-500/40",hoverBgColor:"hover:bg-green-50/30 dark:hover:bg-green-950/20"},indirect:{hoverBorderColor:"hover:border-yellow-500/40",hoverBgColor:"hover:bg-yellow-50/30 dark:hover:bg-yellow-950/20"},unreachable:{borderColor:"border-gray-300/40 dark:border-gray-700/40",bgColor:"bg-gray-50/30 dark:bg-gray-900/20",hoverBgColor:"hover:bg-gray-100/30 dark:hover:bg-gray-800/20",opacity:"opacity-50",cursor:"cursor-not-allowed"}}[n.state]||{};return n.isSelected&&{base:{borderColor:"border-blue-300/30 dark:border-blue-700/30",bgColor:"bg-blue-50/20 dark:bg-blue-950/10",...te},draggable:{borderColor:"border-green-300/30 dark:border-green-700/30",bgColor:"bg-green-50/20 dark:bg-green-950/10",...te},indirect:{borderColor:"border-yellow-300/30 dark:border-yellow-700/30",bgColor:"bg-yellow-50/20 dark:bg-yellow-950/10",...te}}[n.state]||te};function Y(K){return K==="domain"?{label:"Domain",Icon:Sx,className:"border-border bg-muted text-foreground"}:K==="dashboard"?{label:"Dashboard",Icon:qT,className:"border-border bg-muted/70 text-foreground"}:{label:"Card",Icon:S8,className:"border-border bg-muted/40 text-foreground"}}const q=B(),U=e.fieldScope,G=U?Y(U):null,Z=Pw(e),Q=Z&&sc(e);return c.jsxs("div",{ref:M,style:H,...l?{}:_,...l?{}:k,className:X("group/container max-w-[265px] overflow-hidden rounded-lg transition-all",O&&"scale-95 opacity-50",!O&&"border",q.borderColor||"border-transparent",q.bgColor||"",q.hoverBorderColor,q.hoverBgColor||"hover:bg-muted",q.opacity,q.cursor,b&&"border-accent-foreground/20 bg-accent",x&&"border-primary/20 bg-primary/10",{"cursor-pointer":i||a,"cursor-grab active:cursor-grabbing":!l&&!i&&!a}),title:n==null?void 0:n.tooltip,children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-3 p-2",onClick:F,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(e.dataType),Z&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",Q?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx(Ln,{children:c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:`block text-sm text-foreground/80 hover:text-foreground dark:text-muted-foreground ${I?"whitespace-normal break-words":"truncate"}`,children:e.label||e.name})})}),c.jsx(dn,{side:"bottom",align:"start",className:"ml-5 max-w-xs px-4 pb-2 pt-4",children:c.jsx(BXe,{field:e,fieldState:n})})]})}),t==="editor"&&G&&c.jsx("span",{title:G.label,className:X("shrink-0 rounded-full border p-1",G.className),children:c.jsx(G.Icon,{className:"h-3.5 w-3.5"})}),i&&!a&&R(e)&&c.jsx("div",{onClick:K=>K.stopPropagation(),children:c.jsx(zXe,{column:A})}),o&&c.jsx("div",{className:"ml-auto flex items-center",onClick:K=>K.stopPropagation(),onPointerDown:K=>K.stopPropagation(),children:o})]}),I&&c.jsx("div",{className:"text-muted-foreground-700 px-2 pb-3 text-sm",children:c.jsx(Uo,{className:"",children:c.jsxs(Qi,{className:"space-y-2 p-3",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(j8,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.label||e.name})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(iie,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.name})]}),c.jsx(Ve,{variant:"outline",className:"mt-2 text-xs",children:e.dataType})]})})}),c.jsx(Um,{open:j,onOpenChange:S,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Remove Filter from Multiple Sheets?"}),c.jsx(Ef,{children:"This filter is currently applied to multiple sheets. Removing it will affect all sheets where it's applied."})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{children:"Cancel"}),c.jsx(_f,{onClick:z,children:"Remove Filter"})]})]})})]})}var da="Accordion",VXe=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[$A,HXe,UXe]=Ex(da),[GS]=Lr(da,[UXe,gW]),LA=gW(),ete=C.forwardRef((e,t)=>{const{type:n,...r}=e,s=r,o=r;return c.jsx($A.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?c.jsx(GXe,{...o,ref:t}):c.jsx(YXe,{...s,ref:t})})});ete.displayName=da;var[tte,WXe]=GS(da),[nte,qXe]=GS(da,{collapsible:!1}),YXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},collapsible:o=!1,...i}=e,[a,l]=ss({prop:n,defaultProp:r??"",onChange:s,caller:da});return c.jsx(tte,{scope:e.__scopeAccordion,value:C.useMemo(()=>a?[a]:[],[a]),onItemOpen:l,onItemClose:C.useCallback(()=>o&&l(""),[o,l]),children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:o,children:c.jsx(rte,{...i,ref:t})})})}),GXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},...o}=e,[i,a]=ss({prop:n,defaultProp:r??[],onChange:s,caller:da}),l=C.useCallback(d=>a((f=[])=>[...f,d]),[a]),u=C.useCallback(d=>a((f=[])=>f.filter(h=>h!==d)),[a]);return c.jsx(tte,{scope:e.__scopeAccordion,value:i,onItemOpen:l,onItemClose:u,children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:!0,children:c.jsx(rte,{...o,ref:t})})})}),[KXe,KS]=GS(da),rte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:s,orientation:o="vertical",...i}=e,a=C.useRef(null),l=ut(a,t),u=HXe(n),f=bu(s)==="ltr",h=Ie(e.onKeyDown,m=>{var E;if(!VXe.includes(m.key))return;const p=m.target,g=u().filter(_=>{var k;return!((k=_.ref.current)!=null&&k.disabled)}),b=g.findIndex(_=>_.ref.current===p),x=g.length;if(b===-1)return;m.preventDefault();let y=b;const v=0,w=x-1,j=()=>{y=b+1,y>w&&(y=v)},S=()=>{y=b-1,y<v&&(y=w)};switch(m.key){case"Home":y=v;break;case"End":y=w;break;case"ArrowRight":o==="horizontal"&&(f?j():S());break;case"ArrowDown":o==="vertical"&&j();break;case"ArrowLeft":o==="horizontal"&&(f?S():j());break;case"ArrowUp":o==="vertical"&&S();break}const N=y%x;(E=g[N].ref.current)==null||E.focus()});return c.jsx(KXe,{scope:n,disabled:r,direction:s,orientation:o,children:c.jsx($A.Slot,{scope:n,children:c.jsx(Ze.div,{...i,"data-orientation":o,ref:l,onKeyDown:r?void 0:h})})})}),E1="AccordionItem",[ZXe,zA]=GS(E1),ste=C.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...s}=e,o=KS(E1,n),i=WXe(E1,n),a=LA(n),l=xr(),u=r&&i.value.includes(r)||!1,d=o.disabled||e.disabled;return c.jsx(ZXe,{scope:n,open:u,disabled:d,triggerId:l,children:c.jsx(yW,{"data-orientation":o.orientation,"data-state":ute(u),...a,...s,ref:t,disabled:d,open:u,onOpenChange:f=>{f?i.onItemOpen(r):i.onItemClose(r)}})})});ste.displayName=E1;var ote="AccordionHeader",ite=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(ote,n);return c.jsx(Ze.h3,{"data-orientation":s.orientation,"data-state":ute(o.open),"data-disabled":o.disabled?"":void 0,...r,ref:t})});ite.displayName=ote;var rT="AccordionTrigger",ate=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(rT,n),i=qXe(rT,n),a=LA(n);return c.jsx($A.ItemSlot,{scope:n,children:c.jsx(aSe,{"aria-disabled":o.open&&!i.collapsible||void 0,"data-orientation":s.orientation,id:o.triggerId,...a,...r,ref:t})})});ate.displayName=rT;var lte="AccordionContent",cte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(lte,n),i=LA(n);return c.jsx(lSe,{role:"region","aria-labelledby":o.triggerId,"data-orientation":s.orientation,...i,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});cte.displayName=lte;function ute(e){return e?"open":"closed"}var XXe=ete,QXe=ste,JXe=ite,dte=ate,fte=cte;const BA=XXe,rx=D.forwardRef(({className:e,...t},n)=>c.jsx(QXe,{ref:n,className:X("border-b",e),...t}));rx.displayName="AccordionItem";const sx=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(JXe,{className:"flex",children:c.jsxs(dte,{ref:r,className:X("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,c.jsx(kr,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));sx.displayName=dte.displayName;const ox=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(fte,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:c.jsx("div",{className:X("pb-4 pt-0",e),children:t})}));ox.displayName=fte.displayName;let hte=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");const ix=[{id:"sum",label:"Sum",symbol:"+",description:"Add two metrics together",template:()=>"({field_0} + {field_1})",requiresTwoInputs:!0},{id:"difference",label:"Difference",symbol:"−",description:"Subtract one metric from another",template:()=>"({field_0} - {field_1})",requiresTwoInputs:!0},{id:"product",label:"Product (Multiplication)",symbol:"×",description:"Multiply two metrics",template:()=>"({field_0} * {field_1})",requiresTwoInputs:!0},{id:"ratio",label:"Ratio",symbol:"÷",description:"Divide one metric by another",template:()=>"({field_0} / NULLIF({field_1}, 0))",requiresTwoInputs:!0},{id:"change",label:"Change",symbol:"Δ",description:"Calculate percentage change from A to B",template:()=>"(({field_1} - {field_0}) / NULLIF({field_0}, 0))",requiresTwoInputs:!0},{id:"percentage",label:"Percentage",symbol:"%",description:"Calculate (A / B) × 100",template:()=>"(({field_0} / NULLIF({field_1}, 0)) * 100)",requiresTwoInputs:!0},{id:"scale",label:"Scale (Multiply by Factor)",symbol:"×n",description:"Multiply a metric by a constant factor",template:()=>"({field_0} * {constant})",requiresTwoInputs:!1},{id:"custom",label:"Custom Expression",symbol:"{}",description:"Drag fields to create custom expression with tokens",requiresTwoInputs:!1,allowsCustomExpression:!0}],fl=e=>e.trim().toLowerCase().replace(/\s+/g,"_"),Nl=e=>e!=null&&e.startsWith("card-source-")?e.replace("card-source-",""):e;function v6(e,t,n,r,s,o,i,a,l,u){const d=ix.find(x=>x.id===t);if(!d)throw new Error(`Unknown operation: ${t}`);let f,h=[],m;if(t==="custom"){if(!(a!=null&&a.trim()))throw new Error("Custom expression is required");f=a.trim(),h=u||[]}else if(t==="scale"){if(!n)throw new Error("Metric A is required for scale operation");if(l===void 0||Number.isNaN(l))throw new Error("Constant factor is required for scale operation");f=d.template().replace("{constant}",String(l)),h=[n],m=l}else{if(!n||!r)throw new Error("Metrics A and B are required for standard operations");f=d.template(),h=[n,r]}const p={operation:t,inputFields:h,...m!==void 0&&{constant:m}},g=fl(e);return{id:i||`calc_${hte(10)}`,name:g,label:e,alias:g,qualifiedFieldName:g,dataType:"number",role:"metric",aggregate:"SUM",expression:f,calculatedFormula:p,entityId:o,entityName:cu,entityType:"table",description:`Calculated field: ${e}`}}function eQe(e){var r,s;const t=ix.find(o=>o.id===e.operation);if(!t)return"Unknown operation";if(e.operation==="custom")return"Custom expression";if(e.operation==="scale"){const o=((r=e.inputFields[0])==null?void 0:r.label)||((s=e.inputFields[0])==null?void 0:s.name)||"A",i=e.constant??1;return`${o} × ${i}`}return e.inputFields.map(o=>o.label||o.name).join(` ${t.symbol} `)}function tQe(e,t,n,r,s,o){const i=fl(e);return{id:o||`calc_dim_${hte(10)}`,name:i,label:e.trim(),alias:i,qualifiedFieldName:i,dataType:r,role:"groupby",expression:t.trim(),calculatedFormula:{operation:"custom",inputFields:n.map(a=>a.role==="metric"?{...a,role:"metric"}:{...a,role:"groupby"})},entityId:s,entityName:cu,entityType:"table",description:`Calculated field: ${e.trim()}`}}function nQe(){const{domainCalculatedFields:e}=PA(),t=C.useMemo(()=>e.filter(r=>r.role==="metric"),[e]),n=C.useMemo(()=>e.filter(r=>r.role==="groupby"),[e]);return{fields:e,metrics:t,dimensions:n}}function rQe({value:e,onChange:t,disabled:n,options:r=["dimension","metric"]}){const s=r.length>0?r:["dimension","metric"],o=["dimension","metric"].filter(l=>s.includes(l)),i=n||o.length<=1,a=o.includes(e)?e:o[0];return c.jsx(Os,{value:a,onValueChange:l=>t(l),className:"w-full",children:c.jsx(ys,{className:"grid h-9 w-full",style:{gridTemplateColumns:`repeat(${o.length}, minmax(0, 1fr))`},children:o.map(l=>c.jsx(nn,{value:l,disabled:i,className:"text-xs",children:l==="metric"?"Calculated Metric":"Calculated Dimension"},l))})})}function sQe({groups:e,searchTerm:t,onSearchTermChange:n,onFieldClick:r,selectedFieldIds:s,disabled:o}){const i=new Set(s||[]),a=e.length>0||t.length>0,l=e.map(f=>f.id),u=(f,h)=>{if(!h)return f;const m=f.toLowerCase(),p=h.toLowerCase();return m.startsWith(`${p}.`)?f.slice(h.length+1):f},d=(f,h)=>{const p=(f.name||f.baseLabel||f.label||f.tokenLabel||"").trim(),g=[h,f.qualifiedEntityName,f.entityName].filter(Boolean);for(const b of g){const x=u(p,b);if(x!==p)return x}return p.includes(".")&&p.split(".").pop()||p};return c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-3 border-r border-border pr-4",children:[a&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{value:t,onChange:f=>n(f.target.value),placeholder:"Search fields...",className:"pl-10 pr-10"}),t&&c.jsx("button",{type:"button",onClick:()=>n(""),className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",children:c.jsx(St,{className:"size-3.5"})})]}),c.jsx(tl,{className:"min-h-0 flex-1",children:e.length===0?c.jsx("div",{className:"rounded-md border border-dashed border-muted px-3 py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."}):c.jsx(BA,{type:"multiple",defaultValue:l,className:"space-y-2",children:e.map(f=>c.jsxs(rx,{value:f.id,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:f.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:f.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:f.fields.map(h=>{const m=i.has(h.id),p=!h.isCompatible||o,g=h.isCalculated&&h.role==="metric",b=d(h,f.label);return c.jsxs("button",{type:"button",onClick:()=>h.isCompatible&&!o&&r(h),className:X("group/container flex w-full items-center gap-3 rounded-lg border border-transparent px-2 py-2 text-left transition-all",p?"cursor-not-allowed opacity-50":"hover:bg-muted",m&&"border-border bg-muted"),disabled:p,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(h.dataType),h.isCalculated&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",g?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:X("block truncate text-sm text-foreground/80",!p&&"group-hover/container:text-foreground"),children:b})}),m&&c.jsx(Ve,{variant:"secondary",className:"shrink-0 text-[10px]",children:"Selected"})]},h.id)})})})]},f.id))})})]})}function oQe({value:e,onChange:t,allowCustom:n,disabled:r}){const s=ix.filter(l=>n?!0:l.id!=="custom"),i=!s.some(l=>l.id==="custom")&&e==="custom"?[...s,ix.find(l=>l.id==="custom")]:s,a=i.find(l=>l.id===e);return c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ot,{value:e,onValueChange:l=>t(l),disabled:r,children:[c.jsx(nt,{children:c.jsx(at,{})}),c.jsx(rt,{children:c.jsxs(WD,{children:[c.jsx(BC,{children:"OPERATIONS"}),i.map(l=>c.jsx(ve,{value:l.id,children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"font-mono text-sm",children:l.symbol}),c.jsx("span",{children:l.label})]})},l.id))]})})]}),a&&c.jsx("p",{className:"text-xs text-muted-foreground",children:a.description})]})}const iQe={COUNT:"Count",DISTINCT:"Count Distinct",SUM:"Sum",AVG:"Average",MIN:"Minimum",MAX:"Maximum",MEDIAN:"Median"};function aQe({value:e,onChange:t,disabled:n,fieldDataType:r,allowMedian:s}){const i=(r?yr(r):"number")==="number",a=["SUM","AVG","COUNT","DISTINCT","MIN","MAX"],l=i?s?[...a,"MEDIAN"]:a:["COUNT","DISTINCT"];return c.jsxs(ot,{value:e,onValueChange:u=>t(u),disabled:n,children:[c.jsx(nt,{className:"h-9",children:c.jsx(at,{})}),c.jsx(rt,{children:l.map(u=>c.jsx(ve,{value:u,children:iQe[u]},u))})]})}const lQe=e=>{const n=(e.name||e.baseLabel||e.label||e.tokenLabel||"").trim();return n.includes(".")&&n.split(".").pop()||n};function w6({label:e,input:t,availableFields:n,excludeFieldIds:r,onFieldSelect:s,onAggregateChange:o,onRemove:i,onActivate:a,allowMedian:l,disabled:u}){const d=(t==null?void 0:t.field.id)||"",f=r!=null&&r.length?n.filter(h=>!r.includes(h.id)):n;return c.jsxs("div",{className:X("flex items-center gap-2 rounded-md border border-border px-2 py-2",a&&!u&&"cursor-pointer",u&&"opacity-60"),onClick:u?void 0:a,children:[c.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded bg-muted font-mono text-xs font-semibold",children:e}),c.jsxs("div",{className:"flex flex-1 gap-2",children:[c.jsxs(ot,{value:d,onValueChange:h=>{const m=f.find(p=>p.id===h);m&&s(m)},disabled:u,children:[c.jsx(nt,{className:"h-9 flex-1",children:c.jsx(at,{placeholder:"Select field"})}),c.jsx(rt,{children:f.map(h=>c.jsx(ve,{value:h.id,children:lQe(h)},h.id))})]}),c.jsx("div",{className:"w-36",children:c.jsx(aQe,{value:(t==null?void 0:t.aggregate)||"SUM",onChange:o,disabled:u||(t==null?void 0:t.isCalculatedField),fieldDataType:t==null?void 0:t.field.dataType,allowMedian:l})})]}),t&&c.jsx(se,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:h=>{h.stopPropagation(),i()},disabled:u,children:c.jsx(St,{className:"h-3.5 w-3.5"})})]})}const C6=C.forwardRef(function({value:t,onChange:n,onGenerate:r,showGenerate:s,disabled:o},i){return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"text-sm font-medium",children:"Expression"}),s&&c.jsxs(se,{type:"button",size:"sm",variant:"outline",onClick:r,disabled:o,className:"h-7 gap-2 text-xs",children:[c.jsx(q1,{className:"h-3.5 w-3.5"}),"Generate with AI"]})]}),c.jsx(Yb,{ref:i,value:t,onChange:a=>n(a.target.value),disabled:o,placeholder:"CASE WHEN {Amount} > 100 THEN 'Large' ELSE 'Small' END",className:"min-h-[140px] font-mono text-xs"})]})});function cQe({result:e}){const t=e.errors.length>0;return c.jsxs("div",{className:X("rounded-md border px-3 py-2 text-xs",t?"border-destructive/40 bg-destructive/10 text-destructive":"border-emerald-500/30 bg-emerald-500/10 text-emerald-700"),children:[c.jsx("div",{className:"font-medium",children:t?"Validation Failed":"Validation Passed"}),e.tokens.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Tokens Found"}),e.tokens.map(n=>c.jsx("div",{children:n.field?`{${n.token}} -> ${n.field.qualifiedFieldName||n.field.name}`:`{${n.token}}`},n.token))]}),e.errors.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Errors"}),e.errors.map((n,r)=>c.jsxs("div",{children:[n.message,n.suggestion?` (${n.suggestion})`:""]},`${n.code}-${r}`))]}),e.warnings.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Warnings"}),e.warnings.map((n,r)=>c.jsxs("div",{children:[n.message," ",n.suggestion]},`${n.code}-${r}`))]}),e.inferredDataType&&c.jsxs("div",{className:"mt-2 text-[11px] text-muted-foreground",children:["Inferred Output Type: ",e.inferredDataType]})]})}function S6({onValidate:e,isValidating:t,validationResult:n,fallbackResult:r,error:s,showFallback:o,disabled:i}){return c.jsxs("div",{className:"space-y-2",children:[c.jsx(se,{type:"button",variant:"outline",onClick:e,disabled:t||i,className:"h-8",children:t?"Validating...":"Validate Expression"}),s&&c.jsx("div",{className:"text-xs text-destructive",children:s}),(n||o)&&c.jsx(cQe,{result:n||r})]})}function uQe({scope:e,onChange:t,showDashboardScope:n,showDomainScope:r,error:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 border-t border-border pt-4",children:[c.jsx(ae,{children:"Availability"}),c.jsxs(Qs,{value:e,onValueChange:i=>t(i),className:"space-y-2",disabled:o,children:[c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-card",value:"card"}),c.jsx(ae,{htmlFor:"scope-card",className:"text-sm font-normal",children:"This card only"})]}),n&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-dashboard",value:"dashboard"}),c.jsx(ae,{htmlFor:"scope-dashboard",className:"text-sm font-normal",children:"All cards in this dashboard"})]}),r&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-domain",value:"domain"}),c.jsx(ae,{htmlFor:"scope-domain",className:"text-sm font-normal",children:"Save to domain"})]})]}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]})}function dQe({description:e,tags:t,onDescriptionChange:n,onTagsChange:r,descriptionError:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 rounded-md border border-muted bg-muted/30 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-description",children:"Description"}),c.jsx(vu,{id:"domain-description",value:e,onChange:i=>n(i.target.value),placeholder:"Explain what this metric represents",className:X("text-sm",s&&"border-red-500"),rows:3,disabled:o}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-tags",children:"Tags (optional)"}),c.jsx(mn,{id:"domain-tags",value:t,onChange:i=>r(i.target.value),placeholder:"profitability, kpi",disabled:o})]}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"This field will be visible to all dashboards using this domain."})]})}function fQe({endpoint:e,availableFields:t,fieldType:n,dialect:r}){const{authToken:s}=Xe(),[o,i]=C.useState(!1),[a,l]=C.useState(null);return{generateExpression:C.useCallback(async d=>{var f;if(!e)return l("AI generation is not available"),null;if(!d.trim())return l("Describe what you want to calculate"),null;i(!0),l(null);try{const h={type:"calculated-field-expression",context:{userQuery:d,availableFields:t.map(p=>({name:p.tokenLabel,dataType:p.dataType})),fieldType:n},options:{dialect:r}},m=await eo(e,(s==null?void 0:s.accessToken)||"",h);if(!m.success||!((f=m.result)!=null&&f.generated))throw new Error(m.error||"No expression generated");return m.result.generated}catch(h){return l((h==null?void 0:h.error)||(h==null?void 0:h.message)||"AI generation failed"),null}finally{i(!1)}},[e,t,n,r,s==null?void 0:s.accessToken]),isGenerating:o,error:a}}function hQe({open:e,onOpenChange:t,availableFields:n,fieldType:r,onExpressionGenerated:s,endpoint:o,dialect:i}){const[a,l]=C.useState(""),[u,d]=C.useState(""),[f,h]=C.useState(""),{generateExpression:m,isGenerating:p,error:g}=fQe({endpoint:o,availableFields:n,fieldType:r,dialect:i}),b=C.useMemo(()=>{const S=f.trim().toLowerCase();return S?n.filter(N=>[N.label,N.baseLabel,N.name,N.tokenLabel,N.entityName,N.qualifiedEntityName].filter(Boolean).join(" ").toLowerCase().includes(S)):n},[n,f]),x=S=>{const E=(S.name||S.baseLabel||S.label||S.tokenLabel||"").trim();return E.includes(".")&&E.split(".").pop()||E},y=S=>{const N=S.entityName||S.qualifiedEntityName||"";return N?N==="SEMAPHOR_CALCULATED_FIELD"?"Calculated":N.includes(".")&&N.split(".").pop()||N:"—"},v=async()=>{const S=await m(a.trim());S&&d(S)},w=()=>{u.trim()&&(s(u.trim()),l(""),d(""),t(!1))},j=()=>{l(""),d(""),h(""),t(!1)};return c.jsx(Gr,{open:e,onOpenChange:S=>{S?t(!0):j()},children:c.jsxs(zr,{className:"max-w-3xl",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:"Generate Expression with AI"}),c.jsx(is,{children:"Describe what you want to calculate and we will draft a SQL expression."})]}),c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"ai-prompt",children:"Describe what you want to calculate"}),c.jsx(Yb,{id:"ai-prompt",value:a,onChange:S=>l(S.target.value),placeholder:"Create a bucket that categorizes orders as 'Large' when amount is greater than 1000",rows:2})]}),c.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs text-muted-foreground",children:[c.jsx("span",{children:"Be specific about conditions, buckets, or math you want to apply."}),c.jsx(se,{size:"sm",onClick:v,disabled:p||!a.trim(),children:p?"Generating...":u?"Regenerate":"Generate"})]}),g&&c.jsx("p",{className:"text-xs text-destructive",children:g})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Available fields"}),c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),c.jsx(mn,{value:f,onChange:S=>h(S.target.value),placeholder:"Search fields...",className:"pl-9"})]}),c.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:c.jsx("div",{className:"max-h-48 overflow-y-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"sticky top-0 z-10 border-b bg-muted",children:c.jsxs("tr",{children:[c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Field"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Type"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Category"})]})}),c.jsx("tbody",{className:"divide-y",children:b.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:3,className:"py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."})}):b.map(S=>c.jsxs("tr",{className:"hover:bg-muted/30",children:[c.jsx("td",{className:"px-3 py-1.5 font-mono text-xs",children:x(S)}),c.jsx("td",{className:"px-3 py-1.5",children:c.jsx(Ve,{variant:"secondary",className:"px-1.5 py-0 text-[11px]",children:S.dataType})}),c.jsx("td",{className:"px-3 py-1.5 text-sm text-muted-foreground",children:y(S)})]},S.id))})]})})})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Generated expression"}),c.jsx(Yb,{value:u,readOnly:!0,rows:2,className:"font-mono text-sm"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Review the generated expression before using it."})]})]}),c.jsxs(os,{className:"gap-2",children:[c.jsx(se,{variant:"ghost",onClick:j,children:"Cancel"}),c.jsx(se,{onClick:w,disabled:!u.trim(),children:"Use Expression"})]})]})})}const mQe=/\{([^}]+)\}/g;function ZS(e){return e.trim().toLowerCase()}function _1(e){return Array.from(e.matchAll(mQe)).map(t=>t[1]).filter(Boolean)}function pQe(e){const t=new Set,n=[];return e.forEach(r=>{const s=ZS(r);t.has(s)||(t.add(s),n.push(r))}),n}function VA(e){const t=new Map,n=(r,s)=>{const o=ZS(r),i=t.get(o)||[];i.some(a=>a.id===s.id)||t.set(o,[...i,s])};return e.forEach(r=>{n(r.tokenLabel,r),r.name&&r.name!==r.tokenLabel&&n(r.name,r),r.baseLabel&&r.baseLabel!==r.tokenLabel&&n(r.baseLabel,r)}),t}function tg(e,t){const n=_1(e),r=pQe(n),s=VA(t),o=r.map(a=>{const l=s.get(ZS(a))||[];return l.length===1?l[0]:null}),i=r.filter((a,l)=>!o[l]);return{orderedTokens:r,orderedFields:o,unresolvedTokens:i}}function j6(e,t){return t.reduce((n,r,s)=>{const o=new RegExp(`\\{${gQe(r)}\\}`,"gi");return n.replace(o,`{field_${s}}`)},e)}function gQe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const bQe=e=>e.entityName===Qh||e.entityName===cu?"Calculated Fields":e.qualifiedEntityName?cb(e.entityName||e.qualifiedEntityName):cb(e.entityName||"Other"),xQe=e=>yr(e.dataType||"")==="number";function yQe(e,t,n){const r=new Set((n||[]).map(s=>Nl(s)));return e.filter(s=>{const o=Nl(s.id);return o&&r.has(o)?!1:t==="dimension"?s.role!=="metric":!0})}function vQe(e){const t=new Map,n=new Map;return e.forEach(r=>{let o=r.entityName&&r.entityName!==cu?`${r.entityName}.${r.name}`:r.name;const i=o.toLowerCase(),a=n.get(i)||0;a>0&&(o=`${o} ${a+1}`),n.set(i,a+1),t.set(r.id,o)}),t}function wQe(e,t,n,r){if(t!=="metric")return e.map(o=>({...o,isCompatible:!0}));if(!n)return e.map(o=>({...o,isCompatible:!0}));const s=n==="COUNT"||n==="DISTINCT";return e.map(o=>{const i=s||xQe(o);return{...o,isCompatible:i}}).filter(o=>r)}function CQe(e,t){if(!t)return e;const n=t.toLowerCase();return e.filter(r=>r.name.toLowerCase().includes(n)||r.baseLabel.toLowerCase().includes(n)||r.tokenLabel.toLowerCase().includes(n)||r.dataType.toLowerCase().includes(n)||(r.qualifiedEntityName||r.entityName||"").toLowerCase().includes(n))}function SQe(e){const t=new Map;return e.forEach(n=>{var s;const r=n.qualifiedEntityName||n.entityName||"Other";t.has(r)||t.set(r,{id:r,label:bQe(n),fields:[]}),(s=t.get(r))==null||s.fields.push(n)}),Array.from(t.values())}function jQe({fields:e,mode:t,searchTerm:n,excludeFieldIds:r,selectedAggregate:s,showIncompatible:o}){const i=C.useMemo(()=>yQe(e,t,r),[e,t,r]),a=C.useMemo(()=>vQe(i),[i]),l=C.useMemo(()=>i.map(m=>{const p=m.label||m.name,g=m.role==="metric"&&sc(m)||m.role==="groupby"&&Ux(m);return{...m,baseLabel:p,tokenLabel:a.get(m.id)||p,isCalculated:g,isCompatible:!0}}),[i,a]),u=C.useMemo(()=>VA(l),[l]),d=C.useMemo(()=>wQe(l,t,s,o),[l,t,s,o]),f=C.useMemo(()=>CQe(d,n),[d,n]),h=C.useMemo(()=>SQe(f),[f]);return{allFields:l,filteredFields:f,groups:h,tokenCandidates:u}}const NQe=e=>{let t=0;for(const n of e)if(n==="("&&(t+=1),n===")"&&(t-=1),t<0)return!1;return t===0},kQe=(e,t)=>{const n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return 0;if(!n.length)return r.length;if(!r.length)return n.length;const s=[];for(let o=0;o<=r.length;o+=1)s[o]=[o];for(let o=0;o<=n.length;o+=1)s[0][o]=o;for(let o=1;o<=r.length;o+=1)for(let i=1;i<=n.length;i+=1)r.charAt(o-1)===n.charAt(i-1)?s[o][i]=s[o-1][i-1]:s[o][i]=Math.min(s[o-1][i-1]+1,s[o][i-1]+1,s[o-1][i]+1);return s[r.length][n.length]},EQe=(e,t)=>t.map(r=>({candidate:r,distance:kQe(e,r)})).filter(r=>r.distance>0&&r.distance<=3).sort((r,s)=>r.distance-s.distance).slice(0,3).map(r=>r.candidate),_Qe=(e,t)=>{var r;const n=e.trim();if(n){if(/\bDATE_TRUNC\b/i.test(n))return"date";if(/\bTIMESTAMP\b/i.test(n))return"datetime";if(/\bDATE\b/i.test(n)&&!/\bUPDATE\b/i.test(n))return"date";if(/['"]/.test(n))return"string";if(/[+\-*/]/.test(n))return"number";if(t.length===1){const s=((r=t[0])==null?void 0:r.dataType)||"";if(/date|timestamp/i.test(s))return"date";if(/int|decimal|float|double|num|real/i.test(s))return"number";if(/boolean/i.test(s))return"boolean"}return"string"}},TQe=e=>e.map(t=>({id:t.id,name:t.name,label:t.tokenLabel,dataType:t.dataType,entityName:t.entityName,role:t.role}));function MQe({expression:e,availableFields:t,excludeFieldIds:n,validationEndpoint:r,connectionId:s,dialect:o}){const{authToken:i}=Xe(),[a,l]=C.useState(null),[u,d]=C.useState(!1),[f,h]=C.useState(null),m=C.useMemo(()=>VA(t),[t]),p=C.useMemo(()=>{const x=[],y=[],v=e.trim();v||x.push({code:"SYNTAX_ERROR",message:"Expression is required"}),v&&!NQe(v)&&x.push({code:"SYNTAX_ERROR",message:"Unbalanced parentheses in expression"});const j=_1(e).map(N=>{const E=m.get(ZS(N))||[];if(!E.length){const M=Array.from(m.keys()),T=EQe(N,M),P=T.length?`Did you mean {${T[0]}}?`:void 0;return x.push({code:"UNKNOWN_TOKEN",message:`Unknown field token: {${N}}`,suggestion:P}),{token:N,field:null,error:"Unknown token"}}if(E.length>1)return x.push({code:"UNKNOWN_TOKEN",message:`Token {${N}} matches multiple fields. Use a disambiguated label.`}),{token:N,field:null,error:"Ambiguous token"};const _=E[0];return(n||[]).map(Nl).includes(Nl(_.id))?(x.push({code:"SELF_REFERENCE",message:"Cannot reference the field being edited"}),{token:N,field:null,error:"Self reference"}):{token:N,field:_}});/\bCASE\b/i.test(e)&&!/\bELSE\b/i.test(e)&&y.push({code:"MISSING_ELSE",message:"CASE expression missing ELSE clause",suggestion:"Add an ELSE branch to handle default values."}),/\//.test(e)&&!/NULLIF\s*\(/i.test(e)&&y.push({code:"DIVISION_BY_ZERO",message:"Division may result in divide-by-zero errors",suggestion:"Wrap the denominator in NULLIF(..., 0)."});const S=j.map(N=>N.field).filter(Boolean);return{isValid:x.length===0,tokens:j,errors:x,warnings:y,inferredDataType:_Qe(e,S)}},[e,n,m]),g=C.useCallback(async()=>{var v;if(h(null),!r||!p.isValid)return l(p),p;const x=r,y={type:"calculated-field-expression",value:e,context:{availableFields:TQe(t),connectionId:s,excludeFieldIds:n,dialect:o}};d(!0);try{const w=await eo(x,(i==null?void 0:i.accessToken)||"",y),j=w.errors||[],S=w.warnings||[],N={...p,isValid:w.valid&&j.length===0,errors:j,warnings:S,inferredDataType:((v=w.metadata)==null?void 0:v.inferredType)||p.inferredDataType};return l(N),N}catch(w){return h((w==null?void 0:w.error)||"Validation failed"),l(p),p}finally{d(!1)}},[r,p,e,t,s,n,o,i==null?void 0:i.accessToken]),b=C.useCallback(()=>{l(null),h(null)},[]);return{clientResult:p,validationResult:a,isValidating:u,serverError:f,validateExpression:g,resetValidation:b}}const N6=[{value:"string",label:"String"},{value:"number",label:"Number"},{value:"boolean",label:"Boolean"},{value:"date",label:"Date"},{value:"datetime",label:"Datetime"},{value:"json",label:"JSON"},{value:"geo",label:"Geo"}],G2=e=>{if(!e)return"";const t=e.field.tokenLabel||e.field.label||e.field.name,n=e.aggregate;return n==="DISTINCT"?`COUNT(DISTINCT ${t})`:n==="COUNT"?`COUNT(${t})`:`${n}(${t})`},mte=e=>yr(e.dataType||"")==="number",uh=e=>mte(e)?"SUM":"COUNT",K2=(e,t)=>mte(e)||t==="COUNT"||t==="DISTINCT"?t:uh(e);function Z2(e,t){if(e.role==="metric"){const n=e;return sc(n)?n:{...n,aggregate:t}}return{...e,id:`${e.id}_${t.toLowerCase()}`,role:"metric",aggregate:t,alias:`${(e.alias||e.name).toLowerCase()}_${t.toLowerCase()}`,entityName:e.entityName,entityId:e.entityId,qualifiedEntityName:e.qualifiedEntityName}}function rh(e,t){const n=e.role==="metric"&&sc(e);return{field:e,aggregate:n&&e.aggregate||t,isCalculatedField:n}}function pte({open:e,onOpenChange:t,availableFields:n,existingField:r,existingFieldScope:s,onSave:o,onSaveToDashboard:i,onPromoteMetricToDomain:a,onPromoteDimensionToDomain:l,cardId:u,domainId:d,initialFieldType:f="metric",allowedFieldTypes:h}){var zf;const{tokenProps:m}=Xe(),{selectedConnection:p}=EU(),g=(p==null?void 0:p.dialect)==="bigquery"||(p==null?void 0:p.dialect)==="snowflake",[b,x]=C.useState(f),[y,v]=C.useState(""),[w,j]=C.useState("ratio"),[S,N]=C.useState(null),[E,_]=C.useState(null),[k,M]=C.useState(1),[T,P]=C.useState(""),[O,I]=C.useState(null),[$,V]=C.useState("card"),[W,L]=C.useState(""),[R,z]=C.useState(""),[F,A]=C.useState({}),[H,B]=C.useState("A"),[Y,q]=C.useState(""),[U,G]=C.useState(!1),[Z,Q]=C.useState(null),[K,te]=C.useState(!1),[le,de]=C.useState(!1),[ce,Ce]=C.useState(!1),ge=C.useRef(null),he=C.useRef(!1),me=C.useRef(null),{userContext:oe}=Ps(),{metrics:Ne,dimensions:fe}=nQe(),Me=(oe==null?void 0:oe.type)==="organization",ke=!Me,ie=!!d&&Me,xe=ie&&!!a,Oe=ie&&!!l,be=!!(i||xe||Oe),De=!!i,qe=b==="metric"?xe:Oe,He=(zf=m==null?void 0:m.apiServiceUrl)==null?void 0:zf.replace(/\/$/,""),Fe=He?`${He}/v1/validate`:"/v1/validate",yt=He?`${He}/v1/ai/generate`:"/v1/ai/generate",je=C.useMemo(()=>{var Mt;const Se=[...n];return(((Mt=r==null?void 0:r.calculatedFormula)==null?void 0:Mt.inputFields)||[]).forEach(vn=>{Se.some(qn=>qn.id===vn.id||qn.qualifiedFieldName===vn.qualifiedFieldName||qn.name===vn.name)||Se.push(vn)}),Se},[n,r]),dt=H==="A"?S:E,Ct=b==="metric"&&w!=="custom"?dt==null?void 0:dt.aggregate:void 0,{allFields:Ye,groups:Yt}=jQe({fields:je,mode:b,searchTerm:Y,excludeFieldIds:r?[r.id]:void 0,selectedAggregate:Ct,showIncompatible:!0}),Ge=Ye,{clientResult:et,validationResult:Be,validateExpression:Ke,isValidating:kt,serverError:pe,resetValidation:Re}=MQe({expression:T,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,validationEndpoint:Fe,connectionId:p==null?void 0:p.id,dialect:p==null?void 0:p.dialect}),re=(Be==null?void 0:Be.inferredDataType)||et.inferredDataType,_e=O||re||"string",We=ix.find(Se=>Se.id===w),it=C.useMemo(()=>{if(!y.trim())return!1;const Se=fl(y),lt=s==="domain"&&(r!=null&&r.name)?fl(r.name):null;return(b==="metric"?Ne:fe).some(vn=>{const Qt=fl(vn.name);return lt&&Qt===lt?!1:Qt===Se})},[fe,Ne,r,s,b,y]),zt=C.useMemo(()=>{if(b==="metric"&&w==="custom"){const{orderedFields:lt}=tg(T,Ge);return lt.filter(Mt=>!!Mt).map(Mt=>Mt.id)}const Se=[];return S!=null&&S.field.id&&Se.push(S.field.id),E!=null&&E.field.id&&Se.push(E.field.id),Se},[Ge,T,b,S,E,w]),un=Se=>{ke||(x(Se),Se==="dimension"&&$==="domain"&&!Oe&&V("card"),Se==="metric"&&$==="domain"&&!xe&&V("card"))},Dn=Se=>{ke||(j(Se),Se==="scale"&&_(null),Se==="custom"&&(N(null),_(null)))},Kr=()=>{v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z(""),A({}),q(""),G(!1),Q(null),te(!1),Ce(!1),Re(),t(!1)},Hr=C.useCallback(Se=>je.find(lt=>lt.qualifiedFieldName===Se.qualifiedFieldName||lt.name===Se.name)||Se,[je]),zs=C.useCallback(Se=>{if(!Se.calculatedFormula)return;const lt=Se.calculatedFormula;if(j(lt.operation),P(""),lt.operation==="scale"){const Qt=lt.inputFields[0];Qt&&N(rh(Hr(Qt),Qt.aggregate||"SUM")),M(lt.constant===void 0?1:lt.constant);return}if(lt.operation==="custom"){P(Ni(Se.expression||"",lt.inputFields||[])),N(null),_(null);return}const[Mt,vn]=lt.inputFields;Mt&&N(rh(Hr(Mt),Mt.aggregate||"SUM")),vn&&_(rh(Hr(vn),vn.aggregate||"SUM"))},[Hr]),Ni=C.useCallback((Se,lt)=>Se.replace(/\{field_(\d+)\}/g,(Mt,vn)=>{var Cr;const Qt=lt[Number(vn)];return Qt?`{${((Cr=Ge.find(ki=>ki.id===Qt.id))==null?void 0:Cr.tokenLabel)||Qt.label||Qt.name}}`:Mt}),[Ge]);C.useEffect(()=>{var Mt;if(!e){he.current=!1,me.current=null;return}const Se=r?`${r.role}-${r.id||r.name}`:"new";if(he.current&&me.current===Se)return;if(he.current=!0,me.current=Se,A({}),q(""),Ce(!1),Re(),r){const vn=r.tags||[];if(r.role==="metric"){x("metric"),v(r.label||r.name),V(s||"card"),L(r.description||""),z(vn.join(", ")),zs(r);return}x("dimension");const Qt=r;v(Qt.label||Qt.name),V(s||"card"),P(Ni(Qt.expression||"",((Mt=Qt.calculatedFormula)==null?void 0:Mt.inputFields)||[]));const qn=N6.some(Cr=>Cr.value===Qt.dataType)?Qt.dataType:"string";I(qn),L(Qt.description||""),z(vn.join(", "));return}const lt=h&&h.length>0?h.includes(f)?f:h[0]:f;x(lt),v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z("")},[e,r,s,f,h,zs,Ni,Re]);const Fu=Se=>{const lt=`{${Se}}`,Mt=ge.current;if(!Mt){P(Cr=>Cr+lt);return}const vn=Mt.selectionStart||0,Qt=Mt.selectionEnd||0,qn=`${T.slice(0,vn)}${lt}${T.slice(Qt)}`;P(qn),requestAnimationFrame(()=>{Mt.focus();const Cr=vn+lt.length;Mt.setSelectionRange(Cr,Cr)})},JS=Se=>{if(ke)return;if(b==="dimension"||w==="custom"){Fu(Se.tokenLabel||Se.label||Se.name);return}const lt=K2(Se,H==="A"?(S==null?void 0:S.aggregate)||uh(Se):(E==null?void 0:E.aggregate)||uh(Se)),Mt=rh(Se,lt);if(H==="A"){N(Mt),E||B("B");return}_(Mt),S||B("A")},Oy=(Se,lt)=>{if(!ke){if(Se==="A"&&S){N({...S,aggregate:lt});return}Se==="B"&&E&&_({...E,aggregate:lt})}},uc=async()=>{const Se={};if(y.trim()||(Se.name="Name is required"),w==="custom")T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving");else if(w==="scale")S||(Se.inputA="Please select a metric for input A"),Number.isNaN(k)&&(Se.constant="Please enter a valid multiplication factor");else{if(S||(Se.inputA="Please select a metric for input A"),E||(Se.inputB="Please select a metric for input B"),S&&E){const lt=S.field.id===E.field.id,Mt=S.aggregate===E.aggregate;lt&&Mt&&(Se.inputs="Inputs A and B must be different metrics")}if(r&&r.role==="metric"){const lt=Nl(r.id);(Nl(S==null?void 0:S.field.id)===lt||Nl(E==null?void 0:E.field.id)===lt)&&(Se.inputs="Cannot reference the field being edited")}}return be&&($==="domain"&&!xe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},ej=async()=>{const Se={};return y.trim()||(Se.name="Name is required"),T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving"),be&&($==="domain"&&!Oe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},tj=()=>{const{orderedTokens:Se,orderedFields:lt}=tg(T,Ge),Mt=lt.filter(qn=>!!qn),vn=j6(T,Se),Qt=tQe(y,vn,Mt,_e,u,r==null?void 0:r.id);return r&&r.role==="groupby"?{...r,...Qt}:Qt},nj=()=>{var vn;if(w==="custom"){const{orderedTokens:Qt,orderedFields:qn}=tg(T,Ge),Cr=qn.filter(Ot=>!!Ot),ki=(r==null?void 0:r.role)==="metric"?((vn=r.calculatedFormula)==null?void 0:vn.inputFields)||[]:[],No=new Map;ki.forEach(Ot=>{const dr=Nl(Ot.id);dr&&No.set(dr,Ot),Ot.qualifiedFieldName&&No.set(Ot.qualifiedFieldName,Ot),Ot.name&&No.set(Ot.name,Ot)});const dc=Cr.map(Ot=>{const dr=Nl(Ot.id),Ei=dr&&No.get(dr)||Ot.qualifiedFieldName&&No.get(Ot.qualifiedFieldName)||No.get(Ot.name),oj=((Ei==null?void 0:Ei.role)==="metric"?Ei.aggregate:void 0)||(Ot.role==="metric"?Ot.aggregate:void 0)||uh(Ot);return Z2(Ot,oj)}),Jn=j6(T,Qt),rn=v6(y,w,null,null,{},u,r==null?void 0:r.id,Jn,void 0,dc);return r&&r.role==="metric"?{...r,...rn}:rn}const Se=S?Z2(S.field,S.aggregate):null,lt=E?Z2(E.field,E.aggregate):null,Mt=v6(y,w,Se,lt,{},u,r==null?void 0:r.id,void 0,w==="scale"?k:void 0);return r&&r.role==="metric"?{...r,...Mt}:Mt},Fy=async Se=>{var Mt,vn,Qt;if(b==="dimension"){const qn=tj();if(Se==="dashboard"){if(!i){A(Cr=>({...Cr,scope:"Dashboard scope is not available"}));return}i(qn),Kr();return}if(Se==="domain"){if(!l){A(rn=>({...rn,scope:"Domain scope is not available"}));return}const Cr=((Mt=qn.calculatedFormula)==null?void 0:Mt.inputFields)||[],ki=new Map,No=Cr.map(rn=>{const Ot=fl(rn.label||rn.name),dr=ki.get(Ot)||0;return ki.set(Ot,dr+1),dr===0?Ot:`${Ot}_${dr+1}`}),dc=((vn=qn.expression)==null?void 0:vn.replace(/\{field_(\d+)\}/g,(rn,Ot)=>`{${No[Number(Ot)]||Ot}}`))||"",Jn=No.reduce((rn,Ot,dr)=>{const Ei=Cr[dr];return Ux(Ei)?rn[Ot]={dimension:Ei.name}:rn[Ot]={dataset:Ei.entityName,field:Ei.name},rn},{});try{await l({name:fl(y),label:y.trim(),description:W.trim(),expression:dc,inputs:Jn,dataType:_e,tags:R.split(",").map(rn=>rn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(rn){A(Ot=>({...Ot,scope:(rn==null?void 0:rn.message)||"Failed to save to domain"}));return}Kr();return}o(qn),Kr();return}const lt=nj();if(Se==="dashboard"){if(!i){A(qn=>({...qn,scope:"Dashboard scope is not available"}));return}i(lt),Kr();return}if(Se==="domain"){if(!a){A(Jn=>({...Jn,scope:"Domain scope is not available"}));return}if(!lt.calculatedFormula){A(Jn=>({...Jn,scope:"Calculated formula missing"}));return}const qn=lt.calculatedFormula.inputFields,Cr=new Map,ki=qn.map(Jn=>{const rn=fl(Jn.label||Jn.name),Ot=Cr.get(rn)||0;return Cr.set(rn,Ot+1),Ot===0?rn:`${rn}_${Ot+1}`}),No=((Qt=lt.expression)==null?void 0:Qt.replace(/\{field_(\d+)\}/g,(Jn,rn)=>`{${ki[Number(rn)]||rn}}`))||"",dc=ki.reduce((Jn,rn,Ot)=>{const dr=qn[Ot];return dr.role==="metric"?sc(dr)?Jn[rn]={metric:dr.name}:Jn[rn]={dataset:dr.entityName,field:dr.name,aggregate:dr.aggregate}:Jn[rn]={dataset:dr.entityName,field:dr.name},Jn},{});try{await a({name:fl(y),label:y.trim(),description:W.trim(),expression:No,inputs:dc,tags:R.split(",").map(Jn=>Jn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(Jn){A(rn=>({...rn,scope:(Jn==null?void 0:Jn.message)||"Failed to save to domain"}));return}Kr();return}o(lt),Kr()},rj=async()=>{if(ke)return;if(A({}),b==="metric"){if(!await uc())return}else if(!await ej())return;const Se=be?$:s||"card";if(b==="metric"&&Se!=="domain"&&it&&!r){Q(Se),te(!0);return}de(!0);try{await Fy(Se)}finally{de(!1)}},sj=C.useMemo(()=>{if(!We||w==="custom")return"";if(w==="scale"){const Se=Number.isFinite(k)?k:1;return`${G2(S)} x ${Se}`}return`${G2(S)||"A"} ${We.symbol} ${G2(E)||"B"}`},[We,w,S,E,k]);return c.jsxs(c.Fragment,{children:[c.jsxs(Gr,{modal:!1,open:e,onOpenChange:Se=>{Se?t(!0):Kr()},children:[e&&c.jsx("div",{className:"pointer-events-none fixed inset-0 z-40 bg-background/80 backdrop-blur-sm"}),c.jsxs(zr,{className:"max-w-5xl max-h-[90vh] overflow-hidden",onInteractOutside:Se=>{Se.preventDefault()},children:[c.jsxs(Br,{children:[c.jsxs(Vr,{children:[r?"Edit":"Create"," Calculated Field"]}),c.jsx(is,{children:"Build calculated metrics and dimensions using expressions."})]}),c.jsxs("div",{className:"grid h-[70vh] min-h-0 grid-cols-[320px_1fr] gap-6",children:[c.jsx(sQe,{groups:Yt,searchTerm:Y,onSearchTermChange:q,onFieldClick:JS,selectedFieldIds:zt,disabled:ke}),c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-y-auto pr-2",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Field Type"}),c.jsx(rQe,{value:b,onChange:un,disabled:ke||!!r,options:h||["metric","dimension"]})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"calculated-name",children:"Name"}),c.jsx(mn,{id:"calculated-name",value:y,onChange:Se=>v(Se.target.value),placeholder:"e.g., Profit Margin",className:F.name?"border-red-500":"",disabled:ke}),F.name&&c.jsx("p",{className:"text-xs text-red-500",children:F.name})]}),b==="metric"&&c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Operation"}),c.jsx(oQe,{value:w,onChange:Dn,allowCustom:!0,disabled:ke}),F.operation&&c.jsx("p",{className:"text-xs text-red-500",children:F.operation})]}),w==="custom"?c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression})]}):c.jsxs("div",{className:"space-y-3",children:[c.jsx(ae,{children:"Inputs"}),c.jsx(w6,{label:"A",input:S,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(S==null?void 0:S.aggregate)||uh(Se));N(rh(Se,lt))},onAggregateChange:Se=>Oy("A",Se),onRemove:()=>N(null),onActivate:()=>B("A"),allowMedian:g,disabled:ke}),F.inputA&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputA}),w!=="scale"&&c.jsxs(c.Fragment,{children:[c.jsx(w6,{label:"B",input:E,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(E==null?void 0:E.aggregate)||uh(Se));_(rh(Se,lt))},onAggregateChange:Se=>Oy("B",Se),onRemove:()=>_(null),onActivate:()=>B("B"),allowMedian:g,disabled:ke}),F.inputB&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputB})]}),w==="scale"&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"constantFactor",children:"Multiplication Factor"}),c.jsx(mn,{id:"constantFactor",type:"number",step:"any",value:Number.isNaN(k)?"":k,onChange:Se=>M(Se.target.value===""?Number.NaN:Number(Se.target.value)),className:F.constant?"border-red-500":"",placeholder:"e.g., 0.15",disabled:ke}),F.constant&&c.jsx("p",{className:"text-xs text-red-500",children:F.constant})]}),c.jsx("div",{className:"rounded-md border border-border bg-muted/40 p-3 text-sm font-mono",children:sj||"Select inputs to preview formula"}),F.inputs&&c.jsxs(kI,{variant:"destructive",children:[c.jsx(Yl,{className:"h-4 w-4"}),c.jsx(EI,{children:F.inputs})]})]})]}),b==="dimension"&&c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Output Type"}),c.jsxs(ot,{value:_e,onValueChange:Se=>I(Se),disabled:ke,children:[c.jsx(nt,{className:"h-9 w-full",children:c.jsx(at,{placeholder:"Select output type"})}),c.jsx(rt,{children:N6.map(Se=>c.jsx(ve,{value:Se.value,children:Se.label},Se.value))})]}),re&&!O&&c.jsxs("p",{className:"text-xs text-muted-foreground",children:["Suggested type: ",re]})]})]}),be&&(De||qe)&&c.jsxs("div",{className:"space-y-3",children:[c.jsx(uQe,{scope:$,onChange:V,showDashboardScope:De,showDomainScope:qe,error:F.scope,disabled:ke}),$==="domain"&&c.jsx(dQe,{description:W,tags:R,onDescriptionChange:L,onTagsChange:z,descriptionError:F.description,disabled:ke})]})]})]}),c.jsxs(os,{children:[c.jsx(se,{variant:"outline",onClick:Kr,children:"Cancel"}),c.jsxs(se,{onClick:rj,disabled:le||ke,children:[r?"Update":"Create"," ",b==="metric"?"Metric":"Dimension"]})]})]})]}),c.jsx(hQe,{open:U,onOpenChange:G,availableFields:Ge,fieldType:b,onExpressionGenerated:async Se=>{P(Se),Ce(!1),Re()},endpoint:yt,dialect:p==null?void 0:p.dialect}),c.jsx(Um,{open:K,onOpenChange:te,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Name Conflict"}),c.jsxs(Ef,{children:['A domain metric named "',y.trim(),'" already exists. Your local version will override it in this'," ",Z==="dashboard"?"dashboard":"card",". Continue?"]})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{onClick:()=>{Q(null)},children:"Choose Different Name"}),c.jsx(_f,{onClick:async()=>{if(Z){te(!1),de(!0);try{await Fy(Z)}finally{de(!1),Q(null)}}},children:"Continue"})]})]})})]})}function gte({domainId:e}){const{authToken:t,tokenProps:n}=Xe(),[r,s]=C.useState(!1),[o,i]=C.useState(null),a=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-metrics`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),l=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-dimensions`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),u=C.useCallback(async f=>{if(!a){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(a,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[a,t==null?void 0:t.accessToken]),d=C.useCallback(async f=>{if(!l){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(l,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[l,t==null?void 0:t.accessToken]);return{promoteMetric:u,promoteDimension:d,isPromoting:r,error:o}}const bte=C.memo(function({context:t="editor",onFieldSelect:n,inlineFilters:r}={}){var Ke,kt,pe,Re;const[s,o]=C.useState(""),[i,a]=C.useState("all"),[l,u]=C.useState(!1),[d,f]=C.useState(null),[h,m]=C.useState("card"),[p,g]=C.useState("metric");Ae(re=>re.isDevMode);const b=Ae(re=>re.card.dataSource),x=Ae(re=>re.card.config),y=Ae(re=>re.card),v=Ae(re=>re.frame),w=Ae(re=>re.actions.updateCardConfig),j=Ae(re=>re.actions.updateFrame),{userContext:S}=Ps(),{autoJoinMetadata:N}=Ha(y),{columns:E,rawColumnGroups:_,scopedFields:k,dashboardCalculatedFields:M,cardCalculatedFields:T,isLoading:P,error:O,refetch:I}=PA(),$=(b==null?void 0:b.mode)==="semanticDomain"?b.semanticDomainId:void 0,{data:V}=OA($),{promoteMetric:W,promoteDimension:L}=gte({domainId:$}),R=C.useMemo(()=>[...(x==null?void 0:x.groupByColumns)||[],...(x==null?void 0:x.metricColumns)||[],...(x==null?void 0:x.detailColumns)||[]],[x==null?void 0:x.groupByColumns,x==null?void 0:x.metricColumns,x==null?void 0:x.detailColumns]);(kt=(Ke=x==null?void 0:x.joinPlan)==null?void 0:Ke.baseEntity)==null||kt.name,(Re=(pe=N==null?void 0:N.resolvedJoinPlan)==null?void 0:pe.baseEntity)==null||Re.name,Qee();const z=t==="editor",F=(S==null?void 0:S.type)==="organization",A=z?k:E,H=_,B=s.toLowerCase(),Y=(x==null?void 0:x.metricColumns)||[],q=(x==null?void 0:x.groupByColumns)||[],U=C.useCallback(async re=>{await W(re),I()},[W,I]),G=C.useCallback(async re=>{await L(re),I()},[L,I]),Z=re=>re.name.toLowerCase().includes(B)||re.dataType.toLowerCase().includes(B)||re.label&&re.label.toLowerCase().includes(B)||re.qualifiedEntityName&&re.qualifiedEntityName.toLowerCase().includes(B),Q=A.filter(Z),K=re=>{if(re.role==="metric"&&sc(re)||re.role==="groupby"&&re.expression)return"calculated";if(re.dataType==="number"||re.dataType==="integer"||re.dataType==="float"||re.dataType==="decimal"||re.dataType==="currency")return"metrics";const _e=yr(re.dataType);return["date","string","boolean"].includes(_e)?"dimensions":_e==="number"?"metrics":"dimensions"},te=re=>{const _e=re.filter(Z);return i==="all"?_e:_e.filter(We=>K(We)===i)},le=i==="all"?Q:Q.filter(re=>K(re)===i),de=z?[...M,...T]:[],ce=z?te(de):[],ge=te(E).reduce((re,_e)=>{const We=_e.qualifiedEntityName||"Other Fields";return re[We]||(re[We]={label:cb(_e.entityName),fields:[]}),re[We].fields.push(_e),re},{}),he=re=>re.id||`${re.entityName}-${re.qualifiedEntityName}-${re.name}-${re.role||"field"}`,me=C.useMemo(()=>{const re=new Map;return(z?k:E).forEach(We=>{re.set(he(We),ED(We,{joinabilityMap:(V==null?void 0:V.joinabilityMap)||null,selectedFields:R,cardConfig:x,autoJoinMetadata:N}))}),re},[z,k,E,V==null?void 0:V.joinabilityMap,R,x,N]),oe=z?[{key:"scope-calculated",label:"Calculated Fields",fields:ce}].filter(re=>re.fields.length>0):[],fe=[...oe.map(re=>re.key),...Object.keys(ge)],Me=Q.filter(re=>K(re)==="dimensions").length,ke=Q.filter(re=>K(re)==="metrics").length,ie=Q.filter(re=>K(re)==="calculated").length,xe=Q.length>0&&t!=="inline-filter",Oe=t==="inline-filter"?"w-full":"w-[290px]";if(P)return c.jsx("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:c.jsx(fu,{size:"md",color:"muted","aria-label":"Loading data"})});if(O)return c.jsxs("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-red-300"}),c.jsx("p",{className:"mb-2 text-sm text-red-500",children:"Error loading fields"}),c.jsx("p",{className:"px-4 text-center text-xs text-red-400",children:O.message||"Failed to load column data"})]});if(!b||!b.selectedEntities||b.selectedEntities.length===0)return c.jsxs("div",{className:X("flex flex-col items-center justify-center py-8 text-center",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-gray-300"}),c.jsx("p",{className:"mb-2 text-sm text-gray-500",children:"No data source selected"}),c.jsx("p",{className:"px-4 text-xs text-gray-400",children:t==="filter"||t==="inline-filter"?"Configure a data source for this card to see available fields":"Select a table, view, or dataset from the data source panel to see available fields"})]});const be=t==="inline-filter"?"px-3 pb-3":"px-6 pb-6",De=t==="inline-filter"?"overflow-hidden":"",qe=re=>re!=null&&re.startsWith("card-source-")?re.replace("card-source-",""):re,He=(re,_e,We)=>{const it=qe(re.id),zt=qe(_e.id);return it&&zt&&it===zt?!0:!it||!zt||We!=null&&We.allowNameFallback?re.name===_e.name&&re.role===_e.role:!1},Fe=(re,_e,We)=>re.findIndex(it=>He(it,_e,We)),yt=re=>{if(!v)return re;const _e=v.calculatedFields||[],We=Fe(_e,re),it=We>=0&&_e[We].id!==re.id?{...re,id:_e[We].id}:re,zt=We>=0?_e.map((un,Dn)=>Dn===We?it:un):[..._e,it];return j({calculatedFields:zt}),it},je=(re,_e,We,it)=>{var un;const zt=Fe(re,We||_e,it);if(zt>=0){const Dn=(un=re[zt])==null?void 0:un.id,Kr=Dn&&Dn!==_e.id?{..._e,id:Dn}:_e;return re.map((Hr,zs)=>zs===zt?Kr:Hr)}return[...re,_e]},dt=re=>{if(re.role==="metric")return Y.find(_e=>He(_e,re));if(re.role==="groupby")return q.find(_e=>He(_e,re))},Ct=re=>{var _e;return(_e=v==null?void 0:v.calculatedFields)==null?void 0:_e.find(We=>He(We,re))},Ye=re=>{if(re.role==="metric"){w(y.id,{metricColumns:Y.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))});return}re.role==="groupby"&&w(y.id,{groupByColumns:q.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))})},Yt=re=>{if(!v)return;const _e=(v.calculatedFields||[]).filter(We=>!He(We,re));j({calculatedFields:_e})},Ge=re=>{if(!F)return;if(re.fieldScope==="domain"){f(re),m("domain"),g(re.role==="metric"?"metric":"dimension"),u(!0);return}if(re.fieldScope==="dashboard"){const We=Ct(re);if(!We)return;f(We),m("dashboard"),g(We.role==="metric"?"metric":"dimension"),u(!0);return}const _e=dt(re);_e&&(f(_e),m("card"),g(_e.role==="metric"?"metric":"dimension"),u(!0))},et=re=>{if(F&&re.fieldScope!=="domain"){if(re.fieldScope==="dashboard"){Yt(re),Ye(re);return}Ye(re)}},Be=re=>{if(!F)return null;const _e=re.fieldScope==="domain";return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"icon",className:"h-6 w-6","aria-label":"Calculated field actions",children:c.jsx(f8,{className:"h-4 w-4"})})}),c.jsxs(yu,{align:"end",className:"w-40",children:[c.jsx(po,{onClick:()=>Ge(re),children:"Edit"}),c.jsx(po,{disabled:_e,onClick:()=>et(re),children:"Delete"})]})]})};return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:X("mt-2 flex h-full w-full grow flex-col gap-2",be,De),children:[c.jsxs("div",{className:"mt-1 flex-shrink-0 space-y-2",children:[A.length>0&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{className:"pl-10 pr-10",type:"text",placeholder:"Search fields...",value:s,onChange:re=>o(re.target.value)}),s&&c.jsx("button",{className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",onClick:()=>o(""),type:"button",children:c.jsx(St,{className:"size-3.5"})})]}),xe&&c.jsx(Os,{defaultValue:"all",value:i,onValueChange:re=>a(re),className:"mb-4",children:c.jsxs(ys,{className:"grid h-9 w-full grid-cols-4",children:[c.jsxs(nn,{value:"all",className:"text-xs",children:["All",c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Q.length})]}),c.jsxs(nn,{value:"dimensions",className:"text-xs",children:[c.jsx(U1,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Me})]}),c.jsxs(nn,{value:"metrics",className:"text-xs",children:[c.jsx(Am,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ke})]}),c.jsxs(nn,{value:"calculated",className:"text-xs",children:[c.jsx(OT,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ie})]})]})}),t==="editor"&&i==="calculated"&&F&&c.jsx("div",{className:"flex items-center justify-end gap-2",children:c.jsxs(se,{size:"sm",variant:"outline",className:"w-full",onClick:()=>{f(null),m("card"),g("dimension"),u(!0)},children:[c.jsx(Tr,{className:"mr-2 h-3.5 w-3.5"}),"Add calculated field"]})})]}),c.jsxs(tl,{className:"min-h-0 flex-1",children:[c.jsxs(BA,{type:"multiple",defaultValue:fe,className:"space-y-2",children:[oe.map(re=>c.jsxs(rx,{value:re.key,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:re.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:re.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:re.fields.map(_e=>{const We=me.get(he(_e)),it=t==="editor"&&i==="calculated";return c.jsx(y6,{field:_e,context:t,fieldState:We,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0,actions:it?Be(_e):void 0},_e.id)})})})]},re.key)),Object.entries(ge).map(([re,_e])=>{const We=H.find(zt=>zt.entityName===re)||{entityName:re,label:_e.label},it=re===Qh?"Domain Calculated Fields":We.label||We.entityName;return c.jsxs(rx,{value:re,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{title:it,className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:it}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:_e.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:_e.fields.map(zt=>{const un=me.get(he(zt));return c.jsx(y6,{field:zt,context:t,fieldState:un,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0},zt.id)})})})]},re)})]}),A.length===0&&c.jsxs("div",{className:"py-8 text-center text-sm text-gray-500",children:[c.jsx("p",{children:"No fields found for selected data source"}),c.jsx("p",{className:"mt-1 text-xs text-gray-400",children:t==="filter"?"The selected data source has no available fields":"Try selecting different data sources"})]}),A.length>0&&le.length===0&&c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"No fields found for this category"}),c.jsx(bi,{orientation:"horizontal"}),c.jsx(bi,{orientation:"vertical"})]})]}),c.jsx(pte,{open:l,onOpenChange:re=>{u(re),re||(f(null),m("card"))},availableFields:k,existingField:d??void 0,existingFieldScope:h,initialFieldType:p,onSave:re=>{if(re.role==="metric"){if(d&&h==="card"){w(y.id,{metricColumns:je(Y,re,d)});return}w(y.id,{metricColumns:je(Y,re)});return}if(d&&h==="card"){w(y.id,{groupByColumns:je(q,re,d)});return}w(y.id,{groupByColumns:je(q,re)})},onSaveToDashboard:re=>{const _e=!!(d&&h==="dashboard"),We=_e?d:void 0;if(re.role==="metric"){const zt=yt(re);w(y.id,{metricColumns:je(Y,zt,We,{allowNameFallback:_e})});return}const it=yt(re);w(y.id,{groupByColumns:je(q,it,We,{allowNameFallback:_e})})},cardId:y.id,onPromoteMetricToDomain:$?U:void 0,onPromoteDimensionToDomain:$?G:void 0,domainId:$})]})}),xte=C.memo(function({context:t="editor"}={}){return c.jsxs("div",{"data-content":"fields-section",className:"flex h-full grow flex-col items-center overflow-hidden",children:[" ",c.jsx(bte,{context:t})," "]})});function yte(){const e=Ae(i=>i.card.dataSource),{setSelectedConnectionId:t,setSelectedDatabaseName:n,setSelectedSchemaName:r,setSelectedTableName:s,setSelectedDatamodelId:o}=cr();C.useEffect(()=>{var m;if(!e)return;const{tableName:i,schemaName:a,databaseName:l,connectionId:u}=FA(e),d=(m=e.selectedEntities)==null?void 0:m[0],h=(d==null?void 0:d.type)==="model"&&"id"in d?d.id:"";t(u||""),n(l||""),r(a||""),s(i||""),o(h)},[e,t,n,r,s,o])}function DQe(){yte();const e=J(l=>l.selectedSheetId),t=J(l=>l.selectedFrameId),n=J(l=>l.dashboard),r=J(l=>l.actions.getSelectedFrame),{setSelectedFrameId:s}=Wt(),{setCard:o}=cr(),i=Ae(l=>l.card.dataSource);return C.useEffect(()=>{var u,d;let l=r();if(!l){const f=(u=n==null?void 0:n.sheets)==null?void 0:u.find(m=>m.id===e),h=(d=f==null?void 0:f.frames)==null?void 0:d[0];h&&(s(h.id),l=h)}if(l){const f=l.cards.find(h=>h.id===l.activeCardId);f&&o(f)}},[r,e,t,n,s,o]),{hasEntities:!!(i!=null&&i.selectedEntities&&i.selectedEntities.length>0)}}function IQe(){const e=J(o=>o.dashboard.filterLayout),{setFilterLayout:t}=Wt(),n=(e==null?void 0:e.displayMode)||"canvas",r=(e==null?void 0:e.toolbarWrap)??!1,s=(e==null?void 0:e.showDownloadButton)??!1;return c.jsxs(ms,{children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0","aria-label":"Filter display settings",children:c.jsx(Ll,{className:"h-4 w-4"})})}),c.jsx(gs,{className:"w-[280px]",align:"end",children:c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{children:[c.jsx("h4",{className:"mb-3 text-sm font-medium",children:"Filter Display"}),c.jsxs(Qs,{value:n,onValueChange:o=>t({displayMode:o}),className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"canvas",id:"canvas",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"canvas",className:"cursor-pointer font-normal",children:"Canvas Cards"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Filters as draggable, resizable cards on the dashboard"})]})]}),c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"toolbar",id:"toolbar",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"toolbar",className:"cursor-pointer font-normal",children:"Toolbar"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Compact horizontal toolbar below dashboard controls"})]})]})]})]}),n==="toolbar"&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center space-x-2 border-t pt-4",children:[c.jsx(cn,{id:"wrap",checked:r,onCheckedChange:o=>t({toolbarWrap:o===!0})}),c.jsx(ae,{htmlFor:"wrap",className:"cursor-pointer text-sm font-normal",children:"Wrap filters to multiple lines"})]}),c.jsxs("div",{className:"flex items-center space-x-2 pt-2",children:[c.jsx(cn,{id:"download",checked:s,onCheckedChange:o=>t({showDownloadButton:o===!0})}),c.jsx(ae,{htmlFor:"download",className:"cursor-pointer text-sm font-normal",children:"Show download button"})]})]}),c.jsx("p",{className:"border-t pt-3 text-xs text-muted-foreground",children:"Individual filters can override this setting in their configuration."})]})})]})}function RQe(){const e=J(n=>n.actions.setShowFilters),{hasEntities:t}=DQe();return c.jsxs("section",{className:"relative flex min-w-[320px] grow flex-col overflow-hidden border-l",children:[c.jsxs("div",{className:"mt-4 flex items-center justify-between gap-2 px-4",children:[c.jsx(ae,{className:"px-2 text-base",children:"Dashboard Filters"}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(IQe,{}),c.jsx(se,{onClick:()=>e(!1),className:"h-7 w-7 p-0",variant:"ghost",children:c.jsx(eX,{})})]})]}),!t&&c.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 py-12 text-center",children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-muted-foreground/50"}),c.jsx("h3",{className:"mb-2 text-sm font-medium text-foreground",children:"No fields configured"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Please configure a data source for this card to enable filtering"})]}),t&&c.jsx("div",{className:"flex grow overflow-y-auto",children:c.jsx(Ny,{collisionDetection:Cy,children:c.jsx(ky,{items:[],strategy:WR,children:c.jsx(xte,{context:"filter"})})})})]})}function AQe(){const e=J(r=>r.dashboard.filters),t=J(r=>r.theme),n=e==null?void 0:e.filter(r=>r.hide);return n!=null&&n.length?c.jsx("div",{className:X("mb-1 flex items-center gap-2 border-y px-0.5 pb-0.5",{"bg-[repeating-linear-gradient(45deg,_#ffffff_0_3px,_#f3f3f3_3px_6px)]":t==="light","bg-[repeating-linear-gradient(45deg,_#18171d_0_3px,_#272729_3px_6px)]":t==="dark"}),children:n==null?void 0:n.map(r=>c.jsxs("div",{className:"flex min-w-[250px] max-w-fit flex-col gap-1 p-2",children:[c.jsx($R,{filter:r}),c.jsx(Sp,{filter:r})]},r.id))}):null}function PQe(){const e=J(r=>r.showFilters),t=J(r=>r.isVisualEditing),n=J(r=>r.isDashboardEditing);return c.jsxs("div",{role:"dashboard-plus-main",className:X("",{"max-h-0 overflow-hidden":t,"flex grow overflow-hidden":!t}),children:[c.jsxs("section",{className:"flex grow flex-col overflow-y-auto",children:[n&&c.jsx(AQe,{}),c.jsx(Wee,{})]}),e&&c.jsx("div",{role:"filter-aside-container",className:"flex overflow-hidden",children:c.jsx(RQe,{})})]})}const OQe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-controls-ehLCW0nC.js"))),FQe=C.lazy(()=>Promise.resolve().then(()=>require("./edit-dashboard-visual-_s5p9j5B.js"))),$Qe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-json-BlY0uqcf.js"))),LQe=C.lazy(()=>Promise.resolve().then(()=>require("./resource-management-panel-XB3llD7A.js")).then(e=>({default:e.ResourceManagementPanel})));function zQe({showControls:e=!1,showFooter:t=!0,...n}){const r=J(l=>l.isDashboardPanelOpen),s=J(l=>l.isVisualEditing),o=J(l=>l.showDashboardJSON),i=J(l=>l.actions.setIsDashboardPanelOpen),{preferences:a}=n;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:n,children:[c.jsx(tde,{}),c.jsx(AA,{componentType:"surfboard",componentId:n.id}),c.jsx(RA,{children:c.jsxs(qee,{preferences:a,children:[o&&c.jsx(C.Suspense,{fallback:null,children:c.jsx($Qe,{})}),c.jsxs("main",{className:"relative flex h-full w-full flex-col overflow-hidden",children:[e&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(OQe,{})}),c.jsxs("div",{className:"flex grow overflow-hidden",children:[r&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(LQe,{isOpen:r,onClose:()=>i(!1),variant:"inline"})}),c.jsx("div",{className:"flex min-w-0 flex-1",children:c.jsxs(JD,{...n,type:"dashboard",children:[s&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(FQe,{})}),c.jsx(PQe,{})]})})]})]})]})})]})})}var BQe=Object.defineProperty,VQe=(e,t,n)=>t in e?BQe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fv=(e,t,n)=>VQe(e,typeof t!="symbol"?t+"":t,n);const HQe={stringify:e=>e?"true":"false",parse:e=>/^[ty1-9]/i.test(e)},UQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{if(typeof window<"u"&&e in window)return window[e];if(typeof global<"u"&&e in global)return global[e]})();return typeof r=="function"?r.bind(n):void 0}},WQe={stringify:e=>JSON.stringify(e),parse:e=>JSON.parse(e)};function qQe(e){return e.replace(/([a-z0-9])([A-Z])/g,(t,n,r)=>`${n}-${r.toLowerCase()}`)}function vte(e){return e.replace(/[-:]([a-z])/g,(t,n)=>`${n.toUpperCase()}`)}const YQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{const s=vte(t);if(typeof n<"u"&&s in n.container)return n.container[s]})();return typeof r=="function"?r.bind(n):void 0}},GQe={stringify:e=>`${e}`,parse:e=>parseFloat(e)},KQe={stringify:e=>e,parse:e=>e},X2={string:KQe,number:GQe,boolean:HQe,function:UQe,method:YQe,json:WQe},ng=Symbol.for("r2wc.render"),hv=Symbol.for("r2wc.connected"),Ku=Symbol.for("r2wc.context"),To=Symbol.for("r2wc.props");function ZQe(e,t,n){var r,s,o;t.props||(t.props=e.propTypes?Object.keys(e.propTypes):[]),t.events||(t.events=[]);const i=Array.isArray(t.props)?t.props.slice():Object.keys(t.props),a=Array.isArray(t.events)?t.events.slice():Object.keys(t.events),l={},u={},d={},f={};for(const m of i){l[m]=Array.isArray(t.props)?"string":t.props[m];const p=qQe(m);d[m]=p,f[p]=m}for(const m of a)u[m]=Array.isArray(t.events)?{}:t.events[m];class h extends HTMLElement{constructor(){super(),fv(this,o,!0),fv(this,s),fv(this,r,{}),fv(this,"container"),t.shadow?this.container=this.attachShadow({mode:t.shadow}):this.container=this,this[To].container=this.container;for(const p of i){const g=d[p],b=this.getAttribute(g),x=l[p],y=x?X2[x]:null;if(x==="method"){const v=vte(g);Object.defineProperty(this[To].container,v,{enumerable:!0,configurable:!0,get(){return this[To][v]},set(w){this[To][v]=w,this[ng]()}}),this[To][p]=y.parse(b,g,this)}y!=null&&y.parse&&b&&(this[To][p]=y.parse(b,g,this))}for(const p of a)this[To][p]=g=>{const b=p.replace(/^on/,"").toLowerCase();this.dispatchEvent(new CustomEvent(b,{detail:g,...u[p]}))}}static get observedAttributes(){return Object.keys(f)}connectedCallback(){this[hv]=!0,this[ng]()}disconnectedCallback(){this[hv]=!1,this[Ku]&&n.unmount(this[Ku]),delete this[Ku]}attributeChangedCallback(p,g,b){const x=f[p],y=l[x],v=y?X2[y]:null;x in l&&v!=null&&v.parse&&b&&(this[To][x]=v.parse(b,p,this),this[ng]())}[(o=hv,s=Ku,r=To,ng)](){this[hv]&&(this[Ku]?n.update(this[Ku],this[To]):this[Ku]=n.mount(this.container,e,this[To]))}}for(const m of i){const p=d[m],g=l[m];Object.defineProperty(h.prototype,m,{enumerable:!0,configurable:!0,get(){return this[To][m]},set(b){this[To][m]=b;const x=g?X2[g]:null;if(x!=null&&x.stringify){const y=x.stringify(b,p,this);this.getAttribute(p)!==y&&this.setAttribute(p,y)}else this[ng]()}})}return h}function XQe(e,t,n){const r=vne.createRoot(e),s=C.createElement(t,n);return r.render(s),{root:r,ReactComponent:t}}function QQe({root:e,ReactComponent:t},n){const r=C.createElement(t,n);e.render(r)}function JQe({root:e}){e.unmount()}function eJe(e,t={}){return ZQe(e,t,{mount:XQe,update:QQe,unmount:JQe})}const tJe={id:"string",version:"string",authToken:"json",placeholders:"json",defaultFilterValues:"json",currentTheme:"string",customCards:"json",customStyle:"json",onChartElementClicked:"function",onFilterValuesChange:"function",onEvent:"function",onSave:"function",LoadingComponent:"function",ErrorComponent:"function",showAssistant:"boolean",selectedSheetId:"string",eventHandlers:"json",preferences:"json"},nJe=eJe(Yee,{props:tJe});function k6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rJe(e){if(Array.isArray(e))return e}function sJe(e,t,n){return(t=dJe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oJe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,s,o,i,a=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(d){u=!0,s=d}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw s}}return a}}function iJe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1078
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function _6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E6(Object(n),!0).forEach(function(r){sJe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function aJe(e,t){if(e==null)return{};var n,r,s=lJe(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function lJe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function cJe(e,t){return rJe(e)||oJe(e,t)||fJe(e,t)||iJe()}function uJe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function dJe(e){var t=uJe(e,"string");return typeof t=="symbol"?t:t+""}function fJe(e,t){if(e){if(typeof e=="string")return k6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k6(e,t):void 0}}function hJe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function M6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?T6(Object(n),!0).forEach(function(r){hJe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function mJe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(s,o){return o(s)},r)}}function Tg(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),o=0;o<r;o++)s[o]=arguments[o];return s.length>=e.length?e.apply(this,s):function(){for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return t.apply(n,[].concat(s,a))}}}function T1(e){return{}.toString.call(e).includes("Object")}function pJe(e){return!Object.keys(e).length}function ax(e){return typeof e=="function"}function gJe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function bJe(e,t){return T1(t)||eu("changeType"),Object.keys(t).some(function(n){return!gJe(e,n)})&&eu("changeField"),t}function xJe(e){ax(e)||eu("selectorType")}function yJe(e){ax(e)||T1(e)||eu("handlerType"),T1(e)&&Object.values(e).some(function(t){return!ax(t)})&&eu("handlersType")}function vJe(e){e||eu("initialIsRequired"),T1(e)||eu("initialType"),pJe(e)&&eu("initialContent")}function wJe(e,t){throw new Error(e[t]||e.default)}var CJe={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},eu=Tg(wJe)(CJe),mv={changes:bJe,selector:xJe,handler:yJe,initial:vJe};function SJe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};mv.initial(e),mv.handler(t);var n={current:e},r=Tg(kJe)(n,t),s=Tg(NJe)(n),o=Tg(mv.changes)(e),i=Tg(jJe)(n);function a(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return mv.selector(u),u(n.current)}function l(u){mJe(r,s,o,i)(u)}return[a,l]}function jJe(e,t){return ax(t)?t(e.current):t}function NJe(e,t){return e.current=M6(M6({},e.current),t),t}function kJe(e,t,n){return ax(t)?t(e.current):Object.keys(n).forEach(function(r){var s;return(s=t[r])===null||s===void 0?void 0:s.call(t,e.current[r])}),n}var EJe={create:SJe},_Je={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function TJe(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),o=0;o<r;o++)s[o]=arguments[o];return s.length>=e.length?e.apply(this,s):function(){for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return t.apply(n,[].concat(s,a))}}}function MJe(e){return{}.toString.call(e).includes("Object")}function DJe(e){return e||D6("configIsRequired"),MJe(e)||D6("configType"),e.urls?(IJe(),{paths:{vs:e.urls.monacoBase}}):e}function IJe(){console.warn(wte.deprecation)}function RJe(e,t){throw new Error(e[t]||e.default)}var wte={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
1079
1079
  You are using deprecated way of configuration.
1080
1080
 
1081
1081
  Instead of using
@@ -1084,4 +1084,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
1084
1084
  monaco.config({ paths: { vs: '...' } })
1085
1085
 
1086
1086
  For more please check the link https://github.com/suren-atoyan/monaco-loader#config
1087
- `},D6=_Je(IJe)(wte),RJe={config:MJe},AJe=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(s){return n.reduceRight(function(o,i){return i(o)},s)}};function Cte(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],Cte(e[n],t[n]))}),_6(_6({},e),t)}var PJe={type:"cancelation",msg:"operation is manually canceled"};function Q2(e){var t=!1,n=new Promise(function(r,s){e.then(function(o){return t?s(PJe):r(o)}),e.catch(s)});return n.cancel=function(){return t=!0},n}var OJe=["monaco"],FJe=kJe.create({config:EJe,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ste=lJe(FJe,2),Py=Ste[0],XS=Ste[1];function $Je(e){var t=RJe.config(e),n=t.monaco,r=iJe(t,OJe);XS(function(s){return{config:Cte(s.config,r),monaco:n}})}function LJe(){var e=Py(function(t){var n=t.monaco,r=t.isInitialized,s=t.resolve;return{monaco:n,isInitialized:r,resolve:s}});if(!e.isInitialized){if(XS({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Q2(J2);if(window.monaco&&window.monaco.editor)return jte(window.monaco),e.resolve(window.monaco),Q2(J2);AJe(zJe,VJe)(HJe)}return Q2(J2)}function zJe(e){return document.body.appendChild(e)}function BJe(e){var t=document.createElement("script");return e&&(t.src=e),t}function VJe(e){var t=Py(function(r){var s=r.config,o=r.reject;return{config:s,reject:o}}),n=BJe("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function HJe(){var e=Py(function(n){var r=n.config,s=n.resolve,o=n.reject;return{config:r,resolve:s,reject:o}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var r=n.m||n;jte(r),e.resolve(r)},function(n){e.reject(n)})}function jte(e){Py().monaco||XS({monaco:e})}function UJe(){return Py(function(e){var t=e.monaco;return t})}var J2=new Promise(function(e,t){return XS({resolve:e,reject:t})}),M1={config:$Je,init:LJe,__getMonacoInstance:UJe},WJe={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ek=WJe,qJe={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},YJe=qJe;function GJe({children:e}){return C.createElement("div",{style:YJe.container},e)}var KJe=GJe,ZJe=KJe;function XJe({width:e,height:t,isEditorReady:n,loading:r,_ref:s,className:o,wrapperProps:i}){return C.createElement("section",{style:{...ek.wrapper,width:e,height:t},...i},!n&&C.createElement(ZJe,null,r),C.createElement("div",{ref:s,style:{...ek.fullWidth,...!n&&ek.hide},className:o}))}var QJe=XJe,Nte=C.memo(QJe);function JJe(e){C.useEffect(e,[])}var HA=JJe;function eet(e,t,n=!0){let r=C.useRef(!0);C.useEffect(r.current||!n?()=>{r.current=!1}:e,t)}var Fo=eet;function eb(){}function vh(e,t,n,r){return tet(e,r)||net(e,t,n,r)}function tet(e,t){return e.editor.getModel(kte(e,t))}function net(e,t,n,r){return e.editor.createModel(t,n,r?kte(e,r):void 0)}function kte(e,t){return e.Uri.parse(t)}function ret({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:s,originalModelPath:o,modifiedModelPath:i,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:l=!1,theme:u="light",loading:d="Loading...",options:f={},height:h="100%",width:m="100%",className:p,wrapperProps:g={},beforeMount:b=eb,onMount:x=eb}){let[y,v]=C.useState(!1),[w,j]=C.useState(!0),S=C.useRef(null),N=C.useRef(null),E=C.useRef(null),_=C.useRef(x),k=C.useRef(b),M=C.useRef(!1);HA(()=>{let I=M1.init();return I.then($=>(N.current=$)&&j(!1)).catch($=>($==null?void 0:$.type)!=="cancelation"&&console.error("Monaco initialization: error:",$)),()=>S.current?O():I.cancel()}),Fo(()=>{if(S.current&&N.current){let I=S.current.getOriginalEditor(),$=vh(N.current,e||"",r||n||"text",o||"");$!==I.getModel()&&I.setModel($)}},[o],y),Fo(()=>{if(S.current&&N.current){let I=S.current.getModifiedEditor(),$=vh(N.current,t||"",s||n||"text",i||"");$!==I.getModel()&&I.setModel($)}},[i],y),Fo(()=>{let I=S.current.getModifiedEditor();I.getOption(N.current.editor.EditorOption.readOnly)?I.setValue(t||""):t!==I.getValue()&&(I.executeEdits("",[{range:I.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),I.pushUndoStop())},[t],y),Fo(()=>{var I,$;($=(I=S.current)==null?void 0:I.getModel())==null||$.original.setValue(e||"")},[e],y),Fo(()=>{let{original:I,modified:$}=S.current.getModel();N.current.editor.setModelLanguage(I,r||n||"text"),N.current.editor.setModelLanguage($,s||n||"text")},[n,r,s],y),Fo(()=>{var I;(I=N.current)==null||I.editor.setTheme(u)},[u],y),Fo(()=>{var I;(I=S.current)==null||I.updateOptions(f)},[f],y);let T=C.useCallback(()=>{var V;if(!N.current)return;k.current(N.current);let I=vh(N.current,e||"",r||n||"text",o||""),$=vh(N.current,t||"",s||n||"text",i||"");(V=S.current)==null||V.setModel({original:I,modified:$})},[n,t,s,e,r,o,i]),P=C.useCallback(()=>{var I;!M.current&&E.current&&(S.current=N.current.editor.createDiffEditor(E.current,{automaticLayout:!0,...f}),T(),(I=N.current)==null||I.editor.setTheme(u),v(!0),M.current=!0)},[f,u,T]);C.useEffect(()=>{y&&_.current(S.current,N.current)},[y]),C.useEffect(()=>{!w&&!y&&P()},[w,y,P]);function O(){var $,V,W,L;let I=($=S.current)==null?void 0:$.getModel();a||((V=I==null?void 0:I.original)==null||V.dispose()),l||((W=I==null?void 0:I.modified)==null||W.dispose()),(L=S.current)==null||L.dispose()}return C.createElement(Nte,{width:m,height:h,isEditorReady:y,loading:d,_ref:E,className:p,wrapperProps:g})}var set=ret;C.memo(set);function oet(){let[e,t]=C.useState(M1.__getMonacoInstance());return HA(()=>{let n;return e||(n=M1.init(),n.then(r=>{t(r)})),()=>n==null?void 0:n.cancel()}),e}var iet=oet;function aet(e){let t=C.useRef();return C.useEffect(()=>{t.current=e},[e]),t.current}var cet=aet,pv=new Map;function uet({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:s,path:o,theme:i="light",line:a,loading:l="Loading...",options:u={},overrideServices:d={},saveViewState:f=!0,keepCurrentModel:h=!1,width:m="100%",height:p="100%",className:g,wrapperProps:b={},beforeMount:x=eb,onMount:y=eb,onChange:v,onValidate:w=eb}){let[j,S]=C.useState(!1),[N,E]=C.useState(!0),_=C.useRef(null),k=C.useRef(null),M=C.useRef(null),T=C.useRef(y),P=C.useRef(x),O=C.useRef(),I=C.useRef(r),$=cet(o),V=C.useRef(!1),W=C.useRef(!1);HA(()=>{let z=M1.init();return z.then(F=>(_.current=F)&&E(!1)).catch(F=>(F==null?void 0:F.type)!=="cancelation"&&console.error("Monaco initialization: error:",F)),()=>k.current?R():z.cancel()}),Fo(()=>{var F,A,H,B;let z=vh(_.current,e||r||"",t||s||"",o||n||"");z!==((F=k.current)==null?void 0:F.getModel())&&(f&&pv.set($,(A=k.current)==null?void 0:A.saveViewState()),(H=k.current)==null||H.setModel(z),f&&((B=k.current)==null||B.restoreViewState(pv.get(o))))},[o],j),Fo(()=>{var z;(z=k.current)==null||z.updateOptions(u)},[u],j),Fo(()=>{!k.current||r===void 0||(k.current.getOption(_.current.editor.EditorOption.readOnly)?k.current.setValue(r):r!==k.current.getValue()&&(W.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),k.current.pushUndoStop(),W.current=!1))},[r],j),Fo(()=>{var F,A;let z=(F=k.current)==null?void 0:F.getModel();z&&s&&((A=_.current)==null||A.editor.setModelLanguage(z,s))},[s],j),Fo(()=>{var z;a!==void 0&&((z=k.current)==null||z.revealLine(a))},[a],j),Fo(()=>{var z;(z=_.current)==null||z.editor.setTheme(i)},[i],j);let L=C.useCallback(()=>{var z;if(!(!M.current||!_.current)&&!V.current){P.current(_.current);let F=o||n,A=vh(_.current,r||e||"",t||s||"",F||"");k.current=(z=_.current)==null?void 0:z.editor.create(M.current,{model:A,automaticLayout:!0,...u},d),f&&k.current.restoreViewState(pv.get(F)),_.current.editor.setTheme(i),a!==void 0&&k.current.revealLine(a),S(!0),V.current=!0}},[e,t,n,r,s,o,u,d,f,i,a]);C.useEffect(()=>{j&&T.current(k.current,_.current)},[j]),C.useEffect(()=>{!N&&!j&&L()},[N,j,L]),I.current=r,C.useEffect(()=>{var z,F;j&&v&&((z=O.current)==null||z.dispose(),O.current=(F=k.current)==null?void 0:F.onDidChangeModelContent(A=>{W.current||v(k.current.getValue(),A)}))},[j,v]),C.useEffect(()=>{if(j){let z=_.current.editor.onDidChangeMarkers(F=>{var H;let A=(H=k.current.getModel())==null?void 0:H.uri;if(A&&F.find(B=>B.path===A.path)){let B=_.current.editor.getModelMarkers({resource:A});w==null||w(B)}});return()=>{z==null||z.dispose()}}return()=>{}},[j,w]);function R(){var z,F;(z=O.current)==null||z.dispose(),h?f&&pv.set(o,k.current.saveViewState()):(F=k.current.getModel())==null||F.dispose(),k.current.dispose()}return C.createElement(Nte,{width:m,height:p,isEditorReady:j,loading:l,_ref:M,className:g,wrapperProps:b})}var det=uet,Ete=C.memo(det),fet=Ete;function het({card:e}){var O,I,$,V,W,L,R,z,F,A,H;const[t,n]=C.useState(!1),[r,s]=C.useState([]),{authToken:o}=Xe(),{theme:i}=Rm(),a=_z(o==null?void 0:o.accessToken),l=J(B=>B.themeStyle),u={mode:i||"system",colors:((I=(O=l==null?void 0:l.chart)==null?void 0:O.dataset)==null?void 0:I.backgroundColor)||[]};($=e.customCardPreferences)!=null&&$.inputData;const{getCard:d}=ly(((V=e.customCardPreferences)==null?void 0:V.url)||""),f=((W=e.customCardPreferences)==null?void 0:W.visualType)||"single",h=Ae(B=>B.frame),{setCustomCardPreferences:m}=cr(),{data:p}=Ha(e),g=Vt(B=>B.interactionStates),b=J(B=>{var Y;return(Y=B.dashboard)==null?void 0:Y.id}),x=J(B=>B.dashboard.filters),y=J(B=>B.filterValues),v=J(B=>B.selectedSheetId),w=J(B=>B.inlineFilterValuesMap[e.id]),j=C.useMemo(()=>SZ({card:e,sheetId:v||"",inlineFilterValues:w}),[e,v,w]),{cardFilters:S,cardFilterValues:N,shouldApplyDashboardFilters:E,contextMode:_}=C.useMemo(()=>HM({card:e,interactionStates:g,currentDashboardId:b,filters:x,filterValues:y,selectedSheetId:v}),[e,g,b,x,y,v]),k=C.useCallback((B,Y)=>{s(q=>({...q,[B]:Y}))},[]);if(!((L=e.customCardPreferences)!=null&&L.componentName))return null;const M=d((R=e.customCardPreferences)==null?void 0:R.componentName);function T(B){n(B)}const P=Object.keys(((z=e.customCardPreferences)==null?void 0:z.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);return q||null});return c.jsx("div",{className:"semaphor-custom mb-3 flex grow basis-0 flex-col space-y-2 overflow-y-auto",children:c.jsxs(C.Suspense,{fallback:c.jsx(c.Fragment,{}),children:[M&&f==="single"&&c.jsx(M,{editing:!0,params:a,theme:u,settings:(F=e.customCardPreferences)==null?void 0:F.settings,onDataChange:k,data:(p==null?void 0:p.records)||[],filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j}),M&&f==="multiple"&&c.jsxs(c.Fragment,{children:[Object.keys(((A=e.customCardPreferences)==null?void 0:A.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);if(q)return c.jsx(KG,{onLoadingStatus:T,onDataChange:k,dataInputIndex:B,card:q},q.id+B)}),c.jsx("div",{className:"flex flex-col gap-2",children:c.jsx(M,{theme:u,onDataChange:k,settings:P.map(B=>{var Y;return(Y=B==null?void 0:B.customCardPreferences)==null?void 0:Y.settings}),data:P.map(B=>B!=null&&B.id?r==null?void 0:r[B.id]:[]),filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j})})]})]},(H=e.customCardPreferences)==null?void 0:H.componentName)})}const met=C.memo(het,(e,t)=>{var n,r,s,o,i,a;return e.card.id===t.card.id&&e.card.inlineFilters===t.card.inlineFilters&&((n=e.card.customCardPreferences)==null?void 0:n.settings)===((r=t.card.customCardPreferences)==null?void 0:r.settings)&&((s=e.card.customCardPreferences)==null?void 0:s.url)===((o=t.card.customCardPreferences)==null?void 0:o.url)&&((i=e.card.customCardPreferences)==null?void 0:i.componentName)===((a=t.card.customCardPreferences)==null?void 0:a.componentName)});function _te(e){let t=0;for(let r=0;r<e.length;r++)t=e.charCodeAt(r)+((t<<5)-t);return`hsl(${Math.abs(t%360)}, 65%, 45%)`}function Tte(e){const t=e.trim().split(/\s+/);return t.length>1?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function Mte({chartType:e,chartName:t,isCustom:n=!1,className:r="h-6 w-6"}){if(!n&&e)return TR(e,r);const s=_R(t);if(s)return C.cloneElement(s,{className:r});const o=Tte(t),i=_te(t);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-xs",r),style:{backgroundColor:i},children:o})}function pet({chartType:e,className:t="h-4 w-4",customIcon:n,componentName:r}){if(e==="custom"){if(r){const s=_R(r);if(s)return C.cloneElement(s,{className:t});const o=Tte(r),i=_te(r);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-[10px]",t),style:{backgroundColor:i},children:o})}return c.jsx(C8,{className:t})}return TR(e,t)}const Dte=oa()(nz((e,t)=>({starredCharts:[],isStarred:(n,r)=>t().starredCharts.some(s=>s.type===n&&s.id===r),toggleStar:n=>{e(r=>{const s=r.starredCharts.findIndex(o=>o.type===n.type&&o.id===n.id);return s>=0?{starredCharts:r.starredCharts.filter((o,i)=>i!==s)}:{starredCharts:[...r.starredCharts,n]}})},getStarredChart:(n,r)=>t().starredCharts.find(s=>s.type===n&&s.id===r)}),{name:"semaphor-starred-charts"})),Ite=D.forwardRef(({className:e,...t},n)=>c.jsx(_y,{className:X("peer inline-flex h-[22px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:c.jsx(YR,{className:X("pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Ite.displayName=_y.displayName;var Rte=["PageUp","PageDown"],Ate=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Pte={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ip="Slider",[sT,get,bet]=Ex(Ip),[Ote]=Lr(Ip,[bet]),[xet,QS]=Ote(Ip),Fte=D.forwardRef((e,t)=>{const{name:n,min:r=0,max:s=100,step:o=1,orientation:i="horizontal",disabled:a=!1,minStepsBetweenThumbs:l=0,defaultValue:u=[r],value:d,onValueChange:f=()=>{},onValueCommit:h=()=>{},inverted:m=!1,form:p,...g}=e,b=D.useRef(new Set),x=D.useRef(0),v=i==="horizontal"?yet:vet,[w=[],j]=ss({prop:d,defaultProp:u,onChange:M=>{var P;(P=[...b.current][x.current])==null||P.focus(),f(M)}}),S=D.useRef(w);function N(M){const T=ket(w,M);k(M,T)}function E(M){k(M,x.current)}function _(){const M=S.current[x.current];w[x.current]!==M&&h(w)}function k(M,T,{commit:P}={commit:!1}){const O=Met(o),I=Det(Math.round((M-r)/o)*o+r,O),$=Ib(I,[r,s]);j((V=[])=>{const W=jet(V,$,T);if(Tet(W,l*o)){x.current=W.indexOf($);const L=String(W)!==String(V);return L&&P&&h(W),L?W:V}else return V})}return c.jsx(xet,{scope:e.__scopeSlider,name:n,disabled:a,min:r,max:s,valueIndexToChangeRef:x,thumbs:b.current,values:w,orientation:i,form:p,children:c.jsx(sT.Provider,{scope:e.__scopeSlider,children:c.jsx(sT.Slot,{scope:e.__scopeSlider,children:c.jsx(v,{"aria-disabled":a,"data-disabled":a?"":void 0,...g,ref:t,onPointerDown:Ie(g.onPointerDown,()=>{a||(S.current=w)}),min:r,max:s,inverted:m,onSlideStart:a?void 0:N,onSlideMove:a?void 0:E,onSlideEnd:a?void 0:_,onHomeKeyDown:()=>!a&&k(r,0,{commit:!0}),onEndKeyDown:()=>!a&&k(s,w.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:T})=>{if(!a){const I=Rte.includes(M.key)||M.shiftKey&&Ate.includes(M.key)?10:1,$=x.current,V=w[$],W=o*I*T;k(V+W,$,{commit:!0})}}})})})})});Fte.displayName=Ip;var[$te,Lte]=Ote(Ip,{startEdge:"left",endEdge:"right",size:"width",direction:1}),yet=D.forwardRef((e,t)=>{const{min:n,max:r,dir:s,inverted:o,onSlideStart:i,onSlideMove:a,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,h]=D.useState(null),m=ut(t,v=>h(v)),p=D.useRef(void 0),g=bu(s),b=g==="ltr",x=b&&!o||!b&&o;function y(v){const w=p.current||f.getBoundingClientRect(),j=[0,w.width],N=UA(j,x?[n,r]:[r,n]);return p.current=w,N(v-w.left)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:x?"left":"right",endEdge:x?"right":"left",direction:x?1:-1,size:"width",children:c.jsx(zte,{dir:g,"data-orientation":"horizontal",...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:v=>{const w=y(v.clientX);i==null||i(w)},onSlideMove:v=>{const w=y(v.clientX);a==null||a(w)},onSlideEnd:()=>{p.current=void 0,l==null||l()},onStepKeyDown:v=>{const j=Pte[x?"from-left":"from-right"].includes(v.key);u==null||u({event:v,direction:j?-1:1})}})})}),vet=D.forwardRef((e,t)=>{const{min:n,max:r,inverted:s,onSlideStart:o,onSlideMove:i,onSlideEnd:a,onStepKeyDown:l,...u}=e,d=D.useRef(null),f=ut(t,d),h=D.useRef(void 0),m=!s;function p(g){const b=h.current||d.current.getBoundingClientRect(),x=[0,b.height],v=UA(x,m?[r,n]:[n,r]);return h.current=b,v(g-b.top)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:m?"bottom":"top",endEdge:m?"top":"bottom",size:"height",direction:m?1:-1,children:c.jsx(zte,{"data-orientation":"vertical",...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:g=>{const b=p(g.clientY);o==null||o(b)},onSlideMove:g=>{const b=p(g.clientY);i==null||i(b)},onSlideEnd:()=>{h.current=void 0,a==null||a()},onStepKeyDown:g=>{const x=Pte[m?"from-bottom":"from-top"].includes(g.key);l==null||l({event:g,direction:x?-1:1})}})})}),zte=D.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:s,onSlideEnd:o,onHomeKeyDown:i,onEndKeyDown:a,onStepKeyDown:l,...u}=e,d=QS(Ip,n);return c.jsx(Ze.span,{...u,ref:t,onKeyDown:Ie(e.onKeyDown,f=>{f.key==="Home"?(i(f),f.preventDefault()):f.key==="End"?(a(f),f.preventDefault()):Rte.concat(Ate).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Ie(e.onPointerDown,f=>{const h=f.target;h.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(h)?h.focus():r(f)}),onPointerMove:Ie(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&s(f)}),onPointerUp:Ie(e.onPointerUp,f=>{const h=f.target;h.hasPointerCapture(f.pointerId)&&(h.releasePointerCapture(f.pointerId),o(f))})})}),Bte="SliderTrack",Vte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(Bte,n);return c.jsx(Ze.span,{"data-disabled":s.disabled?"":void 0,"data-orientation":s.orientation,...r,ref:t})});Vte.displayName=Bte;var oT="SliderRange",Hte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(oT,n),o=Lte(oT,n),i=D.useRef(null),a=ut(t,i),l=s.values.length,u=s.values.map(h=>qte(h,s.min,s.max)),d=l>1?Math.min(...u):0,f=100-Math.max(...u);return c.jsx(Ze.span,{"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,...r,ref:a,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});Hte.displayName=oT;var iT="SliderThumb",Ute=D.forwardRef((e,t)=>{const n=get(e.__scopeSlider),[r,s]=D.useState(null),o=ut(t,a=>s(a)),i=D.useMemo(()=>r?n().findIndex(a=>a.ref.current===r):-1,[n,r]);return c.jsx(wet,{...e,ref:o,index:i})}),wet=D.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:s,...o}=e,i=QS(iT,n),a=Lte(iT,n),[l,u]=D.useState(null),d=ut(t,y=>u(y)),f=l?i.form||!!l.closest("form"):!0,h=Tx(l),m=i.values[r],p=m===void 0?0:qte(m,i.min,i.max),g=Net(r,i.values.length),b=h==null?void 0:h[a.size],x=b?Eet(b,p,a.direction):0;return D.useEffect(()=>{if(l)return i.thumbs.add(l),()=>{i.thumbs.delete(l)}},[l,i.thumbs]),c.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[a.startEdge]:`calc(${p}% + ${x}px)`},children:[c.jsx(sT.ItemSlot,{scope:e.__scopeSlider,children:c.jsx(Ze.span,{role:"slider","aria-label":e["aria-label"]||g,"aria-valuemin":i.min,"aria-valuenow":m,"aria-valuemax":i.max,"aria-orientation":i.orientation,"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,tabIndex:i.disabled?void 0:0,...o,ref:d,style:m===void 0?{display:"none"}:e.style,onFocus:Ie(e.onFocus,()=>{i.valueIndexToChangeRef.current=r})})}),f&&c.jsx(Wte,{name:s??(i.name?i.name+(i.values.length>1?"[]":""):void 0),form:i.form,value:m},r)]})});Ute.displayName=iT;var Cet="RadioBubbleInput",Wte=D.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const s=D.useRef(null),o=ut(s,r),i=$x(t);return D.useEffect(()=>{const a=s.current;if(!a)return;const l=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&d){const f=new Event("input",{bubbles:!0});d.call(a,t),a.dispatchEvent(f)}},[i,t]),c.jsx(Ze.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});Wte.displayName=Cet;function jet(e=[],t,n){const r=[...e];return r[n]=t,r.sort((s,o)=>s-o)}function qte(e,t,n){const o=100/(n-t)*(e-t);return Ib(o,[0,100])}function Net(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function ket(e,t){if(e.length===1)return 0;const n=e.map(s=>Math.abs(s-t)),r=Math.min(...n);return n.indexOf(r)}function Eet(e,t,n){const r=e/2,o=UA([0,50],[0,r]);return(r-o(t)*n)*n}function _et(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Tet(e,t){if(t>0){const n=_et(e);return Math.min(...n)>=t}return!0}function UA(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Met(e){return(String(e).split(".")[1]||"").length}function Det(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var Yte=Fte,Iet=Vte,Ret=Hte,Aet=Ute;const Gte=D.forwardRef(({className:e,...t},n)=>c.jsxs(Yte,{ref:n,className:X("relative flex w-full touch-none select-none items-center",e),...t,children:[c.jsx(Iet,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:c.jsx(Ret,{className:"absolute h-full bg-primary"})}),c.jsx(Aet,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));Gte.displayName=Yte.displayName;const Pet={table:jh,bar:z1,line:B1,stackedBar:FT,stackedLine:TZ,scatter:zT,bubble:_Z,pie:LT,doughnut:UT,kpi:ER,treemap:bS,bullet:xS,funnel:kR,tornado:tM,heatmap:H1,range:$T,radar:y8,polarArea:EZ,text:r8,map:b8},Kte=[{id:"table",icon:jh,label:"Table"},{id:"bar",icon:z1,label:"Bar Chart"},{id:"line",icon:B1,label:"Line Chart"},{id:"stackedBar",icon:FT,label:"Stacked Bar",requiresPivot:!1},{id:"pie",icon:LT,label:"Pie Chart"},{id:"doughnut",icon:UT,label:"Donut Chart"},{id:"kpi",icon:ER,label:"KPI"},{id:"treemap",icon:bS,label:"Treemap"},{id:"bullet",icon:xS,label:"Bullet Chart"},{id:"funnel",icon:kR,label:"Funnel Chart"},{id:"tornado",icon:tM,label:"Tornado Chart"},{id:"heatmap",icon:H1,label:"Heatmap"},{id:"range",icon:$T,label:"Range Chart"}],Oet=14;Kte.map(e=>e.id);function Fet({selectedChart:e,onChartChange:t,isDropdownExpanded:n,onToggleDropdown:r}){var y,v;const s=Ae(w=>w.card),{setCardType:o,setCardPreferences:i,setIsDevMode:a}=Ae(w=>w.actions),{setCardCustomCfg:l,setCustomCardPreferences:u,setQueryConfig:d}=cr(),f=((y=s==null?void 0:s.config)==null?void 0:y.pivotByColumns)&&s.config.pivotByColumns.length>0,{starredCharts:h,isStarred:m}=Dte(),{data:p=[]}=OR(),g=C.useMemo(()=>{const w=Kte.filter(_=>!(_.requiresPivot&&!f)),j=h.filter(_=>_.type==="default"?!0:p.some(k=>k.name===_.id)),S=new Set(j.map(_=>_.id)),N=w.filter(_=>!S.has(_.id));return[...j.map(_=>({id:_.id,label:_.name,icon:_.type==="default"?Pet[_.id]:void 0,isCustom:_.type==="custom",isStarred:!0,url:_.url})),...N.map(_=>({id:_.id,label:_.label,icon:_.icon,isCustom:!1,isStarred:!1}))].slice(0,Oet-1)},[h,p,f]),b=w=>{if(w.isCustom){const j=p.find(S=>S.name===w.id);j&&(l(null),i({}),o("custom"),u({type:"component",visualType:"single",url:j.url,componentName:j.name,icon:j.icon,pluginChartType:j.chartType}),d(void 0),t("custom"))}else t(w.id)},x=e==="custom"&&((v=s==null?void 0:s.customCardPreferences)==null?void 0:v.componentName);return c.jsxs("div",{className:"grid grid-cols-7 gap-2",children:[g.map(w=>{var N;const j=w.icon,S=w.isCustom?x&&((N=s==null?void 0:s.customCardPreferences)==null?void 0:N.componentName)===w.id:e===w.id;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(se,{variant:"ghost",size:"sm",onClick:()=>b(w),className:X("h-8 w-8 p-0",S&&"bg-accent text-accent-foreground"),children:[j?c.jsx(j,{className:"h-4 w-4"}):c.jsx(Mte,{chartName:w.label,isCustom:!0,className:"h-4 w-4"}),c.jsx("span",{className:"sr-only",children:w.label})]})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:w.label}),c.jsx(sm,{className:"fill-foreground"})]})]},`${w.isCustom?"custom":"default"}-${w.id}`)}),r&&c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",onClick:r,className:"h-8 w-8 p-0","aria-label":n?"Hide all charts":"Show all charts",children:n?c.jsx(Ch,{className:"h-4 w-4"}):c.jsx(kr,{className:"h-4 w-4"})})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:n?"Hide dropdown":"Show all charts"}),c.jsx(sm,{className:"fill-foreground"})]})]})]})}const Zte=D.forwardRef(({className:e,icon:t,tooltip:n,...r},s)=>{const o=c.jsx(_y,{className:X("peer inline-flex h-8 w-12 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...r,ref:s,children:c.jsx(YR,{className:X("pointer-events-none block h-7 w-7 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"),children:t&&c.jsx("span",{className:"flex h-full items-center justify-center text-primary",children:t})})});return n?c.jsx(Ln,{children:c.jsxs(an,{delayDuration:0,children:[c.jsx(ln,{asChild:!0,children:c.jsx("span",{className:"inline-flex",children:o})}),c.jsxs(dn,{side:"bottom",className:"border-0 bg-foreground text-background shadow-md",children:[c.jsx(sm,{className:"fill-foreground"}),c.jsx("p",{children:n})]})]})}):o});Zte.displayName="DevModeSwitch";exports.Accordion=BA;exports.AccordionContent=ox;exports.AccordionItem=rx;exports.AccordionTrigger=sx;exports.AggregateTable=iS;exports.AlertDialog=Um;exports.AlertDialogAction=_f;exports.AlertDialogCancel=Tf;exports.AlertDialogContent=Sf;exports.AlertDialogDescription=Ef;exports.AlertDialogFooter=Nf;exports.AlertDialogHeader=jf;exports.AlertDialogTitle=kf;exports.ArrowDown=Ea;exports.ArrowRight=n8;exports.ArrowUp=li;exports.ArrowUpDown=jc;exports.AssistantStatus=NJ;exports.AxisConfigurator=Km;exports.Badge=Ve;exports.Bell=xv;exports.BulletChartIcon=xS;exports.Button=se;exports.CALCULATED_FIELDS_GROUP_NAME=Qh;exports.CALCULATED_FIELD_ENTITY_MARKER=cu;exports.COMPARISON_SUPPORTED_CHART_TYPES=iz;exports.CSS=yi;exports.CalculatedFieldEditor=pte;exports.Calculator=OT;exports.Calendar=Rs;exports.Card=Uo;exports.CardContent=Qi;exports.CardHeader=Zi;exports.CardTitle=Xi;exports.CaretSortIcon=g3e;exports.ChartArea=Ak;exports.ChartColumn=Am;exports.ChartColumnIncreasing=z1;exports.ChartIcon=Mte;exports.ChartJsVisual=ay;exports.ChartLine=B1;exports.ChartQuickSelector=Fet;exports.ChartScatter=zT;exports.ChatInputWithContext=IA;exports.Check=Ar;exports.CheckIcon=JZ;exports.Checkbox=cn;exports.ChevronDown=kr;exports.ChevronRight=ns;exports.ChevronUp=Ch;exports.ChevronsUpDown=VT;exports.Circle=HT;exports.CircleAlert=Yl;exports.CircleCheck=l8;exports.CircleHelp=c8;exports.Clock=Gl;exports.Code=u8;exports.CodeHighlighter=Jc;exports.CodeXml=Ok;exports.Collapsible=bo;exports.CollapsibleContent=yo;exports.CollapsibleTrigger=xo;exports.Command=op;exports.CommandEmpty=ap;exports.CommandGroup=lp;exports.CommandInput=ey;exports.CommandItem=cp;exports.CommandList=ip;exports.CommandSeparator=aW;exports.ComparisonMetadataBadge=WZ;exports.Container=JD;exports.Copy=em;exports.CopyButton=Em;exports.CopyPlus=d8;exports.CreateDashboardDialog=lB;exports.Cross2Icon=eX;exports.CustomFilterPopover=FR;exports.CustomScrollArea=tl;exports.DATE_FORMAT_VALUES=V1e;exports.DEFAULT_HEATMAP_CUSTOM_RANGE=CU;exports.Dashboard=Yee;exports.DashboardActionsMenu=p7;exports.DashboardCard=ZZ;exports.DashboardExportDialog=$X;exports.DashboardPlus=LQe;exports.DashboardWC=tJe;exports.DataSourceDialog=DA;exports.Database=$l;exports.DateRangePicker=lR;exports.DefaultChatTransport=MA;exports.DevModeSwitch=Zte;exports.Dialog=Gr;exports.DialogContent=zr;exports.DialogDescription=is;exports.DialogFooter=os;exports.DialogHeader=Br;exports.DialogTitle=Vr;exports.DialogTrigger=rfe;exports.DisplayPreferencesProvider=AR;exports.DndContext=Ny;exports.Download=bf;exports.DownloadPdf=LX;exports.DragOverlay=kX;exports.DropdownMenu=wf;exports.DropdownMenuCheckboxItem=Mg;exports.DropdownMenuContent=yu;exports.DropdownMenuItem=po;exports.DropdownMenuLabel=Eh;exports.DropdownMenuRadioGroup=_ue;exports.DropdownMenuRadioItem=h7;exports.DropdownMenuSeparator=Kd;exports.DropdownMenuSub=f7;exports.DropdownMenuSubContent=NM;exports.DropdownMenuSubTrigger=jM;exports.DropdownMenuTrigger=Cf;exports.EMPTY_DATA_SOURCE=HS;exports.Editable=Vb;exports.EditableText=mi;exports.EditorCustomVisual=met;exports.EllipsisVertical=Pm;exports.EmailScheduleDialog=MZ;exports.ErrorBoundary=rl;exports.ExportError=tp;exports.ExternalLink=fb;exports.Eye=tu;exports.EyeOff=V1;exports.Fallback=gS;exports.FallbackVisual=pS;exports.FeedbackCategory=hu;exports.FeedbackDialog=Qb;exports.FieldsList=bte;exports.FieldsSection=xte;exports.Filter=Yc;exports.FilterComponent=Sp;exports.FilterHeader=$R;exports.FilterInfo=N_;exports.Ft=fet;exports.GenIcon=Pu;exports.Grid3x3=H1;exports.GripVertical=WT;exports.HEATMAP_PRESET_PALETTES=RE;exports.Hash=m8;exports.House=hb;exports.HoverCard=Wm;exports.HoverCardContent=Mf;exports.HoverCardTrigger=qm;exports.IconButton=Wc;exports.Info=nr;exports.InlineFilterBar=KZ;exports.Input=jn;exports.Input$1=mn;exports.KPICard=Hb;exports.KeyboardSensor=Sy;exports.LOCALE_CURRENCY_PAIRS=ese;exports.Label=ae;exports.Layers=U1;exports.Le=iet;exports.Link=p8;exports.List=YT;exports.LoaderCircle=xn;exports.LoadingDots=fu;exports.METADATA_KEYS=xT;exports.Markdown=UQ;exports.Maximize2=W1;exports.MessageSquareWarning=GT;exports.Minimize2=KT;exports.PYTHON_DEFAULT_CODE=bT;exports.PenLine=$k;exports.Pencil=XT;exports.PendingMessagesDisplay=zee;exports.PiFileCsv=Z5e;exports.PivotMarkerEnum=kU;exports.PivotTableTanstack=by;exports.Placeholders=EJ;exports.Play=x8;exports.Plus=Tr;exports.PointerSensor=Ep;exports.Popover=ms;exports.PopoverContent=gs;exports.PopoverTrigger=ps;exports.PortalTooltipContent=DR;exports.PrintMessages=kJ;exports.Progress=wS;exports.RadioGroup=Qs;exports.RadioGroupItem=bn;exports.RefreshCcw=v8;exports.ResizableHandle=F6e;exports.ResizablePanel=I_;exports.ResizablePanelGroup=aQ;exports.ResourceEditDialog=Eq;exports.ResourceType=Ut;exports.ScrollArea=ro;exports.ScrollBar=bi;exports.Search=Ko;exports.SeedQuestions=Oee;exports.Select=ot;exports.SelectContent=rt;exports.SelectGroup=WD;exports.SelectItem=ve;exports.SelectLabel=BC;exports.SelectTrigger=nt;exports.SelectValue=at;exports.SelectedChartIcon=pet;exports.SemaphorContext=wx;exports.SemaphorContextProvider=PT;exports.SemaphorQueryClient=Gz;exports.SemaphorReadyIndicator=AA;exports.Separator=fs;exports.Settings=Om;exports.Settings2=Ll;exports.Shapes=C8;exports.Share2=Sh;exports.ShareDialog=kq;exports.Skeleton=Xs;exports.Slider=Gte;exports.SmallSwitch=Ite;exports.SortableContext=ky;exports.Sparkles=q1;exports.Square=S8;exports.SquarePen=Y1;exports.Star=JT;exports.Table2=jh;exports.TableSkeleton=UZ;exports.TableVisual=lf;exports.Tabs=Os;exports.TabsContent=pr;exports.TabsList=ys;exports.TabsTrigger=nn;exports.Tag=j8;exports.TbChartTreemap=bS;exports.TextCard=Sm;exports.Textarea=vu;exports.Toggle=xy;exports.Tooltip=an;exports.TooltipArrow=sm;exports.TooltipContent=dn;exports.TooltipProvider=Ln;exports.TooltipTrigger=ln;exports.Trash2=ec;exports.TreePalm=nM;exports.TrendingUp=Yd;exports.TriangleAlert=jx;exports.Type=Lk;exports.UXProvider=RA;exports.User=Kl;exports.UserPlus=N8;exports.Users=Pr;exports.X=St;exports.areEntitiesJoined=_U;exports.arrayMove=_p;exports.calculateFieldState=ED;exports.canUserAccessVisuals=s3e;exports.canUserCreateDashboards=r3e;exports.canUserEdit=e3e;exports.canUserManageDashboards=n3e;exports.canUserManageGroups=o3e;exports.canUserUseFilters=t3e;exports.cancelExport=aCe;exports.chartSupportsDataLabels=yH;exports.chartSupportsLegend=bH;exports.chartTypes=yS;exports.cleanupIncompleteMessages=Dq;exports.cleanupKpiMetricComparisonMode=Kee;exports.cloneDeep=qd;exports.cloneFrameWithNewIds=NR;exports.closestCenter=Cy;exports.cn=X;exports.colors=$n;exports.createChartConfig=ND;exports.createEmptyKpiConfig=hhe;exports.createExport=FU;exports.createLucideIcon=we;exports.createSlot=Nx;exports.createSqlGenConfig=CT;exports.de=Ete;exports.dedup=tXe;exports.downloadPdf=jY;exports.emitDashboardLoad=Cre;exports.emitDashboardUnload=Sre;exports.fieldAlreadyExists=MU;exports.fmt=ab;exports.formatDisplayFormula=JXe;exports.formatFileSize=uCe;exports.getAutoDetectedChartIcon=_R;exports.getCacheConfig=O1;exports.getCanvasBackgroundColor=Hi;exports.getChartGridStyle=Ihe;exports.getColorForValue=Zk;exports.getColumnDataType=ise;exports.getContrastColor=wo;exports.getDataType=yr;exports.getDateFormatOptionsForGranularity=IX;exports.getDefaultAxisConfig=Qk;exports.getDefaultChartColors=Df;exports.getDefaultDataLabelsConfig=Vx;exports.getDefaultFilterSql=wK;exports.getDefaultLegendConfig=lD;exports.getDisplayName=$ee;exports.getDownloadUrl=iCe;exports.getEntityDetails=lXe;exports.getEntityIcon=N1;exports.getErrorMessage=Aee;exports.getExportStatus=oCe;exports.getExports=sCe;exports.getFieldIconComponent=_m;exports.getFilterCount=r1;exports.getFilterValueType=zi;exports.getFormattedTableNameForQuery=qv;exports.getKeys=zn;exports.getMetricDisplayLabel=K1e;exports.getNewField=RU;exports.getObjectDiff=Kz;exports.getQualifiedTableName=ST;exports.getRoleBasedDisplayOverrides=GZ;exports.getSql=wT;exports.handleAggregationChange=k_;exports.handleAggregationLabelChange=qZ;exports.hasValidCardConfig=Ql;exports.horizontalListSortingStrategy=UR;exports.hslStringToHex=Rhe;exports.invalidateToken=Kse;exports.isBooleanDataType=vT;exports.isCalculatedDimension=Ux;exports.isCalculatedField=Pw;exports.isCalculatedMetric=sc;exports.isColumnInSqlGen=ase;exports.isDateDataType=Ki;exports.isDefaultColor=whe;exports.isDevEnv=gT;exports.isExportComplete=cCe;exports.isExportInProgress=lCe;exports.isInAiScopeArray=eXe;exports.isNumberDataType=Gi;exports.isObjectEmpty=Wse;exports.isTextDataType=yx;exports.merge=Jh;exports.mergeAxisConfig=Jk;exports.pivotData=Lx;exports.postRequest=Ez;exports.postRequestRegular=eo;exports.prepareFeedbackData=VS;exports.remarkGfm=xJ;exports.removeFromScopeArray=nXe;exports.removeRing=Sc;exports.resolveDataType=jT;exports.resolveDatamodelName=gz;exports.sanitizeAIScope=Ree;exports.setupEditorWithCard=vY;exports.showJoinRequiredNotification=TU;exports.sortByColumnsToSortState=eG;exports.sortStateToSortByColumns=tG;exports.sortableKeyboardCoordinates=qR;exports.titleCase=lb;exports.toTitleCase=pi;exports.ue=ze;exports.useAIActions=WC;exports.useAIInteractionStore=la;exports.useActiveExports=nCe;exports.useActiveToolStatus=Uee;exports.useAddNewFrame=nX;exports.useAssignFilter=Jee;exports.useAssistantContainer=Mq;exports.useAssistantLayoutStore=Od;exports.useAssistantPanel=_q;exports.useAssistantProfile=Pee;exports.useAutoScroll=Vee;exports.useAutoSubmitQueue=Bee;exports.useCallbackRef=qr;exports.useCard=J1e;exports.useCardFilterValues=gC;exports.useChat=Iee;exports.useColumns=kD;exports.useCreateVisualWithFrame=Lde;exports.useCurrentAIContext=dp;exports.useCurrentActiveCard=Sz;exports.useCurrentCardConfig=Nz;exports.useCurrentSheetActiveCards=jz;exports.useCurrentUserInfo=Ps;exports.useCustomVisual=ly;exports.useCustomVisualsQuery=OR;exports.useDashboardActions=Wt;exports.useDashboardById=F7;exports.useDashboardCardQuery=Ha;exports.useDashboardCreation=z7;exports.useDashboardManagement=L7;exports.useDashboardPreferences=Hm;exports.useDashboardQuery=L1;exports.useDashboardStore=J;exports.useDataColumns=AU;exports.useDateFilterHook=UAe;exports.useDebounce=Ih;exports.useDefaultDashboardMutation=g7;exports.useDisplayPreferences=wu;exports.useDroppable=NX;exports.useEditorActions=cr;exports.useEditorAside=YS;exports.useEditorStore=Ae;exports.useEnsureReactGlobals=GG;exports.useExportActions=OU;exports.useExportStore=IC;exports.useFieldManagement=Zee;exports.useFileActions=QD;exports.useFileAttachments=XD;exports.useFullscreenAssistant=Tq;exports.useGroupMembers=hSe;exports.useGroups=HD;exports.useHasDashboardId=Rq;exports.useInProgressExportsCount=rCe;exports.useIsDashboardSelected=Roe;exports.useIsVisualSelected=Aoe;exports.useJoinabilityMap=OA;exports.useLayoutEffect2=Yr;exports.useManagementActions=Cx;exports.useManagementStore=hs;exports.useMessageWindow=Hee;exports.useMutation=ia;exports.usePivotTableConfig=hp;exports.usePluginQuery=tX;exports.usePromoteCalculatedMetricToDomain=gte;exports.useQuery=En;exports.useQueryClient=so;exports.useQueueActions=fp;exports.useResourceManagement=iC;exports.useResourceUpdateState=$7;exports.useScopedFields=PA;exports.useSelectedVisual=Ioe;exports.useSemaphorContext=Xe;exports.useSensor=Tm;exports.useSensors=NS;exports.useSortable=Ey;exports.useStarredChartsStore=Dte;exports.useSyncLegacyEditorState=yte;exports.useTextFilterHook=XAe;exports.useTheme=Rm;exports.useTopoJson=NU;exports.useUnifiedUsers=VD;exports.useUpdateResource=R7;exports.useUpdateVisualMutation=zde;exports.useUserPreferences=cB;exports.useVisualById=TM;exports.useVisualManagement=$de;exports.v4=Rr;exports.validateFieldForChartType=Gee;exports.verticalListSortingStrategy=WR;
1087
+ `},D6=TJe(RJe)(wte),AJe={config:DJe},PJe=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(s){return n.reduceRight(function(o,i){return i(o)},s)}};function Cte(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],Cte(e[n],t[n]))}),_6(_6({},e),t)}var OJe={type:"cancelation",msg:"operation is manually canceled"};function Q2(e){var t=!1,n=new Promise(function(r,s){e.then(function(o){return t?s(OJe):r(o)}),e.catch(s)});return n.cancel=function(){return t=!0},n}var FJe=["monaco"],$Je=EJe.create({config:_Je,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ste=cJe($Je,2),Py=Ste[0],XS=Ste[1];function LJe(e){var t=AJe.config(e),n=t.monaco,r=aJe(t,FJe);XS(function(s){return{config:Cte(s.config,r),monaco:n}})}function zJe(){var e=Py(function(t){var n=t.monaco,r=t.isInitialized,s=t.resolve;return{monaco:n,isInitialized:r,resolve:s}});if(!e.isInitialized){if(XS({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Q2(J2);if(window.monaco&&window.monaco.editor)return jte(window.monaco),e.resolve(window.monaco),Q2(J2);PJe(BJe,HJe)(UJe)}return Q2(J2)}function BJe(e){return document.body.appendChild(e)}function VJe(e){var t=document.createElement("script");return e&&(t.src=e),t}function HJe(e){var t=Py(function(r){var s=r.config,o=r.reject;return{config:s,reject:o}}),n=VJe("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function UJe(){var e=Py(function(n){var r=n.config,s=n.resolve,o=n.reject;return{config:r,resolve:s,reject:o}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var r=n.m||n;jte(r),e.resolve(r)},function(n){e.reject(n)})}function jte(e){Py().monaco||XS({monaco:e})}function WJe(){return Py(function(e){var t=e.monaco;return t})}var J2=new Promise(function(e,t){return XS({resolve:e,reject:t})}),M1={config:LJe,init:zJe,__getMonacoInstance:WJe},qJe={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ek=qJe,YJe={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},GJe=YJe;function KJe({children:e}){return C.createElement("div",{style:GJe.container},e)}var ZJe=KJe,XJe=ZJe;function QJe({width:e,height:t,isEditorReady:n,loading:r,_ref:s,className:o,wrapperProps:i}){return C.createElement("section",{style:{...ek.wrapper,width:e,height:t},...i},!n&&C.createElement(XJe,null,r),C.createElement("div",{ref:s,style:{...ek.fullWidth,...!n&&ek.hide},className:o}))}var JJe=QJe,Nte=C.memo(JJe);function eet(e){C.useEffect(e,[])}var HA=eet;function tet(e,t,n=!0){let r=C.useRef(!0);C.useEffect(r.current||!n?()=>{r.current=!1}:e,t)}var Fo=tet;function eb(){}function vh(e,t,n,r){return net(e,r)||ret(e,t,n,r)}function net(e,t){return e.editor.getModel(kte(e,t))}function ret(e,t,n,r){return e.editor.createModel(t,n,r?kte(e,r):void 0)}function kte(e,t){return e.Uri.parse(t)}function set({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:s,originalModelPath:o,modifiedModelPath:i,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:l=!1,theme:u="light",loading:d="Loading...",options:f={},height:h="100%",width:m="100%",className:p,wrapperProps:g={},beforeMount:b=eb,onMount:x=eb}){let[y,v]=C.useState(!1),[w,j]=C.useState(!0),S=C.useRef(null),N=C.useRef(null),E=C.useRef(null),_=C.useRef(x),k=C.useRef(b),M=C.useRef(!1);HA(()=>{let I=M1.init();return I.then($=>(N.current=$)&&j(!1)).catch($=>($==null?void 0:$.type)!=="cancelation"&&console.error("Monaco initialization: error:",$)),()=>S.current?O():I.cancel()}),Fo(()=>{if(S.current&&N.current){let I=S.current.getOriginalEditor(),$=vh(N.current,e||"",r||n||"text",o||"");$!==I.getModel()&&I.setModel($)}},[o],y),Fo(()=>{if(S.current&&N.current){let I=S.current.getModifiedEditor(),$=vh(N.current,t||"",s||n||"text",i||"");$!==I.getModel()&&I.setModel($)}},[i],y),Fo(()=>{let I=S.current.getModifiedEditor();I.getOption(N.current.editor.EditorOption.readOnly)?I.setValue(t||""):t!==I.getValue()&&(I.executeEdits("",[{range:I.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),I.pushUndoStop())},[t],y),Fo(()=>{var I,$;($=(I=S.current)==null?void 0:I.getModel())==null||$.original.setValue(e||"")},[e],y),Fo(()=>{let{original:I,modified:$}=S.current.getModel();N.current.editor.setModelLanguage(I,r||n||"text"),N.current.editor.setModelLanguage($,s||n||"text")},[n,r,s],y),Fo(()=>{var I;(I=N.current)==null||I.editor.setTheme(u)},[u],y),Fo(()=>{var I;(I=S.current)==null||I.updateOptions(f)},[f],y);let T=C.useCallback(()=>{var V;if(!N.current)return;k.current(N.current);let I=vh(N.current,e||"",r||n||"text",o||""),$=vh(N.current,t||"",s||n||"text",i||"");(V=S.current)==null||V.setModel({original:I,modified:$})},[n,t,s,e,r,o,i]),P=C.useCallback(()=>{var I;!M.current&&E.current&&(S.current=N.current.editor.createDiffEditor(E.current,{automaticLayout:!0,...f}),T(),(I=N.current)==null||I.editor.setTheme(u),v(!0),M.current=!0)},[f,u,T]);C.useEffect(()=>{y&&_.current(S.current,N.current)},[y]),C.useEffect(()=>{!w&&!y&&P()},[w,y,P]);function O(){var $,V,W,L;let I=($=S.current)==null?void 0:$.getModel();a||((V=I==null?void 0:I.original)==null||V.dispose()),l||((W=I==null?void 0:I.modified)==null||W.dispose()),(L=S.current)==null||L.dispose()}return C.createElement(Nte,{width:m,height:h,isEditorReady:y,loading:d,_ref:E,className:p,wrapperProps:g})}var oet=set;C.memo(oet);function iet(){let[e,t]=C.useState(M1.__getMonacoInstance());return HA(()=>{let n;return e||(n=M1.init(),n.then(r=>{t(r)})),()=>n==null?void 0:n.cancel()}),e}var aet=iet;function cet(e){let t=C.useRef();return C.useEffect(()=>{t.current=e},[e]),t.current}var uet=cet,pv=new Map;function det({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:s,path:o,theme:i="light",line:a,loading:l="Loading...",options:u={},overrideServices:d={},saveViewState:f=!0,keepCurrentModel:h=!1,width:m="100%",height:p="100%",className:g,wrapperProps:b={},beforeMount:x=eb,onMount:y=eb,onChange:v,onValidate:w=eb}){let[j,S]=C.useState(!1),[N,E]=C.useState(!0),_=C.useRef(null),k=C.useRef(null),M=C.useRef(null),T=C.useRef(y),P=C.useRef(x),O=C.useRef(),I=C.useRef(r),$=uet(o),V=C.useRef(!1),W=C.useRef(!1);HA(()=>{let z=M1.init();return z.then(F=>(_.current=F)&&E(!1)).catch(F=>(F==null?void 0:F.type)!=="cancelation"&&console.error("Monaco initialization: error:",F)),()=>k.current?R():z.cancel()}),Fo(()=>{var F,A,H,B;let z=vh(_.current,e||r||"",t||s||"",o||n||"");z!==((F=k.current)==null?void 0:F.getModel())&&(f&&pv.set($,(A=k.current)==null?void 0:A.saveViewState()),(H=k.current)==null||H.setModel(z),f&&((B=k.current)==null||B.restoreViewState(pv.get(o))))},[o],j),Fo(()=>{var z;(z=k.current)==null||z.updateOptions(u)},[u],j),Fo(()=>{!k.current||r===void 0||(k.current.getOption(_.current.editor.EditorOption.readOnly)?k.current.setValue(r):r!==k.current.getValue()&&(W.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),k.current.pushUndoStop(),W.current=!1))},[r],j),Fo(()=>{var F,A;let z=(F=k.current)==null?void 0:F.getModel();z&&s&&((A=_.current)==null||A.editor.setModelLanguage(z,s))},[s],j),Fo(()=>{var z;a!==void 0&&((z=k.current)==null||z.revealLine(a))},[a],j),Fo(()=>{var z;(z=_.current)==null||z.editor.setTheme(i)},[i],j);let L=C.useCallback(()=>{var z;if(!(!M.current||!_.current)&&!V.current){P.current(_.current);let F=o||n,A=vh(_.current,r||e||"",t||s||"",F||"");k.current=(z=_.current)==null?void 0:z.editor.create(M.current,{model:A,automaticLayout:!0,...u},d),f&&k.current.restoreViewState(pv.get(F)),_.current.editor.setTheme(i),a!==void 0&&k.current.revealLine(a),S(!0),V.current=!0}},[e,t,n,r,s,o,u,d,f,i,a]);C.useEffect(()=>{j&&T.current(k.current,_.current)},[j]),C.useEffect(()=>{!N&&!j&&L()},[N,j,L]),I.current=r,C.useEffect(()=>{var z,F;j&&v&&((z=O.current)==null||z.dispose(),O.current=(F=k.current)==null?void 0:F.onDidChangeModelContent(A=>{W.current||v(k.current.getValue(),A)}))},[j,v]),C.useEffect(()=>{if(j){let z=_.current.editor.onDidChangeMarkers(F=>{var H;let A=(H=k.current.getModel())==null?void 0:H.uri;if(A&&F.find(B=>B.path===A.path)){let B=_.current.editor.getModelMarkers({resource:A});w==null||w(B)}});return()=>{z==null||z.dispose()}}return()=>{}},[j,w]);function R(){var z,F;(z=O.current)==null||z.dispose(),h?f&&pv.set(o,k.current.saveViewState()):(F=k.current.getModel())==null||F.dispose(),k.current.dispose()}return C.createElement(Nte,{width:m,height:p,isEditorReady:j,loading:l,_ref:M,className:g,wrapperProps:b})}var fet=det,Ete=C.memo(fet),het=Ete;function met({card:e}){var O,I,$,V,W,L,R,z,F,A,H;const[t,n]=C.useState(!1),[r,s]=C.useState([]),{authToken:o}=Xe(),{theme:i}=Rm(),a=_z(o==null?void 0:o.accessToken),l=J(B=>B.themeStyle),u={mode:i||"system",colors:((I=(O=l==null?void 0:l.chart)==null?void 0:O.dataset)==null?void 0:I.backgroundColor)||[]};($=e.customCardPreferences)!=null&&$.inputData;const{getCard:d}=ly(((V=e.customCardPreferences)==null?void 0:V.url)||""),f=((W=e.customCardPreferences)==null?void 0:W.visualType)||"single",h=Ae(B=>B.frame),{setCustomCardPreferences:m}=cr(),{data:p}=Ha(e),g=Vt(B=>B.interactionStates),b=J(B=>{var Y;return(Y=B.dashboard)==null?void 0:Y.id}),x=J(B=>B.dashboard.filters),y=J(B=>B.filterValues),v=J(B=>B.selectedSheetId),w=J(B=>B.inlineFilterValuesMap[e.id]),j=C.useMemo(()=>SZ({card:e,sheetId:v||"",inlineFilterValues:w}),[e,v,w]),{cardFilters:S,cardFilterValues:N,shouldApplyDashboardFilters:E,contextMode:_}=C.useMemo(()=>HM({card:e,interactionStates:g,currentDashboardId:b,filters:x,filterValues:y,selectedSheetId:v}),[e,g,b,x,y,v]),k=C.useCallback((B,Y)=>{s(q=>({...q,[B]:Y}))},[]);if(!((L=e.customCardPreferences)!=null&&L.componentName))return null;const M=d((R=e.customCardPreferences)==null?void 0:R.componentName);function T(B){n(B)}const P=Object.keys(((z=e.customCardPreferences)==null?void 0:z.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);return q||null});return c.jsx("div",{className:"semaphor-custom mb-3 flex grow basis-0 flex-col space-y-2 overflow-y-auto",children:c.jsxs(C.Suspense,{fallback:c.jsx(c.Fragment,{}),children:[M&&f==="single"&&c.jsx(M,{editing:!0,params:a,theme:u,settings:(F=e.customCardPreferences)==null?void 0:F.settings,onDataChange:k,data:(p==null?void 0:p.records)||[],filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j}),M&&f==="multiple"&&c.jsxs(c.Fragment,{children:[Object.keys(((A=e.customCardPreferences)==null?void 0:A.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);if(q)return c.jsx(KG,{onLoadingStatus:T,onDataChange:k,dataInputIndex:B,card:q},q.id+B)}),c.jsx("div",{className:"flex flex-col gap-2",children:c.jsx(M,{theme:u,onDataChange:k,settings:P.map(B=>{var Y;return(Y=B==null?void 0:B.customCardPreferences)==null?void 0:Y.settings}),data:P.map(B=>B!=null&&B.id?r==null?void 0:r[B.id]:[]),filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j})})]})]},(H=e.customCardPreferences)==null?void 0:H.componentName)})}const pet=C.memo(met,(e,t)=>{var n,r,s,o,i,a;return e.card.id===t.card.id&&e.card.inlineFilters===t.card.inlineFilters&&((n=e.card.customCardPreferences)==null?void 0:n.settings)===((r=t.card.customCardPreferences)==null?void 0:r.settings)&&((s=e.card.customCardPreferences)==null?void 0:s.url)===((o=t.card.customCardPreferences)==null?void 0:o.url)&&((i=e.card.customCardPreferences)==null?void 0:i.componentName)===((a=t.card.customCardPreferences)==null?void 0:a.componentName)});function _te(e){let t=0;for(let r=0;r<e.length;r++)t=e.charCodeAt(r)+((t<<5)-t);return`hsl(${Math.abs(t%360)}, 65%, 45%)`}function Tte(e){const t=e.trim().split(/\s+/);return t.length>1?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function Mte({chartType:e,chartName:t,isCustom:n=!1,className:r="h-6 w-6"}){if(!n&&e)return TR(e,r);const s=_R(t);if(s)return C.cloneElement(s,{className:r});const o=Tte(t),i=_te(t);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-xs",r),style:{backgroundColor:i},children:o})}function get({chartType:e,className:t="h-4 w-4",customIcon:n,componentName:r}){if(e==="custom"){if(r){const s=_R(r);if(s)return C.cloneElement(s,{className:t});const o=Tte(r),i=_te(r);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-[10px]",t),style:{backgroundColor:i},children:o})}return c.jsx(C8,{className:t})}return TR(e,t)}const Dte=oa()(nz((e,t)=>({starredCharts:[],isStarred:(n,r)=>t().starredCharts.some(s=>s.type===n&&s.id===r),toggleStar:n=>{e(r=>{const s=r.starredCharts.findIndex(o=>o.type===n.type&&o.id===n.id);return s>=0?{starredCharts:r.starredCharts.filter((o,i)=>i!==s)}:{starredCharts:[...r.starredCharts,n]}})},getStarredChart:(n,r)=>t().starredCharts.find(s=>s.type===n&&s.id===r)}),{name:"semaphor-starred-charts"})),Ite=D.forwardRef(({className:e,...t},n)=>c.jsx(_y,{className:X("peer inline-flex h-[22px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:c.jsx(YR,{className:X("pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Ite.displayName=_y.displayName;var Rte=["PageUp","PageDown"],Ate=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Pte={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ip="Slider",[sT,bet,xet]=Ex(Ip),[Ote]=Lr(Ip,[xet]),[yet,QS]=Ote(Ip),Fte=D.forwardRef((e,t)=>{const{name:n,min:r=0,max:s=100,step:o=1,orientation:i="horizontal",disabled:a=!1,minStepsBetweenThumbs:l=0,defaultValue:u=[r],value:d,onValueChange:f=()=>{},onValueCommit:h=()=>{},inverted:m=!1,form:p,...g}=e,b=D.useRef(new Set),x=D.useRef(0),v=i==="horizontal"?vet:wet,[w=[],j]=ss({prop:d,defaultProp:u,onChange:M=>{var P;(P=[...b.current][x.current])==null||P.focus(),f(M)}}),S=D.useRef(w);function N(M){const T=Eet(w,M);k(M,T)}function E(M){k(M,x.current)}function _(){const M=S.current[x.current];w[x.current]!==M&&h(w)}function k(M,T,{commit:P}={commit:!1}){const O=Det(o),I=Iet(Math.round((M-r)/o)*o+r,O),$=Ib(I,[r,s]);j((V=[])=>{const W=Net(V,$,T);if(Met(W,l*o)){x.current=W.indexOf($);const L=String(W)!==String(V);return L&&P&&h(W),L?W:V}else return V})}return c.jsx(yet,{scope:e.__scopeSlider,name:n,disabled:a,min:r,max:s,valueIndexToChangeRef:x,thumbs:b.current,values:w,orientation:i,form:p,children:c.jsx(sT.Provider,{scope:e.__scopeSlider,children:c.jsx(sT.Slot,{scope:e.__scopeSlider,children:c.jsx(v,{"aria-disabled":a,"data-disabled":a?"":void 0,...g,ref:t,onPointerDown:Ie(g.onPointerDown,()=>{a||(S.current=w)}),min:r,max:s,inverted:m,onSlideStart:a?void 0:N,onSlideMove:a?void 0:E,onSlideEnd:a?void 0:_,onHomeKeyDown:()=>!a&&k(r,0,{commit:!0}),onEndKeyDown:()=>!a&&k(s,w.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:T})=>{if(!a){const I=Rte.includes(M.key)||M.shiftKey&&Ate.includes(M.key)?10:1,$=x.current,V=w[$],W=o*I*T;k(V+W,$,{commit:!0})}}})})})})});Fte.displayName=Ip;var[$te,Lte]=Ote(Ip,{startEdge:"left",endEdge:"right",size:"width",direction:1}),vet=D.forwardRef((e,t)=>{const{min:n,max:r,dir:s,inverted:o,onSlideStart:i,onSlideMove:a,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,h]=D.useState(null),m=ut(t,v=>h(v)),p=D.useRef(void 0),g=bu(s),b=g==="ltr",x=b&&!o||!b&&o;function y(v){const w=p.current||f.getBoundingClientRect(),j=[0,w.width],N=UA(j,x?[n,r]:[r,n]);return p.current=w,N(v-w.left)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:x?"left":"right",endEdge:x?"right":"left",direction:x?1:-1,size:"width",children:c.jsx(zte,{dir:g,"data-orientation":"horizontal",...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:v=>{const w=y(v.clientX);i==null||i(w)},onSlideMove:v=>{const w=y(v.clientX);a==null||a(w)},onSlideEnd:()=>{p.current=void 0,l==null||l()},onStepKeyDown:v=>{const j=Pte[x?"from-left":"from-right"].includes(v.key);u==null||u({event:v,direction:j?-1:1})}})})}),wet=D.forwardRef((e,t)=>{const{min:n,max:r,inverted:s,onSlideStart:o,onSlideMove:i,onSlideEnd:a,onStepKeyDown:l,...u}=e,d=D.useRef(null),f=ut(t,d),h=D.useRef(void 0),m=!s;function p(g){const b=h.current||d.current.getBoundingClientRect(),x=[0,b.height],v=UA(x,m?[r,n]:[n,r]);return h.current=b,v(g-b.top)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:m?"bottom":"top",endEdge:m?"top":"bottom",size:"height",direction:m?1:-1,children:c.jsx(zte,{"data-orientation":"vertical",...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:g=>{const b=p(g.clientY);o==null||o(b)},onSlideMove:g=>{const b=p(g.clientY);i==null||i(b)},onSlideEnd:()=>{h.current=void 0,a==null||a()},onStepKeyDown:g=>{const x=Pte[m?"from-bottom":"from-top"].includes(g.key);l==null||l({event:g,direction:x?-1:1})}})})}),zte=D.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:s,onSlideEnd:o,onHomeKeyDown:i,onEndKeyDown:a,onStepKeyDown:l,...u}=e,d=QS(Ip,n);return c.jsx(Ze.span,{...u,ref:t,onKeyDown:Ie(e.onKeyDown,f=>{f.key==="Home"?(i(f),f.preventDefault()):f.key==="End"?(a(f),f.preventDefault()):Rte.concat(Ate).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Ie(e.onPointerDown,f=>{const h=f.target;h.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(h)?h.focus():r(f)}),onPointerMove:Ie(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&s(f)}),onPointerUp:Ie(e.onPointerUp,f=>{const h=f.target;h.hasPointerCapture(f.pointerId)&&(h.releasePointerCapture(f.pointerId),o(f))})})}),Bte="SliderTrack",Vte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(Bte,n);return c.jsx(Ze.span,{"data-disabled":s.disabled?"":void 0,"data-orientation":s.orientation,...r,ref:t})});Vte.displayName=Bte;var oT="SliderRange",Hte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(oT,n),o=Lte(oT,n),i=D.useRef(null),a=ut(t,i),l=s.values.length,u=s.values.map(h=>qte(h,s.min,s.max)),d=l>1?Math.min(...u):0,f=100-Math.max(...u);return c.jsx(Ze.span,{"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,...r,ref:a,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});Hte.displayName=oT;var iT="SliderThumb",Ute=D.forwardRef((e,t)=>{const n=bet(e.__scopeSlider),[r,s]=D.useState(null),o=ut(t,a=>s(a)),i=D.useMemo(()=>r?n().findIndex(a=>a.ref.current===r):-1,[n,r]);return c.jsx(Cet,{...e,ref:o,index:i})}),Cet=D.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:s,...o}=e,i=QS(iT,n),a=Lte(iT,n),[l,u]=D.useState(null),d=ut(t,y=>u(y)),f=l?i.form||!!l.closest("form"):!0,h=Tx(l),m=i.values[r],p=m===void 0?0:qte(m,i.min,i.max),g=ket(r,i.values.length),b=h==null?void 0:h[a.size],x=b?_et(b,p,a.direction):0;return D.useEffect(()=>{if(l)return i.thumbs.add(l),()=>{i.thumbs.delete(l)}},[l,i.thumbs]),c.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[a.startEdge]:`calc(${p}% + ${x}px)`},children:[c.jsx(sT.ItemSlot,{scope:e.__scopeSlider,children:c.jsx(Ze.span,{role:"slider","aria-label":e["aria-label"]||g,"aria-valuemin":i.min,"aria-valuenow":m,"aria-valuemax":i.max,"aria-orientation":i.orientation,"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,tabIndex:i.disabled?void 0:0,...o,ref:d,style:m===void 0?{display:"none"}:e.style,onFocus:Ie(e.onFocus,()=>{i.valueIndexToChangeRef.current=r})})}),f&&c.jsx(Wte,{name:s??(i.name?i.name+(i.values.length>1?"[]":""):void 0),form:i.form,value:m},r)]})});Ute.displayName=iT;var jet="RadioBubbleInput",Wte=D.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const s=D.useRef(null),o=ut(s,r),i=$x(t);return D.useEffect(()=>{const a=s.current;if(!a)return;const l=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&d){const f=new Event("input",{bubbles:!0});d.call(a,t),a.dispatchEvent(f)}},[i,t]),c.jsx(Ze.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});Wte.displayName=jet;function Net(e=[],t,n){const r=[...e];return r[n]=t,r.sort((s,o)=>s-o)}function qte(e,t,n){const o=100/(n-t)*(e-t);return Ib(o,[0,100])}function ket(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Eet(e,t){if(e.length===1)return 0;const n=e.map(s=>Math.abs(s-t)),r=Math.min(...n);return n.indexOf(r)}function _et(e,t,n){const r=e/2,o=UA([0,50],[0,r]);return(r-o(t)*n)*n}function Tet(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Met(e,t){if(t>0){const n=Tet(e);return Math.min(...n)>=t}return!0}function UA(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Det(e){return(String(e).split(".")[1]||"").length}function Iet(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var Yte=Fte,Ret=Vte,Aet=Hte,Pet=Ute;const Gte=D.forwardRef(({className:e,...t},n)=>c.jsxs(Yte,{ref:n,className:X("relative flex w-full touch-none select-none items-center",e),...t,children:[c.jsx(Ret,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:c.jsx(Aet,{className:"absolute h-full bg-primary"})}),c.jsx(Pet,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));Gte.displayName=Yte.displayName;const Oet={table:jh,bar:z1,line:B1,stackedBar:FT,stackedLine:TZ,scatter:zT,bubble:_Z,pie:LT,doughnut:UT,kpi:ER,treemap:bS,bullet:xS,funnel:kR,tornado:tM,heatmap:H1,range:$T,radar:y8,polarArea:EZ,text:r8,map:b8},Kte=[{id:"table",icon:jh,label:"Table"},{id:"bar",icon:z1,label:"Bar Chart"},{id:"line",icon:B1,label:"Line Chart"},{id:"stackedBar",icon:FT,label:"Stacked Bar",requiresPivot:!1},{id:"pie",icon:LT,label:"Pie Chart"},{id:"doughnut",icon:UT,label:"Donut Chart"},{id:"kpi",icon:ER,label:"KPI"},{id:"treemap",icon:bS,label:"Treemap"},{id:"bullet",icon:xS,label:"Bullet Chart"},{id:"funnel",icon:kR,label:"Funnel Chart"},{id:"tornado",icon:tM,label:"Tornado Chart"},{id:"heatmap",icon:H1,label:"Heatmap"},{id:"range",icon:$T,label:"Range Chart"}],Fet=14;Kte.map(e=>e.id);function $et({selectedChart:e,onChartChange:t,isDropdownExpanded:n,onToggleDropdown:r}){var y,v;const s=Ae(w=>w.card),{setCardType:o,setCardPreferences:i,setIsDevMode:a}=Ae(w=>w.actions),{setCardCustomCfg:l,setCustomCardPreferences:u,setQueryConfig:d}=cr(),f=((y=s==null?void 0:s.config)==null?void 0:y.pivotByColumns)&&s.config.pivotByColumns.length>0,{starredCharts:h,isStarred:m}=Dte(),{data:p=[]}=OR(),g=C.useMemo(()=>{const w=Kte.filter(_=>!(_.requiresPivot&&!f)),j=h.filter(_=>_.type==="default"?!0:p.some(k=>k.name===_.id)),S=new Set(j.map(_=>_.id)),N=w.filter(_=>!S.has(_.id));return[...j.map(_=>({id:_.id,label:_.name,icon:_.type==="default"?Oet[_.id]:void 0,isCustom:_.type==="custom",isStarred:!0,url:_.url})),...N.map(_=>({id:_.id,label:_.label,icon:_.icon,isCustom:!1,isStarred:!1}))].slice(0,Fet-1)},[h,p,f]),b=w=>{if(w.isCustom){const j=p.find(S=>S.name===w.id);j&&(l(null),i({}),o("custom"),u({type:"component",visualType:"single",url:j.url,componentName:j.name,icon:j.icon,pluginChartType:j.chartType}),d(void 0),t("custom"))}else t(w.id)},x=e==="custom"&&((v=s==null?void 0:s.customCardPreferences)==null?void 0:v.componentName);return c.jsxs("div",{className:"grid grid-cols-7 gap-2",children:[g.map(w=>{var N;const j=w.icon,S=w.isCustom?x&&((N=s==null?void 0:s.customCardPreferences)==null?void 0:N.componentName)===w.id:e===w.id;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(se,{variant:"ghost",size:"sm",onClick:()=>b(w),className:X("h-8 w-8 p-0",S&&"bg-accent text-accent-foreground"),children:[j?c.jsx(j,{className:"h-4 w-4"}):c.jsx(Mte,{chartName:w.label,isCustom:!0,className:"h-4 w-4"}),c.jsx("span",{className:"sr-only",children:w.label})]})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:w.label}),c.jsx(sm,{className:"fill-foreground"})]})]},`${w.isCustom?"custom":"default"}-${w.id}`)}),r&&c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",onClick:r,className:"h-8 w-8 p-0","aria-label":n?"Hide all charts":"Show all charts",children:n?c.jsx(Ch,{className:"h-4 w-4"}):c.jsx(kr,{className:"h-4 w-4"})})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:n?"Hide dropdown":"Show all charts"}),c.jsx(sm,{className:"fill-foreground"})]})]})]})}const Zte=D.forwardRef(({className:e,icon:t,tooltip:n,...r},s)=>{const o=c.jsx(_y,{className:X("peer inline-flex h-8 w-12 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...r,ref:s,children:c.jsx(YR,{className:X("pointer-events-none block h-7 w-7 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"),children:t&&c.jsx("span",{className:"flex h-full items-center justify-center text-primary",children:t})})});return n?c.jsx(Ln,{children:c.jsxs(an,{delayDuration:0,children:[c.jsx(ln,{asChild:!0,children:c.jsx("span",{className:"inline-flex",children:o})}),c.jsxs(dn,{side:"bottom",className:"border-0 bg-foreground text-background shadow-md",children:[c.jsx(sm,{className:"fill-foreground"}),c.jsx("p",{children:n})]})]})}):o});Zte.displayName="DevModeSwitch";exports.Accordion=BA;exports.AccordionContent=ox;exports.AccordionItem=rx;exports.AccordionTrigger=sx;exports.AggregateTable=iS;exports.AlertDialog=Um;exports.AlertDialogAction=_f;exports.AlertDialogCancel=Tf;exports.AlertDialogContent=Sf;exports.AlertDialogDescription=Ef;exports.AlertDialogFooter=Nf;exports.AlertDialogHeader=jf;exports.AlertDialogTitle=kf;exports.ArrowDown=Ea;exports.ArrowRight=n8;exports.ArrowUp=li;exports.ArrowUpDown=jc;exports.AssistantStatus=NJ;exports.AxisConfigurator=Km;exports.Badge=Ve;exports.Bell=xv;exports.BulletChartIcon=xS;exports.Button=se;exports.CALCULATED_FIELDS_GROUP_NAME=Qh;exports.CALCULATED_FIELD_ENTITY_MARKER=cu;exports.COMPARISON_SUPPORTED_CHART_TYPES=iz;exports.CSS=yi;exports.CalculatedFieldEditor=pte;exports.Calculator=OT;exports.Calendar=Rs;exports.Card=Uo;exports.CardContent=Qi;exports.CardHeader=Zi;exports.CardTitle=Xi;exports.CaretSortIcon=g3e;exports.ChartArea=Ak;exports.ChartColumn=Am;exports.ChartColumnIncreasing=z1;exports.ChartIcon=Mte;exports.ChartJsVisual=ay;exports.ChartLine=B1;exports.ChartQuickSelector=$et;exports.ChartScatter=zT;exports.ChatInputWithContext=IA;exports.Check=Ar;exports.CheckIcon=JZ;exports.Checkbox=cn;exports.ChevronDown=kr;exports.ChevronRight=ns;exports.ChevronUp=Ch;exports.ChevronsUpDown=VT;exports.Circle=HT;exports.CircleAlert=Yl;exports.CircleCheck=l8;exports.CircleHelp=c8;exports.Clock=Gl;exports.Code=u8;exports.CodeHighlighter=Jc;exports.CodeXml=Ok;exports.Collapsible=bo;exports.CollapsibleContent=yo;exports.CollapsibleTrigger=xo;exports.Command=op;exports.CommandEmpty=ap;exports.CommandGroup=lp;exports.CommandInput=ey;exports.CommandItem=cp;exports.CommandList=ip;exports.CommandSeparator=aW;exports.ComparisonMetadataBadge=WZ;exports.Container=JD;exports.Copy=em;exports.CopyButton=Em;exports.CopyPlus=d8;exports.CreateDashboardDialog=lB;exports.Cross2Icon=eX;exports.CustomFilterPopover=FR;exports.CustomScrollArea=tl;exports.DATE_FORMAT_VALUES=V1e;exports.DEFAULT_HEATMAP_CUSTOM_RANGE=CU;exports.Dashboard=Yee;exports.DashboardActionsMenu=p7;exports.DashboardCard=ZZ;exports.DashboardExportDialog=$X;exports.DashboardPlus=zQe;exports.DashboardWC=nJe;exports.DataSourceDialog=DA;exports.Database=$l;exports.DateRangePicker=lR;exports.DefaultChatTransport=MA;exports.DevModeSwitch=Zte;exports.Dialog=Gr;exports.DialogContent=zr;exports.DialogDescription=is;exports.DialogFooter=os;exports.DialogHeader=Br;exports.DialogTitle=Vr;exports.DialogTrigger=rfe;exports.DisplayPreferencesProvider=AR;exports.DndContext=Ny;exports.Download=bf;exports.DownloadPdf=LX;exports.DragOverlay=kX;exports.DropdownMenu=wf;exports.DropdownMenuCheckboxItem=Mg;exports.DropdownMenuContent=yu;exports.DropdownMenuItem=po;exports.DropdownMenuLabel=Eh;exports.DropdownMenuRadioGroup=_ue;exports.DropdownMenuRadioItem=h7;exports.DropdownMenuSeparator=Kd;exports.DropdownMenuSub=f7;exports.DropdownMenuSubContent=NM;exports.DropdownMenuSubTrigger=jM;exports.DropdownMenuTrigger=Cf;exports.EMPTY_DATA_SOURCE=HS;exports.Editable=Vb;exports.EditableText=mi;exports.EditorCustomVisual=pet;exports.EllipsisVertical=Pm;exports.EmailScheduleDialog=MZ;exports.ErrorBoundary=rl;exports.ExportError=tp;exports.ExternalLink=fb;exports.Eye=tu;exports.EyeOff=V1;exports.Fallback=gS;exports.FallbackVisual=pS;exports.FeedbackCategory=hu;exports.FeedbackDialog=Qb;exports.FieldsList=bte;exports.FieldsSection=xte;exports.Filter=Yc;exports.FilterComponent=Sp;exports.FilterHeader=$R;exports.FilterInfo=N_;exports.Ft=het;exports.GenIcon=Pu;exports.Grid3x3=H1;exports.GripVertical=WT;exports.HEATMAP_PRESET_PALETTES=RE;exports.Hash=m8;exports.House=hb;exports.HoverCard=Wm;exports.HoverCardContent=Mf;exports.HoverCardTrigger=qm;exports.IconButton=Wc;exports.Info=nr;exports.InlineFilterBar=KZ;exports.Input=jn;exports.Input$1=mn;exports.KPICard=Hb;exports.KeyboardSensor=Sy;exports.LOCALE_CURRENCY_PAIRS=ese;exports.Label=ae;exports.Layers=U1;exports.Le=aet;exports.Link=p8;exports.List=YT;exports.LoaderCircle=xn;exports.LoadingDots=fu;exports.METADATA_KEYS=xT;exports.Markdown=UQ;exports.Maximize2=W1;exports.MessageSquareWarning=GT;exports.Minimize2=KT;exports.PYTHON_DEFAULT_CODE=bT;exports.PenLine=$k;exports.Pencil=XT;exports.PendingMessagesDisplay=zee;exports.PiFileCsv=Z5e;exports.PivotMarkerEnum=kU;exports.PivotTableTanstack=by;exports.Placeholders=EJ;exports.Play=x8;exports.Plus=Tr;exports.PointerSensor=Ep;exports.Popover=ms;exports.PopoverContent=gs;exports.PopoverTrigger=ps;exports.PortalTooltipContent=DR;exports.PrintMessages=kJ;exports.Progress=wS;exports.RadioGroup=Qs;exports.RadioGroupItem=bn;exports.RefreshCcw=v8;exports.ResizableHandle=F6e;exports.ResizablePanel=I_;exports.ResizablePanelGroup=aQ;exports.ResourceEditDialog=Eq;exports.ResourceType=Ut;exports.ScrollArea=ro;exports.ScrollBar=bi;exports.Search=Ko;exports.SeedQuestions=Oee;exports.Select=ot;exports.SelectContent=rt;exports.SelectGroup=WD;exports.SelectItem=ve;exports.SelectLabel=BC;exports.SelectTrigger=nt;exports.SelectValue=at;exports.SelectedChartIcon=get;exports.SemaphorContext=wx;exports.SemaphorContextProvider=PT;exports.SemaphorQueryClient=Gz;exports.SemaphorReadyIndicator=AA;exports.Separator=fs;exports.Settings=Om;exports.Settings2=Ll;exports.Shapes=C8;exports.Share2=Sh;exports.ShareDialog=kq;exports.Skeleton=Xs;exports.Slider=Gte;exports.SmallSwitch=Ite;exports.SortableContext=ky;exports.Sparkles=q1;exports.Square=S8;exports.SquarePen=Y1;exports.Star=JT;exports.Table2=jh;exports.TableSkeleton=UZ;exports.TableVisual=lf;exports.Tabs=Os;exports.TabsContent=pr;exports.TabsList=ys;exports.TabsTrigger=nn;exports.Tag=j8;exports.TbChartTreemap=bS;exports.TextCard=Sm;exports.Textarea=vu;exports.Toggle=xy;exports.Tooltip=an;exports.TooltipArrow=sm;exports.TooltipContent=dn;exports.TooltipProvider=Ln;exports.TooltipTrigger=ln;exports.Trash2=ec;exports.TreePalm=nM;exports.TrendingUp=Yd;exports.TriangleAlert=jx;exports.Type=Lk;exports.UXProvider=RA;exports.User=Kl;exports.UserPlus=N8;exports.Users=Pr;exports.X=St;exports.areEntitiesJoined=_U;exports.arrayMove=_p;exports.calculateFieldState=ED;exports.canUserAccessVisuals=s3e;exports.canUserCreateDashboards=r3e;exports.canUserEdit=e3e;exports.canUserManageDashboards=n3e;exports.canUserManageGroups=o3e;exports.canUserUseFilters=t3e;exports.cancelExport=aCe;exports.chartSupportsDataLabels=yH;exports.chartSupportsLegend=bH;exports.chartTypes=yS;exports.cleanupIncompleteMessages=Dq;exports.cleanupKpiMetricComparisonMode=Kee;exports.cloneDeep=qd;exports.cloneFrameWithNewIds=NR;exports.closestCenter=Cy;exports.cn=X;exports.colors=$n;exports.createChartConfig=ND;exports.createEmptyKpiConfig=hhe;exports.createExport=FU;exports.createLucideIcon=we;exports.createSlot=Nx;exports.createSqlGenConfig=CT;exports.de=Ete;exports.dedup=tXe;exports.downloadPdf=jY;exports.emitDashboardLoad=Cre;exports.emitDashboardUnload=Sre;exports.fieldAlreadyExists=MU;exports.fmt=ab;exports.formatDisplayFormula=eQe;exports.formatFileSize=uCe;exports.getAutoDetectedChartIcon=_R;exports.getCacheConfig=O1;exports.getCanvasBackgroundColor=Hi;exports.getChartGridStyle=Ihe;exports.getColorForValue=Zk;exports.getColumnDataType=ise;exports.getContrastColor=wo;exports.getDataType=yr;exports.getDateFormatOptionsForGranularity=IX;exports.getDefaultAxisConfig=Qk;exports.getDefaultChartColors=Df;exports.getDefaultDataLabelsConfig=Vx;exports.getDefaultFilterSql=wK;exports.getDefaultLegendConfig=lD;exports.getDisplayName=$ee;exports.getDownloadUrl=iCe;exports.getEntityDetails=lXe;exports.getEntityIcon=N1;exports.getErrorMessage=Aee;exports.getExportStatus=oCe;exports.getExports=sCe;exports.getFieldIconComponent=_m;exports.getFilterCount=r1;exports.getFilterValueType=zi;exports.getFormattedTableNameForQuery=qv;exports.getKeys=zn;exports.getMetricDisplayLabel=K1e;exports.getNewField=RU;exports.getObjectDiff=Kz;exports.getQualifiedTableName=ST;exports.getRoleBasedDisplayOverrides=GZ;exports.getSql=wT;exports.handleAggregationChange=k_;exports.handleAggregationLabelChange=qZ;exports.hasValidCardConfig=Ql;exports.horizontalListSortingStrategy=UR;exports.hslStringToHex=Rhe;exports.invalidateToken=Kse;exports.isBooleanDataType=vT;exports.isCalculatedDimension=Ux;exports.isCalculatedField=Pw;exports.isCalculatedMetric=sc;exports.isColumnInSqlGen=ase;exports.isDateDataType=Ki;exports.isDefaultColor=whe;exports.isDevEnv=gT;exports.isExportComplete=cCe;exports.isExportInProgress=lCe;exports.isInAiScopeArray=eXe;exports.isNumberDataType=Gi;exports.isObjectEmpty=Wse;exports.isTextDataType=yx;exports.merge=Jh;exports.mergeAxisConfig=Jk;exports.pivotData=Lx;exports.postRequest=Ez;exports.postRequestRegular=eo;exports.prepareFeedbackData=VS;exports.remarkGfm=xJ;exports.removeFromScopeArray=nXe;exports.removeRing=Sc;exports.resolveDataType=jT;exports.resolveDatamodelName=gz;exports.sanitizeAIScope=Ree;exports.setupEditorWithCard=vY;exports.showJoinRequiredNotification=TU;exports.sortByColumnsToSortState=eG;exports.sortStateToSortByColumns=tG;exports.sortableKeyboardCoordinates=qR;exports.titleCase=lb;exports.toTitleCase=pi;exports.ue=ze;exports.useAIActions=WC;exports.useAIInteractionStore=la;exports.useActiveExports=nCe;exports.useActiveToolStatus=Uee;exports.useAddNewFrame=nX;exports.useAssignFilter=Jee;exports.useAssistantContainer=Mq;exports.useAssistantLayoutStore=Od;exports.useAssistantPanel=_q;exports.useAssistantProfile=Pee;exports.useAutoScroll=Vee;exports.useAutoSubmitQueue=Bee;exports.useCallbackRef=qr;exports.useCard=J1e;exports.useCardFilterValues=gC;exports.useChat=Iee;exports.useColumns=kD;exports.useCreateVisualWithFrame=Lde;exports.useCurrentAIContext=dp;exports.useCurrentActiveCard=Sz;exports.useCurrentCardConfig=Nz;exports.useCurrentSheetActiveCards=jz;exports.useCurrentUserInfo=Ps;exports.useCustomVisual=ly;exports.useCustomVisualsQuery=OR;exports.useDashboardActions=Wt;exports.useDashboardById=F7;exports.useDashboardCardQuery=Ha;exports.useDashboardCreation=z7;exports.useDashboardManagement=L7;exports.useDashboardPreferences=Hm;exports.useDashboardQuery=L1;exports.useDashboardStore=J;exports.useDataColumns=AU;exports.useDateFilterHook=UAe;exports.useDebounce=Ih;exports.useDefaultDashboardMutation=g7;exports.useDisplayPreferences=wu;exports.useDroppable=NX;exports.useEditorActions=cr;exports.useEditorAside=YS;exports.useEditorStore=Ae;exports.useEnsureReactGlobals=GG;exports.useExportActions=OU;exports.useExportStore=IC;exports.useFieldManagement=Zee;exports.useFileActions=QD;exports.useFileAttachments=XD;exports.useFullscreenAssistant=Tq;exports.useGroupMembers=hSe;exports.useGroups=HD;exports.useHasDashboardId=Rq;exports.useInProgressExportsCount=rCe;exports.useIsDashboardSelected=Roe;exports.useIsVisualSelected=Aoe;exports.useJoinabilityMap=OA;exports.useLayoutEffect2=Yr;exports.useManagementActions=Cx;exports.useManagementStore=hs;exports.useMessageWindow=Hee;exports.useMutation=ia;exports.usePivotTableConfig=hp;exports.usePluginQuery=tX;exports.usePromoteCalculatedMetricToDomain=gte;exports.useQuery=En;exports.useQueryClient=so;exports.useQueueActions=fp;exports.useResourceManagement=iC;exports.useResourceUpdateState=$7;exports.useScopedFields=PA;exports.useSelectedVisual=Ioe;exports.useSemaphorContext=Xe;exports.useSensor=Tm;exports.useSensors=NS;exports.useSortable=Ey;exports.useStarredChartsStore=Dte;exports.useSyncLegacyEditorState=yte;exports.useTextFilterHook=XAe;exports.useTheme=Rm;exports.useTopoJson=NU;exports.useUnifiedUsers=VD;exports.useUpdateResource=R7;exports.useUpdateVisualMutation=zde;exports.useUserPreferences=cB;exports.useVisualById=TM;exports.useVisualManagement=$de;exports.v4=Rr;exports.validateFieldForChartType=Gee;exports.verticalListSortingStrategy=WR;