@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.
Files changed (90) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +12 -12
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/code-editor/CodeEditor.js +1 -3
  5. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  6. package/dist/cjs/components/collection/Collection.js +15 -17
  7. package/dist/cjs/components/collection/Collection.js.map +1 -1
  8. package/dist/cjs/components/table/Table.js +48 -45
  9. package/dist/cjs/components/table/Table.js.map +1 -1
  10. package/dist/cjs/components/table/TableActions.js +4 -4
  11. package/dist/cjs/components/table/TableActions.js.map +1 -1
  12. package/dist/cjs/components/table/TableCollapsibleColumn.js +1 -1
  13. package/dist/cjs/components/table/TableCollapsibleColumn.js.map +1 -1
  14. package/dist/cjs/components/table/TableContext.js.map +1 -1
  15. package/dist/cjs/components/table/TableFilter.js +4 -0
  16. package/dist/cjs/components/table/TableFilter.js.map +1 -1
  17. package/dist/cjs/components/table/TableHeader.js +36 -4
  18. package/dist/cjs/components/table/TableHeader.js.map +1 -1
  19. package/dist/cjs/components/table/TablePerPage.js +3 -2
  20. package/dist/cjs/components/table/TablePerPage.js.map +1 -1
  21. package/dist/cjs/components/table/TableSelectableColumn.js +46 -0
  22. package/dist/cjs/components/table/TableSelectableColumn.js.map +1 -0
  23. package/dist/cjs/components/table/Th.js +5 -15
  24. package/dist/cjs/components/table/Th.js.map +1 -1
  25. package/dist/cjs/components/table/useRowSelection.js +58 -0
  26. package/dist/cjs/components/table/useRowSelection.js.map +1 -0
  27. package/dist/cjs/theme/Theme.js +15 -10
  28. package/dist/cjs/theme/Theme.js.map +1 -1
  29. package/dist/definitions/components/code-editor/CodeEditor.d.ts.map +1 -1
  30. package/dist/definitions/components/collection/Collection.d.ts.map +1 -1
  31. package/dist/definitions/components/table/Table.d.ts +12 -2
  32. package/dist/definitions/components/table/Table.d.ts.map +1 -1
  33. package/dist/definitions/components/table/TableActions.d.ts +3 -3
  34. package/dist/definitions/components/table/TableActions.d.ts.map +1 -1
  35. package/dist/definitions/components/table/TableCollapsibleColumn.d.ts +1 -1
  36. package/dist/definitions/components/table/TableContext.d.ts +6 -1
  37. package/dist/definitions/components/table/TableContext.d.ts.map +1 -1
  38. package/dist/definitions/components/table/TableFilter.d.ts.map +1 -1
  39. package/dist/definitions/components/table/TableHeader.d.ts.map +1 -1
  40. package/dist/definitions/components/table/TableSelectableColumn.d.ts +6 -0
  41. package/dist/definitions/components/table/TableSelectableColumn.d.ts.map +1 -0
  42. package/dist/definitions/components/table/Th.d.ts.map +1 -1
  43. package/dist/definitions/components/table/useRowSelection.d.ts +7 -0
  44. package/dist/definitions/components/table/useRowSelection.d.ts.map +1 -0
  45. package/dist/definitions/components/table/useTable.d.ts +2 -0
  46. package/dist/definitions/components/table/useTable.d.ts.map +1 -1
  47. package/dist/definitions/theme/Theme.d.ts.map +1 -1
  48. package/dist/esm/components/code-editor/CodeEditor.js +1 -3
  49. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  50. package/dist/esm/components/collection/Collection.js +15 -17
  51. package/dist/esm/components/collection/Collection.js.map +1 -1
  52. package/dist/esm/components/table/Table.js +48 -45
  53. package/dist/esm/components/table/Table.js.map +1 -1
  54. package/dist/esm/components/table/TableActions.js +4 -4
  55. package/dist/esm/components/table/TableActions.js.map +1 -1
  56. package/dist/esm/components/table/TableCollapsibleColumn.js +2 -2
  57. package/dist/esm/components/table/TableCollapsibleColumn.js.map +1 -1
  58. package/dist/esm/components/table/TableContext.js.map +1 -1
  59. package/dist/esm/components/table/TableFilter.js +4 -0
  60. package/dist/esm/components/table/TableFilter.js.map +1 -1
  61. package/dist/esm/components/table/TableHeader.js +38 -6
  62. package/dist/esm/components/table/TableHeader.js.map +1 -1
  63. package/dist/esm/components/table/TablePerPage.js +3 -2
  64. package/dist/esm/components/table/TablePerPage.js.map +1 -1
  65. package/dist/esm/components/table/TableSelectableColumn.js +38 -0
  66. package/dist/esm/components/table/TableSelectableColumn.js.map +1 -0
  67. package/dist/esm/components/table/Th.js +5 -15
  68. package/dist/esm/components/table/Th.js.map +1 -1
  69. package/dist/esm/components/table/useRowSelection.js +48 -0
  70. package/dist/esm/components/table/useRowSelection.js.map +1 -0
  71. package/dist/esm/theme/Theme.js +15 -10
  72. package/dist/esm/theme/Theme.js.map +1 -1
  73. package/package.json +1 -1
  74. package/src/components/code-editor/CodeEditor.tsx +1 -3
  75. package/src/components/collection/Collection.tsx +8 -10
  76. package/src/components/table/Table.tsx +91 -62
  77. package/src/components/table/TableActions.tsx +7 -7
  78. package/src/components/table/TableCollapsibleColumn.tsx +2 -2
  79. package/src/components/table/TableContext.tsx +6 -1
  80. package/src/components/table/TableFilter.tsx +7 -1
  81. package/src/components/table/TableHeader.tsx +24 -4
  82. package/src/components/table/TablePerPage.tsx +1 -1
  83. package/src/components/table/TableSelectableColumn.tsx +33 -0
  84. package/src/components/table/Th.tsx +6 -19
  85. package/src/components/table/__tests__/Table.spec.tsx +100 -7
  86. package/src/components/table/__tests__/TableActions.spec.tsx +21 -0
  87. package/src/components/table/__tests__/TableFilter.spec.tsx +48 -1
  88. package/src/components/table/__tests__/TablePerPage.spec.tsx +24 -0
  89. package/src/components/table/useRowSelection.ts +45 -0
  90. 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,wCAAIA;gBAAWC,cAAcH;;;IACtE;IAEA,qBACI,KAACvB;QACG2B,WAAWV,QAAQb,OAAO;QAC1BO,aAAaA;QACbiB,IAAG;QACHC,4BAAc,KAAC/B;YAAegC,QAAQ;YAAIH,WAAWT,GAAI,qBAACD,QAAQX,KAAK,EAAG,CAACa,MAAMO,YAAY;;QAC7FH,OAAOJ,MAAMO,YAAY;QACzBK,UAAUV;OACNN;AAGhB,EAAE"}
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 { createStyles, Group } from "@mantine/core";
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[4])
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
- return /*#__PURE__*/ _jsx(Group, _object_spread_props(_object_spread({
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[4]}`,\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 {classes} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});\n return (\n <Group position=\"right\" spacing=\"lg\" className={classes.root} px=\"md\" py=\"sm\" {...others}>\n {children}\n </Group>\n );\n};\n"],"names":["createStyles","Group","useStyles","theme","root","position","top","zIndex","backgroundColor","colors","gray","borderBottom","TableHeader","classNames","styles","unstyled","children","others","classes","name","spacing","className","px","py"],"mappings":"AAAA;;;;AAAA,SAAQA,YAAY,EAAgBC,KAAK,QAAkB,gBAAgB;AAG3E,IAAMC,YAAYF,aAAa,SAACG;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,IAAM,AAACE,UAAWhB,UAAU,IAAI,EAAE;QAACiB,MAAM;QAAeN,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,GAA7EG;IACP,qBACI,KAACjB;QAAMI,UAAS;QAAQe,SAAQ;QAAKC,WAAWH,QAAQd,IAAI;QAAEkB,IAAG;QAAKC,IAAG;OAASN;kBAC7ED;;AAGb,EAAE"}
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: _object_spread_props(_object_spread({}, prevState.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: {...prevState.pagination, 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","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,wCAAID,UAAUC,UAAU;oBAAEC,UAAUC,SAASJ,YAAY;;;;IAE7E;QAMmBH;IAJnB,qBACI,MAACP;;0BACG,KAACE;0BAAMG;;0BACP,KAACJ;gBACGc,OAAOR,CAAAA,sCAAAA,MAAMK,UAAU,CAACC,QAAQ,CAACG,QAAQ,gBAAlCT,iDAAAA,sCAAwCD,mBAAAA,oBAAAA,KAAAA,IAAAA,MAAQ,CAAC,EAAE,CAACU,QAAQ,EAAE;gBACrEC,UAAUR;gBACVS,MAAMZ,OAAOa,GAAG,CAAC,SAACJ;2BAAUA,MAAMC,QAAQ;;gBAC1CI,OAAM;gBACNC,MAAK;;;;AAIrB,EAAE;AAEFjB,aAAakB,YAAY,GAAG"}
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
- button: {
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.md, "px"),
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 padding: '0 !important',\n fontWeight: '400 !important' as any,\n color: theme.black + '!important',\n button: {\n padding: '8px 16px',\n div: {\n padding: '0px !important',\n },\n },\n div: {\n padding: '8px 16px',\n },\n },\n\n noSort: {\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n },\n\n control: {\n width: '100%',\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\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 className={classes.noSort} size=\"xs\">\n {flexRender(header.column.columnDef.header, header.getContext())}\n </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\">\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","padding","fontWeight","color","black","button","div","noSort","spacing","xs","md","control","width","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","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,SAAS;YACTC,YAAY;YACZC,OAAOJ,MAAMK,KAAK,GAAG;YACrBC,QAAQ;gBACJJ,SAAS;gBACTK,KAAK;oBACDL,SAAS;gBACb;YACJ;YACAK,KAAK;gBACDL,SAAS;YACb;QACJ;QAEAM,QAAQ;YACJN,SAAS,AAAC,GAAwBF,OAAtBA,MAAMS,OAAO,CAACC,EAAE,EAAC,OAAsB,OAAjBV,MAAMS,OAAO,CAACE,EAAE,EAAC;QACvD;QAEAC,SAAS;YACLC,OAAO;YACPX,SAAS,AAAC,GAAwBF,OAAtBA,MAAMS,OAAO,CAACC,EAAE,EAAC,OAAsB,OAAjBV,MAAMS,OAAO,CAACE,EAAE,EAAC;YAEnD,WAAW;gBACPG,iBAAiBd,MAAMe,WAAW,KAAK,SAASf,MAAMgB,MAAM,CAACC,IAAI,CAAC,EAAE,GAAGjB,MAAMgB,MAAM,CAACC,IAAI,CAAC,EAAE;YAC/F;QACJ;IACJ;;AAMA,IAAMC,eAAe;IACjBC,KAAK7B;IACL8B,MAAM7B;AACV;AAEA,IAAM8B,gBAAgB;IAClBF,KAAK;IACLC,MAAM;AACV;AAEA,OAAO,IAAME,KAAK,gBAA8B;QAAxBC,eAAAA;IACpB,IAAM,AAACC,UAAWzB,YAAXyB;IACP,IAAMC,OAAOF,OAAOG,MAAM,CAACC,OAAO;IAClC,IAAMd,QAAQY,SAAS5B,oBAAoB4B,IAAI,GAAGA,OAAOG,SAAS;IAElE,IAAIL,OAAOM,aAAa,EAAE;QACtB,OAAO,IAAI;IACf,CAAC;IAED,IAAI,CAACN,OAAOG,MAAM,CAACI,UAAU,IAAI;QAC7B,qBACI,KAAC7B;YAAG8B,WAAWP,QAAQvB,EAAE;YAAE+B,OAAO;gBAACnB,OAAAA;YAAK;sBACpC,cAAA,KAAClB;gBAAKoC,WAAWP,QAAQhB,MAAM;gBAAEiB,MAAK;0BACjC3B,WAAWyB,OAAOG,MAAM,CAACO,SAAS,CAACV,MAAM,EAAEA,OAAOW,UAAU;;;IAI7E,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,KAACvC;QAAG8B,WAAWP,QAAQvB,EAAE;QAAE+B,OAAO;YAACnB,OAAAA;QAAK;QAAG4B,aAAWJ,eAAehB,aAAa,CAACgB,aAAa,GAAG,MAAM;kBACrG,cAAA,KAACzC;YAAe8C,SAASP;YAAQJ,WAAWP,QAAQZ,OAAO;sBACvD,cAAA,MAAClB;gBAAMiD,UAAS;;kCACZ,KAAChD;wBAAK8B,MAAK;kCAAM3B,WAAWyB,OAAOG,MAAM,CAACO,SAAS,CAACV,MAAM,EAAEA,OAAOW,UAAU;;kCAC7E,KAAC1C;wBAAOoD,IAAI,SAAC5C;mCAAW;gCAACI,OAAOiC,eAAerC,MAAMgB,MAAM,CAAC6B,MAAM,CAAC,EAAE,GAAGjB,SAAS;4BAAA;;kCAC7E,cAAA,KAACW;4BAAKO,QAAQ;;;;;;;AAMtC,EAAE"}
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"}
@@ -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
- fontSize: "inherit",
137
- paddingBottom: theme.spacing.xs
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 '&': {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 },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n styles: (theme) => ({\n description: {\n fontSize: 'inherit',\n paddingBottom: theme.spacing.xs,\n },\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","TextInput","radius","description","paddingBottom","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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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveord/plasma-mantine",
3
- "version": "48.22.3",
3
+ "version": "48.23.0",
4
4
  "description": "A Plasma flavoured Mantine theme",
5
5
  "keywords": [
6
6
  "plasma",
@@ -143,9 +143,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
143
143
  ) : null;
144
144
 
145
145
  const _description = description ? (
146
- <Input.Description mt="xs" {...descriptionProps}>
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
- <Stack spacing="xs">
168
+ <Box mb="sm">
169
169
  {_label}
170
170
  {_description}
171
- </Stack>
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
- <Stack>
220
- {_header}
221
- <Stack spacing={spacing}>
222
- {items}
223
- {provided.placeholder}
224
- {_addButton}
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
  )}