@bikdotai/bik-component-library 0.0.823-beta.2 → 0.0.824-beta.0

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 (172) hide show
  1. package/dist/cjs/components/adbanner/AdBanner.js.map +1 -0
  2. package/dist/cjs/components/{banner → adbanner}/Banner.styled.js +13 -9
  3. package/dist/cjs/components/adbanner/Banner.styled.js.map +1 -0
  4. package/dist/cjs/components/adbanner/BannerInline.js.map +1 -0
  5. package/dist/cjs/components/adbanner/BannerWithImage.js.map +1 -0
  6. package/dist/cjs/components/adbanner/CardBanner.js.map +1 -0
  7. package/dist/cjs/components/adbanner/CardBannerWithImage.js.map +1 -0
  8. package/dist/cjs/components/adbanner/model.js.map +1 -0
  9. package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
  10. package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +97 -66
  12. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  16. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
  18. package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +4 -4
  20. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/components/StepRail.js +1 -1
  22. package/dist/cjs/components/agent-builder/components/StepRail.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  24. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/steps/Step1About.js +1 -1
  26. package/dist/cjs/components/agent-builder/steps/Step1About.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +1 -1
  28. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  30. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  31. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
  32. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  33. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  34. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  35. package/dist/cjs/components/agent-listing/AgentListing.styled.js +32 -28
  36. package/dist/cjs/components/agent-listing/AgentListing.styled.js.map +1 -1
  37. package/dist/cjs/components/agent-listing/AgentListingHeader.js +1 -1
  38. package/dist/cjs/components/agent-listing/AgentListingHeader.js.map +1 -1
  39. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  40. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  41. package/dist/cjs/components/template-preview/models/TemplateMeta.js +1 -1
  42. package/dist/cjs/components/template-preview/models/TemplateMeta.js.map +1 -1
  43. package/dist/cjs/editor/BikEditor.js +1 -1
  44. package/dist/cjs/editor/BikEditor.js.map +1 -1
  45. package/dist/cjs/editor/BikEditor.styles.js +122 -2
  46. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  47. package/dist/cjs/editor/BikEditor.types.js.map +1 -1
  48. package/dist/cjs/editor/BikEditor.utils.js +3 -2
  49. package/dist/cjs/editor/BikEditor.utils.js.map +1 -1
  50. package/dist/cjs/editor/extensions/buildExtensions.js +3 -1
  51. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  52. package/dist/cjs/editor/extensions/jsonHighlight/JsonHighlightExtension.js +3 -0
  53. package/dist/cjs/editor/extensions/jsonHighlight/JsonHighlightExtension.js.map +1 -0
  54. package/dist/cjs/editor/extensions/jsonHighlight/tokenizeJson.js +2 -0
  55. package/dist/cjs/editor/extensions/jsonHighlight/tokenizeJson.js.map +1 -0
  56. package/dist/cjs/icons/BIK AI specific/WandSparkles.js +2 -0
  57. package/dist/cjs/icons/BIK AI specific/WandSparkles.js.map +1 -0
  58. package/dist/cjs/icons/index.js +1 -1
  59. package/dist/cjs/index.js +1 -1
  60. package/dist/esm/components/adbanner/AdBanner.js.map +1 -0
  61. package/dist/esm/components/{banner → adbanner}/Banner.styled.js +18 -14
  62. package/dist/esm/components/adbanner/Banner.styled.js.map +1 -0
  63. package/dist/esm/components/adbanner/BannerInline.js.map +1 -0
  64. package/dist/esm/components/adbanner/BannerWithImage.js.map +1 -0
  65. package/dist/esm/components/adbanner/CardBanner.js.map +1 -0
  66. package/dist/esm/components/adbanner/CardBannerWithImage.js.map +1 -0
  67. package/dist/esm/components/adbanner/model.js.map +1 -0
  68. package/dist/esm/components/agent-builder/AgentBuilder.js +82 -83
  69. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  70. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +13 -5
  71. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +141 -102
  72. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  73. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.d.ts +0 -1
  74. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js +33 -46
  75. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  76. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +135 -119
  77. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  78. package/dist/esm/components/agent-builder/components/MentionField.js +44 -45
  79. package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
  80. package/dist/esm/components/agent-builder/components/SelectableListSection.js +91 -94
  81. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  82. package/dist/esm/components/agent-builder/components/StepRail.js +28 -20
  83. package/dist/esm/components/agent-builder/components/StepRail.js.map +1 -1
  84. package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
  85. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +108 -98
  86. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  87. package/dist/esm/components/agent-builder/steps/Step1About.js +38 -35
  88. package/dist/esm/components/agent-builder/steps/Step1About.js.map +1 -1
  89. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +118 -122
  90. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  91. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +112 -110
  92. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  93. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +72 -70
  94. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  95. package/dist/esm/components/agent-listing/AgentListing.js +45 -43
  96. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  97. package/dist/esm/components/agent-listing/AgentListing.model.d.ts +7 -0
  98. package/dist/esm/components/agent-listing/AgentListing.styled.js +28 -24
  99. package/dist/esm/components/agent-listing/AgentListing.styled.js.map +1 -1
  100. package/dist/esm/components/agent-listing/AgentListingHeader.d.ts +2 -0
  101. package/dist/esm/components/agent-listing/AgentListingHeader.js +14 -12
  102. package/dist/esm/components/agent-listing/AgentListingHeader.js.map +1 -1
  103. package/dist/esm/components/agent-listing/AgentTableRow.js +102 -57
  104. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  105. package/dist/esm/components/template-preview/models/TemplateMeta.d.ts +1 -2
  106. package/dist/esm/components/template-preview/models/TemplateMeta.js +11 -11
  107. package/dist/esm/components/template-preview/models/TemplateMeta.js.map +1 -1
  108. package/dist/esm/editor/BikEditor.js +254 -181
  109. package/dist/esm/editor/BikEditor.js.map +1 -1
  110. package/dist/esm/editor/BikEditor.styles.d.ts +9 -0
  111. package/dist/esm/editor/BikEditor.styles.js +128 -6
  112. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  113. package/dist/esm/editor/BikEditor.types.d.ts +76 -0
  114. package/dist/esm/editor/BikEditor.types.js.map +1 -1
  115. package/dist/esm/editor/BikEditor.utils.d.ts +15 -1
  116. package/dist/esm/editor/BikEditor.utils.js +155 -92
  117. package/dist/esm/editor/BikEditor.utils.js.map +1 -1
  118. package/dist/esm/editor/extensions/buildExtensions.d.ts +1 -1
  119. package/dist/esm/editor/extensions/buildExtensions.js +86 -55
  120. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  121. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.d.ts +14 -0
  122. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.js +64 -0
  123. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.js.map +1 -0
  124. package/dist/esm/editor/extensions/jsonHighlight/tokenizeJson.d.ts +18 -0
  125. package/dist/esm/editor/extensions/jsonHighlight/tokenizeJson.js +21 -0
  126. package/dist/esm/editor/extensions/jsonHighlight/tokenizeJson.js.map +1 -0
  127. package/dist/esm/editor/index.d.ts +1 -1
  128. package/dist/esm/icons/BIK AI specific/WandSparkles.d.ts +7 -0
  129. package/dist/esm/icons/BIK AI specific/WandSparkles.js +39 -0
  130. package/dist/esm/icons/BIK AI specific/WandSparkles.js.map +1 -0
  131. package/dist/esm/icons/BIK AI specific/index.d.ts +1 -0
  132. package/dist/esm/icons/index.d.ts +1 -1
  133. package/dist/esm/icons/index.js +18 -16
  134. package/dist/esm/icons/index.js.map +1 -1
  135. package/dist/esm/index.d.ts +1 -1
  136. package/dist/esm/index.js +2 -2
  137. package/package.json +1 -1
  138. package/dist/cjs/components/banner/AdBanner.js.map +0 -1
  139. package/dist/cjs/components/banner/Banner.styled.js.map +0 -1
  140. package/dist/cjs/components/banner/BannerInline.js.map +0 -1
  141. package/dist/cjs/components/banner/BannerWithImage.js.map +0 -1
  142. package/dist/cjs/components/banner/CardBanner.js.map +0 -1
  143. package/dist/cjs/components/banner/CardBannerWithImage.js.map +0 -1
  144. package/dist/cjs/components/banner/model.js.map +0 -1
  145. package/dist/esm/components/banner/AdBanner.js.map +0 -1
  146. package/dist/esm/components/banner/Banner.stories.d.ts +0 -39
  147. package/dist/esm/components/banner/Banner.styled.js.map +0 -1
  148. package/dist/esm/components/banner/BannerInline.js.map +0 -1
  149. package/dist/esm/components/banner/BannerWithImage.js.map +0 -1
  150. package/dist/esm/components/banner/CardBanner.js.map +0 -1
  151. package/dist/esm/components/banner/CardBannerWithImage.js.map +0 -1
  152. package/dist/esm/components/banner/model.js.map +0 -1
  153. /package/dist/cjs/components/{banner → adbanner}/AdBanner.js +0 -0
  154. /package/dist/cjs/components/{banner → adbanner}/BannerInline.js +0 -0
  155. /package/dist/cjs/components/{banner → adbanner}/BannerWithImage.js +0 -0
  156. /package/dist/cjs/components/{banner → adbanner}/CardBanner.js +0 -0
  157. /package/dist/cjs/components/{banner → adbanner}/CardBannerWithImage.js +0 -0
  158. /package/dist/cjs/components/{banner → adbanner}/model.js +0 -0
  159. /package/dist/esm/components/{banner → adbanner}/AdBanner.d.ts +0 -0
  160. /package/dist/esm/components/{banner → adbanner}/AdBanner.js +0 -0
  161. /package/dist/esm/components/{banner → adbanner}/Banner.styled.d.ts +0 -0
  162. /package/dist/esm/components/{banner → adbanner}/BannerInline.d.ts +0 -0
  163. /package/dist/esm/components/{banner → adbanner}/BannerInline.js +0 -0
  164. /package/dist/esm/components/{banner → adbanner}/BannerWithImage.d.ts +0 -0
  165. /package/dist/esm/components/{banner → adbanner}/BannerWithImage.js +0 -0
  166. /package/dist/esm/components/{banner → adbanner}/CardBanner.d.ts +0 -0
  167. /package/dist/esm/components/{banner → adbanner}/CardBanner.js +0 -0
  168. /package/dist/esm/components/{banner → adbanner}/CardBannerWithImage.d.ts +0 -0
  169. /package/dist/esm/components/{banner → adbanner}/CardBannerWithImage.js +0 -0
  170. /package/dist/esm/components/{banner → adbanner}/index.d.ts +0 -0
  171. /package/dist/esm/components/{banner → adbanner}/model.d.ts +0 -0
  172. /package/dist/esm/components/{banner → adbanner}/model.js +0 -0
