From 5660ae5670f61f097f87a53daf01737e7c4f9a89 Mon Sep 17 00:00:00 2001 From: renatoathaydes Date: Tue, 11 Aug 2026 16:18:30 +0200 Subject: [PATCH 01/17] IS-9818 Update .nvmrc to Node 24.19.0. Co-Authored-By: Claude Fable 5 --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 85e50277..60ade1ae 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.22.0 +24.19.0 From 51f4c3b25ba9d88b9ceedc74dcc737196a446535 Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 11 Aug 2026 16:55:26 +0200 Subject: [PATCH 02/17] IS-11682 Consume UI Kit CSS from source instead of the built artifact. Co-Authored-By: Claude Opus 5 --- package.json | 2 +- src/common/component-library/package.json | 2 +- src/common/css/docs/src/components/BaseHead.astro | 2 +- src/common/css/docs/src/pages/index.mdx | 2 +- .../docs/src/pages/introduction/gettingstarted.mdx | 2 +- src/common/css/lib/package.json | 1 - src/common/css/lib/readme.md | 2 +- src/common/css/package.json | 9 ++++++--- src/haapi-react-app/package.json | 9 ++++----- .../previewer/shared/styles/previewer.css | 2 +- src/haapi-react-app/src/shared/util/css/styles.css | 2 +- src/identity-server/package.json | 9 +++------ src/identity-server/styles/index.js | 2 +- src/identity-server/vite.config.ts | 12 +----------- src/self-service-portal/app/package.json | 5 ++--- src/self-service-portal/app/previewer/main.tsx | 2 +- src/self-service-portal/app/src/main.tsx | 2 +- 17 files changed, 27 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index 422c8764..2d35f199 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "src/haapi-react-app" ], "scripts": { - "prestart": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css-lib --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library --workspace @curity/ui-kit-identity-server && npm run unzip-libs --workspace @curity/ui-kit-identity-server", + "prestart": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-component-library --workspace @curity/ui-kit-identity-server && npm run unzip-libs --workspace @curity/ui-kit-identity-server", "start": "cross-env SKIP_PRESTART=1 concurrently \"npm run start:identity-server\" \"npm run start:ssp\" \"npm run start:haapi-react-app\" \"npm run start:css\" \"npm run start:component-library\" \"open index.html\"", "start:ssp": "npm run -w src/self-service-portal/app start", "start:css": "npm run -w src/common/css start", diff --git a/src/common/component-library/package.json b/src/common/component-library/package.json index 7891a187..4e11a503 100644 --- a/src/common/component-library/package.json +++ b/src/common/component-library/package.json @@ -28,7 +28,7 @@ "dev": "vite", "start": "vite", "watch": "vite build --watch", - "prebuild": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css || true", + "prebuild": "npm run build --workspace @curity/ui-kit-icons || true", "build": "npm run tsBuild && vite build", "tsBuild": "tsc -b", "tsBuild:watch": "tsc -b -w", diff --git a/src/common/css/docs/src/components/BaseHead.astro b/src/common/css/docs/src/components/BaseHead.astro index 8e2b256a..55851b81 100644 --- a/src/common/css/docs/src/components/BaseHead.astro +++ b/src/common/css/docs/src/components/BaseHead.astro @@ -1,5 +1,5 @@ --- -import "@curity/ui-kit-css-lib/dist/index.css"; +import "@curity/ui-kit-css"; import '../styles/global.css'; export interface Props { diff --git a/src/common/css/docs/src/pages/index.mdx b/src/common/css/docs/src/pages/index.mdx index f5ec0c3f..f6bb7fa4 100644 --- a/src/common/css/docs/src/pages/index.mdx +++ b/src/common/css/docs/src/pages/index.mdx @@ -14,6 +14,6 @@ import { Intro } from '@components/Intro'; ## Use in Curity UI Kit repository ```shell -import "@curity/ui-kit-css-lib/dist/index.css"; +import "@curity/ui-kit-css"; ``` diff --git a/src/common/css/docs/src/pages/introduction/gettingstarted.mdx b/src/common/css/docs/src/pages/introduction/gettingstarted.mdx index 9d5e7219..1b413064 100644 --- a/src/common/css/docs/src/pages/introduction/gettingstarted.mdx +++ b/src/common/css/docs/src/pages/introduction/gettingstarted.mdx @@ -12,5 +12,5 @@ updatedAt: "August 08 2022" In most modern JS tooling and frameworks or when using a separate bundler, you can import the CSS directly from `node_modules` like this: ```js -import "@curity/ui-kit-css-lib/dist/index.css"; +import "@curity/ui-kit-css"; ``` diff --git a/src/common/css/lib/package.json b/src/common/css/lib/package.json index 401d232c..d3bbf30e 100644 --- a/src/common/css/lib/package.json +++ b/src/common/css/lib/package.json @@ -14,7 +14,6 @@ "start": "vite", "build": "vite build", "watch": "vite build --watch", - "postwatch": "mkdir -p ../../identity-server/build/curity/webroot/assets/css && cp src/!(main|curity-application).css ../../identity-server/build/curity/webroot/assets/css/", "format": "npx prettier --write ./src/**/*.css", "preview": "vite preview", "lint": "stylelint ./src/**/**/*.css", diff --git a/src/common/css/lib/readme.md b/src/common/css/lib/readme.md index 455171ea..ff60b6fc 100644 --- a/src/common/css/lib/readme.md +++ b/src/common/css/lib/readme.md @@ -9,7 +9,7 @@ Curity CSS is a small base toolkit of base styles and utility classes. It is the Import ```js -import "@curity/ui-kit-css-lib/dist/index.css"; +import "@curity/ui-kit-css"; ``` [Read the Docs](../docs/README.md) diff --git a/src/common/css/package.json b/src/common/css/package.json index 020108e1..42ebf84a 100644 --- a/src/common/css/package.json +++ b/src/common/css/package.json @@ -5,12 +5,15 @@ "author": "Curity", "license": "Apache-2.0", "private": true, - "main": "index.js", + "exports": { + ".": "./lib/src/main.css", + "./src/*": "./lib/src/*", + "./lib/dist/index.css": "./lib/dist/index.css" + }, "scripts": { - "prestart": "test \"$SKIP_PRESTART\" = \"1\" || npm run build:lib", "start:docs": "npm start -w docs", "start:lib": "npm start -w lib", - "start": "npm-run-all -p start:docs start:lib", + "start": "npm run start:docs", "build:docs": "npm run build -w docs", "build:lib": "npm run build -w lib", "build:all": "npm-run-all -s build:lib build:docs", diff --git a/src/haapi-react-app/package.json b/src/haapi-react-app/package.json index 36d95c1f..519dd032 100644 --- a/src/haapi-react-app/package.json +++ b/src/haapi-react-app/package.json @@ -14,18 +14,17 @@ "dist" ], "scripts": { - "prestart": "test \"$SKIP_PRESTART\" = \"1\" || (npm run watch:css-lib & sleep 2 && npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library) || true", - "predev": "test \"$SKIP_PRESTART\" = \"1\" || (npm run watch:css-lib & sleep 2 && npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library) || true", + "prestart": "test \"$SKIP_PRESTART\" = \"1\" || npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-component-library || true", + "predev": "test \"$SKIP_PRESTART\" = \"1\" || npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-component-library || true", "start": "npm run previewer", "dev": "vite --open /start.html", - "prebuild": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library || true", + "prebuild": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-component-library || true", "build": "tsc -b && vite build", "preview": "vite preview", "test": "vitest", "lint": "eslint .", "prettier-check": "prettier --check .", - "previewer": "vite serve previewer --open", - "watch:css-lib": "npm run watch --workspace @curity/ui-kit-css-lib" + "previewer": "vite serve previewer --open" }, "dependencies": { "@curity/haapi-react-sdk": "*", diff --git a/src/haapi-react-app/previewer/shared/styles/previewer.css b/src/haapi-react-app/previewer/shared/styles/previewer.css index f8aa66a4..493534a7 100644 --- a/src/haapi-react-app/previewer/shared/styles/previewer.css +++ b/src/haapi-react-app/previewer/shared/styles/previewer.css @@ -9,7 +9,7 @@ * For further information, please contact Curity AB. */ -@import '@curity/ui-kit-css/lib/dist/index.css'; +@import '@curity/ui-kit-css'; :root { --type-regular: 'Roboto-Regular', -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, helvetica, arial, sans-serif; diff --git a/src/haapi-react-app/src/shared/util/css/styles.css b/src/haapi-react-app/src/shared/util/css/styles.css index de602993..4080c12a 100644 --- a/src/haapi-react-app/src/shared/util/css/styles.css +++ b/src/haapi-react-app/src/shared/util/css/styles.css @@ -9,7 +9,7 @@ * For further information, please contact Curity AB. */ -@import '@curity/ui-kit-css/lib/dist/index.css'; +@import '@curity/ui-kit-css'; /* Base styles */ :root { diff --git a/src/identity-server/package.json b/src/identity-server/package.json index 3e3b04e6..d914d290 100644 --- a/src/identity-server/package.json +++ b/src/identity-server/package.json @@ -13,17 +13,14 @@ "clean": "rm -rf build && npm run clean-libs", "preinstall": "cp ./git/hooks/* .git/hooks/ || true", "start": "concurrently --kill-others \" npm run java\" \" npm run dev\"", - "prestart": "test \"$SKIP_PRESTART\" = \"1\" || (npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css-lib --workspace @curity/ui-kit-css --workspace @curity/ui-kit-identity-server && npm run unzip-libs) || true", - "postwatch": "mkdir -p ./build/curity/webroot/assets/css && cp src/!(main|curity-application).css ../../identity-server/build/curity/webroot/assets/css/", - "prebuild": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css-lib --workspace @curity/ui-kit-css || true", + "prestart": "test \"$SKIP_PRESTART\" = \"1\" || (npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-identity-server && npm run unzip-libs) || true", + "prebuild": "npm run build --workspace @curity/ui-kit-icons || true", "build:styles": "vite build --mode styles", "build:ui": "vite build --mode ui", "build": "npm run build:styles && npm run build:ui", "watch:styles": "vite build --watch --mode styles", "watch:ui": "vite build --watch --mode ui", - "watch:css-lib": "npm run watch --workspace @curity/ui-kit-css-lib", - "predev": "npm run build --workspace @curity/ui-kit-css-lib", - "dev": "npm run watch:css-lib & sleep 2 && concurrently \"npm run watch:styles\" \"npm run watch:ui\"", + "dev": "concurrently \"npm run watch:styles\" \"npm run watch:ui\"", "unzip-libs": "node unzip-libs.mjs", "clean-libs": "find ../../lib -mindepth 1 -maxdepth 1 ! -name '.gitignore' ! -name 'ui-kit-runtime.zip' -exec rm -rf {} +" }, diff --git a/src/identity-server/styles/index.js b/src/identity-server/styles/index.js index af9219f6..52911dd7 100644 --- a/src/identity-server/styles/index.js +++ b/src/identity-server/styles/index.js @@ -1,5 +1,5 @@ /* Curity CSS */ -import "@curity/ui-kit-css/lib/dist/index.css"; +import "@curity/ui-kit-css"; /* Application styles */ import "./css/account-linking.css"; diff --git a/src/identity-server/vite.config.ts b/src/identity-server/vite.config.ts index 94de9db6..a32726ea 100644 --- a/src/identity-server/vite.config.ts +++ b/src/identity-server/vite.config.ts @@ -54,17 +54,7 @@ export default defineConfig(({ mode }) => { if (mode === "styles") { return { ...shared, - plugins: [ - ...shared.plugins, - { - name: "watch-css-lib-source", - buildStart() { - if (this.meta.watchMode) { - this.addWatchFile(path.resolve(__dirname, "../common/css/lib/src")); - } - }, - }, - ], + plugins: shared.plugins, build: { ...shared.build, emptyOutDir: false, diff --git a/src/self-service-portal/app/package.json b/src/self-service-portal/app/package.json index 7e8e6bf3..e15340df 100644 --- a/src/self-service-portal/app/package.json +++ b/src/self-service-portal/app/package.json @@ -9,16 +9,15 @@ "npm": ">=10.9.4" }, "scripts": { - "prestart": "test \"$SKIP_PRESTART\" = \"1\" || (npm run watch:css-lib & sleep 2 && npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library) || true", + "prestart": "test \"$SKIP_PRESTART\" = \"1\" || npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-component-library || true", "start": "vite --config vite-previewer.config.ts --mode previewer", "dev": "vite --open", - "prebuild": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library || true", + "prebuild": "npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-component-library || true", "build": "npm run tsBuild && vite build", "tsBuild": "tsc -b", "tsBuild:watch": "tsc -b -w", "lint": "eslint .", "lint:watch": "npx onchange '**/*.ts?(x)' -- npm run lint", - "watch:css-lib": "npm run watch --workspace @curity/ui-kit-css-lib", "preview": "vite preview", "test": "vitest", "coverage": "vitest run --coverage", diff --git a/src/self-service-portal/app/previewer/main.tsx b/src/self-service-portal/app/previewer/main.tsx index f9aac44c..13de8993 100644 --- a/src/self-service-portal/app/previewer/main.tsx +++ b/src/self-service-portal/app/previewer/main.tsx @@ -15,7 +15,7 @@ import { App } from '../src/App'; import { mockWorker } from './mocks/browser'; import '@curity/ui-kit-component-library/dist/component-library.css'; -import '@curity/ui-kit-css/lib/dist/index.css'; +import '@curity/ui-kit-css'; import '@styles/index.css'; mockWorker.start().then(() => { diff --git a/src/self-service-portal/app/src/main.tsx b/src/self-service-portal/app/src/main.tsx index 408c31b2..ecba2f4c 100644 --- a/src/self-service-portal/app/src/main.tsx +++ b/src/self-service-portal/app/src/main.tsx @@ -3,7 +3,7 @@ import { createRoot } from 'react-dom/client'; import { App } from './App'; import '@curity/ui-kit-component-library/dist/component-library.css'; -import '@curity/ui-kit-css/lib/dist/index.css'; +import '@curity/ui-kit-css'; import '@styles/index.css'; createRoot(document.getElementById('root')!).render( From 05bce6ed2170cce5195a8d8d30cc80e2e79f811a Mon Sep 17 00:00:00 2001 From: renatoathaydes Date: Tue, 11 Aug 2026 17:32:44 +0200 Subject: [PATCH 03/17] IS-9818 Pin cypress to 15.20.0. Co-Authored-By: Claude Fable 5 --- package-lock.json | 24 ++++++++---------------- src/self-service-portal/app/package.json | 2 +- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index a94abdda..3e0136fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6683,9 +6683,9 @@ } }, "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-3.0.0.tgz", + "integrity": "sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q==", "dev": true, "funding": [ { @@ -8387,9 +8387,9 @@ "license": "MIT" }, "node_modules/cypress": { - "version": "15.18.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-15.18.0.tgz", - "integrity": "sha512-aLfOYSLlVt1b6QSoVUjbCY27taZlYAT8ST47xQbwd9pvQrY/g5gXi12yItZTB+kxkkj+ZcvUYmRLUC95SlCJsw==", + "version": "15.20.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-15.20.0.tgz", + "integrity": "sha512-yrt6z9YERlggq5FReDx+PkbjrNoEQPeM03MQC1GvLlFGItk8ervC0A/7fjzWoWVRRXjsem+Pj3cunknARl/37g==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8399,7 +8399,7 @@ "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "@types/tmp": "^0.2.3", - "arch": "^2.2.0", + "arch": "^3.0.0", "blob-util": "^2.0.2", "bluebird": "^3.7.2", "buffer": "^5.7.1", @@ -8430,7 +8430,6 @@ "systeminformation": "^5.31.1", "tmp": "~0.2.4", "tree-kill": "1.2.2", - "tslib": "1.14.1", "untildify": "^4.0.0", "yauzl": "^3.3.1" }, @@ -8457,13 +8456,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/cypress/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, "node_modules/cypress/node_modules/yauzl": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz", @@ -22472,7 +22464,7 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-basic-ssl": "^2.1.0", "@vitejs/plugin-react": "^5.0.4", - "cypress": "^15.17.0", + "cypress": "15.20.0", "eslint": "^9.16.0", "eslint-plugin-react-hooks": "^7.0.0", "eslint-plugin-react-refresh": "^0.4.16", diff --git a/src/self-service-portal/app/package.json b/src/self-service-portal/app/package.json index 7e8e6bf3..784caaec 100644 --- a/src/self-service-portal/app/package.json +++ b/src/self-service-portal/app/package.json @@ -57,7 +57,7 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-basic-ssl": "^2.1.0", "@vitejs/plugin-react": "^5.0.4", - "cypress": "^15.17.0", + "cypress": "15.20.0", "eslint": "^9.16.0", "eslint-plugin-react-hooks": "^7.0.0", "eslint-plugin-react-refresh": "^0.4.16", From 62cc577b8a51fa1cabd3c436ecb0d74d3a337c44 Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 11 Aug 2026 17:47:30 +0200 Subject: [PATCH 04/17] IS-11684 Add h5 and h6 styling. Co-Authored-By: Claude Opus 5 (1M context) --- .../css/docs/src/pages/content/typography.mdx | 8 ++++++ src/common/css/docs/src/styles/global.css | 28 +++++++++++++++++-- src/common/css/lib/src/base/base-type.css | 26 +++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/common/css/docs/src/pages/content/typography.mdx b/src/common/css/docs/src/pages/content/typography.mdx index 5514b921..d61a4030 100644 --- a/src/common/css/docs/src/pages/content/typography.mdx +++ b/src/common/css/docs/src/pages/content/typography.mdx @@ -17,13 +17,21 @@ updatedAt: 'August 08 2022' #### This is a h4 heading +##### This is a h5 heading + +###### This is a h6 heading + ```html

This is a h1 heading

This is a h2 heading

This is a h3 heading

This is a h4 heading

+
This is a h5 heading
+
This is a h6 heading
``` +`h5` and `h6` are never rendered smaller than body copy — on wide screens both sit a step above it. + ## Paragraph This is a paragraph. It is a block of text that is used to demonstrate the typography styles. You can use this paragraph to test the font size, line height, and other text properties. diff --git a/src/common/css/docs/src/styles/global.css b/src/common/css/docs/src/styles/global.css index 31dfead5..440e50a0 100644 --- a/src/common/css/docs/src/styles/global.css +++ b/src/common/css/docs/src/styles/global.css @@ -50,7 +50,9 @@ h1, h2, h3, -h4 { +h4, +h5, +h6 { text-wrap: balance; font-family: var(--type-bold); line-height: 1.2; @@ -70,7 +72,29 @@ h3 { } h4 { - font-size: clamp(1rem, 9vmin, 1rem); + font-size: clamp(1rem, 9vmin, 1.15rem); +} + +h5 { + font-size: clamp(1rem, 9vmin, 1.075rem); +} + +h6 { + font-size: clamp(1rem, 9vmin, 1.05rem); +} + +@media (width >=80em) { + h4 { + font-size: 1.3rem; + } + + h5 { + font-size: 1.2rem; + } + + h6 { + font-size: 1.15rem; + } } :is(h2, h3, h4, h5, h6) { diff --git a/src/common/css/lib/src/base/base-type.css b/src/common/css/lib/src/base/base-type.css index 95410d7f..b24196a5 100644 --- a/src/common/css/lib/src/base/base-type.css +++ b/src/common/css/lib/src/base/base-type.css @@ -111,6 +111,32 @@ h4 { } } +.h5, +h5 { + font-size: calc(var(--type-base-size) * 1); +} + +@media (width >=64em) { + + .h5, + h5 { + font-size: calc(var(--type-base-size) * 1.075); + } +} + +.h6, +h6 { + font-size: var(--type-base-size); +} + +@media (width >=64em) { + + .h6, + h6 { + font-size: calc(var(--type-base-size) * 1.05); + } +} + p { color: var(--color-text); font-weight: var(--type-weight); From ce0e6c83c059b298ac653b9be20ccb3dad4037ef Mon Sep 17 00:00:00 2001 From: renatoathaydes Date: Tue, 11 Aug 2026 18:10:36 +0200 Subject: [PATCH 05/17] IS-9818 Require Node 24.19.0 and npm 11.17.0 in engines. Co-Authored-By: Claude Fable 5 --- package-lock.json | 261 ++-------------------- package.json | 4 +- src/common/component-library/package.json | 4 +- src/haapi-react-app/package.json | 4 +- src/haapi-react-sdk/package.json | 4 +- src/identity-server/package.json | 4 +- src/self-service-portal/app/package.json | 4 +- 7 files changed, 25 insertions(+), 260 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e0136fd..584d6d42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,19 +25,10 @@ "cross-env": "^7.0.3" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" } }, - "node_modules/@acemir/cssom": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.19.tgz", - "integrity": "sha512-Pp2gAQXPZ2o7lt4j0IMwNRXqQ3pagxtDj5wctL5U2Lz4oV0ocDNlkgx4DpxfyKav4S/bePuI+SMqcBSUHLy9kg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/@adobe/css-tools": { "version": "4.4.4", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", @@ -119,62 +110,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@asamuzakjp/css-color": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz", - "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "lru-cache": "^11.2.1" - } - }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@asamuzakjp/dom-selector": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.4.tgz", - "integrity": "sha512-buQDjkm+wDPXd6c13534URWZqbz0RP5PAhXZ+LIoa5LgwInT9HVJvGIJivg75vi8I13CxDGdTnz+aY5YUJlIAA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.2" - } - }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/generational-cache": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", @@ -8363,23 +8298,6 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, - "node_modules/cssstyle": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.2.tgz", - "integrity": "sha512-zDMqXh8Vs1CdRYZQ2M633m/SFgcjlu8RB8b/1h82i+6vpArF507NSYIWJHGlJaTWoS+imcnctmEz43txhbVkOw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@asamuzakjp/css-color": "^4.0.3", - "@csstools/css-syntax-patches-for-csstree": "^1.0.14", - "css-tree": "^3.1.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -8492,22 +8410,6 @@ "node": ">= 12" } }, - "node_modules/data-urls": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", - "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.0.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -12613,87 +12515,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsdom": { - "version": "27.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.1.0.tgz", - "integrity": "sha512-Pcfm3eZ+eO4JdZCXthW9tCDT3nF4K+9dmeZ+5X39n+Kqz0DDIABRP5CAEOHRFZk8RGuC2efksTJxrjp8EXCunQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@acemir/cssom": "^0.9.19", - "@asamuzakjp/dom-selector": "^6.7.3", - "cssstyle": "^5.3.2", - "data-urls": "^6.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/tldts": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz", - "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tldts-core": "^7.0.17" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/jsdom/node_modules/tldts-core": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz", - "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", - "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -20145,22 +19966,6 @@ "node": ">=18" } }, - "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -20324,7 +20129,7 @@ "version": "8.21.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10.0.0" @@ -20555,8 +20360,8 @@ "vitest": "^4.0.1" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "peerDependencies": { "react": "^19.0.0", @@ -21352,46 +21157,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "src/common/components/app": { - "name": "@curity/ui-kit-react-component-library", - "version": "0.0.0-SNAPSHOT-1", - "extraneous": true, - "license": "Apache-2.0", - "dependencies": { - "@curity/ui-kit-css": "^1.0.0", - "@curity/ui-kit-icons": "^1.0.0", - "@reach/dialog": "^0.18.0", - "i18next": "^25.6.0", - "react": "^19.2.0", - "react-hot-toast": "^2.5.2", - "react-i18next": "^16.1.5", - "react-qr-code": "^2.0.15" - }, - "devDependencies": { - "@eslint/js": "^9.9.0", - "@parcel/watcher": "^2.5.0", - "@testing-library/dom": "^10.4.0", - "@testing-library/react": "^16.1.0", - "@types/react": "^19.0.1", - "@vitejs/plugin-basic-ssl": "^2.1.0", - "@vitejs/plugin-react": "^5.0.4", - "eslint": "^9.16.0", - "eslint-plugin-react-hooks": "^7.0.0", - "eslint-plugin-react-refresh": "^0.4.16", - "eslint-plugin-simple-import-sort": "^12.1.1", - "globals": "^16.4.0", - "jsdom": "^27.0.1", - "stylelint-config-standard": "^39.0.1", - "typescript": "^5.7.2", - "typescript-eslint": "^8.18.0", - "vite": "^7.1.12", - "vite-tsconfig-paths": "^5.1.4", - "vitest": "^4.0.1" - }, - "engines": { - "node": ">=22.12.0" - } - }, "src/common/css": { "name": "@curity/ui-kit-css", "version": "1.0.0", @@ -21622,8 +21387,8 @@ "vitest": "^4.1.8" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" } }, "src/haapi-react-app/node_modules/@asamuzakjp/css-color": { @@ -21983,8 +21748,8 @@ "vitest": "~4.0.6" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "peerDependencies": { "react": "^19.0.0", @@ -22383,8 +22148,8 @@ "vite-plugin-static-copy": "^3.1.2" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" } }, "src/identity-server/node_modules/concurrently": { @@ -22480,8 +22245,8 @@ "vitest": "^4.0.1" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" } }, "src/self-service-portal/app/node_modules/@asamuzakjp/css-color": { diff --git a/package.json b/package.json index 422c8764..6d3419c0 100644 --- a/package.json +++ b/package.json @@ -42,8 +42,8 @@ "clean": "npm run clean -ws --if-present" }, "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "devDependencies": { "concurrently": "^9.1.2", diff --git a/src/common/component-library/package.json b/src/common/component-library/package.json index 7891a187..e4444db2 100644 --- a/src/common/component-library/package.json +++ b/src/common/component-library/package.json @@ -21,8 +21,8 @@ "dist" ], "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "scripts": { "dev": "vite", diff --git a/src/haapi-react-app/package.json b/src/haapi-react-app/package.json index 36d95c1f..cab4dfb9 100644 --- a/src/haapi-react-app/package.json +++ b/src/haapi-react-app/package.json @@ -7,8 +7,8 @@ "private": true, "license": "Apache-2.0", "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "files": [ "dist" diff --git a/src/haapi-react-sdk/package.json b/src/haapi-react-sdk/package.json index 9e2dacb9..efa11416 100644 --- a/src/haapi-react-sdk/package.json +++ b/src/haapi-react-sdk/package.json @@ -7,8 +7,8 @@ "private": true, "license": "Apache-2.0", "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "scripts": { "test": "vitest", diff --git a/src/identity-server/package.json b/src/identity-server/package.json index 3e3b04e6..d9f310fe 100644 --- a/src/identity-server/package.json +++ b/src/identity-server/package.json @@ -5,8 +5,8 @@ "private": true, "license": "Apache-2.0", "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "scripts": { "java": "node previewer", diff --git a/src/self-service-portal/app/package.json b/src/self-service-portal/app/package.json index 784caaec..553053f0 100644 --- a/src/self-service-portal/app/package.json +++ b/src/self-service-portal/app/package.json @@ -5,8 +5,8 @@ "private": true, "license": "Apache-2.0", "engines": { - "node": ">=22.22.0", - "npm": ">=10.9.4" + "node": ">=24.19.0", + "npm": ">=11.17.0" }, "scripts": { "prestart": "test \"$SKIP_PRESTART\" = \"1\" || (npm run watch:css-lib & sleep 2 && npm run build --workspace @curity/ui-kit-icons --workspace @curity/ui-kit-css --workspace @curity/ui-kit-component-library) || true", From b36887a36c3c8ec4d99397833ad45a3b0ea95d8b Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Wed, 12 Aug 2026 08:46:46 +0200 Subject: [PATCH 06/17] IS-11682 Declare the CSS package dependency and drop dead TS path aliases. Co-Authored-By: Claude Opus 5 (1M context) --- package-lock.json | 2 ++ src/common/component-library/tsconfig.app.json | 3 +-- src/haapi-react-app/package.json | 1 + src/identity-server/package.json | 1 + src/self-service-portal/app/tsconfig.app.json | 1 - 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a94abdda..045a95d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21600,6 +21600,7 @@ "dependencies": { "@curity/haapi-react-sdk": "*", "@curity/identityserver-haapi-web-driver": "^1.3.0", + "@curity/ui-kit-css": "^1.0.0", "@curity/ui-kit-icons": "^1.0.0", "react": "^19.0.0", "react-dom": "^19.2.7" @@ -22380,6 +22381,7 @@ "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { + "@curity/ui-kit-css": "^1.0.0", "jquery": "3.5.1" }, "devDependencies": { diff --git a/src/common/component-library/tsconfig.app.json b/src/common/component-library/tsconfig.app.json index 535d629a..da0d2083 100644 --- a/src/common/component-library/tsconfig.app.json +++ b/src/common/component-library/tsconfig.app.json @@ -27,8 +27,7 @@ "paths": { "@/*": ["./src/*"], "@components/*": ["./src/components/*"], - "@curity/ui-kit-icons/*": ["./src/packages/icons/*"], - "@curity/ui-kit-css/*": ["./src/packages/css/*"] + "@curity/ui-kit-icons/*": ["./src/packages/icons/*"] }, "declaration": true, diff --git a/src/haapi-react-app/package.json b/src/haapi-react-app/package.json index 519dd032..a95e8d44 100644 --- a/src/haapi-react-app/package.json +++ b/src/haapi-react-app/package.json @@ -29,6 +29,7 @@ "dependencies": { "@curity/haapi-react-sdk": "*", "@curity/identityserver-haapi-web-driver": "^1.3.0", + "@curity/ui-kit-css": "^1.0.0", "@curity/ui-kit-icons": "^1.0.0", "react": "^19.0.0", "react-dom": "^19.2.7" diff --git a/src/identity-server/package.json b/src/identity-server/package.json index d914d290..df41f80b 100644 --- a/src/identity-server/package.json +++ b/src/identity-server/package.json @@ -25,6 +25,7 @@ "clean-libs": "find ../../lib -mindepth 1 -maxdepth 1 ! -name '.gitignore' ! -name 'ui-kit-runtime.zip' -exec rm -rf {} +" }, "dependencies": { + "@curity/ui-kit-css": "^1.0.0", "jquery": "3.5.1" }, "devDependencies": { diff --git a/src/self-service-portal/app/tsconfig.app.json b/src/self-service-portal/app/tsconfig.app.json index d4582f8a..da513647 100644 --- a/src/self-service-portal/app/tsconfig.app.json +++ b/src/self-service-portal/app/tsconfig.app.json @@ -30,7 +30,6 @@ "@styles/*": ["./src/styles/*"], "@util/*": ["./src/util/*"], "@curity/ui-kit-icons/*": ["./src/packages/icons/*"], - "@curity/ui-kit-css/*": ["./src/packages/css/*"], "@curity/ui-kit-component-library": ["./src/packages/component-library/src/index.ts"], "@curity/ui-kit-component-library/*": ["./src/packages/component-library/src/*"] } From 730919898c249b97596a5ea86ae37e5a62422465 Mon Sep 17 00:00:00 2001 From: renatoathaydes Date: Wed, 12 Aug 2026 09:57:48 +0200 Subject: [PATCH 07/17] IS-9818 Refer to .nvmrc for Node and npm versions in READMEs. Co-Authored-By: Claude Fable 5 --- src/common/component-library/README.md | 3 +-- src/identity-server/README.md | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/common/component-library/README.md b/src/common/component-library/README.md index c0a3834c..629770a4 100644 --- a/src/common/component-library/README.md +++ b/src/common/component-library/README.md @@ -91,8 +91,7 @@ function App() { ### Prerequisites -- Node.js >= 22.22.0 -- npm >= 10.9.4 +- Node.js and npm — the versions in [`.nvmrc`](../../../.nvmrc) (run `nvm use`) ### Scripts diff --git a/src/identity-server/README.md b/src/identity-server/README.md index 3413dddd..d09e8eab 100644 --- a/src/identity-server/README.md +++ b/src/identity-server/README.md @@ -69,8 +69,7 @@ Build output directory containing compiled assets: ### Prerequisites -- Node.js >= 22.22.0 -- npm >= 10.9.4 +- Node.js and npm — the versions in [`.nvmrc`](../../.nvmrc) (run `nvm use`) ### Installation From f74c1c8a4c821c0aeeb892262ed20e342e991ba7 Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Wed, 12 Aug 2026 13:59:36 +0200 Subject: [PATCH 08/17] IS-11682 Use js code fence for the CSS import snippet. Co-Authored-By: Claude Opus 5 (1M context) --- src/common/css/docs/src/pages/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/css/docs/src/pages/index.mdx b/src/common/css/docs/src/pages/index.mdx index f6bb7fa4..48aaee0a 100644 --- a/src/common/css/docs/src/pages/index.mdx +++ b/src/common/css/docs/src/pages/index.mdx @@ -13,7 +13,7 @@ import { Intro } from '@components/Intro'; ## Use in Curity UI Kit repository -```shell +```js import "@curity/ui-kit-css"; ``` From 217b8746ffdce960882762815ef6aeb901394ab6 Mon Sep 17 00:00:00 2001 From: Vahag Date: Wed, 12 Aug 2026 15:25:20 +0200 Subject: [PATCH 09/17] IS-9818 Add jsdom to the root devDependencies. npm 11 no longer installs vitest's optional jsdom peer, leaving the root-hoisted vitest unable to resolve it. Co-Authored-By: Claude Opus 5 (1M context) --- package-lock.json | 1077 ++++++++++++++------------------------------- package.json | 5 +- 2 files changed, 332 insertions(+), 750 deletions(-) diff --git a/package-lock.json b/package-lock.json index 584d6d42..1907b391 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,8 @@ ], "devDependencies": { "concurrently": "^9.1.2", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "jsdom": "^29.1.1" }, "engines": { "node": ">=24.19.0", @@ -110,6 +111,155 @@ "dev": true, "license": "MIT" }, + "node_modules/@asamuzakjp/css-color": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/color-helpers": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", + "integrity": "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-calc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-color-parser": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^6.1.0", + "@csstools/css-calc": "^3.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.2.1", + "is-potential-custom-element-name": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, "node_modules/@asamuzakjp/generational-cache": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", @@ -8410,6 +8560,30 @@ "node": ">= 12" } }, + "node_modules/data-urls": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/data-urls/node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -12515,6 +12689,113 @@ "dev": true, "license": "MIT" }, + "node_modules/jsdom": { + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", + "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^5.1.11", + "@asamuzakjp/dom-selector": "^7.1.1", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.3", + "@exodus/bytes": "^1.15.0", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.3.5", + "parse5": "^8.0.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.1", + "undici": "^7.25.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.1", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.6.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/jsdom/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/jsdom/node_modules/tldts": { + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.10.tgz", + "integrity": "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.4.10" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/jsdom/node_modules/tldts-core": { + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.10.tgz", + "integrity": "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/jsdom/node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -19966,6 +20247,21 @@ "node": ">=18" } }, + "node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -20368,60 +20664,6 @@ "react-dom": "^19.0.0" } }, - "src/common/component-library/node_modules/@asamuzakjp/css-color": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", - "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@csstools/css-calc": "^3.2.0", - "@csstools/css-color-parser": "^4.1.0", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/common/component-library/node_modules/@asamuzakjp/dom-selector": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", - "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/common/component-library/node_modules/@csstools/color-helpers": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", - "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" - } - }, "src/common/component-library/node_modules/@csstools/css-calc": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", @@ -20438,34 +20680,7 @@ } ], "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "src/common/component-library/node_modules/@csstools/css-color-parser": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.8.tgz", - "integrity": "sha512-3chWb7PRLijpJpPIKkDxdu6IBeO5MrFACND57On0j8OPpc0wZibcGc3xAHrSEbOx/KDRyMHoIxGn0w1PhXMYHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.2.1" - }, + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -20490,6 +20705,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -20513,6 +20729,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" } @@ -20604,20 +20821,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "src/common/component-library/node_modules/data-urls": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", - "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/common/component-library/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -20697,19 +20900,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "src/common/component-library/node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.6.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/common/component-library/node_modules/html-tags": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", @@ -20749,57 +20939,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "src/common/component-library/node_modules/jsdom": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", - "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^5.1.11", - "@asamuzakjp/dom-selector": "^7.1.1", - "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.3", - "@exodus/bytes": "^1.15.0", - "css-tree": "^3.2.1", - "data-urls": "^7.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.3.5", - "parse5": "^8.0.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.1", - "undici": "^7.25.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.1", - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.1", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "src/common/component-library/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "src/common/component-library/node_modules/mathml-tag-names": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", @@ -21085,64 +21224,6 @@ "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, - "src/common/component-library/node_modules/tldts": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz", - "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^7.4.4" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "src/common/component-library/node_modules/tldts-core": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz", - "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==", - "dev": true, - "license": "MIT" - }, - "src/common/component-library/node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, - "src/common/component-library/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "src/common/component-library/node_modules/whatwg-url": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", - "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.11.0", - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/common/component-library/node_modules/write-file-atomic": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz", @@ -21379,302 +21460,42 @@ "globals": "^15.15.0", "jsdom": "^29.1.1", "postcss-extend-rule": "^4.0.0", - "postcss-import": "^16.1.1", - "prettier": "^3.5.3", - "typescript": "~5.7.2", - "typescript-eslint": "^8.24.1", - "vite": "^7.3.1", - "vitest": "^4.1.8" - }, - "engines": { - "node": ">=24.19.0", - "npm": ">=11.17.0" - } - }, - "src/haapi-react-app/node_modules/@asamuzakjp/css-color": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", - "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@csstools/css-calc": "^3.2.0", - "@csstools/css-color-parser": "^4.1.0", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/haapi-react-app/node_modules/@asamuzakjp/dom-selector": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", - "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/haapi-react-app/node_modules/@csstools/color-helpers": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", - "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" - } - }, - "src/haapi-react-app/node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "src/haapi-react-app/node_modules/@csstools/css-color-parser": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.8.tgz", - "integrity": "sha512-3chWb7PRLijpJpPIKkDxdu6IBeO5MrFACND57On0j8OPpc0wZibcGc3xAHrSEbOx/KDRyMHoIxGn0w1PhXMYHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.2.1" - }, - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "src/haapi-react-app/node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", - "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "src/haapi-react-app/node_modules/@csstools/css-tokenizer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - } - }, - "src/haapi-react-app/node_modules/data-urls": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", - "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/haapi-react-app/node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "src/haapi-react-app/node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "src/haapi-react-app/node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.6.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/haapi-react-app/node_modules/jsdom": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", - "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^5.1.11", - "@asamuzakjp/dom-selector": "^7.1.1", - "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.3", - "@exodus/bytes": "^1.15.0", - "css-tree": "^3.2.1", - "data-urls": "^7.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.3.5", - "parse5": "^8.0.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.1", - "undici": "^7.25.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.1", - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.1", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "src/haapi-react-app/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", - "dev": true, - "license": "BlueOak-1.0.0", + "postcss-import": "^16.1.1", + "prettier": "^3.5.3", + "typescript": "~5.7.2", + "typescript-eslint": "^8.24.1", + "vite": "^7.3.1", + "vitest": "^4.1.8" + }, "engines": { - "node": "20 || >=22" + "node": ">=24.19.0", + "npm": ">=11.17.0" } }, - "src/haapi-react-app/node_modules/tldts": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz", - "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==", + "src/haapi-react-app/node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, "license": "MIT", - "dependencies": { - "tldts-core": "^7.4.4" + "engines": { + "node": ">=10" }, - "bin": { - "tldts": "bin/cli.js" + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "src/haapi-react-app/node_modules/tldts-core": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz", - "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==", - "dev": true, - "license": "MIT" - }, - "src/haapi-react-app/node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "src/haapi-react-app/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^7.0.5" - }, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "src/haapi-react-app/node_modules/typescript": { @@ -21691,31 +21512,6 @@ "node": ">=14.17" } }, - "src/haapi-react-app/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "src/haapi-react-app/node_modules/whatwg-url": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", - "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.11.0", - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/haapi-react-sdk": { "name": "@curity/haapi-react-sdk", "version": "0.0.0", @@ -22249,60 +22045,6 @@ "npm": ">=11.17.0" } }, - "src/self-service-portal/app/node_modules/@asamuzakjp/css-color": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", - "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@csstools/css-calc": "^3.2.0", - "@csstools/css-color-parser": "^4.1.0", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/self-service-portal/app/node_modules/@asamuzakjp/dom-selector": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", - "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "src/self-service-portal/app/node_modules/@csstools/color-helpers": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", - "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" - } - }, "src/self-service-portal/app/node_modules/@csstools/css-calc": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", @@ -22319,34 +22061,7 @@ } ], "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "src/self-service-portal/app/node_modules/@csstools/css-color-parser": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.8.tgz", - "integrity": "sha512-3chWb7PRLijpJpPIKkDxdu6IBeO5MrFACND57On0j8OPpc0wZibcGc3xAHrSEbOx/KDRyMHoIxGn0w1PhXMYHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.2.1" - }, + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -22371,6 +22086,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -22394,6 +22110,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" } @@ -22485,20 +22202,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "src/self-service-portal/app/node_modules/data-urls": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", - "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/self-service-portal/app/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -22578,19 +22281,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "src/self-service-portal/app/node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.6.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/self-service-portal/app/node_modules/html-tags": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", @@ -22658,57 +22348,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "src/self-service-portal/app/node_modules/jsdom": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", - "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^5.1.11", - "@asamuzakjp/dom-selector": "^7.1.1", - "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.3", - "@exodus/bytes": "^1.15.0", - "css-tree": "^3.2.1", - "data-urls": "^7.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.3.5", - "parse5": "^8.0.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.1", - "undici": "^7.25.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.1", - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.1", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "src/self-service-portal/app/node_modules/lru-cache": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", - "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "src/self-service-portal/app/node_modules/mathml-tag-names": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", @@ -23021,64 +22660,6 @@ "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, - "src/self-service-portal/app/node_modules/tldts": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz", - "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^7.4.4" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "src/self-service-portal/app/node_modules/tldts-core": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz", - "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==", - "dev": true, - "license": "MIT" - }, - "src/self-service-portal/app/node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, - "src/self-service-portal/app/node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "src/self-service-portal/app/node_modules/whatwg-url": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", - "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.11.0", - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, "src/self-service-portal/app/node_modules/write-file-atomic": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz", diff --git a/package.json b/package.json index 6d3419c0..b21258d4 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ }, "devDependencies": { "concurrently": "^9.1.2", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "jsdom": "^29.1.1" } -} \ No newline at end of file +} From e7894e525511e574c171cc69180aab72e6dfe68a Mon Sep 17 00:00:00 2001 From: phylex Date: Mon, 17 Aug 2026 16:26:39 +0200 Subject: [PATCH 10/17] IS-11627 Add localised error-area messages for token-unknown and binding.message.too.long. Co-Authored-By: Claude Opus 4.8 --- src/identity-server/messages/core/en/views/error/400/messages | 1 + src/identity-server/messages/core/en/views/error/401/messages | 1 + .../messages/core/pt-pt/views/error/400/messages | 1 + .../messages/core/pt-pt/views/error/401/messages | 1 + src/identity-server/messages/core/pt/views/error/400/messages | 1 + src/identity-server/messages/core/pt/views/error/401/messages | 1 + src/identity-server/messages/core/sv/views/error/400/messages | 3 ++- src/identity-server/messages/core/sv/views/error/401/messages | 1 + 8 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/identity-server/messages/core/en/views/error/400/messages b/src/identity-server/messages/core/en/views/error/400/messages index 8e5f79d7..fb42033b 100644 --- a/src/identity-server/messages/core/en/views/error/400/messages +++ b/src/identity-server/messages/core/en/views/error/400/messages @@ -3,3 +3,4 @@ page.title=Bad request system.status.bad.request=The request could not be processed. error.parameters.missing-or-invalid=Missing or invalid input parameters +binding.message.too.long=The binding message exceeds the maximum allowed length. diff --git a/src/identity-server/messages/core/en/views/error/401/messages b/src/identity-server/messages/core/en/views/error/401/messages index 49fb60e6..76edef51 100644 --- a/src/identity-server/messages/core/en/views/error/401/messages +++ b/src/identity-server/messages/core/en/views/error/401/messages @@ -1,3 +1,4 @@ meta.title=401 - Unauthorized page.title=Unauthorized system.status.authentication.error=You are not authorized to execute this request. +token-unknown=The provided access token is invalid or has expired. diff --git a/src/identity-server/messages/core/pt-pt/views/error/400/messages b/src/identity-server/messages/core/pt-pt/views/error/400/messages index 488cb8a2..fd47b073 100644 --- a/src/identity-server/messages/core/pt-pt/views/error/400/messages +++ b/src/identity-server/messages/core/pt-pt/views/error/400/messages @@ -13,3 +13,4 @@ meta.title=400 - Operação inválida page.title=Operação inválida system.status.bad.request=A solicitação não pôde ser processada. error.parameters.missing-or-invalid=Parâmetros de entrada ausentes ou inválidos +binding.message.too.long=A mensagem de vinculação excede o comprimento máximo permitido. diff --git a/src/identity-server/messages/core/pt-pt/views/error/401/messages b/src/identity-server/messages/core/pt-pt/views/error/401/messages index 7e22003a..4e9ab830 100644 --- a/src/identity-server/messages/core/pt-pt/views/error/401/messages +++ b/src/identity-server/messages/core/pt-pt/views/error/401/messages @@ -12,3 +12,4 @@ meta.title=401 - Não autorizado page.title=Não autorizado system.status.authentication.error=Você não está autorizado a executar esta solicitação. +token-unknown=O token de acesso fornecido é inválido ou expirou. diff --git a/src/identity-server/messages/core/pt/views/error/400/messages b/src/identity-server/messages/core/pt/views/error/400/messages index 488cb8a2..fd47b073 100644 --- a/src/identity-server/messages/core/pt/views/error/400/messages +++ b/src/identity-server/messages/core/pt/views/error/400/messages @@ -13,3 +13,4 @@ meta.title=400 - Operação inválida page.title=Operação inválida system.status.bad.request=A solicitação não pôde ser processada. error.parameters.missing-or-invalid=Parâmetros de entrada ausentes ou inválidos +binding.message.too.long=A mensagem de vinculação excede o comprimento máximo permitido. diff --git a/src/identity-server/messages/core/pt/views/error/401/messages b/src/identity-server/messages/core/pt/views/error/401/messages index 7e22003a..4e9ab830 100644 --- a/src/identity-server/messages/core/pt/views/error/401/messages +++ b/src/identity-server/messages/core/pt/views/error/401/messages @@ -12,3 +12,4 @@ meta.title=401 - Não autorizado page.title=Não autorizado system.status.authentication.error=Você não está autorizado a executar esta solicitação. +token-unknown=O token de acesso fornecido é inválido ou expirou. diff --git a/src/identity-server/messages/core/sv/views/error/400/messages b/src/identity-server/messages/core/sv/views/error/400/messages index efced035..dd19863b 100644 --- a/src/identity-server/messages/core/sv/views/error/400/messages +++ b/src/identity-server/messages/core/sv/views/error/400/messages @@ -3,4 +3,5 @@ page.title=Felaktig begäran system.status.bad.request=Begäran kunde inte utföras system.status.authentication.no-authenticator=Ingen autentiseringsmetod hittades -error.parameters.missing-or-invalid=Felaktiga eller otillräckliga parametrar \ No newline at end of file +error.parameters.missing-or-invalid=Felaktiga eller otillräckliga parametrar +binding.message.too.long=Bindningsmeddelandet överskrider den maximalt tillåtna längden. \ No newline at end of file diff --git a/src/identity-server/messages/core/sv/views/error/401/messages b/src/identity-server/messages/core/sv/views/error/401/messages index 3b18aae2..16736beb 100644 --- a/src/identity-server/messages/core/sv/views/error/401/messages +++ b/src/identity-server/messages/core/sv/views/error/401/messages @@ -1,3 +1,4 @@ meta.title=401 - Ej tillåten page.title=Ej tillåten system.status.authentication.error=Du har inte rättigheter att utföra denna begäran +token-unknown=Den angivna åtkomsttoken är ogiltig eller har upphört att gälla. From c3837cff95b09fb3e1367704bd9c73f11a08a069 Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 18 Aug 2026 10:27:46 +0200 Subject: [PATCH 11/17] IS-11682 Document repo-based install and the no-bundler CSS path. Co-Authored-By: Claude Fable 5 --- .../css/docs/src/components/Install.mdx | 2 +- .../src/pages/introduction/gettingstarted.mdx | 24 ++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/common/css/docs/src/components/Install.mdx b/src/common/css/docs/src/components/Install.mdx index 0b4d719f..e75a88a8 100644 --- a/src/common/css/docs/src/components/Install.mdx +++ b/src/common/css/docs/src/components/Install.mdx @@ -1,3 +1,3 @@ ```shell -npm install @curity/ui-kit-css +git clone https://github.com/curityio/ui-kit.git ``` diff --git a/src/common/css/docs/src/pages/introduction/gettingstarted.mdx b/src/common/css/docs/src/pages/introduction/gettingstarted.mdx index 1b413064..81274bfb 100644 --- a/src/common/css/docs/src/pages/introduction/gettingstarted.mdx +++ b/src/common/css/docs/src/pages/introduction/gettingstarted.mdx @@ -2,15 +2,33 @@ layout: "../../layouts/Page.astro" title: "Install and usage" description: "Usage on how to install and use the library" -updatedAt: "August 08 2022" +updatedAt: "August 18 2026" --- # Install and Usage -## How to use the CSS library +`@curity/ui-kit-css` is not published to the npm registry. It is consumed from this repository — either as a workspace package inside the Curity UI Kit monorepo, or from a clone of the repository. -In most modern JS tooling and frameworks or when using a separate bundler, you can import the CSS directly from `node_modules` like this: +## With a module bundler + +In workspace packages of this repository, or in any project with modern JS tooling that can resolve the package (for example via a `file:` dependency on a clone), import the CSS source directly: ```js import "@curity/ui-kit-css"; ``` + +The bundler inlines the `@import`ed partials and minifies the output as part of your normal build — no separate CSS build step is needed. + +## Without a module bundler + +Projects that link stylesheets directly (plain HTML pages, server-rendered templates) need a single flat CSS file. Build it from the repository root: + +```shell +npm run build:css +``` + +Then copy `src/common/css/lib/dist/index.css` into your project and link it: + +```html + +``` From 06ef4bf185d32ba113d9690d70a5fe8c171d0715 Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 18 Aug 2026 11:49:14 +0200 Subject: [PATCH 12/17] IS-11682 Drop unused ui-kit-css dependency from the component library. Co-Authored-By: Claude Fable 5 --- package-lock.json | 1 - src/common/component-library/README.md | 6 +++++- src/common/component-library/package.json | 1 - 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 045a95d0..c7d2c07a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20534,7 +20534,6 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "@curity/ui-kit-css": "^1.0.0", "@curity/ui-kit-icons": "^1.0.0", "@radix-ui/react-dialog": "^1.1.15", "react": "^19.2.0", diff --git a/src/common/component-library/README.md b/src/common/component-library/README.md index c0a3834c..9f47c706 100644 --- a/src/common/component-library/README.md +++ b/src/common/component-library/README.md @@ -151,12 +151,16 @@ src/ - `react-dom` ^18.0.0 ### Internal Dependencies -- `@curity/ui-kit-css` - Base CSS styles - `@curity/ui-kit-icons` - Icon library - `react` - `react-router` - Routing support - `@radix-ui/react-dialog` - Dialog support +### Runtime Requirements +- `@curity/ui-kit-css` - not an npm dependency, but the component styles consume its theme variables + (`--color-primary`, `--button-border-radius`, `--form-field-*`, ...), so the consuming app must load the + Curity CSS (e.g. `import "@curity/ui-kit-css"`) for components to render correctly. + ## Browser Support - Chrome (latest) diff --git a/src/common/component-library/package.json b/src/common/component-library/package.json index 4e11a503..43ca8be8 100644 --- a/src/common/component-library/package.json +++ b/src/common/component-library/package.json @@ -42,7 +42,6 @@ "react-dom": "^19.0.0" }, "dependencies": { - "@curity/ui-kit-css": "^1.0.0", "@curity/ui-kit-icons": "^1.0.0", "@radix-ui/react-dialog": "^1.1.15", "react": "^19.2.0", From 7d57454ff3e3193dfa498fae0e75873e6aad486e Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 18 Aug 2026 11:52:23 +0200 Subject: [PATCH 13/17] IS-11682 Remove the orphaned CSS lib dev server scripts. Co-Authored-By: Claude Fable 5 --- package-lock.json | 70 +++++++++++-------------------- src/common/css/lib/package.json | 4 -- src/common/css/lib/vite.config.js | 4 -- src/common/css/package.json | 1 - 4 files changed, 24 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index c7d2c07a..a6b4b6ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6628,6 +6628,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6637,6 +6638,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -7662,6 +7664,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -7854,6 +7857,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -7868,6 +7872,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -7904,6 +7909,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -7916,6 +7922,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/colord": { @@ -8578,6 +8585,7 @@ "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" @@ -9021,6 +9029,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/encodeurl": { @@ -10569,6 +10578,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -11067,6 +11077,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -12084,6 +12095,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -13228,6 +13240,7 @@ "version": "4.17.23", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "dev": true, "license": "MIT" }, "node_modules/lodash.isfinite": { @@ -16839,6 +16852,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -17125,6 +17139,7 @@ "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -18083,7 +18098,8 @@ "node_modules/spawn-command": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==" + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true }, "node_modules/spdx-correct": { "version": "3.2.0", @@ -18256,6 +18272,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -18358,6 +18375,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -18443,6 +18461,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -18845,6 +18864,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, "license": "MIT", "bin": { "tree-kill": "cli.js" @@ -20386,6 +20406,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -20417,6 +20438,7 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -20435,6 +20457,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, "license": "ISC", "engines": { "node": ">=12" @@ -21435,9 +21458,6 @@ "name": "@curity/ui-kit-css-lib", "version": "1.0.0", "license": "Apache-2.0", - "dependencies": { - "concurrently": "^8.2.0" - }, "devDependencies": { "prettier": "^3.4.2", "vite": "^7.3.1" @@ -21492,33 +21512,6 @@ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, - "src/common/css/node_modules/concurrently": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", - "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "date-fns": "^2.30.0", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, "src/common/css/node_modules/es-module-lexer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", @@ -21562,21 +21555,6 @@ "node": ">= 12" } }, - "src/common/css/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "src/common/icons": { "name": "@curity/ui-kit-icons", "version": "1.0.0", diff --git a/src/common/css/lib/package.json b/src/common/css/lib/package.json index d3bbf30e..dc5e7f54 100644 --- a/src/common/css/lib/package.json +++ b/src/common/css/lib/package.json @@ -11,7 +11,6 @@ "name": "Curity AB" }, "scripts": { - "start": "vite", "build": "vite build", "watch": "vite build --watch", "format": "npx prettier --write ./src/**/*.css", @@ -23,8 +22,5 @@ "devDependencies": { "prettier": "^3.4.2", "vite": "^7.3.1" - }, - "dependencies": { - "concurrently": "^8.2.0" } } diff --git a/src/common/css/lib/vite.config.js b/src/common/css/lib/vite.config.js index 6d7c902c..b4efb5f3 100644 --- a/src/common/css/lib/vite.config.js +++ b/src/common/css/lib/vite.config.js @@ -1,10 +1,6 @@ import { defineConfig } from 'vite' export default defineConfig({ - server: { - open: false, - port: 5176, - }, build: { minify: true, target: 'esnext', diff --git a/src/common/css/package.json b/src/common/css/package.json index 42ebf84a..f1a357bb 100644 --- a/src/common/css/package.json +++ b/src/common/css/package.json @@ -12,7 +12,6 @@ }, "scripts": { "start:docs": "npm start -w docs", - "start:lib": "npm start -w lib", "start": "npm run start:docs", "build:docs": "npm run build -w docs", "build:lib": "npm run build -w lib", From 15b41acd72e999ff5829febcd06b69a0286293f8 Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 18 Aug 2026 11:57:14 +0200 Subject: [PATCH 14/17] IS-11682 Drop the speculative src subpath from the CSS exports map. Co-Authored-By: Claude Fable 5 --- src/common/css/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/common/css/package.json b/src/common/css/package.json index f1a357bb..f5eb29af 100644 --- a/src/common/css/package.json +++ b/src/common/css/package.json @@ -7,7 +7,6 @@ "private": true, "exports": { ".": "./lib/src/main.css", - "./src/*": "./lib/src/*", "./lib/dist/index.css": "./lib/dist/index.css" }, "scripts": { From f808b753bc7194e13b19af3c98bf6e9b465c25eb Mon Sep 17 00:00:00 2001 From: Urban Sanden Date: Tue, 18 Aug 2026 12:00:35 +0200 Subject: [PATCH 15/17] IS-11682 Remove the redundant plugins key and note the watch-mode limitation. Co-Authored-By: Claude Fable 5 --- src/identity-server/vite.config.ts | 1 - src/identity-server/vite.plugins.ts | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/identity-server/vite.config.ts b/src/identity-server/vite.config.ts index a32726ea..cd87e15c 100644 --- a/src/identity-server/vite.config.ts +++ b/src/identity-server/vite.config.ts @@ -54,7 +54,6 @@ export default defineConfig(({ mode }) => { if (mode === "styles") { return { ...shared, - plugins: shared.plugins, build: { ...shared.build, emptyOutDir: false, diff --git a/src/identity-server/vite.plugins.ts b/src/identity-server/vite.plugins.ts index 2cc40f5b..07fe2a5d 100644 --- a/src/identity-server/vite.plugins.ts +++ b/src/identity-server/vite.plugins.ts @@ -45,6 +45,8 @@ export function createSharedPlugins(): PluginOption[] { dest: "templates/template-areas", }, { + // Watch mode only tracks files reachable from the module graph, so a CSS file + // added here while watching (e.g. a new theme) needs a watcher restart to be copied. src: normalizePath( path.resolve(__dirname, "../common/css/lib/src/!(main|curity-application).css") ), From 0b0db3a02f50d4f9bc5f051b12044018f71bd37c Mon Sep 17 00:00:00 2001 From: Matus Marko Date: Thu, 20 Aug 2026 17:30:01 +0300 Subject: [PATCH 16/17] IS-11744 Document the branching model for consumers. Co-Authored-By: Claude Opus 5 --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 5c936231..95f29fc3 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,20 @@ This monorepo contains: - UI Icons React Library - React Component Library +## Branches and releases + +`main` is the development branch. It holds the work for the next release and does **not** correspond to any released version. It previously mirrored the latest release; that is no longer the case. + +To work against a specific Identity Server release, check out its tag: + +```shell +git checkout ui-kit-11.4.0 +``` + +Maintenance work for a released version happens on the matching version branch, for example `version/11.4`. + +Tags and version branches are the only references that track a released state, so pin one of them rather than following `main`. + ## Prerequisites - Node.js (version as specified in the `.nvmrc` file) From 9e57c8ee1c5f1dd3e5e56e30228f0f158c80c341 Mon Sep 17 00:00:00 2001 From: Matus Marko Date: Thu, 20 Aug 2026 17:37:18 +0300 Subject: [PATCH 17/17] IS-11744 Correct the release-pinning guidance: tags only. Co-Authored-By: Claude Opus 5 --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 95f29fc3..d2a36f6c 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,7 @@ To work against a specific Identity Server release, check out its tag: git checkout ui-kit-11.4.0 ``` -Maintenance work for a released version happens on the matching version branch, for example `version/11.4`. - -Tags and version branches are the only references that track a released state, so pin one of them rather than following `main`. +Release tags are the only references that mark a released state, so pin a tag rather than following any branch. The `version/*` branches carry maintenance work for a released line and can contain changes that are not yet part of a release, so their tips are not release snapshots either. ## Prerequisites - Node.js (version as specified in the `.nvmrc` file)