@topconsultnpm/sdkui-react 6.22.0-dev4.3 → 6.22.0-dev4.4

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 (110) hide show
  1. package/lib/components/NewComponents/ContextMenu/styles.d.ts +43 -45
  2. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +60 -67
  3. package/lib/components/base/Styled.d.ts +77 -93
  4. package/lib/components/base/TMCounterBar.d.ts +2 -2
  5. package/lib/components/base/TMCounterContainer.d.ts +1 -2
  6. package/lib/components/base/TMCustomButton.d.ts +1 -1
  7. package/lib/components/base/TMDataGridExportForm.d.ts +1 -2
  8. package/lib/components/base/TMFileManager.d.ts +1 -2
  9. package/lib/components/base/TMFileManagerDataGridView.d.ts +1 -2
  10. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
  11. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
  12. package/lib/components/base/TMFileManagerUtils.d.ts +6 -4
  13. package/lib/components/base/TMLayout.d.ts +4 -4
  14. package/lib/components/base/TMList.d.ts +1 -2
  15. package/lib/components/base/TMListView.d.ts +1 -1
  16. package/lib/components/base/TMSpinner.d.ts +2 -3
  17. package/lib/components/base/TMTab.d.ts +3 -4
  18. package/lib/components/base/TMTabControl.js +208 -208
  19. package/lib/components/base/TMTooltip.d.ts +1 -1
  20. package/lib/components/base/TMTreeView.d.ts +8 -14
  21. package/lib/components/base/TMUserAvatar.d.ts +1 -2
  22. package/lib/components/base/TMVilViewer.d.ts +1 -2
  23. package/lib/components/base/TMWaitPanel.d.ts +2 -3
  24. package/lib/components/base/waitPanel/TMWaitPanelView.d.ts +1 -2
  25. package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
  26. package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +1 -2
  27. package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +1 -2
  28. package/lib/components/choosers/TMQuickSearchInfo.d.ts +1 -2
  29. package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
  30. package/lib/components/choosers/TMUserChooser.d.ts +2 -2
  31. package/lib/components/editors/TMEditorStyled.d.ts +42 -20
  32. package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
  33. package/lib/components/editors/TMHtmlContentDisplay.d.ts +1 -2
  34. package/lib/components/editors/TMHtmlEditor.d.ts +1 -2
  35. package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
  36. package/lib/components/features/assistant/TMHelpOnLineChat.d.ts +0 -1
  37. package/lib/components/features/assistant/TMHelpOnLineChat.js +8 -161
  38. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
  39. package/lib/components/features/blog/TMBlogCommentForm.d.ts +1 -2
  40. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
  41. package/lib/components/features/documents/TMDcmtIcon.d.ts +1 -2
  42. package/lib/components/features/documents/TMDcmtPreview.d.ts +6 -8
  43. package/lib/components/features/documents/TMDcmtTasks.d.ts +1 -2
  44. package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
  45. package/lib/components/features/documents/TMFileUploader.js +21 -21
  46. package/lib/components/features/documents/TMMasterInfoFields.d.ts +1 -2
  47. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +1 -2
  48. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.d.ts +1 -2
  49. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +4 -4
  50. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +1 -2
  51. package/lib/components/features/search/TMMetadataOutputForm.d.ts +1 -2
  52. package/lib/components/features/search/TMMetadataSorterForm.d.ts +1 -2
  53. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  54. package/lib/components/features/search/TMSearch.d.ts +1 -2
  55. package/lib/components/features/search/TMSearchQueryPanel.d.ts +3 -9
  56. package/lib/components/features/search/TMSearchResult.js +78 -78
  57. package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
  58. package/lib/components/features/search/TMSignatureInfoContent.d.ts +1 -2
  59. package/lib/components/features/search/TMViewHistoryDcmt.d.ts +1 -2
  60. package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
  61. package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
  62. package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
  63. package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
  64. package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
  65. package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
  66. package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
  67. package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
  68. package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +2 -3
  69. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +7 -8
  70. package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.d.ts +1 -3
  71. package/lib/components/forms/Login/ChangePasswordInputs.d.ts +1 -3
  72. package/lib/components/forms/Login/Chooser.d.ts +2 -2
  73. package/lib/components/forms/TMChooserForm.d.ts +1 -2
  74. package/lib/components/forms/TMSaveForm.d.ts +4 -4
  75. package/lib/components/grids/TMBlogAttachments.d.ts +1 -2
  76. package/lib/components/grids/TMBlogHeader.d.ts +1 -1
  77. package/lib/components/grids/TMBlogsPost.d.ts +1 -1
  78. package/lib/components/grids/TMBlogsPostUtils.d.ts +9 -9
  79. package/lib/components/grids/TMValidationItemsList.d.ts +1 -2
  80. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +1 -2
  81. package/lib/components/layout/panelManager/TMPanelManagerContainer.js +12 -12
  82. package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
  83. package/lib/components/layout/panelManager/TMPanelManagerLoader.d.ts +1 -2
  84. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +6 -5
  85. package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
  86. package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
  87. package/lib/components/pages/TMPage.d.ts +1 -1
  88. package/lib/components/query/TMQueryEditor.d.ts +10 -14
  89. package/lib/components/settings/SettingsAppearance.d.ts +1 -2
  90. package/lib/components/sidebar/TMAboutApp.d.ts +1 -2
  91. package/lib/components/sidebar/TMCommandsPanel.d.ts +4 -4
  92. package/lib/components/sidebar/TMHeader.d.ts +3 -3
  93. package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -3
  94. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +2 -3
  95. package/lib/components/viewers/TMMidViewer.d.ts +2 -2
  96. package/lib/components/viewers/TMTidViewer.d.ts +2 -2
  97. package/lib/helper/TMAppUpdatedModal.d.ts +1 -2
  98. package/lib/helper/TMAppUpdatedModal.js +93 -93
  99. package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
  100. package/lib/helper/TMIcons.d.ts +280 -280
  101. package/lib/helper/TMPdfViewer.d.ts +1 -2
  102. package/lib/helper/TMToppyMessage.d.ts +2 -2
  103. package/lib/helper/TMUtils.d.ts +4 -10
  104. package/lib/helper/helpers.d.ts +1 -1
  105. package/lib/hooks/useInputDialog.d.ts +1 -2
  106. package/lib/services/platform_services.d.ts +2 -3
  107. package/package.json +1 -1
  108. package/lib/components/features/assistant/dataset/Designer-Suggested-Questions.json +0 -102
  109. package/lib/components/features/assistant/dataset/Login-Suggested-Questions.json +0 -32
  110. package/lib/components/features/assistant/dataset/Surfer-Suggested-Questions.json +0 -102
