@brainfish-ai/components 0.33.0 → 0.34.0
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.
- package/dist/conversation.d.ts +55 -12
- package/dist/esm/chunks/{ChatSearch.EPCaUj3O.js → ChatSearch.D5EABw51.js} +2 -2
- package/dist/esm/chunks/{ChatSearch.EPCaUj3O.js.map → ChatSearch.D5EABw51.js.map} +1 -1
- package/dist/esm/chunks/Conversation.Dq66Znf4.js +33 -0
- package/dist/esm/chunks/Conversation.Dq66Znf4.js.map +1 -0
- package/dist/esm/chunks/{FormattedMessage.D_knqVl-.js → FormattedMessage.Djy5cn5F.js} +2 -2
- package/dist/esm/chunks/{FormattedMessage.D_knqVl-.js.map → FormattedMessage.Djy5cn5F.js.map} +1 -1
- package/dist/esm/chunks/ai-badge.Be0978vU.js +5 -0
- package/dist/esm/chunks/ai-badge.Be0978vU.js.map +1 -0
- package/dist/esm/chunks/{button.D_2SonNs.js → button.Cs1X8upM.js} +2 -2
- package/dist/esm/chunks/{button.D_2SonNs.js.map → button.Cs1X8upM.js.map} +1 -1
- package/dist/esm/chunks/{combobox.MyoPH18G.js → combobox.CLT9CXUV.js} +2 -2
- package/dist/esm/chunks/{combobox.MyoPH18G.js.map → combobox.CLT9CXUV.js.map} +1 -1
- package/dist/esm/chunks/{date-picker.C2VT_rZ9.js → date-picker.D9CRxYJf.js} +2 -2
- package/dist/esm/chunks/{date-picker.C2VT_rZ9.js.map → date-picker.D9CRxYJf.js.map} +1 -1
- package/dist/esm/chunks/{feedback.CLMuSvsg.js → feedback.CGFAP0XS.js} +2 -2
- package/dist/esm/chunks/{feedback.CLMuSvsg.js.map → feedback.CGFAP0XS.js.map} +1 -1
- package/dist/esm/chunks/{file-upload-status.D8RhMcbO.js → file-upload-status.ClQeoQQB.js} +2 -2
- package/dist/esm/chunks/{file-upload-status.D8RhMcbO.js.map → file-upload-status.ClQeoQQB.js.map} +1 -1
- package/dist/esm/chunks/{filters.BHp3ukNW.js → filters.BRlRsGlZ.js} +2 -2
- package/dist/esm/chunks/{filters.BHp3ukNW.js.map → filters.BRlRsGlZ.js.map} +1 -1
- package/dist/esm/chunks/{font-picker.B9GPXyK4.js → font-picker.Dwwe5av-.js} +2 -2
- package/dist/esm/chunks/{font-picker.B9GPXyK4.js.map → font-picker.Dwwe5av-.js.map} +1 -1
- package/dist/esm/chunks/header-nav.DR1jmsyS.js +11 -0
- package/dist/esm/chunks/header-nav.DR1jmsyS.js.map +1 -0
- package/dist/esm/chunks/{header-pane.eU7f_pim.js → header-pane.qjpYA99q.js} +2 -2
- package/dist/esm/chunks/{header-pane.eU7f_pim.js.map → header-pane.qjpYA99q.js.map} +1 -1
- package/dist/esm/chunks/index.Ca2JkOFO.js +2 -0
- package/dist/esm/chunks/index.Ca2JkOFO.js.map +1 -0
- package/dist/esm/chunks/{input-with-tags.DLv9e0XI.js → input-with-tags.pmOKv67d.js} +2 -2
- package/dist/esm/chunks/{input-with-tags.DLv9e0XI.js.map → input-with-tags.pmOKv67d.js.map} +1 -1
- package/dist/esm/chunks/{sidebar.CcFsNjrN.js → sidebar.BhcrMAU3.js} +8 -8
- package/dist/esm/chunks/{sidebar.CcFsNjrN.js.map → sidebar.BhcrMAU3.js.map} +1 -1
- package/dist/esm/chunks/{suggestion-card.D-AsG_yB.js → suggestion-card.TDn-dEc0.js} +2 -2
- package/dist/esm/chunks/{suggestion-card.D-AsG_yB.js.map → suggestion-card.TDn-dEc0.js.map} +1 -1
- package/dist/esm/chunks/{two-level-combobox.BVZfsNSN.js → two-level-combobox.SDv7qc_m.js} +2 -2
- package/dist/esm/chunks/{two-level-combobox.BVZfsNSN.js.map → two-level-combobox.SDv7qc_m.js.map} +1 -1
- package/dist/esm/components/article-suggestions-banner.js +1 -1
- package/dist/esm/components/articles-coverage.js +3 -3
- package/dist/esm/components/articles-updated.js +2 -2
- package/dist/esm/components/chat-search.js +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/conversation.js +1 -1
- package/dist/esm/components/convos.js +11 -11
- package/dist/esm/components/date-picker.js +1 -1
- package/dist/esm/components/feedback.js +1 -1
- package/dist/esm/components/file-upload.js +1 -1
- package/dist/esm/components/filter.js +1 -1
- package/dist/esm/components/font-picker.js +1 -1
- package/dist/esm/components/input-with-tags.js +1 -1
- package/dist/esm/components/markdown.js +1 -1
- package/dist/esm/components/two-level-combobox.js +1 -1
- package/dist/esm/components/ui/alert-dialog.js +1 -1
- package/dist/esm/components/ui/breadcrumb.js +1 -1
- package/dist/esm/components/ui/button-group.js +1 -1
- package/dist/esm/components/ui/button.js +1 -1
- package/dist/esm/components/ui/combobox.js +1 -1
- package/dist/esm/components/ui/dialog.js +3 -3
- package/dist/esm/components/ui/dialog.js.map +1 -1
- package/dist/esm/components/ui/div-button.js +1 -1
- package/dist/esm/components/ui/item.js +1 -1
- package/dist/esm/components/ui/sheet.js +1 -1
- package/dist/esm/components/ui/tooltip.js +3 -3
- package/dist/esm/components/ui/tooltip.js.map +1 -1
- package/dist/esm/global.css +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/layouts/full-layout.js +1 -1
- package/dist/esm/layouts/header-nav.js +1 -1
- package/dist/esm/layouts/sidebar.js +1 -1
- package/dist/esm/scenes/knowledge-review.js +1 -1
- package/dist/esm/tailwind.preset.js +1 -1
- package/dist/esm/tailwind.preset.js.map +1 -1
- package/dist/index.d.ts +55 -12
- package/dist/stats.html +1 -1
- package/package.json +7 -7
- package/tailwind.preset.ts +1 -1
- package/dist/esm/chunks/Conversation.C2TpUr4-.js +0 -29
- package/dist/esm/chunks/Conversation.C2TpUr4-.js.map +0 -1
- package/dist/esm/chunks/header-nav.DmlIUqml.js +0 -14
- package/dist/esm/chunks/header-nav.DmlIUqml.js.map +0 -1
- package/dist/esm/chunks/index.uF4ME3WQ.js +0 -4
- package/dist/esm/chunks/index.uF4ME3WQ.js.map +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import*as e from"react";import{Crown as t,Copy as a,SidebarSimple as l,Lightning as r,Question as n}from"@phosphor-icons/react";import{L as o}from"./logo.DtwFGMBj.js";import{B as s}from"./button.D_2SonNs.js";import{DropdownMenu as i,DropdownMenuTrigger as c,DropdownMenuContent as m,DropdownMenuSeparator as d,DropdownMenuGroup as p,DropdownMenuSub as u,DropdownMenuSubTrigger as f,DropdownMenuPortal as g,DropdownMenuSubContent as E,DropdownMenuRadioGroup as h,DropdownMenuRadioItem as b,DropdownMenuShortcut as x,DropdownMenuItem as v}from"../components/ui/dropdown-menu.js";import{Avatar as C,AvatarImage as k,AvatarFallback as w,AvatarBadge as y}from"../components/ui/avatar.js";import{c as N}from"./utils.C6Qu-kwd.js";import{u as _}from"./feature-flags.DOcVlPHk.js";import{A as B}from"./ai-logo.Bh2bhNcG.js";const A=e.forwardRef(({children:t,size:a=48,className:l,...r},n)=>{const o=e.useId(),s=e.useId();/* @__PURE__ */
|
|
2
|
-
return e.createElement("div",{ref:n,className:N("relative shrink-0",l),style:{width:a,height:a},...r},/* @__PURE__ */e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",inset:0,width:"100%",height:"100%"},viewBox:"0 0 25.2 25.2",fill:"none","aria-hidden":"true"},
|
|
3
|
-
/* @__PURE__ */e.createElement("path",{d:"M1.1687 5.09221C1.44983 3.03551 3.03409 1.43747 5.09056 1.15464C7.11115 0.876739 9.82098 0.6 12.6 0.6C15.3637 0.6 18.059 0.873703 20.076 1.15005C22.1498 1.43417 23.7418 3.05368 24.0222 5.12794C24.3077 7.23947 24.6 10.0294 24.6 12.6C24.6 15.1875 24.3038 17.9971 24.0166 20.1135C23.7379 22.1667 22.1732 23.7746 20.1207 24.0584C18.1434 24.3319 15.4723 24.6 12.6 24.6C9.71155 24.6 7.02648 24.3288 5.04597 24.0538C3.01073 23.7712 1.45383 22.185 1.17438 20.1493C0.890004 18.0777 0.6 15.3026 0.6 12.6C0.6 9.9154 0.886154 7.15926 1.1687 5.09221Z",fill:`url(#${o})`,stroke:`url(#${s})`,strokeOpacity:"0.7",strokeWidth:"1.2"}),
|
|
4
|
-
/* @__PURE__ */e.createElement("defs",null,/* @__PURE__ */e.createElement("linearGradient",{id:o,x1:"2.3931",y1:"0.6",x2:"17.282",y2:"22.5523",gradientUnits:"userSpaceOnUse"},/* @__PURE__ */e.createElement("stop",{offset:"0.0544031",stopColor:"#1868DB"}),/* @__PURE__ */e.createElement("stop",{offset:"0.5",stopColor:"#357DE8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.802885",stopColor:"#7EE2B8"}),/* @__PURE__ */e.createElement("stop",{offset:"1",stopColor:"#B4EE2B"})),/* @__PURE__ */e.createElement("linearGradient",{id:s,x1:"2.3931",y1:"0.6",x2:"17.282",y2:"22.5523",gradientUnits:"userSpaceOnUse"},/* @__PURE__ */e.createElement("stop",{stopColor:"#B4EE2B"}),/* @__PURE__ */e.createElement("stop",{offset:"0.266033",stopColor:"#7EE2B8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.740217",stopColor:"#357DE8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.945597",stopColor:"#1868DB"})))),/* @__PURE__ */e.createElement("span",{className:"absolute inset-[20%] [&>*]:h-full [&>*]:w-full",style:{filter:`drop-shadow(0px ${(.04*a).toFixed(2)}px ${(.05*a).toFixed(2)}px rgba(22,27,53,0.55))`}},t??/* @__PURE__ */e.createElement(B,{variant:"light"})))});function z({accountPhoto:l,accountName:r,accountDropdownItems:n,teams:o,side:_="bottom",align:B="end",isSuperAdmin:A=!1,...z}){const S=o?.length>1||A,D=S&&o?.find(e=>e.isCurrent)?.name||"",j=r[0],I=Array.isArray(n[0])?n:[n],O=e.useCallback((e,t)=>a=>{a.stopPropagation(),t?t(e):navigator.clipboard.writeText(e)},[]),T=(t,l,r)=>t&&/* @__PURE__ */e.createElement("div",{className:"flex w-full items-center gap-1 text-xs text-subtlest ml-7"},t,null!=l&&/* @__PURE__ */e.createElement(s,{variant:"ghost",size:"icon",className:"size-4 shrink-0 p-0 [&>svg]:!size-3",onClick:O(l,r),"aria-label":"Copy ID"},
|
|
5
|
-
/* @__PURE__ */e.createElement(a,{className:"size-3"})));/* @__PURE__ */
|
|
6
|
-
return e.createElement(i,{...z},/* @__PURE__ */e.createElement(c,{asChild:!0},/* @__PURE__ */e.createElement(s,{size:"default",variant:"ghost",className:"rounded-full p-[1px] border border-dark-300 relative","aria-label":"Toggle account dropdown"},
|
|
7
|
-
/* @__PURE__ */e.createElement(C,null,/* @__PURE__ */e.createElement(k,{src:l,alt:`${r}'s account`,className:N("block rounded-full border border-background",A&&"border-2 border-solid border-red-700 inset-1")}),/* @__PURE__ */e.createElement(w,null,j),A&&/* @__PURE__ */e.createElement(y,{className:"bg-red-700 text-white"},/* @__PURE__ */e.createElement(t,null))),S&&/* @__PURE__ */e.createElement("span",{className:"text-xs text-default font-semibold pr-1"},D))),/* @__PURE__ */e.createElement(m,{side:_,align:B,className:"border-none shadow-[2px_4px_12px_0px_rgba(0,0,0,0.14)] dark:shadow-[2px_4px_12px_0px_rgba(255,255,255,0.14)]"},I.map((t,a)=>/* @__PURE__ */e.createElement(e.Fragment,{key:a},a>0&&/* @__PURE__ */e.createElement(d,null),/* @__PURE__ */e.createElement(p,null,t.map(t=>"submenu"===t.type?/* @__PURE__ */e.createElement(u,{key:t.id},/* @__PURE__ */e.createElement(f,{secondaryRow:T(t.secondaryLabel,t.copyValue,t.onCopy)},t.icon,t.label),/* @__PURE__ */e.createElement(g,null,/* @__PURE__ */e.createElement(E,{className:"border-none shadow-[2px_4px_12px_0px_rgba(0,0,0,0.14)] dark:shadow-[2px_4px_12px_0px_rgba(255,255,255,0.14)]"},null!=t.value&&t.onValueChange?/* @__PURE__ */e.createElement(h,{value:t.value,onValueChange:t.onValueChange},t.items.map(t=>/* @__PURE__ */e.createElement(b,{key:t.id,value:t.value},t.icon,t.label,null!=t.shortcut&&/* @__PURE__ */e.createElement(x,null,t.shortcut)))):t.items.map(t=>/* @__PURE__ */e.createElement(v,{key:t.id,onClick:t.onClick},t.icon,t.label,null!=t.shortcut&&/* @__PURE__ */e.createElement(x,null,t.shortcut)))))):/* @__PURE__ */e.createElement(v,{key:t.id,onClick:t.onClick,secondaryRow:T(t.secondaryLabel,t.copyValue,t.onCopy)},t.icon,t.label,null!=t.shortcut&&/* @__PURE__ */e.createElement(x,null,t.shortcut))))))))}A.displayName="AIBadge";const S=60,D=e.forwardRef(function({className:t,isSideNavOpen:a=!1,onSideNavigationToggle:i,onHelpClick:c,onBrainfishNativeClick:m,accountName:d,accountPhoto:p,accountDropdownItems:u,teams:f,side:g,align:E,showSuggestionAction:h,suggestionAction:b,onSuggestionActionClick:x,onLogoNav:v,isHomePath:C=!1,showSidebarToggle:k=!0,sidebarToggleRef:w,isSuperAdmin:y,isViewer:B,...S},D){const j=h&&!!b&&!!x,I=_("platform.brainfish-native.enabled",!1),O=!B;/* @__PURE__ */
|
|
8
|
-
return e.createElement("header",{ref:D,...S,className:N("px-4 py-3 relative",t)},/* @__PURE__ */e.createElement("nav",{"aria-label":"Account navigation",className:"flex justify-between items-center"},/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-2"},/* @__PURE__ */e.createElement("a",{href:"/",onClick:e=>{!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&(e.preventDefault(),v())},"aria-current":C?"page":void 0},
|
|
9
|
-
/* @__PURE__ */e.createElement(o,{variant:"full",color:C?"fill":"outline",width:130,height:20,className:"hidden md:block"}),
|
|
10
|
-
/* @__PURE__ */e.createElement(o,{variant:"mark",color:C?"fill":"outline",width:37,height:20,className:"block md:hidden"})),k&&/* @__PURE__ */e.createElement(s,{ref:w,size:"icon",variant:"ghost","aria-label":"Toggle side navigation",className:"[&_svg]:size-6",onClick:i},
|
|
11
|
-
/* @__PURE__ */e.createElement(l,{"aria-hidden":"true",weight:a?"fill":"regular"}))),/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-4"},j&&/* @__PURE__ */e.createElement(s,{variant:"suggestion",onClick:x},/* @__PURE__ */e.createElement(r,{weight:"fill","aria-hidden":"true"})," ",b),I&&/* @__PURE__ */e.createElement("button",{type:"button","aria-label":"Open Ask Brainfish",className:"flex items-center gap-2 rounded border border-dark-300 bg-surface py-1 pl-1 pr-1.5 cursor-pointer hover:bg-dark-200 active:bg-dark-400 focus-visible:outline-none",onClick:m},
|
|
12
|
-
/* @__PURE__ */e.createElement(A,{size:24}),
|
|
13
|
-
/* @__PURE__ */e.createElement("span",{className:"text-xs font-normal text-dark-900 whitespace-nowrap"},"Ask Brainfish")),/* @__PURE__ */e.createElement(z,{accountName:d,accountPhoto:p,accountDropdownItems:u,teams:f,side:g,align:E,isSuperAdmin:y}),O&&/* @__PURE__ */e.createElement(s,{size:"icon",variant:"ghost","aria-label":"Open help",className:"[&_svg]:size-6 fixed z-10 bottom-1 left-1",onClick:c},/* @__PURE__ */e.createElement(n,{"aria-hidden":"true"})))))});export{S as H,D as a};
|
|
14
|
-
//# sourceMappingURL=header-nav.DmlIUqml.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header-nav.DmlIUqml.js","sources":["../../../src/components/ai-button/ai-badge.tsx","../../../src/layouts/header-nav/account-dropdown.tsx","../../../src/layouts/header-nav/header-nav.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { AILogo } from '@/components/logo/ai-logo';\n\nconst SQUIRCLE_PATH =\n 'M1.1687 5.09221C1.44983 3.03551 3.03409 1.43747 5.09056 1.15464C7.11115 0.876739 9.82098 0.6 12.6 0.6C15.3637 0.6 18.059 0.873703 20.076 1.15005C22.1498 1.43417 23.7418 3.05368 24.0222 5.12794C24.3077 7.23947 24.6 10.0294 24.6 12.6C24.6 15.1875 24.3038 17.9971 24.0166 20.1135C23.7379 22.1667 22.1732 23.7746 20.1207 24.0584C18.1434 24.3319 15.4723 24.6 12.6 24.6C9.71155 24.6 7.02648 24.3288 5.04597 24.0538C3.01073 23.7712 1.45383 22.185 1.17438 20.1493C0.890004 18.0777 0.6 15.3026 0.6 12.6C0.6 9.9154 0.886154 7.15926 1.1687 5.09221Z';\n\nexport interface AIBadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n size?: number;\n}\n\nexport const AIBadge = React.forwardRef<HTMLDivElement, AIBadgeProps>(\n ({ children, size = 48, className, ...props }, ref) => {\n const fillId = React.useId();\n const strokeId = React.useId();\n\n return (\n <div ref={ref} className={cn('relative shrink-0', className)} style={{ width: size, height: size }} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ position: 'absolute', inset: 0, width: '100%', height: '100%' }}\n viewBox=\"0 0 25.2 25.2\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d={SQUIRCLE_PATH}\n fill={`url(#${fillId})`}\n stroke={`url(#${strokeId})`}\n strokeOpacity=\"0.7\"\n strokeWidth=\"1.2\"\n />\n <defs>\n <linearGradient id={fillId} x1=\"2.3931\" y1=\"0.6\" x2=\"17.282\" y2=\"22.5523\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0544031\" stopColor=\"#1868DB\" />\n <stop offset=\"0.5\" stopColor=\"#357DE8\" />\n <stop offset=\"0.802885\" stopColor=\"#7EE2B8\" />\n <stop offset=\"1\" stopColor=\"#B4EE2B\" />\n </linearGradient>\n <linearGradient id={strokeId} x1=\"2.3931\" y1=\"0.6\" x2=\"17.282\" y2=\"22.5523\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#B4EE2B\" />\n <stop offset=\"0.266033\" stopColor=\"#7EE2B8\" />\n <stop offset=\"0.740217\" stopColor=\"#357DE8\" />\n <stop offset=\"0.945597\" stopColor=\"#1868DB\" />\n </linearGradient>\n </defs>\n </svg>\n <span\n className=\"absolute inset-[20%] [&>*]:h-full [&>*]:w-full\"\n style={{\n filter: `drop-shadow(0px ${(size * 0.04).toFixed(2)}px ${(size * 0.05).toFixed(2)}px rgba(22,27,53,0.55))`,\n }}\n >\n {children ?? <AILogo variant=\"light\" />}\n </span>\n </div>\n );\n },\n);\n\nAIBadge.displayName = 'AIBadge';\n","import * as React from 'react';\nimport { Copy, Crown } from '@phosphor-icons/react';\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { Avatar, AvatarFallback, AvatarImage, AvatarBadge } from '../../components/ui/avatar';\nimport { Button } from '../../components/ui/button';\n\nimport { cn } from '@/lib/utils';\n\nexport type AccountDropdownActionItem = {\n type?: 'action';\n id: string;\n label: string;\n icon?: React.ReactNode;\n onClick: () => void;\n /** Second line (e.g. \"ID: xyz\"); copy button shown when copyValue is set. */\n secondaryLabel?: React.ReactNode;\n copyValue?: string;\n onCopy?: (value: string) => void;\n /** Keyboard shortcut hint (e.g. \"⌘K\") shown on the right. */\n shortcut?: string;\n};\n\nexport type AccountDropdownSubOption = {\n id: string;\n label: string;\n icon?: React.ReactNode;\n /** Required for radio mode. */\n value?: string;\n /** Used in plain (non-radio) mode. */\n onClick?: () => void;\n /** Keyboard shortcut hint (e.g. \"⌘K\") shown on the right. */\n shortcut?: string;\n};\n\n/** Sub-option with a required `value`, used in radio-mode submenus. */\nexport type AccountDropdownRadioSubOption = Omit<AccountDropdownSubOption, 'value' | 'onClick'> & {\n value: string;\n};\n\ntype AccountDropdownSubmenuBase = {\n type: 'submenu';\n id: string;\n label: string;\n icon?: React.ReactNode;\n /** Second line on the submenu trigger (e.g. \"ID: xyz\"); copy button when copyValue is set. */\n secondaryLabel?: React.ReactNode;\n copyValue?: string;\n onCopy?: (value: string) => void;\n};\n\nexport type AccountDropdownSubmenuItem = AccountDropdownSubmenuBase &\n (\n | {\n /** The currently selected value. When provided with onValueChange, renders items as a radio group with selection indicators. */\n value: string;\n onValueChange: (value: string) => void;\n items: AccountDropdownRadioSubOption[];\n }\n | {\n value?: never;\n onValueChange?: never;\n items: AccountDropdownSubOption[];\n }\n );\n\nexport type AccountDropdownItem = AccountDropdownActionItem | AccountDropdownSubmenuItem;\n\nexport type AccountDropdownTeam = {\n id: string;\n name: string;\n isCurrent: boolean;\n logoUrl?: string;\n};\n\nexport interface AccountDropdownProps extends React.ComponentPropsWithoutRef<typeof DropdownMenu> {\n accountPhoto: string;\n accountName: string;\n /** Pass a flat array for a single group, or an array of arrays for multiple groups separated by dividers. */\n accountDropdownItems: AccountDropdownItem[] | AccountDropdownItem[][];\n teams: AccountDropdownTeam[];\n /** Side the dropdown opens on relative to the trigger. Defaults to 'bottom'. */\n side?: React.ComponentPropsWithoutRef<typeof DropdownMenuContent>['side'];\n /** Alignment of the dropdown relative to the trigger. Defaults to 'end'. */\n align?: React.ComponentPropsWithoutRef<typeof DropdownMenuContent>['align'];\n isSuperAdmin?: boolean;\n}\n\nexport function AccountDropdown({\n accountPhoto,\n accountName,\n accountDropdownItems,\n teams,\n side = 'bottom',\n align = 'end',\n isSuperAdmin = false,\n ...props\n}: AccountDropdownProps) {\n const showTeamName = teams?.length > 1 || isSuperAdmin;\n const currentTeamName = (showTeamName && teams?.find((el) => el.isCurrent)?.name) || '';\n const initial = accountName[0];\n\n const groups: AccountDropdownItem[][] = Array.isArray(accountDropdownItems[0])\n ? (accountDropdownItems as AccountDropdownItem[][])\n : [accountDropdownItems as AccountDropdownItem[]];\n\n const handleCopy = React.useCallback((value: string, onCopy?: (value: string) => void) => {\n return (e: React.MouseEvent) => {\n e.stopPropagation();\n if (onCopy) onCopy(value);\n else navigator.clipboard.writeText(value);\n };\n }, []);\n\n const renderCopyRow = (\n secondaryLabel: React.ReactNode,\n copyValue: string | undefined,\n onCopy?: (value: string) => void,\n ) =>\n secondaryLabel && (\n <div className=\"flex w-full items-center gap-1 text-xs text-subtlest ml-7\">\n {secondaryLabel}\n {copyValue != null && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-4 shrink-0 p-0 [&>svg]:!size-3\"\n onClick={handleCopy(copyValue, onCopy)}\n aria-label=\"Copy ID\"\n >\n <Copy className=\"size-3\" />\n </Button>\n )}\n </div>\n );\n\n return (\n <DropdownMenu {...props}>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"default\"\n variant=\"ghost\"\n className=\"rounded-full p-[1px] border border-dark-300 relative\"\n aria-label=\"Toggle account dropdown\"\n >\n <Avatar>\n <AvatarImage\n src={accountPhoto}\n alt={`${accountName}'s account`}\n className={cn(\n 'block rounded-full border border-background',\n isSuperAdmin && 'border-2 border-solid border-red-700 inset-1',\n )}\n />\n <AvatarFallback>{initial}</AvatarFallback>\n {isSuperAdmin && (\n <AvatarBadge className=\"bg-red-700 text-white\">\n <Crown />\n </AvatarBadge>\n )}\n </Avatar>\n {showTeamName && <span className=\"text-xs text-default font-semibold pr-1\">{currentTeamName}</span>}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n side={side}\n align={align}\n className=\"border-none shadow-[2px_4px_12px_0px_rgba(0,0,0,0.14)] dark:shadow-[2px_4px_12px_0px_rgba(255,255,255,0.14)]\"\n >\n {groups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && <DropdownMenuSeparator />}\n <DropdownMenuGroup>\n {group.map((item) =>\n item.type === 'submenu' ? (\n <DropdownMenuSub key={item.id}>\n <DropdownMenuSubTrigger\n secondaryRow={renderCopyRow(item.secondaryLabel, item.copyValue, item.onCopy)}\n >\n {item.icon}\n {item.label}\n </DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent className=\"border-none shadow-[2px_4px_12px_0px_rgba(0,0,0,0.14)] dark:shadow-[2px_4px_12px_0px_rgba(255,255,255,0.14)]\">\n {item.value != null && item.onValueChange ? (\n <DropdownMenuRadioGroup value={item.value} onValueChange={item.onValueChange}>\n {item.items.map((option) => (\n <DropdownMenuRadioItem key={option.id} value={option.value}>\n {option.icon}\n {option.label}\n {option.shortcut != null && (\n <DropdownMenuShortcut>{option.shortcut}</DropdownMenuShortcut>\n )}\n </DropdownMenuRadioItem>\n ))}\n </DropdownMenuRadioGroup>\n ) : (\n item.items.map((option) => (\n <DropdownMenuItem key={option.id} onClick={option.onClick}>\n {option.icon}\n {option.label}\n {option.shortcut != null && (\n <DropdownMenuShortcut>{option.shortcut}</DropdownMenuShortcut>\n )}\n </DropdownMenuItem>\n ))\n )}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <DropdownMenuItem\n key={item.id}\n onClick={item.onClick}\n secondaryRow={renderCopyRow(item.secondaryLabel, item.copyValue, item.onCopy)}\n >\n {item.icon}\n {item.label}\n {item.shortcut != null && <DropdownMenuShortcut>{item.shortcut}</DropdownMenuShortcut>}\n </DropdownMenuItem>\n ),\n )}\n </DropdownMenuGroup>\n </React.Fragment>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import * as React from 'react';\nimport { Question, SidebarSimple, Lightning } from '@phosphor-icons/react';\n\nimport { Logo } from '../../components/logo';\nimport { AIBadge } from '../../components/ai-button';\nimport { Button } from '../../components/ui/button';\nimport { AccountDropdown, AccountDropdownProps } from './account-dropdown';\n\nimport { cn } from '@/lib/utils';\nimport { useBooleanFlagValue } from '@/lib/feature-flags';\n\ninterface HeaderNavProps extends React.ComponentPropsWithoutRef<'header'>, Omit<AccountDropdownProps, 'dir'> {\n isSideNavOpen?: boolean;\n onSideNavigationToggle: () => void;\n onHelpClick: () => void;\n onBrainfishNativeClick: () => void;\n onLogoNav: () => void;\n isHomePath?: boolean;\n showSuggestionAction?: boolean;\n suggestionAction?: React.ReactNode;\n onSuggestionActionClick?: () => void;\n showSidebarToggle?: boolean;\n isSuperAdmin?: boolean;\n isViewer?: boolean;\n /** Ref for the sidebar toggle button; used by layout to move focus here when sidebar is collapsed. */\n sidebarToggleRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport const HEADER_NAV_HEIGHT = 60;\n\nexport const HeaderNav = React.forwardRef<HTMLElement, HeaderNavProps>(function HeaderNav(\n {\n className,\n isSideNavOpen = false,\n onSideNavigationToggle,\n onHelpClick,\n onBrainfishNativeClick,\n accountName,\n accountPhoto,\n accountDropdownItems,\n teams,\n side,\n align,\n showSuggestionAction,\n suggestionAction,\n onSuggestionActionClick,\n onLogoNav,\n isHomePath = false,\n showSidebarToggle = true,\n sidebarToggleRef,\n isSuperAdmin,\n isViewer,\n ...props\n },\n ref,\n) {\n const hasSuggestionAction = showSuggestionAction && !!suggestionAction && !!onSuggestionActionClick;\n const brainfishNativeEnabled = useBooleanFlagValue('platform.brainfish-native.enabled', false);\n const isHelpButtonEnabled = !isViewer;\n\n return (\n <header ref={ref} {...props} className={cn('px-4 py-3 relative', className)}>\n <nav aria-label=\"Account navigation\" className=\"flex justify-between items-center\">\n <div className=\"flex items-center gap-2\">\n <a\n href=\"/\"\n onClick={(e) => {\n const isPlainLeftClick = e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey;\n\n if (isPlainLeftClick) {\n e.preventDefault();\n onLogoNav();\n }\n }}\n aria-current={isHomePath ? 'page' : undefined}\n >\n <Logo\n variant=\"full\"\n color={isHomePath ? 'fill' : 'outline'}\n width={130}\n height={20}\n className=\"hidden md:block\"\n />\n <Logo\n variant=\"mark\"\n color={isHomePath ? 'fill' : 'outline'}\n width={37}\n height={20}\n className=\"block md:hidden\"\n />\n </a>\n {showSidebarToggle && (\n <Button\n ref={sidebarToggleRef}\n size=\"icon\"\n variant=\"ghost\"\n aria-label=\"Toggle side navigation\"\n className=\"[&_svg]:size-6\"\n onClick={onSideNavigationToggle}\n >\n <SidebarSimple aria-hidden=\"true\" weight={isSideNavOpen ? 'fill' : 'regular'} />\n </Button>\n )}\n </div>\n <div className=\"flex items-center gap-4\">\n {hasSuggestionAction && (\n <Button variant=\"suggestion\" onClick={onSuggestionActionClick}>\n <Lightning weight=\"fill\" aria-hidden=\"true\" /> {suggestionAction}\n </Button>\n )}\n {brainfishNativeEnabled && (\n <button\n type=\"button\"\n aria-label=\"Open Ask Brainfish\"\n className=\"flex items-center gap-2 rounded border border-dark-300 bg-surface py-1 pl-1 pr-1.5 cursor-pointer hover:bg-dark-200 active:bg-dark-400 focus-visible:outline-none\"\n onClick={onBrainfishNativeClick}\n >\n <AIBadge size={24} />\n <span className=\"text-xs font-normal text-dark-900 whitespace-nowrap\">Ask Brainfish</span>\n </button>\n )}\n <AccountDropdown\n accountName={accountName}\n accountPhoto={accountPhoto}\n accountDropdownItems={accountDropdownItems}\n teams={teams}\n side={side}\n align={align}\n isSuperAdmin={isSuperAdmin}\n />\n {isHelpButtonEnabled && (\n <Button size=\"icon\" variant=\"ghost\" aria-label=\"Open help\" className=\"[&_svg]:size-6 fixed z-10 bottom-1 left-1\" onClick={onHelpClick}>\n <Question aria-hidden=\"true\" />\n </Button>\n )}\n </div>\n </nav>\n </header>\n );\n});\n"],"names":["AIBadge","React","forwardRef","children","size","className","props","ref","fillId","useId","strokeId","cn","style","width","height","createElement","xmlns","position","inset","viewBox","fill","d","stroke","strokeOpacity","strokeWidth","id","x1","y1","x2","y2","gradientUnits","offset","stopColor","filter","toFixed","AILogo","variant","AccountDropdown","accountPhoto","accountName","accountDropdownItems","teams","side","align","isSuperAdmin","showTeamName","length","currentTeamName","find","el","isCurrent","name","initial","groups","Array","isArray","handleCopy","useCallback","value","onCopy","e","stopPropagation","navigator","clipboard","writeText","renderCopyRow","secondaryLabel","copyValue","Button","onClick","Copy","DropdownMenu","DropdownMenuTrigger","asChild","Avatar","AvatarImage","src","alt","AvatarFallback","AvatarBadge","Crown","DropdownMenuContent","map","group","groupIndex","Fragment","key","DropdownMenuSeparator","DropdownMenuGroup","item","type","DropdownMenuSub","DropdownMenuSubTrigger","secondaryRow","icon","label","DropdownMenuPortal","DropdownMenuSubContent","onValueChange","DropdownMenuRadioGroup","items","option","DropdownMenuRadioItem","shortcut","DropdownMenuShortcut","DropdownMenuItem","displayName","HEADER_NAV_HEIGHT","HeaderNav","isSideNavOpen","onSideNavigationToggle","onHelpClick","onBrainfishNativeClick","showSuggestionAction","suggestionAction","onSuggestionActionClick","onLogoNav","isHomePath","showSidebarToggle","sidebarToggleRef","isViewer","hasSuggestionAction","brainfishNativeEnabled","useBooleanFlagValue","isHelpButtonEnabled","href","button","metaKey","ctrlKey","shiftKey","altKey","preventDefault","Logo","color","SidebarSimple","weight","Lightning","Question"],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import*as n from"react";import{jsx as t}from"react/jsx-runtime";function e(n,t){if("function"==typeof n)return n(t);null!=n&&(n.current=t)}var r=Symbol.for("react.lazy"),o=n[" use ".trim().toString()];function i(n){return null!=n&&"object"==typeof n&&"$$typeof"in n&&n.$$typeof===r&&"_payload"in n&&("object"==typeof(t=n._payload)&&null!==t&&"then"in t);var t}function l(e){const r=/* @__PURE__ */f(e),l=n.forwardRef((e,l)=>{let{children:c,...f}=e;i(c)&&"function"==typeof o&&(c=o(c._payload));const a=n.Children.toArray(c),p=a.find(u);if(p){const e=p.props.children,o=a.map(t=>t===p?n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null:t);/* @__PURE__ */
|
|
2
|
-
return t(r,{...f,ref:l,children:n.isValidElement(e)?n.cloneElement(e,void 0,o):null})}/* @__PURE__ */
|
|
3
|
-
return t(r,{...f,ref:l,children:c})});return l.displayName=`${e}.Slot`,l}var c=/* @__PURE__ */l("Slot");function f(t){const r=n.forwardRef((t,r)=>{let{children:l,...c}=t;if(i(l)&&"function"==typeof o&&(l=o(l._payload)),n.isValidElement(l)){const t=function(n){let t=Object.getOwnPropertyDescriptor(n.props,"ref")?.get,e=t&&"isReactWarning"in t&&t.isReactWarning;if(e)return n.ref;if(t=Object.getOwnPropertyDescriptor(n,"ref")?.get,e=t&&"isReactWarning"in t&&t.isReactWarning,e)return n.props.ref;return n.props.ref||n.ref}(l),o=function(n,t){const e={...t};for(const r in t){const o=n[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?e[r]=(...n)=>{const t=i(...n);return o(...n),t}:o&&(e[r]=o):"style"===r?e[r]={...o,...i}:"className"===r&&(e[r]=[o,i].filter(Boolean).join(" "))}return{...n,...e}}(c,l.props);return l.type!==n.Fragment&&(o.ref=r?function(...n){return t=>{let r=!1;const o=n.map(n=>{const o=e(n,t);return r||"function"!=typeof o||(r=!0),o});if(r)return()=>{for(let t=0;t<o.length;t++){const r=o[t];"function"==typeof r?r():e(n[t],null)}}}}(r,t):t),n.cloneElement(l,o)}return n.Children.count(l)>1?n.Children.only(null):null});return r.displayName=`${t}.SlotClone`,r}var a=Symbol("radix.slottable");function u(t){return n.isValidElement(t)&&"function"==typeof t.type&&"__radixId"in t.type&&t.type.__radixId===a}export{c as S};
|
|
4
|
-
//# sourceMappingURL=index.uF4ME3WQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.uF4ME3WQ.js","sources":["../../../../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../../node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar use = React[\" use \".trim().toString()];\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["setRef","ref","value","current","REACT_LAZY_TYPE","Symbol","for","use","React","trim","toString","isLazyComponent","element","$$typeof","_payload","createSlot","ownerName","SlotClone","createSlotClone","Slot2","forwardRef","props","forwardedRef","children","slotProps","childrenArray","Children","toArray","slottable","find","isSlottable","newElement","newChildren","map","child","count","only","isValidElement","jsx","cloneElement","displayName","Slot","childrenRef","getter","Object","getOwnPropertyDescriptor","get","mayWarn","isReactWarning","getElementRef","props2","childProps","overrideProps","propName","slotPropValue","childPropValue","test","args","result","filter","Boolean","join","mergeProps","type","Fragment","refs","node","hasCleanup","cleanups","cleanup","i","length","composeRefs","SLOTTABLE_IDENTIFIER","__radixId"],"mappings":"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","x_google_ignoreList":[0,1]}
|