@tetrascience-npm/tetrascience-react-ui 0.5.0-beta.30.1 → 0.5.0-beta.31.1
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/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +5 -161
- package/dist/index.js +376 -398
- package/dist/index.js.map +1 -1
- package/dist/index.tailwind.css +1 -1
- package/package.json +1 -1
- package/dist/components/composed/AppHeader/AppHeader.cjs +0 -2
- package/dist/components/composed/AppHeader/AppHeader.cjs.map +0 -1
- package/dist/components/composed/AppHeader/AppHeader.js +0 -35
- package/dist/components/composed/AppHeader/AppHeader.js.map +0 -1
- package/dist/components/composed/AppLayout/AppLayout.cjs +0 -2
- package/dist/components/composed/AppLayout/AppLayout.cjs.map +0 -1
- package/dist/components/composed/AppLayout/AppLayout.js +0 -65
- package/dist/components/composed/AppLayout/AppLayout.js.map +0 -1
- package/dist/components/composed/AssistantModal/AssistantModal.cjs +0 -2
- package/dist/components/composed/AssistantModal/AssistantModal.cjs.map +0 -1
- package/dist/components/composed/AssistantModal/AssistantModal.js +0 -75
- package/dist/components/composed/AssistantModal/AssistantModal.js.map +0 -1
- package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.cjs +0 -3
- package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.cjs.map +0 -1
- package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.js +0 -74
- package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.js.map +0 -1
- package/dist/components/composed/LaunchContent/LaunchContent.cjs +0 -6
- package/dist/components/composed/LaunchContent/LaunchContent.cjs.map +0 -1
- package/dist/components/composed/LaunchContent/LaunchContent.js +0 -66
- package/dist/components/composed/LaunchContent/LaunchContent.js.map +0 -1
- package/dist/components/composed/Main/LaunchContentPanel.cjs +0 -6
- package/dist/components/composed/Main/LaunchContentPanel.cjs.map +0 -1
- package/dist/components/composed/Main/LaunchContentPanel.js +0 -63
- package/dist/components/composed/Main/LaunchContentPanel.js.map +0 -1
- package/dist/components/composed/Main/Main.cjs +0 -2
- package/dist/components/composed/Main/Main.cjs.map +0 -1
- package/dist/components/composed/Main/Main.js +0 -276
- package/dist/components/composed/Main/Main.js.map +0 -1
- package/dist/components/composed/Main/MainHeader.cjs +0 -2
- package/dist/components/composed/Main/MainHeader.cjs.map +0 -1
- package/dist/components/composed/Main/MainHeader.js +0 -36
- package/dist/components/composed/Main/MainHeader.js.map +0 -1
- package/dist/components/composed/Main/MainNavbar.cjs +0 -2
- package/dist/components/composed/Main/MainNavbar.cjs.map +0 -1
- package/dist/components/composed/Main/MainNavbar.js +0 -25
- package/dist/components/composed/Main/MainNavbar.js.map +0 -1
- package/dist/components/composed/Main/MainSidebar.cjs +0 -2
- package/dist/components/composed/Main/MainSidebar.cjs.map +0 -1
- package/dist/components/composed/Main/MainSidebar.js +0 -12
- package/dist/components/composed/Main/MainSidebar.js.map +0 -1
- package/dist/components/composed/Main/MainTabBar.cjs +0 -2
- package/dist/components/composed/Main/MainTabBar.cjs.map +0 -1
- package/dist/components/composed/Main/MainTabBar.js +0 -7
- package/dist/components/composed/Main/MainTabBar.js.map +0 -1
- package/dist/components/composed/Main/ProtocolConfigurationPanel.cjs +0 -2
- package/dist/components/composed/Main/ProtocolConfigurationPanel.cjs.map +0 -1
- package/dist/components/composed/Main/ProtocolConfigurationPanel.js +0 -30
- package/dist/components/composed/Main/ProtocolConfigurationPanel.js.map +0 -1
- package/dist/components/composed/Main/TemplateSidebarCard.cjs +0 -2
- package/dist/components/composed/Main/TemplateSidebarCard.cjs.map +0 -1
- package/dist/components/composed/Main/TemplateSidebarCard.js +0 -71
- package/dist/components/composed/Main/TemplateSidebarCard.js.map +0 -1
- package/dist/components/composed/Navbar/Navbar.cjs +0 -2
- package/dist/components/composed/Navbar/Navbar.cjs.map +0 -1
- package/dist/components/composed/Navbar/Navbar.js +0 -25
- package/dist/components/composed/Navbar/Navbar.js.map +0 -1
- package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.cjs +0 -2
- package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.cjs.map +0 -1
- package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.js +0 -44
- package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.js.map +0 -1
- package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.cjs +0 -2
- package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.cjs.map +0 -1
- package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.js +0 -53
- package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.js.map +0 -1
- package/dist/components/composed/PythonEditorModal/PythonEditorModal.cjs +0 -2
- package/dist/components/composed/PythonEditorModal/PythonEditorModal.cjs.map +0 -1
- package/dist/components/composed/PythonEditorModal/PythonEditorModal.js +0 -51
- package/dist/components/composed/PythonEditorModal/PythonEditorModal.js.map +0 -1
- package/dist/components/composed/Sidebar/Sidebar.cjs +0 -2
- package/dist/components/composed/Sidebar/Sidebar.cjs.map +0 -1
- package/dist/components/composed/Sidebar/Sidebar.js +0 -46
- package/dist/components/composed/Sidebar/Sidebar.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchContentPanel.js","sources":["../../../../src/components/composed/Main/LaunchContentPanel.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { toast } from \"sonner\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { CodeEditor } from \"@/components/ui/code-editor\";\nimport { Label } from \"@/components/ui/label\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Switch } from \"@/components/ui/switch\";\n\nconst DEPLOY_DELAY_MS = 3000;\nconst DEFAULT_INITIAL_CODE = `protocolSchema: v3\nname: v3\ndescription: No description\nconfig: {}\nsteps: []`;\n\nexport const LaunchContentPanel: React.FC = () => {\n const versions = [\"v0.0.7\", \"v0.0.6\", \"v0.0.5\"];\n const [code, setCode] = useState(DEFAULT_INITIAL_CODE);\n const [currentVersion, setCurrentVersion] = useState(versions[0]);\n const [overwriteMode, setOverwriteMode] = useState(true);\n const [isDeploying, setIsDeploying] = useState(false);\n\n const handleDeploy = () => {\n setIsDeploying(true);\n toast.info(\"Building Protocol: Status=IN_PROGRESS, Phase=FINALIZING\");\n\n setTimeout(() => {\n const isSuccess = Math.random() > 0.3;\n\n if (isSuccess) {\n toast.success(\n `Pipeline visual-pipeline-builder-protocol-${currentVersion}-pipeline deployed successfully! Deployment complete`\n );\n } else {\n toast.error(\n `Failed to deploy pipeline visual-pipeline-builder-protocol-${currentVersion}-pipeline. Please try again.`\n );\n }\n\n setIsDeploying(false);\n }, DEPLOY_DELAY_MS);\n };\n\n return (\n <div>\n <div className=\"flex items-center justify-between mb-4\">\n <h1 className=\"m-0\">Launch</h1>\n <div className=\"flex items-center gap-4\">\n <Label htmlFor=\"overwrite-switch\">Overwrite Mode</Label>\n <Switch\n checked={overwriteMode}\n onCheckedChange={setOverwriteMode}\n disabled={isDeploying}\n />\n <Separator orientation=\"vertical\" />\n <Select value={currentVersion} onValueChange={setCurrentVersion}>\n <SelectTrigger size=\"default\" className=\"w-[180px]\">\n <SelectValue placeholder=\"Choose a version\" />\n </SelectTrigger>\n <SelectContent>\n {versions.map((version) => (\n <SelectItem key={version} value={version}>\n {version}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Button onClick={handleDeploy} disabled={isDeploying}>\n Deploy\n </Button>\n </div>\n </div>\n\n <CodeEditor\n value={code}\n onChange={(value) => setCode(value ?? \"\")}\n language=\"yaml\"\n theme=\"light\"\n width=\"100%\"\n onCopy={(value) => navigator.clipboard.writeText(value)}\n onLaunch={(value) => console.log(\"Launching code:\", value)}\n disabled={!overwriteMode}\n />\n </div>\n );\n};\n"],"names":["DEPLOY_DELAY_MS","DEFAULT_INITIAL_CODE","LaunchContentPanel","versions","code","setCode","useState","currentVersion","setCurrentVersion","overwriteMode","setOverwriteMode","isDeploying","setIsDeploying","handleDeploy","toast","jsxs","jsx","Label","Switch","Separator","Select","SelectTrigger","SelectValue","SelectContent","version","SelectItem","Button","CodeEditor","value"],"mappings":";;;;;;;;;AAgBA,MAAMA,IAAkB,KAClBC,IAAuB;AAAA;AAAA;AAAA;AAAA,YAMhBC,IAA+B,MAAM;AAChD,QAAMC,IAAW,CAAC,UAAU,UAAU,QAAQ,GACxC,CAACC,GAAMC,CAAO,IAAIC,EAASL,CAAoB,GAC/C,CAACM,GAAgBC,CAAiB,IAAIF,EAASH,EAAS,CAAC,CAAC,GAC1D,CAACM,GAAeC,CAAgB,IAAIJ,EAAS,EAAI,GACjD,CAACK,GAAaC,CAAc,IAAIN,EAAS,EAAK,GAE9CO,IAAe,MAAM;AACzB,IAAAD,EAAe,EAAI,GACnBE,EAAM,KAAK,yDAAyD,GAEpE,WAAW,MAAM;AAGf,MAFkB,KAAK,OAAA,IAAW,MAGhCA,EAAM;AAAA,QACJ,6CAA6CP,CAAc;AAAA,MAAA,IAG7DO,EAAM;AAAA,QACJ,8DAA8DP,CAAc;AAAA,MAAA,GAIhFK,EAAe,EAAK;AAAA,IACtB,GAAGZ,CAAe;AAAA,EACpB;AAEA,2BACG,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAe,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAU,OAAM,UAAA,UAAM;AAAA,MAC1B,gBAAAD,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAA,EAAM,SAAQ,oBAAmB,UAAA,kBAAc;AAAA,QAChD,gBAAAD;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAST;AAAA,YACT,iBAAiBC;AAAA,YACjB,UAAUC;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZ,gBAAAK,EAACG,GAAA,EAAU,aAAY,WAAA,CAAW;AAAA,QAClC,gBAAAJ,EAACK,GAAA,EAAO,OAAOb,GAAgB,eAAeC,GAC5C,UAAA;AAAA,UAAA,gBAAAQ,EAACK,GAAA,EAAc,MAAK,WAAU,WAAU,aACtC,UAAA,gBAAAL,EAACM,GAAA,EAAY,aAAY,mBAAA,CAAmB,EAAA,CAC9C;AAAA,UACA,gBAAAN,EAACO,GAAA,EACE,UAAApB,EAAS,IAAI,CAACqB,MACb,gBAAAR,EAACS,GAAA,EAAyB,OAAOD,GAC9B,UAAAA,EAAA,GADcA,CAEjB,CACD,EAAA,CACH;AAAA,QAAA,GACF;AAAA,0BACCE,GAAA,EAAO,SAASb,GAAc,UAAUF,GAAa,UAAA,SAAA,CAEtD;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAEA,gBAAAK;AAAA,MAACW;AAAA,MAAA;AAAA,QACC,OAAOvB;AAAA,QACP,UAAU,CAACwB,MAAUvB,EAAQuB,KAAS,EAAE;AAAA,QACxC,UAAS;AAAA,QACT,OAAM;AAAA,QACN,OAAM;AAAA,QACN,QAAQ,CAACA,MAAU,UAAU,UAAU,UAAUA,CAAK;AAAA,QACtD,UAAU,CAACA,MAAU,QAAQ,IAAI,mBAAmBA,CAAK;AAAA,QACzD,UAAU,CAACnB;AAAA,MAAA;AAAA,IAAA;AAAA,EACb,GACF;AAEJ;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),l=require("lucide-react"),r=require("react"),L=require("./LaunchContentPanel.cjs"),M=require("./MainHeader.cjs"),R=require("./MainNavbar.cjs"),z=require("./MainSidebar.cjs"),f=require("./MainTabBar.cjs"),E=require("./ProtocolConfigurationPanel.cjs"),h=require("./TemplateSidebarCard.cjs"),m=require("../../ui/button.cjs"),H=require("../../ui/scroll-area.cjs"),U=require("../../ui/separator.cjs"),F=require("../../ui/sidebar.cjs"),K=({userProfile:b,hostname:j,organization:p})=>{const v=[{icon:l.Search,label:"Search"},{icon:l.SearchCode,label:"SQL Search"},{icon:l.Lamp,label:"Projects"},{icon:l.Workflow,label:"Pipelines"},{icon:l.Monitor,label:"Data & AI Workspace"},{icon:l.Box,label:"Artifacts"},{icon:l.Database,label:"Data Sources"},{icon:l.PieChart,label:"Health Monitoring"},{icon:l.CheckCheck,label:"Bulk Actions"},{icon:l.Code,label:"Attribute Management"},{icon:l.Settings,label:"Administration"}],k=[{id:"templates",label:"Templates"},{id:"protocol",label:"Protocol"},{id:"steps",label:"Steps"}],g=[{id:"pipelineBuilder",label:"Pipeline Builder"},{id:"configuration",label:"Configuration"},{id:"launch",label:"Launch"}],[T,C]=r.useState("Pipelines"),[a,N]=r.useState("templates"),[c,S]=r.useState("pipelineBuilder"),[o,w]=r.useState("1"),u=[{id:"1",title:"Tecan D300e and PerkinElmer EnVision to Dotmatics (v1)",description:"c901ejs",buttonText:"",linkText:""},{id:"2",title:"Bruker D8 Andvanced CRD Raw to IDS(Draft)",description:"c901ejs",buttonText:"",linkText:""},{id:"3",title:"Extract and Decorate(Draft)",description:"c901ejs",buttonText:"",linkText:""},{id:"4",title:"Intellict (Que3 Raw to IDS(Draft)",description:"c901ejs",buttonText:"",linkText:""},{id:"5",title:"Leica Aperio RAW to IDS(Draft)",description:"c901ejs",buttonText:"",linkText:""},{id:"6",title:"IDS to Benchling(Draft)",description:"c901ejs",buttonText:"",linkText:""},{id:"7",title:"Lorem Ipsum",description:"c901ejs",buttonText:"",linkText:""}],n=[],y=[],D=i=>{C(i)},P=i=>{N(i)},B=i=>{S(i)},q=()=>{console.log("Home clicked")},A=()=>{console.log("Settings clicked")},I=()=>{console.log("User profile clicked")},t=i=>{w(i===o?null:i)},d=i=>{console.log(`Using template: ${i}`)},x=i=>{console.log(`Viewing template: ${i}`)};return e.jsxs("div",{className:"flex flex-col w-screen h-screen",children:[e.jsx(R.MainNavbar,{organization:p}),e.jsx("div",{className:"flex flex-1 overflow-hidden",children:e.jsxs(F.SidebarProvider,{className:"min-h-0 flex-1 w-full",children:[e.jsx(z.MainSidebar,{items:v,activeItem:T,onItemClick:D}),e.jsxs("div",{className:"bg-card rounded-lg flex flex-col flex-1 overflow-hidden",children:[e.jsx(U.Separator,{}),e.jsx(M.MainHeader,{hostname:j,userProfile:b,onHomeClick:q,onSettingsClick:A,onUserProfileClick:I}),e.jsx("div",{className:"flex flex-col flex-1 overflow-hidden",children:e.jsx("div",{className:"flex flex-col flex-1 overflow-hidden",children:e.jsxs("div",{style:{display:"flex",height:"100%"},children:[e.jsxs("div",{className:"w-[360px] h-full flex flex-col py-4 px-6 overflow-hidden max-h-full",children:[e.jsx(f.MainTabBar,{tabs:k,value:a,onChange:P}),a==="templates"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex justify-between items-center py-6",children:[e.jsx("h2",{className:"text-xl font-medium m-0",children:"Templates"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(m.Button,{className:"rounded-[4px] w-8 h-8",variant:"destructive",size:"icon-sm","aria-label":"Delete",children:e.jsx(l.Trash2,{size:20})}),e.jsx(m.Button,{className:"rounded-[4px] w-8 h-8",size:"icon-sm","aria-label":"Add",children:e.jsx(l.Plus,{size:20})})]})]}),e.jsx(H.ScrollArea,{className:"flex-1 h-full",children:u.length>0?u.map(i=>e.jsx("div",{className:"cursor-pointer p-1 last:border-b-0",onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&t(i.id)},onClick:()=>t(i.id),children:e.jsx(h.TemplateSidebarCard,{title:i.title,description:i.description,buttonText:i.buttonText,linkText:i.linkText,status:o===i.id?"active":"default",onButtonClick:()=>d(i.id),onLinkClick:()=>x(i.id)})},i.id)):e.jsxs("div",{className:"flex flex-col justify-center items-center gap-4",children:[e.jsx(l.Inbox,{size:40}),e.jsx("div",{className:"text-sm font-medium",children:"No data"})]})})]}),a==="protocol"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex justify-between items-center py-6",children:e.jsxs("h2",{className:"text-xl font-medium m-0",children:["Protocol (",n.length,")"]})}),e.jsx("div",{className:"flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]",children:n.length>0?n.map(i=>e.jsx("div",{className:"cursor-pointer last:border-b-0",onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&t(i.id)},onClick:()=>t(i.id),children:e.jsx(h.TemplateSidebarCard,{title:i.title,description:i.description,status:o===i.id?"active":"default",onButtonClick:()=>d(i.id),onLinkClick:()=>x(i.id)})},i.id)):e.jsxs("div",{className:"flex flex-col justify-center items-center gap-4",children:[e.jsx(l.Inbox,{size:40}),e.jsx("div",{className:"text-sm font-medium",children:"No data"})]})})]}),a==="steps"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex justify-between items-center py-6",children:e.jsxs("h2",{className:"text-xl font-medium m-0",children:["Task Scripts (",y.length,")"]})}),e.jsx("div",{className:"flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]",children:n.length>0?n.map(i=>e.jsx("div",{className:"cursor-pointer last:border-b-0",onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&t(i.id)},onClick:()=>t(i.id),children:e.jsx(h.TemplateSidebarCard,{title:i.title,description:i.description,status:o===i.id?"active":"default",onButtonClick:()=>d(i.id),onLinkClick:()=>x(i.id)})},i.id)):e.jsxs("div",{className:"flex flex-col justify-center items-center gap-4",children:[e.jsx(l.Inbox,{size:40}),e.jsx("div",{className:"text-sm font-medium",children:"No data"})]})})]})]}),e.jsxs("div",{className:"flex-1 h-full flex flex-col",children:[e.jsx("div",{className:"pt-4 px-6 pb-0",children:e.jsx(f.MainTabBar,{tabs:g,value:c,onChange:B})}),e.jsxs("div",{className:"p-6 -mt-px flex-1",children:[c==="pipelineBuilder"&&e.jsx("div",{className:"h-full border rounded-lg overflow-hidden"}),c==="configuration"&&e.jsx(E.ProtocolConfigurationPanel,{}),c==="launch"&&e.jsx(L.LaunchContentPanel,{})]})]})]})})})]})]})})]})};module.exports=K;
|
|
2
|
-
//# sourceMappingURL=Main.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Main.cjs","sources":["../../../../src/components/composed/Main/Main.tsx"],"sourcesContent":["// import { ReactFlowProvider } from \"@xyflow/react\";\n// import {PipelineBuilder} from \"./pipeline-builder\";\nimport {\n Box,\n CheckCheck,\n Code,\n Database,\n Inbox,\n Lamp,\n Monitor,\n PieChart,\n Plus,\n Search,\n SearchCode,\n Settings,\n Trash2,\n Workflow,\n} from \"lucide-react\";\nimport React, { useState } from \"react\";\n\nimport { LaunchContentPanel } from \"./LaunchContentPanel\";\nimport { MainHeader, type UserProfileInfo } from \"./MainHeader\";\nimport { MainNavbar, type OrganizationInfo } from \"./MainNavbar\";\nimport { MainSidebar, type MainSidebarItem } from \"./MainSidebar\";\nimport { MainTabBar, type MainTabItem } from \"./MainTabBar\";\nimport { ProtocolConfigurationPanel } from \"./ProtocolConfigurationPanel\";\nimport { TemplateSidebarCard } from \"./TemplateSidebarCard\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { SidebarProvider } from \"@/components/ui/sidebar\";\n\nexport interface MainProps {\n userProfile: UserProfileInfo;\n hostname: string;\n organization: OrganizationInfo;\n}\n\nconst Main: React.FC<MainProps> = ({ userProfile, hostname, organization }) => {\n // Define sidebar items\n const sidebarItems: MainSidebarItem[] = [\n { icon: Search, label: \"Search\" },\n { icon: SearchCode, label: \"SQL Search\" },\n { icon: Lamp, label: \"Projects\" },\n { icon: Workflow, label: \"Pipelines\" },\n { icon: Monitor, label: \"Data & AI Workspace\" },\n { icon: Box, label: \"Artifacts\" },\n { icon: Database, label: \"Data Sources\" },\n { icon: PieChart, label: \"Health Monitoring\" },\n { icon: CheckCheck, label: \"Bulk Actions\" },\n { icon: Code, label: \"Attribute Management\" },\n { icon: Settings, label: \"Administration\" },\n ];\n\n // Tabs for the first tab group (left side)\n const leftTabs: MainTabItem[] = [\n { id: \"templates\", label: \"Templates\" },\n { id: \"protocol\", label: \"Protocol\" },\n { id: \"steps\", label: \"Steps\" },\n ];\n\n // Tabs for the second tab group (right side)\n const rightTabs: MainTabItem[] = [\n { id: \"pipelineBuilder\", label: \"Pipeline Builder\" },\n { id: \"configuration\", label: \"Configuration\" },\n { id: \"launch\", label: \"Launch\" },\n ];\n\n // State hooks\n const [activeItem, setActiveItem] = useState(\"Pipelines\");\n const [activeLeftTab, setActiveLeftTab] = useState(\"templates\");\n const [activeRightTab, setActiveRightTab] = useState(\"pipelineBuilder\");\n const [selectedTemplate, setSelectedTemplate] = useState<string | null>(\"1\");\n\n // Templates data\n const templates = [\n {\n id: \"1\",\n title: \"Tecan D300e and PerkinElmer EnVision to Dotmatics (v1)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"2\",\n title: \"Bruker D8 Andvanced CRD Raw to IDS(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"3\",\n title: \"Extract and Decorate(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"4\",\n title: \"Intellict (Que3 Raw to IDS(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"5\",\n title: \"Leica Aperio RAW to IDS(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"6\",\n title: \"IDS to Benchling(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"7\",\n title: \"Lorem Ipsum\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n ];\n\n const protocol: { id: string; title: string; description: string }[] = [];\n const steps: { id: string; title: string; description: string }[] = [];\n\n // Handlers\n const handleSidebarItemClick = (label: string) => {\n setActiveItem(label);\n };\n\n const handleLeftTabChange = (tabId: string) => {\n setActiveLeftTab(tabId);\n };\n\n const handleRightTabChange = (tabId: string) => {\n setActiveRightTab(tabId);\n };\n\n const handleHomeClick = () => {\n console.log(\"Home clicked\");\n };\n\n const handleSettingsClick = () => {\n console.log(\"Settings clicked\");\n };\n\n const handleUserProfileClick = () => {\n console.log(\"User profile clicked\");\n };\n\n const handleTemplateClick = (templateId: string) => {\n setSelectedTemplate(templateId === selectedTemplate ? null : templateId);\n };\n\n const handleUseTemplate = (templateId: string) => {\n console.log(`Using template: ${templateId}`);\n };\n\n const handleViewTemplate = (templateId: string) => {\n console.log(`Viewing template: ${templateId}`);\n };\n\n return (\n <div className=\"flex flex-col w-screen h-screen\">\n <MainNavbar organization={organization} />\n\n <div className=\"flex flex-1 overflow-hidden\">\n\n <SidebarProvider className=\"min-h-0 flex-1 w-full\">\n <MainSidebar\n items={sidebarItems}\n activeItem={activeItem}\n onItemClick={handleSidebarItemClick}\n />\n\n <div className=\"bg-card rounded-lg flex flex-col flex-1 overflow-hidden\">\n <Separator />\n <MainHeader\n hostname={hostname}\n userProfile={userProfile}\n onHomeClick={handleHomeClick}\n onSettingsClick={handleSettingsClick}\n onUserProfileClick={handleUserProfileClick}\n />\n\n <div className=\"flex flex-col flex-1 overflow-hidden\">\n <div className=\"flex flex-col flex-1 overflow-hidden\">\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <div className=\"w-[360px] h-full flex flex-col py-4 px-6 overflow-hidden max-h-full\">\n <MainTabBar\n tabs={leftTabs}\n value={activeLeftTab}\n onChange={handleLeftTabChange}\n />\n {activeLeftTab === \"templates\" && (\n <>\n <div className=\"flex justify-between items-center py-6\">\n <h2 className=\"text-xl font-medium m-0\">Templates</h2>\n <div className=\"flex gap-2\">\n <Button\n className=\"rounded-[4px] w-8 h-8\"\n variant=\"destructive\"\n size=\"icon-sm\"\n aria-label=\"Delete\"\n >\n <Trash2 size={20} />\n </Button>\n <Button\n className=\"rounded-[4px] w-8 h-8\"\n size=\"icon-sm\"\n aria-label=\"Add\"\n >\n <Plus size={20} />\n </Button>\n </div>\n </div>\n\n <ScrollArea className=\"flex-1 h-full\">\n {templates.length > 0 ? (\n templates.map((template) => (\n <div\n key={template.id}\n className=\"cursor-pointer p-1 last:border-b-0\"\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTemplateClick(template.id);\n }\n }}\n onClick={() => handleTemplateClick(template.id)}\n >\n <TemplateSidebarCard\n title={template.title}\n description={template.description}\n buttonText={template.buttonText}\n linkText={template.linkText}\n status={\n selectedTemplate === template.id\n ? \"active\"\n : \"default\"\n }\n onButtonClick={() =>\n handleUseTemplate(template.id)\n }\n onLinkClick={() =>\n handleViewTemplate(template.id)\n }\n />\n </div>\n ))\n ) : (\n <div className=\"flex flex-col justify-center items-center gap-4\">\n <Inbox size={40} />\n <div className=\"text-sm font-medium\">No data</div>\n </div>\n )}\n </ScrollArea>\n </>\n )}\n\n {activeLeftTab === \"protocol\" && (\n <>\n <div className=\"flex justify-between items-center py-6\">\n <h2 className=\"text-xl font-medium m-0\">\n Protocol ({protocol.length})\n </h2>\n </div>\n <div className=\"flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]\">\n {protocol.length > 0 ? (\n protocol.map((template) => (\n <div\n key={template.id}\n className=\"cursor-pointer last:border-b-0\"\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTemplateClick(template.id);\n }\n }}\n onClick={() => handleTemplateClick(template.id)}\n >\n <TemplateSidebarCard\n title={template.title}\n description={template.description}\n status={\n selectedTemplate === template.id\n ? \"active\"\n : \"default\"\n }\n onButtonClick={() =>\n handleUseTemplate(template.id)\n }\n onLinkClick={() =>\n handleViewTemplate(template.id)\n }\n />\n </div>\n ))\n ) : (\n <div className=\"flex flex-col justify-center items-center gap-4\">\n <Inbox size={40} />\n <div className=\"text-sm font-medium\">No data</div>\n </div>\n )}\n </div>\n </>\n )}\n\n {activeLeftTab === \"steps\" && (\n <>\n <div className=\"flex justify-between items-center py-6\">\n <h2 className=\"text-xl font-medium m-0\">\n Task Scripts ({steps.length})\n </h2>\n </div>\n <div className=\"flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]\">\n {protocol.length > 0 ? (\n protocol.map((template) => (\n <div\n key={template.id}\n className=\"cursor-pointer last:border-b-0\"\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTemplateClick(template.id);\n }\n }}\n onClick={() => handleTemplateClick(template.id)}\n >\n <TemplateSidebarCard\n title={template.title}\n description={template.description}\n status={\n selectedTemplate === template.id\n ? \"active\"\n : \"default\"\n }\n onButtonClick={() =>\n handleUseTemplate(template.id)\n }\n onLinkClick={() =>\n handleViewTemplate(template.id)\n }\n />\n </div>\n ))\n ) : (\n <div className=\"flex flex-col justify-center items-center gap-4\">\n <Inbox size={40} />\n <div className=\"text-sm font-medium\">No data</div>\n </div>\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"flex-1 h-full flex flex-col\">\n <div className=\"pt-4 px-6 pb-0\">\n <MainTabBar\n tabs={rightTabs}\n value={activeRightTab}\n onChange={handleRightTabChange}\n />\n </div>\n <div className=\"p-6 -mt-px flex-1\">\n {activeRightTab === \"pipelineBuilder\" && (\n <div className=\"h-full border rounded-lg overflow-hidden\">\n {/* <ReactFlowProvider>\n <PipelineBuilder width=\"100%\" height=\"100%\" />\n </ReactFlowProvider> */}\n </div>\n )}\n {activeRightTab === \"configuration\" && (\n <ProtocolConfigurationPanel />\n )}\n {activeRightTab === \"launch\" && <LaunchContentPanel />}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </SidebarProvider>\n </div>\n </div>\n );\n};\n\nexport default Main;\n"],"names":["Main","userProfile","hostname","organization","sidebarItems","Search","SearchCode","Lamp","Workflow","Monitor","Box","Database","PieChart","CheckCheck","Code","Settings","leftTabs","rightTabs","activeItem","setActiveItem","useState","activeLeftTab","setActiveLeftTab","activeRightTab","setActiveRightTab","selectedTemplate","setSelectedTemplate","templates","protocol","steps","handleSidebarItemClick","label","handleLeftTabChange","tabId","handleRightTabChange","handleHomeClick","handleSettingsClick","handleUserProfileClick","handleTemplateClick","templateId","handleUseTemplate","handleViewTemplate","jsxs","jsx","MainNavbar","SidebarProvider","MainSidebar","Separator","MainHeader","MainTabBar","Fragment","Button","Trash2","Plus","ScrollArea","template","e","TemplateSidebarCard","Inbox","ProtocolConfigurationPanel","LaunchContentPanel"],"mappings":"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"}
|
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
import { jsxs as l, jsx as i, Fragment as m } from "react/jsx-runtime";
|
|
2
|
-
import { Search as R, SearchCode as E, Lamp as H, Workflow as U, Monitor as K, Box as V, Database as W, PieChart as Q, CheckCheck as $, Code as F, Settings as q, Trash2 as G, Plus as J, Inbox as h } from "lucide-react";
|
|
3
|
-
import { useState as r } from "react";
|
|
4
|
-
import { LaunchContentPanel as O } from "./LaunchContentPanel.js";
|
|
5
|
-
import { MainHeader as X } from "./MainHeader.js";
|
|
6
|
-
import { MainNavbar as Y } from "./MainNavbar.js";
|
|
7
|
-
import { MainSidebar as Z } from "./MainSidebar.js";
|
|
8
|
-
import { MainTabBar as p } from "./MainTabBar.js";
|
|
9
|
-
import { ProtocolConfigurationPanel as _ } from "./ProtocolConfigurationPanel.js";
|
|
10
|
-
import { TemplateSidebarCard as x } from "./TemplateSidebarCard.js";
|
|
11
|
-
import { Button as b } from "../../ui/button.js";
|
|
12
|
-
import { ScrollArea as ee } from "../../ui/scroll-area.js";
|
|
13
|
-
import { Separator as ie } from "../../ui/separator.js";
|
|
14
|
-
import { SidebarProvider as le } from "../../ui/sidebar.js";
|
|
15
|
-
const be = ({ userProfile: v, hostname: k, organization: g }) => {
|
|
16
|
-
const T = [
|
|
17
|
-
{ icon: R, label: "Search" },
|
|
18
|
-
{ icon: E, label: "SQL Search" },
|
|
19
|
-
{ icon: H, label: "Projects" },
|
|
20
|
-
{ icon: U, label: "Pipelines" },
|
|
21
|
-
{ icon: K, label: "Data & AI Workspace" },
|
|
22
|
-
{ icon: V, label: "Artifacts" },
|
|
23
|
-
{ icon: W, label: "Data Sources" },
|
|
24
|
-
{ icon: Q, label: "Health Monitoring" },
|
|
25
|
-
{ icon: $, label: "Bulk Actions" },
|
|
26
|
-
{ icon: F, label: "Attribute Management" },
|
|
27
|
-
{ icon: q, label: "Administration" }
|
|
28
|
-
], N = [
|
|
29
|
-
{ id: "templates", label: "Templates" },
|
|
30
|
-
{ id: "protocol", label: "Protocol" },
|
|
31
|
-
{ id: "steps", label: "Steps" }
|
|
32
|
-
], C = [
|
|
33
|
-
{ id: "pipelineBuilder", label: "Pipeline Builder" },
|
|
34
|
-
{ id: "configuration", label: "Configuration" },
|
|
35
|
-
{ id: "launch", label: "Launch" }
|
|
36
|
-
], [w, S] = r("Pipelines"), [c, y] = r("templates"), [a, D] = r("pipelineBuilder"), [s, j] = r("1"), u = [
|
|
37
|
-
{
|
|
38
|
-
id: "1",
|
|
39
|
-
title: "Tecan D300e and PerkinElmer EnVision to Dotmatics (v1)",
|
|
40
|
-
description: "c901ejs",
|
|
41
|
-
buttonText: "",
|
|
42
|
-
linkText: ""
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: "2",
|
|
46
|
-
title: "Bruker D8 Andvanced CRD Raw to IDS(Draft)",
|
|
47
|
-
description: "c901ejs",
|
|
48
|
-
buttonText: "",
|
|
49
|
-
linkText: ""
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: "3",
|
|
53
|
-
title: "Extract and Decorate(Draft)",
|
|
54
|
-
description: "c901ejs",
|
|
55
|
-
buttonText: "",
|
|
56
|
-
linkText: ""
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: "4",
|
|
60
|
-
title: "Intellict (Que3 Raw to IDS(Draft)",
|
|
61
|
-
description: "c901ejs",
|
|
62
|
-
buttonText: "",
|
|
63
|
-
linkText: ""
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: "5",
|
|
67
|
-
title: "Leica Aperio RAW to IDS(Draft)",
|
|
68
|
-
description: "c901ejs",
|
|
69
|
-
buttonText: "",
|
|
70
|
-
linkText: ""
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
id: "6",
|
|
74
|
-
title: "IDS to Benchling(Draft)",
|
|
75
|
-
description: "c901ejs",
|
|
76
|
-
buttonText: "",
|
|
77
|
-
linkText: ""
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
id: "7",
|
|
81
|
-
title: "Lorem Ipsum",
|
|
82
|
-
description: "c901ejs",
|
|
83
|
-
buttonText: "",
|
|
84
|
-
linkText: ""
|
|
85
|
-
}
|
|
86
|
-
], o = [], P = [], A = (e) => {
|
|
87
|
-
S(e);
|
|
88
|
-
}, B = (e) => {
|
|
89
|
-
y(e);
|
|
90
|
-
}, I = (e) => {
|
|
91
|
-
D(e);
|
|
92
|
-
}, L = () => {
|
|
93
|
-
console.log("Home clicked");
|
|
94
|
-
}, M = () => {
|
|
95
|
-
console.log("Settings clicked");
|
|
96
|
-
}, z = () => {
|
|
97
|
-
console.log("User profile clicked");
|
|
98
|
-
}, n = (e) => {
|
|
99
|
-
j(e === s ? null : e);
|
|
100
|
-
}, d = (e) => {
|
|
101
|
-
console.log(`Using template: ${e}`);
|
|
102
|
-
}, f = (e) => {
|
|
103
|
-
console.log(`Viewing template: ${e}`);
|
|
104
|
-
};
|
|
105
|
-
return /* @__PURE__ */ l("div", { className: "flex flex-col w-screen h-screen", children: [
|
|
106
|
-
/* @__PURE__ */ i(Y, { organization: g }),
|
|
107
|
-
/* @__PURE__ */ i("div", { className: "flex flex-1 overflow-hidden", children: /* @__PURE__ */ l(le, { className: "min-h-0 flex-1 w-full", children: [
|
|
108
|
-
/* @__PURE__ */ i(
|
|
109
|
-
Z,
|
|
110
|
-
{
|
|
111
|
-
items: T,
|
|
112
|
-
activeItem: w,
|
|
113
|
-
onItemClick: A
|
|
114
|
-
}
|
|
115
|
-
),
|
|
116
|
-
/* @__PURE__ */ l("div", { className: "bg-card rounded-lg flex flex-col flex-1 overflow-hidden", children: [
|
|
117
|
-
/* @__PURE__ */ i(ie, {}),
|
|
118
|
-
/* @__PURE__ */ i(
|
|
119
|
-
X,
|
|
120
|
-
{
|
|
121
|
-
hostname: k,
|
|
122
|
-
userProfile: v,
|
|
123
|
-
onHomeClick: L,
|
|
124
|
-
onSettingsClick: M,
|
|
125
|
-
onUserProfileClick: z
|
|
126
|
-
}
|
|
127
|
-
),
|
|
128
|
-
/* @__PURE__ */ i("div", { className: "flex flex-col flex-1 overflow-hidden", children: /* @__PURE__ */ i("div", { className: "flex flex-col flex-1 overflow-hidden", children: /* @__PURE__ */ l("div", { style: { display: "flex", height: "100%" }, children: [
|
|
129
|
-
/* @__PURE__ */ l("div", { className: "w-[360px] h-full flex flex-col py-4 px-6 overflow-hidden max-h-full", children: [
|
|
130
|
-
/* @__PURE__ */ i(
|
|
131
|
-
p,
|
|
132
|
-
{
|
|
133
|
-
tabs: N,
|
|
134
|
-
value: c,
|
|
135
|
-
onChange: B
|
|
136
|
-
}
|
|
137
|
-
),
|
|
138
|
-
c === "templates" && /* @__PURE__ */ l(m, { children: [
|
|
139
|
-
/* @__PURE__ */ l("div", { className: "flex justify-between items-center py-6", children: [
|
|
140
|
-
/* @__PURE__ */ i("h2", { className: "text-xl font-medium m-0", children: "Templates" }),
|
|
141
|
-
/* @__PURE__ */ l("div", { className: "flex gap-2", children: [
|
|
142
|
-
/* @__PURE__ */ i(
|
|
143
|
-
b,
|
|
144
|
-
{
|
|
145
|
-
className: "rounded-[4px] w-8 h-8",
|
|
146
|
-
variant: "destructive",
|
|
147
|
-
size: "icon-sm",
|
|
148
|
-
"aria-label": "Delete",
|
|
149
|
-
children: /* @__PURE__ */ i(G, { size: 20 })
|
|
150
|
-
}
|
|
151
|
-
),
|
|
152
|
-
/* @__PURE__ */ i(
|
|
153
|
-
b,
|
|
154
|
-
{
|
|
155
|
-
className: "rounded-[4px] w-8 h-8",
|
|
156
|
-
size: "icon-sm",
|
|
157
|
-
"aria-label": "Add",
|
|
158
|
-
children: /* @__PURE__ */ i(J, { size: 20 })
|
|
159
|
-
}
|
|
160
|
-
)
|
|
161
|
-
] })
|
|
162
|
-
] }),
|
|
163
|
-
/* @__PURE__ */ i(ee, { className: "flex-1 h-full", children: u.length > 0 ? u.map((e) => /* @__PURE__ */ i(
|
|
164
|
-
"div",
|
|
165
|
-
{
|
|
166
|
-
className: "cursor-pointer p-1 last:border-b-0",
|
|
167
|
-
onKeyDown: (t) => {
|
|
168
|
-
(t.key === "Enter" || t.key === " ") && n(e.id);
|
|
169
|
-
},
|
|
170
|
-
onClick: () => n(e.id),
|
|
171
|
-
children: /* @__PURE__ */ i(
|
|
172
|
-
x,
|
|
173
|
-
{
|
|
174
|
-
title: e.title,
|
|
175
|
-
description: e.description,
|
|
176
|
-
buttonText: e.buttonText,
|
|
177
|
-
linkText: e.linkText,
|
|
178
|
-
status: s === e.id ? "active" : "default",
|
|
179
|
-
onButtonClick: () => d(e.id),
|
|
180
|
-
onLinkClick: () => f(e.id)
|
|
181
|
-
}
|
|
182
|
-
)
|
|
183
|
-
},
|
|
184
|
-
e.id
|
|
185
|
-
)) : /* @__PURE__ */ l("div", { className: "flex flex-col justify-center items-center gap-4", children: [
|
|
186
|
-
/* @__PURE__ */ i(h, { size: 40 }),
|
|
187
|
-
/* @__PURE__ */ i("div", { className: "text-sm font-medium", children: "No data" })
|
|
188
|
-
] }) })
|
|
189
|
-
] }),
|
|
190
|
-
c === "protocol" && /* @__PURE__ */ l(m, { children: [
|
|
191
|
-
/* @__PURE__ */ i("div", { className: "flex justify-between items-center py-6", children: /* @__PURE__ */ l("h2", { className: "text-xl font-medium m-0", children: [
|
|
192
|
-
"Protocol (",
|
|
193
|
-
o.length,
|
|
194
|
-
")"
|
|
195
|
-
] }) }),
|
|
196
|
-
/* @__PURE__ */ i("div", { className: "flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]", children: o.length > 0 ? o.map((e) => /* @__PURE__ */ i(
|
|
197
|
-
"div",
|
|
198
|
-
{
|
|
199
|
-
className: "cursor-pointer last:border-b-0",
|
|
200
|
-
onKeyDown: (t) => {
|
|
201
|
-
(t.key === "Enter" || t.key === " ") && n(e.id);
|
|
202
|
-
},
|
|
203
|
-
onClick: () => n(e.id),
|
|
204
|
-
children: /* @__PURE__ */ i(
|
|
205
|
-
x,
|
|
206
|
-
{
|
|
207
|
-
title: e.title,
|
|
208
|
-
description: e.description,
|
|
209
|
-
status: s === e.id ? "active" : "default",
|
|
210
|
-
onButtonClick: () => d(e.id),
|
|
211
|
-
onLinkClick: () => f(e.id)
|
|
212
|
-
}
|
|
213
|
-
)
|
|
214
|
-
},
|
|
215
|
-
e.id
|
|
216
|
-
)) : /* @__PURE__ */ l("div", { className: "flex flex-col justify-center items-center gap-4", children: [
|
|
217
|
-
/* @__PURE__ */ i(h, { size: 40 }),
|
|
218
|
-
/* @__PURE__ */ i("div", { className: "text-sm font-medium", children: "No data" })
|
|
219
|
-
] }) })
|
|
220
|
-
] }),
|
|
221
|
-
c === "steps" && /* @__PURE__ */ l(m, { children: [
|
|
222
|
-
/* @__PURE__ */ i("div", { className: "flex justify-between items-center py-6", children: /* @__PURE__ */ l("h2", { className: "text-xl font-medium m-0", children: [
|
|
223
|
-
"Task Scripts (",
|
|
224
|
-
P.length,
|
|
225
|
-
")"
|
|
226
|
-
] }) }),
|
|
227
|
-
/* @__PURE__ */ i("div", { className: "flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]", children: o.length > 0 ? o.map((e) => /* @__PURE__ */ i(
|
|
228
|
-
"div",
|
|
229
|
-
{
|
|
230
|
-
className: "cursor-pointer last:border-b-0",
|
|
231
|
-
onKeyDown: (t) => {
|
|
232
|
-
(t.key === "Enter" || t.key === " ") && n(e.id);
|
|
233
|
-
},
|
|
234
|
-
onClick: () => n(e.id),
|
|
235
|
-
children: /* @__PURE__ */ i(
|
|
236
|
-
x,
|
|
237
|
-
{
|
|
238
|
-
title: e.title,
|
|
239
|
-
description: e.description,
|
|
240
|
-
status: s === e.id ? "active" : "default",
|
|
241
|
-
onButtonClick: () => d(e.id),
|
|
242
|
-
onLinkClick: () => f(e.id)
|
|
243
|
-
}
|
|
244
|
-
)
|
|
245
|
-
},
|
|
246
|
-
e.id
|
|
247
|
-
)) : /* @__PURE__ */ l("div", { className: "flex flex-col justify-center items-center gap-4", children: [
|
|
248
|
-
/* @__PURE__ */ i(h, { size: 40 }),
|
|
249
|
-
/* @__PURE__ */ i("div", { className: "text-sm font-medium", children: "No data" })
|
|
250
|
-
] }) })
|
|
251
|
-
] })
|
|
252
|
-
] }),
|
|
253
|
-
/* @__PURE__ */ l("div", { className: "flex-1 h-full flex flex-col", children: [
|
|
254
|
-
/* @__PURE__ */ i("div", { className: "pt-4 px-6 pb-0", children: /* @__PURE__ */ i(
|
|
255
|
-
p,
|
|
256
|
-
{
|
|
257
|
-
tabs: C,
|
|
258
|
-
value: a,
|
|
259
|
-
onChange: I
|
|
260
|
-
}
|
|
261
|
-
) }),
|
|
262
|
-
/* @__PURE__ */ l("div", { className: "p-6 -mt-px flex-1", children: [
|
|
263
|
-
a === "pipelineBuilder" && /* @__PURE__ */ i("div", { className: "h-full border rounded-lg overflow-hidden" }),
|
|
264
|
-
a === "configuration" && /* @__PURE__ */ i(_, {}),
|
|
265
|
-
a === "launch" && /* @__PURE__ */ i(O, {})
|
|
266
|
-
] })
|
|
267
|
-
] })
|
|
268
|
-
] }) }) })
|
|
269
|
-
] })
|
|
270
|
-
] }) })
|
|
271
|
-
] });
|
|
272
|
-
};
|
|
273
|
-
export {
|
|
274
|
-
be as default
|
|
275
|
-
};
|
|
276
|
-
//# sourceMappingURL=Main.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","sources":["../../../../src/components/composed/Main/Main.tsx"],"sourcesContent":["// import { ReactFlowProvider } from \"@xyflow/react\";\n// import {PipelineBuilder} from \"./pipeline-builder\";\nimport {\n Box,\n CheckCheck,\n Code,\n Database,\n Inbox,\n Lamp,\n Monitor,\n PieChart,\n Plus,\n Search,\n SearchCode,\n Settings,\n Trash2,\n Workflow,\n} from \"lucide-react\";\nimport React, { useState } from \"react\";\n\nimport { LaunchContentPanel } from \"./LaunchContentPanel\";\nimport { MainHeader, type UserProfileInfo } from \"./MainHeader\";\nimport { MainNavbar, type OrganizationInfo } from \"./MainNavbar\";\nimport { MainSidebar, type MainSidebarItem } from \"./MainSidebar\";\nimport { MainTabBar, type MainTabItem } from \"./MainTabBar\";\nimport { ProtocolConfigurationPanel } from \"./ProtocolConfigurationPanel\";\nimport { TemplateSidebarCard } from \"./TemplateSidebarCard\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { SidebarProvider } from \"@/components/ui/sidebar\";\n\nexport interface MainProps {\n userProfile: UserProfileInfo;\n hostname: string;\n organization: OrganizationInfo;\n}\n\nconst Main: React.FC<MainProps> = ({ userProfile, hostname, organization }) => {\n // Define sidebar items\n const sidebarItems: MainSidebarItem[] = [\n { icon: Search, label: \"Search\" },\n { icon: SearchCode, label: \"SQL Search\" },\n { icon: Lamp, label: \"Projects\" },\n { icon: Workflow, label: \"Pipelines\" },\n { icon: Monitor, label: \"Data & AI Workspace\" },\n { icon: Box, label: \"Artifacts\" },\n { icon: Database, label: \"Data Sources\" },\n { icon: PieChart, label: \"Health Monitoring\" },\n { icon: CheckCheck, label: \"Bulk Actions\" },\n { icon: Code, label: \"Attribute Management\" },\n { icon: Settings, label: \"Administration\" },\n ];\n\n // Tabs for the first tab group (left side)\n const leftTabs: MainTabItem[] = [\n { id: \"templates\", label: \"Templates\" },\n { id: \"protocol\", label: \"Protocol\" },\n { id: \"steps\", label: \"Steps\" },\n ];\n\n // Tabs for the second tab group (right side)\n const rightTabs: MainTabItem[] = [\n { id: \"pipelineBuilder\", label: \"Pipeline Builder\" },\n { id: \"configuration\", label: \"Configuration\" },\n { id: \"launch\", label: \"Launch\" },\n ];\n\n // State hooks\n const [activeItem, setActiveItem] = useState(\"Pipelines\");\n const [activeLeftTab, setActiveLeftTab] = useState(\"templates\");\n const [activeRightTab, setActiveRightTab] = useState(\"pipelineBuilder\");\n const [selectedTemplate, setSelectedTemplate] = useState<string | null>(\"1\");\n\n // Templates data\n const templates = [\n {\n id: \"1\",\n title: \"Tecan D300e and PerkinElmer EnVision to Dotmatics (v1)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"2\",\n title: \"Bruker D8 Andvanced CRD Raw to IDS(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"3\",\n title: \"Extract and Decorate(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"4\",\n title: \"Intellict (Que3 Raw to IDS(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"5\",\n title: \"Leica Aperio RAW to IDS(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"6\",\n title: \"IDS to Benchling(Draft)\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n {\n id: \"7\",\n title: \"Lorem Ipsum\",\n description: \"c901ejs\",\n buttonText: \"\",\n linkText: \"\",\n },\n ];\n\n const protocol: { id: string; title: string; description: string }[] = [];\n const steps: { id: string; title: string; description: string }[] = [];\n\n // Handlers\n const handleSidebarItemClick = (label: string) => {\n setActiveItem(label);\n };\n\n const handleLeftTabChange = (tabId: string) => {\n setActiveLeftTab(tabId);\n };\n\n const handleRightTabChange = (tabId: string) => {\n setActiveRightTab(tabId);\n };\n\n const handleHomeClick = () => {\n console.log(\"Home clicked\");\n };\n\n const handleSettingsClick = () => {\n console.log(\"Settings clicked\");\n };\n\n const handleUserProfileClick = () => {\n console.log(\"User profile clicked\");\n };\n\n const handleTemplateClick = (templateId: string) => {\n setSelectedTemplate(templateId === selectedTemplate ? null : templateId);\n };\n\n const handleUseTemplate = (templateId: string) => {\n console.log(`Using template: ${templateId}`);\n };\n\n const handleViewTemplate = (templateId: string) => {\n console.log(`Viewing template: ${templateId}`);\n };\n\n return (\n <div className=\"flex flex-col w-screen h-screen\">\n <MainNavbar organization={organization} />\n\n <div className=\"flex flex-1 overflow-hidden\">\n\n <SidebarProvider className=\"min-h-0 flex-1 w-full\">\n <MainSidebar\n items={sidebarItems}\n activeItem={activeItem}\n onItemClick={handleSidebarItemClick}\n />\n\n <div className=\"bg-card rounded-lg flex flex-col flex-1 overflow-hidden\">\n <Separator />\n <MainHeader\n hostname={hostname}\n userProfile={userProfile}\n onHomeClick={handleHomeClick}\n onSettingsClick={handleSettingsClick}\n onUserProfileClick={handleUserProfileClick}\n />\n\n <div className=\"flex flex-col flex-1 overflow-hidden\">\n <div className=\"flex flex-col flex-1 overflow-hidden\">\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <div className=\"w-[360px] h-full flex flex-col py-4 px-6 overflow-hidden max-h-full\">\n <MainTabBar\n tabs={leftTabs}\n value={activeLeftTab}\n onChange={handleLeftTabChange}\n />\n {activeLeftTab === \"templates\" && (\n <>\n <div className=\"flex justify-between items-center py-6\">\n <h2 className=\"text-xl font-medium m-0\">Templates</h2>\n <div className=\"flex gap-2\">\n <Button\n className=\"rounded-[4px] w-8 h-8\"\n variant=\"destructive\"\n size=\"icon-sm\"\n aria-label=\"Delete\"\n >\n <Trash2 size={20} />\n </Button>\n <Button\n className=\"rounded-[4px] w-8 h-8\"\n size=\"icon-sm\"\n aria-label=\"Add\"\n >\n <Plus size={20} />\n </Button>\n </div>\n </div>\n\n <ScrollArea className=\"flex-1 h-full\">\n {templates.length > 0 ? (\n templates.map((template) => (\n <div\n key={template.id}\n className=\"cursor-pointer p-1 last:border-b-0\"\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTemplateClick(template.id);\n }\n }}\n onClick={() => handleTemplateClick(template.id)}\n >\n <TemplateSidebarCard\n title={template.title}\n description={template.description}\n buttonText={template.buttonText}\n linkText={template.linkText}\n status={\n selectedTemplate === template.id\n ? \"active\"\n : \"default\"\n }\n onButtonClick={() =>\n handleUseTemplate(template.id)\n }\n onLinkClick={() =>\n handleViewTemplate(template.id)\n }\n />\n </div>\n ))\n ) : (\n <div className=\"flex flex-col justify-center items-center gap-4\">\n <Inbox size={40} />\n <div className=\"text-sm font-medium\">No data</div>\n </div>\n )}\n </ScrollArea>\n </>\n )}\n\n {activeLeftTab === \"protocol\" && (\n <>\n <div className=\"flex justify-between items-center py-6\">\n <h2 className=\"text-xl font-medium m-0\">\n Protocol ({protocol.length})\n </h2>\n </div>\n <div className=\"flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]\">\n {protocol.length > 0 ? (\n protocol.map((template) => (\n <div\n key={template.id}\n className=\"cursor-pointer last:border-b-0\"\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTemplateClick(template.id);\n }\n }}\n onClick={() => handleTemplateClick(template.id)}\n >\n <TemplateSidebarCard\n title={template.title}\n description={template.description}\n status={\n selectedTemplate === template.id\n ? \"active\"\n : \"default\"\n }\n onButtonClick={() =>\n handleUseTemplate(template.id)\n }\n onLinkClick={() =>\n handleViewTemplate(template.id)\n }\n />\n </div>\n ))\n ) : (\n <div className=\"flex flex-col justify-center items-center gap-4\">\n <Inbox size={40} />\n <div className=\"text-sm font-medium\">No data</div>\n </div>\n )}\n </div>\n </>\n )}\n\n {activeLeftTab === \"steps\" && (\n <>\n <div className=\"flex justify-between items-center py-6\">\n <h2 className=\"text-xl font-medium m-0\">\n Task Scripts ({steps.length})\n </h2>\n </div>\n <div className=\"flex flex-col overflow-y-auto flex-1 mt-2 max-h-[calc(100vh-240px)]\">\n {protocol.length > 0 ? (\n protocol.map((template) => (\n <div\n key={template.id}\n className=\"cursor-pointer last:border-b-0\"\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTemplateClick(template.id);\n }\n }}\n onClick={() => handleTemplateClick(template.id)}\n >\n <TemplateSidebarCard\n title={template.title}\n description={template.description}\n status={\n selectedTemplate === template.id\n ? \"active\"\n : \"default\"\n }\n onButtonClick={() =>\n handleUseTemplate(template.id)\n }\n onLinkClick={() =>\n handleViewTemplate(template.id)\n }\n />\n </div>\n ))\n ) : (\n <div className=\"flex flex-col justify-center items-center gap-4\">\n <Inbox size={40} />\n <div className=\"text-sm font-medium\">No data</div>\n </div>\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"flex-1 h-full flex flex-col\">\n <div className=\"pt-4 px-6 pb-0\">\n <MainTabBar\n tabs={rightTabs}\n value={activeRightTab}\n onChange={handleRightTabChange}\n />\n </div>\n <div className=\"p-6 -mt-px flex-1\">\n {activeRightTab === \"pipelineBuilder\" && (\n <div className=\"h-full border rounded-lg overflow-hidden\">\n {/* <ReactFlowProvider>\n <PipelineBuilder width=\"100%\" height=\"100%\" />\n </ReactFlowProvider> */}\n </div>\n )}\n {activeRightTab === \"configuration\" && (\n <ProtocolConfigurationPanel />\n )}\n {activeRightTab === \"launch\" && <LaunchContentPanel />}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </SidebarProvider>\n </div>\n </div>\n );\n};\n\nexport default Main;\n"],"names":["Main","userProfile","hostname","organization","sidebarItems","Search","SearchCode","Lamp","Workflow","Monitor","Box","Database","PieChart","CheckCheck","Code","Settings","leftTabs","rightTabs","activeItem","setActiveItem","useState","activeLeftTab","setActiveLeftTab","activeRightTab","setActiveRightTab","selectedTemplate","setSelectedTemplate","templates","protocol","steps","handleSidebarItemClick","label","handleLeftTabChange","tabId","handleRightTabChange","handleHomeClick","handleSettingsClick","handleUserProfileClick","handleTemplateClick","templateId","handleUseTemplate","handleViewTemplate","jsxs","jsx","MainNavbar","SidebarProvider","MainSidebar","Separator","MainHeader","MainTabBar","Fragment","Button","Trash2","Plus","ScrollArea","template","e","TemplateSidebarCard","Inbox","ProtocolConfigurationPanel","LaunchContentPanel"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("lucide-react"),t=require("../../ui/avatar.cjs"),n=require("../../ui/button.cjs"),o=i=>i.split(" ").map(a=>a.charAt(0)).join("").toUpperCase().substring(0,2),d=({hostname:i,userProfile:a,onHomeClick:r,onSettingsClick:c,onUserProfileClick:l})=>e.jsxs("div",{className:"flex items-center justify-between w-full px-7 py-4 box-border",children:[e.jsx("div",{children:i}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(n.Button,{variant:"outline",size:"icon-sm",onClick:r,"aria-label":"Home",children:e.jsx(s.Home,{size:20})}),e.jsx(n.Button,{variant:"outline",size:"icon-sm",onClick:c,"aria-label":"Settings",children:e.jsx(s.Settings,{size:20})}),e.jsx("div",{className:"h-5 w-px"}),e.jsxs(t.Avatar,{onClick:l,children:[e.jsx(t.AvatarImage,{src:a.avatar,alt:a.name}),e.jsx(t.AvatarFallback,{children:o(a.name)})]}),e.jsx("div",{children:a.name})]})]});exports.MainHeader=d;
|
|
2
|
-
//# sourceMappingURL=MainHeader.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainHeader.cjs","sources":["../../../../src/components/composed/Main/MainHeader.tsx"],"sourcesContent":["import { Home, Settings } from \"lucide-react\";\nimport React from \"react\";\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/components/ui/avatar\";\nimport { Button } from \"@/components/ui/button\";\n\nexport interface UserProfileInfo {\n name: string;\n avatar?: string;\n}\n\nexport interface MainHeaderProps {\n hostname: string;\n userProfile: UserProfileInfo;\n onHomeClick?: () => void;\n onSettingsClick?: () => void;\n onUserProfileClick?: () => void;\n}\n\nconst getInitials = (name: string) =>\n name\n .split(\" \")\n .map((part) => part.charAt(0))\n .join(\"\")\n .toUpperCase()\n .substring(0, 2);\n\nexport const MainHeader: React.FC<MainHeaderProps> = ({\n hostname,\n userProfile,\n onHomeClick,\n onSettingsClick,\n onUserProfileClick,\n}) => (\n <div className=\"flex items-center justify-between w-full px-7 py-4 box-border\">\n <div>{hostname}</div>\n\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" size=\"icon-sm\" onClick={onHomeClick} aria-label=\"Home\">\n <Home size={20} />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={onSettingsClick}\n aria-label=\"Settings\"\n >\n <Settings size={20} />\n </Button>\n <div className=\"h-5 w-px\" />\n <Avatar onClick={onUserProfileClick}>\n <AvatarImage src={userProfile.avatar} alt={userProfile.name} />\n <AvatarFallback>{getInitials(userProfile.name)}</AvatarFallback>\n </Avatar>\n <div>{userProfile.name}</div>\n </div>\n </div>\n);\n"],"names":["getInitials","name","part","MainHeader","hostname","userProfile","onHomeClick","onSettingsClick","onUserProfileClick","jsxs","jsx","Button","Home","Settings","Avatar","AvatarImage","AvatarFallback"],"mappings":"iNAuBMA,EAAeC,GACnBA,EACG,MAAM,GAAG,EACT,IAAKC,GAASA,EAAK,OAAO,CAAC,CAAC,EAC5B,KAAK,EAAE,EACP,cACA,UAAU,EAAG,CAAC,EAENC,EAAwC,CAAC,CACpD,SAAAC,EACA,YAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,mBAAAC,CACF,IACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,gEACb,SAAA,CAAAC,EAAAA,IAAC,OAAK,SAAAN,CAAA,CAAS,EAEfK,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAA,CAAO,QAAQ,UAAU,KAAK,UAAU,QAASL,EAAa,aAAW,OACxE,SAAAI,MAACE,EAAAA,KAAA,CAAK,KAAM,GAAI,EAClB,EACAF,EAAAA,IAACC,EAAAA,OAAA,CACC,QAAQ,UACR,KAAK,UACL,QAASJ,EACT,aAAW,WAEX,SAAAG,EAAAA,IAACG,EAAAA,SAAA,CAAS,KAAM,EAAA,CAAI,CAAA,CAAA,EAEtBH,EAAAA,IAAC,MAAA,CAAI,UAAU,UAAA,CAAW,EAC1BD,EAAAA,KAACK,EAAAA,OAAA,CAAO,QAASN,EACf,SAAA,CAAAE,MAACK,EAAAA,aAAY,IAAKV,EAAY,OAAQ,IAAKA,EAAY,KAAM,EAC7DK,EAAAA,IAACM,EAAAA,eAAA,CAAgB,SAAAhB,EAAYK,EAAY,IAAI,CAAA,CAAE,CAAA,EACjD,EACAK,EAAAA,IAAC,MAAA,CAAK,SAAAL,EAAY,IAAA,CAAK,CAAA,CAAA,CACzB,CAAA,CAAA,CACF"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsxs as t, jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import { Home as c, Settings as m } from "lucide-react";
|
|
3
|
-
import { Avatar as o, AvatarImage as d, AvatarFallback as p } from "../../ui/avatar.js";
|
|
4
|
-
import { Button as n } from "../../ui/button.js";
|
|
5
|
-
const v = (e) => e.split(" ").map((a) => a.charAt(0)).join("").toUpperCase().substring(0, 2), f = ({
|
|
6
|
-
hostname: e,
|
|
7
|
-
userProfile: a,
|
|
8
|
-
onHomeClick: r,
|
|
9
|
-
onSettingsClick: l,
|
|
10
|
-
onUserProfileClick: s
|
|
11
|
-
}) => /* @__PURE__ */ t("div", { className: "flex items-center justify-between w-full px-7 py-4 box-border", children: [
|
|
12
|
-
/* @__PURE__ */ i("div", { children: e }),
|
|
13
|
-
/* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
|
|
14
|
-
/* @__PURE__ */ i(n, { variant: "outline", size: "icon-sm", onClick: r, "aria-label": "Home", children: /* @__PURE__ */ i(c, { size: 20 }) }),
|
|
15
|
-
/* @__PURE__ */ i(
|
|
16
|
-
n,
|
|
17
|
-
{
|
|
18
|
-
variant: "outline",
|
|
19
|
-
size: "icon-sm",
|
|
20
|
-
onClick: l,
|
|
21
|
-
"aria-label": "Settings",
|
|
22
|
-
children: /* @__PURE__ */ i(m, { size: 20 })
|
|
23
|
-
}
|
|
24
|
-
),
|
|
25
|
-
/* @__PURE__ */ i("div", { className: "h-5 w-px" }),
|
|
26
|
-
/* @__PURE__ */ t(o, { onClick: s, children: [
|
|
27
|
-
/* @__PURE__ */ i(d, { src: a.avatar, alt: a.name }),
|
|
28
|
-
/* @__PURE__ */ i(p, { children: v(a.name) })
|
|
29
|
-
] }),
|
|
30
|
-
/* @__PURE__ */ i("div", { children: a.name })
|
|
31
|
-
] })
|
|
32
|
-
] });
|
|
33
|
-
export {
|
|
34
|
-
f as MainHeader
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=MainHeader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainHeader.js","sources":["../../../../src/components/composed/Main/MainHeader.tsx"],"sourcesContent":["import { Home, Settings } from \"lucide-react\";\nimport React from \"react\";\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/components/ui/avatar\";\nimport { Button } from \"@/components/ui/button\";\n\nexport interface UserProfileInfo {\n name: string;\n avatar?: string;\n}\n\nexport interface MainHeaderProps {\n hostname: string;\n userProfile: UserProfileInfo;\n onHomeClick?: () => void;\n onSettingsClick?: () => void;\n onUserProfileClick?: () => void;\n}\n\nconst getInitials = (name: string) =>\n name\n .split(\" \")\n .map((part) => part.charAt(0))\n .join(\"\")\n .toUpperCase()\n .substring(0, 2);\n\nexport const MainHeader: React.FC<MainHeaderProps> = ({\n hostname,\n userProfile,\n onHomeClick,\n onSettingsClick,\n onUserProfileClick,\n}) => (\n <div className=\"flex items-center justify-between w-full px-7 py-4 box-border\">\n <div>{hostname}</div>\n\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" size=\"icon-sm\" onClick={onHomeClick} aria-label=\"Home\">\n <Home size={20} />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={onSettingsClick}\n aria-label=\"Settings\"\n >\n <Settings size={20} />\n </Button>\n <div className=\"h-5 w-px\" />\n <Avatar onClick={onUserProfileClick}>\n <AvatarImage src={userProfile.avatar} alt={userProfile.name} />\n <AvatarFallback>{getInitials(userProfile.name)}</AvatarFallback>\n </Avatar>\n <div>{userProfile.name}</div>\n </div>\n </div>\n);\n"],"names":["getInitials","name","part","MainHeader","hostname","userProfile","onHomeClick","onSettingsClick","onUserProfileClick","jsxs","jsx","Button","Home","Settings","Avatar","AvatarImage","AvatarFallback"],"mappings":";;;;AAuBA,MAAMA,IAAc,CAACC,MACnBA,EACG,MAAM,GAAG,EACT,IAAI,CAACC,MAASA,EAAK,OAAO,CAAC,CAAC,EAC5B,KAAK,EAAE,EACP,cACA,UAAU,GAAG,CAAC,GAENC,IAAwC,CAAC;AAAA,EACpD,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AACF,MACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,iEACb,UAAA;AAAA,EAAA,gBAAAC,EAAC,SAAK,UAAAN,EAAA,CAAS;AAAA,EAEf,gBAAAK,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAO,SAAQ,WAAU,MAAK,WAAU,SAASL,GAAa,cAAW,QACxE,UAAA,gBAAAI,EAACE,GAAA,EAAK,MAAM,IAAI,GAClB;AAAA,IACA,gBAAAF;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,SAASJ;AAAA,QACT,cAAW;AAAA,QAEX,UAAA,gBAAAG,EAACG,GAAA,EAAS,MAAM,GAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,IAEtB,gBAAAH,EAAC,OAAA,EAAI,WAAU,WAAA,CAAW;AAAA,IAC1B,gBAAAD,EAACK,GAAA,EAAO,SAASN,GACf,UAAA;AAAA,MAAA,gBAAAE,EAACK,KAAY,KAAKV,EAAY,QAAQ,KAAKA,EAAY,MAAM;AAAA,MAC7D,gBAAAK,EAACM,GAAA,EAAgB,UAAAhB,EAAYK,EAAY,IAAI,EAAA,CAAE;AAAA,IAAA,GACjD;AAAA,IACA,gBAAAK,EAAC,OAAA,EAAK,UAAAL,EAAY,KAAA,CAAK;AAAA,EAAA,EAAA,CACzB;AAAA,EAAA,CACF;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("lucide-react"),c=()=>e.jsx(l.Building,{}),i=()=>e.jsx(l.Lamp,{}),d=({organization:s})=>e.jsxs("div",{className:"flex items-center h-20 w-full pt-3 pr-6 pb-3 pl-32 box-border gap-10",children:[e.jsx("div",{className:"flex items-center h-full",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("div",{className:"uppercase mb-0.5 tracking-[0.2px]",children:"ORGANIZATION"}),e.jsxs("div",{className:"flex items-center gap-2 w-80",children:[e.jsx("div",{children:s.logo||e.jsx(c,{})}),e.jsxs("div",{children:[e.jsx("div",{children:s.name}),s.subtext&&e.jsx("div",{children:s.subtext})]})]})]})}),e.jsx("div",{className:"flex items-center h-full",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("div",{className:"uppercase mb-0.5 tracking-[0.2px]",children:"PROJECT"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(i,{}),e.jsx("div",{children:"Not Selected"})]})]})})]});exports.MainNavbar=d;
|
|
2
|
-
//# sourceMappingURL=MainNavbar.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainNavbar.cjs","sources":["../../../../src/components/composed/Main/MainNavbar.tsx"],"sourcesContent":["import { Building, Lamp } from \"lucide-react\";\nimport React from \"react\";\n\nexport interface OrganizationInfo {\n name: string;\n subtext?: string;\n logo?: React.ReactNode;\n}\n\nexport interface MainNavbarProps {\n organization: OrganizationInfo;\n}\n\nconst DefaultLogo = () => <Building />;\nconst DefaultProjectIcon = () => <Lamp />;\n\nexport const MainNavbar: React.FC<MainNavbarProps> = ({ organization }) => (\n <div className=\"flex items-center h-20 w-full pt-3 pr-6 pb-3 pl-32 box-border gap-10\">\n <div className=\"flex items-center h-full\">\n <div className=\"flex flex-col\">\n <div className=\"uppercase mb-0.5 tracking-[0.2px]\">ORGANIZATION</div>\n <div className=\"flex items-center gap-2 w-80\">\n <div>{organization.logo || <DefaultLogo />}</div>\n <div>\n <div>{organization.name}</div>\n {organization.subtext && (\n <div>{organization.subtext}</div>\n )}\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"flex items-center h-full\">\n <div className=\"flex flex-col\">\n <div className=\"uppercase mb-0.5 tracking-[0.2px]\">PROJECT</div>\n <div className=\"flex items-center gap-2\">\n <DefaultProjectIcon />\n <div>Not Selected</div>\n </div>\n </div>\n </div>\n </div>\n);\n"],"names":["DefaultLogo","jsx","Building","DefaultProjectIcon","Lamp","MainNavbar","organization","jsxs"],"mappings":"+IAaMA,EAAc,IAAMC,EAAAA,IAACC,EAAAA,SAAA,EAAS,EAC9BC,EAAqB,IAAMF,EAAAA,IAACG,EAAAA,KAAA,EAAK,EAE1BC,EAAwC,CAAC,CAAE,aAAAC,KACtDC,EAAAA,KAAC,MAAA,CAAI,UAAU,uEACb,SAAA,CAAAN,EAAAA,IAAC,OAAI,UAAU,2BACb,SAAAM,EAAAA,KAAC,MAAA,CAAI,UAAU,gBACb,SAAA,CAAAN,EAAAA,IAAC,MAAA,CAAI,UAAU,oCAAoC,SAAA,eAAY,EAC/DM,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAN,MAAC,MAAA,CAAK,SAAAK,EAAa,MAAQL,MAACD,IAAY,EAAG,SAC1C,MAAA,CACC,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAK,WAAa,IAAA,CAAK,EACvBK,EAAa,SACZL,MAAC,MAAA,CAAK,WAAa,OAAA,CAAQ,CAAA,CAAA,CAE/B,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,QAEC,MAAA,CAAI,UAAU,2BACb,SAAAM,EAAAA,KAAC,MAAA,CAAI,UAAU,gBACb,SAAA,CAAAN,EAAAA,IAAC,MAAA,CAAI,UAAU,oCAAoC,SAAA,UAAO,EAC1DM,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAN,EAAAA,IAACE,EAAA,EAAmB,EACpBF,EAAAA,IAAC,OAAI,SAAA,cAAA,CAAY,CAAA,CAAA,CACnB,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CACF"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { jsxs as l, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { Building as i, Lamp as s } from "lucide-react";
|
|
3
|
-
const d = () => /* @__PURE__ */ e(i, {}), r = () => /* @__PURE__ */ e(s, {}), m = ({ organization: c }) => /* @__PURE__ */ l("div", { className: "flex items-center h-20 w-full pt-3 pr-6 pb-3 pl-32 box-border gap-10", children: [
|
|
4
|
-
/* @__PURE__ */ e("div", { className: "flex items-center h-full", children: /* @__PURE__ */ l("div", { className: "flex flex-col", children: [
|
|
5
|
-
/* @__PURE__ */ e("div", { className: "uppercase mb-0.5 tracking-[0.2px]", children: "ORGANIZATION" }),
|
|
6
|
-
/* @__PURE__ */ l("div", { className: "flex items-center gap-2 w-80", children: [
|
|
7
|
-
/* @__PURE__ */ e("div", { children: c.logo || /* @__PURE__ */ e(d, {}) }),
|
|
8
|
-
/* @__PURE__ */ l("div", { children: [
|
|
9
|
-
/* @__PURE__ */ e("div", { children: c.name }),
|
|
10
|
-
c.subtext && /* @__PURE__ */ e("div", { children: c.subtext })
|
|
11
|
-
] })
|
|
12
|
-
] })
|
|
13
|
-
] }) }),
|
|
14
|
-
/* @__PURE__ */ e("div", { className: "flex items-center h-full", children: /* @__PURE__ */ l("div", { className: "flex flex-col", children: [
|
|
15
|
-
/* @__PURE__ */ e("div", { className: "uppercase mb-0.5 tracking-[0.2px]", children: "PROJECT" }),
|
|
16
|
-
/* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
17
|
-
/* @__PURE__ */ e(r, {}),
|
|
18
|
-
/* @__PURE__ */ e("div", { children: "Not Selected" })
|
|
19
|
-
] })
|
|
20
|
-
] }) })
|
|
21
|
-
] });
|
|
22
|
-
export {
|
|
23
|
-
m as MainNavbar
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=MainNavbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainNavbar.js","sources":["../../../../src/components/composed/Main/MainNavbar.tsx"],"sourcesContent":["import { Building, Lamp } from \"lucide-react\";\nimport React from \"react\";\n\nexport interface OrganizationInfo {\n name: string;\n subtext?: string;\n logo?: React.ReactNode;\n}\n\nexport interface MainNavbarProps {\n organization: OrganizationInfo;\n}\n\nconst DefaultLogo = () => <Building />;\nconst DefaultProjectIcon = () => <Lamp />;\n\nexport const MainNavbar: React.FC<MainNavbarProps> = ({ organization }) => (\n <div className=\"flex items-center h-20 w-full pt-3 pr-6 pb-3 pl-32 box-border gap-10\">\n <div className=\"flex items-center h-full\">\n <div className=\"flex flex-col\">\n <div className=\"uppercase mb-0.5 tracking-[0.2px]\">ORGANIZATION</div>\n <div className=\"flex items-center gap-2 w-80\">\n <div>{organization.logo || <DefaultLogo />}</div>\n <div>\n <div>{organization.name}</div>\n {organization.subtext && (\n <div>{organization.subtext}</div>\n )}\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"flex items-center h-full\">\n <div className=\"flex flex-col\">\n <div className=\"uppercase mb-0.5 tracking-[0.2px]\">PROJECT</div>\n <div className=\"flex items-center gap-2\">\n <DefaultProjectIcon />\n <div>Not Selected</div>\n </div>\n </div>\n </div>\n </div>\n);\n"],"names":["DefaultLogo","jsx","Building","DefaultProjectIcon","Lamp","MainNavbar","organization","jsxs"],"mappings":";;AAaA,MAAMA,IAAc,MAAM,gBAAAC,EAACC,GAAA,EAAS,GAC9BC,IAAqB,MAAM,gBAAAF,EAACG,GAAA,EAAK,GAE1BC,IAAwC,CAAC,EAAE,cAAAC,QACtD,gBAAAC,EAAC,OAAA,EAAI,WAAU,wEACb,UAAA;AAAA,EAAA,gBAAAN,EAAC,SAAI,WAAU,4BACb,UAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA,gBAAY;AAAA,IAC/D,gBAAAM,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,MAAA,gBAAAN,EAAC,OAAA,EAAK,UAAAK,EAAa,QAAQ,gBAAAL,EAACD,KAAY,GAAG;AAAA,wBAC1C,OAAA,EACC,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAK,YAAa,KAAA,CAAK;AAAA,QACvBK,EAAa,WACZ,gBAAAL,EAAC,OAAA,EAAK,YAAa,QAAA,CAAQ;AAAA,MAAA,EAAA,CAE/B;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAAA,oBAEC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA,WAAO;AAAA,IAC1D,gBAAAM,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,gBAAAN,EAACE,GAAA,EAAmB;AAAA,MACpB,gBAAAF,EAAC,SAAI,UAAA,eAAA,CAAY;AAAA,IAAA,EAAA,CACnB;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,CACF;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("../Sidebar/Sidebar.cjs"),o=require("../../ui/scroll-area.cjs"),s=({items:r,activeItem:i,onItemClick:t})=>e.jsx(o.ScrollArea,{children:e.jsx(n,{items:r,activeItem:i,onItemClick:t})});exports.MainSidebar=s;
|
|
2
|
-
//# sourceMappingURL=MainSidebar.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainSidebar.cjs","sources":["../../../../src/components/composed/Main/MainSidebar.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { LucideIcon } from \"lucide-react\";\n\nimport { AppSidebar } from \"@/components/composed/Sidebar\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\n\ntype MainSidebarIcon = LucideIcon;\n\nexport interface MainSidebarItem {\n icon: MainSidebarIcon;\n label: string;\n}\n\nexport interface MainSidebarProps {\n items: MainSidebarItem[];\n activeItem?: string;\n onItemClick?: (label: string) => void;\n}\n\nexport const MainSidebar: React.FC<MainSidebarProps> = ({\n items,\n activeItem,\n onItemClick,\n}) => (\n <ScrollArea>\n <AppSidebar items={items} activeItem={activeItem} onItemClick={onItemClick} />\n </ScrollArea>\n);"],"names":["MainSidebar","items","activeItem","onItemClick","ScrollArea","jsx","AppSidebar"],"mappings":"+LAoBaA,EAA0C,CAAC,CACtD,MAAAC,EACA,WAAAC,EACA,YAAAC,CACF,UACGC,EAAAA,WAAA,CACC,SAAAC,EAAAA,IAACC,GAAW,MAAAL,EAAc,WAAAC,EAAwB,YAAAC,EAA0B,CAAA,CAC9E"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import e from "../Sidebar/Sidebar.js";
|
|
3
|
-
import { ScrollArea as t } from "../../ui/scroll-area.js";
|
|
4
|
-
const d = ({
|
|
5
|
-
items: o,
|
|
6
|
-
activeItem: i,
|
|
7
|
-
onItemClick: m
|
|
8
|
-
}) => /* @__PURE__ */ r(t, { children: /* @__PURE__ */ r(e, { items: o, activeItem: i, onItemClick: m }) });
|
|
9
|
-
export {
|
|
10
|
-
d as MainSidebar
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=MainSidebar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainSidebar.js","sources":["../../../../src/components/composed/Main/MainSidebar.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { LucideIcon } from \"lucide-react\";\n\nimport { AppSidebar } from \"@/components/composed/Sidebar\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\n\ntype MainSidebarIcon = LucideIcon;\n\nexport interface MainSidebarItem {\n icon: MainSidebarIcon;\n label: string;\n}\n\nexport interface MainSidebarProps {\n items: MainSidebarItem[];\n activeItem?: string;\n onItemClick?: (label: string) => void;\n}\n\nexport const MainSidebar: React.FC<MainSidebarProps> = ({\n items,\n activeItem,\n onItemClick,\n}) => (\n <ScrollArea>\n <AppSidebar items={items} activeItem={activeItem} onItemClick={onItemClick} />\n </ScrollArea>\n);"],"names":["MainSidebar","items","activeItem","onItemClick","ScrollArea","jsx","AppSidebar"],"mappings":";;;AAoBO,MAAMA,IAA0C,CAAC;AAAA,EACtD,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AACF,wBACGC,GAAA,EACC,UAAA,gBAAAC,EAACC,KAAW,OAAAL,GAAc,YAAAC,GAAwB,aAAAC,GAA0B,EAAA,CAC9E;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("../../ui/tabs.cjs"),r=({tabs:i,value:l,onChange:n})=>e.jsx(s.Tabs,{className:"gap-0",value:l,onValueChange:n,children:e.jsx(s.TabsList,{variant:"line",className:"w-full justify-start gap-6 p-0",children:i.map(a=>e.jsx(s.TabsTrigger,{className:"flex-none pb-3 px-0 pt-0",value:a.id,children:a.label},a.id))})});exports.MainTabBar=r;
|
|
2
|
-
//# sourceMappingURL=MainTabBar.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainTabBar.cjs","sources":["../../../../src/components/composed/Main/MainTabBar.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Tabs, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\n\nexport interface MainTabItem {\n id: string;\n label: string;\n}\n\nexport interface MainTabBarProps {\n tabs: MainTabItem[];\n value: string;\n onChange: (tabId: string) => void;\n}\n\nexport const MainTabBar: React.FC<MainTabBarProps> = ({ tabs, value, onChange }) => (\n <Tabs className=\"gap-0\" value={value} onValueChange={onChange}>\n <TabsList variant=\"line\" className=\"w-full justify-start gap-6 p-0\">\n {tabs.map((tab) => (\n <TabsTrigger className=\"flex-none pb-3 px-0 pt-0\" key={tab.id} value={tab.id}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n);\n"],"names":["MainTabBar","tabs","value","onChange","jsx","Tabs","TabsList","tab","TabsTrigger"],"mappings":"oJAeaA,EAAwC,CAAC,CAAA,KAAEC,EAAM,MAAAC,EAAO,SAAAC,KACnEC,EAAAA,IAACC,EAAAA,KAAA,CAAK,UAAU,QAAQ,MAAAH,EAAc,cAAeC,EACnD,SAAAC,EAAAA,IAACE,YAAS,QAAQ,OAAO,UAAU,iCAChC,WAAK,IAAKC,GACTH,EAAAA,IAACI,EAAAA,aAAY,UAAU,2BAAwC,MAAOD,EAAI,GACvE,SAAAA,EAAI,KAAA,EADgDA,EAAI,EAE3D,CACD,EACH,CAAA,CACF"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { Tabs as r, TabsList as n, TabsTrigger as p } from "../../ui/tabs.js";
|
|
3
|
-
const t = ({ tabs: l, value: s, onChange: i }) => /* @__PURE__ */ e(r, { className: "gap-0", value: s, onValueChange: i, children: /* @__PURE__ */ e(n, { variant: "line", className: "w-full justify-start gap-6 p-0", children: l.map((a) => /* @__PURE__ */ e(p, { className: "flex-none pb-3 px-0 pt-0", value: a.id, children: a.label }, a.id)) }) });
|
|
4
|
-
export {
|
|
5
|
-
t as MainTabBar
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=MainTabBar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MainTabBar.js","sources":["../../../../src/components/composed/Main/MainTabBar.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Tabs, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\n\nexport interface MainTabItem {\n id: string;\n label: string;\n}\n\nexport interface MainTabBarProps {\n tabs: MainTabItem[];\n value: string;\n onChange: (tabId: string) => void;\n}\n\nexport const MainTabBar: React.FC<MainTabBarProps> = ({ tabs, value, onChange }) => (\n <Tabs className=\"gap-0\" value={value} onValueChange={onChange}>\n <TabsList variant=\"line\" className=\"w-full justify-start gap-6 p-0\">\n {tabs.map((tab) => (\n <TabsTrigger className=\"flex-none pb-3 px-0 pt-0\" key={tab.id} value={tab.id}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n);\n"],"names":["MainTabBar","tabs","value","onChange","jsx","Tabs","TabsList","tab","TabsTrigger"],"mappings":";;AAeO,MAAMA,IAAwC,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,UAAAC,QACnE,gBAAAC,EAACC,GAAA,EAAK,WAAU,SAAQ,OAAAH,GAAc,eAAeC,GACnD,UAAA,gBAAAC,EAACE,KAAS,SAAQ,QAAO,WAAU,kCAChC,YAAK,IAAI,CAACC,MACT,gBAAAH,EAACI,KAAY,WAAU,4BAAwC,OAAOD,EAAI,IACvE,UAAAA,EAAI,MAAA,GADgDA,EAAI,EAE3D,CACD,GACH,EAAA,CACF;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("lucide-react"),r=require("react"),o=require("../../ui/button.cjs"),t=require("../../ui/card.cjs"),d=require("../../ui/label.cjs"),c=require("../../ui/switch.cjs"),l=()=>{const[i,s]=r.useState(!1);return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between pb-6",children:[e.jsx("h2",{className:"m-0 text-xl font-semibold leading-7",children:"Protocol Configuration"}),e.jsxs("div",{className:"flex items-center gap-2 text-[15px] font-medium",children:[e.jsx(c.Switch,{checked:i,onCheckedChange:s}),e.jsx(d.Label,{htmlFor:"edit-mode-switch",children:"Edit Mode"})]})]}),e.jsxs(t.Card,{children:[e.jsx(t.CardHeader,{children:e.jsx(t.CardTitle,{children:"Configuration"})}),e.jsx(t.CardContent,{children:i?e.jsxs(o.Button,{variant:"secondary",children:[e.jsx(n.Plus,{}),"Add Input"]}):e.jsx("div",{children:"No values, Use the 'edit' button to add values"})})]})]})};exports.ProtocolConfigurationPanel=l;
|
|
2
|
-
//# sourceMappingURL=ProtocolConfigurationPanel.cjs.map
|