@@ -2,14 +2,22 @@ import { ValidationItem } from '@topconsultnpm/sdk-ts';
2
2
  export declare const TMEditorsDefaultBorderRadius = "5px";
3
3
  export declare const TMEditorsDefaultLabelFontSize = "0.9rem";
4
4
  export declare const editorColorManager: (validationItems: ValidationItem[]) => string;
5
- export declare const StyledEditorContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
6
- style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
7
- }, {
5
+ export declare const StyledEditorContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$width"> & {
8
6
  $width: string;
9
- }>> & string;
10
- export declare const StyledEditor: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "style"> & {
11
- style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
12
- }, {
7
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$width"> & {
8
+ $width: string;
9
+ }, never>>> & string;
10
+ export declare const StyledEditor: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "$borderRadius" | "$disabled" | "$fontSize" | "$isMobile" | "$isModified" | "$maxValue" | "$type" | "$vil" | "$width"> & {
11
+ $vil: ValidationItem[];
12
+ $width: string;
13
+ $type: string;
14
+ $isModified: boolean;
15
+ $maxValue: number;
16
+ $fontSize: string;
17
+ $disabled: boolean;
18
+ $isMobile?: boolean;
19
+ $borderRadius?: string;
20
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "$borderRadius" | "$disabled" | "$fontSize" | "$isMobile" | "$isModified" | "$maxValue" | "$type" | "$vil" | "$width"> & {
13
21
  $vil: ValidationItem[];
14
22
  $width: string;
15
23
  $type: string;
@@ -19,26 +27,40 @@ export declare const StyledEditor: import("styled-components/dist/types").IStyle
19
27
  $disabled: boolean;
20
28
  $isMobile?: boolean;
21
29
  $borderRadius?: string;
22
- }>> & string;
23
- export declare const StyledEditorIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
24
- style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
25
- }, {
30
+ }, never>>> & string;
31
+ export declare const StyledEditorIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$disabled" | "$isModified" | "$vil"> & {
26
32
  $vil: ValidationItem[];
27
33
  $disabled: boolean;
28
34
  $isModified: boolean;
29
- }>> & string;
30
- export declare const StyledEditorLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
31
- style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
32
- }, {
35
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$disabled" | "$isModified" | "$vil"> & {
36
+ $vil: ValidationItem[];
37
+ $disabled: boolean;
38
+ $isModified: boolean;
39
+ }, never>>> & string;
40
+ export declare const StyledEditorLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color" | "$disabled" | "$fontSize" | "$isFocused" | "$labelPosition"> & {
33
41
  $isFocused: boolean;
34
42
  $labelPosition: 'right' | 'left' | 'top';
35
43
  $disabled: boolean;
36
44
  $fontSize?: string;
37
45
  $color?: string;
