@jbrowse/plugin-variants 3.6.4 → 3.7.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 (83) hide show
  1. package/dist/LinearVariantDisplay/model.d.ts +17 -2
  2. package/dist/MultiLinearVariantDisplay/model.d.ts +17 -2
  3. package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +17 -2
  4. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +6 -4
  5. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +6 -3
  6. package/dist/MultiLinearVariantRenderer/components/MultiLinearVariantRendering.d.ts +7 -2
  7. package/dist/MultiLinearVariantRenderer/components/MultiLinearVariantRendering.js +14 -17
  8. package/dist/MultiLinearVariantRenderer/makeImageData.d.ts +2 -1
  9. package/dist/MultiLinearVariantRenderer/makeImageData.js +32 -22
  10. package/dist/StructuralVariantChordRenderer/ReactComponent.js +1 -1
  11. package/dist/VariantFeatureWidget/AltFormatter.d.ts +2 -2
  12. package/dist/VariantFeatureWidget/AltFormatter.js +3 -3
  13. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +1 -1
  14. package/dist/VariantFeatureWidget/stateModelFactory.d.ts +4 -4
  15. package/dist/VcfAdapter/VcfAdapter.d.ts +5 -5
  16. package/dist/VcfAdapter/VcfAdapter.js +2 -2
  17. package/dist/VcfFeature/index.d.ts +1 -1
  18. package/dist/VcfFeature/index.js +21 -5
  19. package/dist/shared/MultiVariantBaseModel.d.ts +17 -2
  20. package/dist/shared/SharedVariantMixin.d.ts +17 -2
  21. package/dist/shared/components/MultiVariantClusterDialog/ClusterDialogManual.js +3 -3
  22. package/dist/shared/components/SetColorDialog.js +2 -45
  23. package/dist/shared/components/SetColorDialogBulkEditPanel.d.ts +10 -0
  24. package/dist/shared/components/{BulkEditPanel.js → SetColorDialogBulkEditPanel.js} +2 -2
  25. package/dist/shared/components/SetColorDialogHelpfulTips.d.ts +1 -0
  26. package/dist/shared/components/{HelpfulTips.js → SetColorDialogHelpfulTips.js} +2 -2
  27. package/dist/shared/components/SetColorDialogRowPalettizer.d.ts +10 -0
  28. package/dist/shared/components/{RowPalettizer.js → SetColorDialogRowPalettizer.js} +13 -12
  29. package/dist/shared/components/ui/SetColorDialog.d.ts +31 -0
  30. package/dist/shared/components/ui/SetColorDialog.js +51 -0
  31. package/dist/shared/components/ui/SetColorDialogBulkEditPanel.d.ts +10 -0
  32. package/dist/shared/components/ui/SetColorDialogBulkEditPanel.js +84 -0
  33. package/dist/shared/components/ui/SetColorDialogHelpfulTips.d.ts +1 -0
  34. package/dist/shared/components/ui/SetColorDialogHelpfulTips.js +7 -0
  35. package/dist/shared/components/ui/SetColorDialogRowPalettizer.d.ts +10 -0
  36. package/dist/shared/components/ui/SetColorDialogRowPalettizer.js +41 -0
  37. package/dist/shared/util.d.ts +0 -1
  38. package/dist/shared/util.js +0 -8
  39. package/esm/LinearVariantDisplay/model.d.ts +17 -2
  40. package/esm/MultiLinearVariantDisplay/model.d.ts +17 -2
  41. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +17 -2
  42. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +6 -4
  43. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +6 -3
  44. package/esm/MultiLinearVariantRenderer/components/MultiLinearVariantRendering.d.ts +7 -2
  45. package/esm/MultiLinearVariantRenderer/components/MultiLinearVariantRendering.js +14 -17
  46. package/esm/MultiLinearVariantRenderer/makeImageData.d.ts +2 -1
  47. package/esm/MultiLinearVariantRenderer/makeImageData.js +32 -22
  48. package/esm/StructuralVariantChordRenderer/ReactComponent.js +1 -1
  49. package/esm/VariantFeatureWidget/AltFormatter.d.ts +2 -2
  50. package/esm/VariantFeatureWidget/AltFormatter.js +4 -4
  51. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +1 -1
  52. package/esm/VariantFeatureWidget/stateModelFactory.d.ts +4 -4
  53. package/esm/VcfAdapter/VcfAdapter.d.ts +5 -5
  54. package/esm/VcfAdapter/VcfAdapter.js +1 -1
  55. package/esm/VcfFeature/index.d.ts +1 -1
  56. package/esm/VcfFeature/index.js +19 -3
  57. package/esm/shared/MultiVariantBaseModel.d.ts +17 -2
  58. package/esm/shared/SharedVariantMixin.d.ts +17 -2
  59. package/esm/shared/components/MultiVariantClusterDialog/ClusterDialogManual.js +3 -3
  60. package/esm/shared/components/SetColorDialog.js +3 -46
  61. package/esm/shared/components/SetColorDialogBulkEditPanel.d.ts +10 -0
  62. package/esm/shared/components/{BulkEditPanel.js → SetColorDialogBulkEditPanel.js} +1 -1
  63. package/esm/shared/components/SetColorDialogHelpfulTips.d.ts +1 -0
  64. package/esm/shared/components/{HelpfulTips.js → SetColorDialogHelpfulTips.js} +1 -1
  65. package/esm/shared/components/SetColorDialogRowPalettizer.d.ts +10 -0
  66. package/esm/shared/components/{RowPalettizer.js → SetColorDialogRowPalettizer.js} +11 -10
  67. package/esm/shared/components/ui/SetColorDialog.d.ts +31 -0
  68. package/esm/shared/components/ui/SetColorDialog.js +45 -0
  69. package/esm/shared/components/ui/SetColorDialogBulkEditPanel.d.ts +10 -0
  70. package/esm/shared/components/ui/SetColorDialogBulkEditPanel.js +81 -0
  71. package/esm/shared/components/ui/SetColorDialogHelpfulTips.d.ts +1 -0
  72. package/esm/shared/components/ui/SetColorDialogHelpfulTips.js +4 -0
  73. package/esm/shared/components/ui/SetColorDialogRowPalettizer.d.ts +10 -0
  74. package/esm/shared/components/ui/SetColorDialogRowPalettizer.js +38 -0
  75. package/esm/shared/util.d.ts +0 -1
  76. package/esm/shared/util.js +0 -7
  77. package/package.json +7 -7
  78. package/dist/shared/components/BulkEditPanel.d.ts +0 -5
  79. package/dist/shared/components/HelpfulTips.d.ts +0 -1
  80. package/dist/shared/components/RowPalettizer.d.ts +0 -5
  81. package/esm/shared/components/BulkEditPanel.d.ts +0 -5
  82. package/esm/shared/components/HelpfulTips.d.ts +0 -1
  83. package/esm/shared/components/RowPalettizer.d.ts +0 -5
