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

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 (89) hide show
  1. package/dist/cjs/assets/icons/Shopify.svg.js +2 -0
  2. package/dist/cjs/assets/icons/Shopify.svg.js.map +1 -0
  3. package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
  4. package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +57 -23
  6. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  8. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
  10. package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
  11. package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
  12. package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
  13. package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
  14. package/dist/cjs/components/agent-builder/components/MentionPicker.js +37 -6
  15. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  16. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +1 -1
  17. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  18. package/dist/cjs/components/agent-builder/constants/charLimits.js +1 -1
  19. package/dist/cjs/components/agent-builder/constants/charLimits.js.map +1 -1
  20. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  21. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  22. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
  23. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  24. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  25. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  26. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +1 -1
  27. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  28. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +2 -0
  29. package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -0
  30. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  31. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  32. package/dist/cjs/components/agent-listing/AgentListingFilters.js +1 -1
  33. package/dist/cjs/components/agent-listing/AgentListingFilters.js.map +1 -1
  34. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  35. package/dist/cjs/editor/extensions/mention/MentionDropdown.js +1 -1
  36. package/dist/cjs/editor/extensions/mention/MentionDropdown.js.map +1 -1
  37. package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
  38. package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
  39. package/dist/esm/assets/icons/Shopify.svg.js +6 -0
  40. package/dist/esm/assets/icons/Shopify.svg.js.map +1 -0
  41. package/dist/esm/components/agent-builder/AgentBuilder.js +47 -47
  42. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  43. package/dist/esm/components/agent-builder/AgentBuilder.model.d.ts +1 -1
  44. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +6 -0
  45. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +82 -42
  46. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  47. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +84 -76
  48. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  49. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  50. package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +6 -0
  51. package/dist/esm/components/agent-builder/components/MentionEditor.js +31 -30
  52. package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
  53. package/dist/esm/components/agent-builder/components/MentionField.js +40 -37
  54. package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
  55. package/dist/esm/components/agent-builder/components/MentionPicker.d.ts +6 -1
  56. package/dist/esm/components/agent-builder/components/MentionPicker.js +202 -101
  57. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  58. package/dist/esm/components/agent-builder/components/SelectableListSection.d.ts +18 -2
  59. package/dist/esm/components/agent-builder/components/SelectableListSection.js +159 -91
  60. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  61. package/dist/esm/components/agent-builder/constants/charLimits.d.ts +1 -1
  62. package/dist/esm/components/agent-builder/constants/charLimits.js +1 -1
  63. package/dist/esm/components/agent-builder/constants/charLimits.js.map +1 -1
  64. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
  65. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +107 -99
  66. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  67. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +7 -7
  68. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  69. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +131 -106
  70. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  71. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +2 -2
  72. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  73. package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +10 -0
  74. package/dist/esm/components/agent-builder/utils/sourceIcons.js +10 -0
  75. package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -0
  76. package/dist/esm/components/agent-listing/AgentListing.js +108 -101
  77. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  78. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +8 -0
  79. package/dist/esm/components/agent-listing/AgentListingFilters.d.ts +2 -0
  80. package/dist/esm/components/agent-listing/AgentListingFilters.js +37 -33
  81. package/dist/esm/components/agent-listing/AgentListingFilters.js.map +1 -1
  82. package/dist/esm/editor/BikEditor.types.d.ts +7 -0
  83. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  84. package/dist/esm/editor/extensions/mention/MentionDropdown.d.ts +2 -0
  85. package/dist/esm/editor/extensions/mention/MentionDropdown.js +21 -20
  86. package/dist/esm/editor/extensions/mention/MentionDropdown.js.map +1 -1
  87. package/dist/esm/editor/extensions/mention/MentionExtension.js +66 -55
  88. package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
  89. package/package.json +2 -2
