diff --git a/css/backoffice/base/_base.scss b/css/backoffice/base/_base.scss
index 0e64928b6..c142e6b06 100644
--- a/css/backoffice/base/_base.scss
+++ b/css/backoffice/base/_base.scss
@@ -3,18 +3,18 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-scrollbar--scrollbar-width: 8px !default;
+$ibo-scrollbar--scrollbar-width: $common-scrollbar--scrollbar-width !default;
$ibo-scrollbar--scrollbar-height: $ibo-scrollbar--scrollbar-width !default; /* For horizontal scrollbars */
-$ibo-scrollbar--scrollbar-track-background-color: $ibo-color-transparent !default;
-$ibo-scrollbar--scrollbar-track-border-radius: $ibo-border-radius-500 !default;
-$ibo-scrollbar--scrollbar-thumb-background-color: $ibo-color-grey-300 !default;
+$ibo-scrollbar--scrollbar-track-background-color: $common-scrollbar--scrollbar-track-background-color !default;
+$ibo-scrollbar--scrollbar-track-border-radius: $common-scrollbar--scrollbar-track-border-radius !default;
+$ibo-scrollbar--scrollbar-thumb-background-color: $common-scrollbar--scrollbar-thumb-background-color !default;
$ibo-scrollbar--scrollbar-thumb-border: none !default;
-$ibo-scrollbar--scrollbar-thumb-border-radius: $ibo-border-radius-500 !default;
+$ibo-scrollbar--scrollbar-thumb-border-radius: $common-scrollbar--scrollbar-thumb-border-radius !default;
-$ibo-svg-illustration--fill: $ibo-color-primary-500 !default;
+$ibo-svg-illustration--fill: $common-svg-illustration--fill !default;
-$ibo-content-block--background-color: $ibo-color-white-100 !default;
-$ibo-content-block--border: 1px solid $ibo-color-grey-400 !default;
+$ibo-content-block--background-color: $common-content-block--background-color !default;
+$ibo-content-block--border: $common-content-block--border !default;
/* CSS variables */
:root{
diff --git a/css/backoffice/base/_typography.scss b/css/backoffice/base/_typography.scss
index c5d5159ed..3d23d535c 100644
--- a/css/backoffice/base/_typography.scss
+++ b/css/backoffice/base/_typography.scss
@@ -4,147 +4,3 @@
*/
/* This is an overload of the default lib. stylesheet to use local fonts instead of the CDN */
-@font-face {
- font-family: Raleway;
- font-weight: 100;
- font-style: normal;
- font-display: swap;
- src: local('Raleway Thin'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-100-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 100;
- font-style: italic;
- font-display: swap;
- src: local('Raleway Thin'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-100-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 200;
- font-style: normal;
- font-display: swap;
- src: local('Raleway ExtraLight'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-200-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 200;
- font-style: italic;
- font-display: swap;
- src: local('Raleway ExtraLight'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-200-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 300;
- font-style: normal;
- font-display: swap;
- src: local('Raleway Light'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-300-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 300;
- font-style: italic;
- font-display: swap;
- src: local('Raleway Light'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-300-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 400;
- font-style: normal;
- font-display: swap;
- src: local('Raleway'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-400-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 400;
- font-style: italic;
- font-display: swap;
- src: local('Raleway'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-400-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 500;
- font-style: normal;
- font-display: swap;
- src: local('Raleway Medium'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-500-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 500;
- font-style: italic;
- font-display: swap;
- src: local('Raleway Medium'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-500-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 600;
- font-style: normal;
- font-display: swap;
- src: local('Raleway SemiBold'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-600-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 600;
- font-style: italic;
- font-display: swap;
- src: local('Raleway SemiBold'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-600-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 700;
- font-style: normal;
- font-display: swap;
- src: local('Raleway'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-700-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 700;
- font-style: italic;
- font-display: swap;
- src: local('Raleway'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-700-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 800;
- font-style: normal;
- font-display: swap;
- src: local('Raleway ExtraBold'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-800-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 800;
- font-style: italic;
- font-display: swap;
- src: local('Raleway ExtraBold'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-800-italic.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 900;
- font-style: normal;
- font-display: swap;
- src: local('Raleway Black'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-900-normal.woff') format('woff'),
-}
-@font-face {
- font-family: Raleway;
- font-weight: 900;
- font-style: italic;
- font-display: swap;
- src: local('Raleway Black'),
- url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-900-italic.woff') format('woff'),
-}
diff --git a/css/backoffice/datamodel/_action.scss b/css/backoffice/datamodel/_action.scss
index 0259dd4f1..a11b1df0e 100644
--- a/css/backoffice/datamodel/_action.scss
+++ b/css/backoffice/datamodel/_action.scss
@@ -14,8 +14,8 @@ $ibo-dm-class--Action--complementary-color: $ibo-color-white-100 !default;
.ibo-dm-class--Action {
--ibo-main-color: #{$ibo-dm-class--Action--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-class--Action--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-class--Action--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-class--Action--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-class--Action--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-class--Action--complementary-color};
}
@@ -35,8 +35,8 @@ $ibo-dm-enum--Action-status-enabled--complementary-color: $ibo-lifecycle-active-
.ibo-dm-enum--Action-status-enabled {
--ibo-main-color: #{$ibo-dm-enum--Action-status-enabled--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--Action-status-enabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--Action-status-enabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--Action-status-enabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--Action-status-enabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-enum--Action-status-enabled--complementary-color};
}
@@ -56,8 +56,8 @@ $ibo-dm-enum--Action-status-disabled--complementary-color: $ibo-lifecycle-frozen
.ibo-dm-enum--Action-status-disabled {
--ibo-main-color: #{$ibo-dm-enum--Action-status-disabled--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--Action-status-disabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--Action-status-disabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--Action-status-disabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--Action-status-disabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-enum--Action-status-disabled--complementary-color};
}
@@ -78,8 +78,8 @@ $ibo-dm-enum--Action-status-test--complementary-color: $ibo-lifecycle-inactive-s
.ibo-dm-enum--Action-status-test {
--ibo-main-color: #{$ibo-dm-enum--Action-status-test--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--Action-status-test--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--Action-status-test--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--Action-status-test--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--Action-status-test--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-enum--Action-status-test--complementary-color};
}
diff --git a/css/backoffice/datamodel/_user.scss b/css/backoffice/datamodel/_user.scss
index ed17bbb3d..7bdad16ea 100644
--- a/css/backoffice/datamodel/_user.scss
+++ b/css/backoffice/datamodel/_user.scss
@@ -14,8 +14,8 @@ $ibo-dm-class--User--complementary-color: $ibo-color-white-100 !default;
.ibo-dm-class--User {
--ibo-main-color: #{$ibo-dm-class--User--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-class--User--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-class--User--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-class--User--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-class--User--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-class--User--complementary-color};
}
.ibo-dm-class-alt--User {
@@ -34,8 +34,8 @@ $ibo-dm-enum--User-status-enabled--complementary-color: $ibo-lifecycle-active-st
.ibo-dm-enum--User-status-enabled {
--ibo-main-color: #{$ibo-dm-enum--User-status-enabled--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--User-status-enabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--User-status-enabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--User-status-enabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--User-status-enabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-enum--User-status-enabled--complementary-color};
}
.ibo-dm-enum-alt--User-status-enabled {
@@ -54,8 +54,8 @@ $ibo-dm-enum--User-status-disabled--complementary-color: $ibo-lifecycle-inactive
.ibo-dm-enum--User-status-disabled {
--ibo-main-color: #{$ibo-dm-enum--User-status-disabled--main-color};
- --ibo-main-color--100: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--User-status-disabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
- --ibo-main-color--900: #{ibo-adjust-alpha(ibo-adjust-lightness($ibo-dm-enum--User-status-disabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
+ --ibo-main-color--100: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--User-status-disabled--main-color, $ibo-color-base-lightness-100), $ibo-color-base-opacity-for-lightness-100)};
+ --ibo-main-color--900: #{common-adjust-alpha(common-adjust-lightness($ibo-dm-enum--User-status-disabled--main-color, $ibo-color-base-lightness-900), $ibo-color-base-opacity-for-lightness-900)};
--ibo-complementary-color: #{$ibo-dm-enum--User-status-disabled--complementary-color};
}
.ibo-dm-enum-alt--User-status-disabled {
diff --git a/css/backoffice/main.scss b/css/backoffice/main.scss
index 05819bfa8..35efcf72a 100644
--- a/css/backoffice/main.scss
+++ b/css/backoffice/main.scss
@@ -2,7 +2,7 @@
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
-
+@import "../common/main";
@import "utils/all";
@import "vendors/all";
@import "base/all";
diff --git a/css/backoffice/utils/functions/_color.scss b/css/backoffice/utils/functions/_color.scss
index 720900bb6..e71286841 100644
--- a/css/backoffice/utils/functions/_color.scss
+++ b/css/backoffice/utils/functions/_color.scss
@@ -7,28 +7,20 @@
* Adjust the lightness of $sColor to the absolute $fTargetLightness value.
* It is different than lighten() / darken() that shift the current lightness by X%
*
+ * @deprecated Use common-adjust-lightness() instead
* @return Modified color value in HSLA format
*/
@function ibo-adjust-lightness($sColor, $fTargetLightness) {
- $iHue: hue($sColor);
- $fSaturation: saturation($sColor);
- $fLightness: lightness($sColor);
- $fAlpha: alpha($sColor);
-
- @return hsla($iHue, $fSaturation, $fTargetLightness, $fAlpha);
+ @return common-adjust-lightness($sColor, $fTargetLightness);
}
/**
* Adjust the alpha chanel (opacity) of $sColor to the absolute $fTargetAlpha value.
* It is different than opacify() / transparentize() that shift the current alpha value by X%
*
+ * @deprecated Use common-adjust-alpha() instead
* @return Modified color value in HSLA format
*/
@function ibo-adjust-alpha($sColor, $fTargetAlpha) {
- $iHue: hue($sColor);
- $fSaturation: saturation($sColor);
- $fLightness: lightness($sColor);
- $fAlpha: alpha($sColor);
-
- @return hsla($iHue, $fSaturation, $fLightness, $fTargetAlpha);
+ @return common-adjust-alpha($sColor, $fTargetAlpha);
}
\ No newline at end of file
diff --git a/css/backoffice/utils/helpers/_class-icon.scss b/css/backoffice/utils/helpers/_class-icon.scss
index 20d31b503..f572988bd 100644
--- a/css/backoffice/utils/helpers/_class-icon.scss
+++ b/css/backoffice/utils/helpers/_class-icon.scss
@@ -3,9 +3,9 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-class-icon--small--size: 32px !default;
-$ibo-class-icon--medium--size: 48px !default;
-$ibo-class-icon--large--size: 64px !default;
+$ibo-class-icon--small--size: $common-class-icon--small--size !default;
+$ibo-class-icon--medium--size: $common-class-icon--medium--size !default;
+$ibo-class-icon--large--size: $common-class-icon--large--size !default;
.ibo-class-icon{
&.ibo-is-small{
diff --git a/css/backoffice/utils/helpers/_color.scss b/css/backoffice/utils/helpers/_color.scss
index 53a21723a..82e71ce52 100644
--- a/css/backoffice/utils/helpers/_color.scss
+++ b/css/backoffice/utils/helpers/_color.scss
@@ -3,24 +3,7 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-text-colors: (
- 'primary': $ibo-color-primary-800,
- 'secondary': $ibo-color-secondary-800,
- 'neutral': $ibo-color-secondary-800,
- 'information': $ibo-color-information-800,
- 'success': $ibo-color-success-800,
- 'failure': $ibo-color-danger-800,
- 'warning': $ibo-color-warning-800,
- 'danger': $ibo-color-danger-800,
- 'grey' : $ibo-color-grey-800,
- 'blue-grey': $ibo-color-blue-grey-800,
- 'blue': $ibo-color-blue-800,
- 'cyan': $ibo-color-cyan-800,
- 'green': $ibo-color-green-800,
- 'orange': $ibo-color-orange-800,
- 'red': $ibo-color-red-800,
- 'pink': $ibo-color-pink-800,
-) !default;
+$ibo-text-colors: $common-text-colors !default;
@each $sColor, $sColorValue in $ibo-text-colors {
.ibo-text.ibo-is-#{$sColor} {
diff --git a/css/backoffice/utils/helpers/_font-icon.scss b/css/backoffice/utils/helpers/_font-icon.scss
index 3e90d2c75..a01274e51 100644
--- a/css/backoffice/utils/helpers/_font-icon.scss
+++ b/css/backoffice/utils/helpers/_font-icon.scss
@@ -8,36 +8,3 @@
/* To use it, simply "@extend %fa-regular-base" in a rule and put the desired icon "content: '\f054'" */
/******************************************************************************************************************************/
-%fa-regular-base{
- font-family: "Font Awesome 5 Free";
- font-weight: 400;
-
- -webkit-font-smoothing: antialiased;
- display: inline-block;
- font-style: normal;
- font-variant: normal;
- text-rendering: auto;
- line-height: 1;
-}
-%fa-solid-base{
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
-
- -webkit-font-smoothing: antialiased;
- display: inline-block;
- font-style: normal;
- font-variant: normal;
- text-rendering: auto;
- line-height: 1;
-}
-%fc-regular-base{
- display: inline-block;
- font-family: CombodoRegular;
- font-style: normal;
- font-variant: normal;
- font-weight: normal;
- text-rendering: auto;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
\ No newline at end of file
diff --git a/css/backoffice/utils/helpers/_sticky-header.scss b/css/backoffice/utils/helpers/_sticky-header.scss
index 322bf5a63..eeb57390c 100644
--- a/css/backoffice/utils/helpers/_sticky-header.scss
+++ b/css/backoffice/utils/helpers/_sticky-header.scss
@@ -10,12 +10,12 @@
/***********************************************************************/
/* SCSS variables */
-$ibo-sticky-sentinel--left: 0 !default;
-$ibo-sticky-sentinel--right: 0 !default;
-$ibo-sticky-sentinel--height: 0 !default;
-$ibo-sticky-sentinel-top--top: 0 !default;
+$ibo-sticky-sentinel--left: $common-sticky-sentinel--left !default;
+$ibo-sticky-sentinel--right: $common-sticky-sentinel--right !default;
+$ibo-sticky-sentinel--height: $common-sticky-sentinel--height !default;
+$ibo-sticky-sentinel-top--top: $common-sticky-sentinel-top--top !default;
$ibo-sticky-sentinel-top--height: $ibo-sticky-sentinel--height !default;
-$ibo-sticky-sentinel-bottom--bottom: 0 !default;
+$ibo-sticky-sentinel-bottom--bottom: $common-sticky-sentinel-bottom--bottom !default;
$ibo-sticky-sentinel-bottom--height: $ibo-sticky-sentinel--height !default;
/* Rules */
diff --git a/css/backoffice/utils/helpers/_text-decoration.scss b/css/backoffice/utils/helpers/_text-decoration.scss
index 94312e4b5..c7814a65b 100644
--- a/css/backoffice/utils/helpers/_text-decoration.scss
+++ b/css/backoffice/utils/helpers/_text-decoration.scss
@@ -4,13 +4,13 @@
*/
/* SCSS variables */
-$ibo-has-description--content: "?" !default;
-$ibo-has-description--padding-left: $ibo-spacing-200 !default;
-$ibo-has-description--color: $ibo-color-grey-600 !default;
-$ibo-has-description--font-size: 0.7em !default; /* Font size is em on purpose as we want it to be proportional to its context */
+$ibo-has-description--content: $common-has-description--content !default;
+$ibo-has-description--padding-left: $common-has-description--padding-left !default;
+$ibo-has-description--color: $common-has-description--color !default;
+$ibo-has-description--font-size: $common-has-description--font-size !default; /* Font size is em on purpose as we want it to be proportional to its context */
-$ibo-is-code--background-color: $ibo-color-white-200 !default;
-$ibo-is-code--padding: 1.25rem 1.5rem !default;
+$ibo-is-code--background-color: $common-is-code--background-color !default;
+$ibo-is-code--padding: $common-is-code--padding !default;
$ibo-hyperlink-color: $ibo-color-primary-700 !default;
$ibo-hyperlink-text-decoration: none !default;
@@ -19,8 +19,8 @@ $ibo-hyperlink-text-decoration--on-hover: $ibo-hyperlink-text-decoration !defaul
$ibo-hyperlink-color--on-active: $ibo-color-primary-900 !default;
$ibo-hyperlink-text-decoration--on-active: $ibo-hyperlink-text-decoration !default;
-$ibo-figure--spacing-x: 2em !default; /* Mind that this matches Bulma rule for figure */
-$ibo-figure--spacing-y: 2em !default;
+$ibo-figure--spacing-x: $common-figure--spacing-x !default; /* Mind that this matches Bulma rule for figure */
+$ibo-figure--spacing-y: $common-figure--spacing-y !default;
/* CSS variables */
:root{
diff --git a/css/backoffice/utils/mixins/_highlight.scss b/css/backoffice/utils/mixins/_highlight.scss
index 3e98c28c4..8c58725f6 100644
--- a/css/backoffice/utils/mixins/_highlight.scss
+++ b/css/backoffice/utils/mixins/_highlight.scss
@@ -3,8 +3,8 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-vertical-highlight--width: $ibo-size-100;
-$ibo-vertical-highlight--height: 100%;
+$ibo-vertical-highlight--width: $common-vertical-highlight--width;
+$ibo-vertical-highlight--height: $common-vertical-highlight--height;
@mixin ibo-vertical-highlight {
display: block;
diff --git a/css/backoffice/utils/mixins/_selectable.scss b/css/backoffice/utils/mixins/_selectable.scss
index 533e688e4..327a91f3d 100644
--- a/css/backoffice/utils/mixins/_selectable.scss
+++ b/css/backoffice/utils/mixins/_selectable.scss
@@ -3,18 +3,19 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-selectable--background-color: transparent !default;
+$ibo-selectable--background-color: $common-selectable--background-color !default;
-$ibo-selectable--hover--color: $ibo-color-grey-100 !default;
-$ibo-selectable--hover--background-color: $ibo-color-grey-600 !default;
-$ibo-selectable--hover--background-opacity: 0.6 !default;
+$ibo-selectable--hover--color: $common-selectable--hover--color !default;
+$ibo-selectable--hover--background-color: $common-selectable--hover--background-color !default;
+$ibo-selectable--hover--background-opacity: $common-selectable--hover--background-opacity !default;
-$ibo-selected--color: $ibo-color-grey-100 !default;
-$ibo-selected--background-color: $ibo-color-grey-900 !default;
-$ibo-selected--background-opacity: 0.5 !default;
+$ibo-selected--color: $common-selected--color !default;
+$ibo-selected--background-color: $common-selected--background-color !default;
+$ibo-selected--background-opacity: $common-selected--background-opacity !default;
+
+$ibo-selected--hover--background-color: $common-selected--hover--background-color !default;
+$ibo-selected--hover--background-opacity: $common-selected--hover--background-opacity !default;
-$ibo-selected--hover--background-color: $ibo-color-grey-700 !default;
-$ibo-selected--hover--background-opacity: 0.5 !default;
@mixin ibo-selectable {
content: ' ';
@extend %fa-solid-base;
diff --git a/css/backoffice/utils/variables/_border-radius.scss b/css/backoffice/utils/variables/_border-radius.scss
index 9b810ca24..72612b5ee 100644
--- a/css/backoffice/utils/variables/_border-radius.scss
+++ b/css/backoffice/utils/variables/_border-radius.scss
@@ -3,13 +3,13 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-border-radius-100: 1px !default;
-$ibo-border-radius-300: 3px !default;
-$ibo-border-radius-400: 4px !default;
-$ibo-border-radius-500: 5px !default;
-$ibo-border-radius-700: 10px !default;
-$ibo-border-radius-900: 16px !default;
-$ibo-border-radius-full: 100% !default;
+$ibo-border-radius-100: $common-border-radius-100 !default;
+$ibo-border-radius-300: $common-border-radius-300 !default;
+$ibo-border-radius-400: $common-border-radius-400!default;
+$ibo-border-radius-500: $common-border-radius-500 !default;
+$ibo-border-radius-700: $common-border-radius-700 !default;
+$ibo-border-radius-900: $common-border-radius-900 !default;
+$ibo-border-radius-full: $common-border-radius-full !default;
:root{
--ibo-border-radius-100: #{$ibo-border-radius-100};
diff --git a/css/backoffice/utils/variables/_depression.scss b/css/backoffice/utils/variables/_depression.scss
index 308f1d69b..ffd0bedb6 100644
--- a/css/backoffice/utils/variables/_depression.scss
+++ b/css/backoffice/utils/variables/_depression.scss
@@ -3,7 +3,7 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-depression-100: inset 0 1px 1px 0 rgba(0, 0, 0, 0.15) !default;
+$ibo-depression-100: $common-depression-100 !default;
:root{
--ibo-depression-100: #{$ibo-depression-100};
diff --git a/css/backoffice/utils/variables/_elevation.scss b/css/backoffice/utils/variables/_elevation.scss
index ad87108d6..7ca9c38e6 100644
--- a/css/backoffice/utils/variables/_elevation.scss
+++ b/css/backoffice/utils/variables/_elevation.scss
@@ -3,11 +3,11 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-elevation-100: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.12) !default;
-$ibo-elevation-200: 0 2px 4px rgba(0, 0, 0, 0.12), 0 3px 6px rgba(0, 0, 0, 0.15) !default;
-$ibo-elevation-300: 0 3px 6px rgba(0, 0, 0, 0.10), 0 10px 20px rgba(0, 0, 0, 0.15) !default;
-$ibo-elevation-400: 0 5px 10px rgba(0, 0, 0, 0.05), 0 15px 25px rgba(0, 0, 0, 0.15) !default;
-$ibo-elevation-500: 0 20px 40px rgba(0, 0, 0, 0.20) !default;
+$ibo-elevation-100: $common-elevation-100 !default;
+$ibo-elevation-200: $common-elevation-200 !default;
+$ibo-elevation-300: $common-elevation-300 !default;
+$ibo-elevation-400: $common-elevation-400 !default;
+$ibo-elevation-500: $common-elevation-500 !default;
:root{
--ibo-elevation-100: #{$ibo-elevation-100};
diff --git a/css/backoffice/utils/variables/_path.scss b/css/backoffice/utils/variables/_path.scss
index 251b155d7..abb1ca22b 100644
--- a/css/backoffice/utils/variables/_path.scss
+++ b/css/backoffice/utils/variables/_path.scss
@@ -3,4 +3,3 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$approot-relative: '../../../../' !default;
diff --git a/css/backoffice/utils/variables/_size.scss b/css/backoffice/utils/variables/_size.scss
index 625f155d1..bebaa9654 100644
--- a/css/backoffice/utils/variables/_size.scss
+++ b/css/backoffice/utils/variables/_size.scss
@@ -3,25 +3,25 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
-$ibo-size-0: 0 !default;
-$ibo-size-50: 2px !default;
-$ibo-size-100: 4px !default;
-$ibo-size-150: 8px !default;
-$ibo-size-200: 12px !default;
-$ibo-size-250: 16px !default;
-$ibo-size-300: 24px !default;
-$ibo-size-350: 32px !default;
-$ibo-size-400: 48px !default;
-$ibo-size-450: 64px !default;
-$ibo-size-500: 96px !default;
-$ibo-size-550: 128px !default;
-$ibo-size-600: 192px !default;
-$ibo-size-650: 256px !default;
-$ibo-size-700: 384px !default;
-$ibo-size-750: 512px !default;
-$ibo-size-800: 640px !default;
-$ibo-size-850: 768px !default;
-$ibo-size-900: 896px !default;
+$ibo-size-0: $common-size-0 !default;
+$ibo-size-50: $common-size-50 !default;
+$ibo-size-100: $common-size-100 !default;
+$ibo-size-150: $common-size-150 !default;
+$ibo-size-200: $common-size-200 !default;
+$ibo-size-250: $common-size-250 !default;
+$ibo-size-300: $common-size-300 !default;
+$ibo-size-350: $common-size-350 !default;
+$ibo-size-400: $common-size-400 !default;
+$ibo-size-450: $common-size-450 !default;
+$ibo-size-500: $common-size-500 !default;
+$ibo-size-550: $common-size-550 !default;
+$ibo-size-600: $common-size-600 !default;
+$ibo-size-650: $common-size-650 !default;
+$ibo-size-700: $common-size-700 !default;
+$ibo-size-750: $common-size-750 !default;
+$ibo-size-800: $common-size-800 !default;
+$ibo-size-850: $common-size-850 !default;
+$ibo-size-900: $common-size-900 !default;
:root{
--ibo-size-0: #{$ibo-size-0};
diff --git a/css/backoffice/utils/variables/_typography.scss b/css/backoffice/utils/variables/_typography.scss
index 3a4a90516..268039178 100644
--- a/css/backoffice/utils/variables/_typography.scss
+++ b/css/backoffice/utils/variables/_typography.scss
@@ -4,37 +4,37 @@
*/
/* Base size: html font-size 12px */
-$ibo-font-size-20: 0.67rem !default; /* 8px */
-$ibo-font-size-50: 0.83rem !default; /* 10px */
-$ibo-font-size-100: 1rem !default; /* 12px */
-$ibo-font-size-150: 1.17rem !default; /* 14px */
-$ibo-font-size-200: 1.33rem !default; /* 16px */
-$ibo-font-size-250: 1.5rem !default; /* 18px */
-$ibo-font-size-300: 1.67rem !default; /* 20px */
-$ibo-font-size-350: 1.83rem !default; /* 22px */
-$ibo-font-size-400: 2rem !default; /* 24px */
-$ibo-font-size-450: 2.5rem !default; /* 30px */
-$ibo-font-size-500: 3rem !default; /* 36px */
-$ibo-font-size-550: 4rem !default; /* 48px */
-$ibo-font-size-600: 5rem !default; /* 60px */
-$ibo-font-size-650: 6rem !default; /* 72px */
-$ibo-font-size-700: 7rem !default; /* 84px */
+$ibo-font-size-20: $common-font-size-20 !default; /* 8px */
+$ibo-font-size-50: $common-font-size-50 !default; /* 10px */
+$ibo-font-size-100: $common-font-size-100 !default; /* 12px */
+$ibo-font-size-150: $common-font-size-150 !default; /* 14px */
+$ibo-font-size-200: $common-font-size-200 !default; /* 16px */
+$ibo-font-size-250: $common-font-size-250 !default; /* 18px */
+$ibo-font-size-300: $common-font-size-300 !default; /* 20px */
+$ibo-font-size-350: $common-font-size-350 !default; /* 22px */
+$ibo-font-size-400: $common-font-size-400 !default; /* 24px */
+$ibo-font-size-450: $common-font-size-450 !default; /* 30px */
+$ibo-font-size-500: $common-font-size-500 !default; /* 36px */
+$ibo-font-size-550: $common-font-size-550 !default; /* 48px */
+$ibo-font-size-600: $common-font-size-600 !default; /* 60px */
+$ibo-font-size-650: $common-font-size-650 !default; /* 72px */
+$ibo-font-size-700: $common-font-size-700 !default; /* 84px */
/* Value Common weight name (https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight) */
-$ibo-font-weight-100: 100 !default; /* 100 Thin (Harline) */
-$ibo-font-weight-200: 200 !default; /* 200 Extra Light (Ultra Light) */
-$ibo-font-weight-300: 300 !default; /* 300 Light */
-$ibo-font-weight-400: 400 !default; /* 400 Normal (Regular) */
-$ibo-font-weight-500: 500 !default; /* 500 Medium */
-$ibo-font-weight-600: 600 !default; /* 600 Semi Bold (Demi Bold) */
-$ibo-font-weight-700: 700 !default; /* 700 Bold */
-$ibo-font-weight-800: 800 !default; /* 800 Extra Bold (Ultra Bold) */
-$ibo-font-weight-900: 900 !default; /* 900 Black (Heavy) */
-$ibo-font-weight-950: 950 !default; /* 950 Extra Black (Ultra Black) */
+$ibo-font-weight-100: $common-font-weight-100 !default; /* 100 Thin (Harline) */
+$ibo-font-weight-200: $common-font-weight-200 !default; /* 200 Extra Light (Ultra Light) */
+$ibo-font-weight-300: $common-font-weight-300 !default; /* 300 Light */
+$ibo-font-weight-400: $common-font-weight-400 !default; /* 400 Normal (Regular) */
+$ibo-font-weight-500: $common-font-weight-500 !default; /* 500 Medium */
+$ibo-font-weight-600: $common-font-weight-600 !default; /* 600 Semi Bold (Demi Bold) */
+$ibo-font-weight-700: $common-font-weight-700 !default; /* 700 Bold */
+$ibo-font-weight-800: $common-font-weight-800 !default; /* 800 Extra Bold (Ultra Bold) */
+$ibo-font-weight-900: $common-font-weight-900 !default; /* 900 Black (Heavy) */
+$ibo-font-weight-950: $common-font-weight-950 !default; /* 950 Extra Black (Ultra Black) */
-$ibo-font-family-base: "Raleway" !default;
-$ibo-font-family-fallbacks: "sans-serif", "system-ui" !default;
-$ibo-font-family-monospace: monospace !default;
+$ibo-font-family-base: $common-font-family-base !default;
+$ibo-font-family-fallbacks: $common-font-family-fallbacks !default;
+$ibo-font-family-monospace: $common-font-family-monospace !default;
$ibo-font-family-code: $ibo-font-family-monospace !default;
:root {
diff --git a/css/backoffice/utils/variables/colors/_base-palette.scss b/css/backoffice/utils/variables/colors/_base-palette.scss
index c6e7410a2..32621b544 100644
--- a/css/backoffice/utils/variables/colors/_base-palette.scss
+++ b/css/backoffice/utils/variables/colors/_base-palette.scss
@@ -4,102 +4,102 @@
*/
/* Base color palettes */
-$ibo-color-white-100: hsla(0, 0%, 100%, 1) !default;
-$ibo-color-white-200: hsla(0, 0%, 94.9%, 1) !default;
-$ibo-color-transparent: hsla(0, 0%, 100%, 0) !default;
+$ibo-color-white-100: $common-color-white-100 !default;
+$ibo-color-white-200: $common-color-white-200 !default;
+$ibo-color-transparent: $common-color-transparent !default;
-$ibo-color-grey-50: hsla(240, 20%, 99%, 1) !default;
-$ibo-color-grey-100: hsla(210, 16.7%, 97.6%, 1) !default;
-$ibo-color-grey-200: hsla(207, 22.4%, 90.4%, 1) !default;
-$ibo-color-grey-300: hsla(210, 23.5%, 86.7%, 1) !default;
-$ibo-color-grey-400: hsla(208, 17.2%, 82.9%, 1) !default;
-$ibo-color-grey-500: hsla(209, 23.7%, 74.3%, 1) !default;
-$ibo-color-grey-600: hsla(215, 16.6%, 63.3%, 1) !default;
-$ibo-color-grey-700: hsla(214, 11.3%, 48.6%, 1) !default;
-$ibo-color-grey-800: hsla(215, 16.9%, 30.2%, 1) !default;
-$ibo-color-grey-900: hsla(215, 22.4%, 16.7%, 1) !default;
-$ibo-color-grey-950: hsla(215, 26.4%, 10.7%, 1) !default;
+$ibo-color-grey-50: $common-color-grey-50 !default;
+$ibo-color-grey-100: $common-color-grey-100 !default;
+$ibo-color-grey-200: $common-color-grey-200 !default;
+$ibo-color-grey-300: $common-color-grey-300 !default;
+$ibo-color-grey-400: $common-color-grey-400 !default;
+$ibo-color-grey-500: $common-color-grey-500 !default;
+$ibo-color-grey-600: $common-color-grey-600 !default;
+$ibo-color-grey-700: $common-color-grey-700 !default;
+$ibo-color-grey-800: $common-color-grey-800 !default;
+$ibo-color-grey-900: $common-color-grey-900 !default;
+$ibo-color-grey-950: $common-color-grey-950 !default;
-$ibo-color-blue-grey-50: hsla(210, 36%, 96%, 1) !default;
-$ibo-color-blue-grey-100: hsla(198, 15.7%, 83.7%, 1) !default;
-$ibo-color-blue-grey-200: hsla(200, 15.3%, 73.1%, 1) !default;
-$ibo-color-blue-grey-300: hsla(200, 15.6%, 62.4%, 1) !default;
-$ibo-color-blue-grey-400: hsla(200, 15.4%, 54.1%, 1) !default;
-$ibo-color-blue-grey-500: hsla(200, 18.3%, 46.1%, 1) !default;
-$ibo-color-blue-grey-600: hsla(199, 18.4%, 40.4%, 1) !default;
-$ibo-color-blue-grey-700: hsla(199, 18.3%, 33.1%, 1) !default;
-$ibo-color-blue-grey-800: hsla(200, 17.9%, 26.3%, 1) !default;
-$ibo-color-blue-grey-900: hsla(200, 19.1%, 18.4%, 1) !default;
-$ibo-color-blue-grey-950: hsla(200, 20.2%, 13.1%, 1) !default;
+$ibo-color-blue-grey-50: $common-color-blue-grey-50 !default;
+$ibo-color-blue-grey-100: $common-color-blue-grey-100 !default;
+$ibo-color-blue-grey-200: $common-color-blue-grey-200 !default;
+$ibo-color-blue-grey-300: $common-color-blue-grey-300 !default;
+$ibo-color-blue-grey-400: $common-color-blue-grey-400 !default;
+$ibo-color-blue-grey-500: $common-color-blue-grey-500 !default;
+$ibo-color-blue-grey-600: $common-color-blue-grey-600 !default;
+$ibo-color-blue-grey-700: $common-color-blue-grey-700 !default;
+$ibo-color-blue-grey-800: $common-color-blue-grey-800 !default;
+$ibo-color-blue-grey-900: $common-color-blue-grey-900 !default;
+$ibo-color-blue-grey-950: $common-color-blue-grey-950 !default;
-$ibo-color-blue-100: hsla(201, 100%, 96.1%, 1) !default;
-$ibo-color-blue-200: hsla(202, 80.6%, 85.9%, 1) !default;
-$ibo-color-blue-300: hsla(203, 82%, 76.1%, 1) !default;
-$ibo-color-blue-400: hsla(205, 79.3%, 65.9%, 1) !default;
-$ibo-color-blue-500: hsla(207, 72.6%, 57.1%, 1) !default;
-$ibo-color-blue-600: hsla(209, 61.6%, 50%, 1) !default;
-$ibo-color-blue-700: hsla(211, 60.7%, 42.9%, 1) !default;
-$ibo-color-blue-800: hsla(213, 49.4%, 34.1%, 1) !default;
-$ibo-color-blue-900: hsla(215, 41.3%, 28%, 1) !default;
-$ibo-color-blue-950: hsla(215, 36.8%, 23%, 1) !default;
+$ibo-color-blue-100: $common-color-blue-100 !default;
+$ibo-color-blue-200: $common-color-blue-200 !default;
+$ibo-color-blue-300: $common-color-blue-300 !default;
+$ibo-color-blue-400: $common-color-blue-400 !default;
+$ibo-color-blue-500: $common-color-blue-500 !default;
+$ibo-color-blue-600: $common-color-blue-600 !default;
+$ibo-color-blue-700: $common-color-blue-700 !default;
+$ibo-color-blue-800: $common-color-blue-800 !default;
+$ibo-color-blue-900: $common-color-blue-900 !default;
+$ibo-color-blue-950: $common-color-blue-950 !default;
-$ibo-color-cyan-100: hsla(186, 61.2%, 86.9%, 1) !default;
-$ibo-color-cyan-200: hsla(187, 71.6%, 71%, 1) !default;
-$ibo-color-cyan-300: hsla(187, 71.2%, 59.2%, 1) !default;
-$ibo-color-cyan-400: hsla(187, 70.9%, 50.2%, 1) !default;
-$ibo-color-cyan-500: hsla(187, 100%, 41.6%, 1) !default;
-$ibo-color-cyan-600: hsla(187, 100%, 37.8%, 1) !default;
-$ibo-color-cyan-700: hsla(186, 100%, 32.7%, 1) !default;
-$ibo-color-cyan-800: hsla(185, 100%, 28%, 1) !default;
-$ibo-color-cyan-900: hsla(182, 100%, 19.6%, 1) !default;
-$ibo-color-cyan-950: hsla(180, 100%, 10.6%, 1) !default;
+$ibo-color-cyan-100: $common-color-cyan-100 !default;
+$ibo-color-cyan-200: $common-color-cyan-200 !default;
+$ibo-color-cyan-300: $common-color-cyan-300 !default;
+$ibo-color-cyan-400: $common-color-cyan-400 !default;
+$ibo-color-cyan-500: $common-color-cyan-500 !default;
+$ibo-color-cyan-600: $common-color-cyan-600 !default;
+$ibo-color-cyan-700: $common-color-cyan-700 !default;
+$ibo-color-cyan-800: $common-color-cyan-800 !default;
+$ibo-color-cyan-900: $common-color-cyan-900 !default;
+$ibo-color-cyan-950: $common-color-cyan-950 !default;
-$ibo-color-green-100: hsla(88, 50.7%, 85.7%, 1) !default;
-$ibo-color-green-200: hsla(88, 50%, 76.5%, 1) !default;
-$ibo-color-green-300: hsla(88, 50%, 67.1%, 1) !default;
-$ibo-color-green-400: hsla(88, 50.2%, 59.8%, 1) !default;
-$ibo-color-green-500: hsla(88, 50.2%, 52.7%, 1) !default;
-$ibo-color-green-600: hsla(89, 46.1%, 48%, 1) !default;
-$ibo-color-green-700: hsla(92, 47.9%, 42.2%, 1) !default;
-$ibo-color-green-800: hsla(95, 49.5%, 36.5%, 1) !default;
-$ibo-color-green-900: hsla(103, 55.6%, 26.5%, 1) !default;
-$ibo-color-green-950: hsla(108, 59.6%, 21.5%, 1) !default;
+$ibo-color-green-100: $common-color-green-100 !default;
+$ibo-color-green-200: $common-color-green-200 !default;
+$ibo-color-green-300: $common-color-green-300 !default;
+$ibo-color-green-400: $common-color-green-400 !default;
+$ibo-color-green-500: $common-color-green-500 !default;
+$ibo-color-green-600: $common-color-green-600 !default;
+$ibo-color-green-700: $common-color-green-700 !default;
+$ibo-color-green-800: $common-color-green-800 !default;
+$ibo-color-green-900: $common-color-green-900 !default;
+$ibo-color-green-950: $common-color-green-950 !default;
-$ibo-color-orange-100: hsla(40, 100%, 97.1%, 1) !default;
-$ibo-color-orange-200: hsla(39, 96.4%, 89%, 1) !default;
-$ibo-color-orange-300: hsla(38, 93.2%, 76.9%, 1) !default;
-$ibo-color-orange-400: hsla(33, 89.9%, 64.9%, 1) !default;
-$ibo-color-orange-500: hsla(28, 82.9%, 51.8%, 1) !default;
-$ibo-color-orange-600: hsla(24, 74.7%, 49.6%, 1) !default;
-$ibo-color-orange-700: hsla(20, 70.7%, 44.1%, 1) !default;
-$ibo-color-orange-800: hsla(16, 65.1%, 37.1%, 1) !default;
-$ibo-color-orange-900: hsla(14, 60.8%, 30%, 1) !default;
-$ibo-color-orange-950: hsla(14, 55.1%, 22%, 1) !default;
+$ibo-color-orange-100: $common-color-orange-100 !default;
+$ibo-color-orange-200: $common-color-orange-200 !default;
+$ibo-color-orange-300: $common-color-orange-300 !default;
+$ibo-color-orange-400: $common-color-orange-400 !default;
+$ibo-color-orange-500: $common-color-orange-500 !default;
+$ibo-color-orange-600: $common-color-orange-600 !default;
+$ibo-color-orange-700: $common-color-orange-700 !default;
+$ibo-color-orange-800: $common-color-orange-800 !default;
+$ibo-color-orange-900: $common-color-orange-900 !default;
+$ibo-color-orange-950: $common-color-orange-950 !default;
-$ibo-color-red-100: hsla(0, 76.9%, 94.9%, 1) !default;
-$ibo-color-red-200: hsla(0, 95.1%, 92%, 1) !default;
-$ibo-color-red-300: hsla(0, 97.4%, 84.7%, 1) !default;
-$ibo-color-red-400: hsla(0, 95.3%, 74.7%, 1) !default;
-$ibo-color-red-500: hsla(0, 87.8%, 67.8%, 1) !default;
-$ibo-color-red-600: hsla(0, 76.3%, 57.1%, 1) !default;
-$ibo-color-red-700: hsla(0, 60.8%, 48%, 1) !default;
-$ibo-color-red-800: hsla(0, 55.8%, 39%, 1) !default;
-$ibo-color-red-900: hsla(0, 46.8%, 31%, 1) !default;
-$ibo-color-red-950: hsla(0, 42.9%, 20%, 1) !default;
+$ibo-color-red-100: $common-color-red-100 !default;
+$ibo-color-red-200: $common-color-red-200 !default;
+$ibo-color-red-300: $common-color-red-300 !default;
+$ibo-color-red-400: $common-color-red-400 !default;
+$ibo-color-red-500: $common-color-red-500 !default;
+$ibo-color-red-600: $common-color-red-600 !default;
+$ibo-color-red-700: $common-color-red-700 !default;
+$ibo-color-red-800: $common-color-red-800 !default;
+$ibo-color-red-900: $common-color-red-900 !default;
+$ibo-color-red-950: $common-color-red-950 !default;
-$ibo-color-pink-100: hsla(348, 100%, 98%, 1) !default;
-$ibo-color-pink-200: hsla(343, 95%, 92%, 1) !default;
-$ibo-color-pink-300: hsla(339, 90%, 85%, 1) !default;
-$ibo-color-pink-400: hsla(336, 86%, 75%, 1) !default;
-$ibo-color-pink-500: hsla(331, 79%, 66%, 1) !default;
-$ibo-color-pink-600: hsla(329, 64%, 54%, 1) !default;
-$ibo-color-pink-700: hsla(325, 57%, 46%, 1) !default;
-$ibo-color-pink-800: hsla(322, 60%, 37%, 1) !default;
-$ibo-color-pink-900: hsla(318, 51%, 29%, 1) !default;
-$ibo-color-pink-950: hsla(318, 51%, 21%, 1) !default;
+$ibo-color-pink-100: $common-color-pink-100 !default;
+$ibo-color-pink-200: $common-color-pink-200 !default;
+$ibo-color-pink-300: $common-color-pink-300 !default;
+$ibo-color-pink-400: $common-color-pink-400 !default;
+$ibo-color-pink-500: $common-color-pink-500 !default;
+$ibo-color-pink-600: $common-color-pink-600 !default;
+$ibo-color-pink-700: $common-color-pink-700 !default;
+$ibo-color-pink-800: $common-color-pink-800 !default;
+$ibo-color-pink-900: $common-color-pink-900 !default;
+$ibo-color-pink-950: $common-color-pink-950 !default;
-$ibo-colors: ('grey', 'blue-grey', 'blue', 'cyan', 'green', 'orange', 'red', 'pink', 'primary', 'secondary', 'information', 'success', 'warning', 'danger');
+$ibo-colors: $common-colors;
/* CSS variables */
:root{
diff --git a/css/backoffice/utils/variables/colors/_base.scss b/css/backoffice/utils/variables/colors/_base.scss
index 56ab1e2a8..1ef86d7e9 100644
--- a/css/backoffice/utils/variables/colors/_base.scss
+++ b/css/backoffice/utils/variables/colors/_base.scss
@@ -5,8 +5,8 @@
/* Base helpers for colors */
/* - These lightness vars are used to force a certain lightness on HSLA colors */
-$ibo-color-base-lightness-100: 93% !default;
-$ibo-color-base-lightness-900: 15% !default;
+$ibo-color-base-lightness-100: $common-color-base-lightness-100 !default;
+$ibo-color-base-lightness-900: $common-color-base-lightness-900 !default;
-$ibo-color-base-opacity-for-lightness-100: 1 !default;
-$ibo-color-base-opacity-for-lightness-900: 1 !default;
\ No newline at end of file
+$ibo-color-base-opacity-for-lightness-100: $common-color-base-opacity-for-lightness-100 !default;
+$ibo-color-base-opacity-for-lightness-900: $common-color-base-opacity-for-lightness-900 !default;
\ No newline at end of file
diff --git a/css/backoffice/utils/variables/colors/_skeleton-palette.scss b/css/backoffice/utils/variables/colors/_skeleton-palette.scss
index 16e558b64..da44d3add 100644
--- a/css/backoffice/utils/variables/colors/_skeleton-palette.scss
+++ b/css/backoffice/utils/variables/colors/_skeleton-palette.scss
@@ -6,8 +6,8 @@
/* Skeleton palette */
/* - Colors used by skeletons svg to display placeholders */
-$ibo-skeleton-start-color: $ibo-color-grey-200 !default;
-$ibo-skeleton-stop-color: $ibo-color-blue-grey-100 !default;
+$ibo-skeleton-start-color: $common-skeleton-start-color !default;
+$ibo-skeleton-stop-color: $common-skeleton-stop-color !default;
/* CSS variables */
/* Skeleton CSS3 variables are not ibo prefixed as they are not iTop backoffice exclusives*/
diff --git a/css/backoffice/vendors/_highlightjs.scss b/css/backoffice/vendors/_highlightjs.scss
index e2f16eeb9..0635a2f67 100644
--- a/css/backoffice/vendors/_highlightjs.scss
+++ b/css/backoffice/vendors/_highlightjs.scss
@@ -2,44 +2,115 @@
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
-@import "../../common/vendors/_highlightjs";
// Backoffice specific variables
-$ibo-vendors-highlightjs--padding: 0.9rem !default;
-$ibo-vendors-highlightjs--box-shadow: 0 0px 3px 2px inset rgba(0, 0, 0, 0.4) !default;
-$ibo-vendors-highlightjs--border-radius: $ibo-border-radius-300 !default;
-$ibo-vendors-highlightjs--code--padding-x: 5px !default;
-$ibo-vendors-highlightjs--code--padding-y: 3px !default;
+$ibo-vendors-highlightjs--padding: $common-vendors-highlightjs--padding !default;
+$ibo-vendors-highlightjs--box-shadow: $common-vendors-highlightjs--box-shadow !default;
+$ibo-vendors-highlightjs--border-radius: $common-vendors-highlightjs--border-radius !default;
+$ibo-vendors-highlightjs--code--padding-x: $common-vendors-highlightjs--code--padding-x !default;
+$ibo-vendors-highlightjs--code--padding-y: $common-vendors-highlightjs--code--padding-y !default;
-$ibo-vendors-highlightjs--background-color: #282b2e !default;
-$ibo-vendors-highlightjs--color: #e0e2e4 !default;
-$ibo-vendors-highlightjs--keyword--color: #93c763 !default;
-$ibo-vendors-highlightjs--number--color: #ffcd22 !default;
-$ibo-vendors-highlightjs--attribute--color: #668bb0 !default;
-$ibo-vendors-highlightjs--regexp--color: #d39745 !default;
-$ibo-vendors-highlightjs--meta--color: #557182 !default;
-$ibo-vendors-highlightjs--tag--color: #8cbbad !default;
-$ibo-vendors-highlightjs--string--color: #ec7600 !default;
-$ibo-vendors-highlightjs--comment--color: #818e96 !default;
-$ibo-vendors-highlightjs--selector-class--color: #A082BD !default;
-$ibo-vendors-highlightjs--code--color: white !default;
+$ibo-vendors-highlightjs--background-color: $common-vendors-highlightjs--background-color !default;
+$ibo-vendors-highlightjs--color: $common-vendors-highlightjs--color !default;
+$ibo-vendors-highlightjs--keyword--color: $common-vendors-highlightjs--keyword--color !default;
+$ibo-vendors-highlightjs--number--color: $common-vendors-highlightjs--number--color !default;
+$ibo-vendors-highlightjs--attribute--color: $common-vendors-highlightjs--attribute--color !default;
+$ibo-vendors-highlightjs--regexp--color: $common-vendors-highlightjs--regexp--color !default;
+$ibo-vendors-highlightjs--meta--color: $common-vendors-highlightjs--meta--color !default;
+$ibo-vendors-highlightjs--tag--color: $common-vendors-highlightjs--tag--color !default;
+$ibo-vendors-highlightjs--string--color: $common-vendors-highlightjs--string--color !default;
+$ibo-vendors-highlightjs--comment--color: $common-vendors-highlightjs--comment--color !default;
+$ibo-vendors-highlightjs--selector-class--color: $common-vendors-highlightjs--selector-class--color !default;
+$ibo-vendors-highlightjs--code--color: $common-vendors-highlightjs--code--color !default;
-// Override common variables
-$common-vendors-highlightjs--padding: $ibo-vendors-highlightjs--padding;
-$common-vendors-highlightjs--box-shadow: $ibo-vendors-highlightjs--box-shadow;
-$common-vendors-highlightjs--border-radius: $ibo-vendors-highlightjs--border-radius;
-$common-vendors-highlightjs--code--padding-x: $ibo-vendors-highlightjs--code--padding-x;
-$common-vendors-highlightjs--code--padding-y: $ibo-vendors-highlightjs--code--padding-y;
+// Highlight.js stylesheets
+/* Highlight JS */
+.common-hljs-container{
+ padding: 0 !important;
+ border: none !important;
+}
-$common-vendors-highlightjs--background-color: $ibo-vendors-highlightjs--background-color;
-$common-vendors-highlightjs--color: $ibo-vendors-highlightjs--color;
-$common-vendors-highlightjs--keyword--color: $ibo-vendors-highlightjs--keyword--color;
-$common-vendors-highlightjs--number--color: $ibo-vendors-highlightjs--number--color;
-$common-vendors-highlightjs--attribute--color: $ibo-vendors-highlightjs--attribute--color;
-$common-vendors-highlightjs--regexp--color: $ibo-vendors-highlightjs--regexp--color;
-$common-vendors-highlightjs--meta--color: $ibo-vendors-highlightjs--meta--color;
-$common-vendors-highlightjs--tag--color: $ibo-vendors-highlightjs--tag--color;
-$common-vendors-highlightjs--string--color: $ibo-vendors-highlightjs--string--color;
-$common-vendors-highlightjs--comment--color: $ibo-vendors-highlightjs--comment--color;
-$common-vendors-highlightjs--selector-class--color: $ibo-vendors-highlightjs--selector-class--color;
-$common-vendors-highlightjs--code--color: $ibo-vendors-highlightjs--code--color;
\ No newline at end of file
+pre code.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: $ibo-vendors-highlightjs--padding !important;
+}
+
+code.hljs {
+ padding: $ibo-vendors-highlightjs--code--padding-y $ibo-vendors-highlightjs--code--padding-x !important;
+}
+/**
+ * Obsidian style
+ * ported by Alexander Marenin (http://github.com/ioncreature)
+ */
+.hljs {
+ box-shadow: $ibo-vendors-highlightjs--box-shadow !important;
+ border-radius: $ibo-vendors-highlightjs--border-radius !important;
+ white-space: pre-wrap;
+ border: none !important;
+ color: $ibo-vendors-highlightjs--color !important;
+ background: $ibo-vendors-highlightjs--background-color !important;
+}
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-selector-id {
+ color: $ibo-vendors-highlightjs--keyword--color !important;
+}
+.hljs-number {
+ color: $ibo-vendors-highlightjs--number--color !important;
+}
+.hljs-attribute {
+ color: $ibo-vendors-highlightjs--attribute--color
+}
+.hljs-regexp,
+.hljs-link {
+ color: $ibo-vendors-highlightjs--regexp--color !important;
+}
+.hljs-meta {
+ color: $ibo-vendors-highlightjs--meta--color !important;
+}
+.hljs-tag,
+.hljs-name,
+.hljs-bullet,
+.hljs-subst,
+.hljs-emphasis,
+.hljs-type,
+.hljs-built_in,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: $ibo-vendors-highlightjs--tag--color !important;
+}
+.hljs-string,
+.hljs-symbol {
+ color: $ibo-vendors-highlightjs--string--color !important;
+}
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion {
+ color: $ibo-vendors-highlightjs--comment--color !important;
+}
+.hljs-selector-class {
+ color: $ibo-vendors-highlightjs--selector-class--color !important;
+}
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold
+}
+.hljs-code,
+.hljs-title.class_,
+.hljs-class .hljs-title,
+.hljs-section {
+ color: $ibo-vendors-highlightjs--code--color !important;
+}
\ No newline at end of file
diff --git a/css/common/README.md b/css/common/README.md
new file mode 100644
index 000000000..313397bfd
--- /dev/null
+++ b/css/common/README.md
@@ -0,0 +1,108 @@
+# Description
+This is a brief description of how the common theme is structured using both BEM and SASS 7-1 systems and how to use them.
+ * [7-1 pattern](#7-1-pattern)
+ * [File structure](#file-structure)
+ * [Usage](#usage)
+ * [BEM methodology](#bem-methodology)
+ * [Principles](#principles)
+ * [Examples](#examples)
+
+# 7-1 pattern
+## File structure
+SCSS files are structured following the [7-1 pattern](https://sass-guidelin.es/#the-7-1-pattern). \
+@rveitch made a great summary with the following, which can also be found [here](https://gist.github.com/rveitch/84cea9650092119527bc).
+
+_Note: Folders with an * are customizations we made to the original 7-1 pattern to best fit our needs_
+
+```
+css/common/
+|
+|– utils/
+| |– variables/ # Sass Variables used in Functions, Mixins, Helpers, ...
+| | |- colors/
+| | | |- _base.scss
+| | | |- _base-palette.scss # Base colors used everywhere
+| | | |- _lifecycle-palette.scss # Colors used for lifecycle of an object (e.g. representing states such as new, frozen, done, ...), based on the base colors
+| | | |- _semantic-palette.scss # Colors used for semantic meaning (e.g. red for errors, green for success, ...), based on the base colors
+| | | ...
+| | |
+| | |- _depression.scss
+| | |- _elevation.scss
+| | |- _size.scss # Base sizes used everywhere (spacings, ...)
+| | |- _spacing.scss
+| | |- _typography.scss # Typography sizes, weights, families, ...
+| | ...
+| |
+| |– functions/ # Sass Functions
+| | |- _color.scss # Color manipulation functions
+| |
+| |– mixins/ # Sass Mixins
+| |– helpers/ # Class & placeholders helpers
+|
+|– vendors/ # Third-party libs, should be either:
+| # - Overload of the lib SCSS variables (BEST way, but possible only if the lib exposes them. e.g. Bulma)
+| # - Overload of the lib necessary CSS classes only (not great as it duplicates some rules in the browser, which add weight and computation. e.g. dataTables)
+| # - Duplicate the lib CSS completly to insert SCSS variables (not great as it will be outdated when updating the lib itself. e.g. jQuery UI)
+| |– _bulma-variables-overload.scss # Bulma CSS framework
+| |– _jquery-ui.scss # jQuery UI
+| ... # Etc…
+|
+|– base/
+| |– _reset.scss # Reset/normalize
+| |– _typography.scss # Typography fonts imports
+| ... # Etc…
+|
+|- _shame.scss # Shame file, should contain all the ugly hacks (https://sass-guidelin.es/#shame-file)
+`– main.scss # Main Sass file
+```
+
+## Usage
+To avoid common errors, files should be imported in the final file in the following order. Again those are just following the SASS guidelines:
+- Utils
+ - Variables
+ - Functions
+ - Mixins
+ - Helpers
+- Vendors
+- Base
+- Shame file
+
+# BEM methodology
+## Principles
+[BEM is a methodology](https://getbem.com/) that helps you to create reusable components and code sharing in front‑end development. \
+The main idea is to use discriminant classes instead of nested basic selectors for 2 main reasons:
+ * It's easier to understand the purpose of a specific class when seeing it in the HTML markup of the SCSS file
+ * It's easier to override a specific class when needed as you don't need to use a selector at least as precise/complex as the one you want to override
+
+In our implementation, we start with the code of the UI block, followed by the sub-element, then the property or modifier. Separation is made of `--` instead of `__`.
+
+## Examples
+### Classes and CSS properties example
+```scss
+// SCSS variables:
+// - For CSS properties: CSS class, followed by CSS property
+$common-button--padding-y: 6px !default;
+$common-button--padding-x: 9px !default;
+$common-button--border: 0 !default;
+$common-button--border-radius: $common-border-radius-400 !default;
+$common-button--box-shadow-bottom: 0px 2px 0px !default;
+$common-button--box-shadow-top: inset 0px 2px 0px !default;
+
+$common-button--label--margin-left: $common-spacing-200 !default;
+
+```
+
+### States example
+```scss
+// SCSS variables:
+// Same rule as before, but with a `--is-` or `--on--` suffix
+$common-quick-create--input--padding: $common-spacing-0 default;
+$common-quick-create--input--padding-x--is-opened: $common-spacing-300 !default;
+$common-quick-create--input--padding-y--is-opened: $common-spacing-300 !default;
+
+$common-quick-create--input--width: $common-size-0 !default;
+$common-quick-create--input--width--is-opened: 245px !default;
+
+$common-quick-create--input--background-color: $common-color-white-100 !default;
+$common-quick-create--input--background-color--on-hover: $common-color-grey-200 !default;
+```
\ No newline at end of file
diff --git a/css/common/_shame.scss b/css/common/_shame.scss
new file mode 100644
index 000000000..7f5644072
--- /dev/null
+++ b/css/common/_shame.scss
@@ -0,0 +1,40 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+// ==========================================================================
+// $Shame
+// @see http://csswizardry.com/2013/04/shame-css/
+// Thanks https://github.com/heroheman/shepherd/blob/master/sass/_shame.scss
+// ==========================================================================
+//
+// ==========================================================================
+// because hacks happen.
+//
+// be very specific about what each piece of code is doing, and
+// how to better fix it later
+// ==========================================================================
+//
+// Try: $ git blame _shame.scss
+//
+// Rules:
+// ---------------
+// 1. If it’s a hack, it goes in _shame.scss.
+// 2. Document all hacks fully:
+// 3. What part of the codebase does it relate to?
+// 4. Why was this needed?
+// 5. How does this fix it?
+// 6. How might you fix it properly, given more time?
+// 7. Do not blame the developer; if they explained why they had to do it then their reasons are probably (hopefully) valid.
+// 8. Try and clean _shame.scss up when you have some down time.
+
+// Example:
+// ---------------
+// Nav specificity fix.
+//
+// Someone used an ID in the header code (`#header a{}`) which trumps the
+// nav selectors (`.site-nav a{}`). Use !important to override it until I
+// have time to refactor the header stuff.
+//
+// .site-nav a { color:#BADA55!important; }
diff --git a/css/common/base/_all.scss b/css/common/base/_all.scss
new file mode 100644
index 000000000..ac0b49163
--- /dev/null
+++ b/css/common/base/_all.scss
@@ -0,0 +1,7 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "base";
+@import "typography";
\ No newline at end of file
diff --git a/css/common/base/_base.scss b/css/common/base/_base.scss
new file mode 100644
index 000000000..0ba5a8b4c
--- /dev/null
+++ b/css/common/base/_base.scss
@@ -0,0 +1,17 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-scrollbar--scrollbar-width: 8px !default;
+$common-scrollbar--scrollbar-height: $common-scrollbar--scrollbar-width !default; /* For horizontal scrollbars */
+$common-scrollbar--scrollbar-track-background-color: $common-color-transparent !default;
+$common-scrollbar--scrollbar-track-border-radius: $common-border-radius-500 !default;
+$common-scrollbar--scrollbar-thumb-background-color: $common-color-grey-300 !default;
+$common-scrollbar--scrollbar-thumb-border: none !default;
+$common-scrollbar--scrollbar-thumb-border-radius: $common-border-radius-500 !default;
+
+$common-svg-illustration--fill: $common-color-primary-500 !default;
+
+$common-content-block--background-color: $common-color-white-100 !default;
+$common-content-block--border: 1px solid $common-color-grey-400 !default;
diff --git a/css/common/base/_typography.scss b/css/common/base/_typography.scss
new file mode 100644
index 000000000..c5d5159ed
--- /dev/null
+++ b/css/common/base/_typography.scss
@@ -0,0 +1,150 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* This is an overload of the default lib. stylesheet to use local fonts instead of the CDN */
+@font-face {
+ font-family: Raleway;
+ font-weight: 100;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway Thin'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-100-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 100;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway Thin'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-100-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 200;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway ExtraLight'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-200-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 200;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway ExtraLight'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-200-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 300;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway Light'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-300-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 300;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway Light'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-300-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-400-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 400;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-400-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 500;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway Medium'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-500-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 500;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway Medium'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-500-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 600;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway SemiBold'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-600-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 600;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway SemiBold'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-600-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 700;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-700-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 700;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-700-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 800;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway ExtraBold'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-800-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 800;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway ExtraBold'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-800-italic.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 900;
+ font-style: normal;
+ font-display: swap;
+ src: local('Raleway Black'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-900-normal.woff') format('woff'),
+}
+@font-face {
+ font-family: Raleway;
+ font-weight: 900;
+ font-style: italic;
+ font-display: swap;
+ src: local('Raleway Black'),
+ url($approot-relative + 'node_modules/@fontsource/raleway/files/raleway-all-900-italic.woff') format('woff'),
+}
diff --git a/css/common/main.scss b/css/common/main.scss
new file mode 100644
index 000000000..0bb2767a4
--- /dev/null
+++ b/css/common/main.scss
@@ -0,0 +1,4 @@
+@import "utils/all";
+@import "vendors/all";
+@import "base/all";
+@import "shame";
diff --git a/css/common/utils/_all.scss b/css/common/utils/_all.scss
new file mode 100644
index 000000000..969240a12
--- /dev/null
+++ b/css/common/utils/_all.scss
@@ -0,0 +1,9 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "variables/all";
+@import "functions/all";
+@import "mixins/all";
+@import "helpers/all";
\ No newline at end of file
diff --git a/css/common/utils/functions/_all.scss b/css/common/utils/functions/_all.scss
new file mode 100644
index 000000000..4eb534c5d
--- /dev/null
+++ b/css/common/utils/functions/_all.scss
@@ -0,0 +1,6 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "color";
\ No newline at end of file
diff --git a/css/common/utils/functions/_color.scss b/css/common/utils/functions/_color.scss
new file mode 100644
index 000000000..0fe1784c3
--- /dev/null
+++ b/css/common/utils/functions/_color.scss
@@ -0,0 +1,34 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/**
+ * Adjust the lightness of $sColor to the absolute $fTargetLightness value.
+ * It is different than lighten() / darken() that shift the current lightness by X%
+ *
+ * @return Modified color value in HSLA format
+ */
+@function common-adjust-lightness($sColor, $fTargetLightness) {
+ $iHue: hue($sColor);
+ $fSaturation: saturation($sColor);
+ $fLightness: lightness($sColor);
+ $fAlpha: alpha($sColor);
+
+ @return hsla($iHue, $fSaturation, $fTargetLightness, $fAlpha);
+}
+
+/**
+ * Adjust the alpha chanel (opacity) of $sColor to the absolute $fTargetAlpha value.
+ * It is different than opacify() / transparentize() that shift the current alpha value by X%
+ *
+ * @return Modified color value in HSLA format
+ */
+@function common-adjust-alpha($sColor, $fTargetAlpha) {
+ $iHue: hue($sColor);
+ $fSaturation: saturation($sColor);
+ $fLightness: lightness($sColor);
+ $fAlpha: alpha($sColor);
+
+ @return hsla($iHue, $fSaturation, $fLightness, $fTargetAlpha);
+}
\ No newline at end of file
diff --git a/css/common/utils/helpers/_all.scss b/css/common/utils/helpers/_all.scss
new file mode 100644
index 000000000..cdd9914d9
--- /dev/null
+++ b/css/common/utils/helpers/_all.scss
@@ -0,0 +1,15 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "border-radius";
+@import "color";
+@import "class-icon";
+@import "depression";
+@import "elevation";
+@import "font-icon";
+@import "sticky-header";
+@import "text-decoration";
+@import "text-position";
+@import "typography";
diff --git a/css/common/utils/helpers/_border-radius.scss b/css/common/utils/helpers/_border-radius.scss
new file mode 100644
index 000000000..0d4325913
--- /dev/null
+++ b/css/common/utils/helpers/_border-radius.scss
@@ -0,0 +1,26 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+%common-border-radius-100{
+ border-radius: $common-border-radius-100;
+}
+%common-border-radius-300{
+ border-radius: $common-border-radius-300;
+}
+%common-border-radius-400{
+ border-radius: $common-border-radius-400;
+}
+%common-border-radius-500{
+ border-radius: $common-border-radius-500;
+}
+%common-border-radius-700{
+ border-radius: $common-border-radius-700;
+}
+%common-border-radius-900{
+ border-radius: $common-border-radius-900;
+}
+%common-border-radius-full{
+ border-radius: $common-border-radius-full;
+}
\ No newline at end of file
diff --git a/css/common/utils/helpers/_class-icon.scss b/css/common/utils/helpers/_class-icon.scss
new file mode 100644
index 000000000..ccad38f3e
--- /dev/null
+++ b/css/common/utils/helpers/_class-icon.scss
@@ -0,0 +1,8 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-class-icon--small--size: 32px !default;
+$common-class-icon--medium--size: 48px !default;
+$common-class-icon--large--size: 64px !default;
\ No newline at end of file
diff --git a/css/common/utils/helpers/_color.scss b/css/common/utils/helpers/_color.scss
new file mode 100644
index 000000000..4b51bec46
--- /dev/null
+++ b/css/common/utils/helpers/_color.scss
@@ -0,0 +1,23 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-text-colors: (
+ 'primary': $common-color-primary-800,
+ 'secondary': $common-color-secondary-800,
+ 'neutral': $common-color-secondary-800,
+ 'information': $common-color-information-800,
+ 'success': $common-color-success-800,
+ 'failure': $common-color-danger-800,
+ 'warning': $common-color-warning-800,
+ 'danger': $common-color-danger-800,
+ 'grey' : $common-color-grey-800,
+ 'blue-grey': $common-color-blue-grey-800,
+ 'blue': $common-color-blue-800,
+ 'cyan': $common-color-cyan-800,
+ 'green': $common-color-green-800,
+ 'orange': $common-color-orange-800,
+ 'red': $common-color-red-800,
+ 'pink': $common-color-pink-800,
+) !default;
diff --git a/css/common/utils/helpers/_depression.scss b/css/common/utils/helpers/_depression.scss
new file mode 100644
index 000000000..f8a878102
--- /dev/null
+++ b/css/common/utils/helpers/_depression.scss
@@ -0,0 +1,8 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+%common-depression-100{
+ box-shadow: $common-depression-100;
+}
\ No newline at end of file
diff --git a/css/common/utils/helpers/_elevation.scss b/css/common/utils/helpers/_elevation.scss
new file mode 100644
index 000000000..6394ad7fc
--- /dev/null
+++ b/css/common/utils/helpers/_elevation.scss
@@ -0,0 +1,20 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+%common-elevation-100{
+ box-shadow: $common-elevation-100;
+}
+%common-elevation-200{
+ box-shadow: $common-elevation-200;
+}
+%common-elevation-300{
+ box-shadow: $common-elevation-300;
+}
+%common-elevation-400{
+ box-shadow: $common-elevation-400;
+}
+%common-elevation-500{
+ box-shadow: $common-elevation-500;
+}
\ No newline at end of file
diff --git a/css/common/utils/helpers/_font-icon.scss b/css/common/utils/helpers/_font-icon.scss
new file mode 100644
index 000000000..3e90d2c75
--- /dev/null
+++ b/css/common/utils/helpers/_font-icon.scss
@@ -0,0 +1,43 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/******************************************************************************************************************************/
+/* NOTE: Those helpers allow to easily use an icon from libs. like FontAwesome or FontCombodo within a CSS rule (eg. ::after) */
+/* To use it, simply "@extend %fa-regular-base" in a rule and put the desired icon "content: '\f054'" */
+/******************************************************************************************************************************/
+
+%fa-regular-base{
+ font-family: "Font Awesome 5 Free";
+ font-weight: 400;
+
+ -webkit-font-smoothing: antialiased;
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+}
+%fa-solid-base{
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+
+ -webkit-font-smoothing: antialiased;
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+}
+%fc-regular-base{
+ display: inline-block;
+ font-family: CombodoRegular;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ text-rendering: auto;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
\ No newline at end of file
diff --git a/css/common/utils/helpers/_sticky-header.scss b/css/common/utils/helpers/_sticky-header.scss
new file mode 100644
index 000000000..ec49acf30
--- /dev/null
+++ b/css/common/utils/helpers/_sticky-header.scss
@@ -0,0 +1,19 @@
+/*!
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/***********************************************************************/
+/* Sticky headers */
+/* */
+/* Used as a trigger to make an element stick to another during scroll */
+/***********************************************************************/
+
+/* SCSS variables */
+$common-sticky-sentinel--left: 0 !default;
+$common-sticky-sentinel--right: 0 !default;
+$common-sticky-sentinel--height: 0 !default;
+$common-sticky-sentinel-top--top: 0 !default;
+$common-sticky-sentinel-top--height: $common-sticky-sentinel--height !default;
+$common-sticky-sentinel-bottom--bottom: 0 !default;
+$common-sticky-sentinel-bottom--height: $common-sticky-sentinel--height !default;
diff --git a/css/common/utils/helpers/_text-decoration.scss b/css/common/utils/helpers/_text-decoration.scss
new file mode 100644
index 000000000..5e67d9c7b
--- /dev/null
+++ b/css/common/utils/helpers/_text-decoration.scss
@@ -0,0 +1,23 @@
+/*!
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* SCSS variables */
+$common-has-description--content: "?" !default;
+$common-has-description--padding-left: $common-spacing-200 !default;
+$common-has-description--color: $common-color-grey-600 !default;
+$common-has-description--font-size: 0.7em !default; /* Font size is em on purpose as we want it to be proportional to its context */
+
+$common-is-code--background-color: $common-color-white-200 !default;
+$common-is-code--padding: 1.25rem 1.5rem !default;
+
+$common-hyperlink-color: $common-color-primary-700 !default;
+$common-hyperlink-text-decoration: none !default;
+$common-hyperlink-color--on-hover: $common-color-primary-800 !default;
+$common-hyperlink-text-decoration--on-hover: $common-hyperlink-text-decoration !default;
+$common-hyperlink-color--on-active: $common-color-primary-900 !default;
+$common-hyperlink-text-decoration--on-active: $common-hyperlink-text-decoration !default;
+
+$common-figure--spacing-x: 2em !default; /* Mind that this matches Bulma rule for figure */
+$common-figure--spacing-y: 2em !default;
diff --git a/css/common/utils/helpers/_text-position.scss b/css/common/utils/helpers/_text-position.scss
new file mode 100644
index 000000000..412a6ee73
--- /dev/null
+++ b/css/common/utils/helpers/_text-position.scss
@@ -0,0 +1,34 @@
+/*!
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/****************************/
+/* Disposition / alignement */
+/****************************/
+.common-is-fullwidth {
+ width: 100%;
+}
+
+%common-fully-centered-content {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+%common-vertically-centered-content {
+ display: flex;
+ align-items: center;
+}
+
+/* Typically to align icons and text as it is a good practice to align them on the baseline and not the "middle" */
+%common-baseline-centered-content {
+ display: flex;
+ align-items: baseline;
+}
+
+/* Note: This might not be named correctly. The intention is to make an element occupy the full height of its parent and to be centered in it */
+%common-full-height-content {
+ display: flex;
+ align-items: stretch;
+}
\ No newline at end of file
diff --git a/css/common/utils/helpers/_typography.scss b/css/common/utils/helpers/_typography.scss
new file mode 100644
index 000000000..9c965f859
--- /dev/null
+++ b/css/common/utils/helpers/_typography.scss
@@ -0,0 +1,745 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/*
+ * SCSS helpers for font sizes (use in SCSS files)
+ *
+ * Use them to only redefine the font size instead of the global font defnition, this way if the container's font changes
+ * the other properties will be propagated (weight, style)
+ *
+ * Usage: @extend %common-font-size-XXX;
+ */
+%common-font-size-50 {
+ font-size: $common-font-size-50;
+}
+%common-font-size-100 {
+ font-size: $common-font-size-100;
+}
+%common-font-size-150 {
+ font-size: $common-font-size-150;
+}
+%common-font-size-200 {
+ font-size: $common-font-size-200;
+}
+%common-font-size-250 {
+ font-size: $common-font-size-250;
+}
+%common-font-size-300 {
+ font-size: $common-font-size-300;
+}
+%common-font-size-350 {
+ font-size: $common-font-size-350;
+}
+%common-font-size-400 {
+ font-size: $common-font-size-400;
+}
+%common-font-size-450 {
+ font-size: $common-font-size-450;
+}
+%common-font-size-500 {
+ font-size: $common-font-size-500;
+}
+%common-font-size-550 {
+ font-size: $common-font-size-550;
+}
+
+/*
+ * SCSS helpers for font weights (use in SCSS files)
+ *
+ * Use them to only redefine the font weight instead of the global font defnition, this way if the container's font changes
+ * the other properties will be propagated (size, style)
+ *
+ * Usage: @extend %common-font-weight-XXX;
+ */
+%common-font-weight-100 {
+ font-weight: $common-font-weight-100;
+}
+%common-font-weight-200 {
+ font-weight: $common-font-weight-200;
+}
+%common-font-weight-300 {
+ font-weight: $common-font-weight-300;
+}
+%common-font-weight-400 {
+ font-weight: $common-font-weight-400;
+}
+%common-font-weight-500 {
+ font-weight: $common-font-weight-500;
+}
+%common-font-weight-600 {
+ font-weight: $common-font-weight-600;
+}
+%common-font-weight-700 {
+ font-weight: $common-font-weight-700;
+}
+%common-font-weight-800 {
+ font-weight: $common-font-weight-800;
+}
+%common-font-weight-900 {
+ font-weight: $common-font-weight-900;
+}
+%common-font-weight-950 {
+ font-weight: $common-font-weight-950;
+}
+
+/*
+ * SCSS helpers for global font definition (use in SCSS files)
+ *
+ * Use this only when you want to completely redefine the font, otherwise use the other helpers above
+ *
+ * Usage: @extend %common-font-XXX-YYY;
+ */
+%common-font-ral-nor-50 {
+ font-size: $common-font-size-50;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-100 {
+ font-size: $common-font-size-100;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-150 {
+ font-size: $common-font-size-150;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-200 {
+ font-size: $common-font-size-200;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-250 {
+ font-size: $common-font-size-250;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-300 {
+ font-size: $common-font-size-300;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-350 {
+ font-size: $common-font-size-350;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-400 {
+ font-size: $common-font-size-400;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-450 {
+ font-size: $common-font-size-450;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-500 {
+ font-size: $common-font-size-500;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-nor-550 {
+ font-size: $common-font-size-550;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-50 {
+ font-size: $common-font-size-50;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-100 {
+ font-size: $common-font-size-100;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-150 {
+ font-size: $common-font-size-150;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-200 {
+ font-size: $common-font-size-200;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-250 {
+ font-size: $common-font-size-250;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-300 {
+ font-size: $common-font-size-300;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-350 {
+ font-size: $common-font-size-350;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-400 {
+ font-size: $common-font-size-400;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-450 {
+ font-size: $common-font-size-450;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-500 {
+ font-size: $common-font-size-500;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-med-550 {
+ font-size: $common-font-size-550;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-500;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-50 {
+ font-size: $common-font-size-50;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-100 {
+ font-size: $common-font-size-100;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-150 {
+ font-size: $common-font-size-150;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-200 {
+ font-size: $common-font-size-200;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-250 {
+ font-size: $common-font-size-250;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-300 {
+ font-size: $common-font-size-300;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-350 {
+ font-size: $common-font-size-350;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-400 {
+ font-size: $common-font-size-400;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-450 {
+ font-size: $common-font-size-450;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-500 {
+ font-size: $common-font-size-500;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-bol-550 {
+ font-size: $common-font-size-550;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-700;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-50 {
+ font-size: $common-font-size-50;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-100 {
+ font-size: $common-font-size-100;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-150 {
+ font-size: $common-font-size-150;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-200 {
+ font-size: $common-font-size-200;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-250 {
+ font-size: $common-font-size-250;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-300 {
+ font-size: $common-font-size-300;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-350 {
+ font-size: $common-font-size-350;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-400 {
+ font-size: $common-font-size-400;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-450 {
+ font-size: $common-font-size-450;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-500 {
+ font-size: $common-font-size-500;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-sembol-550 {
+ font-size: $common-font-size-550;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-600;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-50 {
+ font-size: $common-font-size-50;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-100 {
+ font-size: $common-font-size-100;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-150 {
+ font-size: $common-font-size-150;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-200 {
+ font-size: $common-font-size-200;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-250 {
+ font-size: $common-font-size-250;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-300 {
+ font-size: $common-font-size-300;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-350 {
+ font-size: $common-font-size-350;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-400 {
+ font-size: $common-font-size-400;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-450 {
+ font-size: $common-font-size-450;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+%common-font-ral-ita-500 {
+ font-size: $common-font-size-500;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+
+%common-font-ral-ita-550 {
+ font-size: $common-font-size-550;
+ font-family: $common-font-family-base, $common-font-family-fallbacks;
+ font-weight: $common-font-weight-400;
+ font-style: italic;
+ -webkit-font-feature-settings: "lnum";
+ -moz-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+}
+
+%common-font-code-50 {
+ font-size: $common-font-size-50;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-100 {
+ font-size: $common-font-size-100;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-150 {
+ font-size: $common-font-size-150;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-200 {
+ font-size: $common-font-size-200;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-250 {
+ font-size: $common-font-size-250;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-300 {
+ font-size: $common-font-size-300;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-350 {
+ font-size: $common-font-size-350;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-400 {
+ font-size: $common-font-size-400;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-450 {
+ font-size: $common-font-size-450;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-500 {
+ font-size: $common-font-size-500;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+%common-font-code-550 {
+ font-size: $common-font-size-550;
+ font-family: $common-font-family-code;
+ font-weight: $common-font-weight-400;
+}
+
+/*
+ * CSS classes for font sizes (use in HTML markup, JS scripts)
+ *
+ * Use them to only redefine the font size instead of the global font defnition, this way if the container's font changes
+ * the other properties will be propagated (weight, style)
+ *
+ * Usage: .common-font-size-XXX;
+ */
+$common-font-sizes: (
+ 'common-font-size-50',
+ 'common-font-size-100',
+ 'common-font-size-150',
+ 'common-font-size-200',
+ 'common-font-size-250',
+ 'common-font-size-300',
+ 'common-font-size-350',
+ 'common-font-size-400',
+ 'common-font-size-450',
+ 'common-font-size-500',
+ 'common-font-size-550'
+);
+@each $sFontSize in $common-font-sizes {
+ .#{$sFontSize} {
+ @extend %#{$sFontSize};
+ }
+}
+
+/*
+ * CSS classes for font weights (use in HTML markup, JS scripts)
+ *
+ * Use them to only redefine the font weight instead of the global font defnition, this way if the container's font changes
+ * the other properties will be propagated (size, style)
+ *
+ * Usage: .common-font-weight-XXX;
+ */
+$common-font-weights: (
+ 'common-font-weight-100',
+ 'common-font-weight-200',
+ 'common-font-weight-300',
+ 'common-font-weight-400',
+ 'common-font-weight-500',
+ 'common-font-weight-600',
+ 'common-font-weight-700',
+ 'common-font-weight-800',
+ 'common-font-weight-900',
+ 'common-font-weight-950'
+);
+@each $sFontWeight in $common-font-weights {
+ .#{$sFontWeight} {
+ @extend %#{$sFontWeight};
+ }
+}
+
+/*
+ * CSS classes for global font wrappers (use in HTML markup, JS scripts)
+ *
+ * Use this only when you want to completely redefine the font, otherwise use the other helpers
+ *
+ * Usage: .common-font-XXX-YYY;
+ */
+$common-fonts-all: (
+ 'common-font-ral-nor-50',
+ 'common-font-ral-nor-100',
+ 'common-font-ral-nor-150',
+ 'common-font-ral-nor-200',
+ 'common-font-ral-nor-250',
+ 'common-font-ral-nor-300',
+ 'common-font-ral-nor-350',
+ 'common-font-ral-nor-400',
+ 'common-font-ral-nor-450',
+ 'common-font-ral-nor-500',
+ 'common-font-ral-nor-550',
+ 'common-font-ral-med-50',
+ 'common-font-ral-med-100',
+ 'common-font-ral-med-150',
+ 'common-font-ral-med-200',
+ 'common-font-ral-med-250',
+ 'common-font-ral-med-300',
+ 'common-font-ral-med-350',
+ 'common-font-ral-med-400',
+ 'common-font-ral-med-450',
+ 'common-font-ral-med-500',
+ 'common-font-ral-med-550',
+ 'common-font-ral-bol-50',
+ 'common-font-ral-bol-100',
+ 'common-font-ral-bol-150',
+ 'common-font-ral-bol-200',
+ 'common-font-ral-bol-250',
+ 'common-font-ral-bol-300',
+ 'common-font-ral-bol-350',
+ 'common-font-ral-bol-400',
+ 'common-font-ral-bol-450',
+ 'common-font-ral-bol-500',
+ 'common-font-ral-bol-550',
+ 'common-font-ral-sembol-50',
+ 'common-font-ral-sembol-100',
+ 'common-font-ral-sembol-150',
+ 'common-font-ral-sembol-200',
+ 'common-font-ral-sembol-250',
+ 'common-font-ral-sembol-300',
+ 'common-font-ral-sembol-350',
+ 'common-font-ral-sembol-400',
+ 'common-font-ral-sembol-450',
+ 'common-font-ral-sembol-500',
+ 'common-font-ral-sembol-550',
+ 'common-font-ral-ita-50',
+ 'common-font-ral-ita-100',
+ 'common-font-ral-ita-150',
+ 'common-font-ral-ita-200',
+ 'common-font-ral-ita-250',
+ 'common-font-ral-ita-300',
+ 'common-font-ral-ita-350',
+ 'common-font-ral-ita-400',
+ 'common-font-ral-ita-450',
+ 'common-font-ral-ita-500',
+ 'common-font-ral-ita-550',
+ 'common-font-code-50',
+ 'common-font-code-100',
+ 'common-font-code-150',
+ 'common-font-code-200',
+ 'common-font-code-250',
+ 'common-font-code-300',
+ 'common-font-code-350',
+ 'common-font-code-400',
+ 'common-font-code-450',
+ 'common-font-code-500',
+ 'common-font-code-550'
+);
+@each $sFont in $common-fonts-all {
+ .#{$sFont} {
+ @extend %#{$sFont};
+ }
+}
\ No newline at end of file
diff --git a/css/common/utils/mixins/_all.scss b/css/common/utils/mixins/_all.scss
new file mode 100644
index 000000000..f87007f3b
--- /dev/null
+++ b/css/common/utils/mixins/_all.scss
@@ -0,0 +1,7 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "highlight";
+@import "selectable";
\ No newline at end of file
diff --git a/css/common/utils/mixins/_highlight.scss b/css/common/utils/mixins/_highlight.scss
new file mode 100644
index 000000000..66a065221
--- /dev/null
+++ b/css/common/utils/mixins/_highlight.scss
@@ -0,0 +1,17 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-vertical-highlight--width: $common-size-100;
+$common-vertical-highlight--height: 100%;
+
+@mixin common-vertical-highlight {
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ content: "";
+ width: $common-vertical-highlight--width;
+ height: $common-vertical-highlight--height;
+}
\ No newline at end of file
diff --git a/css/common/utils/mixins/_selectable.scss b/css/common/utils/mixins/_selectable.scss
new file mode 100644
index 000000000..6bd2a5e5a
--- /dev/null
+++ b/css/common/utils/mixins/_selectable.scss
@@ -0,0 +1,40 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-selectable--background-color: transparent !default;
+
+$common-selectable--hover--color: $common-color-grey-100 !default;
+$common-selectable--hover--background-color: $common-color-grey-600 !default;
+$common-selectable--hover--background-opacity: 0.6 !default;
+
+$common-selected--color: $common-color-grey-100 !default;
+$common-selected--background-color: $common-color-grey-900 !default;
+$common-selected--background-opacity: 0.5 !default;
+
+$common-selected--hover--background-color: $common-color-grey-700 !default;
+$common-selected--hover--background-opacity: 0.5 !default;
+@mixin common-selectable {
+ content: ' ';
+ @extend %fa-solid-base;
+ background-color: $common-selectable--background-color;
+ cursor: pointer;
+}
+@mixin common-selectable-hover {
+ @extend %fa-regular-base;
+ content: '\f058';
+ color: $common-selectable--hover--color;
+ background-color: transparentize($common-selectable--hover--background-color, $common-selectable--hover--background-opacity);
+}
+
+@mixin common-selected {
+ @extend %fa-solid-base;
+ content: '\f058';
+ color: $common-selected--color;
+ background-color: transparentize($common-selected--background-color, $common-selected--background-opacity);
+}
+
+@mixin common-selected-hover {
+ background-color: transparentize($common-selected--hover--background-color, $common-selected--hover--background-opacity);
+}
\ No newline at end of file
diff --git a/css/common/utils/variables/_all.scss b/css/common/utils/variables/_all.scss
new file mode 100644
index 000000000..2f0be82f6
--- /dev/null
+++ b/css/common/utils/variables/_all.scss
@@ -0,0 +1,15 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "colors/all";
+@import "border-radius";
+@import "depression";
+@import "elevation";
+@import "path";
+@import "size";
+@import "spacing";
+@import "typography";
+// Important: Keep this partial last as it includes variables from the previous partials
+@import "base";
diff --git a/css/common/utils/variables/_base.scss b/css/common/utils/variables/_base.scss
new file mode 100644
index 000000000..b306db378
--- /dev/null
+++ b/css/common/utils/variables/_base.scss
@@ -0,0 +1,9 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+// These are the base variables used throughout the backoffice, if you don't know what to use, these are probably good :)
+
+$common-base-variable--text-color: $common-color-grey-900 !default;
+$common-base-variable--border-radius: $common-border-radius-300 !default;;
\ No newline at end of file
diff --git a/css/common/utils/variables/_border-radius.scss b/css/common/utils/variables/_border-radius.scss
new file mode 100644
index 000000000..823f8d765
--- /dev/null
+++ b/css/common/utils/variables/_border-radius.scss
@@ -0,0 +1,12 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-border-radius-100: 1px !default;
+$common-border-radius-300: 3px !default;
+$common-border-radius-400: 4px !default;
+$common-border-radius-500: 5px !default;
+$common-border-radius-700: 10px !default;
+$common-border-radius-900: 16px !default;
+$common-border-radius-full: 100% !default;
\ No newline at end of file
diff --git a/css/common/utils/variables/_depression.scss b/css/common/utils/variables/_depression.scss
new file mode 100644
index 000000000..ee1d270fa
--- /dev/null
+++ b/css/common/utils/variables/_depression.scss
@@ -0,0 +1,6 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-depression-100: inset 0 1px 1px 0 rgba(0, 0, 0, 0.15) !default;
\ No newline at end of file
diff --git a/css/common/utils/variables/_elevation.scss b/css/common/utils/variables/_elevation.scss
new file mode 100644
index 000000000..d9d86ae14
--- /dev/null
+++ b/css/common/utils/variables/_elevation.scss
@@ -0,0 +1,10 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-elevation-100: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.12) !default;
+$common-elevation-200: 0 2px 4px rgba(0, 0, 0, 0.12), 0 3px 6px rgba(0, 0, 0, 0.15) !default;
+$common-elevation-300: 0 3px 6px rgba(0, 0, 0, 0.10), 0 10px 20px rgba(0, 0, 0, 0.15) !default;
+$common-elevation-400: 0 5px 10px rgba(0, 0, 0, 0.05), 0 15px 25px rgba(0, 0, 0, 0.15) !default;
+$common-elevation-500: 0 20px 40px rgba(0, 0, 0, 0.20) !default;
diff --git a/css/common/utils/variables/_path.scss b/css/common/utils/variables/_path.scss
new file mode 100644
index 000000000..251b155d7
--- /dev/null
+++ b/css/common/utils/variables/_path.scss
@@ -0,0 +1,6 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$approot-relative: '../../../../' !default;
diff --git a/css/common/utils/variables/_size.scss b/css/common/utils/variables/_size.scss
new file mode 100644
index 000000000..12cfb9827
--- /dev/null
+++ b/css/common/utils/variables/_size.scss
@@ -0,0 +1,24 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-size-0: 0 !default;
+$common-size-50: 2px !default;
+$common-size-100: 4px !default;
+$common-size-150: 8px !default;
+$common-size-200: 12px !default;
+$common-size-250: 16px !default;
+$common-size-300: 24px !default;
+$common-size-350: 32px !default;
+$common-size-400: 48px !default;
+$common-size-450: 64px !default;
+$common-size-500: 96px !default;
+$common-size-550: 128px !default;
+$common-size-600: 192px !default;
+$common-size-650: 256px !default;
+$common-size-700: 384px !default;
+$common-size-750: 512px !default;
+$common-size-800: 640px !default;
+$common-size-850: 768px !default;
+$common-size-900: 896px !default;
diff --git a/css/common/utils/variables/_spacing.scss b/css/common/utils/variables/_spacing.scss
new file mode 100644
index 000000000..4d22d7bb1
--- /dev/null
+++ b/css/common/utils/variables/_spacing.scss
@@ -0,0 +1,16 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+$common-spacing-0: $common-size-0 !default;
+$common-spacing-100: $common-size-50 !default;
+$common-spacing-200: $common-size-100 !default;
+$common-spacing-300: $common-size-150 !default;
+$common-spacing-400: $common-size-200 !default;
+$common-spacing-500: $common-size-250 !default;
+$common-spacing-600: $common-size-300 !default;
+$common-spacing-700: $common-size-350 !default;
+$common-spacing-800: $common-size-400 !default;
+$common-spacing-900: $common-size-450 !default;
+$common-spacing-950: $common-size-500 !default;
diff --git a/css/common/utils/variables/_typography.scss b/css/common/utils/variables/_typography.scss
new file mode 100644
index 000000000..6b284f5d2
--- /dev/null
+++ b/css/common/utils/variables/_typography.scss
@@ -0,0 +1,38 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* Base size: html font-size 12px */
+$common-font-size-20: 0.67rem !default; /* 8px */
+$common-font-size-50: 0.83rem !default; /* 10px */
+$common-font-size-100: 1rem !default; /* 12px */
+$common-font-size-150: 1.17rem !default; /* 14px */
+$common-font-size-200: 1.33rem !default; /* 16px */
+$common-font-size-250: 1.5rem !default; /* 18px */
+$common-font-size-300: 1.67rem !default; /* 20px */
+$common-font-size-350: 1.83rem !default; /* 22px */
+$common-font-size-400: 2rem !default; /* 24px */
+$common-font-size-450: 2.5rem !default; /* 30px */
+$common-font-size-500: 3rem !default; /* 36px */
+$common-font-size-550: 4rem !default; /* 48px */
+$common-font-size-600: 5rem !default; /* 60px */
+$common-font-size-650: 6rem !default; /* 72px */
+$common-font-size-700: 7rem !default; /* 84px */
+
+/* Value Common weight name (https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight) */
+$common-font-weight-100: 100 !default; /* 100 Thin (Harline) */
+$common-font-weight-200: 200 !default; /* 200 Extra Light (Ultra Light) */
+$common-font-weight-300: 300 !default; /* 300 Light */
+$common-font-weight-400: 400 !default; /* 400 Normal (Regular) */
+$common-font-weight-500: 500 !default; /* 500 Medium */
+$common-font-weight-600: 600 !default; /* 600 Semi Bold (Demi Bold) */
+$common-font-weight-700: 700 !default; /* 700 Bold */
+$common-font-weight-800: 800 !default; /* 800 Extra Bold (Ultra Bold) */
+$common-font-weight-900: 900 !default; /* 900 Black (Heavy) */
+$common-font-weight-950: 950 !default; /* 950 Extra Black (Ultra Black) */
+
+$common-font-family-base: "Raleway" !default;
+$common-font-family-fallbacks: "sans-serif", "system-ui" !default;
+$common-font-family-monospace: monospace !default;
+$common-font-family-code: $common-font-family-monospace !default;
diff --git a/css/common/utils/variables/colors/_all.scss b/css/common/utils/variables/colors/_all.scss
new file mode 100644
index 000000000..e6441601e
--- /dev/null
+++ b/css/common/utils/variables/colors/_all.scss
@@ -0,0 +1,10 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+@import "base";
+@import "base-palette";
+@import "semantic-palette";
+@import "lifecycle-palette";
+@import "skeleton-palette";
\ No newline at end of file
diff --git a/css/common/utils/variables/colors/_base-palette.scss b/css/common/utils/variables/colors/_base-palette.scss
new file mode 100644
index 000000000..16e73d134
--- /dev/null
+++ b/css/common/utils/variables/colors/_base-palette.scss
@@ -0,0 +1,102 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* Base color palettes */
+$common-color-white-100: hsla(0, 0%, 100%, 1) !default;
+$common-color-white-200: hsla(0, 0%, 94.9%, 1) !default;
+$common-color-transparent: hsla(0, 0%, 100%, 0) !default;
+
+$common-color-grey-50: hsla(240, 20%, 99%, 1) !default;
+$common-color-grey-100: hsla(210, 16.7%, 97.6%, 1) !default;
+$common-color-grey-200: hsla(207, 22.4%, 90.4%, 1) !default;
+$common-color-grey-300: hsla(210, 23.5%, 86.7%, 1) !default;
+$common-color-grey-400: hsla(208, 17.2%, 82.9%, 1) !default;
+$common-color-grey-500: hsla(209, 23.7%, 74.3%, 1) !default;
+$common-color-grey-600: hsla(215, 16.6%, 63.3%, 1) !default;
+$common-color-grey-700: hsla(214, 11.3%, 48.6%, 1) !default;
+$common-color-grey-800: hsla(215, 16.9%, 30.2%, 1) !default;
+$common-color-grey-900: hsla(215, 22.4%, 16.7%, 1) !default;
+$common-color-grey-950: hsla(215, 26.4%, 10.7%, 1) !default;
+
+$common-color-blue-grey-50: hsla(210, 36%, 96%, 1) !default;
+$common-color-blue-grey-100: hsla(198, 15.7%, 83.7%, 1) !default;
+$common-color-blue-grey-200: hsla(200, 15.3%, 73.1%, 1) !default;
+$common-color-blue-grey-300: hsla(200, 15.6%, 62.4%, 1) !default;
+$common-color-blue-grey-400: hsla(200, 15.4%, 54.1%, 1) !default;
+$common-color-blue-grey-500: hsla(200, 18.3%, 46.1%, 1) !default;
+$common-color-blue-grey-600: hsla(199, 18.4%, 40.4%, 1) !default;
+$common-color-blue-grey-700: hsla(199, 18.3%, 33.1%, 1) !default;
+$common-color-blue-grey-800: hsla(200, 17.9%, 26.3%, 1) !default;
+$common-color-blue-grey-900: hsla(200, 19.1%, 18.4%, 1) !default;
+$common-color-blue-grey-950: hsla(200, 20.2%, 13.1%, 1) !default;
+
+$common-color-blue-100: hsla(201, 100%, 96.1%, 1) !default;
+$common-color-blue-200: hsla(202, 80.6%, 85.9%, 1) !default;
+$common-color-blue-300: hsla(203, 82%, 76.1%, 1) !default;
+$common-color-blue-400: hsla(205, 79.3%, 65.9%, 1) !default;
+$common-color-blue-500: hsla(207, 72.6%, 57.1%, 1) !default;
+$common-color-blue-600: hsla(209, 61.6%, 50%, 1) !default;
+$common-color-blue-700: hsla(211, 60.7%, 42.9%, 1) !default;
+$common-color-blue-800: hsla(213, 49.4%, 34.1%, 1) !default;
+$common-color-blue-900: hsla(215, 41.3%, 28%, 1) !default;
+$common-color-blue-950: hsla(215, 36.8%, 23%, 1) !default;
+
+$common-color-cyan-100: hsla(186, 61.2%, 86.9%, 1) !default;
+$common-color-cyan-200: hsla(187, 71.6%, 71%, 1) !default;
+$common-color-cyan-300: hsla(187, 71.2%, 59.2%, 1) !default;
+$common-color-cyan-400: hsla(187, 70.9%, 50.2%, 1) !default;
+$common-color-cyan-500: hsla(187, 100%, 41.6%, 1) !default;
+$common-color-cyan-600: hsla(187, 100%, 37.8%, 1) !default;
+$common-color-cyan-700: hsla(186, 100%, 32.7%, 1) !default;
+$common-color-cyan-800: hsla(185, 100%, 28%, 1) !default;
+$common-color-cyan-900: hsla(182, 100%, 19.6%, 1) !default;
+$common-color-cyan-950: hsla(180, 100%, 10.6%, 1) !default;
+
+$common-color-green-100: hsla(88, 50.7%, 85.7%, 1) !default;
+$common-color-green-200: hsla(88, 50%, 76.5%, 1) !default;
+$common-color-green-300: hsla(88, 50%, 67.1%, 1) !default;
+$common-color-green-400: hsla(88, 50.2%, 59.8%, 1) !default;
+$common-color-green-500: hsla(88, 50.2%, 52.7%, 1) !default;
+$common-color-green-600: hsla(89, 46.1%, 48%, 1) !default;
+$common-color-green-700: hsla(92, 47.9%, 42.2%, 1) !default;
+$common-color-green-800: hsla(95, 49.5%, 36.5%, 1) !default;
+$common-color-green-900: hsla(103, 55.6%, 26.5%, 1) !default;
+$common-color-green-950: hsla(108, 59.6%, 21.5%, 1) !default;
+
+
+$common-color-orange-100: hsla(40, 100%, 97.1%, 1) !default;
+$common-color-orange-200: hsla(39, 96.4%, 89%, 1) !default;
+$common-color-orange-300: hsla(38, 93.2%, 76.9%, 1) !default;
+$common-color-orange-400: hsla(33, 89.9%, 64.9%, 1) !default;
+$common-color-orange-500: hsla(28, 82.9%, 51.8%, 1) !default;
+$common-color-orange-600: hsla(24, 74.7%, 49.6%, 1) !default;
+$common-color-orange-700: hsla(20, 70.7%, 44.1%, 1) !default;
+$common-color-orange-800: hsla(16, 65.1%, 37.1%, 1) !default;
+$common-color-orange-900: hsla(14, 60.8%, 30%, 1) !default;
+$common-color-orange-950: hsla(14, 55.1%, 22%, 1) !default;
+
+$common-color-red-100: hsla(0, 76.9%, 94.9%, 1) !default;
+$common-color-red-200: hsla(0, 95.1%, 92%, 1) !default;
+$common-color-red-300: hsla(0, 97.4%, 84.7%, 1) !default;
+$common-color-red-400: hsla(0, 95.3%, 74.7%, 1) !default;
+$common-color-red-500: hsla(0, 87.8%, 67.8%, 1) !default;
+$common-color-red-600: hsla(0, 76.3%, 57.1%, 1) !default;
+$common-color-red-700: hsla(0, 60.8%, 48%, 1) !default;
+$common-color-red-800: hsla(0, 55.8%, 39%, 1) !default;
+$common-color-red-900: hsla(0, 46.8%, 31%, 1) !default;
+$common-color-red-950: hsla(0, 42.9%, 20%, 1) !default;
+
+$common-color-pink-100: hsla(348, 100%, 98%, 1) !default;
+$common-color-pink-200: hsla(343, 95%, 92%, 1) !default;
+$common-color-pink-300: hsla(339, 90%, 85%, 1) !default;
+$common-color-pink-400: hsla(336, 86%, 75%, 1) !default;
+$common-color-pink-500: hsla(331, 79%, 66%, 1) !default;
+$common-color-pink-600: hsla(329, 64%, 54%, 1) !default;
+$common-color-pink-700: hsla(325, 57%, 46%, 1) !default;
+$common-color-pink-800: hsla(322, 60%, 37%, 1) !default;
+$common-color-pink-900: hsla(318, 51%, 29%, 1) !default;
+$common-color-pink-950: hsla(318, 51%, 21%, 1) !default;
+
+$common-colors: ('grey', 'blue-grey', 'blue', 'cyan', 'green', 'orange', 'red', 'pink', 'primary', 'secondary', 'information', 'success', 'warning', 'danger');
\ No newline at end of file
diff --git a/css/common/utils/variables/colors/_base.scss b/css/common/utils/variables/colors/_base.scss
new file mode 100644
index 000000000..3eab9bca3
--- /dev/null
+++ b/css/common/utils/variables/colors/_base.scss
@@ -0,0 +1,12 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* Base helpers for colors */
+/* - These lightness vars are used to force a certain lightness on HSLA colors */
+$common-color-base-lightness-100: 93% !default;
+$common-color-base-lightness-900: 15% !default;
+
+$common-color-base-opacity-for-lightness-100: 1 !default;
+$common-color-base-opacity-for-lightness-900: 1 !default;
\ No newline at end of file
diff --git a/css/common/utils/variables/colors/_lifecycle-palette.scss b/css/common/utils/variables/colors/_lifecycle-palette.scss
new file mode 100644
index 000000000..7a17ac539
--- /dev/null
+++ b/css/common/utils/variables/colors/_lifecycle-palette.scss
@@ -0,0 +1,61 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* Lifecycle palette */
+/* - For workflow */
+$common-lifecycle-new-state-primary-color: $common-color-blue-800 !default;
+$common-lifecycle-new-state-secondary-color: $common-color-white-100 !default;
+$common-lifecycle-neutral-state-primary-color: $common-color-blue-800 !default;
+$common-lifecycle-neutral-state-secondary-color: $common-color-white-100 !default;
+$common-lifecycle-waiting-state-primary-color: $common-color-orange-400 !default;
+$common-lifecycle-waiting-state-secondary-color: $common-color-white-100 !default;
+$common-lifecycle-success-state-primary-color: $common-color-green-700 !default;
+$common-lifecycle-success-state-secondary-color: $common-color-white-100 !default;
+$common-lifecycle-failure-state-primary-color: $common-color-pink-700 !default;
+$common-lifecycle-failure-state-secondary-color: $common-color-white-100 !default;
+$common-lifecycle-frozen-state-primary-color: $common-color-grey-200 !default;
+$common-lifecycle-frozen-state-secondary-color: $common-color-grey-700 !default;
+
+/* - For basic lifecycle */
+$common-lifecycle-active-state-primary-color: $common-color-green-700 !default;
+$common-lifecycle-active-state-secondary-color: $common-color-white-100 !default;
+$common-lifecycle-inactive-state-primary-color: $common-color-orange-400 !default;
+$common-lifecycle-inactive-state-secondary-color: $common-color-white-100 !default;
+
+$common-lifecycle-states-colors: (
+ 'new': (
+ 'primary-color': $common-lifecycle-new-state-primary-color,
+ 'secondary-color': $common-lifecycle-new-state-secondary-color,
+ ),
+ 'neutral': (
+ 'primary-color': $common-lifecycle-neutral-state-primary-color,
+ 'secondary-color': $common-lifecycle-neutral-state-secondary-color,
+ ),
+ 'waiting': (
+ 'primary-color': $common-lifecycle-waiting-state-primary-color,
+ 'secondary-color': $common-lifecycle-waiting-state-secondary-color,
+ ),
+ 'success': (
+ 'primary-color': $common-lifecycle-success-state-primary-color,
+ 'secondary-color': $common-lifecycle-success-state-secondary-color,
+ ),
+ 'failure': (
+ 'primary-color': $common-lifecycle-failure-state-primary-color,
+ 'secondary-color': $common-lifecycle-failure-state-secondary-color,
+ ),
+ 'frozen': (
+ 'primary-color': $common-lifecycle-frozen-state-primary-color,
+ 'secondary-color': $common-lifecycle-frozen-state-secondary-color,
+ ),
+
+ 'active': (
+ 'primary-color': $common-lifecycle-active-state-primary-color,
+ 'secondary-color': $common-lifecycle-active-state-secondary-color,
+ ),
+ 'inactive': (
+ 'primary-color': $common-lifecycle-inactive-state-primary-color,
+ 'secondary-color': $common-lifecycle-inactive-state-secondary-color,
+ ),
+);
\ No newline at end of file
diff --git a/css/common/utils/variables/colors/_semantic-palette.scss b/css/common/utils/variables/colors/_semantic-palette.scss
new file mode 100644
index 000000000..030ea787e
--- /dev/null
+++ b/css/common/utils/variables/colors/_semantic-palette.scss
@@ -0,0 +1,100 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* Semantic palettes */
+/* - Primary color of the brand */
+$common-color-primary-100: $common-color-blue-100 !default;
+$common-color-primary-200: $common-color-blue-200 !default;
+$common-color-primary-300: $common-color-blue-300 !default;
+$common-color-primary-400: $common-color-blue-400 !default;
+$common-color-primary-500: $common-color-blue-500 !default;
+$common-color-primary-600: $common-color-blue-600 !default;
+$common-color-primary-700: $common-color-blue-700 !default;
+$common-color-primary-800: $common-color-blue-800 !default;
+$common-color-primary-900: $common-color-blue-900 !default;
+$common-color-primary-950: $common-color-blue-950 !default;
+
+/* - Secondary color of the brand */
+$common-color-secondary-100: $common-color-grey-100 !default;
+$common-color-secondary-200: $common-color-grey-200 !default;
+$common-color-secondary-300: $common-color-grey-300 !default;
+$common-color-secondary-400: $common-color-grey-400 !default;
+$common-color-secondary-500: $common-color-grey-500 !default;
+$common-color-secondary-600: $common-color-grey-600 !default;
+$common-color-secondary-700: $common-color-grey-700 !default;
+$common-color-secondary-800: $common-color-grey-800 !default;
+$common-color-secondary-900: $common-color-grey-900 !default;
+$common-color-secondary-950: $common-color-grey-950 !default;
+
+/* - Information: messages / actions that should neither seem as success, warning or failure */
+$common-color-information-100: $common-color-blue-100 !default;
+$common-color-information-200: $common-color-blue-200 !default;
+$common-color-information-300: $common-color-blue-300 !default;
+$common-color-information-400: $common-color-blue-400 !default;
+$common-color-information-500: $common-color-blue-500 !default;
+$common-color-information-600: $common-color-blue-600 !default;
+$common-color-information-700: $common-color-blue-700 !default;
+$common-color-information-800: $common-color-blue-800 !default;
+$common-color-information-900: $common-color-blue-900 !default;
+$common-color-information-950: $common-color-blue-950 !default;
+
+/* Success: messages of success, safe actions, ... */
+$common-color-success-100: $common-color-green-100 !default;
+$common-color-success-200: $common-color-green-200 !default;
+$common-color-success-300: $common-color-green-300 !default;
+$common-color-success-400: $common-color-green-400 !default;
+$common-color-success-500: $common-color-green-500 !default;
+$common-color-success-600: $common-color-green-600 !default;
+$common-color-success-700: $common-color-green-700 !default;
+$common-color-success-800: $common-color-green-800 !default;
+$common-color-success-900: $common-color-green-900 !default;
+$common-color-success-950: $common-color-green-950 !default;
+
+/* Warning: messages of warning, actions that would be done carefully, ... */
+$common-color-warning-100: $common-color-orange-100 !default;
+$common-color-warning-200: $common-color-orange-200 !default;
+$common-color-warning-300: $common-color-orange-300 !default;
+$common-color-warning-400: $common-color-orange-400 !default;
+$common-color-warning-500: $common-color-orange-500 !default;
+$common-color-warning-600: $common-color-orange-600 !default;
+$common-color-warning-700: $common-color-orange-700 !default;
+$common-color-warning-800: $common-color-orange-800 !default;
+$common-color-warning-900: $common-color-orange-900 !default;
+$common-color-warning-950: $common-color-orange-950 !default;
+
+/* Danger: messages of failure, error, ... */
+$common-color-error-100: $common-color-red-100 !default;
+$common-color-error-200: $common-color-red-200 !default;
+$common-color-error-300: $common-color-red-300 !default;
+$common-color-error-400: $common-color-red-400 !default;
+$common-color-error-500: $common-color-red-500 !default;
+$common-color-error-600: $common-color-red-600 !default;
+$common-color-error-700: $common-color-red-700 !default;
+$common-color-error-800: $common-color-red-800 !default;
+$common-color-error-900: $common-color-red-900 !default;
+$common-color-error-950: $common-color-red-950 !default;
+
+/* Danger: messages of danger, actions that cannot be undone, ... */
+$common-color-danger-100: $common-color-red-100 !default;
+$common-color-danger-200: $common-color-red-200 !default;
+$common-color-danger-300: $common-color-red-300 !default;
+$common-color-danger-400: $common-color-red-400 !default;
+$common-color-danger-500: $common-color-red-500 !default;
+$common-color-danger-600: $common-color-red-600 !default;
+$common-color-danger-700: $common-color-red-700 !default;
+$common-color-danger-800: $common-color-red-800 !default;
+$common-color-danger-900: $common-color-red-900 !default;
+$common-color-danger-950: $common-color-red-950 !default;
+
+$common-semantic-colors: ('primary', 'secondary', 'information', 'success', 'warning', 'danger');
+
+$common-caselog-highlight-color-1: $common-color-green-700 !default;
+$common-caselog-highlight-color-2: $common-color-pink-700 !default;
+$common-caselog-highlight-color-3: $common-color-orange-400 !default;
+$common-caselog-highlight-color-4: $common-color-blue-600 !default;
+$common-caselog-highlight-color-5: $common-color-cyan-200 !default;
+$common-caselog-highlight-color-6: $common-color-green-200 !default;
+$common-caselog-highlight-color-7: $common-color-pink-300 !default;
+$common-caselog-highlight-colors: ($common-caselog-highlight-color-1, $common-caselog-highlight-color-2, $common-caselog-highlight-color-3, $common-caselog-highlight-color-4, $common-caselog-highlight-color-5, $common-caselog-highlight-color-6, $common-caselog-highlight-color-7) !default;
diff --git a/css/common/utils/variables/colors/_skeleton-palette.scss b/css/common/utils/variables/colors/_skeleton-palette.scss
new file mode 100644
index 000000000..3aedc2c90
--- /dev/null
+++ b/css/common/utils/variables/colors/_skeleton-palette.scss
@@ -0,0 +1,17 @@
+/*
+ * @copyright Copyright (C) 2010-2024 Combodo SAS
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+/* Skeleton palette */
+/* - Colors used by skeletons svg to display placeholders */
+
+$common-skeleton-start-color: $common-color-grey-200 !default;
+$common-skeleton-stop-color: $common-color-blue-grey-100 !default;
+
+/* CSS variables */
+/* Skeleton CSS3 variables are not common prefixed as they are not iTop backoffice exclusives*/
+:root {
+ --skeleton-start-color: #{$common-skeleton-start-color};
+ --skeleton-stop-color: #{$common-skeleton-stop-color};
+}
\ No newline at end of file
diff --git a/css/common/vendors/_all.scss b/css/common/vendors/_all.scss
new file mode 100644
index 000000000..e41eddb40
--- /dev/null
+++ b/css/common/vendors/_all.scss
@@ -0,0 +1 @@
+@import "highlightjs";
\ No newline at end of file
diff --git a/css/common/vendors/_highlightjs.scss b/css/common/vendors/_highlightjs.scss
index d23dce08b..e033673f5 100644
--- a/css/common/vendors/_highlightjs.scss
+++ b/css/common/vendors/_highlightjs.scss
@@ -5,9 +5,9 @@
$common-vendors-highlightjs--padding: 0.9rem !default;
$common-vendors-highlightjs--box-shadow: 0 0px 3px 2px inset rgba(0, 0, 0, 0.4) !default;
-$common-vendors-highlightjs--border-radius: 4px !default;
-$common-vendors-highlightjs--code--padding-x: 5px !default;
-$common-vendors-highlightjs--code--padding-y: 3px !default;
+$common-vendors-highlightjs--border-radius: $common-border-radius-300 !default;
+$common-vendors-highlightjs--code--padding-x: $common-spacing-200 !default;
+$common-vendors-highlightjs--code--padding-y: $common-spacing-200 !default;
$common-vendors-highlightjs--background-color: #282b2e !default;
$common-vendors-highlightjs--color: #e0e2e4 !default;
@@ -22,99 +22,3 @@ $common-vendors-highlightjs--comment--color: #818e96 !default;
$common-vendors-highlightjs--selector-class--color: #A082BD !default;
$common-vendors-highlightjs--code--color: white !default;
-
-// Highlight.js stylesheets
-/* Highlight JS */
-.hljs {
-
-}
-
-.common-hljs-container{
- padding: 0 !important;
- border: none !important;
-}
-
-pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: $common-vendors-highlightjs--padding !important;
-}
-
-code.hljs {
- padding: $common-vendors-highlightjs--code--padding-y $common-vendors-highlightjs--code--padding-x !important;
-}
-/**
- * Obsidian style
- * ported by Alexander Marenin (http://github.com/ioncreature)
- */
-.hljs {
- box-shadow: $common-vendors-highlightjs--box-shadow !important;
- border-radius: $common-vendors-highlightjs--border-radius !important;
- white-space: pre-wrap;
- border: none !important;
- color: $common-vendors-highlightjs--color !important;
- background: $common-vendors-highlightjs--background-color !important;
-}
-.hljs-keyword,
-.hljs-selector-tag,
-.hljs-literal,
-.hljs-selector-id {
- color: $common-vendors-highlightjs--keyword--color !important;
-}
-.hljs-number {
- color: $common-vendors-highlightjs--number--color !important;
-}
-.hljs-attribute {
- color: $common-vendors-highlightjs--attribute--color
-}
-.hljs-regexp,
-.hljs-link {
- color: $common-vendors-highlightjs--regexp--color !important;
-}
-.hljs-meta {
- color: $common-vendors-highlightjs--meta--color !important;
-}
-.hljs-tag,
-.hljs-name,
-.hljs-bullet,
-.hljs-subst,
-.hljs-emphasis,
-.hljs-type,
-.hljs-built_in,
-.hljs-selector-attr,
-.hljs-selector-pseudo,
-.hljs-addition,
-.hljs-variable,
-.hljs-template-tag,
-.hljs-template-variable {
- color: $common-vendors-highlightjs--tag--color !important;
-}
-.hljs-string,
-.hljs-symbol {
- color: $common-vendors-highlightjs--string--color !important;
-}
-.hljs-comment,
-.hljs-quote,
-.hljs-deletion {
- color: $common-vendors-highlightjs--comment--color !important;
-}
-.hljs-selector-class {
- color: $common-vendors-highlightjs--selector-class--color !important;
-}
-.hljs-keyword,
-.hljs-selector-tag,
-.hljs-literal,
-.hljs-doctag,
-.hljs-title,
-.hljs-section,
-.hljs-type,
-.hljs-name,
-.hljs-strong {
- font-weight: bold
-}
-.hljs-code,
-.hljs-title.class_,
-.hljs-class .hljs-title,
-.hljs-section {
- color: $common-vendors-highlightjs--code--color !important;
-}
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
index fdc8c5f17..0d0b9ad76 100644
--- a/node_modules/.package-lock.json
+++ b/node_modules/.package-lock.json
@@ -71,7 +71,7 @@
},
"node_modules/ckeditor5-itop-build": {
"version": "3.2.0",
- "resolved": "git+ssh://git@github.com/Combodo/ckeditor5-itop-build.git#afb3e73d4636520a46e2c05d6630bbed9c4f6cc5"
+ "resolved": "git+ssh://git@github.com/Combodo/ckeditor5-itop-build.git#7366299c6c4b659736b958c5e9496e98c22a3c36"
},
"node_modules/clipboard": {
"version": "2.0.11",
diff --git a/node_modules/ckeditor5-itop-build/README.md b/node_modules/ckeditor5-itop-build/README.md
index 279e95266..c0d45bef2 100644
--- a/node_modules/ckeditor5-itop-build/README.md
+++ b/node_modules/ckeditor5-itop-build/README.md
@@ -32,5 +32,5 @@ In order to update iTop CKEditor's build you need to push your changes to github
Then run the following command in iTop's root directory:
```
- npm install https://github.com/Combodo/ckeditor5-itop-build.git
+ npm install https://github.com/Combodo/ckeditor5-itop-build.git --omit=dev
```
\ No newline at end of file
diff --git a/node_modules/ckeditor5-itop-build/build/ckeditor.js b/node_modules/ckeditor5-itop-build/build/ckeditor.js
index cbcbcf699..92414c6b9 100644
--- a/node_modules/ckeditor5-itop-build/build/ckeditor.js
+++ b/node_modules/ckeditor5-itop-build/build/ckeditor.js
@@ -3,5 +3,5 @@
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md.
*/
-function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ClassicEditor=t():e.ClassicEditor=t()}(self,(()=>(()=>{var e,t,i={659:(e,t,i)=>{const n=i(156),o={};for(const e of Object.keys(n))o[n[e]]=e;const s={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=s;for(const e of Object.keys(s)){if(!("channels"in s[e]))throw new Error("missing channels property: "+e);if(!("labels"in s[e]))throw new Error("missing channel labels property: "+e);if(s[e].labels.length!==s[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:i}=s[e];delete s[e].channels,delete s[e].labels,Object.defineProperty(s[e],"channels",{value:t}),Object.defineProperty(s[e],"labels",{value:i})}s.rgb.hsl=function(e){const t=e[0]/255,i=e[1]/255,n=e[2]/255,o=Math.min(t,i,n),s=Math.max(t,i,n),r=s-o;let a,l;s===o?a=0:t===s?a=(i-n)/r:i===s?a=2+(n-t)/r:n===s&&(a=4+(t-i)/r),a=Math.min(60*a,360),a<0&&(a+=360);const c=(o+s)/2;return l=s===o?0:c<=.5?r/(s+o):r/(2-s-o),[a,100*l,100*c]},s.rgb.hsv=function(e){let t,i,n,o,s;const r=e[0]/255,a=e[1]/255,l=e[2]/255,c=Math.max(r,a,l),d=c-Math.min(r,a,l),h=function(e){return(c-e)/6/d+.5};return 0===d?(o=0,s=0):(s=d/c,t=h(r),i=h(a),n=h(l),r===c?o=n-i:a===c?o=1/3+t-n:l===c&&(o=2/3+i-t),o<0?o+=1:o>1&&(o-=1)),[360*o,100*s,100*c]},s.rgb.hwb=function(e){const t=e[0],i=e[1];let n=e[2];const o=s.rgb.hsl(e)[0],r=1/255*Math.min(t,Math.min(i,n));return n=1-1/255*Math.max(t,Math.max(i,n)),[o,100*r,100*n]},s.rgb.cmyk=function(e){const t=e[0]/255,i=e[1]/255,n=e[2]/255,o=Math.min(1-t,1-i,1-n);return[100*((1-t-o)/(1-o)||0),100*((1-i-o)/(1-o)||0),100*((1-n-o)/(1-o)||0),100*o]},s.rgb.keyword=function(e){const t=o[e];if(t)return t;let i,s=1/0;for(const t of Object.keys(n)){const o=n[t],l=(a=o,((r=e)[0]-a[0])**2+(r[1]-a[1])**2+(r[2]-a[2])**2);l.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*i+.1805*n),100*(.2126*t+.7152*i+.0722*n),100*(.0193*t+.1192*i+.9505*n)]},s.rgb.lab=function(e){const t=s.rgb.xyz(e);let i=t[0],n=t[1],o=t[2];i/=95.047,n/=100,o/=108.883,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;return[116*n-16,500*(i-n),200*(n-o)]},s.hsl.rgb=function(e){const t=e[0]/360,i=e[1]/100,n=e[2]/100;let o,s,r;if(0===i)return r=255*n,[r,r,r];o=n<.5?n*(1+i):n+i-n*i;const a=2*n-o,l=[0,0,0];for(let e=0;e<3;e++)s=t+1/3*-(e-1),s<0&&s++,s>1&&s--,r=6*s<1?a+6*(o-a)*s:2*s<1?o:3*s<2?a+(o-a)*(2/3-s)*6:a,l[e]=255*r;return l},s.hsl.hsv=function(e){const t=e[0];let i=e[1]/100,n=e[2]/100,o=i;const s=Math.max(n,.01);n*=2,i*=n<=1?n:2-n,o*=s<=1?s:2-s;return[t,100*(0===n?2*o/(s+o):2*i/(n+i)),100*((n+i)/2)]},s.hsv.rgb=function(e){const t=e[0]/60,i=e[1]/100;let n=e[2]/100;const o=Math.floor(t)%6,s=t-Math.floor(t),r=255*n*(1-i),a=255*n*(1-i*s),l=255*n*(1-i*(1-s));switch(n*=255,o){case 0:return[n,l,r];case 1:return[a,n,r];case 2:return[r,n,l];case 3:return[r,a,n];case 4:return[l,r,n];case 5:return[n,r,a]}},s.hsv.hsl=function(e){const t=e[0],i=e[1]/100,n=e[2]/100,o=Math.max(n,.01);let s,r;r=(2-i)*n;const a=(2-i)*o;return s=i*o,s/=a<=1?a:2-a,s=s||0,r/=2,[t,100*s,100*r]},s.hwb.rgb=function(e){const t=e[0]/360;let i=e[1]/100,n=e[2]/100;const o=i+n;let s;o>1&&(i/=o,n/=o);const r=Math.floor(6*t),a=1-n;s=6*t-r,1&r&&(s=1-s);const l=i+s*(a-i);let c,d,h;switch(r){default:case 6:case 0:c=a,d=l,h=i;break;case 1:c=l,d=a,h=i;break;case 2:c=i,d=a,h=l;break;case 3:c=i,d=l,h=a;break;case 4:c=l,d=i,h=a;break;case 5:c=a,d=i,h=l}return[255*c,255*d,255*h]},s.cmyk.rgb=function(e){const t=e[0]/100,i=e[1]/100,n=e[2]/100,o=e[3]/100;return[255*(1-Math.min(1,t*(1-o)+o)),255*(1-Math.min(1,i*(1-o)+o)),255*(1-Math.min(1,n*(1-o)+o))]},s.xyz.rgb=function(e){const t=e[0]/100,i=e[1]/100,n=e[2]/100;let o,s,r;return o=3.2406*t+-1.5372*i+-.4986*n,s=-.9689*t+1.8758*i+.0415*n,r=.0557*t+-.204*i+1.057*n,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),r=Math.min(Math.max(0,r),1),[255*o,255*s,255*r]},s.xyz.lab=function(e){let t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*i-16,500*(t-i),200*(i-n)]},s.lab.xyz=function(e){let t,i,n;i=(e[0]+16)/116,t=e[1]/500+i,n=i-e[2]/200;const o=i**3,s=t**3,r=n**3;return i=o>.008856?o:(i-16/116)/7.787,t=s>.008856?s:(t-16/116)/7.787,n=r>.008856?r:(n-16/116)/7.787,t*=95.047,i*=100,n*=108.883,[t,i,n]},s.lab.lch=function(e){const t=e[0],i=e[1],n=e[2];let o;o=360*Math.atan2(n,i)/2/Math.PI,o<0&&(o+=360);return[t,Math.sqrt(i*i+n*n),o]},s.lch.lab=function(e){const t=e[0],i=e[1],n=e[2]/360*2*Math.PI;return[t,i*Math.cos(n),i*Math.sin(n)]},s.rgb.ansi16=function(e,t=null){const[i,n,o]=e;let r=null===t?s.rgb.hsv(e)[2]:t;if(r=Math.round(r/50),0===r)return 30;let a=30+(Math.round(o/255)<<2|Math.round(n/255)<<1|Math.round(i/255));return 2===r&&(a+=60),a},s.hsv.ansi16=function(e){return s.rgb.ansi16(s.hsv.rgb(e),e[2])},s.rgb.ansi256=function(e){const t=e[0],i=e[1],n=e[2];if(t===i&&i===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(i/255*5)+Math.round(n/255*5)},s.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const i=.5*(1+~~(e>50));return[(1&t)*i*255,(t>>1&1)*i*255,(t>>2&1)*i*255]},s.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},s.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},s.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let i=t[0];3===t[0].length&&(i=i.split("").map((e=>e+e)).join(""));const n=parseInt(i,16);return[n>>16&255,n>>8&255,255&n]},s.rgb.hcg=function(e){const t=e[0]/255,i=e[1]/255,n=e[2]/255,o=Math.max(Math.max(t,i),n),s=Math.min(Math.min(t,i),n),r=o-s;let a,l;return a=r<1?s/(1-r):0,l=r<=0?0:o===t?(i-n)/r%6:o===i?2+(n-t)/r:4+(t-i)/r,l/=6,l%=1,[360*l,100*r,100*a]},s.hsl.hcg=function(e){const t=e[1]/100,i=e[2]/100,n=i<.5?2*t*i:2*t*(1-i);let o=0;return n<1&&(o=(i-.5*n)/(1-n)),[e[0],100*n,100*o]},s.hsv.hcg=function(e){const t=e[1]/100,i=e[2]/100,n=t*i;let o=0;return n<1&&(o=(i-n)/(1-n)),[e[0],100*n,100*o]},s.hcg.rgb=function(e){const t=e[0]/360,i=e[1]/100,n=e[2]/100;if(0===i)return[255*n,255*n,255*n];const o=[0,0,0],s=t%1*6,r=s%1,a=1-r;let l=0;switch(Math.floor(s)){case 0:o[0]=1,o[1]=r,o[2]=0;break;case 1:o[0]=a,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=r;break;case 3:o[0]=0,o[1]=a,o[2]=1;break;case 4:o[0]=r,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=a}return l=(1-i)*n,[255*(i*o[0]+l),255*(i*o[1]+l),255*(i*o[2]+l)]},s.hcg.hsv=function(e){const t=e[1]/100,i=t+e[2]/100*(1-t);let n=0;return i>0&&(n=t/i),[e[0],100*n,100*i]},s.hcg.hsl=function(e){const t=e[1]/100,i=e[2]/100*(1-t)+.5*t;let n=0;return i>0&&i<.5?n=t/(2*i):i>=.5&&i<1&&(n=t/(2*(1-i))),[e[0],100*n,100*i]},s.hcg.hwb=function(e){const t=e[1]/100,i=t+e[2]/100*(1-t);return[e[0],100*(i-t),100*(1-i)]},s.hwb.hcg=function(e){const t=e[1]/100,i=1-e[2]/100,n=i-t;let o=0;return n<1&&(o=(i-n)/(1-n)),[e[0],100*n,100*o]},s.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},s.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},s.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},s.gray.hsl=function(e){return[0,0,e[0]]},s.gray.hsv=s.gray.hsl,s.gray.hwb=function(e){return[0,100,e[0]]},s.gray.cmyk=function(e){return[0,0,0,e[0]]},s.gray.lab=function(e){return[e[0],0,0]},s.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),i=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(i.length)+i},s.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},734:(e,t,i)=>{const n=i(659),o=i(507),s={};Object.keys(n).forEach((e=>{s[e]={},Object.defineProperty(s[e],"channels",{value:n[e].channels}),Object.defineProperty(s[e],"labels",{value:n[e].labels});const t=o(e);Object.keys(t).forEach((i=>{const n=t[i];s[e][i]=function(e){const t=function(...t){const i=t[0];if(null==i)return i;i.length>1&&(t=i);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}};const Fo=Mo(Oo);const No=function(e,t){return Fo(Vo(e,t,So),e+"")};const Do=function(e,t,i){if(!N(i))return!1;var n=typeof t;return!!("number"==n?ri(i)&&$t(t,i.length):"string"==n&&t in i)&&Te(i[t],e)};const Lo=function(e){return No((function(t,i){var n=-1,o=i.length,s=o>1?i[o-1]:void 0,r=o>2?i[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,r&&Do(i[0],i[1],r)&&(s=o<3?void 0:s,o=1),t=Object(t);++n<br> element)"),keystroke:"Shift+Enter"}]})}}class jb extends Is{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,i=t.schema,n=t.document.selection,o=Array.from(n.getSelectedBlocks()),s=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(s){const t=o.filter((e=>Ub(e)||Gb(i,e)));this._applyQuote(e,t)}else this._removeQuote(e,o.filter(Ub))}))}_getValue(){const e=qo(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!Ub(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.model.document.selection,t=this.editor.model.schema,i=qo(e.getSelectedBlocks());return!!i&&Gb(t,i)}_removeQuote(e,t){qb(e,t).reverse().forEach((t=>{if(t.start.isAtStart&&t.end.isAtEnd)return void e.unwrap(t.start.parent);if(t.start.isAtStart){const i=e.createPositionBefore(t.start.parent);return void e.move(t,i)}t.end.isAtEnd||e.split(t.end);const i=e.createPositionAfter(t.end.parent);e.move(t,i)}))}_applyQuote(e,t){const i=[];qb(e,t).reverse().forEach((t=>{let n=Ub(t.start);n||(n=e.createElement("blockQuote"),e.wrap(t,n)),i.push(n)})),i.reverse().reduce(((t,i)=>t.nextSibling==i?(e.merge(e.createPositionAfter(t)),t):i))}}function Ub(e){return"blockQuote"==e.parent.name?e.parent:null}function qb(e,t){let i,n=0;const o=[];for(;ne.model.getSelectedContent(e.model.document.selection))){return this.editor.model.change((n=>{const o=n.model.document.selection;n.setSelection(t);const s=this._insertFakeMarkersIntoSelection(n,n.model.document.selection,e),r=i(n),a=this._removeFakeMarkersInsideElement(n,r);for(const[e,t]of Object.entries(s)){a[e]||(a[e]=n.createRangeIn(r));for(const e of t)n.remove(e)}r.markers.clear();for(const[e,t]of Object.entries(a))r.markers.set(e,t);return n.setSelection(o),r}))}_pasteMarkersIntoTransformedElement(e,t){const i=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change((e=>{const n=this._insertFakeMarkersElements(e,i),o=t(e),s=this._removeFakeMarkersInsideElement(e,o);for(const t of Object.values(n).flat())e.remove(t);for(const[t,i]of Object.entries(s))e.model.markers.has(t)||e.addMarker(t,{usingOperation:!0,affectsData:!0,range:i});return o}))}_pasteFragmentWithMarkers(e){const t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(const i of t)e.markers.set(i.name,i.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,i={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const n=this._markersToCopy.get(e);this._markersToCopy.set(e,i),t(),n?this._markersToCopy.set(e,n):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){const i=this._getMarkerClipboardConfig(e);if(!i)return!1;if(!t)return!0;const{allowedActions:n}=i;return"all"===n||n.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){const[t]=e.split(":");return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,i){const n=this._getCopyableMarkersFromSelection(e,t,i);return this._insertFakeMarkersElements(e,n)}_getCopyableMarkersFromSelection(e,t,i){const n=Array.from(t.getRanges()),o=new Set(n.flatMap((t=>Array.from(e.model.markers.getMarkersIntersectingRange(t)))));return Array.from(o).filter((e=>{if(!this._isMarkerCopyable(e.name,i))return!1;const{copyPartiallySelected:t}=this._getMarkerClipboardConfig(e.name);if(!t){const t=e.getRange();return n.some((e=>e.containsRange(t,!0)))}return!0})).map((e=>({name:"dragstart"===i?this._getUniqueMarkerName(e.name):e.name,range:e.getRange()})))}_getPasteMarkersFromRangeMap(e,t=null){const{model:i}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap((([e,n])=>{if(!this._hasMarkerConfiguration(e))return[{name:e,range:n}];if(this._isMarkerCopyable(e,t)){const t=this._getMarkerClipboardConfig(e),o=i.markers.has(e)&&"$graveyard"===i.markers.get(e).getRange().root.rootName;return(t.duplicateOnPaste||o)&&(e=this._getUniqueMarkerName(e)),[{name:e,range:n}]}return[]}))}_insertFakeMarkersElements(e,t){const i={},n=t.flatMap((e=>{const{start:t,end:i}=e.range;return[{position:t,marker:e,type:"start"},{position:i,marker:e,type:"end"}]})).sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:t,marker:o,type:s}of n){const n=e.createElement("$marker",{"data-name":o.name,"data-type":s});i[o.name]||(i[o.name]=[]),i[o.name].push(n),e.insert(n,t)}return i}_removeFakeMarkersInsideElement(e,t){const i=this._getAllFakeMarkersFromElement(e,t).reduce(((t,i)=>{const n=i.markerElement&&e.createPositionBefore(i.markerElement);let o=t[i.name],s=!1;if(o&&o.start&&o.end){this._getMarkerClipboardConfig(i.name).duplicateOnPaste?t[this._getUniqueMarkerName(i.name)]=t[i.name]:s=!0,o=null}return s||(t[i.name]={...o,[i.type]:n}),i.markerElement&&e.remove(i.markerElement),t}),{});return Rw(i,(i=>new nc(i.start||e.createPositionFromPath(t,[0]),i.end||e.createPositionAt(t,"end"))))}_getAllFakeMarkersFromElement(e,t){const i=Array.from(e.createRangeIn(t)).flatMap((({item:e})=>{if(!e.is("element","$marker"))return[];const t=e.getAttribute("data-name"),i=e.getAttribute("data-type");return[{markerElement:e,name:t,type:i}]})),n=[],o=[];for(const e of i){if("end"===e.type){i.some((t=>t.name===e.name&&"start"===t.type))||n.push({markerElement:null,name:e.name,type:"start"})}if("start"===e.type){i.some((t=>t.name===e.name&&"end"===t.type))||o.unshift({markerElement:null,name:e.name,type:"end"})}}return[...n,...i,...o]}_getUniqueMarkerName(e){const t=e.split(":"),i=f().substring(1,6);return 3===t.length?`${t.slice(0,2).join(":")}:${i}`:`${t.join(":")}:${i}`}}class Bw extends Ss{static get pluginName(){return"ClipboardPipeline"}static get requires(){return[Ow]}init(){this.editor.editing.view.addObserver(mw),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,i){const n=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===i},(()=>{const o=n._copySelectedFragmentWithMarkers(i,t);this.fire("outputTransformation",{dataTransfer:e,content:o,method:i})}))}_setupPasteDrop(){const e=this.editor,t=e.model,i=e.editing.view,n=i.document,o=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(n,"clipboardInput",((t,i)=>{"paste"!=i.method||e.model.canEditAt(e.model.document.selection)||t.stop()}),{priority:"highest"}),this.listenTo(n,"clipboardInput",((e,t)=>{const n=t.dataTransfer;let o;if(t.content)o=t.content;else{let e="";n.getData("text/html")?e=function(e){return e.replace(/(\s+)<\/span>/g,((e,t)=>1==t.length?" ":t)).replace(//g,"")}(n.getData("text/html")):n.getData("text/plain")&&(((s=(s=n.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"
").replace(/\r?\n/g,"
").replace(/\t/g," ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ")).includes("
")||s.includes("
"))&&(s=`
${s}
`),e=s),o=this.editor.data.htmlProcessor.toView(e)}var s;const r=new m(this,"inputTransformation");this.fire(r,{content:o,dataTransfer:n,targetRanges:t.targetRanges,method:t.method}),r.stop.called&&e.stop(),i.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((e,i)=>{if(i.content.isEmpty)return;const n=this.editor.data.toModel(i.content,"$clipboardHolder");0!=n.childCount&&(e.stop(),t.change((()=>{this.fire("contentInsertion",{content:n,method:i.method,dataTransfer:i.dataTransfer,targetRanges:i.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((e,t)=>{t.resultRange=o._pasteFragmentWithMarkers(t.content)}),{priority:"low"})}_setupCopyCut(){const e=this.editor,t=e.model.document,i=e.editing.view.document,n=(e,i)=>{const n=i.dataTransfer;i.preventDefault(),this._fireOutputTransformationEvent(n,t.selection,e.name)};this.listenTo(i,"copy",n,{priority:"low"}),this.listenTo(i,"cut",((t,i)=>{e.model.canEditAt(e.model.document.selection)?n(t,i):i.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((t,n)=>{const o=e.data.toView(n.content);i.fire("clipboardOutput",{dataTransfer:n.dataTransfer,content:o,method:n.method})}),{priority:"low"}),this.listenTo(i,"clipboardOutput",((i,n)=>{n.content.isEmpty||(n.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(n.content)),n.dataTransfer.setData("text/plain",pw(n.content))),"cut"==n.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}class Mw extends(P()){constructor(){super(...arguments),this._stack=[]}add(e,t){const i=this._stack,n=i[0];this._insertDescriptor(e);const o=i[0];n===o||Fw(n,o)||this.fire("change:top",{oldDescriptor:n,newDescriptor:o,writer:t})}remove(e,t){const i=this._stack,n=i[0];this._removeDescriptor(e);const o=i[0];n===o||Fw(n,o)||this.fire("change:top",{oldDescriptor:n,newDescriptor:o,writer:t})}_insertDescriptor(e){const t=this._stack,i=t.findIndex((t=>t.id===e.id));if(Fw(e,t[i]))return;i>-1&&t.splice(i,1);let n=0;for(;t[n]&&Nw(t[n],e);)n++;t.splice(n,0,e)}_removeDescriptor(e){const t=this._stack,i=t.findIndex((t=>t.id===e));i>-1&&t.splice(i,1)}}function Fw(e,t){return e&&t&&e.priority==t.priority&&Dw(e.classes)==Dw(t.classes)}function Nw(e,t){return e.priority>t.priority||!(e.priority