@coveord/plasma-mantine 52.18.0 → 52.20.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.
Files changed (99) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +34 -33
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/browser-preview/BrowserPreview.d.ts +16 -0
  5. package/dist/cjs/components/browser-preview/BrowserPreview.d.ts.map +1 -0
  6. package/dist/cjs/components/browser-preview/BrowserPreview.js +106 -0
  7. package/dist/cjs/components/browser-preview/BrowserPreview.js.map +1 -0
  8. package/dist/cjs/components/browser-preview/BrowserPreview.styles.d.ts +12 -0
  9. package/dist/cjs/components/browser-preview/BrowserPreview.styles.d.ts.map +1 -0
  10. package/dist/cjs/components/browser-preview/BrowserPreview.styles.js +35 -0
  11. package/dist/cjs/components/browser-preview/BrowserPreview.styles.js.map +1 -0
  12. package/dist/cjs/components/browser-preview/index.d.ts +2 -0
  13. package/dist/cjs/components/browser-preview/index.d.ts.map +1 -0
  14. package/dist/cjs/components/browser-preview/index.js +8 -0
  15. package/dist/cjs/components/browser-preview/index.js.map +1 -0
  16. package/dist/cjs/components/code-editor/CodeEditor.d.ts +3 -1
  17. package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
  18. package/dist/cjs/components/code-editor/CodeEditor.js +16 -3
  19. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  20. package/dist/cjs/components/index.d.ts +1 -0
  21. package/dist/cjs/components/index.d.ts.map +1 -1
  22. package/dist/cjs/components/index.js +1 -0
  23. package/dist/cjs/components/index.js.map +1 -1
  24. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +1 -0
  25. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  26. package/dist/cjs/components/table/Table.d.ts.map +1 -1
  27. package/dist/cjs/components/table/Table.js +8 -2
  28. package/dist/cjs/components/table/Table.js.map +1 -1
  29. package/dist/cjs/components/table/Table.styles.d.ts.map +1 -1
  30. package/dist/cjs/components/table/Table.styles.js +2 -1
  31. package/dist/cjs/components/table/Table.styles.js.map +1 -1
  32. package/dist/cjs/components/table/Table.types.d.ts +5 -1
  33. package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
  34. package/dist/cjs/components/table/layouts/RowLayout.d.ts.map +1 -1
  35. package/dist/cjs/components/table/layouts/RowLayout.js +6 -1
  36. package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
  37. package/dist/cjs/components/table/table-actions/TableActions.styles.js +3 -1
  38. package/dist/cjs/components/table/table-actions/TableActions.styles.js.map +1 -1
  39. package/dist/cjs/hooks/useRowSelection.js.map +1 -1
  40. package/dist/cjs/index.d.ts +1 -1
  41. package/dist/cjs/index.d.ts.map +1 -1
  42. package/dist/cjs/index.js +3 -0
  43. package/dist/cjs/index.js.map +1 -1
  44. package/dist/esm/components/browser-preview/BrowserPreview.d.ts +16 -0
  45. package/dist/esm/components/browser-preview/BrowserPreview.d.ts.map +1 -0
  46. package/dist/esm/components/browser-preview/BrowserPreview.js +95 -0
  47. package/dist/esm/components/browser-preview/BrowserPreview.js.map +1 -0
  48. package/dist/esm/components/browser-preview/BrowserPreview.styles.d.ts +12 -0
  49. package/dist/esm/components/browser-preview/BrowserPreview.styles.d.ts.map +1 -0
  50. package/dist/esm/components/browser-preview/BrowserPreview.styles.js +25 -0
  51. package/dist/esm/components/browser-preview/BrowserPreview.styles.js.map +1 -0
  52. package/dist/esm/components/browser-preview/index.d.ts +2 -0
  53. package/dist/esm/components/browser-preview/index.d.ts.map +1 -0
  54. package/dist/esm/components/browser-preview/index.js +3 -0
  55. package/dist/esm/components/browser-preview/index.js.map +1 -0
  56. package/dist/esm/components/code-editor/CodeEditor.d.ts +3 -1
  57. package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
  58. package/dist/esm/components/code-editor/CodeEditor.js +17 -4
  59. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  60. package/dist/esm/components/index.d.ts +1 -0
  61. package/dist/esm/components/index.d.ts.map +1 -1
  62. package/dist/esm/components/index.js +1 -0
  63. package/dist/esm/components/index.js.map +1 -1
  64. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js +1 -0
  65. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  66. package/dist/esm/components/table/Table.d.ts.map +1 -1
  67. package/dist/esm/components/table/Table.js +8 -2
  68. package/dist/esm/components/table/Table.js.map +1 -1
  69. package/dist/esm/components/table/Table.styles.d.ts.map +1 -1
  70. package/dist/esm/components/table/Table.styles.js +2 -1
  71. package/dist/esm/components/table/Table.styles.js.map +1 -1
  72. package/dist/esm/components/table/Table.types.d.ts +5 -1
  73. package/dist/esm/components/table/Table.types.d.ts.map +1 -1
  74. package/dist/esm/components/table/Table.types.js.map +1 -1
  75. package/dist/esm/components/table/layouts/RowLayout.d.ts.map +1 -1
  76. package/dist/esm/components/table/layouts/RowLayout.js +6 -1
  77. package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
  78. package/dist/esm/components/table/table-actions/TableActions.styles.js +3 -1
  79. package/dist/esm/components/table/table-actions/TableActions.styles.js.map +1 -1
  80. package/dist/esm/hooks/useRowSelection.js.map +1 -1
  81. package/dist/esm/index.d.ts +1 -1
  82. package/dist/esm/index.d.ts.map +1 -1
  83. package/dist/esm/index.js +1 -1
  84. package/dist/esm/index.js.map +1 -1
  85. package/package.json +3 -3
  86. package/src/components/browser-preview/BrowserPreview.styles.ts +14 -0
  87. package/src/components/browser-preview/BrowserPreview.tsx +72 -0
  88. package/src/components/browser-preview/__tests__/BrowserPreview.spec.tsx +35 -0
  89. package/src/components/browser-preview/index.ts +1 -0
  90. package/src/components/code-editor/CodeEditor.tsx +15 -4
  91. package/src/components/index.ts +1 -0
  92. package/src/components/inline-confirm/InlineConfirmPrompt.tsx +1 -1
  93. package/src/components/table/Table.styles.ts +2 -0
  94. package/src/components/table/Table.tsx +5 -2
  95. package/src/components/table/Table.types.ts +5 -1
  96. package/src/components/table/layouts/RowLayout.tsx +5 -2
  97. package/src/components/table/table-actions/TableActions.styles.ts +1 -1
  98. package/src/hooks/useRowSelection.ts +4 -4
  99. package/src/index.ts +1 -0
