@topconsultnpm/sdkui-react 6.22.0-dev2.4 → 6.22.0-dev2.6

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 (92) hide show
  1. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +4 -4
  2. package/lib/components/base/Styled.d.ts +1 -1
  3. package/lib/components/base/TMButton.d.ts +13 -0
  4. package/lib/components/base/TMButton.js +137 -5
  5. package/lib/components/base/TMCounterBar.d.ts +2 -2
  6. package/lib/components/base/TMCounterContainer.d.ts +2 -1
  7. package/lib/components/base/TMCustomButton.d.ts +1 -1
  8. package/lib/components/base/TMDataGridExportForm.d.ts +2 -1
  9. package/lib/components/base/TMFileManager.d.ts +2 -1
  10. package/lib/components/base/TMFileManagerDataGridView.d.ts +2 -1
  11. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
  12. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
  13. package/lib/components/base/TMLayout.d.ts +4 -4
  14. package/lib/components/base/TMList.d.ts +2 -1
  15. package/lib/components/base/TMListView.d.ts +1 -1
  16. package/lib/components/base/TMSpinner.d.ts +2 -1
  17. package/lib/components/base/TMTab.d.ts +4 -3
  18. package/lib/components/base/TMTooltip.d.ts +1 -1
  19. package/lib/components/base/TMTreeView.d.ts +1 -1
  20. package/lib/components/base/TMUserAvatar.d.ts +2 -1
  21. package/lib/components/base/TMVilViewer.d.ts +2 -1
  22. package/lib/components/base/TMWaitPanel.d.ts +3 -2
  23. package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
  24. package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +2 -1
  25. package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +2 -1
  26. package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
  27. package/lib/components/choosers/TMUserChooser.d.ts +2 -2
  28. package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
  29. package/lib/components/editors/TMHtmlContentDisplay.d.ts +2 -1
  30. package/lib/components/editors/TMHtmlEditor.d.ts +2 -1
  31. package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
  32. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
  33. package/lib/components/features/blog/TMBlogCommentForm.d.ts +2 -1
  34. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
  35. package/lib/components/features/documents/TMDcmtIcon.d.ts +2 -1
  36. package/lib/components/features/documents/TMDcmtPreview.d.ts +1 -1
  37. package/lib/components/features/documents/TMDcmtTasks.d.ts +2 -1
  38. package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
  39. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +2 -1
  40. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +2 -1
  41. package/lib/components/features/search/TMMetadataOutputForm.d.ts +2 -1
  42. package/lib/components/features/search/TMMetadataSorterForm.d.ts +2 -1
  43. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  44. package/lib/components/features/search/TMSearch.js +29 -16
  45. package/lib/components/features/search/TMSearchQueryPanel.d.ts +1 -1
  46. package/lib/components/features/search/TMSearchQueryPanel.js +28 -7
  47. package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
  48. package/lib/components/features/search/TMSignatureInfoContent.d.ts +2 -1
  49. package/lib/components/features/search/TMViewHistoryDcmt.d.ts +2 -1
  50. package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
  51. package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
  52. package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
  53. package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
  54. package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
  55. package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
  56. package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
  57. package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
  58. package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +3 -2
  59. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +8 -7
  60. package/lib/components/forms/Login/Chooser.d.ts +2 -2
  61. package/lib/components/forms/TMChooserForm.d.ts +2 -1
  62. package/lib/components/forms/TMSaveForm.d.ts +4 -4
  63. package/lib/components/grids/TMBlogAttachments.d.ts +2 -1
  64. package/lib/components/grids/TMBlogHeader.d.ts +1 -1
  65. package/lib/components/grids/TMBlogsPost.d.ts +1 -1
  66. package/lib/components/grids/TMBlogsPostUtils.d.ts +9 -9
  67. package/lib/components/grids/TMValidationItemsList.d.ts +2 -1
  68. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +2 -1
  69. package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
  70. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +1 -1
  71. package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
  72. package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
  73. package/lib/components/pages/TMPage.d.ts +1 -1
  74. package/lib/components/settings/SettingsAppearance.d.ts +2 -1
  75. package/lib/components/sidebar/TMAboutApp.d.ts +2 -1
  76. package/lib/components/sidebar/TMHeader.d.ts +3 -3
  77. package/lib/components/viewers/TMDataListItemViewer.d.ts +3 -2
  78. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +3 -2
  79. package/lib/components/viewers/TMMidViewer.d.ts +2 -2
  80. package/lib/components/viewers/TMTidViewer.d.ts +2 -2
  81. package/lib/helper/SDKUI_Localizator.d.ts +2 -0
  82. package/lib/helper/SDKUI_Localizator.js +20 -0
  83. package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
  84. package/lib/helper/TMIcons.d.ts +279 -279
  85. package/lib/helper/TMPdfViewer.d.ts +2 -1
  86. package/lib/helper/TMToppyMessage.d.ts +2 -2
  87. package/lib/helper/TMUtils.d.ts +1 -1
  88. package/lib/helper/helpers.d.ts +12 -1
  89. package/lib/helper/helpers.js +32 -0
  90. package/lib/hooks/useInputDialog.d.ts +2 -1
  91. package/lib/services/platform_services.d.ts +3 -2
  92. package/package.json +2 -2
