@rafal.lemieszewski/tide-ui 0.87.2 → 0.87.4
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/cjs/components/fundamental/command.cjs +1 -1
- package/dist/cjs/components/product/app-frame.cjs +1 -1
- package/dist/es/components/fundamental/command.js +38 -31
- package/dist/es/components/product/app-frame.js +315 -272
- package/dist/types/components/fundamental/command.d.ts +2 -1
- package/dist/types/components/fundamental/custom-icons.d.cts +33 -0
- package/package.json +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),k=require("react"),j=require("@radix-ui/react-dialog"),r=require("cmdk"),s=require("../../lib/utils.cjs"),R=require("./icon.cjs"),P=require("./button.cjs"),S=require("lucide-react"),q=require("./input.cjs");function u(a){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const t in a)if(t!=="default"){const d=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(e,t,d.get?d:{enumerable:!0,get:()=>a[t]})}}return e.default=a,Object.freeze(e)}const n=u(k),m=u(j),c=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command,{ref:t,loop:!0,className:s.cn("flex h-full w-full flex-col overflow-hidden rounded-m bg-[var(--color-surface-primary)] text-[var(--color-text-primary)]",a),...e}));c.displayName=r.Command.displayName;const I=({children:a,...
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),k=require("react"),j=require("@radix-ui/react-dialog"),r=require("cmdk"),s=require("../../lib/utils.cjs"),R=require("./icon.cjs"),P=require("./button.cjs"),S=require("lucide-react"),q=require("./input.cjs");function u(a){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const t in a)if(t!=="default"){const d=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(e,t,d.get?d:{enumerable:!0,get:()=>a[t]})}}return e.default=a,Object.freeze(e)}const n=u(k),m=u(j),c=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command,{ref:t,loop:!0,className:s.cn("flex h-full w-full flex-col overflow-hidden rounded-m bg-[var(--color-surface-primary)] text-[var(--color-text-primary)]",a),...e}));c.displayName=r.Command.displayName;const I=({children:a,commandProps:e,...t})=>o.jsx(m.Root,{...t,children:o.jsxs(m.Portal,{children:[o.jsx(m.Overlay,{className:s.cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/25")}),o.jsx(m.Content,{className:s.cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] overflow-hidden rounded-l border border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] p-0 shadow-lg duration-200 max-w-[450px]"),"aria-describedby":void 0,children:o.jsx(c,{className:"[&_[cmdk-group-heading]]:px-[var(--space-m)] [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--color-text-tertiary)] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4 [&_[cmdk-item]]:px-[var(--space-m)] [&_[cmdk-item]]:min-h-[var(--size-m)] [&_[cmdk-item]]:py-[var(--space-s)] [&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4",...e,children:a})})]})}),x=n.forwardRef(({className:a,size:e="m",clearable:t=!0,onClear:d,value:i,..._},h)=>{const p=t&&i&&String(i).length>0,C=e==="s"?"s":"m",N=e==="s"?"pl-[30px]":"pl-[34px]",w=p?"pr-[calc(var(--size-s)+var(--space-m)+var(--space-s))]":"";return o.jsxs("div",{className:"relative p-[var(--space-s)] border-b border-[var(--color-border-primary-subtle)]","cmdk-input-wrapper":"",children:[o.jsx(R.Icon,{name:"search",size:C,color:"tertiary",className:"absolute left-[18px] top-1/2 -translate-y-1/2 pointer-events-none"}),o.jsx(r.Command.Input,{ref:h,value:i,className:s.cn(q.inputVariants({size:e,variant:"default"}),N,w,e==="s"&&"[&]:text-body-sm",e==="m"&&"[&]:text-body-md",e==="l"&&"[&]:text-body-md","[&]:focus-visible:outline-none","[&]:focus-visible:border-[#005f85]","[&]:focus-visible:!shadow-[0px_0px_0px_2px_rgba(0,95,133,0.2),0px_3px_4px_0px_rgba(0,14,20,0.03)]","[&]:focus:outline-none","[&]:focus:!shadow-[0px_0px_0px_2px_rgba(0,95,133,0.2),0px_3px_4px_0px_rgba(0,14,20,0.03)]",a),..._}),p&&o.jsx(P.Button,{type:"button",variant:"ghost",size:"s",icon:S.X,iconPosition:"only",onClick:l=>{l.preventDefault(),l.stopPropagation(),d?.()},className:"absolute right-[var(--space-m)] top-1/2 -translate-y-1/2 active:!translate-y-[-50%]","aria-label":"Clear search"})]})});x.displayName=r.Command.Input.displayName;const f=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command.List,{ref:t,className:s.cn("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...e}));f.displayName=r.Command.List.displayName;const y=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command.Empty,{ref:t,className:s.cn("py-6 text-center [&]:text-body-md text-[var(--color-text-secondary)]",a),...e}));y.displayName=r.Command.Empty.displayName;const v=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command.Group,{ref:t,className:s.cn("overflow-hidden p-[var(--space-s)] text-[var(--color-text-primary)] [&_[cmdk-group-heading]]:px-[var(--space-m)] [&_[cmdk-group-heading]]:py-[var(--space-s)] [&_[cmdk-group-heading]]:[&]:text-body-medium-sm [&_[cmdk-group-heading]]:text-[var(--color-text-tertiary)]",a),...e}));v.displayName=r.Command.Group.displayName;const g=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command.Separator,{ref:t,className:s.cn("-mx-1 h-px bg-[var(--color-border-primary-subtle)]",a),...e}));g.displayName=r.Command.Separator.displayName;const b=n.forwardRef(({className:a,...e},t)=>o.jsx(r.Command.Item,{ref:t,className:s.cn("[&]:text-body-md relative flex cursor-pointer select-none items-center rounded-m px-[var(--space-m)] min-h-[var(--size-m)] py-[var(--space-s)] outline-none transition-colors aria-selected:bg-[var(--color-background-neutral-subtlest-hovered)] aria-selected:text-[var(--color-text-primary)] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",a),...e}));b.displayName=r.Command.Item.displayName;exports.Command=c;exports.CommandDialog=I;exports.CommandEmpty=y;exports.CommandGroup=v;exports.CommandInput=x;exports.CommandItem=b;exports.CommandList=f;exports.CommandSeparator=g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),H=require("react"),t=require("../fundamental/sidebar.cjs"),O=require("../fundamental/button.cjs"),p=require("../fundamental/icon.cjs"),d=require("lucide-react"),u=require("../fundamental/avatar.cjs"),I=require("../fundamental/separator.cjs"),M=require("../fundamental/kbd.cjs"),o=require("../fundamental/dropdown-menu.cjs"),c=require("../fundamental/tooltip.cjs"),b=require("../fundamental/command.cjs");function E(n){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const m in n)if(m!=="default"){const i=Object.getOwnPropertyDescriptor(n,m);Object.defineProperty(l,m,i.get?i:{enumerable:!0,get:()=>n[m]})}}return l.default=n,Object.freeze(l)}const g=E(H),F={name:"John Doe",email:"john@example.com",avatarUrl:"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=32&h=32&fit=crop&crop=face"},B=[{name:"Acme Corp",role:"Admin",plan:"Enterprise",avatarUrl:"https://useful-toucan-91.convex.cloud/api/storage/5e36a31d-3f0a-4bb0-95db-f5b1c8e8af93"},{name:"Startup Inc",role:"Member",plan:"Pro",avatarUrl:"https://useful-toucan-91.convex.cloud/api/storage/5e36a31d-3f0a-4bb0-95db-f5b1c8e8af93"}],U={main:[{title:"Home",icon:d.House,url:"/home",isActive:!1},{title:"Boards",icon:d.LayoutDashboard,url:"/boards",isActive:!1}],operations:[{title:"Voyage economics",icon:d.Ship,url:"/freight-planner",isActive:!1,items:[]},{title:"Trade desk",icon:d.TrendingUp,url:"/trade-desk",isActive:!1,items:[]},{title:"Agreements",icon:d.ScrollText,url:"/agreements",isActive:!0,items:[{title:"Recaps",url:"/agreements/recaps",isActive:!0},{title:"Contracts",url:"/agreements/contracts",isActive:!1},{title:"Clause library",url:"/agreements/clause-library",isActive:!1}]},{title:"Compliance",icon:d.ShieldCheck,url:"/compliance",isActive:!1,items:[]}],intelligence:[{title:"Global market",icon:d.Globe,url:"/global-market",isActive:!1,items:[{title:"Supply",url:"/global-market/supply",isActive:!1},{title:"Commodities",url:"/global-market/commodities",isActive:!1},{title:"Freight",url:"/global-market/freight",isActive:!1}]},{title:"Assets",icon:d.Container,url:"/assets",isActive:!1,items:[{title:"Vessels",url:"/assets/vessels",isActive:!1},{title:"Fleets",url:"/assets/fleets",isActive:!1},{title:"Ports",url:"/assets/ports",isActive:!1},{title:"Canals",url:"/assets/canals",isActive:!1}]},{title:"Fixtures",icon:d.Anchor,url:"/fixtures",isActive:!1}],support:[{title:"Notifications",icon:d.Bell,url:"/notifications",isActive:!1},{title:"Help & support",icon:d.CircleHelp,url:"/help-support",isActive:!1}]},T=n=>n.split(" ").filter(Boolean).map(l=>l[0]).join("").slice(0,2).toUpperCase(),A=n=>n.split(" ").filter(Boolean).map(l=>l[0]).join("").slice(0,2).toUpperCase(),z=()=>typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.userAgent);function D(n){const l={};return[...n.main||[],...n.operations||[],...n.intelligence||[],...n.support||[]].forEach(i=>{if(i.items&&i.items.length>0){const j=i.items.some(f=>f.isActive);l[i.title]=j}}),l}function R({navigationData:n,user:l,teams:m,onNavigate:i,navigationMode:j,onNavigationModeChange:f}){const[v,x]=g.useState(!1),[S,w]=g.useState(""),[y,a]=g.useState(()=>D(n)),[h,C]=g.useState(m[0]),V=r=>{a(s=>({...s,[r]:!s[r]}))},L=r=>r.items&&r.items.some(s=>s.isActive),N=r=>{if(r.items&&r.items.length>0){const s=r.items.find(k=>k.isActive);if(s)return`${r.title} → ${s.title}`}return r.title};return g.useEffect(()=>{const r=s=>{s.key==="k"&&(s.metaKey||s.ctrlKey)&&(s.preventDefault(),x(k=>!k))};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[]),g.useEffect(()=>{a(D(n))},[n]),e.jsxs(c.TooltipProvider,{delayDuration:100,children:[e.jsxs(t.Sidebar,{variant:"sidebar",collapsible:"icon",className:"flex h-full flex-col",children:[e.jsx(t.SidebarHeader,{className:"sticky top-0 z-10 h-12 border-b border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] group-data-[collapsible=icon]:flex group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:px-2 box-border",children:e.jsx("div",{className:"flex h-[22px] w-7 items-center justify-center",children:e.jsx("svg",{width:"28",height:"22",viewBox:"0 0 28 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M4.39355 0.688477C6.89528 0.688477 8.12094 1.67409 8.12109 3.74609V7.69043H5.5332V2.87695H3.28711V8.03125L8.12109 11.458V18.2705C8.12109 20.3262 6.92916 21.3125 4.39355 21.3125C1.85827 21.3124 0.701172 20.3261 0.701172 18.2705L0.700195 13.7412H3.28711V19.1396H5.5332V12.6777L0.701172 9.23438V3.74609C0.701322 1.67422 1.89214 0.688597 4.39355 0.688477ZM13.8379 0.6875C16.4752 0.687615 17.6152 1.67395 17.6152 3.74609V10.5312L12.6113 13.7236V19.123H15.0273V14.3096H17.6143V18.2705C17.6143 20.3262 16.4235 21.3125 13.8027 21.3125C11.1821 21.3125 10.0244 20.3262 10.0244 18.2705V3.74609H10.0254C10.0254 1.67382 11.2003 0.6875 13.8379 0.6875ZM23.333 0.6875C25.9537 0.6875 27.1113 1.67378 27.1113 3.72949V18.2539H27.1104C27.1104 20.3261 25.9363 21.3125 23.2988 21.3125C20.6612 21.3125 19.5205 20.3262 19.5205 18.2539V11.4688L24.5254 8.27637V2.87695H22.1084V7.69043H19.5215V3.72949C19.5215 1.67384 20.7124 0.687556 23.333 0.6875ZM22.1084 12.2197V19.1396H24.5254V10.5986L22.1084 12.2197ZM12.6113 11.4014L15.0273 9.78027V2.86035H12.6113V11.4014Z",fill:"#005F85"})})})}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto group-data-[collapsible=icon]:overflow-hidden","data-sidebar":"content",children:[e.jsx("div",{className:"p-[var(--space-m)] pt-[var(--space-s)] group-data-[collapsible=icon]:px-2",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute top-1/2 left-2 -translate-y-1/2 group-data-[collapsible=icon]:hidden",children:e.jsx(p.Icon,{name:d.Search,size:"m",color:"tertiary"})}),e.jsxs("div",{className:"group-data-[collapsible=icon]:hidden",children:[e.jsx("button",{onClick:()=>x(!0),className:"text-body-md flex h-8 w-full cursor-pointer items-center rounded-m border border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] px-3 py-1 pr-20 pl-8 text-left text-[var(--color-text-tertiary)] transition-colors hover:border-[var(--color-border-primary-medium)] hover:!bg-[var(--color-background-neutral-subtlest-hovered)] focus:border-[var(--color-border-brand-bold)] focus:ring-2 focus:ring-[var(--color-border-brand-bold)]/20 focus:ring-offset-0 focus:outline-none active:border-[var(--color-border-primary-medium)]",children:"Search"}),e.jsxs("div",{className:"absolute top-1/2 right-2 flex -translate-y-1/2 gap-1",children:[e.jsx(M.Kbd,{size:"s",children:z()?"⌘":"Ctrl"}),e.jsx(M.Kbd,{size:"s",children:"K"})]})]}),e.jsxs(c.Tooltip,{delayDuration:500,children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx("button",{onClick:()=>x(!0),className:"hidden h-8 w-8 cursor-pointer items-center justify-center rounded border border-[var(--color-border-primary-subtle)] bg-transparent transition-all duration-200 group-data-[collapsible=icon]:flex hover:border-[var(--color-border-primary-medium)] hover:!bg-[var(--color-background-neutral-subtlest-hovered)] focus:border-[var(--color-border-brand-bold)] focus:ring-2 focus:ring-[var(--color-border-brand-bold)]/20 focus:ring-offset-0 focus:outline-none active:border-[var(--color-border-primary-medium)]","aria-label":"Search",children:e.jsx(p.Icon,{name:d.Search,size:"m",color:"tertiary"})})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:"Search"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(M.Kbd,{size:"s",variant:"dark",children:z()?"⌘":"Ctrl"}),e.jsx(M.Kbd,{size:"s",variant:"dark",children:"K"})]})]})})]})]})}),e.jsx(t.SidebarGroup,{className:"pb-1 mt-1 p-[var(--space-s)]",children:e.jsx(t.SidebarGroupContent,{children:e.jsx(t.SidebarMenu,{children:n.main.map(r=>e.jsx(t.SidebarMenuItem,{children:e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(t.SidebarMenuButton,{isActive:r.isActive,onClick:s=>{i&&(s.preventDefault(),i(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:N(r)})]})},r.title))})})}),e.jsx("div",{className:"my-2 hidden justify-center px-2 group-data-[collapsible=icon]:flex",children:e.jsx(I.Separator,{layout:"vertical"})}),e.jsxs(t.SidebarGroup,{className:"mt-1 p-[var(--space-s)]",children:[e.jsx(t.SidebarGroupLabel,{className:"py-1 pb-1.5 group-data-[collapsible=icon]:hidden",children:"Operations"}),e.jsx(t.SidebarGroupContent,{children:e.jsx(t.SidebarMenu,{children:n.operations.map(r=>e.jsx(t.SidebarMenuItem,{children:r.items&&r.items.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"group-data-[collapsible=icon]:hidden",children:e.jsxs(t.SidebarMenuButton,{isActive:r.isActive&&!r.items?.length,onClick:()=>V(r.title),children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title}),e.jsx(p.Icon,{name:d.ChevronRight,size:"s",className:`ml-auto transition-transform ${y[r.title]?"rotate-90":""}`})]})}),r.items&&r.items.length>0&&y[r.title]&&e.jsx(t.SidebarMenuSub,{children:r.items.map(s=>e.jsx(t.SidebarMenuSubItem,{children:e.jsx(t.SidebarMenuSubButton,{isActive:s.isActive,onClick:k=>{i&&(k.preventDefault(),i(s.url))},children:e.jsx("span",{children:s.title})})},s.title))}),e.jsx("div",{className:"hidden group-data-[collapsible=icon]:block",children:e.jsxs(o.DropdownMenu,{children:[e.jsxs(c.Tooltip,{children:[e.jsx(o.DropdownMenuTrigger,{asChild:!0,children:e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(t.SidebarMenuButton,{isActive:L(r),className:"w-full justify-center",children:e.jsx(p.Icon,{name:r.icon,size:"s"})})})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:N(r)})]}),e.jsxs(o.DropdownMenuContent,{side:"right",sideOffset:8,align:"start",children:[e.jsx(o.DropdownMenuLabel,{className:"text-body-medium-sm font-medium",children:r.title}),e.jsx(o.DropdownMenuSeparator,{}),r.items.map(s=>e.jsx(o.DropdownMenuItem,{className:s.isActive?"bg-[var(--color-background-blue-subtle-selected)] text-[var(--color-text-brand-bold)]":"",onSelect:()=>{i&&i(s.url)},children:s.title},s.title))]})]})})]}):e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(t.SidebarMenuButton,{isActive:r.isActive,onClick:s=>{i&&(s.preventDefault(),i(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:N(r)})]})},r.title))})})]}),e.jsx("div",{className:"my-2 hidden justify-center px-2 group-data-[collapsible=icon]:flex",children:e.jsx(I.Separator,{layout:"vertical"})}),e.jsxs(t.SidebarGroup,{className:"mt-1 p-[var(--space-s)]",children:[e.jsx(t.SidebarGroupLabel,{className:"py-1 pb-1.5 group-data-[collapsible=icon]:hidden",children:"Intelligence"}),e.jsx(t.SidebarGroupContent,{children:e.jsx(t.SidebarMenu,{children:n.intelligence.map(r=>e.jsx(t.SidebarMenuItem,{children:r.items&&r.items.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"group-data-[collapsible=icon]:hidden",children:e.jsxs(t.SidebarMenuButton,{isActive:r.isActive&&!r.items?.length,onClick:()=>V(r.title),children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title}),e.jsx(p.Icon,{name:d.ChevronRight,size:"s",className:`ml-auto transition-transform ${y[r.title]?"rotate-90":""}`})]})}),r.items&&r.items.length>0&&y[r.title]&&e.jsx(t.SidebarMenuSub,{children:r.items.map(s=>e.jsx(t.SidebarMenuSubItem,{children:e.jsx(t.SidebarMenuSubButton,{isActive:s.isActive,onClick:k=>{i&&(k.preventDefault(),i(s.url))},children:e.jsx("span",{children:s.title})})},s.title))}),e.jsx("div",{className:"hidden group-data-[collapsible=icon]:block",children:e.jsxs(o.DropdownMenu,{children:[e.jsxs(c.Tooltip,{children:[e.jsx(o.DropdownMenuTrigger,{asChild:!0,children:e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(t.SidebarMenuButton,{isActive:L(r),className:"w-full justify-center",children:e.jsx(p.Icon,{name:r.icon,size:"s"})})})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:N(r)})]}),e.jsxs(o.DropdownMenuContent,{side:"right",sideOffset:8,align:"start",children:[e.jsx(o.DropdownMenuLabel,{className:"text-body-medium-sm font-medium",children:r.title}),e.jsx(o.DropdownMenuSeparator,{}),r.items.map(s=>e.jsx(o.DropdownMenuItem,{className:s.isActive?"bg-[var(--color-background-blue-subtle-selected)] text-[var(--color-text-brand-bold)]":"",onSelect:()=>{i&&i(s.url)},children:s.title},s.title))]})]})})]}):e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(t.SidebarMenuButton,{isActive:r.isActive,onClick:s=>{i&&(s.preventDefault(),i(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:N(r)})]})},r.title))})})]}),e.jsx(t.SidebarGroup,{className:"pb-2 p-[var(--space-s)] mt-auto",children:e.jsx(t.SidebarGroupContent,{children:e.jsx(t.SidebarMenu,{children:n.support.map(r=>e.jsx(t.SidebarMenuItem,{children:e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(t.SidebarMenuButton,{isActive:r.isActive,onClick:s=>{i&&(s.preventDefault(),i(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:N(r)})]})},r.title))})})})]}),e.jsx(t.SidebarFooter,{className:"sticky bottom-0 z-10 border-t border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] group-data-[collapsible=icon]:px-2 group-data-[collapsible=icon]:py-2",children:e.jsx("div",{className:"group/user-menu rounded-m border border-[var(--color-border-primary-subtle)] transition-colors hover:border-[var(--color-border-primary-medium)] group-data-[collapsible=icon]:rounded-none group-data-[collapsible=icon]:border-none",children:e.jsxs(o.DropdownMenu,{children:[e.jsx(o.DropdownMenuTrigger,{asChild:!0,children:e.jsxs(O.Button,{variant:"ghost",className:"h-auto min-h-[56px] w-full justify-start rounded-m px-3 py-2 hover:!bg-[var(--color-background-neutral-subtlest-hovered)] group-data-[collapsible=icon]:h-8 group-data-[collapsible=icon]:min-h-0 group-data-[collapsible=icon]:w-8 group-data-[collapsible=icon]:p-0",children:[e.jsxs("div",{className:"flex w-full items-center gap-3 group-data-[collapsible=icon]:hidden",children:[e.jsxs("div",{className:"relative flex-shrink-0",children:[e.jsxs(u.Avatar,{size:"m",type:"user",children:[e.jsx(u.AvatarImage,{src:l.avatarUrl,alt:l.name}),e.jsx(u.AvatarFallback,{size:"m",type:"user",children:T(l.name)})]}),e.jsx("div",{className:"absolute -right-1 -bottom-1 rounded-[4px] border-2 border-white p-0",children:e.jsxs(u.Avatar,{size:"xxs",type:"organization",children:[e.jsx(u.AvatarImage,{src:h.avatarUrl,alt:h.name}),e.jsx(u.AvatarFallback,{size:"xxs",type:"organization",children:A(h.name)})]})})]}),e.jsxs("div",{className:"min-w-0 flex-1 text-left",children:[e.jsx("div",{className:"text-body-medium-sm truncate font-medium text-[var(--color-text-primary)]",children:l.name}),e.jsxs("div",{className:"text-body-xsm text-[var(--color-text-secondary)]",children:[h.role," at ",h.name]})]}),e.jsx(p.Icon,{name:d.ChevronDown,size:"m",className:"opacity-50"})]}),e.jsxs("div",{className:"relative hidden group-data-[collapsible=icon]:block",children:[e.jsxs(u.Avatar,{size:"s",type:"user",children:[e.jsx(u.AvatarImage,{src:l.avatarUrl,alt:l.name}),e.jsx(u.AvatarFallback,{size:"s",type:"user",children:T(l.name)})]}),e.jsx("div",{className:"absolute -right-1 -bottom-1 rounded-[2px] border-2 border-white bg-[var(--color-surface-primary)]",children:e.jsxs(u.Avatar,{size:"xxs",type:"organization",children:[e.jsx(u.AvatarImage,{src:h.avatarUrl,alt:h.name}),e.jsx(u.AvatarFallback,{size:"xxs",type:"organization",children:A(h.name)})]})})]})]})}),e.jsxs(o.DropdownMenuContent,{className:"w-[--radix-dropdown-menu-trigger-width]",align:"start",side:"top",sideOffset:4,children:[e.jsx(o.DropdownMenuLabel,{className:"p-0 font-normal",children:e.jsxs("div",{className:"flex items-center gap-3 px-2 py-2",children:[e.jsxs(u.Avatar,{size:"s",type:"user",children:[e.jsx(u.AvatarImage,{src:l.avatarUrl,alt:l.name}),e.jsx(u.AvatarFallback,{size:"s",type:"user",children:T(l.name)})]}),e.jsxs("div",{className:"grid flex-1 text-left",children:[e.jsx("span",{className:"text-body-medium-sm truncate font-semibold text-[var(--color-text-primary)]",children:l.name}),e.jsx("span",{className:"text-caption-xsm truncate text-[var(--color-text-secondary)]",children:l.email})]})]})}),e.jsx(o.DropdownMenuSeparator,{}),e.jsx(o.DropdownMenuLabel,{className:"px-2 py-1 text-[12px] font-medium text-[var(--color-text-tertiary)]",children:"Organizations"}),m.map(r=>e.jsxs(o.DropdownMenuItem,{onSelect:()=>C(r),className:"mx-1 mb-1 h-10 cursor-pointer gap-2 px-1 pr-2 pl-1",children:[e.jsxs(u.Avatar,{size:"s",type:"organization",children:[e.jsx(u.AvatarImage,{src:r.avatarUrl,alt:r.name}),e.jsx(u.AvatarFallback,{size:"s",type:"organization",children:A(r.name)})]}),e.jsxs("div",{className:"flex flex-1 flex-col text-left",children:[e.jsx("span",{className:"text-body-medium-sm truncate font-semibold text-[var(--color-text-primary)]",children:r.name}),e.jsxs("span",{className:"text-caption-xsm truncate text-[var(--color-text-secondary)]",children:[r.role," • ",r.plan," plan"]})]}),h.name===r.name&&e.jsx(p.Icon,{name:d.Check,size:"m",className:"text-[var(--color-icon-brand-bold)]"})]},r.name)),e.jsx(o.DropdownMenuSeparator,{}),e.jsx(o.DropdownMenuLabel,{className:"px-2 py-1 text-[12px] font-medium text-[var(--color-text-tertiary)]",children:"Navigation"}),e.jsxs(o.DropdownMenuItem,{className:"mx-1 mb-0.5 cursor-pointer gap-2 px-2",onSelect:()=>f("sidebar"),children:[e.jsx("span",{className:"flex-1",children:"New sidebar navigation"}),j==="sidebar"&&e.jsx(p.Icon,{name:d.Check,size:"m",className:"text-[var(--color-icon-brand-bold)]"})]}),e.jsxs(o.DropdownMenuItem,{className:"mx-1 mb-1 cursor-pointer gap-2 px-2",onSelect:()=>f("horizontal"),children:[e.jsx("span",{className:"flex-1",children:"Old horizontal menu"}),j==="horizontal"&&e.jsx(p.Icon,{name:d.Check,size:"m",className:"text-[var(--color-icon-brand-bold)]"})]}),e.jsx(o.DropdownMenuSeparator,{}),e.jsx(o.DropdownMenuItem,{icon:d.User,className:"cursor-pointer",onSelect:()=>{i&&i("/user/profile")},children:"User profile"}),e.jsx(o.DropdownMenuItem,{icon:d.Settings,className:"cursor-pointer",onSelect:()=>{i&&i("/organization/settings")},children:"Organization settings"}),e.jsx(o.DropdownMenuSeparator,{}),e.jsx(o.DropdownMenuItem,{icon:d.LogOut,destructive:!0,className:"cursor-pointer",onSelect:()=>{i&&i("/auth/sign-out")},children:"Sign out"})]})]})})}),e.jsx(t.SidebarRail,{})]}),e.jsxs(b.CommandDialog,{open:v,onOpenChange:x,children:[e.jsx(b.CommandInput,{placeholder:"Type a command or search...",value:S,onValueChange:w,clearable:!1}),e.jsxs(b.CommandList,{children:[e.jsx(b.CommandEmpty,{children:"No results found."}),e.jsxs(b.CommandGroup,{heading:"Quick actions",children:[e.jsxs(b.CommandItem,{onSelect:()=>console.log("Reload"),children:[e.jsx(p.Icon,{name:d.RotateCcw,size:"s",className:"mr-2"}),e.jsx("span",{children:"Reload Page"}),e.jsxs("span",{className:"text-caption-sm ml-auto text-[var(--color-text-tertiary)]",children:[z()?"⌘":"Ctrl","R"]})]}),e.jsxs(b.CommandItem,{onSelect:()=>x(!1),children:[e.jsx(p.Icon,{name:d.Search,size:"s",className:"mr-2"}),e.jsx("span",{children:"Search"}),e.jsxs("span",{className:"text-caption-sm ml-auto text-[var(--color-text-tertiary)]",children:[z()?"⌘":"Ctrl","K"]})]})]}),e.jsxs(b.CommandGroup,{heading:"Navigation",children:[n.main.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>x(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title)),n.operations.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>x(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title)),n.intelligence.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>x(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title))]}),e.jsx(b.CommandGroup,{heading:"Settings",children:n.support.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>x(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title))}),e.jsx(b.CommandGroup,{heading:"Switch team",children:m.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>x(!1),children:[e.jsxs(u.Avatar,{size:"s",className:"mr-2",type:"organization",children:[e.jsx(u.AvatarImage,{src:r.avatarUrl,alt:r.name}),e.jsx(u.AvatarFallback,{size:"s",type:"organization",children:A(r.name)})]}),e.jsx("span",{children:r.name})]},r.name))})]})]})]})}function G({navigationData:n,user:l,activeTeam:m,onNavigate:i,navigationMode:j,onNavigationModeChange:f}){const[v,x]=g.useState(!1),S=g.useRef(null);g.useEffect(()=>{if(!v)return;const a=h=>{S.current&&!S.current.contains(h.target)&&x(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[v]);const w=[...n.main,...n.operations,...n.intelligence],y=T(l.name);return e.jsxs("div",{style:{width:"100%"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",height:48,backgroundColor:"#162736",padding:"0 16px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[e.jsx("rect",{width:"20",height:"20",rx:"4",fill:"#005F85"}),e.jsx("rect",{x:"4",y:"4",width:"5",height:"5",rx:"1",fill:"white"}),e.jsx("rect",{x:"11",y:"4",width:"5",height:"5",rx:"1",fill:"white",opacity:"0.6"}),e.jsx("rect",{x:"4",y:"11",width:"5",height:"5",rx:"1",fill:"white",opacity:"0.6"}),e.jsx("rect",{x:"11",y:"11",width:"5",height:"5",rx:"1",fill:"white",opacity:"0.4"})]}),e.jsx("svg",{width:"28",height:"22",viewBox:"0 0 28 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M4.39355 0.688477C6.89528 0.688477 8.12094 1.67409 8.12109 3.74609V7.69043H5.5332V2.87695H3.28711V8.03125L8.12109 11.458V18.2705C8.12109 20.3262 6.92916 21.3125 4.39355 21.3125C1.85827 21.3124 0.701172 20.3261 0.701172 18.2705L0.700195 13.7412H3.28711V19.1396H5.5332V12.6777L0.701172 9.23438V3.74609C0.701322 1.67422 1.89214 0.688597 4.39355 0.688477ZM13.8379 0.6875C16.4752 0.687615 17.6152 1.67395 17.6152 3.74609V10.5312L12.6113 13.7236V19.123H15.0273V14.3096H17.6143V18.2705C17.6143 20.3262 16.4235 21.3125 13.8027 21.3125C11.1821 21.3125 10.0244 20.3262 10.0244 18.2705V3.74609H10.0254C10.0254 1.67382 11.2003 0.6875 13.8379 0.6875ZM23.333 0.6875C25.9537 0.6875 27.1113 1.67378 27.1113 3.72949V18.2539H27.1104C27.1104 20.3261 25.9363 21.3125 23.2988 21.3125C20.6612 21.3125 19.5205 20.3262 19.5205 18.2539V11.4688L24.5254 8.27637V2.87695H22.1084V7.69043H19.5215V3.72949C19.5215 1.67384 20.7124 0.687556 23.333 0.6875ZM22.1084 12.2197V19.1396H24.5254V10.5986L22.1084 12.2197ZM12.6113 11.4014L15.0273 9.78027V2.86035H12.6113V11.4014Z",fill:"white"})})]}),e.jsx("div",{style:{flex:1}}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[e.jsx("button",{onClick:()=>i?.("/notifications"),style:{background:"none",border:"none",cursor:"pointer",padding:6,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},onMouseEnter:a=>{a.currentTarget.style.backgroundColor="rgba(255,255,255,0.1)"},onMouseLeave:a=>{a.currentTarget.style.backgroundColor="transparent"},children:e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"}),e.jsx("path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0"})]})}),e.jsxs("div",{ref:S,style:{position:"relative"},children:[e.jsx("button",{onClick:()=>x(a=>!a),style:{width:32,height:32,borderRadius:"50%",backgroundColor:"#005F85",color:"white",border:"2px solid rgba(255,255,255,0.3)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:600,padding:0},children:l.avatarUrl?e.jsx("img",{src:l.avatarUrl,alt:l.name,style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover"}}):y}),v&&e.jsxs("div",{style:{position:"absolute",top:40,right:0,width:220,backgroundColor:"white",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.15)",zIndex:9999,padding:"4px 0",fontSize:14},children:[e.jsxs("div",{style:{padding:"8px 12px",borderBottom:"1px solid #e5e7eb"},children:[e.jsx("div",{style:{fontWeight:600,color:"#111827"},children:l.name}),e.jsx("div",{style:{fontSize:12,color:"#6b7280"},children:l.email})]}),e.jsxs("div",{style:{padding:"4px 0",borderBottom:"1px solid #e5e7eb"},children:[e.jsx("div",{style:{padding:"4px 12px",fontSize:11,fontWeight:500,color:"#9ca3af",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Navigation"}),e.jsxs("button",{onClick:()=>{f("sidebar"),x(!1)},style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",background:"none",border:"none",cursor:"pointer",fontSize:14,color:"#374151",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.backgroundColor="#f3f4f6"},onMouseLeave:a=>{a.currentTarget.style.backgroundColor="transparent"},children:[e.jsx("span",{style:{flex:1},children:"New sidebar navigation"}),j==="sidebar"&&e.jsx("span",{style:{color:"#005F85",fontWeight:700},children:"✓"})]}),e.jsxs("button",{onClick:()=>{f("horizontal"),x(!1)},style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",background:"none",border:"none",cursor:"pointer",fontSize:14,color:"#374151",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.backgroundColor="#f3f4f6"},onMouseLeave:a=>{a.currentTarget.style.backgroundColor="transparent"},children:[e.jsx("span",{style:{flex:1},children:"Old horizontal menu"}),j==="horizontal"&&e.jsx("span",{style:{color:"#005F85",fontWeight:700},children:"✓"})]})]}),e.jsx("div",{style:{padding:"4px 0"},children:e.jsx("button",{onClick:()=>{i?.("/auth/sign-out"),x(!1)},style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",background:"none",border:"none",cursor:"pointer",fontSize:14,color:"#dc2626",textAlign:"left"},onMouseEnter:a=>{a.currentTarget.style.backgroundColor="#fef2f2"},onMouseLeave:a=>{a.currentTarget.style.backgroundColor="transparent"},children:"Sign out"})})]})]})]})]}),e.jsx("div",{style:{display:"flex",alignItems:"center",height:40,backgroundColor:"#1e3a4f",padding:"0 16px",gap:2,overflowX:"auto"},children:w.map(a=>{const h=a.isActive||(a.items?.some(C=>C.isActive)??!1);return e.jsx("button",{onClick:C=>{C.preventDefault(),i?.(a.url)},style:{padding:"6px 14px",borderRadius:4,border:"none",cursor:"pointer",fontSize:13,fontWeight:h?600:400,color:"white",backgroundColor:h?"#005F85":"transparent",whiteSpace:"nowrap",transition:"background-color 0.15s"},onMouseEnter:C=>{h||(C.currentTarget.style.backgroundColor="rgba(255,255,255,0.1)")},onMouseLeave:C=>{h||(C.currentTarget.style.backgroundColor="transparent")},children:a.title},a.title)})})]})}function q(){const{state:n,toggleSidebar:l}=t.useSidebar(),m=n==="collapsed";return g.useEffect(()=>{const i=j=>{j.key==="["&&(j.preventDefault(),l())};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[l]),e.jsxs(c.Tooltip,{delayDuration:500,children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(t.SidebarTrigger,{className:"-ml-1"})}),e.jsx(c.TooltipContent,{side:"bottom",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:m?"Expand sidebar":"Collapse sidebar"}),e.jsx(M.Kbd,{size:"s",variant:"dark",children:"["})]})})]})}function K({navigationData:n=U,user:l=F,teams:m=B,defaultSidebarOpen:i=!0,headerContent:j,headerTabs:f,headerActions:v,children:x,onNavigate:S}){const[w,y]=g.useState("sidebar"),[a]=g.useState(m[0]);return w==="horizontal"?e.jsxs("div",{className:"h-screen overflow-hidden",style:{display:"flex",flexDirection:"column"},children:[e.jsx(G,{navigationData:n,user:l,activeTeam:a,onNavigate:S,navigationMode:w,onNavigationModeChange:y}),e.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0,backgroundColor:"var(--color-surface-base)"},children:x})]}):e.jsx("div",{className:"h-screen overflow-hidden",children:e.jsxs(t.SidebarProvider,{defaultOpen:i,children:[e.jsx(R,{navigationData:n,user:l,teams:m,onNavigate:S,navigationMode:w,onNavigationModeChange:y}),e.jsxs(t.SidebarInset,{children:[(j||v||f)&&e.jsxs("header",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-[var(--color-border-primary-subtle)] transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12 box-border px-[var(--space-m)]",children:[e.jsx(q,{}),e.jsx(I.Separator,{layout:"horizontal",className:"mr-2 h-4"}),e.jsx("div",{className:"flex-1 min-w-0",children:j}),e.jsxs("div",{className:"flex items-center gap-2 ml-auto shrink-0",children:[f&&e.jsx("div",{className:"flex items-center gap-2",children:f}),f&&v&&e.jsx("span",{className:"text-[var(--color-text-tertiary)] select-none","aria-hidden":!0,children:"•"}),v&&e.jsx("div",{className:"flex items-center gap-2",children:v})]})]}),e.jsx("div",{className:"flex flex-1 flex-col overflow-auto min-h-0 min-w-0",children:x})]})]})})}exports.AppFrame=K;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),H=require("react"),l=require("../fundamental/sidebar.cjs"),E=require("../fundamental/button.cjs"),p=require("../fundamental/icon.cjs"),d=require("lucide-react"),x=require("../fundamental/avatar.cjs"),L=require("../fundamental/separator.cjs"),M=require("../fundamental/kbd.cjs"),a=require("../fundamental/dropdown-menu.cjs"),c=require("../fundamental/tooltip.cjs"),b=require("../fundamental/command.cjs");function F(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const m in o)if(m!=="default"){const t=Object.getOwnPropertyDescriptor(o,m);Object.defineProperty(n,m,t.get?t:{enumerable:!0,get:()=>o[m]})}}return n.default=o,Object.freeze(n)}const f=F(H),O={name:"John Doe",email:"john@example.com",avatarUrl:"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=32&h=32&fit=crop&crop=face"},B=[{name:"Acme Corp",role:"Admin",plan:"Enterprise",avatarUrl:"https://useful-toucan-91.convex.cloud/api/storage/5e36a31d-3f0a-4bb0-95db-f5b1c8e8af93"},{name:"Startup Inc",role:"Member",plan:"Pro",avatarUrl:"https://useful-toucan-91.convex.cloud/api/storage/5e36a31d-3f0a-4bb0-95db-f5b1c8e8af93"}],R={main:[{title:"Home",icon:d.House,url:"/home",isActive:!1},{title:"Boards",icon:d.LayoutDashboard,url:"/boards",isActive:!1}],operations:[{title:"Voyage economics",icon:d.Ship,url:"/freight-planner",isActive:!1,items:[]},{title:"Trade desk",icon:d.TrendingUp,url:"/trade-desk",isActive:!1,items:[]},{title:"Agreements",icon:d.ScrollText,url:"/agreements",isActive:!0,items:[{title:"Recaps",url:"/agreements/recaps",isActive:!0},{title:"Contracts",url:"/agreements/contracts",isActive:!1},{title:"Clause library",url:"/agreements/clause-library",isActive:!1}]},{title:"Compliance",icon:d.ShieldCheck,url:"/compliance",isActive:!1,items:[]}],intelligence:[{title:"Global market",icon:d.Globe,url:"/global-market",isActive:!1,items:[{title:"Supply",url:"/global-market/supply",isActive:!1},{title:"Commodities",url:"/global-market/commodities",isActive:!1},{title:"Freight",url:"/global-market/freight",isActive:!1}]},{title:"Assets",icon:d.Container,url:"/assets",isActive:!1,items:[{title:"Vessels",url:"/assets/vessels",isActive:!1},{title:"Fleets",url:"/assets/fleets",isActive:!1},{title:"Ports",url:"/assets/ports",isActive:!1},{title:"Canals",url:"/assets/canals",isActive:!1}]},{title:"Fixtures",icon:d.Anchor,url:"/fixtures",isActive:!1}],support:[{title:"Notifications",icon:d.Bell,url:"/notifications",isActive:!1},{title:"Help & support",icon:d.CircleHelp,url:"/help-support",isActive:!1}]},V=o=>o.split(" ").filter(Boolean).map(n=>n[0]).join("").slice(0,2).toUpperCase(),T=o=>o.split(" ").filter(Boolean).map(n=>n[0]).join("").slice(0,2).toUpperCase(),I=()=>typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.userAgent);function D(o){const n={};return[...o.main||[],...o.operations||[],...o.intelligence||[],...o.support||[]].forEach(t=>{if(t.items&&t.items.length>0){const j=t.items.some(g=>g.isActive);n[t.title]=j}}),n}function U({navigationData:o,user:n,teams:m,onNavigate:t,navigationMode:j,onNavigationModeChange:g}){const[y,h]=f.useState(!1),[w,C]=f.useState(""),[S,A]=f.useState(()=>D(o)),[v,N]=f.useState(m[0]),z=r=>{A(i=>({...i,[r]:!i[r]}))},s=r=>r.items&&r.items.some(i=>i.isActive),u=r=>{if(r.items&&r.items.length>0){const i=r.items.find(k=>k.isActive);if(i)return`${r.title} → ${i.title}`}return r.title};return f.useEffect(()=>{const r=i=>{i.key==="k"&&(i.metaKey||i.ctrlKey)&&(i.preventDefault(),h(k=>!k))};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[]),f.useEffect(()=>{A(D(o))},[o]),e.jsxs(c.TooltipProvider,{delayDuration:100,children:[e.jsxs(l.Sidebar,{variant:"sidebar",collapsible:"icon",className:"flex h-full flex-col",children:[e.jsx(l.SidebarHeader,{className:"sticky top-0 z-10 h-12 border-b border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] group-data-[collapsible=icon]:flex group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:px-2 box-border",children:e.jsx("div",{className:"flex h-[22px] w-7 items-center justify-center",children:e.jsx("svg",{width:"28",height:"22",viewBox:"0 0 28 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M4.39355 0.688477C6.89528 0.688477 8.12094 1.67409 8.12109 3.74609V7.69043H5.5332V2.87695H3.28711V8.03125L8.12109 11.458V18.2705C8.12109 20.3262 6.92916 21.3125 4.39355 21.3125C1.85827 21.3124 0.701172 20.3261 0.701172 18.2705L0.700195 13.7412H3.28711V19.1396H5.5332V12.6777L0.701172 9.23438V3.74609C0.701322 1.67422 1.89214 0.688597 4.39355 0.688477ZM13.8379 0.6875C16.4752 0.687615 17.6152 1.67395 17.6152 3.74609V10.5312L12.6113 13.7236V19.123H15.0273V14.3096H17.6143V18.2705C17.6143 20.3262 16.4235 21.3125 13.8027 21.3125C11.1821 21.3125 10.0244 20.3262 10.0244 18.2705V3.74609H10.0254C10.0254 1.67382 11.2003 0.6875 13.8379 0.6875ZM23.333 0.6875C25.9537 0.6875 27.1113 1.67378 27.1113 3.72949V18.2539H27.1104C27.1104 20.3261 25.9363 21.3125 23.2988 21.3125C20.6612 21.3125 19.5205 20.3262 19.5205 18.2539V11.4688L24.5254 8.27637V2.87695H22.1084V7.69043H19.5215V3.72949C19.5215 1.67384 20.7124 0.687556 23.333 0.6875ZM22.1084 12.2197V19.1396H24.5254V10.5986L22.1084 12.2197ZM12.6113 11.4014L15.0273 9.78027V2.86035H12.6113V11.4014Z",fill:"#005F85"})})})}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto group-data-[collapsible=icon]:overflow-hidden","data-sidebar":"content",children:[e.jsx("div",{className:"p-[var(--space-m)] pt-[var(--space-s)] group-data-[collapsible=icon]:px-2",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute top-1/2 left-2 -translate-y-1/2 group-data-[collapsible=icon]:hidden",children:e.jsx(p.Icon,{name:d.Search,size:"m",color:"tertiary"})}),e.jsxs("div",{className:"group-data-[collapsible=icon]:hidden",children:[e.jsx("button",{onClick:()=>h(!0),className:"text-body-md flex h-8 w-full cursor-pointer items-center rounded-m border border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] px-3 py-1 pr-20 pl-8 text-left text-[var(--color-text-tertiary)] transition-colors hover:border-[var(--color-border-primary-medium)] hover:!bg-[var(--color-background-neutral-subtlest-hovered)] focus:border-[var(--color-border-brand-bold)] focus:ring-2 focus:ring-[var(--color-border-brand-bold)]/20 focus:ring-offset-0 focus:outline-none active:border-[var(--color-border-primary-medium)]",children:"Search"}),e.jsxs("div",{className:"absolute top-1/2 right-2 flex -translate-y-1/2 gap-1",children:[e.jsx(M.Kbd,{size:"s",children:I()?"⌘":"Ctrl"}),e.jsx(M.Kbd,{size:"s",children:"K"})]})]}),e.jsxs(c.Tooltip,{delayDuration:500,children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx("button",{onClick:()=>h(!0),className:"hidden h-8 w-8 cursor-pointer items-center justify-center rounded border border-[var(--color-border-primary-subtle)] bg-transparent transition-all duration-200 group-data-[collapsible=icon]:flex hover:border-[var(--color-border-primary-medium)] hover:!bg-[var(--color-background-neutral-subtlest-hovered)] focus:border-[var(--color-border-brand-bold)] focus:ring-2 focus:ring-[var(--color-border-brand-bold)]/20 focus:ring-offset-0 focus:outline-none active:border-[var(--color-border-primary-medium)]","aria-label":"Search",children:e.jsx(p.Icon,{name:d.Search,size:"m",color:"tertiary"})})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:"Search"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(M.Kbd,{size:"s",variant:"dark",children:I()?"⌘":"Ctrl"}),e.jsx(M.Kbd,{size:"s",variant:"dark",children:"K"})]})]})})]})]})}),e.jsx(l.SidebarGroup,{className:"pb-1 mt-1 p-[var(--space-s)]",children:e.jsx(l.SidebarGroupContent,{children:e.jsx(l.SidebarMenu,{children:o.main.map(r=>e.jsx(l.SidebarMenuItem,{children:e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(l.SidebarMenuButton,{isActive:r.isActive,onClick:i=>{t&&(i.preventDefault(),t(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:u(r)})]})},r.title))})})}),e.jsx("div",{className:"my-2 hidden justify-center px-2 group-data-[collapsible=icon]:flex",children:e.jsx(L.Separator,{layout:"vertical"})}),e.jsxs(l.SidebarGroup,{className:"mt-1 p-[var(--space-s)]",children:[e.jsx(l.SidebarGroupLabel,{className:"py-1 pb-1.5 group-data-[collapsible=icon]:hidden",children:"Operations"}),e.jsx(l.SidebarGroupContent,{children:e.jsx(l.SidebarMenu,{children:o.operations.map(r=>e.jsx(l.SidebarMenuItem,{children:r.items&&r.items.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"group-data-[collapsible=icon]:hidden",children:e.jsxs(l.SidebarMenuButton,{isActive:r.isActive&&!r.items?.length,onClick:()=>z(r.title),children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title}),e.jsx(p.Icon,{name:d.ChevronRight,size:"s",className:`ml-auto transition-transform ${S[r.title]?"rotate-90":""}`})]})}),r.items&&r.items.length>0&&S[r.title]&&e.jsx(l.SidebarMenuSub,{children:r.items.map(i=>e.jsx(l.SidebarMenuSubItem,{children:e.jsx(l.SidebarMenuSubButton,{isActive:i.isActive,onClick:k=>{t&&(k.preventDefault(),t(i.url))},children:e.jsx("span",{children:i.title})})},i.title))}),e.jsx("div",{className:"hidden group-data-[collapsible=icon]:block",children:e.jsxs(a.DropdownMenu,{children:[e.jsxs(c.Tooltip,{children:[e.jsx(a.DropdownMenuTrigger,{asChild:!0,children:e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(l.SidebarMenuButton,{isActive:s(r),className:"w-full justify-center",children:e.jsx(p.Icon,{name:r.icon,size:"s"})})})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:u(r)})]}),e.jsxs(a.DropdownMenuContent,{side:"right",sideOffset:8,align:"start",children:[e.jsx(a.DropdownMenuLabel,{className:"text-body-medium-sm font-medium",children:r.title}),e.jsx(a.DropdownMenuSeparator,{}),r.items.map(i=>e.jsx(a.DropdownMenuItem,{className:i.isActive?"bg-[var(--color-background-blue-subtle-selected)] text-[var(--color-text-brand-bold)]":"",onSelect:()=>{t&&t(i.url)},children:i.title},i.title))]})]})})]}):e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(l.SidebarMenuButton,{isActive:r.isActive,onClick:i=>{t&&(i.preventDefault(),t(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:u(r)})]})},r.title))})})]}),e.jsx("div",{className:"my-2 hidden justify-center px-2 group-data-[collapsible=icon]:flex",children:e.jsx(L.Separator,{layout:"vertical"})}),e.jsxs(l.SidebarGroup,{className:"mt-1 p-[var(--space-s)]",children:[e.jsx(l.SidebarGroupLabel,{className:"py-1 pb-1.5 group-data-[collapsible=icon]:hidden",children:"Intelligence"}),e.jsx(l.SidebarGroupContent,{children:e.jsx(l.SidebarMenu,{children:o.intelligence.map(r=>e.jsx(l.SidebarMenuItem,{children:r.items&&r.items.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"group-data-[collapsible=icon]:hidden",children:e.jsxs(l.SidebarMenuButton,{isActive:r.isActive&&!r.items?.length,onClick:()=>z(r.title),children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title}),e.jsx(p.Icon,{name:d.ChevronRight,size:"s",className:`ml-auto transition-transform ${S[r.title]?"rotate-90":""}`})]})}),r.items&&r.items.length>0&&S[r.title]&&e.jsx(l.SidebarMenuSub,{children:r.items.map(i=>e.jsx(l.SidebarMenuSubItem,{children:e.jsx(l.SidebarMenuSubButton,{isActive:i.isActive,onClick:k=>{t&&(k.preventDefault(),t(i.url))},children:e.jsx("span",{children:i.title})})},i.title))}),e.jsx("div",{className:"hidden group-data-[collapsible=icon]:block",children:e.jsxs(a.DropdownMenu,{children:[e.jsxs(c.Tooltip,{children:[e.jsx(a.DropdownMenuTrigger,{asChild:!0,children:e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(l.SidebarMenuButton,{isActive:s(r),className:"w-full justify-center",children:e.jsx(p.Icon,{name:r.icon,size:"s"})})})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:u(r)})]}),e.jsxs(a.DropdownMenuContent,{side:"right",sideOffset:8,align:"start",children:[e.jsx(a.DropdownMenuLabel,{className:"text-body-medium-sm font-medium",children:r.title}),e.jsx(a.DropdownMenuSeparator,{}),r.items.map(i=>e.jsx(a.DropdownMenuItem,{className:i.isActive?"bg-[var(--color-background-blue-subtle-selected)] text-[var(--color-text-brand-bold)]":"",onSelect:()=>{t&&t(i.url)},children:i.title},i.title))]})]})})]}):e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(l.SidebarMenuButton,{isActive:r.isActive,onClick:i=>{t&&(i.preventDefault(),t(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:u(r)})]})},r.title))})})]}),e.jsx(l.SidebarGroup,{className:"pb-2 p-[var(--space-s)] mt-auto",children:e.jsx(l.SidebarGroupContent,{children:e.jsx(l.SidebarMenu,{children:o.support.map(r=>e.jsx(l.SidebarMenuItem,{children:e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsxs(l.SidebarMenuButton,{isActive:r.isActive,onClick:i=>{t&&(i.preventDefault(),t(r.url))},children:[e.jsx(p.Icon,{name:r.icon,size:"s"}),e.jsx("span",{children:r.title})]})}),e.jsx(c.TooltipContent,{side:"right",className:"hidden group-data-[collapsible=icon]:block",children:u(r)})]})},r.title))})})})]}),e.jsx(l.SidebarFooter,{className:"sticky bottom-0 z-10 border-t border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] group-data-[collapsible=icon]:px-2 group-data-[collapsible=icon]:py-2",children:e.jsx("div",{className:"group/user-menu rounded-m border border-[var(--color-border-primary-subtle)] transition-colors hover:border-[var(--color-border-primary-medium)] group-data-[collapsible=icon]:rounded-none group-data-[collapsible=icon]:border-none",children:e.jsxs(a.DropdownMenu,{children:[e.jsx(a.DropdownMenuTrigger,{asChild:!0,children:e.jsxs(E.Button,{variant:"ghost",className:"h-auto min-h-[56px] w-full justify-start rounded-m px-3 py-2 hover:!bg-[var(--color-background-neutral-subtlest-hovered)] group-data-[collapsible=icon]:h-8 group-data-[collapsible=icon]:min-h-0 group-data-[collapsible=icon]:w-8 group-data-[collapsible=icon]:p-0",children:[e.jsxs("div",{className:"flex w-full items-center gap-3 group-data-[collapsible=icon]:hidden",children:[e.jsxs("div",{className:"relative flex-shrink-0",children:[e.jsxs(x.Avatar,{size:"m",type:"user",children:[e.jsx(x.AvatarImage,{src:n.avatarUrl,alt:n.name}),e.jsx(x.AvatarFallback,{size:"m",type:"user",children:V(n.name)})]}),e.jsx("div",{className:"absolute -right-1 -bottom-1 rounded-[4px] border-2 border-white p-0",children:e.jsxs(x.Avatar,{size:"xxs",type:"organization",children:[e.jsx(x.AvatarImage,{src:v.avatarUrl,alt:v.name}),e.jsx(x.AvatarFallback,{size:"xxs",type:"organization",children:T(v.name)})]})})]}),e.jsxs("div",{className:"min-w-0 flex-1 text-left",children:[e.jsx("div",{className:"text-body-medium-sm truncate font-medium text-[var(--color-text-primary)]",children:n.name}),e.jsxs("div",{className:"text-body-xsm text-[var(--color-text-secondary)]",children:[v.role," at ",v.name]})]}),e.jsx(p.Icon,{name:d.ChevronDown,size:"m",className:"opacity-50"})]}),e.jsxs("div",{className:"relative hidden group-data-[collapsible=icon]:block",children:[e.jsxs(x.Avatar,{size:"s",type:"user",children:[e.jsx(x.AvatarImage,{src:n.avatarUrl,alt:n.name}),e.jsx(x.AvatarFallback,{size:"s",type:"user",children:V(n.name)})]}),e.jsx("div",{className:"absolute -right-1 -bottom-1 rounded-[2px] border-2 border-white bg-[var(--color-surface-primary)]",children:e.jsxs(x.Avatar,{size:"xxs",type:"organization",children:[e.jsx(x.AvatarImage,{src:v.avatarUrl,alt:v.name}),e.jsx(x.AvatarFallback,{size:"xxs",type:"organization",children:T(v.name)})]})})]})]})}),e.jsxs(a.DropdownMenuContent,{className:"w-[--radix-dropdown-menu-trigger-width]",align:"start",side:"top",sideOffset:4,children:[e.jsx(a.DropdownMenuLabel,{className:"p-0 font-normal",children:e.jsxs("div",{className:"flex items-center gap-3 px-2 py-2",children:[e.jsxs(x.Avatar,{size:"s",type:"user",children:[e.jsx(x.AvatarImage,{src:n.avatarUrl,alt:n.name}),e.jsx(x.AvatarFallback,{size:"s",type:"user",children:V(n.name)})]}),e.jsxs("div",{className:"grid flex-1 text-left",children:[e.jsx("span",{className:"text-body-medium-sm truncate font-semibold text-[var(--color-text-primary)]",children:n.name}),e.jsx("span",{className:"text-caption-xsm truncate text-[var(--color-text-secondary)]",children:n.email})]})]})}),e.jsx(a.DropdownMenuSeparator,{}),e.jsx(a.DropdownMenuLabel,{className:"px-2 py-1 text-[12px] font-medium text-[var(--color-text-tertiary)]",children:"Organizations"}),m.map(r=>e.jsxs(a.DropdownMenuItem,{onSelect:()=>N(r),className:"mx-1 mb-1 h-10 cursor-pointer gap-2 px-1 pr-2 pl-1",children:[e.jsxs(x.Avatar,{size:"s",type:"organization",children:[e.jsx(x.AvatarImage,{src:r.avatarUrl,alt:r.name}),e.jsx(x.AvatarFallback,{size:"s",type:"organization",children:T(r.name)})]}),e.jsxs("div",{className:"flex flex-1 flex-col text-left",children:[e.jsx("span",{className:"text-body-medium-sm truncate font-semibold text-[var(--color-text-primary)]",children:r.name}),e.jsxs("span",{className:"text-caption-xsm truncate text-[var(--color-text-secondary)]",children:[r.role," • ",r.plan," plan"]})]}),v.name===r.name&&e.jsx(p.Icon,{name:d.Check,size:"m",className:"text-[var(--color-icon-brand-bold)]"})]},r.name)),e.jsx(a.DropdownMenuSeparator,{}),e.jsx(a.DropdownMenuLabel,{className:"px-2 py-1 text-[12px] font-medium text-[var(--color-text-tertiary)]",children:"Navigation"}),e.jsxs(a.DropdownMenuItem,{className:"mx-1 mb-0.5 cursor-pointer gap-2 px-2",onSelect:()=>g("sidebar"),children:[e.jsx("span",{className:"flex-1",children:"New sidebar navigation"}),j==="sidebar"&&e.jsx(p.Icon,{name:d.Check,size:"m",className:"text-[var(--color-icon-brand-bold)]"})]}),e.jsxs(a.DropdownMenuItem,{className:"mx-1 mb-1 cursor-pointer gap-2 px-2",onSelect:()=>g("horizontal"),children:[e.jsx("span",{className:"flex-1",children:"Old horizontal menu"}),j==="horizontal"&&e.jsx(p.Icon,{name:d.Check,size:"m",className:"text-[var(--color-icon-brand-bold)]"})]}),e.jsx(a.DropdownMenuSeparator,{}),e.jsx(a.DropdownMenuItem,{icon:d.User,className:"cursor-pointer",onSelect:()=>{t&&t("/user/profile")},children:"User profile"}),e.jsx(a.DropdownMenuItem,{icon:d.Settings,className:"cursor-pointer",onSelect:()=>{t&&t("/organization/settings")},children:"Organization settings"}),e.jsx(a.DropdownMenuSeparator,{}),e.jsx(a.DropdownMenuItem,{icon:d.LogOut,destructive:!0,className:"cursor-pointer",onSelect:()=>{t&&t("/auth/sign-out")},children:"Sign out"})]})]})})}),e.jsx(l.SidebarRail,{})]}),e.jsxs(b.CommandDialog,{open:y,onOpenChange:h,children:[e.jsx(b.CommandInput,{placeholder:"Type a command or search...",value:w,onValueChange:C,clearable:!1}),e.jsxs(b.CommandList,{children:[e.jsx(b.CommandEmpty,{children:"No results found."}),e.jsxs(b.CommandGroup,{heading:"Quick actions",children:[e.jsxs(b.CommandItem,{onSelect:()=>console.log("Reload"),children:[e.jsx(p.Icon,{name:d.RotateCcw,size:"s",className:"mr-2"}),e.jsx("span",{children:"Reload Page"}),e.jsxs("span",{className:"text-caption-sm ml-auto text-[var(--color-text-tertiary)]",children:[I()?"⌘":"Ctrl","R"]})]}),e.jsxs(b.CommandItem,{onSelect:()=>h(!1),children:[e.jsx(p.Icon,{name:d.Search,size:"s",className:"mr-2"}),e.jsx("span",{children:"Search"}),e.jsxs("span",{className:"text-caption-sm ml-auto text-[var(--color-text-tertiary)]",children:[I()?"⌘":"Ctrl","K"]})]})]}),e.jsxs(b.CommandGroup,{heading:"Navigation",children:[o.main.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>h(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title)),o.operations.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>h(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title)),o.intelligence.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>h(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title))]}),e.jsx(b.CommandGroup,{heading:"Settings",children:o.support.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>h(!1),children:[e.jsx(p.Icon,{name:r.icon,size:"s",className:"mr-2"}),e.jsx("span",{children:r.title})]},r.title))}),e.jsx(b.CommandGroup,{heading:"Switch team",children:m.map(r=>e.jsxs(b.CommandItem,{onSelect:()=>h(!1),children:[e.jsxs(x.Avatar,{size:"s",className:"mr-2",type:"organization",children:[e.jsx(x.AvatarImage,{src:r.avatarUrl,alt:r.name}),e.jsx(x.AvatarFallback,{size:"s",type:"organization",children:T(r.name)})]}),e.jsx("span",{children:r.name})]},r.name))})]})]})]})}function G({navigationData:o,user:n,activeTeam:m,onNavigate:t,navigationMode:j,onNavigationModeChange:g}){const[y,h]=f.useState(!1),w=f.useRef(null);f.useEffect(()=>{if(!y)return;const s=u=>{w.current&&!w.current.contains(u.target)&&h(!1)};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[y]);const C=[...o.main,...o.operations,...o.intelligence],S=C.find(s=>s.isActive||s.items?.some(u=>u.isActive))?.title??null,[A,v]=f.useState(S),N=C.find(s=>s.title===A)?.items??[],z=V(n.name);return e.jsxs("div",{style:{width:"100%"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",height:48,backgroundColor:"#162736",padding:"0 16px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[e.jsx("rect",{width:"20",height:"20",rx:"4",fill:"#005F85"}),e.jsx("rect",{x:"4",y:"4",width:"5",height:"5",rx:"1",fill:"white"}),e.jsx("rect",{x:"11",y:"4",width:"5",height:"5",rx:"1",fill:"white",opacity:"0.6"}),e.jsx("rect",{x:"4",y:"11",width:"5",height:"5",rx:"1",fill:"white",opacity:"0.6"}),e.jsx("rect",{x:"11",y:"11",width:"5",height:"5",rx:"1",fill:"white",opacity:"0.4"})]}),e.jsx("svg",{width:"28",height:"22",viewBox:"0 0 28 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M4.39355 0.688477C6.89528 0.688477 8.12094 1.67409 8.12109 3.74609V7.69043H5.5332V2.87695H3.28711V8.03125L8.12109 11.458V18.2705C8.12109 20.3262 6.92916 21.3125 4.39355 21.3125C1.85827 21.3124 0.701172 20.3261 0.701172 18.2705L0.700195 13.7412H3.28711V19.1396H5.5332V12.6777L0.701172 9.23438V3.74609C0.701322 1.67422 1.89214 0.688597 4.39355 0.688477ZM13.8379 0.6875C16.4752 0.687615 17.6152 1.67395 17.6152 3.74609V10.5312L12.6113 13.7236V19.123H15.0273V14.3096H17.6143V18.2705C17.6143 20.3262 16.4235 21.3125 13.8027 21.3125C11.1821 21.3125 10.0244 20.3262 10.0244 18.2705V3.74609H10.0254C10.0254 1.67382 11.2003 0.6875 13.8379 0.6875ZM23.333 0.6875C25.9537 0.6875 27.1113 1.67378 27.1113 3.72949V18.2539H27.1104C27.1104 20.3261 25.9363 21.3125 23.2988 21.3125C20.6612 21.3125 19.5205 20.3262 19.5205 18.2539V11.4688L24.5254 8.27637V2.87695H22.1084V7.69043H19.5215V3.72949C19.5215 1.67384 20.7124 0.687556 23.333 0.6875ZM22.1084 12.2197V19.1396H24.5254V10.5986L22.1084 12.2197ZM12.6113 11.4014L15.0273 9.78027V2.86035H12.6113V11.4014Z",fill:"white"})})]}),e.jsx("div",{style:{flex:1}}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[e.jsx("button",{onClick:()=>t?.("/notifications"),style:{background:"none",border:"none",cursor:"pointer",padding:6,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},onMouseEnter:s=>{s.currentTarget.style.backgroundColor="rgba(255,255,255,0.1)"},onMouseLeave:s=>{s.currentTarget.style.backgroundColor="transparent"},children:e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"}),e.jsx("path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0"})]})}),e.jsxs("div",{ref:w,style:{position:"relative"},children:[e.jsx("button",{onClick:()=>h(s=>!s),style:{width:32,height:32,borderRadius:"50%",backgroundColor:"#005F85",color:"white",border:"2px solid rgba(255,255,255,0.3)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:600,padding:0},children:n.avatarUrl?e.jsx("img",{src:n.avatarUrl,alt:n.name,style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover"}}):z}),y&&e.jsxs("div",{style:{position:"absolute",top:40,right:0,width:220,backgroundColor:"white",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.15)",zIndex:9999,padding:"4px 0",fontSize:14},children:[e.jsxs("div",{style:{padding:"8px 12px",borderBottom:"1px solid #e5e7eb"},children:[e.jsx("div",{style:{fontWeight:600,color:"#111827"},children:n.name}),e.jsx("div",{style:{fontSize:12,color:"#6b7280"},children:n.email})]}),e.jsxs("div",{style:{padding:"4px 0",borderBottom:"1px solid #e5e7eb"},children:[e.jsx("div",{style:{padding:"4px 12px",fontSize:11,fontWeight:500,color:"#9ca3af",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Navigation"}),e.jsxs("button",{onClick:()=>{g("sidebar"),h(!1)},style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",background:"none",border:"none",cursor:"pointer",fontSize:14,color:"#374151",textAlign:"left"},onMouseEnter:s=>{s.currentTarget.style.backgroundColor="#f3f4f6"},onMouseLeave:s=>{s.currentTarget.style.backgroundColor="transparent"},children:[e.jsx("span",{style:{flex:1},children:"New sidebar navigation"}),j==="sidebar"&&e.jsx("span",{style:{color:"#005F85",fontWeight:700},children:"✓"})]}),e.jsxs("button",{onClick:()=>{g("horizontal"),h(!1)},style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",background:"none",border:"none",cursor:"pointer",fontSize:14,color:"#374151",textAlign:"left"},onMouseEnter:s=>{s.currentTarget.style.backgroundColor="#f3f4f6"},onMouseLeave:s=>{s.currentTarget.style.backgroundColor="transparent"},children:[e.jsx("span",{style:{flex:1},children:"Old horizontal menu"}),j==="horizontal"&&e.jsx("span",{style:{color:"#005F85",fontWeight:700},children:"✓"})]})]}),e.jsx("div",{style:{padding:"4px 0"},children:e.jsx("button",{onClick:()=>{t?.("/auth/sign-out"),h(!1)},style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",background:"none",border:"none",cursor:"pointer",fontSize:14,color:"#dc2626",textAlign:"left"},onMouseEnter:s=>{s.currentTarget.style.backgroundColor="#fef2f2"},onMouseLeave:s=>{s.currentTarget.style.backgroundColor="transparent"},children:"Sign out"})})]})]})]})]}),e.jsx("div",{style:{display:"flex",alignItems:"center",height:40,backgroundColor:"#1e3a4f",padding:"0 16px",gap:2,overflowX:"auto"},children:C.map(s=>{const u=s.isActive||(s.items?.some(r=>r.isActive)??!1);return e.jsx("button",{onClick:r=>{r.preventDefault(),v(s.title),t?.(s.url)},style:{padding:"6px 14px",borderRadius:4,border:"none",cursor:"pointer",fontSize:13,fontWeight:u?600:400,color:"white",backgroundColor:u?"#005F85":"transparent",whiteSpace:"nowrap",transition:"background-color 0.15s"},onMouseEnter:r=>{u||(r.currentTarget.style.backgroundColor="rgba(255,255,255,0.1)")},onMouseLeave:r=>{u||(r.currentTarget.style.backgroundColor="transparent")},children:s.title},s.title)})}),N.length>0&&e.jsx("div",{style:{display:"flex",alignItems:"center",height:36,backgroundColor:"#f0f5f8",padding:"0 16px",gap:2,borderBottom:"1px solid #d1dde6",overflowX:"auto"},children:N.map(s=>e.jsx("button",{onClick:u=>{u.preventDefault(),t?.(s.url)},style:{padding:"4px 12px",borderRadius:4,border:"none",cursor:"pointer",fontSize:13,fontWeight:s.isActive?600:400,color:s.isActive?"#005F85":"#374151",backgroundColor:s.isActive?"#dbeeff":"transparent",whiteSpace:"nowrap",transition:"background-color 0.15s"},onMouseEnter:u=>{s.isActive||(u.currentTarget.style.backgroundColor="#e5eef4")},onMouseLeave:u=>{s.isActive||(u.currentTarget.style.backgroundColor="transparent")},children:s.title},s.title))})]})}function P(){const{state:o,toggleSidebar:n}=l.useSidebar(),m=o==="collapsed";return f.useEffect(()=>{const t=j=>{j.key==="["&&(j.preventDefault(),n())};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[n]),e.jsxs(c.Tooltip,{delayDuration:500,children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(l.SidebarTrigger,{className:"-ml-1"})}),e.jsx(c.TooltipContent,{side:"bottom",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:m?"Expand sidebar":"Collapse sidebar"}),e.jsx(M.Kbd,{size:"s",variant:"dark",children:"["})]})})]})}function q({navigationData:o=R,user:n=O,teams:m=B,defaultSidebarOpen:t=!0,headerContent:j,headerTabs:g,headerActions:y,children:h,onNavigate:w}){const[C,S]=f.useState("sidebar"),[A]=f.useState(m[0]);return C==="horizontal"?e.jsxs("div",{className:"h-screen overflow-hidden",style:{display:"flex",flexDirection:"column"},children:[e.jsx(G,{navigationData:o,user:n,activeTeam:A,onNavigate:w,navigationMode:C,onNavigationModeChange:S}),e.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0,backgroundColor:"var(--color-surface-base)"},children:h})]}):e.jsx("div",{className:"h-screen overflow-hidden",children:e.jsxs(l.SidebarProvider,{defaultOpen:t,children:[e.jsx(U,{navigationData:o,user:n,teams:m,onNavigate:w,navigationMode:C,onNavigationModeChange:S}),e.jsxs(l.SidebarInset,{children:[(j||y||g)&&e.jsxs("header",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-[var(--color-border-primary-subtle)] transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12 box-border px-[var(--space-m)]",children:[e.jsx(P,{}),e.jsx(L.Separator,{layout:"horizontal",className:"mr-2 h-4"}),e.jsx("div",{className:"flex-1 min-w-0",children:j}),e.jsxs("div",{className:"flex items-center gap-2 ml-auto shrink-0",children:[g&&e.jsx("div",{className:"flex items-center gap-2",children:g}),g&&y&&e.jsx("span",{className:"text-[var(--color-text-tertiary)] select-none","aria-hidden":!0,children:"•"}),y&&e.jsx("div",{className:"flex items-center gap-2",children:y})]})]}),e.jsx("div",{className:"flex flex-1 flex-col overflow-auto min-h-0 min-w-0",children:h})]})]})})}exports.AppFrame=q;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsx as r, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import * as d from "react";
|
|
3
3
|
import * as m from "@radix-ui/react-dialog";
|
|
4
|
-
import { Command as
|
|
4
|
+
import { Command as o } from "cmdk";
|
|
5
5
|
import { cn as s } from "../../lib/utils.js";
|
|
6
6
|
import { Icon as b } from "./icon.js";
|
|
7
7
|
import { Button as _ } from "./button.js";
|
|
8
8
|
import { X as h } from "lucide-react";
|
|
9
9
|
import { inputVariants as N } from "./input.js";
|
|
10
|
-
const c = /* @__PURE__ */ d.forwardRef(({ className: e, ...a },
|
|
11
|
-
|
|
10
|
+
const c = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
11
|
+
o,
|
|
12
12
|
{
|
|
13
|
-
ref:
|
|
13
|
+
ref: t,
|
|
14
14
|
loop: !0,
|
|
15
15
|
className: s(
|
|
16
16
|
"flex h-full w-full flex-col overflow-hidden rounded-m bg-[var(--color-surface-primary)] text-[var(--color-text-primary)]",
|
|
@@ -19,8 +19,8 @@ const c = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE
|
|
|
19
19
|
...a
|
|
20
20
|
}
|
|
21
21
|
));
|
|
22
|
-
c.displayName =
|
|
23
|
-
const B = ({ children: e,
|
|
22
|
+
c.displayName = o.displayName;
|
|
23
|
+
const B = ({ children: e, commandProps: a, ...t }) => /* @__PURE__ */ r(m.Root, { ...t, children: /* @__PURE__ */ l(m.Portal, { children: [
|
|
24
24
|
/* @__PURE__ */ r(
|
|
25
25
|
m.Overlay,
|
|
26
26
|
{
|
|
@@ -36,11 +36,18 @@ const B = ({ children: e, ...a }) => /* @__PURE__ */ r(m.Root, { ...a, children:
|
|
|
36
36
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] overflow-hidden rounded-l border border-[var(--color-border-primary-subtle)] bg-[var(--color-surface-primary)] p-0 shadow-lg duration-200 max-w-[450px]"
|
|
37
37
|
),
|
|
38
38
|
"aria-describedby": void 0,
|
|
39
|
-
children: /* @__PURE__ */ r(
|
|
39
|
+
children: /* @__PURE__ */ r(
|
|
40
|
+
c,
|
|
41
|
+
{
|
|
42
|
+
className: "[&_[cmdk-group-heading]]:px-[var(--space-m)] [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--color-text-tertiary)] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4 [&_[cmdk-item]]:px-[var(--space-m)] [&_[cmdk-item]]:min-h-[var(--size-m)] [&_[cmdk-item]]:py-[var(--space-s)] [&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4",
|
|
43
|
+
...a,
|
|
44
|
+
children: e
|
|
45
|
+
}
|
|
46
|
+
)
|
|
40
47
|
}
|
|
41
48
|
)
|
|
42
|
-
] }) }), w = /* @__PURE__ */ d.forwardRef(({ className: e, size: a = "m", clearable:
|
|
43
|
-
const p =
|
|
49
|
+
] }) }), w = /* @__PURE__ */ d.forwardRef(({ className: e, size: a = "m", clearable: t = !0, onClear: u, value: i, ...x }, f) => {
|
|
50
|
+
const p = t && i && String(i).length > 0, v = a === "s" ? "s" : "m", y = a === "s" ? "pl-[30px]" : "pl-[34px]", g = p ? "pr-[calc(var(--size-s)+var(--space-m)+var(--space-s))]" : "";
|
|
44
51
|
return /* @__PURE__ */ l("div", { className: "relative p-[var(--space-s)] border-b border-[var(--color-border-primary-subtle)]", "cmdk-input-wrapper": "", children: [
|
|
45
52
|
/* @__PURE__ */ r(
|
|
46
53
|
b,
|
|
@@ -52,7 +59,7 @@ const B = ({ children: e, ...a }) => /* @__PURE__ */ r(m.Root, { ...a, children:
|
|
|
52
59
|
}
|
|
53
60
|
),
|
|
54
61
|
/* @__PURE__ */ r(
|
|
55
|
-
|
|
62
|
+
o.Input,
|
|
56
63
|
{
|
|
57
64
|
ref: f,
|
|
58
65
|
value: i,
|
|
@@ -92,29 +99,29 @@ const B = ({ children: e, ...a }) => /* @__PURE__ */ r(m.Root, { ...a, children:
|
|
|
92
99
|
)
|
|
93
100
|
] });
|
|
94
101
|
});
|
|
95
|
-
w.displayName =
|
|
96
|
-
const k = /* @__PURE__ */ d.forwardRef(({ className: e, ...a },
|
|
97
|
-
|
|
102
|
+
w.displayName = o.Input.displayName;
|
|
103
|
+
const k = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
104
|
+
o.List,
|
|
98
105
|
{
|
|
99
|
-
ref:
|
|
106
|
+
ref: t,
|
|
100
107
|
className: s("max-h-[300px] overflow-y-auto overflow-x-hidden", e),
|
|
101
108
|
...a
|
|
102
109
|
}
|
|
103
110
|
));
|
|
104
|
-
k.displayName =
|
|
105
|
-
const C = /* @__PURE__ */ d.forwardRef(({ className: e, ...a },
|
|
106
|
-
|
|
111
|
+
k.displayName = o.List.displayName;
|
|
112
|
+
const C = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
113
|
+
o.Empty,
|
|
107
114
|
{
|
|
108
|
-
ref:
|
|
115
|
+
ref: t,
|
|
109
116
|
className: s("py-6 text-center [&]:text-body-md text-[var(--color-text-secondary)]", e),
|
|
110
117
|
...a
|
|
111
118
|
}
|
|
112
119
|
));
|
|
113
|
-
C.displayName =
|
|
114
|
-
const R = /* @__PURE__ */ d.forwardRef(({ className: e, ...a },
|
|
115
|
-
|
|
120
|
+
C.displayName = o.Empty.displayName;
|
|
121
|
+
const R = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
122
|
+
o.Group,
|
|
116
123
|
{
|
|
117
|
-
ref:
|
|
124
|
+
ref: t,
|
|
118
125
|
className: s(
|
|
119
126
|
"overflow-hidden p-[var(--space-s)] text-[var(--color-text-primary)] [&_[cmdk-group-heading]]:px-[var(--space-m)] [&_[cmdk-group-heading]]:py-[var(--space-s)] [&_[cmdk-group-heading]]:[&]:text-body-medium-sm [&_[cmdk-group-heading]]:text-[var(--color-text-tertiary)]",
|
|
120
127
|
e
|
|
@@ -122,20 +129,20 @@ const R = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE
|
|
|
122
129
|
...a
|
|
123
130
|
}
|
|
124
131
|
));
|
|
125
|
-
R.displayName =
|
|
126
|
-
const I = /* @__PURE__ */ d.forwardRef(({ className: e, ...a },
|
|
127
|
-
|
|
132
|
+
R.displayName = o.Group.displayName;
|
|
133
|
+
const I = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
134
|
+
o.Separator,
|
|
128
135
|
{
|
|
129
|
-
ref:
|
|
136
|
+
ref: t,
|
|
130
137
|
className: s("-mx-1 h-px bg-[var(--color-border-primary-subtle)]", e),
|
|
131
138
|
...a
|
|
132
139
|
}
|
|
133
140
|
));
|
|
134
|
-
I.displayName =
|
|
135
|
-
const P = /* @__PURE__ */ d.forwardRef(({ className: e, ...a },
|
|
136
|
-
|
|
141
|
+
I.displayName = o.Separator.displayName;
|
|
142
|
+
const P = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ r(
|
|
143
|
+
o.Item,
|
|
137
144
|
{
|
|
138
|
-
ref:
|
|
145
|
+
ref: t,
|
|
139
146
|
className: s(
|
|
140
147
|
"[&]:text-body-md relative flex cursor-pointer select-none items-center rounded-m px-[var(--space-m)] min-h-[var(--size-m)] py-[var(--space-s)] outline-none transition-colors aria-selected:bg-[var(--color-background-neutral-subtlest-hovered)] aria-selected:text-[var(--color-text-primary)] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
|
|
141
148
|
e
|
|
@@ -143,7 +150,7 @@ const P = /* @__PURE__ */ d.forwardRef(({ className: e, ...a }, o) => /* @__PURE
|
|
|
143
150
|
...a
|
|
144
151
|
}
|
|
145
152
|
));
|
|
146
|
-
P.displayName =
|
|
153
|
+
P.displayName = o.Item.displayName;
|
|
147
154
|
export {
|
|
148
155
|
c as Command,
|
|
149
156
|
B as CommandDialog,
|