Compare commits

...

71 Commits

Author SHA1 Message Date
Timothee
0cac103e7d N°7383 Show data table even when there is no data after filtering 2024-12-27 18:06:07 +01:00
Eric Espie
32ef639ce1 N°7803 - MTP from itophub/designer failing in itop 3.2.0 2024-12-16 16:44:59 +01:00
Purple Grape
8647a76dbf 🌐 Translations - improved translation for zh cn 20241108 (#679)
* improved translation for zh cn
2024-12-16 11:39:26 +01:00
jf-cbd
47cd8bce31 Security hardening 2024-12-16 11:05:16 +01:00
jf-cbd
86c677b2ca Merge remote-tracking branch 'origin/support/3.1' into support/3.2
# Conflicts:
#	datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php
2024-12-16 11:02:37 +01:00
Eric Espie
960129316d N°8050 - Fix regression due to directories filter changes 2024-12-16 10:56:06 +01:00
jf-cbd
1fa50f695d Security hardening 2024-12-16 10:47:06 +01:00
jf-cbd
692cf4f635 Merge branch 'support/2.7' into support/3.1 2024-12-16 10:27:00 +01:00
jf-cbd
95aa444ee6 Security hardening 2024-12-13 16:48:13 +01:00
jf-cbd
f5de808c7c Security hardening (#685)
* security hardening
2024-12-13 15:09:18 +01:00
Eric Espie
fc388313d7 N°8050 - Problems with interface discovery from itop 2024-12-13 10:14:17 +01:00
odain
d544ee5498 N°7750 - ci enhance test 2024-12-13 09:35:35 +01:00
odain
ce187550f6 N°7750 - Fix display regression 2024-12-12 12:21:57 +01:00
Eric Espie
5d15a08824 🥅 Fast setup error display 2024-12-12 09:55:16 +01:00
odain
8135316119 N°7750 - Bug with OQL set as Shortcut 2024-12-11 16:05:15 +01:00
Eric Espie
868c0ae836 N°7997 - Sharing Base incompatible with iTop >= 3.1 (code review) 2024-12-11 15:51:36 +01:00
Eric Espie
d03d4fce5f N°7997 - Sharing Base incompatible with iTop >= 3.1 2024-12-11 13:35:15 +01:00
Eric Espie
aa55c2b30f N°7997 - Sharing Base incompatible with iTop >= 3.1 2024-12-11 13:28:37 +01:00
Eric Espie
9d3b46b919 🥅 Fast setup error display 2024-12-11 11:40:03 +01:00
Eric Espie
01b4dbba71 🥅 Fast setup error display 2024-12-11 11:20:32 +01:00
Eric Espie
72ac4096c1 N°7854 - ⬆️ Bump twig version 2024-12-10 17:08:48 +01:00
Eric Espie
19559b08a7 N°7854 - ⬆️ Bump twig version 2024-12-10 10:52:30 +01:00
Eric Espie
346564ca0e N°7854 - ⬆️ Bump twig version 2024-12-10 10:11:28 +01:00
Eric Espie
1bf53bae2a N°7871 - unable to migrate to itop3.2 if a trigger on object mention without "mentioned filter" exists 2024-12-09 17:05:07 +01:00
Eric Espie
29ce042916 N°7867 - Issue with MTP offline (reset cache in metamodel) 2024-12-09 10:38:50 +01:00
odain
83539d6d4c N°7446 - Make ItopCustomDatamodelTestCase work with modules in production-modules 2024-12-05 11:29:05 +01:00
Eric Espie
e6a7b926f6 N°7852 - Issue on Class groups definition when checking EventNotification class 2024-12-05 11:14:19 +01:00
Eric Espie
b30e053236 N°8020 - Bugs MFA and designer incompatibility 2024-12-03 16:42:27 +01:00
Stephen Abello
afd96a0f49 N°7995 - Allow to redefine portal twig template for all bricks in a portal (#686)
* N°7995 - Allow to redefine portal twig template for all bricks in a portal

* Apply modifications from code review

* Fix variable name

* Apply changes from code review
2024-12-03 10:44:37 +01:00
Eric Espie
a77765ec7b N°8019 - Enrich event with transition information 2024-12-03 10:28:13 +01:00
jf-cbd
64b4b03ea9 Security hardening 2024-12-03 10:26:11 +01:00
jf-cbd
a797878b17 Security hardening 2024-12-03 09:54:31 +01:00
jf-cbd
1fa0f7bdd9 N°8007 - Security hardening 2024-12-02 17:45:39 +01:00
Eric Espie
f718b4173d N°7206 - TriggerOnStateEnter not called when using reassign transition (after review) 2024-12-02 17:28:15 +01:00
Eric Espie
e057c0f081 N°7777 - Click on tab "Last executions" during action creation crashs the form 2024-12-02 17:12:32 +01:00
Eric Espie
5a49fc7654 N°7206 - TriggerOnStateEnter not called when using reassign transition 2024-12-02 14:49:28 +01:00
Stephen Abello
6fca659c9d Fix portal not being able to use $common-* SCSS variables when recompiling stylesheets 2024-12-02 14:06:53 +01:00
Stephen Abello
eacd08f31e Fix SCSS comments type 2024-12-02 14:03:39 +01:00
jf-cbd
5f7d8f6cc0 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-11-29 16:43:13 +01:00
jf-cbd
cbb4281a37 N°7980 - security hardening 2024-11-29 16:40:34 +01:00
odain
d7a8d335d5 N°7446 - Fix in CI environment when class already loaded 2024-11-29 12:22:38 +01:00
odain
bd1d447677 N°7446 - Fix in CI environment 2024-11-29 12:08:16 +01:00
Eric Espie
bb405d5173 N°7429 - Create an MFA extension for iTop - Add support for AttributeClassSet 2024-11-27 14:57:51 +01:00
Benjamin Dalsass
4723fc885c Merge remote-tracking branch 'origin/support/3.1' into support/3.2
# Conflicts:
#	application/dashboard.class.inc.php
2024-11-27 09:55:15 +01:00
Benjamin Dalsass
06dcae1dd1 Merge remote-tracking branch 'origin/support/2.7' into support/3.1 2024-11-27 09:50:57 +01:00
Benjamin Dalsass
e03033ce52 N°7219 - Fatal error following dashboard modification when dashboard title contains an é 2024-11-27 09:40:22 +01:00
Timothee
19eae916f0 N°7792 Do not initialize CAS if already started 2024-11-22 09:59:41 +01:00
Lars Kaltefleiter
596e26a96f 🌐 N°7932 Translations - British English (#677)
* Translation into EN GB
2024-11-18 14:38:53 +01:00
Eric Espie
ef42a49009 Allow extensions to add extra datamodel for tests 2024-11-14 09:27:57 +01:00
Romain Quetiez
51e5f1e7de N°7962 Suppress warnings emitted by the parser/lexer generators and the runtime OQL lexer, with PHP 8.1+ 2024-11-13 15:28:29 +01:00
Timothee
9cffd17e19 N°7704 Fix missing namespace for constant EVENT_DOWNLOAD_DOCUMENT 2024-11-13 14:39:23 +01:00
Benjamin Dalsass
e9f16935b6 N°6613 - Fix user picture pushing invalid data 2024-11-13 13:20:27 +01:00
Timothee
e7488b2c89 N°7721 default configuration parameter 2024-11-12 14:48:58 +01:00
Stephen Abello
8ac4086e71 N°7793 Fix primary color being set to blue due to a mistake 2024-11-12 13:52:03 +01:00
Benjamin Dalsass
6b5273fa1c N°1000 - Portal: filter BrowseBrick result varies if in list or tree (#673)
* N°1000 - Portal: filter BrowseBrick result varies if in list or tree

* N°1000 - Portal: filter BrowseBrick result varies if in list or tree
- replace html separators by css class

* N°1000 - Portal: filter BrowseBrick result varies if in list or tree
- replace html separators by css class

* N°1000 - Portal: filter BrowseBrick result varies if in list or tree
- add alteration comment to Tree List Filter jQuery plugin 1.0
- remove display none to tree-item-filter-data
2024-11-12 11:02:43 +01:00
jf-cbd
9b1e854bf7 Update translations 2024-11-12 09:27:35 +01:00
Lars Kaltefleiter
926700856d Fix some typos in en translations (#678) 2024-11-08 10:56:10 +01:00
Stephen Abello
ab93d59a77 Merge branch 'support/3.1' into support/3.2
# Conflicts:
#	sources/Core/Email/EmailLaminas.php
2024-11-08 09:41:48 +01:00
Karel Vlk
c70d62a51e 🐛 N°7916 SF#2274 EmailLaminas.php: Keep charset with part header in multipart email (#672)
* 🐛 N°2274 EmailLaminas.php: Keep charset with part header in multipart email

* Add a unit test

---------

Co-authored-by: Stephen Abello <stephen.abello@combodo.com>
2024-11-08 09:38:57 +01:00
jf-cbd
82bc2f33f2 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-11-07 14:53:48 +01:00
jf-cbd
0d5ff261fe Merge remote-tracking branch 'origin/support/2.7' into support/3.1 2024-11-07 14:51:32 +01:00
jf-cbd
374b35f78a 🚀 Fix GitHub action 2024-11-07 14:50:46 +01:00
Eric Espie
f5c29edee4 N°7874 - Inline image deleted by garbage collector 2024-11-07 09:24:33 +01:00
Timothee
8fb450a6d4 🌐 ES localization, Fix encoding 2024-11-06 17:37:37 +01:00
Timothee
311c5d0d51 🌐 ES localization 2024-11-06 17:12:47 +01:00
Stephen Abello
f90bd81e15 N°7793 Add common SCSS variables between backoffice and end-user portal (#674)
* N°7793 Add common SCSS variables between backoffice and end-user portal

* Add shame & readme

* Move font face to common

* Inherit color functions

* Move font icon to common

* FIx breaking change introduced in lifecycle palette

* FIx breaking change introduced in base

* Move approot url to common

* Make highlightjs common variables more coherent with 3.2.1 commonization approach

* Deprecated and migrate the usage of ibo-adjust-alpha and ibo-adjust-lightness
2024-11-06 09:52:54 +01:00
Stephen Abello
a10e547420 N°7898 CKEditor content should be inserted at the cursor position. Thanks to @jbostoen 2024-11-04 15:57:44 +01:00
Stephen Abello
2519456c98 Merge branch 'support/3.1' into support/3.2 2024-11-04 14:39:37 +01:00
Stephen Abello
9371bc6d7b N°7925 Fix incorrectly formatted In-Reply-To email header 2024-11-04 14:38:31 +01:00
Karel Vlk
58e964fb8c 🐛 N°7917 SF#2272 EmailLaminas.php: Fix Message-ID format (#671)
* 🐛 N°2272 EmailLaminas.php: Fix Message-ID format

* EmailLaminas.php: Add MessageId import

as suggested by @steffunky in PR 671
2024-11-04 14:37:15 +01:00
v-dumas
57760528c9 N°7759 - Improve Delivery Model Tooltips 2024-11-04 12:21:17 +01:00
605 changed files with 30342 additions and 11203 deletions

View File

@@ -31,7 +31,7 @@ jobs:
run: |
curl -X POST -H "Authorization: token ${{ secrets.PR_AUTOMATICALLY_ADD_TO_PROJECT }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/Combodo/combodo-wikit-integration/issues/${{ github.event.pull_request.number }}/labels \
https://api.github.com/repos/Combodo/iTop/issues/${{ github.event.pull_request.number }}/labels \
-d '{"labels":["internal"]}'
env:
is_member: ${{ env.is_member }}

View File

@@ -825,49 +825,38 @@ class UserRightsProfile extends UserRightsAddOnAPI
{
// We are protected by GetSelectFilter: the object set contains objects allowed or shared for reading
// We have to answer NO for objects shared for reading purposes
if (self::HasSharing())
{
$aClassProps = SharedObject::GetSharedClassProperties($sClass);
if ($aClassProps)
{
// This class is shared, GetSelectFilter may allow some objects for read only
// But currently we are checking wether the objects might be written...
// Let's exclude the objects based on the relevant criteria
if (self::HasSharing() && SharedObject::GetSharedClassProperties($sClass)) {
// This class is shared, GetSelectFilter may allow some objects for read only
// But currently we are checking whether the objects might be written...
// Let's exclude the objects based on the relevant criteria
$sOrgAttCode = self::GetOwnerOrganizationAttCode($sClass);
if (!is_null($sOrgAttCode))
{
$aUserOrgs = $this->GetUserOrgs($oUser, $sClass);
if (!is_null($aUserOrgs) && count($aUserOrgs) > 0)
{
$iCountNO = 0;
$iCountYES = 0;
$oInstanceSet->Rewind();
while($oObject = $oInstanceSet->Fetch())
{
$iOrg = $oObject->Get($sOrgAttCode);
if (in_array($iOrg, $aUserOrgs))
{
$iCountYES++;
}
else
{
$iCountNO++;
}
}
if ($iCountNO == 0)
{
$iPermission = UR_ALLOWED_YES;
}
elseif ($iCountYES == 0)
{
$iPermission = UR_ALLOWED_NO;
}
else
{
$iPermission = UR_ALLOWED_DEPENDS;
// Use $oInstanceSet only if sClass is the main class
if (!is_a($oInstanceSet->GetClass(), $sClass, true)) {
/** @var \DBObjectSet $oInstanceSet */
throw new CoreException(__FUNCTION__.': Expecting object set to be of class '.$sClass.' but it is of class '.$oInstanceSet->GetClass(), ['OQL_Query' => $oInstanceSet->GetFilter()->ToOQL(), 'classes' => $oInstanceSet->GetSelectedClasses()]);
}
$sOrgAttCode = self::GetOwnerOrganizationAttCode($sClass);
if (!is_null($sOrgAttCode)) {
$aUserOrgs = $this->GetUserOrgs($oUser, $sClass);
if (!is_null($aUserOrgs) && count($aUserOrgs) > 0) {
$iCountNO = 0;
$iCountYES = 0;
$oInstanceSet->Rewind();
while ($oObject = $oInstanceSet->Fetch()) {
$iOrg = $oObject->Get($sOrgAttCode);
if (in_array($iOrg, $aUserOrgs)) {
$iCountYES++;
} else {
$iCountNO++;
}
}
if ($iCountNO == 0) {
$iPermission = UR_ALLOWED_YES;
} elseif ($iCountYES == 0) {
$iPermission = UR_ALLOWED_NO;
} else {
$iPermission = UR_ALLOWED_DEPENDS;
}
}
}
}
@@ -982,4 +971,3 @@ class UserRightsProfile extends UserRightsAddOnAPI
UserRights::SelectModule('UserRightsProfile');
?>

View File

@@ -5923,14 +5923,14 @@ JS
*
* @since 3.1.0
*/
final protected function FireEventCheckToWrite(): void
final protected function FireEventCheckToWrite(?string $sStimulusBeingApplied): void
{
$this->FireEvent(EVENT_DB_CHECK_TO_WRITE, ['is_new' => $this->IsNew()]);
$this->FireEvent(EVENT_DB_CHECK_TO_WRITE, ['is_new' => $this->IsNew(), 'stimulus_applied' => $sStimulusBeingApplied]);
}
final protected function FireEventBeforeWrite()
final protected function FireEventBeforeWrite(?string $sStimulusBeingApplied)
{
$this->FireEvent(EVENT_DB_BEFORE_WRITE, ['is_new' => $this->IsNew()]);
$this->FireEvent(EVENT_DB_BEFORE_WRITE, ['is_new' => $this->IsNew(), 'stimulus_applied' => $sStimulusBeingApplied]);
}
/**
@@ -5942,11 +5942,11 @@ JS
* @throws \CoreException
* @since 3.1.0
*/
final protected function FireEventAfterWrite(array $aChanges, bool $bIsNew): void
final protected function FireEventAfterWrite(array $aChanges, bool $bIsNew, ?string $sStimulusBeingApplied): void
{
$this->NotifyAttachedObjectsOnLinkClassModification();
$this->RemoveObjectAwaitingEventDbLinksChanged(get_class($this), $this->GetKey());
$this->FireEvent(EVENT_DB_AFTER_WRITE, ['is_new' => $bIsNew, 'changes' => $aChanges]);
$this->FireEvent(EVENT_DB_AFTER_WRITE, ['is_new' => $bIsNew, 'changes' => $aChanges, 'stimulus_applied' => $sStimulusBeingApplied]);
}
//////////////
@@ -6179,9 +6179,9 @@ JS
* @inheritDoc
* @throws \CoreException
*/
final protected function FireEventComputeValues(): void
final protected function FireEventComputeValues(?string $sStimulusBeingApplied): void
{
$this->FireEvent(EVENT_DB_COMPUTE_VALUES);
$this->FireEvent(EVENT_DB_COMPUTE_VALUES, ['is_new' => $this->IsNew(), 'stimulus_applied' => $sStimulusBeingApplied]);
}
/**

View File

@@ -1266,13 +1266,12 @@ EOF
$sOkButtonLabel = Dict::S('UI:Button:Save');
$sCancelButtonLabel = Dict::S('UI:Button:Cancel');
$sId = utils::HtmlEntities($this->sId);
$sLayoutClass = utils::HtmlEntities($this->sLayoutClass);
$sId = json_encode($this->sId);
$sLayoutClass = json_encode($this->sLayoutClass);
$sAutoReload = $this->bAutoReload ? 'true' : 'false';
$sAutoReloadSec = (string) $this->iAutoReloadSec;
$sTitle = utils::HtmlEntities($this->sTitle);
$sFile = utils::HtmlEntities($this->GetDefinitionFile());
$sFileForJS = json_encode($this->GetDefinitionFile());
$sTitle = json_encode($this->sTitle);
$sFile = json_encode($this->GetDefinitionFile());
$sUrl = utils::GetAbsoluteUrlAppRoot().'pages/ajax.render.php';
$sReloadURL = $this->GetReloadURL();
@@ -1328,15 +1327,15 @@ $('#dashboard_editor').dialog({
});
$('#dashboard_editor .ui-layout-center').runtimedashboard({
dashboard_id: '$sId',
layout_class: '$sLayoutClass',
title: '$sTitle',
dashboard_id: $sId,
layout_class: $sLayoutClass,
title: $sTitle,
auto_reload: $sAutoReload,
auto_reload_sec: $sAutoReloadSec,
submit_to: '$sUrl',
submit_parameters: {operation: 'save_dashboard', file: {$sFileForJS}, extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
submit_parameters: {operation: 'save_dashboard', file: $sFile, extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
render_to: '$sUrl',
render_parameters: {operation: 'render_dashboard', file: {$sFileForJS}, extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
render_parameters: {operation: 'render_dashboard', file: $sFile, extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
new_dashlet_parameters: {operation: 'new_dashlet'}
});

View File

@@ -238,6 +238,10 @@ The object can be modified.]]></description>
<description>Creation flag</description>
<type>boolean</type>
</event_datum>
<event_datum id="stimulus_applied">
<description>Life cycle stimulus applied (null if not within a transition)</description>
<type>string</type>
</event_datum>
<event_datum id="debug_info">
<description>Debug string</description>
<type>string</type>
@@ -263,6 +267,10 @@ Call $this->AddCheckWarning($sWarningMessage) to display a warning.
<description>Creation flag</description>
<type>boolean</type>
</event_datum>
<event_datum id="stimulus_applied">
<description>Life cycle stimulus applied (null if not within a transition)</description>
<type>string</type>
</event_datum>
<event_datum id="debug_info">
<description>Debug string</description>
<type>string</type>
@@ -290,6 +298,10 @@ The modifications can be propagated to other objects.]]></description>
<description><![CDATA[For updates, the list of changes done during this operation]]></description>
<type>array</type>
</event_datum>
<event_datum id="stimulus_applied">
<description>Life cycle stimulus applied (null if not within a transition)</description>
<type>string</type>
</event_datum>
<event_datum id="debug_info">
<description>Debug string</description>
<type>string</type>
@@ -420,6 +432,14 @@ The only action allowed is to deny transitions with $this->DenyTransition($sTran
<description>The object inserted</description>
<type>DBObject</type>
</event_datum>
<event_datum id="is_new">
<description>Creation flag</description>
<type>boolean</type>
</event_datum>
<event_datum id="stimulus_applied">
<description>Life cycle stimulus applied (null if not within a transition)</description>
<type>string</type>
</event_datum>
<event_datum id="debug_info">
<description>Debug string</description>
<type>string</type>

View File

@@ -2024,8 +2024,8 @@ class MenuBlock extends DisplayBlock
$sSelectedClassName = MetaModel::GetName($sSelectedClass);
// Check rights on class
$bIsBulkModifyAllowed = (!MetaModel::IsAbstract($sSelectedClass)) && UserRights::IsActionAllowed($sSelectedClass, UR_ACTION_BULK_MODIFY, $oSet) && ($oReflectionClass->IsSubclassOf('cmdbAbstractObject'));
$bIsBulkDeleteAllowed = (bool) UserRights::IsActionAllowed($sSelectedClass, UR_ACTION_BULK_DELETE, $sSelectedClass);
$bIsBulkModifyAllowed = (!MetaModel::IsAbstract($sSelectedClass)) && UserRights::IsActionAllowed($sSelectedClass, UR_ACTION_BULK_MODIFY) && ($oReflectionClass->IsSubclassOf('cmdbAbstractObject'));
$bIsBulkDeleteAllowed = (bool) UserRights::IsActionAllowed($sSelectedClass, UR_ACTION_BULK_DELETE);
// Refine filter on selected class so bullk actions occur on the right class
$oSelectedClassFilter = $this->GetFilter()->DeepClone();

View File

@@ -1159,11 +1159,11 @@ class OQLMenuNode extends MenuNode
{
$sUsageId = utils::GetSafeId($sUsageId);
$oSearch = DBObjectSearch::FromOQL($sOql);
$sClass= $oSearch->GetClass();
$sClass= $oSearch->GetClass();
$sIcon = MetaModel::GetClassIcon($sClass, false);
if ($bSearchPane) {
$aParams = array_merge(['open' => $bSearchOpen, 'table_id' => $sUsageId, 'submit_on_load' => false], $aExtraParams);
$oBlock = new DisplayBlock($oSearch, 'search', false /* Asynchronous */, $aParams);
$oBlock = new DisplayBlock($oSearch, DisplayBlock::ENUM_STYLE_SEARCH, false /* Asynchronous */, $aParams);
$oBlock->Display($oPage, 0);
$oPage->add("<div class='sf_results_area ibo-add-margin-top-250' data-target='search_results'>");
}

View File

@@ -1451,9 +1451,12 @@ class utils
* @return string A path to a folder into which any module can store cache data
* The corresponding folder is created or cleaned upon code compilation
*/
public static function GetCachePath()
public static function GetCachePath(string $sEnvironment = null): string
{
return static::GetDataPath().'cache-'.MetaModel::GetEnvironment().'/';
if (is_null($sEnvironment)) {
$sEnvironment = MetaModel::GetEnvironment();
}
return static::GetDataPath()."cache-$sEnvironment/";
}
/**

102
composer.lock generated
View File

@@ -3929,6 +3929,82 @@
],
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-php81",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
"shasum": ""
},
"require": {
"php": ">=7.2"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php81\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php83",
"version": "v1.28.0",
@@ -4976,30 +5052,38 @@
},
{
"name": "twig/twig",
"version": "v3.8.0",
"version": "v3.16.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d"
"reference": "475ad2dc97d65d8631393e721e7e44fb544f0561"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d",
"reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/475ad2dc97d65d8631393e721e7e44fb544f0561",
"reference": "475ad2dc97d65d8631393e721e7e44fb544f0561",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"php": ">=8.0.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3",
"symfony/polyfill-php80": "^1.22"
"symfony/polyfill-php81": "^1.29"
},
"require-dev": {
"phpstan/phpstan": "^2.0",
"psr/container": "^1.0|^2.0",
"symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0"
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
},
"type": "library",
"autoload": {
"files": [
"src/Resources/core.php",
"src/Resources/debug.php",
"src/Resources/escaper.php",
"src/Resources/string_loader.php"
],
"psr-4": {
"Twig\\": "src/"
}
@@ -5032,7 +5116,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.8.0"
"source": "https://github.com/twigphp/Twig/tree/v3.16.0"
},
"funding": [
{
@@ -5044,7 +5128,7 @@
"type": "tidelift"
}
],
"time": "2023-11-21T18:54:41+00:00"
"time": "2024-11-29T08:27:05+00:00"
},
{
"name": "webmozart/assert",

View File

@@ -181,7 +181,7 @@ abstract class Action extends cmdbAbstractObject
{
parent::DisplayBareRelations($oPage, false);
if ($oPage instanceof iTopWebPage) {
if ($oPage instanceof iTopWebPage && !$this->IsNew()) {
$this->GenerateLastExecutionsTab($oPage, $bEditMode);
}
}

View File

@@ -1715,8 +1715,8 @@ class AttributeLinkedSet extends AttributeDefinition
public function GetEditMode()
{
return $this->GetOptional('edit_mode', LINKSET_EDITMODE_ACTIONS);
}
}
/**
* @return int see LINKSET_EDITWHEN_* constants
* @since 3.1.1 3.2.0 N°6385
@@ -1758,7 +1758,7 @@ class AttributeLinkedSet extends AttributeDefinition
{
return $this->GetOptional('with_php_computation', false);
}
public function GetLinkedClass()
{
return $this->Get('linked_class');
@@ -9433,8 +9433,13 @@ class AttributeStopWatch extends AttributeDefinition
case 'deadline':
if ($value)
{
$sDate = date(AttributeDateTime::GetInternalFormat(), $value);
$sRet = AttributeDeadline::FormatDeadline($sDate);
if (is_int($value))
{
$sDate = date(AttributeDateTime::GetInternalFormat(), $value);
$sRet = AttributeDeadline::FormatDeadline($sDate);
} else {
$sRet = $value;
}
}
else
{

View File

@@ -71,7 +71,7 @@ define('DEFAULT_MAX_DISPLAY_LIMIT', 30);
define('DEFAULT_STANDARD_RELOAD_INTERVAL', 5 * 60);
define('DEFAULT_FAST_RELOAD_INTERVAL', 1 * 60);
define('DEFAULT_SECURE_CONNECTION_REQUIRED', false);
define('DEFAULT_ALLOWED_LOGIN_TYPES', 'form|external|basic');
define('DEFAULT_ALLOWED_LOGIN_TYPES', 'form|external|basic|token');
define('DEFAULT_EXT_AUTH_VARIABLE', '$_SERVER[\'REMOTE_USER\']');
define('DEFAULT_ENCRYPTION_KEY', '@iT0pEncr1pti0n!'); // We'll use a random generated key later (if possible)
define('DEFAULT_ENCRYPTION_LIB', 'Mcrypt'); // We'll define the best encryption available later

View File

@@ -850,6 +850,18 @@
<field id="language" xsi:type="AttributeApplicationLanguage"/>
</fields>
</class>
<class id="Event" _delta="define">
<!-- Generated by toolkit/export-class-to-meta.php -->
<parent>DBObject</parent>
<properties>
<category>core/cmdb,view_in_gui</category>
</properties>
<fields>
<field id="message" xsi:type="AttributeText"/>
<field id="date" xsi:type="AttributeDateTime"/>
<field id="userinfo" xsi:type="AttributeString"/>
</fields>
</class>
<class id="EventNotification" _delta="define">
<!-- Generated by toolkit/export-class-to-meta.php -->
<parent>Event</parent>

View File

@@ -212,6 +212,8 @@ abstract class DBObject implements iDisplay
private $aEventListeners = [];
private array $aAllowedTransitions = [];
private ?string $sStimulusBeingApplied = null;
/**
* DBObject constructor.
*
@@ -1206,7 +1208,7 @@ abstract class DBObject implements iDisplay
if ($aCallInfo["function"] != "ComputeValues") continue;
return; //skip!
}
$this->FireEventComputeValues();
$this->FireEventComputeValues($this->sStimulusBeingApplied);
$oKPI = new ExecutionKPI();
$this->ComputeValues();
$oKPI->ComputeStatsForExtension($this, 'ComputeValues');
@@ -2130,7 +2132,7 @@ abstract class DBObject implements iDisplay
return "Bad type";
}
elseif (($oAtt instanceof AttributeClassAttCodeSet) || ($oAtt instanceof AttributeEnumSet))
elseif ($oAtt instanceof AttributeSet)
{
if (is_string($toCheck))
{
@@ -2669,7 +2671,7 @@ abstract class DBObject implements iDisplay
// Ultimate check - ensure DB integrity
$this->SetReadOnly('No modification allowed during CheckToCreate');
$this->FireEventCheckToWrite();
$this->FireEventCheckToWrite($this->sStimulusBeingApplied);
$this->SetReadWrite();
$oKPI = new ExecutionKPI();
@@ -3398,7 +3400,7 @@ abstract class DBObject implements iDisplay
$this->OnInsert();
$oKPI->ComputeStatsForExtension($this, 'OnInsert');
$this->FireEventBeforeWrite();
$this->FireEventBeforeWrite(null);
// If not automatically computed, then check that the key is given by the caller
if (!MetaModel::IsAutoIncrementKey($sRootClass)) {
@@ -3533,7 +3535,7 @@ abstract class DBObject implements iDisplay
*/
protected function PostInsertActions(): void
{
$this->FireEventAfterWrite([], true);
$this->FireEventAfterWrite([], true, null);
$oKPI = new ExecutionKPI();
$this->AfterInsert();
$oKPI->ComputeStatsForExtension($this, 'AfterInsert');
@@ -3641,7 +3643,7 @@ abstract class DBObject implements iDisplay
$this->OnUpdate();
$oKPI->ComputeStatsForExtension($this, 'OnUpdate');
$this->FireEventBeforeWrite();
$this->FireEventBeforeWrite($this->sStimulusBeingApplied);
// Freeze the changes at this point
$this->InitPreviousValuesForUpdatedAttributes();
@@ -3852,7 +3854,7 @@ abstract class DBObject implements iDisplay
*/
protected function PostUpdateActions(array $aChanges): void
{
$this->FireEventAfterWrite($aChanges, false);
$this->FireEventAfterWrite($aChanges, false, $this->sStimulusBeingApplied);
$oKPI = new ExecutionKPI();
$this->AfterUpdate();
$oKPI->ComputeStatsForExtension($this, 'AfterUpdate');
@@ -3864,39 +3866,38 @@ abstract class DBObject implements iDisplay
$this->ActivateOnObjectUpdateTriggersForTargetObjects();
$sClass = get_class($this);
if (MetaModel::HasLifecycle($sClass))
if (utils::IsNotNullOrEmptyString($this->sStimulusBeingApplied))
{
$this->sStimulusBeingApplied = null;
$sStateAttCode = MetaModel::GetStateAttributeCode($sClass);
if (isset($this->m_aPreviousValuesForUpdatedAttributes[$sStateAttCode])) {
$sPreviousState = $this->m_aPreviousValuesForUpdatedAttributes[$sStateAttCode];
// Change state triggers...
$aParams = array(
'class_list' => MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL),
'previous_state' => $sPreviousState,
'new_state' => $this->Get($sStateAttCode),
);
$oSet = new DBObjectSet(DBObjectSearch::FromOQL('SELECT TriggerOnStateLeave AS t WHERE t.target_class IN (:class_list) AND t.state=:previous_state'), array(), $aParams);
while ($oTrigger = $oSet->Fetch()) {
/** @var \TriggerOnStateLeave $oTrigger */
try {
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
$sPreviousState = $this->m_aPreviousValuesForUpdatedAttributes[$sStateAttCode];
// Change state triggers...
$aParams = array(
'class_list' => MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL),
'previous_state' => $sPreviousState,
'new_state' => $this->Get($sStateAttCode),
);
$oSet = new DBObjectSet(DBObjectSearch::FromOQL('SELECT TriggerOnStateLeave AS t WHERE t.target_class IN (:class_list) AND t.state=:previous_state'), array(), $aParams);
while ($oTrigger = $oSet->Fetch()) {
/** @var \TriggerOnStateLeave $oTrigger */
try {
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
$oSet = new DBObjectSet(DBObjectSearch::FromOQL('SELECT TriggerOnStateEnter AS t WHERE t.target_class IN (:class_list) AND t.state=:new_state'), array(), $aParams);
while ($oTrigger = $oSet->Fetch()) {
/** @var \TriggerOnStateEnter $oTrigger */
try {
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
$oSet = new DBObjectSet(DBObjectSearch::FromOQL('SELECT TriggerOnStateEnter AS t WHERE t.target_class IN (:class_list) AND t.state=:new_state'), array(), $aParams);
while ($oTrigger = $oSet->Fetch()) {
/** @var \TriggerOnStateEnter $oTrigger */
try {
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
}
@@ -4603,6 +4604,7 @@ abstract class DBObject implements iDisplay
}
if ($bSuccess)
{
$this->sStimulusBeingApplied = $sStimulusCode;
// Stop watches
foreach(MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef)
{
@@ -6617,7 +6619,7 @@ abstract class DBObject implements iDisplay
* @return void
* @since 3.1.0
*/
protected function FireEventCheckToWrite(): void
protected function FireEventCheckToWrite(?string $sStimulusBeingApplied): void
{
}
@@ -6625,7 +6627,7 @@ abstract class DBObject implements iDisplay
* @return void
* @since 3.1.0
*/
protected function FireEventBeforeWrite()
protected function FireEventBeforeWrite(?string $sStimulusBeingApplied)
{
}
@@ -6635,7 +6637,7 @@ abstract class DBObject implements iDisplay
* @return void
* @since 3.1.0
*/
protected function FireEventAfterWrite(array $aChanges, bool $bIsNew): void
protected function FireEventAfterWrite(array $aChanges, bool $bIsNew, ?string $sStimulusBeingApplied): void
{
}
@@ -6673,7 +6675,7 @@ abstract class DBObject implements iDisplay
* @return void
* @since 3.1.0
*/
protected function FireEventComputeValues(): void
protected function FireEventComputeValues(?string $sStimulusBeingApplied): void
{
}

View File

@@ -154,7 +154,7 @@ class EMail implements iEMail
*/
public function SetInReplyTo(string $sMessageId)
{
$this->AddToHeader('In-Reply-To', $sMessageId);
$this->oMailer->SetInReplyTo($sMessageId);
}
public function SetBody($sBody, $sMimeType = 'text/html', $sCustomStyles = null)

View File

@@ -541,80 +541,6 @@ JS
CombodoCKEditorHandler.EnableImageUpload('#' + $(this).attr('id'), '$sAbsoluteUrlAppRoot'+'pages/ajax.render.php?operation=cke_img_upload&temp_id=$sTempId&obj_class=$sObjClass&obj_key=$iObjKey');
});
JS;
return
<<<JS
// Hook the file upload of all CKEditor instances
$('.htmlEditor').each(function() {
var oEditor = $(this).ckeditorGet();
oEditor.config.filebrowserBrowseUrl = '$sAbsoluteUrlAppRoot'+'pages/ajax.render.php?operation=cke_browse&temp_id=$sTempId&obj_class=$sObjClass&obj_key=$iObjKey';
oEditor.on( 'fileUploadResponse', function( evt ) {
var fileLoader = evt.data.fileLoader;
var xhr = fileLoader.xhr;
var data = evt.data;
try {
var response = JSON.parse( xhr.responseText );
// Error message does not need to mean that upload finished unsuccessfully.
// It could mean that ex. file name was changes during upload due to naming collision.
if ( response.error && response.error.message ) {
data.message = response.error.message;
}
// But !uploaded means error.
if ( !response.uploaded ) {
evt.cancel();
} else {
data.fileName = response.fileName;
data.url = response.url;
// Do not call the default listener.
evt.stop();
}
} catch ( err ) {
// Response parsing error.
data.message = fileLoader.lang.filetools.responseError;
window.console && window.console.log( xhr.responseText );
evt.cancel();
}
} );
oEditor.on( 'fileUploadRequest', function( evt ) {
evt.data.fileLoader.uploadUrl += '?operation=cke_img_upload&temp_id=$sTempId&obj_class=$sObjClass';
}, null, null, 4 ); // Listener with priority 4 will be executed before priority 5.
oEditor.on( 'instanceReady', function() {
if(!CKEDITOR.env.iOS && $('#'+oEditor.id+'_toolbox .ibo-vendors-ckeditor--toolbar-fullscreen-button').length == 0)
{
$('#'+oEditor.id+'_toolbox').append('<span class="ibo-vendors-ckeditor--toolbar-fullscreen-button editor-fullscreen-button" data-role="ibo-vendors-ckeditor--toolbar-fullscreen-button" title="$sToggleFullScreen">&nbsp;</span>');
$('#'+oEditor.id+'_toolbox .ibo-vendors-ckeditor--toolbar-fullscreen-button').on('click', function() {
oEditor.execCommand('maximize');
if ($(this).closest('.cke_maximized').length != 0)
{
$('#'+oEditor.id+'_toolbar_collapser').trigger('click');
}
});
}
if (oEditor.widgets.registered.uploadimage)
{
oEditor.widgets.registered.uploadimage.onUploaded = function( upload ) {
var oData = JSON.parse(upload.xhr.responseText);
this.replaceWith( '<img src="' + upload.url + '" ' +
'width="' + oData.width + '" ' +
'height="' + oData.height + '">' );
}
}
});
});
JS
;
}
public static function EnableCKEditor5ImageUpload(DBObject $oObject, $sTempId){
return <<<JS
// Hook the file upload of all CKEditor instances
JS;
}

View File

@@ -7532,8 +7532,41 @@ abstract class MetaModel
return $aEntries;
}
public static function ResetAllCaches($sEnvironment = null)
{
if (is_null($sEnvironment)) {
$sEnvironment = MetaModel::GetEnvironment();
}
$sEnvironmentId = md5(APPROOT).'-'.$sEnvironment;
$sAppIdentity = 'itop-'.$sEnvironmentId;
require_once(APPROOT.'/core/dict.class.inc.php');
Dict::ResetCache($sAppIdentity);
if (function_exists('apc_delete')) {
foreach (self::GetCacheEntries($sEnvironmentId) as $sKey => $aAPCInfo) {
$sAPCKey = $aAPCInfo['info'];
apc_delete($sAPCKey);
}
}
require_once(APPROOT.'core/userrights.class.inc.php');
UserRights::FlushPrivileges();
// Reset the opcache since otherwise the PHP "model" files may still be cached !!
if (function_exists('opcache_reset')) {
// Zend opcode cache
opcache_reset();
}
require_once(APPROOT.'setup/setuputils.class.inc.php');
SetupUtils::rrmdir(utils::GetCachePath($sEnvironment));
}
/**
* @internal
* @param string $sEnvironmentId
* @deprecated 3.2.1
*/
public static function ResetCache($sEnvironmentId = null)
{
@@ -7557,6 +7590,13 @@ abstract class MetaModel
require_once(APPROOT.'core/userrights.class.inc.php');
UserRights::FlushPrivileges();
// Reset the opcache since otherwise the PHP "model" files may still be cached !!
if (function_exists('opcache_reset'))
{
// Zend opcode cache
opcache_reset();
}
}
/**

View File

@@ -182,14 +182,14 @@ class PHP_LexerGenerator_Lexer
$this->token = self::COMMENTEND;
return true;
}
if (preg_match('/\G%([a-z]+)/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G%([a-z]+)/', $this->data, $token, 0, $this->N)) {
$this->value = $token[1];
$this->N += strlen($token[1]) + 1;
$this->state = 'DeclarePI';
$this->token = self::PI;
return true;
}
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, 0, $this->N)) {
$this->value = $token[0];
$this->token = self::PATTERN;
$this->N += strlen($token[0]);
@@ -216,7 +216,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '{') {
return $this->lexCode();
}
if (!preg_match("/\G[^\n]+/", $this->data, $token, null, $this->N)) {
if (!preg_match("/\G[^\n]+/", $this->data, $token, 0, $this->N)) {
$this->error('Unexpected end of file');
return false;
}
@@ -242,7 +242,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '{') {
return $this->lexCode();
}
if (!preg_match("/\G[^\n]+/", $this->data, $token, null, $this->N)) {
if (!preg_match("/\G[^\n]+/", $this->data, $token, 0, $this->N)) {
$this->error('Unexpected end of file');
return false;
}
@@ -406,7 +406,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '\'') {
return $this->lexQuote('\'');
}
if (preg_match('/\G%([a-zA-Z_]+)/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G%([a-zA-Z_]+)/', $this->data, $token, 0, $this->N)) {
$this->value = $token[1];
$this->N += strlen($token[1]) + 1;
$this->state = 'DeclarePIRule';
@@ -419,7 +419,7 @@ class PHP_LexerGenerator_Lexer
if ($this->data[$this->N] == '"') {
return $this->lexQuote();
}
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, null, $this->N)) {
if (preg_match('/\G[a-zA-Z_][a-zA-Z0-9_]*/', $this->data, $token, 0, $this->N)) {
$this->value = $token[0];
$this->N += strlen($token[0]);
$this->token = self::SUBPATTERN;

View File

@@ -33,17 +33,19 @@ class PHP_LexerGenerator_ParseryyToken implements ArrayAccess
return $this->_string;
}
function offsetExists($offset)
function offsetExists($offset): bool
{
return isset($this->metadata[$offset]);
}
// Return type mixed is not supported by PHP 7.4, we can remove the following PHP attribute and add the return type once iTop min PHP version is PHP 8.0+
#[\ReturnTypeWillChange]
function offsetGet($offset)
{
return $this->metadata[$offset];
}
function offsetSet($offset, $value)
function offsetSet($offset, $value): void
{
if ($offset === null) {
if (isset($value[0])) {
@@ -66,7 +68,7 @@ class PHP_LexerGenerator_ParseryyToken implements ArrayAccess
}
}
function offsetUnset($offset)
function offsetUnset($offset): void
{
unset($this->metadata[$offset]);
}
@@ -278,7 +280,7 @@ class PHP_LexerGenerator_Parser#line 171 "Parser.php"
$match = false;
foreach ($yy_yymore_patterns[' . $this->token . '] as $index => $rule) {
if (preg_match(\'/\' . $rule . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter . ')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter . ')) {
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
if ($match) {
if (strlen($yymatches[0]) > strlen($match[0][0])) {
@@ -350,7 +352,7 @@ class PHP_LexerGenerator_Parser#line 171 "Parser.php"
$pattern . '\';' . "\n");
fwrite($this->out, '
do {
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, null, ' .
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, 0, ' .
$this->counter .
')) {
$yysubmatches = $yymatches;
@@ -408,7 +410,7 @@ class PHP_LexerGenerator_Parser#line 171 "Parser.php"
}
$yysubmatches = array();
if (preg_match(\'/\' . $yy_yymore_patterns[' . $this->token . '][1] . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter .')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter .')) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
next($yymatches); // skip global match

View File

@@ -187,7 +187,7 @@ require_once 'PHP/LexerGenerator/Exception.php';
$match = false;
foreach ($yy_yymore_patterns[' . $this->token . '] as $index => $rule) {
if (preg_match(\'/\' . $rule . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter . ')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter . ')) {
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
if ($match) {
if (strlen($yymatches[0]) > strlen($match[0][0])) {
@@ -259,7 +259,7 @@ require_once 'PHP/LexerGenerator/Exception.php';
$pattern . '\';' . "\n");
fwrite($this->out, '
do {
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, null, ' .
if (preg_match($yy_global_pattern,' . $this->input . ', $yymatches, 0, ' .
$this->counter .
')) {
$yysubmatches = $yymatches;
@@ -317,7 +317,7 @@ require_once 'PHP/LexerGenerator/Exception.php';
}
$yysubmatches = array();
if (preg_match(\'/\' . $yy_yymore_patterns[' . $this->token . '][1] . \'/' . $this->patternFlags . '\',
' . $this->input . ', $yymatches, null, ' . $this->counter .')) {
' . $this->input . ', $yymatches, 0, ' . $this->counter .')) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, \'strlen\'); // remove empty sub-patterns
next($yymatches); // skip global match

View File

@@ -110,7 +110,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\\\\\\\)|\G([^[\\\\^$.|()?*+{}]+)|\G(\\\\[][{}*.^$|?()+])|\G(\\[)|\G(\\|)|\G(\\\\[frnt]|\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7][0-7][0-7]|\\\\x\\{[0-9a-fA-F]+\\})|\G(\\\\[0-9][0-9])|\G(\\\\[abBGcedDsSwW0C]|\\\\c\\\\)|\G(\\^)|\G(\\\\A)|\G(\\))|\G(\\$)|\G(\\*\\?|\\+\\?|[*?+]|\\{[0-9]+\\}|\\{[0-9]+,\\}|\\{[0-9]+,[0-9]+\\})|\G(\\\\[zZ])|\G(\\(\\?)|\G(\\()|\G(\\.)|\G(\\\\[1-9])|\G(\\\\p\\{\\^?..?\\}|\\\\P\\{..?\\}|\\\\X)|\G(\\\\p\\{C[cfnos]?|L[lmotu]?|M[cen]?|N[dlo]?|P[cdefios]?|S[ckmo]?|Z[lps]?\\})|\G(\\\\p\\{\\^C[cfnos]?|L[lmotu]?|M[cen]?|N[dlo]?|P[cdefios]?|S[ckmo]?|Z[lps]?\\})|\G(\\\\p[CLMNPSZ])|\G(\\\\)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -180,7 +180,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -360,7 +360,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\^)|\G(\\])|\G(.)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -410,7 +410,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -497,7 +497,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\\\\\\\)|\G(\\])|\G(\\\\[frnt]|\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7][0-7][0-7]|\\\\x\\{[0-9a-fA-F]+\\})|\G(\\\\[bacedDsSwW0C]|\\\\c\\\\|\\\\x\\{[0-9a-fA-F]+\\}|\\\\[0-7][0-7][0-7]|\\\\x[0-9a-fA-F][0-9a-fA-F]?)|\G(\\\\[0-9][0-9])|\G(\\\\[1-9])|\G(\\\\[]\.\-\^])|\G(-(?!]))|\G([^\-\\\\])|\G(\\\\)|\G(.)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -555,7 +555,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -678,7 +678,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G(\\\\\\\\)|\G(\\\\\\])|\G(\\\\[bacedDsSwW0C]|\\\\c\\\\|\\\\x\\{[0-9a-fA-F]+\\}|\\\\[0-7][0-7][0-7]|\\\\x[0-9a-fA-F][0-9a-fA-F]?)|\G(\\\\[0-9][0-9])|\G(\\\\[1-9])|\G([^\-\\\\])|\G(\\\\)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -732,7 +732,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match
@@ -842,7 +842,7 @@ class PHP_LexerGenerator_Regex_Lexer
$yy_global_pattern = '/\G([imsxUX]+-[imsxUX]+|[imsxUX]+|-[imsxUX]+)|\G(:)|\G(\\))|\G(P<[^>]+>)|\G(<=)|\G(<!)|\G(=)|\G(!)|\G(>)|\G(\\(\\?)|\G(#[^)]+)|\G(R)|\G(.)/';
do {
if (preg_match($yy_global_pattern,$this->input, $yymatches, null, $this->N)) {
if (preg_match($yy_global_pattern,$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
@@ -902,7 +902,7 @@ class PHP_LexerGenerator_Regex_Lexer
}
$yysubmatches = array();
if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
$this->input, $yymatches, null, $this->N)) {
$this->input, $yymatches, 0, $this->N)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
next($yymatches); // skip global match

View File

@@ -33,17 +33,19 @@ class PHP_LexerGenerator_Regex_yyToken implements ArrayAccess
return $this->_string;
}
function offsetExists($offset)
function offsetExists($offset): bool
{
return isset($this->metadata[$offset]);
}
// Return type mixed is not supported by PHP 7.4, we can remove the following PHP attribute and add the return type once iTop min PHP version is PHP 8.0+
#[\ReturnTypeWillChange]
function offsetGet($offset)
{
return $this->metadata[$offset];
}
function offsetSet($offset, $value)
function offsetSet($offset, $value): void
{
if ($offset === null) {
if (isset($value[0])) {
@@ -66,7 +68,7 @@ class PHP_LexerGenerator_Regex_yyToken implements ArrayAccess
}
}
function offsetUnset($offset)
function offsetUnset($offset): void
{
unset($this->metadata[$offset]);
}

View File

@@ -235,7 +235,7 @@ class OQLLexerRaw
$match = false;
foreach ($yy_yymore_patterns[$this->token] as $index => $rule) {
if (preg_match('/' . $rule . '/',
$this->data, $yymatches, null, $this->count)) {
$this->data, $yymatches, 0, $this->count)) {
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if ($match) {
if (strlen($yymatches[0]) > strlen($match[0][0])) {

View File

@@ -36,7 +36,13 @@ class UnknownClassOqlException extends OqlNormalizeException
{
public function __construct($sInput, OqlName $oName, $aExpecting = null)
{
parent::__construct('Unknown class', $sInput, $oName, $aExpecting);
$aAllowedClasses = [];
foreach ($aExpecting as $sClass) {
if (UserRights::IsActionAllowed($sClass, UR_ACTION_READ)) {
$aAllowedClasses[] = $sClass;
}
}
parent::__construct('Unknown class', $sInput, $oName, $aAllowedClasses);
}
public function GetUserFriendlyDescription()

View File

@@ -314,7 +314,7 @@ class ormDocument
'document' => $oDocument,
'content_disposition' => $sContentDisposition,
);
EventService::FireEvent(new EventData(EVENT_DOWNLOAD_DOCUMENT, $sClass, $aEventData));
EventService::FireEvent(new EventData(\EVENT_DOWNLOAD_DOCUMENT, $sClass, $aEventData));
$oPage->TrashUnexpectedOutput();
$oPage->SetContentType($oDocument->GetMimeType());
$oPage->SetContentDisposition($sContentDisposition,$oDocument->GetFileName());

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -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{

View File

@@ -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'),
}

View File

@@ -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};
}

View File

@@ -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 {

View File

@@ -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";

View File

@@ -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);
}

View File

@@ -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{

View File

@@ -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} {

View File

@@ -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;
}

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -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 */

View File

@@ -1,16 +1,16 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
/* 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{

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -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;

View File

@@ -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;

View File

@@ -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};

View File

@@ -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};

View File

@@ -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};

View File

@@ -3,4 +3,3 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
$approot-relative: '../../../../' !default;

View File

@@ -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};

View File

@@ -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 {

View File

@@ -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{

View File

@@ -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;
$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;

View File

@@ -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*/

View File

@@ -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;
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;
}

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,4 +1,4 @@
/*!
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

108
css/common/README.md Normal file
View File

@@ -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 frontend 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;
```

40
css/common/_shame.scss Normal file
View File

@@ -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 its 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; }

View File

@@ -0,0 +1,7 @@
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@import "base";
@import "typography";

View File

@@ -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;

View File

@@ -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'),
}

4
css/common/main.scss Normal file
View File

@@ -0,0 +1,4 @@
@import "utils/all";
@import "vendors/all";
@import "base/all";
@import "shame";

View File

@@ -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";

View File

@@ -0,0 +1,6 @@
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@import "color";

View File

@@ -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);
}

View File

@@ -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";

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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};
}
}

View File

@@ -0,0 +1,7 @@
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@import "highlight";
@import "selectable";

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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";

View File

@@ -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;;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -0,0 +1,6 @@
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
$approot-relative: '../../../../' !default;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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";

View File

@@ -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');

View File

@@ -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;

View File

@@ -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,
),
);

View File

@@ -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-orange-100 !default;
$common-color-primary-200: $common-color-orange-200 !default;
$common-color-primary-300: $common-color-orange-300 !default;
$common-color-primary-400: $common-color-orange-400 !default;
$common-color-primary-500: $common-color-orange-500 !default;
$common-color-primary-600: $common-color-orange-600 !default;
$common-color-primary-700: $common-color-orange-700 !default;
$common-color-primary-800: $common-color-orange-800 !default;
$common-color-primary-900: $common-color-orange-900 !default;
$common-color-primary-950: $common-color-orange-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;

View File

@@ -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};
}

1
css/common/vendors/_all.scss vendored Normal file
View File

@@ -0,0 +1 @@
@import "highlightjs";

View File

@@ -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;
}

View File

@@ -0,0 +1,13 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN GB', 'British English', 'British English', array(
'CAS:Error:UserNotAllowed' => 'User not allowed',
'CAS:Login:SignIn' => 'Sign in with CAS',
'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server',
));

View File

@@ -1,14 +1,11 @@
<?php
/**
* Localized data
* Spanish Localized data
*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*
*/
/**
* @author Miguel Turrubiates <miguel_tf@yahoo.com>
*
* @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales
*/
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [
'CAS:Error:UserNotAllowed' => 'Usuario no permitido',

View File

@@ -4,11 +4,8 @@
*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*
*/
/**
*
*/
Dict::Add('ZH CN', 'Chinese', '简体中文', [
'CAS:Error:UserNotAllowed' => '用户被禁止登录',
'CAS:Login:SignIn' => '使用CAS登录',

View File

@@ -160,8 +160,7 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte
private static function InitCASClient()
{
$bCASDebug = Config::Get('cas_debug');
if ($bCASDebug)
{
if ($bCASDebug) {
phpCAS::setLogger(new CASLogger(APPROOT.'log/cas.log'));
}
@@ -171,18 +170,17 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte
$iCASPort = Config::Get('cas_port');
$sCASContext = Config::Get('cas_context');
$sServiceBaseURL = Config::Get('service_base_url', self::GetServiceBaseURL());
phpCAS::client($sCASVersion, $sCASHost, $iCASPort, $sCASContext, $sServiceBaseURL, false /* session already started */);
if (!phpCAS::isInitialized()) {
phpCAS::client($sCASVersion, $sCASHost, $iCASPort, $sCASContext, $sServiceBaseURL, false /* session already started */);
}
$sCASCACertPath = Config::Get('cas_server_ca_cert_path');
if (empty($sCASCACertPath))
{
if (empty($sCASCACertPath)) {
// If no certificate authority is provided, do not attempt to validate
// the server's certificate
// THIS SETTING IS NOT RECOMMENDED FOR PRODUCTION.
// VALIDATING THE CAS SERVER IS CRUCIAL TO THE SECURITY OF THE CAS PROTOCOL!
phpCAS::setNoCasServerValidation();
}
else
{
} else {
phpCAS::setCasServerCACert($sCASCACertPath);
}
}

View File

@@ -0,0 +1,41 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with iTop. If not, see <http://www.gnu.org/licenses/>
*/
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: UserExternal
//
Dict::Add('EN GB', 'British English', 'British English', array(
'Class:UserExternal' => 'External user',
'Class:UserExternal+' => 'User authentified outside of '.ITOP_APPLICATION_SHORT,
));

View File

@@ -1,14 +1,11 @@
<?php
/**
* Localized data
* Spanish Localized data
*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license https://opensource.org/licenses/AGPL-3.0
*
*/
/**
* @author Miguel Turrubiates <miguel_tf@yahoo.com>
*
* @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales
*/
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [
'Class:UserExternal' => 'Usuario externo',

Some files were not shown because too many files have changed in this diff Show More