@epam/ai-dial-ui-kit 0.5.0-rc.1 → 0.5.0-rc.100

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 (118) hide show
  1. package/README.md +3 -3
  2. package/dist/dial-ui-kit.cjs.js +62 -2
  3. package/dist/dial-ui-kit.es.js +47738 -5107
  4. package/dist/index.css +2 -2
  5. package/dist/src/components/Alert/Alert.d.ts +7 -3
  6. package/dist/src/components/Alert/constants.d.ts +7 -4
  7. package/dist/src/components/AutocompleteInput/AutocompleteInput.d.ts +10 -10
  8. package/dist/src/components/AutocompleteInput/AutocompleteInputValue.d.ts +6 -6
  9. package/dist/src/components/Breadcrumb/Breadcrumb.d.ts +8 -8
  10. package/dist/src/components/Breadcrumb/BreadcrumbItem.d.ts +2 -2
  11. package/dist/src/components/Breadcrumb/constants.d.ts +10 -10
  12. package/dist/src/components/Button/Button.d.ts +10 -18
  13. package/dist/src/components/Checkbox/Checkbox.d.ts +3 -4
  14. package/dist/src/components/CloseButton/CloseButton.d.ts +5 -3
  15. package/dist/src/components/CollapsibleSidebar/CollapsibleSidebar.d.ts +6 -6
  16. package/dist/src/components/ConfirmationPopup/ConfirmationPopup.d.ts +3 -3
  17. package/dist/src/components/ConfirmationPopup/constants.d.ts +3 -3
  18. package/dist/src/components/DraggableItem/DraggableItem.d.ts +8 -8
  19. package/dist/src/components/DraggableItem/constants.d.ts +2 -2
  20. package/dist/src/components/Dropdown/Dropdown.d.ts +4 -2
  21. package/dist/src/components/Dropdown/constants.d.ts +7 -7
  22. package/dist/src/components/EllipsisTooltip/EllipsisTooltip.d.ts +6 -4
  23. package/dist/src/components/EllipsisTooltip/constants.d.ts +1 -1
  24. package/dist/src/components/Field/Field.d.ts +4 -6
  25. package/dist/src/components/FileIcon/FileIcon.d.ts +2 -2
  26. package/dist/src/components/FileManager/FileManager.d.ts +93 -11
  27. package/dist/src/components/FileManager/FileManagerContext.d.ts +61 -5
  28. package/dist/src/components/FileManager/FileManagerProvider.d.ts +1 -0
  29. package/dist/src/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.d.ts +92 -0
  30. package/dist/src/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.d.ts +4 -1
  31. package/dist/src/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.d.ts +56 -0
  32. package/dist/src/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.test.d.ts +1 -0
  33. package/dist/src/components/FileManager/components/FileManagerBulkActionsToolbar/FileManagerBulkActionsToolbar.d.ts +5 -3
  34. package/dist/src/components/FileManager/components/FileManagerItemIcon/FileManagerItemIcon.d.ts +1 -1
  35. package/dist/src/components/FileManager/components/FileManagerItemName/FileManagerItemName.d.ts +2 -1
  36. package/dist/src/components/FileManager/components/FileManagerItemNameInput/FileManagerItemNameInput.d.ts +4 -2
  37. package/dist/src/components/FileManager/components/FileManagerNavigationPanel/FileManagerNavigationPanel.d.ts +13 -11
  38. package/dist/src/components/FileManager/components/FileManagerNavigationPanel/constants.d.ts +3 -3
  39. package/dist/src/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.d.ts +13 -13
  40. package/dist/src/components/FileManager/components/FileMetadataPopup/FileMetadataPopup.d.ts +50 -0
  41. package/dist/src/components/FileManager/components/FileMetadataPopup/constants.d.ts +6 -0
  42. package/dist/src/components/FileManager/components/FoldersTree/FoldersTree.d.ts +9 -1
  43. package/dist/src/components/FileManager/components/FoldersTree/hooks/use-expanded-paths.d.ts +13 -0
  44. package/dist/src/components/FileManager/constants.d.ts +15 -7
  45. package/dist/src/components/FileManager/hooks/__tests__/use-conflict-resolution.spec.d.ts +1 -0
  46. package/dist/src/components/FileManager/hooks/__tests__/use-file-upload.spec.d.ts +1 -0
  47. package/dist/src/components/FileManager/hooks/__tests__/use-trigger-view-rename.spec.d.ts +1 -0
  48. package/dist/src/components/FileManager/hooks/use-bulk-actions.d.ts +22 -0
  49. package/dist/src/components/FileManager/hooks/use-conflict-resolution.d.ts +26 -0
  50. package/dist/src/components/FileManager/hooks/use-file-clipboard.d.ts +18 -4
  51. package/dist/src/components/FileManager/hooks/use-file-delete.d.ts +3 -2
  52. package/dist/src/components/FileManager/hooks/use-file-download.d.ts +2 -1
  53. package/dist/src/components/FileManager/hooks/use-file-metadata.d.ts +10 -0
  54. package/dist/src/components/FileManager/hooks/use-file-upload.d.ts +43 -0
  55. package/dist/src/components/FileManager/hooks/use-folder-creation.d.ts +21 -0
  56. package/dist/src/components/FileManager/hooks/use-grid-actions-column.d.ts +10 -0
  57. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +24 -0
  58. package/dist/src/components/FileManager/hooks/use-item-renaming.d.ts +11 -4
  59. package/dist/src/components/FileManager/hooks/use-new-actions.d.ts +16 -0
  60. package/dist/src/components/FileManager/hooks/use-tree-additional-buttons.d.ts +22 -0
  61. package/dist/src/components/FileManager/hooks/use-trigger-view-rename.d.ts +20 -0
  62. package/dist/src/components/FileManager/utils.d.ts +33 -0
  63. package/dist/src/components/FileName/FileName.d.ts +19 -5
  64. package/dist/src/components/FolderName/FolderName.d.ts +6 -3
  65. package/dist/src/components/FormItem/FormItem.d.ts +9 -9
  66. package/dist/src/components/FormItem/constants.d.ts +1 -1
  67. package/dist/src/components/FormPopup/FormPopup.d.ts +1 -1
  68. package/dist/src/components/FormPopup/constants.d.ts +1 -1
  69. package/dist/src/components/Grid/Grid.d.ts +23 -5
  70. package/dist/src/components/Grid/constants.d.ts +1 -1
  71. package/dist/src/components/Grid/hooks/use-grid-selection.d.ts +7 -4
  72. package/dist/src/components/Grid/renderers/DateCellRenderer.d.ts +3 -3
  73. package/dist/src/components/Grid/renderers/constants.d.ts +1 -1
  74. package/dist/src/components/Icon/Icon.d.ts +0 -1
  75. package/dist/src/components/Input/Input.d.ts +4 -4
  76. package/dist/src/components/InputField/InputField.d.ts +3 -3
  77. package/dist/src/components/InputPopup/InputPopup.d.ts +6 -6
  78. package/dist/src/components/Loader/Loader.d.ts +5 -5
  79. package/dist/src/components/Loader/constants.d.ts +2 -2
  80. package/dist/src/components/NoDataContent/NoDataContent.d.ts +6 -3
  81. package/dist/src/components/PasswordInput/PasswordInputField.d.ts +1 -1
  82. package/dist/src/components/Popup/Popup.d.ts +6 -6
  83. package/dist/src/components/Popup/constants.d.ts +3 -3
  84. package/dist/src/components/RadioButton/RadioButton.d.ts +6 -6
  85. package/dist/src/components/RadioGroup/RadioGroup.d.ts +20 -20
  86. package/dist/src/components/RadioGroup/constants.d.ts +3 -3
  87. package/dist/src/components/RadioGroupPopupField/RadioGroupPopupField.d.ts +2 -2
  88. package/dist/src/components/RemoveButton/RemoveButton.d.ts +6 -8
  89. package/dist/src/components/ResizableContainer/ConditionalResizableContainer.d.ts +33 -0
  90. package/dist/src/components/ResizableContainer/ResizableContainer.d.ts +69 -0
  91. package/dist/src/components/ResizableContainer/components/ResizeHandle.d.ts +10 -0
  92. package/dist/src/components/ResizableContainer/components/ResizeIcon.d.ts +8 -0
  93. package/dist/src/components/Search/Search.d.ts +7 -4
  94. package/dist/src/components/Search/constants.d.ts +4 -4
  95. package/dist/src/components/Select/Select.d.ts +9 -3
  96. package/dist/src/components/Select/constants.d.ts +7 -6
  97. package/dist/src/components/SelectField/SelectField.d.ts +6 -6
  98. package/dist/src/components/SharedEntityIndicator/SharedEntityIndicator.d.ts +2 -2
  99. package/dist/src/components/Skeleton/Skeleton.d.ts +77 -0
  100. package/dist/src/components/Skeleton/utils.d.ts +2 -0
  101. package/dist/src/components/Tab/Tab.d.ts +4 -4
  102. package/dist/src/components/Tabs/Tabs.d.ts +9 -9
  103. package/dist/src/components/Tag/Tag.d.ts +2 -2
  104. package/dist/src/components/TextAreaField/TextAreaField.d.ts +3 -3
  105. package/dist/src/components/Textarea/Textarea.d.ts +4 -4
  106. package/dist/src/hooks/use-width-breakpoint.d.ts +23 -0
  107. package/dist/src/index.d.ts +9 -2
  108. package/dist/src/models/breadcrumb.d.ts +1 -1
  109. package/dist/src/models/dropdown.d.ts +1 -0
  110. package/dist/src/models/file-manager.d.ts +18 -0
  111. package/dist/src/models/file.d.ts +2 -1
  112. package/dist/src/models/tab.d.ts +2 -1
  113. package/dist/src/types/dropdown.d.ts +2 -1
  114. package/dist/src/types/file-manager.d.ts +28 -11
  115. package/dist/src/types/resizable-container.d.ts +4 -0
  116. package/dist/src/types/skeleton.d.ts +15 -0
  117. package/dist/src/types/tab.d.ts +1 -1
  118. package/package.json +13 -12
