@coveord/plasma-mantine 52.10.0 → 52.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +32 -32
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +4 -1
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/collection/Collection.js +5 -3
- package/dist/cjs/components/collection/Collection.js.map +1 -1
- package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js +2 -2
- package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/modal-wizard/ModalWizard.js +2 -2
- package/dist/cjs/components/modal-wizard/ModalWizard.js.map +1 -1
- package/dist/cjs/components/table/Table.js +2 -1
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/TablePerPage.js +2 -2
- package/dist/cjs/components/table/TablePerPage.js.map +1 -1
- package/dist/cjs/components/table/Th.d.ts.map +1 -1
- package/dist/cjs/components/table/Th.js +10 -12
- package/dist/cjs/components/table/Th.js.map +1 -1
- package/dist/cjs/components/table/layouts/RowLayout.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/RowLayout.js +2 -0
- package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/cjs/theme/Theme.js +1 -1
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +4 -1
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/collection/Collection.js +5 -3
- package/dist/esm/components/collection/Collection.js.map +1 -1
- package/dist/esm/components/date-range-picker/EditableDateRangePicker.js +2 -2
- package/dist/esm/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
- package/dist/esm/components/modal-wizard/ModalWizard.js +2 -2
- package/dist/esm/components/modal-wizard/ModalWizard.js.map +1 -1
- package/dist/esm/components/table/Table.js +2 -1
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/TablePerPage.js +2 -2
- package/dist/esm/components/table/TablePerPage.js.map +1 -1
- package/dist/esm/components/table/Th.d.ts.map +1 -1
- package/dist/esm/components/table/Th.js +11 -13
- package/dist/esm/components/table/Th.js.map +1 -1
- package/dist/esm/components/table/layouts/RowLayout.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/RowLayout.js +2 -0
- package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/esm/theme/Theme.js +1 -1
- package/dist/esm/theme/Theme.js.map +1 -1
- package/package.json +18 -18
- package/src/components/code-editor/CodeEditor.tsx +1 -1
- package/src/components/table/Th.tsx +13 -10
- package/src/components/table/layouts/RowLayout.tsx +2 -0
- package/src/components/table/layouts/__tests__/RowLayout.spec.tsx +25 -0
|
@@ -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 {ColumnDef, getCoreRowModel, Row, TableState as TanstackTableState, useReactTable} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, cloneElement, Dispatch, ReactElement, useCallback, useEffect, useState} from 'react';\n\nimport {TableLayouts} from './layouts/TableLayouts';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableActions} from './TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {TableConsumer} from './TableConsumer';\nimport {TableContext} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TableLastUpdated} from './TableLastUpdated';\nimport {TableLoading} from './TableLoading';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {TableSelectableColumn} from './TableSelectableColumn';\nimport {useRowSelection} from './useRowSelection';\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 ...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","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","TableLayouts","useStyles","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableConsumer","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","TableSelectableColumn","useRowSelection","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","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 {ColumnDef, getCoreRowModel, Row, TableState as TanstackTableState, useReactTable} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, cloneElement, Dispatch, ReactElement, useCallback, useEffect, useState} from 'react';\n\nimport {TableLayouts} from './layouts/TableLayouts';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableActions} from './TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {TableConsumer} from './TableConsumer';\nimport {TableContext} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TableLastUpdated} from './TableLastUpdated';\nimport {TableLoading} from './TableLoading';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {TableSelectableColumn} from './TableSelectableColumn';\nimport {useRowSelection} from './useRowSelection';\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 ...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","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","TableLayouts","useStyles","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableConsumer","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","TableSelectableColumn","useRowSelection","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","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":";;;;;;AAAA,SAAQA,GAAG,EAAEC,MAAM,EAAEC,MAAM,QAAO,gBAAgB;AAClD,SAAQC,OAAO,QAAO,gBAAgB;AACtC,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAmBC,eAAe,EAAyCC,aAAa,QAAO,wBAAwB;AACvH,OAAOC,cAAc,kBAAkB;AACvC,OAAOC,kBAAkB,sBAAsB;AAC/C,SAAQC,QAAQ,EAAEC,YAAY,EAA0BC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAEvG,SAAQC,YAAY,QAAO,yBAAyB;AACpD,OAAOC,eAAe,iBAAiB;AAEvC,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,oBAAoB,EAAEC,sBAAsB,QAAO,2BAA2B;AACtF,SAAQC,aAAa,QAAO,kBAAkB;AAC9C,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,oBAAoB,QAAO,yBAAyB;AAC5D,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,gBAAgB,QAAO,qBAAqB;AACpD,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,eAAe,QAAO,oBAAoB;AAClD,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,cAAc,QAAO,mBAAmB;AAChD,SAAQC,qBAAqB,QAAO,0BAA0B;AAC9D,SAAQC,eAAe,QAAO,oBAAoB;AAElD,OAAO,IAAMC,QAAmB;QAC5BC,aAAAA,MACAC,iBAAAA,UACAC,uBAAAA,gBACAC,0BAAAA,+CACAC,cAAAA,gDAAe,CAAC,yBAChBC,gBAAAA,gCACAC,SAAAA,sCAAU;QAACzB,aAAa0B,IAAI;KAAC,mBAC7BC,gBAAAA,SACAC,iBAAAA,UACAC,iBAAAA,iCACAC,SAAAA,sCAAU,wBACVC,0BAAAA,mBACAC,iCAAAA,0BACAC,4BAAAA,qBACAC,6BAAAA,sBACAC,4BAAAA,4CACAC,SAAAA,sCAAU,CAAC;QAWSb,eACDA,gBACHA,gBAaMa,UAqBNC,cACVA,wBACAA;IA/CN,IAAMC,oBAAoB3C,SAAS4C,OAAO,CAACV;IAC3C,IAAMW,SAASF,kBAAkBG,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKjC;;IAChE,IAAMkC,SAASN,kBAAkBG,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKlC;;IAChE,IAAMoC,WAAWP,kBAAkBG,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKtC;;IAClE,IAAMyC,cAAcR,kBAAkBG,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKhC;;IAErE,IAAOoC,aAAqDxB,aAArDwB,YAAYC,YAAyCzB,aAAzCyB,WAAcC,qDAA2B1B;QAArDwB;QAAYC;;QAGCzB,0BACDA,yBACHA;IAJhB,IAAMc,OAAOhD,QAAuB;QAChC6D,eAAe;YACXH,YAAYxB,CAAAA,4BAAAA,gBAAAA,0BAAAA,oCAAAA,cAAcwB,UAAU,cAAxBxB,sCAAAA,2BAA4B,CAAC;YACzCyB,WAAWzB,CAAAA,2BAAAA,iBAAAA,0BAAAA,qCAAAA,eAAcyB,SAAS,cAAvBzB,qCAAAA,0BAA2B;gBAAC;gBAAM;aAAK;YAClD4B,QAAQ5B,CAAAA,wBAAAA,iBAAAA,0BAAAA,qCAAAA,eAAc4B,MAAM,cAApB5B,kCAAAA,uBAAwBE,OAAO,CAAC,EAAE,CAAC2B,IAAI;QACnD;IACJ;IACA,IAAM,AAACC,UAAWpD,YAAXoD;QAa+B;IAXtC,IAAMC,QAAQ9D,cAAc;QACxB+B,cAAc7B,aAAauD,yBAAyB;YAChDM,YAAY;gBAACC,UAAU1C,aAAa2C,YAAY;YAAA;YAChDC,cAAc;QAClB;QACAvC,MAAAA;QACAK,SAASQ,2BAA2B;YAAChB;SAAsC,CAAC2C,MAAM,CAACnC,WAAWA;QAC9FjC,iBAAiBA;QACjBqE,kBAAkBxB,EAAAA,WAAAA,qBAAAA,+BAAAA,SAASyB,qBAAqB,MAAKC;QACrDC,yBAAyB,CAAC,CAAC/B;QAC3BZ,UAAAA;QACA4C,iBAAiB,SAACC;gBAAkB3C;mBAAF,CAAA,OAAA,CAAC,GAACA,qBAAAA,+BAAAA,yCAAAA,mBAAoB2C,IAAIC,QAAQ,gBAAlC,kBAAA,OAAuC;;QACzEC,oBAAoB,CAACrC;OAClBM;IAGP,IAA0BrC,6BAAAA,SAAwBuD,MAAM/B,YAAY,OAA7D6C,QAAmBrE,cAAZsE,WAAYtE;IAC1BuD,MAAMgB,UAAU,CAAC,SAACC;eAAU,wCACrBA;YACHH,OAAOA;YACPI,eAAeH;;;IAEnB,IAA2EpD,mBAAAA,gBAAgBqC,OAAO;QAC9FtB,0BAAAA;QACAE,sBAAAA;QACAC,qBAAAA;IACJ,IAJOsC,iBAAoExD,iBAApEwD,gBAAgBC,iBAAoDzD,iBAApDyD,gBAAgBC,kBAAoC1D,iBAApC0D,iBAAiBC,kBAAmB3D,iBAAnB2D;QAOxCvC;IAFhB,IAAMwC,aACF,CAAC,CAACT,MAAMV,YAAY,IACpBoB,OAAOC,IAAI,CAAC1C,CAAAA,2BAAAA,eAAAA,KAAK2C,MAAM,cAAX3C,mCAAAA,aAAaU,UAAU,cAAvBV,qCAAAA,0BAA2B,CAAC,GAAG4C,IAAI,CAAC,SAACC;eAAc,CAAC,CAAC7C,KAAK2C,MAAM,CAACjC,UAAU,CAACmC,UAAU;UAClG,CAAC,GAAC7C,yBAAAA,KAAK2C,MAAM,CAAChC,SAAS,cAArBX,6CAAAA,sBAAuB,CAAC,EAAE,KAC5B,CAAC,GAACA,0BAAAA,KAAK2C,MAAM,CAAChC,SAAS,cAArBX,8CAAAA,uBAAuB,CAAC,EAAE;IAEhC,IAAM8C,gBAAgB1F,SAAS;YAAMmC;gBAAAA,YAAAA,sBAAAA,gCAAAA,UAAW,mBAAIwC,OAAU/B,KAAK2C,MAAM;OAAI;IAE7ElF,UAAU;YACN6B;SAAAA,WAAAA,qBAAAA,+BAAAA,SAAU,mBAAIyC,OAAU/B,KAAK2C,MAAM;QACnC,OAAO;YACHG,cAAcC,MAAM;QACxB;IACJ,GAAG,EAAE;IAEL9F,aAAa;QACT6F;QACA,IAAI,CAACnD,0BAA0B;YAC3ByC;QACJ;IACJ,GAAG;QACCL,MAAMV,YAAY;QAClBU,MAAMb,UAAU;QAChBa,MAAMiB,OAAO;QACbC,KAAKC,SAAS,CAAClD,KAAK2C,MAAM,CAAChC,SAAS;QACpCsC,KAAKC,SAAS,CAAClD,KAAK2C,MAAM,CAACjC,UAAU;KACxC;IAED,IAAMyC,eAAe3F,YAAY;YACI0B;QAAjCc,KAAKoD,aAAa,CAAC,cAAclE,CAAAA,2BAAAA,aAAawB,UAAU,cAAvBxB,sCAAAA,2BAA2B,CAAC;QAC7D8C,SAAS,SAACqB;mBAAe,wCAAIA;gBAAWhC,cAAc;;;IAC1D,GAAG,EAAE;IAEL,IAAI,CAACvC,MAAM;QACP,qBACI,KAAChC;YAAOwG,IAAI;gBAACC,UAAU;YAAC;sBACpB,cAAA,KAACxG;;IAGb;IAEA,IAAMyG,SAASpE,QAAQgB,IAAI,CAAC;YAAEW,aAAAA;eAAUA,SAASf,KAAK2C,MAAM,CAAC7B,MAAM;;IACnE,IAAM2C,UAAUxC,MAAMyC,WAAW,GAAGC,IAAI,CAACC,MAAM,GAAG;QA+DKnD;IA7DvD,qBACI,KAAC5D;QAAIgH,KAAKtB;kBACN,cAAA,MAACtE,aAAa6F,QAAQ;YAClBC,OAAO;gBACHxE,UAAUuD;gBACVf,OAAAA;gBACAS,YAAAA;gBACAR,UAAAA;gBACAmB,cAAAA;gBACAd,gBAAAA;gBACAC,iBAAAA;gBACAF,gBAAAA;gBACApC,MAAAA;gBACAgE,cAAczB;gBACd5C,0BAAAA;gBACAsE,cAAchD,MAAMgD,YAAY;gBAChCrE,qBAAAA;gBACAR,SAAAA;YACJ;;gBAECoB;gBACA,CAACiD,WAAW,CAACjB,cAAc,CAAC/C,UACzBT,+BAEA;;sCACI,MAACnC;4BAAIqH,WAAU;4BAAQC,WAAWnD,QAAQC,KAAK;4BAAEmD,IAAG;;8CAChD,MAACC;oCAAMF,WAAWnD,QAAQb,MAAM;;wCAC3B,CAAC,CAACA,uBACC,KAACmE;sDACG,cAAA,KAACC;gDAAGC,OAAO;oDAACC,SAAS;gDAAC;gDAAGC,SAASzD,MAAM0D,aAAa,GAAGf,MAAM;0DACzDzD;;6CAGT;sDACJ,KAACqD,OAAOoB,MAAM;4CACV3D,OAAOA;4CACPvB,mBAAmBA;4CACnBT,mBAAmBA;4CACnBQ,SAASA;;;;8CAGjB,KAACoF;8CACIpB,wBACG,KAACD,OAAOsB,IAAI;wCACR7D,OAAOA;wCACPvB,mBAAmBA;wCACnBT,mBAAmBA;wCACnBQ,SAASA;uDAGb,KAAC6E;kDACG,cAAA,KAACS;4CAAGL,SAASzD,MAAM0D,aAAa,GAAGf,MAAM;sDACrC,cAAA,KAACrF;gDAAayG,SAASvF;0DAAUT;;;;;;;wBAMpDuB;wBACAE,4BACKlD,aAAakD,aAAa;4BACtBwE,cAAc;gCAACnG;6BAAgD,CAAjD,OAAO,qBAAI2B,CAAAA,kCAAAA,YAAYyE,KAAK,CAACD,YAAY,cAA9BxE,6CAAAA,kCAAkC,EAAE;wBACjE,KACA;;;;;;AAM9B,EAAE;AAEF5B,MAAMsG,OAAO,GAAGtH;AAChBgB,MAAMuG,MAAM,GAAGjH;AACfU,MAAMwG,MAAM,GAAGjH;AACfS,MAAM+F,MAAM,GAAGvG;AACfQ,MAAMyG,WAAW,GAAGhH;AACpBO,MAAM0G,UAAU,GAAG/G;AACnBK,MAAM2G,SAAS,GAAG9G;AAClBG,MAAM4G,OAAO,GAAGhH;AAChBI,MAAM2G,SAAS,GAAG9G;AAClBG,MAAM6G,iBAAiB,GAAG3H;AAC1Bc,MAAM8G,eAAe,GAAG7H;AACxBe,MAAM+G,eAAe,GAAG1H;AACxBW,MAAMgH,QAAQ,GAAG7H;AACjBa,MAAMiH,OAAO,GAAGvH;AAChBM,MAAMkH,OAAO,GAAGpI"}
|
|
@@ -9,7 +9,7 @@ export var TablePerPage = function(param) {
|
|
|
9
9
|
50,
|
|
10
10
|
100
|
|
11
11
|
] : _param_values;
|
|
12
|
-
var
|
|
12
|
+
var _values;
|
|
13
13
|
var _useTable = useTable(), state = _useTable.state, setState = _useTable.setState;
|
|
14
14
|
var updatePerPage = function(newPerPage) {
|
|
15
15
|
setState(function(prevState) {
|
|
@@ -30,7 +30,7 @@ export var TablePerPage = function(param) {
|
|
|
30
30
|
children: label
|
|
31
31
|
}),
|
|
32
32
|
/*#__PURE__*/ _jsx(SegmentedControl, {
|
|
33
|
-
value: (_state_pagination_pageSize_toString = state.pagination.pageSize.toString()) !== null && _state_pagination_pageSize_toString !== void 0 ? _state_pagination_pageSize_toString : (_values = values) === null || _values === void 0 ? void 0 :
|
|
33
|
+
value: (_state_pagination_pageSize_toString = state.pagination.pageSize.toString()) !== null && _state_pagination_pageSize_toString !== void 0 ? _state_pagination_pageSize_toString : (_values = values) === null || _values === void 0 ? void 0 : _values[1].toString(),
|
|
34
34
|
onChange: updatePerPage,
|
|
35
35
|
data: values.map(function(value) {
|
|
36
36
|
return value.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TablePerPage.tsx"],"sourcesContent":["import {Group, SegmentedControl, Text} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {useTable} from './TableContext';\n\ninterface TablePerPageProps {\n /**\n * The label displayed before the control\n *\n * @default Results per page\n */\n label?: string;\n /**\n * The per page choices to display\n *\n * @default [25, 50, 100]\n */\n values?: number[];\n}\n\nexport const TablePerPage: FunctionComponent<TablePerPageProps> & {DEFAULT_SIZE: number} = ({\n label = 'Results per page',\n values = [25, 50, 100],\n}) => {\n const {state, setState} = useTable();\n\n const updatePerPage = (newPerPage: string) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {pageIndex: 0, pageSize: parseInt(newPerPage, 10)},\n }));\n };\n\n return (\n <Group spacing=\"sm\">\n <Text fw={500}>{label}</Text>\n <SegmentedControl\n value={state.pagination.pageSize.toString() ?? values?.[1].toString()}\n onChange={updatePerPage}\n data={values.map((value) => value.toString())}\n color=\"action\"\n size=\"sm\"\n />\n </Group>\n );\n};\n\nTablePerPage.DEFAULT_SIZE = 50;\n"],"names":["Group","SegmentedControl","Text","useTable","TablePerPage","label","values","state","setState","updatePerPage","newPerPage","prevState","pagination","pageIndex","pageSize","parseInt","spacing","fw","value","toString","onChange","data","map","color","size","DEFAULT_SIZE"],"mappings":";;;AAAA,SAAQA,KAAK,EAAEC,gBAAgB,EAAEC,IAAI,QAAO,gBAAgB;AAG5D,SAAQC,QAAQ,QAAO,iBAAiB;AAiBxC,OAAO,IAAMC,eAA8E;6BACvFC,OAAAA,kCAAQ,yDACRC,QAAAA,oCAAS;QAAC;QAAI;QAAI;KAAI;QAeqCA
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TablePerPage.tsx"],"sourcesContent":["import {Group, SegmentedControl, Text} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {useTable} from './TableContext';\n\ninterface TablePerPageProps {\n /**\n * The label displayed before the control\n *\n * @default Results per page\n */\n label?: string;\n /**\n * The per page choices to display\n *\n * @default [25, 50, 100]\n */\n values?: number[];\n}\n\nexport const TablePerPage: FunctionComponent<TablePerPageProps> & {DEFAULT_SIZE: number} = ({\n label = 'Results per page',\n values = [25, 50, 100],\n}) => {\n const {state, setState} = useTable();\n\n const updatePerPage = (newPerPage: string) => {\n setState((prevState) => ({\n ...prevState,\n pagination: {pageIndex: 0, pageSize: parseInt(newPerPage, 10)},\n }));\n };\n\n return (\n <Group spacing=\"sm\">\n <Text fw={500}>{label}</Text>\n <SegmentedControl\n value={state.pagination.pageSize.toString() ?? values?.[1].toString()}\n onChange={updatePerPage}\n data={values.map((value) => value.toString())}\n color=\"action\"\n size=\"sm\"\n />\n </Group>\n );\n};\n\nTablePerPage.DEFAULT_SIZE = 50;\n"],"names":["Group","SegmentedControl","Text","useTable","TablePerPage","label","values","state","setState","updatePerPage","newPerPage","prevState","pagination","pageIndex","pageSize","parseInt","spacing","fw","value","toString","onChange","data","map","color","size","DEFAULT_SIZE"],"mappings":";;;AAAA,SAAQA,KAAK,EAAEC,gBAAgB,EAAEC,IAAI,QAAO,gBAAgB;AAG5D,SAAQC,QAAQ,QAAO,iBAAiB;AAiBxC,OAAO,IAAMC,eAA8E;6BACvFC,OAAAA,kCAAQ,yDACRC,QAAAA,oCAAS;QAAC;QAAI;QAAI;KAAI;QAeqCA;IAb3D,IAA0BH,YAAAA,YAAnBI,QAAmBJ,UAAnBI,OAAOC,WAAYL,UAAZK;IAEd,IAAMC,gBAAgB,SAACC;QACnBF,SAAS,SAACG;mBAAe,wCAClBA;gBACHC,YAAY;oBAACC,WAAW;oBAAGC,UAAUC,SAASL,YAAY;gBAAG;;;IAErE;QAMmBH;IAJnB,qBACI,MAACP;QAAMgB,SAAQ;;0BACX,KAACd;gBAAKe,IAAI;0BAAMZ;;0BAChB,KAACJ;gBACGiB,OAAOX,CAAAA,sCAAAA,MAAMK,UAAU,CAACE,QAAQ,CAACK,QAAQ,gBAAlCZ,iDAAAA,uCAAwCD,UAAAA,oBAAAA,8BAAAA,OAAQ,CAAC,EAAE,CAACa,QAAQ;gBACnEC,UAAUX;gBACVY,MAAMf,OAAOgB,GAAG,CAAC,SAACJ;2BAAUA,MAAMC,QAAQ;;gBAC1CI,OAAM;gBACNC,MAAK;;;;AAIrB,EAAE;AAEFpB,aAAaqB,YAAY,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Th.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Th.tsx"],"names":[],"mappings":";AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"Th.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Th.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,MAAM,EAAkC,MAAM,uBAAuB,CAAC;AA0B9E,UAAU,OAAO,CAAC,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;CAC9B;AAcD,eAAO,MAAM,EAAE,4CAqCd,CAAC"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px } from "@coveord/plasma-react-icons";
|
|
3
|
-
import { Center,
|
|
3
|
+
import { Center, Group, Text, UnstyledButton, createStyles } from "@mantine/core";
|
|
4
4
|
import { defaultColumnSizing, flexRender } from "@tanstack/react-table";
|
|
5
|
-
var useStyles = createStyles(function(theme) {
|
|
5
|
+
var useStyles = createStyles(function(theme, width) {
|
|
6
6
|
return {
|
|
7
7
|
th: {
|
|
8
8
|
fontWeight: "400 !important",
|
|
9
9
|
padding: "0 !important",
|
|
10
10
|
verticalAlign: "middle",
|
|
11
|
-
whiteSpace: "nowrap"
|
|
11
|
+
whiteSpace: "nowrap",
|
|
12
|
+
textAlign: "left",
|
|
13
|
+
color: theme.colors.gray[6],
|
|
14
|
+
backgroundColor: theme.colorScheme === "dark" ? theme.colors.gray[8] : theme.colors.gray[0],
|
|
15
|
+
width: width
|
|
12
16
|
},
|
|
13
17
|
control: {
|
|
18
|
+
color: "inherit",
|
|
19
|
+
whiteSpace: "inherit",
|
|
20
|
+
fontWeight: "inherit",
|
|
14
21
|
width: "100%",
|
|
15
22
|
padding: "".concat(theme.spacing.xs, " ").concat(theme.spacing.sm),
|
|
16
|
-
whiteSpace: "nowrap",
|
|
17
|
-
backgroundColor: theme.colorScheme === "dark" ? theme.colors.gray[8] : theme.colors.gray[0],
|
|
18
|
-
color: theme.colors.gray[6],
|
|
19
23
|
"&:hover": {
|
|
20
24
|
backgroundColor: theme.colorScheme === "dark" ? theme.colors.gray[7] : theme.colors.gray[1]
|
|
21
25
|
}
|
|
@@ -34,18 +38,15 @@ var SortingLabels = {
|
|
|
34
38
|
};
|
|
35
39
|
export var Th = function(param) {
|
|
36
40
|
var header = param.header;
|
|
37
|
-
var classes = useStyles().classes;
|
|
38
41
|
var size = header.column.getSize();
|
|
39
42
|
var width = size !== defaultColumnSizing.size ? size : undefined;
|
|
43
|
+
var classes = useStyles(width).classes;
|
|
40
44
|
if (header.isPlaceholder) {
|
|
41
45
|
return null;
|
|
42
46
|
}
|
|
43
47
|
if (!header.column.getCanSort()) {
|
|
44
48
|
return /*#__PURE__*/ _jsx("th", {
|
|
45
49
|
className: classes.th,
|
|
46
|
-
style: {
|
|
47
|
-
width: width
|
|
48
|
-
},
|
|
49
50
|
children: /*#__PURE__*/ _jsx(Text, {
|
|
50
51
|
size: "xs",
|
|
51
52
|
py: "xs",
|
|
@@ -60,9 +61,6 @@ export var Th = function(param) {
|
|
|
60
61
|
var Icon = SortingIcons[sortingOrder];
|
|
61
62
|
return /*#__PURE__*/ _jsx("th", {
|
|
62
63
|
className: classes.th,
|
|
63
|
-
style: {
|
|
64
|
-
width: width
|
|
65
|
-
},
|
|
66
64
|
"aria-sort": SortingLabels[sortingOrder],
|
|
67
65
|
children: /*#__PURE__*/ _jsx(UnstyledButton, {
|
|
68
66
|
onClick: onSort,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Th.tsx"],"sourcesContent":["import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';\nimport {Center,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Th.tsx"],"sourcesContent":["import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';\nimport {Center, Group, Text, UnstyledButton, createStyles} from '@mantine/core';\nimport {Header, defaultColumnSizing, flexRender} from '@tanstack/react-table';\n\nconst useStyles = createStyles((theme, width: number) => ({\n th: {\n fontWeight: '400 !important' as any,\n padding: '0 !important',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n textAlign: 'left',\n color: theme.colors.gray[6],\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[8] : theme.colors.gray[0],\n width,\n },\n\n control: {\n color: 'inherit',\n whiteSpace: 'inherit',\n fontWeight: 'inherit',\n width: '100%',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[7] : theme.colors.gray[1],\n },\n },\n}));\n\ninterface ThProps<T> {\n header: Header<T, unknown>;\n}\n\nconst SortingIcons = {\n asc: ArrowUpSize16Px,\n desc: ArrowDownSize16Px,\n none: DoubleArrowHeadVSize16Px,\n};\n\nconst SortingLabels = {\n asc: 'ascending',\n desc: 'descending',\n none: 'none',\n} as const;\n\nexport const Th = <T,>({header}: ThProps<T>) => {\n const size = header.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n const {classes} = useStyles(width);\n\n if (header.isPlaceholder) {\n return null;\n }\n\n if (!header.column.getCanSort()) {\n return (\n <th className={classes.th}>\n <Text size=\"xs\" py=\"xs\" px=\"sm\" fw={500}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n </th>\n );\n }\n\n const onSort = header.column.getToggleSortingHandler();\n const sortingOrder = header.column.getIsSorted() || 'none';\n const Icon = SortingIcons[sortingOrder];\n\n return (\n <th className={classes.th} aria-sort={SortingLabels[sortingOrder]}>\n <UnstyledButton onClick={onSort} className={classes.control}>\n <Group position=\"apart\" noWrap>\n <Text size=\"xs\" fw={500}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n <Center>\n <Icon height={14} />\n </Center>\n </Group>\n </UnstyledButton>\n </th>\n );\n};\n"],"names":["ArrowDownSize16Px","ArrowUpSize16Px","DoubleArrowHeadVSize16Px","Center","Group","Text","UnstyledButton","createStyles","defaultColumnSizing","flexRender","useStyles","theme","width","th","fontWeight","padding","verticalAlign","whiteSpace","textAlign","color","colors","gray","backgroundColor","colorScheme","control","spacing","xs","sm","SortingIcons","asc","desc","none","SortingLabels","Th","header","size","column","getSize","undefined","classes","isPlaceholder","getCanSort","className","py","px","fw","columnDef","getContext","onSort","getToggleSortingHandler","sortingOrder","getIsSorted","Icon","aria-sort","onClick","position","noWrap","height"],"mappings":";AAAA,SAAQA,iBAAiB,EAAEC,eAAe,EAAEC,wBAAwB,QAAO,8BAA8B;AACzG,SAAQC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,cAAc,EAAEC,YAAY,QAAO,gBAAgB;AAChF,SAAgBC,mBAAmB,EAAEC,UAAU,QAAO,wBAAwB;AAE9E,IAAMC,YAAYH,aAAa,SAACI,OAAOC;WAAmB;QACtDC,IAAI;YACAC,YAAY;YACZC,SAAS;YACTC,eAAe;YACfC,YAAY;YACZC,WAAW;YACXC,OAAOR,MAAMS,MAAM,CAACC,IAAI,CAAC,EAAE;YAC3BC,iBAAiBX,MAAMY,WAAW,KAAK,SAASZ,MAAMS,MAAM,CAACC,IAAI,CAAC,EAAE,GAAGV,MAAMS,MAAM,CAACC,IAAI,CAAC,EAAE;YAC3FT,OAAAA;QACJ;QAEAY,SAAS;YACLL,OAAO;YACPF,YAAY;YACZH,YAAY;YACZF,OAAO;YACPG,SAAS,AAAC,GAAsBJ,OAApBA,MAAMc,OAAO,CAACC,EAAE,EAAC,KAAoB,OAAjBf,MAAMc,OAAO,CAACE,EAAE;YAChD,WAAW;gBACPL,iBAAiBX,MAAMY,WAAW,KAAK,SAASZ,MAAMS,MAAM,CAACC,IAAI,CAAC,EAAE,GAAGV,MAAMS,MAAM,CAACC,IAAI,CAAC,EAAE;YAC/F;QACJ;IACJ;;AAMA,IAAMO,eAAe;IACjBC,KAAK5B;IACL6B,MAAM9B;IACN+B,MAAM7B;AACV;AAEA,IAAM8B,gBAAgB;IAClBH,KAAK;IACLC,MAAM;IACNC,MAAM;AACV;AAEA,OAAO,IAAME,KAAK;QAAMC,eAAAA;IACpB,IAAMC,OAAOD,OAAOE,MAAM,CAACC,OAAO;IAClC,IAAMzB,QAAQuB,SAAS3B,oBAAoB2B,IAAI,GAAGA,OAAOG;IACzD,IAAM,AAACC,UAAW7B,UAAUE,OAArB2B;IAEP,IAAIL,OAAOM,aAAa,EAAE;QACtB,OAAO;IACX;IAEA,IAAI,CAACN,OAAOE,MAAM,CAACK,UAAU,IAAI;QAC7B,qBACI,KAAC5B;YAAG6B,WAAWH,QAAQ1B,EAAE;sBACrB,cAAA,KAACR;gBAAK8B,MAAK;gBAAKQ,IAAG;gBAAKC,IAAG;gBAAKC,IAAI;0BAC/BpC,WAAWyB,OAAOE,MAAM,CAACU,SAAS,CAACZ,MAAM,EAAEA,OAAOa,UAAU;;;IAI7E;IAEA,IAAMC,SAASd,OAAOE,MAAM,CAACa,uBAAuB;IACpD,IAAMC,eAAehB,OAAOE,MAAM,CAACe,WAAW,MAAM;IACpD,IAAMC,OAAOxB,YAAY,CAACsB,aAAa;IAEvC,qBACI,KAACrC;QAAG6B,WAAWH,QAAQ1B,EAAE;QAAEwC,aAAWrB,aAAa,CAACkB,aAAa;kBAC7D,cAAA,KAAC5C;YAAegD,SAASN;YAAQN,WAAWH,QAAQf,OAAO;sBACvD,cAAA,MAACpB;gBAAMmD,UAAS;gBAAQC,MAAM;;kCAC1B,KAACnD;wBAAK8B,MAAK;wBAAKU,IAAI;kCACfpC,WAAWyB,OAAOE,MAAM,CAACU,SAAS,CAACZ,MAAM,EAAEA,OAAOa,UAAU;;kCAEjE,KAAC5C;kCACG,cAAA,KAACiD;4BAAKK,QAAQ;;;;;;;AAMtC,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,WAAW,EAAmB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"RowLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,WAAW,EAAmB,MAAM,gBAAgB,CAAC;AA+K7D,eAAO,MAAM,SAAS,EAAE,WAKvB,CAAC"}
|
|
@@ -124,6 +124,7 @@ var RowLayoutBody = function(param) {
|
|
|
124
124
|
},
|
|
125
125
|
className: cx(classes.row, (_obj = {}, _define_property(_obj, classes.rowSelected, isSelected), _define_property(_obj, classes.rowUnselectable, disableRowSelection), _obj)),
|
|
126
126
|
"aria-selected": isSelected,
|
|
127
|
+
"data-testid": row.id,
|
|
127
128
|
children: row.getVisibleCells().map(function(cell) {
|
|
128
129
|
var size = cell.column.getSize();
|
|
129
130
|
var width = size !== defaultColumnSizing.size ? size : undefined;
|
|
@@ -134,6 +135,7 @@ var RowLayoutBody = function(param) {
|
|
|
134
135
|
}
|
|
135
136
|
};
|
|
136
137
|
return /*#__PURE__*/ _jsx("td", {
|
|
138
|
+
"data-testid": cell.id,
|
|
137
139
|
style: {
|
|
138
140
|
width: width
|
|
139
141
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse, createStyles, rem} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout, TableLayoutProps} from '../Table.types';\nimport {TableCollapsibleColumn} from '../TableCollapsibleColumn';\nimport {useTable} from '../TableContext';\nimport {TableLoading} from '../TableLoading';\nimport {TableSelectableColumn} from '../TableSelectableColumn';\nimport {Th} from '../Th';\n\ninterface TableStylesParams {\n multiRowSelectionEnabled: boolean;\n disableRowSelection: boolean;\n}\n\nconst useStyles = createStyles<string, TableStylesParams>((theme, {multiRowSelectionEnabled, disableRowSelection}) => {\n const rowBackgroundColor =\n theme.colorScheme === 'dark' ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2) : theme.colors.gray[1];\n const border = `${rem(1)} solid ${theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]}`;\n return {\n headerColumns: {\n '& th:first-of-type > *': {\n paddingLeft: '40px',\n },\n\n '& input[type=checkbox]': {\n backgroundColor: disableRowSelection ? `${theme.colors.gray[2]}` : undefined,\n borderColor: disableRowSelection ? `${theme.colors.gray[3]}` : `${theme.colors.gray[4]}`,\n pointerEvents: disableRowSelection ? 'none' : 'auto',\n cursor: disableRowSelection ? 'not-allowed' : 'default',\n\n '& + svg': {\n color: disableRowSelection ? `${theme.colors.gray[5]}` : 'inherit',\n },\n },\n },\n\n rowSelected: {\n backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor,\n },\n\n rowUnselectable: {\n '& input[type=checkbox]': {\n backgroundColor: `${theme.colors.gray[2]}`,\n borderColor: `${theme.colors.gray[3]}`,\n pointerEvents: 'none',\n cursor: 'not-allowed',\n\n '&:checked + svg': {\n color: `${theme.colors.gray[5]}`,\n },\n },\n },\n\n rowCollapsibleButtonCell: {\n textAlign: 'right',\n padding: `calc(${theme.spacing.xs}/2) ${theme.spacing.sm} !important`,\n },\n\n row: {\n '& td:first-of-type': {\n paddingLeft: '40px',\n },\n '&:hover': {\n backgroundColor: rowBackgroundColor,\n },\n },\n\n cell: {\n verticalAlign: 'middle',\n // We must use height instead of minHeight here, otherwise it doesn't apply\n height: '56px',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n borderBottom: border,\n },\n\n collapsible: {\n backgroundColor: rowBackgroundColor,\n borderBottom: border,\n },\n };\n});\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,>({table, doubleClickAction, getExpandChildren, loading}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles({disableRowSelection, multiRowSelectionEnabled});\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 onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled) {\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 >\n {row.getVisibleCells().map((cell) => {\n const size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\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 style={{width}}\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","createStyles","rem","flexRender","defaultColumnSizing","Fragment","TableCollapsibleColumn","useTable","TableLoading","TableSelectableColumn","Th","useStyles","theme","multiRowSelectionEnabled","disableRowSelection","rowBackgroundColor","colorScheme","fn","rgba","colors","primaryColor","gray","border","dark","headerColumns","paddingLeft","backgroundColor","undefined","borderColor","pointerEvents","cursor","color","rowSelected","rowUnselectable","rowCollapsibleButtonCell","textAlign","padding","spacing","xs","sm","row","cell","verticalAlign","height","borderBottom","collapsible","RowLayoutHeader","table","classes","headers","getHeaderGroups","map","headerGroup","tr","className","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","cx","toggleCollapsible","el","children","length","querySelector","click","rows","getRowModel","rowChildren","original","isSelected","getIsSelected","onClick","event","currentTarget","toggleSelected","onDoubleClick","aria-selected","getVisibleCells","size","column","getSize","width","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","visible","columnDef","getContext","colSpan","getAllColumns","in","getIsExpanded","px","py","RowLayout","name","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, createStyles, rem} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout, TableLayoutProps} from '../Table.types';\nimport {TableCollapsibleColumn} from '../TableCollapsibleColumn';\nimport {useTable} from '../TableContext';\nimport {TableLoading} from '../TableLoading';\nimport {TableSelectableColumn} from '../TableSelectableColumn';\nimport {Th} from '../Th';\n\ninterface TableStylesParams {\n multiRowSelectionEnabled: boolean;\n disableRowSelection: boolean;\n}\n\nconst useStyles = createStyles<string, TableStylesParams>((theme, {multiRowSelectionEnabled, disableRowSelection}) => {\n const rowBackgroundColor =\n theme.colorScheme === 'dark' ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2) : theme.colors.gray[1];\n const border = `${rem(1)} solid ${theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]}`;\n return {\n headerColumns: {\n '& th:first-of-type > *': {\n paddingLeft: '40px',\n },\n\n '& input[type=checkbox]': {\n backgroundColor: disableRowSelection ? `${theme.colors.gray[2]}` : undefined,\n borderColor: disableRowSelection ? `${theme.colors.gray[3]}` : `${theme.colors.gray[4]}`,\n pointerEvents: disableRowSelection ? 'none' : 'auto',\n cursor: disableRowSelection ? 'not-allowed' : 'default',\n\n '& + svg': {\n color: disableRowSelection ? `${theme.colors.gray[5]}` : 'inherit',\n },\n },\n },\n\n rowSelected: {\n backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor,\n },\n\n rowUnselectable: {\n '& input[type=checkbox]': {\n backgroundColor: `${theme.colors.gray[2]}`,\n borderColor: `${theme.colors.gray[3]}`,\n pointerEvents: 'none',\n cursor: 'not-allowed',\n\n '&:checked + svg': {\n color: `${theme.colors.gray[5]}`,\n },\n },\n },\n\n rowCollapsibleButtonCell: {\n textAlign: 'right',\n padding: `calc(${theme.spacing.xs}/2) ${theme.spacing.sm} !important`,\n },\n\n row: {\n '& td:first-of-type': {\n paddingLeft: '40px',\n },\n '&:hover': {\n backgroundColor: rowBackgroundColor,\n },\n },\n\n cell: {\n verticalAlign: 'middle',\n // We must use height instead of minHeight here, otherwise it doesn't apply\n height: '56px',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n borderBottom: border,\n },\n\n collapsible: {\n backgroundColor: rowBackgroundColor,\n borderBottom: border,\n },\n };\n});\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,>({table, doubleClickAction, getExpandChildren, loading}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles({disableRowSelection, multiRowSelectionEnabled});\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 onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled) {\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 size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\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={{width}}\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","createStyles","rem","flexRender","defaultColumnSizing","Fragment","TableCollapsibleColumn","useTable","TableLoading","TableSelectableColumn","Th","useStyles","theme","multiRowSelectionEnabled","disableRowSelection","rowBackgroundColor","colorScheme","fn","rgba","colors","primaryColor","gray","border","dark","headerColumns","paddingLeft","backgroundColor","undefined","borderColor","pointerEvents","cursor","color","rowSelected","rowUnselectable","rowCollapsibleButtonCell","textAlign","padding","spacing","xs","sm","row","cell","verticalAlign","height","borderBottom","collapsible","RowLayoutHeader","table","classes","headers","getHeaderGroups","map","headerGroup","tr","className","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","cx","toggleCollapsible","el","children","length","querySelector","click","rows","getRowModel","rowChildren","original","isSelected","getIsSelected","onClick","event","currentTarget","toggleSelected","onDoubleClick","aria-selected","data-testid","getVisibleCells","size","column","getSize","width","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","visible","columnDef","getContext","colSpan","getAllColumns","in","getIsExpanded","px","py","RowLayout","name","icon","Header","Body"],"mappings":"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"}
|
package/dist/esm/theme/Theme.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
2
|
import { _ as _object_destructuring_empty } from "@swc/helpers/_/_object_destructuring_empty";
|
|
3
3
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
4
|
-
var _theme_colors;
|
|
5
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
5
|
import { CheckSize16Px, InfoSize24Px } from "@coveord/plasma-react-icons";
|
|
7
6
|
import { color } from "@coveord/plasma-tokens";
|
|
@@ -289,6 +288,7 @@ export var plasmaTheme = {
|
|
|
289
288
|
Notification: {
|
|
290
289
|
styles: function(theme, param) {
|
|
291
290
|
var notificationType = param.color;
|
|
291
|
+
var _theme_colors;
|
|
292
292
|
return {
|
|
293
293
|
root: {
|
|
294
294
|
borderColor: theme.colors.gray[3],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {CheckSize16Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n getSize,\n rem,\n type MantineThemeOverride,\n type NotificationProps,\n type StepperStylesParams,\n type TabsStylesParams,\n} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeight: 1.5,\n spacing: {\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: 500,\n sizes: {\n h1: {fontSize: '48px', lineHeight: undefined, fontWeight: 300},\n h2: {fontSize: '32px', lineHeight: undefined, fontWeight: 500},\n h3: {fontSize: '24px', lineHeight: undefined, fontWeight: 500},\n h4: {fontSize: '18px', lineHeight: undefined, fontWeight: 300},\n h5: {fontSize: '14px', lineHeight: undefined, fontWeight: 500},\n h6: {fontSize: '12px', lineHeight: undefined, fontWeight: 500},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: {\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em'},\n },\n },\n },\n Text: {\n defaultProps: {\n weight: 300,\n },\n styles: (theme, {}, {size}) => ({\n root: {\n fontSize: getSize({size: size ?? 'sm', sizes: theme.fontSizes}),\n },\n }),\n },\n Button: {\n styles: () => ({\n root: {\n fontWeight: 400,\n },\n }),\n variants: {\n outline: () => ({\n root: {\n backgroundColor: 'white',\n },\n }),\n },\n },\n Modal: {\n styles: (theme, {fullScreen, padding}, {size, variant}) => ({\n content: {\n flex: fullScreen\n ? '0 0 100%'\n : `0 0 ${getSize({\n size,\n sizes: {\n xs: rem(432),\n sm: rem(664),\n md: rem(896),\n lg: rem(1120),\n xl: rem('88%'),\n },\n })}`,\n overflow: 'auto',\n },\n title: {\n width: '100%',\n fontSize: theme.headings.sizes.h3.fontSize,\n lineHeight: theme.headings.sizes.h3.lineHeight,\n fontWeight: 500,\n },\n header: {\n borderBottom: variant !== 'prompt' ? `1px solid ${color.primary.gray[3]}` : null,\n },\n body: {\n '&:not(:only-child)': {\n paddingTop: variant === 'prompt' ? 0 : getSize({size: padding, sizes: plasmaTheme.spacing}),\n },\n },\n }),\n },\n ModalOverlay: {\n defaultProps: {\n color: color.primary.navy[9],\n opacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n },\n description: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n },\n invalid: {\n color: theme.colors.red[9],\n borderColor: theme.colors.red[6],\n },\n error: {\n color: theme.colors.red[9],\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n withArrow: true,\n withinPortal: true,\n multiline: true,\n zIndex: 10000,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action.6',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n styles: (theme) => ({\n label: {\n fontSize: theme.fontSizes.sm,\n fontWeight: 300,\n },\n }),\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n ColorSwatch: {\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n },\n MenuItem: {\n defaultProps: {\n fw: 300,\n },\n },\n Notification: {\n styles: (theme, {color: notificationType}: NotificationProps) => ({\n root: {\n borderColor: theme.colors.gray[3],\n backgroundColor: theme.colors.gray[0],\n boxShadow: theme.shadows.lg,\n padding: theme.spacing.sm,\n '&[data-with-icon]': {\n paddingLeft: theme.spacing.sm,\n },\n },\n icon: {\n backgroundColor: 'transparent',\n marginRight: theme.spacing.sm,\n color: theme.colors?.[notificationType][6],\n },\n closeButton: {\n margin: theme.spacing.xs,\n color: theme.colors.gray[5],\n },\n }),\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n },\n Skeleton: {\n styles: {\n visible: {\n '&::before': {zIndex: 'unset'},\n '&::after': {zIndex: 'unset'},\n },\n },\n },\n SegmentedControl: {\n styles: (theme) => ({\n root: {\n backgroundColor: theme.colors.gray[2],\n },\n }),\n },\n Stepper: {\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n styles: (theme, {}: StepperStylesParams, {size}) => ({\n step: {\n '&[disabled]': {\n color: theme.colors.gray[5],\n '& .mantine-Stepper-stepDescription': {\n color: theme.colors.gray[5],\n },\n '& .mantine-Stepper-stepIcon': {\n borderColor: theme.colors.gray[1],\n },\n },\n },\n stepIcon: {\n fontWeight: 500,\n backgroundColor: theme.colors.gray[1],\n color: 'inherit',\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n '&[data-progress]': {\n backgroundColor: theme.white,\n },\n\n '&[data-completed]': {\n backgroundColor: theme.white,\n borderColor: theme.colors.lime[6],\n color: theme.colors.lime[6],\n },\n },\n stepCompletedIcon: {\n color: theme.colors.lime[6],\n fontSize: rem(16),\n },\n stepDescription: {\n color: theme.colors.gray[7],\n fontSize: getSize({size, sizes: theme.fontSizes}),\n },\n separator: {\n height: rem(1),\n backgroundColor: theme.colors.gray[3],\n },\n separatorActive: {\n backgroundColor: theme.colors.gray[3],\n },\n verticalSeparator: {\n borderLeft: `${rem(1)} solid ${theme.colors.gray[3]}`,\n },\n verticalSeparatorActive: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n Tabs: {\n styles: (theme, {orientation}: TabsStylesParams) => ({\n tabsList: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid ${\n theme.colors.gray[3]\n }`,\n },\n tab: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid transparent`,\n [orientation === 'horizontal' ? 'marginBottom' : 'marginRight']: rem(-1),\n },\n }),\n },\n Select: {\n styles: (theme) => ({\n input: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n },\n item: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n\n '&[data-hovered]': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[1],\n },\n\n '&[data-selected]': {\n backgroundColor: theme.fn.variant({variant: 'light'}).background,\n color: theme.fn.variant({variant: 'light'}).color,\n ...theme.fn.hover({backgroundColor: theme.fn.variant({variant: 'light'}).hover}),\n },\n },\n }),\n },\n },\n};\n"],"names":["theme","CheckSize16Px","InfoSize24Px","color","getSize","rem","PlasmaColors","plasmaTheme","colorScheme","fontFamily","black","primary","gray","defaultRadius","lineHeight","spacing","xs","sm","md","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","undefined","h2","h3","h4","h5","h6","shadows","colors","components","Alert","defaultProps","icon","height","styles","title","Title","root","letterSpacing","Text","weight","size","fontSizes","Button","variants","outline","backgroundColor","Modal","fullScreen","padding","variant","content","flex","overflow","width","header","borderBottom","body","paddingTop","ModalOverlay","navy","opacity","InputWrapper","withAsterisk","label","marginBottom","description","invalid","red","borderColor","error","TextInput","radius","Tooltip","withArrow","withinPortal","multiline","zIndex","Loader","DateRangePicker","cell","textAlign","Anchor","fn","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","ColorSwatch","withShadow","MenuItem","fw","Notification","notificationType","boxShadow","paddingLeft","marginRight","closeButton","margin","Skeleton","visible","SegmentedControl","Stepper","completedIcon","step","stepIcon","border","white","lime","stepCompletedIcon","stepDescription","separator","separatorActive","verticalSeparator","borderLeft","verticalSeparatorActive","Tabs","orientation","tabsList","tab","Select","input","dark","item","background"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {CheckSize16Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n getSize,\n rem,\n type MantineThemeOverride,\n type NotificationProps,\n type StepperStylesParams,\n type TabsStylesParams,\n} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeight: 1.5,\n spacing: {\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: 500,\n sizes: {\n h1: {fontSize: '48px', lineHeight: undefined, fontWeight: 300},\n h2: {fontSize: '32px', lineHeight: undefined, fontWeight: 500},\n h3: {fontSize: '24px', lineHeight: undefined, fontWeight: 500},\n h4: {fontSize: '18px', lineHeight: undefined, fontWeight: 300},\n h5: {fontSize: '14px', lineHeight: undefined, fontWeight: 500},\n h6: {fontSize: '12px', lineHeight: undefined, fontWeight: 500},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: {\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em'},\n },\n },\n },\n Text: {\n defaultProps: {\n weight: 300,\n },\n styles: (theme, {}, {size}) => ({\n root: {\n fontSize: getSize({size: size ?? 'sm', sizes: theme.fontSizes}),\n },\n }),\n },\n Button: {\n styles: () => ({\n root: {\n fontWeight: 400,\n },\n }),\n variants: {\n outline: () => ({\n root: {\n backgroundColor: 'white',\n },\n }),\n },\n },\n Modal: {\n styles: (theme, {fullScreen, padding}, {size, variant}) => ({\n content: {\n flex: fullScreen\n ? '0 0 100%'\n : `0 0 ${getSize({\n size,\n sizes: {\n xs: rem(432),\n sm: rem(664),\n md: rem(896),\n lg: rem(1120),\n xl: rem('88%'),\n },\n })}`,\n overflow: 'auto',\n },\n title: {\n width: '100%',\n fontSize: theme.headings.sizes.h3.fontSize,\n lineHeight: theme.headings.sizes.h3.lineHeight,\n fontWeight: 500,\n },\n header: {\n borderBottom: variant !== 'prompt' ? `1px solid ${color.primary.gray[3]}` : null,\n },\n body: {\n '&:not(:only-child)': {\n paddingTop: variant === 'prompt' ? 0 : getSize({size: padding, sizes: plasmaTheme.spacing}),\n },\n },\n }),\n },\n ModalOverlay: {\n defaultProps: {\n color: color.primary.navy[9],\n opacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n },\n description: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n },\n invalid: {\n color: theme.colors.red[9],\n borderColor: theme.colors.red[6],\n },\n error: {\n color: theme.colors.red[9],\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n withArrow: true,\n withinPortal: true,\n multiline: true,\n zIndex: 10000,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action.6',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n styles: (theme) => ({\n label: {\n fontSize: theme.fontSizes.sm,\n fontWeight: 300,\n },\n }),\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n ColorSwatch: {\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n },\n MenuItem: {\n defaultProps: {\n fw: 300,\n },\n },\n Notification: {\n styles: (theme, {color: notificationType}: NotificationProps) => ({\n root: {\n borderColor: theme.colors.gray[3],\n backgroundColor: theme.colors.gray[0],\n boxShadow: theme.shadows.lg,\n padding: theme.spacing.sm,\n '&[data-with-icon]': {\n paddingLeft: theme.spacing.sm,\n },\n },\n icon: {\n backgroundColor: 'transparent',\n marginRight: theme.spacing.sm,\n color: theme.colors?.[notificationType][6],\n },\n closeButton: {\n margin: theme.spacing.xs,\n color: theme.colors.gray[5],\n },\n }),\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n },\n Skeleton: {\n styles: {\n visible: {\n '&::before': {zIndex: 'unset'},\n '&::after': {zIndex: 'unset'},\n },\n },\n },\n SegmentedControl: {\n styles: (theme) => ({\n root: {\n backgroundColor: theme.colors.gray[2],\n },\n }),\n },\n Stepper: {\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n styles: (theme, {}: StepperStylesParams, {size}) => ({\n step: {\n '&[disabled]': {\n color: theme.colors.gray[5],\n '& .mantine-Stepper-stepDescription': {\n color: theme.colors.gray[5],\n },\n '& .mantine-Stepper-stepIcon': {\n borderColor: theme.colors.gray[1],\n },\n },\n },\n stepIcon: {\n fontWeight: 500,\n backgroundColor: theme.colors.gray[1],\n color: 'inherit',\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n '&[data-progress]': {\n backgroundColor: theme.white,\n },\n\n '&[data-completed]': {\n backgroundColor: theme.white,\n borderColor: theme.colors.lime[6],\n color: theme.colors.lime[6],\n },\n },\n stepCompletedIcon: {\n color: theme.colors.lime[6],\n fontSize: rem(16),\n },\n stepDescription: {\n color: theme.colors.gray[7],\n fontSize: getSize({size, sizes: theme.fontSizes}),\n },\n separator: {\n height: rem(1),\n backgroundColor: theme.colors.gray[3],\n },\n separatorActive: {\n backgroundColor: theme.colors.gray[3],\n },\n verticalSeparator: {\n borderLeft: `${rem(1)} solid ${theme.colors.gray[3]}`,\n },\n verticalSeparatorActive: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n Tabs: {\n styles: (theme, {orientation}: TabsStylesParams) => ({\n tabsList: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid ${\n theme.colors.gray[3]\n }`,\n },\n tab: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid transparent`,\n [orientation === 'horizontal' ? 'marginBottom' : 'marginRight']: rem(-1),\n },\n }),\n },\n Select: {\n styles: (theme) => ({\n input: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n },\n item: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n\n '&[data-hovered]': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[1],\n },\n\n '&[data-selected]': {\n backgroundColor: theme.fn.variant({variant: 'light'}).background,\n color: theme.fn.variant({variant: 'light'}).color,\n ...theme.fn.hover({backgroundColor: theme.fn.variant({variant: 'light'}).hover}),\n },\n },\n }),\n },\n },\n};\n"],"names":["CheckSize16Px","InfoSize24Px","color","getSize","rem","PlasmaColors","plasmaTheme","colorScheme","fontFamily","black","primary","gray","defaultRadius","lineHeight","spacing","xs","sm","md","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","undefined","h2","h3","h4","h5","h6","shadows","colors","components","Alert","defaultProps","icon","height","styles","title","Title","root","letterSpacing","Text","weight","theme","size","fontSizes","Button","variants","outline","backgroundColor","Modal","fullScreen","padding","variant","content","flex","overflow","width","header","borderBottom","body","paddingTop","ModalOverlay","navy","opacity","InputWrapper","withAsterisk","label","marginBottom","description","invalid","red","borderColor","error","TextInput","radius","Tooltip","withArrow","withinPortal","multiline","zIndex","Loader","DateRangePicker","cell","textAlign","Anchor","fn","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","ColorSwatch","withShadow","MenuItem","fw","Notification","notificationType","boxShadow","paddingLeft","marginRight","closeButton","margin","Skeleton","visible","SegmentedControl","Stepper","completedIcon","step","stepIcon","border","white","lime","stepCompletedIcon","stepDescription","separator","separatorActive","verticalSeparator","borderLeft","verticalSeparatorActive","Tabs","orientation","tabsList","tab","Select","input","dark","item","background"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coveord/plasma-mantine",
|
|
3
|
-
"version": "52.
|
|
3
|
+
"version": "52.11.0",
|
|
4
4
|
"description": "A Plasma flavoured Mantine theme",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plasma",
|
|
@@ -31,30 +31,30 @@
|
|
|
31
31
|
"@dnd-kit/modifiers": "6.0.1",
|
|
32
32
|
"@dnd-kit/sortable": "7.0.2",
|
|
33
33
|
"@dnd-kit/utilities": "3.2.1",
|
|
34
|
-
"@mantine/utils": "6.0.
|
|
34
|
+
"@mantine/utils": "6.0.14",
|
|
35
35
|
"@monaco-editor/react": "4.5.1",
|
|
36
36
|
"@swc/helpers": "0.5.1",
|
|
37
|
-
"@tanstack/react-table": "8.9.
|
|
38
|
-
"@tanstack/table-core": "8.9.
|
|
37
|
+
"@tanstack/react-table": "8.9.3",
|
|
38
|
+
"@tanstack/table-core": "8.9.3",
|
|
39
39
|
"dayjs": "1.11.8",
|
|
40
40
|
"fast-deep-equal": "3.1.3",
|
|
41
41
|
"lodash.debounce": "4.0.8",
|
|
42
42
|
"lodash.defaultsdeep": "4.6.1",
|
|
43
|
-
"monaco-editor": "0.
|
|
44
|
-
"@coveord/plasma-react-icons": "52.
|
|
45
|
-
"@coveord/plasma-tokens": "52.
|
|
43
|
+
"monaco-editor": "0.39.0",
|
|
44
|
+
"@coveord/plasma-react-icons": "52.11.0",
|
|
45
|
+
"@coveord/plasma-tokens": "52.11.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@emotion/react": "11.11.1",
|
|
49
|
-
"@mantine/carousel": "6.0.
|
|
50
|
-
"@mantine/core": "6.0.
|
|
51
|
-
"@mantine/dates": "6.0.
|
|
52
|
-
"@mantine/form": "6.0.
|
|
53
|
-
"@mantine/hooks": "6.0.
|
|
54
|
-
"@mantine/modals": "6.0.
|
|
55
|
-
"@mantine/notifications": "6.0.
|
|
49
|
+
"@mantine/carousel": "6.0.14",
|
|
50
|
+
"@mantine/core": "6.0.14",
|
|
51
|
+
"@mantine/dates": "6.0.14",
|
|
52
|
+
"@mantine/form": "6.0.14",
|
|
53
|
+
"@mantine/hooks": "6.0.14",
|
|
54
|
+
"@mantine/modals": "6.0.14",
|
|
55
|
+
"@mantine/notifications": "6.0.14",
|
|
56
56
|
"@swc/cli": "0.1.62",
|
|
57
|
-
"@swc/core": "1.3.
|
|
57
|
+
"@swc/core": "1.3.66",
|
|
58
58
|
"@swc/jest": "0.2.26",
|
|
59
59
|
"@testing-library/jest-dom": "5.16.5",
|
|
60
60
|
"@testing-library/react": "14.0.0",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"@types/jest": "29.5.2",
|
|
63
63
|
"@types/lodash.debounce": "^4.0.7",
|
|
64
64
|
"@types/lodash.defaultsdeep": "4.6.7",
|
|
65
|
-
"@types/react": "18.2.
|
|
66
|
-
"@types/react-dom": "18.2.
|
|
65
|
+
"@types/react": "18.2.13",
|
|
66
|
+
"@types/react-dom": "18.2.6",
|
|
67
67
|
"@types/testing-library__jest-dom": "5.14.6",
|
|
68
68
|
"csstype": "3.1.2",
|
|
69
69
|
"embla-carousel-react": "7.1.0",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"react-dom": "18.2.0",
|
|
81
81
|
"rimraf": "3.0.2",
|
|
82
82
|
"tslib": "2.5.3",
|
|
83
|
-
"typescript": "5.
|
|
83
|
+
"typescript": "5.1.3",
|
|
84
84
|
"vitest": "0.31.1"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
@@ -193,7 +193,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
|
|
|
193
193
|
onMount={(editor, monaco) => {
|
|
194
194
|
editorRef.current = editor;
|
|
195
195
|
registerLanguages(monaco);
|
|
196
|
-
editor.onDidFocusEditorText(onFocus);
|
|
196
|
+
editor.onDidFocusEditorText(() => onFocus?.());
|
|
197
197
|
editor.onDidBlurEditorText(async () => {
|
|
198
198
|
await editor.getAction('editor.action.formatDocument').run();
|
|
199
199
|
});
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';
|
|
2
|
-
import {Center,
|
|
3
|
-
import {defaultColumnSizing, flexRender
|
|
2
|
+
import {Center, Group, Text, UnstyledButton, createStyles} from '@mantine/core';
|
|
3
|
+
import {Header, defaultColumnSizing, flexRender} from '@tanstack/react-table';
|
|
4
4
|
|
|
5
|
-
const useStyles = createStyles((theme) => ({
|
|
5
|
+
const useStyles = createStyles((theme, width: number) => ({
|
|
6
6
|
th: {
|
|
7
7
|
fontWeight: '400 !important' as any,
|
|
8
8
|
padding: '0 !important',
|
|
9
9
|
verticalAlign: 'middle',
|
|
10
10
|
whiteSpace: 'nowrap',
|
|
11
|
+
textAlign: 'left',
|
|
12
|
+
color: theme.colors.gray[6],
|
|
13
|
+
backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[8] : theme.colors.gray[0],
|
|
14
|
+
width,
|
|
11
15
|
},
|
|
12
16
|
|
|
13
17
|
control: {
|
|
18
|
+
color: 'inherit',
|
|
19
|
+
whiteSpace: 'inherit',
|
|
20
|
+
fontWeight: 'inherit',
|
|
14
21
|
width: '100%',
|
|
15
22
|
padding: `${theme.spacing.xs} ${theme.spacing.sm}`,
|
|
16
|
-
whiteSpace: 'nowrap',
|
|
17
|
-
backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[8] : theme.colors.gray[0],
|
|
18
|
-
color: theme.colors.gray[6],
|
|
19
|
-
|
|
20
23
|
'&:hover': {
|
|
21
24
|
backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[7] : theme.colors.gray[1],
|
|
22
25
|
},
|
|
@@ -40,9 +43,9 @@ const SortingLabels = {
|
|
|
40
43
|
} as const;
|
|
41
44
|
|
|
42
45
|
export const Th = <T,>({header}: ThProps<T>) => {
|
|
43
|
-
const {classes} = useStyles();
|
|
44
46
|
const size = header.column.getSize();
|
|
45
47
|
const width = size !== defaultColumnSizing.size ? size : undefined;
|
|
48
|
+
const {classes} = useStyles(width);
|
|
46
49
|
|
|
47
50
|
if (header.isPlaceholder) {
|
|
48
51
|
return null;
|
|
@@ -50,7 +53,7 @@ export const Th = <T,>({header}: ThProps<T>) => {
|
|
|
50
53
|
|
|
51
54
|
if (!header.column.getCanSort()) {
|
|
52
55
|
return (
|
|
53
|
-
<th className={classes.th}
|
|
56
|
+
<th className={classes.th}>
|
|
54
57
|
<Text size="xs" py="xs" px="sm" fw={500}>
|
|
55
58
|
{flexRender(header.column.columnDef.header, header.getContext())}
|
|
56
59
|
</Text>
|
|
@@ -63,7 +66,7 @@ export const Th = <T,>({header}: ThProps<T>) => {
|
|
|
63
66
|
const Icon = SortingIcons[sortingOrder];
|
|
64
67
|
|
|
65
68
|
return (
|
|
66
|
-
<th className={classes.th}
|
|
69
|
+
<th className={classes.th} aria-sort={SortingLabels[sortingOrder]}>
|
|
67
70
|
<UnstyledButton onClick={onSort} className={classes.control}>
|
|
68
71
|
<Group position="apart" noWrap>
|
|
69
72
|
<Text size="xs" fw={500}>
|
|
@@ -127,6 +127,7 @@ const RowLayoutBody = <T,>({table, doubleClickAction, getExpandChildren, loading
|
|
|
127
127
|
[classes.rowUnselectable]: disableRowSelection,
|
|
128
128
|
})}
|
|
129
129
|
aria-selected={isSelected}
|
|
130
|
+
data-testid={row.id}
|
|
130
131
|
>
|
|
131
132
|
{row.getVisibleCells().map((cell) => {
|
|
132
133
|
const size = cell.column.getSize();
|
|
@@ -140,6 +141,7 @@ const RowLayoutBody = <T,>({table, doubleClickAction, getExpandChildren, loading
|
|
|
140
141
|
return (
|
|
141
142
|
<td
|
|
142
143
|
key={cell.id}
|
|
144
|
+
data-testid={cell.id}
|
|
143
145
|
style={{width}}
|
|
144
146
|
className={cx(classes.cell, {
|
|
145
147
|
[classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,
|