@coveord/plasma-mantine 48.18.1 → 48.22.3

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 (30) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +7 -7
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/modal-wizard/ModalWizard.js +66 -37
  5. package/dist/cjs/components/modal-wizard/ModalWizard.js.map +1 -1
  6. package/dist/cjs/components/modal-wizard/ModalWizardStep.js +1 -4
  7. package/dist/cjs/components/modal-wizard/ModalWizardStep.js.map +1 -1
  8. package/dist/cjs/components/sticky-footer/StickyFooter.js +2 -1
  9. package/dist/cjs/components/sticky-footer/StickyFooter.js.map +1 -1
  10. package/dist/cjs/components/table/TableFilter.js +16 -5
  11. package/dist/cjs/components/table/TableFilter.js.map +1 -1
  12. package/dist/definitions/components/modal-wizard/ModalWizard.d.ts +8 -2
  13. package/dist/definitions/components/modal-wizard/ModalWizard.d.ts.map +1 -1
  14. package/dist/definitions/components/modal-wizard/ModalWizardStep.d.ts +1 -0
  15. package/dist/definitions/components/modal-wizard/ModalWizardStep.d.ts.map +1 -1
  16. package/dist/definitions/components/table/TableFilter.d.ts +8 -1
  17. package/dist/definitions/components/table/TableFilter.d.ts.map +1 -1
  18. package/dist/esm/components/modal-wizard/ModalWizard.js +67 -38
  19. package/dist/esm/components/modal-wizard/ModalWizard.js.map +1 -1
  20. package/dist/esm/components/modal-wizard/ModalWizardStep.js +1 -4
  21. package/dist/esm/components/modal-wizard/ModalWizardStep.js.map +1 -1
  22. package/dist/esm/components/sticky-footer/StickyFooter.js +2 -1
  23. package/dist/esm/components/sticky-footer/StickyFooter.js.map +1 -1
  24. package/dist/esm/components/table/TableFilter.js +16 -5
  25. package/dist/esm/components/table/TableFilter.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/components/modal-wizard/ModalWizard.tsx +68 -37
  28. package/src/components/modal-wizard/ModalWizardStep.tsx +2 -3
  29. package/src/components/sticky-footer/StickyFooter.tsx +1 -1
  30. package/src/components/table/TableFilter.tsx +12 -4
