@bikdotai/bik-component-library 0.0.850-tools-beta.0 → 0.0.850

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.
Files changed (133) hide show
  1. package/dist/cjs/assets/icons/ShipStation.svg.js +1 -1
  2. package/dist/cjs/assets/icons/ShipStation.svg.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +40 -22
  4. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +1 -1
  6. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +5 -5
  8. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/components/GoLiveModal.js +1 -1
  12. package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/components/MentionPicker.js +32 -24
  16. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js +1 -1
  18. package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +4 -4
  20. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +2 -2
  22. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
  24. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  26. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  28. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +2 -2
  30. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  31. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
  32. package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -1
  33. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  34. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  35. package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
  36. package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
  37. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  38. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  39. package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js +2 -0
  40. package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
  41. package/dist/cjs/editor/BikEditor.js +1 -1
  42. package/dist/cjs/editor/BikEditor.js.map +1 -1
  43. package/dist/cjs/editor/BikEditor.styles.js +21 -16
  44. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  45. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  46. package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
  47. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  48. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +3 -3
  49. package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  50. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js +2 -0
  51. package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  52. package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
  53. package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
  54. package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js +2 -0
  55. package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
  56. package/dist/cjs/icons/index.js +1 -1
  57. package/dist/esm/assets/icons/ShipStation.svg.js +2 -2
  58. package/dist/esm/assets/icons/ShipStation.svg.js.map +1 -1
  59. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +3 -0
  60. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +61 -42
  61. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  62. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +1 -1
  63. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  64. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +5 -0
  65. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +243 -227
  66. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  67. package/dist/esm/components/agent-builder/components/DiscardModal.js +57 -49
  68. package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
  69. package/dist/esm/components/agent-builder/components/GoLiveModal.js +26 -22
  70. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  71. package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +1 -1
  72. package/dist/esm/components/agent-builder/components/MentionEditor.js +93 -77
  73. package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
  74. package/dist/esm/components/agent-builder/components/MentionPicker.js +194 -168
  75. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  76. package/dist/esm/components/agent-builder/components/RequireVerificationModal.js +5 -5
  77. package/dist/esm/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
  78. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +118 -109
  79. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  80. package/dist/esm/components/agent-builder/components/SelectableListSection.js +149 -133
  81. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  82. package/dist/esm/components/agent-builder/constants/tools.d.ts +9 -11
  83. package/dist/esm/components/agent-builder/constants/tools.js +24 -21
  84. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  85. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +6 -2
  86. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +46 -43
  87. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  88. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +209 -183
  89. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  90. package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +3 -2
  91. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +24 -19
  92. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  93. package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +9 -1
  94. package/dist/esm/components/agent-builder/utils/sourceIcons.js +15 -9
  95. package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -1
  96. package/dist/esm/components/agent-listing/AgentListing.js +79 -83
  97. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  98. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +6 -0
  99. package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
  100. package/dist/esm/components/agent-listing/AgentTable.js +29 -27
  101. package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
  102. package/dist/esm/components/agent-listing/AgentTableRow.d.ts +2 -0
  103. package/dist/esm/components/agent-listing/AgentTableRow.js +51 -37
  104. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  105. package/dist/esm/components/agent-listing/AiAgentsEmptyState.d.ts +22 -0
  106. package/dist/esm/components/agent-listing/AiAgentsEmptyState.js +22 -0
  107. package/dist/esm/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
  108. package/dist/esm/editor/BikEditor.js +129 -126
  109. package/dist/esm/editor/BikEditor.js.map +1 -1
  110. package/dist/esm/editor/BikEditor.styles.js +24 -19
  111. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  112. package/dist/esm/editor/BikEditor.types.d.ts +17 -0
  113. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  114. package/dist/esm/editor/extensions/buildExtensions.d.ts +7 -0
  115. package/dist/esm/editor/extensions/buildExtensions.js +30 -24
  116. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  117. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +20 -3
  118. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +40 -25
  119. package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
  120. package/dist/esm/editor/extensions/mention/MentionChipNodeView.d.ts +17 -0
  121. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js +39 -0
  122. package/dist/esm/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
  123. package/dist/esm/editor/extensions/mention/MentionExtension.d.ts +1 -1
  124. package/dist/esm/editor/extensions/mention/MentionExtension.js +67 -45
  125. package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
  126. package/dist/esm/icons/Informational/Common UI/ShieldOutline.d.ts +7 -0
  127. package/dist/esm/icons/Informational/Common UI/ShieldOutline.js +35 -0
  128. package/dist/esm/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
  129. package/dist/esm/icons/Informational/Common UI/index.d.ts +1 -0
  130. package/dist/esm/icons/index.d.ts +25 -25
  131. package/dist/esm/icons/index.js +172 -170
  132. package/dist/esm/icons/index.js.map +1 -1
  133. package/package.json +1 -1
@@ -1,94 +1,95 @@
1
- import { jsxs as z, jsx as i, Fragment as Q } from "react/jsx-runtime";
2
- import { useState as T, useCallback as n } from "react";
3
- import { TablePagination as U } from "../TablePagination/TablePagination.js";
4
- import { ZeroState as W } from "../zeroState/ZeroState.js";
5
- import { Page as X, Body as Y, EmptyHolder as _ } from "./AgentListing.styled.js";
1
+ import { jsxs as y, jsx as i, Fragment as W } from "react/jsx-runtime";
2
+ import { useState as L, useCallback as n } from "react";
3
+ import { TablePagination as X } from "../TablePagination/TablePagination.js";
4
+ import { Page as Y, Body as Z, EmptyHolder as _ } from "./AgentListing.styled.js";
6
5
  import { AgentListingFilters as ee } from "./AgentListingFilters.js";
