@coveord/plasma-mantine 48.22.3 → 48.23.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 +12 -12
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +1 -3
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/collection/Collection.js +15 -17
- package/dist/cjs/components/collection/Collection.js.map +1 -1
- package/dist/cjs/components/table/Table.js +48 -45
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/TableActions.js +4 -4
- package/dist/cjs/components/table/TableActions.js.map +1 -1
- package/dist/cjs/components/table/TableCollapsibleColumn.js +1 -1
- package/dist/cjs/components/table/TableCollapsibleColumn.js.map +1 -1
- package/dist/cjs/components/table/TableContext.js.map +1 -1
- package/dist/cjs/components/table/TableFilter.js +4 -0
- package/dist/cjs/components/table/TableFilter.js.map +1 -1
- package/dist/cjs/components/table/TableHeader.js +36 -4
- package/dist/cjs/components/table/TableHeader.js.map +1 -1
- package/dist/cjs/components/table/TablePerPage.js +3 -2
- package/dist/cjs/components/table/TablePerPage.js.map +1 -1
- package/dist/cjs/components/table/TableSelectableColumn.js +46 -0
- package/dist/cjs/components/table/TableSelectableColumn.js.map +1 -0
- package/dist/cjs/components/table/Th.js +5 -15
- package/dist/cjs/components/table/Th.js.map +1 -1
- package/dist/cjs/components/table/useRowSelection.js +58 -0
- package/dist/cjs/components/table/useRowSelection.js.map +1 -0
- package/dist/cjs/theme/Theme.js +15 -10
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/definitions/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/definitions/components/collection/Collection.d.ts.map +1 -1
- package/dist/definitions/components/table/Table.d.ts +12 -2
- package/dist/definitions/components/table/Table.d.ts.map +1 -1
- package/dist/definitions/components/table/TableActions.d.ts +3 -3
- package/dist/definitions/components/table/TableActions.d.ts.map +1 -1
- package/dist/definitions/components/table/TableCollapsibleColumn.d.ts +1 -1
- package/dist/definitions/components/table/TableContext.d.ts +6 -1
- package/dist/definitions/components/table/TableContext.d.ts.map +1 -1
- package/dist/definitions/components/table/TableFilter.d.ts.map +1 -1
- package/dist/definitions/components/table/TableHeader.d.ts.map +1 -1
- package/dist/definitions/components/table/TableSelectableColumn.d.ts +6 -0
- package/dist/definitions/components/table/TableSelectableColumn.d.ts.map +1 -0
- package/dist/definitions/components/table/Th.d.ts.map +1 -1
- package/dist/definitions/components/table/useRowSelection.d.ts +7 -0
- package/dist/definitions/components/table/useRowSelection.d.ts.map +1 -0
- package/dist/definitions/components/table/useTable.d.ts +2 -0
- package/dist/definitions/components/table/useTable.d.ts.map +1 -1
- package/dist/definitions/theme/Theme.d.ts.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +1 -3
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/collection/Collection.js +15 -17
- package/dist/esm/components/collection/Collection.js.map +1 -1
- package/dist/esm/components/table/Table.js +48 -45
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/TableActions.js +4 -4
- package/dist/esm/components/table/TableActions.js.map +1 -1
- package/dist/esm/components/table/TableCollapsibleColumn.js +2 -2
- package/dist/esm/components/table/TableCollapsibleColumn.js.map +1 -1
- package/dist/esm/components/table/TableContext.js.map +1 -1
- package/dist/esm/components/table/TableFilter.js +4 -0
- package/dist/esm/components/table/TableFilter.js.map +1 -1
- package/dist/esm/components/table/TableHeader.js +38 -6
- package/dist/esm/components/table/TableHeader.js.map +1 -1
- package/dist/esm/components/table/TablePerPage.js +3 -2
- package/dist/esm/components/table/TablePerPage.js.map +1 -1
- package/dist/esm/components/table/TableSelectableColumn.js +38 -0
- package/dist/esm/components/table/TableSelectableColumn.js.map +1 -0
- package/dist/esm/components/table/Th.js +5 -15
- package/dist/esm/components/table/Th.js.map +1 -1
- package/dist/esm/components/table/useRowSelection.js +48 -0
- package/dist/esm/components/table/useRowSelection.js.map +1 -0
- package/dist/esm/theme/Theme.js +15 -10
- package/dist/esm/theme/Theme.js.map +1 -1
- package/package.json +1 -1
- package/src/components/code-editor/CodeEditor.tsx +1 -3
- package/src/components/collection/Collection.tsx +8 -10
- package/src/components/table/Table.tsx +91 -62
- package/src/components/table/TableActions.tsx +7 -7
- package/src/components/table/TableCollapsibleColumn.tsx +2 -2
- package/src/components/table/TableContext.tsx +6 -1
- package/src/components/table/TableFilter.tsx +7 -1
- package/src/components/table/TableHeader.tsx +24 -4
- package/src/components/table/TablePerPage.tsx +1 -1
- package/src/components/table/TableSelectableColumn.tsx +33 -0
- package/src/components/table/Th.tsx +6 -19
- package/src/components/table/__tests__/Table.spec.tsx +100 -7
- package/src/components/table/__tests__/TableActions.spec.tsx +21 -0
- package/src/components/table/__tests__/TableFilter.spec.tsx +48 -1
- package/src/components/table/__tests__/TablePerPage.spec.tsx +24 -0
- package/src/components/table/useRowSelection.ts +45 -0
- package/src/theme/Theme.tsx +14 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TableFilter.tsx"],"sourcesContent":["import {SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {createStyles, TextInput, Selectors, DefaultProps} from '@mantine/core';\nimport {TableState} from '@tanstack/react-table';\nimport {ChangeEvent, FunctionComponent} from 'react';\nimport {useTable} from './useTable';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n marginBottom: '0 !important',\n },\n empty: {\n color: theme.colors.gray[4],\n },\n}));\n\ntype TableFilterStylesNames = Selectors<typeof useStyles>;\ninterface TableFilterProps extends DefaultProps<TableFilterStylesNames> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport const TableFilter: FunctionComponent<TableFilterProps> = ({\n placeholder = 'Search by any field',\n classNames,\n styles,\n unstyled,\n ...others\n}) => {\n const {classes, cx} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});\n const {state, setState} = useTable();\n\n const handleSearchChange = (event: ChangeEvent<HTMLInputElement>) => {\n const {value} = event.currentTarget;\n setState((prevState: TableState) => ({...prevState, globalFilter: value}));\n };\n\n return (\n <TextInput\n className={classes.wrapper}\n placeholder={placeholder}\n mb=\"md\"\n rightSection={<SearchSize16Px height={14} className={cx({[classes.empty]: !state.globalFilter})} />}\n value={state.globalFilter}\n onChange={handleSearchChange}\n {...others}\n />\n );\n};\n"],"names":["SearchSize16Px","createStyles","TextInput","useTable","useStyles","theme","wrapper","marginBottom","empty","color","colors","gray","TableFilter","placeholder","classNames","styles","unstyled","others","name","classes","cx","state","setState","handleSearchChange","event","value","currentTarget","prevState","globalFilter","className","mb","rightSection","height","onChange"],"mappings":"AAAA;;;;;AAAA,SAAQA,cAAc,QAAO,8BAA8B;AAC3D,SAAQC,YAAY,EAAEC,SAAS,QAAgC,gBAAgB;AAG/E,SAAQC,QAAQ,QAAO,aAAa;AAEpC,IAAMC,YAAYH,aAAa,SAACI;WAAW;QACvCC,SAAS;YACLC,cAAc;QAClB;QACAC,OAAO;YACHC,OAAOJ,MAAMK,MAAM,CAACC,IAAI,CAAC,EAAE;QAC/B;IACJ;;AAYA,OAAO,IAAMC,cAAmD,iBAM1D;oCALFC,aAAAA,8CAAc,4CACdC,oBAAAA,YACAC,gBAAAA,QACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAsBZ,aAAAA,UAAU,IAAI,EAAE;QAACc,MAAM;QAAeJ,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,IAAjFG,UAAef,WAAfe,SAASC,KAAMhB,WAANgB;IAChB,IAA0BjB,YAAAA,YAAnBkB,QAAmBlB,UAAnBkB,OAAOC,WAAYnB,UAAZmB;IAEd,IAAMC,qBAAqB,SAACC,OAAyC;QACjE,IAAM,AAACC,QAASD,MAAME,aAAa,CAA5BD;QACPH,SAAS,SAACK;mBAA2B,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TableFilter.tsx"],"sourcesContent":["import {SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {createStyles, TextInput, Selectors, DefaultProps} from '@mantine/core';\nimport {TableState} from '@tanstack/react-table';\nimport {ChangeEvent, FunctionComponent} from 'react';\nimport {useTable} from './useTable';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n marginBottom: '0 !important',\n },\n empty: {\n color: theme.colors.gray[4],\n },\n}));\n\ntype TableFilterStylesNames = Selectors<typeof useStyles>;\ninterface TableFilterProps extends DefaultProps<TableFilterStylesNames> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport const TableFilter: FunctionComponent<TableFilterProps> = ({\n placeholder = 'Search by any field',\n classNames,\n styles,\n unstyled,\n ...others\n}) => {\n const {classes, cx} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});\n const {state, setState} = useTable();\n\n const handleSearchChange = (event: ChangeEvent<HTMLInputElement>) => {\n const {value} = event.currentTarget;\n setState((prevState: TableState) => ({\n ...prevState,\n pagination: prevState.pagination\n ? {pageIndex: 0, pageSize: prevState.pagination.pageSize}\n : prevState.pagination,\n globalFilter: value,\n }));\n };\n\n return (\n <TextInput\n className={classes.wrapper}\n placeholder={placeholder}\n mb=\"md\"\n rightSection={<SearchSize16Px height={14} className={cx({[classes.empty]: !state.globalFilter})} />}\n value={state.globalFilter}\n onChange={handleSearchChange}\n {...others}\n />\n );\n};\n"],"names":["SearchSize16Px","createStyles","TextInput","useTable","useStyles","theme","wrapper","marginBottom","empty","color","colors","gray","TableFilter","placeholder","classNames","styles","unstyled","others","name","classes","cx","state","setState","handleSearchChange","event","value","currentTarget","prevState","pagination","pageIndex","pageSize","globalFilter","className","mb","rightSection","height","onChange"],"mappings":"AAAA;;;;;AAAA,SAAQA,cAAc,QAAO,8BAA8B;AAC3D,SAAQC,YAAY,EAAEC,SAAS,QAAgC,gBAAgB;AAG/E,SAAQC,QAAQ,QAAO,aAAa;AAEpC,IAAMC,YAAYH,aAAa,SAACI;WAAW;QACvCC,SAAS;YACLC,cAAc;QAClB;QACAC,OAAO;YACHC,OAAOJ,MAAMK,MAAM,CAACC,IAAI,CAAC,EAAE;QAC/B;IACJ;;AAYA,OAAO,IAAMC,cAAmD,iBAM1D;oCALFC,aAAAA,8CAAc,4CACdC,oBAAAA,YACAC,gBAAAA,QACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAsBZ,aAAAA,UAAU,IAAI,EAAE;QAACc,MAAM;QAAeJ,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,IAAjFG,UAAef,WAAfe,SAASC,KAAMhB,WAANgB;IAChB,IAA0BjB,YAAAA,YAAnBkB,QAAmBlB,UAAnBkB,OAAOC,WAAYnB,UAAZmB;IAEd,IAAMC,qBAAqB,SAACC,OAAyC;QACjE,IAAM,AAACC,QAASD,MAAME,aAAa,CAA5BD;QACPH,SAAS,SAACK;mBAA2B,wCAC9BA;gBACHC,YAAYD,UAAUC,UAAU,GAC1B;oBAACC,WAAW;oBAAGC,UAAUH,UAAUC,UAAU,CAACE,QAAQ;gBAAA,IACtDH,UAAUC,UAAU;gBAC1BG,cAAcN;;;IAEtB;IAEA,qBACI,KAACvB;QACG8B,WAAWb,QAAQb,OAAO;QAC1BO,aAAaA;QACboB,IAAG;QACHC,4BAAc,KAAClC;YAAemC,QAAQ;YAAIH,WAAWZ,GAAI,qBAACD,QAAQX,KAAK,EAAG,CAACa,MAAMU,YAAY;;QAC7FN,OAAOJ,MAAMU,YAAY;QACzBK,UAAUb;OACNN;AAGhB,EAAE"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import _object_spread from "@swc/helpers/src/_object_spread.mjs";
|
|
2
2
|
import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
|
|
3
3
|
import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
|
|
4
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import {
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { CrossSize16Px } from "@coveord/plasma-react-icons";
|
|
6
|
+
import { Button, createStyles, Group, Space, Tooltip } from "@mantine/core";
|
|
7
|
+
import { useTable } from "./useTable";
|
|
6
8
|
var useStyles = createStyles(function(theme) {
|
|
7
9
|
return {
|
|
8
10
|
root: {
|
|
@@ -10,7 +12,7 @@ var useStyles = createStyles(function(theme) {
|
|
|
10
12
|
top: 0,
|
|
11
13
|
zIndex: 13,
|
|
12
14
|
backgroundColor: theme.colors.gray[1],
|
|
13
|
-
borderBottom: "1px solid ".concat(theme.colors.gray[
|
|
15
|
+
borderBottom: "1px solid ".concat(theme.colors.gray[3])
|
|
14
16
|
}
|
|
15
17
|
};
|
|
16
18
|
});
|
|
@@ -21,18 +23,48 @@ export var TableHeader = function(_param) {
|
|
|
21
23
|
"unstyled",
|
|
22
24
|
"children"
|
|
23
25
|
]);
|
|
26
|
+
var _useTable = useTable(), getSelectedRows = _useTable.getSelectedRows, multiRowSelectionEnabled = _useTable.multiRowSelectionEnabled, clearSelection = _useTable.clearSelection;
|
|
24
27
|
var classes = useStyles(null, {
|
|
25
28
|
name: "TableHeader",
|
|
26
29
|
classNames: classNames,
|
|
27
30
|
styles: styles,
|
|
28
31
|
unstyled: unstyled
|
|
29
32
|
}).classes;
|
|
30
|
-
|
|
33
|
+
var selectedRows = getSelectedRows();
|
|
34
|
+
return multiRowSelectionEnabled ? /*#__PURE__*/ _jsxs(Group, {
|
|
35
|
+
position: "apart",
|
|
36
|
+
className: classes.root,
|
|
37
|
+
children: [
|
|
38
|
+
selectedRows.length > 0 ? /*#__PURE__*/ _jsx(Tooltip, {
|
|
39
|
+
label: "Unselect all",
|
|
40
|
+
children: /*#__PURE__*/ _jsxs(Button, {
|
|
41
|
+
onClick: clearSelection,
|
|
42
|
+
ml: "lg",
|
|
43
|
+
variant: "subtle",
|
|
44
|
+
leftIcon: /*#__PURE__*/ _jsx(CrossSize16Px, {
|
|
45
|
+
height: 16
|
|
46
|
+
}),
|
|
47
|
+
children: [
|
|
48
|
+
selectedRows.length,
|
|
49
|
+
" selected"
|
|
50
|
+
]
|
|
51
|
+
})
|
|
52
|
+
}) : /*#__PURE__*/ _jsx(Space, {}),
|
|
53
|
+
/*#__PURE__*/ _jsx(Group, _object_spread_props(_object_spread({
|
|
54
|
+
position: "right",
|
|
55
|
+
spacing: "lg",
|
|
56
|
+
px: "md",
|
|
57
|
+
py: "sm"
|
|
58
|
+
}, others), {
|
|
59
|
+
children: children
|
|
60
|
+
}))
|
|
61
|
+
]
|
|
62
|
+
}) : /*#__PURE__*/ _jsx(Group, _object_spread_props(_object_spread({
|
|
31
63
|
position: "right",
|
|
32
64
|
spacing: "lg",
|
|
33
|
-
className: classes.root,
|
|
34
65
|
px: "md",
|
|
35
|
-
py: "sm"
|
|
66
|
+
py: "sm",
|
|
67
|
+
className: classes.root
|
|
36
68
|
}, others), {
|
|
37
69
|
children: children
|
|
38
70
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TableHeader.tsx"],"sourcesContent":["import {createStyles, DefaultProps, Group, Selectors} from '@mantine/core';\nimport {FunctionComponent, ReactNode} from 'react';\n\nconst useStyles = createStyles((theme) => ({\n root: {\n position: 'sticky',\n top: 0,\n zIndex: 13, // skeleton is 11\n backgroundColor: theme.colors.gray[1],\n borderBottom: `1px solid ${theme.colors.gray[
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TableHeader.tsx"],"sourcesContent":["import {CrossSize16Px} from '@coveord/plasma-react-icons';\nimport {Button, createStyles, DefaultProps, Group, Selectors, Space, Tooltip} from '@mantine/core';\nimport {FunctionComponent, ReactNode} from 'react';\n\nimport {useTable} from './useTable';\n\nconst useStyles = createStyles((theme) => ({\n root: {\n position: 'sticky',\n top: 0,\n zIndex: 13, // skeleton is 11\n backgroundColor: theme.colors.gray[1],\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n}));\n\ntype TableHeaderStylesNames = Selectors<typeof useStyles>;\ninterface TableHeaderProps extends DefaultProps<TableHeaderStylesNames> {\n /* Children of header (ie: actions, datepicker, etc.) */\n children?: ReactNode;\n}\nexport const TableHeader: FunctionComponent<TableHeaderProps> = ({\n classNames,\n styles,\n unstyled,\n children,\n ...others\n}) => {\n const {getSelectedRows, multiRowSelectionEnabled, clearSelection} = useTable();\n const {classes} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});\n const selectedRows = getSelectedRows();\n return multiRowSelectionEnabled ? (\n <Group position=\"apart\" className={classes.root}>\n {selectedRows.length > 0 ? (\n <Tooltip label=\"Unselect all\">\n <Button onClick={clearSelection} ml=\"lg\" variant=\"subtle\" leftIcon={<CrossSize16Px height={16} />}>\n {selectedRows.length} selected\n </Button>\n </Tooltip>\n ) : (\n <Space />\n )}\n <Group position=\"right\" spacing=\"lg\" px=\"md\" py=\"sm\" {...others}>\n {children}\n </Group>\n </Group>\n ) : (\n <Group position=\"right\" spacing=\"lg\" px=\"md\" py=\"sm\" className={classes.root} {...others}>\n {children}\n </Group>\n );\n};\n"],"names":["CrossSize16Px","Button","createStyles","Group","Space","Tooltip","useTable","useStyles","theme","root","position","top","zIndex","backgroundColor","colors","gray","borderBottom","TableHeader","classNames","styles","unstyled","children","others","getSelectedRows","multiRowSelectionEnabled","clearSelection","classes","name","selectedRows","className","length","label","onClick","ml","variant","leftIcon","height","spacing","px","py"],"mappings":"AAAA;;;;AAAA,SAAQA,aAAa,QAAO,8BAA8B;AAC1D,SAAQC,MAAM,EAAEC,YAAY,EAAgBC,KAAK,EAAaC,KAAK,EAAEC,OAAO,QAAO,gBAAgB;AAGnG,SAAQC,QAAQ,QAAO,aAAa;AAEpC,IAAMC,YAAYL,aAAa,SAACM;WAAW;QACvCC,MAAM;YACFC,UAAU;YACVC,KAAK;YACLC,QAAQ;YACRC,iBAAiBL,MAAMM,MAAM,CAACC,IAAI,CAAC,EAAE;YACrCC,cAAc,AAAC,aAAiC,OAArBR,MAAMM,MAAM,CAACC,IAAI,CAAC,EAAE;QACnD;IACJ;;AAOA,OAAO,IAAME,cAAmD,iBAM1D;QALFC,oBAAAA,YACAC,gBAAAA,QACAC,kBAAAA,UACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAoEf,YAAAA,YAA7DiB,kBAA6DjB,UAA7DiB,iBAAiBC,2BAA4ClB,UAA5CkB,0BAA0BC,iBAAkBnB,UAAlBmB;IAClD,IAAM,AAACC,UAAWnB,UAAU,IAAI,EAAE;QAACoB,MAAM;QAAeT,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,GAA7EM;IACP,IAAME,eAAeL;IACrB,OAAOC,yCACH,MAACrB;QAAMO,UAAS;QAAQmB,WAAWH,QAAQjB,IAAI;;YAC1CmB,aAAaE,MAAM,GAAG,kBACnB,KAACzB;gBAAQ0B,OAAM;0BACX,cAAA,MAAC9B;oBAAO+B,SAASP;oBAAgBQ,IAAG;oBAAKC,SAAQ;oBAASC,wBAAU,KAACnC;wBAAcoC,QAAQ;;;wBACtFR,aAAaE,MAAM;wBAAC;;;+BAI7B,KAAC1B,UACJ;0BACD,KAACD;gBAAMO,UAAS;gBAAQ2B,SAAQ;gBAAKC,IAAG;gBAAKC,IAAG;eAASjB;0BACpDD;;;uBAIT,KAAClB;QAAMO,UAAS;QAAQ2B,SAAQ;QAAKC,IAAG;QAAKC,IAAG;QAAKV,WAAWH,QAAQjB,IAAI;OAAMa;kBAC7ED;OAER;AACL,EAAE"}
|
|
@@ -13,9 +13,10 @@ export var TablePerPage = function(param) {
|
|
|
13
13
|
var updatePerPage = function(newPerPage) {
|
|
14
14
|
setState(function(prevState) {
|
|
15
15
|
return _object_spread_props(_object_spread({}, prevState), {
|
|
16
|
-
pagination:
|
|
16
|
+
pagination: {
|
|
17
|
+
pageIndex: 0,
|
|
17
18
|
pageSize: parseInt(newPerPage, 10)
|
|
18
|
-
}
|
|
19
|
+
}
|
|
19
20
|
});
|
|
20
21
|
});
|
|
21
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TablePerPage.tsx"],"sourcesContent":["import {Group, SegmentedControl, Text} from '@mantine/core';\nimport {TableState} from '@tanstack/react-table';\nimport {FunctionComponent} from 'react';\n\nimport {useTable} from './useTable';\n\ninterface TablePerPageProps {\n /**\n * The label displayed before the control\n *\n * @default Results per page\n */\n label?: string;\n /**\n * The per page choices to display\n *\n * @default [25, 50, 100]\n */\n values?: number[];\n}\n\nexport const TablePerPage: FunctionComponent<TablePerPageProps> & {DEFAULT_SIZE: number} = ({\n label = 'Results per page',\n values = [25, 50, 100],\n}) => {\n const {state, setState} = useTable();\n\n const updatePerPage = (newPerPage: string) => {\n setState((prevState: TableState) => ({\n ...prevState,\n pagination: {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TablePerPage.tsx"],"sourcesContent":["import {Group, SegmentedControl, Text} from '@mantine/core';\nimport {TableState} from '@tanstack/react-table';\nimport {FunctionComponent} from 'react';\n\nimport {useTable} from './useTable';\n\ninterface TablePerPageProps {\n /**\n * The label displayed before the control\n *\n * @default Results per page\n */\n label?: string;\n /**\n * The per page choices to display\n *\n * @default [25, 50, 100]\n */\n values?: number[];\n}\n\nexport const TablePerPage: FunctionComponent<TablePerPageProps> & {DEFAULT_SIZE: number} = ({\n label = 'Results per page',\n values = [25, 50, 100],\n}) => {\n const {state, setState} = useTable();\n\n const updatePerPage = (newPerPage: string) => {\n setState((prevState: TableState) => ({\n ...prevState,\n pagination: {pageIndex: 0, pageSize: parseInt(newPerPage, 10)},\n }));\n };\n\n return (\n <Group>\n <Text>{label}</Text>\n <SegmentedControl\n value={state.pagination.pageSize.toString() ?? values?.[1].toString()}\n onChange={updatePerPage}\n data={values.map((value) => value.toString())}\n color=\"action\"\n size=\"md\"\n />\n </Group>\n );\n};\n\nTablePerPage.DEFAULT_SIZE = 50;\n"],"names":["Group","SegmentedControl","Text","useTable","TablePerPage","label","values","state","setState","updatePerPage","newPerPage","prevState","pagination","pageIndex","pageSize","parseInt","value","toString","onChange","data","map","color","size","DEFAULT_SIZE"],"mappings":"AAAA;;;AAAA,SAAQA,KAAK,EAAEC,gBAAgB,EAAEC,IAAI,QAAO,gBAAgB;AAI5D,SAAQC,QAAQ,QAAO,aAAa;AAiBpC,OAAO,IAAMC,eAA8E,gBAGrF;6BAFFC,OAAAA,kCAAQ,yDACRC,QAAAA,oCAAS;QAAC;QAAI;QAAI;KAAI;IAEtB,IAA0BH,YAAAA,YAAnBI,QAAmBJ,UAAnBI,OAAOC,WAAYL,UAAZK;IAEd,IAAMC,gBAAgB,SAACC,YAAuB;QAC1CF,SAAS,SAACG;mBAA2B,wCAC9BA;gBACHC,YAAY;oBAACC,WAAW;oBAAGC,UAAUC,SAASL,YAAY;gBAAG;;;IAErE;QAMmBH;IAJnB,qBACI,MAACP;;0BACG,KAACE;0BAAMG;;0BACP,KAACJ;gBACGe,OAAOT,CAAAA,sCAAAA,MAAMK,UAAU,CAACE,QAAQ,CAACG,QAAQ,gBAAlCV,iDAAAA,sCAAwCD,mBAAAA,oBAAAA,KAAAA,IAAAA,MAAQ,CAAC,EAAE,CAACW,QAAQ,EAAE;gBACrEC,UAAUT;gBACVU,MAAMb,OAAOc,GAAG,CAAC,SAACJ;2BAAUA,MAAMC,QAAQ;;gBAC1CI,OAAM;gBACNC,MAAK;;;;AAIrB,EAAE;AAEFlB,aAAamB,YAAY,GAAG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Checkbox, Tooltip } from "@mantine/core";
|
|
3
|
+
/**
|
|
4
|
+
* Generic column to use when your table needs multi selection of rows
|
|
5
|
+
*/ export var TableSelectableColumn = {
|
|
6
|
+
id: "select",
|
|
7
|
+
enableSorting: false,
|
|
8
|
+
header: function(param) {
|
|
9
|
+
var table = param.table;
|
|
10
|
+
var label = table.getIsAllRowsSelected() ? "Unselect all from this page" : "Select all from this page";
|
|
11
|
+
return /*#__PURE__*/ _jsx(Tooltip, {
|
|
12
|
+
label: label,
|
|
13
|
+
children: /*#__PURE__*/ _jsx(Checkbox, {
|
|
14
|
+
checked: table.getIsAllPageRowsSelected(),
|
|
15
|
+
indeterminate: table.getIsSomePageRowsSelected(),
|
|
16
|
+
onChange: table.getToggleAllPageRowsSelectedHandler(),
|
|
17
|
+
sx: {
|
|
18
|
+
display: "flex"
|
|
19
|
+
},
|
|
20
|
+
"aria-label": label
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
cell: function(param) {
|
|
25
|
+
var row = param.row;
|
|
26
|
+
return /*#__PURE__*/ _jsx(Checkbox, {
|
|
27
|
+
checked: row.getIsSelected(),
|
|
28
|
+
indeterminate: row.getIsSomeSelected(),
|
|
29
|
+
onChange: row.getToggleSelectedHandler(),
|
|
30
|
+
sx: {
|
|
31
|
+
display: "flex"
|
|
32
|
+
},
|
|
33
|
+
"aria-label": "Select row"
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=TableSelectableColumn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TableSelectableColumn.tsx"],"sourcesContent":["import {Checkbox, Tooltip} from '@mantine/core';\nimport {ColumnDef} from '@tanstack/table-core';\n\n/**\n * Generic column to use when your table needs multi selection of rows\n */\nexport const TableSelectableColumn: ColumnDef<unknown> = {\n id: 'select',\n enableSorting: false,\n header: ({table}) => {\n const label = table.getIsAllRowsSelected() ? 'Unselect all from this page' : 'Select all from this page';\n return (\n <Tooltip label={label}>\n <Checkbox\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={table.getToggleAllPageRowsSelectedHandler()}\n sx={{display: 'flex'}}\n aria-label={label}\n />\n </Tooltip>\n );\n },\n cell: ({row}) => (\n <Checkbox\n checked={row.getIsSelected()}\n indeterminate={row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n sx={{display: 'flex'}}\n aria-label=\"Select row\"\n />\n ),\n};\n"],"names":["Checkbox","Tooltip","TableSelectableColumn","id","enableSorting","header","table","label","getIsAllRowsSelected","checked","getIsAllPageRowsSelected","indeterminate","getIsSomePageRowsSelected","onChange","getToggleAllPageRowsSelectedHandler","sx","display","aria-label","cell","row","getIsSelected","getIsSomeSelected","getToggleSelectedHandler"],"mappings":"AAAA;AAAA,SAAQA,QAAQ,EAAEC,OAAO,QAAO,gBAAgB;AAGhD;;CAEC,GACD,OAAO,IAAMC,wBAA4C;IACrDC,IAAI;IACJC,eAAe,KAAK;IACpBC,QAAQ,gBAAa;YAAXC,cAAAA;QACN,IAAMC,QAAQD,MAAME,oBAAoB,KAAK,gCAAgC,2BAA2B;QACxG,qBACI,KAACP;YAAQM,OAAOA;sBACZ,cAAA,KAACP;gBACGS,SAASH,MAAMI,wBAAwB;gBACvCC,eAAeL,MAAMM,yBAAyB;gBAC9CC,UAAUP,MAAMQ,mCAAmC;gBACnDC,IAAI;oBAACC,SAAS;gBAAM;gBACpBC,cAAYV;;;IAI5B;IACAW,MAAM;YAAEC,YAAAA;6BACJ,KAACnB;YACGS,SAASU,IAAIC,aAAa;YAC1BT,eAAeQ,IAAIE,iBAAiB;YACpCR,UAAUM,IAAIG,wBAAwB;YACtCP,IAAI;gBAACC,SAAS;YAAM;YACpBC,cAAW;;;AAGvB,EAAE"}
|
|
@@ -5,25 +5,15 @@ import { defaultColumnSizing, flexRender } from "@tanstack/react-table";
|
|
|
5
5
|
var useStyles = createStyles(function(theme) {
|
|
6
6
|
return {
|
|
7
7
|
th: {
|
|
8
|
-
padding: "0 !important",
|
|
9
8
|
fontWeight: "400 !important",
|
|
9
|
+
padding: "0 !important",
|
|
10
10
|
color: theme.black + "!important",
|
|
11
|
-
|
|
12
|
-
padding: "8px 16px",
|
|
13
|
-
div: {
|
|
14
|
-
padding: "0px !important"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
div: {
|
|
18
|
-
padding: "8px 16px"
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
noSort: {
|
|
22
|
-
padding: "".concat(theme.spacing.xs, "px ").concat(theme.spacing.md, "px")
|
|
11
|
+
verticalAlign: "middle"
|
|
23
12
|
},
|
|
24
13
|
control: {
|
|
25
14
|
width: "100%",
|
|
26
|
-
padding: "".concat(theme.spacing.xs, "px ").concat(theme.spacing.
|
|
15
|
+
padding: "".concat(theme.spacing.xs, "px ").concat(theme.spacing.sm, "px"),
|
|
16
|
+
whiteSpace: "nowrap",
|
|
27
17
|
"&:hover": {
|
|
28
18
|
backgroundColor: theme.colorScheme === "dark" ? theme.colors.gray[6] : theme.colors.gray[2]
|
|
29
19
|
}
|
|
@@ -53,7 +43,6 @@ export var Th = function(param) {
|
|
|
53
43
|
width: width
|
|
54
44
|
},
|
|
55
45
|
children: /*#__PURE__*/ _jsx(Text, {
|
|
56
|
-
className: classes.noSort,
|
|
57
46
|
size: "xs",
|
|
58
47
|
children: flexRender(header.column.columnDef.header, header.getContext())
|
|
59
48
|
})
|
|
@@ -73,6 +62,7 @@ export var Th = function(param) {
|
|
|
73
62
|
className: classes.control,
|
|
74
63
|
children: /*#__PURE__*/ _jsxs(Group, {
|
|
75
64
|
position: "apart",
|
|
65
|
+
noWrap: true,
|
|
76
66
|
children: [
|
|
77
67
|
/*#__PURE__*/ _jsx(Text, {
|
|
78
68
|
size: "xs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Th.tsx"],"sourcesContent":["import {ArrowHeadDownSize16Px, ArrowHeadUpSize16Px} from '@coveord/plasma-react-icons';\nimport {Center, createStyles, Group, Text, UnstyledButton} from '@mantine/core';\nimport {defaultColumnSizing, flexRender, Header} from '@tanstack/react-table';\n\nconst useStyles = createStyles((theme) => ({\n th: {\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Th.tsx"],"sourcesContent":["import {ArrowHeadDownSize16Px, ArrowHeadUpSize16Px} from '@coveord/plasma-react-icons';\nimport {Center, createStyles, Group, Text, UnstyledButton} from '@mantine/core';\nimport {defaultColumnSizing, flexRender, Header} from '@tanstack/react-table';\n\nconst useStyles = createStyles((theme) => ({\n th: {\n fontWeight: '400 !important' as any,\n padding: '0 !important',\n color: theme.black + '!important',\n verticalAlign: 'middle',\n },\n\n control: {\n width: '100%',\n padding: `${theme.spacing.xs}px ${theme.spacing.sm}px`,\n whiteSpace: 'nowrap',\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[6] : theme.colors.gray[2],\n },\n },\n}));\n\ninterface ThProps<T> {\n header: Header<T, unknown>;\n}\n\nconst SortingIcons = {\n asc: ArrowHeadDownSize16Px,\n desc: ArrowHeadUpSize16Px,\n};\n\nconst SortingLabels = {\n asc: 'ascending',\n desc: 'descending',\n} as const;\n\nexport const Th = <T,>({header}: ThProps<T>) => {\n const {classes} = useStyles();\n const size = header.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n\n if (header.isPlaceholder) {\n return null;\n }\n\n if (!header.column.getCanSort()) {\n return (\n <th className={classes.th} style={{width}}>\n <Text size=\"xs\">{flexRender(header.column.columnDef.header, header.getContext())}</Text>\n </th>\n );\n }\n\n const onSort = header.column.getToggleSortingHandler();\n const sortingOrder = header.column.getIsSorted();\n const Icon = SortingIcons[sortingOrder || header.column.getFirstSortDir()];\n\n return (\n <th className={classes.th} style={{width}} aria-sort={sortingOrder ? SortingLabels[sortingOrder] : 'none'}>\n <UnstyledButton onClick={onSort} className={classes.control}>\n <Group position=\"apart\" noWrap>\n <Text size=\"xs\">{flexRender(header.column.columnDef.header, header.getContext())}</Text>\n <Center sx={(theme) => ({color: sortingOrder ? theme.colors.action[8] : undefined})}>\n <Icon height={14} />\n </Center>\n </Group>\n </UnstyledButton>\n </th>\n );\n};\n"],"names":["ArrowHeadDownSize16Px","ArrowHeadUpSize16Px","Center","createStyles","Group","Text","UnstyledButton","defaultColumnSizing","flexRender","useStyles","theme","th","fontWeight","padding","color","black","verticalAlign","control","width","spacing","xs","sm","whiteSpace","backgroundColor","colorScheme","colors","gray","SortingIcons","asc","desc","SortingLabels","Th","header","classes","size","column","getSize","undefined","isPlaceholder","getCanSort","className","style","columnDef","getContext","onSort","getToggleSortingHandler","sortingOrder","getIsSorted","Icon","getFirstSortDir","aria-sort","onClick","position","noWrap","sx","action","height"],"mappings":"AAAA;AAAA,SAAQA,qBAAqB,EAAEC,mBAAmB,QAAO,8BAA8B;AACvF,SAAQC,MAAM,EAAEC,YAAY,EAAEC,KAAK,EAAEC,IAAI,EAAEC,cAAc,QAAO,gBAAgB;AAChF,SAAQC,mBAAmB,EAAEC,UAAU,QAAe,wBAAwB;AAE9E,IAAMC,YAAYN,aAAa,SAACO;WAAW;QACvCC,IAAI;YACAC,YAAY;YACZC,SAAS;YACTC,OAAOJ,MAAMK,KAAK,GAAG;YACrBC,eAAe;QACnB;QAEAC,SAAS;YACLC,OAAO;YACPL,SAAS,AAAC,GAAwBH,OAAtBA,MAAMS,OAAO,CAACC,EAAE,EAAC,OAAsB,OAAjBV,MAAMS,OAAO,CAACE,EAAE,EAAC;YACnDC,YAAY;YAEZ,WAAW;gBACPC,iBAAiBb,MAAMc,WAAW,KAAK,SAASd,MAAMe,MAAM,CAACC,IAAI,CAAC,EAAE,GAAGhB,MAAMe,MAAM,CAACC,IAAI,CAAC,EAAE;YAC/F;QACJ;IACJ;;AAMA,IAAMC,eAAe;IACjBC,KAAK5B;IACL6B,MAAM5B;AACV;AAEA,IAAM6B,gBAAgB;IAClBF,KAAK;IACLC,MAAM;AACV;AAEA,OAAO,IAAME,KAAK,gBAA8B;QAAxBC,eAAAA;IACpB,IAAM,AAACC,UAAWxB,YAAXwB;IACP,IAAMC,OAAOF,OAAOG,MAAM,CAACC,OAAO;IAClC,IAAMlB,QAAQgB,SAAS3B,oBAAoB2B,IAAI,GAAGA,OAAOG,SAAS;IAElE,IAAIL,OAAOM,aAAa,EAAE;QACtB,OAAO,IAAI;IACf,CAAC;IAED,IAAI,CAACN,OAAOG,MAAM,CAACI,UAAU,IAAI;QAC7B,qBACI,KAAC5B;YAAG6B,WAAWP,QAAQtB,EAAE;YAAE8B,OAAO;gBAACvB,OAAAA;YAAK;sBACpC,cAAA,KAACb;gBAAK6B,MAAK;0BAAM1B,WAAWwB,OAAOG,MAAM,CAACO,SAAS,CAACV,MAAM,EAAEA,OAAOW,UAAU;;;IAGzF,CAAC;IAED,IAAMC,SAASZ,OAAOG,MAAM,CAACU,uBAAuB;IACpD,IAAMC,eAAed,OAAOG,MAAM,CAACY,WAAW;IAC9C,IAAMC,OAAOrB,YAAY,CAACmB,gBAAgBd,OAAOG,MAAM,CAACc,eAAe,GAAG;IAE1E,qBACI,KAACtC;QAAG6B,WAAWP,QAAQtB,EAAE;QAAE8B,OAAO;YAACvB,OAAAA;QAAK;QAAGgC,aAAWJ,eAAehB,aAAa,CAACgB,aAAa,GAAG,MAAM;kBACrG,cAAA,KAACxC;YAAe6C,SAASP;YAAQJ,WAAWP,QAAQhB,OAAO;sBACvD,cAAA,MAACb;gBAAMgD,UAAS;gBAAQC,MAAM;;kCAC1B,KAAChD;wBAAK6B,MAAK;kCAAM1B,WAAWwB,OAAOG,MAAM,CAACO,SAAS,CAACV,MAAM,EAAEA,OAAOW,UAAU;;kCAC7E,KAACzC;wBAAOoD,IAAI,SAAC5C;mCAAW;gCAACI,OAAOgC,eAAepC,MAAMe,MAAM,CAAC8B,MAAM,CAAC,EAAE,GAAGlB,SAAS;4BAAA;;kCAC7E,cAAA,KAACW;4BAAKQ,QAAQ;;;;;;;AAMtC,EAAE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import _object_spread from "@swc/helpers/src/_object_spread.mjs";
|
|
2
|
+
import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
|
|
3
|
+
import _sliced_to_array from "@swc/helpers/src/_sliced_to_array.mjs";
|
|
4
|
+
import { functionalUpdate } from "@tanstack/table-core";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
export var useRowSelection = function(table) {
|
|
7
|
+
var _useState = _sliced_to_array(useState({}), 2), rowSelection = _useState[0], setRowSelection = _useState[1];
|
|
8
|
+
table.setOptions(function(prev) {
|
|
9
|
+
return _object_spread_props(_object_spread({}, prev), {
|
|
10
|
+
onRowSelectionChange: function(rowSelectionUpdater) {
|
|
11
|
+
table.setState(function(old) {
|
|
12
|
+
var selectedRowsIds = functionalUpdate(rowSelectionUpdater, old["rowSelection"]);
|
|
13
|
+
setRowSelection(function(current) {
|
|
14
|
+
var currentRowsById = table.getRowModel().rowsById;
|
|
15
|
+
return Object.keys(selectedRowsIds).reduce(function(memo, rowId) {
|
|
16
|
+
if (current[rowId]) {
|
|
17
|
+
memo[rowId] = current[rowId];
|
|
18
|
+
} else {
|
|
19
|
+
memo[rowId] = currentRowsById[rowId].original;
|
|
20
|
+
}
|
|
21
|
+
return memo;
|
|
22
|
+
}, {});
|
|
23
|
+
});
|
|
24
|
+
return _object_spread_props(_object_spread({}, old), {
|
|
25
|
+
rowSelection: selectedRowsIds
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
var clearSelection = function() {
|
|
32
|
+
table.resetRowSelection(true);
|
|
33
|
+
};
|
|
34
|
+
var getSelectedRows = function() {
|
|
35
|
+
return Object.values(rowSelection);
|
|
36
|
+
};
|
|
37
|
+
var _getSelectedRows_;
|
|
38
|
+
var getSelectedRow = function() {
|
|
39
|
+
return (_getSelectedRows_ = getSelectedRows()[0]) !== null && _getSelectedRows_ !== void 0 ? _getSelectedRows_ : null;
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
clearSelection: clearSelection,
|
|
43
|
+
getSelectedRow: getSelectedRow,
|
|
44
|
+
getSelectedRows: getSelectedRows
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=useRowSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/useRowSelection.ts"],"sourcesContent":["import {functionalUpdate, Table} from '@tanstack/table-core';\nimport {useState} from 'react';\n\nexport const useRowSelection = <T>(table: Table<T>) => {\n const [rowSelection, setRowSelection] = useState<Record<string, T>>({});\n\n table.setOptions((prev) => ({\n ...prev,\n onRowSelectionChange: (rowSelectionUpdater) => {\n table.setState((old) => {\n const selectedRowsIds = functionalUpdate(rowSelectionUpdater, old['rowSelection']);\n setRowSelection((current) => {\n const currentRowsById = table.getRowModel().rowsById;\n return Object.keys(selectedRowsIds).reduce((memo, rowId) => {\n if (current[rowId]) {\n memo[rowId] = current[rowId];\n } else {\n memo[rowId] = currentRowsById[rowId].original;\n }\n return memo;\n }, {} as Record<string, T>);\n });\n\n return {\n ...old,\n rowSelection: selectedRowsIds,\n };\n });\n },\n }));\n\n const clearSelection = () => {\n table.resetRowSelection(true);\n };\n\n const getSelectedRows = () => Object.values(rowSelection);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n return {\n clearSelection,\n getSelectedRow,\n getSelectedRows,\n };\n};\n"],"names":["functionalUpdate","useState","useRowSelection","table","rowSelection","setRowSelection","setOptions","prev","onRowSelectionChange","rowSelectionUpdater","setState","old","selectedRowsIds","current","currentRowsById","getRowModel","rowsById","Object","keys","reduce","memo","rowId","original","clearSelection","resetRowSelection","getSelectedRows","values","getSelectedRow"],"mappings":"AAAA;;;AAAA,SAAQA,gBAAgB,QAAc,uBAAuB;AAC7D,SAAQC,QAAQ,QAAO,QAAQ;AAE/B,OAAO,IAAMC,kBAAkB,SAAIC,OAAoB;IACnD,IAAwCF,6BAAAA,SAA4B,CAAC,QAA9DG,eAAiCH,cAAnBI,kBAAmBJ;IAExCE,MAAMG,UAAU,CAAC,SAACC;eAAU,wCACrBA;YACHC,sBAAsB,SAACC,qBAAwB;gBAC3CN,MAAMO,QAAQ,CAAC,SAACC,KAAQ;oBACpB,IAAMC,kBAAkBZ,iBAAiBS,qBAAqBE,GAAG,CAAC,eAAe;oBACjFN,gBAAgB,SAACQ,SAAY;wBACzB,IAAMC,kBAAkBX,MAAMY,WAAW,GAAGC,QAAQ;wBACpD,OAAOC,OAAOC,IAAI,CAACN,iBAAiBO,MAAM,CAAC,SAACC,MAAMC,OAAU;4BACxD,IAAIR,OAAO,CAACQ,MAAM,EAAE;gCAChBD,IAAI,CAACC,MAAM,GAAGR,OAAO,CAACQ,MAAM;4BAChC,OAAO;gCACHD,IAAI,CAACC,MAAM,GAAGP,eAAe,CAACO,MAAM,CAACC,QAAQ;4BACjD,CAAC;4BACD,OAAOF;wBACX,GAAG,CAAC;oBACR;oBAEA,OAAO,wCACAT;wBACHP,cAAcQ;;gBAEtB;YACJ;;;IAGJ,IAAMW,iBAAiB,WAAM;QACzBpB,MAAMqB,iBAAiB,CAAC,IAAI;IAChC;IAEA,IAAMC,kBAAkB;eAAMR,OAAOS,MAAM,CAACtB;;QAEfqB;IAA7B,IAAME,iBAAiB;eAAMF,CAAAA,oBAAAA,iBAAiB,CAAC,EAAE,cAApBA,+BAAAA,oBAAwB,IAAI;;IAEzD,OAAO;QACHF,gBAAAA;QACAI,gBAAAA;QACAF,iBAAAA;IACJ;AACJ,EAAE"}
|
package/dist/esm/theme/Theme.js
CHANGED
|
@@ -4,6 +4,7 @@ import { ArrowHeadRightSize24Px, InfoSize24Px } from "@coveord/plasma-react-icon
|
|
|
4
4
|
import { color } from "@coveord/plasma-tokens";
|
|
5
5
|
import { PlasmaColors } from "./PlasmaColors";
|
|
6
6
|
export var plasmaTheme = {
|
|
7
|
+
// These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts
|
|
7
8
|
colorScheme: "light",
|
|
8
9
|
fontFamily: "canada-type-gibson, sans-serif",
|
|
9
10
|
black: color.primary.gray[9],
|
|
@@ -90,9 +91,7 @@ export var plasmaTheme = {
|
|
|
90
91
|
styles: function(theme, params) {
|
|
91
92
|
return {
|
|
92
93
|
root: {
|
|
93
|
-
|
|
94
|
-
fontWeight: 400
|
|
95
|
-
},
|
|
94
|
+
fontWeight: 400,
|
|
96
95
|
backgroundColor: params.variant === "outline" ? "white" : undefined
|
|
97
96
|
}
|
|
98
97
|
};
|
|
@@ -124,21 +123,27 @@ export var plasmaTheme = {
|
|
|
124
123
|
InputWrapper: {
|
|
125
124
|
defaultProps: {
|
|
126
125
|
withAsterisk: false
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
TextInput: {
|
|
130
|
-
defaultProps: {
|
|
131
|
-
radius: 8
|
|
132
126
|
},
|
|
133
127
|
styles: function(theme) {
|
|
134
128
|
return {
|
|
129
|
+
label: {
|
|
130
|
+
marginBottom: theme.spacing.xs,
|
|
131
|
+
lineHeight: "20px"
|
|
132
|
+
},
|
|
135
133
|
description: {
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
lineHeight: "20px",
|
|
135
|
+
fontSize: theme.fontSizes.sm,
|
|
136
|
+
color: theme.colors.gray[7],
|
|
137
|
+
marginBottom: theme.spacing.xs
|
|
138
138
|
}
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
141
|
},
|
|
142
|
+
TextInput: {
|
|
143
|
+
defaultProps: {
|
|
144
|
+
radius: 8
|
|
145
|
+
}
|
|
146
|
+
},
|
|
142
147
|
Tooltip: {
|
|
143
148
|
defaultProps: {
|
|
144
149
|
color: "navy",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {ArrowHeadRightSize24Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {ButtonStylesParams, MantineThemeOverride, ModalStylesParams} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n spacing: {\n xs: 8,\n sm: 16,\n md: 24,\n lg: 32,\n xl: 40,\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: 500,\n sizes: {\n h1: {fontSize: 48, lineHeight: '56px', fontWeight: undefined},\n h2: {fontSize: 32, lineHeight: '40px', fontWeight: undefined},\n h3: {fontSize: 28, lineHeight: '40px', fontWeight: undefined},\n h4: {fontSize: 24, lineHeight: '32px', fontWeight: undefined},\n h5: {fontSize: 18, lineHeight: '28px', fontWeight: undefined},\n h6: {fontSize: 16, lineHeight: '24px', fontWeight: undefined},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: (theme) => ({\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em', color: theme.colors.gray[9]},\n },\n }),\n },\n Button: {\n styles: (theme, params: ButtonStylesParams) => ({\n root: {\n
|
|
1
|
+
{"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {ArrowHeadRightSize24Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {ButtonStylesParams, MantineThemeOverride, ModalStylesParams} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n spacing: {\n xs: 8,\n sm: 16,\n md: 24,\n lg: 32,\n xl: 40,\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: 500,\n sizes: {\n h1: {fontSize: 48, lineHeight: '56px', fontWeight: undefined},\n h2: {fontSize: 32, lineHeight: '40px', fontWeight: undefined},\n h3: {fontSize: 28, lineHeight: '40px', fontWeight: undefined},\n h4: {fontSize: 24, lineHeight: '32px', fontWeight: undefined},\n h5: {fontSize: 18, lineHeight: '28px', fontWeight: undefined},\n h6: {fontSize: 16, lineHeight: '24px', fontWeight: undefined},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: (theme) => ({\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em', color: theme.colors.gray[9]},\n },\n }),\n },\n Button: {\n styles: (theme, params: ButtonStylesParams) => ({\n root: {\n fontWeight: 400,\n backgroundColor: params.variant === 'outline' ? 'white' : undefined,\n },\n }),\n },\n Modal: {\n styles: (theme, {size, fullScreen}: ModalStylesParams) => ({\n modal: {\n width: fullScreen\n ? undefined\n : theme.fn.size({size, sizes: {xs: 320, sm: 440, md: '45%', lg: 1334, xl: '85%'}}),\n },\n }),\n defaultProps: {\n overlayColor: color.primary.navy[9],\n overlayOpacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n lineHeight: '20px',\n },\n description: {\n lineHeight: '20px',\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n withArrow: true,\n withinPortal: true,\n },\n },\n Breadcrumbs: {\n defaultProps: {\n separator: <ArrowHeadRightSize24Px height={24} />,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n },\n};\n"],"names":["ArrowHeadRightSize24Px","InfoSize24Px","color","PlasmaColors","plasmaTheme","colorScheme","fontFamily","black","primary","gray","defaultRadius","spacing","xs","sm","md","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","lineHeight","undefined","h2","h3","h4","h5","h6","shadows","colors","components","Alert","defaultProps","icon","height","styles","title","Title","theme","root","letterSpacing","Button","params","backgroundColor","variant","Modal","size","fullScreen","modal","width","fn","overlayColor","navy","overlayOpacity","InputWrapper","withAsterisk","label","marginBottom","description","fontSizes","TextInput","radius","Tooltip","withArrow","withinPortal","Breadcrumbs","separator","Loader","DateRangePicker","cell","textAlign","Anchor","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","padding"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -143,9 +143,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
|
|
|
143
143
|
) : null;
|
|
144
144
|
|
|
145
145
|
const _description = description ? (
|
|
146
|
-
<Input.Description
|
|
147
|
-
{description}
|
|
148
|
-
</Input.Description>
|
|
146
|
+
<Input.Description {...descriptionProps}>{description}</Input.Description>
|
|
149
147
|
) : null;
|
|
150
148
|
|
|
151
149
|
const _error = error ? (
|
|
@@ -165,10 +165,10 @@ export const Collection = <T,>(props: CollectionProps<T>) => {
|
|
|
165
165
|
const _error = error ? <Input.Error {...errorProps}>{error}</Input.Error> : null;
|
|
166
166
|
const _header =
|
|
167
167
|
_label || _description ? (
|
|
168
|
-
<
|
|
168
|
+
<Box mb="sm">
|
|
169
169
|
{_label}
|
|
170
170
|
{_description}
|
|
171
|
-
</
|
|
171
|
+
</Box>
|
|
172
172
|
) : null;
|
|
173
173
|
|
|
174
174
|
const items = values.map((item, index) => (
|
|
@@ -216,14 +216,12 @@ export const Collection = <T,>(props: CollectionProps<T>) => {
|
|
|
216
216
|
className={cx(classes.root, className)}
|
|
217
217
|
{...others}
|
|
218
218
|
>
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
{_error}
|
|
226
|
-
</Stack>
|
|
219
|
+
{_header}
|
|
220
|
+
<Stack spacing={spacing}>
|
|
221
|
+
{items}
|
|
222
|
+
{provided.placeholder}
|
|
223
|
+
{_addButton}
|
|
224
|
+
{_error}
|
|
227
225
|
</Stack>
|
|
228
226
|
</Box>
|
|
229
227
|
)}
|