@@ -1,6 +1,39 @@
1
1
  import { DialFile } from '../../models/file';
2
+ export declare const findNodeByPath: (nodes: DialFile[] | undefined, path: string) => DialFile | undefined;
2
3
  export declare const findFolderForPath: (root: DialFile[] | undefined, path?: string) => DialFile | undefined;
3
4
  export declare const normalizeToLowerCase: (input?: string) => string;
4
5
  export declare const normalizeExtensionWithoutDot: (input?: string) => string;
5
6
  export declare const collectAllDescendants: (folder?: DialFile) => DialFile[];
6
7
  export declare const isHiddenDotFile: (node: DialFile) => boolean;
8
+ /**
9
+ * Formats bytes into a short, human-readable string.
10
+ *
11
+ * @param bytes - Number of bytes to format
12
+ * @returns Formatted string (e.g., "15.0 MB", "150 KB", "512 bytes")
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * formatBytes(2150) // "2 KB"
17
+ * formatBytes(15728640) // "15.0 MB"
18
+ * formatBytes(512) // "512 bytes"
19
+ * ```
20
+ */
21
+ export declare const formatBytes: (bytes?: number) => string;
22
+ /**
23
+ * Formats date string into a localized date string.
24
+ *
25
+ * @param date - ISO date string or any valid date string
26
+ * @param locale - BCP 47 language tag (e.g., 'en-US', 'ru-RU')
27
+ * @param options - Intl.DateTimeFormat options
28
+ * @returns Formatted date string or original string if formatting fails
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * formatDate('2025-09-05T10:30:00Z', 'en-US', { year: 'numeric', month: 'short', day: '2-digit' })
33
+ * // "Sep 05, 2025"
34
+ *
35
+ * formatDate('2025-09-05T10:30:00Z', 'ru-RU', { year: 'numeric', month: 'long', day: 'numeric' })
36
+ * // "5 сентября 2025 г."
37
+ * ```
38
+ */
39
+ export declare const formatDate: (date?: string, locale?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions) => string;
@@ -1,20 +1,34 @@
1
- import { FC } from 'react';
1
+ import { FC, ReactNode } from 'react';
2
2
  export interface DialFileNameProps {
3
3
  name: string;
4
- cssClass?: string;
4
+ className?: string;
5
5
  shared?: boolean;
6
+ iconSize?: number;
7
+ details?: ReactNode;
6
8
  }
