@epam/ai-dial-catalog 0.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/components/AppIdentity/AppIdentity.d.ts +43 -0
  2. package/components/AppIdentity/AppIdentity.d.ts.map +1 -0
  3. package/components/CardGrid/Card.d.ts +5 -0
  4. package/components/CardGrid/Card.d.ts.map +1 -0
  5. package/components/CardGrid/CardGrid.d.ts +5 -0
  6. package/components/CardGrid/CardGrid.d.ts.map +1 -0
  7. package/components/CardGrid/CardRowRenderer.d.ts +14 -0
  8. package/components/CardGrid/CardRowRenderer.d.ts.map +1 -0
  9. package/components/Catalog/Catalog.d.ts +9 -0
  10. package/components/Catalog/Catalog.d.ts.map +1 -0
  11. package/components/Catalog/CreateButton.d.ts +17 -0
  12. package/components/Catalog/CreateButton.d.ts.map +1 -0
  13. package/components/Details/ApiDetails.d.ts +34 -0
  14. package/components/Details/ApiDetails.d.ts.map +1 -0
  15. package/components/Details/DetailsPanel.d.ts +5 -0
  16. package/components/Details/DetailsPanel.d.ts.map +1 -0
  17. package/components/Details/Header/Header.d.ts +15 -0
  18. package/components/Details/Header/Header.d.ts.map +1 -0
  19. package/components/Details/Summary/Limits.d.ts +18 -0
  20. package/components/Details/Summary/Limits.d.ts.map +1 -0
  21. package/components/Details/Summary/Summary.d.ts +12 -0
  22. package/components/Details/Summary/Summary.d.ts.map +1 -0
  23. package/components/Details/TabsContent/About.d.ts +13 -0
  24. package/components/Details/TabsContent/About.d.ts.map +1 -0
  25. package/components/Details/TabsContent/DataGrid/DataGrid.d.ts +20 -0
  26. package/components/Details/TabsContent/DataGrid/DataGrid.d.ts.map +1 -0
  27. package/components/Details/TabsContent/Overview.d.ts +22 -0
  28. package/components/Details/TabsContent/Overview.d.ts.map +1 -0
  29. package/components/Details/TabsContent/Pricing.d.ts +20 -0
  30. package/components/Details/TabsContent/Pricing.d.ts.map +1 -0
  31. package/components/Details/TabsContent/Tools/Tools.d.ts +18 -0
  32. package/components/Details/TabsContent/Tools/Tools.d.ts.map +1 -0
  33. package/components/EntityBadge/EntityBadge.d.ts +12 -0
  34. package/components/EntityBadge/EntityBadge.d.ts.map +1 -0
  35. package/components/EntityHeader/EntityHeader.d.ts +30 -0
  36. package/components/EntityHeader/EntityHeader.d.ts.map +1 -0
  37. package/components/Favorites/FavoriteCard.d.ts +28 -0
  38. package/components/Favorites/FavoriteCard.d.ts.map +1 -0
  39. package/components/Favorites/Favorites.d.ts +8 -0
  40. package/components/Favorites/Favorites.d.ts.map +1 -0
  41. package/components/FeaturedChip/FeaturedChip.d.ts +11 -0
  42. package/components/FeaturedChip/FeaturedChip.d.ts.map +1 -0
  43. package/components/Filter/Filter.d.ts +32 -0
  44. package/components/Filter/Filter.d.ts.map +1 -0
  45. package/components/FolderPath/FolderPath.d.ts +16 -0
  46. package/components/FolderPath/FolderPath.d.ts.map +1 -0
  47. package/components/ItemHeader/ItemHeader.d.ts +14 -0
  48. package/components/ItemHeader/ItemHeader.d.ts.map +1 -0
  49. package/components/ListView/ListView.d.ts +9 -0
  50. package/components/ListView/ListView.d.ts.map +1 -0
  51. package/components/ListView/Renders/EntityTypeCellRenderer.d.ts +6 -0
  52. package/components/ListView/Renders/EntityTypeCellRenderer.d.ts.map +1 -0
  53. package/components/ListView/Renders/FolderCellRenderer.d.ts +6 -0
  54. package/components/ListView/Renders/FolderCellRenderer.d.ts.map +1 -0
  55. package/components/ListView/Renders/NameCellRenderer.d.ts +6 -0
  56. package/components/ListView/Renders/NameCellRenderer.d.ts.map +1 -0
  57. package/components/ListView/Renders/StarCellRenderer.d.ts +6 -0
  58. package/components/ListView/Renders/StarCellRenderer.d.ts.map +1 -0
  59. package/components/ListView/Renders/TagsCellRenderer.d.ts +5 -0
  60. package/components/ListView/Renders/TagsCellRenderer.d.ts.map +1 -0
  61. package/components/ListView/columns.d.ts +4 -0
  62. package/components/ListView/columns.d.ts.map +1 -0
  63. package/components/SearchBar/SearchBar.d.ts +24 -0
  64. package/components/SearchBar/SearchBar.d.ts.map +1 -0
  65. package/components/StarToggleButton/StarToggleButton.d.ts +18 -0
  66. package/components/StarToggleButton/StarToggleButton.d.ts.map +1 -0
  67. package/components/TableView/TableView.d.ts +37 -0
  68. package/components/TableView/TableView.d.ts.map +1 -0
  69. package/components/Toolbar/Rows/TitleRow.d.ts +30 -0
  70. package/components/Toolbar/Rows/TitleRow.d.ts.map +1 -0
  71. package/components/Toolbar/Toolbar.d.ts +5 -0
  72. package/components/Toolbar/Toolbar.d.ts.map +1 -0
  73. package/components/TopicTag/TopicTag.d.ts +22 -0
  74. package/components/TopicTag/TopicTag.d.ts.map +1 -0
  75. package/constants/catalog-defaults.d.ts +4 -0
  76. package/constants/catalog-defaults.d.ts.map +1 -0
  77. package/constants/entity-colors.d.ts +6 -0
  78. package/constants/entity-colors.d.ts.map +1 -0
  79. package/constants/virtual-grid.d.ts +36 -0
  80. package/constants/virtual-grid.d.ts.map +1 -0
  81. package/index.css +2 -0
  82. package/index.d.ts +44 -0
  83. package/index.d.ts.map +1 -0
  84. package/index.js +115654 -0
  85. package/models/card-props.d.ts +66 -0
  86. package/models/card-props.d.ts.map +1 -0
  87. package/models/card-row-data.d.ts +21 -0
  88. package/models/card-row-data.d.ts.map +1 -0
  89. package/models/catalog-item.d.ts +43 -0
  90. package/models/catalog-item.d.ts.map +1 -0
  91. package/models/catalog-props.d.ts +104 -0
  92. package/models/catalog-props.d.ts.map +1 -0
  93. package/models/catalog-styles.d.ts +62 -0
  94. package/models/catalog-styles.d.ts.map +1 -0
  95. package/models/entity-summary.d.ts +23 -0
  96. package/models/entity-summary.d.ts.map +1 -0
  97. package/models/favorites.d.ts +54 -0
  98. package/models/favorites.d.ts.map +1 -0
  99. package/models/grid-context.d.ts +11 -0
  100. package/models/grid-context.d.ts.map +1 -0
  101. package/models/grid-props.d.ts +28 -0
  102. package/models/grid-props.d.ts.map +1 -0
  103. package/models/item-details-data.d.ts +106 -0
  104. package/models/item-details-data.d.ts.map +1 -0
  105. package/models/item-details-props.d.ts +123 -0
  106. package/models/item-details-props.d.ts.map +1 -0
  107. package/models/item-overview.d.ts +31 -0
  108. package/models/item-overview.d.ts.map +1 -0
  109. package/models/list-props.d.ts +53 -0
  110. package/models/list-props.d.ts.map +1 -0
  111. package/models/sort.d.ts +8 -0
  112. package/models/sort.d.ts.map +1 -0
  113. package/models/toolbar-props.d.ts +85 -0
  114. package/models/toolbar-props.d.ts.map +1 -0
  115. package/package.json +26 -0
  116. package/test-setup.d.ts +1 -0
  117. package/test-setup.d.ts.map +1 -0
  118. package/types/code-language.d.ts +7 -0
  119. package/types/code-language.d.ts.map +1 -0
  120. package/types/detail-tab.d.ts +10 -0
  121. package/types/detail-tab.d.ts.map +1 -0
  122. package/types/entity-tag.d.ts +9 -0
  123. package/types/entity-tag.d.ts.map +1 -0
  124. package/types/entity-type.d.ts +11 -0
  125. package/types/entity-type.d.ts.map +1 -0
  126. package/types/sort.d.ts +7 -0
  127. package/types/sort.d.ts.map +1 -0
  128. package/types/view-mode.d.ts +6 -0
  129. package/types/view-mode.d.ts.map +1 -0
  130. package/utils/card-grid.d.ts +3 -0
  131. package/utils/card-grid.d.ts.map +1 -0
  132. package/utils/catalog-filter.d.ts +12 -0
  133. package/utils/catalog-filter.d.ts.map +1 -0
  134. package/utils/catalog-sort.d.ts +11 -0
  135. package/utils/catalog-sort.d.ts.map +1 -0
  136. package/utils/catalog-tabs.d.ts +6 -0
  137. package/utils/catalog-tabs.d.ts.map +1 -0
  138. package/utils/parse-about-content.d.ts +32 -0
  139. package/utils/parse-about-content.d.ts.map +1 -0
  140. package/utils/styles.d.ts +7 -0
  141. package/utils/styles.d.ts.map +1 -0
  142. package/utils/use-fav-columns.d.ts +6 -0
  143. package/utils/use-fav-columns.d.ts.map +1 -0
  144. package/utils/use-scroll-virtualizer.d.ts +27 -0
  145. package/utils/use-scroll-virtualizer.d.ts.map +1 -0