@@ -29,7 +29,8 @@ export var StickyFooter = function(_param) {
29
29
  children: /*#__PURE__*/ _jsx(Group, _object_spread_props(_object_spread({
30
30
  position: "right",
31
31
  spacing: "xs",
32
- py: "md",
32
+ pt: "md",
33
+ pb: "md",
33
34
  px: "xl"
34
35
  }, others), {
35
36
  children: children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/sticky-footer/StickyFooter.tsx"],"sourcesContent":["import {Box, createStyles, DefaultProps, Divider, Group} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nexport interface StickyFooterProps extends DefaultProps {\n /**\n * Whether a border is render on top of the footer\n */\n borderTop?: boolean;\n}\n\nconst useStyles = createStyles(() => ({\n footer: {\n position: 'sticky',\n bottom: 0,\n zIndex: 1,\n backgroundColor: 'white',\n },\n}));\n\nexport const StickyFooter: FunctionComponent<PropsWithChildren<StickyFooterProps>> = ({\n borderTop,\n children,\n ...others\n}) => {\n const {classes} = useStyles();\n\n return (\n <>\n {borderTop ? <Divider size=\"xs\" /> : null}\n <Box className={classes.footer}>\n <Group position=\"right\" spacing=\"xs\" py=\"md\" px=\"xl\" {...others}>\n {children}\n </Group>\n </Box>\n </>\n );\n};\n"],"names":["Box","createStyles","Divider","Group","useStyles","footer","position","bottom","zIndex","backgroundColor","StickyFooter","borderTop","children","others","classes","size","className","spacing","py","px"],"mappings":"AAAA;;;;AAAA,SAAQA,GAAG,EAAEC,YAAY,EAAgBC,OAAO,EAAEC,KAAK,QAAO,gBAAgB;AAU9E,IAAMC,YAAYH,aAAa;WAAO;QAClCI,QAAQ;YACJC,UAAU;YACVC,QAAQ;YACRC,QAAQ;YACRC,iBAAiB;QACrB;IACJ;;AAEA,OAAO,IAAMC,eAAwE,iBAI/E;QAHFC,mBAAAA,WACAC,kBAAAA,UACGC;QAFHF;QACAC;;IAGA,IAAM,AAACE,UAAWV,YAAXU;IAEP,qBACI;;YACKH,0BAAY,KAACT;gBAAQa,MAAK;iBAAU,IAAI;0BACzC,KAACf;gBAAIgB,WAAWF,QAAQT,MAAM;0BAC1B,cAAA,KAACF;oBAAMG,UAAS;oBAAQW,SAAQ;oBAAKC,IAAG;oBAAKC,IAAG;mBAASN;8BACpDD;;;;;AAKrB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/sticky-footer/StickyFooter.tsx"],"sourcesContent":["import {Box, createStyles, DefaultProps, Divider, Group} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nexport interface StickyFooterProps extends DefaultProps {\n /**\n * Whether a border is render on top of the footer\n */\n borderTop?: boolean;\n}\n\nconst useStyles = createStyles(() => ({\n footer: {\n position: 'sticky',\n bottom: 0,\n zIndex: 1,\n backgroundColor: 'white',\n },\n}));\n\nexport const StickyFooter: FunctionComponent<PropsWithChildren<StickyFooterProps>> = ({\n borderTop,\n children,\n ...others\n}) => {\n const {classes} = useStyles();\n\n return (\n <>\n {borderTop ? <Divider size=\"xs\" /> : null}\n <Box className={classes.footer}>\n <Group position=\"right\" spacing=\"xs\" pt=\"md\" pb=\"md\" px=\"xl\" {...others}>\n {children}\n </Group>\n </Box>\n </>\n );\n};\n"],"names":["Box","createStyles","Divider","Group","useStyles","footer","position","bottom","zIndex","backgroundColor","StickyFooter","borderTop","children","others","classes","size","className","spacing","pt","pb","px"],"mappings":"AAAA;;;;AAAA,SAAQA,GAAG,EAAEC,YAAY,EAAgBC,OAAO,EAAEC,KAAK,QAAO,gBAAgB;AAU9E,IAAMC,YAAYH,aAAa;WAAO;QAClCI,QAAQ;YACJC,UAAU;YACVC,QAAQ;YACRC,QAAQ;YACRC,iBAAiB;QACrB;IACJ;;AAEA,OAAO,IAAMC,eAAwE,iBAI/E;QAHFC,mBAAAA,WACAC,kBAAAA,UACGC;QAFHF;QACAC;;IAGA,IAAM,AAACE,UAAWV,YAAXU;IAEP,qBACI;;YACKH,0BAAY,KAACT;gBAAQa,MAAK;iBAAU,IAAI;0BACzC,KAACf;gBAAIgB,WAAWF,QAAQT,MAAM;0BAC1B,cAAA,KAACF;oBAAMG,UAAS;oBAAQW,SAAQ;oBAAKC,IAAG;oBAAKC,IAAG;oBAAKC,IAAG;mBAASP;8BAC5DD;;;;;AAKrB,EAAE"}
@@ -1,6 +1,7 @@
1
1
  import _define_property from "@swc/helpers/src/_define_property.mjs";
2
2
  import _object_spread from "@swc/helpers/src/_object_spread.mjs";
3
3
  import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
4
+ import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  import { SearchSize16Px } from "@coveord/plasma-react-icons";
6
7
  import { createStyles, TextInput } from "@mantine/core";
@@ -15,9 +16,19 @@ var useStyles = createStyles(function(theme) {
15
16
  }
16
17
  };
17
18
  });
18
- export var TableFilter = function(param) {
19
- var _param_placeholder = param.placeholder, placeholder = _param_placeholder === void 0 ? "Search by any field" : _param_placeholder;
20
- var _useStyles = useStyles(), classes = _useStyles.classes, cx = _useStyles.cx;
19
+ export var TableFilter = function(_param) {
20
+ var _param_placeholder = _param.placeholder, placeholder = _param_placeholder === void 0 ? "Search by any field" : _param_placeholder, classNames = _param.classNames, styles = _param.styles, unstyled = _param.unstyled, others = _object_without_properties(_param, [
21
+ "placeholder",
22
+ "classNames",
23
+ "styles",
24
+ "unstyled"
25
+ ]);
26
+ var _useStyles = useStyles(null, {
27
+ name: "TableHeader",
28
+ classNames: classNames,
29
+ styles: styles,
30
+ unstyled: unstyled
31
+ }), classes = _useStyles.classes, cx = _useStyles.cx;
21
32
  var _useTable = useTable(), state = _useTable.state, setState = _useTable.setState;
22
33
  var handleSearchChange = function(event) {
23
34
  var value = event.currentTarget.value;
@@ -27,7 +38,7 @@ export var TableFilter = function(param) {
27
38
  });
28
39
  });
29
40
  };
30
- return /*#__PURE__*/ _jsx(TextInput, {
41
+ return /*#__PURE__*/ _jsx(TextInput, _object_spread({
31
42
  className: classes.wrapper,
32
43
  placeholder: placeholder,
33
44
  mb: "md",
@@ -37,7 +48,7 @@ export var TableFilter = function(param) {
37
48
  }),
38
49
  value: state.globalFilter,
39
50
  onChange: handleSearchChange
40
- });
51
+ }, others));
41
52
  };
