@bikdotai/bik-component-library 0.0.821-beta.7 → 0.0.821-beta.8

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),a=require("react"),I=require("../TablePagination/TablePagination.js"),Z=require("../zeroState/ZeroState.js"),d=require("./AgentListing.styled.js"),M=require("./AgentListingFilters.js"),V=require("./AgentListingHeader.js"),_=require("./AgentTable.js"),N=({config:P,onSearchChange:h,onFilterChange:s,onSortChange:o,onNewAgent:b,onBrowseTemplates:l,onRunAgent:A,onEditAgent:C,onRowClick:r,...j})=>{const{agents:p,isLoading:g,searchValue:k,searchPlaceholder:x="Search",filterOptions:L,filterPlaceholder:T="Filters",sortOptions:w,selectedSort:q,title:R="AI Agents",pagination:i,emptyState:c,debugLog:m}=P,z=!g&&p.length===0,t=a.useCallback((e,...u)=>{m&&console.log(`[AgentListing] ${e}`,...u)},[m]),f=a.useCallback(e=>{t("onSearchChange",e),h(e)},[t,h]),v=a.useCallback(e=>{t("onFilterChange",e),s?.(e)},[t,s]),F=a.useCallback(e=>{t("onSortChange",e),o?.(e)},[t,o]),S=a.useCallback(()=>{t("onNewAgent"),b()},[t,b]),O=a.useCallback(()=>{t("onBrowseTemplates"),l?.()},[t,l]),B=a.useCallback(e=>{t("onRunAgent",e.id),A(e)},[t,A]),E=a.useCallback(e=>{t("onEditAgent",e.id),C(e)},[t,C]),H=a.useCallback(e=>{t("onRowClick",e.id),r?.(e)},[t,r]);return n.jsxs(d.Page,{"data-test":j["data-test"]??"agent-listing",children:[n.jsx(V.AgentListingHeader,{title:R,onNewAgent:S,onBrowseTemplates:l?O:void 0}),n.jsx(M.AgentListingFilters,{searchValue:k,onSearchChange:f,searchPlaceholder:x,filterOptions:L,onFilterChange:s?v:void 0,filterPlaceholder:T,sortOptions:w,selectedSort:q,onSortChange:o?F:void 0}),n.jsx(d.Body,{children:g||z?n.jsx(d.EmptyHolder,{children:n.jsx(Z.ZeroState,{isLoading:g,title:c?.title??"No agents yet",subTitle:c?.subTitle??"Create your first AI agent to start automating conversations.",actionButton:c?.actionButton??{buttonText:"New AI agent",buttonType:"primary",size:"small",onClick:S}})}):n.jsxs(n.Fragment,{children:[n.jsx(_.AgentTable,{agents:p,onRunAgent:B,onEditAgent:E,onRowClick:r?H:void 0}),i&&i.totalRows>0&&n.jsx(I.TablePagination,{pageNumber:i.pageNumber,pageSize:i.pageSize,totalRows:i.totalRows,hidePageSizeOptions:i.hidePageSizeOptions,updatePageNumber:i.onPageChange,updatePageSize:e=>{const u=Array.isArray(e)?e[0]:e,y=Number(u?.value);Number.isNaN(y)||i.onPageSizeChange(y)}})]})})]})};N.displayName="AgentListing";exports.AgentListing=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),n=require("react"),G=require("../TablePagination/TablePagination.js"),J=require("../zeroState/ZeroState.js"),A=require("./AgentListing.styled.js"),K=require("./AgentListingFilters.js"),Q=require("./AgentListingHeader.js"),U=require("./AgentTable.js"),W=require("./DeleteAgentModal.js"),x=({config:L,onSearchChange:C,onFilterChange:o,onSortChange:r,onNewAgent:m,onBrowseTemplates:g,onRunAgent:p,onEditAgent:S,onDeleteAgent:l,onRowClick:c,...q})=>{const[i,u]=n.useState(null),[y,k]=n.useState(!1),{agents:N,isLoading:d,searchValue:w,searchPlaceholder:T="Search",filterOptions:R,filterPlaceholder:v="Filters",sortOptions:z,selectedSort:D,title:F="AI Agents",pagination:s,emptyState:h,debugLog:P}=L,O=!d&&N.length===0,t=n.useCallback((e,...b)=>{P&&console.log(`[AgentListing] ${e}`,...b)},[P]),B=n.useCallback(e=>{t("onSearchChange",e),C(e)},[t,C]),E=n.useCallback(e=>{t("onFilterChange",e),o?.(e)},[t,o]),I=n.useCallback(e=>{t("onSortChange",e),r?.(e)},[t,r]),f=n.useCallback(()=>{t("onNewAgent"),m()},[t,m]),H=n.useCallback(()=>{t("onBrowseTemplates"),g?.()},[t,g]),M=n.useCallback(e=>{t("onRunAgent",e.id),p(e)},[t,p]),Z=n.useCallback(e=>{t("onEditAgent",e.id),S(e)},[t,S]),V=n.useCallback(e=>{t("onRowClick",e.id),c?.(e)},[t,c]),_=n.useCallback(e=>{t("onDeleteAgent",e.id),u(e)},[t]),$=n.useCallback(async()=>{if(!(!i||!l)){k(!0);try{await l(i),u(null)}finally{k(!1)}}},[i,l]);return a.jsxs(A.Page,{"data-test":q["data-test"]??"agent-listing",children:[a.jsx(Q.AgentListingHeader,{title:F,onNewAgent:f,onBrowseTemplates:g?H:void 0}),a.jsx(K.AgentListingFilters,{searchValue:w,onSearchChange:B,searchPlaceholder:T,filterOptions:R,onFilterChange:o?E:void 0,filterPlaceholder:v,sortOptions:z,selectedSort:D,onSortChange:r?I:void 0}),a.jsx(A.Body,{children:d||O?a.jsx(A.EmptyHolder,{children:a.jsx(J.ZeroState,{isLoading:d,title:h?.title??"No agents yet",subTitle:h?.subTitle??"Create your first AI agent to start automating conversations.",actionButton:h?.actionButton??{buttonText:"New AI agent",buttonType:"primary",size:"small",onClick:f}})}):a.jsxs(a.Fragment,{children:[a.jsx(U.AgentTable,{agents:N,onRunAgent:M,onEditAgent:Z,onDeleteAgent:l?_:void 0,onRowClick:c?V:void 0}),s&&s.totalRows>0&&a.jsx(G.TablePagination,{pageNumber:s.pageNumber,pageSize:s.pageSize,totalRows:s.totalRows,hidePageSizeOptions:s.hidePageSizeOptions,updatePageNumber:s.onPageChange,updatePageSize:e=>{const b=Array.isArray(e)?e[0]:e,j=Number(b?.value);Number.isNaN(j)||s.onPageSizeChange(j)}})]})}),i&&a.jsx(W.DeleteAgentModal,{agentName:i.name,isDeleting:y,onClose:()=>y?void 0:u(null),onConfirm:$})]})};x.displayName="AgentListing";exports.AgentListing=x;
2
2
  //# sourceMappingURL=AgentListing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { AgentListingProps, AgentListItem } from './AgentListing.model';\nimport { Body, EmptyHolder, Page } from './AgentListing.styled';\nimport { AgentListingFilters } from './AgentListingFilters';\nimport { AgentListingHeader } from './AgentListingHeader';\nimport { AgentTable } from './AgentTable';\n\n/**\n * Full body of the \"AI Agents\" listing screen (header + filters + table).\n * Presentational and fully controlled — the consumer owns data, search, sort,\n * pagination and routing. Render it inside your app shell (next to the sidebar).\n *\n * @example\n * <AgentListing\n * agents={rows}\n * searchValue={search}\n * onSearchChange={setSearch}\n * onNewAgent={() => router.push('/agents/new')}\n * onRunAgent={runAgent}\n * onEditAgent={(a) => router.push(`/agents/${a.id}`)}\n * />\n */\nexport const AgentListing: React.FC<AgentListingProps> = ({\n\tconfig,\n\tonSearchChange,\n\tonFilterChange,\n\tonSortChange,\n\tonNewAgent,\n\tonBrowseTemplates,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n\t...rest\n}) => {\n\tconst {\n\t\tagents,\n\t\tisLoading,\n\t\tsearchValue,\n\t\tsearchPlaceholder = 'Search',\n\t\tfilterOptions,\n\t\tfilterPlaceholder = 'Filters',\n\t\tsortOptions,\n\t\tselectedSort,\n\t\ttitle = 'AI Agents',\n\t\tpagination,\n\t\temptyState,\n\t\tdebugLog,\n\t} = config;\n\n\tconst showEmpty = !isLoading && agents.length === 0;\n\n\t// Gated debug logging: each handler logs at its start only when `debugLog`.\n\tconst logAction = useCallback(\n\t\t(action: string, ...args: unknown[]) => {\n\t\t\tif (debugLog) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log(`[AgentListing] ${action}`, ...args);\n\t\t\t}\n\t\t},\n\t\t[debugLog],\n\t);\n\n\tconst handleSearchChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchChange', v);\n\t\t\tonSearchChange(v);\n\t\t},\n\t\t[logAction, onSearchChange],\n\t);\n\tconst handleFilterChange = useCallback(\n\t\t(selected: DropdownOption | DropdownOption[]) => {\n\t\t\tlogAction('onFilterChange', selected);\n\t\t\tonFilterChange?.(selected);\n\t\t},\n\t\t[logAction, onFilterChange],\n\t);\n\tconst handleSortChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSortChange', v);\n\t\t\tonSortChange?.(v);\n\t\t},\n\t\t[logAction, onSortChange],\n\t);\n\tconst handleNewAgent = useCallback(() => {\n\t\tlogAction('onNewAgent');\n\t\tonNewAgent();\n\t}, [logAction, onNewAgent]);\n\tconst handleBrowseTemplates = useCallback(() => {\n\t\tlogAction('onBrowseTemplates');\n\t\tonBrowseTemplates?.();\n\t}, [logAction, onBrowseTemplates]);\n\tconst handleRunAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRunAgent', agent.id);\n\t\t\tonRunAgent(agent);\n\t\t},\n\t\t[logAction, onRunAgent],\n\t);\n\tconst handleEditAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onEditAgent', agent.id);\n\t\t\tonEditAgent(agent);\n\t\t},\n\t\t[logAction, onEditAgent],\n\t);\n\tconst handleRowClick = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRowClick', agent.id);\n\t\t\tonRowClick?.(agent);\n\t\t},\n\t\t[logAction, onRowClick],\n\t);\n\n\treturn (\n\t\t<Page data-test={rest['data-test'] ?? 'agent-listing'}>\n\t\t\t<AgentListingHeader\n\t\t\t\ttitle={title}\n\t\t\t\tonNewAgent={handleNewAgent}\n\t\t\t\tonBrowseTemplates={\n\t\t\t\t\tonBrowseTemplates ? handleBrowseTemplates : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t<AgentListingFilters\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchChange={handleSearchChange}\n\t\t\t\tsearchPlaceholder={searchPlaceholder}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonFilterChange={onFilterChange ? handleFilterChange : undefined}\n\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\tsortOptions={sortOptions}\n\t\t\t\tselectedSort={selectedSort}\n\t\t\t\tonSortChange={onSortChange ? handleSortChange : undefined}\n\t\t\t/>\n\n\t\t\t<Body>\n\t\t\t\t{isLoading || showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\ttitle={emptyState?.title ?? 'No agents yet'}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\temptyState?.subTitle ??\n\t\t\t\t\t\t\t\t'Create your first AI agent to start automating conversations.'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionButton={\n\t\t\t\t\t\t\t\temptyState?.actionButton ?? {\n\t\t\t\t\t\t\t\t\tbuttonText: 'New AI agent',\n\t\t\t\t\t\t\t\t\tbuttonType: 'primary',\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t\tonClick: handleNewAgent,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</EmptyHolder>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AgentTable\n\t\t\t\t\t\t\tagents={agents}\n\t\t\t\t\t\t\tonRunAgent={handleRunAgent}\n\t\t\t\t\t\t\tonEditAgent={handleEditAgent}\n\t\t\t\t\t\t\tonRowClick={onRowClick ? handleRowClick : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{pagination && pagination.totalRows > 0 && (\n\t\t\t\t\t\t\t<TablePagination\n\t\t\t\t\t\t\t\tpageNumber={pagination.pageNumber}\n\t\t\t\t\t\t\t\tpageSize={pagination.pageSize}\n\t\t\t\t\t\t\t\ttotalRows={pagination.totalRows}\n\t\t\t\t\t\t\t\thidePageSizeOptions={pagination.hidePageSizeOptions}\n\t\t\t\t\t\t\t\tupdatePageNumber={pagination.onPageChange}\n\t\t\t\t\t\t\t\tupdatePageSize={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst value = Number((single as { value?: string })?.value);\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onRowClick","rest","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","Page","jsx","AgentListingHeader","AgentListingFilters","Body","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","single","value"],"mappings":"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"}