38
- }>> & string;
39
- export declare const StyledTextareaEditor: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<import("react").DetailedHTMLProps<import("react").TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "style"> & {
40
- style?: import("react").CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
41
- }, {
46
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color" | "$disabled" | "$fontSize" | "$isFocused" | "$labelPosition"> & {
47
+ $isFocused: boolean;
48
+ $labelPosition: 'right' | 'left' | 'top';
49
+ $disabled: boolean;
50
+ $fontSize?: string;
51
+ $color?: string;
52
+ }, never>>> & string;
53
+ export declare const StyledTextareaEditor: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "$borderRadius" | "$disabled" | "$fontSize" | "$isMobile" | "$isModified" | "$maxHeight" | "$resize" | "$vil" | "$width"> & {
54
+ $vil: ValidationItem[];
55
+ $width: string;
56
+ $isModified: boolean;
57
+ $fontSize: string;
58
+ $disabled: boolean;
59
+ $isMobile?: boolean;
60
+ $maxHeight?: string;
61
+ $borderRadius?: string;
62
+ $resize?: boolean;
63
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "$borderRadius" | "$disabled" | "$fontSize" | "$isMobile" | "$isModified" | "$maxHeight" | "$resize" | "$vil" | "$width"> & {
42
64
  $vil: ValidationItem[];
43
65
  $width: string;
44
66
  $isModified: boolean;
@@ -48,4 +70,4 @@ export declare const StyledTextareaEditor: import("styled-components/dist/types"
48
70
  $maxHeight?: string;
49
71
  $borderRadius?: string;
50
72
  $resize?: boolean;
51
- }>> & string;
73
+ }, never>>> & string;
@@ -30,7 +30,7 @@ export declare class FormulaDescriptor {
30
30
  description?: string;
31
31
  syntax?: string;
32
32
  }
33
- export declare const renderFormulaIcon: (iconType: FormulaIconTypes, tid?: number, md?: MetadataDescriptor) => React.JSX.Element;
33
+ export declare const renderFormulaIcon: (iconType: FormulaIconTypes, tid?: number, md?: MetadataDescriptor) => import("react/jsx-runtime").JSX.Element;
34
34
  declare const TMFormulaEditor: React.FunctionComponent<ITMApplyFormProps<FormulaDescriptor>>;
35
35
  export default TMFormulaEditor;
36
36
  export declare class FormulaHelper {
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  interface IHtmlContentDisplay {
3
2
  markup: string;
4
3
  isSelected: boolean;
5
4
  searchText?: string;
6
5
  }
7
- declare const TMHtmlContentDisplay: (props: IHtmlContentDisplay) => React.JSX.Element;
6
+ declare const TMHtmlContentDisplay: (props: IHtmlContentDisplay) => import("react/jsx-runtime").JSX.Element;
8
7
  export default TMHtmlContentDisplay;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
3
2
  export declare const sanitizeAndFormatComment: (raw?: string) => string;
4
3
  export interface ITMHtmlEditor {
@@ -35,5 +34,5 @@ export interface ITMHtmlEditor {
35
34
  /** If true, displays a character count below the editor */
36
35
  showCount?: boolean;
37
36
  }
38
- declare const TMHtmlEditor: (props: ITMHtmlEditor) => React.JSX.Element;
37
+ declare const TMHtmlEditor: (props: ITMHtmlEditor) => import("react/jsx-runtime").JSX.Element;
39
38
  export default TMHtmlEditor;
@@ -14,5 +14,5 @@ interface TMTreeDropDownProps {
14
14
  isValidKey?: (key: number) => boolean;
15
15
  elementStyle?: React.CSSProperties;
16
16
  }
17
- declare const TMTreeDropDown: (props: TMTreeDropDownProps) => React.JSX.Element;
17
+ declare const TMTreeDropDown: (props: TMTreeDropDownProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export default TMTreeDropDown;
@@ -18,7 +18,6 @@ export interface ITMHelpOnLineChatProps {
18
18
  onAddMessage: (message: HolChatMessage) => void;
19
19
  onSetThinking: (isThinking: boolean) => void;
20
20
  onSetConversationId: (id: string) => void;
21
- suggestedQuestions?: string[];
22
21
  }
23
22
  export interface ITMToppyHeaderButtonProps {
24
23
  showChatButton: boolean;
@@ -2,14 +2,11 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useCallback, useEffect, useRef, useState } from 'react';
3
3
  import styled, { keyframes } from 'styled-components';
4
4
  import { locale as dxLocale } from 'devextreme/localization';
5
- import { AppModules, CultureIDs, HolAskDescriptor, SDK_Globals, TopMediaServer } from '@topconsultnpm/sdk-ts';
5
+ import { CultureIDs, HolAskDescriptor, SDK_Globals, TopMediaServer } from '@topconsultnpm/sdk-ts';
6
6
  import TMTooltip from '../../base/TMTooltip';
7
7
  import { TMColors } from '../../../utils/theme';
8
8
  import { SDKUI_Localizator } from '../../../helper';
9
9
  import ToppyImage from '../../../assets/Toppy-help-center.png';
10
- import LoginSuggestedQuestions from './dataset/Login-Suggested-Questions.json';
11
- import SurferSuggestedQuestions from './dataset/Surfer-Suggested-Questions.json';
12
- import DesignerSuggestedQuestions from './dataset/Designer-Suggested-Questions.json';
13
10
  const generateGUID = () => {
14
11
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replaceAll(/[xy]/g, (c) => {
15
12
  const r = Math.trunc(Math.random() * 16);
@@ -20,7 +17,6 @@ const generateGUID = () => {
20
17
  const PANEL_DEFAULT_WIDTH = 600;
21
18
  const PANEL_MIN_WIDTH = 340;
22
19
  const PANEL_MAX_WIDTH = 900;
23
- const SUGGESTIONS_COUNT = 4;
24
20
  const FEEDBACK_MAX_LENGTH = 200;
25
21
  const NO_ANSWER_TEXT = 'Nessuna risposta ricevuta.';
26
22
  const ERROR_TEXT = 'Si è verificato un errore, riprova più tardi.';
@@ -53,23 +49,6 @@ const copyToClipboard = async (text) => {
53
49
  return false;
54
50
  }
55
51
  };
56
- const getDefaultSuggestedQuestions = (isLogged) => {
57
- if (!isLogged)
58
- return LoginSuggestedQuestions;
59
- switch (SDK_Globals.appModule) {
60
- case AppModules.SURFER: return SurferSuggestedQuestions;
61
- case AppModules.DESIGNER: return DesignerSuggestedQuestions;
62
- default: return [];
63
- }
64
- };
65
- const pickRandom = (items, count) => {
66
- const pool = [...items];
67
- for (let i = pool.length - 1; i > 0; i--) {
68
- const j = Math.floor(Math.random() * (i + 1));
69
- [pool[i], pool[j]] = [pool[j], pool[i]];
70
- }
71
- return pool.slice(0, count);
72
- };
73
52
  const getSafeSession = () => {
74
53
  try {
75
54
  return SDK_Globals.tmSession;
@@ -100,15 +79,14 @@ const getPreLoginSession = (endpointUrl) => {
100
79
  }
101
80
  return preLoginSession;
102
81
  };
103
- const TMHelpOnLineChat = ({ isOpen, showChatButton, isLogged, messages, conversationId, isThinking, endpointUrl, onClose, onToggle, onNewConversation, onAddMessage, onSetThinking, onSetConversationId, suggestedQuestions }) => {
82
+ const TMHelpOnLineChat = ({ isOpen, showChatButton, isLogged, messages, conversationId, isThinking, endpointUrl, onClose, onToggle, onNewConversation, onAddMessage, onSetThinking, onSetConversationId }) => {
104
83
  const [width, setWidth] = useState(PANEL_DEFAULT_WIDTH);
105
84
  const showFab = !isLogged && showChatButton && !isOpen;
106
- const questions = suggestedQuestions ?? getDefaultSuggestedQuestions(isLogged);
107
85
  const [submittedRatings, setSubmittedRatings] = useState({});
108
86
  const onFeedbackSubmitted = useCallback((messageId, rating) => {
109
87
  setSubmittedRatings(prev => ({ ...prev, [messageId]: rating }));
110
88
  }, []);
111
- return (_jsxs(_Fragment, { children: [isOpen && (_jsxs(_Fragment, { children: [_jsx(Overlay, { onClick: onClose }), _jsx(ChatPanel, { width: width, onWidthChange: setWidth, messages: messages, conversationId: conversationId, isThinking: isThinking, endpointUrl: endpointUrl, onClose: onClose, onNewConversation: onNewConversation, onAddMessage: onAddMessage, onSetThinking: onSetThinking, onSetConversationId: onSetConversationId, suggestedQuestions: questions, isLogged: isLogged, submittedRatings: submittedRatings, onFeedbackSubmitted: onFeedbackSubmitted })] })), showFab && (_jsx(Fab, { onClick: onToggle, title: "Chiedi a Toppy", "aria-label": "Chiedi a Toppy", children: _jsx(FabAvatar, { src: ToppyImage, alt: "Toppy" }) }))] }));
89
+ return (_jsxs(_Fragment, { children: [isOpen && (_jsxs(_Fragment, { children: [_jsx(Overlay, { onClick: onClose }), _jsx(ChatPanel, { width: width, onWidthChange: setWidth, messages: messages, conversationId: conversationId, isThinking: isThinking, endpointUrl: endpointUrl, onClose: onClose, onNewConversation: onNewConversation, onAddMessage: onAddMessage, onSetThinking: onSetThinking, onSetConversationId: onSetConversationId, isLogged: isLogged, submittedRatings: submittedRatings, onFeedbackSubmitted: onFeedbackSubmitted })] })), showFab && (_jsx(Fab, { onClick: onToggle, title: "Chiedi a Toppy", "aria-label": "Chiedi a Toppy", children: _jsx(FabAvatar, { src: ToppyImage, alt: "Toppy" }) }))] }));
112
90
  };
113
91
  export default TMHelpOnLineChat;
114
92
  //#region Header button
@@ -117,11 +95,8 @@ export const TMToppyHeaderButton = ({ showChatButton, onToggle }) => {
117
95
  return null;
118
96
  return (_jsx(TMTooltip, { content: "Chiedi a Toppy", children: _jsxs(ToppyHeaderButton, { onClick: onToggle, title: "Chiedi a Toppy", children: [_jsx(ToppyHeaderAvatar, { src: ToppyImage, alt: "Toppy" }), _jsx(ToppyHeaderText, { children: "Chiedi a Toppy" })] }) }));
119
97
  };
120
- const ChatPanel = ({ width, onWidthChange, messages, conversationId, isThinking, endpointUrl, onClose, onNewConversation, onAddMessage, onSetThinking, onSetConversationId, suggestedQuestions, isLogged, submittedRatings, onFeedbackSubmitted }) => {
98
+ const ChatPanel = ({ width, onWidthChange, messages, conversationId, isThinking, endpointUrl, onClose, onNewConversation, onAddMessage, onSetThinking, onSetConversationId, isLogged, submittedRatings, onFeedbackSubmitted }) => {
121
99
  const [chatInput, setChatInput] = useState('');
122
- const [suggestions, setSuggestions] = useState(() => pickRandom(suggestedQuestions, SUGGESTIONS_COUNT));
123
- const [hoveredSuggestion, setHoveredSuggestion] = useState(undefined);
124
- const prevMessagesCountRef = useRef(messages.length);
125
100
  const inputRef = useRef(null);
126
101
  const messagesEndRef = useRef(null);
127
102
  const onCloseRef = useRef(onClose);
@@ -133,12 +108,6 @@ const ChatPanel = ({ width, onWidthChange, messages, conversationId, isThinking,
133
108
  useEffect(() => {
134
109
  inputRef.current?.focus();
135
110
  }, []);
136
- useEffect(() => {
137
- if (messages.length === 0 && prevMessagesCountRef.current > 0) {
138
- setSuggestions(pickRandom(suggestedQuestions, SUGGESTIONS_COUNT));
139
- }
140
- prevMessagesCountRef.current = messages.length;
141
- }, [messages.length, suggestedQuestions]);
142
111
  useEffect(() => {
143
112
  const onKeyDown = (e) => {
144
113
  if (e.key === 'Escape')
@@ -167,8 +136,8 @@ const ChatPanel = ({ width, onWidthChange, messages, conversationId, isThinking,
167
136
  globalThis.addEventListener('mousemove', onMove);
168
137
  globalThis.addEventListener('mouseup', onUp);
169
138
  }, [width, onWidthChange]);
170
- const ask = useCallback(async (text) => {
171
- const question = text.trim();
139
+ const askHandler = useCallback(async () => {
140
+ const question = chatInput.trim();
172
141
  if (question.length < 2 || isThinking) {
173
142
  return;
174
143
  }
@@ -210,12 +179,7 @@ const ChatPanel = ({ width, onWidthChange, messages, conversationId, isThinking,
210
179
  finally {
211
180
  onSetThinking(false);
212
181
  }
213
- }, [conversationId, isThinking, endpointUrl, onAddMessage, onSetThinking, onSetConversationId]);
214
- const askHandler = useCallback(() => ask(chatInput), [ask, chatInput]);
215
- const onSuggestionClick = (question) => {
216
- setHoveredSuggestion(undefined);
217
- ask(question);
218
- };
182
+ }, [chatInput, conversationId, isThinking, endpointUrl, onAddMessage, onSetThinking, onSetConversationId]);
219
183
  const onFeedbackSubmit = (index, rating, tags, feedback) => {
220
184
  const answer = messages[index];
221
185
  const question = messages.slice(0, index).reverse().find(m => m.isUser)?.text ?? '';
@@ -234,8 +198,7 @@ const ChatPanel = ({ width, onWidthChange, messages, conversationId, isThinking,
234
198
  });
235
199
  onFeedbackSubmitted(answer.id, rating);
236
200
  };
237
- const showSuggestions = messages.length === 0 && !isThinking && suggestions.length > 0;
238
- return (_jsxs(PanelContainer, { $width: width, children: [_jsx(ResizeHandle, { onMouseDown: onResizeStart }), _jsxs(ChatHeader, { children: [_jsxs(HeaderLeft, { children: [_jsx(ToppyAvatar, { src: ToppyImage, alt: "Toppy" }), _jsxs(HeaderText, { children: [_jsxs(HeaderGreeting, { children: ["Ciao ", userName] }), _jsx(HeaderQuestion, { children: "Come posso aiutarti?" })] })] }), _jsxs(HeaderRight, { children: [_jsx(TMTooltip, { content: "Nuova conversazione", children: _jsx(HeaderButton, { onClick: onNewConversation, disabled: !conversationId && messages.length === 0, title: "Nuova conversazione", children: _jsx(IconNewChat, { color: "white", fontSize: 18 }) }) }), _jsx(TMTooltip, { content: "Chiudi", children: _jsx(HeaderButton, { onClick: onClose, title: "Chiudi", children: _jsx(IconClose, { fontSize: 18 }) }) })] })] }), _jsxs(ChatBody, { children: [messages.length === 0 ? (_jsxs(WelcomeMessage, { children: [_jsx(WelcomeIcon, { children: "\uD83D\uDCA1" }), _jsxs(WelcomeText, { children: ["Ciao! Sono ", _jsx("strong", { children: "Toppy" }), ", il tuo assistente.", _jsx("br", {}), "Fai una domanda e ti aiuter\u00F2 a trovare la risposta."] })] })) : (messages.map((msg, index) => (_jsxs(MessageBubble, { $isUser: msg.isUser, children: [!msg.isUser && _jsx(BotAvatar, { src: ToppyImage, alt: "Toppy" }), msg.isUser ? (_jsxs(_Fragment, { children: [_jsx(QuestionCopy, { children: _jsx(CopyButton, { text: msg.text }) }), _jsx(MessageContent, { $isUser: true, children: msg.text })] })) : (_jsxs(BotMessageColumn, { children: [_jsx(BotMessageContent, { $isUser: false, children: _jsx(MarkdownContent, { children: renderMarkdown(msg.text) }) }), msg.text !== NO_ANSWER_TEXT && msg.text !== ERROR_TEXT && (_jsx(MessageFeedback, { answer: msg.text, submittedRating: submittedRatings[msg.id], onSubmit: (rating, tags, feedback) => onFeedbackSubmit(index, rating, tags, feedback) }))] }))] }, msg.id)))), isThinking && (_jsxs(MessageBubble, { $isUser: false, children: [_jsx(BotAvatar, { src: ToppyImage, alt: "Toppy" }), _jsx(ThinkingStatus, {}, messages.length)] })), _jsx("div", { ref: messagesEndRef })] }), _jsxs(ChatFooter, { children: [showSuggestions && (_jsxs(SuggestionsSection, { children: [_jsxs(SuggestionsTitle, { children: [_jsx(IconSparkle, { fontSize: 14 }), _jsx("span", { children: "Domande suggerite" })] }), _jsx(SuggestionsGrid, { children: suggestions.map((question, index) => (_jsxs(SuggestionCard, { type: "button", $index: index, title: question, onClick: () => onSuggestionClick(question), onMouseEnter: () => setHoveredSuggestion(question), onMouseLeave: () => setHoveredSuggestion(undefined), onFocus: () => setHoveredSuggestion(question), onBlur: () => setHoveredSuggestion(undefined), children: [_jsx(SuggestionIcon, { children: _jsx(IconQuestion, { fontSize: 16 }) }), _jsx(SuggestionText, { children: question }), _jsx(SuggestionArrow, { children: _jsx(IconArrowForward, { fontSize: 16 }) })] }, question))) })] })), _jsx(TMChatInput, { inputRef: inputRef, value: chatInput, onChange: setChatInput, onSend: askHandler, placeholder: hoveredSuggestion ?? 'Scrivi la tua domanda...', tooltip: "Invia", disabled: isThinking }), _jsx(FooterHint, { children: SDKUI_Localizator.HelpOnLineShiftEnterHint })] })] }));
201
+ return (_jsxs(PanelContainer, { $width: width, children: [_jsx(ResizeHandle, { onMouseDown: onResizeStart }), _jsxs(ChatHeader, { children: [_jsxs(HeaderLeft, { children: [_jsx(ToppyAvatar, { src: ToppyImage, alt: "Toppy" }), _jsxs(HeaderText, { children: [_jsxs(HeaderGreeting, { children: ["Ciao ", userName] }), _jsx(HeaderQuestion, { children: "Come posso aiutarti?" })] })] }), _jsxs(HeaderRight, { children: [_jsx(TMTooltip, { content: "Nuova conversazione", children: _jsx(HeaderButton, { onClick: onNewConversation, disabled: !conversationId && messages.length === 0, title: "Nuova conversazione", children: _jsx(IconNewChat, { color: "white", fontSize: 18 }) }) }), _jsx(TMTooltip, { content: "Chiudi", children: _jsx(HeaderButton, { onClick: onClose, title: "Chiudi", children: _jsx(IconClose, { fontSize: 18 }) }) })] })] }), _jsxs(ChatBody, { children: [messages.length === 0 ? (_jsxs(WelcomeMessage, { children: [_jsx(WelcomeIcon, { children: "\uD83D\uDCA1" }), _jsxs(WelcomeText, { children: ["Ciao! Sono ", _jsx("strong", { children: "Toppy" }), ", il tuo assistente.", _jsx("br", {}), "Fai una domanda e ti aiuter\u00F2 a trovare la risposta."] })] })) : (messages.map((msg, index) => (_jsxs(MessageBubble, { $isUser: msg.isUser, children: [!msg.isUser && _jsx(BotAvatar, { src: ToppyImage, alt: "Toppy" }), msg.isUser ? (_jsxs(_Fragment, { children: [_jsx(QuestionCopy, { children: _jsx(CopyButton, { text: msg.text }) }), _jsx(MessageContent, { $isUser: true, children: msg.text })] })) : (_jsxs(BotMessageColumn, { children: [_jsx(BotMessageContent, { $isUser: false, children: _jsx(MarkdownContent, { children: renderMarkdown(msg.text) }) }), msg.text !== NO_ANSWER_TEXT && msg.text !== ERROR_TEXT && (_jsx(MessageFeedback, { answer: msg.text, submittedRating: submittedRatings[msg.id], onSubmit: (rating, tags, feedback) => onFeedbackSubmit(index, rating, tags, feedback) }))] }))] }, msg.id)))), isThinking && (_jsxs(MessageBubble, { $isUser: false, children: [_jsx(BotAvatar, { src: ToppyImage, alt: "Toppy" }), _jsx(ThinkingStatus, {}, messages.length)] })), _jsx("div", { ref: messagesEndRef })] }), _jsxs(ChatFooter, { children: [_jsx(TMChatInput, { inputRef: inputRef, value: chatInput, onChange: setChatInput, onSend: askHandler, placeholder: "Scrivi la tua domanda...", tooltip: "Invia", disabled: isThinking }), _jsx(FooterHint, { children: SDKUI_Localizator.HelpOnLineShiftEnterHint })] })] }));
239
202
  };
240
203
  const TMChatInput = ({ value, onChange, onSend, placeholder = 'Scrivi la tua domanda...', disabled = false, inputRef, tooltip = 'Ricerca AI' }) => {
241
204
  const isDisabled = disabled || value.length < 2;
@@ -548,15 +511,6 @@ function IconSendFilled(props) {
548
511
  function IconNewChat(props) {
549
512
  return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", fill: props.color || "currentColor", ...props, children: _jsx("path", { d: "M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z" }) }));
550
513
  }
551
- function IconSparkle(props) {
552
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "currentColor", ...props, children: _jsx("path", { d: "M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z" }) }));
553
- }
554
- function IconQuestion(props) {
555
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "currentColor", ...props, children: _jsx("path", { d: "M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z" }) }));
556
- }
557
- function IconArrowForward(props) {
558
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "currentColor", ...props, children: _jsx("path", { d: "M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z" }) }));
559
- }
560
514
  function IconThumbUp(props) {
561
515
  return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "currentColor", ...props, children: _jsx("path", { d: "M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z" }) }));
562
516
  }
@@ -580,10 +534,6 @@ const phraseIn = keyframes `
580
534
  from { opacity: 0; transform: translateY(4px); }
581
535
  to { opacity: 1; transform: translateY(0); }
582
536
  `;
583
- const suggestionIn = keyframes `
584
- from { opacity: 0; transform: translateY(6px); }
585
- to { opacity: 1; transform: translateY(0); }
586
- `;
587
537
  const feedbackIn = keyframes `
588
538
  from { opacity: 0; transform: translateY(-4px); }
589
539
  to { opacity: 1; transform: translateY(0); }
@@ -1196,109 +1146,6 @@ const ChatFooter = styled.div `
1196
1146
  border-top: 1px solid #e1e5e9;
1197
1147
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05);
1198
1148
  `;
1199
- const SuggestionsSection = styled.div `
1200
- margin-bottom: 14px;
1201
- `;
1202
- const SuggestionsTitle = styled.div `
1203
- display: flex;
1204
- align-items: center;
1205
- gap: 6px;
1206
- margin: 0 0 8px 2px;
1207
- font-size: 11px;
1208
- font-weight: 600;
1209
- letter-spacing: 0.06em;
1210
- text-transform: uppercase;
1211
- color: #6b7280;
1212
-
1213
- svg { color: ${TMColors.primary}; }
1214
- `;
1215
- const SuggestionsGrid = styled.div `
1216
- display: grid;
1217
- grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
1218
- gap: 8px;
1219
- `;
1220
- const SuggestionIcon = styled.span `
1221
- display: flex;
1222
- align-items: center;
1223
- justify-content: center;
1224
- width: 28px;
1225
- height: 28px;
1226
- border-radius: 8px;
1227
- flex-shrink: 0;
1228
- background: ${TMColors.primary}14;
1229
- color: ${TMColors.primary};
1230
- transition: background 0.2s ease, color 0.2s ease;
1231
- `;
1232
- const SuggestionText = styled.span `
1233
- flex: 1;
1234
- min-width: 0;
1235
- display: -webkit-box;
1236
- -webkit-line-clamp: 2;
1237
- -webkit-box-orient: vertical;
1238
- overflow: hidden;
1239
- `;
1240
- const SuggestionArrow = styled.span `
1241
- display: flex;
1242
- flex-shrink: 0;
1243
- color: ${TMColors.primary};
1244
- opacity: 0;
1245
- transform: translateX(-4px);
1246
- transition: opacity 0.2s ease, transform 0.2s ease;
1247
- `;
1248
- const SuggestionCard = styled.button `
1249
- display: flex;
1250
- align-items: center;
1251
- gap: 10px;
1252
- width: 100%;
1253
- min-height: 52px;
1254
- padding: 9px 12px;
1255
- border: 1px solid ${TMColors.primary}22;
1256
- border-radius: 12px;
1257
- background: linear-gradient(135deg, #ffffff 0%, ${TMColors.primary}08 100%);
1258
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
1259
- color: #242424;
1260
- font-family: inherit;
1261
- font-size: 13px;
1262
- line-height: 1.35;
1263
- text-align: left;
1264
- cursor: pointer;
1265
- opacity: 0;
1266
- animation: ${suggestionIn} 0.35s ease-out forwards;
1267
- animation-delay: ${props => props.$index * 70}ms;
1268
- transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
1269
-
1270
- &:hover, &:focus-visible {
1271
- border-color: ${TMColors.primary}66;
1272
- background: ${TMColors.primary}0d;
1273
- box-shadow: 0 4px 14px ${TMColors.primary}1f;
1274
- transform: translateY(-1px);
1275
- }
1276
-
1277
- &:hover ${SuggestionIcon}, &:focus-visible ${SuggestionIcon} {
1278
- background: ${TMColors.primary};
1279
- color: white;
1280
- }
1281
-
1282
- &:hover ${SuggestionArrow}, &:focus-visible ${SuggestionArrow} {
1283
- opacity: 1;
1284
- transform: translateX(0);
1285
- }
1286
-
1287
- &:focus-visible {
1288
- outline: 2px solid ${TMColors.primary}55;
1289
- outline-offset: 2px;
1290
- }
1291
-
1292
- &:active {
1293
- transform: translateY(0) scale(0.99);
1294
- }
1295
-
1296
- @media (prefers-reduced-motion: reduce) {
1297
- animation: none;
1298
- opacity: 1;
1299
- transition: none;
1300
- }
1301
- `;
1302
1149
  const FooterHint = styled.p `
1303
1150
  margin: 6px 0 0 0;
1304
1151
  font-size: 11px;
@@ -11,5 +11,5 @@ interface TMToppyDraggableHelpCenterProps {
11
11
  /** Callback chiamato quando si clicca sull'immagine di Toppy */
12
12
  onToppyImageClick?: () => void;
13
13
  }
14
- declare const TMToppyDraggableHelpCenter: (props: TMToppyDraggableHelpCenterProps) => React.JSX.Element;
14
+ declare const TMToppyDraggableHelpCenter: (props: TMToppyDraggableHelpCenterProps) => import("react/jsx-runtime").JSX.Element;
15
15
  export default TMToppyDraggableHelpCenter;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { BlogPost, UserDescriptor } from "@topconsultnpm/sdk-ts";
3
2
  import { FileItem } from '../../base/TMFileManagerUtils';
4
3
  import { TMBlogContextDescriptor } from '../../grids/TMBlogsPostUtils';
@@ -19,5 +18,5 @@ interface TMBlogCommentFormProps {
19
18
  /** External save handler - when provided, bypasses internal engine logic */
20
19
  onCustomSave?: (blogPost: BlogPost) => Promise<void>;
21
20
  }
22
- declare const TMBlogCommentForm: (props: TMBlogCommentFormProps) => React.JSX.Element;
21
+ declare const TMBlogCommentForm: (props: TMBlogCommentFormProps) => import("react/jsx-runtime").JSX.Element;
23
22
  export default TMBlogCommentForm;
@@ -41,5 +41,5 @@ interface TMDcmtFormActionButtonsProps {
41
41
  setShowMoreInfoTaskPopup: React.Dispatch<React.SetStateAction<boolean>>;
42
42
  setShowMoreInfoTaskTask: React.Dispatch<React.SetStateAction<TaskDescriptor | undefined>>;
43
43
  }
44
- declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => React.JSX.Element;
44
+ declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => import("react/jsx-runtime").JSX.Element;
45
45
  export default TMDcmtFormActionButtons;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { DcmtInfo, DownloadModes, DownloadTypes } from '../../../ts';
3
2
  import { FileDescriptor } from '@topconsultnpm/sdk-ts';
4
3
  interface ITMDcmtIconProps {
@@ -15,5 +14,5 @@ interface ITMDcmtIconProps {
15
14
  openInOffice?: (selectedDcmtsOrFocused: Array<DcmtInfo>) => Promise<void>;
16
15
  onDownloadDcmtsAsync?: (inputDcmts: DcmtInfo[] | undefined, downloadType: DownloadTypes, downloadMode: DownloadModes, onFileDownloaded?: (dcmtFile: File | undefined) => void, confirmAttachments?: (list: FileDescriptor[]) => Promise<string[] | undefined>) => Promise<void>;
17
16
  }
18
- declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, tooltipContent, openInOffice, onDownloadDcmtsAsync }: ITMDcmtIconProps) => React.JSX.Element;
17
+ declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, tooltipContent, openInOffice, onDownloadDcmtsAsync }: ITMDcmtIconProps) => import("react/jsx-runtime").JSX.Element;
19
18
  export default TMDcmtIcon;
@@ -25,12 +25,10 @@ export declare const TMNothingToShow: ({ text, secondText, fileExt, icon }: {
25
25
  secondText?: any;
26
26
  fileExt?: string;
27
27
  icon?: any;
28
- }) => React.JSX.Element;
29
- export declare const StyledHeaderIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
30
- style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
31
- }, {
28
+ }) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const StyledHeaderIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color"> & {
32
30
  $color: string;
33
- }>> & string;
34
- export declare const StyledPanelStatusContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
35
- style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
36
- }> & string;
31
+ }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color"> & {
32
+ $color: string;
33
+ }, never>>> & string;
34
+ export declare const StyledPanelStatusContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { FormModes, TaskContext } from "../../../ts";
3
2
  import { HomeBlogPost, TaskDescriptor } from "@topconsultnpm/sdk-ts";
