@epam/ai-dial-catalog 1.1.0-dev.45 → 1.1.0-dev.459

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 (212) hide show
  1. package/components/AppIdentity/AppIdentity.d.ts +9 -14
  2. package/components/AppIdentity/AppIdentity.d.ts.map +1 -1
  3. package/components/CardGrid/Card.d.ts.map +1 -1
  4. package/components/CardGrid/CardGrid.d.ts.map +1 -1
  5. package/components/CardGrid/CardRowRenderer.d.ts.map +1 -1
  6. package/components/CardTag/CardTag.d.ts +24 -0
  7. package/components/CardTag/CardTag.d.ts.map +1 -0
  8. package/components/Catalog/Catalog.d.ts +1 -5
  9. package/components/Catalog/Catalog.d.ts.map +1 -1
  10. package/components/Catalog/CreateButton.d.ts +2 -2
  11. package/components/Catalog/CreateButton.d.ts.map +1 -1
  12. package/components/CredentialsBadge/CredentialsBadge.d.ts +12 -5
  13. package/components/CredentialsBadge/CredentialsBadge.d.ts.map +1 -1
  14. package/components/Details/ApiDetails.d.ts +6 -2
  15. package/components/Details/ApiDetails.d.ts.map +1 -1
  16. package/components/Details/ConfirmationView/ConfirmationFooter.d.ts +29 -0
  17. package/components/Details/ConfirmationView/ConfirmationFooter.d.ts.map +1 -0
  18. package/components/Details/ConfirmationView/ConfirmationView.d.ts +28 -0
  19. package/components/Details/ConfirmationView/ConfirmationView.d.ts.map +1 -0
  20. package/components/Details/Credentials/CredentialsBanner/CredentialsBanner.d.ts +16 -0
  21. package/components/Details/Credentials/CredentialsBanner/CredentialsBanner.d.ts.map +1 -0
  22. package/components/Details/Credentials/CredentialsIdentityIcon/CredentialsIdentityIcon.d.ts +29 -0
  23. package/components/Details/Credentials/CredentialsIdentityIcon/CredentialsIdentityIcon.d.ts.map +1 -0
  24. package/components/Details/Credentials/CredentialsInfoCard/CredentialsInfoCard.d.ts +20 -0
  25. package/components/Details/Credentials/CredentialsInfoCard/CredentialsInfoCard.d.ts.map +1 -0
  26. package/components/Details/Credentials/CredentialsManagementPanel/CredentialsManagementPanel.d.ts +31 -0
  27. package/components/Details/Credentials/CredentialsManagementPanel/CredentialsManagementPanel.d.ts.map +1 -0
  28. package/components/Details/DetailsPanel.d.ts.map +1 -1
  29. package/components/Details/Header/CredentialsApiKeyOverlay/CredentialsApiKeyOverlay.d.ts +34 -0
  30. package/components/Details/Header/CredentialsApiKeyOverlay/CredentialsApiKeyOverlay.d.ts.map +1 -0
  31. package/components/Details/Header/Header.d.ts +99 -19
  32. package/components/Details/Header/Header.d.ts.map +1 -1
  33. package/components/Details/Header/ShareButton/ShareButton.d.ts.map +1 -1
  34. package/components/Details/TabsContent/About.d.ts +3 -2
  35. package/components/Details/TabsContent/About.d.ts.map +1 -1
  36. package/components/Details/TabsContent/Content.d.ts +53 -0
  37. package/components/Details/TabsContent/Content.d.ts.map +1 -0
  38. package/components/Details/TabsContent/ContentFileTree/ContentFileTree.d.ts +28 -0
  39. package/components/Details/TabsContent/ContentFileTree/ContentFileTree.d.ts.map +1 -0
  40. package/components/Details/TabsContent/DataGrid/DataGrid.d.ts +1 -1
  41. package/components/Details/TabsContent/DataGrid/DataGrid.d.ts.map +1 -1
  42. package/components/Details/TabsContent/Limits/LimitGroupSection.d.ts +11 -0
  43. package/components/Details/TabsContent/Limits/LimitGroupSection.d.ts.map +1 -0
  44. package/components/Details/TabsContent/Limits/LimitRow.d.ts +10 -0
  45. package/components/Details/TabsContent/Limits/LimitRow.d.ts.map +1 -0
  46. package/components/Details/TabsContent/Limits/Limits.d.ts +5 -0
  47. package/components/Details/TabsContent/Limits/Limits.d.ts.map +1 -0
  48. package/components/Favorites/FavoriteCard.d.ts +9 -4
  49. package/components/Favorites/FavoriteCard.d.ts.map +1 -1
  50. package/components/Favorites/Favorites.d.ts.map +1 -1
  51. package/components/Filter/Filter.d.ts +36 -6
  52. package/components/Filter/Filter.d.ts.map +1 -1
  53. package/components/InfoCard/InfoCard.d.ts +15 -0
  54. package/components/InfoCard/InfoCard.d.ts.map +1 -0
  55. package/components/ListView/ListView.d.ts +1 -5
  56. package/components/ListView/ListView.d.ts.map +1 -1
  57. package/components/ListView/Renders/EntityTypeCellRenderer.d.ts +1 -0
  58. package/components/ListView/Renders/EntityTypeCellRenderer.d.ts.map +1 -1
  59. package/components/ListView/Renders/FolderCellRenderer.d.ts +4 -0
  60. package/components/ListView/Renders/FolderCellRenderer.d.ts.map +1 -1
  61. package/components/ListView/Renders/NameCellRenderer.d.ts +1 -0
  62. package/components/ListView/Renders/NameCellRenderer.d.ts.map +1 -1
  63. package/components/ListView/Renders/StarCellRenderer.d.ts +1 -0
  64. package/components/ListView/Renders/StarCellRenderer.d.ts.map +1 -1
  65. package/components/ListView/Renders/TagsCellRenderer.d.ts +1 -0
  66. package/components/ListView/Renders/TagsCellRenderer.d.ts.map +1 -1
  67. package/components/ListView/columns.d.ts +25 -2
  68. package/components/ListView/columns.d.ts.map +1 -1
  69. package/components/StarToggleButton/StarToggleButton.d.ts +2 -0
  70. package/components/StarToggleButton/StarToggleButton.d.ts.map +1 -1
  71. package/components/TableView/TableView.d.ts +19 -0
  72. package/components/TableView/TableView.d.ts.map +1 -1
  73. package/components/Toolbar/Rows/TitleRow.d.ts +8 -4
  74. package/components/Toolbar/Rows/TitleRow.d.ts.map +1 -1
  75. package/components/Toolbar/Toolbar.d.ts.map +1 -1
  76. package/components/TopicTag/TopicTag.d.ts +12 -7
  77. package/components/TopicTag/TopicTag.d.ts.map +1 -1
  78. package/constants/virtual-grid.d.ts +7 -0
  79. package/constants/virtual-grid.d.ts.map +1 -1
  80. package/entry-points/mapping.d.ts +16 -0
  81. package/entry-points/mapping.d.ts.map +1 -0
  82. package/index.css +1 -1
  83. package/index.d.ts +24 -41
  84. package/index.d.ts.map +1 -1
  85. package/index.js +3166 -28616
  86. package/mapping-FVCFAmAc.js +64 -0
  87. package/mapping.js +2 -0
  88. package/models/app-identity-styles.d.ts +28 -0
  89. package/models/app-identity-styles.d.ts.map +1 -0
  90. package/models/card-props.d.ts +21 -15
  91. package/models/card-props.d.ts.map +1 -1
  92. package/models/card-row-data.d.ts +5 -1
  93. package/models/card-row-data.d.ts.map +1 -1
  94. package/models/catalog-item-credentials.d.ts +4 -0
  95. package/models/catalog-item-credentials.d.ts.map +1 -1
  96. package/models/catalog-item.d.ts +3 -6
  97. package/models/catalog-item.d.ts.map +1 -1
  98. package/models/catalog-props.d.ts +214 -38
  99. package/models/catalog-props.d.ts.map +1 -1
  100. package/models/catalog-styles.d.ts +4 -41
  101. package/models/catalog-styles.d.ts.map +1 -1
  102. package/models/favorites.d.ts +24 -8
  103. package/models/favorites.d.ts.map +1 -1
  104. package/models/grid-context.d.ts +6 -1
  105. package/models/grid-context.d.ts.map +1 -1
  106. package/models/grid-props.d.ts +20 -1
  107. package/models/grid-props.d.ts.map +1 -1
  108. package/models/item-details-data.d.ts +94 -4
  109. package/models/item-details-data.d.ts.map +1 -1
  110. package/models/item-details-props.d.ts +459 -59
  111. package/models/item-details-props.d.ts.map +1 -1
  112. package/models/item-overview.d.ts +1 -7
  113. package/models/item-overview.d.ts.map +1 -1
  114. package/models/limits-props.d.ts +61 -0
  115. package/models/limits-props.d.ts.map +1 -0
  116. package/models/list-props.d.ts +41 -6
  117. package/models/list-props.d.ts.map +1 -1
  118. package/models/toolbar-props.d.ts +22 -22
  119. package/models/toolbar-props.d.ts.map +1 -1
  120. package/package.json +14 -6
  121. package/types/catalog-content-type.d.ts +13 -0
  122. package/types/catalog-content-type.d.ts.map +1 -0
  123. package/types/deployment-icon-size.d.ts +5 -0
  124. package/types/deployment-icon-size.d.ts.map +1 -0
  125. package/types/detail-tab.d.ts +4 -1
  126. package/types/detail-tab.d.ts.map +1 -1
  127. package/types/details-confirmation.d.ts +28 -0
  128. package/types/details-confirmation.d.ts.map +1 -0
  129. package/types/recipients-count.d.ts +12 -0
  130. package/types/recipients-count.d.ts.map +1 -0
  131. package/types/toolset-auth.d.ts +9 -0
  132. package/types/toolset-auth.d.ts.map +1 -1
  133. package/types/view-mode.d.ts +1 -1
  134. package/types/view-mode.d.ts.map +1 -1
  135. package/utils/catalog-content-tree.d.ts +8 -0
  136. package/utils/catalog-content-tree.d.ts.map +1 -0
  137. package/utils/catalog-filter.d.ts +10 -1
  138. package/utils/catalog-filter.d.ts.map +1 -1
  139. package/utils/catalog-sort.d.ts +1 -8
  140. package/utils/catalog-sort.d.ts.map +1 -1
  141. package/utils/catalog-tabs.d.ts +2 -2
  142. package/utils/catalog-tabs.d.ts.map +1 -1
  143. package/utils/scroll-window.d.ts +19 -0
  144. package/utils/scroll-window.d.ts.map +1 -0
  145. package/utils/styles.d.ts +1 -3
  146. package/utils/styles.d.ts.map +1 -1
  147. package/utils/toolset-credentials.d.ts +6 -19
  148. package/utils/toolset-credentials.d.ts.map +1 -1
  149. package/utils/usage-limits.d.ts +15 -0
  150. package/utils/usage-limits.d.ts.map +1 -0
  151. package/utils/use-fav-columns.d.ts +1 -4
  152. package/utils/use-fav-columns.d.ts.map +1 -1
  153. package/utils/use-scroll-virtualizer.d.ts +14 -8
  154. package/utils/use-scroll-virtualizer.d.ts.map +1 -1
  155. package/components/Details/Credentials/CredentialsSection.d.ts +0 -21
  156. package/components/Details/Credentials/CredentialsSection.d.ts.map +0 -1
  157. package/components/Details/Header/ConnectButton/ConnectButton.d.ts +0 -25
  158. package/components/Details/Header/ConnectButton/ConnectButton.d.ts.map +0 -1
  159. package/components/Details/Header/DeleteButton/DeleteButton.d.ts +0 -25
  160. package/components/Details/Header/DeleteButton/DeleteButton.d.ts.map +0 -1
  161. package/components/Details/Summary/Limits.d.ts +0 -18
  162. package/components/Details/Summary/Limits.d.ts.map +0 -1
  163. package/components/Details/Summary/Summary.d.ts +0 -12
  164. package/components/Details/Summary/Summary.d.ts.map +0 -1
  165. package/components/Details/TabsContent/Limits.d.ts +0 -14
  166. package/components/Details/TabsContent/Limits.d.ts.map +0 -1
  167. package/components/EntityHeader/EntityHeader.d.ts +0 -32
  168. package/components/EntityHeader/EntityHeader.d.ts.map +0 -1
  169. package/components/EntityTypeLabel/EntityTypeLabel.d.ts +0 -16
  170. package/components/EntityTypeLabel/EntityTypeLabel.d.ts.map +0 -1
  171. package/components/FeaturedChip/FeaturedChip.d.ts +0 -11
  172. package/components/FeaturedChip/FeaturedChip.d.ts.map +0 -1
  173. package/components/FolderPath/FolderPath.d.ts +0 -25
  174. package/components/FolderPath/FolderPath.d.ts.map +0 -1
  175. package/components/ItemHeader/ItemHeader.d.ts +0 -14
  176. package/components/ItemHeader/ItemHeader.d.ts.map +0 -1
  177. package/components/PublishFoldersTree/PublishFoldersTree.d.ts +0 -72
  178. package/components/PublishFoldersTree/PublishFoldersTree.d.ts.map +0 -1
  179. package/components/PublishHistoryList/PublishHistoryList.d.ts +0 -44
  180. package/components/PublishHistoryList/PublishHistoryList.d.ts.map +0 -1
  181. package/components/PublishPanel/PublishFooter.d.ts +0 -37
  182. package/components/PublishPanel/PublishFooter.d.ts.map +0 -1
  183. package/components/PublishPanel/PublishPanel.d.ts +0 -109
  184. package/components/PublishPanel/PublishPanel.d.ts.map +0 -1
  185. package/components/PublishPanel/StandalonePublishPanel.d.ts +0 -90
  186. package/components/PublishPanel/StandalonePublishPanel.d.ts.map +0 -1
  187. package/components/SearchBar/SearchBar.d.ts +0 -29
  188. package/components/SearchBar/SearchBar.d.ts.map +0 -1
  189. package/constants/catalog-defaults.d.ts +0 -4
  190. package/constants/catalog-defaults.d.ts.map +0 -1
  191. package/constants/entity-colors.d.ts +0 -6
  192. package/constants/entity-colors.d.ts.map +0 -1
  193. package/models/entity-summary.d.ts +0 -23
  194. package/models/entity-summary.d.ts.map +0 -1
  195. package/models/publish.d.ts +0 -89
  196. package/models/publish.d.ts.map +0 -1
  197. package/models/sort.d.ts +0 -8
  198. package/models/sort.d.ts.map +0 -1
  199. package/types/entity-tag.d.ts +0 -9
  200. package/types/entity-tag.d.ts.map +0 -1
  201. package/types/entity-type.d.ts +0 -8
  202. package/types/entity-type.d.ts.map +0 -1
  203. package/utils/format-published-date.d.ts +0 -8
  204. package/utils/format-published-date.d.ts.map +0 -1
  205. package/utils/parse-about-content.d.ts +0 -32
  206. package/utils/parse-about-content.d.ts.map +0 -1
  207. package/utils/publish-folder-tree.d.ts +0 -45
  208. package/utils/publish-folder-tree.d.ts.map +0 -1
  209. package/utils/publish-state.d.ts +0 -9
  210. package/utils/publish-state.d.ts.map +0 -1
  211. package/utils/use-publish-flow.d.ts +0 -77
  212. package/utils/use-publish-flow.d.ts.map +0 -1
