@coveord/plasma-mantine 52.18.0 → 52.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +34 -33
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/browser-preview/BrowserPreview.d.ts +16 -0
  5. package/dist/cjs/components/browser-preview/BrowserPreview.d.ts.map +1 -0
  6. package/dist/cjs/components/browser-preview/BrowserPreview.js +106 -0
  7. package/dist/cjs/components/browser-preview/BrowserPreview.js.map +1 -0
  8. package/dist/cjs/components/browser-preview/BrowserPreview.styles.d.ts +12 -0
  9. package/dist/cjs/components/browser-preview/BrowserPreview.styles.d.ts.map +1 -0
  10. package/dist/cjs/components/browser-preview/BrowserPreview.styles.js +35 -0
  11. package/dist/cjs/components/browser-preview/BrowserPreview.styles.js.map +1 -0
  12. package/dist/cjs/components/browser-preview/index.d.ts +2 -0
  13. package/dist/cjs/components/browser-preview/index.d.ts.map +1 -0
  14. package/dist/cjs/components/browser-preview/index.js +8 -0
  15. package/dist/cjs/components/browser-preview/index.js.map +1 -0
  16. package/dist/cjs/components/code-editor/CodeEditor.d.ts +3 -1
  17. package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
  18. package/dist/cjs/components/code-editor/CodeEditor.js +16 -3
  19. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  20. package/dist/cjs/components/index.d.ts +1 -0
  21. package/dist/cjs/components/index.d.ts.map +1 -1
  22. package/dist/cjs/components/index.js +1 -0
  23. package/dist/cjs/components/index.js.map +1 -1
  24. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +1 -0
  25. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  26. package/dist/cjs/components/table/Table.d.ts.map +1 -1
  27. package/dist/cjs/components/table/Table.js +8 -2
  28. package/dist/cjs/components/table/Table.js.map +1 -1
  29. package/dist/cjs/components/table/Table.styles.d.ts.map +1 -1
  30. package/dist/cjs/components/table/Table.styles.js +2 -1
  31. package/dist/cjs/components/table/Table.styles.js.map +1 -1
  32. package/dist/cjs/components/table/Table.types.d.ts +5 -1
  33. package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
  34. package/dist/cjs/components/table/layouts/RowLayout.d.ts.map +1 -1
  35. package/dist/cjs/components/table/layouts/RowLayout.js +6 -1
  36. package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
  37. package/dist/cjs/components/table/table-actions/TableActions.styles.js +3 -1
  38. package/dist/cjs/components/table/table-actions/TableActions.styles.js.map +1 -1
  39. package/dist/cjs/hooks/useRowSelection.js.map +1 -1
  40. package/dist/cjs/index.d.ts +1 -1
  41. package/dist/cjs/index.d.ts.map +1 -1
  42. package/dist/cjs/index.js +3 -0
  43. package/dist/cjs/index.js.map +1 -1
  44. package/dist/esm/components/browser-preview/BrowserPreview.d.ts +16 -0
  45. package/dist/esm/components/browser-preview/BrowserPreview.d.ts.map +1 -0
  46. package/dist/esm/components/browser-preview/BrowserPreview.js +95 -0
  47. package/dist/esm/components/browser-preview/BrowserPreview.js.map +1 -0
  48. package/dist/esm/components/browser-preview/BrowserPreview.styles.d.ts +12 -0
  49. package/dist/esm/components/browser-preview/BrowserPreview.styles.d.ts.map +1 -0
  50. package/dist/esm/components/browser-preview/BrowserPreview.styles.js +25 -0
  51. package/dist/esm/components/browser-preview/BrowserPreview.styles.js.map +1 -0
  52. package/dist/esm/components/browser-preview/index.d.ts +2 -0
  53. package/dist/esm/components/browser-preview/index.d.ts.map +1 -0
  54. package/dist/esm/components/browser-preview/index.js +3 -0
  55. package/dist/esm/components/browser-preview/index.js.map +1 -0
  56. package/dist/esm/components/code-editor/CodeEditor.d.ts +3 -1
  57. package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
  58. package/dist/esm/components/code-editor/CodeEditor.js +17 -4
  59. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  60. package/dist/esm/components/index.d.ts +1 -0
  61. package/dist/esm/components/index.d.ts.map +1 -1
  62. package/dist/esm/components/index.js +1 -0
  63. package/dist/esm/components/index.js.map +1 -1
  64. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js +1 -0
  65. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  66. package/dist/esm/components/table/Table.d.ts.map +1 -1
  67. package/dist/esm/components/table/Table.js +8 -2
  68. package/dist/esm/components/table/Table.js.map +1 -1
  69. package/dist/esm/components/table/Table.styles.d.ts.map +1 -1
  70. package/dist/esm/components/table/Table.styles.js +2 -1
  71. package/dist/esm/components/table/Table.styles.js.map +1 -1
  72. package/dist/esm/components/table/Table.types.d.ts +5 -1
  73. package/dist/esm/components/table/Table.types.d.ts.map +1 -1
  74. package/dist/esm/components/table/Table.types.js.map +1 -1
  75. package/dist/esm/components/table/layouts/RowLayout.d.ts.map +1 -1
  76. package/dist/esm/components/table/layouts/RowLayout.js +6 -1
  77. package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
  78. package/dist/esm/components/table/table-actions/TableActions.styles.js +3 -1
  79. package/dist/esm/components/table/table-actions/TableActions.styles.js.map +1 -1
  80. package/dist/esm/hooks/useRowSelection.js.map +1 -1
  81. package/dist/esm/index.d.ts +1 -1
  82. package/dist/esm/index.d.ts.map +1 -1
  83. package/dist/esm/index.js +1 -1
  84. package/dist/esm/index.js.map +1 -1
  85. package/package.json +3 -3
  86. package/src/components/browser-preview/BrowserPreview.styles.ts +14 -0
  87. package/src/components/browser-preview/BrowserPreview.tsx +72 -0
  88. package/src/components/browser-preview/__tests__/BrowserPreview.spec.tsx +35 -0
  89. package/src/components/browser-preview/index.ts +1 -0
  90. package/src/components/code-editor/CodeEditor.tsx +15 -4
  91. package/src/components/index.ts +1 -0
  92. package/src/components/inline-confirm/InlineConfirmPrompt.tsx +1 -1
  93. package/src/components/table/Table.styles.ts +2 -0
  94. package/src/components/table/Table.tsx +5 -2
  95. package/src/components/table/Table.types.ts +5 -1
  96. package/src/components/table/layouts/RowLayout.tsx +5 -2
  97. package/src/components/table/table-actions/TableActions.styles.ts +1 -1
  98. package/src/hooks/useRowSelection.ts +4 -4
  99. package/src/index.ts +1 -0