4
3
  interface TMDcmtTasksProps {
@@ -13,5 +12,5 @@ interface TMDcmtTasksProps {
13
12
  handleNavigateToDossiers?: (value: HomeBlogPost | number) => Promise<void>;
14
13
  onBack?: () => void;
15
14
  }
16
- declare const TMDcmtTasks: (props: TMDcmtTasksProps) => React.JSX.Element;
15
+ declare const TMDcmtTasks: (props: TMDcmtTasksProps) => import("react/jsx-runtime").JSX.Element;
17
16
  export default TMDcmtTasks;
@@ -2,5 +2,5 @@ interface TMDragDropOverlayProps {
2
2
  handleFile: (file: File) => void;
3
3
  refocusAfterFileInput: () => void;
4
4
  }
5
- declare const TMDragDropOverlay: (props: TMDragDropOverlayProps) => import("react").JSX.Element;
5
+ declare const TMDragDropOverlay: (props: TMDragDropOverlayProps) => import("react/jsx-runtime").JSX.Element;
6
6
  export default TMDragDropOverlay;
@@ -112,27 +112,27 @@ const TMFileUploader = ({ fromDTD, deviceType = DeviceType.DESKTOP, onClose, onF
112
112
  }, [deviceType, fromDTD, onClose]);
113
113
  return showTMPanel ? (_jsx(TMPanel, { ref: fileUploaderPanelRef, panelID: 'file-uploader-panel', title: SDKUI_Localizator.FileUpload, onBack: deviceType === DeviceType.MOBILE ? () => onClose?.() : undefined, toolbar: toolbar, children: innerContent })) : (innerContent);
114
114
  };