@@ -0,0 +1,64 @@
1
+ import { CatalogEntityType as e } from "@epam/ai-dial-chat-shared";
2
+ //#region src/types/toolset-auth.ts
3
+ var t = /* @__PURE__ */ function(e) {
4
+ return e.None = "NONE", e.ApiKey = "API_KEY", e.OAuth = "OAUTH", e;
5
+ }({}), n = /* @__PURE__ */ function(e) {
6
+ return e.SignedIn = "SIGNED_IN", e.SignedOut = "SIGNED_OUT", e.Failed = "FAILED", e;
7
+ }({}), r = /* @__PURE__ */ function(e) {
8
+ return e.User = "USER", e.Global = "GLOBAL", e;
9
+ }({}), i = /* @__PURE__ */ function(e) {
10
+ return e.ManageCredentials = "MANAGE_CREDENTIALS", e.LoginWithMyCreds = "LOGIN_WITH_MY_CREDS", e.LogIn = "LOG_IN", e.LogOut = "LOG_OUT", e;
11
+ }({}), a = /* @__PURE__ */ function(e) {
12
+ return e.LoggedOut = "LOGGED_OUT", e;
13
+ }({}), o = /* @__PURE__ */ function(e) {
14
+ return e.UsingOrgCredentials = "USING_ORG_CREDENTIALS", e.OrgCredentialsActive = "ORG_CREDENTIALS_ACTIVE", e.PersonalCredentialsActive = "PERSONAL_CREDENTIALS_ACTIVE", e;
15
+ }({}), s = /* @__PURE__ */ function(e) {
16
+ return e.RecentlyUpdated = "recently-updated", e.Newest = "newest", e.NameAZ = "name-az", e;
17
+ }({}), c = (e, t, n = "From") => {
18
+ let r = t?.size ?? 0, i = e.size;
19
+ if (i === 0 || i === r) return n;
20
+ if (r - i === 1) {
21
+ let r = [...t ?? []].find((t) => !e.has(t));
22
+ return r == null ? n : `${n}: All except ${r}`;
23
+ }
24
+ return `${n}: ${i} of ${r}`;
25
+ }, l = (e, t) => t.size === 0 ? e : e.filter((e) => e.topics.some((e) => t.has(e))), u = (e) => e.filter((e) => e.isMyApp === !0), d = (e) => new Set(e.flatMap((e) => e.topics)), f = (e, t) => {
26
+ let n = t.trim().toLowerCase();
27
+ return n ? e.filter((e) => e.name.toLowerCase().includes(n)) : e;
28
+ }, p = (e, t) => {
29
+ let n = e.filter((e) => e.isFeatured), r = e.filter((e) => !e.isFeatured), i = (e) => t === s.NameAZ ? [...e].sort((e, t) => e.name.trim().toLowerCase().localeCompare(t.name.trim().toLowerCase())) : t === s.RecentlyUpdated ? [...e].sort((e, t) => !e.updatedAt && !t.updatedAt ? 0 : e.updatedAt ? t.updatedAt ? t.updatedAt - e.updatedAt : -1 : 1) : t === s.Newest ? [...e].sort((e, t) => !e.createdAt && !t.createdAt ? 0 : e.createdAt ? t.createdAt ? t.createdAt - e.createdAt : -1 : 1) : e;
30
+ return [...i(n), ...i(r)];
31
+ }, m = {
32
+ [e.Model]: "Models",
33
+ [e.Agent]: "Agents",
34
+ [e.Toolset]: "Toolsets",
35
+ [e.Prompt]: "Prompts",
36
+ [e.Skill]: "Skills"
37
+ }, h = [
38
+ e.Model,
39
+ e.Agent,
40
+ e.Toolset,
41
+ e.Skill,
42
+ e.Prompt
43
+ ], g = (e, t) => {
44
+ let n = {
45
+ ...m,
46
+ ...t
47
+ }, r = new Set(e.map((e) => e.type));
48
+ return h.filter((e) => r.has(e)).map((e) => ({
49
+ id: e,
50
+ label: n[e] ?? e
51
+ }));
52
+ }, _ = (e) => e === n.SignedIn, v = (e) => {
53
+ let t = _(e.userStatus), n = _(e.globalStatus);
54
+ return e.isManageableByAdmin ? i.ManageCredentials : e.isPublic && !t ? i.LoginWithMyCreds : !t && !n ? i.LogIn : i.LogOut;
55
+ }, y = (e) => {
56
+ if (e.authenticationType === t.None) return;
57
+ let n = _(e.userStatus), r = _(e.globalStatus);
58
+ return !n && !r ? a.LoggedOut : void 0;
59
+ }, b = (e) => _(e.userStatus) ? r.User : r.Global, x = (e) => {
60
+ if (e.isManageableByAdmin) return _(e.userStatus) ? o.PersonalCredentialsActive : _(e.globalStatus) ? o.OrgCredentialsActive : void 0;
61
+ if (_(e.globalStatus) && e.isPublic && !_(e.userStatus)) return o.UsingOrgCredentials;
62
+ };
63
+ //#endregion
64
+ export { i as _, g as a, l as c, d, s as f, r as g, o as h, b as i, f as l, a as m, x as n, p as o, n as p, v as r, u as s, y as t, c as u, t as v };
package/mapping.js ADDED
@@ -0,0 +1,2 @@
1
+ import { _ as e, a as t, d as n, f as r, g as i, i as a, l as o, m as s, o as c, p as l, r as u, t as d, v as f } from "./mapping-FVCFAmAc.js";
2
+ export { r as CatalogSortKey, l as CredentialStatus, s as CredentialsBadgeState, i as CredentialsLevel, e as CredentialsUiState, f as ToolsetAuthenticationType, t as buildCatalogTabs, o as filterCatalogItems, d as getCredentialsBadgeState, u as getCredentialsUiState, a as getSignedInLevel, n as getTopicOptions, c as sortCatalogItems };
@@ -0,0 +1,28 @@
1
+ /** Color overrides for `AppIdentity`, applied as CSS custom properties. */
2
+ export interface AppIdentityColors {
3
+ /** Entity name text color. Fallback: `--text-primary`. */
4
+ nameColor?: string;
5
+ /** Last-used line text color. Fallback: `--text-tertiary`. */
6
+ lastUsedColor?: string;
7
+ /** Version text color. Fallback: `--text-secondary`. */
8
+ versionColor?: string;
9
+ }
10
+ /** Typography class overrides for `AppIdentity`. */
11
+ export interface AppIdentityTypography {
12
+ /** CSS class for the type label. Default: `'dial-caption-lead-semi-text'`. */
13
+ typeClassName?: string;
14
+ /** Typography CSS class for the entity name. Default: `'dial-body-semi-text'`. */
15
+ nameClassName?: string;
16
+ /** Typography CSS class for the version string. Default: `'dial-tiny-text'`. */
17
+ versionClassName?: string;
18
+ /** Typography CSS class for the last-used line text and icon. Default: `'dial-tiny-text'`. */
19
+ lastUsedClassName?: string;
20
+ }
21
+ /** Grouped style overrides for `AppIdentity`. */
22
+ export interface AppIdentityStyles {
23
+ /** Color overrides applied as CSS custom properties. */
24
+ colors?: AppIdentityColors;
25
+ /** Typography class overrides. */
26
+ typography?: AppIdentityTypography;
27
+ }
28
+ //# sourceMappingURL=app-identity-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-identity-styles.d.ts","sourceRoot":"","sources":["../../src/models/app-identity-styles.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,kCAAkC;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC"}
@@ -1,13 +1,13 @@
1
1
  import { CatalogItem } from './catalog-item';