@@ -0,0 +1,10 @@
1
+ export default function SetColorDialogRowPalettizer({ setCurrLayout, currLayout, }: {
2
+ currLayout: {
3
+ name: string;
4
+ [key: string]: unknown;
5
+ }[];
6
+ setCurrLayout: (arg: {
7
+ name: string;
8
+ [key: string]: unknown;
9
+ }[]) => void;
10
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,16 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { set1 } from '@jbrowse/core/ui/colors';
3
+ import { randomColor } from '@jbrowse/core/util/color';
3
4
  import { Button } from '@mui/material';
4
- import { randomColor } from '../util';
5
- export default function RowPalettizer({ setCurrLayout, currLayout, }) {
6
- var _a;
7
- return (_jsxs("div", { children: ["Create color palette based on...", Object.keys((_a = currLayout[0]) !== null && _a !== void 0 ? _a : [])
8
- .filter(f => f !== 'name' &&
9
- f !== 'color' &&
10
- f !== 'label' &&
11
- f !== 'id' &&
12
- f !== 'HP')
13
- .map(r => (_jsx(Button, { variant: "contained", color: "inherit", onClick: () => {
5
+ export default function SetColorDialogRowPalettizer({ setCurrLayout, currLayout, }) {
6
+ if (!currLayout.length || !currLayout[0]) {
7
+ return null;
8
+ }
9
+ const fields = Object.keys(currLayout[0]).filter(f => f !== 'name' &&
10
+ f !== 'color' &&
11
+ f !== 'label' &&
12
+ f !== 'id' &&
13
+ f !== 'HP');
14
+ return (_jsxs("div", { children: ["Create color palette based on...", fields.map(r => (_jsx(Button, { variant: "contained", color: "inherit", onClick: () => {
14
15
  const map = new Map();
15
16
  for (const row of currLayout) {
16
17
  const val = map.get(row[r]);
@@ -0,0 +1,31 @@
1
+ interface SetColorDialogProps {
2
+ model: {
3
+ sources?: {
4
+ name: string;
5
+ [key: string]: unknown;
6
+ }[];
7
+ setLayout: (s: {
8
+ name: string;
9
+ [key: string]: unknown;
10
+ }[]) => void;
11
+ clearLayout: () => void;
12
+ };
13
+ handleClose: () => void;
14
+ title?: string;
15
+ enableBulkEdit?: boolean;
16
+ enableRowPalettizer?: boolean;
17
+ showTipsStorageKey?: string;
18
+ SourcesGridComponent: React.ComponentType<{
19
+ rows: {
20
+ name: string;
21
+ [key: string]: unknown;
22
+ }[];
23
+ onChange: (rows: {
24
+ name: string;
25
+ [key: string]: unknown;
26
+ }[]) => void;
27
+ showTips: boolean;
28
+ }>;
29
+ }
30
+ export default function SetColorDialog({ model, handleClose, title, enableBulkEdit, enableRowPalettizer, showTipsStorageKey, SourcesGridComponent, }: SetColorDialogProps): import("react/jsx-runtime").JSX.Element;
31
+ export {};
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import DraggableDialog from '@jbrowse/core/ui/DraggableDialog';
4
+ import { useLocalStorage } from '@jbrowse/core/util';
5
+ import { Button, DialogActions, DialogContent } from '@mui/material';
6
+ import { makeStyles } from 'tss-react/mui';
7
+ import SetColorDialogBulkEditPanel from './SetColorDialogBulkEditPanel';
8
+ import SetColorDialogHelpfulTips from './SetColorDialogHelpfulTips';
9
+ import SetColorDialogRowPalettizer from './SetColorDialogRowPalettizer';
10
+ const useStyles = makeStyles()({
11
+ content: {
12
+ minWidth: 800,
13
+ },
14
+ fr: {
15
+ float: 'right',
16
+ display: 'flex',
17
+ gap: 8,
18
+ },
19
+ });
20
+ export default function SetColorDialog({ model, handleClose, title = 'Color/arrangement editor', enableBulkEdit = false, enableRowPalettizer = false, showTipsStorageKey = 'setColorDialog-showTips', SourcesGridComponent, }) {
21
+ const { classes } = useStyles();
22
+ const { sources } = model;
23
+ const [showBulkEditor, setShowBulkEditor] = useState(false);
24
+ const [currLayout, setCurrLayout] = useState(structuredClone(sources || []));
25
+ const [showTips, setShowTips] = useLocalStorage(showTipsStorageKey, false);
26
+ return (_jsx(DraggableDialog, { open: true, onClose: handleClose, maxWidth: "xl", title: title, children: showBulkEditor && enableBulkEdit ? (_jsx(SetColorDialogBulkEditPanel, { currLayout: currLayout, onClose: arg => {
27
+ if (arg) {
28
+ setCurrLayout(arg);
29
+ }
30
+ setShowBulkEditor(false);
31
+ } })) : (_jsxs(_Fragment, { children: [_jsxs(DialogContent, { className: classes.content, children: [_jsxs("div", { className: classes.fr, children: [_jsx(Button, { variant: "contained", onClick: () => {
32
+ setShowTips(!showTips);
33
+ }, children: showTips ? 'Hide tips' : 'Show tips' }), enableBulkEdit ? (_jsx(Button, { color: "secondary", variant: "contained", onClick: () => {
34
+ setShowBulkEditor(!showBulkEditor);
35
+ }, children: "Show Bulk row editor" })) : null] }), showTips ? _jsx(SetColorDialogHelpfulTips, {}) : null, enableRowPalettizer ? (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsx(SetColorDialogRowPalettizer, { currLayout: currLayout, setCurrLayout: setCurrLayout })] })) : null, _jsx(SourcesGridComponent, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
36
+ model.clearLayout();
37
+ setCurrLayout(model.sources || []);
38
+ }, children: "Clear custom settings" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
39
+ handleClose();
40
+ setCurrLayout([...(model.sources || [])]);
41
+ }, children: "Cancel" }), _jsx(Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
42
+ model.setLayout(currLayout);
43
+ handleClose();
44
+ }, children: "Submit" })] })] })) }));
45
+ }
@@ -0,0 +1,10 @@
1
+ export default function SetColorDialogBulkEditPanel({ onClose, currLayout, }: {
2
+ currLayout: {
3
+ name: string;
4
+ [key: string]: unknown;
5
+ }[];
6
+ onClose: (arg?: {
7
+ name: string;
8
+ [key: string]: unknown;
9
+ }[]) => void;
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { ErrorMessage } from '@jbrowse/core/ui';
4
+ import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
5
+ import { makeStyles } from 'tss-react/mui';
6
+ const useStyles = makeStyles()({
7
+ textAreaFont: {
8
+ fontFamily: 'Courier New',
9
+ },
10
+ });
11
+ export default function SetColorDialogBulkEditPanel({ onClose, currLayout, }) {
12
+ const { classes } = useStyles();
13
+ const [val, setVal] = useState('');
14
+ const [error, setError] = useState();
15
+ return (_jsxs(_Fragment, { children: [_jsxs(DialogContent, { children: [_jsx(Typography, { children: "Paste CSV or TSV. If a header column is present. First line is a header. If a column called \"name\" is present, it uses that to connect to IDs in the table, otherwise it uses the first column no." }), error ? _jsx(ErrorMessage, { error: error }) : null, _jsx(TextField, { variant: "outlined", multiline: true, minRows: 5, placeholder: 'name,population\nHG00098,GBR\nHG00101,GBR\nHG00459,CHS\n...', maxRows: 10, fullWidth: true, value: val, onChange: event => {
16
+ setVal(event.target.value);
17
+ }, slotProps: {
18
+ input: {
19
+ classes: {
20
+ input: classes.textAreaFont,
21
+ },
22
+ },
23
+ } })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
24
+ const lines = val
25
+ .split('\n')
26
+ .map(f => f.trim())
27
+ .filter(f => !!f);
28
+ const fields = lines[0].split(/[,\t]/gm);
29
+ if (fields.includes('name')) {
30
+ setError('');
31
+ const oldLayout = Object.fromEntries(currLayout.map(record => [record.name, record]));
32
+ const newData = Object.fromEntries(lines.slice(1).map(line => {
33
+ const cols = line.split(/[,\t]/gm);
34
+ const newRecord = Object.fromEntries(cols.map((col, idx) => [fields[idx], col]));
35
+ return [
36
+ newRecord.name,
37
+ {
38
+ ...newRecord,
39
+ ...oldLayout[newRecord.name],
40
+ },
41
+ ];
42
+ }));
43
+ onClose(currLayout.map(record => ({
44
+ ...record,
45
+ ...newData[record.name],
46
+ })));
47
+ }
48
+ else {
49
+ setError(new Error('No "name" column found on line 1'));
50
+ }
51
+ }, children: "Update rows" }), _jsx(Button, { variant: "contained", color: "primary", onClick: () => {
52
+ const lines = val
53
+ .split('\n')
54
+ .map(f => f.trim())
55
+ .filter(f => !!f);
56
+ const fields = lines[0].split(/[,\t]/gm);
57
+ if (fields.includes('name')) {
58
+ setError('');
59
+ const oldLayout = Object.fromEntries(currLayout.map(record => [record.name, record]));
60
+ const newData = Object.fromEntries(lines.slice(1).map(line => {
61
+ const cols = line.split(/[,\t]/gm);
62
+ const newRecord = Object.fromEntries(cols.map((col, idx) => [fields[idx], col]));
63
+ return [
64
+ newRecord.name,
65
+ {
66
+ ...newRecord,
67
+ ...oldLayout[newRecord.name],
68
+ },
69
+ ];
70
+ }));
71
+ onClose(currLayout.map(record => ({
72
+ ...newData[record.name],
73
+ })));
74
+ }
75
+ else {
76
+ setError(new Error('No "name" column found on line 1'));
77
+ }
78
+ }, children: "Replace rows" }), _jsx(Button, { variant: "contained", color: "inherit", onClick: () => {
79
+ onClose();
80
+ }, children: "Cancel" })] })] }));
81
+ }
@@ -0,0 +1 @@
1
+ export default function SetColorDialogHelpfulTips(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ export default function SetColorDialogHelpfulTips() {
3
+ return (_jsxs(_Fragment, { children: ["Helpful tips", _jsxs("ul", { children: [_jsx("li", { children: "You can select rows in the table with the checkboxes" }), _jsx("li", { children: "Multi-select is enabled with shift-click and control-click" }), _jsx("li", { children: "The \"Move selected items up/down\" can re-arrange subtracks" }), _jsx("li", { children: "Sorting the data grid itself can also re-arrange subtracks" }), _jsx("li", { children: "Changes are applied when you hit Submit" }), _jsx("li", { children: "You can click and drag the dialog box to move it on the screen" }), _jsx("li", { children: "Columns in the table can be hidden using a vertical '...' menu on the right side of each column" })] })] }));
4
+ }
@@ -0,0 +1,10 @@
1
+ export default function SetColorDialogRowPalettizer({ setCurrLayout, currLayout, }: {
2
+ currLayout: {
3
+ name: string;
4
+ [key: string]: unknown;
5
+ }[];
6
+ setCurrLayout: (arg: {
7
+ name: string;
8
+ [key: string]: unknown;
9
+ }[]) => void;
10
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { set1 } from '@jbrowse/core/ui/colors';
3
+ import { randomColor } from '@jbrowse/core/util/color';
4
+ import { Button } from '@mui/material';
5
+ export default function SetColorDialogRowPalettizer({ setCurrLayout, currLayout, }) {
6
+ if (!currLayout.length || !currLayout[0]) {
7
+ return null;
8
+ }
9
+ const fields = Object.keys(currLayout[0]).filter(f => f !== 'name' &&
10
+ f !== 'color' &&
11
+ f !== 'label' &&
12
+ f !== 'id' &&
13
+ f !== 'HP');
14
+ return (_jsxs("div", { children: ["Create color palette based on...", fields.map(r => (_jsx(Button, { variant: "contained", color: "inherit", onClick: () => {
15
+ const map = new Map();
16
+ for (const row of currLayout) {
17
+ const val = map.get(row[r]);
18
+ if (!val) {
19
+ map.set(row[r], 1);
20
+ }
21
+ else {
22
+ map.set(row[r], val + 1);
23
+ }
24
+ }
25
+ const ret = Object.fromEntries([...map.entries()]
26
+ .sort((a, b) => a[1] - b[1])
27
+ .map((r, idx) => [r[0], set1[idx] || randomColor(r[0])]));
28
+ setCurrLayout(currLayout.map(row => ({
29
+ ...row,
30
+ color: ret[row[r]],
31
+ })));
32
+ }, children: r }, r))), _jsx(Button, { onClick: () => {
33
+ setCurrLayout(currLayout.map(row => ({
34
+ ...row,
35
+ color: undefined,
36
+ })));
37
+ }, children: "Clear colors" })] }));
38
+ }
@@ -1,3 +1,2 @@
1
1
  export declare function fillRectCtx(x: number, y: number, width: number, height: number, ctx: CanvasRenderingContext2D, color?: string): void;
2
- export declare function randomColor(str: string): string;
3
2
  export declare function colorify(n: number): string;
@@ -12,13 +12,6 @@ export function fillRectCtx(x, y, width, height, ctx, color) {
12
12
  }
13
13
  ctx.fillRect(x, y, width, height);
14
14
  }
15
- export function randomColor(str) {
16
- let sum = 0;
17
- for (let i = 0; i < str.length; i++) {
18
- sum += str.charCodeAt(i);
19
- }
20
- return colorify(sum * 10);
21
- }
22
15
  export function colorify(n) {
23
16
  return `hsl(${n % 255}, 50%, 50%)`;
24
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-variants",
3
- "version": "3.6.4",
3
+ "version": "3.7.0",
4
4
  "description": "JBrowse 2 variant adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -36,14 +36,14 @@
36
36
  "clean": "rimraf dist esm *.tsbuildinfo"
37
37
  },
38
38
  "dependencies": {
39
- "@flatten-js/interval-tree": "^1.0.15",
39
+ "@flatten-js/interval-tree": "^2.0.0",
40
40
  "@gmod/bgzf-filehandle": "^4.0.0",
41
41
  "@gmod/tabix": "^3.0.1",
42
42
  "@gmod/vcf": "^6.0.8",
43
- "@jbrowse/core": "^3.6.4",
44
- "@jbrowse/plugin-circular-view": "^3.6.4",
45
- "@jbrowse/plugin-linear-genome-view": "^3.6.4",
46
- "@jbrowse/sv-core": "^3.6.4",
43
+ "@jbrowse/core": "^3.7.0",
44
+ "@jbrowse/plugin-circular-view": "^3.7.0",
45
+ "@jbrowse/plugin-linear-genome-view": "^3.7.0",
46
+ "@jbrowse/sv-core": "^3.7.0",
47
47
  "@mui/icons-material": "^7.0.0",
48
48
  "@mui/material": "^7.0.0",
49
49
  "@mui/x-data-grid": "^8.0.0",
@@ -63,5 +63,5 @@
63
63
  "distModule": "esm/index.js",
64
64
  "srcModule": "src/index.ts",
65
65
  "module": "esm/index.js",
66
- "gitHead": "3db8e50ce2bd9c081efbf6c2e7ae5f342380a25a"
66
+ "gitHead": "85bdd0d58286b7adbfd408146b15847676317635"
67
67
  }
@@ -1,5 +0,0 @@
1
- import type { Source } from '../types';
2
- export default function BulkEditPanel({ onClose, currLayout, }: {
3
- currLayout: Source[];
4
- onClose: (arg?: Source[]) => void;
5
- }): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export default function HelpfulTips(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import type { Source } from '../types';
2
- export default function RowPalettizer({ setCurrLayout, currLayout, }: {
3
- currLayout: Source[];
4
- setCurrLayout: (arg: Source[]) => void;
5
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import type { Source } from '../types';
2
- export default function BulkEditPanel({ onClose, currLayout, }: {
3
- currLayout: Source[];
4
- onClose: (arg?: Source[]) => void;
5
- }): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export default function HelpfulTips(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- import type { Source } from '../types';
2
- export default function RowPalettizer({ setCurrLayout, currLayout, }: {
3
- currLayout: Source[];
4
- setCurrLayout: (arg: Source[]) => void;
5
- }): import("react/jsx-runtime").JSX.Element;