115
- const UploadContainer = styled.div `
116
- position: relative;
117
- display: flex;
118
- align-items: center;
119
- justify-content: center;
120
- flex-direction: column;
121
- gap: 5px;
122
- border: 2px dashed ${props => props.$isRequired ? () => TMColors.error : () => TMColors.primaryColor};
123
- /* max-height: 100px; */
124
- width: 100%;
125
- height: 100%;
126
- border-radius: 8px;
127
- padding: 30px;
128
- text-align: center;
129
- color: ${props => props.$isRequired ? () => TMColors.error : () => TMColors.primaryColor};
130
- transition: background-color 0.3s;
131
- &:hover {
132
- background-color: #658cab;
133
- }
115
+ const UploadContainer = styled.div `
116
+ position: relative;
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ flex-direction: column;
121
+ gap: 5px;
122
+ border: 2px dashed ${props => props.$isRequired ? () => TMColors.error : () => TMColors.primaryColor};
123
+ /* max-height: 100px; */
124
+ width: 100%;
125
+ height: 100%;
126
+ border-radius: 8px;
127
+ padding: 30px;
128
+ text-align: center;
129
+ color: ${props => props.$isRequired ? () => TMColors.error : () => TMColors.primaryColor};
130
+ transition: background-color 0.3s;
131
+ &:hover {
132
+ background-color: #658cab;
133
+ }
134
134
  `;
135
- const HiddenInput = styled.input `
136
- display: none;
135
+ const HiddenInput = styled.input `
136
+ display: none;
137
137
  `;