2
2
  /** Typography class overrides for `Card` content. */
3
3
  export interface CardTypography {
4
- /** Typography class applied to the item name. Default: `'dial-h3-text'`. */
4
+ /** Typography class applied to the item name. Default: `'dial-body-semi-text'`. */
5
5
  nameClassName?: string;
6
6
  /** Typography class applied to the version text. Default: `'dial-tiny-text'`. */
7
7
  versionClassName?: string;
8
- /** Typography class applied to the description text. Default: `'dial-small-text'`. */
8
+ /** Typography class applied to the description text. Default: `'dial-small-paragraph-text'`. */
9
9
  descriptionClassName?: string;
10
- /** Typography class applied to the featured chip label. Default: `'dial-tiny-semi-text uppercase tracking-[0.06em]'`. */
10
+ /** Typography class applied to the featured chip label. Default: `'dial-tiny-lead-semi-text'`. */
11
11
  featuredChipClassName?: string;
12
12
  /** Typography class applied to folder path separator labels. Default: `'dial-tiny-text'`. */
13
13
  folderLabelClassName?: string;
@@ -16,22 +16,20 @@ export interface CardTypography {
16
16
  }
17
17
  /** Color overrides applied as CSS custom properties for `Card`. */
18
18
  export interface CardColors {
19
- /** Default card background color. Fallback: `--bg-layer-2`. */
19
+ /** Default card background color. Fallback: `--bg-layer-sunken`. */
20
20
  background?: string;
21
- /** Hovered card background color. Fallback: `--bg-layer-3`. */
22
- hoverBackground?: string;
23
21
  /** Card border color. Fallback: `--stroke-secondary`. */
24
22
  border?: string;
25
- /** Featured card glow color. Fallback: `rgba(125, 164, 255, 0.5)`. */
26
- featuredGlow?: string;
27
- /** Featured top accent bar color. Fallback: `--stroke-accent-primary`. */
28
- featuredBar?: string;
29
- /** Item name and description text color. Fallback: `--text-primary`. */
30
- textPrimary?: string;
31
23
  /** Version text color. Fallback: `--text-secondary`. */
32
24
  textSecondary?: string;
33
- /** Filled star icon color. Fallback: `--text-warning-icon`. */
34
- starFilled?: string;
25
+ /** Border color of a selected card. Fallback: `--stroke-accent`. */
26
+ selectedBorder?: string;
27
+ /** Background color (tint) of a selected card. Fallback: `--bg-control-accent-alpha-active`. */
28
+ selectedBackground?: string;
29
+ /** Selected-checkmark icon color. Fallback: `--text-accent`. */
30
+ checkIcon?: string;
31
+ /** Top border color of the footer row (folder path / star button). Fallback: `--stroke-tertiary`. */
32
+ footerBorder?: string;
35
33
  }
36
34
  /** Grouped style overrides for `Card`. */
37
35
  export interface CardStyles {
@@ -52,6 +50,8 @@ export interface CardProps {
52
50
  initialIsStarred?: boolean;
53
51
  /** Called when the star button is toggled. */
54
52
  onToggle?: (id: string, isStarred: boolean) => void;
53
+ /** Rule for whether the favorite star is shown; `false` hides the star and makes the item non-favoritable. Defaults to visible when omitted. */
54
+ isFavoriteVisible?: (item: CatalogItem) => boolean;
55
55
  /** Called when the card body is clicked (excluding the star button). */
56
56
  onClick?: (item: CatalogItem) => void;
57
57
  /** Grouped color and typography overrides. */
@@ -64,7 +64,13 @@ export interface CardProps {
64
64
  removeFromFavoritesAriaLabel?: string;
65
65
  /** Whether this card represents the currently selected item — shows an accent border, tinted background, and a checkmark. Default: false. */
66
66
  isSelected?: boolean;
67
- /** Credentials-status badge label shown when signed out. Default: `'LOGGED OUT'`. */
67
+ /** Accessible label for the logged-out warning icon on the entity avatar, and the text shown in its hover tooltip. Default: `'Authorize to use this toolset.'`. */
68
68
  credentialsBadgeLoggedOutLabel?: string;
69
+ /**
70
+ * Renders the card as a read-only browsing surface: no favorite star, no
71
+ * footer divider, and no "Featured" tag. The footer row is dropped entirely
72
+ * when the item has no folder path left to show. Default: false.
73
+ */
74
+ isReadonly?: boolean;
69
75
  }
70
76
  //# sourceMappingURL=card-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-props.d.ts","sourceRoot":"","sources":["../../src/models/card-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yHAAyH;IACzH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,wBAAwB;AACxB,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4GAA4G;IAC5G,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,6IAA6I;IAC7I,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC"}
1
+ {"version":3,"file":"card-props.d.ts","sourceRoot":"","sources":["../../src/models/card-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kGAAkG;IAClG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,wBAAwB;AACxB,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,gJAAgJ;IAChJ,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IACnD,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4GAA4G;IAC5G,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,6IAA6I;IAC7I,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mKAAmK;IACnK,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -9,6 +9,8 @@ export interface CardRowData {
9
9
  query: string;
10
10
  /** Called when a card's star is toggled. */
11
11
  onToggleFavorite?: (id: string, isStarred: boolean) => void;
12
+ /** Rule for whether the favorite star is shown on a card; `false` hides it. Defaults to visible when omitted. */
13
+ isFavoriteVisible?: (item: CatalogItem) => boolean;
12
14
  /** Called when a card body is clicked. */
13
15
  onItemClick?: (item: CatalogItem) => void;
14
16
  /** Label for the "Featured" tag rendered on featured cards. */
@@ -19,7 +21,9 @@ export interface CardRowData {
19
21
  removeFromFavoritesAriaLabel: string;
20
22
  /** ID of an item to visually mark as selected (border, tint, and checkmark). */
21
23
  selectedItemId?: string;
22
- /** Credentials-status badge label shown when signed out. */
24
+ /** Accessible label for the logged-out warning icon on the entity avatar, and the text shown in its hover tooltip. */
23
25
  credentialsBadgeLoggedOutLabel: string;
26
+ /** Renders every card read-only: no favorite star, no footer divider, and no "Featured" tag. */
27
+ isReadonly?: boolean;
24
28
  }
25
29
  //# sourceMappingURL=card-row-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-row-data.d.ts","sourceRoot":"","sources":["../../src/models/card-row-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,uBAAuB,EAAE,MAAM,CAAC;IAChC,6EAA6E;IAC7E,4BAA4B,EAAE,MAAM,CAAC;IACrC,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,8BAA8B,EAAE,MAAM,CAAC;CACxC"}
1
+ {"version":3,"file":"card-row-data.d.ts","sourceRoot":"","sources":["../../src/models/card-row-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IACnD,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,uBAAuB,EAAE,MAAM,CAAC;IAChC,6EAA6E;IAC7E,4BAA4B,EAAE,MAAM,CAAC;IACrC,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sHAAsH;IACtH,8BAA8B,EAAE,MAAM,CAAC;IACvC,gGAAgG;IAChG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -13,5 +13,9 @@ export interface CatalogItemCredentials {
13
13
  isManageableByAdmin?: boolean;
14
14
  /** Name of the API key header, shown as a hint in the login form. Only set for `API_KEY` authentication. */
15
15
  apiKeyHeader?: string;
16
+ /** Already-formatted relative time (e.g. `'3 weeks ago'`) since the personal API key was added. Only set for `API_KEY` authentication when `userStatus` is `SIGNED_IN`. Omit to hide the "Added …" caption. */
17
+ userApiKeyAddedWhen?: string;
18
+ /** Already-formatted relative time since the organization-wide API key was added. Only set for `API_KEY` authentication when `globalStatus` is `SIGNED_IN`. Omit to hide the "Added …" caption. */
19
+ globalApiKeyAddedWhen?: string;
16
20
  }
17
21
  //# sourceMappingURL=catalog-item-credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-item-credentials.d.ts","sourceRoot":"","sources":["../../src/models/catalog-item-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,gFAAgF;IAChF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8HAA8H;IAC9H,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"catalog-item-credentials.d.ts","sourceRoot":"","sources":["../../src/models/catalog-item-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,gFAAgF;IAChF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8HAA8H;IAC9H,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+MAA+M;IAC/M,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mMAAmM;IACnM,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -1,6 +1,5 @@
1
- import { CatalogEntityType } from '../types/entity-type';
1
+ import { CatalogEntityType } from '@epam/ai-dial-chat-shared';
2
2
  import { CatalogItemCredentials } from './catalog-item-credentials';
3
- import { CatalogItemSummary } from './entity-summary';
4
3
  import { CatalogItemTabData } from './item-details-data';
5
4
  /** Full catalog item shown in the Browse section. */
6
5
  export interface CatalogItem {
@@ -26,8 +25,6 @@ export interface CatalogItem {
26
25
  isFeatured?: boolean;
27
26
  /** Short description, typically 1–2 lines. */
28
27
  description: string;
29
- /** Longer-form intro text shown in the details panel's Intro section. Falls back to `description` when absent. */
30
- intro?: string;
31
28
  /** When true the item is hidden from the main Browse view and only shown in Search results. */
32
29
  isHidden?: boolean;
33
30
  /** Whether the item is marked as a favorite by the user. */
@@ -44,13 +41,13 @@ export interface CatalogItem {
44
41
  folder: string[];
45
42
  /** Topics associated with the item. */
46
43
  topics: string[];
47
- /** Header-level summary metadata (tag, badge image, daily limit). When absent the summary block is hidden. */
48
- summary?: CatalogItemSummary;
49
44
  /** Tab-specific detail data. A tab is shown only when its field is non-null. */
50
45
  details?: CatalogItemTabData;
51
46
  /** Credential status for the item's own authentication. Absent when the item requires no authentication. */
52
47
  credentials?: CatalogItemCredentials;
53
48
  /** Whether this application supports the MCP protocol; only meaningful for `Application` items. */
54
49
  supportsMcp?: boolean;
50
+ /** Whether this item can be used in chat. Default: true. Set to false to hide the "Use in chat" primary action for a Model or Application that does not expose a chat interface. */
51
+ supportsChat?: boolean;
55
52
  }
56
53
  //# sourceMappingURL=catalog-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-item.d.ts","sourceRoot":"","sources":["../../src/models/catalog-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sGAAsG;IACtG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oGAAoG;IACpG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8IAA8I;IAC9I,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8GAA8G;IAC9G,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,gFAAgF;IAChF,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
1
+ {"version":3,"file":"catalog-item.d.ts","sourceRoot":"","sources":["../../src/models/catalog-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sGAAsG;IACtG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oGAAoG;IACpG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8IAA8I;IAC9I,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gFAAgF;IAChF,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oLAAoL;IACpL,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
@@ -1,31 +1,15 @@
1
+ import { CatalogEntityType } from '@epam/ai-dial-chat-shared';
2
+ import { PublicationRule, PublishFolderNode, PublishFooterLabels, PublishHistoryEntry, PublishPanelLabels } from '@epam/ai-dial-publish-panel';
3
+ import { DropdownItem, TabModel } from '@epam/ai-dial-ui-kit';
1
4
  import { ReactNode } from 'react';
2
- import { PublishFooterTexts } from '../components/PublishPanel/PublishFooter';
3
- import { PublishPanelTexts } from '../components/PublishPanel/PublishPanel';
4
- import { CatalogEntityType } from '../types/entity-type';
5
+ import { ListViewColumnVisibility } from '../components/ListView/columns';
5
6
  import { CatalogSortKey } from '../types/sort';
6
7
  import { CredentialsLevel } from '../types/toolset-auth';
7
8
  import { CatalogViewMode } from '../types/view-mode';
8
9
  import { CatalogItem } from './catalog-item';
9
10
  import { CatalogStyles } from './catalog-styles';
10
- import { CatalogItemDetailsFetchResult } from './item-details-data';
11
+ import { CatalogContentFilePreview, CatalogItemDetailsFetchResult } from './item-details-data';
11
12
  import { ItemDetailsTexts } from './item-details-props';
12
- import { PublishFolderNode, PublishHistoryEntry } from './publish';
13
- /** A single option in the Create dropdown. */
14
- export interface CreateOption {
15
- /** Display label shown in the dropdown menu. */
16
- label: string;
17
- /** Short description shown below the label (single line, truncated). */
18
- description?: string;
19
- /** Leading icon rendered inside a tinted 32 px square. */
20
- icon?: ReactNode;
21
- /**
22
- * Tailwind classes applied to the icon container — controls background tint
23
- * and icon colour. Example: `'bg-accent-secondary-alpha text-accent-secondary'`.
24
- */
25
- iconContainerClassName?: string;
26
- /** Called when this option is selected. */
27
- onClick: () => void;
28
- }
29
13
  /** Text labels used by the `Catalog` surface. */
30
14
  export interface CatalogTitles {
31
15
  /** Page heading. Default: 'Catalog'. */
@@ -43,6 +27,8 @@ export interface CatalogTitles {
43
27
  * Default: (q) => `No results for "${q}"`.
44
28
  */
45
29
  noResultsTitle?: (query: string) => string;
30
+ /** The sort control's own name, prepended to its accessible name. Default: 'Sort'. */
31
+ sortLabel?: string;
46
32
  /** Label for the "Recently Updated" sort option. Default: 'Recently Updated'. */
47
33
  sortRecentlyUpdatedLabel?: string;
48
34
  /** Label for the "Newest" sort option. Default: 'Newest'. */
@@ -55,12 +41,15 @@ export interface CatalogTitles {
55
41
  gridViewLabel?: string;
56
42
  /** Accessible label for switching to list view. Default: 'List view'. */
57
43
  listViewLabel?: string;
44
+ /** Accessible label naming the grid/list view toggle group. Default: 'View mode'. */
45
+ viewToggleLabel?: string;
58
46
  /** ARIA label for the page/grid. Default: 'Catalog'. */
59
47
  ariaLabel?: string;
60
48
  /**
61
49
  * Display labels for entity-type filter tabs. Only types present in `items`
62
- * are shown. Defaults: Model → 'Model', Agent → 'Agent', Toolset → 'Toolset',
63
- * Guardrail → 'Guardrail', Skill → 'Skill', Mcp → 'MCP'.
50
+ * are shown, and the row is hidden entirely when fewer than two types are
51
+ * present. Defaults: Model → 'Models', Agent → 'Agents',
52
+ * Toolset → 'Toolsets', Skill → 'Skills', Prompt → 'Prompts'.
64
53
  */
65
54
  tabLabels?: Partial<Record<CatalogEntityType, string>>;
66
55
  /** Label for the filter button when nothing is filtered. Default: 'From'. */
@@ -72,18 +61,69 @@ export interface CatalogTitles {
72
61
  }
73
62
  /** Props for Catalog. */
74
63
  export interface CatalogProps {
75
- /** Items to display in the Browse section. */
64
+ /**
65
+ * Items to display in the Browse section's grid/list. Also drives the
66
+ * default entity-type tabs and Topics filter options when `tabs`/
67
+ * `topicOptions` are omitted.
68
+ */
76
69
  items: CatalogItem[];
70
+ /**
71
+ * Externally-controlled entity-type tab list. When omitted, `Catalog`
72
+ * derives tabs internally from `items` via `buildCatalogTabs`. Fewer than
73
+ * two tabs renders no tab row.
74
+ *
75
+ * Lets a host compute tabs from a wider item set than `items` — e.g. so a
76
+ * host that narrows `items` for grid display (by a category-tree
77
+ * selection) doesn't lose a tab for a type with zero matches in that
78
+ * narrowed set.
79
+ */
80
+ tabs?: TabModel[];
81
+ /**
82
+ * Externally-controlled set of available Topics filter options. When
83
+ * omitted, `Catalog` derives them internally from `items` via
84
+ * `getTopicOptions`.
85
+ *
86
+ * Lets a host compute the option set from a wider item set than `items`,
87
+ * for the same reason as `tabs`.
88
+ */
89
+ topicOptions?: Set<string>;
77
90
  /** Items to display in the Favorites section. */
78
91
  favorites: CatalogItem[];
79
92
  /** Grouped text labels for headings and actions. */
80
93
  titles?: CatalogTitles;
94
+ /**
95
+ * Renders in place of the Browse section's heading (`titles.browseTitle`)
96
+ * when supplied, e.g. so a host can render a clickable breadcrumb instead
97
+ * of a plain text label. The item count normally shown next to the heading
98
+ * is not rendered alongside it — include it in the supplied node if needed.
99
+ */
100
+ browseHeaderRenderer?: ReactNode;
81
101
  /** Whether catalog data is loading (reserved for future loading state). */
82
102
  isLoading?: boolean;
83
103
  /** Error to display if data loading failed (reserved for future error state). */
84
104
  error?: Error | null;
85
105
  /** Called when any item's star is toggled. */
86
106
  onToggleFavorite?: (id: string, isStarred: boolean) => void;
107
+ /**
108
+ * Additional caller-supplied rule for whether the favorite star is shown for
109
+ * an item, in the browse grid, the list view, the favorites strip, and the
110
+ * details panel. Returning `false` hides the star everywhere and makes the
111
+ * item non-favoritable. Defaults to **visible** when omitted, so a predicate
112
+ * can only ever narrow visibility, never widen it.
113
+ */
114
+ isFavoriteVisible?: (item: CatalogItem) => boolean;
115
+ /**
116
+ * Per-column overrides for whether an optional `ListView` column (`folder`,
117
+ * `tags`, `favorite`) renders for the active tab, given its entity type.
118
+ * Independent of `isFavoriteVisible` (which only gates the star on
119
+ * individual rows, in the browse grid and cards too, not the column).
120
+ * Replaces that column's built-in default rule — e.g. `folder` normally
121
+ * hides for `CatalogEntityType.Model`; columns omitted from this map keep
122
+ * their default. `favorite` is additionally combined (AND) with
123
+ * `isReadonly`. No effect on the Browse grid/cards, only the list view's
124
+ * table.
125
+ */
126
+ columnVisibility?: ListViewColumnVisibility;
87
127
  /** Called when the "Use in chat" button is clicked in the details panel. */
88
128
  onUseInChat?: (item: CatalogItem) => void;
89
129
  /** Controls whether the primary action button is shown for an item. */
@@ -92,6 +132,12 @@ export interface CatalogProps {
92
132
  onShare?: (item: CatalogItem) => void;
93
133
  /** Controls whether the "Publish" action is shown for an item. */
94
134
  isPublishVisible?: (item: CatalogItem) => boolean;
135
+ /**
136
+ * Resolves whether whichever of "Publish"/"Unpublish" applies renders as its
137
+ * own button in the details header rather than an entry in its "Manage"
138
+ * menu. Defaults to `false` — the menu entry.
139
+ */
140
+ isPublishPrimary?: (item: CatalogItem) => boolean;
95
141
  /** Resolves previously published versions for an item, most recent first. */
96
142
  getPublishHistory?: (item: CatalogItem) => Promise<PublishHistoryEntry[]>;
97
143
  /** Root-level destination folder nodes offered by the publish flow. */
@@ -108,16 +154,70 @@ export interface CatalogProps {
108
154
  publishLoadingPaths?: Set<string>;
109
155
  /** Resolves whether the current user can publish to a given folder path. */
110
156
  hasPublishWriteAccess?: (folderPath: string[]) => boolean;
111
- /** Called with the destination folder path when the user confirms publish/update. */
112
- onPublish?: (item: CatalogItem, folderPath: string[]) => Promise<void>;
157
+ /**
158
+ * Initial value for the publish flow's display-author field, and the value
159
+ * it returns to on reset. Resolved by the host from the signed-in user's
160
+ * display name; the catalog library holds no notion of a session.
161
+ */
162
+ publishDefaultAuthor?: string;
163
+ /** Called with the destination folder path, current access rules, and trimmed display author when the user confirms publish/update. */
164
+ onPublish?: (item: CatalogItem, folderPath: string[], rules: PublicationRule[], author: string) => Promise<void>;
113
165
  /** Called after a successful publish; use this to surface a success notification. */
114
166
  onPublishSuccess?: (item: CatalogItem, folderPath: string[]) => void;
167
+ /** Called with the rejection reason when a publish request fails; use this to surface an error notification. */
168
+ onPublishError?: (item: CatalogItem, folderPath: string[], error: unknown) => void;
115
169
  /** Called when the user confirms a new folder name in the publish flow. */
116
170
  onCreatePublishFolder?: (parentPath: string[], name: string) => void;
117
171
  /** Text overrides forwarded to the publish flow. */
118
- publishTexts?: PublishPanelTexts & PublishFooterTexts;
172
+ publishLabels?: PublishPanelLabels & PublishFooterLabels;
173
+ /** Options offered in the access-rules editor's source picker. Defaults to `[]` when absent. */
174
+ ruleSourceOptions?: string[];
175
+ /**
176
+ * Resolves the access rules already configured for a destination folder,
177
+ * called whenever the selected folder changes. The result fully replaces
178
+ * the rules editor's contents. Omit to skip pre-filling entirely.
179
+ */
180
+ onFetchExistingRules?: (folderPath: string[]) => Promise<PublicationRule[]>;
119
181
  /** Called when the "Edit" button is clicked in the details panel. Shown only when the item's `isEditable` is `true`. */
120
182
  onEdit?: (item: CatalogItem) => void;
183
+ /**
184
+ * Called when the "Download" action is clicked in the details panel, with no
185
+ * confirmation step. When "Download" renders in the Manage menu (see
186
+ * `isDownloadPrimary`), the panel does not await the result or show a
187
+ * pending state, so the host owns any progress and failure feedback. When
188
+ * "Download" is the primary action, the panel awaits this call and shows a
189
+ * pending/disabled state for its duration.
190
+ */
191
+ onDownload?: (item: CatalogItem) => Promise<void> | void;
192
+ /**
193
+ * Narrows which items offer the "Download" action. Defaults to `true`
194
+ * (visible for every item) whenever `onDownload` is supplied.
195
+ */
196
+ isDownloadVisible?: (item: CatalogItem) => boolean;
197
+ /**
198
+ * Resolves whether an item's Download action renders as the primary action
199
+ * instead of a Manage-menu entry. Defaults to
200
+ * `item.type === CatalogEntityType.Skill`.
201
+ */
202
+ isDownloadPrimary?: (item: CatalogItem) => boolean;
203
+ /**
204
+ * Resolves the text of a file picked in the details panel's Content tab,
205
+ * given its opaque `id`. The panel shows a loading state while it is
206
+ * pending and renders the resolved text as the body. Superseded by
207
+ * `onLoadContentFilePreview` for a given pick when both are supplied.
208
+ */
209
+ onLoadContentFile?: (fileId: string) => Promise<string | undefined>;
210
+ /**
211
+ * Resolves a picked file's typed preview, given its opaque `id`. Takes
212
+ * precedence over `onLoadContentFile` when both are supplied.
213
+ */
214
+ onLoadContentFilePreview?: (fileId: string) => Promise<CatalogContentFilePreview | undefined>;
215
+ /**
216
+ * Renders a picked file through a host-owned preview surface. Takes
217
+ * precedence over both loading callbacks, while the catalog continues to
218
+ * own selection and passes the opaque file id and resolved basename only.
219
+ */
220
+ renderContentFilePreview?: (fileId: string, fileName: string) => ReactNode;
121
221
  /**
122
222
  * Called immediately when the "Delete" button in the details panel is
123
223
  * clicked, with no confirmation step. Shown only when the item's `isMyApp`
@@ -125,6 +225,56 @@ export interface CatalogProps {
125
225
  * promise; the button shows a disabled state while pending.
126
226
  */
127
227
  onDelete?: (item: CatalogItem) => Promise<void> | void;
228
+ /**
229
+ * Called when removal is confirmed via the details panel's confirmation
230
+ * popup, for an item shared with the current user (`sharedWithMe: true`).
231
+ * May return a promise; the popup shows a loading state and prevents
232
+ * duplicate submission while pending.
233
+ */
234
+ onUnshare?: (item: CatalogItem) => Promise<void> | void;
235
+ /**
236
+ * Narrows where the "Remove from My List" action is offered, on top of the
237
+ * built-in `sharedWithMe`/`isMyApp` rule. Use it to declare that unsharing
238
+ * is unsupported for a kind of item. Defaults to `true` (visible) when
239
+ * absent.
240
+ */
241
+ isUnshareVisible?: (item: CatalogItem) => boolean;
242
+ /**
243
+ * Called when revocation is confirmed via the details panel's confirmation
244
+ * step, for an item the current user owns (`isMyApp: true`), removing every
245
+ * recipient's shared access at once. May return a promise; the confirmation
246
+ * shows a loading state and prevents duplicate submission while pending.
247
+ */
248
+ onRevokeShare?: (item: CatalogItem) => Promise<void> | void;
249
+ /**
250
+ * Resolves how many users currently hold shared access to an owned item.
251
+ * Called when the owner opens the details panel's Manage menu, so "Revoke
252
+ * access" is gated and labelled on a count that is never stale. `0` hides
253
+ * the action; `undefined` (or a rejection) leaves it reachable without a
254
+ * count. Omit to offer the action for every owned item.
255
+ */
256
+ onFetchRecipientsCount?: (item: CatalogItem) => Promise<number | undefined>;
257
+ /**
258
+ * Narrows where the "Revoke access" action is offered, on top of the
259
+ * built-in `isMyApp` rule and the recipient count. Use it to declare that
260
+ * revoking is unsupported for a kind of item. Defaults to `true` (visible)
261
+ * when absent.
262
+ */
263
+ isRevokeShareVisible?: (item: CatalogItem) => boolean;
264
+ /**
265
+ * Called when unpublish is confirmed via the details panel's confirmation
266
+ * step, with the published folder's path segments. May return a promise;
267
+ * the confirmation shows a loading state and prevents duplicate submission
268
+ * while pending. The published copy survives until an administrator
269
+ * approves, so the panel stays open and the item stays visible.
270
+ */
271
+ onUnpublish?: (item: CatalogItem, folderPath: string[]) => Promise<void> | void;
272
+ /**
273
+ * Narrows where the "Unpublish" action is offered, on top of the presence
274
+ * of `onUnpublish` and at least one resolved `getPublishHistory` entry.
275
+ * Defaults to `true` (visible) when absent.
276
+ */
277
+ isUnpublishVisible?: (item: CatalogItem) => boolean;
128
278
  /**
129
279
  * Renders the Share popover content anchored to the Share button in the
130
280
  * details panel. When provided, clicking Share opens this popover instead
@@ -138,16 +288,11 @@ export interface CatalogProps {
138
288
  */
139
289
  isShareVisible?: (item: CatalogItem) => boolean;
140
290
  /**
141
- * Renders the Connect popover content anchored to the Connect button in the
142
- * details panel. When absent, the Connect button is never shown — there is
143
- * no non-overlay fallback action.
291
+ * Resolves whether "Share" renders as its own button in the details header
292
+ * rather than an entry in its "Manage" menu. Defaults to `true` — the
293
+ * button. Returning `false` moves it into the menu, beside "Delete".
144
294
  */
145
- connectOverlay?: (item: CatalogItem, onClose: () => void) => ReactNode;
146
- /**
147
- * Controls whether the "Connect" action is shown for an item. When absent,
148
- * the Connect button is never shown.
149
- */
150
- isConnectVisible?: (item: CatalogItem) => boolean;
295
+ isSharePrimary?: (item: CatalogItem) => boolean;
151
296
  /**
152
297
  * Called when the credentials login form is submitted in the details
153
298
  * panel, for the given credentials `level` (`USER` or `GLOBAL`). May
@@ -177,15 +322,33 @@ export interface CatalogProps {
177
322
  * Dropdown options for the Create button. When provided, the button opens a
178
323
  * menu instead of calling `onCreateClick` directly.
179
324
  */
180
- createOptions?: CreateOption[];
325
+ createOptions?: DropdownItem[];
181
326
  /** Called when the Create button is clicked (used when `createOptions` is absent). */
182
327
  onCreateClick?: () => void;
183
328
  /** Hides the "Create" button entirely, e.g. when rendering as a read-only picker. Default: false. */
184
329
  hideCreateButton?: boolean;
330
+ /**
331
+ * Renders the whole catalog as a read-only browsing surface. Browse cards
332
+ * lose their favorite star, footer divider, and "Featured" tag; the list
333
+ * view loses its "Favorite" column; the "Create" button and the favorites
334
+ * strip are not rendered; and the details panel withholds its favorite star
335
+ * and every mutating action (Share, Publish/Unpublish, Edit, Delete,
336
+ * "Remove from My List", "Revoke access", and the credentials Log in / Log
337
+ * out / manage button). The non-mutating actions — the primary "Use in
338
+ * chat" and Download — still render. Default: false.
339
+ */
340
+ isReadonly?: boolean;
185
341
  /** Hides the page heading (title row), e.g. when the host renders its own title outside the catalog. Default: false. */
186
342
  hidePageTitle?: boolean;
187
- /** Initial Browse view mode (grid or list). Default: `CatalogViewMode.Grid`. */
343
+ /** Initial Browse view mode (`Grid` renders the card grid, `Cards` the list view). Default: `CatalogViewMode.Grid`. */
188
344
  initialViewMode?: CatalogViewMode;
345
+ /**
346
+ * Lets the Browse content (card grid and list view) span the full width of
347
+ * its container instead of sitting in a centered, 1180 px-wide column with
348
+ * empty gutters on wide screens. The 32 px side padding is kept either way,
349
+ * and the wider container yields more card columns. Default: false.
350
+ */
351
+ isFullWidth?: boolean;
189
352
  /** ID of an item to visually mark as selected (border, tint, and checkmark) in the Browse grid. */
190
353
  selectedItemId?: string;
191
354
  /**
@@ -203,6 +366,11 @@ export interface CatalogProps {
203
366
  styles?: CatalogStyles;
204
367
  /** Text overrides forwarded to the item details panel. */
205
368
  detailsTexts?: ItemDetailsTexts;
369
+ /**
370
+ * Footer note forwarded to the item details panel's Limits tab, e.g. a
371
+ * link to a full usage-limits page. Omitted (the default) hides the footer.
372
+ */
373
+ detailsLimitsFooterNote?: ReactNode;
206
374
  /**
207
375
  * Externally-controlled active sort key. When omitted, `Catalog` manages
208
376
  * its own sort state internally, defaulting to `CatalogSortKey.RecentlyUpdated`.
@@ -225,5 +393,13 @@ export interface CatalogProps {
225
393
  isMyAppsActive?: boolean;
226
394
  /** Called when the user toggles the "My Apps" filter; required to control `isMyAppsActive`. */
227
395
  onMyAppsActiveChange?: (isActive: boolean) => void;
396
+ /**
397
+ * Externally-controlled active entity-type tab id. When omitted, `Catalog`
398
+ * manages its own tab state internally, defaulting to the first tab
399
+ * returned by `buildCatalogTabs`.
400
+ */
401
+ activeTab?: string;
402
+ /** Called when the user switches tabs; required to control `activeTab`. */
403
+ onActiveTabChange?: (tabId: string) => void;
228
404
  }
229
405
  //# sourceMappingURL=catalog-props.d.ts.map