42
53
 
43
54
  //# sourceMappingURL=TableFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/TableFilter.tsx"],"sourcesContent":["import {SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {createStyles, TextInput} 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\ninterface TableFilterProps {\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> = ({placeholder = 'Search by any field'}) => {\n const {classes, cx} = useStyles();\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 />\n );\n};\n"],"names":["SearchSize16Px","createStyles","TextInput","useTable","useStyles","theme","wrapper","marginBottom","empty","color","colors","gray","TableFilter","placeholder","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,QAAO,gBAAgB;AAGtD,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;;AAWA,OAAO,IAAMC,cAAmD,gBAA2C;mCAAzCC,aAAAA,8CAAc;IAC5E,IAAsBT,aAAAA,aAAfU,UAAeV,WAAfU,SAASC,KAAMX,WAANW;IAChB,IAA0BZ,YAAAA,YAAnBa,QAAmBb,UAAnBa,OAAOC,WAAYd,UAAZc;IAEd,IAAMC,qBAAqB,SAACC,OAAyC;QACjE,IAAM,AAACC,QAASD,MAAME,aAAa,CAA5BD;QACPH,SAAS,SAACK;mBAA2B,wCAAIA;gBAAWC,cAAcH;;;IACtE;IAEA,qBACI,KAAClB;QACGsB,WAAWV,QAAQR,OAAO;QAC1BO,aAAaA;QACbY,IAAG;QACHC,4BAAc,KAAC1B;YAAe2B,QAAQ;YAAIH,WAAWT,GAAI,qBAACD,QAAQN,KAAK,EAAG,CAACQ,MAAMO,YAAY;;QAC7FH,OAAOJ,MAAMO,YAAY;QACzBK,UAAUV;;AAGtB,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) => ({...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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveord/plasma-mantine",
3
- "version": "48.18.1",
3
+ "version": "48.22.3",
4
4
  "description": "A Plasma flavoured Mantine theme",
