diff --git a/docs/documentation/server_development/topics/themes.adoc b/docs/documentation/server_development/topics/themes.adoc
index 647fa3f098..2ffbe6ea66 100755
--- a/docs/documentation/server_development/topics/themes.adoc
+++ b/docs/documentation/server_development/topics/themes.adoc
@@ -188,7 +188,7 @@ You will notice that the only styles being applied are those from your custom st
+
[source]
----
-styles=web_modules/@fontawesome/fontawesome-free/css/icons/all.css web_modules/@patternfly/react-core/dist/styles/base.css web_modules/@patternfly/react-core/dist/styles/app.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css css/login.css css/styles.css
+styles=css/login.css css/styles.css
----
+
NOTE: To override styles from the parent stylesheets, ensure that your stylesheet is listed last.
diff --git a/themes/pom.xml b/themes/pom.xml
index 805edb0773..6dc211cc0d 100755
--- a/themes/pom.xml
+++ b/themes/pom.xml
@@ -17,9 +17,8 @@
src/main/resources/theme/keycloak.v2/account/src
${project.basedir}/src/main/resources/theme/keycloak/common/resources/node_modules
- ${project.basedir}/src/main/resources/theme/keycloak/common/resources/web_modules
- ${project.basedir}/src/main/resources/theme/keycloak.v2/account/src/node_modules
- ${project.basedir}/src/main/resources/theme/keycloak.v2/account/src/web_modules
+ ${project.basedir}/src/main/resources/theme/keycloak.v2/account/src/node_modules
+ ${project.basedir}/src/main/resources/theme/keycloak.v2/account/src/web_modules
diff --git a/themes/src/main/resources/theme/keycloak.v2/account/index.ftl b/themes/src/main/resources/theme/keycloak.v2/account/index.ftl
index 8a4a81eb49..a5b346e663 100644
--- a/themes/src/main/resources/theme/keycloak.v2/account/index.ftl
+++ b/themes/src/main/resources/theme/keycloak.v2/account/index.ftl
@@ -107,10 +107,10 @@
var content = <#include "resources/content.json"/>
-
-
-
-
+
+
+
+
<#if properties.styles?has_content>
<#list properties.styles?split(' ') as style>
diff --git a/themes/src/main/resources/theme/keycloak.v2/account/resources/.gitignore b/themes/src/main/resources/theme/keycloak.v2/account/resources/.gitignore
index a36187a0e1..7564d4cd57 100644
--- a/themes/src/main/resources/theme/keycloak.v2/account/resources/.gitignore
+++ b/themes/src/main/resources/theme/keycloak.v2/account/resources/.gitignore
@@ -10,5 +10,3 @@
!content.json
public/app.css
-public/base.css
-public/assets/
\ No newline at end of file
diff --git a/themes/src/main/resources/theme/keycloak.v2/account/src/.babelrc b/themes/src/main/resources/theme/keycloak.v2/account/src/.babelrc
index 455e60f25c..875902003d 100644
--- a/themes/src/main/resources/theme/keycloak.v2/account/src/.babelrc
+++ b/themes/src/main/resources/theme/keycloak.v2/account/src/.babelrc
@@ -3,7 +3,7 @@
[
"snowpack/assets/babel-plugin.js",
{
- "webModulesUrl": "../common/keycloak/web_modules",
+ "webModulesUrl": "./resources/web_modules",
"moduleResolution": "node"
}
],
diff --git a/themes/src/main/resources/theme/keycloak.v2/account/src/package.json b/themes/src/main/resources/theme/keycloak.v2/account/src/package.json
index 476e6ddf99..1c9668129b 100644
--- a/themes/src/main/resources/theme/keycloak.v2/account/src/package.json
+++ b/themes/src/main/resources/theme/keycloak.v2/account/src/package.json
@@ -3,18 +3,12 @@
"version": "1.0.0",
"description": "keycloak account management written in React",
"scripts": {
- "build": "snowpack --optimize && pnpm run check-types && pnpm run babel && pnpm run move-web_modules && pnpm run copy-pf-resources",
+ "build": "snowpack --optimize && pnpm run check-types && pnpm run babel && pnpm run move-web_modules",
"babel": "babel --source-maps --extensions \".js,.ts,.tsx\" app/ --out-dir ../resources/",
"babel:watch": "pnpm run babel -- --watch",
"check-types": "tsc",
"check-types:watch": "pnpm run check-types -- -w",
- "move-web_modules": "shx mv web_modules ../../../keycloak/common/resources",
- "copy-pf-resources": "pnpm run move-app-css && pnpm run copy-base-css && pnpm run copy-fonts && pnpm run copy-pficon && pnpm run copy-addons",
- "move-app-css": "shx mkdir -p ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles && shx mv app.css ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles",
- "copy-base-css": "shx mkdir -p ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles && shx cp node_modules/@patternfly/react-core/dist/styles/base.css ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles",
- "copy-fonts": "shx mkdir -p ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts && shx cp -r node_modules/@patternfly/react-core/dist/styles/assets/fonts/* ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/",
- "copy-pficon": "shx mkdir -p ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/pficon && shx cp node_modules/@patternfly/react-core/dist/styles/assets/pficon/pficon.woff2 ../../../keycloak/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/pficon",
- "copy-addons": "shx mkdir -p ../../../keycloak/common/resources/web_modules/@patternfly/patternfly && shx cp node_modules/@patternfly/patternfly/patternfly-addons.css ../../../keycloak/common/resources/web_modules/@patternfly/patternfly"
+ "move-web_modules": "shx mv web_modules ../resources"
},
"keywords": [],
"author": "Stan Silvert",
diff --git a/themes/src/main/resources/theme/keycloak.v2/account/src/pnpm-lock.yaml b/themes/src/main/resources/theme/keycloak.v2/account/src/pnpm-lock.yaml
index 0b5a4fb5a9..e7aa117b81 100644
--- a/themes/src/main/resources/theme/keycloak.v2/account/src/pnpm-lock.yaml
+++ b/themes/src/main/resources/theme/keycloak.v2/account/src/pnpm-lock.yaml
@@ -1607,8 +1607,8 @@ packages:
resolution: {integrity: sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==}
dev: true
- /@types/q@1.5.6:
- resolution: {integrity: sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==}
+ /@types/q@1.5.8:
+ resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==}
dev: true
/@types/react-dom@16.9.20:
@@ -1720,7 +1720,7 @@ packages:
/array-buffer-byte-length@1.0.0:
resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
is-array-buffer: 3.0.2
dev: true
@@ -1728,9 +1728,9 @@ packages:
resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
es-array-method-boxes-properly: 1.0.0
is-string: 1.0.7
dev: true
@@ -1740,10 +1740,10 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
- get-intrinsic: 1.2.1
+ es-abstract: 1.22.3
+ get-intrinsic: 1.2.2
is-array-buffer: 3.0.2
is-shared-array-buffer: 1.0.2
dev: true
@@ -1903,11 +1903,12 @@ packages:
engines: {node: '>=6'}
dev: true
- /call-bind@1.0.2:
- resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
+ /call-bind@1.0.5:
+ resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
dependencies:
- function-bind: 1.1.1
- get-intrinsic: 1.2.1
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.2
+ set-function-length: 1.1.1
dev: true
/caller-callsite@2.0.0:
@@ -2040,7 +2041,7 @@ packages:
resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==}
engines: {node: '>= 4.0'}
dependencies:
- '@types/q': 1.5.6
+ '@types/q': 1.5.8
chalk: 2.4.2
q: 1.5.1
dev: true
@@ -2329,21 +2330,21 @@ packages:
engines: {node: '>=10'}
dev: true
- /define-data-property@1.1.0:
- resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==}
+ /define-data-property@1.1.1:
+ resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.2
gopd: 1.0.1
- has-property-descriptors: 1.0.0
+ has-property-descriptors: 1.0.1
dev: true
/define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.0
- has-property-descriptors: 1.0.0
+ define-data-property: 1.1.1
+ has-property-descriptors: 1.0.1
object-keys: 1.1.1
dev: true
@@ -2421,26 +2422,26 @@ packages:
is-arrayish: 0.2.1
dev: true
- /es-abstract@1.22.2:
- resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
+ /es-abstract@1.22.3:
+ resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
arraybuffer.prototype.slice: 1.0.2
available-typed-arrays: 1.0.5
- call-bind: 1.0.2
- es-set-tostringtag: 2.0.1
+ call-bind: 1.0.5
+ es-set-tostringtag: 2.0.2
es-to-primitive: 1.2.1
function.prototype.name: 1.1.6
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.2
get-symbol-description: 1.0.0
globalthis: 1.0.3
gopd: 1.0.1
- has: 1.0.4
- has-property-descriptors: 1.0.0
+ has-property-descriptors: 1.0.1
has-proto: 1.0.1
has-symbols: 1.0.3
- internal-slot: 1.0.5
+ hasown: 2.0.0
+ internal-slot: 1.0.6
is-array-buffer: 3.0.2
is-callable: 1.2.7
is-negative-zero: 2.0.2
@@ -2449,7 +2450,7 @@ packages:
is-string: 1.0.7
is-typed-array: 1.1.12
is-weakref: 1.0.2
- object-inspect: 1.12.3
+ object-inspect: 1.13.1
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.5.1
@@ -2463,7 +2464,7 @@ packages:
typed-array-byte-offset: 1.0.0
typed-array-length: 1.0.4
unbox-primitive: 1.0.2
- which-typed-array: 1.1.11
+ which-typed-array: 1.1.13
dev: true
/es-array-method-boxes-properly@1.0.0:
@@ -2474,13 +2475,13 @@ packages:
resolution: {integrity: sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==}
dev: true
- /es-set-tostringtag@2.0.1:
- resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
+ /es-set-tostringtag@2.0.2:
+ resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.1
- has: 1.0.4
+ get-intrinsic: 1.2.2
has-tostringtag: 1.0.0
+ hasown: 2.0.0
dev: true
/es-to-primitive@1.2.1:
@@ -2582,17 +2583,17 @@ packages:
dev: true
optional: true
- /function-bind@1.1.1:
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
dev: true
/function.prototype.name@1.1.6:
resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
functions-have-names: 1.2.3
dev: true
@@ -2611,13 +2612,13 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /get-intrinsic@1.2.1:
- resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
+ /get-intrinsic@1.2.2:
+ resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
dependencies:
- function-bind: 1.1.1
- has: 1.0.4
+ function-bind: 1.1.2
has-proto: 1.0.1
has-symbols: 1.0.3
+ hasown: 2.0.0
dev: true
/get-stream@5.2.0:
@@ -2631,8 +2632,8 @@ packages:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
dev: true
/glob-parent@5.1.2:
@@ -2668,7 +2669,7 @@ packages:
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.2
dev: true
/got@10.7.0:
@@ -2724,10 +2725,10 @@ packages:
engines: {node: '>=8'}
dev: true
- /has-property-descriptors@1.0.0:
- resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
+ /has-property-descriptors@1.0.1:
+ resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
dependencies:
- get-intrinsic: 1.2.1
+ get-intrinsic: 1.2.2
dev: true
/has-proto@1.0.1:
@@ -2760,6 +2761,13 @@ packages:
type-fest: 0.8.1
dev: true
+ /hasown@2.0.0:
+ resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function-bind: 1.1.2
+ dev: true
+
/hex-color-regex@1.1.0:
resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==}
dev: true
@@ -2874,12 +2882,12 @@ packages:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: true
- /internal-slot@1.0.5:
- resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
+ /internal-slot@1.0.6:
+ resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.1
- has: 1.0.4
+ get-intrinsic: 1.2.2
+ hasown: 2.0.0
side-channel: 1.0.4
dev: true
@@ -2902,8 +2910,8 @@ packages:
/is-array-buffer@3.0.2:
resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
is-typed-array: 1.1.12
dev: true
@@ -2932,7 +2940,7 @@ packages:
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
has-tostringtag: 1.0.0
dev: true
@@ -3025,7 +3033,7 @@ packages:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
has-tostringtag: 1.0.0
dev: true
@@ -3036,7 +3044,7 @@ packages:
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
dev: true
/is-stream@2.0.1:
@@ -3062,13 +3070,13 @@ packages:
resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
engines: {node: '>= 0.4'}
dependencies:
- which-typed-array: 1.1.11
+ which-typed-array: 1.1.13
dev: true
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
dev: true
/isarray@0.0.1:
@@ -3356,8 +3364,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
- /object-inspect@1.12.3:
- resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ /object-inspect@1.13.1:
+ resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
dev: true
/object-keys@1.1.1:
@@ -3369,7 +3377,7 @@ packages:
resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
has-symbols: 1.0.3
object-keys: 1.1.1
@@ -3380,9 +3388,9 @@ packages:
engines: {node: '>= 0.8'}
dependencies:
array.prototype.reduce: 1.0.6
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
safe-array-concat: 1.0.1
dev: true
@@ -3390,9 +3398,9 @@ packages:
resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
dev: true
/once@1.4.0:
@@ -4018,7 +4026,7 @@ packages:
resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
set-function-name: 2.0.1
dev: true
@@ -4164,8 +4172,8 @@ packages:
resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
engines: {node: '>=0.4'}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
has-symbols: 1.0.3
isarray: 2.0.5
dev: true
@@ -4185,8 +4193,8 @@ packages:
/safe-regex-test@1.0.0:
resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
is-regex: 1.1.4
dev: true
@@ -4218,13 +4226,23 @@ packages:
randombytes: 2.1.0
dev: true
+ /set-function-length@1.1.1:
+ resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.1
+ get-intrinsic: 1.2.2
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+ dev: true
+
/set-function-name@2.0.1:
resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.0
+ define-data-property: 1.1.1
functions-have-names: 1.2.3
- has-property-descriptors: 1.0.0
+ has-property-descriptors: 1.0.1
dev: true
/shelljs@0.8.5:
@@ -4249,9 +4267,9 @@ packages:
/side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
- object-inspect: 1.12.3
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ object-inspect: 1.13.1
dev: true
/signal-exit@3.0.7:
@@ -4356,25 +4374,25 @@ packages:
resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
dev: true
/string.prototype.trimend@1.0.7:
resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
dev: true
/string.prototype.trimstart@1.0.7:
resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
dev: true
/string_decoder@1.1.1:
@@ -4554,8 +4572,8 @@ packages:
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
- get-intrinsic: 1.2.1
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
is-typed-array: 1.1.12
dev: true
@@ -4563,7 +4581,7 @@ packages:
resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.12
@@ -4574,7 +4592,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
- call-bind: 1.0.2
+ call-bind: 1.0.5
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.12
@@ -4583,7 +4601,7 @@ packages:
/typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
for-each: 0.3.3
is-typed-array: 1.1.12
dev: true
@@ -4597,7 +4615,7 @@ packages:
/unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
dependencies:
- call-bind: 1.0.2
+ call-bind: 1.0.5
has-bigints: 1.0.2
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
@@ -4669,7 +4687,7 @@ packages:
resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==}
dependencies:
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.3
has-symbols: 1.0.3
object.getownpropertydescriptors: 2.1.7
dev: true
@@ -4710,12 +4728,12 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-typed-array@1.1.11:
- resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
+ /which-typed-array@1.1.13:
+ resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
- call-bind: 1.0.2
+ call-bind: 1.0.5
for-each: 0.3.3
gopd: 1.0.1
has-tostringtag: 1.0.0
diff --git a/themes/src/main/resources/theme/keycloak.v2/account/src/snowpack.config.js b/themes/src/main/resources/theme/keycloak.v2/account/src/snowpack.config.js
index ab8ee0c3ec..a5952cfea7 100644
--- a/themes/src/main/resources/theme/keycloak.v2/account/src/snowpack.config.js
+++ b/themes/src/main/resources/theme/keycloak.v2/account/src/snowpack.config.js
@@ -4,7 +4,7 @@ module.exports = {
rollup: {
plugins: [
postcss({
- extract: 'app.css'
+ extract: '../resources/public/app.css'
})
]
}
diff --git a/themes/src/main/resources/theme/keycloak/common/resources/package.json b/themes/src/main/resources/theme/keycloak/common/resources/package.json
index cd01616854..db9597aff5 100644
--- a/themes/src/main/resources/theme/keycloak/common/resources/package.json
+++ b/themes/src/main/resources/theme/keycloak/common/resources/package.json
@@ -6,6 +6,8 @@
"build:clean": "shx rm -rf vendor"
},
"dependencies": {
+ "@patternfly/patternfly": "^4.224.5",
+ "@patternfly/react-core": "^4.278.1",
"jquery": "^3.7.1",
"patternfly": "^3.59.5",
"react": "^18.2.0",
diff --git a/themes/src/main/resources/theme/keycloak/common/resources/pnpm-lock.yaml b/themes/src/main/resources/theme/keycloak/common/resources/pnpm-lock.yaml
index d1cab5ac0b..a1b7f57f85 100644
--- a/themes/src/main/resources/theme/keycloak/common/resources/pnpm-lock.yaml
+++ b/themes/src/main/resources/theme/keycloak/common/resources/pnpm-lock.yaml
@@ -5,6 +5,12 @@ settings:
excludeLinksFromLockfile: false
dependencies:
+ '@patternfly/patternfly':
+ specifier: ^4.224.5
+ version: 4.224.5
+ '@patternfly/react-core':
+ specifier: ^4.278.1
+ version: 4.278.1(react-dom@18.2.0)(react@18.2.0)
jquery:
specifier: ^3.7.1
version: 3.7.1
@@ -77,6 +83,45 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
+ /@patternfly/patternfly@4.224.5:
+ resolution: {integrity: sha512-io0huj+LCP5FgDZJDaLv1snxktTYs8iCFz/W1VDRneYoebNHLmGfQdF7Yn8bS6PF7qmN6oJKEBlq3AjmmE8vdA==}
+ dev: false
+
+ /@patternfly/react-core@4.278.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-BZ+A0r/xLWXLxE5/b8FTVxRI/KokDlTQOS0ub49ts7nv++vmZS7kU4tn2bfuh7RVw/BfW4CNtoMzeJkM8GpaWw==}
+ peerDependencies:
+ react: ^16.8 || ^17 || ^18
+ react-dom: ^16.8 || ^17 || ^18
+ dependencies:
+ '@patternfly/react-icons': 4.93.7(react-dom@18.2.0)(react@18.2.0)
+ '@patternfly/react-styles': 4.92.8
+ '@patternfly/react-tokens': 4.94.7
+ focus-trap: 6.9.2
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-dropzone: 9.0.0(react@18.2.0)
+ tippy.js: 5.1.2
+ tslib: 2.6.2
+ dev: false
+
+ /@patternfly/react-icons@4.93.7(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-3kr35dgba7Qz5CSzmfH0rIjSvBC5xkmiknf3SvVUVxaiVA7KRowID8viYHeZlf3v/Oa3sEewaH830Q0t+nWsZQ==}
+ peerDependencies:
+ react: ^16.8 || ^17 || ^18
+ react-dom: ^16.8 || ^17 || ^18
+ dependencies:
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@patternfly/react-styles@4.92.8:
+ resolution: {integrity: sha512-K4lUU8O4HiCX9NeuNUIrPgN3wlGERCxJVio+PAjd8hpJD/PKnjFfOJ9u6/Cii3qLy/5ZviWPRNHbGiwA/+YUhg==}
+ dev: false
+
+ /@patternfly/react-tokens@4.94.7:
+ resolution: {integrity: sha512-h+ducOLDMSxcuec3+YY3x+stM5ZUSnrl/lC/eVmjypil2El08NuE2MNEPMQWdhrod6VRRZFMNqZw/m82iv6U1A==}
+ dev: false
+
/@rollup/plugin-commonjs@25.0.7(rollup@4.5.1):
resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==}
engines: {node: '>=14.0.0'}
@@ -519,6 +564,13 @@ packages:
hasBin: true
dev: true
+ /attr-accept@1.1.3:
+ resolution: {integrity: sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ core-js: 2.6.12
+ dev: false
+
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
@@ -616,6 +668,12 @@ packages:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
+ /core-js@2.6.12:
+ resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
+ deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
+ requiresBuild: true
+ dev: false
+
/d3@3.5.17:
resolution: {integrity: sha512-yFk/2idb8OHPKkbAL8QaOaqENNoMhIaSHZerk3oQsECwkObkCpJyjYwCe+OHiq6UEdhe1m8ZGARRRO3ljFjlKg==}
requiresBuild: true
@@ -700,6 +758,19 @@ packages:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: true
+ /file-selector@0.1.19:
+ resolution: {integrity: sha512-kCWw3+Aai8Uox+5tHCNgMFaUdgidxvMnLWO6fM5sZ0hA2wlHP5/DHGF0ECe84BiB95qdJbKNEJhWKVDvMN+JDQ==}
+ engines: {node: '>= 10'}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
+ /focus-trap@6.9.2:
+ resolution: {integrity: sha512-gBEuXOPNOKPrLdZpMFUSTyIo1eT2NSZRrwZ9r/0Jqw5tmT3Yvxfmu8KBHw8xW2XQkw6E/JoG+OlEq7UDtSUNgw==}
+ dependencies:
+ tabbable: 5.3.3
+ dev: false
+
/font-awesome-sass@4.7.0:
resolution: {integrity: sha512-apO2Nw3XP/Zv7fLxa+MnPnvJ/GdkH6qWrLrtN5oQrFL7RPprzHKROjN94jgyoxM+T7PQBhY9F/SwOKbBaLyXxg==}
requiresBuild: true
@@ -864,6 +935,11 @@ packages:
dev: false
optional: true
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
@@ -931,6 +1007,29 @@ packages:
engines: {node: '>=8.6'}
dev: true
+ /popper.js@1.16.1:
+ resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==}
+ deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
+ dev: false
+
+ /prop-types-extra@1.1.1(react@18.2.0):
+ resolution: {integrity: sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==}
+ peerDependencies:
+ react: '>=0.14.0'
+ dependencies:
+ react: 18.2.0
+ react-is: 16.13.1
+ warning: 4.0.3
+ dev: false
+
+ /prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+ dev: false
+
/randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
dependencies:
@@ -947,6 +1046,23 @@ packages:
scheduler: 0.23.0
dev: false
+ /react-dropzone@9.0.0(react@18.2.0):
+ resolution: {integrity: sha512-wZ2o9B2qkdE3RumWhfyZT9swgJYJPeU5qHEcMU8weYpmLex1eeWX0CC32/Y0VutB+BBi2D+iePV/YZIiB4kZGw==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ react: '>=0.14.0'
+ dependencies:
+ attr-accept: 1.1.3
+ file-selector: 0.1.19
+ prop-types: 15.8.1
+ prop-types-extra: 1.1.1(react@18.2.0)
+ react: 18.2.0
+ dev: false
+
+ /react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+ dev: false
+
/react@18.2.0:
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
engines: {node: '>=0.10.0'}
@@ -1046,6 +1162,10 @@ packages:
engines: {node: '>= 0.4'}
dev: true
+ /tabbable@5.3.3:
+ resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==}
+ dev: false
+
/terser@5.24.0:
resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==}
engines: {node: '>=10'}
@@ -1057,6 +1177,22 @@ packages:
source-map-support: 0.5.21
dev: true
+ /tippy.js@5.1.2:
+ resolution: {integrity: sha512-Qtrv2wqbRbaKMUb6bWWBQWPayvcDKNrGlvihxtsyowhT7RLGEh1STWuy6EMXC6QLkfKPB2MLnf8W2mzql9VDAw==}
+ dependencies:
+ popper.js: 1.16.1
+ dev: false
+
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: false
+
+ /warning@4.0.3:
+ resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
+ dependencies:
+ loose-envify: 1.4.0
+ dev: false
+
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
diff --git a/themes/src/main/resources/theme/keycloak/login/theme.properties b/themes/src/main/resources/theme/keycloak/login/theme.properties
index 27edf80c59..90fdd2b50d 100644
--- a/themes/src/main/resources/theme/keycloak/login/theme.properties
+++ b/themes/src/main/resources/theme/keycloak/login/theme.properties
@@ -2,7 +2,7 @@ parent=base
import=common/keycloak
styles=css/login.css
-stylesCommon=web_modules/@patternfly/react-core/dist/styles/base.css web_modules/@patternfly/react-core/dist/styles/app.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css
+stylesCommon=node_modules/@patternfly/patternfly/patternfly.min.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css
meta=viewport==width=device-width,initial-scale=1