7
9
  /**
8
10
  * Component to display a file name with a file icon and shared indicator.
9
11
  * Handles long names with ellipsis and tooltip.
10
12
  *
13
+ * If `details` is provided (e.g., file size, date), the component switches to
14
+ * a vertical layout and renders the extra information below the file name.
15
+ *
11
16
  * @example
12
17
  * ```tsx
18
+ * // Without details
13
19
  * <DialFileName name="Document.pdf" />
20
+ *
21
+ * // With details (file size and updated date)
22
+ * <DialFileName
23
+ * name="Document.pdf"
24
+ * details={<span className="text-secondary">24 KB · Jul 20, 2025</span>}
25
+ * />
14
26
  * ```
15
27
  *
16
- * @param name - Full file name with or without extension
17
- * @param cssClass - Additional CSS classes for the root container
18
- * @param shared - Whether the file is shared
28
+ * @param name - Full file name with or without extension.
29
+ * @param className - Additional CSS classes for the root container.
30
+ * @param shared - Whether the file is shared.
31
+ * @param iconSize - Icon size in px. Default: BASE_ICON_SIZE.
32
+ * @param details - Optional metadata block displayed under the file name (e.g., size, modified date).
19
33
  */
20
34
  export declare const DialFileName: FC<DialFileNameProps>;
@@ -1,9 +1,10 @@
1
1
  import { FC } from 'react';
2
2
  export interface DialFolderNameProps {
3
3
  name: string;
4
- cssClass?: string;
4
+ className?: string;
5
5
  shared?: boolean;
6
6
  loading?: boolean;
7
+ iconSize?: number;
7
8
  }
8
9
  /**
9
10
  * Component to display a folder name with a folder icon and shared indicator.
@@ -15,7 +16,9 @@ export interface DialFolderNameProps {
15
16
  * ```
16
17
  *
17
18
  * @param name - Folder name
18
- * @param cssClass - Additional CSS classes for the root container
19
- * @param shared - Whether the folder is shared
19
+ * @param className - Additional CSS classes for the root container
20
+ * @param shared - If true, shows shared indicator. Default: false.
21
+ * @param loading - If true, shows loading state. Default: false.
22
+ * @param iconSize - Icon size in px. Default: BASE_ICON_SIZE.
20
23
  */
21
24
  export declare const DialFolderName: FC<DialFolderNameProps>;