@@ -14,21 +14,25 @@ import {
14
14
  useComponentDefaultProps,
15
15
  } from '@mantine/core';
16
16
  import {useUncontrolled} from '@mantine/hooks';
17
+ import {editor as monacoEditor} from 'monaco-editor';
17
18
  import Editor, {loader, Monaco} from '@monaco-editor/react';
18
- import {FunctionComponent, useEffect, useState, useRef} from 'react';
19
+ import {FunctionComponent, useEffect, useRef, useState} from 'react';
19
20
 
20
21
  import {useParentHeight} from '../../hooks';
21
22
  import {XML} from './languages/xml';
22
23
  import {CopyToClipboard} from '../copyToClipboard';
23
24
  import {Search} from './search';
24
25
 
25
- const useStyles = createStyles((theme) => ({
26
+ const useStyles = createStyles((theme, {error}: {error?: boolean}) => ({
26
27
  root: {},
27
28
  editor: {
28
29
  border: `1px solid ${theme.colors.gray[2]}`,
29
30
  borderRadius: theme.defaultRadius,
30
31
  backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,
31
32
  height: '100%',
33
+ outlineColor: error ? theme.colors.red[6] : null,
34
+ outlineStyle: error ? 'solid' : 'none',
35
+ outlineWidth: 'thin',
32
36
  },
33
37
  }));
34
38
 
@@ -109,7 +113,8 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
109
113
  ...others
110
114
  } = useComponentDefaultProps('CodeEditor', defaultProps, props);
111
115
  const [loaded, setLoaded] = useState(false);
112
- const {classes, theme} = useStyles();
116
+ const [containsError, setContainsError] = useState(false);
117
+ const {classes, theme} = useStyles({error: containsError});
113
118
  const [_value, handleChange] = useUncontrolled<string>({
114
119
  value,
115
120
  defaultValue,
@@ -118,7 +123,6 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
118
123
  });
119
124
  const [parentHeight, ref] = useParentHeight();
120
125
  const editorRef = useRef(null);
121
-
122
126
  const loadLocalMonaco = async () => {
123
127
  const monacoInstance = await import('monaco-editor');
124
128
  loader.config({monaco: monacoInstance});
@@ -147,6 +151,12 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
147
151
  }
148
152
  }, []);