138
138
  export default TMFileUploader;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { DcmtTypeDescriptor } from '@topconsultnpm/sdk-ts';
3
2
  import { DcmtInfo } from '../../../ts';
4
3
  interface TMMasterInfoFieldsProps {
@@ -16,5 +15,5 @@ interface TMMasterInfoFieldsProps {
16
15
  */
17
16
  isExpandedView?: boolean;
18
17
  }
19
- declare const TMMasterInfoFields: ({ dtd, dcmt, getValuesByMidAsync, reloadToken, isExpandedView }: TMMasterInfoFieldsProps) => React.JSX.Element;
18
+ declare const TMMasterInfoFields: ({ dtd, dcmt, getValuesByMidAsync, reloadToken, isExpandedView }: TMMasterInfoFieldsProps) => import("react/jsx-runtime").JSX.Element;
20
19
  export default TMMasterInfoFields;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { DcmtInfo } from '../../../ts';
3
2
  import { HomeBlogPost, TaskDescriptor } from '@topconsultnpm/sdk-ts';
4
3
  import { TMCopyToFolderMode } from '../../../hooks/useDocumentOperations';
@@ -20,5 +19,5 @@ interface ITMMergeToPdfFormProps {
20
19
  * Form per l'unione di più documenti PDF in un singolo file.
21
20
  * Condivide TMDownloadRelationViewerSection e gli helper in copyAndMergeDcmtsShared con TMCopyToFolderForm.
22
21
  */
23
- declare const TMMergeToPdfForm: (props: ITMMergeToPdfFormProps) => React.JSX.Element;
22
+ declare const TMMergeToPdfForm: (props: ITMMergeToPdfFormProps) => import("react/jsx-runtime").JSX.Element;
24
23
  export default TMMergeToPdfForm;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { DcmtTypeDescriptor, HomeBlogPost, ObjectRef, TaskDescriptor } from "@topconsultnpm/sdk-ts";
3
2
  import { DcmtInfo, IGraphometricManagerProp, TaskContext } from "../../../ts";
4
3
  import { IntesiCertificateData } from "../../../helper";
@@ -42,5 +41,5 @@ interface TMMultiMasterDetailDcmtsFormProps {
42
41
  }>, tid?: number) => void;
43
42
  openWGsCopyMoveForm?: (mode: "copyToWgDraft" | "copyToWgArchivedDoc", dcmtTypeDescriptor: DcmtTypeDescriptor, documents: Array<DcmtInfo>) => void;
44
43
  }
