@redocly/theme 0.59.0-rc.1 → 0.59.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.
- package/LICENSE +7 -1
- package/lib/components/Buttons/AIAssistantButton.js +6 -2
- package/lib/components/Buttons/ConnectMCPButton.d.ts +8 -0
- package/lib/components/Buttons/ConnectMCPButton.js +145 -0
- package/lib/components/Buttons/variables.d.ts +1 -0
- package/lib/components/Buttons/variables.js +42 -2
- package/lib/components/Catalog/CatalogEntity/CatalogEntityInfoBar.js +1 -0
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +1 -1
- package/lib/components/Catalog/CatalogEntityIcon.js +2 -1
- package/lib/components/Catalog/CatalogFilter/CatalogFilter.js +4 -0
- package/lib/components/Catalog/CatalogTagsWithTooltip.js +1 -1
- package/lib/components/Catalog/variables.js +1 -1
- package/lib/components/Dropdown/Dropdown.d.ts +16 -2
- package/lib/components/Dropdown/Dropdown.js +5 -5
- package/lib/components/Menu/MenuItem.js +1 -1
- package/lib/components/Navbar/NavbarItem.js +3 -3
- package/lib/components/PageActions/PageActions.js +4 -1
- package/lib/components/PageActions/variables.js +2 -0
- package/lib/components/Search/FilterFields/SearchFilterFieldTags.js +1 -2
- package/lib/components/Search/SearchAiActionButtons.d.ts +10 -0
- package/lib/components/Search/SearchAiActionButtons.js +43 -0
- package/lib/components/Search/SearchAiConversationInput.d.ts +3 -1
- package/lib/components/Search/SearchAiConversationInput.js +39 -7
- package/lib/components/Search/SearchAiDialog.d.ts +3 -6
- package/lib/components/Search/SearchAiDialog.js +20 -9
- package/lib/components/Search/SearchAiMessage.d.ts +9 -5
- package/lib/components/Search/SearchAiMessage.js +146 -22
- package/lib/components/Search/SearchAiNegativeFeedbackForm.d.ts +8 -0
- package/lib/components/Search/SearchAiNegativeFeedbackForm.js +169 -0
- package/lib/components/Search/SearchDialog.js +36 -5
- package/lib/components/Search/SearchGroups.js +2 -2
- package/lib/components/Search/variables.js +36 -64
- package/lib/components/Segmented/Segmented.d.ts +1 -8
- package/lib/components/Segmented/Segmented.js +3 -1
- package/lib/components/Select/SelectInput.js +1 -1
- package/lib/components/Select/variables.js +2 -2
- package/lib/components/Tag/Tag.d.ts +2 -1
- package/lib/components/Tag/Tag.js +66 -17
- package/lib/components/Tag/variables.dark.js +135 -36
- package/lib/components/Tag/variables.js +78 -61
- package/lib/core/constants/index.d.ts +1 -0
- package/lib/core/constants/index.js +1 -0
- package/lib/core/constants/mcp.d.ts +1 -0
- package/lib/core/constants/mcp.js +5 -0
- package/lib/core/constants/search.d.ts +5 -4
- package/lib/core/constants/search.js +4 -5
- package/lib/core/hooks/index.d.ts +3 -0
- package/lib/core/hooks/index.js +3 -0
- package/lib/core/hooks/menu/use-nested-menu.js +1 -1
- package/lib/core/hooks/search/use-feedback-tooltip.d.ts +6 -0
- package/lib/core/hooks/search/use-feedback-tooltip.js +26 -0
- package/lib/core/hooks/use-connect-mcp-button.d.ts +13 -0
- package/lib/core/hooks/use-connect-mcp-button.js +50 -0
- package/lib/core/hooks/use-mcp-config.d.ts +9 -0
- package/lib/core/hooks/use-mcp-config.js +27 -0
- package/lib/core/hooks/use-page-actions.d.ts +1 -1
- package/lib/core/hooks/use-page-actions.js +98 -95
- package/lib/core/hooks/use-product-picker.js +2 -1
- package/lib/core/hooks/use-tabs.d.ts +3 -2
- package/lib/core/hooks/use-tabs.js +115 -57
- package/lib/core/hooks/use-telemetry-fallback.d.ts +10 -8
- package/lib/core/hooks/use-telemetry-fallback.js +10 -8
- package/lib/core/openapi/index.d.ts +1 -0
- package/lib/core/styles/dark.js +4 -0
- package/lib/core/styles/global.js +5 -0
- package/lib/core/types/hooks.d.ts +2 -2
- package/lib/core/types/index.d.ts +1 -0
- package/lib/core/types/index.js +1 -0
- package/lib/core/types/l10n.d.ts +1 -1
- package/lib/core/types/mcp.d.ts +6 -0
- package/lib/core/types/mcp.js +3 -0
- package/lib/core/types/search.d.ts +11 -4
- package/lib/core/types/search.js +6 -0
- package/lib/core/types/segmented.d.ts +12 -0
- package/lib/core/types/segmented.js +3 -0
- package/lib/core/utils/frontmatter-translate.d.ts +6 -0
- package/lib/core/utils/frontmatter-translate.js +14 -0
- package/lib/core/utils/index.d.ts +2 -0
- package/lib/core/utils/index.js +2 -0
- package/lib/core/utils/mcp.d.ts +2 -0
- package/lib/core/utils/mcp.js +31 -0
- package/lib/icons/AiStarsGradientIcon/AiStarsGradientIcon.js +44 -4
- package/lib/icons/AiStarsIcon/AiStarsIcon.js +11 -2
- package/lib/icons/ConnectIcon/ConnectIcon.d.ts +9 -0
- package/lib/icons/ConnectIcon/ConnectIcon.js +17 -0
- package/lib/icons/CubeIcon/CubeIcon.d.ts +9 -0
- package/lib/icons/CubeIcon/CubeIcon.js +17 -0
- package/lib/icons/HashtagIcon/HashtagIcon.d.ts +9 -0
- package/lib/icons/HashtagIcon/HashtagIcon.js +22 -0
- package/lib/icons/RedoclyIcon/RedoclyIcon.js +4 -7
- package/lib/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.d.ts +9 -0
- package/lib/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.js +34 -0
- package/lib/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.d.ts +9 -0
- package/lib/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.js +34 -0
- package/lib/icons/VSCodeIcon/VSCodeIcon.d.ts +9 -0
- package/lib/icons/VSCodeIcon/VSCodeIcon.js +17 -0
- package/lib/index.d.ts +1 -2
- package/lib/index.js +1 -2
- package/lib/markdoc/components/Cards/Card.js +1 -28
- package/lib/markdoc/components/ConnectMCP/ConnectMCP.d.ts +8 -0
- package/lib/markdoc/components/ConnectMCP/ConnectMCP.js +19 -0
- package/lib/markdoc/components/Tabs/TabList.d.ts +3 -1
- package/lib/markdoc/components/Tabs/TabList.js +197 -47
- package/lib/markdoc/components/Tabs/Tabs.d.ts +2 -1
- package/lib/markdoc/components/Tabs/Tabs.js +57 -12
- package/lib/markdoc/components/default.d.ts +1 -0
- package/lib/markdoc/components/default.js +1 -0
- package/lib/markdoc/default.d.ts +6 -0
- package/lib/markdoc/default.js +2 -0
- package/lib/markdoc/tags/card.js +0 -1
- package/lib/markdoc/tags/connect-mcp.d.ts +2 -0
- package/lib/markdoc/tags/connect-mcp.js +27 -0
- package/package.json +6 -6
- package/src/components/Buttons/AIAssistantButton.tsx +6 -2
- package/src/components/Buttons/ConnectMCPButton.tsx +180 -0
- package/src/components/Buttons/variables.ts +42 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityInfoBar.tsx +1 -0
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +1 -1
- package/src/components/Catalog/CatalogEntityIcon.tsx +2 -1
- package/src/components/Catalog/CatalogFilter/CatalogFilter.tsx +5 -0
- package/src/components/Catalog/CatalogTagsWithTooltip.tsx +1 -5
- package/src/components/Catalog/variables.ts +1 -1
- package/src/components/Dropdown/Dropdown.tsx +84 -79
- package/src/components/Menu/MenuItem.tsx +1 -0
- package/src/components/Navbar/NavbarItem.tsx +6 -5
- package/src/components/PageActions/PageActions.tsx +5 -1
- package/src/components/PageActions/variables.ts +2 -0
- package/src/components/Search/FilterFields/SearchFilterFieldTags.tsx +3 -3
- package/src/components/Search/SearchAiActionButtons.tsx +76 -0
- package/src/components/Search/SearchAiConversationInput.tsx +61 -18
- package/src/components/Search/SearchAiDialog.tsx +52 -23
- package/src/components/Search/SearchAiMessage.tsx +172 -43
- package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +210 -0
- package/src/components/Search/SearchDialog.tsx +49 -13
- package/src/components/Search/SearchGroups.tsx +2 -0
- package/src/components/Search/variables.ts +36 -64
- package/src/components/Segmented/Segmented.tsx +15 -20
- package/src/components/Select/SelectInput.tsx +1 -0
- package/src/components/Select/variables.ts +2 -2
- package/src/components/Tag/Tag.tsx +35 -19
- package/src/components/Tag/variables.dark.ts +135 -36
- package/src/components/Tag/variables.ts +78 -61
- package/src/core/constants/index.ts +1 -0
- package/src/core/constants/mcp.ts +1 -0
- package/src/core/constants/search.ts +8 -4
- package/src/core/hooks/index.ts +3 -0
- package/src/core/hooks/menu/use-nested-menu.ts +2 -2
- package/src/core/hooks/search/use-feedback-tooltip.ts +32 -0
- package/src/core/hooks/use-connect-mcp-button.ts +79 -0
- package/src/core/hooks/use-mcp-config.ts +43 -0
- package/src/core/hooks/use-page-actions.ts +148 -126
- package/src/core/hooks/use-product-picker.ts +2 -1
- package/src/core/hooks/use-tabs.ts +168 -86
- package/src/core/hooks/use-telemetry-fallback.ts +10 -8
- package/src/core/openapi/index.ts +1 -0
- package/src/core/styles/dark.ts +4 -0
- package/src/core/styles/global.ts +6 -1
- package/src/core/types/hooks.ts +5 -1
- package/src/core/types/index.ts +1 -0
- package/src/core/types/l10n.ts +13 -0
- package/src/core/types/mcp.ts +8 -0
- package/src/core/types/search.ts +13 -4
- package/src/core/types/segmented.ts +14 -0
- package/src/core/utils/frontmatter-translate.ts +9 -0
- package/src/core/utils/index.ts +2 -0
- package/src/core/utils/mcp.ts +34 -0
- package/src/icons/AiStarsGradientIcon/AiStarsGradientIcon.tsx +13 -4
- package/src/icons/AiStarsIcon/AiStarsIcon.tsx +11 -2
- package/src/icons/ConnectIcon/ConnectIcon.tsx +27 -0
- package/src/icons/CubeIcon/CubeIcon.tsx +27 -0
- package/src/icons/HashtagIcon/HashtagIcon.tsx +23 -0
- package/src/icons/RedoclyIcon/RedoclyIcon.tsx +4 -22
- package/src/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.tsx +38 -0
- package/src/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.tsx +35 -0
- package/src/icons/VSCodeIcon/VSCodeIcon.tsx +29 -0
- package/src/index.ts +1 -2
- package/src/markdoc/components/Cards/Card.tsx +1 -28
- package/src/markdoc/components/ConnectMCP/ConnectMCP.tsx +28 -0
- package/src/markdoc/components/Tabs/TabList.tsx +312 -105
- package/src/markdoc/components/Tabs/Tabs.tsx +136 -11
- package/src/markdoc/components/default.ts +1 -0
- package/src/markdoc/default.ts +2 -0
- package/src/markdoc/tags/card.ts +0 -1
- package/src/markdoc/tags/connect-mcp.ts +25 -0
- package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.d.ts +0 -1
- package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.js +0 -11
- package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.d.ts +0 -1
- package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.js +0 -5
- package/lib/ext/process-scorecard.d.ts +0 -5
- package/lib/ext/process-scorecard.js +0 -11
- package/src/components/OpenApiDocs/hooks/AdditionalOverviewInfo.tsx +0 -9
- package/src/components/OpenApiDocs/hooks/AfterOpenApiDescription.tsx +0 -1
- package/src/ext/process-scorecard.ts +0 -13
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IconProps } from '../../icons/types';
|
|
3
|
+
export declare const ThumbUpFilledIcon: import("styled-components").StyledComponent<(props: IconProps) => React.JSX.Element, any, {
|
|
4
|
+
'data-component-name': string;
|
|
5
|
+
} & {
|
|
6
|
+
color?: string;
|
|
7
|
+
size?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
} & React.SVGProps<SVGSVGElement>, "data-component-name">;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ThumbUpFilledIcon = void 0;
|
|
18
|
+
const react_1 = __importDefault(require("react"));
|
|
19
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
|
20
|
+
const utils_1 = require("../../core/utils");
|
|
21
|
+
const Icon = (props) => {
|
|
22
|
+
const { color } = props, restProps = __rest(props, ["color"]);
|
|
23
|
+
return (react_1.default.createElement("svg", Object.assign({ width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, restProps),
|
|
24
|
+
react_1.default.createElement("path", { d: "M3.0625 7H0.875V13.125H3.0625V7Z", fill: (0, utils_1.getCssColorVariable)(color) || '#DCDDE5' }),
|
|
25
|
+
react_1.default.createElement("path", { d: "M10.0625 13.125H3.9375V6.64882L5.26846 4.65229L5.63828 2.06382C5.66886 1.85567 5.77308 1.66539 5.932 1.52753C6.09092 1.38967 6.29402 1.31338 6.5044 1.3125H6.5625C6.91048 1.31288 7.2441 1.45129 7.49016 1.69734C7.73621 1.9434 7.87462 2.27702 7.875 2.625V5.25H11.375C11.839 5.25052 12.2838 5.43506 12.6119 5.76314C12.9399 6.09121 13.1245 6.53603 13.125 7V10.0625C13.1241 10.8744 12.8012 11.6529 12.227 12.227C11.6529 12.8012 10.8744 13.1241 10.0625 13.125Z", fill: (0, utils_1.getCssColorVariable)(color) || '#DCDDE5' })));
|
|
26
|
+
};
|
|
27
|
+
exports.ThumbUpFilledIcon = (0, styled_components_1.default)(Icon).attrs(() => ({
|
|
28
|
+
'data-component-name': 'icons/ThumbUpFilledIcon/ThumbUpFilledIcon',
|
|
29
|
+
})) `
|
|
30
|
+
height: ${({ size }) => size || '14px'};
|
|
31
|
+
width: ${({ size }) => size || '14px'};
|
|
32
|
+
color: ${({ color }) => color && (0, utils_1.getCssColorVariable)(color)};
|
|
33
|
+
`;
|
|
34
|
+
//# sourceMappingURL=ThumbUpFilledIcon.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IconProps } from '../../icons/types';
|
|
3
|
+
export declare const VSCodeIcon: import("styled-components").StyledComponent<(props: IconProps) => React.JSX.Element, any, {
|
|
4
|
+
'data-component-name': string;
|
|
5
|
+
} & {
|
|
6
|
+
color?: string;
|
|
7
|
+
size?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
} & React.SVGProps<SVGSVGElement>, "data-component-name">;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.VSCodeIcon = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
|
9
|
+
const Icon = (props) => (react_1.default.createElement("svg", Object.assign({ width: "16", height: "16", viewBox: "0 0 100 100", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props),
|
|
10
|
+
react_1.default.createElement("path", { clipRule: "evenodd", d: "m70.9119 99.3171c1.575.6136 3.3709.5743 4.9606-.1907l20.5883-9.9067c2.1634-1.041 3.5392-3.2305 3.5392-5.6325v-67.1739c0-2.402-1.3757-4.5915-3.5391-5.6325l-20.5884-9.907044c-2.0863-1.003885-4.5279-.757996-6.359.573194-.2615.19016-.5107.40248-.7445.63646l-39.4139 35.95809-17.1679-13.0319c-1.5982-1.2131-3.83357-1.1137-5.31787.2365l-5.5063 5.0088c-1.815582 1.6515-1.817663 4.5078-.0045 6.1621l14.88857 13.5831-14.88857 13.5831c-1.813163 1.6542-1.811082 4.5106.0045 6.1621l5.5063 5.0088c1.4843 1.3502 3.71967 1.4496 5.31787.2364l17.1679-13.0318 39.4139 35.958c.6235.6239 1.3556 1.0937 2.1429 1.4004zm4.1033-72.0182-29.9061 22.7012 29.9061 22.7011z", fill: "currentColor", fillRule: "evenodd" })));
|
|
11
|
+
exports.VSCodeIcon = (0, styled_components_1.default)(Icon).attrs(() => ({
|
|
12
|
+
'data-component-name': 'icons/VSCodeIcon/VSCodeIcon',
|
|
13
|
+
})) `
|
|
14
|
+
height: ${({ size }) => size || '16px'};
|
|
15
|
+
width: ${({ size }) => size || '16px'};
|
|
16
|
+
`;
|
|
17
|
+
//# sourceMappingURL=VSCodeIcon.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -78,11 +78,9 @@ export * from './components/UserMenu/UserMenuMobile';
|
|
|
78
78
|
export * from './components/Sidebar/Sidebar';
|
|
79
79
|
export * from './components/OpenApiDocs/hooks/AfterOpenApiOperation';
|
|
80
80
|
export * from './components/OpenApiDocs/hooks/AfterOpenApiTitle';
|
|
81
|
-
export * from './components/OpenApiDocs/hooks/AfterOpenApiDescription';
|
|
82
81
|
export * from './components/OpenApiDocs/hooks/BeforeOpenApiOperation';
|
|
83
82
|
export * from './components/OpenApiDocs/hooks/OpenApiFooter';
|
|
84
83
|
export * from './components/OpenApiDocs/hooks/OpenApiHeader';
|
|
85
|
-
export * from './components/OpenApiDocs/hooks/AdditionalOverviewInfo';
|
|
86
84
|
export * from './components/SidebarActions/ChangeViewButton';
|
|
87
85
|
export * from './components/SidebarActions/SidebarActions';
|
|
88
86
|
export * from './components/SidebarActions/styled';
|
|
@@ -263,6 +261,7 @@ export * from './icons/RedoclyIcon/RedoclyIcon';
|
|
|
263
261
|
export * from './icons/WorkflowHierarchyIcon/WorkflowHierarchyIcon';
|
|
264
262
|
export * from './icons/GenericIcon/GenericIcon';
|
|
265
263
|
export * from './icons/ShareIcon/ShareIcon';
|
|
264
|
+
export * from './icons/HashtagIcon/HashtagIcon';
|
|
266
265
|
export * from './layouts/RootLayout';
|
|
267
266
|
export * from './layouts/PageLayout';
|
|
268
267
|
export * from './layouts/NotFound';
|
package/lib/index.js
CHANGED
|
@@ -131,11 +131,9 @@ __exportStar(require("./components/Sidebar/Sidebar"), exports);
|
|
|
131
131
|
/* OpenApiDocs */
|
|
132
132
|
__exportStar(require("./components/OpenApiDocs/hooks/AfterOpenApiOperation"), exports);
|
|
133
133
|
__exportStar(require("./components/OpenApiDocs/hooks/AfterOpenApiTitle"), exports);
|
|
134
|
-
__exportStar(require("./components/OpenApiDocs/hooks/AfterOpenApiDescription"), exports);
|
|
135
134
|
__exportStar(require("./components/OpenApiDocs/hooks/BeforeOpenApiOperation"), exports);
|
|
136
135
|
__exportStar(require("./components/OpenApiDocs/hooks/OpenApiFooter"), exports);
|
|
137
136
|
__exportStar(require("./components/OpenApiDocs/hooks/OpenApiHeader"), exports);
|
|
138
|
-
__exportStar(require("./components/OpenApiDocs/hooks/AdditionalOverviewInfo"), exports);
|
|
139
137
|
/* SidebarActions */
|
|
140
138
|
__exportStar(require("./components/SidebarActions/ChangeViewButton"), exports);
|
|
141
139
|
__exportStar(require("./components/SidebarActions/SidebarActions"), exports);
|
|
@@ -326,6 +324,7 @@ __exportStar(require("./icons/RedoclyIcon/RedoclyIcon"), exports);
|
|
|
326
324
|
__exportStar(require("./icons/WorkflowHierarchyIcon/WorkflowHierarchyIcon"), exports);
|
|
327
325
|
__exportStar(require("./icons/GenericIcon/GenericIcon"), exports);
|
|
328
326
|
__exportStar(require("./icons/ShareIcon/ShareIcon"), exports);
|
|
327
|
+
__exportStar(require("./icons/HashtagIcon/HashtagIcon"), exports);
|
|
329
328
|
/* Layouts */
|
|
330
329
|
__exportStar(require("./layouts/RootLayout"), exports);
|
|
331
330
|
__exportStar(require("./layouts/PageLayout"), exports);
|
|
@@ -43,6 +43,7 @@ const ContentWrapper = styled_components_1.default.div `
|
|
|
43
43
|
flex-direction: column;
|
|
44
44
|
flex-shrink: 1;
|
|
45
45
|
gap: var(--card-content-gap);
|
|
46
|
+
width: 100%;
|
|
46
47
|
`;
|
|
47
48
|
const Title = styled_components_1.default.h3 `
|
|
48
49
|
margin: var(--card-title-margin);
|
|
@@ -82,28 +83,6 @@ const Body = styled_components_1.default.div `
|
|
|
82
83
|
> *:last-child {
|
|
83
84
|
margin-bottom: 0;
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
-
/* Icon link styles */
|
|
87
|
-
& a {
|
|
88
|
-
display: inline-flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
line-height: 1;
|
|
91
|
-
|
|
92
|
-
& svg {
|
|
93
|
-
width: 1.2em;
|
|
94
|
-
height: 1.2em;
|
|
95
|
-
margin-right: 0.25em;
|
|
96
|
-
vertical-align: middle;
|
|
97
|
-
|
|
98
|
-
& g {
|
|
99
|
-
fill: var(--link-color-primary);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
& a:visited > span > svg > g {
|
|
105
|
-
fill: var(--link-color-visited);
|
|
106
|
-
}
|
|
107
86
|
`;
|
|
108
87
|
const CardWrapper = styled_components_1.default.div.attrs(({ $isCardLink, $variant }) => ({
|
|
109
88
|
className: getCardWrapperClass($isCardLink, $variant),
|
|
@@ -149,12 +128,6 @@ const CardWrapper = styled_components_1.default.div.attrs(({ $isCardLink, $varia
|
|
|
149
128
|
}
|
|
150
129
|
}
|
|
151
130
|
}
|
|
152
|
-
|
|
153
|
-
&& ul {
|
|
154
|
-
list-style: none;
|
|
155
|
-
padding-left: 0;
|
|
156
|
-
margin: var(--spacing-xs) 0;
|
|
157
|
-
}
|
|
158
131
|
`;
|
|
159
132
|
const getCardWrapperClass = ($isCardLink, $variant) => {
|
|
160
133
|
let classes = [];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JSX } from 'react';
|
|
2
|
+
import type { MCPOption } from '../../../core/types';
|
|
3
|
+
export type ConnectMCPProps = {
|
|
4
|
+
placement?: 'top' | 'bottom';
|
|
5
|
+
alignment?: 'start' | 'end';
|
|
6
|
+
options?: MCPOption[];
|
|
7
|
+
};
|
|
8
|
+
export declare function ConnectMCP({ placement, alignment, options, }: ConnectMCPProps): JSX.Element | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ConnectMCP = ConnectMCP;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const ConnectMCPButton_1 = require("../../../components/Buttons/ConnectMCPButton");
|
|
9
|
+
const hooks_1 = require("../../../core/hooks");
|
|
10
|
+
function ConnectMCP({ placement = 'bottom', alignment = 'start', options, }) {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
const themeConfig = (0, hooks_1.useThemeConfig)();
|
|
13
|
+
const isMcpDisabled = ((_a = themeConfig.mcp) === null || _a === void 0 ? void 0 : _a.hide) || ((_c = (_b = themeConfig.mcp) === null || _b === void 0 ? void 0 : _b.docs) === null || _c === void 0 ? void 0 : _c.hide);
|
|
14
|
+
if (isMcpDisabled) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return react_1.default.createElement(ConnectMCPButton_1.ConnectMCPButton, { placement: placement, alignment: alignment, options: options });
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ConnectMCP.js.map
|
|
@@ -6,8 +6,10 @@ type TabListProps = {
|
|
|
6
6
|
size: TabsSize;
|
|
7
7
|
activeTab: string;
|
|
8
8
|
onTabChange: (tab: string) => void;
|
|
9
|
+
containerRef: React.RefObject<HTMLUListElement | null>;
|
|
10
|
+
onReadyChange?: (isReady: boolean) => void;
|
|
9
11
|
};
|
|
10
|
-
export declare function TabList({ childrenArray, size, activeTab, onTabChange, }: TabListProps): JSX.Element;
|
|
12
|
+
export declare function TabList({ childrenArray, size, activeTab, onTabChange, containerRef, onReadyChange, }: TabListProps): JSX.Element;
|
|
11
13
|
export declare const TabListContainer: import("styled-components").StyledComponent<"ul", any, {}, never>;
|
|
12
14
|
export declare const TabItem: import("styled-components").StyledComponent<"li", any, {
|
|
13
15
|
active?: boolean;
|
|
@@ -44,47 +44,144 @@ const DropdownMenuItem_1 = require("../../../components/Dropdown/DropdownMenuIte
|
|
|
44
44
|
const Button_1 = require("../../../components/Button/Button");
|
|
45
45
|
const hooks_1 = require("../../../core/hooks");
|
|
46
46
|
const utils_1 = require("../../../core/utils");
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Calculates optimal dropdown position relative to viewport to ensure visibility.
|
|
49
|
+
* Positions below the button by default, but moves above if insufficient space.
|
|
50
|
+
* Adjusts horizontal position to prevent overflow off screen edges.
|
|
51
|
+
*/
|
|
52
|
+
const calculateDropdownPosition = (buttonRect, dropdownRect) => {
|
|
53
|
+
const gap = 4;
|
|
54
|
+
const margin = 16;
|
|
55
|
+
const spaceBelow = window.innerHeight - buttonRect.bottom;
|
|
56
|
+
const spaceAbove = buttonRect.top;
|
|
57
|
+
// Position below button, or above if dropdown doesn't fit below
|
|
58
|
+
const top = spaceBelow < dropdownRect.height + gap && spaceAbove > spaceBelow
|
|
59
|
+
? buttonRect.top - gap
|
|
60
|
+
: buttonRect.bottom + gap;
|
|
61
|
+
// Align with button left edge, adjust if overflows screen
|
|
62
|
+
const idealLeft = buttonRect.left;
|
|
63
|
+
const rightEdge = idealLeft + dropdownRect.width;
|
|
64
|
+
const overflowsRight = rightEdge > window.innerWidth - margin;
|
|
65
|
+
const left = overflowsRight
|
|
66
|
+
? window.innerWidth - dropdownRect.width - margin
|
|
67
|
+
: Math.max(margin, idealLeft);
|
|
68
|
+
return { top, left };
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Manages dropdown positioning and updates on scroll/resize events for TabList.
|
|
72
|
+
*/
|
|
73
|
+
const useDropdownPosition = (hasOverflow, dropdownRef) => {
|
|
74
|
+
const [dropdownPosition, setDropdownPosition] = (0, react_1.useState)({});
|
|
75
|
+
const [isDropdownOpen, setIsDropdownOpen] = (0, react_1.useState)(false);
|
|
76
|
+
const updateDropdownPosition = (0, react_1.useCallback)(() => {
|
|
77
|
+
if (!dropdownRef.current)
|
|
78
|
+
return;
|
|
79
|
+
const button = dropdownRef.current.querySelector('button');
|
|
80
|
+
const dropdownMenu = dropdownRef.current.querySelector('div:last-child');
|
|
81
|
+
if (!button || !dropdownMenu)
|
|
82
|
+
return;
|
|
83
|
+
const buttonRect = button.getBoundingClientRect();
|
|
84
|
+
const dropdownRect = dropdownMenu.getBoundingClientRect();
|
|
85
|
+
const position = calculateDropdownPosition(buttonRect, dropdownRect);
|
|
86
|
+
setDropdownPosition(position);
|
|
87
|
+
}, [dropdownRef]);
|
|
88
|
+
// Track when dropdown menu appears and recalculate position
|
|
89
|
+
(0, react_1.useEffect)(() => {
|
|
90
|
+
if (!hasOverflow || !isDropdownOpen || !dropdownRef.current)
|
|
91
|
+
return;
|
|
92
|
+
const dropdownMenu = dropdownRef.current.querySelector('div:last-child');
|
|
93
|
+
if (!dropdownMenu)
|
|
94
|
+
return;
|
|
95
|
+
// ResizeObserver tracks both initial render and size changes
|
|
96
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
97
|
+
updateDropdownPosition();
|
|
98
|
+
});
|
|
99
|
+
resizeObserver.observe(dropdownMenu);
|
|
100
|
+
return () => resizeObserver.disconnect();
|
|
101
|
+
}, [hasOverflow, isDropdownOpen, dropdownRef, updateDropdownPosition]);
|
|
102
|
+
// Update position on scroll/resize
|
|
103
|
+
(0, react_1.useEffect)(() => {
|
|
104
|
+
if (!hasOverflow || !isDropdownOpen)
|
|
105
|
+
return;
|
|
106
|
+
window.addEventListener('scroll', updateDropdownPosition, true);
|
|
107
|
+
window.addEventListener('resize', updateDropdownPosition);
|
|
108
|
+
return () => {
|
|
109
|
+
window.removeEventListener('scroll', updateDropdownPosition, true);
|
|
110
|
+
window.removeEventListener('resize', updateDropdownPosition);
|
|
111
|
+
};
|
|
112
|
+
}, [hasOverflow, isDropdownOpen, updateDropdownPosition]);
|
|
113
|
+
return {
|
|
114
|
+
dropdownPosition,
|
|
115
|
+
isDropdownOpen,
|
|
116
|
+
setIsDropdownOpen,
|
|
117
|
+
setDropdownPosition,
|
|
118
|
+
updateDropdownPosition,
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const renderTab = (child, index, size, setTabRef, handleKeyboard, onTabClick) => {
|
|
122
|
+
const { label, icon } = child.props;
|
|
123
|
+
const tabId = (0, utils_1.getTabId)(label, index);
|
|
124
|
+
return (react_1.default.createElement(Tab_1.Tab, { key: `key-${tabId}`, tabId: tabId, label: label, icon: icon, size: size, disabled: child.props.disable, setRef: (el) => setTabRef(el, index), onKeyDown: (event) => handleKeyboard(event, index), onClick: () => {
|
|
125
|
+
var _a, _b;
|
|
126
|
+
(_b = (_a = child.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
127
|
+
onTabClick(label);
|
|
128
|
+
} }));
|
|
129
|
+
};
|
|
130
|
+
function TabList({ childrenArray, size, activeTab, onTabChange, containerRef, onReadyChange, }) {
|
|
131
|
+
const dropdownRef = (0, react_1.useRef)(null);
|
|
132
|
+
const totalTabs = childrenArray.length;
|
|
133
|
+
const { overflowTabs, visibleTabs, handleKeyboard, onTabClick, setTabRef, isReady } = (0, hooks_1.useTabs)({
|
|
50
134
|
activeTab,
|
|
51
135
|
onTabChange,
|
|
52
|
-
containerRef
|
|
53
|
-
totalTabs
|
|
136
|
+
containerRef,
|
|
137
|
+
totalTabs,
|
|
54
138
|
});
|
|
139
|
+
(0, react_1.useEffect)(() => {
|
|
140
|
+
onReadyChange === null || onReadyChange === void 0 ? void 0 : onReadyChange(isReady);
|
|
141
|
+
}, [isReady, onReadyChange]);
|
|
55
142
|
const { highlightStyle } = useHighlightBarAnimation({
|
|
56
143
|
activeTab,
|
|
57
144
|
childrenArray,
|
|
58
145
|
overflowTabs,
|
|
59
|
-
tabsContainerRef,
|
|
146
|
+
tabsContainerRef: containerRef,
|
|
60
147
|
visibleTabs,
|
|
61
148
|
});
|
|
62
|
-
|
|
149
|
+
const hasOverflow = overflowTabs.length > 0;
|
|
150
|
+
const isMoreActive = hasOverflow &&
|
|
151
|
+
overflowTabs.some((i) => childrenArray[i] && activeTab === childrenArray[i].props.label);
|
|
152
|
+
// Show as selector when no visible tabs (all tabs in dropdown)
|
|
153
|
+
const showAsSelector = visibleTabs.length === 0 && hasOverflow;
|
|
154
|
+
const { dropdownPosition, setIsDropdownOpen, setDropdownPosition } = useDropdownPosition(hasOverflow, dropdownRef);
|
|
155
|
+
return (react_1.default.createElement(exports.TabListContainer, { role: "tablist", ref: containerRef },
|
|
63
156
|
react_1.default.createElement(HighlightBar, { size: size, style: highlightStyle },
|
|
64
157
|
react_1.default.createElement("div", null)),
|
|
65
158
|
childrenArray.map((child, index) => {
|
|
66
|
-
|
|
159
|
+
// Show all tabs before ready (for measurement), then only visible ones
|
|
160
|
+
const shouldRender = !isReady || visibleTabs.includes(index);
|
|
161
|
+
if (!shouldRender)
|
|
67
162
|
return null;
|
|
68
|
-
|
|
69
|
-
const tabId = (0, utils_1.getTabId)(label, index);
|
|
70
|
-
return (react_1.default.createElement(Tab_1.Tab, { key: `key-${tabId}`, tabId: tabId, label: label, icon: icon, size: size, disabled: child.props.disable, setRef: (el) => setTabRef(el, index), onKeyDown: (event) => handleKeyboard(event, index), onClick: () => {
|
|
71
|
-
var _a, _b;
|
|
72
|
-
(_b = (_a = child.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
73
|
-
onTabClick(label);
|
|
74
|
-
} }));
|
|
163
|
+
return renderTab(child, index, size, setTabRef, handleKeyboard, onTabClick);
|
|
75
164
|
}),
|
|
76
|
-
react_1.default.createElement(exports.TabItem, { size: size, active:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
165
|
+
hasOverflow && (react_1.default.createElement(exports.TabItem, { size: size, active: isMoreActive || showAsSelector, tabIndex: 0, className: "dropdown-tab" },
|
|
166
|
+
react_1.default.createElement(DropdownWrapper, { "$top": dropdownPosition.top, "$left": dropdownPosition.left, onClickCapture: () => {
|
|
167
|
+
setIsDropdownOpen(true);
|
|
168
|
+
} },
|
|
169
|
+
react_1.default.createElement(FixedPositionDropdown, { ref: dropdownRef, trigger: react_1.default.createElement(exports.TabButtonLink, { size: size, className: isMoreActive || showAsSelector ? 'active' : undefined }, showAsSelector ? react_1.default.createElement(TabButtonText, null, activeTab) : 'More'), alignment: "start", withArrow: true, onClose: () => {
|
|
170
|
+
setIsDropdownOpen(false);
|
|
171
|
+
setDropdownPosition({});
|
|
172
|
+
} },
|
|
173
|
+
react_1.default.createElement(DropdownMenu_1.DropdownMenu, null, overflowTabs.map((index) => {
|
|
174
|
+
const child = childrenArray[index];
|
|
175
|
+
if (!child)
|
|
176
|
+
return null;
|
|
177
|
+
const { label } = child.props;
|
|
178
|
+
const tabId = (0, utils_1.getTabId)(label, index);
|
|
179
|
+
return (react_1.default.createElement(DropdownMenuItem_1.DropdownMenuItem, { key: `more-${tabId}`, active: activeTab === label, onAction: () => {
|
|
180
|
+
var _a, _b;
|
|
181
|
+
(_b = (_a = child.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
182
|
+
onTabClick(index);
|
|
183
|
+
}, disabled: child.props.disable }, label));
|
|
184
|
+
}))))))));
|
|
88
185
|
}
|
|
89
186
|
const useHighlightBarAnimation = (props) => {
|
|
90
187
|
const { childrenArray, activeTab, tabsContainerRef, visibleTabs, overflowTabs } = props;
|
|
@@ -99,18 +196,11 @@ const useHighlightBarAnimation = (props) => {
|
|
|
99
196
|
setHighlightStyle({ left: 0, width: 0 });
|
|
100
197
|
return;
|
|
101
198
|
}
|
|
102
|
-
|
|
103
|
-
if (!activeTabElement)
|
|
104
|
-
return;
|
|
199
|
+
// Remove active class from all tabs first
|
|
105
200
|
container.querySelectorAll('[data-label]').forEach((el) => {
|
|
106
201
|
el.classList.remove('active');
|
|
107
202
|
});
|
|
108
|
-
|
|
109
|
-
if (visibleTabs.includes(activeIndex)) {
|
|
110
|
-
activeTabElement.classList.add('active');
|
|
111
|
-
setHighlightStyle({ left: offsetLeft, width: offsetWidth });
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
203
|
+
// Check if active tab is in overflow first
|
|
114
204
|
if (overflowTabs.includes(activeIndex)) {
|
|
115
205
|
const moreButton = container.querySelector('button');
|
|
116
206
|
if (!moreButton)
|
|
@@ -123,6 +213,16 @@ const useHighlightBarAnimation = (props) => {
|
|
|
123
213
|
});
|
|
124
214
|
return;
|
|
125
215
|
}
|
|
216
|
+
// Active tab is visible, find its element
|
|
217
|
+
const activeTabElement = container.querySelector(`[data-label="${activeTab}"]`);
|
|
218
|
+
if (!activeTabElement)
|
|
219
|
+
return;
|
|
220
|
+
const { offsetLeft, offsetWidth } = activeTabElement;
|
|
221
|
+
if (visibleTabs.includes(activeIndex)) {
|
|
222
|
+
activeTabElement.classList.add('active');
|
|
223
|
+
setHighlightStyle({ left: offsetLeft, width: offsetWidth });
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
126
226
|
}, [activeTab, childrenArray, visibleTabs, overflowTabs, tabsContainerRef]);
|
|
127
227
|
return { highlightStyle };
|
|
128
228
|
};
|
|
@@ -132,15 +232,11 @@ exports.TabListContainer = styled_components_1.default.ul `
|
|
|
132
232
|
gap: var(--md-tabs-gap);
|
|
133
233
|
width: 100%;
|
|
134
234
|
min-width: 0;
|
|
135
|
-
position: relative;
|
|
136
235
|
|
|
137
236
|
&::before {
|
|
138
237
|
content: '';
|
|
139
238
|
position: absolute;
|
|
140
|
-
|
|
141
|
-
left: 0px;
|
|
142
|
-
right: 0px;
|
|
143
|
-
bottom: 0px;
|
|
239
|
+
inset: 0;
|
|
144
240
|
border: var(--md-tabs-border);
|
|
145
241
|
border-width: var(--md-tabs-border-width);
|
|
146
242
|
pointer-events: none;
|
|
@@ -148,11 +244,17 @@ exports.TabListContainer = styled_components_1.default.ul `
|
|
|
148
244
|
|
|
149
245
|
&& {
|
|
150
246
|
padding: var(--md-tabs-padding);
|
|
151
|
-
margin-block-end: 0;
|
|
152
247
|
margin: 0;
|
|
153
248
|
|
|
154
249
|
& > li {
|
|
155
|
-
margin-bottom:
|
|
250
|
+
margin-bottom: 0;
|
|
251
|
+
flex-shrink: 0;
|
|
252
|
+
|
|
253
|
+
&.dropdown-tab {
|
|
254
|
+
flex-shrink: 1;
|
|
255
|
+
min-width: 0;
|
|
256
|
+
max-width: 100%;
|
|
257
|
+
}
|
|
156
258
|
}
|
|
157
259
|
}
|
|
158
260
|
`;
|
|
@@ -162,7 +264,7 @@ exports.TabItem = styled_components_1.default.li `
|
|
|
162
264
|
cursor: pointer;
|
|
163
265
|
align-items: center;
|
|
164
266
|
padding: var(--md-tabs-tab-wrapper-padding);
|
|
165
|
-
z-index:
|
|
267
|
+
z-index: var(--z-index-surface);
|
|
166
268
|
|
|
167
269
|
${({ active, size }) => active
|
|
168
270
|
? (0, styled_components_1.css) `
|
|
@@ -199,6 +301,46 @@ exports.TabItem = styled_components_1.default.li `
|
|
|
199
301
|
}
|
|
200
302
|
}
|
|
201
303
|
`;
|
|
304
|
+
const DropdownWrapper = styled_components_1.default.div.attrs((props) => ({
|
|
305
|
+
style: Object.assign(Object.assign({}, (props.$top !== undefined && { '--dropdown-top': `${props.$top}px` })), (props.$left !== undefined && { '--dropdown-left': `${props.$left}px` })),
|
|
306
|
+
})) `
|
|
307
|
+
position: static;
|
|
308
|
+
z-index: var(--z-index-raised);
|
|
309
|
+
width: 100%;
|
|
310
|
+
min-width: 0;
|
|
311
|
+
`;
|
|
312
|
+
const FixedPositionDropdown = (0, styled_components_1.default)(Dropdown_1.Dropdown) `
|
|
313
|
+
position: static;
|
|
314
|
+
width: 100%;
|
|
315
|
+
min-width: 0;
|
|
316
|
+
|
|
317
|
+
> div:first-child {
|
|
318
|
+
width: 100%;
|
|
319
|
+
min-width: 0;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
> div:last-child {
|
|
323
|
+
position: fixed;
|
|
324
|
+
top: var(--dropdown-top, 0);
|
|
325
|
+
left: var(--dropdown-left, 0);
|
|
326
|
+
right: auto;
|
|
327
|
+
bottom: auto;
|
|
328
|
+
transform: none;
|
|
329
|
+
padding-top: 0;
|
|
330
|
+
max-width: min(400px, calc(100vw - 32px));
|
|
331
|
+
max-height: calc(100vh - var(--dropdown-top, 0) - 32px);
|
|
332
|
+
overflow-y: auto;
|
|
333
|
+
z-index: var(--z-index-raised);
|
|
334
|
+
|
|
335
|
+
ul {
|
|
336
|
+
li {
|
|
337
|
+
overflow: hidden;
|
|
338
|
+
text-overflow: ellipsis;
|
|
339
|
+
white-space: nowrap;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
`;
|
|
202
344
|
const HighlightBar = styled_components_1.default.div `
|
|
203
345
|
position: absolute;
|
|
204
346
|
top: 0;
|
|
@@ -218,11 +360,19 @@ const HighlightBar = styled_components_1.default.div `
|
|
|
218
360
|
border-radius: var(--md-tabs-${({ size }) => size}-active-tab-border-radius);
|
|
219
361
|
}
|
|
220
362
|
`;
|
|
363
|
+
const TabButtonText = styled_components_1.default.span `
|
|
364
|
+
overflow: hidden;
|
|
365
|
+
text-overflow: ellipsis;
|
|
366
|
+
white-space: nowrap;
|
|
367
|
+
flex: 1;
|
|
368
|
+
min-width: 0;
|
|
369
|
+
`;
|
|
221
370
|
exports.TabButtonLink = (0, styled_components_1.default)(Button_1.Button) `
|
|
222
371
|
color: var(--md-tabs-tab-text-color);
|
|
223
372
|
font-family: var(--md-tabs-tab-font-family);
|
|
224
373
|
font-style: var(--md-tabs-tab-font-style);
|
|
225
374
|
background-color: var(--md-tabs-tab-bg-color);
|
|
375
|
+
width: 100%;
|
|
226
376
|
|
|
227
377
|
transition:
|
|
228
378
|
background-color 300ms ease-in-out,
|
|
@@ -241,9 +391,9 @@ exports.TabButtonLink = (0, styled_components_1.default)(Button_1.Button) `
|
|
|
241
391
|
|
|
242
392
|
&.active {
|
|
243
393
|
color: var(--md-tabs-active-tab-text-color);
|
|
244
|
-
font-size: var(--md-tabs-${({ size }) => size}-active-tab-font-size);
|
|
245
394
|
font-family: var(--md-tabs-active-tab-font-family);
|
|
246
395
|
font-style: var(--md-tabs-active-tab-font-style);
|
|
396
|
+
font-size: var(--md-tabs-${({ size }) => size}-active-tab-font-size);
|
|
247
397
|
font-weight: var(--md-tabs-${({ size }) => size}-active-tab-font-weight);
|
|
248
398
|
line-height: var(--md-tabs-${({ size }) => size}-active-tab-line-height);
|
|
249
399
|
background-color: var(--md-tabs-active-tab-bg-color);
|
|
@@ -253,12 +403,12 @@ exports.TabButtonLink = (0, styled_components_1.default)(Button_1.Button) `
|
|
|
253
403
|
|
|
254
404
|
&:hover {
|
|
255
405
|
color: var(--md-tabs-hover-tab-text-color);
|
|
256
|
-
font-size: var(--md-tabs-${({ size }) => size}-hover-tab-font-size);
|
|
257
406
|
font-family: var(--md-tabs-hover-tab-font-family);
|
|
258
407
|
font-style: var(--md-tabs-hover-tab-font-style);
|
|
408
|
+
font-size: var(--md-tabs-${({ size }) => size}-hover-tab-font-size);
|
|
259
409
|
font-weight: var(--md-tabs-${({ size }) => size}-hover-tab-font-weight);
|
|
260
|
-
background-color: var(--md-tabs-hover-tab-bg-color);
|
|
261
410
|
line-height: var(--md-tabs-${({ size }) => size}-hover-tab-line-height);
|
|
411
|
+
background-color: var(--md-tabs-hover-tab-bg-color);
|
|
262
412
|
border-radius: var(--md-tabs-${({ size }) => size}-hover-tab-border-radius);
|
|
263
413
|
padding: var(--md-tabs-${({ size }) => size}-hover-tab-padding);
|
|
264
414
|
}
|
|
@@ -17,7 +17,8 @@ type TabsProps = {
|
|
|
17
17
|
className?: string;
|
|
18
18
|
size: TabsSize;
|
|
19
19
|
initialTab?: string;
|
|
20
|
+
forceReady?: boolean;
|
|
20
21
|
};
|
|
21
|
-
export declare function Tabs({ id, children, className, size, initialTab: propInitialTab, }: TabsProps): JSX.Element;
|
|
22
|
+
export declare function Tabs({ id, children, className, size, initialTab: propInitialTab, forceReady, }: TabsProps): JSX.Element;
|
|
22
23
|
export declare const TabContent: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
23
24
|
export {};
|