@vectara/vectara-ui 16.1.2 → 16.3.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/lib/components/complexConfigurationButton/ComplexConfigurationButton.d.ts +14 -0
- package/lib/components/complexConfigurationButton/ComplexConfigurationButton.js +11 -0
- package/lib/components/complexConfigurationButton/_index.scss +17 -0
- package/lib/components/index.d.ts +3 -2
- package/lib/components/index.js +3 -2
- package/lib/components/tabs/{TabNavigator.d.ts → TabsNavigator.d.ts} +2 -1
- package/lib/components/tabs/{TabNavigator.js → TabsNavigator.js} +15 -3
- package/lib/styles/index.css +16 -0
- package/package.json +1 -1
- package/src/docs/pages/complexConfigurationButton/ComplexConfigurationButton.tsx +53 -0
- package/src/docs/pages/complexConfigurationButton/index.tsx +11 -0
- package/src/docs/pages.tsx +12 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from "react";
|
|
2
|
+
type Props = {
|
|
3
|
+
title: ReactNode;
|
|
4
|
+
description?: ReactNode;
|
|
5
|
+
footer?: ReactNode;
|
|
6
|
+
icon?: ReactElement;
|
|
7
|
+
onClick: () => void;
|
|
8
|
+
isDisabled?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
"data-testid"?: string;
|
|
11
|
+
"aria-label"?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const VuiComplexConfigurationButton: ({ title, description, footer, icon, onClick, isDisabled, className, "data-testid": dataTestId, "aria-label": ariaLabel }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { BiPencil } from "react-icons/bi";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { VuiFlexContainer } from "../flex/FlexContainer";
|
|
5
|
+
import { VuiIcon } from "../icon/Icon";
|
|
6
|
+
import { VuiSpacer } from "../spacer/Spacer";
|
|
7
|
+
import { VuiText } from "../typography/Text";
|
|
8
|
+
export const VuiComplexConfigurationButton = ({ title, description, footer, icon, onClick, isDisabled, className, "data-testid": dataTestId, "aria-label": ariaLabel }) => {
|
|
9
|
+
const classes = classNames("vuiComplexConfigurationButton", className);
|
|
10
|
+
return (_jsxs("button", Object.assign({ type: "button", className: classes, onClick: onClick, disabled: isDisabled, "data-testid": dataTestId, "aria-label": ariaLabel }, { children: [_jsxs(VuiFlexContainer, Object.assign({ alignItems: "center", justifyContent: "spaceBetween" }, { children: [_jsx(VuiText, Object.assign({ align: "left" }, { children: _jsx("p", { children: _jsx("strong", { children: title }) }) })), _jsx(VuiIcon, Object.assign({ size: "m", color: "primary" }, { children: icon !== null && icon !== void 0 ? icon : _jsx(BiPencil, {}) }))] })), description && (_jsxs(_Fragment, { children: [_jsx(VuiSpacer, { size: "s" }), _jsx(VuiText, Object.assign({ align: "left" }, { children: _jsx("p", { children: description }) }))] })), footer && (_jsxs(_Fragment, { children: [_jsx(VuiSpacer, { size: "s" }), footer] }))] })));
|
|
11
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.vuiComplexConfigurationButton {
|
|
2
|
+
width: 100%;
|
|
3
|
+
border: 1px solid var(--vui-color-primary-highlight-shade);
|
|
4
|
+
padding: $sizeS $sizeM;
|
|
5
|
+
border-radius: $sizeXs;
|
|
6
|
+
transition: box-shadow $transitionSpeed, border-color $transitionSpeed;
|
|
7
|
+
|
|
8
|
+
&:hover:not(:disabled) {
|
|
9
|
+
border-color: var(--vui-color-primary-shade);
|
|
10
|
+
box-shadow: $shadowLargeEnd;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&:disabled {
|
|
14
|
+
cursor: not-allowed;
|
|
15
|
+
opacity: 0.5;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -21,6 +21,7 @@ import { ChatTurn, ChatStyle, ChatLanguage } from "./chat/types";
|
|
|
21
21
|
import { VuiChat } from "./chat/Chat";
|
|
22
22
|
import { VuiCode } from "./code/Code";
|
|
23
23
|
import { CodeLanguage } from "./code/types";
|
|
24
|
+
import { VuiComplexConfigurationButton } from "./complexConfigurationButton/ComplexConfigurationButton";
|
|
24
25
|
import { VuiContextProvider } from "./context/Context";
|
|
25
26
|
import { VuiCopyButton } from "./copyButton/CopyButton";
|
|
26
27
|
import { VuiDatePicker } from "./datePicker/DatePicker";
|
|
@@ -81,7 +82,7 @@ import { VuiTable } from "./table/Table";
|
|
|
81
82
|
import { VuiTab } from "./tabs/Tab";
|
|
82
83
|
import { VuiTabbedRoutes } from "./tabs/TabbedRoutes";
|
|
83
84
|
import { VuiTabs } from "./tabs/Tabs";
|
|
84
|
-
import { VuiTabsNavigator } from "./tabs/
|
|
85
|
+
import { VuiTabsNavigator } from "./tabs/TabsNavigator";
|
|
85
86
|
import { TAB_SIZE, TabSize } from "./tabs/types";
|
|
86
87
|
import { VuiText } from "./typography/Text";
|
|
87
88
|
import { VuiTextColor } from "./typography/TextColor";
|
|
@@ -95,4 +96,4 @@ import { VuiTopicButton } from "./topicButton/TopicButton";
|
|
|
95
96
|
import { copyToClipboard } from "../utils/copyToClipboard";
|
|
96
97
|
import { toRgb, toRgba } from "./context/Theme";
|
|
97
98
|
export type { AnchorSide, AppContentPadding, ButtonColor, CalloutColor, ChatLanguage, ChatStyle, ChatTurn, CheckboxConfig, CodeEditorColorConfig, CodeEditorError, CodeLanguage, InfoListItemType, InfoListType, InfoTableColumnAlign, InfoTableRow, InfoTableRowType, LinkProps, MenuItem, OptionListItem, Pagination, RadioButtonConfig, SearchResult, SearchSuggestion, Sections, SectionItem, Stat, StepStatus, StepSize, Steps, StepsVertical, StepVerticalStatus, TabSize, Tree, TreeItem };
|
|
98
|
-
export { BADGE_COLOR, BUTTON_COLOR, BUTTON_SIZE, CALLOUT_COLOR, CALLOUT_SIZE, ICON_COLOR, ICON_SIZE, ICON_TYPE, PROGRESS_BAR_COLOR, SPACER_SIZE, SPINNER_COLOR, SKELETON_COLOR, SPINNER_SIZE, TAB_SIZE, TEXT_COLOR, TEXT_SIZE, TITLE_SIZE, addNotification, copyToClipboard, generateTokensProvider, toRgb, toRgba, VuiAccordion, VuiAccountButton, VuiAppContent, VuiAppHeader, VuiAppLayout, VuiAppSideNav, VuiAppSideNavLink, VuiAppSideNavGroup, VuiBadge, VuiButtonPrimary, VuiButtonSecondary, VuiButtonTertiary, VuiIconButton, VuiCallout, VuiCard, VuiChat, VuiCheckbox, VuiCode, VuiCodeEditor, VuiContextProvider, VuiCopyButton, VuiDatePicker, VuiDateRangePicker, VuiDrawer, VuiErrorBoundary, VuiFlexContainer, VuiFlexItem, VuiFormGroup, VuiGrid, VuiGridItem, VuiHorizontalRule, VuiIcon, VuiImage, VuiImagePreview, VuiInfoList, VuiInfoListItem, VuiInfoMenu, VuiInfoTable, VuiInfoTooltip, VuiInProgress, VuiItemsInput, VuiLabel, VuiLink, VuiLinkInternal, VuiList, VuiMenu, VuiMenuItem, VuiModal, VuiNotifications, VuiNumberInput, VuiOptionsButton, VuiOptionsList, VuiOptionsListItem, VuiPagination, VuiPanel, VuiPasswordInput, VuiPopover, VuiPortal, VuiProgressBar, VuiPrompt, VuiRadioButton, VuiScreenBlock, VuiSearchInput, VuiSearchResult, VuiSearchSelect, VuiSelect, VuiSetting, VuiSimpleCard, VuiSimpleGrid, VuiSpacer, VuiSpinner, VuiStat, VuiStatList, VuiStatus, VuiSteps, VuiStepsVertical, VuiSummary, VuiSkeleton, VuiSummaryCitation, VuiSuperCheckboxGroup, VuiSuperRadioGroup, VuiTable, VuiTab, VuiTabbedRoutes, VuiTabs, VuiTabsNavigator, VuiText, VuiTextArea, VuiTextColor, VuiTextInput, VuiTimeline, VuiTimelineItem, VuiTitle, VuiToggle, VuiTooltip, VuiTopicButton };
|
|
99
|
+
export { BADGE_COLOR, BUTTON_COLOR, BUTTON_SIZE, CALLOUT_COLOR, CALLOUT_SIZE, ICON_COLOR, ICON_SIZE, ICON_TYPE, PROGRESS_BAR_COLOR, SPACER_SIZE, SPINNER_COLOR, SKELETON_COLOR, SPINNER_SIZE, TAB_SIZE, TEXT_COLOR, TEXT_SIZE, TITLE_SIZE, addNotification, copyToClipboard, generateTokensProvider, toRgb, toRgba, VuiAccordion, VuiAccountButton, VuiAppContent, VuiAppHeader, VuiAppLayout, VuiAppSideNav, VuiAppSideNavLink, VuiAppSideNavGroup, VuiBadge, VuiButtonPrimary, VuiButtonSecondary, VuiButtonTertiary, VuiIconButton, VuiCallout, VuiCard, VuiChat, VuiCheckbox, VuiCode, VuiCodeEditor, VuiComplexConfigurationButton, VuiContextProvider, VuiCopyButton, VuiDatePicker, VuiDateRangePicker, VuiDrawer, VuiErrorBoundary, VuiFlexContainer, VuiFlexItem, VuiFormGroup, VuiGrid, VuiGridItem, VuiHorizontalRule, VuiIcon, VuiImage, VuiImagePreview, VuiInfoList, VuiInfoListItem, VuiInfoMenu, VuiInfoTable, VuiInfoTooltip, VuiInProgress, VuiItemsInput, VuiLabel, VuiLink, VuiLinkInternal, VuiList, VuiMenu, VuiMenuItem, VuiModal, VuiNotifications, VuiNumberInput, VuiOptionsButton, VuiOptionsList, VuiOptionsListItem, VuiPagination, VuiPanel, VuiPasswordInput, VuiPopover, VuiPortal, VuiProgressBar, VuiPrompt, VuiRadioButton, VuiScreenBlock, VuiSearchInput, VuiSearchResult, VuiSearchSelect, VuiSelect, VuiSetting, VuiSimpleCard, VuiSimpleGrid, VuiSpacer, VuiSpinner, VuiStat, VuiStatList, VuiStatus, VuiSteps, VuiStepsVertical, VuiSummary, VuiSkeleton, VuiSummaryCitation, VuiSuperCheckboxGroup, VuiSuperRadioGroup, VuiTable, VuiTab, VuiTabbedRoutes, VuiTabs, VuiTabsNavigator, VuiText, VuiTextArea, VuiTextColor, VuiTextInput, VuiTimeline, VuiTimelineItem, VuiTitle, VuiToggle, VuiTooltip, VuiTopicButton };
|
package/lib/components/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { VuiCard, VuiSimpleCard } from "./card";
|
|
|
17
17
|
import { CALLOUT_COLOR, CALLOUT_SIZE } from "./callout/types";
|
|
18
18
|
import { VuiChat } from "./chat/Chat";
|
|
19
19
|
import { VuiCode } from "./code/Code";
|
|
20
|
+
import { VuiComplexConfigurationButton } from "./complexConfigurationButton/ComplexConfigurationButton";
|
|
20
21
|
import { VuiContextProvider } from "./context/Context";
|
|
21
22
|
import { VuiCopyButton } from "./copyButton/CopyButton";
|
|
22
23
|
import { VuiDatePicker } from "./datePicker/DatePicker";
|
|
@@ -74,7 +75,7 @@ import { VuiTable } from "./table/Table";
|
|
|
74
75
|
import { VuiTab } from "./tabs/Tab";
|
|
75
76
|
import { VuiTabbedRoutes } from "./tabs/TabbedRoutes";
|
|
76
77
|
import { VuiTabs } from "./tabs/Tabs";
|
|
77
|
-
import { VuiTabsNavigator } from "./tabs/
|
|
78
|
+
import { VuiTabsNavigator } from "./tabs/TabsNavigator";
|
|
78
79
|
import { TAB_SIZE } from "./tabs/types";
|
|
79
80
|
import { VuiText } from "./typography/Text";
|
|
80
81
|
import { VuiTextColor } from "./typography/TextColor";
|
|
@@ -87,4 +88,4 @@ import { VuiInfoTooltip } from "./tooltip/InfoTooltip";
|
|
|
87
88
|
import { VuiTopicButton } from "./topicButton/TopicButton";
|
|
88
89
|
import { copyToClipboard } from "../utils/copyToClipboard";
|
|
89
90
|
import { toRgb, toRgba } from "./context/Theme";
|
|
90
|
-
export { BADGE_COLOR, BUTTON_COLOR, BUTTON_SIZE, CALLOUT_COLOR, CALLOUT_SIZE, ICON_COLOR, ICON_SIZE, ICON_TYPE, PROGRESS_BAR_COLOR, SPACER_SIZE, SPINNER_COLOR, SKELETON_COLOR, SPINNER_SIZE, TAB_SIZE, TEXT_COLOR, TEXT_SIZE, TITLE_SIZE, addNotification, copyToClipboard, generateTokensProvider, toRgb, toRgba, VuiAccordion, VuiAccountButton, VuiAppContent, VuiAppHeader, VuiAppLayout, VuiAppSideNav, VuiAppSideNavLink, VuiAppSideNavGroup, VuiBadge, VuiButtonPrimary, VuiButtonSecondary, VuiButtonTertiary, VuiIconButton, VuiCallout, VuiCard, VuiChat, VuiCheckbox, VuiCode, VuiCodeEditor, VuiContextProvider, VuiCopyButton, VuiDatePicker, VuiDateRangePicker, VuiDrawer, VuiErrorBoundary, VuiFlexContainer, VuiFlexItem, VuiFormGroup, VuiGrid, VuiGridItem, VuiHorizontalRule, VuiIcon, VuiImage, VuiImagePreview, VuiInfoList, VuiInfoListItem, VuiInfoMenu, VuiInfoTable, VuiInfoTooltip, VuiInProgress, VuiItemsInput, VuiLabel, VuiLink, VuiLinkInternal, VuiList, VuiMenu, VuiMenuItem, VuiModal, VuiNotifications, VuiNumberInput, VuiOptionsButton, VuiOptionsList, VuiOptionsListItem, VuiPagination, VuiPanel, VuiPasswordInput, VuiPopover, VuiPortal, VuiProgressBar, VuiPrompt, VuiRadioButton, VuiScreenBlock, VuiSearchInput, VuiSearchResult, VuiSearchSelect, VuiSelect, VuiSetting, VuiSimpleCard, VuiSimpleGrid, VuiSpacer, VuiSpinner, VuiStat, VuiStatList, VuiStatus, VuiSteps, VuiStepsVertical, VuiSummary, VuiSkeleton, VuiSummaryCitation, VuiSuperCheckboxGroup, VuiSuperRadioGroup, VuiTable, VuiTab, VuiTabbedRoutes, VuiTabs, VuiTabsNavigator, VuiText, VuiTextArea, VuiTextColor, VuiTextInput, VuiTimeline, VuiTimelineItem, VuiTitle, VuiToggle, VuiTooltip, VuiTopicButton };
|
|
91
|
+
export { BADGE_COLOR, BUTTON_COLOR, BUTTON_SIZE, CALLOUT_COLOR, CALLOUT_SIZE, ICON_COLOR, ICON_SIZE, ICON_TYPE, PROGRESS_BAR_COLOR, SPACER_SIZE, SPINNER_COLOR, SKELETON_COLOR, SPINNER_SIZE, TAB_SIZE, TEXT_COLOR, TEXT_SIZE, TITLE_SIZE, addNotification, copyToClipboard, generateTokensProvider, toRgb, toRgba, VuiAccordion, VuiAccountButton, VuiAppContent, VuiAppHeader, VuiAppLayout, VuiAppSideNav, VuiAppSideNavLink, VuiAppSideNavGroup, VuiBadge, VuiButtonPrimary, VuiButtonSecondary, VuiButtonTertiary, VuiIconButton, VuiCallout, VuiCard, VuiChat, VuiCheckbox, VuiCode, VuiCodeEditor, VuiComplexConfigurationButton, VuiContextProvider, VuiCopyButton, VuiDatePicker, VuiDateRangePicker, VuiDrawer, VuiErrorBoundary, VuiFlexContainer, VuiFlexItem, VuiFormGroup, VuiGrid, VuiGridItem, VuiHorizontalRule, VuiIcon, VuiImage, VuiImagePreview, VuiInfoList, VuiInfoListItem, VuiInfoMenu, VuiInfoTable, VuiInfoTooltip, VuiInProgress, VuiItemsInput, VuiLabel, VuiLink, VuiLinkInternal, VuiList, VuiMenu, VuiMenuItem, VuiModal, VuiNotifications, VuiNumberInput, VuiOptionsButton, VuiOptionsList, VuiOptionsListItem, VuiPagination, VuiPanel, VuiPasswordInput, VuiPopover, VuiPortal, VuiProgressBar, VuiPrompt, VuiRadioButton, VuiScreenBlock, VuiSearchInput, VuiSearchResult, VuiSearchSelect, VuiSelect, VuiSetting, VuiSimpleCard, VuiSimpleGrid, VuiSpacer, VuiSpinner, VuiStat, VuiStatList, VuiStatus, VuiSteps, VuiStepsVertical, VuiSummary, VuiSkeleton, VuiSummaryCitation, VuiSuperCheckboxGroup, VuiSuperRadioGroup, VuiTable, VuiTab, VuiTabbedRoutes, VuiTabs, VuiTabsNavigator, VuiText, VuiTextArea, VuiTextColor, VuiTextInput, VuiTimeline, VuiTimelineItem, VuiTitle, VuiToggle, VuiTooltip, VuiTopicButton };
|
|
@@ -3,6 +3,7 @@ import { TabRoute } from "./types";
|
|
|
3
3
|
type Props = {
|
|
4
4
|
routes: TabRoute[];
|
|
5
5
|
popover?: Omit<PopoverProps, "header" | "isOpen" | "setIsOpen" | "button" | "children" | "padding">;
|
|
6
|
+
"data-testid"?: string;
|
|
6
7
|
};
|
|
7
|
-
export declare const VuiTabsNavigator: ({ routes, popover }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const VuiTabsNavigator: ({ routes, popover, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
8
9
|
export {};
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
1
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
13
|
import { useState } from "react";
|
|
3
14
|
import { VuiPopover } from "../popover/Popover";
|
|
@@ -6,8 +17,9 @@ import { VuiTabs } from "./Tabs";
|
|
|
6
17
|
import { useVuiContext } from "../context/Context";
|
|
7
18
|
import { VuiIcon } from "../icon/Icon";
|
|
8
19
|
import { BiDotsVertical } from "react-icons/bi";
|
|
9
|
-
export const VuiTabsNavigator = (
|
|
10
|
-
var
|
|
20
|
+
export const VuiTabsNavigator = (_a) => {
|
|
21
|
+
var _b;
|
|
22
|
+
var { routes, popover } = _a, rest = __rest(_a, ["routes", "popover"]);
|
|
11
23
|
const { getPath } = useVuiContext();
|
|
12
24
|
const [isOpen, setIsOpen] = useState(false);
|
|
13
25
|
const isRouteActive = (route) => {
|
|
@@ -15,7 +27,7 @@ export const VuiTabsNavigator = ({ routes, popover }) => {
|
|
|
15
27
|
return (_a = route.isActive) !== null && _a !== void 0 ? _a : (route.href ? getPath().includes(route.href) : false);
|
|
16
28
|
};
|
|
17
29
|
const activeRoute = routes.find((route) => isRouteActive(route));
|
|
18
|
-
return (_jsx(VuiPopover, Object.assign({}, popover, { isOpen: isOpen, setIsOpen: () => setIsOpen(!isOpen), button: _jsx("button", Object.assign({ className: "vuiTabsNavigatorButton" }, { children: _jsxs("div", Object.assign({ className: "vuiTabsNavigatorButton__inner" }, { children: [_jsx(VuiIcon, Object.assign({ size: "xs" }, { children: _jsx(BiDotsVertical, {}) })), _jsx("div", { children: (
|
|
30
|
+
return (_jsx(VuiPopover, Object.assign({}, popover, { isOpen: isOpen, setIsOpen: () => setIsOpen(!isOpen), button: _jsx("button", Object.assign({ className: "vuiTabsNavigatorButton" }, rest, { children: _jsxs("div", Object.assign({ className: "vuiTabsNavigatorButton__inner" }, { children: [_jsx(VuiIcon, Object.assign({ size: "xs" }, { children: _jsx(BiDotsVertical, {}) })), _jsx("div", { children: (_b = activeRoute === null || activeRoute === void 0 ? void 0 : activeRoute.title) !== null && _b !== void 0 ? _b : "No selection" })] })) })), padding: "none" }, { children: _jsx(VuiTabs, Object.assign({ size: "s", tabStyle: "enclosed", vertical: true }, { children: routes.map((route, index) => {
|
|
19
31
|
const { href, onClick, title, render, testId } = route;
|
|
20
32
|
const tabLink = (_jsx(VuiTab, Object.assign({ href: href, isActive: isRouteActive(route), "data-testid": testId, onClick: () => {
|
|
21
33
|
onClick === null || onClick === void 0 ? void 0 : onClick();
|
package/lib/styles/index.css
CHANGED
|
@@ -1571,6 +1571,22 @@ fieldset {
|
|
|
1571
1571
|
padding: 8px 4px 0 24px;
|
|
1572
1572
|
}
|
|
1573
1573
|
|
|
1574
|
+
.vuiComplexConfigurationButton {
|
|
1575
|
+
width: 100%;
|
|
1576
|
+
border: 1px solid var(--vui-color-primary-highlight-shade);
|
|
1577
|
+
padding: 12px 16px;
|
|
1578
|
+
border-radius: 8px;
|
|
1579
|
+
transition: box-shadow 0.2s, border-color 0.2s;
|
|
1580
|
+
}
|
|
1581
|
+
.vuiComplexConfigurationButton:hover:not(:disabled) {
|
|
1582
|
+
border-color: var(--vui-color-primary-shade);
|
|
1583
|
+
box-shadow: rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;
|
|
1584
|
+
}
|
|
1585
|
+
.vuiComplexConfigurationButton:disabled {
|
|
1586
|
+
cursor: not-allowed;
|
|
1587
|
+
opacity: 0.5;
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1574
1590
|
.react-datepicker__navigation-icon::before, .react-datepicker__year-read-view--down-arrow,
|
|
1575
1591
|
.react-datepicker__month-read-view--down-arrow,
|
|
1576
1592
|
.react-datepicker__month-year-read-view--down-arrow {
|
package/package.json
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BiCog } from "react-icons/bi";
|
|
2
|
+
import { VuiComplexConfigurationButton, VuiSpacer, VuiStatList } from "../../../lib";
|
|
3
|
+
|
|
4
|
+
export const ComplexConfigurationButton = () => {
|
|
5
|
+
return (
|
|
6
|
+
<>
|
|
7
|
+
<VuiComplexConfigurationButton title="Title only" onClick={() => console.log("clicked")} />
|
|
8
|
+
|
|
9
|
+
<VuiSpacer size="m" />
|
|
10
|
+
|
|
11
|
+
<VuiComplexConfigurationButton
|
|
12
|
+
title="Title with description"
|
|
13
|
+
description="A secondary line of text describing the current selection."
|
|
14
|
+
onClick={() => console.log("clicked")}
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
<VuiSpacer size="m" />
|
|
18
|
+
|
|
19
|
+
<VuiComplexConfigurationButton
|
|
20
|
+
title="With a footer"
|
|
21
|
+
description="Pass any node into the footer slot."
|
|
22
|
+
footer={
|
|
23
|
+
<VuiStatList
|
|
24
|
+
size="xs"
|
|
25
|
+
stats={[
|
|
26
|
+
{ name: "Tokens", value: "4096" },
|
|
27
|
+
{ name: "Temperature", value: "0.7" }
|
|
28
|
+
]}
|
|
29
|
+
/>
|
|
30
|
+
}
|
|
31
|
+
onClick={() => console.log("clicked")}
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
<VuiSpacer size="m" />
|
|
35
|
+
|
|
36
|
+
<VuiComplexConfigurationButton
|
|
37
|
+
title="Custom icon"
|
|
38
|
+
description="Override the default pencil with any icon."
|
|
39
|
+
icon={<BiCog />}
|
|
40
|
+
onClick={() => console.log("clicked")}
|
|
41
|
+
/>
|
|
42
|
+
|
|
43
|
+
<VuiSpacer size="m" />
|
|
44
|
+
|
|
45
|
+
<VuiComplexConfigurationButton
|
|
46
|
+
title="Disabled"
|
|
47
|
+
description="Click is suppressed and hover styling is disabled."
|
|
48
|
+
isDisabled
|
|
49
|
+
onClick={() => console.log("clicked")}
|
|
50
|
+
/>
|
|
51
|
+
</>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComplexConfigurationButton } from "./ComplexConfigurationButton";
|
|
2
|
+
const ComplexConfigurationButtonSource = require("!!raw-loader!./ComplexConfigurationButton");
|
|
3
|
+
|
|
4
|
+
export const complexConfigurationButton = {
|
|
5
|
+
name: "Complex Configuration Button",
|
|
6
|
+
path: "/complexConfigurationButton",
|
|
7
|
+
example: {
|
|
8
|
+
component: <ComplexConfigurationButton />,
|
|
9
|
+
source: ComplexConfigurationButtonSource.default.toString()
|
|
10
|
+
}
|
|
11
|
+
};
|
package/src/docs/pages.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import { chat } from "./pages/chat";
|
|
|
10
10
|
import { checkbox } from "./pages/checkbox";
|
|
11
11
|
import { code } from "./pages/code";
|
|
12
12
|
import { codeEditor } from "./pages/codeEditor";
|
|
13
|
+
import { complexConfigurationButton } from "./pages/complexConfigurationButton";
|
|
13
14
|
import { copyButton } from "./pages/copyButton";
|
|
14
15
|
import { datePicker } from "./pages/datePicker";
|
|
15
16
|
import { drawer } from "./pages/drawer";
|
|
@@ -132,7 +133,17 @@ export const categories: Category[] = [
|
|
|
132
133
|
},
|
|
133
134
|
{
|
|
134
135
|
name: "Controls",
|
|
135
|
-
pages: [
|
|
136
|
+
pages: [
|
|
137
|
+
button,
|
|
138
|
+
complexConfigurationButton,
|
|
139
|
+
copyButton,
|
|
140
|
+
link,
|
|
141
|
+
topicButton,
|
|
142
|
+
menu,
|
|
143
|
+
optionsButton,
|
|
144
|
+
optionsList,
|
|
145
|
+
searchSelect
|
|
146
|
+
]
|
|
136
147
|
},
|
|
137
148
|
{
|
|
138
149
|
name: "Utils",
|