1
+ {"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { AgentListingProps, AgentListItem } from './AgentListing.model';\nimport { Body, EmptyHolder, Page } from './AgentListing.styled';\nimport { AgentListingFilters } from './AgentListingFilters';\nimport { AgentListingHeader } from './AgentListingHeader';\nimport { AgentTable } from './AgentTable';\nimport { DeleteAgentModal } from './DeleteAgentModal';\n\n/**\n * Full body of the \"AI Agents\" listing screen (header + filters + table).\n * Presentational and fully controlled — the consumer owns data, search, sort,\n * pagination and routing. Render it inside your app shell (next to the sidebar).\n *\n * @example\n * <AgentListing\n * agents={rows}\n * searchValue={search}\n * onSearchChange={setSearch}\n * onNewAgent={() => router.push('/agents/new')}\n * onRunAgent={runAgent}\n * onEditAgent={(a) => router.push(`/agents/${a.id}`)}\n * />\n */\nexport const AgentListing: React.FC<AgentListingProps> = ({\n\tconfig,\n\tonSearchChange,\n\tonFilterChange,\n\tonSortChange,\n\tonNewAgent,\n\tonBrowseTemplates,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n\t...rest\n}) => {\n\t// Agent pending delete-confirmation (null = dialog closed).\n\tconst [pendingDelete, setPendingDelete] = useState<AgentListItem | null>(\n\t\tnull,\n\t);\n\tconst [isDeleting, setIsDeleting] = useState(false);\n\tconst {\n\t\tagents,\n\t\tisLoading,\n\t\tsearchValue,\n\t\tsearchPlaceholder = 'Search',\n\t\tfilterOptions,\n\t\tfilterPlaceholder = 'Filters',\n\t\tsortOptions,\n\t\tselectedSort,\n\t\ttitle = 'AI Agents',\n\t\tpagination,\n\t\temptyState,\n\t\tdebugLog,\n\t} = config;\n\n\tconst showEmpty = !isLoading && agents.length === 0;\n\n\t// Gated debug logging: each handler logs at its start only when `debugLog`.\n\tconst logAction = useCallback(\n\t\t(action: string, ...args: unknown[]) => {\n\t\t\tif (debugLog) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log(`[AgentListing] ${action}`, ...args);\n\t\t\t}\n\t\t},\n\t\t[debugLog],\n\t);\n\n\tconst handleSearchChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchChange', v);\n\t\t\tonSearchChange(v);\n\t\t},\n\t\t[logAction, onSearchChange],\n\t);\n\tconst handleFilterChange = useCallback(\n\t\t(selected: DropdownOption | DropdownOption[]) => {\n\t\t\tlogAction('onFilterChange', selected);\n\t\t\tonFilterChange?.(selected);\n\t\t},\n\t\t[logAction, onFilterChange],\n\t);\n\tconst handleSortChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSortChange', v);\n\t\t\tonSortChange?.(v);\n\t\t},\n\t\t[logAction, onSortChange],\n\t);\n\tconst handleNewAgent = useCallback(() => {\n\t\tlogAction('onNewAgent');\n\t\tonNewAgent();\n\t}, [logAction, onNewAgent]);\n\tconst handleBrowseTemplates = useCallback(() => {\n\t\tlogAction('onBrowseTemplates');\n\t\tonBrowseTemplates?.();\n\t}, [logAction, onBrowseTemplates]);\n\tconst handleRunAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRunAgent', agent.id);\n\t\t\tonRunAgent(agent);\n\t\t},\n\t\t[logAction, onRunAgent],\n\t);\n\tconst handleEditAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onEditAgent', agent.id);\n\t\t\tonEditAgent(agent);\n\t\t},\n\t\t[logAction, onEditAgent],\n\t);\n\tconst handleRowClick = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRowClick', agent.id);\n\t\t\tonRowClick?.(agent);\n\t\t},\n\t\t[logAction, onRowClick],\n\t);\n\t// Row delete just opens the confirm dialog; the actual delete runs on confirm.\n\tconst handleDeleteRequest = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onDeleteAgent', agent.id);\n\t\t\tsetPendingDelete(agent);\n\t\t},\n\t\t[logAction],\n\t);\n\tconst handleConfirmDelete = useCallback(async () => {\n\t\tif (!pendingDelete || !onDeleteAgent) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsDeleting(true);\n\t\ttry {\n\t\t\tawait onDeleteAgent(pendingDelete);\n\t\t\tsetPendingDelete(null);\n\t\t} finally {\n\t\t\tsetIsDeleting(false);\n\t\t}\n\t}, [pendingDelete, onDeleteAgent]);\n\n\treturn (\n\t\t<Page data-test={rest['data-test'] ?? 'agent-listing'}>\n\t\t\t<AgentListingHeader\n\t\t\t\ttitle={title}\n\t\t\t\tonNewAgent={handleNewAgent}\n\t\t\t\tonBrowseTemplates={\n\t\t\t\t\tonBrowseTemplates ? handleBrowseTemplates : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t<AgentListingFilters\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchChange={handleSearchChange}\n\t\t\t\tsearchPlaceholder={searchPlaceholder}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonFilterChange={onFilterChange ? handleFilterChange : undefined}\n\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\tsortOptions={sortOptions}\n\t\t\t\tselectedSort={selectedSort}\n\t\t\t\tonSortChange={onSortChange ? handleSortChange : undefined}\n\t\t\t/>\n\n\t\t\t<Body>\n\t\t\t\t{isLoading || showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\ttitle={emptyState?.title ?? 'No agents yet'}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\temptyState?.subTitle ??\n\t\t\t\t\t\t\t\t'Create your first AI agent to start automating conversations.'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionButton={\n\t\t\t\t\t\t\t\temptyState?.actionButton ?? {\n\t\t\t\t\t\t\t\t\tbuttonText: 'New AI agent',\n\t\t\t\t\t\t\t\t\tbuttonType: 'primary',\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t\tonClick: handleNewAgent,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</EmptyHolder>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AgentTable\n\t\t\t\t\t\t\tagents={agents}\n\t\t\t\t\t\t\tonRunAgent={handleRunAgent}\n\t\t\t\t\t\t\tonEditAgent={handleEditAgent}\n\t\t\t\t\t\t\tonDeleteAgent={onDeleteAgent ? handleDeleteRequest : undefined}\n\t\t\t\t\t\t\tonRowClick={onRowClick ? handleRowClick : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{pagination && pagination.totalRows > 0 && (\n\t\t\t\t\t\t\t<TablePagination\n\t\t\t\t\t\t\t\tpageNumber={pagination.pageNumber}\n\t\t\t\t\t\t\t\tpageSize={pagination.pageSize}\n\t\t\t\t\t\t\t\ttotalRows={pagination.totalRows}\n\t\t\t\t\t\t\t\thidePageSizeOptions={pagination.hidePageSizeOptions}\n\t\t\t\t\t\t\t\tupdatePageNumber={pagination.onPageChange}\n\t\t\t\t\t\t\t\tupdatePageSize={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst value = Number((single as { value?: string })?.value);\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\n\t\t\t{pendingDelete && (\n\t\t\t\t<DeleteAgentModal\n\t\t\t\t\tagentName={pendingDelete.name}\n\t\t\t\t\tisDeleting={isDeleting}\n\t\t\t\t\tonClose={() => (isDeleting ? undefined : setPendingDelete(null))}\n\t\t\t\t\tonConfirm={handleConfirmDelete}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","rest","pendingDelete","setPendingDelete","useState","isDeleting","setIsDeleting","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","handleDeleteRequest","handleConfirmDelete","Page","jsx","AgentListingHeader","AgentListingFilters","Body","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","single","value","DeleteAgentModal"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("../TypographyStyle.js"),a=require("../../constants/Theme.js"),r=require("./AgentListing.styled.js"),o=require("./AgentTableRow.js"),l=({children:n})=>e.jsx(d.TitleSmall,{color:a.COLORS.content.primary,children:n}),j=({agents:n,onRunAgent:s,onEditAgent:t,onRowClick:c})=>e.jsx(r.TableCard,{children:e.jsxs(r.TableScroll,{children:[e.jsxs(r.HeaderGridRow,{children:[e.jsx(r.HeaderCell,{children:e.jsx(l,{children:"Agent name"})}),e.jsx(r.HeaderCell,{children:e.jsx(l,{children:"Trigger"})}),e.jsx(r.HeaderCell,{align:"right",children:e.jsx(l,{children:"Trigger count"})}),e.jsx(r.HeaderCell,{children:e.jsx(l,{children:"Status"})}),e.jsx(r.HeaderCell,{align:"center",children:e.jsx(l,{children:"Actions"})})]}),n.map(i=>e.jsx(o.AgentTableRow,{agent:i,onRunAgent:s,onEditAgent:t,onRowClick:c},i.id))]})});exports.AgentTable=j;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("../TypographyStyle.js"),o=require("../../constants/Theme.js"),r=require("./AgentListing.styled.js"),j=require("./AgentTableRow.js"),l=({children:n})=>e.jsx(a.TitleSmall,{color:o.COLORS.content.primary,children:n}),g=({agents:n,onRunAgent:s,onEditAgent:t,onDeleteAgent:c,onRowClick:d})=>e.jsx(r.TableCard,{children:e.jsxs(r.TableScroll,{children:[e.jsxs(r.HeaderGridRow,{children:[e.jsx(r.HeaderCell,{children:e.jsx(l,{children:"Agent name"})}),e.jsx(r.HeaderCell,{children:e.jsx(l,{children:"Trigger"})}),e.jsx(r.HeaderCell,{align:"right",children:e.jsx(l,{children:"Trigger count"})}),e.jsx(r.HeaderCell,{children:e.jsx(l,{children:"Status"})}),e.jsx(r.HeaderCell,{align:"center",children:e.jsx(l,{children:"Actions"})})]}),n.map(i=>e.jsx(j.AgentTableRow,{agent:i,onRunAgent:s,onEditAgent:t,onDeleteAgent:c,onRowClick:d},i.id))]})});exports.AgentTable=g;
2
2
  //# sourceMappingURL=AgentTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentTable.js","sources":["../../../../src/components/agent-listing/AgentTable.tsx"],"sourcesContent":["import React from 'react';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem } from './AgentListing.model';\nimport {\n\tHeaderCell,\n\tHeaderGridRow,\n\tTableCard,\n\tTableScroll,\n} from './AgentListing.styled';\nimport { AgentTableRow } from './AgentTableRow';\n\ninterface AgentTableProps {\n\tagents: AgentListItem[];\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nconst HeaderLabel: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n\t<TitleSmall color={COLORS.content.primary}>{children}</TitleSmall>\n);\n\nexport const AgentTable: React.FC<AgentTableProps> = ({\n\tagents,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n}) => (\n\t<TableCard>\n\t\t<TableScroll>\n\t\t\t<HeaderGridRow>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Agent name</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Trigger</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"right\">\n\t\t\t\t\t<HeaderLabel>Trigger count</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Status</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"center\">\n\t\t\t\t\t<HeaderLabel>Actions</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t</HeaderGridRow>\n\n\t\t\t{agents.map((agent) => (\n\t\t\t\t<AgentTableRow\n\t\t\t\t\tkey={agent.id}\n\t\t\t\t\tagent={agent}\n\t\t\t\t\tonRunAgent={onRunAgent}\n\t\t\t\t\tonEditAgent={onEditAgent}\n\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</TableScroll>\n\t</TableCard>\n);\n"],"names":["HeaderLabel","children","jsx","TitleSmall","COLORS","AgentTable","agents","onRunAgent","onEditAgent","onRowClick","TableCard","jsxs","TableScroll","HeaderGridRow","HeaderCell","agent","AgentTableRow"],"mappings":"oQAmBMA,EAAuD,CAAC,CAAE,SAAAC,CAAA,IAC/DC,EAAAA,IAACC,EAAAA,WAAA,CAAW,MAAOC,SAAO,QAAQ,QAAU,SAAAH,CAAA,CAAS,EAGzCI,EAAwC,CAAC,CACrD,OAAAC,EACA,WAAAC,EACA,YAAAC,EACA,WAAAC,CACD,IACCP,EAAAA,IAACQ,EAAAA,UAAA,CACA,SAAAC,EAAAA,KAACC,EAAAA,YAAA,CACA,SAAA,CAAAD,OAACE,EAAAA,cAAA,CACA,SAAA,CAAAX,MAACY,EAAAA,WAAA,CACA,SAAAZ,EAAAA,IAACF,EAAA,CAAY,SAAA,YAAA,CAAU,EACxB,EACAE,MAACY,EAAAA,WAAA,CACA,SAAAZ,EAAAA,IAACF,EAAA,CAAY,mBAAO,EACrB,QACCc,EAAAA,WAAA,CAAW,MAAM,QACjB,SAAAZ,MAACF,EAAA,CAAY,yBAAa,CAAA,CAC3B,EACAE,MAACY,EAAAA,WAAA,CACA,SAAAZ,EAAAA,IAACF,EAAA,CAAY,kBAAM,EACpB,QACCc,EAAAA,WAAA,CAAW,MAAM,SACjB,SAAAZ,EAAAA,IAACF,EAAA,CAAY,mBAAO,CAAA,CACrB,CAAA,EACD,EAECM,EAAO,IAAKS,GACZb,EAAAA,IAACc,EAAAA,cAAA,CAEA,MAAAD,EACA,WAAAR,EACA,YAAAC,EACA,WAAAC,CAAA,EAJKM,EAAM,EAAA,CAMZ,CAAA,CAAA,CACF,CAAA,CACD"}
1
+ {"version":3,"file":"AgentTable.js","sources":["../../../../src/components/agent-listing/AgentTable.tsx"],"sourcesContent":["import React from 'react';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem } from './AgentListing.model';\nimport {\n\tHeaderCell,\n\tHeaderGridRow,\n\tTableCard,\n\tTableScroll,\n} from './AgentListing.styled';\nimport { AgentTableRow } from './AgentTableRow';\n\ninterface AgentTableProps {\n\tagents: AgentListItem[];\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\tonDeleteAgent?: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nconst HeaderLabel: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n\t<TitleSmall color={COLORS.content.primary}>{children}</TitleSmall>\n);\n\nexport const AgentTable: React.FC<AgentTableProps> = ({\n\tagents,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n}) => (\n\t<TableCard>\n\t\t<TableScroll>\n\t\t\t<HeaderGridRow>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Agent name</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Trigger</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"right\">\n\t\t\t\t\t<HeaderLabel>Trigger count</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Status</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"center\">\n\t\t\t\t\t<HeaderLabel>Actions</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t</HeaderGridRow>\n\n\t\t\t{agents.map((agent) => (\n\t\t\t\t<AgentTableRow\n\t\t\t\t\tkey={agent.id}\n\t\t\t\t\tagent={agent}\n\t\t\t\t\tonRunAgent={onRunAgent}\n\t\t\t\t\tonEditAgent={onEditAgent}\n\t\t\t\t\tonDeleteAgent={onDeleteAgent}\n\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</TableScroll>\n\t</TableCard>\n);\n"],"names":["HeaderLabel","children","jsx","TitleSmall","COLORS","AgentTable","agents","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","TableCard","jsxs","TableScroll","HeaderGridRow","HeaderCell","agent","AgentTableRow"],"mappings":"oQAoBMA,EAAuD,CAAC,CAAE,SAAAC,CAAA,IAC/DC,EAAAA,IAACC,EAAAA,WAAA,CAAW,MAAOC,SAAO,QAAQ,QAAU,SAAAH,CAAA,CAAS,EAGzCI,EAAwC,CAAC,CACrD,OAAAC,EACA,WAAAC,EACA,YAAAC,EACA,cAAAC,EACA,WAAAC,CACD,IACCR,EAAAA,IAACS,EAAAA,UAAA,CACA,SAAAC,EAAAA,KAACC,EAAAA,YAAA,CACA,SAAA,CAAAD,OAACE,EAAAA,cAAA,CACA,SAAA,CAAAZ,MAACa,EAAAA,WAAA,CACA,SAAAb,EAAAA,IAACF,EAAA,CAAY,SAAA,YAAA,CAAU,EACxB,EACAE,MAACa,EAAAA,WAAA,CACA,SAAAb,EAAAA,IAACF,EAAA,CAAY,mBAAO,EACrB,QACCe,EAAAA,WAAA,CAAW,MAAM,QACjB,SAAAb,MAACF,EAAA,CAAY,yBAAa,CAAA,CAC3B,EACAE,MAACa,EAAAA,WAAA,CACA,SAAAb,EAAAA,IAACF,EAAA,CAAY,kBAAM,EACpB,QACCe,EAAAA,WAAA,CAAW,MAAM,SACjB,SAAAb,EAAAA,IAACF,EAAA,CAAY,mBAAO,CAAA,CACrB,CAAA,EACD,EAECM,EAAO,IAAKU,GACZd,EAAAA,IAACe,EAAAA,cAAA,CAEA,MAAAD,EACA,WAAAT,EACA,YAAAC,EACA,cAAAC,EACA,WAAAC,CAAA,EALKM,EAAM,EAAA,CAOZ,CAAA,CAAA,CACF,CAAA,CACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),p=require("../../assets/icons/edit.svg.js"),y=require("../../assets/icons/playOutline.svg.js"),n=require("../TypographyStyle.js"),r=require("../../constants/Theme.js"),i=require("./AgentListing.styled.js"),x=require("../tag/Tag.js"),j=require("../tooltips/Tooltip.js"),b=e=>{switch(e.kind){case"topic":return`Topic: ${e.label??""}`;case"phrases":return`Phrases: ${(e.items??[]).join(", ")}`;default:return e.label??""}},O=({agent:e,onRunAgent:a,onEditAgent:d,onRowClick:o})=>{const s=e.status==="live",u=l=>{l.stopPropagation(),!e.isRunDisabled&&a(e)},h=l=>{l.stopPropagation(),d(e)},c=t.jsx(i.ActionButton,{"data-test":`agent-row-run-${e.id}`,disabled:e.isRunDisabled,onClick:u,"aria-label":"Run agent",children:t.jsx(y.default,{width:20,height:20,color:r.COLORS.content.secondary})});return t.jsxs(i.BodyGridRow,{"data-test":`agent-row-${e.id}`,clickable:!!o,onClick:o?()=>o(e):void 0,children:[t.jsxs(i.Cell,{children:[t.jsx(n.TitleSmall,{numberOfLines:1,color:r.COLORS.content.primary,children:e.name}),t.jsxs(n.BodyCaption,{numberOfLines:1,color:r.COLORS.content.secondary,children:["Created: ",e.createdAtLabel]})]}),t.jsx(i.Cell,{children:t.jsx(n.BodyPrimary,{numberOfLines:2,color:r.COLORS.content.primary,children:b(e.trigger)})}),t.jsx(i.Cell,{align:"right",children:t.jsx(n.BodyPrimary,{color:r.COLORS.content.primary,children:e.triggerCount})}),t.jsx(i.Cell,{children:t.jsx(x.Tag,{tagText:s?"Live":"Draft",type:s?"positive":"neutral",variant:"regular"})}),t.jsx(i.Cell,{align:"center",children:t.jsxs(i.ActionGroup,{children:[e.isRunDisabled&&e.runDisabledTooltip?t.jsx(j.Tooltip,{body:e.runDisabledTooltip,placement:"top",children:t.jsx("span",{style:{display:"flex"},children:c})}):c,t.jsx(i.ActionButton,{"data-test":`agent-row-edit-${e.id}`,onClick:h,"aria-label":"Edit agent",children:t.jsx(p.default,{width:20,height:20,color:r.COLORS.content.secondary})})]})})]})};exports.AgentTableRow=O;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),x=require("../../assets/icons/delete.svg.js"),j=require("../../assets/icons/edit.svg.js"),b=require("../../assets/icons/playOutline.svg.js"),o=require("../TypographyStyle.js"),r=require("../../constants/Theme.js"),i=require("./AgentListing.styled.js"),O=require("../tag/Tag.js"),C=require("../tooltips/Tooltip.js"),m=e=>{switch(e.kind){case"topic":return`Topic: ${e.label??""}`;case"phrases":return`Phrases: ${(e.items??[]).join(", ")}`;default:return e.label??""}},T=({agent:e,onRunAgent:d,onEditAgent:u,onDeleteAgent:s,onRowClick:l})=>{const a=e.status==="live",h=n=>{n.stopPropagation(),!e.isRunDisabled&&d(e)},p=n=>{n.stopPropagation(),u(e)},y=n=>{n.stopPropagation(),s?.(e)},c=t.jsx(i.ActionButton,{"data-test":`agent-row-run-${e.id}`,disabled:e.isRunDisabled,onClick:h,"aria-label":"Run agent",children:t.jsx(b.default,{width:20,height:20,color:r.COLORS.content.secondary})});return t.jsxs(i.BodyGridRow,{"data-test":`agent-row-${e.id}`,clickable:!!l,onClick:l?()=>l(e):void 0,children:[t.jsxs(i.Cell,{children:[t.jsx(o.TitleSmall,{numberOfLines:1,color:r.COLORS.content.primary,children:e.name}),t.jsxs(o.BodyCaption,{numberOfLines:1,color:r.COLORS.content.secondary,children:["Created: ",e.createdAtLabel]})]}),t.jsx(i.Cell,{children:t.jsx(o.BodyPrimary,{numberOfLines:2,color:r.COLORS.content.primary,children:m(e.trigger)})}),t.jsx(i.Cell,{align:"right",children:t.jsx(o.BodyPrimary,{color:r.COLORS.content.primary,children:e.triggerCount})}),t.jsx(i.Cell,{children:t.jsx(O.Tag,{tagText:a?"Live":"Draft",type:a?"positive":"neutral",variant:"regular"})}),t.jsx(i.Cell,{align:"center",children:t.jsxs(i.ActionGroup,{children:[e.isRunDisabled&&e.runDisabledTooltip?t.jsx(C.Tooltip,{body:e.runDisabledTooltip,placement:"top",children:t.jsx("span",{style:{display:"flex"},children:c})}):c,t.jsx(i.ActionButton,{"data-test":`agent-row-edit-${e.id}`,onClick:p,"aria-label":"Edit agent",children:t.jsx(j.default,{width:20,height:20,color:r.COLORS.content.secondary})}),s&&t.jsx(i.ActionButton,{"data-test":`agent-row-delete-${e.id}`,onClick:y,"aria-label":"Delete agent",children:t.jsx(x.default,{width:20,height:20,color:r.COLORS.content.secondary})})]})})]})};exports.AgentTableRow=T;
2
2
  //# sourceMappingURL=AgentTableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentTableRow.js","sources":["../../../../src/components/agent-listing/AgentTableRow.tsx"],"sourcesContent":["import EditIcon from '@src/assets/icons/edit.svg';\nimport PlayOutlineIcon from '@src/assets/icons/playOutline.svg';\nimport React from 'react';\nimport { Tag } from '@src/components/tag';\nimport { Tooltip } from '@src/components/tooltips';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem, AgentTriggerSummary } from './AgentListing.model';\nimport {\n\tActionButton,\n\tActionGroup,\n\tBodyGridRow,\n\tCell,\n} from './AgentListing.styled';\n\nconst triggerToText = (trigger: AgentTriggerSummary): string => {\n\tswitch (trigger.kind) {\n\t\tcase 'topic':\n\t\t\treturn `Topic: ${trigger.label ?? ''}`;\n\t\tcase 'phrases':\n\t\t\treturn `Phrases: ${(trigger.items ?? []).join(', ')}`;\n\t\tcase 'custom':\n\t\tdefault:\n\t\t\treturn trigger.label ?? '';\n\t}\n};\n\ninterface AgentTableRowProps {\n\tagent: AgentListItem;\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nexport const AgentTableRow: React.FC<AgentTableRowProps> = ({\n\tagent,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n}) => {\n\tconst isLive = agent.status === 'live';\n\n\tconst handleRun = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (agent.isRunDisabled) {\n\t\t\treturn;\n\t\t}\n\t\tonRunAgent(agent);\n\t};\n\n\tconst handleEdit = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonEditAgent(agent);\n\t};\n\n\tconst playButton = (\n\t\t<ActionButton\n\t\t\tdata-test={`agent-row-run-${agent.id}`}\n\t\t\tdisabled={agent.isRunDisabled}\n\t\t\tonClick={handleRun}\n\t\t\taria-label=\"Run agent\"\n\t\t>\n\t\t\t<PlayOutlineIcon\n\t\t\t\twidth={20}\n\t\t\t\theight={20}\n\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t/>\n\t\t</ActionButton>\n\t);\n\n\treturn (\n\t\t<BodyGridRow\n\t\t\tdata-test={`agent-row-${agent.id}`}\n\t\t\tclickable={!!onRowClick}\n\t\t\tonClick={onRowClick ? () => onRowClick(agent) : undefined}\n\t\t>\n\t\t\t<Cell>\n\t\t\t\t<TitleSmall numberOfLines={1} color={COLORS.content.primary}>\n\t\t\t\t\t{agent.name}\n\t\t\t\t</TitleSmall>\n\t\t\t\t<BodyCaption numberOfLines={1} color={COLORS.content.secondary}>\n\t\t\t\t\tCreated: {agent.createdAtLabel}\n\t\t\t\t</BodyCaption>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<BodyPrimary numberOfLines={2} color={COLORS.content.primary}>\n\t\t\t\t\t{triggerToText(agent.trigger)}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"right\">\n\t\t\t\t<BodyPrimary color={COLORS.content.primary}>\n\t\t\t\t\t{agent.triggerCount}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<Tag\n\t\t\t\t\ttagText={isLive ? 'Live' : 'Draft'}\n\t\t\t\t\ttype={isLive ? 'positive' : 'neutral'}\n\t\t\t\t\tvariant=\"regular\"\n\t\t\t\t/>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"center\">\n\t\t\t\t<ActionGroup>\n\t\t\t\t\t{agent.isRunDisabled && agent.runDisabledTooltip ? (\n\t\t\t\t\t\t<Tooltip body={agent.runDisabledTooltip} placement=\"top\">\n\t\t\t\t\t\t\t<span style={{ display: 'flex' }}>{playButton}</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplayButton\n\t\t\t\t\t)}\n\t\t\t\t\t<ActionButton\n\t\t\t\t\t\tdata-test={`agent-row-edit-${agent.id}`}\n\t\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t\t\taria-label=\"Edit agent\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<EditIcon width={20} height={20} color={COLORS.content.secondary} />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t</ActionGroup>\n\t\t\t</Cell>\n\t\t</BodyGridRow>\n\t);\n};\n"],"names":["triggerToText","trigger","AgentTableRow","agent","onRunAgent","onEditAgent","onRowClick","isLive","handleRun","e","handleEdit","playButton","jsx","ActionButton","PlayOutlineIcon","COLORS","jsxs","BodyGridRow","Cell","TitleSmall","BodyCaption","BodyPrimary","Tag","ActionGroup","Tooltip","EditIcon"],"mappings":"kYAmBMA,EAAiBC,GAAyC,CAC/D,OAAQA,EAAQ,KAAA,CACf,IAAK,QACJ,MAAO,UAAUA,EAAQ,OAAS,EAAE,GACrC,IAAK,UACJ,MAAO,aAAaA,EAAQ,OAAS,CAAA,GAAI,KAAK,IAAI,CAAC,GAEpD,QACC,OAAOA,EAAQ,OAAS,EAAA,CAE3B,EASaC,EAA8C,CAAC,CAC3D,MAAAC,EACA,WAAAC,EACA,YAAAC,EACA,WAAAC,CACD,IAAM,CACL,MAAMC,EAASJ,EAAM,SAAW,OAE1BK,EAAaC,GAAwB,CAC1CA,EAAE,gBAAA,EACE,CAAAN,EAAM,eAGVC,EAAWD,CAAK,CACjB,EAEMO,EAAcD,GAAwB,CAC3CA,EAAE,gBAAA,EACFJ,EAAYF,CAAK,CAClB,EAEMQ,EACLC,EAAAA,IAACC,EAAAA,aAAA,CACA,YAAW,iBAAiBV,EAAM,EAAE,GACpC,SAAUA,EAAM,cAChB,QAASK,EACT,aAAW,YAEX,SAAAI,EAAAA,IAACE,EAAAA,QAAA,CACA,MAAO,GACP,OAAQ,GACR,MAAOC,EAAAA,OAAO,QAAQ,SAAA,CAAA,CACvB,CAAA,EAIF,OACCC,EAAAA,KAACC,EAAAA,YAAA,CACA,YAAW,aAAad,EAAM,EAAE,GAChC,UAAW,CAAC,CAACG,EACb,QAASA,EAAa,IAAMA,EAAWH,CAAK,EAAI,OAEhD,SAAA,CAAAa,OAACE,EAAAA,KAAA,CACA,SAAA,CAAAN,EAAAA,IAACO,EAAAA,WAAA,CAAW,cAAe,EAAG,MAAOJ,SAAO,QAAQ,QAClD,WAAM,IAAA,CACR,SACCK,EAAAA,YAAA,CAAY,cAAe,EAAG,MAAOL,SAAO,QAAQ,UAAW,SAAA,CAAA,YACrDZ,EAAM,cAAA,CAAA,CACjB,CAAA,EACD,EAEAS,EAAAA,IAACM,EAAAA,KAAA,CACA,SAAAN,EAAAA,IAACS,cAAA,CAAY,cAAe,EAAG,MAAON,EAAAA,OAAO,QAAQ,QACnD,SAAAf,EAAcG,EAAM,OAAO,EAC7B,EACD,EAEAS,EAAAA,IAACM,EAAAA,KAAA,CAAK,MAAM,QACX,SAAAN,EAAAA,IAACS,cAAA,CAAY,MAAON,EAAAA,OAAO,QAAQ,QACjC,SAAAZ,EAAM,YAAA,CACR,EACD,QAECe,EAAAA,KAAA,CACA,SAAAN,EAAAA,IAACU,EAAAA,IAAA,CACA,QAASf,EAAS,OAAS,QAC3B,KAAMA,EAAS,WAAa,UAC5B,QAAQ,SAAA,CAAA,EAEV,EAEAK,MAACM,EAAAA,KAAA,CAAK,MAAM,SACX,gBAACK,cAAA,CACC,SAAA,CAAApB,EAAM,eAAiBA,EAAM,yBAC5BqB,UAAA,CAAQ,KAAMrB,EAAM,mBAAoB,UAAU,MAClD,SAAAS,EAAAA,IAAC,OAAA,CAAK,MAAO,CAAE,QAAS,QAAW,SAAAD,EAAW,EAC/C,EAEAA,EAEDC,EAAAA,IAACC,EAAAA,aAAA,CACA,YAAW,kBAAkBV,EAAM,EAAE,GACrC,QAASO,EACT,aAAW,aAEX,SAAAE,EAAAA,IAACa,WAAS,MAAO,GAAI,OAAQ,GAAI,MAAOV,SAAO,QAAQ,SAAA,CAAW,CAAA,CAAA,CACnE,CAAA,CACD,CAAA,CACD,CAAA,CAAA,CAAA,CAGH"}
1
+ {"version":3,"file":"AgentTableRow.js","sources":["../../../../src/components/agent-listing/AgentTableRow.tsx"],"sourcesContent":["import DeleteIcon from '@src/assets/icons/delete.svg';\nimport EditIcon from '@src/assets/icons/edit.svg';\nimport PlayOutlineIcon from '@src/assets/icons/playOutline.svg';\nimport React from 'react';\nimport { Tag } from '@src/components/tag';\nimport { Tooltip } from '@src/components/tooltips';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem, AgentTriggerSummary } from './AgentListing.model';\nimport {\n\tActionButton,\n\tActionGroup,\n\tBodyGridRow,\n\tCell,\n} from './AgentListing.styled';\n\nconst triggerToText = (trigger: AgentTriggerSummary): string => {\n\tswitch (trigger.kind) {\n\t\tcase 'topic':\n\t\t\treturn `Topic: ${trigger.label ?? ''}`;\n\t\tcase 'phrases':\n\t\t\treturn `Phrases: ${(trigger.items ?? []).join(', ')}`;\n\t\tcase 'custom':\n\t\tdefault:\n\t\t\treturn trigger.label ?? '';\n\t}\n};\n\ninterface AgentTableRowProps {\n\tagent: AgentListItem;\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\t/** When set, render a delete action (the listing handles confirmation). */\n\tonDeleteAgent?: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nexport const AgentTableRow: React.FC<AgentTableRowProps> = ({\n\tagent,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n}) => {\n\tconst isLive = agent.status === 'live';\n\n\tconst handleRun = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (agent.isRunDisabled) {\n\t\t\treturn;\n\t\t}\n\t\tonRunAgent(agent);\n\t};\n\n\tconst handleEdit = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonEditAgent(agent);\n\t};\n\n\tconst handleDelete = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonDeleteAgent?.(agent);\n\t};\n\n\tconst playButton = (\n\t\t<ActionButton\n\t\t\tdata-test={`agent-row-run-${agent.id}`}\n\t\t\tdisabled={agent.isRunDisabled}\n\t\t\tonClick={handleRun}\n\t\t\taria-label=\"Run agent\"\n\t\t>\n\t\t\t<PlayOutlineIcon\n\t\t\t\twidth={20}\n\t\t\t\theight={20}\n\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t/>\n\t\t</ActionButton>\n\t);\n\n\treturn (\n\t\t<BodyGridRow\n\t\t\tdata-test={`agent-row-${agent.id}`}\n\t\t\tclickable={!!onRowClick}\n\t\t\tonClick={onRowClick ? () => onRowClick(agent) : undefined}\n\t\t>\n\t\t\t<Cell>\n\t\t\t\t<TitleSmall numberOfLines={1} color={COLORS.content.primary}>\n\t\t\t\t\t{agent.name}\n\t\t\t\t</TitleSmall>\n\t\t\t\t<BodyCaption numberOfLines={1} color={COLORS.content.secondary}>\n\t\t\t\t\tCreated: {agent.createdAtLabel}\n\t\t\t\t</BodyCaption>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<BodyPrimary numberOfLines={2} color={COLORS.content.primary}>\n\t\t\t\t\t{triggerToText(agent.trigger)}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"right\">\n\t\t\t\t<BodyPrimary color={COLORS.content.primary}>\n\t\t\t\t\t{agent.triggerCount}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<Tag\n\t\t\t\t\ttagText={isLive ? 'Live' : 'Draft'}\n\t\t\t\t\ttype={isLive ? 'positive' : 'neutral'}\n\t\t\t\t\tvariant=\"regular\"\n\t\t\t\t/>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"center\">\n\t\t\t\t<ActionGroup>\n\t\t\t\t\t{agent.isRunDisabled && agent.runDisabledTooltip ? (\n\t\t\t\t\t\t<Tooltip body={agent.runDisabledTooltip} placement=\"top\">\n\t\t\t\t\t\t\t<span style={{ display: 'flex' }}>{playButton}</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplayButton\n\t\t\t\t\t)}\n\t\t\t\t\t<ActionButton\n\t\t\t\t\t\tdata-test={`agent-row-edit-${agent.id}`}\n\t\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t\t\taria-label=\"Edit agent\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<EditIcon width={20} height={20} color={COLORS.content.secondary} />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t\t{onDeleteAgent && (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tdata-test={`agent-row-delete-${agent.id}`}\n\t\t\t\t\t\t\tonClick={handleDelete}\n\t\t\t\t\t\t\taria-label=\"Delete agent\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DeleteIcon\n\t\t\t\t\t\t\t\twidth={20}\n\t\t\t\t\t\t\t\theight={20}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t)}\n\t\t\t\t</ActionGroup>\n\t\t\t</Cell>\n\t\t</BodyGridRow>\n\t);\n};\n"],"names":["triggerToText","trigger","AgentTableRow","agent","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","isLive","handleRun","e","handleEdit","handleDelete","playButton","jsx","ActionButton","PlayOutlineIcon","COLORS","jsxs","BodyGridRow","Cell","TitleSmall","BodyCaption","BodyPrimary","Tag","ActionGroup","Tooltip","EditIcon","DeleteIcon"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("../TypographyStyle.js"),l=require("../../constants/Theme.js"),s=require("../modals/styledModal.js"),i=require("../button/Button.js"),r=({agentName:a,onClose:t,onConfirm:d,isDeleting:o})=>e.jsx(s.StyledModal,{"data-test":"agent-delete-modal",open:!0,onClose:t,width:"530px",children:e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:24,alignItems:"flex-start",textAlign:"left"},children:[e.jsxs(n.TitleRegular,{color:l.COLORS.content.primary,children:["Delete “",a,"”?"]}),e.jsx(n.BodySecondary,{color:l.COLORS.content.secondary,children:"This permanently deletes the agent and its sub-agents. This can’t be undone."}),e.jsxs("div",{style:{display:"flex",gap:12,width:"100%",marginTop:4},children:[e.jsx(i.Button,{"data-test":"agent-delete-cancel",buttonType:"secondary",size:"medium",matchParentWidth:!0,buttonText:"Cancel",onClick:t}),e.jsx(i.Button,{"data-test":"agent-delete-confirm",buttonType:"destructive",size:"medium",matchParentWidth:!0,buttonText:"Delete",isLoading:o,onClick:d})]})]})});exports.DeleteAgentModal=r;
2
+ //# sourceMappingURL=DeleteAgentModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteAgentModal.js","sources":["../../../../src/components/agent-listing/DeleteAgentModal.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '@src/components/button';\nimport { StyledModal } from '@src/components/modals';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\ninterface DeleteAgentModalProps {\n\t/** Name of the agent being deleted (for the body copy). */\n\tagentName: string;\n\t/** Dismiss without deleting (X / outside click / Cancel). */\n\tonClose: () => void;\n\t/** Confirm deletion. */\n\tonConfirm: () => void;\n\tisDeleting?: boolean;\n}\n\n/**\n * \"Delete agent?\" confirmation for the listing. Deleting an entry agent also\n * removes its sub-agents (the backend cascades), so the copy warns about it.\n */\nexport const DeleteAgentModal: React.FC<DeleteAgentModalProps> = ({\n\tagentName,\n\tonClose,\n\tonConfirm,\n\tisDeleting,\n}) => (\n\t<StyledModal\n\t\tdata-test=\"agent-delete-modal\"\n\t\topen\n\t\tonClose={onClose}\n\t\twidth=\"530px\"\n\t>\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\tgap: 12,\n\t\t\t\tpadding: 24,\n\t\t\t\talignItems: 'flex-start',\n\t\t\t\ttextAlign: 'left',\n\t\t\t}}\n\t\t>\n\t\t\t<TitleRegular color={COLORS.content.primary}>\n\t\t\t\tDelete “{agentName}”?\n\t\t\t</TitleRegular>\n\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\tThis permanently deletes the agent and its sub-agents. This can’t be\n\t\t\t\tundone.\n\t\t\t</BodySecondary>\n\n\t\t\t<div style={{ display: 'flex', gap: 12, width: '100%', marginTop: 4 }}>\n\t\t\t\t<Button\n\t\t\t\t\tdata-test=\"agent-delete-cancel\"\n\t\t\t\t\tbuttonType=\"secondary\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tmatchParentWidth\n\t\t\t\t\tbuttonText=\"Cancel\"\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t/>\n\t\t\t\t<Button\n\t\t\t\t\tdata-test=\"agent-delete-confirm\"\n\t\t\t\t\tbuttonType=\"destructive\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tmatchParentWidth\n\t\t\t\t\tbuttonText=\"Delete\"\n\t\t\t\t\tisLoading={isDeleting}\n\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t</StyledModal>\n);\n"],"names":["DeleteAgentModal","agentName","onClose","onConfirm","isDeleting","jsx","StyledModal","jsxs","TitleRegular","COLORS","BodySecondary","Button"],"mappings":"qQAoBaA,EAAoD,CAAC,CACjE,UAAAC,EACA,QAAAC,EACA,UAAAC,EACA,WAAAC,CACD,IACCC,EAAAA,IAACC,EAAAA,YAAA,CACA,YAAU,qBACV,KAAI,GACJ,QAAAJ,EACA,MAAM,QAEN,SAAAK,EAAAA,KAAC,MAAA,CACA,MAAO,CACN,QAAS,OACT,cAAe,SACf,IAAK,GACL,QAAS,GACT,WAAY,aACZ,UAAW,MAAA,EAGZ,SAAA,CAAAA,EAAAA,KAACC,EAAAA,aAAA,CAAa,MAAOC,EAAAA,OAAO,QAAQ,QAAS,SAAA,CAAA,WACnCR,EAAU,IAAA,EACpB,QACCS,EAAAA,cAAA,CAAc,MAAOD,EAAAA,OAAO,QAAQ,UAAW,SAAA,+EAGhD,EAEAF,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,IAAK,GAAI,MAAO,OAAQ,UAAW,CAAA,EACjE,SAAA,CAAAF,EAAAA,IAACM,EAAAA,OAAA,CACA,YAAU,sBACV,WAAW,YACX,KAAK,SACL,iBAAgB,GAChB,WAAW,SACX,QAAST,CAAA,CAAA,EAEVG,EAAAA,IAACM,EAAAA,OAAA,CACA,YAAU,uBACV,WAAW,cACX,KAAK,SACL,iBAAgB,GAChB,WAAW,SACX,UAAWP,EACX,QAASD,CAAA,CAAA,CACV,CAAA,CACD,CAAA,CAAA,CAAA,CACD,CACD"}
@@ -1,124 +1,143 @@
1
- import { jsxs as N, jsx as i, Fragment as H } from "react/jsx-runtime";
2
- import { useCallback as n } from "react";
3
- import { TablePagination as V } from "../TablePagination/TablePagination.js";
4
- import { ZeroState as Z } from "../zeroState/ZeroState.js";
5
- import { Page as $, Body as q, EmptyHolder as D } from "./AgentListing.styled.js";
6
- import { AgentListingFilters as G } from "./AgentListingFilters.js";
7
- import { AgentListingHeader as J } from "./AgentListingHeader.js";
8
- import { AgentTable as K } from "./AgentTable.js";
9
- const M = ({
10
- config: y,
11
- onSearchChange: m,
12
- onFilterChange: a,
1
+ import { jsxs as v, jsx as i, Fragment as J } from "react/jsx-runtime";
2
+ import { useState as z, useCallback as n } from "react";
3
+ import { TablePagination as K } from "../TablePagination/TablePagination.js";
4
+ import { ZeroState as Q } from "../zeroState/ZeroState.js";
5
+ import { Page as U, Body as W, EmptyHolder as X } from "./AgentListing.styled.js";
6
+ import { AgentListingFilters as Y } from "./AgentListingFilters.js";
7
+ import { AgentListingHeader as _ } from "./AgentListingHeader.js";
8
+ import { AgentTable as ee } from "./AgentTable.js";
9
+ import { DeleteAgentModal as te } from "./DeleteAgentModal.js";
10
+ const ne = ({
11
+ config: L,
12
+ onSearchChange: p,
13
+ onFilterChange: l,
13
14
  onSortChange: r,
14
- onNewAgent: h,
15
- onBrowseTemplates: s,
16
- onRunAgent: p,
17
- onEditAgent: u,
18
- onRowClick: g,
19
- ...C
15
+ onNewAgent: f,
16
+ onBrowseTemplates: g,
17
+ onRunAgent: A,
18
+ onEditAgent: y,
19
+ onDeleteAgent: s,
20
+ onRowClick: d,
21
+ ...R
20
22
  }) => {
21
- const {
22
- agents: A,
23
- isLoading: l,
24
- searchValue: P,
25
- searchPlaceholder: w = "Search",
26
- filterOptions: z,
27
- filterPlaceholder: L = "Filters",
28
- sortOptions: T,
29
- selectedSort: R,
30
- title: v = "AI Agents",
23
+ const [a, c] = z(
24
+ null
25
+ ), [S, b] = z(!1), {
26
+ agents: C,
27
+ isLoading: m,
28
+ searchValue: T,
29
+ searchPlaceholder: D = "Search",
30
+ filterOptions: x,
31
+ filterPlaceholder: B = "Filters",
32
+ sortOptions: E,
33
+ selectedSort: F,
34
+ title: I = "AI Agents",
31
35
  pagination: o,
32
- emptyState: d,
33
- debugLog: b
34
- } = y, x = !l && A.length === 0, t = n(
35
- (e, ...c) => {
36
- b && console.log(`[AgentListing] ${e}`, ...c);
36
+ emptyState: h,
37
+ debugLog: N
38
+ } = L, O = !m && C.length === 0, t = n(
39
+ (e, ...u) => {
40
+ N && console.log(`[AgentListing] ${e}`, ...u);
37
41
  },
38
- [b]
39
- ), B = n(
42
+ [N]
43
+ ), k = n(
40
44
  (e) => {
41
- t("onSearchChange", e), m(e);
45
+ t("onSearchChange", e), p(e);
42
46
  },
43
- [t, m]
44
- ), E = n(
47
+ [t, p]
48
+ ), j = n(
45
49
  (e) => {
46
- t("onFilterChange", e), a?.(e);
50
+ t("onFilterChange", e), l?.(e);
47
51
  },
48
- [t, a]
49
- ), F = n(
52
+ [t, l]
53
+ ), H = n(
50
54
  (e) => {
51
55
  t("onSortChange", e), r?.(e);
52
56
  },
53
57
  [t, r]
54
- ), f = n(() => {
55
- t("onNewAgent"), h();
56
- }, [t, h]), O = n(() => {
57
- t("onBrowseTemplates"), s?.();
58
- }, [t, s]), k = n(
58
+ ), P = n(() => {
59
+ t("onNewAgent"), f();
60
+ }, [t, f]), q = n(() => {
61
+ t("onBrowseTemplates"), g?.();
62
+ }, [t, g]), M = n(
59
63
  (e) => {
60
- t("onRunAgent", e.id), p(e);
64
+ t("onRunAgent", e.id), A(e);
61
65
  },
62
- [t, p]
63
- ), I = n(
66
+ [t, A]
67
+ ), V = n(
64
68
  (e) => {
65
- t("onEditAgent", e.id), u(e);
69
+ t("onEditAgent", e.id), y(e);
66
70
  },
67
- [t, u]
68
- ), j = n(
71
+ [t, y]
72
+ ), Z = n(
73
+ (e) => {
74
+ t("onRowClick", e.id), d?.(e);
75
+ },
76
+ [t, d]
77
+ ), $ = n(
69
78
  (e) => {
70
- t("onRowClick", e.id), g?.(e);
79
+ t("onDeleteAgent", e.id), c(e);
71
80
  },
72
- [t, g]
73
- );
74
- return /* @__PURE__ */ N($, { "data-test": C["data-test"] ?? "agent-listing", children: [
81
+ [t]
82
+ ), G = n(async () => {
83
+ if (!(!a || !s)) {
84
+ b(!0);
85
+ try {
86
+ await s(a), c(null);
87
+ } finally {
88
+ b(!1);
89
+ }
90
+ }
91
+ }, [a, s]);
92
+ return /* @__PURE__ */ v(U, { "data-test": R["data-test"] ?? "agent-listing", children: [
75
93
  /* @__PURE__ */ i(
76
- J,
94
+ _,
77
95
  {
78
- title: v,
79
- onNewAgent: f,
80
- onBrowseTemplates: s ? O : void 0
96
+ title: I,
97
+ onNewAgent: P,
98
+ onBrowseTemplates: g ? q : void 0
81
99
  }
82
100
  ),
83
101
  /* @__PURE__ */ i(
84
- G,
102
+ Y,
85
103
  {
86
- searchValue: P,
87
- onSearchChange: B,
88
- searchPlaceholder: w,
89
- filterOptions: z,
90
- onFilterChange: a ? E : void 0,
91
- filterPlaceholder: L,
92
- sortOptions: T,
93
- selectedSort: R,
94
- onSortChange: r ? F : void 0
104
+ searchValue: T,
105
+ onSearchChange: k,
106
+ searchPlaceholder: D,
107
+ filterOptions: x,
108
+ onFilterChange: l ? j : void 0,
109
+ filterPlaceholder: B,
110
+ sortOptions: E,
111
+ selectedSort: F,
112
+ onSortChange: r ? H : void 0
95
113
  }
96
114
  ),
97
- /* @__PURE__ */ i(q, { children: l || x ? /* @__PURE__ */ i(D, { children: /* @__PURE__ */ i(
98
- Z,
115
+ /* @__PURE__ */ i(W, { children: m || O ? /* @__PURE__ */ i(X, { children: /* @__PURE__ */ i(
116
+ Q,
99
117
  {
100
- isLoading: l,
101
- title: d?.title ?? "No agents yet",
102
- subTitle: d?.subTitle ?? "Create your first AI agent to start automating conversations.",
103
- actionButton: d?.actionButton ?? {
118
+ isLoading: m,
119
+ title: h?.title ?? "No agents yet",
120
+ subTitle: h?.subTitle ?? "Create your first AI agent to start automating conversations.",
121
+ actionButton: h?.actionButton ?? {
104
122
  buttonText: "New AI agent",
105
123
  buttonType: "primary",
106
124
  size: "small",
107
- onClick: f
125
+ onClick: P
108
126
  }
109
127
  }
110
- ) }) : /* @__PURE__ */ N(H, { children: [
128
+ ) }) : /* @__PURE__ */ v(J, { children: [
111
129
  /* @__PURE__ */ i(
112
- K,
130
+ ee,
113
131
  {
114
- agents: A,
115
- onRunAgent: k,
116
- onEditAgent: I,
117
- onRowClick: g ? j : void 0
132
+ agents: C,
133
+ onRunAgent: M,
134
+ onEditAgent: V,
135
+ onDeleteAgent: s ? $ : void 0,
136
+ onRowClick: d ? Z : void 0
118
137
  }
119
138
  ),
120
139
  o && o.totalRows > 0 && /* @__PURE__ */ i(
121
- V,
140
+ K,
122
141
  {
123
142
  pageNumber: o.pageNumber,
124
143
  pageSize: o.pageSize,
@@ -126,16 +145,25 @@ const M = ({
126
145
  hidePageSizeOptions: o.hidePageSizeOptions,
127
146
  updatePageNumber: o.onPageChange,
128
147
  updatePageSize: (e) => {
129
- const c = Array.isArray(e) ? e[0] : e, S = Number(c?.value);
130
- Number.isNaN(S) || o.onPageSizeChange(S);
148
+ const u = Array.isArray(e) ? e[0] : e, w = Number(u?.value);
149
+ Number.isNaN(w) || o.onPageSizeChange(w);
131
150
  }
132
151
  }
133
152
  )
134
- ] }) })
153
+ ] }) }),
154
+ a && /* @__PURE__ */ i(
155
+ te,
156
+ {
157
+ agentName: a.name,
158
+ isDeleting: S,
159
+ onClose: () => S ? void 0 : c(null),
160
+ onConfirm: G
161
+ }
162
+ )
135
163
  ] });
136
164
  };
137
- M.displayName = "AgentListing";
165
+ ne.displayName = "AgentListing";
138
166
  export {
139
- M as AgentListing
167
+ ne as AgentListing
140
168
  };
141
169
  //# sourceMappingURL=AgentListing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { AgentListingProps, AgentListItem } from './AgentListing.model';\nimport { Body, EmptyHolder, Page } from './AgentListing.styled';\nimport { AgentListingFilters } from './AgentListingFilters';\nimport { AgentListingHeader } from './AgentListingHeader';\nimport { AgentTable } from './AgentTable';\n\n/**\n * Full body of the \"AI Agents\" listing screen (header + filters + table).\n * Presentational and fully controlled — the consumer owns data, search, sort,\n * pagination and routing. Render it inside your app shell (next to the sidebar).\n *\n * @example\n * <AgentListing\n * agents={rows}\n * searchValue={search}\n * onSearchChange={setSearch}\n * onNewAgent={() => router.push('/agents/new')}\n * onRunAgent={runAgent}\n * onEditAgent={(a) => router.push(`/agents/${a.id}`)}\n * />\n */\nexport const AgentListing: React.FC<AgentListingProps> = ({\n\tconfig,\n\tonSearchChange,\n\tonFilterChange,\n\tonSortChange,\n\tonNewAgent,\n\tonBrowseTemplates,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n\t...rest\n}) => {\n\tconst {\n\t\tagents,\n\t\tisLoading,\n\t\tsearchValue,\n\t\tsearchPlaceholder = 'Search',\n\t\tfilterOptions,\n\t\tfilterPlaceholder = 'Filters',\n\t\tsortOptions,\n\t\tselectedSort,\n\t\ttitle = 'AI Agents',\n\t\tpagination,\n\t\temptyState,\n\t\tdebugLog,\n\t} = config;\n\n\tconst showEmpty = !isLoading && agents.length === 0;\n\n\t// Gated debug logging: each handler logs at its start only when `debugLog`.\n\tconst logAction = useCallback(\n\t\t(action: string, ...args: unknown[]) => {\n\t\t\tif (debugLog) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log(`[AgentListing] ${action}`, ...args);\n\t\t\t}\n\t\t},\n\t\t[debugLog],\n\t);\n\n\tconst handleSearchChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchChange', v);\n\t\t\tonSearchChange(v);\n\t\t},\n\t\t[logAction, onSearchChange],\n\t);\n\tconst handleFilterChange = useCallback(\n\t\t(selected: DropdownOption | DropdownOption[]) => {\n\t\t\tlogAction('onFilterChange', selected);\n\t\t\tonFilterChange?.(selected);\n\t\t},\n\t\t[logAction, onFilterChange],\n\t);\n\tconst handleSortChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSortChange', v);\n\t\t\tonSortChange?.(v);\n\t\t},\n\t\t[logAction, onSortChange],\n\t);\n\tconst handleNewAgent = useCallback(() => {\n\t\tlogAction('onNewAgent');\n\t\tonNewAgent();\n\t}, [logAction, onNewAgent]);\n\tconst handleBrowseTemplates = useCallback(() => {\n\t\tlogAction('onBrowseTemplates');\n\t\tonBrowseTemplates?.();\n\t}, [logAction, onBrowseTemplates]);\n\tconst handleRunAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRunAgent', agent.id);\n\t\t\tonRunAgent(agent);\n\t\t},\n\t\t[logAction, onRunAgent],\n\t);\n\tconst handleEditAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onEditAgent', agent.id);\n\t\t\tonEditAgent(agent);\n\t\t},\n\t\t[logAction, onEditAgent],\n\t);\n\tconst handleRowClick = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRowClick', agent.id);\n\t\t\tonRowClick?.(agent);\n\t\t},\n\t\t[logAction, onRowClick],\n\t);\n\n\treturn (\n\t\t<Page data-test={rest['data-test'] ?? 'agent-listing'}>\n\t\t\t<AgentListingHeader\n\t\t\t\ttitle={title}\n\t\t\t\tonNewAgent={handleNewAgent}\n\t\t\t\tonBrowseTemplates={\n\t\t\t\t\tonBrowseTemplates ? handleBrowseTemplates : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t<AgentListingFilters\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchChange={handleSearchChange}\n\t\t\t\tsearchPlaceholder={searchPlaceholder}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonFilterChange={onFilterChange ? handleFilterChange : undefined}\n\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\tsortOptions={sortOptions}\n\t\t\t\tselectedSort={selectedSort}\n\t\t\t\tonSortChange={onSortChange ? handleSortChange : undefined}\n\t\t\t/>\n\n\t\t\t<Body>\n\t\t\t\t{isLoading || showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\ttitle={emptyState?.title ?? 'No agents yet'}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\temptyState?.subTitle ??\n\t\t\t\t\t\t\t\t'Create your first AI agent to start automating conversations.'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionButton={\n\t\t\t\t\t\t\t\temptyState?.actionButton ?? {\n\t\t\t\t\t\t\t\t\tbuttonText: 'New AI agent',\n\t\t\t\t\t\t\t\t\tbuttonType: 'primary',\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t\tonClick: handleNewAgent,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</EmptyHolder>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AgentTable\n\t\t\t\t\t\t\tagents={agents}\n\t\t\t\t\t\t\tonRunAgent={handleRunAgent}\n\t\t\t\t\t\t\tonEditAgent={handleEditAgent}\n\t\t\t\t\t\t\tonRowClick={onRowClick ? handleRowClick : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{pagination && pagination.totalRows > 0 && (\n\t\t\t\t\t\t\t<TablePagination\n\t\t\t\t\t\t\t\tpageNumber={pagination.pageNumber}\n\t\t\t\t\t\t\t\tpageSize={pagination.pageSize}\n\t\t\t\t\t\t\t\ttotalRows={pagination.totalRows}\n\t\t\t\t\t\t\t\thidePageSizeOptions={pagination.hidePageSizeOptions}\n\t\t\t\t\t\t\t\tupdatePageNumber={pagination.onPageChange}\n\t\t\t\t\t\t\t\tupdatePageSize={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst value = Number((single as { value?: string })?.value);\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onRowClick","rest","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","Page","jsx","AgentListingHeader","AgentListingFilters","Body","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","single","value"],"mappings":"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"}
1
+ {"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { AgentListingProps, AgentListItem } from './AgentListing.model';\nimport { Body, EmptyHolder, Page } from './AgentListing.styled';\nimport { AgentListingFilters } from './AgentListingFilters';\nimport { AgentListingHeader } from './AgentListingHeader';\nimport { AgentTable } from './AgentTable';\nimport { DeleteAgentModal } from './DeleteAgentModal';\n\n/**\n * Full body of the \"AI Agents\" listing screen (header + filters + table).\n * Presentational and fully controlled — the consumer owns data, search, sort,\n * pagination and routing. Render it inside your app shell (next to the sidebar).\n *\n * @example\n * <AgentListing\n * agents={rows}\n * searchValue={search}\n * onSearchChange={setSearch}\n * onNewAgent={() => router.push('/agents/new')}\n * onRunAgent={runAgent}\n * onEditAgent={(a) => router.push(`/agents/${a.id}`)}\n * />\n */\nexport const AgentListing: React.FC<AgentListingProps> = ({\n\tconfig,\n\tonSearchChange,\n\tonFilterChange,\n\tonSortChange,\n\tonNewAgent,\n\tonBrowseTemplates,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n\t...rest\n}) => {\n\t// Agent pending delete-confirmation (null = dialog closed).\n\tconst [pendingDelete, setPendingDelete] = useState<AgentListItem | null>(\n\t\tnull,\n\t);\n\tconst [isDeleting, setIsDeleting] = useState(false);\n\tconst {\n\t\tagents,\n\t\tisLoading,\n\t\tsearchValue,\n\t\tsearchPlaceholder = 'Search',\n\t\tfilterOptions,\n\t\tfilterPlaceholder = 'Filters',\n\t\tsortOptions,\n\t\tselectedSort,\n\t\ttitle = 'AI Agents',\n\t\tpagination,\n\t\temptyState,\n\t\tdebugLog,\n\t} = config;\n\n\tconst showEmpty = !isLoading && agents.length === 0;\n\n\t// Gated debug logging: each handler logs at its start only when `debugLog`.\n\tconst logAction = useCallback(\n\t\t(action: string, ...args: unknown[]) => {\n\t\t\tif (debugLog) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.log(`[AgentListing] ${action}`, ...args);\n\t\t\t}\n\t\t},\n\t\t[debugLog],\n\t);\n\n\tconst handleSearchChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchChange', v);\n\t\t\tonSearchChange(v);\n\t\t},\n\t\t[logAction, onSearchChange],\n\t);\n\tconst handleFilterChange = useCallback(\n\t\t(selected: DropdownOption | DropdownOption[]) => {\n\t\t\tlogAction('onFilterChange', selected);\n\t\t\tonFilterChange?.(selected);\n\t\t},\n\t\t[logAction, onFilterChange],\n\t);\n\tconst handleSortChange = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSortChange', v);\n\t\t\tonSortChange?.(v);\n\t\t},\n\t\t[logAction, onSortChange],\n\t);\n\tconst handleNewAgent = useCallback(() => {\n\t\tlogAction('onNewAgent');\n\t\tonNewAgent();\n\t}, [logAction, onNewAgent]);\n\tconst handleBrowseTemplates = useCallback(() => {\n\t\tlogAction('onBrowseTemplates');\n\t\tonBrowseTemplates?.();\n\t}, [logAction, onBrowseTemplates]);\n\tconst handleRunAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRunAgent', agent.id);\n\t\t\tonRunAgent(agent);\n\t\t},\n\t\t[logAction, onRunAgent],\n\t);\n\tconst handleEditAgent = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onEditAgent', agent.id);\n\t\t\tonEditAgent(agent);\n\t\t},\n\t\t[logAction, onEditAgent],\n\t);\n\tconst handleRowClick = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onRowClick', agent.id);\n\t\t\tonRowClick?.(agent);\n\t\t},\n\t\t[logAction, onRowClick],\n\t);\n\t// Row delete just opens the confirm dialog; the actual delete runs on confirm.\n\tconst handleDeleteRequest = useCallback(\n\t\t(agent: AgentListItem) => {\n\t\t\tlogAction('onDeleteAgent', agent.id);\n\t\t\tsetPendingDelete(agent);\n\t\t},\n\t\t[logAction],\n\t);\n\tconst handleConfirmDelete = useCallback(async () => {\n\t\tif (!pendingDelete || !onDeleteAgent) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsDeleting(true);\n\t\ttry {\n\t\t\tawait onDeleteAgent(pendingDelete);\n\t\t\tsetPendingDelete(null);\n\t\t} finally {\n\t\t\tsetIsDeleting(false);\n\t\t}\n\t}, [pendingDelete, onDeleteAgent]);\n\n\treturn (\n\t\t<Page data-test={rest['data-test'] ?? 'agent-listing'}>\n\t\t\t<AgentListingHeader\n\t\t\t\ttitle={title}\n\t\t\t\tonNewAgent={handleNewAgent}\n\t\t\t\tonBrowseTemplates={\n\t\t\t\t\tonBrowseTemplates ? handleBrowseTemplates : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t<AgentListingFilters\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchChange={handleSearchChange}\n\t\t\t\tsearchPlaceholder={searchPlaceholder}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonFilterChange={onFilterChange ? handleFilterChange : undefined}\n\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\tsortOptions={sortOptions}\n\t\t\t\tselectedSort={selectedSort}\n\t\t\t\tonSortChange={onSortChange ? handleSortChange : undefined}\n\t\t\t/>\n\n\t\t\t<Body>\n\t\t\t\t{isLoading || showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\ttitle={emptyState?.title ?? 'No agents yet'}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\temptyState?.subTitle ??\n\t\t\t\t\t\t\t\t'Create your first AI agent to start automating conversations.'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionButton={\n\t\t\t\t\t\t\t\temptyState?.actionButton ?? {\n\t\t\t\t\t\t\t\t\tbuttonText: 'New AI agent',\n\t\t\t\t\t\t\t\t\tbuttonType: 'primary',\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t\tonClick: handleNewAgent,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</EmptyHolder>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AgentTable\n\t\t\t\t\t\t\tagents={agents}\n\t\t\t\t\t\t\tonRunAgent={handleRunAgent}\n\t\t\t\t\t\t\tonEditAgent={handleEditAgent}\n\t\t\t\t\t\t\tonDeleteAgent={onDeleteAgent ? handleDeleteRequest : undefined}\n\t\t\t\t\t\t\tonRowClick={onRowClick ? handleRowClick : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{pagination && pagination.totalRows > 0 && (\n\t\t\t\t\t\t\t<TablePagination\n\t\t\t\t\t\t\t\tpageNumber={pagination.pageNumber}\n\t\t\t\t\t\t\t\tpageSize={pagination.pageSize}\n\t\t\t\t\t\t\t\ttotalRows={pagination.totalRows}\n\t\t\t\t\t\t\t\thidePageSizeOptions={pagination.hidePageSizeOptions}\n\t\t\t\t\t\t\t\tupdatePageNumber={pagination.onPageChange}\n\t\t\t\t\t\t\t\tupdatePageSize={(opt) => {\n\t\t\t\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\t\t\t\tconst value = Number((single as { value?: string })?.value);\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\n\t\t\t{pendingDelete && (\n\t\t\t\t<DeleteAgentModal\n\t\t\t\t\tagentName={pendingDelete.name}\n\t\t\t\t\tisDeleting={isDeleting}\n\t\t\t\t\tonClose={() => (isDeleting ? undefined : setPendingDelete(null))}\n\t\t\t\t\tonConfirm={handleConfirmDelete}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","rest","pendingDelete","setPendingDelete","useState","isDeleting","setIsDeleting","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","handleDeleteRequest","handleConfirmDelete","Page","jsx","AgentListingHeader","AgentListingFilters","Body","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","single","value","DeleteAgentModal"],"mappings":"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"}
@@ -63,6 +63,7 @@ export interface AgentListingProps {
63
63
  onBrowseTemplates?: () => void;
64
64
  onRunAgent: (agent: AgentListItem) => void;
65
65
  onEditAgent: (agent: AgentListItem) => void;
66
+ onDeleteAgent?: (agent: AgentListItem) => void | Promise<void>;
66
67
  /** Optional: whole-row click (e.g. open the builder). */
67
68
  onRowClick?: (agent: AgentListItem) => void;
68
69
  'data-test'?: string;
@@ -4,6 +4,7 @@ interface AgentTableProps {
4
4
  agents: AgentListItem[];
5
5
  onRunAgent: (agent: AgentListItem) => void;
6
6
  onEditAgent: (agent: AgentListItem) => void;
7
+ onDeleteAgent?: (agent: AgentListItem) => void;
7
8
  onRowClick?: (agent: AgentListItem) => void;
8
9
  }
9
10
  export declare const AgentTable: React.FC<AgentTableProps>;
@@ -1,15 +1,16 @@
1
1
  import { jsx as r, jsxs as c } from "react/jsx-runtime";
2
- import { TitleSmall as a } from "../TypographyStyle.js";
3
- import { COLORS as h } from "../../constants/Theme.js";
4
- import { TableCard as m, TableScroll as g, HeaderGridRow as p, HeaderCell as e } from "./AgentListing.styled.js";
5
- import { AgentTableRow as s } from "./AgentTableRow.js";
6
- const i = ({ children: l }) => /* @__PURE__ */ r(a, { color: h.content.primary, children: l }), x = ({
2
+ import { TitleSmall as h } from "../TypographyStyle.js";
3
+ import { COLORS as m } from "../../constants/Theme.js";
4
+ import { TableCard as g, TableScroll as p, HeaderGridRow as s, HeaderCell as e } from "./AgentListing.styled.js";
5
+ import { AgentTableRow as T } from "./AgentTableRow.js";
6
+ const i = ({ children: l }) => /* @__PURE__ */ r(h, { color: m.content.primary, children: l }), C = ({
7
7
  agents: l,
8
8
  onRunAgent: o,
9
9
  onEditAgent: d,
10
- onRowClick: t
11
- }) => /* @__PURE__ */ r(m, { children: /* @__PURE__ */ c(g, { children: [
12
- /* @__PURE__ */ c(p, { children: [
10
+ onDeleteAgent: t,
11
+ onRowClick: a
12
+ }) => /* @__PURE__ */ r(g, { children: /* @__PURE__ */ c(p, { children: [
13
+ /* @__PURE__ */ c(s, { children: [
13
14
  /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(i, { children: "Agent name" }) }),
14
15
  /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(i, { children: "Trigger" }) }),
15
16
  /* @__PURE__ */ r(e, { align: "right", children: /* @__PURE__ */ r(i, { children: "Trigger count" }) }),
@@ -17,17 +18,18 @@ const i = ({ children: l }) => /* @__PURE__ */ r(a, { color: h.content.primary,
17
18
  /* @__PURE__ */ r(e, { align: "center", children: /* @__PURE__ */ r(i, { children: "Actions" }) })
18
19
  ] }),
19
20
  l.map((n) => /* @__PURE__ */ r(
20
- s,
21
+ T,
21
22
  {
22
23
  agent: n,
23
24
  onRunAgent: o,
24
25
  onEditAgent: d,
25
- onRowClick: t
26
+ onDeleteAgent: t,
27
+ onRowClick: a
26
28
  },
27
29
  n.id
28
30
  ))
29
31
  ] }) });
30
32
  export {
31
- x as AgentTable
33
+ C as AgentTable
32
34
  };
33
35
  //# sourceMappingURL=AgentTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentTable.js","sources":["../../../../src/components/agent-listing/AgentTable.tsx"],"sourcesContent":["import React from 'react';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem } from './AgentListing.model';\nimport {\n\tHeaderCell,\n\tHeaderGridRow,\n\tTableCard,\n\tTableScroll,\n} from './AgentListing.styled';\nimport { AgentTableRow } from './AgentTableRow';\n\ninterface AgentTableProps {\n\tagents: AgentListItem[];\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nconst HeaderLabel: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n\t<TitleSmall color={COLORS.content.primary}>{children}</TitleSmall>\n);\n\nexport const AgentTable: React.FC<AgentTableProps> = ({\n\tagents,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n}) => (\n\t<TableCard>\n\t\t<TableScroll>\n\t\t\t<HeaderGridRow>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Agent name</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Trigger</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"right\">\n\t\t\t\t\t<HeaderLabel>Trigger count</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Status</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"center\">\n\t\t\t\t\t<HeaderLabel>Actions</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t</HeaderGridRow>\n\n\t\t\t{agents.map((agent) => (\n\t\t\t\t<AgentTableRow\n\t\t\t\t\tkey={agent.id}\n\t\t\t\t\tagent={agent}\n\t\t\t\t\tonRunAgent={onRunAgent}\n\t\t\t\t\tonEditAgent={onEditAgent}\n\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</TableScroll>\n\t</TableCard>\n);\n"],"names":["HeaderLabel","children","jsx","TitleSmall","COLORS","AgentTable","agents","onRunAgent","onEditAgent","onRowClick","TableCard","jsxs","TableScroll","HeaderGridRow","HeaderCell","agent","AgentTableRow"],"mappings":";;;;;AAmBA,MAAMA,IAAuD,CAAC,EAAE,UAAAC,EAAA,MAC/D,gBAAAC,EAACC,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAU,UAAAH,EAAA,CAAS,GAGzCI,IAAwC,CAAC;AAAA,EACrD,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AACD,MACC,gBAAAP,EAACQ,GAAA,EACA,UAAA,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAD,EAACE,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAX,EAACY,GAAA,EACA,UAAA,gBAAAZ,EAACF,GAAA,EAAY,UAAA,aAAA,CAAU,GACxB;AAAA,IACA,gBAAAE,EAACY,GAAA,EACA,UAAA,gBAAAZ,EAACF,GAAA,EAAY,qBAAO,GACrB;AAAA,sBACCc,GAAA,EAAW,OAAM,SACjB,UAAA,gBAAAZ,EAACF,GAAA,EAAY,2BAAa,EAAA,CAC3B;AAAA,IACA,gBAAAE,EAACY,GAAA,EACA,UAAA,gBAAAZ,EAACF,GAAA,EAAY,oBAAM,GACpB;AAAA,sBACCc,GAAA,EAAW,OAAM,UACjB,UAAA,gBAAAZ,EAACF,GAAA,EAAY,qBAAO,EAAA,CACrB;AAAA,EAAA,GACD;AAAA,EAECM,EAAO,IAAI,CAACS,MACZ,gBAAAb;AAAA,IAACc;AAAA,IAAA;AAAA,MAEA,OAAAD;AAAA,MACA,YAAAR;AAAA,MACA,aAAAC;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,IAJKM,EAAM;AAAA,EAAA,CAMZ;AAAA,EAAA,CACF,EAAA,CACD;"}
1
+ {"version":3,"file":"AgentTable.js","sources":["../../../../src/components/agent-listing/AgentTable.tsx"],"sourcesContent":["import React from 'react';\nimport { TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem } from './AgentListing.model';\nimport {\n\tHeaderCell,\n\tHeaderGridRow,\n\tTableCard,\n\tTableScroll,\n} from './AgentListing.styled';\nimport { AgentTableRow } from './AgentTableRow';\n\ninterface AgentTableProps {\n\tagents: AgentListItem[];\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\tonDeleteAgent?: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nconst HeaderLabel: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n\t<TitleSmall color={COLORS.content.primary}>{children}</TitleSmall>\n);\n\nexport const AgentTable: React.FC<AgentTableProps> = ({\n\tagents,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n}) => (\n\t<TableCard>\n\t\t<TableScroll>\n\t\t\t<HeaderGridRow>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Agent name</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Trigger</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"right\">\n\t\t\t\t\t<HeaderLabel>Trigger count</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell>\n\t\t\t\t\t<HeaderLabel>Status</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t\t<HeaderCell align=\"center\">\n\t\t\t\t\t<HeaderLabel>Actions</HeaderLabel>\n\t\t\t\t</HeaderCell>\n\t\t\t</HeaderGridRow>\n\n\t\t\t{agents.map((agent) => (\n\t\t\t\t<AgentTableRow\n\t\t\t\t\tkey={agent.id}\n\t\t\t\t\tagent={agent}\n\t\t\t\t\tonRunAgent={onRunAgent}\n\t\t\t\t\tonEditAgent={onEditAgent}\n\t\t\t\t\tonDeleteAgent={onDeleteAgent}\n\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</TableScroll>\n\t</TableCard>\n);\n"],"names":["HeaderLabel","children","jsx","TitleSmall","COLORS","AgentTable","agents","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","TableCard","jsxs","TableScroll","HeaderGridRow","HeaderCell","agent","AgentTableRow"],"mappings":";;;;;AAoBA,MAAMA,IAAuD,CAAC,EAAE,UAAAC,EAAA,MAC/D,gBAAAC,EAACC,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAU,UAAAH,EAAA,CAAS,GAGzCI,IAAwC,CAAC;AAAA,EACrD,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AACD,MACC,gBAAAR,EAACS,GAAA,EACA,UAAA,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAD,EAACE,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAZ,EAACa,GAAA,EACA,UAAA,gBAAAb,EAACF,GAAA,EAAY,UAAA,aAAA,CAAU,GACxB;AAAA,IACA,gBAAAE,EAACa,GAAA,EACA,UAAA,gBAAAb,EAACF,GAAA,EAAY,qBAAO,GACrB;AAAA,sBACCe,GAAA,EAAW,OAAM,SACjB,UAAA,gBAAAb,EAACF,GAAA,EAAY,2BAAa,EAAA,CAC3B;AAAA,IACA,gBAAAE,EAACa,GAAA,EACA,UAAA,gBAAAb,EAACF,GAAA,EAAY,oBAAM,GACpB;AAAA,sBACCe,GAAA,EAAW,OAAM,UACjB,UAAA,gBAAAb,EAACF,GAAA,EAAY,qBAAO,EAAA,CACrB;AAAA,EAAA,GACD;AAAA,EAECM,EAAO,IAAI,CAACU,MACZ,gBAAAd;AAAA,IAACe;AAAA,IAAA;AAAA,MAEA,OAAAD;AAAA,MACA,YAAAT;AAAA,MACA,aAAAC;AAAA,MACA,eAAAC;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,IALKM,EAAM;AAAA,EAAA,CAOZ;AAAA,EAAA,CACF,EAAA,CACD;"}
@@ -4,6 +4,8 @@ interface AgentTableRowProps {
4
4
  agent: AgentListItem;
5
5
  onRunAgent: (agent: AgentListItem) => void;
6
6
  onEditAgent: (agent: AgentListItem) => void;
7
+ /** When set, render a delete action (the listing handles confirmation). */
8
+ onDeleteAgent?: (agent: AgentListItem) => void;
7
9
  onRowClick?: (agent: AgentListItem) => void;
8
10
  }
9
11
  export declare const AgentTableRow: React.FC<AgentTableRowProps>;
@@ -1,39 +1,43 @@
1
- import { jsx as i, jsxs as e } from "react/jsx-runtime";
2
- import b from "../../assets/icons/edit.svg.js";
3
- import y from "../../assets/icons/playOutline.svg.js";
4
- import { TitleSmall as f, BodyCaption as T, BodyPrimary as d } from "../TypographyStyle.js";
1
+ import { jsx as r, jsxs as n } from "react/jsx-runtime";
2
+ import f from "../../assets/icons/delete.svg.js";
3
+ import T from "../../assets/icons/edit.svg.js";
4
+ import v from "../../assets/icons/playOutline.svg.js";
5
+ import { TitleSmall as w, BodyCaption as D, BodyPrimary as p } from "../TypographyStyle.js";
5
6
  import { COLORS as t } from "../../constants/Theme.js";
6
- import { ActionButton as s, BodyGridRow as v, Cell as o, ActionGroup as L } from "./AgentListing.styled.js";
7
- import { Tag as w } from "../tag/Tag.js";
8
- import { Tooltip as x } from "../tooltips/Tooltip.js";
9
- const C = (r) => {
10
- switch (r.kind) {
7
+ import { ActionButton as a, BodyGridRow as C, Cell as o, ActionGroup as L } from "./AgentListing.styled.js";
8
+ import { Tag as x } from "../tag/Tag.js";
9
+ import { Tooltip as O } from "../tooltips/Tooltip.js";
10
+ const P = (e) => {
11
+ switch (e.kind) {
11
12
  case "topic":
12
- return `Topic: ${r.label ?? ""}`;
13
+ return `Topic: ${e.label ?? ""}`;
13
14
  case "phrases":
14
- return `Phrases: ${(r.items ?? []).join(", ")}`;
15
+ return `Phrases: ${(e.items ?? []).join(", ")}`;
15
16
  default:
16
- return r.label ?? "";
17
+ return e.label ?? "";
17
18
  }
18
- }, g = ({
19
- agent: r,
20
- onRunAgent: p,
19
+ }, G = ({
20
+ agent: e,
21
+ onRunAgent: h,
21
22
  onEditAgent: m,
22
- onRowClick: n
23
+ onDeleteAgent: c,
24
+ onRowClick: l
23
25
  }) => {
24
- const a = r.status === "live", h = (l) => {
25
- l.stopPropagation(), !r.isRunDisabled && p(r);
26
- }, u = (l) => {
27
- l.stopPropagation(), m(r);
28
- }, c = /* @__PURE__ */ i(
29
- s,
26
+ const d = e.status === "live", u = (i) => {
27
+ i.stopPropagation(), !e.isRunDisabled && h(e);
28
+ }, b = (i) => {
29
+ i.stopPropagation(), m(e);
30
+ }, y = (i) => {
31
+ i.stopPropagation(), c?.(e);
32
+ }, s = /* @__PURE__ */ r(
33
+ a,
30
34
  {
31
- "data-test": `agent-row-run-${r.id}`,
32
- disabled: r.isRunDisabled,
33
- onClick: h,
35
+ "data-test": `agent-row-run-${e.id}`,
36
+ disabled: e.isRunDisabled,
37
+ onClick: u,
34
38
  "aria-label": "Run agent",
35
- children: /* @__PURE__ */ i(
36
- y,
39
+ children: /* @__PURE__ */ r(
40
+ v,
37
41
  {
38
42
  width: 20,
39
43
  height: 20,
@@ -42,39 +46,55 @@ const C = (r) => {
42
46
  )
43
47
  }
44
48
  );
45
- return /* @__PURE__ */ e(
46
- v,
49
+ return /* @__PURE__ */ n(
50
+ C,
47
51
  {
48
- "data-test": `agent-row-${r.id}`,
49
- clickable: !!n,
50
- onClick: n ? () => n(r) : void 0,
52
+ "data-test": `agent-row-${e.id}`,
53
+ clickable: !!l,
54
+ onClick: l ? () => l(e) : void 0,
51
55
  children: [
52
- /* @__PURE__ */ e(o, { children: [
53
- /* @__PURE__ */ i(f, { numberOfLines: 1, color: t.content.primary, children: r.name }),
54
- /* @__PURE__ */ e(T, { numberOfLines: 1, color: t.content.secondary, children: [
56
+ /* @__PURE__ */ n(o, { children: [
57
+ /* @__PURE__ */ r(w, { numberOfLines: 1, color: t.content.primary, children: e.name }),
58
+ /* @__PURE__ */ n(D, { numberOfLines: 1, color: t.content.secondary, children: [
55
59
  "Created: ",
56
- r.createdAtLabel
60
+ e.createdAtLabel
57
61
  ] })
58
62
  ] }),
59
- /* @__PURE__ */ i(o, { children: /* @__PURE__ */ i(d, { numberOfLines: 2, color: t.content.primary, children: C(r.trigger) }) }),
60
- /* @__PURE__ */ i(o, { align: "right", children: /* @__PURE__ */ i(d, { color: t.content.primary, children: r.triggerCount }) }),
61
- /* @__PURE__ */ i(o, { children: /* @__PURE__ */ i(
62
- w,
63
+ /* @__PURE__ */ r(o, { children: /* @__PURE__ */ r(p, { numberOfLines: 2, color: t.content.primary, children: P(e.trigger) }) }),
64
+ /* @__PURE__ */ r(o, { align: "right", children: /* @__PURE__ */ r(p, { color: t.content.primary, children: e.triggerCount }) }),
65
+ /* @__PURE__ */ r(o, { children: /* @__PURE__ */ r(
66
+ x,
63
67
  {
64
- tagText: a ? "Live" : "Draft",
65
- type: a ? "positive" : "neutral",
68
+ tagText: d ? "Live" : "Draft",
69
+ type: d ? "positive" : "neutral",
66
70
  variant: "regular"
67
71
  }
68
72
  ) }),
69
- /* @__PURE__ */ i(o, { align: "center", children: /* @__PURE__ */ e(L, { children: [
70
- r.isRunDisabled && r.runDisabledTooltip ? /* @__PURE__ */ i(x, { body: r.runDisabledTooltip, placement: "top", children: /* @__PURE__ */ i("span", { style: { display: "flex" }, children: c }) }) : c,
71
- /* @__PURE__ */ i(
72
- s,
73
+ /* @__PURE__ */ r(o, { align: "center", children: /* @__PURE__ */ n(L, { children: [
74
+ e.isRunDisabled && e.runDisabledTooltip ? /* @__PURE__ */ r(O, { body: e.runDisabledTooltip, placement: "top", children: /* @__PURE__ */ r("span", { style: { display: "flex" }, children: s }) }) : s,
75
+ /* @__PURE__ */ r(
76
+ a,
73
77
  {
74
- "data-test": `agent-row-edit-${r.id}`,
75
- onClick: u,
78
+ "data-test": `agent-row-edit-${e.id}`,
79
+ onClick: b,
76
80
  "aria-label": "Edit agent",
77
- children: /* @__PURE__ */ i(b, { width: 20, height: 20, color: t.content.secondary })
81
+ children: /* @__PURE__ */ r(T, { width: 20, height: 20, color: t.content.secondary })
82
+ }
83
+ ),
84
+ c && /* @__PURE__ */ r(
85
+ a,
86
+ {
87
+ "data-test": `agent-row-delete-${e.id}`,
88
+ onClick: y,
89
+ "aria-label": "Delete agent",
90
+ children: /* @__PURE__ */ r(
91
+ f,
92
+ {
93
+ width: 20,
94
+ height: 20,
95
+ color: t.content.secondary
96
+ }
97
+ )
78
98
  }
79
99
  )
80
100
  ] }) })
@@ -83,6 +103,6 @@ const C = (r) => {
83
103
  );
84
104
  };
85
105
  export {
86
- g as AgentTableRow
106
+ G as AgentTableRow
87
107
  };
88
108
  //# sourceMappingURL=AgentTableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentTableRow.js","sources":["../../../../src/components/agent-listing/AgentTableRow.tsx"],"sourcesContent":["import EditIcon from '@src/assets/icons/edit.svg';\nimport PlayOutlineIcon from '@src/assets/icons/playOutline.svg';\nimport React from 'react';\nimport { Tag } from '@src/components/tag';\nimport { Tooltip } from '@src/components/tooltips';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem, AgentTriggerSummary } from './AgentListing.model';\nimport {\n\tActionButton,\n\tActionGroup,\n\tBodyGridRow,\n\tCell,\n} from './AgentListing.styled';\n\nconst triggerToText = (trigger: AgentTriggerSummary): string => {\n\tswitch (trigger.kind) {\n\t\tcase 'topic':\n\t\t\treturn `Topic: ${trigger.label ?? ''}`;\n\t\tcase 'phrases':\n\t\t\treturn `Phrases: ${(trigger.items ?? []).join(', ')}`;\n\t\tcase 'custom':\n\t\tdefault:\n\t\t\treturn trigger.label ?? '';\n\t}\n};\n\ninterface AgentTableRowProps {\n\tagent: AgentListItem;\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nexport const AgentTableRow: React.FC<AgentTableRowProps> = ({\n\tagent,\n\tonRunAgent,\n\tonEditAgent,\n\tonRowClick,\n}) => {\n\tconst isLive = agent.status === 'live';\n\n\tconst handleRun = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (agent.isRunDisabled) {\n\t\t\treturn;\n\t\t}\n\t\tonRunAgent(agent);\n\t};\n\n\tconst handleEdit = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonEditAgent(agent);\n\t};\n\n\tconst playButton = (\n\t\t<ActionButton\n\t\t\tdata-test={`agent-row-run-${agent.id}`}\n\t\t\tdisabled={agent.isRunDisabled}\n\t\t\tonClick={handleRun}\n\t\t\taria-label=\"Run agent\"\n\t\t>\n\t\t\t<PlayOutlineIcon\n\t\t\t\twidth={20}\n\t\t\t\theight={20}\n\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t/>\n\t\t</ActionButton>\n\t);\n\n\treturn (\n\t\t<BodyGridRow\n\t\t\tdata-test={`agent-row-${agent.id}`}\n\t\t\tclickable={!!onRowClick}\n\t\t\tonClick={onRowClick ? () => onRowClick(agent) : undefined}\n\t\t>\n\t\t\t<Cell>\n\t\t\t\t<TitleSmall numberOfLines={1} color={COLORS.content.primary}>\n\t\t\t\t\t{agent.name}\n\t\t\t\t</TitleSmall>\n\t\t\t\t<BodyCaption numberOfLines={1} color={COLORS.content.secondary}>\n\t\t\t\t\tCreated: {agent.createdAtLabel}\n\t\t\t\t</BodyCaption>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<BodyPrimary numberOfLines={2} color={COLORS.content.primary}>\n\t\t\t\t\t{triggerToText(agent.trigger)}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"right\">\n\t\t\t\t<BodyPrimary color={COLORS.content.primary}>\n\t\t\t\t\t{agent.triggerCount}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<Tag\n\t\t\t\t\ttagText={isLive ? 'Live' : 'Draft'}\n\t\t\t\t\ttype={isLive ? 'positive' : 'neutral'}\n\t\t\t\t\tvariant=\"regular\"\n\t\t\t\t/>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"center\">\n\t\t\t\t<ActionGroup>\n\t\t\t\t\t{agent.isRunDisabled && agent.runDisabledTooltip ? (\n\t\t\t\t\t\t<Tooltip body={agent.runDisabledTooltip} placement=\"top\">\n\t\t\t\t\t\t\t<span style={{ display: 'flex' }}>{playButton}</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplayButton\n\t\t\t\t\t)}\n\t\t\t\t\t<ActionButton\n\t\t\t\t\t\tdata-test={`agent-row-edit-${agent.id}`}\n\t\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t\t\taria-label=\"Edit agent\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<EditIcon width={20} height={20} color={COLORS.content.secondary} />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t</ActionGroup>\n\t\t\t</Cell>\n\t\t</BodyGridRow>\n\t);\n};\n"],"names":["triggerToText","trigger","AgentTableRow","agent","onRunAgent","onEditAgent","onRowClick","isLive","handleRun","e","handleEdit","playButton","jsx","ActionButton","PlayOutlineIcon","COLORS","jsxs","BodyGridRow","Cell","TitleSmall","BodyCaption","BodyPrimary","Tag","ActionGroup","Tooltip","EditIcon"],"mappings":"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"}
1
+ {"version":3,"file":"AgentTableRow.js","sources":["../../../../src/components/agent-listing/AgentTableRow.tsx"],"sourcesContent":["import DeleteIcon from '@src/assets/icons/delete.svg';\nimport EditIcon from '@src/assets/icons/edit.svg';\nimport PlayOutlineIcon from '@src/assets/icons/playOutline.svg';\nimport React from 'react';\nimport { Tag } from '@src/components/tag';\nimport { Tooltip } from '@src/components/tooltips';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListItem, AgentTriggerSummary } from './AgentListing.model';\nimport {\n\tActionButton,\n\tActionGroup,\n\tBodyGridRow,\n\tCell,\n} from './AgentListing.styled';\n\nconst triggerToText = (trigger: AgentTriggerSummary): string => {\n\tswitch (trigger.kind) {\n\t\tcase 'topic':\n\t\t\treturn `Topic: ${trigger.label ?? ''}`;\n\t\tcase 'phrases':\n\t\t\treturn `Phrases: ${(trigger.items ?? []).join(', ')}`;\n\t\tcase 'custom':\n\t\tdefault:\n\t\t\treturn trigger.label ?? '';\n\t}\n};\n\ninterface AgentTableRowProps {\n\tagent: AgentListItem;\n\tonRunAgent: (agent: AgentListItem) => void;\n\tonEditAgent: (agent: AgentListItem) => void;\n\t/** When set, render a delete action (the listing handles confirmation). */\n\tonDeleteAgent?: (agent: AgentListItem) => void;\n\tonRowClick?: (agent: AgentListItem) => void;\n}\n\nexport const AgentTableRow: React.FC<AgentTableRowProps> = ({\n\tagent,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n}) => {\n\tconst isLive = agent.status === 'live';\n\n\tconst handleRun = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (agent.isRunDisabled) {\n\t\t\treturn;\n\t\t}\n\t\tonRunAgent(agent);\n\t};\n\n\tconst handleEdit = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonEditAgent(agent);\n\t};\n\n\tconst handleDelete = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonDeleteAgent?.(agent);\n\t};\n\n\tconst playButton = (\n\t\t<ActionButton\n\t\t\tdata-test={`agent-row-run-${agent.id}`}\n\t\t\tdisabled={agent.isRunDisabled}\n\t\t\tonClick={handleRun}\n\t\t\taria-label=\"Run agent\"\n\t\t>\n\t\t\t<PlayOutlineIcon\n\t\t\t\twidth={20}\n\t\t\t\theight={20}\n\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t/>\n\t\t</ActionButton>\n\t);\n\n\treturn (\n\t\t<BodyGridRow\n\t\t\tdata-test={`agent-row-${agent.id}`}\n\t\t\tclickable={!!onRowClick}\n\t\t\tonClick={onRowClick ? () => onRowClick(agent) : undefined}\n\t\t>\n\t\t\t<Cell>\n\t\t\t\t<TitleSmall numberOfLines={1} color={COLORS.content.primary}>\n\t\t\t\t\t{agent.name}\n\t\t\t\t</TitleSmall>\n\t\t\t\t<BodyCaption numberOfLines={1} color={COLORS.content.secondary}>\n\t\t\t\t\tCreated: {agent.createdAtLabel}\n\t\t\t\t</BodyCaption>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<BodyPrimary numberOfLines={2} color={COLORS.content.primary}>\n\t\t\t\t\t{triggerToText(agent.trigger)}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"right\">\n\t\t\t\t<BodyPrimary color={COLORS.content.primary}>\n\t\t\t\t\t{agent.triggerCount}\n\t\t\t\t</BodyPrimary>\n\t\t\t</Cell>\n\n\t\t\t<Cell>\n\t\t\t\t<Tag\n\t\t\t\t\ttagText={isLive ? 'Live' : 'Draft'}\n\t\t\t\t\ttype={isLive ? 'positive' : 'neutral'}\n\t\t\t\t\tvariant=\"regular\"\n\t\t\t\t/>\n\t\t\t</Cell>\n\n\t\t\t<Cell align=\"center\">\n\t\t\t\t<ActionGroup>\n\t\t\t\t\t{agent.isRunDisabled && agent.runDisabledTooltip ? (\n\t\t\t\t\t\t<Tooltip body={agent.runDisabledTooltip} placement=\"top\">\n\t\t\t\t\t\t\t<span style={{ display: 'flex' }}>{playButton}</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplayButton\n\t\t\t\t\t)}\n\t\t\t\t\t<ActionButton\n\t\t\t\t\t\tdata-test={`agent-row-edit-${agent.id}`}\n\t\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t\t\taria-label=\"Edit agent\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<EditIcon width={20} height={20} color={COLORS.content.secondary} />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t\t{onDeleteAgent && (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tdata-test={`agent-row-delete-${agent.id}`}\n\t\t\t\t\t\t\tonClick={handleDelete}\n\t\t\t\t\t\t\taria-label=\"Delete agent\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DeleteIcon\n\t\t\t\t\t\t\t\twidth={20}\n\t\t\t\t\t\t\t\theight={20}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t)}\n\t\t\t\t</ActionGroup>\n\t\t\t</Cell>\n\t\t</BodyGridRow>\n\t);\n};\n"],"names":["triggerToText","trigger","AgentTableRow","agent","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","isLive","handleRun","e","handleEdit","handleDelete","playButton","jsx","ActionButton","PlayOutlineIcon","COLORS","jsxs","BodyGridRow","Cell","TitleSmall","BodyCaption","BodyPrimary","Tag","ActionGroup","Tooltip","EditIcon","DeleteIcon"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ interface DeleteAgentModalProps {
3
+ /** Name of the agent being deleted (for the body copy). */
4
+ agentName: string;
5
+ /** Dismiss without deleting (X / outside click / Cancel). */
6
+ onClose: () => void;
7
+ /** Confirm deletion. */
8
+ onConfirm: () => void;
9
+ isDeleting?: boolean;
10
+ }
11
+ /**
12
+ * "Delete agent?" confirmation for the listing. Deleting an entry agent also
13
+ * removes its sub-agents (the backend cascades), so the copy warns about it.
14
+ */
15
+ export declare const DeleteAgentModal: React.FC<DeleteAgentModalProps>;
16
+ export {};
@@ -0,0 +1,69 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { TitleRegular as r, BodySecondary as c } from "../TypographyStyle.js";
3
+ import { COLORS as i } from "../../constants/Theme.js";
4
+ import { StyledModal as s } from "../modals/styledModal.js";
5
+ import { Button as a } from "../button/Button.js";
6
+ const y = ({
7
+ agentName: o,
8
+ onClose: n,
9
+ onConfirm: d,
10
+ isDeleting: l
11
+ }) => /* @__PURE__ */ e(
12
+ s,
13
+ {
14
+ "data-test": "agent-delete-modal",
15
+ open: !0,
16
+ onClose: n,
17
+ width: "530px",
18
+ children: /* @__PURE__ */ t(
19
+ "div",
20
+ {
21
+ style: {
22
+ display: "flex",
23
+ flexDirection: "column",
24
+ gap: 12,
25
+ padding: 24,
26
+ alignItems: "flex-start",
27
+ textAlign: "left"
28
+ },
29
+ children: [
30
+ /* @__PURE__ */ t(r, { color: i.content.primary, children: [
31
+ "Delete “",
32
+ o,
33
+ "”?"
34
+ ] }),
35
+ /* @__PURE__ */ e(c, { color: i.content.secondary, children: "This permanently deletes the agent and its sub-agents. This can’t be undone." }),
36
+ /* @__PURE__ */ t("div", { style: { display: "flex", gap: 12, width: "100%", marginTop: 4 }, children: [
37
+ /* @__PURE__ */ e(
38
+ a,
39
+ {
40
+ "data-test": "agent-delete-cancel",
41
+ buttonType: "secondary",
42
+ size: "medium",
43
+ matchParentWidth: !0,
44
+ buttonText: "Cancel",
45
+ onClick: n
46
+ }
47
+ ),
48
+ /* @__PURE__ */ e(
49
+ a,
50
+ {
51
+ "data-test": "agent-delete-confirm",
52
+ buttonType: "destructive",
53
+ size: "medium",
54
+ matchParentWidth: !0,
55
+ buttonText: "Delete",
56
+ isLoading: l,
57
+ onClick: d
58
+ }
59
+ )
60
+ ] })
61
+ ]
62
+ }
63
+ )
64
+ }
65
+ );
66
+ export {
67
+ y as DeleteAgentModal
68
+ };
69
+ //# sourceMappingURL=DeleteAgentModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteAgentModal.js","sources":["../../../../src/components/agent-listing/DeleteAgentModal.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '@src/components/button';\nimport { StyledModal } from '@src/components/modals';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\ninterface DeleteAgentModalProps {\n\t/** Name of the agent being deleted (for the body copy). */\n\tagentName: string;\n\t/** Dismiss without deleting (X / outside click / Cancel). */\n\tonClose: () => void;\n\t/** Confirm deletion. */\n\tonConfirm: () => void;\n\tisDeleting?: boolean;\n}\n\n/**\n * \"Delete agent?\" confirmation for the listing. Deleting an entry agent also\n * removes its sub-agents (the backend cascades), so the copy warns about it.\n */\nexport const DeleteAgentModal: React.FC<DeleteAgentModalProps> = ({\n\tagentName,\n\tonClose,\n\tonConfirm,\n\tisDeleting,\n}) => (\n\t<StyledModal\n\t\tdata-test=\"agent-delete-modal\"\n\t\topen\n\t\tonClose={onClose}\n\t\twidth=\"530px\"\n\t>\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\tgap: 12,\n\t\t\t\tpadding: 24,\n\t\t\t\talignItems: 'flex-start',\n\t\t\t\ttextAlign: 'left',\n\t\t\t}}\n\t\t>\n\t\t\t<TitleRegular color={COLORS.content.primary}>\n\t\t\t\tDelete “{agentName}”?\n\t\t\t</TitleRegular>\n\t\t\t<BodySecondary color={COLORS.content.secondary}>\n\t\t\t\tThis permanently deletes the agent and its sub-agents. This can’t be\n\t\t\t\tundone.\n\t\t\t</BodySecondary>\n\n\t\t\t<div style={{ display: 'flex', gap: 12, width: '100%', marginTop: 4 }}>\n\t\t\t\t<Button\n\t\t\t\t\tdata-test=\"agent-delete-cancel\"\n\t\t\t\t\tbuttonType=\"secondary\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tmatchParentWidth\n\t\t\t\t\tbuttonText=\"Cancel\"\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t/>\n\t\t\t\t<Button\n\t\t\t\t\tdata-test=\"agent-delete-confirm\"\n\t\t\t\t\tbuttonType=\"destructive\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tmatchParentWidth\n\t\t\t\t\tbuttonText=\"Delete\"\n\t\t\t\t\tisLoading={isDeleting}\n\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t</StyledModal>\n);\n"],"names":["DeleteAgentModal","agentName","onClose","onConfirm","isDeleting","jsx","StyledModal","jsxs","TitleRegular","COLORS","BodySecondary","Button"],"mappings":";;;;;AAoBO,MAAMA,IAAoD,CAAC;AAAA,EACjE,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AACD,MACC,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACA,aAAU;AAAA,IACV,MAAI;AAAA,IACJ,SAAAJ;AAAA,IACA,OAAM;AAAA,IAEN,UAAA,gBAAAK;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAO;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,KAAK;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,WAAW;AAAA,QAAA;AAAA,QAGZ,UAAA;AAAA,UAAA,gBAAAA,EAACC,GAAA,EAAa,OAAOC,EAAO,QAAQ,SAAS,UAAA;AAAA,YAAA;AAAA,YACnCR;AAAA,YAAU;AAAA,UAAA,GACpB;AAAA,4BACCS,GAAA,EAAc,OAAOD,EAAO,QAAQ,WAAW,UAAA,gFAGhD;AAAA,UAEA,gBAAAF,EAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,IAAI,OAAO,QAAQ,WAAW,EAAA,GACjE,UAAA;AAAA,YAAA,gBAAAF;AAAA,cAACM;AAAA,cAAA;AAAA,gBACA,aAAU;AAAA,gBACV,YAAW;AAAA,gBACX,MAAK;AAAA,gBACL,kBAAgB;AAAA,gBAChB,YAAW;AAAA,gBACX,SAAST;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAAG;AAAA,cAACM;AAAA,cAAA;AAAA,gBACA,aAAU;AAAA,gBACV,YAAW;AAAA,gBACX,MAAK;AAAA,gBACL,kBAAgB;AAAA,gBAChB,YAAW;AAAA,gBACX,WAAWP;AAAA,gBACX,SAASD;AAAA,cAAA;AAAA,YAAA;AAAA,UACV,EAAA,CACD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AACD;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bikdotai/bik-component-library",
3
- "version": "0.0.821-beta.7",
3
+ "version": "0.0.821-beta.8",
4
4
  "description": "Bik Component Library",
5
5
  "repository": {
6
6
  "type": "git",