@@ -0,0 +1,123 @@
1
+ import { CatalogItem } from './catalog-item';
2
+ /** Text overrides for all user-visible strings in `DetailsPanel`. */
3
+ export interface ItemDetailsTexts {
4
+ /** "Share" action button label. Default: `'Share'`. */
5
+ shareLabel?: string;
6
+ /** Caption above the short intro text. Default: `'Intro'`. */
7
+ introLabel?: string;
8
+ /** "About" tab label. Default: `'About'`. */
9
+ tabAboutLabel?: string;
10
+ /** "Overview" tab label. Default: `'Overview'`. */
11
+ tabOverviewLabel?: string;
12
+ /** "Pricing" tab label. Default: `'Pricing'`. */
13
+ tabPricingLabel?: string;
14
+ /** "API" tab label. Default: `'API'`. */
15
+ tabApiLabel?: string;
16
+ /** Accessible label for the details panel `role="dialog"`. Default: `'Item details'`. */
17
+ ariaLabel?: string;
18
+ /** Accessible label for the close button. Default: `'Close'`. */
19
+ closeAriaLabel?: string;
20
+ /** Accessible label for the star button when the item is not starred. Default: `'Add to favorites'`. */
21
+ addToFavoritesAriaLabel?: string;
22
+ /** Accessible label for the star button when the item is already starred. Default: `'Remove from favorites'`. */
23
+ removeFromFavoritesAriaLabel?: string;
24
+ /** "Yes" label for boolean-true spec values. Default: `'Yes'`. */
25
+ overviewYesLabel?: string;
26
+ /** "No" label for boolean-false spec values. Default: `'No'`. */
27
+ overviewNoLabel?: string;
28
+ /** "Tools" tab label. Default: `'Tools'`. */
29
+ tabToolsLabel?: string;
30
+ /** Label on the "Featured" tag chip shown when the entity is featured. Default: `'Featured'`. */
31
+ featuredLabel?: string;
32
+ /** Primary action button label. Default: `'Use in chat'`. */
33
+ primaryActionLabel?: string;
34
+ /** When `false`, the primary action button is hidden. Default: `true`. */
35
+ hasPrimaryAction?: boolean;
36
+ /** Label above the daily-limit progress bar. Default: `'Daily limit'`. */
37
+ dailyLimitLabel?: string;
38
+ /** "Resource" section heading in the API tab. Default: `'Resource'`. */
39
+ apiResourceSectionLabel?: string;
40
+ /** "Code snippet" section heading in the API tab. Default: `'Code snippet'`. */
41
+ apiSnippetSectionLabel?: string;
42
+ /** "Model ID" row label in the API tab. Default: `'Model ID'`. */
43
+ apiModelIdLabel?: string;
44
+ /** "Endpoint" section heading in the API tab (multi-endpoint selector). Default: `'Endpoint'`. */
45
+ apiEndpointSectionLabel?: string;
46
+ /** URL row label inside each endpoint option. Default: `'Endpoint'`. */
47
+ apiEndpointLabel?: string;
48
+ /** "Request example" row label in the API tab. Default: `'Request example'`. */
49
+ apiRequestExampleLabel?: string;
50
+ /** "Response schema" row label in the API tab. Default: `'Response schema'`. */
51
+ apiResponseSchemaLabel?: string;
52
+ /** Accessible label for the copy-to-clipboard button. Default: `'Copy'`. */
53
+ copyCodeAriaLabel?: string;
54
+ /** "Token pricing" section heading in the Pricing tab. Default: `'Token pricing'`. */
55
+ pricingPricesSectionLabel?: string;
56
+ /** "Usage limits" section heading in the Pricing tab. Default: `'Usage limits'`. */
57
+ pricingLimitsSectionLabel?: string;
58
+ }
59
+ /** Typography class overrides for `DetailsPanel` text elements. */
60
+ export interface ItemDetailsTypography {
61
+ /** Typography class for the entity name. Default: `'dial-body-semi-text text-primary'`. */
62
+ nameClassName?: string;
63
+ /** Typography class for the provider label below the entity name. Default: `'dial-tiny-text text-secondary'`. */
64
+ providerClassName?: string;
65
+ /** Typography class for the version string. Default: `'dial-tiny-text'`. */
66
+ versionClassName?: string;
67
+ /** Typography class for the intro section caption. Default: `'dial-caption-text'`. */
68
+ introCaptionClassName?: string;
69
+ /** Typography class for the short intro description. Default: `'dial-small-text'`. */
70
+ introTextClassName?: string;
71
+ /** Typography class for section headings inside the About tab. Default: `'dial-small-semi-text'`. */
72
+ contentHeadingClassName?: string;
73
+ /** Typography class for the About tab body text. Default: `'dial-small-text'`. */
74
+ contentClassName?: string;
75
+ /** Typography class for Overview section headings. Default: `'dial-caption-text'`. */
76
+ overviewSectionClassName?: string;
77
+ /** Typography class for spec row labels (left column). Default: `'dial-small-semi-text'`. */
78
+ overviewLabelClassName?: string;
79
+ /** Typography class for string and "No" spec values. Default: `'dial-small-text'`. */
80
+ overviewValueClassName?: string;
81
+ /** Typography class for "Yes" spec values. Default: `'dial-small-text'`. */
82
+ overviewValueTrueClassName?: string;
83
+ /** Typography class applied to folder path separator labels. Default: `'dial-tiny-text'`. */
84
+ folderLabelClassName?: string;
85
+ /** Typography class applied to the leaf (last) folder path segment. Default: `'dial-tiny-semi-text'`. */
86
+ folderLeafClassName?: string;
87
+ }
88
+ /** Grouped style overrides for `DetailsPanel`. */
89
+ export interface ItemDetailsStyles {
90
+ /** Typography class overrides for text elements. */
91
+ typography?: ItemDetailsTypography;
92
+ }
93
+ /** Props for `DetailsPanel`. */
94
+ export interface DetailsPanelProps {
95
+ /** The catalog item to display in the panel. */
96
+ item: CatalogItem;
97
+ /** Controls whether the panel is visible. */
98
+ isOpen: boolean;
99
+ /** Initial starred state for the item. Default: `false`. */
100
+ isStarred?: boolean;
101
+ /**
102
+ * About-tab body text, typically supplied by an async fetch.
103
+ * Falls back to `item.longDescription`, then `item.description`.
104
+ */
105
+ aboutContent?: string;
106
+ /** When `true`, the About tab renders a loading skeleton instead of content. */
107
+ isAboutLoading?: boolean;
108
+ /** Called when the panel should close (close button or backdrop click). */
109
+ onClose: () => void;
110
+ /** Called when the star/favorite button is toggled. */
111
+ onToggleFavorite?: (id: string, isStarred: boolean) => void;
112
+ /** Called when the "Use in chat" button is clicked. */
113
+ onUseInChat?: (item: CatalogItem) => void;
114
+ /** Controls whether the primary action button is shown for the item. */
115
+ isPrimaryActionVisible?: (item: CatalogItem) => boolean;
116
+ /** Called when the "Share" button is clicked. */
117
+ onShare?: (item: CatalogItem) => void;
118
+ /** Text overrides for all user-visible strings. */
119
+ texts?: ItemDetailsTexts;
120
+ /** Grouped style overrides. */
121
+ styles?: ItemDetailsStyles;
122
+ }
123
+ //# sourceMappingURL=item-details-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-details-props.d.ts","sourceRoot":"","sources":["../../src/models/item-details-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wGAAwG;IACxG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kGAAkG;IAClG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oFAAoF;IACpF,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACpC,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qGAAqG;IACrG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6FAA6F;IAC7F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sFAAsF;IACtF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,IAAI,EAAE,WAAW,CAAC;IAClB,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,uDAAuD;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,wEAAwE;IACxE,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IACxD,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,mDAAmD;IACnD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B"}
@@ -0,0 +1,31 @@
1
+ /** A single key-value row in the Overview tab. */
2
+ export interface OverviewSpec {
3
+ /** Displayed label (left column). */
4
+ label: string;
5
+ /**
6
+ * Displayed value.
7
+ * `true` → check icon + "Yes" (primary, semibold).
8
+ * `false` → "No" (secondary, regular).
9
+ * `string` → plain text (primary, regular).
10
+ */
11
+ value: string | boolean;
12
+ }
13
+ /** A named group of spec rows in the Overview tab. */
14
+ export interface OverviewSection {
15
+ /** Section heading, e.g. "Capabilities" or "Specification". */
16
+ title: string;
17
+ /** Ordered spec rows. */
18
+ specs: OverviewSpec[];
19
+ }
20
+ /**
21
+ * Structured data powering the Overview tab of `DetailsPanel`.
22
+ *
23
+ * Recommended source format: a TypeScript file per entity type (or per provider)
24
+ * exporting a `Record<string, CatalogItemOverview>` keyed by item id.
25
+ * Example: `export const MODEL_OVERVIEWS: Record<string, CatalogItemOverview> = { 'gpt-4o': { sections: [...] } }`.
26
+ */
27
+ export interface CatalogItemOverview {
28
+ /** Ordered list of spec sections shown in the Overview tab. */
29
+ sections: OverviewSection[];
30
+ }
31
+ //# sourceMappingURL=item-overview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-overview.d.ts","sourceRoot":"","sources":["../../src/models/item-overview.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B"}
@@ -0,0 +1,53 @@
1
+ import { CatalogItem } from './catalog-item';
2
+ /** Typography class overrides for `ListView` cells. */
3
+ export interface ListViewTypography {
4
+ /** Typography class for item name text. Default: `'dial-h3-text'`. */
5
+ nameClassName?: string;
6
+ /** Typography class for item version text. Default: `'dial-tiny-text'`. */
7
+ versionClassName?: string;
8
+ /** Typography class for item description text. Default: `'dial-small-text'`. */
9
+ descriptionClassName?: string;
10
+ /** Typography class for folder path text. Default: `'dial-small-text'`. */
11
+ folderClassName?: string;
12
+ /** Typography class for the last (deepest) folder segment. Default: `'dial-small-semi-text'`. */
13
+ folderLastSegmentClassName?: string;
14
+ }
15
+ /** Color overrides for `ListView` cells, applied via CSS custom properties. */
16
+ export interface ListViewColors {
17
+ /** Color for item name text. Fallback: `--text-primary`. */
18
+ nameText?: string;
19
+ /** Color for version/description/folder text. Fallback: `--text-secondary`. */
20
+ secondaryText?: string;
21
+ }
22
+ /** Combined style overrides for `ListView`. */
23
+ export interface ListViewStyles {
24
+ /** Typography class overrides. */
25
+ typography?: ListViewTypography;
26
+ /** Color overrides applied as CSS variables. */
27
+ colors?: ListViewColors;
28
+ }
29
+ /** Props for ListView. */
30
+ export interface ListViewProps {
31
+ /** Items to display in the table. */
32
+ items: CatalogItem[];
33
+ /** Active search query — passed through grid context so cell renderers can highlight. */
34
+ query?: string;
35
+ /** ARIA label for the grid element. Default: 'Catalog'. */
36
+ ariaLabel?: string;
37
+ /** Grid empty-state title. */
38
+ emptyStateTitle?: string;
39
+ /** Grouped typography and color overrides for table cells. */
40
+ styles?: ListViewStyles;
41
+ /** Called when the star icon is toggled on a row. */
42
+ onToggleFavorite?: (id: string, isStarred: boolean) => void;
43
+ /** Called when a table row is clicked (excluding the star column). */
44
+ onItemClick?: (item: CatalogItem) => void;
45
+ /**
46
+ * When set, the ag-grid column header becomes `position: sticky` at this
47
+ * pixel offset from the scroll container's top edge. Pass the height of any
48
+ * sticky UI above the list (e.g. the catalog page heading) so the header
49
+ * sits flush below it while the page scrolls.
50
+ */
51
+ stickyHeaderTop?: number;
52
+ }
53
+ //# sourceMappingURL=list-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-props.d.ts","sourceRoot":"","sources":["../../src/models/list-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,gDAAgD;IAChD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,8 @@
1
+ /** A single option in the sort dropdown. */
2
+ export interface CatalogSortOption {
3
+ /** Unique key, should match a CatalogSortKey value. */
4
+ value: string;
5
+ /** Display label shown in the dropdown. */
6
+ label: string;
7
+ }
8
+ //# sourceMappingURL=sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/models/sort.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,85 @@
1
+ import { CatalogViewMode } from '../types/view-mode';
2
+ /** A single option in the sort dropdown. */
3
+ export interface CatalogSortOption {
4
+ /** Sort key passed to `onSortChange`. */
5
+ value: string;
6
+ /** Display label shown in the dropdown. */
7
+ label: string;
8
+ }
9
+ /** Typography class overrides for `Toolbar`. */
10
+ export interface ToolbarTypography {
11
+ /** Typography class for the section title. Default: `'dial-h3-text'`. */
12
+ titleClassName?: string;
13
+ /** Typography class for the total count. Default: `'dial-tiny-text'`. */
14
+ countClassName?: string;
15
+ }
16
+ /** Color overrides for `Toolbar`, applied via CSS custom properties. */
17
+ export interface ToolbarColors {
18
+ /** Section background color. Fallback: `--bg-layer-1`. */
19
+ background?: string;
20
+ /** Section title text color. Fallback: `--text-primary`. */
21
+ titleText?: string;
22
+ /** Total count text color. Fallback: `--text-secondary`. */
23
+ countText?: string;
24
+ /** Filter icon color. Fallback: `--text-secondary`. */
25
+ icon?: string;
26
+ /** Vertical divider color next to sort dropdown. Fallback: `--stroke-secondary`. */
27
+ divider?: string;
28
+ /** Clear-all button text color. Fallback: `--text-error`. */
29
+ clearAll?: string;
30
+ /** Bottom border color of tabs row. Fallback: `--stroke-secondary`. */
31
+ tabsBorder?: string;
32
+ }
33
+ /** Grouped style overrides for `Toolbar`. */
34
+ export interface ToolbarStyles {
35
+ /** Typography class overrides for heading and count. */
36
+ typography?: ToolbarTypography;
37
+ /** Color overrides applied as CSS custom properties. */
38
+ colors?: ToolbarColors;
39
+ }
40
+ /** Props for Toolbar. */
41
+ export interface ToolbarProps {
42
+ /** Total item count shown next to the "Browse" heading. */
43
+ totalCount?: number;
44
+ /** Current display mode. */
45
+ viewMode: CatalogViewMode;
46
+ /** Called when the display mode changes. */
47
+ onViewModeChange: (mode: CatalogViewMode) => void;
48
+ /** Current search query. */
49
+ query: string;
50
+ /** Called when the query changes. */
51
+ onQueryChange: (q: string) => void;
52
+ /** Section heading text. Default: 'Browse'. */
53
+ title?: string;
54
+ /** Search input placeholder. Default: 'Search models, tools, agents…'. */
55
+ searchPlaceholder?: string;
56
+ /** Accessible label for switching to grid view. Default: 'Grid view'. */
57
+ gridViewLabel?: string;
58
+ /** Accessible label for switching to list view. Default: 'List view'. */
59
+ listViewLabel?: string;
60
+ /** Grouped typography and color overrides. */
61
+ styles?: ToolbarStyles;
62
+ /** Currently selected topic filters. Empty set means no topic filter is active. */
63
+ filters?: Set<string>;
64
+ /** Called when the topic filter selection changes. */
65
+ onFiltersChange?: (filters: Set<string>) => void;
66
+ /** All available topic strings shown as checkboxes in the filter dropdown. */
67
+ filterValues?: Set<string>;
68
+ /** Whether the "My Apps" filter checkbox is active. */
69
+ isMyAppsActive?: boolean;
70
+ /** Called when the "My Apps" toggle changes. */
71
+ onMyAppsChange?: (isActive: boolean) => void;
72
+ /** Label for the filter button when nothing is filtered. Default: 'From'. */
73
+ filterFromLabel?: string;
74
+ /** Label for the "My Apps" filter checkbox. Default: 'My Apps'. */
75
+ filterMyAppsLabel?: string;
76
+ /** Label for the Topics section inside the filter dropdown. Default: 'Topics'. */
77
+ filterTopicsLabel?: string;
78
+ /** Currently active sort key. */
79
+ sortKey?: string;
80
+ /** Called when the user selects a different sort option. */
81
+ onSortChange?: (key: string) => void;
82
+ /** Available sort options shown in the dropdown. */
83
+ sortOptions?: CatalogSortOption[];
84
+ }
85
+ //# sourceMappingURL=toolbar-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar-props.d.ts","sourceRoot":"","sources":["../../src/models/toolbar-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,wDAAwD;IACxD,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,4CAA4C;IAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,sDAAsD;IACtD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACjD,8EAA8E;IAC9E,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,oDAAoD;IACpD,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@epam/ai-dial-catalog",
3
+ "version": "0.0.0-dev.0",
4
+ "license": "Apache-2.0",
5
+ "type": "module",
6
+ "main": "./index.js",
7
+ "module": "./index.js",
8
+ "types": "./index.d.ts",
9
+ "exports": {
10
+ "./package.json": "./package.json",
11
+ "./styles.css": "./style.css",
12
+ ".": {
13
+ "types": "./index.d.ts",
14
+ "import": "./index.js",
15
+ "default": "./index.js"
16
+ }
17
+ },
18
+ "peerDependencies": {
19
+ "react": "^19.0.0",
20
+ "@tabler/icons-react": "^3.0.0",
21
+ "@epam/ai-dial-ui-kit": "0.12.0-dev.21",
22
+ "@epam/ai-dial-kit": "0.0.0-dev.0",
23
+ "@epam/ai-dial-chat-shared": "0.0.0-dev.0",
24
+ "ag-grid-community": "35.3.0"
25
+ }
26
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=test-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.d.ts","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /** Programming language identifier for API code snippets. */
2
+ export declare enum CodeLanguage {
3
+ Python = "python",
4
+ Curl = "curl",
5
+ JavaScript = "javascript"
6
+ }
7
+ //# sourceMappingURL=code-language.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-language.d.ts","sourceRoot":"","sources":["../../src/types/code-language.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B"}
@@ -0,0 +1,10 @@
1
+ /** Tab identifiers for the entity details panel. */
2
+ export declare enum CatalogDetailsTab {
3
+ About = "about",
4
+ Overview = "overview",
5
+ Pricing = "pricing",
6
+ Api = "api",
7
+ /** Tool definitions tab, shown for Toolset entities. */
8
+ Tools = "tools"
9
+ }
10
+ //# sourceMappingURL=detail-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detail-tab.d.ts","sourceRoot":"","sources":["../../src/types/detail-tab.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,wDAAwD;IACxD,KAAK,UAAU;CAChB"}
@@ -0,0 +1,9 @@
1
+ /** Promotional or lifecycle tag displayed on the entity header. */
2
+ export declare enum EntityTag {
3
+ Free = "FREE",
4
+ Featured = "FEATURED",
5
+ ByRequest = "BY_REQUEST",
6
+ Beta = "BETA",
7
+ Deprecated = "DEPRECATED"
8
+ }
9
+ //# sourceMappingURL=entity-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-tag.d.ts","sourceRoot":"","sources":["../../src/types/entity-tag.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B"}
@@ -0,0 +1,11 @@
1
+ /** Entity type for a catalog item. Values are uppercase for direct color-map lookup. */
2
+ export declare enum CatalogEntityType {
3
+ Model = "MODEL",
4
+ Application = "APPLICATION",
5
+ Agent = "AGENT",
6
+ Toolset = "TOOLSET",
7
+ Guardrail = "GUARDRAIL",
8
+ Skill = "SKILL",
9
+ Mcp = "MCP"
10
+ }
11
+ //# sourceMappingURL=entity-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-type.d.ts","sourceRoot":"","sources":["../../src/types/entity-type.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ"}
@@ -0,0 +1,7 @@
1
+ /** Sort order for the catalog browse view. */
2
+ export declare enum CatalogSortKey {
3
+ RecentlyUpdated = "recently-updated",
4
+ Newest = "newest",
5
+ NameAZ = "name-az"
6
+ }
7
+ //# sourceMappingURL=sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/types/sort.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,oBAAY,cAAc;IACxB,eAAe,qBAAqB;IACpC,MAAM,WAAW;IACjB,MAAM,YAAY;CACnB"}
@@ -0,0 +1,6 @@
1
+ /** Display mode for the browse section. */
2
+ export declare enum CatalogViewMode {
3
+ Grid = "grid",
4
+ List = "list"
5
+ }
6
+ //# sourceMappingURL=view-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mode.d.ts","sourceRoot":"","sources":["../../src/types/view-mode.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,IAAI,SAAS;CACd"}
@@ -0,0 +1,3 @@
1
+ /** Returns the number of card columns based on the container's pixel width. */
2
+ export declare const getColumnCount: (containerWidth: number) => number;
3
+ //# sourceMappingURL=card-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-grid.d.ts","sourceRoot":"","sources":["../../src/utils/card-grid.ts"],"names":[],"mappings":"AAUA,+EAA+E;AAC/E,eAAO,MAAM,cAAc,GAAI,gBAAgB,MAAM,KAAG,MAKvD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { CatalogItem } from '../models/catalog-item';
2
+ export declare const getFromLabel: (checked: Set<string>, allIds: Set<string> | undefined, defaultLabel?: string) => string;
3
+ /** Returns items that have at least one topic in the selected set. No-ops when `topics` is empty. */
4
+ export declare const filterByTopics: (items: CatalogItem[], topics: Set<string>) => CatalogItem[];
5
+ /** Returns items where `isMyApp` is `true`. */
6
+ export declare const filterByMyApp: (items: CatalogItem[]) => CatalogItem[];
7
+ /**
8
+ * Returns a filtered array of items whose name, description, or type includes the query.
9
+ * Case-insensitive and ignores leading/trailing whitespace.
10
+ */
11
+ export declare const filterCatalogItems: (items: CatalogItem[], query: string) => CatalogItem[];
12
+ //# sourceMappingURL=catalog-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-filter.d.ts","sourceRoot":"","sources":["../../src/utils/catalog-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,eAAO,MAAM,YAAY,GACvB,SAAS,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EAC/B,qBAAqB,KACpB,MAUF,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,cAAc,GACzB,OAAO,WAAW,EAAE,EACpB,QAAQ,GAAG,CAAC,MAAM,CAAC,KAClB,WAAW,EAGb,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,EAAE,KAAG,WAAW,EACjB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,WAAW,EAAE,EACpB,OAAO,MAAM,KACZ,WAAW,EAeb,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CatalogItem } from '../models/catalog-item';
2
+ /**
3
+ * Returns a sorted copy of the items array.
4
+ * Featured items always appear first in every sort mode.
5
+ * Within each group the chosen key is applied:
6
+ * 'recently-updated': no further ordering (original/API order).
7
+ * 'newest': descending by updatedAt; items without a timestamp sort last.
8
+ * 'name-az': alphabetical by name.
9
+ */
10
+ export declare const sortCatalogItems: (items: CatalogItem[], sortKey: string) => CatalogItem[];
11
+ //# sourceMappingURL=catalog-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-sort.d.ts","sourceRoot":"","sources":["../../src/utils/catalog-sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,EAAE,EACpB,SAAS,MAAM,KACd,WAAW,EAoBb,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TabModel } from '@epam/ai-dial-ui-kit';
2
+ import { CatalogItem } from '../models/catalog-item';
3
+ import { CatalogTitles } from '../models/catalog-props';
4
+ /** Derives entity-type tabs from items present in the catalog, sorted by canonical order. */
5
+ export declare const buildCatalogTabs: (items: CatalogItem[], tabLabels?: CatalogTitles["tabLabels"]) => TabModel[];
6
+ //# sourceMappingURL=catalog-tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-tabs.d.ts","sourceRoot":"","sources":["../../src/utils/catalog-tabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA4B7D,6FAA6F;AAC7F,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,EAAE,EACpB,YAAY,aAAa,CAAC,WAAW,CAAC,KACrC,QAAQ,EAOV,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** A run of consecutive bullet items within an about-content block. */
2
+ export interface AboutBulletRun {
3
+ kind: 'bullets';
4
+ items: string[];
5
+ }
6
+ /** A plain-text paragraph within an about-content block. */
7
+ export interface AboutTextRun {
8
+ kind: 'text';
9
+ text: string;
10
+ }
11
+ /** A single content run — either a list of bullets or a paragraph of text. */
12
+ export type AboutRun = AboutBulletRun | AboutTextRun;
13
+ /**
14
+ * A parsed section of about content.
15
+ * Sections with a `heading` start with a short non-bullet label line.
16
+ */
17
+ export interface AboutBlock {
18
+ /** Optional section heading (e.g. "Capabilities", "Pricing"). */
19
+ heading?: string;
20
+ /** Ordered list of content runs inside this block. */
21
+ runs: AboutRun[];
22
+ }
23
+ /**
24
+ * Parses a plain-text about description into structured blocks for rendering.
25
+ *
26
+ * Splits on blank lines. Within each chunk the first line becomes a section
27
+ * heading when it is ≤ 60 chars, does not start with `•`, and is followed by
28
+ * more lines. Content lines starting with `•` are grouped into bullet runs;
29
+ * other lines become text paragraph runs.
30
+ */
31
+ export declare const parseAboutContent: (content: string) => AboutBlock[];
32
+ //# sourceMappingURL=parse-about-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-about-content.d.ts","sourceRoot":"","sources":["../../src/utils/parse-about-content.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,UAAU,EAgCxD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CSSProperties } from 'react';
2
+ import { CatalogItem } from '../models/catalog-item';
3
+ import { CatalogStyles } from '../models/catalog-styles';
4
+ /** Returns CSS custom properties for entity color and shadow when the item is featured, undefined otherwise. */
5
+ export declare const getFeaturedEntityStyle: (item: CatalogItem) => CSSProperties | undefined;
6
+ export declare const getStyles: (catalogStyles?: CatalogStyles) => CSSProperties;
7
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/utils/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,GACjC,MAAM,WAAW,KAChB,aAAa,GAAG,SAOlB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,gBAAgB,aAAa,KAAG,aAezD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Returns the column count for the Favorites grid.
3
+ * Responsive: ≥1024 px → 4, ≥640 px → 2, else 1.
4
+ */
5
+ export declare const useFavColumns: () => number;
6
+ //# sourceMappingURL=use-fav-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-fav-columns.d.ts","sourceRoot":"","sources":["../../src/utils/use-fav-columns.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,MAYhC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { RefObject } from 'react';
2
+ /** Return value of `useScrollVirtualizer`. */
3
+ export interface ScrollVirtualizerResult {
4
+ /** Attach to the container element that wraps all rows. */
5
+ containerRef: RefObject<HTMLDivElement | null>;
6
+ /** Index of the first row to render (inclusive). */
7
+ startRow: number;
8
+ /** Index of the last row to render (exclusive). */
9
+ endRow: number;
10
+ /** Number of cards per row derived from the container width. */
11
+ columnCount: number;
12
+ /** Total number of rows for all items. */
13
+ rowCount: number;
14
+ /** Total pixel height of the full (un-windowed) content area. */
15
+ totalHeight: number;
16
+ }
17
+ /**
18
+ * Virtualizes a card grid whose scroll is driven by the nearest scrollable
19
+ * ancestor rather than an internal scroll container.
20
+ *
21
+ * Attach `containerRef` to a `position: relative` wrapper that has
22
+ * `height: totalHeight` so the page scroll height stays correct.
23
+ * Only rows between `startRow` (inclusive) and `endRow` (exclusive)
24
+ * need to be rendered.
25
+ */
26
+ export declare const useScrollVirtualizer: (itemCount: number, overscan?: number) => ScrollVirtualizerResult;
27
+ //# sourceMappingURL=use-scroll-virtualizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-scroll-virtualizer.d.ts","sourceRoot":"","sources":["../../src/utils/use-scroll-virtualizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAyBpE,8CAA8C;AAC9C,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,EACjB,iBAAY,KACX,uBAkEF,CAAC"}