@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.
- package/dist/cjs/assets/icons/Shopify.svg.js +2 -0
- package/dist/cjs/assets/icons/Shopify.svg.js.map +1 -0
- package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +57 -23
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionPicker.js +37 -6
- package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js +1 -1
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
- package/dist/cjs/components/agent-builder/constants/charLimits.js +1 -1
- package/dist/cjs/components/agent-builder/constants/charLimits.js.map +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +1 -1
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/cjs/components/agent-builder/utils/sourceIcons.js +2 -0
- package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -0
- package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
- package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentListingFilters.js +1 -1
- package/dist/cjs/components/agent-listing/AgentListingFilters.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/esm/assets/icons/Shopify.svg.js +6 -0
- package/dist/esm/assets/icons/Shopify.svg.js.map +1 -0
- package/dist/esm/components/agent-builder/AgentBuilder.js +47 -47
- package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.model.d.ts +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +6 -0
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js +82 -42
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +84 -76
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +6 -0
- package/dist/esm/components/agent-builder/components/MentionEditor.js +31 -30
- package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionField.js +40 -37
- package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.d.ts +6 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.js +202 -101
- package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/esm/components/agent-builder/components/SelectableListSection.d.ts +18 -2
- package/dist/esm/components/agent-builder/components/SelectableListSection.js +159 -91
- package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
- package/dist/esm/components/agent-builder/constants/charLimits.d.ts +1 -1
- package/dist/esm/components/agent-builder/constants/charLimits.js +1 -1
- package/dist/esm/components/agent-builder/constants/charLimits.js.map +1 -1
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +107 -99
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +7 -7
- package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +131 -106
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js +2 -2
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +10 -0
- package/dist/esm/components/agent-builder/utils/sourceIcons.js +10 -0
- package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -0
- package/dist/esm/components/agent-listing/AgentListing.js +108 -101
- package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListing.model.d.ts +8 -0
- package/dist/esm/components/agent-listing/AgentListingFilters.d.ts +2 -0
- package/dist/esm/components/agent-listing/AgentListingFilters.js +37 -33
- package/dist/esm/components/agent-listing/AgentListingFilters.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +7 -0
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionDropdown.d.ts +2 -0
- package/dist/esm/editor/extensions/mention/MentionDropdown.js +21 -20
- package/dist/esm/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.js +66 -55
- package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,143 +1,150 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { TablePagination as
|
|
4
|
-
import { ZeroState as
|
|
5
|
-
import { Page as
|
|
6
|
-
import { AgentListingFilters as
|
|
7
|
-
import { AgentListingHeader as
|
|
8
|
-
import { AgentTable as
|
|
9
|
-
import { DeleteAgentModal as
|
|
10
|
-
const
|
|
11
|
-
config:
|
|
12
|
-
onSearchChange:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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:
|
|
21
|
-
...
|
|
21
|
+
onRowClick: c,
|
|
22
|
+
...T
|
|
22
23
|
}) => {
|
|
23
|
-
const [a,
|
|
24
|
+
const [a, m] = L(
|
|
24
25
|
null
|
|
25
|
-
), [
|
|
26
|
-
agents:
|
|
27
|
-
isLoading:
|
|
28
|
-
searchValue:
|
|
29
|
-
searchPlaceholder:
|
|
30
|
-
filterOptions:
|
|
31
|
-
filterPlaceholder:
|
|
32
|
-
sortOptions:
|
|
33
|
-
selectedSort:
|
|
34
|
-
title:
|
|
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:
|
|
37
|
-
debugLog:
|
|
38
|
-
} =
|
|
39
|
-
(e, ...
|
|
40
|
-
|
|
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
|
-
[
|
|
43
|
-
),
|
|
43
|
+
[P]
|
|
44
|
+
), j = n(
|
|
44
45
|
(e) => {
|
|
45
|
-
t("onSearchChange", e),
|
|
46
|
+
t("onSearchChange", e), f(e);
|
|
46
47
|
},
|
|
47
|
-
[t,
|
|
48
|
-
),
|
|
48
|
+
[t, f]
|
|
49
|
+
), H = n(
|
|
49
50
|
(e) => {
|
|
50
|
-
t("
|
|
51
|
+
t("onSearchSubmit", e), l?.(e);
|
|
51
52
|
},
|
|
52
53
|
[t, l]
|
|
53
|
-
),
|
|
54
|
+
), q = n(
|
|
54
55
|
(e) => {
|
|
55
|
-
t("
|
|
56
|
+
t("onFilterChange", e), r?.(e);
|
|
56
57
|
},
|
|
57
58
|
[t, r]
|
|
58
|
-
),
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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),
|
|
70
|
+
t("onRunAgent", e.id), S(e);
|
|
65
71
|
},
|
|
66
|
-
[t,
|
|
67
|
-
),
|
|
72
|
+
[t, S]
|
|
73
|
+
), $ = n(
|
|
68
74
|
(e) => {
|
|
69
|
-
t("onEditAgent", e.id),
|
|
75
|
+
t("onEditAgent", e.id), b(e);
|
|
70
76
|
},
|
|
71
|
-
[t,
|
|
72
|
-
),
|
|
77
|
+
[t, b]
|
|
78
|
+
), G = n(
|
|
73
79
|
(e) => {
|
|
74
|
-
t("onRowClick", e.id),
|
|
80
|
+
t("onRowClick", e.id), c?.(e);
|
|
75
81
|
},
|
|
76
|
-
[t,
|
|
77
|
-
),
|
|
82
|
+
[t, c]
|
|
83
|
+
), J = n(
|
|
78
84
|
(e) => {
|
|
79
|
-
t("onDeleteAgent", e.id),
|
|
85
|
+
t("onDeleteAgent", e.id), m(e);
|
|
80
86
|
},
|
|
81
87
|
[t]
|
|
82
|
-
),
|
|
88
|
+
), K = n(async () => {
|
|
83
89
|
if (!(!a || !s)) {
|
|
84
|
-
|
|
90
|
+
C(!0);
|
|
85
91
|
try {
|
|
86
|
-
await s(a),
|
|
92
|
+
await s(a), m(null);
|
|
87
93
|
} finally {
|
|
88
|
-
|
|
94
|
+
C(!1);
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
97
|
}, [a, s]);
|
|
92
|
-
return /* @__PURE__ */
|
|
98
|
+
return /* @__PURE__ */ z(X, { "data-test": T["data-test"] ?? "agent-listing", children: [
|
|
93
99
|
/* @__PURE__ */ i(
|
|
94
|
-
|
|
100
|
+
te,
|
|
95
101
|
{
|
|
96
|
-
title:
|
|
97
|
-
onNewAgent:
|
|
98
|
-
onBrowseTemplates:
|
|
102
|
+
title: O,
|
|
103
|
+
onNewAgent: w,
|
|
104
|
+
onBrowseTemplates: d ? V : void 0
|
|
99
105
|
}
|
|
100
106
|
),
|
|
101
107
|
/* @__PURE__ */ i(
|
|
102
|
-
|
|
108
|
+
ee,
|
|
103
109
|
{
|
|
104
|
-
searchValue:
|
|
105
|
-
onSearchChange:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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(
|
|
116
|
-
|
|
122
|
+
/* @__PURE__ */ i(Y, { children: h || k ? /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
|
|
123
|
+
W,
|
|
117
124
|
{
|
|
118
|
-
isLoading:
|
|
119
|
-
title:
|
|
120
|
-
subTitle:
|
|
121
|
-
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:
|
|
132
|
+
onClick: w
|
|
126
133
|
}
|
|
127
134
|
}
|
|
128
|
-
) }) : /* @__PURE__ */
|
|
135
|
+
) }) : /* @__PURE__ */ z(Q, { children: [
|
|
129
136
|
/* @__PURE__ */ i(
|
|
130
|
-
|
|
137
|
+
ne,
|
|
131
138
|
{
|
|
132
|
-
agents:
|
|
133
|
-
onRunAgent:
|
|
134
|
-
onEditAgent:
|
|
135
|
-
onDeleteAgent: s ?
|
|
136
|
-
onRowClick:
|
|
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
|
-
|
|
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
|
|
149
|
-
Number.isNaN(
|
|
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
|
-
|
|
162
|
+
oe,
|
|
156
163
|
{
|
|
157
164
|
agentName: a.name,
|
|
158
|
-
isDeleting:
|
|
159
|
-
onClose: () =>
|
|
160
|
-
onConfirm:
|
|
165
|
+
isDeleting: y,
|
|
166
|
+
onClose: () => y ? void 0 : m(null),
|
|
167
|
+
onConfirm: K
|
|
161
168
|
}
|
|
162
169
|
)
|
|
163
170
|
] });
|
|
164
171
|
};
|
|
165
|
-
|
|
172
|
+
ie.displayName = "AgentListing";
|
|
166
173
|
export {
|
|
167
|
-
|
|
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
|
|
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
|
|
5
|
-
import { Input as
|
|
6
|
-
import { Dropdown as
|
|
7
|
-
const
|
|
8
|
-
searchValue:
|
|
9
|
-
onSearchChange:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
19
|
+
const v = (a ?? []).map((e) => ({
|
|
19
20
|
label: e.label,
|
|
20
21
|
value: e.value,
|
|
21
|
-
selected: e.value ===
|
|
22
|
+
selected: e.value === u
|
|
22
23
|
}));
|
|
23
|
-
return /* @__PURE__ */
|
|
24
|
-
/* @__PURE__ */
|
|
24
|
+
return /* @__PURE__ */ s(g, { children: [
|
|
25
|
+
/* @__PURE__ */ s(x, { children: [
|
|
25
26
|
/* @__PURE__ */ t(
|
|
26
|
-
|
|
27
|
+
y,
|
|
27
28
|
{
|
|
28
29
|
"data-test": "agent-search",
|
|
29
30
|
variant: "small",
|
|
30
31
|
width: "320px",
|
|
31
32
|
type: "text",
|
|
32
|
-
value:
|
|
33
|
-
placeholder:
|
|
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) =>
|
|
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
|
-
|
|
50
|
-
|
|
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:
|
|
59
|
+
placeHolder: h,
|
|
56
60
|
showPlaceholderWhenSelected: !0,
|
|
57
|
-
options:
|
|
61
|
+
options: l,
|
|
58
62
|
isMultiSelect: !0,
|
|
59
|
-
onSelect:
|
|
63
|
+
onSelect: o
|
|
60
64
|
}
|
|
61
65
|
)
|
|
62
66
|
] }),
|
|
63
|
-
|
|
64
|
-
|
|
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:
|
|
73
|
+
options: v,
|
|
70
74
|
onSelect: (e) => {
|
|
71
|
-
const
|
|
72
|
-
|
|
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
|
-
|
|
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":";;;;;;
|
|
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.
|