@@ -73,20 +73,20 @@ export declare const MenuButton: import("styled-components/dist/types").IStyledC
73
73
  export declare const ConfigButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
74
74
  export declare const ApplyButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
75
75
  export declare const CloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
76
- export declare const ContextMenuButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
76
+ export declare const ContextMenuButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
77
77
  $isActive?: boolean;
78
78
  }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
79
79
  $isActive?: boolean;
80
- }, never>> & {
80
+ }, never>>, "as" | "forwardedAs"> & {
81
81
  as?: import("styled-components").WebTarget | undefined;
82
82
  forwardedAs?: import("styled-components").WebTarget | undefined;
83
83
  }, "ref"> & {
84
84
  ref?: ((instance: HTMLButtonElement | 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<HTMLButtonElement> | null | undefined;
85
- }, never> & Partial<Pick<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
85
+ }, never> & Partial<Pick<Omit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
86
86
  $isActive?: boolean;
87
87
  }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$isActive"> & {
88
88
  $isActive?: boolean;
89
- }, never>> & {
89
+ }, never>>, "as" | "forwardedAs"> & {
90
90
  as?: import("styled-components").WebTarget | undefined;
91
91
  forwardedAs?: import("styled-components").WebTarget | undefined;
92
92
  }, "ref"> & {
@@ -73,7 +73,7 @@ export declare const StyledDxGridGroupHeader: import("styled-components/dist/typ
73
73
  }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor"> & {
74
74
  $backgroundColor?: string;
75
75
  }, never>>> & string;
76
- export declare const cellRenderObjectIcon: (icon: any) => import("react/jsx-runtime").JSX.Element;
76
+ export declare const cellRenderObjectIcon: (icon: any) => React.JSX.Element;
77
77
  export declare const StyledChartOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor"> & {
78
78
  $backgroundColor?: string;
79
79
  }, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$backgroundColor"> & {
@@ -3,6 +3,17 @@ import { ITMEditorBase } from './TMEditorBase';
3
3
  export type ButtonColors = 'error' | 'warning' | 'success' | 'info' | 'primary' | 'secondary' | 'tertiary' | 'standard' | 'primaryOutline' | 'secondaryOutline' | 'tertiaryOutline' | 'errorOutline' | 'warningOutline' | 'successOutline' | 'infoOutline';
4
4
  export type ButtonStyle = 'normal' | 'toolbar' | 'icon' | 'text' | 'advanced';
5
5
  export type AdvancedButtonType = 'success' | 'error' | 'tertiary' | 'primary';
6
+ /** Azione secondaria mostrata nel dropdown "split button" (freccia a destra) */
7
+ export interface ITMButtonSecondaryAction {
8
+ /** Etichetta mostrata nella voce di menu */
9
+ name: string;
10
+ /** Icona opzionale a sinistra della voce */
11
+ icon?: React.ReactNode;
12
+ /** Callback al click della voce */
13
+ onClick?: () => void;
14
+ /** Disabilita la singola voce */
15
+ disabled?: boolean;
16
+ }
6
17
  export interface ITMButton extends ITMEditorBase {
7
18
  color?: ButtonColors;
8
19
  btnStyle?: ButtonStyle;
@@ -17,6 +28,8 @@ export interface ITMButton extends ITMEditorBase {
17
28
  showTooltip?: boolean;
18
29
  onClick?: VoidFunction;
19
30
  onMouseDown?: (e: any) => any;
31
+ /** Azioni secondarie: se valorizzate, il bottone mostra una freccia a destra che apre un dropdown con queste azioni */
32
+ secondaryActions?: ITMButtonSecondaryAction[];
20
33
  }
21
34
  declare const TMButton: React.ForwardRefExoticComponent<ITMButton & React.RefAttributes<HTMLButtonElement>>;
22
35
  export default TMButton;
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState, forwardRef } from 'react';
2
+ import { useState, forwardRef, useRef, useEffect } from 'react';
3
+ import { createPortal } from 'react-dom';
3
4
  import styled from 'styled-components';
4
- import { getColor } from '../../helper';
5
+ import { getColor, IconChevronDown } from '../../helper';
5
6
  import { FontSize, TMColors } from '../../utils/theme';
6
7
  import TMTooltip from './TMTooltip';
7
8
  const StyledNormalButton = styled.button.withConfig({ shouldForwardProp: prop => !['text'].includes(prop) }) `
@@ -149,10 +150,132 @@ const StyledAdvancedButtonText = styled.div `
149
150
  border-top-right-radius: 10px;
150
151
  border-bottom-right-radius: 10px;
151
152
  padding: 5px;
