@epam/ai-dial-catalog 1.1.0-dev.44 → 1.1.0-dev.440

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 +3161 -28618
  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 +208 -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 +453 -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 -11
  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,64 @@ 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
+ /** Called with the destination folder path and current access rules when the user confirms publish/update. */
158
+ onPublish?: (item: CatalogItem, folderPath: string[], rules: PublicationRule[]) => Promise<void>;
113
159
  /** Called after a successful publish; use this to surface a success notification. */
114
160
  onPublishSuccess?: (item: CatalogItem, folderPath: string[]) => void;
161
+ /** Called with the rejection reason when a publish request fails; use this to surface an error notification. */
162
+ onPublishError?: (item: CatalogItem, folderPath: string[], error: unknown) => void;
115
163
  /** Called when the user confirms a new folder name in the publish flow. */
116
164
  onCreatePublishFolder?: (parentPath: string[], name: string) => void;
117
165
  /** Text overrides forwarded to the publish flow. */
118
- publishTexts?: PublishPanelTexts & PublishFooterTexts;
166
+ publishLabels?: PublishPanelLabels & PublishFooterLabels;
167
+ /** Options offered in the access-rules editor's source picker. Defaults to `[]` when absent. */
168
+ ruleSourceOptions?: string[];
169
+ /**
170
+ * Resolves the access rules already configured for a destination folder,
171
+ * called whenever the selected folder changes. The result fully replaces
172
+ * the rules editor's contents. Omit to skip pre-filling entirely.
173
+ */
174
+ onFetchExistingRules?: (folderPath: string[]) => Promise<PublicationRule[]>;
119
175
  /** Called when the "Edit" button is clicked in the details panel. Shown only when the item's `isEditable` is `true`. */
120
176
  onEdit?: (item: CatalogItem) => void;
177
+ /**
178
+ * Called when the "Download" action is clicked in the details panel, with no
179
+ * confirmation step. When "Download" renders in the Manage menu (see
180
+ * `isDownloadPrimary`), the panel does not await the result or show a
181
+ * pending state, so the host owns any progress and failure feedback. When
182
+ * "Download" is the primary action, the panel awaits this call and shows a
183
+ * pending/disabled state for its duration.
184
+ */
185
+ onDownload?: (item: CatalogItem) => Promise<void> | void;
186
+ /**
187
+ * Narrows which items offer the "Download" action. Defaults to `true`
188
+ * (visible for every item) whenever `onDownload` is supplied.
189
+ */
190
+ isDownloadVisible?: (item: CatalogItem) => boolean;
191
+ /**
192
+ * Resolves whether an item's Download action renders as the primary action
193
+ * instead of a Manage-menu entry. Defaults to
194
+ * `item.type === CatalogEntityType.Skill`.
195
+ */
196
+ isDownloadPrimary?: (item: CatalogItem) => boolean;
197
+ /**
198
+ * Resolves the text of a file picked in the details panel's Content tab,
199
+ * given its opaque `id`. The panel shows a loading state while it is
200
+ * pending and renders the resolved text as the body. Superseded by
201
+ * `onLoadContentFilePreview` for a given pick when both are supplied.
202
+ */
203
+ onLoadContentFile?: (fileId: string) => Promise<string | undefined>;
204
+ /**
205
+ * Resolves a picked file's typed preview, given its opaque `id`. Takes
206
+ * precedence over `onLoadContentFile` when both are supplied.
207
+ */
208
+ onLoadContentFilePreview?: (fileId: string) => Promise<CatalogContentFilePreview | undefined>;
209
+ /**
210
+ * Renders a picked file through a host-owned preview surface. Takes
211
+ * precedence over both loading callbacks, while the catalog continues to
212
+ * own selection and passes the opaque file id and resolved basename only.
213
+ */
214
+ renderContentFilePreview?: (fileId: string, fileName: string) => ReactNode;
121
215
  /**
122
216
  * Called immediately when the "Delete" button in the details panel is
123
217
  * clicked, with no confirmation step. Shown only when the item's `isMyApp`
@@ -125,6 +219,56 @@ export interface CatalogProps {
125
219
  * promise; the button shows a disabled state while pending.
126
220
  */
127
221
  onDelete?: (item: CatalogItem) => Promise<void> | void;
222
+ /**
223
+ * Called when removal is confirmed via the details panel's confirmation
224
+ * popup, for an item shared with the current user (`sharedWithMe: true`).
225
+ * May return a promise; the popup shows a loading state and prevents
226
+ * duplicate submission while pending.
227
+ */
228
+ onUnshare?: (item: CatalogItem) => Promise<void> | void;
229
+ /**
230
+ * Narrows where the "Remove from My List" action is offered, on top of the
231
+ * built-in `sharedWithMe`/`isMyApp` rule. Use it to declare that unsharing
232
+ * is unsupported for a kind of item. Defaults to `true` (visible) when
233
+ * absent.
234
+ */
235
+ isUnshareVisible?: (item: CatalogItem) => boolean;
236
+ /**
237
+ * Called when revocation is confirmed via the details panel's confirmation
238
+ * step, for an item the current user owns (`isMyApp: true`), removing every
239
+ * recipient's shared access at once. May return a promise; the confirmation
240
+ * shows a loading state and prevents duplicate submission while pending.
241
+ */
242
+ onRevokeShare?: (item: CatalogItem) => Promise<void> | void;
243
+ /**
244
+ * Resolves how many users currently hold shared access to an owned item.
245
+ * Called when the owner opens the details panel's Manage menu, so "Revoke
246
+ * access" is gated and labelled on a count that is never stale. `0` hides
247
+ * the action; `undefined` (or a rejection) leaves it reachable without a
248
+ * count. Omit to offer the action for every owned item.
249
+ */
250
+ onFetchRecipientsCount?: (item: CatalogItem) => Promise<number | undefined>;
251
+ /**
252
+ * Narrows where the "Revoke access" action is offered, on top of the
253
+ * built-in `isMyApp` rule and the recipient count. Use it to declare that
254
+ * revoking is unsupported for a kind of item. Defaults to `true` (visible)
255
+ * when absent.
256
+ */
257
+ isRevokeShareVisible?: (item: CatalogItem) => boolean;
258
+ /**
259
+ * Called when unpublish is confirmed via the details panel's confirmation
260
+ * step, with the published folder's path segments. May return a promise;
261
+ * the confirmation shows a loading state and prevents duplicate submission
262
+ * while pending. The published copy survives until an administrator
263
+ * approves, so the panel stays open and the item stays visible.
264
+ */
265
+ onUnpublish?: (item: CatalogItem, folderPath: string[]) => Promise<void> | void;
266
+ /**
267
+ * Narrows where the "Unpublish" action is offered, on top of the presence
268
+ * of `onUnpublish` and at least one resolved `getPublishHistory` entry.
269
+ * Defaults to `true` (visible) when absent.
270
+ */
271
+ isUnpublishVisible?: (item: CatalogItem) => boolean;
128
272
  /**
129
273
  * Renders the Share popover content anchored to the Share button in the
130
274
  * details panel. When provided, clicking Share opens this popover instead
@@ -138,16 +282,11 @@ export interface CatalogProps {
138
282
  */