149
153
 
154
+ const handleValidate = (markers: monacoEditor.IMarker[]) => {
155
+ setContainsError(
156
+ markers.some((marker) => marker.severity === loader.__getMonacoInstance().MarkerSeverity.Error),
157
+ );
158
+ };
159
+
150
160
  const _label = label ? (
151
161
  <Input.Label required={required} {...labelProps}>
152
162
  {label}
@@ -183,6 +193,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
183
193
  const _editor = loaded ? (
184
194
  <Box p="md" pl="xs" className={classes.editor}>
185
195
  <Editor
196
+ onValidate={handleValidate}
186
197
  defaultLanguage={language}
187
198
  theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}
188
199
  options={{
@@ -1,4 +1,5 @@
1
1
  export * from './blank-slate';
2
+ export * from './browser-preview';
2
3
  export * from './code-editor';
3
4
  export * from './collection';
4
5
  export * from './date-range-picker';
@@ -34,7 +34,7 @@ export const InlineConfirmPrompt: FunctionComponent<InlineConfirmPromptProps> =
34
34
 
35
35
  if (confirmingId === id) {
36
36
  return (
37
- <Group spacing="xs">
37
+ <Group spacing="xs" noWrap>
38
38
  {label}
39
39
  <Button onClick={onClickConfirm} color="red">
40
40
  {confirmLabel}
@@ -21,6 +21,8 @@ const useStyles = createStyles<string>((theme) => ({
21
21
  borderBottom: `1px solid ${theme.colors.gray[3]}`,
22
22
  },
23
23
  },
24
+
25
+ body: {},
24
26
  }));
25
27
 
26
28
  export const TableComponentsOrder = {
@@ -49,6 +49,9 @@ export const Table: TableType = <T,>({
49
49
  disableRowSelection,
50
50
  onRowSelectionChange,
51
51
  additionalRootNodes,
52
+ classNames,
53
+ styles,
54
+ unstyled,
52
55
  options = {},
53
56
  }: TableProps<T>) => {
54
57
  const convertedChildren = Children.toArray(children) as ReactElement[];
@@ -65,7 +68,7 @@ export const Table: TableType = <T,>({
65
68
  layout: initialState?.layout ?? layouts[0].name,
66
69
  },
67
70
  });
68
- const {classes} = useStyles();
71
+ const {classes} = useStyles(null, {name: 'PlasmaTable', classNames, styles, unstyled});
69
72
 
70
73
  const table = useReactTable({
71
74
  initialState: defaultsDeep(initialStateWithoutForm, {
@@ -184,7 +187,7 @@ export const Table: TableType = <T,>({
184
187
  loading={loading}
185
188
  />
186
189
  </thead>
187
- <tbody>
190
+ <tbody className={classes.body}>
188
191
  {hasRows ? (
189
192
  <Layout.Body
190
193
  table={table}
@@ -1,4 +1,5 @@
1
1
  import {Icon} from '@coveord/plasma-react-icons';
2
+ import {DefaultProps, Selectors} from '@mantine/core';
2
3
  import {UseFormReturnType} from '@mantine/form';
3
4
  import {
4
5
  ColumnDef,
@@ -24,6 +25,7 @@ import {TableLoading} from './table-loading/TableLoading';
24
25
  import {TablePagination} from './table-pagination/TablePagination';
25
26
  import {TablePerPage} from './table-per-page/TablePerPage';
26
27
  import {TablePredicate} from './table-predicate/TablePredicate';
28
+ import useStyles from './Table.styles';
27
29
 
28
30
  export type RowSelectionWithData<TData> = Record<string, TData>;
29
31
  export interface RowSelectionState<TData> {
@@ -143,7 +145,9 @@ export type TableContextType<TData> = {
143
145
  layouts: TableLayout[];
144
146
  };
145
147
 
146
- export interface TableProps<T> {
148
+ type TableStylesNames = Selectors<typeof useStyles>;
149
+
150
+ export interface TableProps<T> extends DefaultProps<TableStylesNames> {
147
151
  /**
148
152
  * Data to display in the table
149
153
  */
@@ -12,9 +12,12 @@ import {TableLoading} from '../table-loading/TableLoading';
12
12
  import useStyles from './RowLayout.styles';
13
13
  import {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182
14
14
 
15
- const RowLayoutHeader = <T,>({table}: TableLayoutProps<T>) => {
15
+ const RowLayoutHeader = <T,>({table, classNames, styles, unstyled}: TableLayoutProps<T>) => {
16
16
  const {multiRowSelectionEnabled, disableRowSelection} = useTable();
17
- const {classes} = useStyles({disableRowSelection, multiRowSelectionEnabled});
17
+ const {classes} = useStyles(
18
+ {disableRowSelection, multiRowSelectionEnabled},
19
+ {name: 'RowLayout', classNames, styles, unstyled},
20
+ );
18
21
  const headers = table.getHeaderGroups().map((headerGroup) => (
19
22
  <tr key={headerGroup.id} className={classes.headerColumns}>
20
23
  {headerGroup.headers.map((columnHeader) => (
@@ -1,7 +1,7 @@
1
1
  import {createStyles} from '@mantine/core';
2
2
 
3
3
  export default createStyles((theme) => ({
4
- root: {},
4
+ root: {maxWidth: '100%'},
5
5
  wrapper: {
6
6
  display: 'inline-flex',
7
7
  },
@@ -11,7 +11,7 @@ export const useRowSelection = <T>(
11
11
  onRowSelectionChange,
12
12
  multiRowSelectionEnabled,
13
13
  additionalRootNodes = [],
14
- }: Pick<TableProps<T>, 'onRowSelectionChange' | 'multiRowSelectionEnabled' | 'additionalRootNodes'>
14
+ }: Pick<TableProps<T>, 'onRowSelectionChange' | 'multiRowSelectionEnabled' | 'additionalRootNodes'>,
15
15
  ) => {
16
16
  const outsideClickRef = useRef<HTMLDivElement>();
17
17
  useClickOutside(
@@ -21,7 +21,7 @@ export const useRowSelection = <T>(
21
21
  }
22
22
  },
23
23
  null,
24
- [outsideClickRef.current, ...additionalRootNodes]
24
+ [outsideClickRef.current, ...additionalRootNodes],
25
25
  );
26
26
 
27
27
  // Need to call this outside of the onRowSelectionChange of the table to avoid rendering conflicts if the callback queues an update in a parent component.
@@ -36,7 +36,7 @@ export const useRowSelection = <T>(
36
36
  table.setState((old) => {
37
37
  const newRowSelection = functionalUpdate(
38
38
  rowSelectionUpdater,
39
- old['rowSelection']
39
+ old['rowSelection'],
40
40
  ) as RowSelectionWithData<T>;
41
41
 
42
42
  if (isEqual(old['rowSelection'], newRowSelection)) {
@@ -49,7 +49,7 @@ export const useRowSelection = <T>(
49
49
  if (newRowSelection[rowId] === true) {
50
50
  if (!rows[rowId]) {
51
51
  console.error(
52
- 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.'
52
+ 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.',
53
53
  );
54
54
  }
55
55
  newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);
package/src/index.ts CHANGED
@@ -14,6 +14,7 @@ export {type NotificationProps} from '@mantine/notifications';
14
14
  export {Pagination} from '@mantine/core';
15
15
  // explicitly overriding mantine components
16
16
  export {
17
+ BrowserPreview,
17
18
  Header,
18
19
  type HeaderProps,
19
20
  Table,