From ee665f03c168a9d1eb0d987ce7271c261532fc17 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Thu, 4 Jan 2024 16:02:03 +0000 Subject: [PATCH] Remove `postcss-nested` --- package.json | 1 - rollup.config.js | 2 - src/index.ts | 2 + src/style/core.ts | 105 ++++++++++++++++++------------------------- src/style/layers.css | 16 +++++++ vite.config.ts | 6 --- 6 files changed, 62 insertions(+), 70 deletions(-) create mode 100644 src/style/layers.css diff --git a/package.json b/package.json index 46a958563a..d4f86c0f61 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,6 @@ "jspdf-autotable": "^3.5.23", "lodash-es": "^4.17.21", "postcss": "^8.4.25", - "postcss-nested": "^6.0.1", "prettier": "3.1.1", "react": "^18.1.0", "react-dnd": "^16.0.1", diff --git a/rollup.config.js b/rollup.config.js index 89ff4d300f..243cacd0a8 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,7 +1,6 @@ import { isAbsolute } from 'node:path'; import wyw from '@wyw-in-js/rollup'; import postcss from 'rollup-plugin-postcss'; -import postcssNested from 'postcss-nested'; import { babel } from '@rollup/plugin-babel'; import nodeResolve from '@rollup/plugin-node-resolve'; import pkg from './package.json' assert { type: 'json' }; @@ -35,7 +34,6 @@ export default { } }), postcss({ - plugins: [postcssNested], extract: 'styles.css' }), babel({ diff --git a/src/index.ts b/src/index.ts index fc4cbc7b28..270d71def0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,5 @@ +import './style/layers.css'; + export { default, type DataGridProps, type DataGridHandle } from './DataGrid'; export { default as TreeDataGrid, type TreeDataGridProps } from './TreeDataGrid'; export { DataGridDefaultRenderersProvider } from './DataGridDefaultRenderersProvider'; diff --git a/src/style/core.ts b/src/style/core.ts index 89e566c609..f560974ec9 100644 --- a/src/style/core.ts +++ b/src/style/core.ts @@ -37,72 +37,55 @@ const darkTheme = ` `; const root = css` - @layer rdg { - @layer Defaults, - FocusSink, - CheckboxInput, - CheckboxIcon, - CheckboxLabel, - Cell, - HeaderCell, - SummaryCell, - EditCell, - Row, - HeaderRow, - SummaryRow, - GroupedRow, - Root; - - @layer Defaults { - *, - *::before, - *::after { - box-sizing: inherit; - } + @layer rdg.Defaults { + *, + *::before, + *::after { + box-sizing: inherit; } + } - @layer Root { - ${lightTheme} - --rdg-selection-color: #66afe9; - --rdg-font-size: 14px; - - display: grid; - - color-scheme: var(--rdg-color-scheme, light dark); - - /* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context */ - /* We set a stacking context so internal elements don't render on top of external elements. */ - /* size containment is not used as it could break "width: min-content" for example, and the grid would infinitely resize on Chromium browsers */ - contain: content; - content-visibility: auto; - block-size: 350px; - border: 1px solid var(--rdg-border-color); - box-sizing: border-box; - overflow: auto; - background-color: var(--rdg-background-color); - color: var(--rdg-color); - font-size: var(--rdg-font-size); - - /* needed on Firefox to fix scrollbars */ - &::before { - content: ''; - grid-column: 1/-1; - grid-row: 1/-1; - } + @layer rdg.Root { + ${lightTheme} + --rdg-selection-color: #66afe9; + --rdg-font-size: 14px; + + display: grid; + + color-scheme: var(--rdg-color-scheme, light dark); + + /* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context */ + /* We set a stacking context so internal elements don't render on top of external elements. */ + /* size containment is not used as it could break "width: min-content" for example, and the grid would infinitely resize on Chromium browsers */ + contain: content; + content-visibility: auto; + block-size: 350px; + border: 1px solid var(--rdg-border-color); + box-sizing: border-box; + overflow: auto; + background-color: var(--rdg-background-color); + color: var(--rdg-color); + font-size: var(--rdg-font-size); + + /* needed on Firefox to fix scrollbars */ + &::before { + content: ''; + grid-column: 1/-1; + grid-row: 1/-1; + } - &.rdg-dark { - --rdg-color-scheme: dark; - ${darkTheme} - } + &.rdg-dark { + --rdg-color-scheme: dark; + ${darkTheme} + } - &.rdg-light { - --rdg-color-scheme: light; - } + &.rdg-light { + --rdg-color-scheme: light; + } - @media (prefers-color-scheme: dark) { - &:not(.rdg-light) { - ${darkTheme} - } + @media (prefers-color-scheme: dark) { + &:not(.rdg-light) { + ${darkTheme} } } } diff --git a/src/style/layers.css b/src/style/layers.css new file mode 100644 index 0000000000..d7059d54aa --- /dev/null +++ b/src/style/layers.css @@ -0,0 +1,16 @@ +@layer rdg { + @layer Defaults, + FocusSink, + CheckboxInput, + CheckboxIcon, + CheckboxLabel, + Cell, + HeaderCell, + SummaryCell, + EditCell, + Row, + HeaderRow, + SummaryRow, + GroupedRow, + Root; +} diff --git a/vite.config.ts b/vite.config.ts index be76c8ed7e..a1ae2b5047 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,5 @@ import react from '@vitejs/plugin-react'; import wyw from '@wyw-in-js/vite'; -import postcssNested from 'postcss-nested'; import { defineConfig } from 'vite'; const isCI = process.env.CI === 'true'; @@ -27,11 +26,6 @@ export default defineConfig({ }), !isTest && wyw({ preprocessor: 'none' }) ], - css: { - postcss: { - plugins: [postcssNested] - } - }, server: { open: true },