MDL-87730 library: Integrate Moodle Design System tokens

Co-authored-by: Andrew Nicols <[email protected]>
This commit is contained in:
Huong Nguyen
2026-03-11 14:19:22 +07:00
co-authored by Andrew Nicols
parent 09c3dd16d6
commit 8eace52334
17 changed files with 828 additions and 934 deletions
+44 -561
View File
@@ -7,6 +7,7 @@
"name": "Moodle",
"hasInstallScript": true,
"dependencies": {
"@moodlehq/design-system": "^2.1",
"react": "^19.1",
"react-dom": "^19.1"
},
@@ -64,75 +65,6 @@
"node": ">=22.11.0 <23"
}
},
"../../../../git/moodlehq/design-system": {
"name": "@moodlehq/design-system",
"version": "1.0.0",
"extraneous": true,
"license": "GPL-3.0-only",
"dependencies": {
"bootstrap": "^5.3.8"
},
"devDependencies": {
"@chromatic-com/storybook": "^5.0.0",
"@commitlint/cli": "^20.1.0",
"@commitlint/config-conventional": "^20.0.0",
"@eslint/compat": "^2.0.0",
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.1",
"@storybook/addon-a11y": "^10.1.2",
"@storybook/addon-coverage": "^3.0.0",
"@storybook/addon-docs": "^10.1.2",
"@storybook/addon-themes": "^10.1.2",
"@storybook/addon-vitest": "^10.1.2",
"@storybook/react-vite": "^10.1.2",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@types/node": "^25.0.2",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@typescript-eslint/eslint-plugin": "^8.48.0",
"@typescript-eslint/parser": "^8.48.0",
"@vitejs/plugin-react": "^5.1.0",
"@vitest/browser-playwright": "^4.0.14",
"@vitest/coverage-istanbul": "^4.0.14",
"bootstrap": "^5.3.8",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.5.0",
"eslint-plugin-storybook": "^10.1.2",
"fast-check": "^4.5.3",
"globals": "^17.1.0",
"husky": "^9.1.7",
"jsdom": "^28.0.0",
"lint-staged": "^16.2.7",
"playwright": "^1.57.0",
"prettier": "^3.7.3",
"prettier-plugin-organize-imports": "^4.3.0",
"react": "^19.2.4",
"react-bootstrap": "^2.10.10",
"react-docgen": "^8.0.2",
"react-docgen-typescript": "^2.4.0",
"react-dom": "^19.2.4",
"sass": "^1.94.2",
"storybook": "^10.0.5",
"style-dictionary": "^5.1.1",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.48.0",
"vite": "^7.2.6",
"vite-plugin-dts": "^4.5.4",
"vite-tsconfig-paths": "^6.0.1",
"vitest": "^4.0.4"
},
"peerDependencies": {
"react": "^19.2.4",
"react-bootstrap": "^2.10.10",
"react-dom": "^19.2.4"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
"version": "1.2.6",
"dev": true,
@@ -1833,78 +1765,8 @@
"node": ">=16"
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
"integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
"integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
"integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
"integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
"integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
"cpu": [
"arm64"
],
@@ -1918,363 +1780,6 @@
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
"integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
"integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
"integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
"integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
"integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
"integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
"integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
"integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
"cpu": [
"mips64el"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
"integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
"integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
"integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
"integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
"integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
"integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
"integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
"integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openharmony-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
"integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
"integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
"integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
"integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
"integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"dev": true,
@@ -2388,8 +1893,6 @@
},
"node_modules/@eslint/js": {
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2398,9 +1901,6 @@
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
"deprecated": "Use @eslint/config-array instead",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2414,8 +1914,6 @@
},
"node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -2439,9 +1937,6 @@
},
"node_modules/@humanwhocodes/object-schema": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"deprecated": "Use @eslint/object-schema instead",
"dev": true,
"license": "BSD-3-Clause"
},
@@ -2530,6 +2025,19 @@
"node": ">= 0.4"
}
},
"node_modules/@moodlehq/design-system": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@moodlehq/design-system/-/design-system-2.1.0.tgz",
"integrity": "sha512-rBdj7czZineA19nSmN5ogBW8tAoIR9w81I0TezVfIvpGVaKaZoUTwC7CZuNgPNYdVHBoqhUknB5h2KYvvr7GRQ==",
"license": "GPL-3.0-only",
"dependencies": {
"bootstrap": "^5.3.8"
},
"peerDependencies": {
"react": "^19.2.4",
"react-dom": "^19.2.4"
}
},
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
"version": "5.1.1-v1",
"dev": true,
@@ -2579,6 +2087,17 @@
"node": ">=14"
}
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"license": "MIT",
"peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@protobufjs/aspromise": {
"version": "1.1.2",
"dev": true,
@@ -2692,8 +2211,6 @@
},
"node_modules/@typescript-eslint/parser": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz",
"integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2717,8 +2234,6 @@
},
"node_modules/@typescript-eslint/project-service": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz",
"integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2739,8 +2254,6 @@
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz",
"integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2757,8 +2270,6 @@
},
"node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz",
"integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2774,8 +2285,6 @@
},
"node_modules/@typescript-eslint/types": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz",
"integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2788,8 +2297,6 @@
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz",
"integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2816,8 +2323,6 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2826,8 +2331,6 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2839,8 +2342,6 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
"integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
@@ -2855,8 +2356,6 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -2868,8 +2367,6 @@
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.56.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz",
"integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2886,8 +2383,6 @@
},
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
"integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -3602,6 +3097,25 @@
"node": ">=0.8.0"
}
},
"node_modules/bootstrap": {
"version": "5.3.8",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz",
"integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/twbs"
},
{
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
}
],
"license": "MIT",
"peerDependencies": {
"@popperjs/core": "^2.11.8"
}
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"dev": true,
@@ -4528,8 +4042,6 @@
},
"node_modules/debug": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5005,8 +4517,6 @@
},
"node_modules/esbuild": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
"integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -5122,9 +4632,6 @@
},
"node_modules/eslint": {
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6244,8 +5751,6 @@
},
"node_modules/fs-extra": {
"version": "11.3.4",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz",
"integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8708,8 +8213,6 @@
},
"node_modules/jsonfile": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
"integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9512,8 +9015,6 @@
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT"
},
@@ -10620,8 +10121,6 @@
},
"node_modules/react": {
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
"integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -10629,8 +10128,6 @@
},
"node_modules/react-dom": {
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
"integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.27.0"
@@ -11191,8 +10688,6 @@
},
"node_modules/scheduler": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"license": "MIT"
},
"node_modules/seek-bzip": {
@@ -12198,8 +11693,6 @@
},
"node_modules/tinyglobby": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12215,8 +11708,6 @@
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12233,8 +11724,6 @@
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12346,8 +11835,6 @@
},
"node_modules/ts-api-utils": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
"integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12399,8 +11886,6 @@
},
"node_modules/typescript": {
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
@@ -12523,8 +12008,6 @@
},
"node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
"license": "MIT",
"engines": {
+5 -2
View File
@@ -3,13 +3,16 @@
"private": true,
"description": "Moodle",
"scripts": {
"postinstall": "npm run update-react",
"postinstall": "npm run update-packages",
"update-packages": "npm run update-design-system && npm run update-react",
"update-react": "node scripts/update-react-bundle.mjs",
"update-design-system": "node scripts/update-design-system.mjs",
"upgradenote": "node .grunt/upgradenotes.mjs create"
},
"dependencies": {
"react": "^19.1",
"react-dom": "^19.1"
"react-dom": "^19.1",
"@moodlehq/design-system": "^2.1"
},
"devDependencies": {
"@babel/core": "7.17.5",
@@ -0,0 +1,4 @@
// Import Design System.
// Do NOT import _index.scss - it uses @forward (incompatible with @import).
@import "design-system/tokens/scss/_index.legacy";
@@ -0,0 +1 @@
The content of this directory is automatically managed by the `npm install` and `npm update` commands.
@@ -0,0 +1,15 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-border-radius-lg: 0.5rem !default;
$mds-border-radius-md: 0.375rem !default;
$mds-border-radius-none: 0rem !default;
$mds-border-radius-pill: 50rem !default;
$mds-border-radius-sm: 0.25rem !default;
$mds-border-radius-xl: 1rem !default;
$mds-border-radius-xxl: 2rem !default;
$mds-stroke-weight-lg: 0.1875rem !default;
$mds-stroke-weight-md: 0.125rem !default;
$mds-stroke-weight-sm: 0.0625rem !default;
$mds-stroke-weight-xl: 0.25rem !default;
$mds-stroke-weight-xxl: 0.3125rem !default;
@@ -0,0 +1,65 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-bg-feedback-danger-default: #ca3120 !default;
$mds-bg-feedback-danger-subtle: #f4d6d2 !default;
$mds-bg-feedback-info-default: #008196 !default;
$mds-bg-feedback-info-subtle: #cce6ea !default;
$mds-bg-feedback-primary-default: #0f6cbf !default;
$mds-bg-feedback-primary-subtle: #cfe2f2 !default;
$mds-bg-feedback-secondary-subtle: #f8f9fa !default;
$mds-bg-feedback-success-default: #357a32 !default;
$mds-bg-feedback-success-subtle: #d7e4d6 !default;
$mds-bg-feedback-warning-default: #f0ad4e !default;
$mds-bg-feedback-warning-subtle: #fcefdc !default;
$mds-bg-interactive-danger-active: #791d13 !default;
$mds-bg-interactive-danger-default: #ca3120 !default;
$mds-bg-interactive-danger-disabled: #df8379 !default;
$mds-bg-interactive-danger-hover: #a2271a !default;
$mds-bg-interactive-primary-active: #094173 !default;
$mds-bg-interactive-primary-default: #0f6cbf !default;
$mds-bg-interactive-primary-disabled: #6fa7d9 !default;
$mds-bg-interactive-primary-hover: #0c5699 !default;
$mds-bg-interactive-secondary-active: #ced4da !default;
$mds-bg-interactive-secondary-default: #ced4da !default;
$mds-bg-interactive-secondary-disabled: #e9ecef !default;
$mds-bg-interactive-secondary-hover: #dee2e6 !default;
$mds-bg-surface-default: #ffffff !default;
$mds-bg-surface-strong: #e9ecef !default;
$mds-bg-surface-subtle: #f8f9fa !default;
$mds-border-default: #dee2e6 !default;
$mds-border-feedback-danger: #eaada6 !default;
$mds-border-feedback-info: #99cdd5 !default;
$mds-border-feedback-primary: #9fc4e5 !default;
$mds-border-feedback-secondary: #e9ecef !default;
$mds-border-feedback-success: #aecaad !default;
$mds-border-feedback-warning: #f9deb8 !default;
$mds-border-interactive-danger-active: #a2271a !default;
$mds-border-interactive-danger-default: #ca3120 !default;
$mds-border-interactive-danger-disabled: #df8379 !default;
$mds-border-interactive-danger-hover: #ca3120 !default;
$mds-border-interactive-primary-active: #0c5699 !default;
$mds-border-interactive-primary-default: #0f6cbf !default;
$mds-border-interactive-primary-disabled: #6fa7d9 !default;
$mds-border-interactive-primary-hover: #0f6cbf !default;
$mds-border-interactive-secondary-active: #495057 !default;
$mds-border-interactive-secondary-default: #6a737b !default;
$mds-border-interactive-secondary-disabled: #8f959e !default;
$mds-border-interactive-secondary-hover: #6a737b !default;
$mds-border-subtle: #e9ecef !default;
$mds-border-translucent: rgba(0, 0, 0, 0) !default;
$mds-focus-default: #0f6cbf !default;
$mds-text-danger: #ca3120 !default;
$mds-text-default: #1d2125 !default;
$mds-text-emphasis: #000000 !default;
$mds-text-feedback-danger: #51140d !default;
$mds-text-feedback-info: #00343c !default;
$mds-text-feedback-primary: #062b4c !default;
$mds-text-feedback-secondary: #343a40 !default;
$mds-text-feedback-success: #153114 !default;
$mds-text-feedback-warning: #60451f !default;
$mds-text-inverse: #f8f9fa !default;
$mds-text-link-primary-default: #0f6cbf !default;
$mds-text-link-primary-hover: #0c5699 !default;
$mds-text-muted: #6a737b !default;
$mds-text-subtle: #495057 !default;
@@ -0,0 +1,11 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
// Tags: [MDS_LEGACY_SCSSPHP_COMPAT]
@import "_borders.scss";
@import "_colors.scss";
@import "_primitives.scss";
@import "_shadows.scss";
@import "_sizes.scss";
@import "_spacing.scss";
@import "_typography.scss";
@@ -0,0 +1,10 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
@forward "borders";
@forward "colors";
@forward "primitives";
@forward "shadows";
@forward "sizes";
@forward "spacing";
@forward "typography";
@@ -0,0 +1,159 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-color-blue-100: #cfe2f2 !default;
$mds-color-blue-200: #9fc4e5 !default;
$mds-color-blue-300: #6fa7d9 !default;
$mds-color-blue-400: #3f89cc !default;
$mds-color-blue-500: #0f6cbf !default;
$mds-color-blue-600: #0c5699 !default;
$mds-color-blue-700: #094173 !default;
$mds-color-blue-800: #062b4c !default;
$mds-color-blue-900: #031626 !default;
$mds-color-cyan-100: #cce6ea !default;
$mds-color-cyan-200: #99cdd5 !default;
$mds-color-cyan-300: #66b3c0 !default;
$mds-color-cyan-400: #339aab !default;
$mds-color-cyan-500: #008196 !default;
$mds-color-cyan-600: #006778 !default;
$mds-color-cyan-700: #004d5a !default;
$mds-color-cyan-800: #00343c !default;
$mds-color-cyan-900: #001a1e !default;
$mds-color-gray-100: #f8f9fa !default;
$mds-color-gray-200: #e9ecef !default;
$mds-color-gray-300: #dee2e6 !default;
$mds-color-gray-400: #ced4da !default;
$mds-color-gray-500: #8f959e !default;
$mds-color-gray-600: #6a737b !default;
$mds-color-gray-700: #495057 !default;
$mds-color-gray-800: #343a40 !default;
$mds-color-gray-900: #1d2125 !default;
$mds-color-gray-black: #000000 !default;
$mds-color-gray-white: #ffffff !default;
$mds-color-green-100: #d7e4d6 !default;
$mds-color-green-200: #aecaad !default;
$mds-color-green-300: #86af84 !default;
$mds-color-green-400: #5d955b !default;
$mds-color-green-500: #357a32 !default;
$mds-color-green-600: #2a6228 !default;
$mds-color-green-700: #20491e !default;
$mds-color-green-800: #153114 !default;
$mds-color-green-900: #0b180a !default;
$mds-color-indigo-100: #e0cffc !default;
$mds-color-indigo-200: #c29ffa !default;
$mds-color-indigo-300: #a370f7 !default;
$mds-color-indigo-400: #8540f5 !default;
$mds-color-indigo-500: #6610f2 !default;
$mds-color-indigo-600: #520dc2 !default;
$mds-color-indigo-700: #3d0a91 !default;
$mds-color-indigo-800: #290661 !default;
$mds-color-indigo-900: #140330 !default;
$mds-color-orange-100: #ffe3d1 !default;
$mds-color-orange-200: #ffc8a3 !default;
$mds-color-orange-300: #ffac74 !default;
$mds-color-orange-400: #ff9146 !default;
$mds-color-orange-500: #ff7518 !default;
$mds-color-orange-600: #cc5e13 !default;
$mds-color-orange-700: #99460e !default;
$mds-color-orange-800: #662f0a !default;
$mds-color-orange-900: #331705 !default;
$mds-color-pink-100: #f8d1e3 !default;
$mds-color-pink-200: #f1a3c7 !default;
$mds-color-pink-300: #e976ac !default;
$mds-color-pink-400: #e24890 !default;
$mds-color-pink-500: #db1a74 !default;
$mds-color-pink-600: #af155d !default;
$mds-color-pink-700: #831046 !default;
$mds-color-pink-800: #580a2e !default;
$mds-color-pink-900: #2c0517 !default;
$mds-color-purple-100: #dfd8e5 !default;
$mds-color-purple-200: #c0b1cb !default;
$mds-color-purple-300: #a08bb0 !default;
$mds-color-purple-400: #816496 !default;
$mds-color-purple-500: #613d7c !default;
$mds-color-purple-600: #4e3163 !default;
$mds-color-purple-700: #3a254a !default;
$mds-color-purple-800: #271832 !default;
$mds-color-purple-900: #130c19 !default;
$mds-color-red-100: #f4d6d2 !default;
$mds-color-red-200: #eaada6 !default;
$mds-color-red-300: #df8379 !default;
$mds-color-red-400: #d55a4d !default;
$mds-color-red-500: #ca3120 !default;
$mds-color-red-600: #a2271a !default;
$mds-color-red-700: #791d13 !default;
$mds-color-red-800: #51140d !default;
$mds-color-red-900: #280a06 !default;
$mds-color-teal-100: #d2f4ea !default;
$mds-color-teal-200: #a6e9d5 !default;
$mds-color-teal-300: #79dfc1 !default;
$mds-color-teal-400: #4dd4ac !default;
$mds-color-teal-500: #20c997 !default;
$mds-color-teal-600: #1aa179 !default;
$mds-color-teal-700: #13795b !default;
$mds-color-teal-800: #0d503c !default;
$mds-color-teal-900: #06281e !default;
$mds-color-yellow-100: #fcefdc !default;
$mds-color-yellow-200: #f9deb8 !default;
$mds-color-yellow-300: #f6ce95 !default;
$mds-color-yellow-400: #f3bd71 !default;
$mds-color-yellow-500: #f0ad4e !default;
$mds-color-yellow-600: #c08a3e !default;
$mds-color-yellow-700: #90682f !default;
$mds-color-yellow-800: #60451f !default;
$mds-color-yellow-900: #302310 !default;
$mds-scale-0: 0rem !default;
$mds-scale-50: 0.125rem !default;
$mds-scale-100: 0.25rem !default;
$mds-scale-200: 0.375rem !default;
$mds-scale-300: 0.5rem !default;
$mds-scale-400: 0.75rem !default;
$mds-scale-500: 0.875rem !default;
$mds-scale-600: 1rem !default;
$mds-scale-700: 1.25rem !default;
$mds-scale-800: 1.5rem !default;
$mds-scale-900: 1.75rem !default;
$mds-scale-1000: 2rem !default;
$mds-scale-1100: 2.5rem !default;
$mds-scale-1200: 3rem !default;
$mds-scale-1300: 3.5rem !default;
$mds-scale-1400: 4rem !default;
$mds-scale-1500: 4.5rem !default;
$mds-scale-1600: 5rem !default;
$mds-scale-1700: 6rem !default;
$mds-scale-1800: 50rem !default;
$mds-typography-font-family-monospace: Menlo !default;
$mds-typography-font-family-sans-serif: Roboto !default;
$mds-typography-font-size-0: 0rem !default;
$mds-typography-font-size-1: 1rem !default;
$mds-typography-font-size-2: 2rem !default;
$mds-typography-font-size-0-875: 0.875rem !default;
$mds-typography-font-size-1-25: 1.25rem !default;
$mds-typography-font-size-1-5: 1.5rem !default;
$mds-typography-font-size-1-75: 1.75rem !default;
$mds-typography-font-size-2-5: 2.5rem !default;
$mds-typography-font-weight-black: 900 !default;
$mds-typography-font-weight-bold: 700 !default;
$mds-typography-font-weight-extrabold: 800 !default;
$mds-typography-font-weight-extralight: 200 !default;
$mds-typography-font-weight-light: 300 !default;
$mds-typography-font-weight-medium: 500 !default;
$mds-typography-font-weight-regular: 400 !default;
$mds-typography-font-weight-semibold: 600 !default;
$mds-typography-font-weight-thin: 100 !default;
$mds-typography-letter-spacing-none: 0rem !default; // Default, no tracking
$mds-typography-line-height-displays-d1: 6rem !default;
$mds-typography-line-height-displays-d2: 5.4rem !default;
$mds-typography-line-height-displays-d3: 4.8rem !default;
$mds-typography-line-height-displays-d4: 4.2rem !default;
$mds-typography-line-height-displays-d5: 3.6rem !default;
$mds-typography-line-height-displays-d6: 3rem !default;
$mds-typography-line-height-headings-h1: 3rem !default;
$mds-typography-line-height-headings-h2: 2.4rem !default;
$mds-typography-line-height-headings-h3: 2.1rem !default;
$mds-typography-line-height-headings-h4: 1.8rem !default;
$mds-typography-line-height-headings-h5: 1.5rem !default;
$mds-typography-line-height-headings-h6: 1.2rem !default;
$mds-typography-line-height-paragraph-base: 1.5rem !default;
$mds-typography-line-height-paragraph-lg: 2.5rem !default;
$mds-typography-line-height-paragraph-sm: 1.0875rem !default;
@@ -0,0 +1,12 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-color-lg: rgba(0, 0, 0, 0.2) !default;
$mds-color-md: rgba(0, 0, 0, 0.2) !default;
$mds-color-sm: rgba(0, 0, 0, 0.1) !default;
$mds-blur-lg: 3rem !default;
$mds-blur-md: 1rem !default;
$mds-blur-sm: 0.25rem !default;
$mds-offset-lg: 1rem !default;
$mds-offset-md: 0.5rem !default;
$mds-offset-sm: 0.125rem !default;
@@ -0,0 +1,10 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-icons-lg: 1.25rem !default;
$mds-icons-md: 1rem !default;
$mds-icons-sm: 0.75rem !default;
$mds-icons-xl: 1.5rem !default;
$mds-icons-xs: 0.5rem !default;
$mds-icons-xxl: 2rem !default;
$mds-icons-xxxl: 3rem !default;
@@ -0,0 +1,11 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-spacing-lg: 1.25rem !default;
$mds-spacing-md: 1rem !default;
$mds-spacing-none: 0rem !default;
$mds-spacing-sm: 0.75rem !default;
$mds-spacing-xl: 2rem !default;
$mds-spacing-xs: 0.5rem !default;
$mds-spacing-xxl: 3rem !default;
$mds-spacing-xxs: 0.25rem !default;
@@ -0,0 +1,44 @@
// THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
$mds-font-family-base: Roboto !default; // Default typeface for all UI text. Ensures global consistency.
$mds-font-family-code: Menlo !default; // Typeface for code, preformatted text, or monospace contexts.
$mds-font-size-displays-1: 5rem !default; // Display style, largest.
$mds-font-size-displays-2: 4.5rem !default; // Display style, extra-large.
$mds-font-size-displays-3: 4rem !default; // Display style, large.
$mds-font-size-displays-4: 3.5rem !default; // Display style, medium-large.
$mds-font-size-displays-5: 3rem !default; // Display style, medium.
$mds-font-size-displays-6: 2.5rem !default; // Display style, smaller display.
$mds-font-size-headings-1: 2.5rem !default; // Font size for H1 headings.
$mds-font-size-headings-2: 2rem !default; // Font size for H2 headings.
$mds-font-size-headings-3: 1.75rem !default; // Font size for H3 headings.
$mds-font-size-headings-4: 1.5rem !default; // Font size for H4 headings.
$mds-font-size-headings-5: 1.25rem !default; // Font size for H5 headings.
$mds-font-size-headings-6: 1rem !default; // Font size for H6 headings.
$mds-font-size-paragraph-default: 1rem !default; // Base size for body text.
$mds-font-size-paragraph-lead: 1.25rem !default; // Slightly larger body text, for lead paragraphs.
$mds-font-size-paragraph-small: 0.875rem !default; // Reduced size for secondary text.
$mds-font-weight-bold: 700 !default;
$mds-font-weight-light: 300 !default;
$mds-font-weight-medium: 500 !default;
$mds-font-weight-regular: 400 !default;
$mds-font-weight-semibold: 600 !default;
$mds-letter-spacing-default: 0rem !default; // Standard tracking for all texts.
$mds-line-height-displays-1: 6rem !default;
$mds-line-height-displays-2: 5.4rem !default;
$mds-line-height-displays-3: 4.8rem !default;
$mds-line-height-displays-4: 4.2rem !default;
$mds-line-height-displays-5: 3.6rem !default;
$mds-line-height-displays-6: 3rem !default;
$mds-line-height-headings-1: 3rem !default; // Tight line height for headings.
$mds-line-height-headings-2: 2.4rem !default; // Tight line height for headings.
$mds-line-height-headings-3: 2.1rem !default; // Tight line height for headings.
$mds-line-height-headings-4: 1.8rem !default; // Tight line height for headings.
$mds-line-height-headings-5: 1.5rem !default; // Tight line height for headings.
$mds-line-height-headings-6: 1.2rem !default; // Tight line height for headings.
$mds-line-height-paragraph-default: 1.5rem !default; // Comfortable line height for paragraphs.
$mds-line-height-paragraph-lead: 2.5rem !default; // Extended line height for large body text.
$mds-line-height-paragraph-small: 1.0875rem !default; // Compact line height for small text.
$mds-margin-bottom-display: 0rem !default; // Default margin below a Displays.
$mds-margin-bottom-heading: 0.5rem !default; // Default margin below a Headings.
$mds-margin-bottom-paragraph: 1rem !default; // Default margin below a paragraph.
+25 -21
View File
@@ -2,32 +2,36 @@
// Bootstrap variables
//
// Import Moodle Design System tokens.
// Must be imported before Bootstrap so that the design system tokens can be used to override Bootstrap variables.
@import "design-system";
// Prefix for all CSS variables
$prefix: bs- !default;
// Colors
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #8f959e !default;
$gray-600: #6a737b !default;
$gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #1d2125 !default;
$black: #000 !default;
$white: $mds-color-gray-white !default;
$gray-100: $mds-color-gray-100 !default;
$gray-200: $mds-color-gray-200 !default;
$gray-300: $mds-color-gray-300 !default;
$gray-400: $mds-color-gray-400 !default;
$gray-500: $mds-color-gray-500 !default;
$gray-600: $mds-color-gray-600 !default;
$gray-700: $mds-color-gray-700 !default;
$gray-800: $mds-color-gray-800 !default;
$gray-900: $mds-color-gray-900 !default;
$black: $mds-color-gray-black !default;
$blue: #0f6cbf !default;
$indigo: #6610f2 !default;
$purple: #613d7c !default;
$pink: #db1a74 !default;
$red: #ca3120 !default;
$orange: #ff7518 !default;
$yellow: #f0ad4e !default;
$green: #357a32 !default;
$teal: #20c997 !default;
$cyan: #008196 !default;
$blue: $mds-color-blue-500 !default;
$indigo: $mds-color-indigo-500 !default;
$purple: $mds-color-purple-500 !default;
$pink: $mds-color-pink-500 !default;
$red: $mds-color-red-500 !default;
$orange: $mds-color-orange-500 !default;
$yellow: $mds-color-yellow-500 !default;
$green: $mds-color-green-500 !default;
$teal: $mds-color-teal-500 !default;
$cyan: $mds-color-cyan-500 !default;
$primary: $blue !default;
$secondary: $gray-400 !default;
File diff suppressed because it is too large Load Diff
+11
View File
@@ -50,4 +50,15 @@
<copyright>2023 Fonticons, Inc</copyright>
</copyrights>
</library>
<library>
<location>scss/design-system</location>
<name>@moodlehq/design-system</name>
<description>The Moodle HQ design system based on React</description>
<version>2.1.0</version>
<license>GNU</license>
<repository>https://github.com/moodlehq/design-system</repository>
<copyrights>
<copyright>Moodle HQ</copyright>
</copyrights>
</library>
</libraries>
+51
View File
@@ -0,0 +1,51 @@
import chalk from 'chalk';
import fs from "fs-extra";
import path from "path";
import {
createPackageReadme,
getPackageVersion,
getRootDir,
updateThirdPartyLibsXml,
} from './lib/util.mjs';
/**
* Update the @moodlehq/design-system bundle and tokens in the lib and public folders.
* Also updates the version in thirdpartylibs.xml files.
* The version is read from the npm-shrinkwrap.json file.
*/
async function init() {
const rootDir = getRootDir();
const DS_VERSION = getPackageVersion('@moodlehq/design-system');
const nodeModuleRoot = path.join(rootDir, 'node_modules', '@moodlehq', 'design-system');
const themeRoot = path.join(rootDir, 'public', 'theme', 'boost');
const themeDesignSystemRoot = path.join(themeRoot, 'scss', 'design-system');
console.log(chalk.blue.bold.underline('Updating @moodlehq/design-system bundle to version %s from Node Modules'), DS_VERSION);
console.log(chalk.blue('Removing old bundles...'));
fs.removeSync(themeDesignSystemRoot, { recursive: true, force: true });
console.log(chalk.green('Old bundles removed ✓'));
// Copy tokens into the themes.
fs.copySync(
path.join(nodeModuleRoot, 'tokens', 'scss'),
path.join(themeDesignSystemRoot, 'tokens', 'scss'),
);
console.log(chalk.green(`→ @moodlehq/design-system:${DS_VERSION} tokens ✓`));
// Create readme files in the package folders.
console.log(chalk.green(`→ Creating readme_moodle.txt files ✓`));
createPackageReadme(themeDesignSystemRoot, '@moodlehq/design-system');
// And update the version in thirdpartylibs.xml.
console.log(chalk.green(`→ Updating thirdpartylibs.xml files ✓`));
updateThirdPartyLibsXml(themeRoot, 'scss/design-system', '@moodlehq/design-system', DS_VERSION);
console.log("\nAll bundles saved" + chalk.green(" ✓"));
console.log("Done!");
}
init().catch((err) => {
console.error("Download failed:", err.message);
process.exit(1);
});