45
- declare const TMMultiMasterDetailDcmtsForm: (props: TMMultiMasterDetailDcmtsFormProps) => React.JSX.Element | null;
44
+ declare const TMMultiMasterDetailDcmtsForm: (props: TMMultiMasterDetailDcmtsFormProps) => import("react/jsx-runtime").JSX.Element | null;
46
45
  export default TMMultiMasterDetailDcmtsForm;
@@ -312,7 +312,7 @@ export interface RenderStepperParams {
312
312
  /** Click su uno step completato: riceve la fase di destinazione */
313
313
  onStepClick: (phase: number) => void;
314
314
  }
315
- export declare const renderStepper: ({ steps, phase, hasMultipleTypes, isBackLocked, showBackArrow, onBack, onStepClick }: RenderStepperParams) => React.JSX.Element;
315
+ export declare const renderStepper: ({ steps, phase, hasMultipleTypes, isBackLocked, showBackArrow, onBack, onStepClick }: RenderStepperParams) => import("react/jsx-runtime").JSX.Element;
316
316
  export interface RenderSelectDcmtTypeParams {
317
317
  /** Relazioni di dettaglio fra cui scegliere */
318
318
  detailRelationItems: Array<DetailRelationItem>;
@@ -321,7 +321,7 @@ export interface RenderSelectDcmtTypeParams {
321
321
  /** Selezione di una relazione */
322
322
  onSelectRelation: (item: DetailRelationItem) => void;
323
323
  }
324
- export declare const renderSelectDcmtType: ({ detailRelationItems, selectedRelation, onSelectRelation }: RenderSelectDcmtTypeParams) => React.JSX.Element;
324
+ export declare const renderSelectDcmtType: ({ detailRelationItems, selectedRelation, onSelectRelation }: RenderSelectDcmtTypeParams) => import("react/jsx-runtime").JSX.Element;
325
325
  export interface RenderAccordionHeaderParams {
326
326
  /** Sezione a cui appartiene la testata */
327
327
  section: AccordionSection;
@@ -340,7 +340,7 @@ export interface RenderAccordionHeaderParams {
340
340
  /** Apre/chiude la sezione */
341
341
  onToggleOpen: (section: AccordionSection, isOpen: boolean) => void;
342
342
  }
343
- export declare const renderAccordionHeader: ({ section, isOpen, tooltip, count, title, actions, panel, onToggleOpen }: RenderAccordionHeaderParams) => React.JSX.Element;
343
+ export declare const renderAccordionHeader: ({ section, isOpen, tooltip, count, title, actions, panel, onToggleOpen }: RenderAccordionHeaderParams) => import("react/jsx-runtime").JSX.Element;
344
344
  /**
345
345
  * Contenuto di un pannello: il contesto del panel manager è leggibile solo dentro l'albero del
346
346
  * provider, quindi è qui che si prende lo stato di ingrandimento da passare alla sezione
@@ -349,7 +349,7 @@ export declare const TMSummarySectionSlot: ({ section, render, onBeforeMaximize
349
349
  section: AccordionSection;
350
350
  render: (panel: SectionPanelState) => React.ReactNode;
351
351
  onBeforeMaximize?: (section: AccordionSection) => void;
352
- }) => React.JSX.Element;
352
+ }) => import("react/jsx-runtime").JSX.Element;
353
353
  /**
354
354
  * Segnala che l'utente ha spostato un separatore: è l'unico caso in cui le altezze dei pannelli sono
355
355
  * una sua scelta, quindi la sola da salvare. Le quote calcolate all'apertura del riepilogo o al