PageSourceSearch

http://parisobs.com/_next/static/chunks/pages/project/[projectId]/users-8a83c16d3711ecff.js

js parisobs.com collected 2026-10-04 01:41:31 UTC 22,286 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[773],{4995:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(22222).A)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]])},8275:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>E});var s=r(73154),a=r(39156),n=r(96810),l=r(6300),o=r(34283),i=r(17663),d=r(26680),c=r(84750),u=r(64802),m=r(76649),f=r(55803),p=r(93367),h=r(67005),x=r(45596),v=r(13528),g=r(53226),y=r(8277),b=r(63748),j=r(26159),w=r(25231),N=r(68048);function k(){return(0,s.jsx)(w.S,{title:"You aren't tracking users yet",description:"Once you add a user ID to your traces, you can correlate costs, evaluations and other LLM Application metrics to better understand how they interact with your LLM applications.",videoSrc:"https://static.langfuse.com/prod-assets/onboarding/users-overview-v1.mp4","data-sentry-element":"SplashScreen","data-sentry-component":"UsersOnboarding","data-sentry-source-file":"UsersOnboarding.tsx",children:(0,s.jsxs)("div",{className:"mt-8",children:[(0,s.jsx)("h3",{className:"mb-4 text-2xl font-semibold",children:"Start tracking users"}),(0,s.jsxs)("p",{className:"mb-4 text-sm text-muted-foreground",children:["To start tracking users, you need to add a ",(0,s.jsx)("code",{children:"userId"})," to your traces."]}),(0,s.jsx)(N.r,{href:"https://langfuse.com/docs/observability/features/users",variant:"default","data-sentry-element":"ActionButton","data-sentry-source-file":"UsersOnboarding.tsx",children:"Read the docs"})]})})}var T=r(60835),C=r(67716);function E(){let e=(0,a.useRouter)().query.projectId,{isBetaEnabled:t}=(0,f.I)(),{data:r,isLoading:n}=p.FH.users.hasAny.useQuery({projectId:e},{enabled:!!e&&!t,trpc:{context:{skipBatch:!0}},refetchInterval:1e4}),{data:l,isLoading:o}=p.FH.users.hasAnyFromEvents.useQuery({projectId:e},{enabled:!!e&&t,trpc:{context:{skipBatch:!0}},refetchInterval:1e4}),i=t?l:r,d=!(t?o:n)&&!i;return(0,s.jsx)(j.A,{headerProps:{title:"Users",help:{description:(0,s.jsxs)(s.Fragment,{children:["Attribute data in Langfuse to a user by adding a userId to your traces. See"," ",(0,s.jsx)("a",{href:"https://langfuse.com/docs/observability/features/users",target:"_blank",rel:"noopener noreferrer",className:"underline decoration-primary/30 hover:decoration-primary",onClick:e=>e.stopPropagation(),children:"docs"})," ","to learn more."]}),href:"https://langfuse.com/docs/observability/features/users"}},scrollable:d,"data-sentry-element":"Page","data-sentry-component":"UsersPage","data-sentry-source-file":"users.tsx",children:d?(0,s.jsx)(k,{}):(0,s.jsx)(S,{isBetaEnabled:t})})}let S=e=>{var t,r,f,j,w,N,k,E,S;let{isBetaEnabled:F}=e,I=(0,a.useRouter)().query.projectId,[R,L]=(0,u.p)([],"users",I),{setDetailPageList:A}=(0,m.h)(),[P,D]=(0,l.useQueryParams)({pageIndex:(0,l.withDefault)(l.NumberParam,0),pageSize:(0,l.withDefault)(l.NumberParam,50)}),{timeRange:z,setTimeRange:_}=(0,g.p)(I),O=(0,n.useMemo)(()=>{var e;return null!=(e=(0,y.b5)(z))?e:void 0},[z]),Q=O?[{column:"Timestamp",type:"datetime",operator:">=",value:O.from},{column:"Timestamp",type:"datetime",operator:"<=",value:O.to}]:[],V=(null==(t=p.FH.projects.environmentFilterOptions.useQuery({projectId:I,fromTimestamp:null==O?void 0:O.from},{trpc:{context:{skipBatch:!0}},refetchOnMount:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1,staleTime:1/0}).data)?void 0:t.map(e=>e.environment))||[],{selectedEnvironments:M,setSelectedEnvironments:U}=(0,T.T)(V,I),H=(0,T.k)(["environment"],M),K=R.concat(Q,H),[B,X]=(0,l.useQueryParam)("search",(0,l.withDefault)(l.StringParam,null)),q=p.FH.users.all.useQuery({filter:K,page:P.pageIndex,limit:P.pageSize,projectId:I,searchQuery:null!=B?B:void 0},{enabled:!F}),G=p.FH.users.metrics.useQuery({projectId:I,userIds:null!=(E=null==(r=q.data)?void 0:r.users.map(e=>e.userId))?E:[],filter:K},{enabled:q.isSuccess&&!F,trpc:{context:{skipBatch:!0}}}),J=p.FH.users.allFromEvents.useQuery({filter:K,page:P.pageIndex,limit:P.pageSize,projectId:I,searchQuery:null!=B?B:void 0},{enabled:F}),W=p.FH.users.metricsFromEvents.useQuery({projectId:I,userIds:null!=(S=null==(f=J.data)?void 0:f.users.map(e=>
1e.userId))?S:[],filter:K},{enabled:J.isSuccess&&F,trpc:{context:{skipBatch:!0}}}),Y=F?J:q,Z=F?W:G,$=(0,v.s)(null==(j=Y.data)?void 0:j.users.map(e=>({...e,id:e.userId})),null==(w=Z.data)?void 0:w.map(e=>({...e,id:e.userId}))),ee=(null==(N=Y.data)?void 0:N.totalUsers)?Number(Y.data.totalUsers):null;(0,n.useEffect)(()=>{Y.isSuccess&&A("users",Y.data.users.map(e=>({id:encodeURIComponent(e.userId)})))},[Y.isSuccess,Y.data]);let et=[{accessorKey:"userId",enableColumnFilter:!0,header:"User ID",headerTooltip:{description:"The unique identifier for the user that was logged in Langfuse. See docs for more details on how to set this up.",href:"https://langfuse.com/docs/observability/features/users"},size:150,cell:e=>{let{row:t}=e,r=t.getValue("userId");return"string"==typeof r?(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(d.A,{path:"/project/".concat(I,"/users/").concat(encodeURIComponent(r)),value:r})}):void 0}},{accessorKey:"environment",header:"Environment",id:"environment",size:150,enableHiding:!0,cell:e=>{let{row:t}=e,r=t.getValue("environment");return r?(0,s.jsx)(C.E,{variant:"secondary",className:"max-w-fit truncate rounded-sm px-1 font-normal",children:r}):null}},{accessorKey:"firstEvent",header:"First Event",headerTooltip:{description:"The earliest trace recorded for this user."},size:150,cell:e=>{let{row:t}=e,r=t.getValue("firstEvent");return Z.isSuccess?"string"==typeof r?r:void 0:(0,s.jsx)(c.E,{className:"h-3 w-1/2"})}},{accessorKey:"lastEvent",header:"Last Event",headerTooltip:{description:"The latest trace recorded for this user."},size:150,cell:e=>{let{row:t}=e,r=t.getValue("lastEvent");return Z.isSuccess?"string"==typeof r?r:void 0:(0,s.jsx)(c.E,{className:"h-3 w-1/2"})}},{accessorKey:"totalEvents",header:"Total Events",headerTooltip:{description:"Total number of events for the user, includes traces and observations. See data model for more details.",href:"https://langfuse.com/docs/observability/data-model"},size:120,cell:e=>{let{row:t}=e,r=t.getValue("totalEvents");return Z.isSuccess?"string"==typeof r?r:void 0:(0,s.jsx)(c.E,{className:"h-3 w-1/2"})}},{accessorKey:"totalTokens",header:"Total Tokens",headerTooltip:{description:"Total number of tokens used for the user across all generations.",href:"https://langfuse.com/docs/model-usage-and-cost"},size:120,cell:e=>{let{row:t}=e,r=t.getValue("totalTokens");return Z.isSuccess?"string"==typeof r?r:void 0:(0,s.jsx)(c.E,{className:"h-3 w-1/2"})}},{accessorKey:"totalCost",header:"Total Cost",headerTooltip:{description:"Total cost for the user across all generations.",href:"https://langfuse.com/docs/model-usage-and-cost"},size:120,cell:e=>{let{row:t}=e,r=t.getValue("totalCost");return Z.isSuccess?"string"==typeof r?r:void 0:(0,s.jsx)(c.E,{className:"h-3 w-1/2"})}}];return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.w,{filterColumnDefinition:x.usersTableCols,filterState:R,setFilterState:(0,b.d)(L),columns:et,timeRange:z,setTimeRange:_,searchConfig:{metadataSearchFields:["User ID"],updateQuery:X,currentQuery:null!=B?B:void 0,tableAllowsFullTextSearch:!1,setSearchType:void 0,searchType:void 0},environmentFilter:{values:M,onValueChange:U,options:V.map(e=>({value:e}))},"data-sentry-element":"DataTableToolbar","data-sentry-source-file":"users.tsx"}),(0,s.jsx)(i.b,{tableName:"users",columns:et,data:Y.isLoading?{isLoading:!0,isError:!1}:Y.isError?{isLoading:!1,isError:!0,error:Y.error.message}:{isLoading:!1,isError:!1,data:null==(k=$.rows)?void 0:k.map(e=>{var t,r,s,a,n,l,o,i,d,c;return{userId:e.id,environment:null!=(s=e.environment)?s:void 0,firstEvent:null!=(a=null==(t=e.firstTrace)?void 0:t.toLocaleString())?a:"No event yet",lastEvent:null!=(n=null==(r=e.lastTrace)?void 0:r.toLocaleString())?n:"No event yet",totalEvents:(0,h.zo)(F?Number(null!=(l=e.totalObservations)?l:0):Number(null!=(o=e.totalTraces)?o:0)+Number(null!=(i=e.totalObservations)?i:0)),totalTokens:(0,h.zo)(null!=(d=e.totalTokens)?d:0),totalCost:(0,h.hp)(null!=(c=e.sumCalculatedTotalCost)?c:0,2,2)}})},pagination:{totalCount:ee,onChange:D,state:P},"data-sentry-element":"DataTable","data-sentry-source-file":"users.tsx"})]})}},10873:(e,t,r)=>{"use strict";r.d(t,{C5:()=>g,MJ:()=>x,Rr:()=>v,eI:()=>p,lR:()=>h,lV:()=>d,zB:()=>u});var s=r(73154),a=r(96810),n=r(4226),l=r(17020),o=r(81509),i=r(70883);let d=l.Op,c=a.createContext({}),u=e=>{let{...t}=e;return(0,s.jsx)(c.Provider,{value:{name:t.name},"data-sentry-element":"FormFieldContext.Provider","data-sentry-component":"FormField","data-sentry-source-file":"form.tsx",children:(0,s.jsx)(l.xI,{...t,"data-sentry-element":"Controller","data-sentry-source-file":"form.tsx"})})},m=()=>{let e=a.useContext(c),t=a.useContext(f),{getFieldState:r,formState:s}=(0,l.xW)(),n=r(e.name,s);if(!e)throw Error("useFormField should be used within <FormField>");let{id:o}=t;return{id:o,name:e.name,formItemId:"".concat(o,"-form-item"),formDescriptionId:"".concat(o,"-form-item-description"),formMessageId:"".concat(o,"-form-item-message"),...n}},f=a.createContext({}),p=a.forwardRef((e,t)=>
1{let{className:r,...n}=e,l=a.useId();return(0,s.jsx)(f.Provider,{value:{id:l},children:(0,s.jsx)("div",{ref:t,className:(0,o.cn)("space-y-2",r),...n})})});p.displayName="FormItem";let h=a.forwardRef((e,t)=>{let{className:r,...a}=e,{error:n,formItemId:l}=m();return(0,s.jsx)(i.J,{ref:t,className:(0,o.cn)(n&&"text-destructive",r),htmlFor:l,...a})});h.displayName="FormLabel";let x=a.forwardRef((e,t)=>{let{...r}=e,{error:a,formItemId:l,formDescriptionId:o,formMessageId:i}=m();return(0,s.jsx)(n.DX,{ref:t,id:l,"aria-describedby":a?"".concat(o," ").concat(i):o,"aria-invalid":!!a,...r})});x.displayName="FormControl";let v=a.forwardRef((e,t)=>{let{className:r,...a}=e,{formDescriptionId:n}=m();return(0,s.jsx)("p",{ref:t,id:n,className:(0,o.cn)("text-sm text-muted-foreground",r),...a})});v.displayName="FormDescription";let g=a.forwardRef((e,t)=>{let{className:r,children:a,...n}=e,{error:l,formMessageId:i}=m(),d=l?String(l.message):a;return d?(0,s.jsx)("p",{ref:t,id:i,className:(0,o.cn)("text-sm font-medium text-destructive",r),...n,children:d}):null});g.displayName="FormMessage"},12953:(e,t,r)=>{"use strict";r.d(t,{C1:()=>N,bL:()=>j});var s=r(96810),a=r(92905),n=r(80111),l=r(29950),o=r(11810),i=r(41434),d=r(7954),c=r(7737),u=r(99297),m=r(73154),f="Checkbox",[p,h]=(0,n.A)(f),[x,v]=p(f);function g(e){let{__scopeCheckbox:t,checked:r,children:a,defaultChecked:n,disabled:l,form:i,name:d,onCheckedChange:c,required:u,value:p="on",internal_do_not_use_render:h}=e,[v,g]=(0,o.i)({prop:r,defaultProp:n??!1,onChange:c,caller:f}),[y,b]=s.useState(null),[j,w]=s.useState(null),N=s.useRef(!1),k=!y||!!i||!!y.closest("form"),T={checked:v,disabled:l,setChecked:g,control:y,setControl:b,name:d,form:i,value:p,hasConsumerStoppedPropagationRef:N,required:u,defaultChecked:!C(n)&&n,isFormControl:k,bubbleInput:j,setBubbleInput:w};return(0,m.jsx)(x,{scope:t,...T,children:"function"==typeof h?h(T):a})}var y="CheckboxTrigger",b=s.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:r,...n},o)=>{let{control:i,value:d,disabled:c,checked:f,required:p,setControl:h,setChecked:x,hasConsumerStoppedPropagationRef:g,isFormControl:b,bubbleInput:j}=v(y,e),w=(0,a.s)(o,h),N=s.useRef(f);return s.useEffect(()=>{let e=i?.form;if(e){let t=()=>x(N.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[i,x]),(0,m.jsx)(u.sG.button,{type:"button",role:"checkbox","aria-checked":C(f)?"mixed":f,"aria-required":p,"data-state":E(f),"data-disabled":c?"":void 0,disabled:c,value:d,...n,ref:w,onKeyDown:(0,l.mK)(t,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,l.mK)(r,e=>{x(e=>!!C(e)||!e),j&&b&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})})});b.displayName=y;var j=s.forwardRef((e,t)=>{let{__scopeCheckbox:r,name:s,checked:a,defaultChecked:n,required:l,disabled:o,value:i,onCheckedChange:d,form:c,...u}=e;return(0,m.jsx)(g,{__scopeCheckbox:r,checked:a,defaultChecked:n,disabled:o,required:l,onCheckedChange:d,name:s,form:c,value:i,internal_do_not_use_render:({isFormControl:e})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(b,{...u,ref:t,__scopeCheckbox:r}),e&&(0,m.jsx)(T,{__scopeCheckbox:r})]})})});j.displayName=f;var w="CheckboxIndicator",N=s.forwardRef((e,t)=>{let{__scopeCheckbox:r,forceMount:s,...a}=e,n=v(w,r);return(0,m.jsx)(c.C,{present:s||C(n.checked)||!0===n.checked,children:(0,m.jsx)(u.sG.span,{"data-state":E(n.checked),"data-disabled":n.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});N.displayName=w;var k="CheckboxBubbleInput",T=s.forwardRef(({__scopeCheckbox:e,...t},r)=>{let{control:n,hasConsumerStoppedPropagationRef:l,checked:o,defaultChecked:c,required:f,disabled:p,name:h,value:x,form:g,bubbleInput:y,setBubbleInput:b}=v(k,e),j=(0,a.s)(r,b),w=(0,i.Z)(o),N=(0,d.X)(n);s.useEffect(()=>{if(!y)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!l.current;if(w!==o&&e){let r=new Event("click",{bubbles:t});y.indeterminate=C(o),e.call(y,!C(o)&&o),y.dispatchEvent(r)}},[y,w,o,l]);let T=s.useRef(!C(o)&&o);return(0,m.jsx)(u.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??T.current,required:f,disabled:p,name:h,value:x,form:g,...t,tabIndex:-1,ref:j,style:{...t.style,...N,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function C(e){return"indeterminate"===e}function E(e){return C(e)?"indeterminate":e?"checked":"unchecked"}T.displayName=k},13528:(e,t,r)=>{"use strict";function s(e,t){if(!e)return{status:"error",rows:void 0};if(!t)return{status:"success",rows:e.map(e=>({...e}))};let r=t.reduce((e,t)=>
1(e[t.id]=t,e),{});return{status:"success",rows:e.map(e=>{let t=r[e.id];return{...e,...null!=t?t:{}}})}}r.d(t,{s:()=>s})},25231:(e,t,r)=>{"use strict";r.d(t,{S:()=>m});var s=r(73154),a=r(96810),n=r(81509),l=r(80894),o=r.n(l),i=r(80263),d=r(68048),c=r(79071);function u(e){let{videoSrc:t}=e,[r,l]=(0,a.useState)(!1),[o,i]=(0,a.useState)(!1);return(0,s.jsx)("div",{className:(0,n.cn)("my-6 w-full max-w-3xl overflow-hidden rounded-lg border border-border",{hidden:!o||r}),"data-sentry-component":"VideoPlayer","data-sentry-source-file":"splash-screen.tsx",children:(0,s.jsx)("video",{src:t,controls:!0,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,controlsList:"nodownload",className:"w-full",onError:()=>l(!0),onLoadedData:()=>i(!0)})})}function m(e){let{title:t,description:r,image:a,videoSrc:l,valuePropositions:m=[],primaryAction:f,secondaryAction:p,gettingStarted:h,children:x}=e;return(0,s.jsxs)("div",{className:(0,n.cn)("mx-auto flex max-w-4xl flex-col items-center p-8"),"data-sentry-component":"SplashScreen","data-sentry-source-file":"splash-screen.tsx",children:[(0,s.jsxs)("div",{className:"mb-6 text-center",children:[(0,s.jsx)("h2",{className:"mb-2 text-2xl font-bold",children:t}),(0,s.jsx)("p",{className:"text-muted-foreground",children:r})]}),(0,s.jsxs)("div",{className:"mb-8 flex w-full flex-wrap justify-center gap-4",children:[f&&(f.component||(0,s.jsx)(d.r,{size:"lg",onClick:f.onClick,href:f.href,children:f.label})),p&&(p.component||(0,s.jsx)(d.r,{variant:"outline",size:"lg",onClick:p.onClick,href:p.href,children:p.label}))]}),h&&(0,s.jsxs)(c.Fc,{className:"w-full max-w-3xl",children:[(0,s.jsx)(i.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)(c.XL,{children:"Getting Started"}),(0,s.jsx)(c.TN,{children:h})]}),l&&(0,s.jsx)(u,{videoSrc:l}),!l&&a&&(0,s.jsx)("div",{className:"my-6 w-full max-w-3xl",children:(0,s.jsx)(o(),{src:a.src,alt:a.alt,width:a.width,height:a.height,className:"rounded-md"})}),x&&(0,s.jsx)("div",{className:"my-6 w-full max-w-3xl",children:x}),m.length>0&&(0,s.jsx)("div",{className:"my-6 grid w-full max-w-3xl grid-cols-1 gap-4 md:grid-cols-2",children:m.map((e,t)=>(0,s.jsxs)(c.Fc,{children:[e.icon,(0,s.jsx)(c.XL,{children:e.title}),(0,s.jsx)(c.TN,{children:e.description})]},t))})]})}},26159:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var s=r(73154),a=r(49757),n=r(81509);let l=e=>{let{children:t,headerProps:r,scrollable:l=!1,withPadding:o=!1}=e;return(0,s.jsxs)("div",{className:(0,n.cn)("flex flex-col",l?"relative flex min-h-screen-with-banner flex-1":"h-full"),id:"page","data-sentry-component":"Page","data-sentry-source-file":"page.tsx",children:[(0,s.jsx)("header",{className:"sticky top-0 z-50 w-full",children:(0,s.jsx)(a.A,{...r,container:!1,className:"top-0","data-sentry-element":"PageHeader","data-sentry-source-file":"page.tsx"})}),(0,s.jsx)("main",{className:(0,n.cn)("flex flex-1 flex-col",l?"relative flex min-h-screen-with-banner":"h-full overflow-hidden",o&&"p-3"),children:t})]})}},26680:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var s=r(73154),a=r(81509),n=r(68389),l=r.n(n);function o(e){let{path:t,value:r,icon:n,className:o,onClick:i,title:d}=e;return(0,s.jsx)(l(),{className:(0,a.cn)("inline-block max-w-full text-xs font-semibold text-accent-dark-blue hover:text-primary-accent/60",o,n&&"max-h-4"),href:t,title:d||r,prefetch:!1,onClick:e=>{i&&(e.preventDefault(),i(e))},"data-sentry-element":"Link","data-sentry-component":"TableLink","data-sentry-source-file":"table-link.tsx",children:(0,s.jsx)("span",{className:"inline-block max-w-full overflow-hidden text-ellipsis text-nowrap",children:n?(0,s.jsx)("span",{className:"inline-block",children:n}):r})})}},42661:(e,t,r)=>{"use strict";r.d(t,{e:()=>s});let s=async e=>{var t;return"function"==typeof(null==(t=navigator.clipboard)?void 0:t.writeText)?navigator.clipboard.writeText(e):(e=>{try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-9999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),document.body.removeChild(t)}catch(e){console.error("Unable to copy to clipboard",e)}})(e)}},53226:(e,t,r)=>{"use strict";r.d(t,{p:()=>o});var s=r(6300),a=r(8277),n=r(96810),l=r(77260);function o(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null!=(t=r.defaultRelativeAggregation)?t:"last1Day",[i,d]=(0,l.A)("tableDateRangeState-".concat(e),(0,a.qE)(o)),[c,u]=(0,s.useQueryParams)({dateRange:(0,s.withDefault)(s.StringParam,i)});return(0,n.useMemo)(()=>({timeRange:(0,a.JR)(c.dateRange,a.$g,o),setTimeRange:e=>{let t=(0,a.gG)(e);u({dateRange:t}),d(t)}}),[c.dateRange,o,u,d])}},71452:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var s=r(73154),a=r(96810),n=r(8872),l=r(90270),o=r(81509);let i=a.forwardRef((e,t)=>
1{var r,i;let{className:d,showInput:c,displayAsPercentage:u,decimalPlaces:m=2,...f}=e,[p,h]=a.useState("");a.useEffect(()=>{if(f.value&&f.value.length>0){let e=f.value[0];null!=e&&(u?h((100*e).toFixed(m)):h(e.toString()))}},[f.value,u,m]);let x=()=>{var e,t;let r=parseFloat(p);if(isNaN(r)){if(f.value&&f.value.length>0){let e=f.value[0];if(null==e)return;u?h((100*e).toFixed(m)):h(e.toString())}return}u&&(r/=100),r=Math.max(null!=(e=f.min)?e:0,Math.min(null!=(t=f.max)?t:100,r)),f.onValueChange&&f.onValueChange([r])},v=Array.isArray(f.value)?f.value:[null!=(r=f.min)?r:0,null!=(i=f.max)?i:100];return(0,s.jsxs)("div",{className:(0,o.cn)("flex items-center gap-4",d),children:[(0,s.jsxs)(n.bL,{ref:t,className:"relative flex w-full touch-none select-none items-center",...f,children:[(0,s.jsx)(n.CC,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:(0,s.jsx)(n.Q6,{className:(0,o.cn)("absolute h-full",f.disabled?"bg-input":"bg-primary")})}),v.map((e,t)=>(0,s.jsx)(n.zi,{className:(0,o.cn)("block h-4 w-4 rounded-full border-2 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",f.disabled?"border-secondary":"border-primary")},t))]}),c&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(l.p,{type:"text",value:p,onChange:e=>{h(e.target.value)},onBlur:x,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),x())},className:"w-20 text-right",disabled:f.disabled,min:u?f.min?100*f.min:0:f.min,max:u?f.max?100*f.max:100:f.max,"aria-label":"Slider value"}),u&&(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:"%"})]})]})});i.displayName=n.bL.displayName},79071:(e,t,r)=>{"use strict";r.d(t,{Fc:()=>i,TN:()=>c,XL:()=>d});var s=r(73154),a=r(96810),n=r(33616),l=r(81509);let o=(0,n.F)("relative w-full rounded-lg border p-3 [&>svg~*]:pl-6 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-3 [&>svg]:top-3 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),i=a.forwardRef((e,t)=>{let{className:r,variant:a,...n}=e;return(0,s.jsx)("div",{ref:t,role:"alert",className:(0,l.cn)(o({variant:a}),r),...n})});i.displayName="Alert";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("h5",{ref:t,className:(0,l.cn)("mb-1 font-medium leading-none tracking-tight",r),...a})});d.displayName="AlertTitle";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("text-sm [&_p]:leading-relaxed",r),...a})});c.displayName="AlertDescription"},80740:(e,t,r)=>{"use strict";r.d(t,{S:()=>i});var s=r(73154),a=r(96810),n=r(12953),l=r(92273),o=r(81509);let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(n.bL,{ref:t,className:(0,o.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:(0,s.jsx)(n.C1,{className:(0,o.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(l.A,{className:"h-4 w-4"})})})});i.displayName=n.bL.displayName},96123:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/project/[projectId]/users",function(){return r(8275)}])}},e=>{e.O(0,[202,9110,1454,531,7020,9225,9825,6694,8780,1857,2911,2896,7769,5895,894,540,9594,8252,2949,9348,636,6593,8792],()=>e(e.s=96123)),_N_E=e.O()}]);

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.