@movable/ui 3.0.0-alpha-v6.2 → 3.1.0

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.
@@ -0,0 +1,18 @@
1
+ import { CardProps } from '@mui/material';
2
+ import { InkCardHeaderProps } from './InkCardHeader';
3
+ import { InkCardMediaProps } from './InkCardMedia';
4
+ import { InkCardType } from './VariantStyles';
5
+ import { GalleryContentProps } from './InkGalleryContent';
6
+ type InkCardBaseProps = CardProps & {
7
+ cardHeader?: InkCardHeaderProps;
8
+ cardMedia?: InkCardMediaProps;
9
+ cardType?: InkCardType;
10
+ };
11
+ type InkCardProps = (InkCardBaseProps & {
12
+ galleryContent: GalleryContentProps;
13
+ cardType: 'gallery';
14
+ }) | (InkCardBaseProps & {
15
+ galleryContent?: never;
16
+ });
17
+ export declare function InkCard({ cardMedia, cardHeader, cardType, galleryContent, children, ...rest }: InkCardProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,11 @@
1
+ import { CheckboxProps, TypographyProps } from '@mui/material';
2
+ export interface InkCardHeaderProps {
3
+ checkboxProps?: CheckboxProps;
4
+ title?: string;
5
+ size?: 'small' | 'medium';
6
+ subheader?: string;
7
+ adornment?: JSX.Element;
8
+ titleProps?: TypographyProps;
9
+ onClose?: () => void;
10
+ }
11
+ export declare function InkCardHeader({ checkboxProps, title, size, subheader, adornment, titleProps, onClose, }: InkCardHeaderProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,7 @@
1
+ import { CardMediaProps } from '@mui/material';
2
+ import { InkCardType } from './VariantStyles';
3
+ export interface InkCardMediaProps extends CardMediaProps {
4
+ mediaContent?: JSX.Element;
5
+ cardType?: InkCardType;
6
+ }
7
+ export declare function InkCardMedia({ mediaContent, image, cardType, sx, ...rest }: InkCardMediaProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function InkCardMediaLoader(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ButtonProps } from '@mui/material';
2
+ export type GalleryContentProps = {
3
+ description?: string;
4
+ buttonProps?: ButtonProps & {
5
+ label?: string;
6
+ };
7
+ };
8
+ export declare function InkGalleryContent({ description, buttonProps, }: GalleryContentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { SxProps, Theme } from '@mui/material/styles';
2
+ export type InkCardType = 'default' | 'gallery' | 'metric' | 'insight';
3
+ export declare const MAX_CARD_WIDTH = 382;
4
+ export declare const getComposedCardStyles: (isSelectable: boolean, isSelected: boolean, isDisabled?: boolean, cardType?: InkCardType, customSx?: SxProps<Theme>) => SxProps<Theme>;
5
+ export declare const getGalleryCardStyles: () => SxProps<Theme>;
@@ -0,0 +1 @@
1
+ export { InkCard } from './InkCard';
@@ -0,0 +1,9 @@
1
+ import { GridColDef } from '@mui/x-data-grid-premium';
2
+ /**
3
+ * Creates empty column definitions with skeleton loading placeholders.
4
+ * Used to maintain grid structure while showing loading state.
5
+ *
6
+ * @param columns - The original column definitions to create empty versions of
7
+ * @returns Array of column definitions with skeleton renderCell functions
8
+ */
9
+ export declare function createEmptyColumns(columns: GridColDef[]): GridColDef[];
@@ -0,0 +1,12 @@
1
+ import { DataGridPremiumProps } from '@mui/x-data-grid-premium';
2
+ export interface InkDataGridProps extends DataGridPremiumProps {
3
+ /**
4
+ * Test selector for automated testing
5
+ */
6
+ testSelector?: string;
7
+ }
8
+ /**
9
+ * InkDataGrid is a customized DataGridPremium component with Movable Ink styling and behavior.
10
+ * It provides automatic height adjustment, hidden column separators, and transparent row hover effects.
11
+ */
12
+ export declare function InkDataGrid({ testSelector, sx, rows, ...rest }: InkDataGridProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { GridColDef } from '@mui/x-data-grid-premium';
2
+ export interface InkDataGridEmptyProps {
3
+ /**
4
+ * Test selector for automated testing
5
+ */
6
+ testSelector?: string;
7
+ /**
8
+ * Column definitions to display in the empty state grid
9
+ */
10
+ emptyColumns: GridColDef[];
11
+ }
12
+ /**
13
+ * InkDataGridEmpty displays an empty state grid with skeleton rows.
14
+ * Used to show the grid structure while data is loading.
15
+ */
16
+ export declare function InkDataGridEmpty({ testSelector, emptyColumns, }: InkDataGridEmptyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { InkDataGrid, type InkDataGridProps } from './InkDataGrid';
2
+ export { InkDataGridEmpty, type InkDataGridEmptyProps, } from './InkDataGridEmpty';
3
+ export { createEmptyColumns } from './CreateEmptyColumns';
@@ -3,10 +3,15 @@ import { BoxProps, DrawerProps, SxProps, Theme } from '@mui/material';
3
3
  import { SvgIconTypeMap } from '@mui/material';
4
4
  import { OverridableComponent } from '@mui/material/OverridableComponent';
5
5
  type DrawerType = 'basic' | 'panel' | 'filter';
6
+ declare const defaultDrawerWidths: {
7
+ md: number;
8
+ lg: number;
9
+ xl: number;
10
+ };
6
11
  interface CommonDrawerProps extends DrawerProps {
7
12
  drawerType: DrawerType;
8
13
  drawerContent: JSX.Element;
9
- drawerWidth?: number;
14
+ drawerWidth?: number | Partial<typeof defaultDrawerWidths>;
10
15
  leftOffset?: string;
11
16
  bottomContent?: JSX.Element;
12
17
  headerLabel?: string;
@@ -24,6 +29,5 @@ interface PanelDrawerProps extends CommonDrawerProps {
24
29
  drawerType: 'panel';
25
30
  }
26
31
  type InkDrawerProps = CollapsibleDrawerProps | PanelDrawerProps;
27
- export declare const defaultFilterDrawerWidth = 280;
28
32
  export declare function InkDrawer(props: PropsWithChildren<InkDrawerProps>): import("react/jsx-runtime").JSX.Element;
29
33
  export {};
@@ -0,0 +1,6 @@
1
+ interface IExportButton {
2
+ loadingExport?: boolean;
3
+ onClick?: () => void;
4
+ }
5
+ export declare function ExportButton({ onClick, loadingExport }: IExportButton): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,5 @@
1
+ interface IFiltersButton {
2
+ onClick: () => void;
3
+ }
4
+ export declare function FiltersButton({ onClick }: IFiltersButton): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,7 @@
1
+ export interface IGridToolbarGroupProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ options: string[];
5
+ children?: React.ReactNode;
6
+ }
7
+ export declare function GridToolbarGroup({ value, onChange, options, }: IGridToolbarGroupProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { GridColDef, GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
2
+ import { IGridToolbarGroupProps } from './GridToolbarGroup';
3
+ export interface IInkGridToolBarProps {
4
+ groupingProps?: IGridToolbarGroupProps;
5
+ showFilterDrawerBtn?: boolean;
6
+ showQuickFilter?: boolean;
7
+ showExportButton?: boolean;
8
+ showFilterButton?: boolean;
9
+ showDensitySelector?: boolean;
10
+ showColumnButton?: boolean;
11
+ onExportClick?: () => void;
12
+ loadingExport?: boolean;
13
+ children?: React.ReactNode;
14
+ columnPickerProps?: {
15
+ columnData: GridColDef[];
16
+ handleColumnFilterChange: (columnVisibilityModel: GridColumnVisibilityModel) => void;
17
+ customGridVisibility: GridColumnVisibilityModel;
18
+ lockedFields?: string[];
19
+ hiddenInColumnPicker?: string[];
20
+ };
21
+ filterDrawerBtnProps?: {
22
+ onShowFilterDrawerClick: () => void;
23
+ filterBtnBadgeContent?: string;
24
+ };
25
+ py?: number;
26
+ }
27
+ export declare function InkGridToolBar({ groupingProps, filterDrawerBtnProps, showFilterDrawerBtn, showQuickFilter, showExportButton, showDensitySelector, onExportClick, loadingExport, columnPickerProps, children, py, }: IInkGridToolBarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { GridColDef, GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
2
+ interface ITableActionsColumnPickerProps {
3
+ columnData: GridColDef[];
4
+ handleColumnFilterChange: (columnVisibilityModel: GridColumnVisibilityModel) => void;
5
+ customGridVisibility: GridColumnVisibilityModel;
6
+ lockedFields?: string[];
7
+ hiddenInColumnPicker?: string[];
8
+ }
9
+ export declare function TableFilterColumnPicker({ columnData, handleColumnFilterChange, customGridVisibility, lockedFields, hiddenInColumnPicker, }: ITableActionsColumnPickerProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1 @@
1
+ export { InkGridToolBar } from './InkGridToolBar';
@@ -1,5 +1,5 @@
1
1
  import { UseControllerProps, FieldPath, FieldValues } from 'react-hook-form';
2
2
  import { InkSelectProps } from '.';
3
3
  type InkFormSelectProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = InkSelectProps & UseControllerProps<TFieldValues, TName>;
4
- export declare function InkFormSelect<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>({ control, name, rules, helperText, onChange, onBlur, ...rest }: InkFormSelectProps<TFieldValues, TName>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function InkFormSelect<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>({ control, name, rules, helperText, onChange, onBlur, disabled, ...rest }: InkFormSelectProps<TFieldValues, TName>): import("react/jsx-runtime").JSX.Element;
5
5
  export {};
@@ -22,3 +22,6 @@ export * from './InkTextField';
22
22
  export * from './InkSelect';
23
23
  export { InternalUseOnlyLabel, InternalUseOnlyAlert, } from './InternalUseOnlyIndicators';
24
24
  export { InkChart } from './InkChart';
25
+ export { InkCard } from './InkCard';
26
+ export { InkGridToolBar } from './InkGridToolBar';
27
+ export { InkDataGrid, InkDataGridEmpty, createEmptyColumns, type InkDataGridProps, type InkDataGridEmptyProps, } from './InkDataGrid';
package/lib/index.d.ts CHANGED
@@ -3,11 +3,15 @@ import { BoxProps } from '@mui/material';
3
3
  import { BoxProps as BoxProps_2 } from '@mui/material/Box';
4
4
  import { ButtonProps } from '@mui/material';
5
5
  import { ButtonProps as ButtonProps_2 } from '@mui/material/Button';
6
+ import { CardMediaProps } from '@mui/material';
7
+ import { CardProps } from '@mui/material';
6
8
  import type { ChartData } from 'chart.js';
7
9
  import type { ChartOptions } from 'chart.js';
8
- import { CheckboxProps } from '@mui/material/Checkbox';
10
+ import { CheckboxProps } from '@mui/material';
11
+ import { CheckboxProps as CheckboxProps_2 } from '@mui/material/Checkbox';
9
12
  import { ChipProps } from '@mui/material';
10
13
  import { CustomContentProps } from 'notistack';
14
+ import { DataGridPremiumProps } from '@mui/x-data-grid-premium';
11
15
  import type { DialogProps } from '@mui/material/Dialog';
12
16
  import { DrawerProps } from '@mui/material/Drawer';
13
17
  import { DrawerProps as DrawerProps_2 } from '@mui/material';
@@ -18,6 +22,8 @@ import { FormControlLabelProps } from '@mui/material/FormControlLabel';
18
22
  import { FormGroupProps } from '@mui/material/FormGroup';
19
23
  import { FormLabelProps } from '@mui/material/FormLabel';
20
24
  import { ForwardRefExoticComponent } from 'react';
25
+ import { GridColDef } from '@mui/x-data-grid-premium';
26
+ import { GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
21
27
  import { GridProps } from '@mui/material/Grid';
22
28
  import { GridProps as GridProps_2 } from '@mui/material';
23
29
  import { JSX as JSX_2 } from 'react/jsx-runtime';
@@ -110,7 +116,7 @@ declare interface CollapsibleDrawerProps extends CommonDrawerProps {
110
116
  declare interface CommonDrawerProps extends DrawerProps_2 {
111
117
  drawerType: DrawerType;
112
118
  drawerContent: JSX.Element;
113
- drawerWidth?: number;
119
+ drawerWidth?: number | Partial<typeof defaultDrawerWidths>;
114
120
  leftOffset?: string;
115
121
  bottomContent?: JSX.Element;
116
122
  headerLabel?: string;
@@ -124,6 +130,21 @@ declare type CopiedValue = string | null;
124
130
 
125
131
  declare type CopyFn = (text: string) => Promise<boolean>;
126
132
 
133
+ /**
134
+ * Creates empty column definitions with skeleton loading placeholders.
135
+ * Used to maintain grid structure while showing loading state.
136
+ *
137
+ * @param columns - The original column definitions to create empty versions of
138
+ * @returns Array of column definitions with skeleton renderCell functions
139
+ */
140
+ export declare function createEmptyColumns(columns: GridColDef[]): GridColDef[];
141
+
142
+ declare const defaultDrawerWidths: {
143
+ md: number;
144
+ lg: number;
145
+ xl: number;
146
+ };
147
+
127
148
  export declare function DemoComponent({ stringToDisplay }: DemoComponentProps): JSX_2.Element;
128
149
 
129
150
  declare type DemoComponentProps = {
@@ -161,6 +182,13 @@ declare type FiveThreeSplitContentLayoutProps = {
161
182
 
162
183
  export declare const FormSkeletonGrid: ({ skeletonRows, skeletonColumns, }: SkeletonGridType) => JSX_2.Element;
163
184
 
185
+ declare type GalleryContentProps = {
186
+ description?: string;
187
+ buttonProps?: ButtonProps & {
188
+ label?: string;
189
+ };
190
+ };
191
+
164
192
  declare type HeaderLink = {
165
193
  label: string;
166
194
  path?: string;
@@ -202,6 +230,38 @@ declare type IFilterDrawer = DrawerProps & {
202
230
  mainProps?: BoxProps;
203
231
  };
204
232
 
233
+ declare interface IGridToolbarGroupProps {
234
+ value: string;
235
+ onChange: (value: string) => void;
236
+ options: string[];
237
+ children?: React.ReactNode;
238
+ }
239
+
240
+ declare interface IInkGridToolBarProps {
241
+ groupingProps?: IGridToolbarGroupProps;
242
+ showFilterDrawerBtn?: boolean;
243
+ showQuickFilter?: boolean;
244
+ showExportButton?: boolean;
245
+ showFilterButton?: boolean;
246
+ showDensitySelector?: boolean;
247
+ showColumnButton?: boolean;
248
+ onExportClick?: () => void;
249
+ loadingExport?: boolean;
250
+ children?: React.ReactNode;
251
+ columnPickerProps?: {
252
+ columnData: GridColDef[];
253
+ handleColumnFilterChange: (columnVisibilityModel: GridColumnVisibilityModel) => void;
254
+ customGridVisibility: GridColumnVisibilityModel;
255
+ lockedFields?: string[];
256
+ hiddenInColumnPicker?: string[];
257
+ };
258
+ filterDrawerBtnProps?: {
259
+ onShowFilterDrawerClick: () => void;
260
+ filterBtnBadgeContent?: string;
261
+ };
262
+ py?: number;
263
+ }
264
+
205
265
  export declare function IndexLayout({ Header, children, sx, ...containerProps }: IndexLayoutProps): JSX_2.Element;
206
266
 
207
267
  declare type IndexLayoutProps = GridProps & {
@@ -223,6 +283,38 @@ declare type InkAttributeProps = ListItemTextProps & {
223
283
  };
224
284
  };
225
285
 
286
+ export declare function InkCard({ cardMedia, cardHeader, cardType, galleryContent, children, ...rest }: InkCardProps): JSX_2.Element;
287
+
288
+ declare type InkCardBaseProps = CardProps & {
289
+ cardHeader?: InkCardHeaderProps;
290
+ cardMedia?: InkCardMediaProps;
291
+ cardType?: InkCardType;
292
+ };
293
+
294
+ declare interface InkCardHeaderProps {
295
+ checkboxProps?: CheckboxProps;
296
+ title?: string;
297
+ size?: 'small' | 'medium';
298
+ subheader?: string;
299
+ adornment?: JSX.Element;
300
+ titleProps?: TypographyProps;
301
+ onClose?: () => void;
302
+ }
303
+
304
+ declare interface InkCardMediaProps extends CardMediaProps {
305
+ mediaContent?: JSX.Element;
306
+ cardType?: InkCardType;
307
+ }
308
+
309
+ declare type InkCardProps = (InkCardBaseProps & {
310
+ galleryContent: GalleryContentProps;
311
+ cardType: 'gallery';
312
+ }) | (InkCardBaseProps & {
313
+ galleryContent?: never;
314
+ });
315
+
316
+ declare type InkCardType = 'default' | 'gallery' | 'metric' | 'insight';
317
+
226
318
  export declare function InkChart<T extends ChartTypes>({ chartOptions, type, data, customColors, height, isLoading, stacked, legend, title, }: ChartProps<T>): JSX_2.Element | undefined;
227
319
 
228
320
  export declare const InkCheckboxGroup: ForwardRefExoticComponent<InkCheckboxGroupProps & RefAttributes<HTMLDivElement>>;
@@ -250,7 +342,7 @@ export declare type InkCheckboxGroupProps = {
250
342
  options: {
251
343
  value: string;
252
344
  label: string;
253
- checkboxProps?: CheckboxProps;
345
+ checkboxProps?: CheckboxProps_2;
254
346
  }[];
255
347
  formGroupProps?: FormGroupProps;
256
348
  formLabel: string;
@@ -282,6 +374,36 @@ declare type InkChipPropType = {
282
374
  truncation?: 'end' | 'middle';
283
375
  };
284
376
 
377
+ /**
378
+ * InkDataGrid is a customized DataGridPremium component with Movable Ink styling and behavior.
379
+ * It provides automatic height adjustment, hidden column separators, and transparent row hover effects.
380
+ */
381
+ export declare function InkDataGrid({ testSelector, sx, rows, ...rest }: InkDataGridProps): JSX_2.Element;
382
+
383
+ /**
384
+ * InkDataGridEmpty displays an empty state grid with skeleton rows.
385
+ * Used to show the grid structure while data is loading.
386
+ */
387
+ export declare function InkDataGridEmpty({ testSelector, emptyColumns, }: InkDataGridEmptyProps): JSX_2.Element;
388
+
389
+ export declare interface InkDataGridEmptyProps {
390
+ /**
391
+ * Test selector for automated testing
392
+ */
393
+ testSelector?: string;
394
+ /**
395
+ * Column definitions to display in the empty state grid
396
+ */
397
+ emptyColumns: GridColDef[];
398
+ }
399
+
400
+ export declare interface InkDataGridProps extends DataGridPremiumProps {
401
+ /**
402
+ * Test selector for automated testing
403
+ */
404
+ testSelector?: string;
405
+ }
406
+
285
407
  export declare function InkDialog({ Title, Content, Actions, onClose, hideCloseButton, ActionsProp, ...props }: InkDialogProps): JSX_2.Element;
286
408
 
287
409
  export declare const inkDialog: InkDialogPageObject;
@@ -338,7 +460,7 @@ export declare function InkFormRadioGroup<TFieldValues extends FieldValues, TNam
338
460
 
339
461
  declare type InkFormRadioGroupProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = InkRadioGroupProps & UseControllerProps<TFieldValues, TName>;
340
462
 
341
- export declare function InkFormSelect<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>({ control, name, rules, helperText, onChange, onBlur, ...rest }: InkFormSelectProps<TFieldValues, TName>): JSX_2.Element;
463
+ export declare function InkFormSelect<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>({ control, name, rules, helperText, onChange, onBlur, disabled, ...rest }: InkFormSelectProps<TFieldValues, TName>): JSX_2.Element;
342
464
 
343
465
  declare type InkFormSelectProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = InkSelectProps & UseControllerProps<TFieldValues, TName>;
344
466
 
@@ -354,6 +476,8 @@ declare type InkFormTextFieldProps<TFieldValues extends FieldValues, TName exten
354
476
  label: string;
355
477
  } & UseControllerProps<TFieldValues, TName> & TextFieldProps;
356
478
 
479
+ export declare function InkGridToolBar({ groupingProps, filterDrawerBtnProps, showFilterDrawerBtn, showQuickFilter, showExportButton, showDensitySelector, onExportClick, loadingExport, columnPickerProps, children, py, }: IInkGridToolBarProps): JSX_2.Element;
480
+
357
481
  export declare function InkImage({ src, alt, sx, imageSx, fallbackText, ...rest }: InkImageProps): JSX_2.Element;
358
482
 
359
483
  declare type InkImageProps = BoxProps_2 & {
@@ -476,6 +600,7 @@ export declare class inkSelect {
476
600
  hasDisplayValue(value: string): Cypress.Chainable<JQuery<HTMLElement>>;
477
601
  hasValue(value: string): Cypress.Chainable<JQuery<HTMLElement>>;
478
602
  hasOption(label: string, value: string, index?: number): void;
603
+ isDisabled(): Cypress.Chainable<JQuery<HTMLElement>>;
479
604
  closeMenu(): void;
480
605
  openMenu(): void;
481
606
  }