5
5
  "keywords": [
6
6
  "plasma",
@@ -1,10 +1,26 @@
1
- import {Button, Modal, ModalProps, Progress} from '@mantine/core';
1
+ import {Box, Button, createStyles, DefaultProps, Modal, ModalProps, Progress, Selectors} from '@mantine/core';
2
2
  import {Children, ReactElement, useMemo, useState} from 'react';
3
3
  import {StickyFooter} from '../sticky-footer';
4
4
  import {ModalWizardStep} from './ModalWizardStep';
5
5
  import {Header} from '../header';
6
6
 
7
- interface ModalWizardProps extends Omit<ModalProps, 'centered' | 'title'> {
7
+ const useStyles = createStyles(() => ({
8
+ modal: {
9
+ display: 'flex',
10
+ flexDirection: 'column',
11
+ },
12
+ body: {
13
+ flex: 1,
14
+ display: 'flex',
15
+ flexDirection: 'column',
16
+ },
17
+ }));
18
+
19
+ type ModalWizardStylesNames = Selectors<typeof useStyles>;
20
+
21
+ interface ModalWizardProps
22
+ extends Omit<DefaultProps<ModalWizardStylesNames>, 'classNames' | 'styles'>,
23
+ Omit<ModalProps, 'centered' | 'title'> {
8
24
  /**
9
25
  * The label of the cancel button
10
26
  *
@@ -85,9 +101,22 @@ export const ModalWizard: ModalWizardType = ({
85
101
  isDirty,
86
102
  handleDirtyState,
87
103
  classNames,
104
+ className,
105
+ styles,
106
+ unstyled,
88
107
  children,
89
108
  ...modalProps
90
109
  }) => {
110
+ const {
111
+ classes: {modal, body},
112
+ cx,
113
+ } = useStyles(null, {
114
+ name: 'ModalWizard',
115
+ classNames,
116
+ styles,
117
+ unstyled,
118
+ });
119
+
91
120
  const [currentStepIndex, setCurrentStepIndex] = useState(0);
92
121
  const modalSteps = (Children.toArray(children) as ReactElement[]).filter((child) => child.type === ModalWizardStep);
93
122
 
@@ -116,11 +145,10 @@ export const ModalWizard: ModalWizardType = ({
116
145
  };
117
146
 
118
147
  const getProgressMemo = useMemo(() => getProgress(currentStepIndex), [currentStepIndex]);
119
-
120
148
  return (
121
149
  <Modal
122
150
  opened={opened}
123
- classNames={classNames}
151
+ classNames={{modal: cx(modal, classNames?.modal), body: cx(body, classNames?.body)}}
124
152
  centered
125
153
  title={
126
154
  <Header
@@ -143,39 +171,42 @@ export const ModalWizard: ModalWizardType = ({
143
171
  >
144
172
  {currentStep.props.showProgressBar && <Progress color="teal" size="lg" value={getProgressMemo} />}
145
173
  {currentStep}
146
- <StickyFooter py={0} px={0} pt="sm" borderTop>
147
- <Button
148
- name={isFirstStep ? cancelButtonLabel : previousButtonLabel}
149
- disabled={false}
150
- size="sm"
151
- variant="outline"
152
- onClick={() => {
153
- if (isFirstStep) {
154
- closeModalWizard();
155
- } else {
156
- onPrevious?.();
157
- setCurrentStepIndex(currentStepIndex - 1);
158
- }
159
- }}
160
- >
161
- {isFirstStep ? cancelButtonLabel : previousButtonLabel}
162
- </Button>
163
-
164
- <Button
165
- disabled={!isValid}
166
- size="sm"
167
- onClick={() => {
168
- if (isLastStep) {
169
- onFinish ? onFinish() : onClose();
170
- } else {
171
- onNext?.();
172
- setCurrentStepIndex(currentStepIndex + 1);
173
- }
174
- }}
175
- >
176
- {isLastStep ? finishButtonLabel : nextButtonLabel}
177
- </Button>
178
- </StickyFooter>
174
+ <Box
175
+ sx={(theme) => ({
176
+ marginTop: 'auto',
177
+ })}
178
+ >
179
+ <StickyFooter px={0} pt="sm" pb={0} borderTop>
180
+ <Button
181
+ name={isFirstStep ? cancelButtonLabel : previousButtonLabel}
182
+ variant="outline"
183
+ onClick={() => {
184
+ if (isFirstStep) {
185
+ closeModalWizard();
186
+ } else {
187
+ onPrevious?.();
188
+ setCurrentStepIndex(currentStepIndex - 1);
189
+ }
190
+ }}
191
+ >
192
+ {isFirstStep ? cancelButtonLabel : previousButtonLabel}
193
+ </Button>
194
+
195
+ <Button
196
+ disabled={!isValid}
197
+ onClick={() => {
198
+ if (isLastStep) {
199
+ onFinish ? onFinish() : onClose();
200
+ } else {
201
+ onNext?.();
202
+ setCurrentStepIndex(currentStepIndex + 1);
203
+ }
204
+ }}
205
+ >
206
+ {isLastStep ? finishButtonLabel : nextButtonLabel}
207
+ </Button>
208
+ </StickyFooter>
209
+ </Box>
179
210
  </Modal>
180
211
  );
181
212
  };
@@ -41,11 +41,10 @@ export interface ModalWizardStepProps {
41
41
  * @default true
42
42
  */
43
43
  countsAsProgress?: boolean;
44
+ children: ReactElement<any, any>;
44
45
  }
45
46
 
46
- const ModalWizardStep: FunctionComponent<PropsWithChildren<ModalWizardStepProps>> = ({children}) => (
47
- <div>{children}</div>
48
- );
47
+ const ModalWizardStep: FunctionComponent<PropsWithChildren<ModalWizardStepProps>> = ({children}) => children;
49
48
 
50
49
  ModalWizardStep.defaultProps = {
51
50
  showProgressBar: true,
@@ -28,7 +28,7 @@ export const StickyFooter: FunctionComponent<PropsWithChildren<StickyFooterProps
28
28
  <>
29
29
  {borderTop ? <Divider size="xs" /> : null}
30
30
  <Box className={classes.footer}>
31
- <Group position="right" spacing="xs" py="md" px="xl" {...others}>
31
+ <Group position="right" spacing="xs" pt="md" pb="md" px="xl" {...others}>
32
32
  {children}
33
33
  </Group>
34
34
  </Box>
@@ -1,5 +1,5 @@
1
1
  import {SearchSize16Px} from '@coveord/plasma-react-icons';
2
- import {createStyles, TextInput} from '@mantine/core';
2
+ import {createStyles, TextInput, Selectors, DefaultProps} from '@mantine/core';
3
3
  import {TableState} from '@tanstack/react-table';
4
4
  import {ChangeEvent, FunctionComponent} from 'react';
5
5
  import {useTable} from './useTable';
@@ -13,7 +13,8 @@ const useStyles = createStyles((theme) => ({
13
13
  },
14
14
  }));
15
15
 
16
- interface TableFilterProps {
16
+ type TableFilterStylesNames = Selectors<typeof useStyles>;
17
+ interface TableFilterProps extends DefaultProps<TableFilterStylesNames> {
17
18
  /**
18
19
  * The placeholder for the filter input
19
20
  *
@@ -22,8 +23,14 @@ interface TableFilterProps {
22
23
  placeholder?: string;
23
24
  }
24
25
 
25
- export const TableFilter: FunctionComponent<TableFilterProps> = ({placeholder = 'Search by any field'}) => {
26
- const {classes, cx} = useStyles();
26
+ export const TableFilter: FunctionComponent<TableFilterProps> = ({
27
+ placeholder = 'Search by any field',
28
+ classNames,
29
+ styles,
30
+ unstyled,
31
+ ...others
32
+ }) => {
33
+ const {classes, cx} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});
27
34
  const {state, setState} = useTable();
28
35
 
29
36
  const handleSearchChange = (event: ChangeEvent<HTMLInputElement>) => {
@@ -39,6 +46,7 @@ export const TableFilter: FunctionComponent<TableFilterProps> = ({placeholder =
39
46
  rightSection={<SearchSize16Px height={14} className={cx({[classes.empty]: !state.globalFilter})} />}
40
47
  value={state.globalFilter}
41
48
  onChange={handleSearchChange}
49
+ {...others}
42
50
  />
43
51
  );
44
52
  };