@@ -31,7 +31,7 @@ import { TablePredicate } from "./table-predicate/TablePredicate";
31
31
  export var Table = function(param) {
32
32
  var data = param.data, getRowId = param.getRowId, noDataChildren = param.noDataChildren, getExpandChildren = param.getExpandChildren, _param_initialState = param.initialState, initialState = _param_initialState === void 0 ? {} : _param_initialState, columns = param.columns, _param_layouts = param.layouts, layouts = _param_layouts === void 0 ? [
33
33
  TableLayouts.Rows
34
- ] : _param_layouts, onMount = param.onMount, onChange = param.onChange, children = param.children, _param_loading = param.loading, loading = _param_loading === void 0 ? false : _param_loading, doubleClickAction = param.doubleClickAction, multiRowSelectionEnabled = param.multiRowSelectionEnabled, disableRowSelection = param.disableRowSelection, onRowSelectionChange = param.onRowSelectionChange, additionalRootNodes = param.additionalRootNodes, _param_options = param.options, options = _param_options === void 0 ? {} : _param_options;
34
+ ] : _param_layouts, onMount = param.onMount, onChange = param.onChange, children = param.children, _param_loading = param.loading, loading = _param_loading === void 0 ? false : _param_loading, doubleClickAction = param.doubleClickAction, multiRowSelectionEnabled = param.multiRowSelectionEnabled, disableRowSelection = param.disableRowSelection, onRowSelectionChange = param.onRowSelectionChange, additionalRootNodes = param.additionalRootNodes, classNames = param.classNames, styles = param.styles, unstyled = param.unstyled, _param_options = param.options, options = _param_options === void 0 ? {} : _param_options;
35
35
  var _initialState, _initialState1, _initialState2, _options, _form_values, _form_values_dateRange, _form_values_dateRange1;
36
36
  var convertedChildren = Children.toArray(children);
37
37
  var header = convertedChildren.find(function(child) {
@@ -61,7 +61,12 @@ export var Table = function(param) {
61
61
  layout: (_initialState_layout = (_initialState2 = initialState) === null || _initialState2 === void 0 ? void 0 : _initialState2.layout) !== null && _initialState_layout !== void 0 ? _initialState_layout : layouts[0].name
62
62
  }
63
63
  });
64
- var classes = useStyles().classes;
64
+ var classes = useStyles(null, {
65
+ name: "PlasmaTable",
66
+ classNames: classNames,
67
+ styles: styles,
68
+ unstyled: unstyled
69
+ }).classes;
65
70
  var _ref;
66
71
  var table = useReactTable(_object_spread({
67
72
  initialState: defaultsDeep(initialStateWithoutForm, {
@@ -200,6 +205,7 @@ export var Table = function(param) {
200
205
  ]
201
206
  }),
202
207
  /*#__PURE__*/ _jsx("tbody", {
208
+ className: classes.body,
203
209
  children: hasRows ? /*#__PURE__*/ _jsx(Layout.Body, {
204
210
  table: table,
205
211
  doubleClickAction: doubleClickAction,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n TableState as TanstackTableState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, cloneElement, useCallback, useEffect, useState} from 'react';\n\nimport {useRowSelection} from '../../hooks/useRowSelection';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableContext} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n options = {},\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles();\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Box","Center","Loader","useForm","useDidUpdate","defaultColumnSizing","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","useRowSelection","useStyles","TableContext","TableLayouts","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableSelectableColumn","TableConsumer","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","options","form","convertedChildren","toArray","header","find","child","type","footer","consumer","lastUpdated","predicates","dateRange","initialStateWithoutForm","initialValues","layout","name","classes","table","pagination","pageSize","DEFAULT_SIZE","globalFilter","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","maxSize","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","cancel","sorting","JSON","stringify","clearFilters","setFieldValue","prevState","sx","flexGrow","Layout","hasRows","getRowModel","rows","length","ref","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","getAllColumns","Header","tbody","Body","td","visible","dependencies","props","Actions","Filter","Footer","LastUpdated","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n TableState as TanstackTableState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, cloneElement, useCallback, useEffect, useState} from 'react';\n\nimport {useRowSelection} from '../../hooks/useRowSelection';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableContext} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n classNames,\n styles,\n unstyled,\n options = {},\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles(null, {name: 'PlasmaTable', classNames, styles, unstyled});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody className={classes.body}>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Box","Center","Loader","useForm","useDidUpdate","defaultColumnSizing","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","useRowSelection","useStyles","TableContext","TableLayouts","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableSelectableColumn","TableConsumer","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","classNames","styles","unstyled","options","form","convertedChildren","toArray","header","find","child","type","footer","consumer","lastUpdated","predicates","dateRange","initialStateWithoutForm","initialValues","layout","name","classes","table","pagination","pageSize","DEFAULT_SIZE","globalFilter","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","maxSize","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","cancel","sorting","JSON","stringify","clearFilters","setFieldValue","prevState","sx","flexGrow","Layout","hasRows","getRowModel","rows","length","ref","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","getAllColumns","Header","tbody","body","Body","td","visible","dependencies","props","Actions","Filter","Footer","LastUpdated","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CAqBZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CAuBZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -18,7 +18,8 @@ var useStyles = createStyles(function(theme) {
18
18
  bottom: 0,
19
19
  borderBottom: "1px solid ".concat(theme.colors.gray[3])
20
20
  }
21
- }
21
+ },
22
+ body: {}
22
23
  };
23
24
  });
24
25
  export var TableComponentsOrder = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nconst useStyles = createStyles<string>((theme) => ({\n table: {\n width: '100%',\n },\n\n header: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 1,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n },\n}));\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 6,\n Actions: 5,\n Predicate: 4,\n Filter: 3,\n DateRangePicker: 2,\n LayoutControl: 1,\n};\n\nexport default useStyles;\n"],"names":["createStyles","useStyles","theme","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","LayoutControl"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAE3C,IAAMC,YAAYD,aAAqB,SAACE;WAAW;QAC/CC,OAAO;YACHC,OAAO;QACX;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBN,MAAMO,WAAW,KAAK,SAASP,MAAMQ,KAAK,GAAGR,MAAMS,KAAK;YACzEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTR,UAAU;gBACVS,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRC,cAAc,AAAC,aAAiC,OAArBhB,MAAMiB,MAAM,CAACC,IAAI,CAAC,EAAE;YACnD;QACJ;IACJ;;AAEA,OAAO,IAAMC,uBAAuB;IAChCC,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;IACjBC,eAAe;AACnB,EAAE;AAEF,eAAe1B,UAAU"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nconst useStyles = createStyles<string>((theme) => ({\n table: {\n width: '100%',\n },\n\n header: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 1,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n },\n\n body: {},\n}));\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 6,\n Actions: 5,\n Predicate: 4,\n Filter: 3,\n DateRangePicker: 2,\n LayoutControl: 1,\n};\n\nexport default useStyles;\n"],"names":["createStyles","useStyles","theme","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","body","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","LayoutControl"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAE3C,IAAMC,YAAYD,aAAqB,SAACE;WAAW;QAC/CC,OAAO;YACHC,OAAO;QACX;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBN,MAAMO,WAAW,KAAK,SAASP,MAAMQ,KAAK,GAAGR,MAAMS,KAAK;YACzEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTR,UAAU;gBACVS,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRC,cAAc,AAAC,aAAiC,OAArBhB,MAAMiB,MAAM,CAACC,IAAI,CAAC,EAAE;YACnD;QACJ;QAEAC,MAAM,CAAC;IACX;;AAEA,OAAO,IAAMC,uBAAuB;IAChCC,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;IACjBC,eAAe;AACnB,EAAE;AAEF,eAAe3B,UAAU"}
