@topconsultnpm/sdkui-react-beta 6.16.21 → 6.16.23
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/features/documents/TMDcmtForm.d.ts +1 -1
- package/lib/components/features/search/TMSearch.d.ts +1 -1
- package/lib/components/features/search/TMSearch.js +13 -7
- package/lib/components/features/search/TMSearchResult.d.ts +1 -1
- package/lib/components/features/search/TMSearchResult.js +3 -3
- package/lib/components/forms/TMChooserForm.js +2 -2
- package/lib/components/index.d.ts +0 -1
- package/lib/components/index.js +0 -2
- package/package.json +1 -1
- package/lib/components/connectors/connectors.styles.d.ts +0 -18
- package/lib/components/connectors/connectors.styles.js +0 -178
|
@@ -38,7 +38,7 @@ interface ITMDcmtFormProps {
|
|
|
38
38
|
mid: number;
|
|
39
39
|
value: string;
|
|
40
40
|
}>;
|
|
41
|
-
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>) => void;
|
|
41
|
+
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
|
|
42
42
|
s4TViewerDialogComponent?: React.ReactNode;
|
|
43
43
|
}
|
|
44
44
|
declare const TMDcmtForm: React.FC<ITMDcmtFormProps>;
|
|
@@ -14,7 +14,7 @@ interface ITMSearchProps {
|
|
|
14
14
|
openWGsCopyMoveForm?: (mode: "copyToWgDraft" | "copyToWgArchivedDoc", dcmtTypeDescriptor: DcmtTypeDescriptor, documents: Array<DcmtInfo>) => void;
|
|
15
15
|
openEditPdf?: (documents: Array<DcmtInfo>) => void;
|
|
16
16
|
openS4TViewer?: boolean;
|
|
17
|
-
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>) => void;
|
|
17
|
+
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
|
|
18
18
|
showTodoDcmtForm?: boolean;
|
|
19
19
|
openInOffice?: (selectedDcmtsOrFocused: Array<DcmtInfo>) => Promise<void>;
|
|
20
20
|
}
|
|
@@ -119,6 +119,18 @@ const TMSearch = ({ openInOffice, isVisible, inputTID, inputSqdID, isExpertMode
|
|
|
119
119
|
if (sqdToBeSet)
|
|
120
120
|
await setSqdAsync?.(sqdToBeSet);
|
|
121
121
|
}, []);
|
|
122
|
+
const onRefreshSearchAsync = async () => {
|
|
123
|
+
try {
|
|
124
|
+
const newResult = (await refreshLastSearch(lastQdSearched)) ?? [];
|
|
125
|
+
setSearchResult(newResult);
|
|
126
|
+
if (newResult.length <= 0) {
|
|
127
|
+
setCurrentSearchView(TMSearchViews.Search);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
console.error("Error refreshing search:", error);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
122
134
|
const isMobile = deviceType === DeviceType.MOBILE;
|
|
123
135
|
// --- JSX WRAPPERS ---
|
|
124
136
|
const tmTreeSelectorElement = useMemo(() => _jsx(TMTreeSelectorWrapper, { isMobile: isMobile, onSelectedTIDChanged: (tid) => {
|
|
@@ -196,13 +208,7 @@ const TMSearch = ({ openInOffice, isVisible, inputTID, inputSqdID, isExpertMode
|
|
|
196
208
|
toolbarOptions: { icon: _jsx(IconSavedQuery, { fontSize: 24 }), visible: true, orderNumber: 4, isActive: allInitialPanelVisibility['TMSavedQuerySelector'] }
|
|
197
209
|
}
|
|
198
210
|
], [tmTreeSelectorElement, tmRecentsManagerElement, tmSearchQueryPanelElement, tmSavedQuerySelectorElement, fromDTD, mruTIDs]);
|
|
199
|
-
return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true }) }) }), _jsx(TMSearchResult, { isVisible: isVisible && currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, floatingActionConfig: floatingActionConfig, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, openInOffice: openInOffice, onRefreshSearchAsync:
|
|
200
|
-
let newResult = await refreshLastSearch(lastQdSearched) ?? [];
|
|
201
|
-
setSearchResult(newResult);
|
|
202
|
-
if (newResult.length <= 0) {
|
|
203
|
-
setCurrentSearchView(TMSearchViews.Search);
|
|
204
|
-
}
|
|
205
|
-
}, onClose: () => { setCurrentSearchView(TMSearchViews.Search); }, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, openEditPdf: openEditPdf, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, showTodoDcmtForm: showTodoDcmtForm })] }));
|
|
211
|
+
return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Search, children: _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'TMRecentsManager', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", showToolbar: true }) }) }), _jsx(TMSearchResult, { isVisible: isVisible && currentSearchView === TMSearchViews.Result, context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, floatingActionConfig: floatingActionConfig, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, openInOffice: openInOffice, onRefreshSearchAsync: onRefreshSearchAsync, onClose: () => { setCurrentSearchView(TMSearchViews.Search); }, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, openEditPdf: openEditPdf, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, showTodoDcmtForm: showTodoDcmtForm })] }));
|
|
206
212
|
};
|
|
207
213
|
export default TMSearch;
|
|
208
214
|
const TMTreeSelectorWrapper = ({ isMobile, onSelectedTIDChanged }) => {
|
|
@@ -33,7 +33,7 @@ interface ITMSearchResultProps {
|
|
|
33
33
|
openCommentFormCallback?: (documents: Array<DcmtInfo>) => void;
|
|
34
34
|
openAddDocumentForm?: () => void;
|
|
35
35
|
openS4TViewer?: boolean;
|
|
36
|
-
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>) => void;
|
|
36
|
+
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
|
|
37
37
|
showTodoDcmtForm?: boolean;
|
|
38
38
|
}
|
|
39
39
|
declare const TMSearchResult: React.FC<ITMSearchResultProps>;
|
|
@@ -205,12 +205,12 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
205
205
|
};
|
|
206
206
|
const handleSignApprove = () => {
|
|
207
207
|
if (onOpenS4TViewerRequest) {
|
|
208
|
-
onOpenS4TViewerRequest(getSelectedDcmtsOrFocused(selectedItems, focusedItem));
|
|
208
|
+
onOpenS4TViewerRequest(getSelectedDcmtsOrFocused(selectedItems, focusedItem), onRefreshSearchAsync);
|
|
209
209
|
return;
|
|
210
210
|
}
|
|
211
211
|
ShowAlert({
|
|
212
|
-
message: "
|
|
213
|
-
mode: "
|
|
212
|
+
message: "Non è stato possibile proseguire con la firma e l'approvazione.",
|
|
213
|
+
mode: "warning",
|
|
214
214
|
duration: 3000,
|
|
215
215
|
title: SDKUI_Localizator.SignatureAndApprove,
|
|
216
216
|
});
|
|
@@ -86,8 +86,8 @@ const TMChooserForm = ({ children, title, allowMultipleSelection = false, allowA
|
|
|
86
86
|
...summaryItems ?? {}
|
|
87
87
|
});
|
|
88
88
|
}, [manageUseLocalizedName, summaryItems]);
|
|
89
|
-
return (_jsx(TMModal, { title: renderTitle(), width: width ?? '550px', height: height ?? '600px', toolbar: _jsx(ToolbarButtons, {}), onClose: onClose, children: children ??
|
|
90
|
-
filteredItems.length > 0
|
|
89
|
+
return (_jsx(TMModal, { title: renderTitle(), width: width ?? '550px', height: height ?? '600px', toolbar: _jsx(ToolbarButtons, {}), onClose: onClose, children: (children ??
|
|
90
|
+
filteredItems.length > 0)
|
|
91
91
|
? _jsx(TMDataGrid, { dataSource: filteredItems, keyExpr: keyName, dataColumns: dataColumns, focusedRowKey: focusedRowKey, selectedRowKeys: selectedRowKeys, searchPanelFocusStarting: true, headerFilter: { visible: true }, selection: { mode: allowMultipleSelection ? 'multiple' : 'single', showCheckBoxesMode: 'always', selectAllMode: 'allPages' }, grouping: allowGrouping ? { autoExpandAll: false, expandMode: 'rowClick' } : undefined, summary: customSummary, onFocusedRowChanged: handleFocusedRowChange, onSelectionChanged: handleSelectionChanged, onRowDblClick: handleRowDoubleClick })
|
|
92
92
|
: _jsx(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: _jsx(TMLayoutItem, { children: _jsx("p", { style: { height: "100%", color: TMColors.primaryColor, fontSize: "1.5rem", display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: SDKUI_Localizator.NoDataToDisplay }) }) }) }));
|
|
93
93
|
};
|
|
@@ -49,7 +49,6 @@ export * from './choosers/TMInvoiceRetrieveFormats';
|
|
|
49
49
|
export * from './choosers/TMMetadataChooser';
|
|
50
50
|
export * from './choosers/TMOrderRetrieveFormats';
|
|
51
51
|
export * from './choosers/TMUserChooser';
|
|
52
|
-
export * from './connectors/connectors.styles';
|
|
53
52
|
export { default as TMValidationItemsList } from './grids/TMValidationItemsList';
|
|
54
53
|
export { default as TMBlogs } from './grids/TMBlogs';
|
|
55
54
|
export { default as TMBlogCommentForm } from './features/blog/TMBlogCommentForm';
|
package/lib/components/index.js
CHANGED
|
@@ -52,8 +52,6 @@ export * from './choosers/TMInvoiceRetrieveFormats';
|
|
|
52
52
|
export * from './choosers/TMMetadataChooser';
|
|
53
53
|
export * from './choosers/TMOrderRetrieveFormats';
|
|
54
54
|
export * from './choosers/TMUserChooser';
|
|
55
|
-
// connectors
|
|
56
|
-
export * from './connectors/connectors.styles';
|
|
57
55
|
//grids
|
|
58
56
|
export { default as TMValidationItemsList } from './grids/TMValidationItemsList';
|
|
59
57
|
// blogs
|
package/package.json
CHANGED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare const StyledConnectorButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
2
|
-
$isActive?: boolean;
|
|
3
|
-
$isCompact?: boolean;
|
|
4
|
-
$isCurrentDocument?: boolean;
|
|
5
|
-
}>> & string;
|
|
6
|
-
export declare const StyledConnectorContentArea: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
7
|
-
export declare const StyledConnectorFirstPageContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
|
|
8
|
-
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
9
|
-
}, never>> & string;
|
|
10
|
-
export declare const StyledConnectorCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
11
|
-
export declare const StyledConnectorToppyImage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, never>> & string;
|
|
12
|
-
export declare const StyledConnectorSuccessMessage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
13
|
-
export declare const StyledConnectorPillContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
14
|
-
export declare const StyledConnectorPillRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
15
|
-
export declare const StyledConnectorPill: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
|
|
16
|
-
export declare const StyledConnectorWelcomeMessage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
17
|
-
export declare const StyledConnectorWelcomeSub: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
|
|
18
|
-
export declare const StyledConnectorCloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import styled from "styled-components";
|
|
2
|
-
import { TMColors } from "../../utils/theme";
|
|
3
|
-
export const StyledConnectorButton = styled.button `
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
justify-content: center;
|
|
7
|
-
gap: ${props => props.$isCompact ? '0' : '6px'};
|
|
8
|
-
padding: ${props => props.$isCompact ? '8px' : '8px 16px'};
|
|
9
|
-
min-height: 36px;
|
|
10
|
-
width: ${props => props.$isCompact ? '36px' : 'auto'};
|
|
11
|
-
background-color: ${props => props.$isActive
|
|
12
|
-
? props.$isCurrentDocument
|
|
13
|
-
? TMColors.success
|
|
14
|
-
: '#0078d4'
|
|
15
|
-
: '#ffffff'};
|
|
16
|
-
color: ${props => props.$isActive ? '#ffffff' : '#323130'};
|
|
17
|
-
border: 1px solid ${props => props.$isActive
|
|
18
|
-
? props.$isCurrentDocument
|
|
19
|
-
? TMColors.success
|
|
20
|
-
: '#0078d4'
|
|
21
|
-
: '#d1d1d1'};
|
|
22
|
-
border-radius: 6px;
|
|
23
|
-
cursor: pointer;
|
|
24
|
-
font-size: 13px;
|
|
25
|
-
font-weight: 500;
|
|
26
|
-
transition: all 0.2s ease;
|
|
27
|
-
box-shadow: ${props => props.$isActive
|
|
28
|
-
? props.$isCurrentDocument
|
|
29
|
-
? `0 2px 6px ${TMColors.success}40`
|
|
30
|
-
: '0 2px 6px rgba(0, 120, 212, 0.25)'
|
|
31
|
-
: '0 1px 2px rgba(0, 0, 0, 0.08)'};
|
|
32
|
-
white-space: nowrap;
|
|
33
|
-
position: relative;
|
|
34
|
-
|
|
35
|
-
&:hover {
|
|
36
|
-
background-color: ${props => props.$isActive
|
|
37
|
-
? props.$isCurrentDocument
|
|
38
|
-
? TMColors.success
|
|
39
|
-
: '#106ebe'
|
|
40
|
-
: '#f3f2f1'};
|
|
41
|
-
transform: translateY(-1px);
|
|
42
|
-
box-shadow: ${props => props.$isActive
|
|
43
|
-
? props.$isCurrentDocument
|
|
44
|
-
? `0 3px 8px ${TMColors.success}50`
|
|
45
|
-
: '0 3px 8px rgba(0, 120, 212, 0.3)'
|
|
46
|
-
: '0 2px 4px rgba(0, 0, 0, 0.12)'};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&:focus {
|
|
50
|
-
outline: 2px solid ${props => props.$isCurrentDocument && props.$isActive ? TMColors.success : '#0078d4'};
|
|
51
|
-
outline-offset: 2px;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
&:active {
|
|
55
|
-
transform: translateY(0);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
&:disabled {
|
|
59
|
-
background-color: #f3f2f1;
|
|
60
|
-
color: #b3b3b3;
|
|
61
|
-
border-color: #e0e0e0;
|
|
62
|
-
cursor: not-allowed;
|
|
63
|
-
box-shadow: none;
|
|
64
|
-
opacity: 0.7;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
svg {
|
|
68
|
-
width: 16px;
|
|
69
|
-
height: 16px;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
span {
|
|
73
|
-
display: ${props => props.$isCompact ? 'none' : 'inline'};
|
|
74
|
-
}
|
|
75
|
-
`;
|
|
76
|
-
export const StyledConnectorContentArea = styled.div `
|
|
77
|
-
position: absolute;
|
|
78
|
-
top: 60px;
|
|
79
|
-
left: 10px;
|
|
80
|
-
width: calc(100% - 20px);
|
|
81
|
-
height: calc(100% - 70px);
|
|
82
|
-
background-color: #efefef;
|
|
83
|
-
border-radius: 10px;
|
|
84
|
-
overflow: hidden;
|
|
85
|
-
`;
|
|
86
|
-
export const StyledConnectorFirstPageContent = styled(StyledConnectorContentArea) `
|
|
87
|
-
display: flex;
|
|
88
|
-
flex-direction: column;
|
|
89
|
-
align-items: center;
|
|
90
|
-
justify-content: center;
|
|
91
|
-
background: linear-gradient(135deg, #f8fafc 0%, #e3e9f3 100%);
|
|
92
|
-
`;
|
|
93
|
-
export const StyledConnectorCard = styled.div `
|
|
94
|
-
background: #fff;
|
|
95
|
-
border-radius: 18px;
|
|
96
|
-
box-shadow: 0 6px 32px 0 rgba(0,0,0,0.10);
|
|
97
|
-
padding: 40px 36px 32px 36px;
|
|
98
|
-
min-width: 420px;
|
|
99
|
-
max-width: 500px;
|
|
100
|
-
display: flex;
|
|
101
|
-
flex-direction: column;
|
|
102
|
-
align-items: center;
|
|
103
|
-
border: 1.5px solid #e3e9f3;
|
|
104
|
-
`;
|
|
105
|
-
export const StyledConnectorToppyImage = styled.img `
|
|
106
|
-
width: 80px;
|
|
107
|
-
filter: drop-shadow(0 2px 8px #e3e9f3);
|
|
108
|
-
`;
|
|
109
|
-
export const StyledConnectorSuccessMessage = styled.div `
|
|
110
|
-
font-size: 13px;
|
|
111
|
-
color: #666;
|
|
112
|
-
font-weight: 600;
|
|
113
|
-
margin-bottom: 10px;
|
|
114
|
-
text-align: center;
|
|
115
|
-
letter-spacing: 0.1px;
|
|
116
|
-
`;
|
|
117
|
-
export const StyledConnectorPillContainer = styled.div `
|
|
118
|
-
width: 100%;
|
|
119
|
-
margin-bottom: 10px;
|
|
120
|
-
`;
|
|
121
|
-
export const StyledConnectorPillRow = styled.div `
|
|
122
|
-
display: flex;
|
|
123
|
-
width: 100%;
|
|
124
|
-
gap: 10px;
|
|
125
|
-
margin-bottom: 6px;
|
|
126
|
-
&:last-child {
|
|
127
|
-
margin-bottom: 0;
|
|
128
|
-
}
|
|
129
|
-
`;
|
|
130
|
-
export const StyledConnectorPill = styled.span `
|
|
131
|
-
background: #e6f0fa;
|
|
132
|
-
color: #0078d4;
|
|
133
|
-
border-radius: 16px;
|
|
134
|
-
padding: 8px 20px;
|
|
135
|
-
font-weight: 600;
|
|
136
|
-
font-size: 13px;
|
|
137
|
-
letter-spacing: 0.1px;
|
|
138
|
-
box-shadow: 0 1px 4px 0 rgba(0,120,212,0.07);
|
|
139
|
-
border: 1px solid #cbe2fa;
|
|
140
|
-
display: inline-block;
|
|
141
|
-
text-align: center;
|
|
142
|
-
line-height: 1.3;
|
|
143
|
-
`;
|
|
144
|
-
export const StyledConnectorWelcomeMessage = styled.div `
|
|
145
|
-
font-size: 19px;
|
|
146
|
-
color: #666;
|
|
147
|
-
text-align: center;
|
|
148
|
-
line-height: 1.5;
|
|
149
|
-
`;
|
|
150
|
-
export const StyledConnectorWelcomeSub = styled.span `
|
|
151
|
-
font-size: 16px;
|
|
152
|
-
color: #888;
|
|
153
|
-
`;
|
|
154
|
-
export const StyledConnectorCloseButton = styled.button `
|
|
155
|
-
position: absolute;
|
|
156
|
-
bottom: 16px;
|
|
157
|
-
right: 16px;
|
|
158
|
-
background: #dc3545;
|
|
159
|
-
color: white;
|
|
160
|
-
border: none;
|
|
161
|
-
border-radius: 8px;
|
|
162
|
-
padding: 8px 16px;
|
|
163
|
-
font-size: 13px;
|
|
164
|
-
font-weight: 500;
|
|
165
|
-
cursor: pointer;
|
|
166
|
-
transition: all 0.2s ease;
|
|
167
|
-
box-shadow: 0 2px 4px rgba(220, 53, 69, 0.25);
|
|
168
|
-
|
|
169
|
-
&:hover {
|
|
170
|
-
background: #c82333;
|
|
171
|
-
transform: translateY(-1px);
|
|
172
|
-
box-shadow: 0 3px 6px rgba(220, 53, 69, 0.35);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
&:active {
|
|
176
|
-
transform: translateY(0);
|
|
177
|
-
}
|
|
178
|
-
`;
|