7
6
  import { AgentListingHeader as te } from "./AgentListingHeader.js";
8
7
  import { AgentTable as ne } from "./AgentTable.js";
9
8
  import { AgentTableShimmer as oe } from "./AgentTableShimmer.js";
10
- import { DeleteAgentModal as ie } from "./DeleteAgentModal.js";
11
- import { unwrapDropdownValue as ae } from "../dropdown/utils.js";
12
- const re = ({
13
- config: D,
14
- onSearchChange: u,
9
+ import { AiAgentsEmptyState as ie } from "./AiAgentsEmptyState.js";
10
+ import { DeleteAgentModal as ae } from "./DeleteAgentModal.js";
11
+ import { unwrapDropdownValue as re } from "../dropdown/utils.js";
12
+ const se = ({
13
+ config: z,
14
+ onSearchChange: p,
15
15
  onSearchSubmit: l,
16
16
  onFilterChange: g,
17
17
  onSortChange: d,
18
- onNewAgent: f,
18
+ onNewAgent: u,
19
19
  onBrowseTemplates: m,
20
- onRunAgent: A,
21
- onEditAgent: S,
20
+ onRunAgent: f,
21
+ onEditAgent: A,
22
22
  onDeleteAgent: r,
23
23
  onRowClick: c,
24
- ...L
24
+ ...D
25
25
  }) => {
26
- const [a, h] = T(
26
+ const [a, h] = L(
27
27
  null
28
- ), [b, w] = T(!1), {
28
+ ), [S, w] = L(!1), {
29
29
  agents: C,
30
30
  isLoading: N,
31
- searchValue: R,
32
- searchPlaceholder: v = "Search",
33
- filterOptions: x,
34
- filterPlaceholder: B = "Filters",
35
- sortOptions: E,
36
- selectedSort: F,
37
- title: I = "AI Agents",
38
- headerActions: O,
31
+ triggerCountsLoading: R,
32
+ searchValue: v,
33
+ searchPlaceholder: E = "Search",
34
+ filterOptions: F,
35
+ filterPlaceholder: O = "Filters",
36
+ sortOptions: T,
37
+ selectedSort: x,
38
+ title: j = "AI Agents",
39
+ headerActions: k,
39
40
  pagination: o,
40
- emptyState: p,
41
- debugLog: y
42
- } = D, k = !N && C.length === 0, t = n(
41
+ emptyState: B,
42
+ debugLog: b
43
+ } = z, H = !N && C.length === 0, t = n(
43
44
  (e, ...s) => {
44
- y && console.log(`[AgentListing] ${e}`, ...s);
45
+ b && console.log(`[AgentListing] ${e}`, ...s);
45
46
  },
46
- [y]
47
- ), j = n(
47
+ [b]
48
+ ), I = n(
48
49
  (e) => {
49
- t("onSearchChange", e), u(e);
50
+ t("onSearchChange", e), p(e);
50
51
  },
51
- [t, u]
52
- ), H = n(
52
+ [t, p]
53
+ ), M = n(
53
54
  (e) => {
54
55
  t("onSearchSubmit", e), l?.(e);
55
56
  },
56
57
  [t, l]
57
- ), M = n(
58
+ ), V = n(
58
59
  (e) => {
59
60
  t("onFilterChange", e), g?.(e);
60
61
  },
61
62
  [t, g]
62
- ), V = n(
63
+ ), q = n(
63
64
  (e) => {
64
65
  t("onSortChange", e), d?.(e);
65
66
  },
66
67
  [t, d]
67
68
  ), P = n(() => {
68
- t("onNewAgent"), f();
69
- }, [t, f]), q = n(() => {
69
+ t("onNewAgent"), u();
70
+ }, [t, u]), $ = n(() => {
70
71
  t("onBrowseTemplates"), m?.();
71
- }, [t, m]), Z = n(
72
+ }, [t, m]), G = n(
72
73
  (e) => {
73
- t("onRunAgent", e.id), A(e);
74
+ t("onRunAgent", e.id), f(e);
74
75
  },
75
- [t, A]
76
- ), $ = n(
76
+ [t, f]
77
+ ), J = n(
77
78
  (e) => {
78
- t("onEditAgent", e.id), S(e);
79
+ t("onEditAgent", e.id), A(e);
79
80
  },
80
- [t, S]
81
- ), G = n(
81
+ [t, A]
82
+ ), K = n(
82
83
  (e) => {
83
84
  t("onRowClick", e.id), c?.(e);
84
85
  },
85
86
  [t, c]
86
- ), J = n(
87
+ ), Q = n(
87
88
  (e) => {
88
89
  t("onDeleteAgent", e.id), h(e);
89
90
  },
90
91
  [t]
91
- ), K = n(async () => {
92
+ ), U = n(async () => {
92
93
  if (!(!a || !r)) {
93
94
  w(!0);
94
95
  try {
@@ -98,56 +99,51 @@ const re = ({
98
99
  }
99
100
  }
100
101
  }, [a, r]);
101
- return /* @__PURE__ */ z(X, { "data-test": L["data-test"] ?? "agent-listing", children: [
102
+ return /* @__PURE__ */ y(Y, { "data-test": D["data-test"] ?? "agent-listing", children: [
102
103
  /* @__PURE__ */ i(
103
104
  te,
104
105
  {
105
- title: I,
106
+ title: j,
106
107
  onNewAgent: P,
107
- onBrowseTemplates: m ? q : void 0,
108
- headerActions: O
108
+ onBrowseTemplates: m ? $ : void 0,
109
+ headerActions: k
109
110
  }
110
111
  ),
111
112
  /* @__PURE__ */ i(
112
113
  ee,
113
114
  {
114
- searchValue: R,
115
- onSearchChange: j,
116
- onSearchSubmit: l ? H : void 0,
117
- searchPlaceholder: v,
118
- filterOptions: x,
119
- onFilterChange: g ? M : void 0,
120
- filterPlaceholder: B,
121
- sortOptions: E,
122
- selectedSort: F,
123
- onSortChange: d ? V : void 0
115
+ searchValue: v,
116
+ onSearchChange: I,
117
+ onSearchSubmit: l ? M : void 0,
118
+ searchPlaceholder: E,
119
+ filterOptions: F,
120
+ onFilterChange: g ? V : void 0,
121
+ filterPlaceholder: O,
122
+ sortOptions: T,
123
+ selectedSort: x,
124
+ onSortChange: d ? q : void 0
124
125
  }
125
126
  ),
126
- /* @__PURE__ */ i(Y, { children: N ? /* @__PURE__ */ i(oe, { rows: Math.min(o?.pageSize ?? 5, 10) }) : k ? /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
127
- W,
127
+ /* @__PURE__ */ i(Z, { children: N ? /* @__PURE__ */ i(oe, { rows: Math.min(o?.pageSize ?? 5, 10) }) : H ? /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
128
+ ie,
128
129
  {
129
- title: p?.title ?? "No agents yet",
130
- subTitle: p?.subTitle ?? "Create your first AI agent to start automating conversations.",
131
- actionButton: p?.actionButton ?? {
132
- buttonText: "New AI agent",
133
- buttonType: "primary",
134
- size: "small",
135
- onClick: P
136
- }
130
+ emptyState: B,
131
+ onNewAgent: P
137
132
  }
138
- ) }) : /* @__PURE__ */ z(Q, { children: [
133
+ ) }) : /* @__PURE__ */ y(W, { children: [
139
134
  /* @__PURE__ */ i(
140
135
  ne,
141
136
  {
142
137
  agents: C,
143
- onRunAgent: Z,
144
- onEditAgent: $,
145
- onDeleteAgent: r ? J : void 0,
146
- onRowClick: c ? G : void 0
138
+ triggerCountsLoading: R,
139
+ onRunAgent: G,
140
+ onEditAgent: J,
141
+ onDeleteAgent: r ? Q : void 0,
142
+ onRowClick: c ? K : void 0
147
143
  }
148
144
  ),
149
145
  o && o.totalRows > 0 && /* @__PURE__ */ i(
150
- U,
146
+ X,
151
147
  {
152
148
  pageNumber: o.pageNumber,
153
149
  pageSize: o.pageSize,
@@ -155,25 +151,25 @@ const re = ({
155
151
  hidePageSizeOptions: o.hidePageSizeOptions,
156
152
  updatePageNumber: o.onPageChange,
157
153
  updatePageSize: (e) => {
158
- const s = Number(ae(e));
154
+ const s = Number(re(e));
159
155
  Number.isNaN(s) || o.onPageSizeChange(s);
160
156
  }
161
157
  }
162
158
  )
163
159
  ] }) }),
164
160
  a && /* @__PURE__ */ i(
165
- ie,
161
+ ae,
166
162
  {
167
163
  agentName: a.name,
168
- isDeleting: b,
169
- onClose: () => b ? void 0 : h(null),
170
- onConfirm: K
164
+ isDeleting: S,
165
+ onClose: () => S ? void 0 : h(null),
166
+ onConfirm: U
171
167
  }
172
168
  )
173
169
  ] });
174
170
  };
175
- re.displayName = "AgentListing";
171
+ se.displayName = "AgentListing";
176
172
  export {
177
- re as AgentListing
173
+ se as AgentListing
178
174
  };
179
175
  //# sourceMappingURL=AgentListing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { unwrapDropdownValue } from '@src/components/dropdown';\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 { AgentTableShimmer } from './AgentTableShimmer';\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\tonSearchSubmit,\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\theaderActions,\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 handleSearchSubmit = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchSubmit', v);\n\t\t\tonSearchSubmit?.(v);\n\t\t},\n\t\t[logAction, onSearchSubmit],\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\theaderActions={headerActions}\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\tonSearchSubmit={onSearchSubmit ? handleSearchSubmit : undefined}\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 ? (\n\t\t\t\t\t<AgentTableShimmer rows={Math.min(pagination?.pageSize ?? 5, 10)} />\n\t\t\t\t) : showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<ZeroState\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 value = Number(unwrapDropdownValue(opt));\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","onSearchSubmit","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","rest","pendingDelete","setPendingDelete","useState","isDeleting","setIsDeleting","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","headerActions","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleSearchSubmit","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","handleDeleteRequest","handleConfirmDelete","Page","jsx","AgentListingHeader","AgentListingFilters","Body","AgentTableShimmer","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","value","unwrapDropdownValue","DeleteAgentModal"],"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 { unwrapDropdownValue } from '@src/components/dropdown';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\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 { AgentTableShimmer } from './AgentTableShimmer';\nimport { AiAgentsEmptyState } from './AiAgentsEmptyState';\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\tonSearchSubmit,\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\ttriggerCountsLoading,\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\theaderActions,\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 handleSearchSubmit = useCallback(\n\t\t(v: string) => {\n\t\t\tlogAction('onSearchSubmit', v);\n\t\t\tonSearchSubmit?.(v);\n\t\t},\n\t\t[logAction, onSearchSubmit],\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\theaderActions={headerActions}\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\tonSearchSubmit={onSearchSubmit ? handleSearchSubmit : undefined}\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 ? (\n\t\t\t\t\t<AgentTableShimmer rows={Math.min(pagination?.pageSize ?? 5, 10)} />\n\t\t\t\t) : showEmpty ? (\n\t\t\t\t\t<EmptyHolder>\n\t\t\t\t\t\t<AiAgentsEmptyState\n\t\t\t\t\t\t\temptyState={emptyState}\n\t\t\t\t\t\t\tonNewAgent={handleNewAgent}\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\ttriggerCountsLoading={triggerCountsLoading}\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 value = Number(unwrapDropdownValue(opt));\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","onSearchSubmit","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","rest","pendingDelete","setPendingDelete","useState","isDeleting","setIsDeleting","agents","isLoading","triggerCountsLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","headerActions","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleSearchSubmit","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","handleDeleteRequest","handleConfirmDelete","Page","jsx","AgentListingHeader","AgentListingFilters","Body","AgentTableShimmer","EmptyHolder","AiAgentsEmptyState","jsxs","Fragment","AgentTable","TablePagination","opt","value","unwrapDropdownValue","DeleteAgentModal"],"mappings":";;;;;;;;;;;AA4BO,MAAMA,KAA4C,CAAC;AAAA,EACzD,QAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACJ,MAAM;AAEL,QAAM,CAACC,GAAeC,CAAgB,IAAIC;AAAA,IACzC;AAAA,EAAA,GAEK,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAK,GAC5C;AAAA,IACL,QAAAG;AAAA,IACA,WAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,mBAAAC,IAAoB;AAAA,IACpB,eAAAC;AAAA,IACA,mBAAAC,IAAoB;AAAA,IACpB,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACG9B,GAEE+B,IAAY,CAACb,KAAaD,EAAO,WAAW,GAG5Ce,IAAYC;AAAA,IACjB,CAACC,MAAmBC,MAAoB;AACvC,MAAIL,KAEH,QAAQ,IAAI,kBAAkBI,CAAM,IAAI,GAAGC,CAAI;AAAA,IAEjD;AAAA,IACA,CAACL,CAAQ;AAAA,EAAA,GAGJM,IAAqBH;AAAA,IAC1B,CAACI,MAAc;AACd,MAAAL,EAAU,kBAAkBK,CAAC,GAC7BpC,EAAeoC,CAAC;AAAA,IACjB;AAAA,IACA,CAACL,GAAW/B,CAAc;AAAA,EAAA,GAErBqC,IAAqBL;AAAA,IAC1B,CAACI,MAAc;AACd,MAAAL,EAAU,kBAAkBK,CAAC,GAC7BnC,IAAiBmC,CAAC;AAAA,IACnB;AAAA,IACA,CAACL,GAAW9B,CAAc;AAAA,EAAA,GAErBqC,IAAqBN;AAAA,IAC1B,CAACO,MAAgD;AAChD,MAAAR,EAAU,kBAAkBQ,CAAQ,GACpCrC,IAAiBqC,CAAQ;AAAA,IAC1B;AAAA,IACA,CAACR,GAAW7B,CAAc;AAAA,EAAA,GAErBsC,IAAmBR;AAAA,IACxB,CAACI,MAAc;AACd,MAAAL,EAAU,gBAAgBK,CAAC,GAC3BjC,IAAeiC,CAAC;AAAA,IACjB;AAAA,IACA,CAACL,GAAW5B,CAAY;AAAA,EAAA,GAEnBsC,IAAiBT,EAAY,MAAM;AACxC,IAAAD,EAAU,YAAY,GACtB3B,EAAA;AAAA,EACD,GAAG,CAAC2B,GAAW3B,CAAU,CAAC,GACpBsC,IAAwBV,EAAY,MAAM;AAC/C,IAAAD,EAAU,mBAAmB,GAC7B1B,IAAA;AAAA,EACD,GAAG,CAAC0B,GAAW1B,CAAiB,CAAC,GAC3BsC,IAAiBX;AAAA,IACtB,CAACY,MAAyB;AACzB,MAAAb,EAAU,cAAca,EAAM,EAAE,GAChCtC,EAAWsC,CAAK;AAAA,IACjB;AAAA,IACA,CAACb,GAAWzB,CAAU;AAAA,EAAA,GAEjBuC,IAAkBb;AAAA,IACvB,CAACY,MAAyB;AACzB,MAAAb,EAAU,eAAea,EAAM,EAAE,GACjCrC,EAAYqC,CAAK;AAAA,IAClB;AAAA,IACA,CAACb,GAAWxB,CAAW;AAAA,EAAA,GAElBuC,IAAiBd;AAAA,IACtB,CAACY,MAAyB;AACzB,MAAAb,EAAU,cAAca,EAAM,EAAE,GAChCnC,IAAamC,CAAK;AAAA,IACnB;AAAA,IACA,CAACb,GAAWtB,CAAU;AAAA,EAAA,GAGjBsC,IAAsBf;AAAA,IAC3B,CAACY,MAAyB;AACzB,MAAAb,EAAU,iBAAiBa,EAAM,EAAE,GACnChC,EAAiBgC,CAAK;AAAA,IACvB;AAAA,IACA,CAACb,CAAS;AAAA,EAAA,GAELiB,IAAsBhB,EAAY,YAAY;AACnD,QAAI,GAACrB,KAAiB,CAACH,IAGvB;AAAA,MAAAO,EAAc,EAAI;AAClB,UAAI;AACH,cAAMP,EAAcG,CAAa,GACjCC,EAAiB,IAAI;AAAA,MACtB,UAAA;AACC,QAAAG,EAAc,EAAK;AAAA,MACpB;AAAA;AAAA,EACD,GAAG,CAACJ,GAAeH,CAAa,CAAC;AAEjC,2BACEyC,GAAA,EAAK,aAAWvC,EAAK,WAAW,KAAK,iBACrC,UAAA;AAAA,IAAA,gBAAAwC;AAAA,MAACC;AAAA,MAAA;AAAA,QACA,OAAA1B;AAAA,QACA,YAAYgB;AAAA,QACZ,mBACCpC,IAAoBqC,IAAwB;AAAA,QAE7C,eAAAhB;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD,gBAAAwB;AAAA,MAACE;AAAA,MAAA;AAAA,QACA,aAAAjC;AAAA,QACA,gBAAgBgB;AAAA,QAChB,gBAAgBlC,IAAiBoC,IAAqB;AAAA,QACtD,mBAAAjB;AAAA,QACA,eAAAC;AAAA,QACA,gBAAgBnB,IAAiBoC,IAAqB;AAAA,QACtD,mBAAAhB;AAAA,QACA,aAAAC;AAAA,QACA,cAAAC;AAAA,QACA,cAAcrB,IAAeqC,IAAmB;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGhDa,GAAA,EACC,UAAApC,IACA,gBAAAiC,EAACI,IAAA,EAAkB,MAAM,KAAK,IAAI3B,GAAY,YAAY,GAAG,EAAE,GAAG,IAC/DG,sBACFyB,GAAA,EACA,UAAA,gBAAAL;AAAA,MAACM;AAAA,MAAA;AAAA,QACA,YAAA5B;AAAA,QACA,YAAYa;AAAA,MAAA;AAAA,IAAA,EACb,CACD,IAEA,gBAAAgB,EAAAC,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAR;AAAA,QAACS;AAAA,QAAA;AAAA,UACA,QAAA3C;AAAA,UACA,sBAAAE;AAAA,UACA,YAAYyB;AAAA,UACZ,aAAaE;AAAA,UACb,eAAerC,IAAgBuC,IAAsB;AAAA,UACrD,YAAYtC,IAAaqC,IAAiB;AAAA,QAAA;AAAA,MAAA;AAAA,MAE1CnB,KAAcA,EAAW,YAAY,KACrC,gBAAAuB;AAAA,QAACU;AAAA,QAAA;AAAA,UACA,YAAYjC,EAAW;AAAA,UACvB,UAAUA,EAAW;AAAA,UACrB,WAAWA,EAAW;AAAA,UACtB,qBAAqBA,EAAW;AAAA,UAChC,kBAAkBA,EAAW;AAAA,UAC7B,gBAAgB,CAACkC,MAAQ;AACxB,kBAAMC,IAAQ,OAAOC,GAAoBF,CAAG,CAAC;AAC7C,YAAK,OAAO,MAAMC,CAAK,KACtBnC,EAAW,iBAAiBmC,CAAK;AAAA,UAEnC;AAAA,QAAA;AAAA,MAAA;AAAA,IACD,EAAA,CAEF,EAAA,CAEF;AAAA,IAECnD,KACA,gBAAAuC;AAAA,MAACc;AAAA,MAAA;AAAA,QACA,WAAWrD,EAAc;AAAA,QACzB,YAAAG;AAAA,QACA,SAAS,MAAOA,IAAa,SAAYF,EAAiB,IAAI;AAAA,QAC9D,WAAWoC;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,GAEF;AAEF;AAEAlD,GAAa,cAAc;"}
@@ -27,6 +27,12 @@ export interface AgentListingConfig {
27
27
  agents: AgentListItem[];
28
28
  /** Initial-fetch loading — shows the loading ZeroState in place of the table. */
29
29
  isLoading?: boolean;
30
+ /**
31
+ * The trigger-count analytics fetch is still running. The table (rows, names,
32
+ * triggers, status) renders normally; only the "Trigger count" cell shimmers
33
+ * until the counts land, so the rest of the dashboard isn't blocked on it.
34
+ */
35
+ triggerCountsLoading?: boolean;
30
36
  /** Host application context the merchant runs in (e.g. ApplicationType.MANIFEST). */
31
37
  applicationType?: ApplicationType;
32
38
  /** Controlled search text. */
@@ -2,6 +2,8 @@ import { default as React } from 'react';
2
2
  import { AgentListItem } from './AgentListing.model';
3
3
  interface AgentTableProps {
4
4
  agents: AgentListItem[];
5
+ /** Shimmer the "Trigger count" cells while the analytics counts load. */
6
+ triggerCountsLoading?: boolean;
5
7
  onRunAgent: (agent: AgentListItem) => void;
6
8
  onEditAgent: (agent: AgentListItem) => void;
7
9
  onDeleteAgent?: (agent: AgentListItem) => void;
@@ -1,36 +1,38 @@
1
- import { jsx as r, jsxs as c } from "react/jsx-runtime";
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 l = ({ children: i }) => /* @__PURE__ */ r(h, { color: m.content.primary, children: i }), b = () => /* @__PURE__ */ c(s, { children: [
7
- /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(l, { children: "Agent name" }) }),
8
- /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(l, { children: "Trigger" }) }),
9
- /* @__PURE__ */ r(e, { align: "right", children: /* @__PURE__ */ r(l, { children: "Trigger count" }) }),
10
- /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(l, { children: "Status" }) }),
11
- /* @__PURE__ */ r(e, { align: "center", children: /* @__PURE__ */ r(l, { children: "Actions" }) })
12
- ] }), C = ({
13
- agents: i,
14
- onRunAgent: o,
15
- onEditAgent: t,
16
- onDeleteAgent: d,
17
- onRowClick: a
18
- }) => /* @__PURE__ */ r(g, { children: /* @__PURE__ */ c(p, { children: [
19
- /* @__PURE__ */ r(b, {}),
20
- i.map((n) => /* @__PURE__ */ r(
21
- T,
1
+ import { jsx as r, jsxs as o } from "react/jsx-runtime";
2
+ import { TitleSmall as m } from "../TypographyStyle.js";
3
+ import { COLORS as g } from "../../constants/Theme.js";
4
+ import { TableCard as p, TableScroll as s, HeaderGridRow as T, HeaderCell as e } from "./AgentListing.styled.js";
5
+ import { AgentTableRow as b } from "./AgentTableRow.js";
6
+ const i = ({ children: l }) => /* @__PURE__ */ r(m, { color: g.content.primary, children: l }), f = () => /* @__PURE__ */ o(T, { children: [
7
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(i, { children: "Agent name" }) }),
8
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(i, { children: "Trigger" }) }),
9
+ /* @__PURE__ */ r(e, { align: "right", children: /* @__PURE__ */ r(i, { children: "Trigger count" }) }),
10
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(i, { children: "Status" }) }),
11
+ /* @__PURE__ */ r(e, { align: "center", children: /* @__PURE__ */ r(i, { children: "Actions" }) })
12
+ ] }), x = ({
13
+ agents: l,
14
+ triggerCountsLoading: t,
15
+ onRunAgent: c,
16
+ onEditAgent: d,
17
+ onDeleteAgent: a,
18
+ onRowClick: h
19
+ }) => /* @__PURE__ */ r(p, { children: /* @__PURE__ */ o(s, { children: [
20
+ /* @__PURE__ */ r(f, {}),
21
+ l.map((n) => /* @__PURE__ */ r(
22
+ b,
22
23
  {
23
24
  agent: n,
24
- onRunAgent: o,
25
- onEditAgent: t,
26
- onDeleteAgent: d,
27
- onRowClick: a
25
+ triggerCountLoading: t,
26
+ onRunAgent: c,
27
+ onEditAgent: d,
28
+ onDeleteAgent: a,
29
+ onRowClick: h
28
30
  },
29
31
  n.id
30
32
  ))
31
33
  ] }) });
32
34
  export {
33
- C as AgentTable,
34
- b as AgentTableHeader
35
+ x as AgentTable,
36
+ f as AgentTableHeader
35
37
  };
36
38
  //# 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\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\n/** Column header row — shared with the loading shimmer so the two can't drift. */\nexport const AgentTableHeader: React.FC = () => (\n\t<HeaderGridRow>\n\t\t<HeaderCell>\n\t\t\t<HeaderLabel>Agent name</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell>\n\t\t\t<HeaderLabel>Trigger</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell align=\"right\">\n\t\t\t<HeaderLabel>Trigger count</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell>\n\t\t\t<HeaderLabel>Status</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell align=\"center\">\n\t\t\t<HeaderLabel>Actions</HeaderLabel>\n\t\t</HeaderCell>\n\t</HeaderGridRow>\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<AgentTableHeader />\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","AgentTableHeader","jsxs","HeaderGridRow","HeaderCell","AgentTable","agents","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","TableCard","TableScroll","agent","AgentTableRow"],"mappings":";;;;;AAoBA,MAAMA,IAAuD,CAAC,EAAE,UAAAC,EAAA,MAC/D,gBAAAC,EAACC,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAU,UAAAH,EAAA,CAAS,GAIzCI,IAA6B,MACzC,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAL,EAACM,GAAA,EACA,UAAA,gBAAAN,EAACF,GAAA,EAAY,UAAA,aAAA,CAAU,GACxB;AAAA,EACA,gBAAAE,EAACM,GAAA,EACA,UAAA,gBAAAN,EAACF,GAAA,EAAY,qBAAO,GACrB;AAAA,oBACCQ,GAAA,EAAW,OAAM,SACjB,UAAA,gBAAAN,EAACF,GAAA,EAAY,2BAAa,EAAA,CAC3B;AAAA,EACA,gBAAAE,EAACM,GAAA,EACA,UAAA,gBAAAN,EAACF,GAAA,EAAY,oBAAM,GACpB;AAAA,oBACCQ,GAAA,EAAW,OAAM,UACjB,UAAA,gBAAAN,EAACF,GAAA,EAAY,qBAAO,EAAA,CACrB;AAAA,EAAA,CACD,GAGYS,IAAwC,CAAC;AAAA,EACrD,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AACD,MACC,gBAAAZ,EAACa,GAAA,EACA,UAAA,gBAAAT,EAACU,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAd,EAACG,GAAA,EAAiB;AAAA,EAEjBK,EAAO,IAAI,CAACO,MACZ,gBAAAf;AAAA,IAACgB;AAAA,IAAA;AAAA,MAEA,OAAAD;AAAA,MACA,YAAAN;AAAA,MACA,aAAAC;AAAA,MACA,eAAAC;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,IALKG,EAAM;AAAA,EAAA,CAOZ;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\t/** Shimmer the \"Trigger count\" cells while the analytics counts load. */\n\ttriggerCountsLoading?: boolean;\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\n/** Column header row — shared with the loading shimmer so the two can't drift. */\nexport const AgentTableHeader: React.FC = () => (\n\t<HeaderGridRow>\n\t\t<HeaderCell>\n\t\t\t<HeaderLabel>Agent name</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell>\n\t\t\t<HeaderLabel>Trigger</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell align=\"right\">\n\t\t\t<HeaderLabel>Trigger count</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell>\n\t\t\t<HeaderLabel>Status</HeaderLabel>\n\t\t</HeaderCell>\n\t\t<HeaderCell align=\"center\">\n\t\t\t<HeaderLabel>Actions</HeaderLabel>\n\t\t</HeaderCell>\n\t</HeaderGridRow>\n);\n\nexport const AgentTable: React.FC<AgentTableProps> = ({\n\tagents,\n\ttriggerCountsLoading,\n\tonRunAgent,\n\tonEditAgent,\n\tonDeleteAgent,\n\tonRowClick,\n}) => (\n\t<TableCard>\n\t\t<TableScroll>\n\t\t\t<AgentTableHeader />\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\ttriggerCountLoading={triggerCountsLoading}\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","AgentTableHeader","jsxs","HeaderGridRow","HeaderCell","AgentTable","agents","triggerCountsLoading","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","TableCard","TableScroll","agent","AgentTableRow"],"mappings":";;;;;AAsBA,MAAMA,IAAuD,CAAC,EAAE,UAAAC,EAAA,MAC/D,gBAAAC,EAACC,GAAA,EAAW,OAAOC,EAAO,QAAQ,SAAU,UAAAH,EAAA,CAAS,GAIzCI,IAA6B,MACzC,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAL,EAACM,GAAA,EACA,UAAA,gBAAAN,EAACF,GAAA,EAAY,UAAA,aAAA,CAAU,GACxB;AAAA,EACA,gBAAAE,EAACM,GAAA,EACA,UAAA,gBAAAN,EAACF,GAAA,EAAY,qBAAO,GACrB;AAAA,oBACCQ,GAAA,EAAW,OAAM,SACjB,UAAA,gBAAAN,EAACF,GAAA,EAAY,2BAAa,EAAA,CAC3B;AAAA,EACA,gBAAAE,EAACM,GAAA,EACA,UAAA,gBAAAN,EAACF,GAAA,EAAY,oBAAM,GACpB;AAAA,oBACCQ,GAAA,EAAW,OAAM,UACjB,UAAA,gBAAAN,EAACF,GAAA,EAAY,qBAAO,EAAA,CACrB;AAAA,EAAA,CACD,GAGYS,IAAwC,CAAC;AAAA,EACrD,QAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AACD,MACC,gBAAAb,EAACc,GAAA,EACA,UAAA,gBAAAV,EAACW,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAf,EAACG,GAAA,EAAiB;AAAA,EAEjBK,EAAO,IAAI,CAACQ,MACZ,gBAAAhB;AAAA,IAACiB;AAAA,IAAA;AAAA,MAEA,OAAAD;AAAA,MACA,qBAAqBP;AAAA,MACrB,YAAAC;AAAA,MACA,aAAAC;AAAA,MACA,eAAAC;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,IANKG,EAAM;AAAA,EAAA,CAQZ;AAAA,EAAA,CACF,EAAA,CACD;"}
@@ -7,6 +7,8 @@ interface AgentTableRowProps {
7
7
  /** When set, render a delete action (the listing handles confirmation). */
8
8
  onDeleteAgent?: (agent: AgentListItem) => void;
9
9
  onRowClick?: (agent: AgentListItem) => void;
10
+ /** Shimmer the trigger-count cell while the analytics count is still loading. */
11
+ triggerCountLoading?: boolean;
10
12
  }
11
13
  export declare const AgentTableRow: React.FC<AgentTableRowProps>;
12
14
  export {};
@@ -1,38 +1,40 @@
1
1
  import { jsx as t, jsxs as r } from "react/jsx-runtime";
2
- import b from "../../assets/icons/delete.svg.js";
3
- import v from "../../assets/icons/edit.svg.js";
4
- import w from "../../assets/icons/playOutline.svg.js";
2
+ import x from "../../assets/icons/delete.svg.js";
3
+ import g from "../../assets/icons/edit.svg.js";
4
+ import T from "../../assets/icons/playOutline.svg.js";
5
5
  import D from "../../assets/icons/vertical_dots.svg.js";
6
6
  import { DropdownPopover as S } from "../dropdown/DropdownPopover/index.js";
7
- import { TitleSmall as T, BodyCaption as g, BodySecondary as s } from "../TypographyStyle.js";
7
+ import { BikShimmer as C } from "../shimmer/ShimmerComponent/BikShimmer.js";
8
+ import { TitleSmall as L, BodyCaption as O, BodySecondary as p } from "../TypographyStyle.js";
8
9
  import { COLORS as o } from "../../constants/Theme.js";
9
- import { ActionButton as p, BodyGridRow as x, Cell as n, ActionGroup as C } from "./AgentListing.styled.js";
10
- import { Tag as L } from "../tag/Tag.js";
11
- import { Tooltip as O } from "../tooltips/Tooltip.js";
12
- import { unwrapDropdownValue as P } from "../dropdown/utils.js";
13
- const R = (e) => {
10
+ import { ActionButton as m, BodyGridRow as R, Cell as n, ActionGroup as B } from "./AgentListing.styled.js";
11
+ import { Tooltip as h } from "../tooltips/Tooltip.js";
12
+ import { Tag as P } from "../tag/Tag.js";
13
+ import { unwrapDropdownValue as $ } from "../dropdown/utils.js";
14
+ const k = (e) => {
14
15
  switch (e.kind) {
15
16
  case "topic":
16
- return `Topic: ${(e.label ?? "").replace(/_/g, " ")}`;
17
+ return `Topic: ${(e.label ?? "").replace(/_/g, " ").toLowerCase()}`;
17
18
  case "phrases":
18
19
  return e.items?.length ? `Phrases: ${e.items.join(", ")}` : "Phrases";
19
20
  default:
20
21
  return e.label ?? "";
21
22
  }
22
- }, _ = ({
23
+ }, K = ({
23
24
  agent: e,
24
- onRunAgent: m,
25
- onEditAgent: h,
25
+ onRunAgent: u,
26
+ onEditAgent: f,
26
27
  onDeleteAgent: a,
27
- onRowClick: l
28
+ onRowClick: l,
29
+ triggerCountLoading: b
28
30
  }) => {
29
- const c = e.status === "live", u = (i) => {
30
- i.stopPropagation(), !e.isRunDisabled && m(e);
31
- }, f = [
31
+ const c = e.status === "live", d = k(e.trigger), y = (i) => {
32
+ i.stopPropagation(), !e.isRunDisabled && u(e);
33
+ }, v = [
32
34
  {
33
35
  label: "Edit",
34
36
  value: "edit",
35
- leadingIcon: /* @__PURE__ */ t(v, { width: 16, height: 16, color: o.content.secondary })
37
+ leadingIcon: /* @__PURE__ */ t(g, { width: 16, height: 16, color: o.content.secondary })
36
38
  },
37
39
  ...a ? [
38
40
  {
@@ -52,7 +54,7 @@ const R = (e) => {
52
54
  },
53
55
  children: [
54
56
  /* @__PURE__ */ t(
55
- b,
57
+ x,
56
58
  {
57
59
  width: 16,
58
60
  height: 16,
@@ -65,17 +67,17 @@ const R = (e) => {
65
67
  )
66
68
  }
67
69
  ] : []
68
- ], y = (i) => {
69
- i === "edit" ? h(e) : i === "delete" && a?.(e);
70
- }, d = /* @__PURE__ */ t(
71
- p,
70
+ ], w = (i) => {
71
+ i === "edit" ? f(e) : i === "delete" && a?.(e);
72
+ }, s = /* @__PURE__ */ t(
73
+ m,
72
74
  {
73
75
  "data-test": `agent-row-run-${e.id}`,
74
76
  disabled: e.isRunDisabled,
75
- onClick: u,
77
+ onClick: y,
76
78
  "aria-label": "Run agent",
77
79
  children: /* @__PURE__ */ t(
78
- w,
80
+ T,
79
81
  {
80
82
  width: 20,
81
83
  height: 20,
@@ -85,31 +87,43 @@ const R = (e) => {
85
87
  }
86
88
  );
87
89
  return /* @__PURE__ */ r(
88
- x,
90
+ R,
89
91
  {
90
92
  "data-test": `agent-row-${e.id}`,
91
93
  clickable: !!l,
92
94
  onClick: l ? () => l(e) : void 0,
93
95
  children: [
94
96
  /* @__PURE__ */ r(n, { children: [
95
- /* @__PURE__ */ t(T, { numberOfLines: 1, color: o.content.primary, children: e.name }),
96
- /* @__PURE__ */ r(g, { numberOfLines: 1, color: o.content.secondary, children: [
97
+ /* @__PURE__ */ t(L, { numberOfLines: 1, color: o.content.primary, children: e.name }),
98
+ /* @__PURE__ */ r(O, { numberOfLines: 1, color: o.content.secondary, children: [
97
99
  "Created: ",
98
100
  e.createdAtLabel
99
101
  ] })
100
102
  ] }),
101
- /* @__PURE__ */ t(n, { children: /* @__PURE__ */ t(s, { numberOfLines: 2, color: o.content.primary, children: R(e.trigger) }) }),
102
- /* @__PURE__ */ t(n, { align: "right", children: /* @__PURE__ */ t(s, { color: o.content.primary, children: e.triggerCount }) }),
103
+ /* @__PURE__ */ t(n, { children: /* @__PURE__ */ t(h, { body: d, placement: "top", children: /* @__PURE__ */ t(p, { numberOfLines: 2, color: o.content.primary, children: d }) }) }),
104
+ /* @__PURE__ */ t(n, { align: "right", children: b ? /* @__PURE__ */ t(
105
+ C,
106
+ {
107
+ boxes: [
108
+ {
109
+ width: "48px",
110
+ height: "16px",
111
+ borderRadius: "4px",
112
+ marginTop: "0"
113
+ }
114
+ ]
115
+ }
116
+ ) : /* @__PURE__ */ t(p, { color: o.content.primary, children: e.triggerCount }) }),
103
117
  /* @__PURE__ */ t(n, { children: /* @__PURE__ */ t(
104
- L,
118
+ P,
105
119
  {
106
120
  tagText: c ? "Live" : "Draft",
107
121
  type: c ? "positive" : "neutral",
108
122
  variant: "regular"
109
123
  }
110
124
  ) }),
111
- /* @__PURE__ */ t(n, { align: "center", children: /* @__PURE__ */ r(C, { children: [
112
- e.isRunDisabled && e.runDisabledTooltip ? /* @__PURE__ */ t(O, { body: e.runDisabledTooltip, placement: "top", children: /* @__PURE__ */ t("span", { style: { display: "flex" }, children: d }) }) : d,
125
+ /* @__PURE__ */ t(n, { align: "center", children: /* @__PURE__ */ r(B, { children: [
126
+ e.isRunDisabled && e.runDisabledTooltip ? /* @__PURE__ */ t(h, { body: e.runDisabledTooltip, placement: "top", children: /* @__PURE__ */ t("span", { style: { display: "flex" }, children: s }) }) : s,
113
127
  /* @__PURE__ */ t(
114
128
  "span",
115
129
  {
@@ -119,12 +133,12 @@ const R = (e) => {
119
133
  S,
120
134
  {
121
135
  "data-test": `agent-row-menu-${e.id}`,
122
- options: f,
136
+ options: v,
123
137
  placement: "bottom-end",
124
138
  width: "160px",
125
- onSelect: (i) => y(P(i)),
139
+ onSelect: (i) => w($(i)),
126
140
  children: /* @__PURE__ */ t(
127
- p,
141
+ m,
128
142
  {
129
143
  "data-test": `agent-row-menu-button-${e.id}`,
130
144
  "aria-label": "More actions",
@@ -148,6 +162,6 @@ const R = (e) => {
148
162
  );
149
163
  };
150
164
  export {
151
- _ as AgentTableRow
165
+ K as AgentTableRow
152
166
  };
153
167
  //# sourceMappingURL=AgentTableRow.js.map