@@ -1,14 +1,14 @@
1
- import { jsxs as z, jsx as i, Fragment as K } from "react/jsx-runtime";
1
+ import { jsxs as z, jsx as i, Fragment as Q } from "react/jsx-runtime";
2
2
  import { useState as D, useCallback as n } from "react";
3
- import { TablePagination as Q } from "../TablePagination/TablePagination.js";
4
- import { ZeroState as U } from "../zeroState/ZeroState.js";
5
- import { Page as W, Body as X, EmptyHolder as Y } from "./AgentListing.styled.js";
6
- import { AgentListingFilters as _ } from "./AgentListingFilters.js";
7
- import { AgentListingHeader as ee } from "./AgentListingHeader.js";
8
- import { AgentTable as te } from "./AgentTable.js";
9
- import { DeleteAgentModal as ne } from "./DeleteAgentModal.js";
10
- import { unwrapDropdownValue as oe } from "../dropdown/utils.js";
11
- const ie = ({
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
+ import { unwrapDropdownValue as ie } from "../dropdown/utils.js";
11
+ const ae = ({
12
12
  config: L,
13
13
  onSearchChange: f,
14
14
  onSearchSubmit: r,
@@ -34,59 +34,60 @@ const ie = ({
34
34
  sortOptions: E,
35
35
  selectedSort: F,
36
36
  title: I = "AI Agents",
37
+ headerActions: O,
37
38
  pagination: o,
38
39
  emptyState: u,
39
40
  debugLog: y
40
- } = L, O = !p && w.length === 0, t = n(
41
+ } = L, k = !p && w.length === 0, t = n(
41
42
  (e, ...l) => {
42
43
  y && console.log(`[AgentListing] ${e}`, ...l);
43
44
  },
44
45
  [y]
45
- ), k = n(
46
+ ), j = n(
46
47
  (e) => {
47
48
  t("onSearchChange", e), f(e);
48
49
  },
49
50
  [t, f]
50
- ), j = n(
51
+ ), H = n(
51
52
  (e) => {
52
53
  t("onSearchSubmit", e), r?.(e);
53
54
  },
54
55
  [t, r]
55
- ), H = n(
56
+ ), V = n(
56
57
  (e) => {
57
58
  t("onFilterChange", e), g?.(e);
58
59
  },
59
60
  [t, g]
60
- ), V = n(
61
+ ), q = n(
61
62
  (e) => {
62
63
  t("onSortChange", e), d?.(e);
63
64
  },
64
65
  [t, d]
65
66
  ), P = n(() => {
66
67
  t("onNewAgent"), A();
67
- }, [t, A]), q = n(() => {
68
+ }, [t, A]), M = n(() => {
68
69
  t("onBrowseTemplates"), c?.();
69
- }, [t, c]), M = n(
70
+ }, [t, c]), Z = n(
70
71
  (e) => {
71
72
  t("onRunAgent", e.id), S(e);
72
73
  },
73
74
  [t, S]
74
- ), Z = n(
75
+ ), $ = n(
75
76
  (e) => {
76
77
  t("onEditAgent", e.id), b(e);
77
78
  },
78
79
  [t, b]
79
- ), $ = n(
80
+ ), G = n(
80
81
  (e) => {
81
82
  t("onRowClick", e.id), m?.(e);
82
83
  },
83
84
  [t, m]
84
- ), G = n(
85
+ ), J = n(
85
86
  (e) => {
86
87
  t("onDeleteAgent", e.id), h(e);
87
88
  },
88
89
  [t]
89
- ), J = n(async () => {
90
+ ), K = n(async () => {
90
91
  if (!(!a || !s)) {
91
92
  N(!0);
92
93
  try {
@@ -96,32 +97,33 @@ const ie = ({
96
97
  }
97
98
  }
98
99
  }, [a, s]);
99
- return /* @__PURE__ */ z(W, { "data-test": R["data-test"] ?? "agent-listing", children: [
100
+ return /* @__PURE__ */ z(X, { "data-test": R["data-test"] ?? "agent-listing", children: [
100
101
  /* @__PURE__ */ i(
101
- ee,
102
+ te,
102
103
  {
103
104
  title: I,
104
105
  onNewAgent: P,
105
- onBrowseTemplates: c ? q : void 0
106
+ onBrowseTemplates: c ? M : void 0,
107
+ headerActions: O
106
108
  }
107
109
  ),
108
110
  /* @__PURE__ */ i(
109
- _,
111
+ ee,
110
112
  {
111
113
  searchValue: T,
112
- onSearchChange: k,
113
- onSearchSubmit: r ? j : void 0,
114
+ onSearchChange: j,
115
+ onSearchSubmit: r ? H : void 0,
114
116
  searchPlaceholder: v,
115
117
  filterOptions: x,
116
- onFilterChange: g ? H : void 0,
118
+ onFilterChange: g ? V : void 0,
117
119
  filterPlaceholder: B,
118
120
  sortOptions: E,
119
121
  selectedSort: F,
120
- onSortChange: d ? V : void 0
122
+ onSortChange: d ? q : void 0
121
123
  }
122
124
  ),
123
- /* @__PURE__ */ i(X, { children: p || O ? /* @__PURE__ */ i(Y, { children: /* @__PURE__ */ i(
124
- U,
125
+ /* @__PURE__ */ i(Y, { children: p || k ? /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
126
+ W,
125
127
  {
126
128
  isLoading: p,
127
129
  title: u?.title ?? "No agents yet",
@@ -133,19 +135,19 @@ const ie = ({
133
135
  onClick: P
134
136
  }
135
137
  }
136
- ) }) : /* @__PURE__ */ z(K, { children: [
138
+ ) }) : /* @__PURE__ */ z(Q, { children: [
137
139
  /* @__PURE__ */ i(
138
- te,
140
+ ne,
139
141
  {
140
142
  agents: w,
141
- onRunAgent: M,
142
- onEditAgent: Z,
143
- onDeleteAgent: s ? G : void 0,
144
- onRowClick: m ? $ : void 0
143
+ onRunAgent: Z,
144
+ onEditAgent: $,
145
+ onDeleteAgent: s ? J : void 0,
146
+ onRowClick: m ? G : void 0
145
147
  }
146
148
  ),
147
149
  o && o.totalRows > 0 && /* @__PURE__ */ i(
148
- Q,
150
+ U,
149
151
  {
150
152
  pageNumber: o.pageNumber,
151
153
  pageSize: o.pageSize,
@@ -153,25 +155,25 @@ const ie = ({
153
155
  hidePageSizeOptions: o.hidePageSizeOptions,
154
156
  updatePageNumber: o.onPageChange,
155
157
  updatePageSize: (e) => {
156
- const l = Number(oe(e));
158
+ const l = Number(ie(e));
157
159
  Number.isNaN(l) || o.onPageSizeChange(l);
158
160
  }
159
161
  }
160
162
  )
161
163
  ] }) }),
162
164
  a && /* @__PURE__ */ i(
163
- ne,
165
+ oe,
164
166
  {
165
167
  agentName: a.name,
166
168
  isDeleting: C,
167
169
  onClose: () => C ? void 0 : h(null),
168
- onConfirm: J
170
+ onConfirm: K
169
171
  }
170
172
  )
171
173
  ] });
172
174
  };
173
- ie.displayName = "AgentListing";
175
+ ae.displayName = "AgentListing";
174
176
  export {
175
- ie as AgentListing
177
+ ae as AgentListing
176
178
  };
177
179
  //# sourceMappingURL=AgentListing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListing.js","sources":["../../../../src/components/agent-listing/AgentListing.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { unwrapDropdownValue } from '@src/components/dropdown';\nimport { DropdownOption } from '@src/components/dropdown/type';\nimport { TablePagination } from '@src/components/TablePagination/TablePagination';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { AgentListingProps, AgentListItem } from './AgentListing.model';\nimport { Body, EmptyHolder, Page } from './AgentListing.styled';\nimport { AgentListingFilters } from './AgentListingFilters';\nimport { AgentListingHeader } from './AgentListingHeader';\nimport { AgentTable } from './AgentTable';\nimport { 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 value = Number(unwrapDropdownValue(opt));\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\n\t\t\t{pendingDelete && (\n\t\t\t\t<DeleteAgentModal\n\t\t\t\t\tagentName={pendingDelete.name}\n\t\t\t\t\tisDeleting={isDeleting}\n\t\t\t\t\tonClose={() => (isDeleting ? undefined : setPendingDelete(null))}\n\t\t\t\t\tonConfirm={handleConfirmDelete}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onSearchSubmit","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","rest","pendingDelete","setPendingDelete","useState","isDeleting","setIsDeleting","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","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","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 { 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\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 || 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 value = Number(unwrapDropdownValue(opt));\n\t\t\t\t\t\t\t\t\tif (!Number.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\tpagination.onPageSizeChange(value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Body>\n\n\t\t\t{pendingDelete && (\n\t\t\t\t<DeleteAgentModal\n\t\t\t\t\tagentName={pendingDelete.name}\n\t\t\t\t\tisDeleting={isDeleting}\n\t\t\t\t\tonClose={() => (isDeleting ? undefined : setPendingDelete(null))}\n\t\t\t\t\tonConfirm={handleConfirmDelete}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Page>\n\t);\n};\n\nAgentListing.displayName = 'AgentListing';\n"],"names":["AgentListing","config","onSearchChange","onSearchSubmit","onFilterChange","onSortChange","onNewAgent","onBrowseTemplates","onRunAgent","onEditAgent","onDeleteAgent","onRowClick","rest","pendingDelete","setPendingDelete","useState","isDeleting","setIsDeleting","agents","isLoading","searchValue","searchPlaceholder","filterOptions","filterPlaceholder","sortOptions","selectedSort","title","headerActions","pagination","emptyState","debugLog","showEmpty","logAction","useCallback","action","args","handleSearchChange","v","handleSearchSubmit","handleFilterChange","selected","handleSortChange","handleNewAgent","handleBrowseTemplates","handleRunAgent","agent","handleEditAgent","handleRowClick","handleDeleteRequest","handleConfirmDelete","Page","jsx","AgentListingHeader","AgentListingFilters","Body","EmptyHolder","ZeroState","jsxs","Fragment","AgentTable","TablePagination","opt","value","unwrapDropdownValue","DeleteAgentModal"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { AgentListItem, AgentListSortOption } from '@bikdotai/bik-models/ai-agents';
2
2
  import { ApplicationType } from '@bikdotai/bik-models/growth';
3
+ import { ReactNode } from 'react';
3
4
  import { ButtonProps } from '../button/model';
4
5
  import { DropdownOption } from '../dropdown/type';
5
6
  /**
@@ -40,6 +41,12 @@ export interface AgentListingConfig {
40
41
  selectedSort?: string;
41
42
  /** @default "AI Agents" */
42
43
  title?: string;
44
+ /**
45
+ * Consumer-supplied node rendered at the far-right end of the header row,
46
+ * after the "New AI agent" button (e.g. a broadcast icon + user avatar).
47
+ * The library only slots it in — the consumer owns its content and clicks.
48
+ */
49
+ headerActions?: ReactNode;
43
50
  pagination?: AgentListingPagination;
44
51
  emptyState?: {
45
52
  title?: string;
@@ -1,27 +1,26 @@
1
1
  import t from "styled-components";
2
2
  import { COLORS as i } from "../../constants/Theme.js";
3
- const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.div.attrs({ className: "bik-agent-listing-page" })`
3
+ const r = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", n = t.div.attrs({ className: "bik-agent-listing-page" })`
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  height: 100%;
7
7
  width: 100%;
8
8
  background: ${i.surface.standard};
9
9
  min-height: 0;
10
- `, d = t.div.attrs({ className: "bik-header-bar" })`
10
+ `, o = t.div.attrs({ className: "bik-header-bar" })`
11
11
  display: flex;
12
12
  align-items: center;
13
13
  justify-content: space-between;
14
- height: 56px;
15
14
  padding: 12px 16px;
16
15
  border-bottom: 1px solid ${i.stroke.primary};
17
16
  flex-shrink: 0;
18
- `, o = t.div.attrs({
17
+ `, l = t.div.attrs({
19
18
  className: "bik-header-actions"
20
19
  })`
21
20
  display: flex;
22
21
  align-items: center;
23
22
  gap: 8px;
24
- `, n = t.div.attrs({ className: "bik-filter-row" })`
23
+ `, d = t.div.attrs({ className: "bik-filter-row" })`
25
24
  display: flex;
26
25
  align-items: center;
27
26
  justify-content: space-between;
@@ -42,7 +41,7 @@ const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.d
42
41
  min-height: 0;
43
42
  padding: 16px;
44
43
  gap: 8px;
45
- `, x = t.div.attrs({ className: "bik-table-card" })`
44
+ `, m = t.div.attrs({ className: "bik-table-card" })`
46
45
  display: flex;
47
46
  flex-direction: column;
48
47
  flex: 1;
@@ -50,15 +49,15 @@ const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.d
50
49
  border: 1px solid ${i.stroke.primary};
51
50
  border-radius: 8px;
52
51
  overflow: hidden;
53
- `, m = t.div.attrs({ className: "bik-table-scroll" })`
52
+ `, x = t.div.attrs({ className: "bik-table-scroll" })`
54
53
  flex: 1;
55
54
  min-height: 0;
56
55
  overflow: auto;
57
- `, g = t.div.attrs({
56
+ `, b = t.div.attrs({
58
57
  className: "bik-header-grid-row"
59
58
  })`
60
59
  display: grid;
61
- grid-template-columns: ${a};
60
+ grid-template-columns: ${r};
62
61
  align-items: center;
63
62
  height: 40px;
64
63
  background: ${i.surface.subdued};
@@ -66,7 +65,7 @@ const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.d
66
65
  position: sticky;
67
66
  top: 0;
68
67
  z-index: 1;
69
- `, b = t.div.attrs({ className: "bik-header-cell" })`
68
+ `, g = t.div.attrs({ className: "bik-header-cell" })`
70
69
  padding: 8px 12px;
71
70
  text-align: ${(e) => e.align ?? "left"};
72
71
  display: flex;
@@ -75,7 +74,7 @@ const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.d
75
74
  className: "bik-body-grid-row"
76
75
  })`
77
76
  display: grid;
78
- grid-template-columns: ${a};
77
+ grid-template-columns: ${r};
79
78
  align-items: center;
80
79
  min-height: 72px;
81
80
  border-bottom: 1px solid ${i.stroke.primary};
@@ -98,6 +97,15 @@ const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.d
98
97
  border: 1px solid ${i.stroke.primary};
99
98
  border-radius: 4px;
100
99
  overflow: hidden;
100
+
101
+ /* Divider between actions. Owned here (not on ActionButton's own
102
+ :not(:last-child)) because the run action may be wrapped in a Tooltip
103
+ trigger <span> when disabled — then the button is no longer ActionGroup's
104
+ direct child, so a button-level rule would drop its border. Any empty
105
+ <style> sibling a Tooltip renders is display:none, so it draws nothing. */
106
+ & > *:not(:last-child) {
107
+ border-right: 1px solid ${i.stroke.primary};
108
+ }
101
109
  `, y = t.button.attrs({
102
110
  className: "bik-action-button"
103
111
  })`
@@ -112,10 +120,6 @@ const a = "minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px", l = t.d
112
120
  cursor: ${(e) => e.disabled ? "not-allowed" : "pointer"};
113
121
  opacity: ${(e) => e.disabled ? 0.4 : 1};
114
122
 
115
- &:not(:last-child) {
116
- border-right: 1px solid ${i.stroke.primary};
117
- }
118
-
119
123
  &:hover {
120
124
  background: ${(e) => e.disabled ? i.surface.standard : i.surface.subdued};
121
125
  }
@@ -131,15 +135,15 @@ export {
131
135
  f as BodyGridRow,
132
136
  u as Cell,
133
137
  k as EmptyHolder,
134
- n as FilterRow,
138
+ d as FilterRow,
135
139
  c as FilterRowLeft,
136
- o as HeaderActions,
137
- d as HeaderBar,
138
- b as HeaderCell,
139
- g as HeaderGridRow,
140
- l as Page,
141
- a as TABLE_GRID_COLUMNS,
142
- x as TableCard,
143
- m as TableScroll
140
+ l as HeaderActions,
141
+ o as HeaderBar,
142
+ g as HeaderCell,
143
+ b as HeaderGridRow,
144
+ n as Page,
145
+ r as TABLE_GRID_COLUMNS,
146
+ m as TableCard,
147
+ x as TableScroll
144
148
  };
145
149
  //# sourceMappingURL=AgentListing.styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListing.styled.js","sources":["../../../../src/components/agent-listing/AgentListing.styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\n/** Shared column template for header + body rows so they always align. */\nexport const TABLE_GRID_COLUMNS =\n\t'minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px';\n\nexport const Page = styled.div.attrs({ className: 'bik-agent-listing-page' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tbackground: ${COLORS.surface.standard};\n\tmin-height: 0;\n`;\n\nexport const HeaderBar = styled.div.attrs({ className: 'bik-header-bar' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: 56px;\n\tpadding: 12px 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const HeaderActions = styled.div.attrs({\n\tclassName: 'bik-header-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const FilterRow = styled.div.attrs({ className: 'bik-filter-row' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const FilterRowLeft = styled.div.attrs({\n\tclassName: 'bik-filter-row-left',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n`;\n\nexport const Body = styled.div.attrs({ className: 'bik-body' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n\tpadding: 16px;\n\tgap: 8px;\n`;\n\nexport const TableCard = styled.div.attrs({ className: 'bik-table-card' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\toverflow: hidden;\n`;\n\nexport const TableScroll = styled.div.attrs({ className: 'bik-table-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow: auto;\n`;\n\nexport const HeaderGridRow = styled.div.attrs({\n\tclassName: 'bik-header-grid-row',\n})`\n\tdisplay: grid;\n\tgrid-template-columns: ${TABLE_GRID_COLUMNS};\n\talign-items: center;\n\theight: 40px;\n\tbackground: ${COLORS.surface.subdued};\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 1;\n`;\n\nexport const HeaderCell = styled.div.attrs({ className: 'bik-header-cell' })<{\n\talign?: 'left' | 'right' | 'center';\n}>`\n\tpadding: 8px 12px;\n\ttext-align: ${(p) => p.align ?? 'left'};\n\tdisplay: flex;\n\tjustify-content: ${(p) =>\n\t\tp.align === 'right'\n\t\t\t? 'flex-end'\n\t\t\t: p.align === 'center'\n\t\t\t? 'center'\n\t\t\t: 'flex-start'};\n`;\n\nexport const BodyGridRow = styled.div.attrs({\n\tclassName: 'bik-body-grid-row',\n})<{ clickable?: boolean }>`\n\tdisplay: grid;\n\tgrid-template-columns: ${TABLE_GRID_COLUMNS};\n\talign-items: center;\n\tmin-height: 72px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tcursor: ${(p) => (p.clickable ? 'pointer' : 'default')};\n\n\t&:hover {\n\t\tbackground: ${(p) =>\n\t\t\tp.clickable ? COLORS.surface.subdued : 'transparent'};\n\t}\n`;\n\nexport const Cell = styled.div.attrs({ className: 'bik-cell' })<{\n\talign?: 'left' | 'right' | 'center';\n}>`\n\tpadding: 8px 12px;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tjustify-content: center;\n\talign-items: ${(p) =>\n\t\tp.align === 'right'\n\t\t\t? 'flex-end'\n\t\t\t: p.align === 'center'\n\t\t\t? 'center'\n\t\t\t: 'flex-start'};\n`;\n\n/** Bordered icon-button group used in the Actions cell. */\nexport const ActionGroup = styled.div.attrs({ className: 'bik-action-group' })`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\toverflow: hidden;\n`;\n\nexport const ActionButton = styled.button.attrs({\n\tclassName: 'bik-action-button',\n})<{ disabled?: boolean }>`\n\twidth: 32px;\n\theight: 32px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: ${COLORS.surface.standard};\n\tborder: none;\n\tpadding: 0;\n\tcursor: ${(p) => (p.disabled ? 'not-allowed' : 'pointer')};\n\topacity: ${(p) => (p.disabled ? 0.4 : 1)};\n\n\t&:not(:last-child) {\n\t\tborder-right: 1px solid ${COLORS.stroke.primary};\n\t}\n\n\t&:hover {\n\t\tbackground: ${(p) =>\n\t\t\tp.disabled ? COLORS.surface.standard : COLORS.surface.subdued};\n\t}\n`;\n\nexport const EmptyHolder = styled.div.attrs({ className: 'bik-empty-holder' })`\n\tflex: 1;\n\tdisplay: flex;\n\tmin-height: 0;\n`;\n"],"names":["TABLE_GRID_COLUMNS","Page","styled","COLORS","HeaderBar","HeaderActions","FilterRow","FilterRowLeft","Body","TableCard","TableScroll","HeaderGridRow","HeaderCell","p","BodyGridRow","Cell","ActionGroup","ActionButton","EmptyHolder"],"mappings":";;AAIO,MAAMA,IACZ,+DAEYC,IAAOC,EAAO,IAAI,MAAM,EAAE,WAAW,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,eAK7DC,EAAO,QAAQ,QAAQ;AAAA;AAAA,GAIzBC,IAAYF,EAAO,IAAI,MAAM,EAAE,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAM7CC,EAAO,OAAO,OAAO;AAAA;AAAA,GAIpCE,IAAgBH,EAAO,IAAI,MAAM;AAAA,EAC7C,WAAW;AACZ,CAAC;AAAA;AAAA;AAAA;AAAA,GAMYI,IAAYJ,EAAO,IAAI,MAAM,EAAE,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAM7CC,EAAO,OAAO,OAAO;AAAA;AAAA,GAIpCI,IAAgBL,EAAO,IAAI,MAAM;AAAA,EAC7C,WAAW;AACZ,CAAC;AAAA;AAAA;AAAA;AAAA,GAMYM,IAAON,EAAO,IAAI,MAAM,EAAE,WAAW,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASjDO,IAAYP,EAAO,IAAI,MAAM,EAAE,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKpDC,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA,GAK7BO,IAAcR,EAAO,IAAI,MAAM,EAAE,WAAW,oBAAoB;AAAA;AAAA;AAAA;AAAA,GAMhES,IAAgBT,EAAO,IAAI,MAAM;AAAA,EAC7C,WAAW;AACZ,CAAC;AAAA;AAAA,0BAEyBF,CAAkB;AAAA;AAAA;AAAA,eAG7BG,EAAO,QAAQ,OAAO;AAAA,4BACTA,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,GAMpCS,IAAaV,EAAO,IAAI,MAAM,EAAE,WAAW,mBAAmB;AAAA;AAAA,eAI5D,CAACW,MAAMA,EAAE,SAAS,MAAM;AAAA;AAAA,oBAEnB,CAACA,MACnBA,EAAE,UAAU,UACT,aACAA,EAAE,UAAU,WACZ,WACA,YAAY;AAAA,GAGJC,IAAcZ,EAAO,IAAI,MAAM;AAAA,EAC3C,WAAW;AACZ,CAAC;AAAA;AAAA,0BAEyBF,CAAkB;AAAA;AAAA;AAAA,4BAGhBG,EAAO,OAAO,OAAO;AAAA,WACtC,CAACU,MAAOA,EAAE,YAAY,YAAY,SAAU;AAAA;AAAA;AAAA,gBAGvC,CAACA,MACdA,EAAE,YAAYV,EAAO,QAAQ,UAAU,aAAa;AAAA;AAAA,GAI1CY,IAAOb,EAAO,IAAI,MAAM,EAAE,WAAW,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAS9C,CAACW,MACfA,EAAE,UAAU,UACT,aACAA,EAAE,UAAU,WACZ,WACA,YAAY;AAAA,GAIJG,IAAcd,EAAO,IAAI,MAAM,EAAE,WAAW,oBAAoB;AAAA;AAAA;AAAA,qBAGxDC,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA,GAK7Bc,IAAef,EAAO,OAAO,MAAM;AAAA,EAC/C,WAAW;AACZ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMcC,EAAO,QAAQ,QAAQ;AAAA;AAAA;AAAA,WAG3B,CAACU,MAAOA,EAAE,WAAW,gBAAgB,SAAU;AAAA,YAC9C,CAACA,MAAOA,EAAE,WAAW,MAAM,CAAE;AAAA;AAAA;AAAA,4BAGbV,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,gBAIjC,CAACU,MACdA,EAAE,WAAWV,EAAO,QAAQ,WAAWA,EAAO,QAAQ,OAAO;AAAA;AAAA,GAInDe,IAAchB,EAAO,IAAI,MAAM,EAAE,WAAW,oBAAoB;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"AgentListing.styled.js","sources":["../../../../src/components/agent-listing/AgentListing.styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\n/** Shared column template for header + body rows so they always align. */\nexport const TABLE_GRID_COLUMNS =\n\t'minmax(240px, 1.4fr) minmax(200px, 1.2fr) 140px 160px 120px';\n\nexport const Page = styled.div.attrs({ className: 'bik-agent-listing-page' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\twidth: 100%;\n\tbackground: ${COLORS.surface.standard};\n\tmin-height: 0;\n`;\n\nexport const HeaderBar = styled.div.attrs({ className: 'bik-header-bar' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 12px 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const HeaderActions = styled.div.attrs({\n\tclassName: 'bik-header-actions',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n`;\n\nexport const FilterRow = styled.div.attrs({ className: 'bik-filter-row' })`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const FilterRowLeft = styled.div.attrs({\n\tclassName: 'bik-filter-row-left',\n})`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n`;\n\nexport const Body = styled.div.attrs({ className: 'bik-body' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n\tpadding: 16px;\n\tgap: 8px;\n`;\n\nexport const TableCard = styled.div.attrs({ className: 'bik-table-card' })`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tmin-height: 0;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\toverflow: hidden;\n`;\n\nexport const TableScroll = styled.div.attrs({ className: 'bik-table-scroll' })`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow: auto;\n`;\n\nexport const HeaderGridRow = styled.div.attrs({\n\tclassName: 'bik-header-grid-row',\n})`\n\tdisplay: grid;\n\tgrid-template-columns: ${TABLE_GRID_COLUMNS};\n\talign-items: center;\n\theight: 40px;\n\tbackground: ${COLORS.surface.subdued};\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 1;\n`;\n\nexport const HeaderCell = styled.div.attrs({ className: 'bik-header-cell' })<{\n\talign?: 'left' | 'right' | 'center';\n}>`\n\tpadding: 8px 12px;\n\ttext-align: ${(p) => p.align ?? 'left'};\n\tdisplay: flex;\n\tjustify-content: ${(p) =>\n\t\tp.align === 'right'\n\t\t\t? 'flex-end'\n\t\t\t: p.align === 'center'\n\t\t\t? 'center'\n\t\t\t: 'flex-start'};\n`;\n\nexport const BodyGridRow = styled.div.attrs({\n\tclassName: 'bik-body-grid-row',\n})<{ clickable?: boolean }>`\n\tdisplay: grid;\n\tgrid-template-columns: ${TABLE_GRID_COLUMNS};\n\talign-items: center;\n\tmin-height: 72px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tcursor: ${(p) => (p.clickable ? 'pointer' : 'default')};\n\n\t&:hover {\n\t\tbackground: ${(p) =>\n\t\t\tp.clickable ? COLORS.surface.subdued : 'transparent'};\n\t}\n`;\n\nexport const Cell = styled.div.attrs({ className: 'bik-cell' })<{\n\talign?: 'left' | 'right' | 'center';\n}>`\n\tpadding: 8px 12px;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tjustify-content: center;\n\talign-items: ${(p) =>\n\t\tp.align === 'right'\n\t\t\t? 'flex-end'\n\t\t\t: p.align === 'center'\n\t\t\t? 'center'\n\t\t\t: 'flex-start'};\n`;\n\n/** Bordered icon-button group used in the Actions cell. */\nexport const ActionGroup = styled.div.attrs({ className: 'bik-action-group' })`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 4px;\n\toverflow: hidden;\n\n\t/* Divider between actions. Owned here (not on ActionButton's own\n\t :not(:last-child)) because the run action may be wrapped in a Tooltip\n\t trigger <span> when disabled — then the button is no longer ActionGroup's\n\t direct child, so a button-level rule would drop its border. Any empty\n\t <style> sibling a Tooltip renders is display:none, so it draws nothing. */\n\t& > *:not(:last-child) {\n\t\tborder-right: 1px solid ${COLORS.stroke.primary};\n\t}\n`;\n\nexport const ActionButton = styled.button.attrs({\n\tclassName: 'bik-action-button',\n})<{ disabled?: boolean }>`\n\twidth: 32px;\n\theight: 32px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: ${COLORS.surface.standard};\n\tborder: none;\n\tpadding: 0;\n\tcursor: ${(p) => (p.disabled ? 'not-allowed' : 'pointer')};\n\topacity: ${(p) => (p.disabled ? 0.4 : 1)};\n\n\t&:hover {\n\t\tbackground: ${(p) =>\n\t\t\tp.disabled ? COLORS.surface.standard : COLORS.surface.subdued};\n\t}\n`;\n\nexport const EmptyHolder = styled.div.attrs({ className: 'bik-empty-holder' })`\n\tflex: 1;\n\tdisplay: flex;\n\tmin-height: 0;\n`;\n"],"names":["TABLE_GRID_COLUMNS","Page","styled","COLORS","HeaderBar","HeaderActions","FilterRow","FilterRowLeft","Body","TableCard","TableScroll","HeaderGridRow","HeaderCell","p","BodyGridRow","Cell","ActionGroup","ActionButton","EmptyHolder"],"mappings":";;AAIO,MAAMA,IACZ,+DAEYC,IAAOC,EAAO,IAAI,MAAM,EAAE,WAAW,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,eAK7DC,EAAO,QAAQ,QAAQ;AAAA;AAAA,GAIzBC,IAAYF,EAAO,IAAI,MAAM,EAAE,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,4BAK7CC,EAAO,OAAO,OAAO;AAAA;AAAA,GAIpCE,IAAgBH,EAAO,IAAI,MAAM;AAAA,EAC7C,WAAW;AACZ,CAAC;AAAA;AAAA;AAAA;AAAA,GAMYI,IAAYJ,EAAO,IAAI,MAAM,EAAE,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAM7CC,EAAO,OAAO,OAAO;AAAA;AAAA,GAIpCI,IAAgBL,EAAO,IAAI,MAAM;AAAA,EAC7C,WAAW;AACZ,CAAC;AAAA;AAAA;AAAA;AAAA,GAMYM,IAAON,EAAO,IAAI,MAAM,EAAE,WAAW,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASjDO,IAAYP,EAAO,IAAI,MAAM,EAAE,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKpDC,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA,GAK7BO,IAAcR,EAAO,IAAI,MAAM,EAAE,WAAW,oBAAoB;AAAA;AAAA;AAAA;AAAA,GAMhES,IAAgBT,EAAO,IAAI,MAAM;AAAA,EAC7C,WAAW;AACZ,CAAC;AAAA;AAAA,0BAEyBF,CAAkB;AAAA;AAAA;AAAA,eAG7BG,EAAO,QAAQ,OAAO;AAAA,4BACTA,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,GAMpCS,IAAaV,EAAO,IAAI,MAAM,EAAE,WAAW,mBAAmB;AAAA;AAAA,eAI5D,CAACW,MAAMA,EAAE,SAAS,MAAM;AAAA;AAAA,oBAEnB,CAACA,MACnBA,EAAE,UAAU,UACT,aACAA,EAAE,UAAU,WACZ,WACA,YAAY;AAAA,GAGJC,IAAcZ,EAAO,IAAI,MAAM;AAAA,EAC3C,WAAW;AACZ,CAAC;AAAA;AAAA,0BAEyBF,CAAkB;AAAA;AAAA;AAAA,4BAGhBG,EAAO,OAAO,OAAO;AAAA,WACtC,CAACU,MAAOA,EAAE,YAAY,YAAY,SAAU;AAAA;AAAA;AAAA,gBAGvC,CAACA,MACdA,EAAE,YAAYV,EAAO,QAAQ,UAAU,aAAa;AAAA;AAAA,GAI1CY,IAAOb,EAAO,IAAI,MAAM,EAAE,WAAW,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAS9C,CAACW,MACfA,EAAE,UAAU,UACT,aACAA,EAAE,UAAU,WACZ,WACA,YAAY;AAAA,GAIJG,IAAcd,EAAO,IAAI,MAAM,EAAE,WAAW,oBAAoB;AAAA;AAAA;AAAA,qBAGxDC,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAUdA,EAAO,OAAO,OAAO;AAAA;AAAA,GAIpCc,IAAef,EAAO,OAAO,MAAM;AAAA,EAC/C,WAAW;AACZ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMcC,EAAO,QAAQ,QAAQ;AAAA;AAAA;AAAA,WAG3B,CAACU,MAAOA,EAAE,WAAW,gBAAgB,SAAU;AAAA,YAC9C,CAACA,MAAOA,EAAE,WAAW,MAAM,CAAE;AAAA;AAAA;AAAA,gBAGzB,CAACA,MACdA,EAAE,WAAWV,EAAO,QAAQ,WAAWA,EAAO,QAAQ,OAAO;AAAA;AAAA,GAInDe,IAAchB,EAAO,IAAI,MAAM,EAAE,WAAW,oBAAoB;AAAA;AAAA;AAAA;AAAA;"}
@@ -3,6 +3,8 @@ interface AgentListingHeaderProps {
3
3
  title: string;
4
4
  onNewAgent: () => void;
5
5
  onBrowseTemplates?: () => void;
6
+ /** Consumer node rendered after the "New AI agent" button (e.g. broadcast + avatar). */
7
+ headerActions?: React.ReactNode;
6
8
  }
7
9
  export declare const AgentListingHeader: React.FC<AgentListingHeaderProps>;
8
10
  export {};
@@ -1,16 +1,17 @@
1
1
  import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
- import a from "../../assets/icons/plus.svg.js";
3
- import { TitleMedium as m } from "../TypographyStyle.js";
4
- import { COLORS as s } from "../../constants/Theme.js";
5
- import { HeaderBar as l, HeaderActions as p } from "./AgentListing.styled.js";
2
+ import m from "../../assets/icons/plus.svg.js";
3
+ import { TitleMedium as s } from "../TypographyStyle.js";
4
+ import { COLORS as l } from "../../constants/Theme.js";
5
+ import { HeaderBar as p, HeaderActions as c } from "./AgentListing.styled.js";
6
6
  import { Button as r } from "../button/Button.js";
7
- const x = ({
7
+ const y = ({
8
8
  title: n,
9
9
  onNewAgent: i,
10
- onBrowseTemplates: e
11
- }) => /* @__PURE__ */ o(l, { children: [
12
- /* @__PURE__ */ t(m, { color: s.content.primary, children: n }),
13
- /* @__PURE__ */ o(p, { children: [
10
+ onBrowseTemplates: e,
11
+ headerActions: a
12
+ }) => /* @__PURE__ */ o(p, { children: [
13
+ /* @__PURE__ */ t(s, { color: l.content.primary, children: n }),
14
+ /* @__PURE__ */ o(c, { children: [
14
15
  e && /* @__PURE__ */ t(
15
16
  r,
16
17
  {
@@ -28,13 +29,14 @@ const x = ({
28
29
  buttonType: "primary",
29
30
  size: "small",
30
31
  buttonText: "New AI agent",
31
- LeadingIcon: a,
32
+ LeadingIcon: m,
32
33
  onClick: i
33
34
  }
34
- )
35
+ ),
36
+ a
35
37
  ] })
36
38
  ] });
37
39
  export {
38
- x as AgentListingHeader
40
+ y as AgentListingHeader
39
41
  };
40
42
  //# sourceMappingURL=AgentListingHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentListingHeader.js","sources":["../../../../src/components/agent-listing/AgentListingHeader.tsx"],"sourcesContent":["import PlusIcon from '@src/assets/icons/plus.svg';\nimport React from 'react';\nimport { Button } from '@src/components/button';\nimport { TitleMedium } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { HeaderActions, HeaderBar } from './AgentListing.styled';\n\ninterface AgentListingHeaderProps {\n\ttitle: string;\n\tonNewAgent: () => void;\n\tonBrowseTemplates?: () => void;\n}\n\nexport const AgentListingHeader: React.FC<AgentListingHeaderProps> = ({\n\ttitle,\n\tonNewAgent,\n\tonBrowseTemplates,\n}) => (\n\t<HeaderBar>\n\t\t<TitleMedium color={COLORS.content.primary}>{title}</TitleMedium>\n\t\t<HeaderActions>\n\t\t\t{onBrowseTemplates && (\n\t\t\t\t<Button\n\t\t\t\t\tdata-test=\"agent-browse-templates\"\n\t\t\t\t\tbuttonType=\"secondary\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tbuttonText=\"Browse templates\"\n\t\t\t\t\tonClick={onBrowseTemplates}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Button\n\t\t\t\tdata-test=\"agent-new\"\n\t\t\t\tbuttonType=\"primary\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tbuttonText=\"New AI agent\"\n\t\t\t\tLeadingIcon={PlusIcon}\n\t\t\t\tonClick={onNewAgent}\n\t\t\t/>\n\t\t</HeaderActions>\n\t</HeaderBar>\n);\n"],"names":["AgentListingHeader","title","onNewAgent","onBrowseTemplates","HeaderBar","jsx","TitleMedium","COLORS","HeaderActions","Button","PlusIcon"],"mappings":";;;;;;AAaO,MAAMA,IAAwD,CAAC;AAAA,EACrE,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,mBAAAC;AACD,wBACEC,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAC,EAACC,GAAA,EAAY,OAAOC,EAAO,QAAQ,SAAU,UAAAN,GAAM;AAAA,oBAClDO,GAAA,EACC,UAAA;AAAA,IAAAL,KACA,gBAAAE;AAAA,MAACI;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,YAAW;AAAA,QACX,MAAK;AAAA,QACL,YAAW;AAAA,QACX,SAASN;AAAA,MAAA;AAAA,IAAA;AAAA,IAGX,gBAAAE;AAAA,MAACI;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,YAAW;AAAA,QACX,MAAK;AAAA,QACL,YAAW;AAAA,QACX,aAAaC;AAAAA,QACb,SAASR;AAAA,MAAA;AAAA,IAAA;AAAA,EACV,EAAA,CACD;AAAA,EAAA,CACD;"}
1
+ {"version":3,"file":"AgentListingHeader.js","sources":["../../../../src/components/agent-listing/AgentListingHeader.tsx"],"sourcesContent":["import PlusIcon from '@src/assets/icons/plus.svg';\nimport React from 'react';\nimport { Button } from '@src/components/button';\nimport { TitleMedium } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { HeaderActions, HeaderBar } from './AgentListing.styled';\n\ninterface AgentListingHeaderProps {\n\ttitle: string;\n\tonNewAgent: () => void;\n\tonBrowseTemplates?: () => void;\n\t/** Consumer node rendered after the \"New AI agent\" button (e.g. broadcast + avatar). */\n\theaderActions?: React.ReactNode;\n}\n\nexport const AgentListingHeader: React.FC<AgentListingHeaderProps> = ({\n\ttitle,\n\tonNewAgent,\n\tonBrowseTemplates,\n\theaderActions,\n}) => (\n\t<HeaderBar>\n\t\t<TitleMedium color={COLORS.content.primary}>{title}</TitleMedium>\n\t\t<HeaderActions>\n\t\t\t{onBrowseTemplates && (\n\t\t\t\t<Button\n\t\t\t\t\tdata-test=\"agent-browse-templates\"\n\t\t\t\t\tbuttonType=\"secondary\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tbuttonText=\"Browse templates\"\n\t\t\t\t\tonClick={onBrowseTemplates}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Button\n\t\t\t\tdata-test=\"agent-new\"\n\t\t\t\tbuttonType=\"primary\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tbuttonText=\"New AI agent\"\n\t\t\t\tLeadingIcon={PlusIcon}\n\t\t\t\tonClick={onNewAgent}\n\t\t\t/>\n\t\t\t{headerActions}\n\t\t</HeaderActions>\n\t</HeaderBar>\n);\n"],"names":["AgentListingHeader","title","onNewAgent","onBrowseTemplates","headerActions","HeaderBar","jsx","TitleMedium","COLORS","HeaderActions","Button","PlusIcon"],"mappings":";;;;;;AAeO,MAAMA,IAAwD,CAAC;AAAA,EACrE,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AACD,wBACEC,GAAA,EACA,UAAA;AAAA,EAAA,gBAAAC,EAACC,GAAA,EAAY,OAAOC,EAAO,QAAQ,SAAU,UAAAP,GAAM;AAAA,oBAClDQ,GAAA,EACC,UAAA;AAAA,IAAAN,KACA,gBAAAG;AAAA,MAACI;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,YAAW;AAAA,QACX,MAAK;AAAA,QACL,YAAW;AAAA,QACX,SAASP;AAAA,MAAA;AAAA,IAAA;AAAA,IAGX,gBAAAG;AAAA,MAACI;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,YAAW;AAAA,QACX,MAAK;AAAA,QACL,YAAW;AAAA,QACX,aAAaC;AAAAA,QACb,SAAST;AAAA,MAAA;AAAA,IAAA;AAAA,IAETE;AAAA,EAAA,EAAA,CACF;AAAA,EAAA,CACD;"}