@@ -1,143 +1,150 @@
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,
14
- onSortChange: r,
15
- onNewAgent: f,
16
- onBrowseTemplates: g,
17
- onRunAgent: A,
18
- onEditAgent: y,
1
+ import { jsxs as z, jsx as i, Fragment as Q } from "react/jsx-runtime";
2
+ import { useState as L, 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";
6
+ import { AgentListingFilters as ee } from "./AgentListingFilters.js";
7
+ import { AgentListingHeader as te } from "./AgentListingHeader.js";
8
+ import { AgentTable as ne } from "./AgentTable.js";
9
+ import { DeleteAgentModal as oe } from "./DeleteAgentModal.js";
10
+ const ie = ({
11
+ config: R,
12
+ onSearchChange: f,
13
+ onSearchSubmit: l,
14
+ onFilterChange: r,
15
+ onSortChange: g,
16
+ onNewAgent: A,
17
+ onBrowseTemplates: d,
18
+ onRunAgent: S,
19
+ onEditAgent: b,
19
20
  onDeleteAgent: s,
20
- onRowClick: d,
21
- ...R
21
+ onRowClick: c,
22
+ ...T
22
23
  }) => {
23
- const [a, c] = z(
24
+ const [a, m] = L(
24
25
  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",
26
+ ), [y, C] = L(!1), {
27
+ agents: N,
28
+ isLoading: h,
29
+ searchValue: D,
30
+ searchPlaceholder: x = "Search",
31
+ filterOptions: B,
32
+ filterPlaceholder: E = "Filters",
33
+ sortOptions: F,
34
+ selectedSort: I,
35
+ title: O = "AI Agents",
35
36
  pagination: o,
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
+ emptyState: u,
38
+ debugLog: P
39
+ } = R, k = !h && N.length === 0, t = n(
40
+ (e, ...p) => {
41
+ P && console.log(`[AgentListing] ${e}`, ...p);
41
42
  },
42
- [N]
43
- ), k = n(
43
+ [P]
44
+ ), j = n(
44
45
  (e) => {
45
- t("onSearchChange", e), p(e);
46
+ t("onSearchChange", e), f(e);
46
47
  },
47
- [t, p]
48
- ), j = n(
48
+ [t, f]
49
+ ), H = n(
49
50
  (e) => {
50
- t("onFilterChange", e), l?.(e);
51
+ t("onSearchSubmit", e), l?.(e);
51
52
  },
52
53
  [t, l]
53
- ), H = n(
54
+ ), q = n(
54
55
  (e) => {
55
- t("onSortChange", e), r?.(e);
56
+ t("onFilterChange", e), r?.(e);
56
57
  },
57
58
  [t, r]
58
- ), P = n(() => {
59
- t("onNewAgent"), f();
60
- }, [t, f]), q = n(() => {
61
- t("onBrowseTemplates"), g?.();
62
- }, [t, g]), M = n(
59
+ ), M = n(
60
+ (e) => {
61
+ t("onSortChange", e), g?.(e);
62
+ },
63
+ [t, g]
64
+ ), w = n(() => {
65
+ t("onNewAgent"), A();
66
+ }, [t, A]), V = n(() => {
67
+ t("onBrowseTemplates"), d?.();
68
+ }, [t, d]), Z = n(
63
69
  (e) => {
64
- t("onRunAgent", e.id), A(e);
70
+ t("onRunAgent", e.id), S(e);
65
71
  },
66
- [t, A]
67
- ), V = n(
72
+ [t, S]
73
+ ), $ = n(
68
74
  (e) => {
69
- t("onEditAgent", e.id), y(e);
75
+ t("onEditAgent", e.id), b(e);
70
76
  },
71
- [t, y]
72
- ), Z = n(
77
+ [t, b]
78
+ ), G = n(
73
79
  (e) => {
74
- t("onRowClick", e.id), d?.(e);
80
+ t("onRowClick", e.id), c?.(e);
75
81
  },
76
- [t, d]
77
- ), $ = n(
82
+ [t, c]
83
+ ), J = n(
78
84
  (e) => {
79
- t("onDeleteAgent", e.id), c(e);
85
+ t("onDeleteAgent", e.id), m(e);
80
86
  },
81
87
  [t]
82
- ), G = n(async () => {
88
+ ), K = n(async () => {
83
89
  if (!(!a || !s)) {
84
- b(!0);
90
+ C(!0);
85
91
  try {
86
- await s(a), c(null);
92
+ await s(a), m(null);
87
93
  } finally {
88
- b(!1);
94
+ C(!1);
89
95
  }
90
96
  }
91
97
  }, [a, s]);
92
- return /* @__PURE__ */ v(U, { "data-test": R["data-test"] ?? "agent-listing", children: [
98
+ return /* @__PURE__ */ z(X, { "data-test": T["data-test"] ?? "agent-listing", children: [
93
99
  /* @__PURE__ */ i(
94
- _,
100
+ te,
95
101
  {
96
- title: I,
97
- onNewAgent: P,
98
- onBrowseTemplates: g ? q : void 0
102
+ title: O,
103
+ onNewAgent: w,
104
+ onBrowseTemplates: d ? V : void 0
99
105
  }
100
106
  ),
101
107
  /* @__PURE__ */ i(
102
- Y,
108
+ ee,
103
109
  {
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
110
+ searchValue: D,
111
+ onSearchChange: j,
112
+ onSearchSubmit: l ? H : void 0,
113
+ searchPlaceholder: x,
114
+ filterOptions: B,
115
+ onFilterChange: r ? q : void 0,
116
+ filterPlaceholder: E,
117
+ sortOptions: F,
118
+ selectedSort: I,
119
+ onSortChange: g ? M : void 0
113
120
  }
114
121
  ),
115
- /* @__PURE__ */ i(W, { children: m || O ? /* @__PURE__ */ i(X, { children: /* @__PURE__ */ i(
116
- Q,
122
+ /* @__PURE__ */ i(Y, { children: h || k ? /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
123
+ W,
117
124
  {
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 ?? {
125
+ isLoading: h,
126
+ title: u?.title ?? "No agents yet",
127
+ subTitle: u?.subTitle ?? "Create your first AI agent to start automating conversations.",
128
+ actionButton: u?.actionButton ?? {
122
129
  buttonText: "New AI agent",
123
130
  buttonType: "primary",
124
131
  size: "small",
125
- onClick: P
132
+ onClick: w
126
133
  }
127
134
  }
128
- ) }) : /* @__PURE__ */ v(J, { children: [
135
+ ) }) : /* @__PURE__ */ z(Q, { children: [
129
136
  /* @__PURE__ */ i(
130
- ee,
137
+ ne,
131
138
  {
132
- agents: C,
133
- onRunAgent: M,
134
- onEditAgent: V,
135
- onDeleteAgent: s ? $ : void 0,
136
- onRowClick: d ? Z : void 0
139
+ agents: N,
140
+ onRunAgent: Z,
141
+ onEditAgent: $,
142
+ onDeleteAgent: s ? J : void 0,
143
+ onRowClick: c ? G : void 0
137
144
  }
138
145
  ),
139
146
  o && o.totalRows > 0 && /* @__PURE__ */ i(
140
- K,
147
+ U,
141
148
  {
142
149
  pageNumber: o.pageNumber,
143
150
  pageSize: o.pageSize,
@@ -145,25 +152,25 @@ const ne = ({
145
152
  hidePageSizeOptions: o.hidePageSizeOptions,
146
153
  updatePageNumber: o.onPageChange,
147
154
  updatePageSize: (e) => {
148
- const u = Array.isArray(e) ? e[0] : e, w = Number(u?.value);
149
- Number.isNaN(w) || o.onPageSizeChange(w);
155
+ const p = Array.isArray(e) ? e[0] : e, v = Number(p?.value);
156
+ Number.isNaN(v) || o.onPageSizeChange(v);
150
157
  }
151
158
  }
152
159
  )
153
160
  ] }) }),
154
161
  a && /* @__PURE__ */ i(
155
- te,
162
+ oe,
156
163
  {
157
164
  agentName: a.name,
158
- isDeleting: S,
159
- onClose: () => S ? void 0 : c(null),
160
- onConfirm: G
165
+ isDeleting: y,
166
+ onClose: () => y ? void 0 : m(null),
167
+ onConfirm: K
161
168
  }
162
169
  )
163
170
  ] });
164
171
  };
165
- ne.displayName = "AgentListing";
172
+ ie.displayName = "AgentListing";
166
173
  export {
167
- ne as AgentListing
174
+ ie as AgentListing
168
175
  };
169
176
  //# 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 { 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
+ {"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\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\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/>\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 || 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","onSearchSubmit","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","handleSearchSubmit","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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"}
@@ -55,7 +55,15 @@ export interface AgentListingConfig {
55
55
  export interface AgentListingProps {
56
56
  /** Grouped data / options / flags. */
57
57
  config: AgentListingConfig;
58
+ /** Fires on every keystroke. Treat as input-text only when `onSearchSubmit`
59
+ * is set (then run the actual search on submit, not here). */
58
60
  onSearchChange: (value: string) => void;
61
+ /**
62
+ * When provided, the search runs on Enter (not while typing): the user types
63
+ * freely (updating via `onSearchChange`) and this fires with the final text on
64
+ * Enter. Omit to keep search live/as-you-type.
65
+ */
66
+ onSearchSubmit?: (value: string) => void;
59
67
  onFilterChange?: (selected: DropdownOption | DropdownOption[]) => void;
60
68
  onSortChange?: (value: string) => void;
61
69
  onNewAgent: () => void;
@@ -4,6 +4,8 @@ import { AgentListSortOption } from './AgentListing.model';
4
4
  interface AgentListingFiltersProps {
5
5
  searchValue: string;
6
6
  onSearchChange: (value: string) => void;
7
+ /** When set, Enter in the search box runs the search (typing only edits text). */
8
+ onSearchSubmit?: (value: string) => void;
7
9
  searchPlaceholder: string;
8
10
  filterOptions?: DropdownOption[];
9
11
  onFilterChange?: (selected: DropdownOption | DropdownOption[]) => void;
@@ -1,36 +1,37 @@
1
- import { jsxs as n, jsx as t } from "react/jsx-runtime";
1
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
2
  import f from "../../assets/icons/search.svg.js";
3
3
  import { COLORS as w } from "../../constants/Theme.js";
4
- import { FilterRow as g, FilterRowLeft as v } from "./AgentListing.styled.js";
5
- import { Input as x } from "../input/Input.js";
6
- import { Dropdown as s } from "../dropdown/Dropdown.js";
7
- const b = ({
8
- searchValue: c,
9
- onSearchChange: d,
10
- searchPlaceholder: p,
11
- filterOptions: r,
12
- onFilterChange: l,
13
- filterPlaceholder: m,
14
- sortOptions: o,
15
- selectedSort: h,
16
- onSortChange: a
4
+ import { FilterRow as g, FilterRowLeft as x } from "./AgentListing.styled.js";
5
+ import { Input as y } from "../input/Input.js";
6
+ import { Dropdown as c } from "../dropdown/Dropdown.js";
7
+ const R = ({
8
+ searchValue: d,
9
+ onSearchChange: p,
10
+ onSearchSubmit: r,
11
+ searchPlaceholder: m,
12
+ filterOptions: l,
13
+ onFilterChange: o,
14
+ filterPlaceholder: h,
15
+ sortOptions: a,
16
+ selectedSort: u,
17
+ onSortChange: i
17
18
  }) => {
18
- const u = (o ?? []).map((e) => ({
19
+ const v = (a ?? []).map((e) => ({
19
20
  label: e.label,
20
21
  value: e.value,
21
- selected: e.value === h
22
+ selected: e.value === u
22
23
  }));
23
- return /* @__PURE__ */ n(g, { children: [
24
- /* @__PURE__ */ n(v, { children: [
24
+ return /* @__PURE__ */ s(g, { children: [
25
+ /* @__PURE__ */ s(x, { children: [
25
26
  /* @__PURE__ */ t(
26
- x,
27
+ y,
27
28
  {
28
29
  "data-test": "agent-search",
29
30
  variant: "small",
30
31
  width: "320px",
31
32
  type: "text",
32
- value: c,
33
- placeholder: p,
33
+ value: d,
34
+ placeholder: m,
34
35
  hideInputHeader: !0,
35
36
  noErrorHint: !0,
36
37
  leftIcon: {
@@ -43,39 +44,42 @@ const b = ({
43
44
  }
44
45
  )
45
46
  },
46
- onChangeText: (e) => d(e)
47
+ onChangeText: (e) => p(e),
48
+ onKeyDownEvent: r ? (e) => {
49
+ e.key === "Enter" && r(e.target.value);
50
+ } : void 0
47
51
  }
48
52
  ),
49
- r && l && /* @__PURE__ */ t(
50
- s,
53
+ l && o && /* @__PURE__ */ t(
54
+ c,
51
55
  {
52
56
  "data-test": "agent-filters",
53
57
  size: "small",
54
58
  width: "140px",
55
- placeHolder: m,
59
+ placeHolder: h,
56
60
  showPlaceholderWhenSelected: !0,
57
- options: r,
61
+ options: l,
58
62
  isMultiSelect: !0,
59
- onSelect: l
63
+ onSelect: o
60
64
  }
61
65
  )
62
66
  ] }),
63
- o && a && /* @__PURE__ */ t(
64
- s,
67
+ a && i && /* @__PURE__ */ t(
68
+ c,
65
69
  {
66
70
  "data-test": "agent-sort",
67
71
  size: "small",
68
72
  width: "200px",
69
- options: u,
73
+ options: v,
70
74
  onSelect: (e) => {
71
- const i = (Array.isArray(e) ? e[0] : e)?.value;
72
- i && a(i);
75
+ const n = (Array.isArray(e) ? e[0] : e)?.value;
76
+ n && i(n);
73
77
  }
74
78
  }
75
79
  )
76
80
  ] });
77
81
  };
78
82
  export {
79
- b as AgentListingFilters
83
+ R as AgentListingFilters
80
84
  };
81
85
  //# sourceMappingURL=AgentListingFilters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListingFilters.js","sources":["../../../../src/components/agent-listing/AgentListingFilters.tsx"],"sourcesContent":["import SearchIcon from '@src/assets/icons/search.svg';\nimport React from 'react';\nimport { Dropdown } from '@src/components/dropdown';\nimport { DropdownOption, SingleOption } from '@src/components/dropdown/type';\nimport { Input } from '@src/components/input';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListSortOption } from './AgentListing.model';\nimport { FilterRow, FilterRowLeft } from './AgentListing.styled';\n\ninterface AgentListingFiltersProps {\n\tsearchValue: string;\n\tonSearchChange: (value: string) => void;\n\tsearchPlaceholder: string;\n\n\tfilterOptions?: DropdownOption[];\n\tonFilterChange?: (selected: DropdownOption | DropdownOption[]) => void;\n\tfilterPlaceholder: string;\n\n\tsortOptions?: AgentListSortOption[];\n\tselectedSort?: string;\n\tonSortChange?: (value: string) => void;\n}\n\nexport const AgentListingFilters: React.FC<AgentListingFiltersProps> = ({\n\tsearchValue,\n\tonSearchChange,\n\tsearchPlaceholder,\n\tfilterOptions,\n\tonFilterChange,\n\tfilterPlaceholder,\n\tsortOptions,\n\tselectedSort,\n\tonSortChange,\n}) => {\n\tconst sortDropdownOptions: SingleOption[] = (sortOptions ?? []).map((o) => ({\n\t\tlabel: o.label,\n\t\tvalue: o.value,\n\t\tselected: o.value === selectedSort,\n\t}));\n\n\treturn (\n\t\t<FilterRow>\n\t\t\t<FilterRowLeft>\n\t\t\t\t<Input\n\t\t\t\t\tdata-test=\"agent-search\"\n\t\t\t\t\tvariant=\"small\"\n\t\t\t\t\twidth=\"320px\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={searchValue}\n\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\thideInputHeader\n\t\t\t\t\tnoErrorHint\n\t\t\t\t\tleftIcon={{\n\t\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t\t<SearchIcon\n\t\t\t\t\t\t\t\twidth={18}\n\t\t\t\t\t\t\t\theight={18}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.placeholder}\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\tonChangeText={(text) => onSearchChange(text)}\n\t\t\t\t/>\n\n\t\t\t\t{filterOptions && onFilterChange && (\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tdata-test=\"agent-filters\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\twidth=\"140px\"\n\t\t\t\t\t\tplaceHolder={filterPlaceholder}\n\t\t\t\t\t\tshowPlaceholderWhenSelected\n\t\t\t\t\t\toptions={filterOptions}\n\t\t\t\t\t\tisMultiSelect\n\t\t\t\t\t\tonSelect={onFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</FilterRowLeft>\n\n\t\t\t{sortOptions && onSortChange && (\n\t\t\t\t<Dropdown\n\t\t\t\t\tdata-test=\"agent-sort\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\twidth=\"200px\"\n\t\t\t\t\toptions={sortDropdownOptions}\n\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\tconst value = (single as SingleOption)?.value;\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\tonSortChange(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</FilterRow>\n\t);\n};\n"],"names":["AgentListingFilters","searchValue","onSearchChange","searchPlaceholder","filterOptions","onFilterChange","filterPlaceholder","sortOptions","selectedSort","onSortChange","sortDropdownOptions","o","FilterRow","jsxs","FilterRowLeft","jsx","Input","SearchIcon","COLORS","text","Dropdown","opt","value"],"mappings":";;;;;;AAuBO,MAAMA,IAA0D,CAAC;AAAA,EACvE,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AACD,MAAM;AACL,QAAMC,KAAuCH,KAAe,CAAA,GAAI,IAAI,CAACI,OAAO;AAAA,IAC3E,OAAOA,EAAE;AAAA,IACT,OAAOA,EAAE;AAAA,IACT,UAAUA,EAAE,UAAUH;AAAA,EAAA,EACrB;AAEF,2BACEI,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,SAAQ;AAAA,UACR,OAAM;AAAA,UACN,MAAK;AAAA,UACL,OAAOf;AAAA,UACP,aAAaE;AAAA,UACb,iBAAe;AAAA,UACf,aAAW;AAAA,UACX,UAAU;AAAA,YACT,MAAM,MACL,gBAAAY;AAAA,cAACE;AAAAA,cAAA;AAAA,gBACA,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,OAAOC,EAAO,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAGF,cAAc,CAACC,MAASjB,EAAeiB,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAG3Cf,KAAiBC,KACjB,gBAAAU;AAAA,QAACK;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,MAAK;AAAA,UACL,OAAM;AAAA,UACN,aAAad;AAAA,UACb,6BAA2B;AAAA,UAC3B,SAASF;AAAA,UACT,eAAa;AAAA,UACb,UAAUC;AAAA,QAAA;AAAA,MAAA;AAAA,IACX,GAEF;AAAA,IAECE,KAAeE,KACf,gBAAAM;AAAA,MAACK;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASV;AAAA,QACT,UAAU,CAACW,MAAQ;AAElB,gBAAMC,KADS,MAAM,QAAQD,CAAG,IAAIA,EAAI,CAAC,IAAIA,IACL;AACxC,UAAIC,KACHb,EAAaa,CAAK;AAAA,QAEpB;AAAA,MAAA;AAAA,IAAA;AAAA,EACD,GAEF;AAEF;"}
1
+ {"version":3,"file":"AgentListingFilters.js","sources":["../../../../src/components/agent-listing/AgentListingFilters.tsx"],"sourcesContent":["import SearchIcon from '@src/assets/icons/search.svg';\nimport React from 'react';\nimport { Dropdown } from '@src/components/dropdown';\nimport { DropdownOption, SingleOption } from '@src/components/dropdown/type';\nimport { Input } from '@src/components/input';\nimport { COLORS } from '@src/constants/Theme';\nimport { AgentListSortOption } from './AgentListing.model';\nimport { FilterRow, FilterRowLeft } from './AgentListing.styled';\n\ninterface AgentListingFiltersProps {\n\tsearchValue: string;\n\tonSearchChange: (value: string) => void;\n\t/** When set, Enter in the search box runs the search (typing only edits text). */\n\tonSearchSubmit?: (value: string) => void;\n\tsearchPlaceholder: string;\n\n\tfilterOptions?: DropdownOption[];\n\tonFilterChange?: (selected: DropdownOption | DropdownOption[]) => void;\n\tfilterPlaceholder: string;\n\n\tsortOptions?: AgentListSortOption[];\n\tselectedSort?: string;\n\tonSortChange?: (value: string) => void;\n}\n\nexport const AgentListingFilters: React.FC<AgentListingFiltersProps> = ({\n\tsearchValue,\n\tonSearchChange,\n\tonSearchSubmit,\n\tsearchPlaceholder,\n\tfilterOptions,\n\tonFilterChange,\n\tfilterPlaceholder,\n\tsortOptions,\n\tselectedSort,\n\tonSortChange,\n}) => {\n\tconst sortDropdownOptions: SingleOption[] = (sortOptions ?? []).map((o) => ({\n\t\tlabel: o.label,\n\t\tvalue: o.value,\n\t\tselected: o.value === selectedSort,\n\t}));\n\n\treturn (\n\t\t<FilterRow>\n\t\t\t<FilterRowLeft>\n\t\t\t\t<Input\n\t\t\t\t\tdata-test=\"agent-search\"\n\t\t\t\t\tvariant=\"small\"\n\t\t\t\t\twidth=\"320px\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={searchValue}\n\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\thideInputHeader\n\t\t\t\t\tnoErrorHint\n\t\t\t\t\tleftIcon={{\n\t\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t\t<SearchIcon\n\t\t\t\t\t\t\t\twidth={18}\n\t\t\t\t\t\t\t\theight={18}\n\t\t\t\t\t\t\t\tcolor={COLORS.content.placeholder}\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\tonChangeText={(text) => onSearchChange(text)}\n\t\t\t\t\tonKeyDownEvent={\n\t\t\t\t\t\tonSearchSubmit\n\t\t\t\t\t\t\t? (e) => {\n\t\t\t\t\t\t\t\t\tif ((e as unknown as KeyboardEvent).key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\tonSearchSubmit((e.target as HTMLInputElement).value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\n\t\t\t\t{filterOptions && onFilterChange && (\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tdata-test=\"agent-filters\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\twidth=\"140px\"\n\t\t\t\t\t\tplaceHolder={filterPlaceholder}\n\t\t\t\t\t\tshowPlaceholderWhenSelected\n\t\t\t\t\t\toptions={filterOptions}\n\t\t\t\t\t\tisMultiSelect\n\t\t\t\t\t\tonSelect={onFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</FilterRowLeft>\n\n\t\t\t{sortOptions && onSortChange && (\n\t\t\t\t<Dropdown\n\t\t\t\t\tdata-test=\"agent-sort\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\twidth=\"200px\"\n\t\t\t\t\toptions={sortDropdownOptions}\n\t\t\t\t\tonSelect={(opt) => {\n\t\t\t\t\t\tconst single = Array.isArray(opt) ? opt[0] : opt;\n\t\t\t\t\t\tconst value = (single as SingleOption)?.value;\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\tonSortChange(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</FilterRow>\n\t);\n};\n"],"names":["AgentListingFilters","searchValue","onSearchChange","onSearchSubmit","searchPlaceholder","filterOptions","onFilterChange","filterPlaceholder","sortOptions","selectedSort","onSortChange","sortDropdownOptions","o","FilterRow","jsxs","FilterRowLeft","jsx","Input","SearchIcon","COLORS","text","Dropdown","opt","value"],"mappings":";;;;;;AAyBO,MAAMA,IAA0D,CAAC;AAAA,EACvE,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AACD,MAAM;AACL,QAAMC,KAAuCH,KAAe,CAAA,GAAI,IAAI,CAACI,OAAO;AAAA,IAC3E,OAAOA,EAAE;AAAA,IACT,OAAOA,EAAE;AAAA,IACT,UAAUA,EAAE,UAAUH;AAAA,EAAA,EACrB;AAEF,2BACEI,GAAA,EACA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACA,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,SAAQ;AAAA,UACR,OAAM;AAAA,UACN,MAAK;AAAA,UACL,OAAOhB;AAAA,UACP,aAAaG;AAAA,UACb,iBAAe;AAAA,UACf,aAAW;AAAA,UACX,UAAU;AAAA,YACT,MAAM,MACL,gBAAAY;AAAA,cAACE;AAAAA,cAAA;AAAA,gBACA,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,OAAOC,EAAO,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAGF,cAAc,CAACC,MAASlB,EAAekB,CAAI;AAAA,UAC3C,gBACCjB,IACG,CAAC,MAAM;AACP,YAAK,EAA+B,QAAQ,WAC3CA,EAAgB,EAAE,OAA4B,KAAK;AAAA,UAEpD,IACA;AAAA,QAAA;AAAA,MAAA;AAAA,MAIJE,KAAiBC,KACjB,gBAAAU;AAAA,QAACK;AAAA,QAAA;AAAA,UACA,aAAU;AAAA,UACV,MAAK;AAAA,UACL,OAAM;AAAA,UACN,aAAad;AAAA,UACb,6BAA2B;AAAA,UAC3B,SAASF;AAAA,UACT,eAAa;AAAA,UACb,UAAUC;AAAA,QAAA;AAAA,MAAA;AAAA,IACX,GAEF;AAAA,IAECE,KAAeE,KACf,gBAAAM;AAAA,MAACK;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASV;AAAA,QACT,UAAU,CAACW,MAAQ;AAElB,gBAAMC,KADS,MAAM,QAAQD,CAAG,IAAIA,EAAI,CAAC,IAAIA,IACL;AACxC,UAAIC,KACHb,EAAaa,CAAK;AAAA,QAEpB;AAAA,MAAA;AAAA,IAAA;AAAA,EACD,GAEF;AAEF;"}
@@ -142,6 +142,13 @@ export interface MentionDropdownRenderProps {
142
142
  * navigating the flat `items` list.
143
143
  */
144
144
  registerKeyHandler?: (handler: ((event: KeyboardEvent) => boolean) | null) => void;
145
+ /**
146
+ * Dismiss the dropdown WITHOUT selecting an item: closes the menu and strips
147
+ * the typed `@`/`#` trigger + query. Use for custom actions in a multi-level
148
+ * picker (e.g. a "Create new" row that opens a drawer instead of inserting a
149
+ * mention).
150
+ */
151
+ onClose?: () => void;
145
152
  }
146
153
  /**
147
154
  * Everything related to @ and # mention dropdowns, in one place.