@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.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +34 -33
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/browser-preview/BrowserPreview.d.ts +16 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.d.ts.map +1 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.js +106 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.js.map +1 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.styles.d.ts +12 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.styles.d.ts.map +1 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.styles.js +35 -0
- package/dist/cjs/components/browser-preview/BrowserPreview.styles.js.map +1 -0
- package/dist/cjs/components/browser-preview/index.d.ts +2 -0
- package/dist/cjs/components/browser-preview/index.d.ts.map +1 -0
- package/dist/cjs/components/browser-preview/index.js +8 -0
- package/dist/cjs/components/browser-preview/index.js.map +1 -0
- package/dist/cjs/components/code-editor/CodeEditor.d.ts +3 -1
- package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +16 -3
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +1 -0
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
- package/dist/cjs/components/table/Table.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.js +8 -2
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/Table.styles.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.styles.js +2 -1
- package/dist/cjs/components/table/Table.styles.js.map +1 -1
- package/dist/cjs/components/table/Table.types.d.ts +5 -1
- package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/RowLayout.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/RowLayout.js +6 -1
- package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActions.styles.js +3 -1
- package/dist/cjs/components/table/table-actions/TableActions.styles.js.map +1 -1
- package/dist/cjs/hooks/useRowSelection.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/browser-preview/BrowserPreview.d.ts +16 -0
- package/dist/esm/components/browser-preview/BrowserPreview.d.ts.map +1 -0
- package/dist/esm/components/browser-preview/BrowserPreview.js +95 -0
- package/dist/esm/components/browser-preview/BrowserPreview.js.map +1 -0
- package/dist/esm/components/browser-preview/BrowserPreview.styles.d.ts +12 -0
- package/dist/esm/components/browser-preview/BrowserPreview.styles.d.ts.map +1 -0
- package/dist/esm/components/browser-preview/BrowserPreview.styles.js +25 -0
- package/dist/esm/components/browser-preview/BrowserPreview.styles.js.map +1 -0
- package/dist/esm/components/browser-preview/index.d.ts +2 -0
- package/dist/esm/components/browser-preview/index.d.ts.map +1 -0
- package/dist/esm/components/browser-preview/index.js +3 -0
- package/dist/esm/components/browser-preview/index.js.map +1 -0
- package/dist/esm/components/code-editor/CodeEditor.d.ts +3 -1
- package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +17 -4
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js +1 -0
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
- package/dist/esm/components/table/Table.d.ts.map +1 -1
- package/dist/esm/components/table/Table.js +8 -2
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.styles.d.ts.map +1 -1
- package/dist/esm/components/table/Table.styles.js +2 -1
- package/dist/esm/components/table/Table.styles.js.map +1 -1
- package/dist/esm/components/table/Table.types.d.ts +5 -1
- package/dist/esm/components/table/Table.types.d.ts.map +1 -1
- package/dist/esm/components/table/Table.types.js.map +1 -1
- package/dist/esm/components/table/layouts/RowLayout.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/RowLayout.js +6 -1
- package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/esm/components/table/table-actions/TableActions.styles.js +3 -1
- package/dist/esm/components/table/table-actions/TableActions.styles.js.map +1 -1
- package/dist/esm/hooks/useRowSelection.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/browser-preview/BrowserPreview.styles.ts +14 -0
- package/src/components/browser-preview/BrowserPreview.tsx +72 -0
- package/src/components/browser-preview/__tests__/BrowserPreview.spec.tsx +35 -0
- package/src/components/browser-preview/index.ts +1 -0
- package/src/components/code-editor/CodeEditor.tsx +15 -4
- package/src/components/index.ts +1 -0
- package/src/components/inline-confirm/InlineConfirmPrompt.tsx +1 -1
- package/src/components/table/Table.styles.ts +2 -0
- package/src/components/table/Table.tsx +5 -2
- package/src/components/table/Table.types.ts +5 -1
- package/src/components/table/layouts/RowLayout.tsx +5 -2
- package/src/components/table/table-actions/TableActions.styles.ts +1 -1
- package/src/hooks/useRowSelection.ts +4 -4
- 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,
|
|
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
|
|
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={{
|
package/src/components/index.ts
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
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) => (
|
|
@@ -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);
|