@bikdotai/bik-component-library 0.0.850-beta.2 → 0.0.850-beta.4
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/ShipStation.svg.js +1 -1
- package/dist/cjs/assets/icons/ShipStation.svg.js.map +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +0 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
- package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/GoLiveModal.js +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/MentionPicker.js +32 -24
- package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
- 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/AiAgentsEmptyState.js +2 -0
- package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
- package/dist/cjs/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +17 -12
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
- package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +3 -3
- package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/assets/icons/ShipStation.svg.js +2 -2
- package/dist/esm/assets/icons/ShipStation.svg.js.map +1 -1
- package/dist/esm/assets/icons/index.d.ts +1 -0
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js +4 -5
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/esm/components/agent-builder/components/DiscardModal.js +57 -49
- package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
- package/dist/esm/components/agent-builder/components/GoLiveModal.js +26 -22
- package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionEditor.js +24 -23
- package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.js +81 -73
- package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListing.js +68 -74
- package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/esm/components/agent-listing/AiAgentsEmptyState.d.ts +22 -0
- package/dist/esm/components/agent-listing/AiAgentsEmptyState.js +22 -0
- package/dist/esm/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
- package/dist/esm/editor/BikEditor.js +70 -68
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +20 -15
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +10 -0
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/extensions/buildExtensions.d.ts +6 -0
- package/dist/esm/editor/extensions/buildExtensions.js +20 -15
- package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +20 -3
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +40 -25
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
- package/dist/esm/index.js +761 -759
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as y, jsx as i, Fragment as W } from "react/jsx-runtime";
|
|
2
2
|
import { useState as L, useCallback as n } from "react";
|
|
3
|
-
import { TablePagination as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { TablePagination as X } from "../TablePagination/TablePagination.js";
|
|
4
|
+
import { Page as Y, Body as Z, EmptyHolder as _ } from "./AgentListing.styled.js";
|
|
5
|
+
import { AgentListingFilters as ee } from "./AgentListingFilters.js";
|
|
6
|
+
import { AgentListingHeader as te } from "./AgentListingHeader.js";
|
|
7
|
+
import { AgentTable as ne } from "./AgentTable.js";
|
|
8
|
+
import { AgentTableShimmer as oe } from "./AgentTableShimmer.js";
|
|
9
|
+
import { AiAgentsEmptyState as ie } from "./AiAgentsEmptyState.js";
|
|
10
10
|
import { DeleteAgentModal as ae } from "./DeleteAgentModal.js";
|
|
11
11
|
import { unwrapDropdownValue as re } from "../dropdown/utils.js";
|
|
12
12
|
const se = ({
|
|
13
|
-
config:
|
|
14
|
-
onSearchChange:
|
|
13
|
+
config: z,
|
|
14
|
+
onSearchChange: p,
|
|
15
15
|
onSearchSubmit: l,
|
|
16
16
|
onFilterChange: g,
|
|
17
17
|
onSortChange: d,
|
|
18
|
-
onNewAgent:
|
|
18
|
+
onNewAgent: u,
|
|
19
19
|
onBrowseTemplates: m,
|
|
20
|
-
onRunAgent:
|
|
21
|
-
onEditAgent:
|
|
20
|
+
onRunAgent: f,
|
|
21
|
+
onEditAgent: A,
|
|
22
22
|
onDeleteAgent: r,
|
|
23
23
|
onRowClick: c,
|
|
24
24
|
...D
|
|
25
25
|
}) => {
|
|
26
26
|
const [a, h] = L(
|
|
27
27
|
null
|
|
28
|
-
), [
|
|
29
|
-
agents:
|
|
28
|
+
), [S, w] = L(!1), {
|
|
29
|
+
agents: C,
|
|
30
30
|
isLoading: N,
|
|
31
31
|
triggerCountsLoading: R,
|
|
32
32
|
searchValue: v,
|
|
33
|
-
searchPlaceholder:
|
|
34
|
-
filterOptions:
|
|
35
|
-
filterPlaceholder:
|
|
36
|
-
sortOptions:
|
|
37
|
-
selectedSort:
|
|
38
|
-
title:
|
|
33
|
+
searchPlaceholder: E = "Search",
|
|
34
|
+
filterOptions: F,
|
|
35
|
+
filterPlaceholder: O = "Filters",
|
|
36
|
+
sortOptions: T,
|
|
37
|
+
selectedSort: x,
|
|
38
|
+
title: j = "AI Agents",
|
|
39
39
|
headerActions: k,
|
|
40
40
|
pagination: o,
|
|
41
|
-
emptyState:
|
|
42
|
-
debugLog:
|
|
43
|
-
} =
|
|
41
|
+
emptyState: B,
|
|
42
|
+
debugLog: b
|
|
43
|
+
} = z, H = !N && C.length === 0, t = n(
|
|
44
44
|
(e, ...s) => {
|
|
45
|
-
|
|
45
|
+
b && console.log(`[AgentListing] ${e}`, ...s);
|
|
46
46
|
},
|
|
47
|
-
[
|
|
48
|
-
),
|
|
47
|
+
[b]
|
|
48
|
+
), I = n(
|
|
49
49
|
(e) => {
|
|
50
|
-
t("onSearchChange", e),
|
|
50
|
+
t("onSearchChange", e), p(e);
|
|
51
51
|
},
|
|
52
|
-
[t,
|
|
52
|
+
[t, p]
|
|
53
53
|
), M = n(
|
|
54
54
|
(e) => {
|
|
55
55
|
t("onSearchSubmit", e), l?.(e);
|
|
@@ -66,90 +66,84 @@ const se = ({
|
|
|
66
66
|
},
|
|
67
67
|
[t, d]
|
|
68
68
|
), P = n(() => {
|
|
69
|
-
t("onNewAgent"),
|
|
70
|
-
}, [t,
|
|
69
|
+
t("onNewAgent"), u();
|
|
70
|
+
}, [t, u]), $ = n(() => {
|
|
71
71
|
t("onBrowseTemplates"), m?.();
|
|
72
|
-
}, [t, m]),
|
|
72
|
+
}, [t, m]), G = n(
|
|
73
73
|
(e) => {
|
|
74
|
-
t("onRunAgent", e.id),
|
|
74
|
+
t("onRunAgent", e.id), f(e);
|
|
75
75
|
},
|
|
76
|
-
[t,
|
|
77
|
-
),
|
|
76
|
+
[t, f]
|
|
77
|
+
), J = n(
|
|
78
78
|
(e) => {
|
|
79
|
-
t("onEditAgent", e.id),
|
|
79
|
+
t("onEditAgent", e.id), A(e);
|
|
80
80
|
},
|
|
81
|
-
[t,
|
|
82
|
-
),
|
|
81
|
+
[t, A]
|
|
82
|
+
), K = n(
|
|
83
83
|
(e) => {
|
|
84
84
|
t("onRowClick", e.id), c?.(e);
|
|
85
85
|
},
|
|
86
86
|
[t, c]
|
|
87
|
-
),
|
|
87
|
+
), Q = n(
|
|
88
88
|
(e) => {
|
|
89
89
|
t("onDeleteAgent", e.id), h(e);
|
|
90
90
|
},
|
|
91
91
|
[t]
|
|
92
|
-
),
|
|
92
|
+
), U = n(async () => {
|
|
93
93
|
if (!(!a || !r)) {
|
|
94
|
-
|
|
94
|
+
w(!0);
|
|
95
95
|
try {
|
|
96
96
|
await r(a), h(null);
|
|
97
97
|
} finally {
|
|
98
|
-
|
|
98
|
+
w(!1);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}, [a, r]);
|
|
102
|
-
return /* @__PURE__ */
|
|
102
|
+
return /* @__PURE__ */ y(Y, { "data-test": D["data-test"] ?? "agent-listing", children: [
|
|
103
103
|
/* @__PURE__ */ i(
|
|
104
|
-
|
|
104
|
+
te,
|
|
105
105
|
{
|
|
106
|
-
title:
|
|
106
|
+
title: j,
|
|
107
107
|
onNewAgent: P,
|
|
108
|
-
onBrowseTemplates: m ?
|
|
108
|
+
onBrowseTemplates: m ? $ : void 0,
|
|
109
109
|
headerActions: k
|
|
110
110
|
}
|
|
111
111
|
),
|
|
112
112
|
/* @__PURE__ */ i(
|
|
113
|
-
|
|
113
|
+
ee,
|
|
114
114
|
{
|
|
115
115
|
searchValue: v,
|
|
116
|
-
onSearchChange:
|
|
116
|
+
onSearchChange: I,
|
|
117
117
|
onSearchSubmit: l ? M : void 0,
|
|
118
|
-
searchPlaceholder:
|
|
119
|
-
filterOptions:
|
|
118
|
+
searchPlaceholder: E,
|
|
119
|
+
filterOptions: F,
|
|
120
120
|
onFilterChange: g ? V : void 0,
|
|
121
|
-
filterPlaceholder:
|
|
122
|
-
sortOptions:
|
|
123
|
-
selectedSort:
|
|
121
|
+
filterPlaceholder: O,
|
|
122
|
+
sortOptions: T,
|
|
123
|
+
selectedSort: x,
|
|
124
124
|
onSortChange: d ? q : void 0
|
|
125
125
|
}
|
|
126
126
|
),
|
|
127
|
-
/* @__PURE__ */ i(
|
|
128
|
-
|
|
127
|
+
/* @__PURE__ */ i(Z, { children: N ? /* @__PURE__ */ i(oe, { rows: Math.min(o?.pageSize ?? 5, 10) }) : H ? /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
|
|
128
|
+
ie,
|
|
129
129
|
{
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
actionButton: p?.actionButton ?? {
|
|
133
|
-
buttonText: "New AI agent",
|
|
134
|
-
buttonType: "primary",
|
|
135
|
-
size: "small",
|
|
136
|
-
onClick: P
|
|
137
|
-
}
|
|
130
|
+
emptyState: B,
|
|
131
|
+
onNewAgent: P
|
|
138
132
|
}
|
|
139
|
-
) }) : /* @__PURE__ */
|
|
133
|
+
) }) : /* @__PURE__ */ y(W, { children: [
|
|
140
134
|
/* @__PURE__ */ i(
|
|
141
|
-
|
|
135
|
+
ne,
|
|
142
136
|
{
|
|
143
|
-
agents:
|
|
137
|
+
agents: C,
|
|
144
138
|
triggerCountsLoading: R,
|
|
145
|
-
onRunAgent:
|
|
146
|
-
onEditAgent:
|
|
147
|
-
onDeleteAgent: r ?
|
|
148
|
-
onRowClick: c ?
|
|
139
|
+
onRunAgent: G,
|
|
140
|
+
onEditAgent: J,
|
|
141
|
+
onDeleteAgent: r ? Q : void 0,
|
|
142
|
+
onRowClick: c ? K : void 0
|
|
149
143
|
}
|
|
150
144
|
),
|
|
151
145
|
o && o.totalRows > 0 && /* @__PURE__ */ i(
|
|
152
|
-
|
|
146
|
+
X,
|
|
153
147
|
{
|
|
154
148
|
pageNumber: o.pageNumber,
|
|
155
149
|
pageSize: o.pageSize,
|
|
@@ -167,9 +161,9 @@ const se = ({
|
|
|
167
161
|
ae,
|
|
168
162
|
{
|
|
169
163
|
agentName: a.name,
|
|
170
|
-
isDeleting:
|
|
171
|
-
onClose: () =>
|
|
172
|
-
onConfirm:
|
|
164
|
+
isDeleting: S,
|
|
165
|
+
onClose: () => S ? void 0 : h(null),
|
|
166
|
+
onConfirm: U
|
|
173
167
|
}
|
|
174
168
|
)
|
|
175
169
|
] });
|
|
@@ -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\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<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\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","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":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ButtonProps } from '../button/model';
|
|
3
|
+
export interface AiAgentsEmptyStateProps {
|
|
4
|
+
/**
|
|
5
|
+
* Overrides for the default copy / CTA — e.g. the search-miss variant passes
|
|
6
|
+
* "No results found …". Any omitted field falls back to the "no agents yet"
|
|
7
|
+
* defaults below.
|
|
8
|
+
*/
|
|
9
|
+
emptyState?: {
|
|
10
|
+
title?: string;
|
|
11
|
+
subTitle?: string;
|
|
12
|
+
actionButton?: ButtonProps;
|
|
13
|
+
};
|
|
14
|
+
/** Runs the default "New AI agent" CTA when no override button is supplied. */
|
|
15
|
+
onNewAgent: () => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Zero state for the AI Agents listing — shown when there are no agents yet or a
|
|
19
|
+
* search returns no hits. Renders the shared {@link ZeroState} with AI-agents
|
|
20
|
+
* defaults; a consumer-supplied `emptyState` overrides any of the copy / CTA.
|
|
21
|
+
*/
|
|
22
|
+
export declare const AiAgentsEmptyState: React.FC<AiAgentsEmptyStateProps>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { ZeroState as i } from "../zeroState/ZeroState.js";
|
|
3
|
+
const a = ({
|
|
4
|
+
emptyState: t,
|
|
5
|
+
onNewAgent: o
|
|
6
|
+
}) => /* @__PURE__ */ e(
|
|
7
|
+
i,
|
|
8
|
+
{
|
|
9
|
+
title: t?.title ?? "No agents yet",
|
|
10
|
+
subTitle: t?.subTitle ?? "Create your first AI agent to start automating conversations.",
|
|
11
|
+
actionButton: t?.actionButton ?? {
|
|
12
|
+
buttonText: "New AI agent",
|
|
13
|
+
buttonType: "primary",
|
|
14
|
+
size: "small",
|
|
15
|
+
onClick: o
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
export {
|
|
20
|
+
a as AiAgentsEmptyState
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=AiAgentsEmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiAgentsEmptyState.js","sources":["../../../../src/components/agent-listing/AiAgentsEmptyState.tsx"],"sourcesContent":["import React from 'react';\nimport { ButtonProps } from '@src/components/button/model';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\n\nexport interface AiAgentsEmptyStateProps {\n\t/**\n\t * Overrides for the default copy / CTA — e.g. the search-miss variant passes\n\t * \"No results found …\". Any omitted field falls back to the \"no agents yet\"\n\t * defaults below.\n\t */\n\temptyState?: {\n\t\ttitle?: string;\n\t\tsubTitle?: string;\n\t\tactionButton?: ButtonProps;\n\t};\n\t/** Runs the default \"New AI agent\" CTA when no override button is supplied. */\n\tonNewAgent: () => void;\n}\n\n/**\n * Zero state for the AI Agents listing — shown when there are no agents yet or a\n * search returns no hits. Renders the shared {@link ZeroState} with AI-agents\n * defaults; a consumer-supplied `emptyState` overrides any of the copy / CTA.\n */\nexport const AiAgentsEmptyState: React.FC<AiAgentsEmptyStateProps> = ({\n\temptyState,\n\tonNewAgent,\n}) => (\n\t<ZeroState\n\t\ttitle={emptyState?.title ?? 'No agents yet'}\n\t\tsubTitle={\n\t\t\temptyState?.subTitle ??\n\t\t\t'Create your first AI agent to start automating conversations.'\n\t\t}\n\t\tactionButton={\n\t\t\temptyState?.actionButton ?? {\n\t\t\t\tbuttonText: 'New AI agent',\n\t\t\t\tbuttonType: 'primary',\n\t\t\t\tsize: 'small',\n\t\t\t\tonClick: onNewAgent,\n\t\t\t}\n\t\t}\n\t/>\n);\n"],"names":["AiAgentsEmptyState","emptyState","onNewAgent","jsx","ZeroState"],"mappings":";;AAwBO,MAAMA,IAAwD,CAAC;AAAA,EACrE,YAAAC;AAAA,EACA,YAAAC;AACD,MACC,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACA,OAAOH,GAAY,SAAS;AAAA,IAC5B,UACCA,GAAY,YACZ;AAAA,IAED,cACCA,GAAY,gBAAgB;AAAA,MAC3B,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,SAASC;AAAA,IAAA;AAAA,EACV;AAEF;"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { jsxs as u, jsx as d } from "react/jsx-runtime";
|
|
2
|
-
import { getMarkRange as
|
|
3
|
-
import { useEditor as
|
|
4
|
-
import { forwardRef as
|
|
2
|
+
import { getMarkRange as vt } from "../node_modules/@tiptap/core/dist/index.js";
|
|
3
|
+
import { useEditor as bt, EditorContent as X } from "@tiptap/react";
|
|
4
|
+
import { forwardRef as Et, useState as A, useRef as a, useEffect as At, useImperativeHandle as Tt } from "react";
|
|
5
5
|
import { BodyCaption as Y } from "../components/TypographyStyle.js";
|
|
6
|
-
import { BikEditorShell as
|
|
6
|
+
import { BikEditorShell as It, BikJsonHeader as Rt, BikJsonBody as Jt, BikJsonEmptyState as Lt, BikJsonError as Mt } from "./BikEditor.styles.js";
|
|
7
7
|
import { DEFAULT_FORMAT_STATE as tt } from "./BikEditor.types.js";
|
|
8
|
-
import { buildJsonCodeBlockHtml as
|
|
9
|
-
import { buildExtensions as
|
|
10
|
-
import { LinkBubbleMenu as
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
function
|
|
8
|
+
import { buildJsonCodeBlockHtml as Ot, buildSectionedContent as et, normalizeHtml as s, extractActiveFormats as nt, extractContent as ot, getCodeBlockText as g, parseJson as p, extractBodyContent as Ft, extractSectionContent as zt, setCodeBlockText as x, findSectionEndPos as rt, findSectionStartPos as Nt, setSectionContentInEditor as T, insertInlineHtml as jt } from "./BikEditor.utils.js";
|
|
9
|
+
import { buildExtensions as Ht } from "./extensions/buildExtensions.js";
|
|
10
|
+
import { LinkBubbleMenu as wt } from "./floating/LinkBubbleMenu.js";
|
|
11
|
+
import Pt from "../icons/BIK AI specific/WandSparkles.js";
|
|
12
|
+
import Dt from "../icons/Actions/Formatting/Copy.js";
|
|
13
|
+
import qt from "../icons/Actions/Common actions/Code.js";
|
|
14
|
+
import Ut from "../icons/Informational/General/Info.js";
|
|
15
|
+
function $t(k) {
|
|
16
16
|
return Object.entries(k).map(
|
|
17
17
|
([v, C]) => `${v.replace(/([A-Z])/g, (y) => `-${y.toLowerCase()}`)}:${C}`
|
|
18
18
|
).join(";");
|
|
19
19
|
}
|
|
20
|
-
const
|
|
20
|
+
const Wt = (k, v) => {
|
|
21
21
|
const {
|
|
22
22
|
initialContent: C,
|
|
23
23
|
sections: y,
|
|
@@ -25,28 +25,29 @@ const $t = (k, v) => {
|
|
|
25
25
|
disabled: it,
|
|
26
26
|
maxCharacters: I,
|
|
27
27
|
characterLimit: st,
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
characterLimitHard: ct,
|
|
29
|
+
shortcuts: at,
|
|
30
|
+
sendShortcut: lt,
|
|
30
31
|
mentions: l,
|
|
31
32
|
slashCommands: S,
|
|
32
|
-
link:
|
|
33
|
-
onPaste:
|
|
33
|
+
link: dt,
|
|
34
|
+
onPaste: ut,
|
|
34
35
|
onReady: R,
|
|
35
36
|
onChange: J,
|
|
36
37
|
onSend: b,
|
|
37
|
-
onFocus:
|
|
38
|
-
onBlur:
|
|
38
|
+
onFocus: L,
|
|
39
|
+
onBlur: M,
|
|
39
40
|
onSelectionChange: O,
|
|
40
|
-
minHeight:
|
|
41
|
-
maxHeight:
|
|
42
|
-
style:
|
|
43
|
-
className:
|
|
41
|
+
minHeight: mt,
|
|
42
|
+
maxHeight: ft,
|
|
43
|
+
style: gt,
|
|
44
|
+
className: ht,
|
|
44
45
|
editorClassName: F,
|
|
45
46
|
editorStyle: z,
|
|
46
47
|
renderJsonError: N
|
|
47
|
-
} = k, m = !!B?.jsonMode, [f, j] = A(null), [
|
|
48
|
+
} = k, m = !!B?.jsonMode, [f, j] = A(null), [pt, H] = A(!1), [Ct, w] = A(
|
|
48
49
|
m && !(C ?? "").trim()
|
|
49
|
-
),
|
|
50
|
+
), St = m ? Ot(C ?? "") : y?.length ? et(
|
|
50
51
|
s(C ?? ""),
|
|
51
52
|
y.map((t) => ({ ...t, content: s(t.content) }))
|
|
52
53
|
) : s(C ?? ""), E = a([]), P = a(!1), D = a(R);
|
|
@@ -55,10 +56,10 @@ const $t = (k, v) => {
|
|
|
55
56
|
q.current = J;
|
|
56
57
|
const U = a(O);
|
|
57
58
|
U.current = O;
|
|
58
|
-
const $ = a(tt), W = a(
|
|
59
|
-
W.current =
|
|
60
|
-
const V = a(
|
|
61
|
-
V.current =
|
|
59
|
+
const $ = a(tt), W = a(L);
|
|
60
|
+
W.current = L;
|
|
61
|
+
const V = a(M);
|
|
62
|
+
V.current = M;
|
|
62
63
|
const _ = a(b);
|
|
63
64
|
_.current = b;
|
|
64
65
|
const Q = a(l?.agents ?? []);
|
|
@@ -67,22 +68,23 @@ const $t = (k, v) => {
|
|
|
67
68
|
Z.current = l?.teams ?? [];
|
|
68
69
|
const G = a(S?.items ?? []);
|
|
69
70
|
G.current = S?.items ?? [];
|
|
70
|
-
const n =
|
|
71
|
-
extensions:
|
|
71
|
+
const n = bt({
|
|
72
|
+
extensions: Ht({
|
|
72
73
|
features: B,
|
|
73
74
|
placeholder: k.placeholder,
|
|
74
75
|
maxCharacters: I,
|
|
75
76
|
characterLimit: st,
|
|
77
|
+
characterLimitHard: ct,
|
|
76
78
|
hasSections: (y?.length ?? 0) > 0,
|
|
77
79
|
mentions: {
|
|
78
80
|
agents: l ? Q : void 0,
|
|
79
81
|
teams: l ? Z : void 0
|
|
80
82
|
},
|
|
81
83
|
slashCommands: S ? G : void 0,
|
|
82
|
-
onPaste:
|
|
84
|
+
onPaste: ut,
|
|
83
85
|
onSend: b ? (t) => _.current?.(t) : void 0,
|
|
84
|
-
sendShortcut:
|
|
85
|
-
shortcuts:
|
|
86
|
+
sendShortcut: lt,
|
|
87
|
+
shortcuts: at,
|
|
86
88
|
onMentionSelected: l?.onSelect,
|
|
87
89
|
onSlashCommandSelected: S?.onSelect,
|
|
88
90
|
renderMentionItem: l?.renderItem,
|
|
@@ -92,14 +94,14 @@ const $t = (k, v) => {
|
|
|
92
94
|
renderSlashCommandItem: S?.renderItem,
|
|
93
95
|
renderSlashCommandDropdown: S?.renderDropdown
|
|
94
96
|
}),
|
|
95
|
-
content:
|
|
97
|
+
content: St,
|
|
96
98
|
editable: !it,
|
|
97
99
|
immediatelyRender: !1,
|
|
98
100
|
// SSR-safe — NEVER remove this
|
|
99
101
|
editorProps: {
|
|
100
102
|
attributes: {
|
|
101
103
|
...F ? { class: F } : {},
|
|
102
|
-
...z ? { style:
|
|
104
|
+
...z ? { style: $t(z) } : {}
|
|
103
105
|
}
|
|
104
106
|
},
|
|
105
107
|
onUpdate: ({ editor: t }) => {
|
|
@@ -118,12 +120,12 @@ const $t = (k, v) => {
|
|
|
118
120
|
function i(t) {
|
|
119
121
|
n ? t(n) : E.current.push(t);
|
|
120
122
|
}
|
|
121
|
-
|
|
123
|
+
At(() => {
|
|
122
124
|
if (n && (E.current.length > 0 && E.current.splice(0).forEach((e) => e(n)), P.current || (P.current = !0, D.current?.()), m)) {
|
|
123
125
|
const t = g(n), e = p(t);
|
|
124
126
|
j(e.valid ? null : e), w(!t.trim());
|
|
125
127
|
}
|
|
126
|
-
}, [n, m]),
|
|
128
|
+
}, [n, m]), Tt(
|
|
127
129
|
v,
|
|
128
130
|
() => ({
|
|
129
131
|
// ── Focus ────────────────────────────────────────────────────────
|
|
@@ -140,7 +142,7 @@ const $t = (k, v) => {
|
|
|
140
142
|
i((o) => o.commands.insertContent(e));
|
|
141
143
|
},
|
|
142
144
|
insertInlineContent: (t) => {
|
|
143
|
-
i((e) =>
|
|
145
|
+
i((e) => jt(e, t));
|
|
144
146
|
},
|
|
145
147
|
insertAtStart: (t) => {
|
|
146
148
|
const e = s(t);
|
|
@@ -190,7 +192,7 @@ const $t = (k, v) => {
|
|
|
190
192
|
return t.doc.textBetween(e, o, " ");
|
|
191
193
|
const c = t.schema.marks.link;
|
|
192
194
|
if (c) {
|
|
193
|
-
const h =
|
|
195
|
+
const h = vt(t.doc.resolve(e), c);
|
|
194
196
|
if (h)
|
|
195
197
|
return t.doc.textBetween(h.from, h.to, " ");
|
|
196
198
|
}
|
|
@@ -202,7 +204,7 @@ const $t = (k, v) => {
|
|
|
202
204
|
limit: I ?? null
|
|
203
205
|
}),
|
|
204
206
|
// ── Sections ─────────────────────────────────────────────────────
|
|
205
|
-
getSectionContent: (t) => n ?
|
|
207
|
+
getSectionContent: (t) => n ? zt(n, t) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
|
|
206
208
|
setSectionContent: (t, e) => {
|
|
207
209
|
const o = s(e);
|
|
208
210
|
i((r) => T(r, t, o));
|
|
@@ -225,7 +227,7 @@ const $t = (k, v) => {
|
|
|
225
227
|
i((e) => T(e, t, "<p></p>"));
|
|
226
228
|
},
|
|
227
229
|
// ── Convenience body shorthands ───────────────────────────────────
|
|
228
|
-
getBodyContent: () => n ?
|
|
230
|
+
getBodyContent: () => n ? Ft(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
|
|
229
231
|
setBodyContent: (t) => {
|
|
230
232
|
const e = s(t);
|
|
231
233
|
i((o) => T(o, "body", e));
|
|
@@ -252,7 +254,7 @@ const $t = (k, v) => {
|
|
|
252
254
|
insertAtSectionStart: (t, e) => {
|
|
253
255
|
const o = s(e);
|
|
254
256
|
i((r) => {
|
|
255
|
-
const c =
|
|
257
|
+
const c = Nt(r, t);
|
|
256
258
|
c !== -1 && r.commands.insertContentAt(c, o, {
|
|
257
259
|
parseOptions: { preserveWhitespace: !0 }
|
|
258
260
|
});
|
|
@@ -289,10 +291,10 @@ const $t = (k, v) => {
|
|
|
289
291
|
n && (e !== void 0 ? n.chain().focus().extendMarkRange("link").command(({ tr: o, state: r }) => {
|
|
290
292
|
const { from: c, to: h } = o.selection, K = r.schema.marks.link;
|
|
291
293
|
if (!K) return !1;
|
|
292
|
-
const
|
|
294
|
+
const Bt = r.schema.text(e, [
|
|
293
295
|
K.create({ href: t })
|
|
294
|
-
]),
|
|
295
|
-
return o.replaceWith(c, h, [
|
|
296
|
+
]), xt = r.schema.text(" ");
|
|
297
|
+
return o.replaceWith(c, h, [Bt, xt]), !0;
|
|
296
298
|
}).run() : n.chain().focus().extendMarkRange("link").setLink({ href: t }).insertContent(" ").run());
|
|
297
299
|
},
|
|
298
300
|
updateLink: (t) => n?.chain().focus().extendMarkRange("link").setLink({ href: t }).run(),
|
|
@@ -327,55 +329,55 @@ const $t = (k, v) => {
|
|
|
327
329
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
328
330
|
[n]
|
|
329
331
|
);
|
|
330
|
-
const
|
|
332
|
+
const kt = () => {
|
|
331
333
|
if (!n) return;
|
|
332
334
|
const { valid: t, value: e } = p(g(n));
|
|
333
335
|
!t || e === null || x(n, JSON.stringify(e, null, 2));
|
|
334
|
-
},
|
|
336
|
+
}, yt = () => {
|
|
335
337
|
n && (navigator.clipboard?.writeText(g(n)), H(!0), setTimeout(() => H(!1), 1500));
|
|
336
338
|
};
|
|
337
339
|
return n ? /* @__PURE__ */ u(
|
|
338
|
-
|
|
340
|
+
It,
|
|
339
341
|
{
|
|
340
|
-
minHeight:
|
|
341
|
-
maxHeight:
|
|
342
|
+
minHeight: mt,
|
|
343
|
+
maxHeight: ft,
|
|
342
344
|
tightParagraphs: !B?.richPaste,
|
|
343
345
|
jsonMode: m,
|
|
344
|
-
style:
|
|
345
|
-
className:
|
|
346
|
+
style: gt,
|
|
347
|
+
className: ht,
|
|
346
348
|
children: [
|
|
347
|
-
m && /* @__PURE__ */ u(
|
|
349
|
+
m && /* @__PURE__ */ u(Rt, { children: [
|
|
348
350
|
/* @__PURE__ */ d("span", { className: "bik-json-header-label", children: "JSON" }),
|
|
349
351
|
/* @__PURE__ */ u("div", { className: "bik-json-header-actions", children: [
|
|
350
352
|
/* @__PURE__ */ u(
|
|
351
353
|
"button",
|
|
352
354
|
{
|
|
353
355
|
type: "button",
|
|
354
|
-
onClick:
|
|
356
|
+
onClick: kt,
|
|
355
357
|
disabled: !!f,
|
|
356
358
|
title: "Format JSON",
|
|
357
359
|
children: [
|
|
358
|
-
/* @__PURE__ */ d(
|
|
360
|
+
/* @__PURE__ */ d(Pt, { size: 16 }),
|
|
359
361
|
/* @__PURE__ */ d(Y, { children: "Beautify" })
|
|
360
362
|
]
|
|
361
363
|
}
|
|
362
364
|
),
|
|
363
|
-
/* @__PURE__ */ u("button", { type: "button", onClick:
|
|
364
|
-
/* @__PURE__ */ d(
|
|
365
|
-
|
|
365
|
+
/* @__PURE__ */ u("button", { type: "button", onClick: yt, title: "Copy JSON", children: [
|
|
366
|
+
/* @__PURE__ */ d(Dt, { size: 16 }),
|
|
367
|
+
pt && /* @__PURE__ */ d(Y, { children: "Copied" })
|
|
366
368
|
] })
|
|
367
369
|
] })
|
|
368
370
|
] }),
|
|
369
|
-
m ? /* @__PURE__ */ u(
|
|
371
|
+
m ? /* @__PURE__ */ u(Jt, { $error: !!f, children: [
|
|
370
372
|
/* @__PURE__ */ d(X, { editor: n }),
|
|
371
|
-
|
|
372
|
-
/* @__PURE__ */ d(
|
|
373
|
+
Ct && /* @__PURE__ */ u(Lt, { "aria-hidden": !0, children: [
|
|
374
|
+
/* @__PURE__ */ d(qt, { size: 20 }),
|
|
373
375
|
/* @__PURE__ */ d("span", { children: k.placeholder ?? "Type or paste JSON here" })
|
|
374
376
|
] })
|
|
375
377
|
] }) : /* @__PURE__ */ d(X, { editor: n }),
|
|
376
|
-
/* @__PURE__ */ d(
|
|
378
|
+
/* @__PURE__ */ d(wt, { editor: n, renderLinkTooltip: dt?.renderTooltip }),
|
|
377
379
|
m && f ? N ? N(f) : /* @__PURE__ */ u(Mt, { children: [
|
|
378
|
-
/* @__PURE__ */ d(
|
|
380
|
+
/* @__PURE__ */ d(Ut, { size: 16 }),
|
|
379
381
|
/* @__PURE__ */ u("span", { children: [
|
|
380
382
|
f.line != null && /* @__PURE__ */ u("strong", { children: [
|
|
381
383
|
"Line ",
|
|
@@ -390,11 +392,11 @@ const $t = (k, v) => {
|
|
|
390
392
|
]
|
|
391
393
|
}
|
|
392
394
|
) : null;
|
|
393
|
-
},
|
|
394
|
-
|
|
395
|
+
}, Vt = Et(
|
|
396
|
+
Wt
|
|
395
397
|
);
|
|
396
|
-
|
|
398
|
+
Vt.displayName = "BikEditor";
|
|
397
399
|
export {
|
|
398
|
-
|
|
400
|
+
Vt as BikEditor
|
|
399
401
|
};
|
|
400
402
|
//# sourceMappingURL=BikEditor.js.map
|