schummar-table 1.0.1 → 1.0.2
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/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/mantineTheme.cjs +7 -3
- package/dist/mantineTheme.cjs.map +1 -1
- package/dist/mantineTheme.js +7 -3
- package/dist/mantineTheme.js.map +1 -1
- package/dist/mui4Theme.cjs +1 -1
- package/dist/mui4Theme.js +1 -1
- package/dist/mui5Theme.cjs +1 -1
- package/dist/mui5Theme.js +1 -1
- package/dist/{tableTheme-BTWZIwYS.js → tableTheme-BgaqIBux.js} +5 -4
- package/dist/tableTheme-BgaqIBux.js.map +1 -0
- package/dist/{tableTheme-CSqMIpLB.cjs → tableTheme-CsTWp3yn.cjs} +5 -4
- package/dist/tableTheme-CsTWp3yn.cjs.map +1 -0
- package/dist/{useTheme-C2MxW5qw.js → useTheme-B2ejsCOL.js} +2 -2
- package/dist/{useTheme-C2MxW5qw.js.map → useTheme-B2ejsCOL.js.map} +1 -1
- package/dist/{useTheme-BxEsZbTm.cjs → useTheme-BrKiZfIC.cjs} +2 -2
- package/dist/{useTheme-BxEsZbTm.cjs.map → useTheme-BrKiZfIC.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/tableTheme-BTWZIwYS.js.map +0 -1
- package/dist/tableTheme-CSqMIpLB.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tableTheme-BTWZIwYS.js","names":[],"sources":["../src/misc/tableSettings.tsx","../src/misc/throttle.ts","../src/theme/defaultTheme/defaultClasses.ts","../src/theme/defaultTheme/popover.tsx","../src/theme/tableTheme.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport CsvExporter from '../exporters/csvExporter';\nimport { ExporterEntry } from '../exporters/exporter';\nimport { PartialTableTheme } from '../types';\n\nexport interface TableSettingsContextType {\n theme: PartialTableTheme;\n exporters: ExporterEntry[];\n}\n\nexport const TableSettingsContext = createContext<TableSettingsContextType>({\n theme: {},\n exporters: [\n { action: 'copy', exporter: new CsvExporter() },\n { action: 'download', exporter: new CsvExporter() },\n ],\n});\n\nexport function TableSettingsProvider({\n theme,\n exporters,\n additionalExporters,\n children,\n}: Partial<TableSettingsContextType> & {\n additionalExporters?: ExporterEntry[];\n children?: ReactNode;\n}) {\n const inherited = useContext(TableSettingsContext);\n theme ??= inherited.theme;\n exporters ??= inherited.exporters;\n\n if (additionalExporters) {\n exporters = [...exporters, ...additionalExporters];\n }\n\n return (\n <TableSettingsContext.Provider\n value={{\n theme,\n exporters,\n }}\n >\n {children}\n </TableSettingsContext.Provider>\n );\n}\n","export function throttle<Args extends any[]>(\n function_: (...args: Args) => void,\n ms: number,\n): { (...args: Args): void; flush(): void; cancel(): void } {\n let last = 0;\n let lastArgs: Args | undefined;\n let timeout: ReturnType<typeof setTimeout> | undefined;\n\n function run() {\n const args = lastArgs;\n\n last = Date.now();\n lastArgs = undefined;\n timeout = undefined;\n\n function_(...args!);\n }\n\n return Object.assign(\n function (...args: Args) {\n const now = Date.now();\n lastArgs = args;\n\n if (timeout) {\n // do nothing\n } else if (now < last + ms) {\n timeout = setTimeout(run, last + ms - now);\n } else {\n run();\n }\n },\n {\n flush() {\n if (lastArgs) {\n run();\n }\n },\n\n cancel() {\n if (timeout) {\n clearTimeout(timeout);\n }\n },\n },\n );\n}\n","import { css } from '@emotion/react';\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 var(--table-border-light-color)',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n minHeight: 5,\n\n '&:empty': {\n padding: 0,\n },\n});\n\nexport const defaultClasses = {\n table: css({\n position: 'relative',\n display: 'grid',\n color: 'var(--table-text-color)',\n }),\n\n cell,\n\n cellFill: css({\n borderBottom: '1px solid var(--table-border-light-color)',\n }),\n\n headerCell: css(cell, {\n borderBottom: '1px solid var(--table-border-color)',\n background: 'var(--table-background-color)',\n\n '&:not(:empty)': {\n padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,\n },\n }),\n\n footerCell: css(cell, {\n padding: `var(--spacing) calc(2 * var(--spacing))`,\n borderTop: '1px solid var(--table-border-color)',\n borderBottom: 'none',\n background: 'var(--table-background-color)',\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 var(--table-border-color)',\n background: 'var(--table-background-color)',\n }),\n\n footerFill: css({\n borderTop: '1px solid var(--table-border-color)',\n background: 'var(--table-background-color)',\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: 'var(--table-background-color)',\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 details: css(cell, {\n gridColumn: '1 / -1',\n whiteSpace: 'normal',\n }),\n};\n","import { useLayoutEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { throttle } from '../../misc/throttle';\nimport type { TableTheme } from '../../types';\nimport { defaultClasses } from './defaultClasses';\n\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 probe = useRef<HTMLDivElement>(null);\n const backdrop = useRef<HTMLDivElement>(null);\n const popper = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n if (!open) {\n return;\n }\n\n function check() {\n const marginLeft = parseFloat(getComputedStyle(popper.current ?? document.body).marginLeft);\n const marginRight = parseFloat(getComputedStyle(popper.current ?? document.body).marginRight);\n const marginTop = parseFloat(getComputedStyle(popper.current ?? document.body).marginTop);\n const marginBottom = parseFloat(\n getComputedStyle(popper.current ?? document.body).marginBottom,\n );\n popper.current?.style.setProperty('--margin-x', `${marginLeft + marginRight}px`);\n popper.current?.style.setProperty('--margin-y', `${marginTop + marginBottom}px`);\n\n if (hidden) {\n popper.current?.style.setProperty('visibility', 'hidden');\n return;\n }\n\n const viewportWidth = window.visualViewport?.width ?? window.innerWidth;\n const viewportHeight = window.visualViewport?.height ?? window.innerHeight;\n const { width: popperWidth = 0, height: popperHeight = 0 } =\n popper.current?.getBoundingClientRect() ?? {};\n\n const next = {\n left: 0,\n top: 0,\n };\n\n if (anchorEl) {\n const bb = anchorEl.getBoundingClientRect();\n\n if (align === 'center') {\n next.left = bb.left + bb.width / 2 - popperWidth / 2;\n } else {\n next.left =\n bb.left -\n Math.min(popperWidth ? popperWidth / 2 : Number.POSITIVE_INFINITY, MAX_OFFSET);\n }\n\n next.top = bb.bottom;\n } else {\n next.left = (viewportWidth - popperWidth) / 2;\n next.top = (viewportHeight - popperHeight) / 2;\n }\n\n if (next.left > viewportWidth - popperWidth - marginLeft - marginRight) {\n next.left = viewportWidth - popperWidth - marginLeft - marginRight;\n }\n if (next.left < marginLeft) {\n next.left = marginLeft;\n }\n if (next.top > viewportHeight - popperHeight - marginTop - marginBottom) {\n next.top = viewportHeight - popperHeight - marginTop - marginBottom;\n }\n if (next.top < marginTop) {\n next.top = marginTop;\n }\n\n popper.current?.style.setProperty('left', `${next.left}px`);\n popper.current?.style.setProperty('top', `${next.top}px`);\n popper.current?.style.setProperty('visibility', 'visible');\n }\n const checkThrottled = throttle(check, 16);\n check();\n\n const handle = setInterval(checkThrottled, 1000);\n window.addEventListener('resize', checkThrottled);\n window.addEventListener('scroll', checkThrottled, true);\n\n return () => {\n clearInterval(handle);\n window.removeEventListener('resize', checkThrottled);\n window.removeEventListener('scroll', checkThrottled, true);\n };\n }, [anchorEl, open, hidden, align]);\n\n useLayoutEffect(() => {\n if (!open) return;\n\n const ancestors = [];\n for (let node = probe.current?.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 const newZIndex = Number(value) + 1;\n\n if (\n backdrop.current &&\n !(\n Number(\n document.defaultView?.getComputedStyle(backdrop.current).getPropertyValue('z-index'),\n ) > newZIndex\n )\n ) {\n backdrop.current?.style.setProperty('z-index', newZIndex.toString());\n }\n\n if (\n popper.current &&\n !(\n Number(\n document.defaultView?.getComputedStyle(popper.current).getPropertyValue('z-index'),\n ) >\n newZIndex + 1\n )\n ) {\n popper.current?.style.setProperty('z-index', (newZIndex + 1).toString());\n }\n return;\n }\n }\n }, [anchorEl, open]);\n\n if (!open) return null;\n\n return (\n <>\n <div\n ref={probe}\n css={{\n display: 'none',\n }}\n />\n\n {createPortal(\n <>\n <div\n ref={backdrop}\n className={backdropClassName}\n css={[\n {\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\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 width: 'max-content',\n maxWidth: [\n `calc(100vw - (100vw - 100%) - var(--margin-x))`,\n `calc(100dvw - (100dvw - 100%) - var(--margin-x))`,\n ],\n maxHeight: [\n `calc(100vh - (100vh - 100%) - var(--margin-x))`,\n `calc(100dvh - (100dvh - 100%) - var(--margin-x))`,\n ],\n margin: 10,\n zIndex: 1,\n overflowY: 'auto',\n color: 'var(--table-text-color)',\n visibility: 'hidden',\n },\n hidden && { display: 'none' },\n ]}\n >\n {children}\n </div>\n </>,\n document.body,\n )}\n </>\n );\n};\n","import type { PartialTableTheme } from '../types';\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 blocked: Object.assign({}, ...themes.map((theme) => theme.colors?.blocked)),\n background: themes\n .map((theme) => theme.colors?.background)\n .reverse()\n .find((x) => x !== undefined),\n text: themes\n .map((theme) => theme.colors?.text)\n .reverse()\n .find((x) => x !== undefined),\n border: themes\n .map((theme) => theme.colors?.border)\n .reverse()\n .find((x) => x !== undefined),\n borderLight: themes\n .map((theme) => theme.colors?.borderLight)\n .reverse()\n .find((x) => x !== undefined),\n },\n spacing: themes\n .map((theme) => theme.spacing)\n .reverse()\n .find((x) => x !== undefined),\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tableTheme-CSqMIpLB.cjs","names":["createContext","CsvExporter","useContext","css","useRef","createPortal"],"sources":["../src/misc/tableSettings.tsx","../src/misc/throttle.ts","../src/theme/defaultTheme/defaultClasses.ts","../src/theme/defaultTheme/popover.tsx","../src/theme/tableTheme.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport CsvExporter from '../exporters/csvExporter';\nimport { ExporterEntry } from '../exporters/exporter';\nimport { PartialTableTheme } from '../types';\n\nexport interface TableSettingsContextType {\n theme: PartialTableTheme;\n exporters: ExporterEntry[];\n}\n\nexport const TableSettingsContext = createContext<TableSettingsContextType>({\n theme: {},\n exporters: [\n { action: 'copy', exporter: new CsvExporter() },\n { action: 'download', exporter: new CsvExporter() },\n ],\n});\n\nexport function TableSettingsProvider({\n theme,\n exporters,\n additionalExporters,\n children,\n}: Partial<TableSettingsContextType> & {\n additionalExporters?: ExporterEntry[];\n children?: ReactNode;\n}) {\n const inherited = useContext(TableSettingsContext);\n theme ??= inherited.theme;\n exporters ??= inherited.exporters;\n\n if (additionalExporters) {\n exporters = [...exporters, ...additionalExporters];\n }\n\n return (\n <TableSettingsContext.Provider\n value={{\n theme,\n exporters,\n }}\n >\n {children}\n </TableSettingsContext.Provider>\n );\n}\n","export function throttle<Args extends any[]>(\n function_: (...args: Args) => void,\n ms: number,\n): { (...args: Args): void; flush(): void; cancel(): void } {\n let last = 0;\n let lastArgs: Args | undefined;\n let timeout: ReturnType<typeof setTimeout> | undefined;\n\n function run() {\n const args = lastArgs;\n\n last = Date.now();\n lastArgs = undefined;\n timeout = undefined;\n\n function_(...args!);\n }\n\n return Object.assign(\n function (...args: Args) {\n const now = Date.now();\n lastArgs = args;\n\n if (timeout) {\n // do nothing\n } else if (now < last + ms) {\n timeout = setTimeout(run, last + ms - now);\n } else {\n run();\n }\n },\n {\n flush() {\n if (lastArgs) {\n run();\n }\n },\n\n cancel() {\n if (timeout) {\n clearTimeout(timeout);\n }\n },\n },\n );\n}\n","import { css } from '@emotion/react';\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 var(--table-border-light-color)',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n minHeight: 5,\n\n '&:empty': {\n padding: 0,\n },\n});\n\nexport const defaultClasses = {\n table: css({\n position: 'relative',\n display: 'grid',\n color: 'var(--table-text-color)',\n }),\n\n cell,\n\n cellFill: css({\n borderBottom: '1px solid var(--table-border-light-color)',\n }),\n\n headerCell: css(cell, {\n borderBottom: '1px solid var(--table-border-color)',\n background: 'var(--table-background-color)',\n\n '&:not(:empty)': {\n padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,\n },\n }),\n\n footerCell: css(cell, {\n padding: `var(--spacing) calc(2 * var(--spacing))`,\n borderTop: '1px solid var(--table-border-color)',\n borderBottom: 'none',\n background: 'var(--table-background-color)',\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 var(--table-border-color)',\n background: 'var(--table-background-color)',\n }),\n\n footerFill: css({\n borderTop: '1px solid var(--table-border-color)',\n background: 'var(--table-background-color)',\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: 'var(--table-background-color)',\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 details: css(cell, {\n gridColumn: '1 / -1',\n whiteSpace: 'normal',\n }),\n};\n","import { useLayoutEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { throttle } from '../../misc/throttle';\nimport type { TableTheme } from '../../types';\nimport { defaultClasses } from './defaultClasses';\n\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 probe = useRef<HTMLDivElement>(null);\n const backdrop = useRef<HTMLDivElement>(null);\n const popper = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n if (!open) {\n return;\n }\n\n function check() {\n const marginLeft = parseFloat(getComputedStyle(popper.current ?? document.body).marginLeft);\n const marginRight = parseFloat(getComputedStyle(popper.current ?? document.body).marginRight);\n const marginTop = parseFloat(getComputedStyle(popper.current ?? document.body).marginTop);\n const marginBottom = parseFloat(\n getComputedStyle(popper.current ?? document.body).marginBottom,\n );\n popper.current?.style.setProperty('--margin-x', `${marginLeft + marginRight}px`);\n popper.current?.style.setProperty('--margin-y', `${marginTop + marginBottom}px`);\n\n if (hidden) {\n popper.current?.style.setProperty('visibility', 'hidden');\n return;\n }\n\n const viewportWidth = window.visualViewport?.width ?? window.innerWidth;\n const viewportHeight = window.visualViewport?.height ?? window.innerHeight;\n const { width: popperWidth = 0, height: popperHeight = 0 } =\n popper.current?.getBoundingClientRect() ?? {};\n\n const next = {\n left: 0,\n top: 0,\n };\n\n if (anchorEl) {\n const bb = anchorEl.getBoundingClientRect();\n\n if (align === 'center') {\n next.left = bb.left + bb.width / 2 - popperWidth / 2;\n } else {\n next.left =\n bb.left -\n Math.min(popperWidth ? popperWidth / 2 : Number.POSITIVE_INFINITY, MAX_OFFSET);\n }\n\n next.top = bb.bottom;\n } else {\n next.left = (viewportWidth - popperWidth) / 2;\n next.top = (viewportHeight - popperHeight) / 2;\n }\n\n if (next.left > viewportWidth - popperWidth - marginLeft - marginRight) {\n next.left = viewportWidth - popperWidth - marginLeft - marginRight;\n }\n if (next.left < marginLeft) {\n next.left = marginLeft;\n }\n if (next.top > viewportHeight - popperHeight - marginTop - marginBottom) {\n next.top = viewportHeight - popperHeight - marginTop - marginBottom;\n }\n if (next.top < marginTop) {\n next.top = marginTop;\n }\n\n popper.current?.style.setProperty('left', `${next.left}px`);\n popper.current?.style.setProperty('top', `${next.top}px`);\n popper.current?.style.setProperty('visibility', 'visible');\n }\n const checkThrottled = throttle(check, 16);\n check();\n\n const handle = setInterval(checkThrottled, 1000);\n window.addEventListener('resize', checkThrottled);\n window.addEventListener('scroll', checkThrottled, true);\n\n return () => {\n clearInterval(handle);\n window.removeEventListener('resize', checkThrottled);\n window.removeEventListener('scroll', checkThrottled, true);\n };\n }, [anchorEl, open, hidden, align]);\n\n useLayoutEffect(() => {\n if (!open) return;\n\n const ancestors = [];\n for (let node = probe.current?.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 const newZIndex = Number(value) + 1;\n\n if (\n backdrop.current &&\n !(\n Number(\n document.defaultView?.getComputedStyle(backdrop.current).getPropertyValue('z-index'),\n ) > newZIndex\n )\n ) {\n backdrop.current?.style.setProperty('z-index', newZIndex.toString());\n }\n\n if (\n popper.current &&\n !(\n Number(\n document.defaultView?.getComputedStyle(popper.current).getPropertyValue('z-index'),\n ) >\n newZIndex + 1\n )\n ) {\n popper.current?.style.setProperty('z-index', (newZIndex + 1).toString());\n }\n return;\n }\n }\n }, [anchorEl, open]);\n\n if (!open) return null;\n\n return (\n <>\n <div\n ref={probe}\n css={{\n display: 'none',\n }}\n />\n\n {createPortal(\n <>\n <div\n ref={backdrop}\n className={backdropClassName}\n css={[\n {\n position: 'fixed',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\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 width: 'max-content',\n maxWidth: [\n `calc(100vw - (100vw - 100%) - var(--margin-x))`,\n `calc(100dvw - (100dvw - 100%) - var(--margin-x))`,\n ],\n maxHeight: [\n `calc(100vh - (100vh - 100%) - var(--margin-x))`,\n `calc(100dvh - (100dvh - 100%) - var(--margin-x))`,\n ],\n margin: 10,\n zIndex: 1,\n overflowY: 'auto',\n color: 'var(--table-text-color)',\n visibility: 'hidden',\n },\n hidden && { display: 'none' },\n ]}\n >\n {children}\n </div>\n </>,\n document.body,\n )}\n </>\n );\n};\n","import type { PartialTableTheme } from '../types';\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 blocked: Object.assign({}, ...themes.map((theme) => theme.colors?.blocked)),\n background: themes\n .map((theme) => theme.colors?.background)\n .reverse()\n .find((x) => x !== undefined),\n text: themes\n .map((theme) => theme.colors?.text)\n .reverse()\n .find((x) => x !== undefined),\n border: themes\n .map((theme) => theme.colors?.border)\n .reverse()\n .find((x) => x !== undefined),\n borderLight: themes\n .map((theme) => theme.colors?.borderLight)\n .reverse()\n .find((x) => x !== undefined),\n },\n spacing: themes\n .map((theme) => theme.spacing)\n .reverse()\n .find((x) => x !== undefined),\n };\n}\n"],"mappings":"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"}
|