diff --git a/CLAUDE.md b/CLAUDE.md index cfdf9e1c..9f627bb0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -42,7 +42,7 @@ The modernization roadmap (React 17/18 upgrade, `semantic-ui-react` exit, projec ### Internal layering and imports -All internal imports use **relative paths** — there are no `ui-*-pack` webpack aliases (the only resolve aliases are `theme.config` for semantic-ui-less theming and `process`). The historical "pack" names survive as directory layers: +All internal imports use **relative paths** — there are no `ui-*-pack` webpack aliases (the only resolve alias left is `process`; the three `theme.config` aliases went with `semantic-ui-less` at §9.7-F1 step 4). The historical "pack" names survive as directory layers: | Layer (historical name) | Path | |---|---| @@ -77,10 +77,10 @@ Examples live in `src/demo/examples/` (e.g., `example_meta.json` / `example_data ## Tech Stack -- React 16 (peer dependency); no `semantic-ui-react` in `src` — the components are in-house (§9.7-F1). The `semantic-ui-less` STYLES are still loaded until step 4, so components emit Semantic's class tokens on purpose. +- React 16 (peer dependency). **No Semantic UI at all**: the components went in-house at §9.7-F1 steps 1-3 and the CSS at step 4, where the two modules still in use were compiled into `src/style/vendor/` and the package removed. Components still emit Semantic's class tokens (`ui selection dropdown`, `ui table`) because the vendored CSS selects on them. - react-final-form for form state management - moment for dates (peer dependency, externalized); charts are custom SVG (`src/core/components/charts/` — no recharts) -- LESS for styling, compiled via webpack (entry: `src/style/index.less`). Semantic UI theme overrides at `src/style/override/`. PostCSS prefixwrap scopes all CSS under `.ui-render`. Less is pinned to 3.x (semantic-ui-less inline-JS + `less-plugin-functions` toolchain — see `docs/UPGRADE-PLAN.md` §9.8 before changing). +- LESS for styling, compiled via webpack (entry: `src/style/index.less`). Semantic UI theme overrides at `src/style/override/`. PostCSS prefixwrap scopes all CSS under `.ui-render`. Less is pinned to 3.x, and after step 4 both reasons are OURS rather than Semantic's (measured): `javascriptEnabled` is required by `_variables.less:23`, a `` `Math.random()` `` cache-buster, and `less-plugin-functions` by `round()` at `_variables.less:264`. See `docs/UPGRADE-PLAN.md` §9.8 before changing. - Node.js v24 (see `.nvmrc`) - ESLint with `react-app` config (configured in package.json). `lint:js` runs with `--max-warnings 0`, so a new warning fails CI — fix it, or suppress it with a comment stating why the rule is wrong. Never blanket-disable: one tolerated warning here turned out to be a real crash (see `docs/UPGRADE-PLAN.md` §11 R18). - Babel config lives only in `babel.config.js` and is shared by the library build, the demo build and jest. Do not add `presets` to a `babel-loader` `options` block: a loader-level entry **replaces** the shared one for the same plugin identifier, silently dropping the shared options. Only demo-specific dev transforms (`react-refresh/babel`) belong inline. @@ -89,6 +89,6 @@ Examples live in `src/demo/examples/` (e.g., `example_meta.json` / `example_data ## Gotchas -- `npm run build-css` copies `src/style/override/theme.config` into `node_modules/semantic-ui-less/` before compiling (mutates `node_modules`); output goes to `public/static/ui-render.built.css`. **`src/style/__tests__/setup.js` makes the same copy**, so an ordinary `npx jest` mutates `node_modules` too — which used to matter more than it looks: the webpack builds depended on that copy existing, because `theme.config` is aliased to our own file and its `@import "theme.less"` resolves relative to the importing file, where no `theme.less` exists. `verify` passed only because `test:coverage` runs before `build`; a job going straight from `npm ci` to a build failed. Fixed 2026-09-02 by giving less-loader `paths` in both webpack configs, so a build no longer needs the copy — but the test-time mutation is still there. +- `npm run build-css` compiles `src/style/index.less` to `public/static/ui-render.built.css`. **It no longer mutates `node_modules`,** and neither does `npx jest`: both used to copy `theme.config` into `node_modules/semantic-ui-less/` because Semantic's definitions import it from inside their own package. §9.7-F1 step 4 removed the package, so the copy, the shared helper that made it and the three webpack `theme.config` aliases are all gone. The jest `setupFiles` entry survives as a documented no-op. - Jest has no path-alias mapping (`jest.config.js`) — only relative imports resolve in tests. - `isFunction()` from core utils rejects cross-realm functions such as `jest.fn()` — use plain functions in tests. diff --git a/docs/UPGRADE-PLAN.md b/docs/UPGRADE-PLAN.md index af611015..9b174cca 100644 --- a/docs/UPGRADE-PLAN.md +++ b/docs/UPGRADE-PLAN.md @@ -815,7 +815,17 @@ The wrappers' external APIs are the contract; `mapper.js` and meta authors never **AND ONE TRAP IN THE GATE ITSELF, worth recording because it looked exactly like a product bug.** Two separate false alarms came from the measurement, not the CSS. The generator detects live imports by line shape; it did not recognise `@import (multiple) "..."`, so the baseline compile kept our overrides while the full compile also had them — 47 rules subtracted themselves away and the gate reported them MISSING FROM THE OUTPUT when they were only missing from the MEASUREMENT. Earlier, two of the four apparent "duplicates" turned out to occur twice on master as well; chasing them cost real time. A gate that measures by difference needs its difference to be exact, and both lessons are now comments in `generate-semantic-css-fixture.js`. - What remains of step 4: deleting `semantic-ui-less` and its `theme.config` machinery — three webpack aliases (the plan names two; `webpack.watch.config.mjs` is the third), the `node_modules` copy in `scripts/install-theme-config.js` and its three call sites, and the now-unreferenced `override/` tree. + **THE DEPENDENCY IS GONE — STEP 4 COMPLETE (2026-09-15).** `semantic-ui-less` is out of `devDependencies` and out of `package-lock.json`, and the published `static/all.css` still has the SAME sha256 (`dcdb0a40…`) it had before any of step 4 — the whole exit is invisible to a consumer's rendering. + + What went with it: **three** webpack `theme.config` aliases (this plan named two — `webpack.watch.config.mjs` was the third), the `node_modules` `lessOptions.paths` entries in the demo and library configs, `scripts/install-theme-config.js` and its three call sites, and **89 of the 97 files** under `src/style/override/`. + + **The deletion was decided by the import graph, not by reading.** `less.render` reports the files it actually read; run against `index.less` it showed 0 `semantic-ui-less` files and only 4 live files under `override/`. Eight are kept: those four plus the four inputs the vendoring compile reads (`globals/reset.variables`, `globals/site.variables`, `modules/dropdown.variables`, `theme.config`) — kept deliberately so `scripts/vendor-semantic-css.js`'s stated recipe (`npm i --no-save semantic-ui-less@2.5.0 && node scripts/…`) remains TRUE rather than becoming a note about git history. Vendored third-party code without a reproducible derivation is a dead end. + + **`npx jest` no longer mutates `node_modules`** — the gotcha CLAUDE.md carried for months. The jest `setupFiles` entry survives as a documented no-op. + + **The LESS 3 pin does NOT dissolve with the package**, which this plan predicted it would (R8, §9.8). Both anchors turn out to be ours, measured: `javascriptEnabled` is required by `_variables.less:23` and `less-plugin-functions` by `round()` at `_variables.less:264`. Unpinning LESS is separate work with two named targets. + + One thing CI caught that a local check had missed: `lint:css` globs `src/style/**/*.less`, so the vendored files entered it and reported 2,295 violations of conventions upstream never followed. `.stylelintignore` excludes `src/style/vendor/` — generated third-party CSS is not where style decisions are made. The local check had been `npm run lint:css | tail -1`, which shows output and hides the exit code; gates are verified by exit code now. - **Step 5 — cleanup + release.** The `semantic-ui-react` dependency is already gone (Step 3½); this step drops `semantic-ui-less`, finishes changelog + supported-prop documentation, and records the bundle delta (−30 KB+ per the source's own estimates: 27 KB Dropdown + 4 KB Table + Popup). **SEMVER — DECIDED (2026-09-11): this ships as a MINOR.** The maintainers' call, and it is recorded here so the earlier reasoning is not mistaken for the decision. What the plan said before: Step 0 found no unsupported passthrough props in the wild, so on that evidence a minor — with the tier-2 decision as what could turn it major, since dropping a published propType is breaking even when nothing observed uses it. Steps 2 and 3 then did drop published propTypes (19 tooltip names, and `search`/`multiple`/`allowAdditions` with their companions), and the analysis in those steps argued for a major on that basis. The owners weighed it against the evidence that nothing in either corpus or the consumer-only record declares any of them, and chose minor. `docs/SUPPORTED-PROPS.md` still carries the full `Dropped` inventory per component, which is where a consumer looks regardless of the version number. diff --git a/package-lock.json b/package-lock.json index af39dfd9..40d967d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "eis-ui-render", "version": "0.34.3", - "license": "Apache 2.0", + "license": "Apache-2.0", "dependencies": { "final-form": "^4.20.9", "final-form-arrays": "^3.1.0", @@ -66,7 +66,6 @@ "react-types-17": "npm:@types/react@17.0.93", "remark-gfm": "^3.0.1", "remark-toc": "^9.0.0", - "semantic-ui-less": "2.5.0", "serve": "^14.2.4", "style-loader": "^3.3.4", "stylelint": "^16.2.1", @@ -12890,13 +12889,6 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/jquery": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-4.0.0.tgz", - "integrity": "sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==", - "dev": true, - "license": "MIT" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -17588,16 +17580,6 @@ "node": ">=18" } }, - "node_modules/semantic-ui-less": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/semantic-ui-less/-/semantic-ui-less-2.5.0.tgz", - "integrity": "sha512-Nlp8iR0otCQB74Yqob2Dxpsm5H9YAp3NvQ3sWDediwFjrd/l3Leu9md2O82UU5n5hOSqu95xnTok55eIAhlTjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "jquery": "x.*" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", diff --git a/package.json b/package.json index aad48cd4..39c3df9e 100644 --- a/package.json +++ b/package.json @@ -157,7 +157,6 @@ "react-types-17": "npm:@types/react@17.0.93", "remark-gfm": "^3.0.1", "remark-toc": "^9.0.0", - "semantic-ui-less": "2.5.0", "serve": "^14.2.4", "style-loader": "^3.3.4", "stylelint": "^16.2.1", diff --git a/scripts/build-css.js b/scripts/build-css.js index 42aec2f7..8be378ef 100644 --- a/scripts/build-css.js +++ b/scripts/build-css.js @@ -9,9 +9,7 @@ const ROOT = path.resolve(__dirname, '..'); const STYLE_DIR = path.join(ROOT, 'src/style'); const OUT_DIR = path.join(ROOT, 'public/static'); -// Was a local `copyFileSync` pair; shared with `src/style/__tests__/setup.js` and the CSS fixture -// generator since 2026-09-14, which is also where the reasoning lives. -const { installThemeConfig: setupSemanticThemeConfig } = require('./install-theme-config.js'); + async function compileLess(entryFile) { const source = fs.readFileSync(entryFile, 'utf8'); @@ -55,7 +53,6 @@ async function buildFile(entryFile, outFile, { prefix = false } = {}) { async function main() { console.log('Building CSS...'); - setupSemanticThemeConfig(); // Compile all styles (including Semantic UI) with .ui-render prefix await buildFile( diff --git a/scripts/generate-semantic-css-fixture.js b/scripts/generate-semantic-css-fixture.js index c9a06c96..4d5c61d0 100644 --- a/scripts/generate-semantic-css-fixture.js +++ b/scripts/generate-semantic-css-fixture.js @@ -29,7 +29,6 @@ const path = require('path'); const less = require('less'); const postcss = require('postcss'); const LessPluginFunctions = require('less-plugin-functions'); -const { installThemeConfig } = require('./install-theme-config.js'); const ROOT = path.resolve(__dirname, '..'); const STYLE_DIR = path.join(ROOT, 'src/style'); @@ -56,13 +55,6 @@ const WRITE_COMMAND = 'npm run css:fixture'; const LIVE_IMPORT = /^\s*&\s*\{\s*@import\s+(?:\([^)]*\)\s*)?"/; async function compile (semanticSource) { - // REQUIRED, and its absence is what made this script pass locally and fail on CI: Semantic's - // definitions import `'../../theme.config'` from inside their own package, which ships only - // `theme.config.example`. Locally a prior `npx jest` had already placed ours through the same - // helper; on a clean checkout nothing had, and the compile died with - // `'../../theme.config' wasn't found`. - installThemeConfig(); - const original = fs.readFileSync(SEMANTIC, 'utf8'); if (semanticSource !== null) fs.writeFileSync(SEMANTIC, semanticSource); try { diff --git a/scripts/install-theme-config.js b/scripts/install-theme-config.js deleted file mode 100644 index f373c2ae..00000000 --- a/scripts/install-theme-config.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Puts `src/style/override/theme.config` where `semantic-ui-less` looks for it. - * - * WHY THIS MUTATES `node_modules`, which is otherwise a thing to avoid. Semantic's definition files - * each open with `@import (multiple) '../../theme.config'`, resolved relative to their own location - * inside the package — and the package ships only `theme.config.example`. The webpack builds alias - * the specifier to our file, but anything compiling the LESS directly (jest, `build-css`, the CSS - * fixture generator) has no alias, so the file has to exist at that path or the compile dies with - * `'../../theme.config' wasn't found`. - * - * WHY IT IS SHARED. There were two copies of this — `scripts/build-css.js` and - * `src/style/__tests__/setup.js` — with different implementations, and a third was about to be - * written for `generate-semantic-css-fixture.js`. The fixture generator is what exposed the cost: - * it passed locally because a prior `npx jest` run had already made the copy, and failed on CI's - * clean checkout where nothing had. One implementation, called by all three, is both less code and - * the only version that cannot rot in one place while working in another. - * - * THE MECHANICS, kept from the hardened `setup.js` version: - * 1. Do nothing when the destination is already correct. That is the common case after the first - * call, so most runs perform no write at all and cannot race. - * 2. When a write IS needed, write a process-unique temp file next to the destination and - * `rename` it into place. Rename within one filesystem is atomic, so a concurrent reader — a - * sibling jest worker compiling LESS — sees either the complete old file or the complete new - * one, never a half-written one. - */ -const fs = require('fs'); -const path = require('path'); - -const ROOT = path.resolve(__dirname, '..'); -const SOURCE = path.join(ROOT, 'src/style/override/theme.config'); -const DESTINATION = path.join(ROOT, 'node_modules/semantic-ui-less/theme.config'); - -/** Returns 'written' | 'already-current' | 'no-source'. Never throws for a missing source. */ -function installThemeConfig () { - if (!fs.existsSync(SOURCE)) return 'no-source'; - - const wanted = fs.readFileSync(SOURCE); - let current = null; - try { - current = fs.readFileSync(DESTINATION); - } catch (error) { - // Absent is expected once per clean checkout. - } - if (current !== null && current.equals(wanted)) return 'already-current'; - - const temporary = `${DESTINATION}.${process.pid}.tmp`; - fs.writeFileSync(temporary, wanted); - fs.renameSync(temporary, DESTINATION); - return 'written'; -} - -module.exports = { installThemeConfig, SOURCE, DESTINATION }; diff --git a/scripts/vendor-semantic-css.js b/scripts/vendor-semantic-css.js index 8c1fb343..b61c22f4 100644 --- a/scripts/vendor-semantic-css.js +++ b/scripts/vendor-semantic-css.js @@ -2,6 +2,17 @@ * ONE-SHOT GENERATOR for §9.7-F1 step 4's second half: writes the CSS this repository takes over * from `semantic-ui-less` into `src/style/vendor/`. * + * IT CANNOT RUN AS THE REPOSITORY STANDS, and that is deliberate rather than an oversight. The + * final commit of step 4 removed `semantic-ui-less` from `devDependencies`, so re-deriving the + * vendored files means installing it again first: + * + * npm i --no-save semantic-ui-less@2.5.0 && node scripts/vendor-semantic-css.js + * + * It is kept because vendored third-party code without a reproducible derivation is a dead end: + * the next person who needs an upstream fix, or who doubts a value in `src/style/vendor/`, can + * reproduce the files exactly instead of editing them by hand. The parity gate + * (`css.semantic-parity.test.js`) tells them whether what they produced matches what ships. + * * WHY THE ISOLATED COMPILE, AND NOT A SUBTRACTION FROM THE FULL BUILD. Subtraction is the obvious * method and it is wrong here, for a reason worth stating because it is not obvious until it bites. * Our own LESS extends Semantic's selectors (`input.less` does `&:extend(.input-tag all)` and @@ -49,7 +60,24 @@ const fs = require('fs'); const path = require('path'); const less = require('less'); const LessPluginFunctions = require('less-plugin-functions'); -const { installThemeConfig } = require('./install-theme-config.js'); +/** + * Puts our `theme.config` where `semantic-ui-less` looks for it. Inlined here when the shared + * helper was deleted with the rest of the `node_modules` mutation machinery: this script is now the + * ONLY thing that needs it, and only while re-deriving the vendored files against a temporarily + * reinstalled package. Nothing in the build or the test run writes to `node_modules` any more. + */ +function installThemeConfig () { + const source = path.join(__dirname, '../src/style/override/theme.config'); + const destination = path.join(__dirname, '../node_modules/semantic-ui-less/theme.config'); + if (!fs.existsSync(source)) return; + const wanted = fs.readFileSync(source); + let current = null; + try { current = fs.readFileSync(destination); } catch (error) { /* absent on a fresh install */ } + if (current !== null && current.equals(wanted)) return; + const temporary = `${destination}.${process.pid}.tmp`; + fs.writeFileSync(temporary, wanted); + fs.renameSync(temporary, destination); +} const OUR_OVERRIDE_DIR = path.join(__dirname, '../src/style/override'); diff --git a/src/demo/markdowns/changelog.md b/src/demo/markdowns/changelog.md index 3298e142..24baf041 100644 --- a/src/demo/markdowns/changelog.md +++ b/src/demo/markdowns/changelog.md @@ -114,6 +114,21 @@ #### Dependencies +- **Semantic UI is gone entirely — and nothing about how anything looks has changed.** The last + piece was the stylesheet: two Semantic CSS modules were still being compiled from + `semantic-ui-less` at build time. Their output now lives in this repository, and the package is + removed. + + The evidence that this is invisible to you is the strongest kind available: the published + `static/all.css` is **byte-for-byte identical** — same SHA-256 — before and after. Not "looks the + same"; the same file. + + What this means in practice: installing this library no longer pulls Semantic UI in any form, + and the LESS toolchain no longer writes into your `node_modules` during a build or a test run. + Attribution for the vendored CSS is in `THIRD-PARTY-NOTICES.md`, which ships with the package. + + + - **`semantic-ui-react` is no longer a dependency.** Installing this package used to install Semantic UI React with it — a full copy that the bundle stopped using once `Table`, `Tooltip` and `Select`/`Dropdown` were reimplemented in-house. It is gone from `dependencies`, so it is diff --git a/src/style/__tests__/css.dropdown-contract.test.js b/src/style/__tests__/css.dropdown-contract.test.js index fc8e55f6..842f7a41 100644 --- a/src/style/__tests__/css.dropdown-contract.test.js +++ b/src/style/__tests__/css.dropdown-contract.test.js @@ -99,7 +99,6 @@ const scopedRuleCount = node => rules.filter(rule => { beforeAll(async () => { // The same LESS invocation as `css.tooltip-contract.test.js`; `setup.js` (a global - // `setupFiles` entry) has already placed `theme.config` for semantic-ui-less. const compiled = await less.render(fs.readFileSync(ENTRY, 'utf8'), { filename: ENTRY, paths: [STYLE_DIR], diff --git a/src/style/__tests__/css.pipeline.parity.test.js b/src/style/__tests__/css.pipeline.parity.test.js index 92879a64..b73372d3 100644 --- a/src/style/__tests__/css.pipeline.parity.test.js +++ b/src/style/__tests__/css.pipeline.parity.test.js @@ -232,7 +232,6 @@ let standaloneCss; beforeAll(async () => { // Same LESS invocation `scripts/build-css.js` uses. `src/style/__tests__/setup.js` (a global - // `setupFiles` entry) has already placed `theme.config` where semantic-ui-less expects it. const result = await less.render(fs.readFileSync(ENTRY, 'utf8'), { filename: ENTRY, paths: [STYLE_DIR], diff --git a/src/style/__tests__/css.tooltip-contract.test.js b/src/style/__tests__/css.tooltip-contract.test.js index 837edc58..4797d814 100644 --- a/src/style/__tests__/css.tooltip-contract.test.js +++ b/src/style/__tests__/css.tooltip-contract.test.js @@ -292,7 +292,6 @@ const scopedMatching = node => matching(node) beforeAll(async () => { // Same LESS invocation as `css.pipeline.parity.test.js`; `setup.js` (a global - // `setupFiles` entry) has already placed `theme.config` for semantic-ui-less. const compiled = await less.render(fs.readFileSync(ENTRY, 'utf8'), { filename: ENTRY, paths: [STYLE_DIR], diff --git a/src/style/__tests__/setup.js b/src/style/__tests__/setup.js index 70c1e3bb..cde35527 100644 --- a/src/style/__tests__/setup.js +++ b/src/style/__tests__/setup.js @@ -1,17 +1,16 @@ /** - * Jest `setupFiles` entry: put `theme.config` where `semantic-ui-less` looks for it, so the CSS - * suites can compile the real LESS. + * Jest `setupFiles` entry — now a deliberate no-op, kept rather than deleted. * - * The mechanics and the reasoning now live in `scripts/install-theme-config.js`, shared with - * `scripts/build-css.js` and `scripts/generate-semantic-css-fixture.js`. There used to be two - * implementations of this copy and a third was about to be written; the fixture generator is what - * exposed the cost, by passing locally — where a prior jest run had already made the copy — and - * failing on CI's clean checkout, where nothing had. + * It used to copy `src/style/override/theme.config` into `node_modules/semantic-ui-less/`, because + * Semantic's definition files import `'../../theme.config'` from inside their own package and the + * package ships only `theme.config.example`. That made an ordinary `npx jest` MUTATE `node_modules` + * — a gotcha this repository documented in CLAUDE.md and worked around in three places. * - * What this file keeps is the note about WHERE it runs: once per jest WORKER, which is why the - * shared helper skips the write when the destination is already correct and renames a - * process-unique temp file into place when it is not. + * §9.7-F1 step 4 removed the need: the CSS those definitions produced is vendored under + * `src/style/vendor/`, nothing imports `semantic-ui-less` any more, and the package is gone from + * `devDependencies`. No test writes to `node_modules`. + * + * The file stays because `jest.config.js` names it in `setupFiles`, and an empty hook is a cheaper, + * more obvious place for the next global test-time setup than a config edit plus a new file. If + * none arrives, delete both together. */ -const { installThemeConfig } = require('../../../scripts/install-theme-config.js'); - -installThemeConfig(); diff --git a/src/style/override/_classic.less b/src/style/override/_classic.less deleted file mode 100644 index ea59bdd6..00000000 --- a/src/style/override/_classic.less +++ /dev/null @@ -1,7 +0,0 @@ -// ============================================================================= -// Main LESS CSS File for Classic UI Integration -// ============================================================================= - -@import "_semantic"; -@import "../_mixins"; -@import "../_classic_variables"; diff --git a/src/style/override/_policy.less b/src/style/override/_policy.less deleted file mode 100644 index 743332ff..00000000 --- a/src/style/override/_policy.less +++ /dev/null @@ -1,7 +0,0 @@ -// ============================================================================= -// Main LESS CSS File for App UI Integration -// ============================================================================= - -@import "_semantic"; -@import "../_mixins"; -@import "../_policy_variables"; diff --git a/src/style/override/_semantic.less b/src/style/override/_semantic.less index a2f83065..7d552efe 100644 --- a/src/style/override/_semantic.less +++ b/src/style/override/_semantic.less @@ -7,8 +7,14 @@ ███████║███████╗██║ ╚═╝ ██║██║ ██║██║ ╚████║ ██║ ██║╚██████╗ ╚██████╔╝██║ ╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ - Import this file into your LESS project to use Semantic UI without build tools - Uncomment imports to include needed CSS modules + WHAT THIS FILE IS NOW. It began as semantic-ui-less's own "import the modules you need" manifest, + a list of ~50 commented-out `@import`s reaching into `node_modules`. §9.7-F1 step 4 finished the + exit: the two modules that were still live are compiled into `src/style/vendor/`, the package is + gone from `devDependencies`, and the commented list went with it — leaving it would have offered + a menu of imports that can no longer resolve. + + What remains is the seam: the vendored CSS, each followed by OUR overrides for it. The + `(multiple)` on those imports is load-bearing, not decoration — see the note beside them. --------------------------------------------------------------------------------------------- §9.7-F1 STEP 4, FIRST HALF (2026-09-11). Three modules were dropped here, measured rather than @@ -39,65 +45,18 @@ `src/style/__tests__/css.dropdown-contract.test.js` measures what each token is worth). --------------------------------------------------------------------------------------------- */ -@libPath: "../../../node_modules/semantic-ui-less/"; -/* Global */ +/* + THE `(multiple)` IS LOAD-BEARING, and it is the form `.loadUIOverrides()` used before the exit. + With a plain `@import`, the `.outline()` mixin's nested `.inverted &` block is emitted twice and + two rules come out duplicated — measured at step 4, caught by `css.semantic-parity.test.js`. +*/ & { @import "../vendor/semantic-reset"; } & { @import (multiple) "globals/reset.overrides"; } -// & { @import "@{libPath}definitions/globals/site"; } - -/* Elements */ -// & { @import "@{libPath}definitions/elements/button"; } -// & { @import "@{libPath}definitions/elements/container"; } -// & { @import "@{libPath}definitions/elements/divider"; } -// & { @import "@{libPath}definitions/elements/flag"; } -// & { @import "@{libPath}definitions/elements/header"; } -// & { @import "@{libPath}definitions/elements/icon"; } -// & { @import "@{libPath}definitions/elements/image"; } -// & { @import "@{libPath}definitions/elements/input"; } -// & { @import "@{libPath}definitions/elements/label"; } // dropped at F1 step 4 -- the multi-select chip, and `multiple` is gone -// & { @import "@{libPath}definitions/elements/list"; } -// & { @import "@{libPath}definitions/elements/loader"; } -// & { @import "@{libPath}definitions/elements/placeholder"; } -// & { @import "@{libPath}definitions/elements/rail"; } -// & { @import "@{libPath}definitions/elements/reveal"; } -// & { @import "@{libPath}definitions/elements/segment"; } -// & { @import "@{libPath}definitions/elements/step"; } - -/* Collections */ -// & { @import "@{libPath}definitions/collections/breadcrumb"; } -// & { @import "@{libPath}definitions/collections/form"; } -// & { @import "@{libPath}definitions/collections/grid"; } -// & { @import "@{libPath}definitions/collections/menu"; } // dropped at F1 step 4 -- the "For Pagination Component" reason was false -// & { @import "@{libPath}definitions/collections/message"; } -// & { @import "@{libPath}definitions/collections/table"; } -/* Views */ -// & { @import "@{libPath}definitions/views/ad"; } -// & { @import "@{libPath}definitions/views/card"; } -// & { @import "@{libPath}definitions/views/comment"; } -// & { @import "@{libPath}definitions/views/feed"; } -// & { @import "@{libPath}definitions/views/item"; } -// & { @import "@{libPath}definitions/views/statistic"; } -/* Modules */ -// & { @import "@{libPath}definitions/modules/accordion"; } -// & { @import "@{libPath}definitions/modules/checkbox"; } -// & { @import "@{libPath}definitions/modules/dimmer"; } & { @import "../vendor/semantic-dropdown"; } & { @import (multiple) "modules/dropdown.overrides"; } -// & { @import "@{libPath}definitions/modules/embed"; } -// & { @import "@{libPath}definitions/modules/modal"; } -// & { @import "@{libPath}definitions/modules/nag"; } -// & { @import "@{libPath}definitions/modules/popup"; } // dropped at F1 step 4 -- the tooltip has been in-house since step 2 -// & { @import "@{libPath}definitions/modules/progress"; } -// & { @import "@{libPath}definitions/modules/rating"; } -// & { @import "@{libPath}definitions/modules/search"; } -// & { @import "@{libPath}definitions/modules/shape"; } -// & { @import "@{libPath}definitions/modules/sidebar"; } -// & { @import "@{libPath}definitions/modules/sticky"; } -// & { @import "@{libPath}definitions/modules/tab"; } -// & { @import "@{libPath}definitions/modules/transition"; } // transition package is 12kB, but mostly unused @import 'transition'; // replacing with our own compact version diff --git a/src/style/override/collections/breadcrumb.overrides b/src/style/override/collections/breadcrumb.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/collections/breadcrumb.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/collections/breadcrumb.variables b/src/style/override/collections/breadcrumb.variables deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/collections/breadcrumb.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/collections/form.overrides b/src/style/override/collections/form.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/collections/form.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/collections/form.variables b/src/style/override/collections/form.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/collections/form.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/collections/grid.overrides b/src/style/override/collections/grid.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/collections/grid.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/collections/grid.variables b/src/style/override/collections/grid.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/collections/grid.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/collections/menu.overrides b/src/style/override/collections/menu.overrides deleted file mode 100644 index c172e5f5..00000000 --- a/src/style/override/collections/menu.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ \ No newline at end of file diff --git a/src/style/override/collections/menu.variables b/src/style/override/collections/menu.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/collections/menu.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/collections/message.overrides b/src/style/override/collections/message.overrides deleted file mode 100644 index 96091c36..00000000 --- a/src/style/override/collections/message.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/collections/message.variables b/src/style/override/collections/message.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/collections/message.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/collections/table.overrides b/src/style/override/collections/table.overrides deleted file mode 100644 index 8054e3a5..00000000 --- a/src/style/override/collections/table.overrides +++ /dev/null @@ -1,18 +0,0 @@ -/******************************* - Site Overrides -*******************************/ -@import "../../_mixins"; -.ui.table { - margin: 0; - &.inverted { - background: @color-bg-inverse; - - thead th { - background: @color-shadow; - } - - tbody tr.expanded { - background: @color-bg-black !important; - } - } -} diff --git a/src/style/override/collections/table.variables b/src/style/override/collections/table.variables deleted file mode 100644 index e220960a..00000000 --- a/src/style/override/collections/table.variables +++ /dev/null @@ -1,5 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ -@import "../../_mixins"; -@selectableInvertedBackground: @color-bg-black; diff --git a/src/style/override/elements/button.overrides b/src/style/override/elements/button.overrides deleted file mode 100644 index 2f8e22ef..00000000 --- a/src/style/override/elements/button.overrides +++ /dev/null @@ -1,24 +0,0 @@ -/******************************* - Site Overrides -*******************************/ -@import "../../_mixins"; - -.ui.button { - margin: 0; - padding-left: 0.9em; - padding-right: 1em; - - + .ui.button { - margin-left: @margin-small; - } - - &.basic { - &.secondary { - .inverted & { - color: @color-text-inverse !important; - box-shadow: 0 0 0 1px @color-text-inverse inset !important; - } - } - // do not override other colors to use 'basic inverted color' - } -} diff --git a/src/style/override/elements/button.variables b/src/style/override/elements/button.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/button.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/container.overrides b/src/style/override/elements/container.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/container.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/container.variables b/src/style/override/elements/container.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/container.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/divider.overrides b/src/style/override/elements/divider.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/divider.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/divider.variables b/src/style/override/elements/divider.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/divider.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/flag.overrides b/src/style/override/elements/flag.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/flag.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/flag.variables b/src/style/override/elements/flag.variables deleted file mode 100644 index e3e125d6..00000000 --- a/src/style/override/elements/flag.variables +++ /dev/null @@ -1,3 +0,0 @@ -/*------------------- - Flag Variables ---------------------*/ diff --git a/src/style/override/elements/header.overrides b/src/style/override/elements/header.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/header.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/header.variables b/src/style/override/elements/header.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/header.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/icon.overrides b/src/style/override/elements/icon.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/icon.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/icon.variables b/src/style/override/elements/icon.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/icon.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/image.overrides b/src/style/override/elements/image.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/image.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/image.variables b/src/style/override/elements/image.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/image.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/input.overrides b/src/style/override/elements/input.overrides deleted file mode 100644 index 9aa50f22..00000000 --- a/src/style/override/elements/input.overrides +++ /dev/null @@ -1,12 +0,0 @@ -/******************************* - Site Overrides -*******************************/ -@import "../../_mixins"; - -input { - &:focus { - .inverted & { - border-color: @color-primary-light !important; - } - } -} diff --git a/src/style/override/elements/input.variables b/src/style/override/elements/input.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/input.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/label.overrides b/src/style/override/elements/label.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/label.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/label.variables b/src/style/override/elements/label.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/label.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/list.overrides b/src/style/override/elements/list.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/list.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/list.variables b/src/style/override/elements/list.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/list.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/loader.overrides b/src/style/override/elements/loader.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/loader.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/loader.variables b/src/style/override/elements/loader.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/loader.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/rail.overrides b/src/style/override/elements/rail.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/rail.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/rail.variables b/src/style/override/elements/rail.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/rail.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/reveal.overrides b/src/style/override/elements/reveal.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/reveal.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/reveal.variables b/src/style/override/elements/reveal.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/reveal.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/segment.overrides b/src/style/override/elements/segment.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/segment.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/segment.variables b/src/style/override/elements/segment.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/segment.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/elements/step.overrides b/src/style/override/elements/step.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/elements/step.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/elements/step.variables b/src/style/override/elements/step.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/elements/step.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/globals/site.overrides b/src/style/override/globals/site.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/globals/site.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/accordion.overrides b/src/style/override/modules/accordion.overrides deleted file mode 100644 index 660e664b..00000000 --- a/src/style/override/modules/accordion.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Overrides -*******************************/ diff --git a/src/style/override/modules/accordion.variables b/src/style/override/modules/accordion.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/accordion.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/chatroom.overrides b/src/style/override/modules/chatroom.overrides deleted file mode 100644 index 660e664b..00000000 --- a/src/style/override/modules/chatroom.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Overrides -*******************************/ diff --git a/src/style/override/modules/chatroom.variables b/src/style/override/modules/chatroom.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/chatroom.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/checkbox.overrides b/src/style/override/modules/checkbox.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/checkbox.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/checkbox.variables b/src/style/override/modules/checkbox.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/checkbox.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/dimmer.overrides b/src/style/override/modules/dimmer.overrides deleted file mode 100644 index 660e664b..00000000 --- a/src/style/override/modules/dimmer.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Overrides -*******************************/ diff --git a/src/style/override/modules/dimmer.variables b/src/style/override/modules/dimmer.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/dimmer.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/embed.overrides b/src/style/override/modules/embed.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/embed.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/embed.variables b/src/style/override/modules/embed.variables deleted file mode 100644 index e69de29b..00000000 diff --git a/src/style/override/modules/modal.overrides b/src/style/override/modules/modal.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/modal.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/modal.variables b/src/style/override/modules/modal.variables deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/modal.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/nag.overrides b/src/style/override/modules/nag.overrides deleted file mode 100644 index 660e664b..00000000 --- a/src/style/override/modules/nag.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Overrides -*******************************/ diff --git a/src/style/override/modules/nag.variables b/src/style/override/modules/nag.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/nag.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/popup.overrides b/src/style/override/modules/popup.overrides deleted file mode 100644 index 6726f12e..00000000 --- a/src/style/override/modules/popup.overrides +++ /dev/null @@ -1,24 +0,0 @@ -/******************************* - User Overrides -*******************************/ -@import "../../_mixins"; - -.ui.popup { - transition: initial; - - &.inverted { - border: @border-base; - - &.top:before { - transform: translateY(0.1rem) rotate(45deg); - border-right: @border-base; - border-bottom: @border-base; - } - - &.bottom:before { - transform: translateY(-0.1rem) rotate(45deg); - border-left: @border-base; - border-top: @border-base; - } - } -} diff --git a/src/style/override/modules/popup.variables b/src/style/override/modules/popup.variables deleted file mode 100644 index 37131a4a..00000000 --- a/src/style/override/modules/popup.variables +++ /dev/null @@ -1,11 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ -@import "../../_variables"; - -@invertedBackground: @color-gray; -@invertedColor: @color-text-inverse; -@invertedBorder: none; -@invertedBoxShadow: none; -@invertedHeaderBackground: @color-bg-black; -@invertedHeaderColor: @color-text-inverse; diff --git a/src/style/override/modules/progress.overrides b/src/style/override/modules/progress.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/progress.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/progress.variables b/src/style/override/modules/progress.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/progress.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/rating.overrides b/src/style/override/modules/rating.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/rating.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/rating.variables b/src/style/override/modules/rating.variables deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/rating.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/search.overrides b/src/style/override/modules/search.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/search.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/search.variables b/src/style/override/modules/search.variables deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/search.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/shape.overrides b/src/style/override/modules/shape.overrides deleted file mode 100644 index 660e664b..00000000 --- a/src/style/override/modules/shape.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Overrides -*******************************/ diff --git a/src/style/override/modules/shape.variables b/src/style/override/modules/shape.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/shape.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/sidebar.overrides b/src/style/override/modules/sidebar.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/sidebar.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/sidebar.variables b/src/style/override/modules/sidebar.variables deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/sidebar.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/sticky.overrides b/src/style/override/modules/sticky.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/sticky.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/sticky.variables b/src/style/override/modules/sticky.variables deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/sticky.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/tab.overrides b/src/style/override/modules/tab.overrides deleted file mode 100644 index 674a35a5..00000000 --- a/src/style/override/modules/tab.overrides +++ /dev/null @@ -1,13 +0,0 @@ -/******************************* - User Overrides -*******************************/ -@import "../../_mixins"; - -.ui.compact.menu.inverted .item:last-child { - border-radius: 0; -} - -.ui.inverted.tab { - background: @color-bg-black; - border: none; -} diff --git a/src/style/override/modules/tab.variables b/src/style/override/modules/tab.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/tab.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/modules/transition.overrides b/src/style/override/modules/transition.overrides deleted file mode 100644 index cba59efe..00000000 --- a/src/style/override/modules/transition.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - Site Overrides -*******************************/ diff --git a/src/style/override/modules/transition.variables b/src/style/override/modules/transition.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/modules/transition.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/ad.overrides b/src/style/override/views/ad.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/ad.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/ad.variables b/src/style/override/views/ad.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/ad.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/card.overrides b/src/style/override/views/card.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/card.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/card.variables b/src/style/override/views/card.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/card.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/comment.overrides b/src/style/override/views/comment.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/comment.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/comment.variables b/src/style/override/views/comment.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/comment.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/feed.overrides b/src/style/override/views/feed.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/feed.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/feed.variables b/src/style/override/views/feed.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/feed.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/item.overrides b/src/style/override/views/item.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/item.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/item.variables b/src/style/override/views/item.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/item.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/statistic.overrides b/src/style/override/views/statistic.overrides deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/statistic.overrides +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/src/style/override/views/statistic.variables b/src/style/override/views/statistic.variables deleted file mode 100644 index 6f085f93..00000000 --- a/src/style/override/views/statistic.variables +++ /dev/null @@ -1,3 +0,0 @@ -/******************************* - User Variable Overrides -*******************************/ diff --git a/webpack.demo.config.mjs b/webpack.demo.config.mjs index 2b3807fb..e6d45e1b 100644 --- a/webpack.demo.config.mjs +++ b/webpack.demo.config.mjs @@ -77,23 +77,11 @@ export default (env, argv) => { loader: 'less-loader', options: { lessOptions: { + // `javascriptEnabled` stays: it is required by our OWN + // `_variables.less:23` (a `` `Math.random()` `` cache-buster), + // not by Semantic — measured at §9.7-F1 step 4, where the plan + // claimed the opposite. javascriptEnabled: true, - // `theme.config` is aliased to our own copy in - // `src/style/override/`, and that file does - // `@import (multiple) "theme.less"` — which Less resolves - // relative to the IMPORTING file, where no `theme.less` exists. - // It only ever worked because `src/style/__tests__/setup.js` - // copies `theme.config` into `node_modules/semantic-ui-less/`, - // next to that package's own `theme.less`. So the build silently - // depended on the CSS test suite having run first: in CI the - // `verify` job happens to run `test:coverage` before `build`, - // and the new browser job — `npm ci` straight to the build — - // failed on a clean checkout. Giving Less the package directory - // makes the build self-sufficient instead. - paths: [ - path.resolve(__dirname, 'node_modules/semantic-ui-less'), - path.resolve(__dirname, 'node_modules'), - ], relativeUrls: false, plugins: [new LessPluginFunctions()], }, @@ -114,7 +102,6 @@ export default (env, argv) => { resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'], alias: { - '../../theme.config$': path.resolve(__dirname, './src/style/override/theme.config'), process: 'process/browser', }, }, diff --git a/webpack.library.config.mjs b/webpack.library.config.mjs index 5076137d..2e992aa5 100644 --- a/webpack.library.config.mjs +++ b/webpack.library.config.mjs @@ -66,23 +66,11 @@ export default { loader: 'less-loader', options: { lessOptions: { + // `javascriptEnabled` stays: it is required by our OWN + // `_variables.less:23` (a `` `Math.random()` `` cache-buster), not + // by Semantic — measured at §9.7-F1 step 4, where the plan claimed + // the opposite. javascriptEnabled: true, - // `theme.config` is aliased to our own copy in - // `src/style/override/`, and that file does - // `@import (multiple) "theme.less"` — which Less resolves - // relative to the IMPORTING file, where no `theme.less` exists. - // It only ever worked because `src/style/__tests__/setup.js` - // copies `theme.config` into `node_modules/semantic-ui-less/`, - // next to that package's own `theme.less`. So the build silently - // depended on the CSS test suite having run first: in CI the - // `verify` job happens to run `test:coverage` before `build`, - // and the new browser job — `npm ci` straight to the build — - // failed on a clean checkout. Giving Less the package directory - // makes the build self-sufficient instead. - paths: [ - path.resolve(__dirname, 'node_modules/semantic-ui-less'), - path.resolve(__dirname, 'node_modules'), - ], relativeUrls: false, plugins: [new LessPluginFunctions()], }, @@ -94,9 +82,6 @@ export default { }, resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'], - alias: { - '../../theme.config$': path.resolve(__dirname, './src/style/override/theme.config'), - }, }, optimization: { minimizer: ['...', new CssMinimizerPlugin()], diff --git a/webpack.watch.config.mjs b/webpack.watch.config.mjs index c15c6f5e..b735459f 100644 --- a/webpack.watch.config.mjs +++ b/webpack.watch.config.mjs @@ -68,7 +68,6 @@ export default { resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'], alias: { - '../../theme.config$': path.resolve(__dirname, './src/style/override/theme.config'), }, }, plugins: [