@epam/ai-dial-ui-kit 0.10.0-dev.9 → 0.11.0-dev.11

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 (60) hide show
  1. package/dist/JsonEditor-BZ1nQPZn.js +111 -0
  2. package/dist/JsonEditor-DowViS1w.cjs +1 -0
  3. package/dist/MarkdownEditor-BwW4mgYy.cjs +1 -0
  4. package/dist/MarkdownEditor-DUAP5WFc.js +36 -0
  5. package/dist/components-manifest.json +388 -79
  6. package/dist/dial-ui-kit.cjs.js +1 -71
  7. package/dist/dial-ui-kit.es.js +126 -60567
  8. package/dist/editor-Ba3vCFHk.cjs +1 -0
  9. package/dist/editor-Cu1dRT39.js +4 -0
  10. package/dist/index-DMGs2b9J.cjs +71 -0
  11. package/dist/index-DQQMPf91.js +61370 -0
  12. package/dist/index.css +2 -2
  13. package/dist/mcp-server.cjs +9 -0
  14. package/dist/src/components/Button/ButtonWrappers.d.ts +18 -3
  15. package/dist/src/components/Dropdown/Dropdown.d.ts +0 -47
  16. package/dist/src/components/Dropdown/DropdownSubMenuItem.d.ts +8 -0
  17. package/dist/src/components/DropdownIcon/DropdownIcon.d.ts +38 -0
  18. package/dist/src/components/FabButton/FabButton.d.ts +27 -0
  19. package/dist/src/components/FileManager/FileManager.d.ts +2 -5
  20. package/dist/src/components/FileManager/FileManagerContext.d.ts +6 -2
  21. package/dist/src/components/FileManager/FileManagerTooltip.d.ts +3 -2
  22. package/dist/src/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.d.ts +6 -2
  23. package/dist/src/components/FileManager/components/FileManagerItemName/FileManagerItemName.d.ts +3 -0
  24. package/dist/src/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.d.ts +2 -2
  25. package/dist/src/components/FileManager/components/FoldersTree/FoldersTree.d.ts +8 -0
  26. package/dist/src/components/FileManager/components/FoldersTree/constants.d.ts +1 -0
  27. package/dist/src/components/FileManager/constants.d.ts +1 -0
  28. package/dist/src/components/FileManager/hooks/use-file-manager-columns.d.ts +1 -0
  29. package/dist/src/components/FileManager/hooks/use-folder-creation.d.ts +8 -1
  30. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +3 -3
  31. package/dist/src/components/FileManager/hooks/use-trigger-view-create-folder.d.ts +26 -0
  32. package/dist/src/components/FileManager/utils.d.ts +7 -1
  33. package/dist/src/components/FormItem/constants.d.ts +1 -1
  34. package/dist/src/components/IconButton/IconButtonWrappers.d.ts +6 -6
  35. package/dist/src/components/MarkdownEditor/MarkdownEditor.d.ts +4 -2
  36. package/dist/src/components/{Alert/Alert.d.ts → Notification/Notification.d.ts} +15 -13
  37. package/dist/src/components/Notification/constants.d.ts +8 -0
  38. package/dist/src/components/Pagination/Pagination.d.ts +8 -0
  39. package/dist/src/components/Pagination/utils.d.ts +5 -0
  40. package/dist/src/components/ProgressBar/ProgressBar.d.ts +13 -0
  41. package/dist/src/components/RemoveButton/RemoveButton.d.ts +2 -2
  42. package/dist/src/components/SchemaRenderer/components/SchemaObjectEditor.d.ts +1 -1
  43. package/dist/src/components/SchemaRenderer/types.d.ts +1 -0
  44. package/dist/src/components/Select/SelectSubMenuItem.d.ts +8 -0
  45. package/dist/src/components/Select/constants.d.ts +1 -0
  46. package/dist/src/components/Spinner/Spinner.d.ts +8 -0
  47. package/dist/src/hooks/use-editable-item.d.ts +5 -1
  48. package/dist/src/index.d.ts +17 -4
  49. package/dist/src/mcp/types.d.ts +7 -0
  50. package/dist/src/models/dropdown.d.ts +1 -0
  51. package/dist/src/models/select.d.ts +1 -0
  52. package/dist/src/types/button.d.ts +2 -2
  53. package/dist/src/types/file-manager.d.ts +9 -0
  54. package/dist/src/types/notification.d.ts +7 -0
  55. package/dist/src/utils/mobile.d.ts +2 -2
  56. package/dist/src/utils/sub-menu-floating.d.ts +51 -0
  57. package/package.json +9 -5
  58. package/dist/src/components/Alert/constants.d.ts +0 -8
  59. package/dist/src/types/alert.d.ts +0 -6
  60. /package/dist/{.cursor/hooks/post-write-verify.d.ts → src/components/Pagination/tests/utils.spec.d.ts} +0 -0