139
283
  isShareVisible?: (item: CatalogItem) => boolean;
140
284
  /**
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.
285
+ * Resolves whether "Share" renders as its own button in the details header
286
+ * rather than an entry in its "Manage" menu. Defaults to `true` — the
287
+ * button. Returning `false` moves it into the menu, beside "Delete".
144
288
  */
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;
289
+ isSharePrimary?: (item: CatalogItem) => boolean;
151
290
  /**
152
291
  * Called when the credentials login form is submitted in the details
153
292
  * panel, for the given credentials `level` (`USER` or `GLOBAL`). May
@@ -177,15 +316,33 @@ export interface CatalogProps {
177
316
  * Dropdown options for the Create button. When provided, the button opens a
178
317
  * menu instead of calling `onCreateClick` directly.
179
318
  */
180
- createOptions?: CreateOption[];
319
+ createOptions?: DropdownItem[];
181
320
  /** Called when the Create button is clicked (used when `createOptions` is absent). */
182
321
  onCreateClick?: () => void;
183
322
  /** Hides the "Create" button entirely, e.g. when rendering as a read-only picker. Default: false. */
184
323
  hideCreateButton?: boolean;
324
+ /**
325
+ * Renders the whole catalog as a read-only browsing surface. Browse cards
326
+ * lose their favorite star, footer divider, and "Featured" tag; the list
327
+ * view loses its "Favorite" column; the "Create" button and the favorites
328
+ * strip are not rendered; and the details panel withholds its favorite star
329
+ * and every mutating action (Share, Publish/Unpublish, Edit, Delete,
330
+ * "Remove from My List", "Revoke access", and the credentials Log in / Log
331
+ * out / manage button). The non-mutating actions — the primary "Use in
332
+ * chat" and Download — still render. Default: false.
333
+ */
334
+ isReadonly?: boolean;
185
335
  /** Hides the page heading (title row), e.g. when the host renders its own title outside the catalog. Default: false. */
186
336
  hidePageTitle?: boolean;
187
- /** Initial Browse view mode (grid or list). Default: `CatalogViewMode.Grid`. */
337
+ /** Initial Browse view mode (`Grid` renders the card grid, `Cards` the list view). Default: `CatalogViewMode.Grid`. */
188
338
  initialViewMode?: CatalogViewMode;
339
+ /**
340
+ * Lets the Browse content (card grid and list view) span the full width of
341
+ * its container instead of sitting in a centered, 1180 px-wide column with
342
+ * empty gutters on wide screens. The 32 px side padding is kept either way,
343
+ * and the wider container yields more card columns. Default: false.
344
+ */
345
+ isFullWidth?: boolean;
189
346
  /** ID of an item to visually mark as selected (border, tint, and checkmark) in the Browse grid. */
190
347
  selectedItemId?: string;
191
348
  /**
@@ -203,6 +360,11 @@ export interface CatalogProps {
203
360
  styles?: CatalogStyles;
204
361
  /** Text overrides forwarded to the item details panel. */
205
362
  detailsTexts?: ItemDetailsTexts;
363
+ /**
364
+ * Footer note forwarded to the item details panel's Limits tab, e.g. a
365
+ * link to a full usage-limits page. Omitted (the default) hides the footer.
366
+ */
367
+ detailsLimitsFooterNote?: ReactNode;
206
368
  /**
207
369
  * Externally-controlled active sort key. When omitted, `Catalog` manages
208
370
  * its own sort state internally, defaulting to `CatalogSortKey.RecentlyUpdated`.
@@ -225,5 +387,13 @@ export interface CatalogProps {
225
387
  isMyAppsActive?: boolean;
226
388
  /** Called when the user toggles the "My Apps" filter; required to control `isMyAppsActive`. */
227
389
  onMyAppsActiveChange?: (isActive: boolean) => void;
390
+ /**
391
+ * Externally-controlled active entity-type tab id. When omitted, `Catalog`
392
+ * manages its own tab state internally, defaulting to the first tab
393
+ * returned by `buildCatalogTabs`.
394
+ */
395
+ activeTab?: string;
396
+ /** Called when the user switches tabs; required to control `activeTab`. */
397
+ onActiveTabChange?: (tabId: string) => void;
228
398
  }
229
399
  //# sourceMappingURL=catalog-props.d.ts.map