schummar-table 0.24.3 → 0.25.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"mui4Theme.js","sources":["../../src/theme/mui4Theme/index.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Checkbox,\n CircularProgress,\n IconButton,\n TextField,\n useTheme,\n} from '@material-ui/core';\nimport type { ReactNode } from 'react';\nimport { useMemo } from 'react';\nimport type { PartialTableTheme } from '../../types';\nimport { Popover } from '../defaultTheme/popover';\nimport { mergeThemes, TableThemeContext } from '../tableTheme';\n\nexport const mui4Theme: PartialTableTheme = {\n components: {\n Button: (props) => (\n <Button\n {...props}\n size=\"small\"\n fullWidth\n css={{ justifyContent: 'start !important' }}\n color={props.variant === 'contained' ? 'primary' : 'inherit'}\n />\n ),\n IconButton: (props) => <IconButton {...props} size=\"small\" color=\"inherit\" />,\n Checkbox: (props) => <Checkbox {...props} color=\"primary\" size=\"medium\" />,\n Popover,\n Badge,\n TextField: ({ startIcon, endIcon, ...props }) => (\n <TextField\n {...props}\n InputProps={{ startAdornment: startIcon, endAdornment: endIcon }}\n size=\"small\"\n variant=\"outlined\"\n />\n ),\n Spinner: CircularProgress,\n },\n};\n\nexport function Mui4TableThemeProvider({\n theme,\n children,\n}: {\n theme?: PartialTableTheme;\n children: ReactNode;\n}) {\n const muiTheme = useTheme();\n\n const _theme = useMemo(() => {\n return mergeThemes(\n {\n colors: {\n primary: muiTheme.palette.primary,\n secondary: muiTheme.palette.secondary,\n },\n },\n mui4Theme,\n theme ?? {},\n );\n }, [muiTheme, theme]);\n\n return <TableThemeContext.Provider value={_theme}>{children}</TableThemeContext.Provider>;\n}\n"],"names":["_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","mui4Theme","components","Button","props","variant","IconButton","Checkbox","Popover","Badge","TextField","startIcon","endIcon","startAdornment","endAdornment","Spinner","CircularProgress","Mui4TableThemeProvider","theme","children","muiTheme","useTheme","_theme","useMemo","mergeThemes","colors","primary","palette","secondary"],"mappings":";;;;;;;;;;AAa+D,IAAAA,OAAAC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAExD,MAAMC,YAA+B;AAAA,EAC1CC,YAAY;AAAA,IACVC,QAASC,CACP,UAAA,oBAAC,QACC,EAAA,GAAIA,OACJ,MAAK,SACL,WAAS,MACT,KAAIZ,MACJ,OAAOY,MAAMC,YAAY,cAAc,YAAY,WAEtD;AAAA,IACDC,YAAaF,WAAW,oBAAA,YAAA,EAAeA,GAAAA,OAAO,MAAK,SAAQ,OAAM,UAAY,CAAA;AAAA,IAC7EG,UAAWH,WAAW,oBAAA,UAAA,EAAaA,GAAAA,OAAO,OAAM,WAAU,MAAK,SAAW,CAAA;AAAA,IAC1EI;AAAAA,IACAC;AAAAA,IACAC,WAAWA,CAAC;AAAA,MAAEC;AAAAA,MAAWC;AAAAA,SAAYR;AAAAA,IACnC,MAAA,oBAAC,WACC,EAAA,GAAIA,OACJ,YAAY;AAAA,MAAES,gBAAgBF;AAAAA,MAAWG,cAAcF;AAAAA,IACvD,GAAA,MAAK,SACL,SAAQ,WAEX,CAAA;AAAA,IACDG,SAASC;AAAAA,EACX;AACF;AAEO,SAASC,uBAAuB;AAAA,EACrCC;AAAAA,EACAC;AAIF,GAAG;AACD,QAAMC,WAAWC;AAEXC,QAAAA,SAASC,QAAQ,MAAM;AAC3B,WAAOC,YACL;AAAA,MACEC,QAAQ;AAAA,QACNC,SAASN,SAASO,QAAQD;AAAAA,QAC1BE,WAAWR,SAASO,QAAQC;AAAAA,MAC9B;AAAA,IAAA,GAEF3B,WACAiB,SAAS,CAAA,CAAE;AAAA,EAAA,GAEZ,CAACE,UAAUF,KAAK,CAAC;AAEpB,6BAAQ,kBAAkB,UAAlB,EAA2B,OAAOI,QAASH,SAAS,CAAA;AAC9D;"}
1
+ {"version":3,"file":"mui4Theme.js","sources":["../../src/theme/mui4Theme/index.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Checkbox,\n CircularProgress,\n IconButton,\n TextField,\n useTheme,\n} from '@material-ui/core';\nimport type { ReactNode } from 'react';\nimport { useMemo } from 'react';\nimport type { PartialTableTheme } from '../../types';\nimport { Popover } from '../defaultTheme/popover';\nimport { mergeThemes, TableThemeContext } from '../tableTheme';\n\nexport const mui4Theme: PartialTableTheme = {\n components: {\n Button: (props) => (\n <Button\n {...props}\n size=\"small\"\n fullWidth\n css={{ justifyContent: 'start !important' }}\n color={props.variant === 'contained' ? 'primary' : 'inherit'}\n />\n ),\n IconButton: (props) => <IconButton {...props} size=\"small\" color=\"inherit\" />,\n Checkbox: (props) => <Checkbox {...props} color=\"primary\" size=\"medium\" />,\n Popover,\n Badge,\n TextField: ({ startIcon, endIcon, ...props }) => (\n <TextField\n {...props}\n InputProps={{ startAdornment: startIcon, endAdornment: endIcon }}\n size=\"small\"\n variant=\"outlined\"\n />\n ),\n Spinner: CircularProgress,\n },\n};\n\nexport function Mui4TableThemeProvider({\n theme,\n children,\n}: {\n theme?: PartialTableTheme;\n children: ReactNode;\n}) {\n const muiTheme = useTheme();\n\n const _theme = useMemo(() => {\n return mergeThemes(\n {\n colors: {\n primary: muiTheme.palette.primary,\n secondary: muiTheme.palette.secondary,\n },\n },\n mui4Theme,\n theme ?? {},\n );\n }, [muiTheme, theme]);\n\n return <TableThemeContext.Provider value={_theme}>{children}</TableThemeContext.Provider>;\n}\n"],"names":["_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","mui4Theme","components","Button","props","variant","IconButton","Checkbox","Popover","Badge","TextField","startIcon","endIcon","startAdornment","endAdornment","Spinner","CircularProgress","Mui4TableThemeProvider","theme","children","muiTheme","useTheme","_theme","useMemo","mergeThemes","colors","primary","palette","secondary"],"mappings":";;;;;;;;;;AAa+D,IAAAA,OAAAC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAExD,MAAMC,YAA+B;AAAA,EAC1CC,YAAY;AAAA,IACVC,QAASC,CACP,UAAA,oBAAC,QACC,EAAA,GAAIA,OACJ,MAAK,SACL,WAAS,MACT,KAAIZ,MACJ,OAAOY,MAAMC,YAAY,cAAc,YAAY,WAEtD;AAAA,IACDC,YAAaF,WAAW,oBAAA,YAAA,EAAeA,GAAAA,OAAO,MAAK,SAAQ,OAAM,UAAY,CAAA;AAAA,IAC7EG,UAAWH,WAAW,oBAAA,UAAA,EAAaA,GAAAA,OAAO,OAAM,WAAU,MAAK,SAAW,CAAA;AAAA,IAC1EI;AAAAA,IACAC;AAAAA,IACAC,WAAWA,CAAC;AAAA,MAAEC;AAAAA,MAAWC;AAAAA,MAAS,GAAGR;AAAAA,IACnC,MAAA,oBAAC,WACC,EAAA,GAAIA,OACJ,YAAY;AAAA,MAAES,gBAAgBF;AAAAA,MAAWG,cAAcF;AAAAA,IACvD,GAAA,MAAK,SACL,SAAQ,WAEX,CAAA;AAAA,IACDG,SAASC;AAAAA,EACX;AACF;AAEO,SAASC,uBAAuB;AAAA,EACrCC;AAAAA,EACAC;AAIF,GAAG;AACD,QAAMC,WAAWC;AAEXC,QAAAA,SAASC,QAAQ,MAAM;AAC3B,WAAOC,YACL;AAAA,MACEC,QAAQ;AAAA,QACNC,SAASN,SAASO,QAAQD;AAAAA,QAC1BE,WAAWR,SAASO,QAAQC;AAAAA,MAC9B;AAAA,IAAA,GAEF3B,WACAiB,SAAS,CAAA,CAAE;AAAA,EAAA,GAEZ,CAACE,UAAUF,KAAK,CAAC;AAEpB,6BAAQ,kBAAkB,UAAlB,EAA2B,OAAOI,QAASH,SAAS,CAAA;AAC9D;"}
@@ -1 +1 @@
1
- {"version":3,"file":"mui5Theme.js","sources":["../../src/theme/mui5Theme/index.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Checkbox,\n CircularProgress,\n IconButton,\n TextField,\n useTheme,\n} from '@mui/material';\nimport type { ReactNode } from 'react';\nimport { useMemo } from 'react';\nimport type { PartialTableTheme } from '../../types';\nimport { Popover } from '../defaultTheme/popover';\nimport { mergeThemes, TableThemeContext } from '../tableTheme';\n\nexport const mui5Theme: PartialTableTheme = {\n components: {\n Button: (props) => (\n <Button\n {...props}\n size=\"small\"\n fullWidth\n css={{ justifyContent: 'start !important' }}\n color={props.variant === 'contained' ? 'primary' : 'inherit'}\n />\n ),\n IconButton: (props) => (\n <IconButton {...props} size=\"small\" css={{ fontSize: '0.8em' }} color=\"inherit\" />\n ),\n Checkbox: (props) => <Checkbox {...props} color=\"primary\" size=\"small\" />,\n Popover,\n Badge,\n TextField: ({ startIcon, endIcon, ...props }) => (\n <TextField\n {...props}\n InputProps={{ startAdornment: startIcon, endAdornment: endIcon }}\n size=\"small\"\n />\n ),\n Spinner: (props) => <CircularProgress {...props} size={20} />,\n },\n};\n\nexport function Mui5TableThemeProvider({\n theme,\n children,\n}: {\n theme?: PartialTableTheme;\n children: ReactNode;\n}) {\n const muiTheme = useTheme();\n\n const _theme = useMemo(() => {\n return mergeThemes(\n {\n colors: {\n primary: muiTheme.palette.primary,\n secondary: muiTheme.palette.secondary,\n },\n },\n mui5Theme,\n theme ?? {},\n );\n }, [muiTheme, theme]);\n\n return <TableThemeContext.Provider value={_theme}>{children}</TableThemeContext.Provider>;\n}\n"],"names":["_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","mui5Theme","components","Button","props","variant","IconButton","Checkbox","Popover","Badge","TextField","startIcon","endIcon","startAdornment","endAdornment","Spinner","Mui5TableThemeProvider","theme","children","muiTheme","useTheme","_theme","useMemo","mergeThemes","colors","primary","palette","secondary"],"mappings":";;;;;;;;;;AAa+D,IAAAA,OAAAC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAAA,IAAAC,QAAAR,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAExD,MAAME,YAA+B;AAAA,EAC1CC,YAAY;AAAA,IACVC,QAASC,CACP,UAAA,oBAAC,QACC,EAAA,GAAIA,OACJ,MAAK,SACL,WAAS,MACT,KAAIb,MACJ,OAAOa,MAAMC,YAAY,cAAc,YAAY,WAEtD;AAAA,IACDC,YAAaF,CACX,UAAA,oBAAC,YAAW,EAAA,GAAIA,OAAO,MAAK,SAAQ,KAAIJ,OAAwB,OAAM,UACvE,CAAA;AAAA,IACDO,UAAWH,WAAW,oBAAA,UAAA,EAAaA,GAAAA,OAAO,OAAM,WAAU,MAAK,QAAU,CAAA;AAAA,IACzEI;AAAAA,IACAC;AAAAA,IACAC,WAAWA,CAAC;AAAA,MAAEC;AAAAA,MAAWC;AAAAA,SAAYR;AAAAA,IACnC,MAAA,oBAAC,WACC,EAAA,GAAIA,OACJ,YAAY;AAAA,MAAES,gBAAgBF;AAAAA,MAAWG,cAAcF;AAAAA,IAAAA,GACvD,MAAK,SAER;AAAA,IACDG,SAAUX,CAAU,UAAA,oBAAC,oBAAiB,GAAIA,OAAO,MAAM,IAAG;AAAA,EAC5D;AACF;AAEO,SAASY,uBAAuB;AAAA,EACrCC;AAAAA,EACAC;AAIF,GAAG;AACD,QAAMC,WAAWC;AAEXC,QAAAA,SAASC,QAAQ,MAAM;AAC3B,WAAOC,YACL;AAAA,MACEC,QAAQ;AAAA,QACNC,SAASN,SAASO,QAAQD;AAAAA,QAC1BE,WAAWR,SAASO,QAAQC;AAAAA,MAC9B;AAAA,IAAA,GAEF1B,WACAgB,SAAS,CAAA,CAAE;AAAA,EAAA,GAEZ,CAACE,UAAUF,KAAK,CAAC;AAEpB,6BAAQ,kBAAkB,UAAlB,EAA2B,OAAOI,QAASH,SAAS,CAAA;AAC9D;"}
1
+ {"version":3,"file":"mui5Theme.js","sources":["../../src/theme/mui5Theme/index.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Checkbox,\n CircularProgress,\n IconButton,\n TextField,\n useTheme,\n} from '@mui/material';\nimport type { ReactNode } from 'react';\nimport { useMemo } from 'react';\nimport type { PartialTableTheme } from '../../types';\nimport { Popover } from '../defaultTheme/popover';\nimport { mergeThemes, TableThemeContext } from '../tableTheme';\n\nexport const mui5Theme: PartialTableTheme = {\n components: {\n Button: (props) => (\n <Button\n {...props}\n size=\"small\"\n fullWidth\n css={{ justifyContent: 'start !important' }}\n color={props.variant === 'contained' ? 'primary' : 'inherit'}\n />\n ),\n IconButton: (props) => (\n <IconButton {...props} size=\"small\" css={{ fontSize: '0.8em' }} color=\"inherit\" />\n ),\n Checkbox: (props) => <Checkbox {...props} color=\"primary\" size=\"small\" />,\n Popover,\n Badge,\n TextField: ({ startIcon, endIcon, ...props }) => (\n <TextField\n {...props}\n InputProps={{ startAdornment: startIcon, endAdornment: endIcon }}\n size=\"small\"\n />\n ),\n Spinner: (props) => <CircularProgress {...props} size={20} />,\n },\n};\n\nexport function Mui5TableThemeProvider({\n theme,\n children,\n}: {\n theme?: PartialTableTheme;\n children: ReactNode;\n}) {\n const muiTheme = useTheme();\n\n const _theme = useMemo(() => {\n return mergeThemes(\n {\n colors: {\n primary: muiTheme.palette.primary,\n secondary: muiTheme.palette.secondary,\n },\n },\n mui5Theme,\n theme ?? {},\n );\n }, [muiTheme, theme]);\n\n return <TableThemeContext.Provider value={_theme}>{children}</TableThemeContext.Provider>;\n}\n"],"names":["_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","mui5Theme","components","Button","props","variant","IconButton","Checkbox","Popover","Badge","TextField","startIcon","endIcon","startAdornment","endAdornment","Spinner","Mui5TableThemeProvider","theme","children","muiTheme","useTheme","_theme","useMemo","mergeThemes","colors","primary","palette","secondary"],"mappings":";;;;;;;;;;AAa+D,IAAAA,OAAAC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAAA,IAAAC,QAAAR,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAExD,MAAME,YAA+B;AAAA,EAC1CC,YAAY;AAAA,IACVC,QAASC,CACP,UAAA,oBAAC,QACC,EAAA,GAAIA,OACJ,MAAK,SACL,WAAS,MACT,KAAIb,MACJ,OAAOa,MAAMC,YAAY,cAAc,YAAY,WAEtD;AAAA,IACDC,YAAaF,CACX,UAAA,oBAAC,YAAW,EAAA,GAAIA,OAAO,MAAK,SAAQ,KAAIJ,OAAwB,OAAM,UACvE,CAAA;AAAA,IACDO,UAAWH,WAAW,oBAAA,UAAA,EAAaA,GAAAA,OAAO,OAAM,WAAU,MAAK,QAAU,CAAA;AAAA,IACzEI;AAAAA,IACAC;AAAAA,IACAC,WAAWA,CAAC;AAAA,MAAEC;AAAAA,MAAWC;AAAAA,MAAS,GAAGR;AAAAA,IACnC,MAAA,oBAAC,WACC,EAAA,GAAIA,OACJ,YAAY;AAAA,MAAES,gBAAgBF;AAAAA,MAAWG,cAAcF;AAAAA,IAAAA,GACvD,MAAK,SAER;AAAA,IACDG,SAAUX,CAAU,UAAA,oBAAC,oBAAiB,GAAIA,OAAO,MAAM,IAAG;AAAA,EAC5D;AACF;AAEO,SAASY,uBAAuB;AAAA,EACrCC;AAAAA,EACAC;AAIF,GAAG;AACD,QAAMC,WAAWC;AAEXC,QAAAA,SAASC,QAAQ,MAAM;AAC3B,WAAOC,YACL;AAAA,MACEC,QAAQ;AAAA,QACNC,SAASN,SAASO,QAAQD;AAAAA,QAC1BE,WAAWR,SAASO,QAAQC;AAAAA,MAC9B;AAAA,IAAA,GAEF1B,WACAgB,SAAS,CAAA,CAAE;AAAA,EAAA,GAEZ,CAACE,UAAUF,KAAK,CAAC;AAEpB,6BAAQ,kBAAkB,UAAlB,EAA2B,OAAOI,QAASH,SAAS,CAAA;AAC9D;"}
@@ -244,6 +244,7 @@ function mergeThemes(...themes) {
244
244
  return {
245
245
  text: Object.assign({}, ...themes.map((theme) => theme.text)),
246
246
  classes: Object.assign({}, ...themes.map((theme) => theme.classes)),
247
+ styles: Object.assign({}, ...themes.map((theme) => theme.styles)),
247
248
  components: Object.assign({}, ...themes.map((theme) => theme.components)),
248
249
  icons: Object.assign({}, ...themes.map((theme) => theme.icons)),
249
250
  colors: {
@@ -1 +1 @@
1
- {"version":3,"file":"tableTheme.js","sources":["../../src/theme/defaultTheme/defaultClasses.ts","../../src/theme/defaultTheme/popover.tsx","../../src/theme/tableTheme.tsx"],"sourcesContent":["import { css } from '@emotion/react';\n\nexport const white = '#ffffff';\nexport const lightGray = '#eeeeee';\nexport const gray = '#bdbdbd';\nexport const darkGray = '#777';\n\nconst cell = css({\n padding: `calc(var(--spacing) * 0.1) calc(2 * var(--spacing))`,\n display: 'flex',\n alignItems: 'center',\n borderBottom: `1px solid #dfe2e9`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n background: 'white',\n});\n\nexport const defaultClasses = {\n table: css({\n position: 'relative',\n display: 'grid',\n }),\n\n cell,\n\n cellFill: css({\n borderBottom: `1px solid ${lightGray}`,\n }),\n\n headerCell: css(cell, {\n padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,\n borderBottom: `1px solid #c9cfda`,\n }),\n\n footerCell: css(cell, {\n padding: `var(--spacing) calc(2 * var(--spacing))`,\n borderTop: `1px solid #c9cfda`,\n borderBottom: 'none',\n }),\n\n firstCell: css({\n justifyContent: 'start',\n }),\n\n sticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 2,\n }),\n\n stickyBottom: css({\n position: 'sticky',\n bottom: 0,\n zIndex: 2,\n }),\n\n headerFill: css({\n borderBottom: `1px solid #c9cfda`,\n background: white,\n }),\n\n footerFill: css({\n borderTop: `1px solid #c9cfda`,\n background: white,\n }),\n\n text: css({\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n\n card: css({\n borderRadius: 4,\n boxShadow: '0px 3px 14px 2px rgb(0 0 0 / 12%)',\n background: 'white',\n }),\n\n clearFiltersButton: css({\n padding: `0 calc(2 * var(--spacing))`,\n fontWeight: 'bold',\n position: 'sticky',\n left: 0,\n maxWidth: 'fit-content',\n gridColumn: '2/-1',\n button: {\n color: 'var(--primaryMain) !important',\n border: 'solid 1px',\n borderColor: 'var(--primaryMain) !important',\n margin: 'var(--spacing)',\n },\n }),\n};\n","import { useLayoutEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { TableTheme } from '../../types';\nimport { defaultClasses } from './defaultClasses';\n\nconst MARGIN = 10;\nconst MAX_OFFSET = 20;\n\nexport const Popover: TableTheme['components']['Popover'] = ({\n anchorEl,\n open,\n hidden,\n onClose,\n children,\n className,\n backdropClassName,\n align,\n}) => {\n const popper = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<{ left: number; top: number }>();\n const [zIndex, setZIndex] = useState(1);\n\n useLayoutEffect(() => {\n if (!anchorEl || !open) {\n setPosition(undefined);\n return;\n }\n\n let last: { left: number; top: number } | undefined;\n\n function check() {\n if (!anchorEl) return;\n const {\n left: anchorLeft,\n bottom: anchorBottom,\n width: anchorWidth,\n } = anchorEl.getBoundingClientRect();\n const { width: popperWidth = 0, height: popperHeight = 0 } =\n popper.current?.getBoundingClientRect() ?? {};\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n\n const next = {\n left:\n align === 'center'\n ? anchorLeft + anchorWidth / 2 - popperWidth / 2\n : anchorLeft -\n Math.min(popperWidth ? popperWidth / 2 : Number.POSITIVE_INFINITY, MAX_OFFSET),\n top: anchorBottom,\n };\n\n if (next.left < MARGIN) {\n next.left = MARGIN;\n }\n if (next.left + popperWidth > viewportWidth - MARGIN) {\n next.left = viewportWidth - MARGIN - popperWidth;\n }\n if (next.top < MARGIN) {\n next.top = MARGIN;\n }\n if (next.top + popperHeight > viewportHeight - MARGIN) {\n next.top = viewportHeight - MARGIN - popperHeight;\n }\n\n if (next.left !== last?.left || next.top !== last?.top) {\n setPosition(next);\n }\n\n last = next;\n }\n check();\n\n const handle = setInterval(check, 16);\n return () => {\n clearInterval(handle);\n };\n }, [anchorEl, open, align]);\n\n function updateZIndex(div: HTMLDivElement | null) {\n const ancestors = [];\n for (let node = div?.parentElement; node; node = node.parentElement) {\n ancestors.push(node);\n }\n\n for (const node of ancestors.reverse()) {\n const value = document.defaultView?.getComputedStyle(node).getPropertyValue('z-index');\n\n if (value && !Number.isNaN(Number(value))) {\n setZIndex(Number(value) + 1);\n return;\n }\n }\n }\n\n if (!open) return null;\n\n return (\n <>\n <div\n ref={updateZIndex}\n css={{\n display: 'none',\n }}\n />\n\n {createPortal(\n <>\n <div\n className={backdropClassName}\n css={[\n {\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex,\n },\n hidden && { display: 'none' },\n ]}\n onClick={() => onClose()}\n />\n\n <div\n ref={popper}\n className={className}\n css={[\n defaultClasses.card,\n {\n position: 'fixed',\n maxWidth: document.documentElement.clientWidth - 2 * MARGIN,\n maxHeight: document.documentElement.clientHeight - 2 * MARGIN,\n ...position,\n zIndex: zIndex + 1,\n overflowY: 'auto',\n },\n hidden && { display: 'none' },\n !position && { visibility: 'hidden' },\n ]}\n >\n {children}\n </div>\n </>,\n document.body,\n )}\n </>\n );\n};\n","import type { ReactNode } from 'react';\nimport { createContext } from 'react';\nimport { Store } from 'schummar-state/react';\nimport type { PartialTableTheme } from '../types';\n\nexport const globalTableTheme = new Store<PartialTableTheme>({});\n\nexport function configureTableTheme(tableTheme: PartialTableTheme) {\n globalTableTheme.set(tableTheme);\n}\n\nexport const TableThemeContext = createContext<PartialTableTheme>({});\n\nexport function TableThemeProvider({\n theme,\n children,\n}: {\n theme: PartialTableTheme;\n children?: ReactNode;\n}) {\n return <TableThemeContext.Provider value={theme}>{children}</TableThemeContext.Provider>;\n}\n\nexport function mergeThemes<T>(...themes: PartialTableTheme<T>[]): PartialTableTheme<T> {\n return {\n text: Object.assign({}, ...themes.map((theme) => theme.text)),\n classes: Object.assign({}, ...themes.map((theme) => theme.classes)),\n components: Object.assign({}, ...themes.map((theme) => theme.components)),\n icons: Object.assign({}, ...themes.map((theme) => theme.icons)),\n colors: {\n primary: Object.assign({}, ...themes.map((theme) => theme.colors?.primary)),\n secondary: Object.assign({}, ...themes.map((theme) => theme.colors?.secondary)),\n },\n spacing: themes\n .map((theme) => theme.spacing)\n .reverse()\n .find((x) => x !== undefined),\n };\n}\n"],"names":["white","lightGray","gray","darkGray","cell","padding","display","alignItems","borderBottom","whiteSpace","overflow","background","process","env","NODE_ENV","defaultClasses","table","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","cellFill","headerCell","footerCell","borderTop","firstCell","sticky","stickyBottom","headerFill","footerFill","text","card","clearFiltersButton","fontWeight","position","left","maxWidth","gridColumn","button","color","border","borderColor","margin","MARGIN","MAX_OFFSET","_ref","Popover","anchorEl","open","hidden","onClose","children","className","backdropClassName","align","popper","useRef","setPosition","useState","zIndex","setZIndex","useLayoutEffect","undefined","last","check","anchorLeft","bottom","anchorBottom","width","anchorWidth","getBoundingClientRect","popperWidth","height","popperHeight","current","viewportWidth","document","documentElement","clientWidth","viewportHeight","clientHeight","next","Math","min","Number","POSITIVE_INFINITY","top","handle","setInterval","clearInterval","updateZIndex","div","ancestors","node","parentElement","push","reverse","value","defaultView","getComputedStyle","getPropertyValue","isNaN","createPortal","right","maxHeight","overflowY","visibility","body","globalTableTheme","Store","configureTableTheme","tableTheme","set","TableThemeContext","createContext","TableThemeProvider","theme","mergeThemes","themes","Object","assign","classes","components","icons","colors","primary","secondary","spacing","find","x"],"mappings":"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"}
1
+ {"version":3,"file":"tableTheme.js","sources":["../../src/theme/defaultTheme/defaultClasses.ts","../../src/theme/defaultTheme/popover.tsx","../../src/theme/tableTheme.tsx"],"sourcesContent":["import { css } from '@emotion/react';\n\nexport const white = '#ffffff';\nexport const lightGray = '#eeeeee';\nexport const gray = '#bdbdbd';\nexport const darkGray = '#777';\n\nconst cell = css({\n padding: `calc(var(--spacing) * 0.1) calc(2 * var(--spacing))`,\n display: 'flex',\n alignItems: 'center',\n borderBottom: `1px solid #dfe2e9`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n background: 'white',\n});\n\nexport const defaultClasses = {\n table: css({\n position: 'relative',\n display: 'grid',\n }),\n\n cell,\n\n cellFill: css({\n borderBottom: `1px solid ${lightGray}`,\n }),\n\n headerCell: css(cell, {\n padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,\n borderBottom: `1px solid #c9cfda`,\n }),\n\n footerCell: css(cell, {\n padding: `var(--spacing) calc(2 * var(--spacing))`,\n borderTop: `1px solid #c9cfda`,\n borderBottom: 'none',\n }),\n\n firstCell: css({\n justifyContent: 'start',\n }),\n\n sticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 2,\n }),\n\n stickyBottom: css({\n position: 'sticky',\n bottom: 0,\n zIndex: 2,\n }),\n\n headerFill: css({\n borderBottom: `1px solid #c9cfda`,\n background: white,\n }),\n\n footerFill: css({\n borderTop: `1px solid #c9cfda`,\n background: white,\n }),\n\n text: css({\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n\n card: css({\n borderRadius: 4,\n boxShadow: '0px 3px 14px 2px rgb(0 0 0 / 12%)',\n background: 'white',\n }),\n\n clearFiltersButton: css({\n padding: `0 calc(2 * var(--spacing))`,\n fontWeight: 'bold',\n position: 'sticky',\n left: 0,\n maxWidth: 'fit-content',\n gridColumn: '2/-1',\n button: {\n color: 'var(--primaryMain) !important',\n border: 'solid 1px',\n borderColor: 'var(--primaryMain) !important',\n margin: 'var(--spacing)',\n },\n }),\n};\n","import { useLayoutEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { TableTheme } from '../../types';\nimport { defaultClasses } from './defaultClasses';\n\nconst MARGIN = 10;\nconst MAX_OFFSET = 20;\n\nexport const Popover: TableTheme['components']['Popover'] = ({\n anchorEl,\n open,\n hidden,\n onClose,\n children,\n className,\n backdropClassName,\n align,\n}) => {\n const popper = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<{ left: number; top: number }>();\n const [zIndex, setZIndex] = useState(1);\n\n useLayoutEffect(() => {\n if (!anchorEl || !open) {\n setPosition(undefined);\n return;\n }\n\n let last: { left: number; top: number } | undefined;\n\n function check() {\n if (!anchorEl) return;\n const {\n left: anchorLeft,\n bottom: anchorBottom,\n width: anchorWidth,\n } = anchorEl.getBoundingClientRect();\n const { width: popperWidth = 0, height: popperHeight = 0 } =\n popper.current?.getBoundingClientRect() ?? {};\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n\n const next = {\n left:\n align === 'center'\n ? anchorLeft + anchorWidth / 2 - popperWidth / 2\n : anchorLeft -\n Math.min(popperWidth ? popperWidth / 2 : Number.POSITIVE_INFINITY, MAX_OFFSET),\n top: anchorBottom,\n };\n\n if (next.left < MARGIN) {\n next.left = MARGIN;\n }\n if (next.left + popperWidth > viewportWidth - MARGIN) {\n next.left = viewportWidth - MARGIN - popperWidth;\n }\n if (next.top < MARGIN) {\n next.top = MARGIN;\n }\n if (next.top + popperHeight > viewportHeight - MARGIN) {\n next.top = viewportHeight - MARGIN - popperHeight;\n }\n\n if (next.left !== last?.left || next.top !== last?.top) {\n setPosition(next);\n }\n\n last = next;\n }\n check();\n\n const handle = setInterval(check, 16);\n return () => {\n clearInterval(handle);\n };\n }, [anchorEl, open, align]);\n\n function updateZIndex(div: HTMLDivElement | null) {\n const ancestors = [];\n for (let node = div?.parentElement; node; node = node.parentElement) {\n ancestors.push(node);\n }\n\n for (const node of ancestors.reverse()) {\n const value = document.defaultView?.getComputedStyle(node).getPropertyValue('z-index');\n\n if (value && !Number.isNaN(Number(value))) {\n setZIndex(Number(value) + 1);\n return;\n }\n }\n }\n\n if (!open) return null;\n\n return (\n <>\n <div\n ref={updateZIndex}\n css={{\n display: 'none',\n }}\n />\n\n {createPortal(\n <>\n <div\n className={backdropClassName}\n css={[\n {\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex,\n },\n hidden && { display: 'none' },\n ]}\n onClick={() => onClose()}\n />\n\n <div\n ref={popper}\n className={className}\n css={[\n defaultClasses.card,\n {\n position: 'fixed',\n maxWidth: document.documentElement.clientWidth - 2 * MARGIN,\n maxHeight: document.documentElement.clientHeight - 2 * MARGIN,\n ...position,\n zIndex: zIndex + 1,\n overflowY: 'auto',\n },\n hidden && { display: 'none' },\n !position && { visibility: 'hidden' },\n ]}\n >\n {children}\n </div>\n </>,\n document.body,\n )}\n </>\n );\n};\n","import type { ReactNode } from 'react';\nimport { createContext } from 'react';\nimport { Store } from 'schummar-state/react';\nimport type { PartialTableTheme } from '../types';\n\nexport const globalTableTheme = new Store<PartialTableTheme>({});\n\nexport function configureTableTheme(tableTheme: PartialTableTheme) {\n globalTableTheme.set(tableTheme);\n}\n\nexport const TableThemeContext = createContext<PartialTableTheme>({});\n\nexport function TableThemeProvider({\n theme,\n children,\n}: {\n theme: PartialTableTheme;\n children?: ReactNode;\n}) {\n return <TableThemeContext.Provider value={theme}>{children}</TableThemeContext.Provider>;\n}\n\nexport function mergeThemes<T>(...themes: PartialTableTheme<T>[]): PartialTableTheme<T> {\n return {\n text: Object.assign({}, ...themes.map((theme) => theme.text)),\n classes: Object.assign({}, ...themes.map((theme) => theme.classes)),\n styles: Object.assign({}, ...themes.map((theme) => theme.styles)),\n components: Object.assign({}, ...themes.map((theme) => theme.components)),\n icons: Object.assign({}, ...themes.map((theme) => theme.icons)),\n colors: {\n primary: Object.assign({}, ...themes.map((theme) => theme.colors?.primary)),\n secondary: Object.assign({}, ...themes.map((theme) => theme.colors?.secondary)),\n },\n spacing: themes\n .map((theme) => theme.spacing)\n .reverse()\n .find((x) => x !== undefined),\n };\n}\n"],"names":["white","lightGray","gray","darkGray","cell","padding","display","alignItems","borderBottom","whiteSpace","overflow","background","process","env","NODE_ENV","defaultClasses","table","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","cellFill","headerCell","footerCell","borderTop","firstCell","sticky","stickyBottom","headerFill","footerFill","text","card","clearFiltersButton","fontWeight","position","left","maxWidth","gridColumn","button","color","border","borderColor","margin","MARGIN","MAX_OFFSET","_ref","Popover","anchorEl","open","hidden","onClose","children","className","backdropClassName","align","popper","useRef","setPosition","useState","zIndex","setZIndex","useLayoutEffect","undefined","last","check","anchorLeft","bottom","anchorBottom","width","anchorWidth","getBoundingClientRect","popperWidth","height","popperHeight","current","viewportWidth","document","documentElement","clientWidth","viewportHeight","clientHeight","next","Math","min","Number","POSITIVE_INFINITY","top","handle","setInterval","clearInterval","updateZIndex","div","ancestors","node","parentElement","push","reverse","value","defaultView","getComputedStyle","getPropertyValue","isNaN","createPortal","right","maxHeight","overflowY","visibility","body","globalTableTheme","Store","configureTableTheme","tableTheme","set","TableThemeContext","createContext","TableThemeProvider","theme","mergeThemes","themes","Object","assign","classes","components","icons","colors","primary","secondary","spacing","find","x"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import type { MemoizedTableTheme } from '../types';
2
2
  export declare function calcClassNames<T>(classes: MemoizedTableTheme<any>['classes'] | undefined, item: T, index: number): (string | false | undefined)[];
3
+ export declare function calcCss<T>(styles: MemoizedTableTheme<any>['styles'] | undefined, item: T, index: number): (false | import("@emotion/serialize").CSSObject | undefined)[];
@@ -1,9 +1,9 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import { Store } from 'schummar-state/react';
3
3
  import type { PartialTableTheme } from '../types';
4
- export declare const globalTableTheme: Store<PartialTableTheme<unknown>>;
4
+ export declare const globalTableTheme: Store<PartialTableTheme>;
5
5
  export declare function configureTableTheme(tableTheme: PartialTableTheme): void;
6
- export declare const TableThemeContext: import("react").Context<PartialTableTheme<unknown>>;
6
+ export declare const TableThemeContext: import("react").Context<PartialTableTheme>;
7
7
  export declare function TableThemeProvider({ theme, children, }: {
8
8
  theme: PartialTableTheme;
9
9
  children?: ReactNode;
@@ -1,6 +1,6 @@
1
- import type { CSSInterpolation } from '@emotion/serialize';
2
- import type { ComponentType, DependencyList, ReactNode, Ref } from 'react';
1
+ import type { CSSObject } from '@emotion/react';
3
2
  import type React from 'react';
3
+ import type { CSSProperties, ComponentType, DependencyList, ReactNode, Ref } from 'react';
4
4
  import type { TableStateStorage } from './internalState/tableStateStorage';
5
5
  import type { CsvExportOptions } from './misc/csvExport';
6
6
  export type Sort = {
@@ -49,6 +49,14 @@ export interface TableTheme<T = unknown> {
49
49
  popover?: string;
50
50
  popoverBackdrop?: string;
51
51
  };
52
+ styles?: {
53
+ table?: CSSObject;
54
+ headerCell?: CSSObject;
55
+ footerCell?: CSSObject;
56
+ cell?: CSSObject | FunctionWithDeps<(item: T, index: number) => CSSObject>;
57
+ evenCell?: CSSObject;
58
+ oddCell?: CSSObject;
59
+ };
52
60
  /** Define components to be used in the table. */
53
61
  components: {
54
62
  IconButton: ComponentType<{
@@ -125,8 +133,9 @@ export interface TableTheme<T = unknown> {
125
133
  export type PartialTableTheme<T = unknown> = {
126
134
  [K in keyof TableTheme<T>]?: TableTheme<T>[K] extends Record<string, any> ? Partial<TableTheme<T>[K]> : TableTheme<T>[K];
127
135
  };
128
- export type MemoizedTableTheme<T> = Omit<TableTheme, 'classes' | 'text'> & {
136
+ export type MemoizedTableTheme<T> = Omit<TableTheme, 'classes' | 'styles' | 'text'> & {
129
137
  classes: MemoizedFunctions<TableTheme<T>['classes']>;
138
+ styles: MemoizedFunctions<TableTheme<T>['styles']>;
130
139
  text: MemoizedFunctions<TableTheme<T>['text']>;
131
140
  };
132
141
  export interface TableProps<T> extends PartialTableTheme<T> {
@@ -292,7 +301,9 @@ export type Column<T, V> = {
292
301
  */
293
302
  width?: string;
294
303
  /** Provide css class names to override columns styles. */
295
- classes?: TableTheme<T>['classes'];
304
+ classes?: Omit<NonNullable<TableTheme<T>['classes']>, 'table'>;
305
+ /** Provide css styles to override columns styles. */
306
+ styles?: Omit<NonNullable<TableTheme<T>['styles']>, 'table'>;
296
307
  };
297
308
  export type InternalColumn<T, V> = MemoizedFunctions<Required<Omit<Column<T, V>, 'id' | 'sortBy'>, 'header' | 'renderCell' | 'exportCell' | 'sortBy'> & {
298
309
  id: Id;
@@ -313,7 +324,7 @@ export type InternalTableState<T> = {
313
324
  hiddenColumns: Set<Id>;
314
325
  columnWidths: Map<Id, string>;
315
326
  columnOrder: Id[];
316
- columnStyleOverride: Map<Id, CSSInterpolation>;
327
+ columnStyleOverride: Map<Id, CSSProperties>;
317
328
  activeColumns: InternalColumn<T, unknown>[];
318
329
  items: TableItem<T>[];
319
330
  itemsById: Map<Id, TableItem<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "schummar-table",
3
- "version": "0.24.3",
3
+ "version": "0.25.1",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "repository": "schummar/schummar-table",
@@ -79,38 +79,38 @@
79
79
  }
80
80
  },
81
81
  "dependencies": {
82
- "@emotion/react": "11.10.5",
82
+ "@emotion/react": "11.10.6",
83
83
  "dayzed": "3.2.3",
84
- "immer": "9.0.16",
85
- "nanoid": "4.0.1",
84
+ "immer": "10.0.0",
85
+ "nanoid": "4.0.2",
86
86
  "schummar-state": "0.2.1-experimental-13"
87
87
  },
88
88
  "devDependencies": {
89
- "@emotion/styled": "11.10.5",
89
+ "@emotion/styled": "11.10.6",
90
90
  "@material-ui/core": "4.12.4",
91
- "@mui/material": "5.11.0",
91
+ "@mui/material": "5.12.1",
92
92
  "@schummar/eslint-config": "github:schummar/eslint-config",
93
93
  "@schummar/prettier-config": "github:schummar/prettier-config",
94
- "@schummar/runp": "1.8.2",
95
- "@types/react": "18.0.26",
96
- "@types/react-dom": "18.0.9",
97
- "@vitejs/plugin-react": "3.0.0",
98
- "eslint": "8.29.0",
99
- "eslint-plugin-storybook": "0.6.8",
100
- "prettier": "2.8.1",
94
+ "@schummar/runp": "1.12.0",
95
+ "@types/react": "18.0.37",
96
+ "@types/react-dom": "18.0.11",
97
+ "@vitejs/plugin-react": "3.1.0",
98
+ "eslint": "8.38.0",
99
+ "eslint-plugin-storybook": "0.6.11",
100
+ "prettier": "2.8.7",
101
101
  "react": "18.2.0",
102
102
  "react-dom": "18.2.0",
103
- "rimraf": "3.0.2",
104
- "semantic-release": "19.0.5",
105
- "typescript": "4.9.4",
106
- "vite": "4.0.1"
103
+ "rimraf": "5.0.0",
104
+ "semantic-release": "21.0.1",
105
+ "typescript": "5.0.4",
106
+ "vite": "4.2.1"
107
107
  },
108
108
  "workspaces": [
109
109
  "docs"
110
110
  ],
111
111
  "volta": {
112
- "node": "16.17.0",
113
- "npm": "8.19.2"
112
+ "node": "18.16.0",
113
+ "npm": "9.6.4"
114
114
  },
115
115
  "eslintConfig": {
116
116
  "extends": [