@@ -3,10 +3,10 @@ import { DialFormItemBaseProps } from '../../types/form-item';
3
3
  export interface DialFormItemProps extends DialFormItemBaseProps {
4
4
  elementId: string;
5
5
  labelVisuallyHidden?: boolean;
6
- cssClass?: string;
7
- childrenCssClass?: string;
8
- labelCssClass?: string;
9
- errorCssClass?: string;
6
+ className?: string;
7
+ childrenClassName?: string;
8
+ labelClassName?: string;
9
+ errorClassName?: string;
10
10
  children: ReactNode;
11
11
  value?: ReactNode | string;
12
12
  defaultEmptyText?: string;
@@ -22,7 +22,7 @@ export interface DialFormItemProps extends DialFormItemBaseProps {
22
22
  *
23
23
  * @example
24
24
  * ```tsx
25
- * <DialFormItem elementId="transport" label="Transport" cssClass="w-[320px]">
25
+ * <DialFormItem elementId="transport" label="Transport" className="w-[320px]">
26
26
  * <DialSelect
27
27
  * elementId="transport"
28
28
  * value={transport}
@@ -53,10 +53,10 @@ export interface DialFormItemProps extends DialFormItemBaseProps {
53
53
  *
54
54
  * @param elementId - Unique identifier for the form control element (used for accessibility)
55
55
  * @param labelVisuallyHidden - Whether to visually hide the label (still accessible to screen readers, default: false)
56
- * @param cssClass - Additional CSS classes to apply to the container div
57
- * @param childrenCssClass - Additional CSS classes to apply to the children container div
58
- * @param labelCssClass - Additional CSS classes to apply to the label element
59
- * @param errorCssClass - Additional CSS classes to apply to the error message element
56
+ * @param className - Additional CSS classes to apply to the container div
57
+ * @param childrenClassName - Additional CSS classes to apply to the children container div
58
+ * @param labelClassName - Additional CSS classes to apply to the label element
59
+ * @param errorClassName - Additional CSS classes to apply to the error message element
60
60
  * @param children - The form control element(s) to render inside the DialFormItem
61
61
  * @param value - The current value of the form control (for readonly mode)
62
62
  * @param defaultEmptyText - Text to display when readonly and value is empty (default: "None")
@@ -1,3 +1,3 @@
1
1
  import { FormItemOrientation } from '../../types/form-item';
2
- export declare const containerBaseClasses = "w-full flex";
2
+ export declare const containerBaseClassName = "w-full flex";
3
3
  export declare const orientationClassMap: Record<FormItemOrientation, string>;
@@ -32,7 +32,7 @@ export interface DialFormPopupProps extends DialPopupProps {
32
32
  * @param [cancelLabel="Cancel"] - Label for the cancel button
33
33
  * @param [isLoading=false] - Shows loader placeholder and hides actions
34
34
  * @param [disableSubmitButton=false] - Disables the submit button
35
- * @param [cssClass] - Extra classes for the popup container
35
+ * @param [className] - Extra classes for the popup container
36
36
  * @param [submitClassName] - Extra classes merged into the submit button
37
37
  * @param onClose - Fired on close
38
38
  * @param onSubmit - Fired on submit
@@ -1,3 +1,3 @@
1
1
  export declare const defaultSubmitLabel = "Create";
2
2
  export declare const defaultCancelLabel = "Cancel";
3
- export declare const actionsBaseClasses = "flex items-center justify-end gap-2 px-6 py-3";
3
+ export declare const actionsBaseClassName = "flex items-center justify-end gap-2 px-6 py-3";
@@ -6,18 +6,24 @@ export interface DialGridProps<T extends object = Record<string, unknown>> {
6
6
  rowData?: T[];
7
7
  additionalGridOptions?: GridOptions<T>;
8
8
  getContextMenuItems?: (row: T) => DropdownItem[];
9
- cssClass?: string;
9
+ className?: string;
10
10
  ariaLabel?: string;
11
11
  withSelectionColumn?: boolean;
12
12
  wrapCustomCellRenderers?: boolean | ((col: ColDef<T>) => boolean);
13
13
  selectedRowIds?: Set<string>;
14
+ selectedRows?: Map<string, T>;
15
+ selectionOnHover?: boolean;
14
16
  onSelectionChange?: (selectedRowIds: Set<string>, selectedRows: T[]) => void;
17
+ onSelectionChangeWithMap?: (selectedRows: Map<string, T>) => void;
15
18
  getRowId?: (row: T) => string;
16
19
  alternateOddRowColors?: boolean;
17
20
  filterPlaceholder?: string;
18
21
  emptyStateIcon?: ReactNode;
19
22
  emptyStateTitle?: string;
20
23
  emptyStateDescription?: string;
24
+ loading?: boolean;
25
+ wrapperBorder?: boolean;
26
+ withoutHeaderBorders?: boolean;
21
27
  }
22
28
  /**
23
29
  * DialGrid — A feature-rich data grid wrapper built on ag-Grid with dark theme support.
@@ -30,6 +36,7 @@ export interface DialGridProps<T extends object = Record<string, unknown>> {
30
36
  * - Controlled or uncontrolled selection modes
31
37
  * - Automatic column sizing and responsive behavior
32
38
  * - Full accessibility support with ARIA attributes
39
+ * - Loading state with native AG-Grid overlay
33
40
  *
34
41
  * @example
35
42
  * ```tsx
@@ -48,7 +55,13 @@ export interface DialGridProps<T extends object = Record<string, unknown>> {
48
55
  * <DialGrid<Product>
49
56
  * columnDefs={columns}
50
57
  * rowData={products}
51
- * storageKey="products-grid"
58
+ * />
59
+ *
60
+ * // With loading state
61
+ * <DialGrid<Product>
62
+ * columnDefs={columns}
63
+ * rowData={products}
64
+ * loading={true}
52
65
  * />
53
66
  *
54
67
  * // With context menu
@@ -81,11 +94,13 @@ export interface DialGridProps<T extends object = Record<string, unknown>> {
81
94
  * @param [rowData] - Array of data objects to display in the grid
82
95
  * @param [additionalGridOptions] - Additional ag-Grid GridOptions to merge with defaults
83
96
  * @param [getContextMenuItems] - Function returning context menu items for a given row
84
- * @param [cssClass] - Additional CSS classes to apply to the grid container
97
+ * @param [className] - Additional CSS classes to apply to the grid container
85
98
  * @param [ariaLabel='Data grid'] - Accessible label for the grid region
86
99
  * @param [withSelectionColumn=true] - Whether to show the checkbox selection column
87
100
  * @param [wrapCustomCellRenderers=true] - Whether to wrap custom cell renderers with context menu support
88
101
  * @param [selectedRowIds] - Controlled selection: set of row IDs that should be selected
102
+ * @param [selectedRows] - Controlled selection: map of row IDs to row data for selected rows
103
+ * @param [selectionOnHover=true] - Whether row selection highlights are shown on hover
89
104
  * @param [onSelectionChange] - Callback invoked when selection changes (selectedIds, selectedRows)
90
105
  * @param [getRowId] - Function to extract unique ID from a row object (defaults to 'id' field)
91
106
  * @param [alternateOddRowColors=false] - Whether to alternate background colors for odd/even rows
@@ -93,6 +108,9 @@ export interface DialGridProps<T extends object = Record<string, unknown>> {
93
108
  * @param [emptyStateIcon] - Optional icon for empty state
94
109
  * @param [emptyStateTitle] - Optional title text displayed when the grid has no rows to show.
95
110
  * @param [emptyStateDescription] - Optional description text displayed below the empty state title,
96
- * providing additional context or instructions (e.g., No data found or Try adjusting your filters).
111
+ * providing additional context or instructions (e.g., "No data found" or "Try adjusting your filters").
112
+ * @param [loading=false] - When true, shows AG-Grid's native loading overlay
113
+ * @param [wrapperBorder=true] - Whether to apply a border around the grid container
114
+ * @param [withoutHeaderBorders=false] - Whether to hide the header row borders
97
115
  */
98
- export declare const DialGrid: <T extends object>({ columnDefs, rowData, additionalGridOptions, getContextMenuItems, cssClass, ariaLabel, withSelectionColumn, wrapCustomCellRenderers, selectedRowIds, onSelectionChange, getRowId, alternateOddRowColors, filterPlaceholder, emptyStateIcon, emptyStateTitle, emptyStateDescription, }: DialGridProps<T>) => import("react/jsx-runtime").JSX.Element;
116
+ export declare const DialGrid: <T extends object>({ columnDefs, rowData, additionalGridOptions, getContextMenuItems, className, ariaLabel, withSelectionColumn, wrapCustomCellRenderers, selectedRowIds, selectedRows, selectionOnHover, onSelectionChange, onSelectionChangeWithMap, getRowId, alternateOddRowColors, filterPlaceholder, emptyStateIcon, emptyStateTitle, emptyStateDescription, loading, wrapperBorder, withoutHeaderBorders, }: DialGridProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- export declare const gridBaseClasses = "h-full";
1
+ export declare const gridBaseClassName = "h-full";
2
2
  export declare const GRID_THEME_COLORS: {
3
3
  accentColor: string;
4
4
  backgroundColor: string;
@@ -1,12 +1,15 @@
1
- export interface UseGridSelectionProps<T> {
1
+ export interface UseGridSelectionProps<T extends object> {
2
2
  selectedRowIds?: Set<string>;
3
+ selectedRows?: Map<string, T>;
3
4
  onSelectionChange?: (selectedRowIds: Set<string>, selectedRows: T[]) => void;
5
+ onSelectionChangeWithMap?: (selectedRows: Map<string, T>) => void;
4
6
  rowData?: T[];
5
7
  getRowId: (row: T) => string;
6
8
  }
7
- export declare const useGridSelection: <T extends object>({ selectedRowIds, onSelectionChange, rowData, getRowId, }: UseGridSelectionProps<T>) => {
9
+ export declare const useGridSelection: <T extends object>({ selectedRowIds, selectedRows, onSelectionChange, onSelectionChangeWithMap, rowData, getRowId, }: UseGridSelectionProps<T>) => {
8
10
  currentSelectedIds: Set<string>;
9
- handleSelectionToggle: (rowId: string, checked: boolean) => void;
11
+ currentSelectedRows: Map<string, T>;
12
+ handleSelectionToggle: (row: T, checked: boolean) => void;
10
13
  headerCheckboxState: string;
11
- handleHeaderCheckboxChange: () => void;
14
+ handleHeaderCheckboxChange: (checked?: boolean) => void;
12
15
  };
@@ -6,7 +6,7 @@ export interface DialDateCellRendererProps extends Partial<ICellRendererParams<R
6
6
  locale?: string;
7
7
  options?: Intl.DateTimeFormatOptions;
8
8
  emptyPlaceholder?: string;
9
- cssClass?: string;
9
+ className?: string;
10
10
  }
11
11
  /**
12
12
  * Minimal date cell renderer (ag-Grid compatible).
@@ -26,7 +26,7 @@ export interface DialDateCellRendererProps extends Partial<ICellRendererParams<R
26
26
  *
27
27
  * @param [locale='en-US'] - Locale fixed to U.S. English by default to enforce "Jul 20, 2025".
28
28
  * @param [options={ year: 'numeric', month: 'numeric', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', timeZone: 'UTC' }] - Options for date formatting (e.g., timeZone).
29
- * @param [emptyPlaceholder='—'] - Placeholder when value is empty/invalid.
30
- * @param [cssClass] - Additional classes merged into the wrapper.
29
+ * @param [emptyPlaceholder] - Placeholder when value is empty/invalid.
30
+ * @param [className] - Additional classes merged into the wrapper.
31
31
  */
32
32
  export declare const DialDateCellRenderer: FC<DialDateCellRendererProps>;
@@ -1,3 +1,3 @@
1
1
  export declare const DEFAULT_LOCALE = "en-US";
2
2
  export declare const DEFAULT_DATE_FORMAT_OPTIONS: Intl.DateTimeFormatOptions;
3
- export declare const dateCellBaseClasses = "text-primary";
3
+ export declare const dateCellBaseClassName = "text-primary";
@@ -2,7 +2,6 @@ import { FC, ReactNode } from 'react';
2
2
  export interface DialIconProps {
3
3
  icon?: ReactNode;
4
4
  className?: string;
5
- label?: string;
6
5
  }
7
6
  /**
8
7
  * A wrapper component for rendering icons with consistent styling
@@ -2,8 +2,8 @@ import { FC, FocusEvent, Ref } from 'react';
2
2
  import { InputBaseProps, NumberInputBaseProps } from '../../models/field-control-props';
3
3
  export interface DialInputProps extends InputBaseProps, Partial<NumberInputBaseProps> {
4
4
  type?: string;
5
- containerCssClass?: string;
6
- cssClass?: string;
5
+ containerClassName?: string;
6
+ className?: string;
7
7
  hideBorder?: boolean;
8
8
  tooltipText?: string;
9
9
  tooltipTriggerClassName?: string;
@@ -31,8 +31,8 @@ export interface DialInputProps extends InputBaseProps, Partial<NumberInputBaseP
31
31
  * - {@link NumberInputBaseProps} - Number input properties (min, max) - partial
32
32
  *
33
33
  * @param type - The HTML input type (text, password, email, number, etc.)
34
- * @param containerCssClass - Additional CSS classes to apply to the container div
35
- * @param cssClass - Additional CSS classes to apply to the input element
34
+ * @param containerClassName - Additional CSS classes to apply to the container div
35
+ * @param className - Additional CSS classes to apply to the input element
36
36
  * @param hideBorder - Whether to hide the input border styling
37
37
  * @param tooltipText - The text to display inside the tooltip. If empty, the tooltip will display the value prop.
38
38
  * @param tooltipTriggerClassName - Additional CSS classes to apply to the tooltip
@@ -5,9 +5,9 @@ export interface DialInputFieldBaseProps extends FieldControlProps, DialFormItem
5
5
  value?: string | number;
6
6
  defaultEmptyText?: string;
7
7
  errorText?: string;
8
- elementCssClass?: string;
9
- elementContainerCssClass?: string;
10
- containerCssClass?: string;
8
+ elementClassName?: string;
9
+ elementContainerClassName?: string;
10
+ containerClassName?: string;
11
11
  }
12
12
  export interface DialInputFieldProps extends DialInputFieldBaseProps, Partial<NumberInputBaseProps> {
13
13
  type: string;
@@ -5,8 +5,8 @@ export interface DialInputPopupProps {
5
5
  children: ReactNode;
6
6
  onOpen: () => void;
7
7
  disabled?: boolean;
8
- valueCssClasses?: string;
9
- inputCssClasses?: string;
8
+ valueClassName?: string;
9
+ inputClassName?: string;
10
10
  placeholder?: string;
11
11
  elementId?: string;
12
12
  errorText?: string;
@@ -26,8 +26,8 @@ export interface DialInputPopupProps {
26
26
  * emptyValueText="No value selected"
27
27
  * onOpen={() => setModalState(true)}
28
28
  * disabled={false}
29
- * valueCssClasses="custom-value-class"
30
- * inputCssClasses="custom-input-class"
29
+ * valueClassName="custom-value-class"
30
+ * inputClassName="custom-input-class"
31
31
  * elementId="input-modal"
32
32
  * errorText="This field is required"
33
33
  * >
@@ -41,8 +41,8 @@ export interface DialInputPopupProps {
41
41
  * @param children - The content to render inside the modal when it is opened.
42
42
  * @param onOpen - A callback function triggered when the modal open button is clicked.
43
43
  * @param [disabled=false] - Whether the input is disabled, preventing user interaction.
44
- * @param [valueCssClasses] - Additional CSS classes applied to the displayed value.
45
- * @param [inputCssClasses] - Additional CSS classes applied to the input container.
44
+ * @param [valueClassName] - Additional CSS classes applied to the displayed value.
45
+ * @param [inputClassName] - Additional CSS classes applied to the input container.
46
46
  * @param [elementId] - A unique identifier for the input element, useful for accessibility and testing.
47
47
  * @param [errorText] - An optional error message displayed below the input when an error state is present.
48
48
  * @param [invalid] - Whether the input is in an invalid state, affecting styling. Applyed automatically if errorText is provided.
@@ -1,8 +1,8 @@
1
1
  import { FC } from 'react';
2
2
  export interface DialLoaderProps {
3
3
  size?: number;
4
- cssClass?: string;
5
- iconClass?: string;
4
+ className?: string;
5
+ iconClassName?: string;
6
6
  fullWidth?: boolean;
7
7
  ariaLabel?: string;
8
8
  }
@@ -20,12 +20,12 @@ export interface DialLoaderProps {
20
20
  * <DialLoader fullWidth={false} />
21
21
  *
22
22
  * // Custom size and classes
23
- * <DialLoader size={24} iconClass="text-accent-primary" />
23
+ * <DialLoader size={24} iconClassName="text-accent-primary" />
24
24
  * ```
25
25
  *
26
26
  * @param [size=18] - Icon size in px
27
- * @param [cssClass] - Additional classes for the container
28
- * @param [iconClass] - Additional classes for the SVG icon
27
+ * @param [className] - Additional classes for the container
28
+ * @param [iconClassName] - Additional classes for the SVG icon
29
29
  * @param [fullWidth=true] - Stretch to full width/height of container
30
30
  * @param [ariaLabel='Loading'] - Accessible label for screen readers
31
31
  */
@@ -1,2 +1,2 @@
1
- export declare const loaderBaseClasses = "flex items-center justify-center text-secondary";
2
- export declare const loaderIconBaseClasses = "shrink-0 grow-0 basis-auto animate-spin-steps";
1
+ export declare const loaderBaseClassName = "flex items-center justify-center text-secondary";
2
+ export declare const loaderIconBaseClassName = "shrink-0 grow-0 basis-auto animate-spin-steps";
@@ -3,9 +3,9 @@ export interface DialNoDataContentProps {
3
3
  icon?: ReactNode;
4
4
  title: string;
5
5
  description?: string;
6
- containerCssClass?: string;
7
- titleCssClass?: string;
8
- descriptionCssClass?: string;
6
+ containerClassName?: string;
7
+ titleClassName?: string;
8
+ descriptionClassName?: string;
9
9
  }
10
10
  /**
11
11
  * A component for displaying a message and icon when there is no data to show.
@@ -21,5 +21,8 @@ export interface DialNoDataContentProps {
21
21
  * @param [icon] - Custom icon to display (defaults to clipboard icon)
22
22
  * @param title - The message to display when no data is present
23
23
  * @param [description] - The description to display when no data is present
24
+ * @param [containerClassName] - Additional CSS classes for the container
25
+ * @param [titleClassName] - Additional CSS classes for the title text
26
+ * @param [descriptionClassName] - Additional CSS classes for the description text
24
27
  */
25
28
  export declare const DialNoDataContent: FC<DialNoDataContentProps>;
@@ -24,6 +24,6 @@ export interface DialPasswordInputFieldProps extends DialInputFieldBaseProps {
24
24
  * @param [onChange] - Callback function called when the input value changes
25
25
  * @param [errorText] - Error message to display below the input
26
26
  * @param [optional=false] - Whether the field is optional
27
- * @param [cssClass] - Custom CSS class for the input element
27
+ * @param [className] - Custom CSS class for the input element
28
28
  */
29
29
  export declare const DialPasswordInputField: FC<DialPasswordInputFieldProps>;
@@ -4,9 +4,9 @@ export interface DialPopupProps {
4
4
  open?: boolean;
5
5
  title?: string | ReactNode;
6
6
  portalId?: string;
7
- cssClass?: string;
8
- overlayClass?: string;
9
- headingClass?: string;
7
+ className?: string;
8
+ overlayClassName?: string;
9
+ headingClassName?: string;
10
10
  dividers?: boolean;
11
11
  children?: ReactNode;
12
12
  footer?: ReactNode;
@@ -40,9 +40,9 @@ export interface DialPopupProps {
40
40
  * @param [open=false] - Controls visibility of the popup
41
41
  * @param [title] - Optional title rendered in the header
42
42
  * @param [portalId] - Optional portal container id
43
- * @param [cssClass] - Additional CSS classes applied to the popup container
44
- * @param [overlayClass] - Additional CSS classes applied to the overlay
45
- * @param [headingClass] - Additional CSS classes applied to the title element
43
+ * @param [className] - Additional CSS classes applied to the popup container
44
+ * @param [overlayClassName] - Additional CSS classes applied to the overlay
45
+ * @param [headingClassName] - Additional CSS classes applied to the title element
46
46
  * @param [dividers=true] - Whether to render separators between sections
47
47
  * @param [children] - Body content
48
48
  * @param [footer] - Footer area for actions
@@ -1,5 +1,5 @@
1
1
  import { PopupSize } from '../../types/popup';
2
- export declare const overlayBaseClasses = "z-[52] flex items-center justify-center bg-blackout md:p-4";
3
- export declare const popupDividerClasses = "divide-tertiary divide-y";
4
- export declare const popupHeaderClasses = "flex flex-row justify-between py-4 px-6 items-center";
2
+ export declare const overlayBaseClassName = "z-[52] flex items-center justify-center bg-blackout md:p-4";
3
+ export declare const popupDividerClassName = "divide-tertiary divide-y";
4
+ export declare const popupHeaderClassName = "flex flex-row justify-between py-4 px-6 items-center";
5
5
  export declare const popupSizeClassMap: Record<PopupSize, string>;
@@ -6,11 +6,11 @@ export interface DialRadioButtonProps {
6
6
  description?: ReactNode;
7
7
  checked?: boolean;
8
8
  inputId: string;
9
- cssClass?: string;
10
- labelCssClass?: string;
9
+ className?: string;
10
+ labelClassName?: string;
11
11
  disabled?: boolean;
12
12
  onChange?: (value: string) => void;
13
- descriptionCssClass?: string;
13
+ descriptionClassName?: string;
14
14
  }
15
15
  /**
16
16
  * A stylized, accessible radio input with optional description.
@@ -37,10 +37,10 @@ export interface DialRadioButtonProps {
37
37
  * @param [description] - Supporting text shown when checked
38
38
  * @param [checked=false] - Controlled checked state
39
39
  * @param inputId - ID associated with the label
40
- * @param [cssClass] - Additional classes applied to the input element
41
- * @param [labelCssClass] - Additional classes applied to the label element
40
+ * @param [className] - Additional classes applied to the input element
41
+ * @param [labelClassName] - Additional classes applied to the label element
42
42
  * @param [disabled] - Disabled state of the control
43
43
  * @param [onChange] - Callback fired with `value` when the radio is changed
44
- * @param [descriptionCssClass] - Additional classes applied to the description block
44
+ * @param [descriptionClassName] - Additional classes applied to the description block
45
45
  */
46
46
  export declare const DialRadioButton: FC<DialRadioButtonProps>;
@@ -9,16 +9,16 @@ export interface DialRadioGroupProps {
9
9
  activeRadioButton: string;
10
10
  orientation: RadioGroupOrientation;
11
11
  onChange: (radioId: string) => void;
12
- radioCssClass?: string;
13
- groupLabelCssClass?: string;
14
- labelCssClass?: string;
15
- containerCssClass?: string;
16
- formItemChildrenCssClass?: string;
17
- selectedItemCssClass?: string;
18
- selectedLabelCssClass?: string;
19
- radioGroupCssClass?: string;
20
- inputContainerCssClass?: string;
21
- selectedInputContainerCssClass?: string;
12
+ radioClassName?: string;
13
+ groupLabelClassName?: string;
14
+ labelClassName?: string;
15
+ containerClassName?: string;
16
+ formItemChildrenClassName?: string;
17
+ selectedItemClassName?: string;
18
+ selectedLabelClassName?: string;
19
+ radioGroupClassName?: string;
20
+ inputContainerClassName?: string;
21
+ selectedInputContainerClassName?: string;
22
22
  }
23
23
  /**
24
24
  * Groups multiple `DialRadio` options and renders custom content for the active option.
@@ -43,16 +43,16 @@ export interface DialRadioGroupProps {
43
43
  *
44
44
  * @param [fieldTitle] - Optional label rendered by `DialField`
45
45
  * @param elementId - Name for the underlying radio group; also used for input `name`
46
- * @param [radioCssClass] - Additional classes applied to each radio input
47
- * @param [inputContainerCssClass] - Additional classes applied to each radio input's container
48
- * @param [selectedInputContainerCssClass] - Additional classes applied to the selected radio input's container
49
- * @param [groupLabelCssClass] - Optional classes applied to the group label. If not provided, `labelCssClass` will be used.
50
- * @param [formItemChildrenCssClass] - Additional classes applied to the DialFormItem's children container
51
- * @param [labelCssClass] - Additional classes applied to each radio label
52
- * @param [containerCssClass] - Additional classes applied to the outer container
53
- * @param [selectedItemCssClass] - Additional classes applied to the selected option's content container
54
- * @param [selectedLabelCssClass] - Additional classes applied to the selected option's label
55
- * @param [radioGroupCssClass] - Additional classes applied to the radio group container
46
+ * @param [radioClassName] - Additional classes applied to each radio input
47
+ * @param [inputContainerClassName] - Additional classes applied to each radio input's container
48
+ * @param [selectedInputContainerClassName] - Additional classes applied to the selected radio input's container
49
+ * @param [groupLabelClassName] - Optional classes applied to the group label. If not provided, `labelClassName` will be used.
50
+ * @param [formItemChildrenClassName] - Additional classes applied to the DialFormItem's children container
51
+ * @param [labelClassName] - Additional classes applied to each radio label
52
+ * @param [containerClassName] - Additional classes applied to the outer container
53
+ * @param [selectedItemClassName] - Additional classes applied to the selected option's content container
54
+ * @param [selectedLabelClassName] - Additional classes applied to the selected option's label
55
+ * @param [radioGroupClassName] - Additional classes applied to the radio group container
56
56
  * @param [disabled] - Disables all child radios when set
57
57
  * @param radioButtons - Array of options with ids, labels, and optional content
58
58
  * @param activeRadioButton - The id of the currently selected radio
@@ -1,5 +1,5 @@
1
1
  import { RadioGroupOrientation } from '../../types/radio-group';
2
- export declare const groupBaseClasses = "flex flex-col gap-2";
3
- export declare const optionsWrapperBaseClasses = "flex";
4
- export declare const selectedContentClasses = "pb-1 mt-2";
2
+ export declare const groupBaseClassName = "flex flex-col gap-2";
3
+ export declare const optionsWrapperBaseClassName = "flex";
4
+ export declare const selectedContentClassName = "pb-1 mt-2";
5
5
  export declare const orientationClassMap: Record<RadioGroupOrientation, string>;
@@ -51,8 +51,8 @@ export interface RadioGroupPopupFieldProps extends Pick<DialFieldLabelProps, 'fi
51
51
  * @param [selectedValue] - Current value id used to resolve the displayed option name
52
52
  * @param radioButtons - Collection of radio options (id/name)
53
53
  * @param [customInputValue] - Custom value text to display instead of a radio option name
54
- * @param [valueCssClasses] - Extra classes applied to the value text in the collapsed field
55
- * @param [inputCssClasses] - Extra classes applied to the collapsed input container
54
+ * @param [valueClassName] - Extra classes applied to the value text in the collapsed field
55
+ * @param [inputClassName] - Extra classes applied to the collapsed input container
56
56
  * @param emptyValueText - Placeholder text when no value is selected
57
57
  * @param [onClose] - Callback fired when the popup closes
58
58
  * @param title - Title text shown in the popup header
@@ -1,9 +1,7 @@
1
- import { FC, MouseEvent } from 'react';
2
- export interface DialRemoveButtonProps {
3
- iconClass?: string;
4
- cssClass?: string;
5
- ariaLabel?: string;
6
- onClick: (e: MouseEvent) => void;
1
+ import { FC } from 'react';
2
+ import { DialButtonProps } from '../Button/Button';
3
+ export interface DialRemoveButtonProps extends Omit<DialButtonProps, 'iconBefore' | 'iconAfter'> {
4
+ iconClassName?: string;
7
5
  }
8
6
  /**
9
7
  * A specialized button component for removal or delete actions.
@@ -14,11 +12,11 @@ export interface DialRemoveButtonProps {
14
12
  * <DialRemoveButton
15
13
  * label="Delete item"
16
14
  * onClick={handleDelete}
17
- * iconClass="text-error"
15
+ * iconClassName="text-error"
18
16
  * />
19
17
  * @component
20
18
  * @param {DialRemoveButtonProps} props - The properties for the remove button component.
21
- * @param {string} [props.iconClass] - Optional CSS class applied to the trash icon for styling or sizing.
19
+ * @param {string} [props.iconClassName] - Optional CSS class applied to the trash icon for styling or sizing.
22
20
  * @returns {JSX.Element} The rendered remove button component.
23
21
  */
24
22
  export declare const DialRemoveButton: FC<DialRemoveButtonProps>;