153
+ padding-right: ${props => props.$reserveArrow ? '26px' : '5px'};
154
+ `;
155
+ const StyledSplitContainer = styled.div `
156
+ display: inline-flex;
157
+ align-items: stretch;
158
+ position: relative;
159
+ `;
160
+ const StyledSplitArrow = styled.button `
161
+ position: absolute;
162
+ right: 4px;
163
+ top: 50%;
164
+ transform: translateY(-50%);
165
+ z-index: 2;
166
+ display: flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ width: 20px;
170
+ height: 20px;
171
+ padding: 0;
172
+ border: none;
173
+ border-radius: 6px;
174
+ cursor: ${props => props.$isDisabled ? 'default' : 'pointer'};
175
+ color: white;
176
+ background-color: rgba(255, 255, 255, 0.22);
177
+ transition: background-color ease 150ms;
178
+ &:hover { background-color: ${props => props.$isDisabled ? 'rgba(255, 255, 255, 0.22)' : 'rgba(255, 255, 255, 0.38)'}; }
179
+ & svg {
180
+ transition: transform ease 150ms;
181
+ transform: rotate(${props => props.$isOpen ? '180deg' : '0deg'});
182
+ }
183
+ `;
184
+ const StyledDropdown = styled.div `
185
+ position: fixed;
186
+ left: ${props => props.$left}px;
187
+ top: ${props => props.$top}px;
188
+ transform: translateY(-100%);
189
+ transform-origin: bottom left;
190
+ min-width: ${props => props.$minWidth}px;
191
+ background: #ffffff;
192
+ border-radius: 14px;
193
+ box-shadow: 0 10px 30px rgba(20, 40, 80, 0.20);
194
+ border: 1px solid rgba(74, 150, 210, 0.18);
195
+ padding: 5px;
196
+ z-index: 100000;
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: 2px;
200
+ animation: tmSplitDropdownIn cubic-bezier(0.2, 0.8, 0.2, 1) 150ms;
201
+ @keyframes tmSplitDropdownIn {
202
+ from { opacity: 0; transform: translateY(calc(-100% + 8px)); }
203
+ to { opacity: 1; transform: translateY(-100%); }
204
+ }
205
+ `;
206
+ const StyledDropdownItem = styled.button `
207
+ display: flex;
208
+ align-items: center;
209
+ gap: 9px;
210
+ width: 100%;
211
+ padding: 5px 9px;
212
+ border: none;
213
+ border-radius: 8px;
214
+ background: transparent;
215
+ text-align: left;
216
+ font-size: ${FontSize.defaultFontSize};
217
+ font-weight: 500;
218
+ color: ${props => props.$disabled ? '#b4b4b4' : '#2c3e50'};
219
+ cursor: ${props => props.$disabled ? 'default' : 'pointer'};
220
+ transition: background ease 150ms, color ease 150ms;
221
+ &:hover {
222
+ background: ${props => props.$disabled ? 'transparent' : 'linear-gradient(135deg, rgba(74, 150, 210, 0.16) 0%, rgba(37, 89, 165, 0.16) 100%)'};
223
+ color: ${props => props.$disabled ? '#b4b4b4' : '#2559A5'};
224
+ }
225
+ & > .tm-split-item-icon {
226
+ display: flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ width: 22px;
230
+ height: 22px;
231
+ flex-shrink: 0;
232
+ border-radius: 6px;
233
+ background: rgba(74, 150, 210, 0.14);
234
+ color: #4A96D2;
235
+ transition: background ease 150ms, color ease 150ms;
236
+ }
237
+ &:hover > .tm-split-item-icon {
238
+ background: ${props => props.$disabled ? 'rgba(74, 150, 210, 0.14)' : '#4A96D2'};
239
+ color: ${props => props.$disabled ? '#4A96D2' : '#ffffff'};
240
+ }
152
241
  `;
153
242
  const TMButton = forwardRef((props, ref) => {
154
- const { width, height, keyGesture, btnStyle = 'normal', advancedColor, advancedType = 'primary', color = 'primary', fontSize = FontSize.defaultFontSize, disabled = false, showTooltip = true, caption, icon, description, padding, elementStyle, onClick = () => { }, onMouseDown = () => { } } = props;
243
+ const { width, height, keyGesture, btnStyle = 'normal', advancedColor, advancedType = 'primary', color = 'primary', fontSize = FontSize.defaultFontSize, disabled = false, showTooltip = true, caption, icon, description, padding, elementStyle, onClick = () => { }, onMouseDown = () => { }, secondaryActions } = props;
155
244
  const [isHovered, setIsHovered] = useState(false);
245
+ const [isDropdownOpen, setIsDropdownOpen] = useState(false);
246
+ const [dropdownPos, setDropdownPos] = useState({ left: 0, top: 0, minWidth: 200 });
247
+ const splitContainerRef = useRef(null);
248
+ const dropdownRef = useRef(null);
249
+ const hasSecondaryActions = !!secondaryActions && secondaryActions.length > 0;
250
+ useEffect(() => {
251
+ if (!isDropdownOpen)
252
+ return;
253
+ const handlePointerDown = (e) => {
254
+ const target = e.target;
255
+ if (splitContainerRef.current?.contains(target) || dropdownRef.current?.contains(target))
256
+ return;
257
+ setIsDropdownOpen(false);
258
+ };
259
+ const handleKeyDown = (e) => { if (e.key === 'Escape')
260
+ setIsDropdownOpen(false); };
261
+ document.addEventListener('mousedown', handlePointerDown);
262
+ document.addEventListener('touchstart', handlePointerDown);
263
+ document.addEventListener('keydown', handleKeyDown);
264
+ return () => {
265
+ document.removeEventListener('mousedown', handlePointerDown);
266
+ document.removeEventListener('touchstart', handlePointerDown);
267
+ document.removeEventListener('keydown', handleKeyDown);
268
+ };
269
+ }, [isDropdownOpen]);
270
+ const toggleDropdown = () => {
271
+ if (disabled)
272
+ return;
273
+ if (!isDropdownOpen && splitContainerRef.current) {
274
+ const rect = splitContainerRef.current.getBoundingClientRect();
275
+ setDropdownPos({ left: rect.left, top: rect.top - 6, minWidth: Math.max(rect.width, 200) });
276
+ }
277
+ setIsDropdownOpen(prev => !prev);
278
+ };
156
279
  const renderedButton = () => {
157
280
  if (btnStyle === 'normal') {
158
281
  return (_jsx(StyledNormalButton, { ref: ref, width: width, height: height, color: color, caption: caption, disabled: disabled, fontSize: fontSize, onClick: onClick, onMouseDown: (e) => !disabled && onMouseDown?.(e), children: caption }));
@@ -164,7 +287,7 @@ const TMButton = forwardRef((props, ref) => {
164
287
  return (_jsx(StyledIconButton, { ref: ref, color: color, caption: caption, disabled: disabled, fontSize: fontSize, padding: padding, onClick: onClick, onMouseDown: (e) => !disabled && onMouseDown?.(e), children: icon }));
165
288
  }
166
289
  else if (btnStyle === 'advanced') {
167
- return (_jsxs(StyledAdvancedButton, { ref: ref, "$width": width ?? '90px', "$height": height ?? '30px', onMouseOver: () => !disabled && setIsHovered(true), onMouseOut: () => setIsHovered(false), "$isDisabled": disabled, "$isPrimaryOutline": advancedType === 'primary' && (advancedColor === 'primaryOutline' || color === 'primaryOutline'), onClick: () => !disabled && onClick?.(), onMouseDown: (e) => !disabled && onMouseDown?.(e), children: [_jsx(StyledAdvancedButtonIcon, { "$color": advancedColor, "$isVisible": isHovered, "$isDisabled": disabled, "$type": advancedType, children: icon }), _jsx(StyledAdvancedButtonText, { "$color": advancedColor, "$isDisabled": disabled, "$type": advancedType, children: caption })] }));
290
+ return (_jsxs(StyledAdvancedButton, { ref: ref, "$width": width ?? '90px', "$height": height ?? '30px', onMouseOver: () => !disabled && setIsHovered(true), onMouseOut: () => setIsHovered(false), "$isDisabled": disabled, "$isPrimaryOutline": advancedType === 'primary' && (advancedColor === 'primaryOutline' || color === 'primaryOutline'), onClick: () => !disabled && onClick?.(), onMouseDown: (e) => !disabled && onMouseDown?.(e), children: [_jsx(StyledAdvancedButtonIcon, { "$color": advancedColor, "$isVisible": isHovered, "$isDisabled": disabled, "$type": advancedType, children: icon }), _jsx(StyledAdvancedButtonText, { "$color": advancedColor, "$isDisabled": disabled, "$type": advancedType, "$reserveArrow": hasSecondaryActions, children: caption })] }));
168
291
  }
169
292
  else {
170
293
  return (_jsx(StyledTextButton, { ref: ref, color: color, caption: caption, disabled: disabled, fontSize: fontSize, onClick: onClick, onMouseDown: (e) => !disabled && onMouseDown?.(e), children: caption }));
@@ -175,6 +298,15 @@ const TMButton = forwardRef((props, ref) => {
175
298
  _jsxs(_Fragment, { children: [caption &&
176
299
  _jsx(StyledButtonTooltipHeader, { "$description": description, children: _jsx(StyledButtonTooltipItem, { "$color": color, children: caption }) }), description && _jsx(StyledButtonTooltipItem, { children: description })] }));
177
300
  };
178
- return (_jsx("div", { style: elementStyle, children: showTooltip ? _jsx(TMTooltip, { hideAfterDelay: true, content: renderTooltip(), children: renderedButton() }) : renderedButton() }));
301
+ const buttonWithTooltip = showTooltip
302
+ ? _jsx(TMTooltip, { hideAfterDelay: true, content: renderTooltip(), children: renderedButton() })
303
+ : renderedButton();
304
+ const renderSplitButton = () => (_jsxs(StyledSplitContainer, { ref: splitContainerRef, children: [buttonWithTooltip, _jsx(StyledSplitArrow, { type: 'button', "$isDisabled": disabled, "$isOpen": isDropdownOpen, "aria-haspopup": 'menu', "aria-expanded": isDropdownOpen, onClick: (e) => { e.stopPropagation(); toggleDropdown(); }, onMouseDown: (e) => e.stopPropagation(), children: _jsx(IconChevronDown, { fontSize: 14 }) }), isDropdownOpen && createPortal(_jsx(StyledDropdown, { ref: dropdownRef, role: 'menu', "$left": dropdownPos.left, "$top": dropdownPos.top, "$minWidth": dropdownPos.minWidth, children: secondaryActions.map((action, idx) => (_jsxs(StyledDropdownItem, { type: 'button', role: 'menuitem', "$disabled": action.disabled, disabled: action.disabled, onClick: () => {
305
+ if (action.disabled)
306
+ return;
307
+ setIsDropdownOpen(false);
308
+ action.onClick?.();
309
+ }, children: [action.icon && _jsx("span", { className: 'tm-split-item-icon', children: action.icon }), _jsx("span", { children: action.name })] }, `${action.name}-${idx}`))) }), document.body)] }));
310
+ return (_jsx("div", { style: elementStyle, children: hasSecondaryActions ? renderSplitButton() : buttonWithTooltip }));
179
311
  });
180
312
  export default TMButton;
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  interface IProps {
3
3
  icon: ReactNode;
4
4
  text: string;
@@ -6,5 +6,5 @@ interface IProps {
6
6
  }
7
7
  declare const TMCounterBar: ({ items }: {
8
8
  items: IProps[];
9
- }) => import("react/jsx-runtime").JSX.Element;
9
+ }) => React.JSX.Element;
10
10
  export default TMCounterBar;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  export declare enum CounterItemKey {
2
3
  allItems = "allItems",
3
4
  visibleItems = "visibleItems",
@@ -19,5 +20,5 @@ export interface ITMCounterContainerProps {
19
20
  textColorItem?: string;
20
21
  hoverColorItem?: string;
21
22
  }
22
- declare const TMCounterContainer: (props: ITMCounterContainerProps) => import("react/jsx-runtime").JSX.Element | undefined;
23
+ declare const TMCounterContainer: (props: ITMCounterContainerProps) => React.JSX.Element | undefined;
23
24
  export default TMCounterContainer;
@@ -7,5 +7,5 @@ type TMCustomButtonProps = {
7
7
  selectedItems?: Array<any>;
8
8
  onClose?: () => void;
9
9
  };
10
- declare const TMCustomButton: (props: TMCustomButtonProps) => false | import("react/jsx-runtime").JSX.Element;
10
+ declare const TMCustomButton: (props: TMCustomButtonProps) => false | import("react").JSX.Element;
11
11
  export default TMCustomButton;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { IColumnProps } from 'devextreme-react/data-grid';
2
3
  import { SearchResultDescriptor } from '@topconsultnpm/sdk-ts';
3
4
  export type FormatOption = {
@@ -11,5 +12,5 @@ interface TMDataGridExportFormProps {
11
12
  selectedRowKeys: Array<number>;
12
13
  onCloseExportForm: () => void;
13
14
  }
14
- declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => import("react/jsx-runtime").JSX.Element;
15
+ declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => React.JSX.Element;
15
16
  export default TMDataGridExportForm;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { FileItem } from "./TMFileManagerUtils";
2
3
  import { TMContextMenuItemProps } from '../NewComponents/ContextMenu/types';
3
4
  interface TMFileManagerProps {
@@ -42,5 +43,5 @@ interface TMFileManagerProps {
42
43
  /** Optional: Callback to handle back button */
43
44
  onMaximizePanel?: () => void;
44
45
  }
45
- declare const TMFileManager: (props: TMFileManagerProps) => import("react/jsx-runtime").JSX.Element;
46
+ declare const TMFileManager: (props: TMFileManagerProps) => React.JSX.Element;
46
47
  export default TMFileManager;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { FileItem } from "./TMFileManagerUtils";
2
3
  import { UserDescriptor } from "@topconsultnpm/sdk-ts";
3
4
  import { TMContextMenuItemProps } from "../NewComponents/ContextMenu/types";
@@ -13,5 +14,5 @@ interface TMFileManagerDataGridViewProps {
13
14
  userID?: number;
14
15
  onDoubleClickHandler?: (fileItem: FileItem | undefined) => void;
15
16
  }
16
- declare const TMFileManagerDataGridView: (props: TMFileManagerDataGridViewProps) => import("react/jsx-runtime").JSX.Element;
17
+ declare const TMFileManagerDataGridView: (props: TMFileManagerDataGridViewProps) => React.JSX.Element;
17
18
  export default TMFileManagerDataGridView;
@@ -20,5 +20,5 @@ export interface TMFileManagerThumbnailItemsProps {
20
20
  onDoubleClick?: (file: FileItem) => void;
21
21
  userID?: number;
22
22
  }
23
- declare const TMFileManagerThumbnailItems: (props: TMFileManagerThumbnailItemsProps) => import("react/jsx-runtime").JSX.Element;
23
+ declare const TMFileManagerThumbnailItems: (props: TMFileManagerThumbnailItemsProps) => React.JSX.Element;
24
24
  export default TMFileManagerThumbnailItems;
@@ -28,5 +28,5 @@ interface TMFileManagerThumbnailsViewProps {
28
28
  };
29
29
  }>>;
30
30
  }
31
- declare const TMFileManagerThumbnailsView: (props: TMFileManagerThumbnailsViewProps) => import("react/jsx-runtime").JSX.Element;
31
+ declare const TMFileManagerThumbnailsView: (props: TMFileManagerThumbnailsViewProps) => React.JSX.Element;
32
32
  export default TMFileManagerThumbnailsView;
@@ -17,7 +17,7 @@ declare const TMCard: ({ borderRadius, onClick, scrollX, scrollY, width, height,
17
17
  scroll?: boolean;
18
18
  backgroundColor?: string;
19
19
  color?: string;
20
- }) => import("react/jsx-runtime").JSX.Element;
20
+ }) => React.JSX.Element;
21
21
  declare const TMSplitterLayout: ({ animation, showSeparator, separatorColor, overflow, separatorActiveColor, separatorSize, direction, children, start, min, }: {
22
22
  animation?: boolean;
23
23
  separatorColor?: string;
@@ -29,7 +29,7 @@ declare const TMSplitterLayout: ({ animation, showSeparator, separatorColor, ove
29
29
  children?: React.ReactNode;
30
30
  start?: string[];
31
31
  min?: string[];
32
- }) => import("react/jsx-runtime").JSX.Element;
32
+ }) => React.JSX.Element;
33
33
  declare const TMLayoutItem: ({ onClick, children, width, minWidth, maxWidth, maxHeight, height, minHeight }: {
34
34
  onClick?: () => void;
35
35
  children: React.ReactNode;
@@ -40,7 +40,7 @@ declare const TMLayoutItem: ({ onClick, children, width, minWidth, maxWidth, max
40
40
  fixed?: boolean;
41
41
  height?: string;
42
42
  minHeight?: string;
43
- }) => import("react/jsx-runtime").JSX.Element;
43
+ }) => React.JSX.Element;
44
44
  export interface ITMLayoutContainerProps {
45
45
  children: React.ReactNode;
46
46
  gap?: number;
@@ -50,6 +50,6 @@ export interface ITMLayoutContainerProps {
50
50
  onClick?: () => void;
51
51
  onContextMenu?: (e: React.MouseEvent) => void;
52
52
  }
53
- declare const TMLayoutContainer: ({ gap, onClick, justifyContent, alignItems, children, direction, onContextMenu }: ITMLayoutContainerProps) => import("react/jsx-runtime").JSX.Element;
53
+ declare const TMLayoutContainer: ({ gap, onClick, justifyContent, alignItems, children, direction, onContextMenu }: ITMLayoutContainerProps) => React.JSX.Element;
54
54
  export { TMCard, TMLayoutItem, TMSplitterLayout };
55
55
  export default TMLayoutContainer;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface ITMListItem {
2
3
  icon: any;
3
4
  text?: string;
@@ -5,5 +6,5 @@ interface ITMListItem {
5
6
  }
6
7
  declare const TMList: ({ items }: {
7
8
  items: ITMListItem[];
8
- }) => import("react/jsx-runtime").JSX.Element;
9
+ }) => React.JSX.Element;
9
10
  export default TMList;
@@ -37,6 +37,6 @@ interface ListProps<T> {
37
37
  onItemDblClick?: (item: T) => void;
38
38
  itemTemplate?: (item: T) => JSX.Element;
39
39
  }
40
- declare const TMListView: <T>({ customGroupingHeaders, headerBackGroundColor, header, showId, setShowId, showSearch, setShowSearch, grouping, orderBy, id, onScrollChange, scroll, searchKeys, searchable, itemTemplate, customColor, dataSource, exprKey, onSelectionChanged, onItemClick, onItemDblClick, selectedItem, autoScrollToSelectedItem }: ListProps<T>) => import("react/jsx-runtime").JSX.Element;
40
+ declare const TMListView: <T>({ customGroupingHeaders, headerBackGroundColor, header, showId, setShowId, showSearch, setShowSearch, grouping, orderBy, id, onScrollChange, scroll, searchKeys, searchable, itemTemplate, customColor, dataSource, exprKey, onSelectionChanged, onItemClick, onItemDblClick, selectedItem, autoScrollToSelectedItem }: ListProps<T>) => React.JSX.Element;
41
41
  export default TMListView;
42
42
  export declare const CustomListViewHeader: React.FC<ITMListViewHeader>;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface ITMSpinner {
2
3
  backgroundColor?: string;
3
4
  fontSize?: string;
@@ -7,7 +8,7 @@ interface ITMSpinner {
7
8
  onCancel?: () => void;
8
9
  cancelText?: string;
9
10
  }
10
- declare const Spinner: ({ backgroundColor, description, fontSize, width, flat, onCancel, cancelText }: ITMSpinner) => import("react/jsx-runtime").JSX.Element;
11
+ declare const Spinner: ({ backgroundColor, description, fontSize, width, flat, onCancel, cancelText }: ITMSpinner) => React.JSX.Element;
11
12
  declare class TMSpinner {
12
13
  static show({ description, backgroundColor, fontSize, flat, onCancel, cancelText }?: ITMSpinner): void;
13
14
  static hide(): void;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
2
3
  export interface ITMTabProps {
3
4
  title: string;
@@ -7,14 +8,14 @@ export declare const TMTab: ({ label, propsToBeValidated, children }: {
7
8
  label?: string;
8
9
  propsToBeValidated?: string[] | undefined;
9
10
  children?: any;
10
- }) => import("react/jsx-runtime").JSX.Element;
11
+ }) => React.JSX.Element;
11
12
  export declare const TMTabItemBadge: ({ vil }: {
12
13
  vil: ValidationItem[];
13
- }) => import("react/jsx-runtime").JSX.Element;
14
+ }) => React.JSX.Element;
14
15
  declare const TMTabGroup: ({ children, fontSize, validationItems, onTabIndexChanged }: {
15
16
  onTabIndexChanged?: (e: number) => void;
16
17
  children: any;
17
18
  fontSize?: string;
18
19
  validationItems?: ValidationItem[];
19
- }) => import("react/jsx-runtime").JSX.Element;
20
+ }) => React.JSX.Element;
20
21
  export default TMTabGroup;
@@ -10,5 +10,5 @@ interface ITMTooltipProps extends ITooltipOptions {
10
10
  parentStyle?: React.CSSProperties;
11
11
  childStyle?: React.CSSProperties;
12
12
  }
13
- declare const TMTooltip: ({ children, position, content, hideAfterDelay, parentStyle, childStyle }: ITMTooltipProps) => import("react/jsx-runtime").JSX.Element;
13
+ declare const TMTooltip: ({ children, position, content, hideAfterDelay, parentStyle, childStyle }: ITMTooltipProps) => React.JSX.Element;
14
14
  export default TMTooltip;
@@ -29,7 +29,7 @@ interface ITMTreeViewProps {
29
29
  showLoadMoreButton?: boolean;
30
30
  enableVirtualization?: boolean;
31
31
  }
32
- declare const TMTreeView: ({ dataSource, focusedItem, selectedItems, allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, onItemContextMenu, autoSelectChildren, itemsPerPage, showLoadMoreButton, enableVirtualization }: ITMTreeViewProps) => import("react/jsx-runtime").JSX.Element;
32
+ declare const TMTreeView: ({ dataSource, focusedItem, selectedItems, allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, onItemContextMenu, autoSelectChildren, itemsPerPage, showLoadMoreButton, enableVirtualization }: ITMTreeViewProps) => React.JSX.Element;
33
33
  export default TMTreeView;
34
34
  export declare const StyledTreeContainer: 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;
35
35
  export declare const StyledItemContent: 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,8 +1,9 @@
1
+ import React from 'react';
1
2
  interface TMUserAvatarProps {
2
3
  displayName: string;
3
4
  nameForColorCalculation: string;
4
5
  tooltipName?: string;
5
6
  returnType?: 'jsx' | 'svg';
6
7
  }
7
- declare const TMUserAvatar: (props: TMUserAvatarProps) => string | import("react/jsx-runtime").JSX.Element;
8
+ declare const TMUserAvatar: (props: TMUserAvatarProps) => string | React.JSX.Element;
8
9
  export default TMUserAvatar;
@@ -1,5 +1,6 @@
1
+ import React from 'react';
1
2
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
2
3
  declare const TMVilViewer: ({ vil }: {
3
4
  vil?: ValidationItem[];
4
- }) => import("react/jsx-runtime").JSX.Element | null;
5
+ }) => React.JSX.Element | null;
5
6
  export default TMVilViewer;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { ITMLayoutContainerProps } from './TMLayout';
2
3
  interface ITMWaitPanelProps {
3
4
  title?: string;
@@ -14,7 +15,7 @@ interface ITMWaitPanelProps {
14
15
  onAbortClick?: (abortController: AbortController | undefined) => void;
15
16
  useHighZIndex?: boolean;
16
17
  }
17
- export declare const TMWaitPanel: (props: ITMWaitPanelProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const TMWaitPanel: (props: ITMWaitPanelProps) => React.JSX.Element;
18
19
  interface ITMLayoutWaitingContainerProps extends ITMLayoutContainerProps {
19
20
  showWaitPanel?: boolean;
20
21
  waitPanelTitle?: string;
@@ -30,5 +31,5 @@ interface ITMLayoutWaitingContainerProps extends ITMLayoutContainerProps {
30
31
  abortController?: AbortController;
31
32
  usePortal?: boolean;
32
33
  }
33
- export declare const TMLayoutWaitingContainer: ({ showWaitPanel, showWaitPanelPrimary, showWaitPanelSecondary, waitPanelTitle, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, isCancelable, abortController, usePortal, gap, onClick, justifyContent, alignItems, children, direction }: ITMLayoutWaitingContainerProps) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const TMLayoutWaitingContainer: ({ showWaitPanel, showWaitPanelPrimary, showWaitPanelSecondary, waitPanelTitle, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, isCancelable, abortController, usePortal, gap, onClick, justifyContent, alignItems, children, direction }: ITMLayoutWaitingContainerProps) => React.JSX.Element;
34
35
  export {};
@@ -41,4 +41,4 @@ interface ITMDynDataListItemChooserFormProps extends ITMChooserFormProps<DataLis
41
41
  /** Se presente, sono i parametri da passare alla query per recuperare il dataSource */
42
42
  queryParamsDynDataList?: string[];
43
43
  }
44
- export declare const TMDynDataListItemChooserForm: (props: ITMDynDataListItemChooserFormProps) => import("react/jsx-runtime").JSX.Element;
44
+ export declare const TMDynDataListItemChooserForm: (props: ITMDynDataListItemChooserFormProps) => React.JSX.Element;
@@ -1,4 +1,5 @@
1
+ import React from 'react';
1
2
  import { InvoiceRetrieveFormats } from '@topconsultnpm/sdk-ts';
2
3
  import { ITMEnumDataBinding } from '../../ts';
3
- declare const TMInvoiceRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<InvoiceRetrieveFormats>) => import("react/jsx-runtime").JSX.Element;
4
+ declare const TMInvoiceRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<InvoiceRetrieveFormats>) => React.JSX.Element;
4
5
  export default TMInvoiceRetrieveFormats;
@@ -1,4 +1,5 @@
1
+ import React from 'react';
1
2
  import { OrderRetrieveFormats } from '@topconsultnpm/sdk-ts';
2
3
  import { ITMEnumDataBinding } from '../../ts';
3
- declare const TMOrderRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<OrderRetrieveFormats>) => import("react/jsx-runtime").JSX.Element;
4
+ declare const TMOrderRetrieveFormats: ({ value, valueOrig, onValueChanged, valuesToExclude, label, width }: ITMEnumDataBinding<OrderRetrieveFormats>) => React.JSX.Element;
4
5
  export default TMOrderRetrieveFormats;
@@ -19,13 +19,13 @@ export declare const TMRelationIdViewer: ({ relationType, relationId, showIcon,
19
19
  relationId?: number;
20
20
  showIcon?: boolean;
21
21
  noneSelectionText?: string;
22
- }) => import("react/jsx-runtime").JSX.Element;
22
+ }) => React.JSX.Element;
23
23
  export declare const TMRelationIcon: ({ rd, relationType }: {
24
24
  rd: RelationDescriptor | undefined;
25
25
  relationType?: RelationTypes;
26
- }) => import("react/jsx-runtime").JSX.Element;
26
+ }) => React.JSX.Element;
27
27
  export declare const TMRelationTooltip: ({ rd, relationType, children }: {
28
28
  rd?: RelationDescriptor;
29
29
  relationType: RelationTypes | undefined;
30
30
  children: React.ReactNode;
31
- }) => import("react/jsx-runtime").JSX.Element;
31
+ }) => React.JSX.Element;
@@ -38,8 +38,8 @@ interface ITMUserChooserFormProps extends ITMChooserFormProps<UserDescriptor> {
38
38
  export declare const TMUserChooserForm: React.FunctionComponent<ITMUserChooserFormProps>;
39
39
  export declare const TMUserIcon: ({ ud }: {
40
40
  ud?: UserDescriptor;
41
- }) => import("react/jsx-runtime").JSX.Element | null;
41
+ }) => React.JSX.Element | null;
42
42
  export declare const TMUserTooltip: ({ ud, children }: {
43
43
  ud?: UserDescriptor;
44
44
  children: React.ReactNode;
45
- }) => import("react/jsx-runtime").JSX.Element;
45
+ }) => React.JSX.Element;
@@ -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) => import("react/jsx-runtime").JSX.Element;
33
+ export declare const renderFormulaIcon: (iconType: FormulaIconTypes, tid?: number, md?: MetadataDescriptor) => React.JSX.Element;
34
34
  declare const TMFormulaEditor: React.FunctionComponent<ITMApplyFormProps<FormulaDescriptor>>;
35
35
  export default TMFormulaEditor;
36
36
  export declare class FormulaHelper {
@@ -1,7 +1,8 @@
1
+ import React from 'react';
1
2
  interface IHtmlContentDisplay {
2
3
  markup: string;
3
4
  isSelected: boolean;
4
5
  searchText?: string;
5
6
  }
6
- declare const TMHtmlContentDisplay: (props: IHtmlContentDisplay) => import("react/jsx-runtime").JSX.Element;
7
+ declare const TMHtmlContentDisplay: (props: IHtmlContentDisplay) => React.JSX.Element;
7
8
  export default TMHtmlContentDisplay;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { ValidationItem } from '@topconsultnpm/sdk-ts';
2
3
  export declare const sanitizeAndFormatComment: (raw?: string) => string;
3
4
  export interface ITMHtmlEditor {
@@ -34,5 +35,5 @@ export interface ITMHtmlEditor {
34
35
  /** If true, displays a character count below the editor */
35
36
  showCount?: boolean;
36
37
  }
37
- declare const TMHtmlEditor: (props: ITMHtmlEditor) => import("react/jsx-runtime").JSX.Element;
38
+ declare const TMHtmlEditor: (props: ITMHtmlEditor) => React.JSX.Element;
38
39
  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) => import("react/jsx-runtime").JSX.Element;
17
+ declare const TMTreeDropDown: (props: TMTreeDropDownProps) => React.JSX.Element;
18
18
  export default TMTreeDropDown;
@@ -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) => import("react/jsx-runtime").JSX.Element;
14
+ declare const TMToppyDraggableHelpCenter: (props: TMToppyDraggableHelpCenterProps) => React.JSX.Element;
15
15
  export default TMToppyDraggableHelpCenter;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { BlogPost, UserDescriptor } from "@topconsultnpm/sdk-ts";
2
3
  import { FileItem } from '../../base/TMFileManagerUtils';
3
4
  import { TMBlogContextDescriptor } from '../../grids/TMBlogsPostUtils';
@@ -18,5 +19,5 @@ interface TMBlogCommentFormProps {
18
19
  /** External save handler - when provided, bypasses internal engine logic */
19
20
  onCustomSave?: (blogPost: BlogPost) => Promise<void>;
20
21
  }
21
- declare const TMBlogCommentForm: (props: TMBlogCommentFormProps) => import("react/jsx-runtime").JSX.Element;
22
+ declare const TMBlogCommentForm: (props: TMBlogCommentFormProps) => React.JSX.Element;
22
23
  export default TMBlogCommentForm;
@@ -30,5 +30,5 @@ interface TMDcmtFormActionButtonsProps {
30
30
  setShowMoreInfoTaskPopup: React.Dispatch<React.SetStateAction<boolean>>;
31
31
  setShowMoreInfoTaskTask: React.Dispatch<React.SetStateAction<TaskDescriptor | undefined>>;
32
32
  }
33
- declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => import("react/jsx-runtime").JSX.Element;
33
+ declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => React.JSX.Element;
34
34
  export default TMDcmtFormActionButtons;