@@ -1,4 +1,5 @@
1
1
  import { Icon } from '@coveord/plasma-react-icons';
2
+ import { DefaultProps, Selectors } from '@mantine/core';
2
3
  import { UseFormReturnType } from '@mantine/form';
3
4
  import { ColumnDef, CoreOptions, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
4
5
  import { Dispatch, ReactElement, ReactNode, RefObject } from 'react';
@@ -17,6 +18,7 @@ import { TableLoading } from './table-loading/TableLoading';
17
18
  import { TablePagination } from './table-pagination/TablePagination';
18
19
  import { TablePerPage } from './table-per-page/TablePerPage';
19
20
  import { TablePredicate } from './table-predicate/TablePredicate';
21
+ import useStyles from './Table.styles';
20
22
  export type RowSelectionWithData<TData> = Record<string, TData>;
21
23
  export interface RowSelectionState<TData> {
22
24
  rowSelection: RowSelectionWithData<TData>;
@@ -127,7 +129,8 @@ export type TableContextType<TData> = {
127
129
  */
128
130
  layouts: TableLayout[];
129
131
  };
130
- export interface TableProps<T> {
132
+ type TableStylesNames = Selectors<typeof useStyles>;
133
+ export interface TableProps<T> extends DefaultProps<TableStylesNames> {
131
134
  /**
132
135
  * Data to display in the table
133
136
  */
@@ -245,4 +248,5 @@ export interface TableType {
245
248
  Loading: typeof TableLoading;
246
249
  Layouts: typeof TableLayouts;
247
250
  }
251
+ export {};
248
252
  //# sourceMappingURL=Table.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.types.ts"],"sourcesContent":["import {Icon} from '@coveord/plasma-react-icons';\nimport {UseFormReturnType} from '@mantine/form';\nimport {\n ColumnDef,\n CoreOptions,\n TableOptions,\n InitialTableState as TanstackInitialTableState,\n TableState as TanstackTableState,\n} from '@tanstack/table-core';\nimport {Dispatch, ReactElement, ReactNode, RefObject} from 'react';\n\nimport {DateRangePickerValue} from '../date-range-picker/DateRangePickerInlineCalendar';\nimport {TableLayoutProps} from './layouts/RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport type RowSelectionWithData<TData> = Record<string, TData>;\nexport interface RowSelectionState<TData> {\n rowSelection: RowSelectionWithData<TData>;\n}\n\nexport interface TableState<TData> extends Omit<TanstackTableState, 'rowSelection'>, RowSelectionState<TData> {}\n\nexport interface InitialTableState<TData>\n extends Omit<TanstackInitialTableState, 'rowSelection'>,\n Partial<RowSelectionState<TData>>,\n Partial<TableFormType> {}\n\nexport type onTableChangeEvent<TData> = (params: TableState<TData> & TableFormType) => void;\n\nexport interface TableLayout {\n /**\n * Name of the layout.\n * Will be displayed in the layout control\n */\n name: string;\n /**\n * Icon illustrating the layout.\n * Will be displayed in the layout control\n */\n icon?: Icon;\n /**\n * Header portion of the table.\n * In the standard row layout that is where column headers would be displayed.\n */\n Header: <T>(props: TableLayoutProps<T>) => ReactElement;\n /**\n * Body portion of the table.\n * In the standard row layout that is where the rows would be displayed.\n */\n Body: <T>(props: TableLayoutProps<T>) => ReactElement;\n}\n\nexport type TableFormType = {\n /**\n * Object containing the table predicates and their selected values\n *\n * @example {type: \"LONG\", origin: \"system\"}\n */\n predicates: Record<string, string>;\n /**\n * Selected date range in the table\n *\n * @example [new Date(2022, 0, 1), new Date(2022, 0, 31)]\n */\n dateRange: DateRangePickerValue;\n /**\n * Selected layout name\n */\n layout: TableLayout['name'];\n};\n\nexport type TableContextType<TData> = {\n /**\n * Function to call when the table needs an update\n */\n onChange: () => void;\n /**\n * Internal state of the table\n *\n * @see https://tanstack.com/table/v8/docs/api/core/table#state\n */\n state: TableState<TData>;\n /**\n * Function to update the table state\n */\n setState: Dispatch<(prevState: TableState<TData>) => TableState<TData>>;\n /**\n * Whether the table currently as any kind of filter applied.\n * Useful to determine if the noDataChildren is an empty state or just the result of a filter\n */\n isFiltered: boolean;\n /**\n * Function that clears the filter and predicates\n */\n clearFilters: () => void;\n /**\n * Function that returns the selected row if any.\n */\n getSelectedRow: () => TData | null;\n /**\n * Function that returns an array of the selected rows. Most useful when multi row selection is enabled.\n */\n getSelectedRows: () => TData[];\n /**\n * Function that clear the selected row\n */\n clearSelection: () => void;\n /**\n * Form used to handle predicates and dateRange\n */\n form: UseFormReturnType<TableFormType>;\n /**\n * Table container ref\n */\n containerRef: RefObject<HTMLDivElement>;\n /**\n * Whether multi row selection is activated\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether row selection is enabled or not\n */\n disableRowSelection: boolean;\n /**\n * Function that returns the number of pages\n */\n getPageCount: () => number;\n /**\n * Available layouts. When more than one layout is provided, it will display a layout control to switch between them.\n */\n layouts: TableLayout[];\n};\n\nexport interface TableProps<T> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Defines how each row is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n */\n getRowId?: CoreOptions<T>['getRowId'];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Available layouts\n *\n * @default [Table.Layouts.Rows]\n */\n layouts?: TableLayout[];\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent<T>;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent<T>;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState<T>;\n /**\n * Action passed when user double clicks on a row\n */\n doubleClickAction?: (datum: T) => void;\n /**\n * Function called whenever the row selection changes\n *\n * @param selectedRows The selected rows\n */\n onRowSelectionChange?: (selectedRows: T[]) => void;\n /**\n * Whether the user can select multiple rows in order to perform actions in bulk\n *\n * @default false\n */\n multiRowSelectionEnabled?: boolean;\n /**\n * Whether row selection is enabled or not\n *\n * @default false\n */\n disableRowSelection?: boolean;\n /**\n * Nodes that are considered inside the table.\n *\n * Rows normally get unselected when clicking outside the table, but sometimes it has difficulties guessing what is inside or outside, for example when using modals.\n * You can use this prop to force the table to consider some nodes to be inside the table.\n *\n * @see https://mantine.dev/hooks/use-click-outside/#multiple-nodes\n */\n additionalRootNodes?: HTMLElement[];\n /**\n * Additional options that can be passed to the table\n */\n options?: Omit<\n Partial<TableOptions<T>>,\n | 'initialState'\n | 'data'\n | 'columns'\n | 'manualPagination'\n | 'enableMultiRowSelection'\n | 'getRowId'\n | 'getRowCanExpand'\n | 'enableRowSelection'\n | 'onRowSelectionChange'\n >;\n}\n\nexport interface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n DateRangePicker: typeof TableDateRangePicker;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n AccordionColumn: typeof TableAccordionColumn;\n Consumer: typeof TableConsumer;\n Loading: typeof TableLoading;\n Layouts: typeof TableLayouts;\n}\n"],"names":[],"mappings":"AAAA,WAkRC"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.types.ts"],"sourcesContent":["import {Icon} from '@coveord/plasma-react-icons';\nimport {DefaultProps, Selectors} from '@mantine/core';\nimport {UseFormReturnType} from '@mantine/form';\nimport {\n ColumnDef,\n CoreOptions,\n TableOptions,\n InitialTableState as TanstackInitialTableState,\n TableState as TanstackTableState,\n} from '@tanstack/table-core';\nimport {Dispatch, ReactElement, ReactNode, RefObject} from 'react';\n\nimport {DateRangePickerValue} from '../date-range-picker/DateRangePickerInlineCalendar';\nimport {TableLayoutProps} from './layouts/RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\nimport useStyles from './Table.styles';\n\nexport type RowSelectionWithData<TData> = Record<string, TData>;\nexport interface RowSelectionState<TData> {\n rowSelection: RowSelectionWithData<TData>;\n}\n\nexport interface TableState<TData> extends Omit<TanstackTableState, 'rowSelection'>, RowSelectionState<TData> {}\n\nexport interface InitialTableState<TData>\n extends Omit<TanstackInitialTableState, 'rowSelection'>,\n Partial<RowSelectionState<TData>>,\n Partial<TableFormType> {}\n\nexport type onTableChangeEvent<TData> = (params: TableState<TData> & TableFormType) => void;\n\nexport interface TableLayout {\n /**\n * Name of the layout.\n * Will be displayed in the layout control\n */\n name: string;\n /**\n * Icon illustrating the layout.\n * Will be displayed in the layout control\n */\n icon?: Icon;\n /**\n * Header portion of the table.\n * In the standard row layout that is where column headers would be displayed.\n */\n Header: <T>(props: TableLayoutProps<T>) => ReactElement;\n /**\n * Body portion of the table.\n * In the standard row layout that is where the rows would be displayed.\n */\n Body: <T>(props: TableLayoutProps<T>) => ReactElement;\n}\n\nexport type TableFormType = {\n /**\n * Object containing the table predicates and their selected values\n *\n * @example {type: \"LONG\", origin: \"system\"}\n */\n predicates: Record<string, string>;\n /**\n * Selected date range in the table\n *\n * @example [new Date(2022, 0, 1), new Date(2022, 0, 31)]\n */\n dateRange: DateRangePickerValue;\n /**\n * Selected layout name\n */\n layout: TableLayout['name'];\n};\n\nexport type TableContextType<TData> = {\n /**\n * Function to call when the table needs an update\n */\n onChange: () => void;\n /**\n * Internal state of the table\n *\n * @see https://tanstack.com/table/v8/docs/api/core/table#state\n */\n state: TableState<TData>;\n /**\n * Function to update the table state\n */\n setState: Dispatch<(prevState: TableState<TData>) => TableState<TData>>;\n /**\n * Whether the table currently as any kind of filter applied.\n * Useful to determine if the noDataChildren is an empty state or just the result of a filter\n */\n isFiltered: boolean;\n /**\n * Function that clears the filter and predicates\n */\n clearFilters: () => void;\n /**\n * Function that returns the selected row if any.\n */\n getSelectedRow: () => TData | null;\n /**\n * Function that returns an array of the selected rows. Most useful when multi row selection is enabled.\n */\n getSelectedRows: () => TData[];\n /**\n * Function that clear the selected row\n */\n clearSelection: () => void;\n /**\n * Form used to handle predicates and dateRange\n */\n form: UseFormReturnType<TableFormType>;\n /**\n * Table container ref\n */\n containerRef: RefObject<HTMLDivElement>;\n /**\n * Whether multi row selection is activated\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether row selection is enabled or not\n */\n disableRowSelection: boolean;\n /**\n * Function that returns the number of pages\n */\n getPageCount: () => number;\n /**\n * Available layouts. When more than one layout is provided, it will display a layout control to switch between them.\n */\n layouts: TableLayout[];\n};\n\ntype TableStylesNames = Selectors<typeof useStyles>;\n\nexport interface TableProps<T> extends DefaultProps<TableStylesNames> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Defines how each row is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n */\n getRowId?: CoreOptions<T>['getRowId'];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Available layouts\n *\n * @default [Table.Layouts.Rows]\n */\n layouts?: TableLayout[];\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent<T>;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent<T>;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState<T>;\n /**\n * Action passed when user double clicks on a row\n */\n doubleClickAction?: (datum: T) => void;\n /**\n * Function called whenever the row selection changes\n *\n * @param selectedRows The selected rows\n */\n onRowSelectionChange?: (selectedRows: T[]) => void;\n /**\n * Whether the user can select multiple rows in order to perform actions in bulk\n *\n * @default false\n */\n multiRowSelectionEnabled?: boolean;\n /**\n * Whether row selection is enabled or not\n *\n * @default false\n */\n disableRowSelection?: boolean;\n /**\n * Nodes that are considered inside the table.\n *\n * Rows normally get unselected when clicking outside the table, but sometimes it has difficulties guessing what is inside or outside, for example when using modals.\n * You can use this prop to force the table to consider some nodes to be inside the table.\n *\n * @see https://mantine.dev/hooks/use-click-outside/#multiple-nodes\n */\n additionalRootNodes?: HTMLElement[];\n /**\n * Additional options that can be passed to the table\n */\n options?: Omit<\n Partial<TableOptions<T>>,\n | 'initialState'\n | 'data'\n | 'columns'\n | 'manualPagination'\n | 'enableMultiRowSelection'\n | 'getRowId'\n | 'getRowCanExpand'\n | 'enableRowSelection'\n | 'onRowSelectionChange'\n >;\n}\n\nexport interface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n DateRangePicker: typeof TableDateRangePicker;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n AccordionColumn: typeof TableAccordionColumn;\n Consumer: typeof TableConsumer;\n Loading: typeof TableLoading;\n Layouts: typeof TableLayouts;\n}\n"],"names":[],"mappings":"AAAA,WAsRC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA+H3C,eAAO,MAAM,SAAS,EAAE,WAKvB,CAAC"}
1
+ {"version":3,"file":"RowLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAkI3C,eAAO,MAAM,SAAS,EAAE,WAKvB,CAAC"}
@@ -15,11 +15,16 @@ import { Th } from "../table-header/Th";
15
15
  import { TableLoading } from "../table-loading/TableLoading";
16
16
  import useStyles from "./RowLayout.styles";
17
17
  var RowLayoutHeader = function(param) {
18
- var table = param.table;
18
+ var table = param.table, classNames = param.classNames, styles = param.styles, unstyled = param.unstyled;
19
19
  var _useTable = useTable(), multiRowSelectionEnabled = _useTable.multiRowSelectionEnabled, disableRowSelection = _useTable.disableRowSelection;
20
20
  var classes = useStyles({
21
21
  disableRowSelection: disableRowSelection,
22
22
  multiRowSelectionEnabled: multiRowSelectionEnabled
23
+ }, {
24
+ name: "RowLayout",
25
+ classNames: classNames,
26
+ styles: styles,
27
+ unstyled: unstyled
23
28
  }).classes;
24
29
  var headers = table.getHeaderGroups().map(function(headerGroup) {
25
30
  return /*#__PURE__*/ _jsx("tr", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout} from '../Table.types';\nimport {useTable} from '../TableContext';\nimport {TableCollapsibleColumn} from '../table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from '../table-column/TableSelectableColumn';\nimport {Th} from '../table-header/Th';\nimport {TableLoading} from '../table-loading/TableLoading';\nimport useStyles from './RowLayout.styles';\nimport {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\n\nconst RowLayoutHeader = <T,>({table}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles({disableRowSelection, multiRowSelectionEnabled});\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n classNames,\n styles,\n unstyled,\n ...others\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["ListSize16Px","Box","Collapse","flexRender","defaultColumnSizing","Fragment","useTable","TableCollapsibleColumn","TableSelectableColumn","Th","TableLoading","useStyles","RowLayoutHeader","table","multiRowSelectionEnabled","disableRowSelection","classes","headers","getHeaderGroups","map","headerGroup","tr","className","headerColumns","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","classNames","styles","unstyled","others","name","cx","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","row","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","onDoubleClick","rowSelected","rowUnselectable","aria-selected","data-testid","getVisibleCells","columnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","rowCollapsibleButtonCell","visible","getContext","colSpan","getAllColumns","padding","in","getIsExpanded","collapsible","px","py","RowLayout","icon","Header","Body"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout} from '../Table.types';\nimport {useTable} from '../TableContext';\nimport {TableCollapsibleColumn} from '../table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from '../table-column/TableSelectableColumn';\nimport {Th} from '../table-header/Th';\nimport {TableLoading} from '../table-loading/TableLoading';\nimport useStyles from './RowLayout.styles';\nimport {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\n\nconst RowLayoutHeader = <T,>({table, classNames, styles, unstyled}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n classNames,\n styles,\n unstyled,\n ...others\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["ListSize16Px","Box","Collapse","flexRender","defaultColumnSizing","Fragment","useTable","TableCollapsibleColumn","TableSelectableColumn","Th","TableLoading","useStyles","RowLayoutHeader","table","classNames","styles","unstyled","multiRowSelectionEnabled","disableRowSelection","classes","name","headers","getHeaderGroups","map","headerGroup","tr","className","headerColumns","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","others","cx","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","row","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","onDoubleClick","rowSelected","rowUnselectable","aria-selected","data-testid","getVisibleCells","columnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","rowCollapsibleButtonCell","visible","getContext","colSpan","getAllColumns","padding","in","getIsExpanded","collapsible","px","py","RowLayout","icon","Header","Body"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { createStyles } from "@mantine/core";
2
2
  export default createStyles(function(theme) {
3
3
  return {
4
- root: {},
4
+ root: {
5
+ maxWidth: "100%"
6
+ },
5
7
  wrapper: {
6
8
  display: "inline-flex"
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/table-actions/TableActions.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nexport default createStyles((theme) => ({\n root: {},\n wrapper: {\n display: 'inline-flex',\n },\n}));\n"],"names":["createStyles","theme","root","wrapper","display"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAE3C,eAAeA,aAAa,SAACC;WAAW;QACpCC,MAAM,CAAC;QACPC,SAAS;YACLC,SAAS;QACb;IACJ;GAAI"}
1
+ {"version":3,"sources":["../../../../../src/components/table/table-actions/TableActions.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nexport default createStyles((theme) => ({\n root: {maxWidth: '100%'},\n wrapper: {\n display: 'inline-flex',\n },\n}));\n"],"names":["createStyles","theme","root","maxWidth","wrapper","display"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAE3C,eAAeA,aAAa,SAACC;WAAW;QACpCC,MAAM;YAACC,UAAU;QAAM;QACvBC,SAAS;YACLC,SAAS;QACb;IACJ;GAAI"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useRowSelection.ts"],"sourcesContent":["import {useClickOutside, useDidUpdate} from '@mantine/hooks';\nimport {RowSelectionState, Table, functionalUpdate} from '@tanstack/table-core';\nimport isEqual from 'fast-deep-equal';\n\nimport {useRef} from 'react';\nimport {RowSelectionWithData, TableProps, TableState} from '../components/table/Table.types';\n\nexport const useRowSelection = <T>(\n table: Table<T>,\n {\n onRowSelectionChange,\n multiRowSelectionEnabled,\n additionalRootNodes = [],\n }: Pick<TableProps<T>, 'onRowSelectionChange' | 'multiRowSelectionEnabled' | 'additionalRootNodes'>\n) => {\n const outsideClickRef = useRef<HTMLDivElement>();\n useClickOutside(\n () => {\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n },\n null,\n [outsideClickRef.current, ...additionalRootNodes]\n );\n\n // Need to call this outside of the onRowSelectionChange of the table to avoid rendering conflicts if the callback queues an update in a parent component.\n // See this warning introduced in React v.16.13.0: https://legacy.reactjs.org/blog/2020/02/26/react-v16.13.0.html#warnings-for-some-updates-during-render\n useDidUpdate(() => {\n onRowSelectionChange?.(getSelectedRows());\n }, [table.getState().rowSelection]);\n\n table.setOptions((prev) => ({\n ...prev,\n onRowSelectionChange: (rowSelectionUpdater) => {\n table.setState((old) => {\n const newRowSelection = functionalUpdate(\n rowSelectionUpdater,\n old['rowSelection']\n ) as RowSelectionWithData<T>;\n\n if (isEqual(old['rowSelection'], newRowSelection)) {\n return old;\n }\n\n const rows = table.getRowModel().rowsById;\n\n Object.keys(newRowSelection).forEach((rowId) => {\n if (newRowSelection[rowId] === true) {\n if (!rows[rowId]) {\n console.error(\n 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.'\n );\n }\n newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);\n }\n });\n\n return {\n ...old,\n rowSelection: newRowSelection as RowSelectionState,\n };\n });\n },\n }));\n\n const clearSelection = () => {\n table.resetRowSelection(true);\n };\n\n const getSelectedRows = () => Object.values((table.getState() as TableState<T>).rowSelection);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n return {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef};\n};\n"],"names":["useClickOutside","useDidUpdate","functionalUpdate","isEqual","useRef","useRowSelection","table","onRowSelectionChange","multiRowSelectionEnabled","additionalRootNodes","outsideClickRef","clearSelection","current","getSelectedRows","getState","rowSelection","setOptions","prev","rowSelectionUpdater","setState","old","newRowSelection","rows","getRowModel","rowsById","Object","keys","forEach","rowId","console","error","original","resetRowSelection","values","getSelectedRow"],"mappings":";;;AAAA,SAAQA,eAAe,EAAEC,YAAY,QAAO,iBAAiB;AAC7D,SAAkCC,gBAAgB,QAAO,uBAAuB;AAChF,OAAOC,aAAa,kBAAkB;AAEtC,SAAQC,MAAM,QAAO,QAAQ;AAG7B,OAAO,IAAMC,kBAAkB,SAC3BC;QAEIC,6BAAAA,sBACAC,iCAAAA,6DACAC,qBAAAA,8DAAsB,EAAE;IAG5B,IAAMC,kBAAkBN;IACxBJ,gBACI;QACI,IAAI,CAACQ,0BAA0B;YAC3BG;QACJ;IACJ,GACA,MACA;QAACD,gBAAgBE,OAAO;KAAyB,CAAjD,OAA0B,qBAAGH;IAGjC,0JAA0J;IAC1J,yJAAyJ;IACzJR,aAAa;YACTM;SAAAA,wBAAAA,kCAAAA,4CAAAA,sBAAuBM;IAC3B,GAAG;QAACP,MAAMQ,QAAQ,GAAGC,YAAY;KAAC;IAElCT,MAAMU,UAAU,CAAC,SAACC;eAAU,wCACrBA;YACHV,sBAAsB,SAACW;gBACnBZ,MAAMa,QAAQ,CAAC,SAACC;oBACZ,IAAMC,kBAAkBnB,iBACpBgB,qBACAE,GAAG,CAAC,eAAe;oBAGvB,IAAIjB,QAAQiB,GAAG,CAAC,eAAe,EAAEC,kBAAkB;wBAC/C,OAAOD;oBACX;oBAEA,IAAME,OAAOhB,MAAMiB,WAAW,GAAGC,QAAQ;oBAEzCC,OAAOC,IAAI,CAACL,iBAAiBM,OAAO,CAAC,SAACC;wBAClC,IAAIP,eAAe,CAACO,MAAM,KAAK,MAAM;gCAMRN;4BALzB,IAAI,CAACA,IAAI,CAACM,MAAM,EAAE;gCACdC,QAAQC,KAAK,CACT;4BAER;gCACyBR;4BAAzBD,eAAe,CAACO,MAAM,GAAGN,CAAAA,wBAAAA,cAAAA,IAAI,CAACM,MAAM,cAAXN,kCAAAA,YAAaS,QAAQ,cAArBT,kCAAAA,uBAA0B;wBACvD;oBACJ;oBAEA,OAAO,wCACAF;wBACHL,cAAcM;;gBAEtB;YACJ;;;IAGJ,IAAMV,iBAAiB;QACnBL,MAAM0B,iBAAiB,CAAC;IAC5B;IAEA,IAAMnB,kBAAkB;eAAMY,OAAOQ,MAAM,CAAC,AAAC3B,MAAMQ,QAAQ,GAAqBC,YAAY;;QAE/DF;IAA7B,IAAMqB,iBAAiB;eAAMrB,CAAAA,oBAAAA,iBAAiB,CAAC,EAAE,cAApBA,+BAAAA,oBAAwB;;IAErD,OAAO;QAACF,gBAAAA;QAAgBuB,gBAAAA;QAAgBrB,iBAAAA;QAAiBH,iBAAAA;IAAe;AAC5E,EAAE"}
1
+ {"version":3,"sources":["../../../src/hooks/useRowSelection.ts"],"sourcesContent":["import {useClickOutside, useDidUpdate} from '@mantine/hooks';\nimport {RowSelectionState, Table, functionalUpdate} from '@tanstack/table-core';\nimport isEqual from 'fast-deep-equal';\n\nimport {useRef} from 'react';\nimport {RowSelectionWithData, TableProps, TableState} from '../components/table/Table.types';\n\nexport const useRowSelection = <T>(\n table: Table<T>,\n {\n onRowSelectionChange,\n multiRowSelectionEnabled,\n additionalRootNodes = [],\n }: Pick<TableProps<T>, 'onRowSelectionChange' | 'multiRowSelectionEnabled' | 'additionalRootNodes'>,\n) => {\n const outsideClickRef = useRef<HTMLDivElement>();\n useClickOutside(\n () => {\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n },\n null,\n [outsideClickRef.current, ...additionalRootNodes],\n );\n\n // Need to call this outside of the onRowSelectionChange of the table to avoid rendering conflicts if the callback queues an update in a parent component.\n // See this warning introduced in React v.16.13.0: https://legacy.reactjs.org/blog/2020/02/26/react-v16.13.0.html#warnings-for-some-updates-during-render\n useDidUpdate(() => {\n onRowSelectionChange?.(getSelectedRows());\n }, [table.getState().rowSelection]);\n\n table.setOptions((prev) => ({\n ...prev,\n onRowSelectionChange: (rowSelectionUpdater) => {\n table.setState((old) => {\n const newRowSelection = functionalUpdate(\n rowSelectionUpdater,\n old['rowSelection'],\n ) as RowSelectionWithData<T>;\n\n if (isEqual(old['rowSelection'], newRowSelection)) {\n return old;\n }\n\n const rows = table.getRowModel().rowsById;\n\n Object.keys(newRowSelection).forEach((rowId) => {\n if (newRowSelection[rowId] === true) {\n if (!rows[rowId]) {\n console.error(\n 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.',\n );\n }\n newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);\n }\n });\n\n return {\n ...old,\n rowSelection: newRowSelection as RowSelectionState,\n };\n });\n },\n }));\n\n const clearSelection = () => {\n table.resetRowSelection(true);\n };\n\n const getSelectedRows = () => Object.values((table.getState() as TableState<T>).rowSelection);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n return {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef};\n};\n"],"names":["useClickOutside","useDidUpdate","functionalUpdate","isEqual","useRef","useRowSelection","table","onRowSelectionChange","multiRowSelectionEnabled","additionalRootNodes","outsideClickRef","clearSelection","current","getSelectedRows","getState","rowSelection","setOptions","prev","rowSelectionUpdater","setState","old","newRowSelection","rows","getRowModel","rowsById","Object","keys","forEach","rowId","console","error","original","resetRowSelection","values","getSelectedRow"],"mappings":";;;AAAA,SAAQA,eAAe,EAAEC,YAAY,QAAO,iBAAiB;AAC7D,SAAkCC,gBAAgB,QAAO,uBAAuB;AAChF,OAAOC,aAAa,kBAAkB;AAEtC,SAAQC,MAAM,QAAO,QAAQ;AAG7B,OAAO,IAAMC,kBAAkB,SAC3BC;QAEIC,6BAAAA,sBACAC,iCAAAA,6DACAC,qBAAAA,8DAAsB,EAAE;IAG5B,IAAMC,kBAAkBN;IACxBJ,gBACI;QACI,IAAI,CAACQ,0BAA0B;YAC3BG;QACJ;IACJ,GACA,MACA;QAACD,gBAAgBE,OAAO;KAAyB,CAAjD,OAA0B,qBAAGH;IAGjC,0JAA0J;IAC1J,yJAAyJ;IACzJR,aAAa;YACTM;SAAAA,wBAAAA,kCAAAA,4CAAAA,sBAAuBM;IAC3B,GAAG;QAACP,MAAMQ,QAAQ,GAAGC,YAAY;KAAC;IAElCT,MAAMU,UAAU,CAAC,SAACC;eAAU,wCACrBA;YACHV,sBAAsB,SAACW;gBACnBZ,MAAMa,QAAQ,CAAC,SAACC;oBACZ,IAAMC,kBAAkBnB,iBACpBgB,qBACAE,GAAG,CAAC,eAAe;oBAGvB,IAAIjB,QAAQiB,GAAG,CAAC,eAAe,EAAEC,kBAAkB;wBAC/C,OAAOD;oBACX;oBAEA,IAAME,OAAOhB,MAAMiB,WAAW,GAAGC,QAAQ;oBAEzCC,OAAOC,IAAI,CAACL,iBAAiBM,OAAO,CAAC,SAACC;wBAClC,IAAIP,eAAe,CAACO,MAAM,KAAK,MAAM;gCAMRN;4BALzB,IAAI,CAACA,IAAI,CAACM,MAAM,EAAE;gCACdC,QAAQC,KAAK,CACT;4BAER;gCACyBR;4BAAzBD,eAAe,CAACO,MAAM,GAAGN,CAAAA,wBAAAA,cAAAA,IAAI,CAACM,MAAM,cAAXN,kCAAAA,YAAaS,QAAQ,cAArBT,kCAAAA,uBAA0B;wBACvD;oBACJ;oBAEA,OAAO,wCACAF;wBACHL,cAAcM;;gBAEtB;YACJ;;;IAGJ,IAAMV,iBAAiB;QACnBL,MAAM0B,iBAAiB,CAAC;IAC5B;IAEA,IAAMnB,kBAAkB;eAAMY,OAAOQ,MAAM,CAAC,AAAC3B,MAAMQ,QAAQ,GAAqBC,YAAY;;QAE/DF;IAA7B,IAAMqB,iBAAiB;eAAMrB,CAAAA,oBAAAA,iBAAiB,CAAC,EAAE,cAApBA,+BAAAA,oBAAwB;;IAErD,OAAO;QAACF,gBAAAA;QAAgBuB,gBAAAA;QAAgBrB,iBAAAA;QAAiBH,iBAAAA;IAAe;AAC5E,EAAE"}
@@ -10,7 +10,7 @@ export * from './components';
10
10
  export * from '@mantine/form';
11
11
  export { type NotificationProps } from '@mantine/notifications';
12
12
  export { Pagination } from '@mantine/core';
13
- export { Header, type HeaderProps, Table, type TableProps, type TableState, type InitialTableState, ActionIcon, type ActionIconProps, Button, type ButtonProps, Menu, type MenuItemProps, CopyToClipboard, type CopyToClipboardProps, } from './components';
13
+ export { BrowserPreview, Header, type HeaderProps, Table, type TableProps, type TableState, type InitialTableState, ActionIcon, type ActionIconProps, Button, type ButtonProps, Menu, type MenuItemProps, CopyToClipboard, type CopyToClipboardProps, } from './components';
14
14
  export { useForm, createFormContext } from './form';
15
15
  export * from './theme';
16
16
  declare module '@mantine/core' {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,KAAK,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,EACH,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,eAAe,EACpB,MAAM,EACN,KAAK,WAAW,EAChB,IAAI,EACJ,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,oBAAoB,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AAElD,cAAc,SAAS,CAAC;AAExB,OAAO,QAAQ,eAAe,CAAC;IAC3B,UAAiB,0BAA0B;QAEvC,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;KAChF;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,KAAK,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,EACH,cAAc,EACd,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,eAAe,EACpB,MAAM,EACN,KAAK,WAAW,EAChB,IAAI,EACJ,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,oBAAoB,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AAElD,cAAc,SAAS,CAAC;AAExB,OAAO,QAAQ,eAAe,CAAC;IAC3B,UAAiB,0BAA0B;QAEvC,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;KAChF;CACJ"}
package/dist/esm/index.js CHANGED
@@ -7,7 +7,7 @@ export * from "./components";
7
7
  export * from "@mantine/form";
8
8
  export { Pagination } from "@mantine/core";
9
9
  // explicitly overriding mantine components
10
- export { Header, Table, ActionIcon, Button, Menu, CopyToClipboard } from "./components";
10
+ export { BrowserPreview, Header, Table, ActionIcon, Button, Menu, CopyToClipboard } from "./components";
11
11
  export { useForm, createFormContext } from "./form";
12
12
  export * from "./theme";
13
13
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {Tuple} from '@mantine/core';\n\nimport {PlasmaColors} from './theme/PlasmaColors';\n\nexport * from '@mantine/notifications';\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport type {FormValidateInput} from '@mantine/form/lib/types';\nexport * from '@mantine/hooks';\nexport * from '@tanstack/table-core';\nexport * from './components';\nexport * from '@mantine/form';\nexport {type NotificationProps} from '@mantine/notifications';\nexport {Pagination} from '@mantine/core';\n// explicitly overriding mantine components\nexport {\n Header,\n type HeaderProps,\n Table,\n type TableProps,\n type TableState,\n type InitialTableState,\n ActionIcon,\n type ActionIconProps,\n Button,\n type ButtonProps,\n Menu,\n type MenuItemProps,\n CopyToClipboard,\n type CopyToClipboardProps,\n} from './components';\nexport {useForm, createFormContext} from './form';\n\nexport * from './theme';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n // eslint-disable-next-line @typescript-eslint/ban-types\n colors: Record<keyof typeof PlasmaColors | (string & {}), Tuple<string, 10>>;\n }\n}\n"],"names":["Pagination","Header","Table","ActionIcon","Button","Menu","CopyToClipboard","useForm","createFormContext"],"mappings":"AAIA,cAAc,yBAAyB;AACvC,cAAc,oBAAoB;AAClC,cAAc,gBAAgB;AAE9B,cAAc,iBAAiB;AAC/B,cAAc,uBAAuB;AACrC,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAE9B,SAAQA,UAAU,QAAO,gBAAgB;AACzC,2CAA2C;AAC3C,SACIC,MAAM,EAENC,KAAK,EAILC,UAAU,EAEVC,MAAM,EAENC,IAAI,EAEJC,eAAe,QAEZ,eAAe;AACtB,SAAQC,OAAO,EAAEC,iBAAiB,QAAO,SAAS;AAElD,cAAc,UAAU"}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {Tuple} from '@mantine/core';\n\nimport {PlasmaColors} from './theme/PlasmaColors';\n\nexport * from '@mantine/notifications';\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport type {FormValidateInput} from '@mantine/form/lib/types';\nexport * from '@mantine/hooks';\nexport * from '@tanstack/table-core';\nexport * from './components';\nexport * from '@mantine/form';\nexport {type NotificationProps} from '@mantine/notifications';\nexport {Pagination} from '@mantine/core';\n// explicitly overriding mantine components\nexport {\n BrowserPreview,\n Header,\n type HeaderProps,\n Table,\n type TableProps,\n type TableState,\n type InitialTableState,\n ActionIcon,\n type ActionIconProps,\n Button,\n type ButtonProps,\n Menu,\n type MenuItemProps,\n CopyToClipboard,\n type CopyToClipboardProps,\n} from './components';\nexport {useForm, createFormContext} from './form';\n\nexport * from './theme';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n // eslint-disable-next-line @typescript-eslint/ban-types\n colors: Record<keyof typeof PlasmaColors | (string & {}), Tuple<string, 10>>;\n }\n}\n"],"names":["Pagination","BrowserPreview","Header","Table","ActionIcon","Button","Menu","CopyToClipboard","useForm","createFormContext"],"mappings":"AAIA,cAAc,yBAAyB;AACvC,cAAc,oBAAoB;AAClC,cAAc,gBAAgB;AAE9B,cAAc,iBAAiB;AAC/B,cAAc,uBAAuB;AACrC,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAE9B,SAAQA,UAAU,QAAO,gBAAgB;AACzC,2CAA2C;AAC3C,SACIC,cAAc,EACdC,MAAM,EAENC,KAAK,EAILC,UAAU,EAEVC,MAAM,EAENC,IAAI,EAEJC,eAAe,QAEZ,eAAe;AACtB,SAAQC,OAAO,EAAEC,iBAAiB,QAAO,SAAS;AAElD,cAAc,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveord/plasma-mantine",
3
- "version": "52.18.0",
3
+ "version": "52.20.0",
4
4
  "description": "A Plasma flavoured Mantine theme",
5
5
  "keywords": [
6
6
  "plasma",
@@ -34,8 +34,8 @@
34
34
  "@mantine/utils": "6.0.19",
35
35
  "@monaco-editor/react": "4.5.1",
36
36
  "@swc/helpers": "0.5.1",
37
- "@tanstack/react-table": "8.10.1",
38
- "@tanstack/table-core": "8.10.1",
37
+ "@tanstack/react-table": "8.10.3",
38
+ "@tanstack/table-core": "8.10.3",
39
39
  "dayjs": "1.11.9",
40
40
  "fast-deep-equal": "3.1.3",
41
41
  "lodash.debounce": "4.0.8",
@@ -0,0 +1,14 @@
1
+ import {createStyles} from '@mantine/core';
2
+
3
+ export default createStyles((theme) => ({
4
+ root: {
5
+ boxShadow: theme.shadows.md,
6
+ borderRadius: theme.defaultRadius,
7
+ border: '1px solid',
8
+ borderColor: theme.colors.gray[3],
9
+ flex: 1,
10
+ },
11
+ header: {boxShadow: theme.shadows.xs, borderRadius: `${theme.defaultRadius}px ${theme.defaultRadius}px 0 0`},
12
+ content: {overflow: 'auto', flexGrow: 1},
13
+ infoIcon: {color: theme.colors.gray[5]},
14
+ }));
@@ -0,0 +1,72 @@
1
+ import {InfoSize16Px} from '@coveord/plasma-react-icons';
2
+ import {
3
+ Box,
4
+ ColorSwatch,
5
+ DefaultProps,
6
+ Flex,
7
+ Group,
8
+ Selectors,
9
+ Stack,
10
+ Text,
11
+ Title,
12
+ Tooltip,
13
+ useMantineTheme,
14
+ } from '@mantine/core';
15
+ import {PropsWithChildren} from 'react';
16
+ import useStyles from './BrowserPreview.styles';
17
+
18
+ export interface BrowserPreviewProps extends DefaultProps<Selectors<typeof useStyles>> {
19
+ /**
20
+ * Text to display in a tooltip in the header.
21
+ *
22
+ */
23
+ headerTooltip?: string;
24
+ /**
25
+ * Custom title to be displayed at the center of the header.
26
+ */
27
+ title?: string;
28
+ }
29
+
30
+ export const BrowserPreview = ({
31
+ children,
32
+ headerTooltip,
33
+ title,
34
+ // Style props
35
+ classNames,
36
+ className,
37
+ styles,
38
+ unstyled,
39
+ ...others
40
+ }: PropsWithChildren<BrowserPreviewProps>) => {
41
+ const theme = useMantineTheme();
42
+ const {classes, cx} = useStyles(null, {classNames, name: 'BrowserPreview', styles, unstyled});
43
+ return (
44
+ <Stack className={cx(classes.root, className)} spacing={0} maw={544} mih={0} {...others}>
45
+ <Box>
46
+ <Group className={classes.header} position="apart" px="sm" py="xs" bg="gray.1" noWrap>
47
+ <Group spacing="xs" noWrap>
48
+ <Title color="gray.6" order={4}>
49
+ Preview
50
+ </Title>
51
+ {!!headerTooltip && (
52
+ <Tooltip label={headerTooltip} position="right" maw={400}>
53
+ <InfoSize16Px height={16} className={classes.infoIcon} />
54
+ </Tooltip>
55
+ )}
56
+ </Group>
57
+ <Text lineClamp={1} color="gray.6">
58
+ {title}
59
+ </Text>
60
+ <Group spacing="xs" noWrap>
61
+ <ColorSwatch color={theme.colors.gray[3]} />
62
+ <ColorSwatch color={theme.colors.gray[3]} />
63
+ <ColorSwatch color={theme.colors.gray[3]} />
64
+ </Group>
65
+ </Group>
66
+ </Box>
67
+ <Flex className={classes.content} p="xl" direction="column">
68
+ {children}
69
+ </Flex>
70
+ </Stack>
71
+ );
72
+ };
@@ -0,0 +1,35 @@
1
+ import userEvent from '@testing-library/user-event';
2
+ import {render, screen, waitFor} from '@testing-library/react';
3
+ import {BrowserPreview} from '../BrowserPreview';
4
+
5
+ describe('BrowserPreview', () => {
6
+ it('shows no tooltip when none specified', async () => {
7
+ render(<BrowserPreview />);
8
+
9
+ expect(screen.queryByRole('img', {name: /info/i})).not.toBeInTheDocument();
10
+ });
11
+ it('renders the specified text as the header tooltip content', async () => {
12
+ const user = userEvent.setup();
13
+ const headerTooltip = 'This is a custom description.';
14
+
15
+ render(<BrowserPreview headerTooltip={headerTooltip} />);
16
+
17
+ await waitFor(() => screen.findByRole('img', {name: /info/i}));
18
+ await user.hover(screen.getByRole('img', {name: /info/i}));
19
+
20
+ expect(await screen.findByText(headerTooltip)).toBeVisible();
21
+ });
22
+
23
+ it('renders the specific title when provided', () => {
24
+ const headerTitle = 'Custom title.';
25
+ render(<BrowserPreview title={headerTitle} />);
26
+
27
+ expect(screen.getByText(/custom title/i)).toBeInTheDocument();
28
+ });
29
+
30
+ it('renders the children', () => {
31
+ render(<BrowserPreview>This is awesome content</BrowserPreview>);
32
+
33
+ expect(screen.getByText(/this is awesome content/i)).toBeInTheDocument();
34
+ });
35
+ });
@@ -0,0 +1 @@
1
+ export * from './BrowserPreview';