1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},s=(new e.Error).stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="daf5b5d0-78e9-4254-8d2f-20a6fa712b97",e._sentryDebugIdIdentifier="sentry-dbid-daf5b5d0-78e9-4254-8d2f-20a6fa712b97")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2192],{7569:(e,s,a)=>{a.d(s,{p:()=>n});var t=a(63986),r=a(16346),i=a(85863);let n=(0,r.forwardRef)((e,s)=>{let{className:a,label:r,helperText:n,error:l,id:c,...d}=e,o=c||(null==r?void 0:r.toLowerCase().replace(/\s+/g,"-")),x=n?"".concat(o,"-help"):void 0,m=l?"".concat(o,"-error"):void 0,u=[m,x].filter(Boolean).join(" ")||void 0;return(0,t.jsxs)("div",{className:"space-y-1.5",children:[r&&(0,t.jsx)("label",{htmlFor:o,className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:r}),(0,t.jsx)("input",{id:o,ref:s,"aria-invalid":!!l||void 0,"aria-describedby":u,className:(0,i.cn)("w-full h-11 px-3 py-2 rounded-lg border text-base transition-all","bg-white dark:bg-brand-bg-card text-gray-900 dark:text-white","placeholder:text-gray-400 dark:placeholder:text-gray-500","focus:outline-none focus:ring-2 focus:ring-offset-0",l?"border-status-error focus:ring-status-error/20 focus:border-status-error":"border-gray-300 dark:border-brand-border focus:ring-[rgba(6,182,212,0.2)] focus:border-[#06b6d4]",d.disabled&&"bg-gray-100 dark:bg-[#252542] text-gray-500 dark:text-gray-600 cursor-not-allowed",d.readOnly&&"bg-gray-50 dark:bg-[#252542] text-gray-700 dark:text-gray-300","min-w-0",a),...d}),(n||l)&&(0,t.jsx)("p",{id:l?m:n?x:void 0,className:(0,i.cn)("text-xs",l?"text-status-error":"text-gray-500 dark:text-brand-text-secondary"),children:l||n})]})});n.displayName="Input"},12192:(e,s,a)=>{a.r(s),a.d(s,{default:()=>A});var t=a(63986),r=a(23432),i=a(38007),n=a(87141),l=a(7569),c=a(91311),d=a(35783),o=a(7680),x=a(98667),m=a(66982),u=a(11071),h=a(24185),j=a(76130),p=a(59748),g=a(17712),f=a(10547),y=a(80172),v=a(93607),b=a(16346),N=a(67642),k=a(15226);function A(){let[e,s]=(0,b.useState)([]),[a,A]=(0,b.useState)(!0),[w,C]=(0,b.useState)(null),{toast:I}=(0,o.d)(),[z,L]=(0,b.useState)(!1),[E,J]=(0,b.useState)(!1),[S,F]=(0,b.useState)({instanceUrl:"",email:"",apiToken:"",defaultProject:""}),[P,R]=(0,b.useState)({apiKey:"",defaultTeamId:""}),[T,D]=(0,b.useState)([]),[_,H]=(0,b.useState)([]);(0,b.useEffect)(()=>{$()},[]);let $=async()=>{try{A(!0);let e=(await k.FH.get("/bug-tracking/integrations")).data;s(e.data||[])}catch(e){console.error("Failed to fetch integrations:",e)}finally{A(!1)}},K=async()=>{if(!S.instanceUrl||!S.email||!S.apiToken)return void I({title:"Missing Fields",description:"Please fill in all required fields",variant:"destructive"});C("JIRA");try{let e=(await k.FH.post("/bug-tracking/jira/connect",S)).data;I({title:"Connected",description:"Connected to Jira as ".concat(e.data.user)}),L(!1),F({instanceUrl:"",email:"",apiToken:"",defaultProject:""}),$()}catch(a){var e,s;I({title:"Connection Failed",description:(null==(s=a.response)||null==(e=s.data)?void 0:e.error)||"Failed to connect to Jira",variant:"destructive"})}finally{C(null)}},M=async()=>{if(!P.apiKey)return void I({title:"Missing API Key",description:"Please enter your Linear API key",variant:"destructive"});C("LINEAR");try{let e=(await k.FH.post("/bug-tracking/linear/connect",P)).data;I({title:"Connected",description:"Connected to Linear as ".concat(e.data.user)}),J(!1),R({apiKey:"",defaultTeamId:""}),$()}catch(a){var e,s;I({title:"Connection Failed",description:(null==(s=a.response)||null==(e=s.data)?void 0:e.error)||"Failed to connect to Linear",variant:"destructive"})}finally{C(null)}},U=async e=>{if(confirm("Are you sure you want to disconnect ".concat(e,"?")))try{await k.FH.delete("/bug-tracking/".concat(e.toLowerCase(),"/disconnect")),I({title:"Disconnected",description:"".concat(e," has been disconnected")}),$()}catch(e){I({title:"Error",description:"Failed to disconnect",variant:"destructive"})}},B=async e=>{try{await k.FH.put("/bug-tracking/".concat(e.provider.toLowerCase(),"/settings"),{autoCreateIssues:!e.autoCreateIssues}),$()}catch(e){I({title:"Error",description:"Failed to update settings",variant:"destructive"})}},q=e.find(e=>"JIRA"===e.provider),V=e.find(e=>"LINEAR"===e.provider);return a?(0,t.jsx)(N.GV,{title:"Bug Tracking",children:(0,t.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,t.jsx)(x.A,{className:"animate-spin text-gray-400",size:32})})}):(0,t.jsx)(N.GV,{title:"Bug Tracking",children:(0,t.jsxs)("div",{className:"max-w-4xl mx-auto
1space-y-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("div",{className:"p-3 bg-purple-100 dark:bg-purple-900/30 rounded-xl",children:(0,t.jsx)(m.A,{size:24,className:"text-purple-600"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Bug Tracking Integrations"}),(0,t.jsx)("p",{className:"text-gray-500 dark:text-white/60",children:"Connect Jira or Linear to create issues from feedback and tickets"})]})]}),(0,t.jsxs)(i.$,{variant:"outline",onClick:$,children:[(0,t.jsx)(u.A,{size:16,className:"mr-2"}),"Refresh"]})]}),(0,t.jsx)(n.Zp,{children:(0,t.jsxs)(n.Wu,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"w-10 h-10 bg-status-info-100 dark:bg-status-info-900/30 rounded-lg flex items-center justify-center",children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"w-6 h-6 text-status-info-600",children:(0,t.jsx)("path",{fill:"currentColor",d:"M11.571 11.513H0a5.218 5.218 0 0 0 5.232 5.215h2.13v2.057A5.215 5.215 0 0 0 12.575 24V12.518a1.005 1.005 0 0 0-1.005-1.005zm5.723-5.756H5.736a5.215 5.215 0 0 0 5.215 5.214h2.129v2.058a5.218 5.218 0 0 0 5.215 5.214V6.758a1.001 1.001 0 0 0-1.001-1.001zM23 0H11.429a5.218 5.218 0 0 0 5.215 5.215h2.129v2.057A5.215 5.215 0 0 0 23.988 12.5V1.005A1.005 1.005 0 0 0 23 0z"})})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"font-semibold text-gray-900 dark:text-white",children:"Jira"}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Atlassian Jira Cloud or Server"})]})]}),q?(0,t.jsx)(r.E,{variant:q.isActive?"default":"outline",children:q.isActive?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.A,{size:14,className:"mr-1"}),"Connected"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.A,{size:14,className:"mr-1"}),"Inactive"]})}):(0,t.jsx)(r.E,{variant:"outline",children:"Not Connected"})]}),q?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 bg-gray-50 dark:bg-brand-bg-secondary rounded-lg",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Instance"}),(0,t.jsx)("p",{className:"font-medium",children:q.instanceUrl})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Project"}),(0,t.jsx)("p",{className:"font-medium",children:q.projectName||q.defaultProject||"Not set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Last Sync"}),(0,t.jsx)("p",{className:"font-medium",children:q.lastSyncAt?new Date(q.lastSyncAt).toLocaleDateString():"Never"})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(d.d,{checked:q.autoCreateIssues,onCheckedChange:()=>B(q)}),(0,t.jsx)(c.J,{children:"Auto-create issues from feedback"})]}),(0,t.jsxs)(i.$,{variant:"danger",size:"sm",onClick:()=>U("JIRA"),children:[(0,t.jsx)(p.A,{size:14,className:"mr-2"}),"Disconnect"]})]}),q.syncError&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-status-error-50 dark:bg-status-error-900/20 text-status-error-700 dark:text-status-error-400 rounded-lg",children:[(0,t.jsx)(g.A,{size:16}),(0,t.jsx)("span",{className:"text-sm",children:q.syncError})]})]}):z?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(c.J,{children:"Instance URL"}),(0,t.jsx)(l.p,{placeholder:"https://yourcompany.atlassian.net",value:S.instanceUrl,onChange:e=>F({...S,instanceUrl:e.target.value})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(c.J,{children:"Email"}),(0,t.jsx)(l.p,{type:"email",placeholder:"[email protected]",value:S.email,onChange:e=>F({...S,email:e.target.value})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(c.J,{children:"API Token"}),(0,t.jsx)(l.p,{type:"password",placeholder:"Your Jira API token",value:S.apiToken,onChange:e=>F({...S,apiToken:e.target.value})}),(0,t.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["Generate an API token at"," ",(0,t.jsxs)("a",{href:"https://id.atlassian.com/manage-profile/security/api-tokens",target:"_blank",rel:"noopener noreferrer",className:"text-status-info hover:underline",children:["Atlassian Account Settings",(0,t.jsx)(f.A,{size:12,className:"inline ml-1"})]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(c.J,{children:"Default Project (optional)"}),(0,t.jsx)(l.p,{placeholder:"PROJECT-KEY",value:S.defaultProject,onChange:e=>F({...S,defaultProject:e.target.value})})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsxs)(i.$,{onClick:K,disabled:"JIRA"===w,children:["JIRA"===w?(0,t.jsx)(x.A,{size:16,className:"mr-2 animate-spin"}):(0,t.jsx)(y.A,{size:16,className:"mr-2"}),"Connect Jira"]}),(0,t.jsx)(i.$,{variant:"outline",onClick:()=>L(!1),children:"Cancel"})]})]}):(0,t.jsxs)(i.$,{variant:"outline",onClick:()=>L(!0),children:[(0,t.jsx)(v.A,{size:16,className:"mr-2"}),"Connect Jira"]})]})}),(0,t.jsx)(n.Zp,{children:(0,t.jsxs)(n.Wu,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"w-10 h-10 bg-indigo-100 dark:bg-indigo-900/30 rounded-lg flex items-center justify-center",children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"w-6 h-6 text-indigo-600",children:(0,t.jsx)("path",{fill:"currentColor",d:"M2.5 10.5a8 8 0 1 0 16 0 8 8 0 0 0-16 0zm5.707-3.207a1 1 0 0 0-1.414 1.414l4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L10.5 11.586 8.207 9.293z"})})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"font-semibold text-gray-900 dark:text-white",children:"Linear"}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Modern issue tracking"})]})]}),V?(0,t.jsx)(r.E,{variant:V.isActive?"default":"outline",children:V.isActive?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.A,{size:14,className:"mr-1"}),"Connected"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.A,{size:14,className:"mr-1"}),"Inactive"]})}):(0,t.jsx)(r.E,{variant:"outline",children:"Not Connected"})]}),V?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 bg-gray-50 dark:bg-brand-bg-secondary rounded-lg",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Team"}),(0,t.jsx)("p",{className:"font-medium",children:V.projectName||V.defaultProject||"Not set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Last Sync"}),(0,t.jsx)("p",{className:"font-medium",children:V.lastSyncAt?new Date(V.lastSyncAt).toLocaleDateString():"Never"})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(d.d,{checked:V.autoCreateIssues,onCheckedChange:()=>B(V)}),(0,t.jsx)(c.J,{children:"Auto-create issues from feedback"})]}),(0,t.jsxs)(i.$,{variant:"danger",size:"sm",onClick:()=>U("LINEAR"),children:[(0,t.jsx)(p.A,{size:14,className:"mr-2"}),"Disconnect"]})]}),V.syncError&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-status-error-50 dark:bg-status-error-900/20 text-status-error-700 dark:text-status-error-400 rounded-lg",children:[(0,t.jsx)(g.A,{size:16}),(0,t.jsx)("span",{className:"text-sm",children:V.syncError})]})]}):E?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(c.J,{children:"API Key"}),(0,t.jsx)(l.p,{type:"password",placeholder:"lin_api_...",value:P.apiKey,onChange:e=>R({...P,apiKey:e.target.value})}),(0,t.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["Generate an API key at"," ",(0,t.jsxs)("a",{href:"https://linear.app/settings/api",target:"_blank",rel:"noopener noreferrer",className:"text-status-info hover:underline",children:["Linear Settings",(0,t.jsx)(f.A,{size:12,className:"inline ml-1"})]})]})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsxs)(i.$,{onClick:M,disabled:"LINEAR"===w,children:["LINEAR"===w?(0,t.jsx)(x.A,{size:16,className:"mr-2 animate-spin"}):(0,t.jsx)(y.A,{size:16,className:"mr-2"}),"Connect Linear"]}),(0,t.jsx)(i.$,{variant:"outline",onClick:()=>J(!1),children:"Cancel"})]})]}):(0,t.jsxs)(i.$,{variant:"outline",onClick:()=>J(!0),children:[(0,t.jsx)(v.A,{size:16,className:"mr-2"}),"Connect Linear"]})]})}),(0,t.jsx)(n.Zp,{children:(0,t.jsxs)(n.Wu,{className:"p-6",children:[(0,t.jsx)("h3",{className:"font-semibold text-gray-900 dark:text-white mb-3",children:"How It Works"}),(0,t.jsxs)("ul",{className:"space-y-2 text-sm text-gray-600 dark:text-white/60",children:[(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)(h.A,{size:16,className:"text-status-success mt-0.5 flex-shrink-0"}),"Create issues directly from support tickets, feedback, and escalations"]}),(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)(h.A,{size:16,className:"text-status-success mt-0.5 flex-shrink-0"}),"Enable auto-create to automatically create issues when feedback is received"]}),(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)(h.A,{size:16,className:"text-status-success mt-0.5 flex-shrink-0"}),"Linked issues are tracked and synced for status updates"]}),(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)(h.A,{size:16,className:"text-status-success mt-0.5 flex-shrink-0"}),"Issue links appear on tickets, feedback, and escalations for quick reference"]})]})]})})]})})}},35783:(e,s,a)=>{a.d(s,{d:()=>n});var t=a(63986),r=a(16346),i=a(85863);let n=(0,r.forwardRef)((e,s)=>{let{className:a,label:n,description:l,error:c,id:d,disabled:o,checked:x,onCheckedChange:m,onChange:u,...h}=e,j=(0,r.useId)(),p=d||j,g=l?"".concat(p,"-help"):void 0,f=c?"".concat(p,"-error"):void 0,y=[f,g].filter(
1Boolean).join(" ")||void 0;return(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)("label",{htmlFor:p,className:(0,i.cn)("inline-flex items-center gap-3 cursor-pointer group",o&&"cursor-not-allowed opacity-50",a),children:[(0,t.jsxs)("div",{className:"relative inline-flex items-center",children:[(0,t.jsx)("input",{type:"checkbox",ref:s,id:p,checked:x,disabled:o,"aria-invalid":!!c||void 0,"aria-describedby":y,className:"peer sr-only",role:"switch","aria-checked":x,onChange:e=>{null==u||u(e),null==m||m(e.target.checked)},...h}),(0,t.jsx)("div",{className:(0,i.cn)("relative h-6 w-11 rounded-full transition-colors duration-200 ease-in-out","peer-focus-visible:ring-2 peer-focus-visible:ring-brand-cyan peer-focus-visible:ring-offset-2",x?"bg-brand-cyan":"bg-gray-300 dark:bg-brand-border",c&&"ring-2 ring-status-error",o&&"opacity-50 cursor-not-allowed"),children:(0,t.jsx)("div",{className:(0,i.cn)("absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow-sm transition-transform duration-200 ease-in-out",x?"translate-x-5":"translate-x-0")})})]}),(n||l)&&(0,t.jsxs)("div",{className:"flex flex-col",children:[n&&(0,t.jsx)("span",{className:(0,i.cn)("text-sm font-medium text-gray-900 dark:text-white",o&&"text-gray-500"),children:n}),l&&(0,t.jsx)("span",{className:"text-xs text-gray-500 dark:text-brand-text-secondary",children:l})]})]}),c&&(0,t.jsx)("p",{id:f,className:"text-xs text-status-error",children:c})]})});n.displayName="Switch"},59748:(e,s,a)=>{a.d(s,{A:()=>t});let t=(0,a(58802).A)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]])},76130:(e,s,a)=>{a.d(s,{A:()=>t});let t=(0,a(58802).A)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},80172:(e,s,a)=>{a.d(s,{A:()=>t});let t=(0,a(58802).A)("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]])},91311:(e,s,a)=>{a.d(s,{J:()=>n});var t=a(63986),r=a(16346),i=a(85863);let n=(0,r.forwardRef)((e,s)=>{let{className:a,required:r,error:n,children:l,...c}=e;return(0,t.jsxs)("label",{ref:s,className:(0,i.cn)("block text-sm font-medium",n?"text-status-error-600 dark:text-status-error-400":"text-gray-700 dark:text-gray-300",a),...c,children:[l,r&&(0,t.jsx)("span",{className:"ml-1 text-status-error",children:"*"})]})});n.displayName="Label"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.