@@ -30,8 +30,6 @@ export interface UseGridContextMenuProps {
30
30
  onRemoveAccess?: (file: DialFile) => void;
31
31
  sharedWithMeIds?: string[];
32
32
  sharedByMePaths?: Set<string>;
33
- onAddSibling?: (file: DialFile) => void;
34
- onAddChild?: (file: DialFile) => void;
35
33
  onManagePermissions?: (path?: string) => void;
36
34
  onPreview?: (path?: string) => void;
37
35
  onOpenInNewTab?: (file: DialFile) => void;
@@ -39,5 +37,7 @@ export interface UseGridContextMenuProps {
39
37
  isRenameFileAvailable?: boolean;
40
38
  isDuplicateFolderAvailable?: boolean;
41
39
  forbiddenSymbolsRegExp?: RegExp;
40
+ onGridCreateSiblingFolder: (files: DialFile[]) => void;
41
+ onGridCreateChildFolder: (files: DialFile[]) => void;
42
42
  }
43
- export declare const useGridContextMenu: ({ actionLabels, onDuplicate, onCopy, onMove, onDownload, onRename, onDelete, onInfo, onUnshare, onRemoveAccess, sharedWithMeIds, sharedByMePaths, onAddSibling, onAddChild, onManagePermissions, onPreview, onOpenInNewTab, previewExtensions, isRenameFileAvailable, isDuplicateFolderAvailable, forbiddenSymbolsRegExp, }: UseGridContextMenuProps) => (file: DialFile) => DropdownItem[];
43
+ export declare const useGridContextMenu: ({ actionLabels, onDuplicate, onCopy, onMove, onDownload, onRename, onDelete, onInfo, onUnshare, onRemoveAccess, sharedWithMeIds, sharedByMePaths, onManagePermissions, onPreview, onOpenInNewTab, previewExtensions, isRenameFileAvailable, isDuplicateFolderAvailable, forbiddenSymbolsRegExp, onGridCreateSiblingFolder, onGridCreateChildFolder, }: UseGridContextMenuProps) => (file: DialFile) => DropdownItem[];
@@ -0,0 +1,26 @@
1
+ import { DialFile } from '../../../models/file';
2
+ import { FileManagerCreateFolderTriggerView } from '../../../types/file-manager';
3
+ interface UseTriggerViewCreateFolderOptions {
4
+ onGridAddSibling?: (files: DialFile[]) => void;
5
+ onGridAddChild?: (files: DialFile[]) => void;
6
+ onTreeAddSibling?: (files: DialFile[]) => void;
7
+ onTreeAddChild?: (files: DialFile[]) => void;
8
+ }
9
+ /**
10
+ * Manages which view ("tree" or "grid") triggered a folder creation action.
11
+ *
12
+ * Useful when both TreeView and GridView can initiate folder creation,
13
+ * and the parent needs to know which source triggered it
14
+ * to apply view-specific logic or UI updates.
15
+ *
16
+ * Returns the last folder creation trigger source and four handlers
17
+ * (`onGridCreateSiblingFolder`, `onTreeCreateSiblingFolder`, `onGridCreateChildFolder`, `onTreeCreateChildFolder`) that wrap the provided `onGridAddSibling`, `onTreeAddSibling`, `onGridAddChild` and `onTreeAddChild` callbacks.
18
+ */
19
+ export declare const useTriggerViewCreateFolder: ({ onGridAddSibling, onGridAddChild, onTreeAddSibling, onTreeAddChild, }: UseTriggerViewCreateFolderOptions) => {
20
+ createFolderTriggerView: FileManagerCreateFolderTriggerView;
21
+ onGridCreateSiblingFolder: (files: DialFile[]) => void;
22
+ onTreeCreateSiblingFolder: (files: DialFile[]) => void;
23
+ onGridCreateChildFolder: (files: DialFile[]) => void;
24
+ onTreeCreateChildFolder: (files: DialFile[]) => void;
25
+ };
26
+ export {};
@@ -48,4 +48,10 @@ export declare function getForbiddenSymbolsTooltip(item: {
48
48
  name: string;
49
49
  isFolder: boolean;
50
50
  }, forbiddenSymbolsRegExp?: RegExp, forbiddenSymbolsTooltip?: ReactNode): ReactNode | undefined;
51
- export declare const getRowTooltip: (file: FileManagerGridRow, allowedFileTypes?: string[], maxSelectableFileSize?: number, unsupportedFileTypeTooltip?: string, fileTooLargeTooltip?: string) => string | undefined;
51
+ export declare const splitPathAndName: (fullPath: string) => {
52
+ parent: string;
53
+ name: string;
54
+ };
55
+ export declare const isFileSelectable: (file: Pick<DialFile, "contentLength" | "contentType" | "name">, allowedFileTypes?: DialFileAcceptType[], maxSelectableFileSize?: number) => boolean;
56
+ export declare const getRowTooltip: (file: FileManagerGridRow, allowedFileTypes?: DialFileAcceptType[], maxSelectableFileSize?: number, unsupportedFileTypeTooltip?: string, fileTooLargeTooltip?: string) => string | undefined;
57
+ export declare const getNextFolderName: (existingFolders: DialFile[]) => string;
@@ -1,3 +1,3 @@
1
1
  import { FormItemOrientation } from '../../types/form-item';
2
- export declare const containerBaseClassName = "w-full flex gap-2";
2
+ export declare const containerBaseClassName = "w-full flex gap-1";
3
3
  export declare const orientationClassMap: Record<FormItemOrientation, string>;
@@ -29,10 +29,10 @@ export declare const DialPrimaryIconButton: FC<ButtonVariantProps>;
29
29
  * Inherits all properties from the `DialIconButtonProps`
30
30
  */
31
31
  export declare const DialNeutralIconButton: FC<ButtonVariantProps>;
32
- /** A Error Icon Button component with predefined error variant
32
+ /** A Danger Icon Button component with predefined danger variant
33
33
  * @example
34
34
  * ```tsx
35
- * <DialErrorIconButton
35
+ * <DialDangerIconButton
36
36
  * icon={<Icon />}
37
37
  * onClick={handleClick}
38
38
  * className="custom-button"
@@ -41,8 +41,8 @@ export declare const DialNeutralIconButton: FC<ButtonVariantProps>;
41
41
  *
42
42
  * Inherits all properties from the `DialIconButtonProps`
43
43
  */
44
- export declare const DialErrorIconButton: FC<ButtonVariantProps>;
45
- /** A Secondary Icon Button component with predefined error variant
44
+ export declare const DialDangerIconButton: FC<ButtonVariantProps>;
45
+ /** A Secondary Icon Button component with predefined secondary variant
46
46
  * @example
47
47
  * ```tsx
48
48
  * <DialSecondaryIconButton
@@ -55,7 +55,7 @@ export declare const DialErrorIconButton: FC<ButtonVariantProps>;
55
55
  * Inherits all properties from the `DialIconButtonProps`
56
56
  */
57
57
  export declare const DialSecondaryIconButton: FC<ButtonVariantProps>;
58
- /** A Tertiary Icon Button component with predefined error variant
58
+ /** A Tertiary Icon Button component with predefined tertiary variant
59
59
  * @example
60
60
  * ```tsx
61
61
  * <DialTertiaryIconButton
@@ -68,7 +68,7 @@ export declare const DialSecondaryIconButton: FC<ButtonVariantProps>;
68
68
  * Inherits all properties from the `DialIconButtonProps`
69
69
  */
70
70
  export declare const DialTertiaryIconButton: FC<ButtonVariantProps>;
71
- /** A Success Icon Button component with predefined error variant
71
+ /** A Success Icon Button component with predefined success variant
72
72
  * @example
73
73
  * ```tsx
74
74
  * <DialSuccessIconButton
@@ -1,6 +1,6 @@
1
- import { EditorThemes } from '../../types/editor';
2
1
  import { PreviewType } from '@uiw/react-md-editor';
3
- import { FC } from 'react';
2
+ import { FC, ReactNode } from 'react';
3
+ import { EditorThemes } from '../../types/editor';
4
4
  export interface DialMarkdownEditorProps {
5
5
  value?: string;
6
6
  onChange?: (value: string) => void;
@@ -8,6 +8,7 @@ export interface DialMarkdownEditorProps {
8
8
  preview?: PreviewType;
9
9
  theme?: EditorThemes;
10
10
  className?: string;
11
+ placeholder?: ReactNode;
11
12
  }
12
13
  /**
13
14
  * A Markdown editor component built on top of @uiw/react-md-editor.
@@ -27,6 +28,7 @@ export interface DialMarkdownEditorProps {
27
28
  * @param [onChange] - Callback fired when the editor content changes
28
29
  * @param [height=300] - Height of the editor in pixels
29
30
  * @param [preview='edit'] - Preview mode ('edit', 'live', 'preview')
31
+ * @param [placeholder] - Content to display when the editor is empty
30
32
  * @param [theme='dark'] - Theme for the editor ('light' or 'dark')
31
33
  * @param [className] - Additional CSS classes for the container
32
34
  */
@@ -1,7 +1,8 @@
1
- import { FC, MouseEvent, ReactNode, HTMLAttributes } from 'react';
2
- import { AlertVariant } from '../../types/alert';
3
- export interface DialAlertProps extends HTMLAttributes<HTMLDivElement> {
4
- variant?: AlertVariant;
1
+ import { FC, HTMLAttributes, MouseEvent, ReactNode } from 'react';
2
+ import { NotificationVariant } from '../../types/notification';
3
+ export interface DialNotificationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
4
+ variant?: NotificationVariant;
5
+ title?: ReactNode;
5
6
  message: ReactNode;
6
7
  closable?: boolean;
7
8
  iconSize?: number;
@@ -18,31 +19,32 @@ export interface DialAlertProps extends HTMLAttributes<HTMLDivElement> {
18
19
  * @example
19
20
  * ```tsx
20
21
  * <DialAlert
21
- * variant={AlertVariant.Info}
22
+ * variant={NotificationVariant.Info}
22
23
  * message="This is an info alert."
23
24
  * />
24
25
  *
25
26
  * <DialAlert
26
- * variant={AlertVariant.Success}
27
+ * variant={NotificationVariant.Success}
28
+ * title="Saved"
27
29
  * message="Changes saved successfully."
28
30
  * />
29
31
  *
30
32
  * <DialAlert
31
- * variant={AlertVariant.Error}
33
+ * variant={NotificationVariant.Error}
32
34
  * closable
33
35
  * message="Something went wrong."
34
36
  * onClose={(e) => console.log('closed', e)}
35
37
  * />
36
38
  *
37
39
  * <DialAlert
38
- * variant={AlertVariant.Warning}
39
- * message="Custom alert"
40
- * aria-live="polite"
41
- * id="warning-alert"
40
+ * variant={NotificationVariant.Loading}
41
+ * title="Processing"
42
+ * message="Please wait..."
42
43
  * />
43
44
  * ```
44
45
  *
45
- * @param [variant=AlertVariant.Info] - Defines the visual style and icon of the alert
46
+ * @param [variant=NotificationVariant.Info] - Defines the visual style and icon of the alert
47
+ * @param [title] - Optional heading displayed above the message in semibold
46
48
  * @param message - Message text to display inside the alert
47
49
  * @param [className] - Additional CSS classes applied to the alert container
48
50
  * @param [closable=false] - Whether the alert has a close button
@@ -50,4 +52,4 @@ export interface DialAlertProps extends HTMLAttributes<HTMLDivElement> {
50
52
  * @param [iconStroke=2] - Stroke width of the icon displayed in the alert
51
53
  * @param [onClose] - Callback fired when the close button is clicked
52
54
  */
53
- export declare const DialAlert: FC<DialAlertProps>;
55
+ export declare const DialNotification: FC<DialNotificationProps>;
@@ -0,0 +1,8 @@
1
+ import { NotificationVariant } from '../../types/notification';
2
+ import { ReactNode } from '@tabler/icons-react';
3
+ export declare const variantIcons: (props: {
4
+ size: number;
5
+ stroke: number;
6
+ }) => Record<NotificationVariant, ReactNode>;
7
+ export declare const notificationVariantClassNameMap: Record<NotificationVariant, string>;
8
+ export declare const alertBaseClassName = "items-center justify-between relative gap-3 p-3 border border-solid dial-small-text-150 rounded shadow flex";
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ export interface DialPaginationProps {
3
+ page: number;
4
+ totalPages: number;
5
+ onPageChange: (page: number) => void;
6
+ className?: string;
7
+ }
8
+ export declare const DialPagination: FC<DialPaginationProps>;
@@ -0,0 +1,5 @@
1
+ export declare const MANY_PAGES_THRESHOLD = 7;
2
+ export declare const ADJACENT_WINDOW = 2;
3
+ export declare const getPageRange: (totalPages: number) => number[];
4
+ export type PageDisplayType = 'active' | 'adjacent' | 'far';
5
+ export declare const getPageDisplayType: (p: number, currentPage: number, totalPages: number) => PageDisplayType;
@@ -0,0 +1,13 @@
1
+ import { FC } from 'react';
2
+ export declare enum DialProgressBarSize {
3
+ Small = "sm",
4
+ Medium = "md"
5
+ }
6
+ export interface DialProgressBarProps {
7
+ value: number;
8
+ max?: number;
9
+ size?: DialProgressBarSize;
10
+ className?: string;
11
+ ariaLabel?: string;
12
+ }
13
+ export declare const DialProgressBar: FC<DialProgressBarProps>;
@@ -7,8 +7,8 @@ export interface DialRemoveButtonProps extends Omit<DialButtonProps, 'iconBefore
7
7
  * A specialized button component for removal or delete actions.
8
8
  * aliases: DeleteButton|TrashButton
9
9
  *
10
- * Renders a `DialErrorButton` with a predefined trash icon (`IconTrashX`) as the leading icon.
11
- * Additional props are passed directly to the underlying `DialErrorButton`.
10
+ * Renders a `DialDangerButton` with a predefined trash icon (`IconTrashX`) as the leading icon.
11
+ * Additional props are passed directly to the underlying `DialDangerButton`.
12
12
  * @example
13
13
  * <DialRemoveButton
14
14
  * label="Delete item"
@@ -1,5 +1,5 @@
1
- import { FC } from 'react';
2
1
  import { JsonSchemaDef } from '../types';
2
+ import { FC } from 'react';
3
3
  export interface SchemaObjectEditorProps {
4
4
  schema: JsonSchemaDef;
5
5
  value: unknown;
@@ -26,6 +26,7 @@ export interface JsonSchemaDef {
26
26
  type?: string | string[];
27
27
  title?: string;
28
28
  description?: string;
29
+ isHidden?: boolean;
29
30
  isProtected?: boolean;
30
31
  enumDisplay?: SchemaDisplayMode;
31
32
  enumOrientation?: SchemaOrientation;
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { SelectOption } from '../../models/select';
3
+ export interface SelectSubMenuItemProps {
4
+ opt: SelectOption;
5
+ selectedValues: string[];
6
+ onSelect: (value: string) => void;
7
+ }
8
+ export declare const SelectSubMenuItem: FC<SelectSubMenuItemProps>;
@@ -5,4 +5,5 @@ export declare const selectOptionSelectedClassName = "bg-accent-primary-alpha";
5
5
  export declare const selectOptionSingleSelectedClassName = "bg-accent-primary-alpha border-l border-accent-primary border-1";
6
6
  export declare const selectOptionDisabledClassName = "opacity-75";
7
7
  export declare const dropdownMenuMaxHeight = 352;
8
+ export declare const selectSubMenuGap = 4;
8
9
  export declare const selectChevronIcon: import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ export interface DialSpinnerProps {
3
+ size?: number;
4
+ className?: string;
5
+ fullWidth?: boolean;
6
+ ariaLabel?: string;
7
+ }
8
+ export declare const DialSpinner: FC<DialSpinnerProps>;
@@ -2,10 +2,14 @@ import { RefObject } from 'react';
2
2
  export interface UseEditableItemOptions {
3
3
  value: string;
4
4
  isEditing: boolean;
5
+ isCreating?: boolean;
6
+ isLoading?: boolean;
5
7
  onValidate?: (value: string) => string | null;
6
8
  onSave?: (value: string) => void;
7
9
  onCancel?: () => void;
8
10
  restoreOnCancel?: boolean;
11
+ onCreateFolderSave?: (value: string) => void;
12
+ onCreateFolderCancel?: () => void;
9
13
  }
10
14
  interface UseEditableItemResult {
11
15
  inputRef: RefObject<HTMLInputElement | null>;
@@ -61,5 +65,5 @@ interface UseEditableItemResult {
61
65
  * );
62
66
  * ```
63
67
  */
64
- export declare function useEditableItem({ value: initialValue, isEditing, restoreOnCancel, onValidate, onSave, onCancel, }: UseEditableItemOptions): UseEditableItemResult;
68
+ export declare function useEditableItem({ value: initialValue, isEditing, isCreating, isLoading, restoreOnCancel, onValidate, onSave, onCancel, onCreateFolderSave, onCreateFolderCancel, }: UseEditableItemOptions): UseEditableItemResult;
65
69
  export {};
@@ -1,8 +1,14 @@
1
1
  export { DialCaptionText, DialErrorText, } from './components/CaptionText/CaptionText';
2
2
  export { DialLabel } from './components/Label/Label';
3
3
  export { DialIcon } from './components/Icon/Icon';
4
- export { DialAlert } from './components/Alert/Alert';
4
+ export { DialNotification } from './components/Notification/Notification.tsx';
5
5
  export { DialLoader } from './components/Loader/Loader';
6
+ export { DialSpinner } from './components/Spinner/Spinner';
7
+ export type { DialSpinnerProps } from './components/Spinner/Spinner';
8
+ export { DialProgressBar, DialProgressBarSize, } from './components/ProgressBar/ProgressBar';
9
+ export type { DialProgressBarProps } from './components/ProgressBar/ProgressBar';
10
+ export { DialPagination } from './components/Pagination/Pagination';
11
+ export type { DialPaginationProps } from './components/Pagination/Pagination';
6
12
  export { DialCheckbox } from './components/Checkbox/Checkbox';
7
13
  export { DialSteps } from './components/Steps/Steps';
8
14
  export { DialRadioButton } from './components/RadioButton/RadioButton';
@@ -29,10 +35,13 @@ export { DialBreadcrumbItem } from './components/Breadcrumb/BreadcrumbItem';
29
35
  export { DialButton } from './components/Button/Button';
30
36
  export { DialIconButton } from './components/IconButton/IconButton';
31
37
  export type { DialIconButtonProps } from './components/IconButton/IconButton';
32
- export { DialErrorButton, DialNeutralButton, DialPrimaryButton, DialGhostButton, DialLinkButton, } from './components/Button/ButtonWrappers';
33
- export { DialErrorIconButton, DialGhostIconButton, DialNeutralIconButton, DialPrimaryIconButton, DialSecondaryIconButton, DialSuccessIconButton, DialTertiaryIconButton, } from './components/IconButton/IconButtonWrappers';
38
+ export { DialDangerButton, DialNeutralButton, DialPrimaryButton, DialGhostButton, DialLinkButton, DialRoundedButton, } from './components/Button/ButtonWrappers';
39
+ export type { DialRoundedButtonProps } from './components/Button/ButtonWrappers';
40
+ export { DialDangerIconButton, DialGhostIconButton, DialNeutralIconButton, DialPrimaryIconButton, DialSecondaryIconButton, DialSuccessIconButton, DialTertiaryIconButton, } from './components/IconButton/IconButtonWrappers';
34
41
  export { DialCloseButton } from './components/CloseButton/CloseButton';
35
42
  export { DialRemoveButton } from './components/RemoveButton/RemoveButton';
43
+ export { DialFabButton } from './components/FabButton/FabButton';
44
+ export type { DialFabButtonProps } from './components/FabButton/FabButton';
36
45
  export { DialTextarea } from './components/Textarea/Textarea';
37
46
  export { DialTooltip } from './components/Tooltip/Tooltip';
38
47
  export { DialSwitch } from './components/Switch/Switch';
@@ -55,11 +64,13 @@ export { DialLoadFileArea } from './components/LoadFileArea/LoadFileArea';
55
64
  export { DialLoadFileAreaField } from './components/LoadFileArea/LoadFileAreaField';
56
65
  export { DialDropdown } from './components/Dropdown/Dropdown';
57
66
  export { DialButtonDropdown } from './components/ButtonDropdown/ButtonDropdown';
67
+ export { DialDropdownIcon } from './components/DropdownIcon/DropdownIcon';
68
+ export type { DialDropdownIconProps } from './components/DropdownIcon/DropdownIcon';
58
69
  export { DialFileManager } from './components/FileManager/FileManager';
59
70
  export type { FileManagerGridRow } from './components/FileManager/FileManagerContext';
60
71
  export type { GridOptions, ToolbarOptions, BulkActionsToolbarOptions, } from './components/FileManager/FileManager';
61
72
  export { DialDestinationFolderPopup } from './components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup';
62
- export { AlertVariant } from './types/alert';
73
+ export { NotificationVariant } from './types/notification.ts';
63
74
  export { ButtonVariant, ButtonAppearance } from './types/button';
64
75
  export { RadioGroupOrientation } from './types/radio-group';
65
76
  export { PopupSize } from './types/popup';
@@ -100,3 +111,5 @@ export { NOT_ALLOWED_SYMBOLS, NOT_ALLOWED_SPACES, NOT_ALLOWED_SYMBOLS_REGEXP, NO
100
111
  export { DialSchemaRenderer } from './components/SchemaRenderer/SchemaRenderer';
101
112
  export { SchemaRendererVariant, SchemaDisplayMode, SchemaOrientation, JsonSchemaType, } from './components/SchemaRenderer/types';
102
113
  export type { DialSchemaRendererProps, JsonSchema, JsonSchemaDef, ValidationError, } from './components/SchemaRenderer/types';
114
+ export declare const LazyDialJsonEditor: () => Promise<typeof import("./components/JsonEditor/JsonEditor")>;
115
+ export declare const LazyDialMarkdownEditor: () => Promise<typeof import("./components/MarkdownEditor/MarkdownEditor")>;
@@ -5,6 +5,12 @@ export interface PropEntry {
5
5
  defaultValue?: string;
6
6
  description?: string;
7
7
  }
8
+ export interface LazyComponentEntry {
9
+ loaderExportName: string;
10
+ packageImport: string;
11
+ ssr: false;
12
+ nextDynamicExample: string;
13
+ }
8
14
  export interface ComponentEntry {
9
15
  name: string;
10
16
  category: string;
@@ -12,6 +18,7 @@ export interface ComponentEntry {
12
18
  props: PropEntry[];
13
19
  examples: string[];
14
20
  sourceFile: string;
21
+ lazy?: LazyComponentEntry;
15
22
  }
16
23
  export interface TypeMember {
17
24
  name: string;
@@ -12,4 +12,5 @@ export interface DropdownItem {
12
12
  key: string;
13
13
  domEvent: MouseEvent;
14
14
  }) => void;
15
+ children?: DropdownItem[];
15
16
  }
@@ -5,4 +5,5 @@ export interface SelectOption {
5
5
  description?: string;
6
6
  disabled?: boolean;
7
7
  icon?: ReactNode;
8
+ children?: SelectOption[];
8
9
  }
@@ -1,8 +1,8 @@
1
1
  export declare enum ButtonVariant {
2
2
  Primary = "primary",
3
3
  Neutral = "neutral",
4
- Error = "error",
5
- Success = "Success",
4
+ Danger = "danger",
5
+ Success = "success",
6
6
  Secondary = "secondary",
7
7
  Tertiary = "tertiary"
8
8
  }
@@ -38,6 +38,15 @@ export declare enum FileManagerRenameTriggerView {
38
38
  Tree = "tree",
39
39
  Grid = "grid"
40
40
  }
41
+ export declare enum FileManagerCreateFolderTriggerView {
42
+ Tree = "tree",
43
+ Grid = "grid"
44
+ }
45
+ export declare enum FileManagerCreateFolderType {
46
+ Folder = "folder",
47
+ Child = "child",
48
+ Sibling = "sibling"
49
+ }
41
50
  export declare enum FileManagerColumnKey {
42
51
  Name = "name",
43
52
  UpdatedAt = "updatedAt",
@@ -0,0 +1,7 @@
1
+ export declare enum NotificationVariant {
2
+ Info = "info",
3
+ Success = "success",
4
+ Warning = "warning",
5
+ Error = "error",
6
+ Loading = "loading"
7
+ }
@@ -2,10 +2,10 @@ import { ScreenType } from '../types/screen';
2
2
  /**
3
3
  * Checks if the current viewport width is within the "medium" (tablet) screen range.
4
4
  *
5
- * Specifically, it returns `true` if the window width is less than 1024 pixels.
5
+ * Specifically, it returns `true` if the window width is less than 1280 pixels.
6
6
  * Safely handles server-side rendering by verifying that `window` is defined.
7
7
  *
8
- * @returns {boolean} `true` if the viewport width is less than 1024px, otherwise `false`.
8
+ * @returns {boolean} `true` if the viewport width is less than 1279px, otherwise `false`.
9
9
  *
10
10
  * @example
11
11
  * if (isMediumScreen()) {
@@ -0,0 +1,51 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Shared floating state for right-side submenus.
4
+ * Handles open state, Floating UI positioning and hover/dismiss/role interactions.
5
+ */
6
+ export declare function useSubMenuFloating(gap: number, ariaRole?: 'menu' | 'listbox', disabled?: boolean): {
7
+ isOpen: boolean;
8
+ refs: {
9
+ reference: import('react').MutableRefObject<import('@floating-ui/react-dom').ReferenceType | null>;
10
+ floating: React.MutableRefObject<HTMLElement | null>;
11
+ setReference: (node: import('@floating-ui/react-dom').ReferenceType | null) => void;
12
+ setFloating: (node: HTMLElement | null) => void;
13
+ } & import('@floating-ui/react').ExtendedRefs<import('@floating-ui/react').ReferenceType>;
14
+ floatingStyles: import('react').CSSProperties;
15
+ context: {
16
+ placement: import('@floating-ui/utils').Placement;
17
+ strategy: import('@floating-ui/utils').Strategy;
18
+ x: number;
19
+ y: number;
20
+ middlewareData: import('@floating-ui/core').MiddlewareData;
21
+ isPositioned: boolean;
22
+ update: () => void;
23
+ floatingStyles: React.CSSProperties;
24
+ open: boolean;
25
+ onOpenChange: (open: boolean, event?: Event, reason?: import('@floating-ui/react').OpenChangeReason) => void;
26
+ events: import('@floating-ui/react').FloatingEvents;
27
+ dataRef: React.MutableRefObject<import('@floating-ui/react').ContextData>;
28
+ nodeId: string | undefined;
29
+ floatingId: string | undefined;
30
+ refs: import('@floating-ui/react').ExtendedRefs<import('@floating-ui/react').ReferenceType>;
31
+ elements: import('@floating-ui/react').ExtendedElements<import('@floating-ui/react').ReferenceType>;
32
+ };
33
+ getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
34
+ getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
35
+ };
36
+ interface SubMenuPanelProps {
37
+ refs: ReturnType<typeof useSubMenuFloating>['refs'];
38
+ floatingStyles: ReturnType<typeof useSubMenuFloating>['floatingStyles'];
39
+ context: ReturnType<typeof useSubMenuFloating>['context'];
40
+ getFloatingProps: ReturnType<typeof useSubMenuFloating>['getFloatingProps'];
41
+ role: 'menu' | 'listbox';
42
+ /** Extra classes appended to the default floating container classes. */
43
+ className?: string;
44
+ children: ReactNode;
45
+ }
46
+ /**
47
+ * Shared floating panel wrapper (FloatingPortal → FloatingFocusManager → container div).
48
+ * Used by DropdownSubMenuItem and SelectSubMenuItem.
49
+ */
50
+ export declare const SubMenuPanel: ({ refs, floatingStyles, context, getFloatingProps, role, className, children, }: SubMenuPanelProps) => import("react/jsx-runtime").JSX.Element;
51
+ export {};
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-ui-kit",
3
- "version": "0.10.0-dev.9",
3
+ "version": "0.11.0-dev.11",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "description": "A modern UI kit for building AI DIAL interfaces with React",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/epam/ai-dial-ui-kit.git"
10
+ },
7
11
  "types": "dist/src/index.d.ts",
8
12
  "engines": {
9
13
  "node": ">=22.2.0",
@@ -21,7 +25,7 @@
21
25
  }
22
26
  },
23
27
  "bin": {
24
- "ai-dial-ui-kit-mcp": "./dist/mcp-server.cjs"
28
+ "ai-dial-ui-kit-mcp": "dist/mcp-server.cjs"
25
29
  },
26
30
  "files": [
27
31
  "dist"
@@ -52,8 +56,8 @@
52
56
  "build-storybook": "concurrently \"npm run build-storybook:css\" \"storybook build\"",
53
57
  "build-storybook:css": "tailwindcss -m -i ./src/styles/tailwind-entry.scss -o ./src/index.css",
54
58
  "prepare": "husky",
55
- "publish": "node tools/publish-lib.mjs",
56
- "publish:dry": "node tools/publish-lib.mjs --output-style=static --dry",
59
+ "publish:npm": "npm publish --access public",
60
+ "publish:dry": "npm publish --access public --dry-run",
57
61
  "test": "vitest --coverage",
58
62
  "storybook-docs": "storybook dev --docs",
59
63
  "build-storybook-docs": "storybook build --docs"
@@ -143,4 +147,4 @@
143
147
  "vite-plugin-svgr": "^4.5.0",
144
148
  "vitest": "^3.2.4"
145
149
  }
146
- }
150
+ }
@@ -1,8 +0,0 @@
1
- import { AlertVariant } from '../../types/alert';
2
- import { ReactNode } from '@tabler/icons-react';
3
- export declare const variantIcons: (props: {
4
- size: number;
5
- stroke: number;
6
- }) => Record<AlertVariant, ReactNode>;
7
- export declare const alertVariantClassNameMap: Record<AlertVariant, string>;
8
- export declare const alertBaseClassName = "items-center justify-between gap-2 p-3 border border-solid dial-small-text-150 rounded flex";
@@ -1,6 +0,0 @@
1
- export declare enum AlertVariant {
2
- Info = "info",
3
- Success = "success",
4
- Warning = "warning",
5
- Error = "error"
6
- }