diff --git a/package.json b/package.json index f5dfb073f..6f0151ee2 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "@storybook/testing-library": "^0.0.13", "@tanstack/react-virtual": "^3.0.0-beta.39", "@types/css": "^0.0.33", + "@types/jsdom": "^21.1.7", "@types/memoizee": "^0.4.8", "@types/mustache": "^4.2.6", "@types/node": "^18.7.18", @@ -110,6 +111,7 @@ "evt": "^2.4.2", "fzf": "^0.5.1", "husky": "^4.3.8", + "jsdom": "^26.1.0", "lint-staged": "^11.0.0", "memoizee": "^0.4.15", "mustache": "^4.2.0", diff --git a/scripts/picto-builder.ts b/scripts/picto-builder.ts index 224bc026d..db7e1f9b7 100644 --- a/scripts/picto-builder.ts +++ b/scripts/picto-builder.ts @@ -3,6 +3,7 @@ import fs from "fs/promises"; import glob from "fast-glob"; import { optimize } from "svgo"; import Mustache from "mustache"; +import { JSDOM } from "jsdom"; async function ensureDir(dir: string): Promise { try { @@ -64,6 +65,58 @@ function pascalCaseName(filename: string): string { .join(""); } +function getSvgFragments(svg: string) { + const dom = new JSDOM(`${svg}`, { contentType: "image/svg+xml" }); + const document = dom.window.document; + + const groupMap: Record = { + "fr-artwork-decorative": [], + "fr-artwork-minor": [], + "fr-artwork-major": [] + }; + + const fillToClass = { + "#ececff": "fr-artwork-decorative", + "#e1000f": "fr-artwork-minor", + "#000091": "fr-artwork-major" + }; + + const allPaths = Array.from(document.querySelectorAll("path")); + const used = new Set(); + + for (const pathEl of allPaths) { + const fill = pathEl.getAttribute("fill")?.toLowerCase() ?? ""; + const groupClass = fillToClass[fill as keyof typeof fillToClass]; + if (groupClass) { + pathEl.removeAttribute("fill"); + groupMap[groupClass].push(pathEl); + used.add(pathEl); + } + } + + const fragments: string[] = []; + + for (const [className, elements] of Object.entries(groupMap)) { + if (elements.length > 0) { + const groupHtml = elements.map(el => el.outerHTML).join(""); + fragments.push(`${groupHtml}`); + } + } + + const svgElement = document.querySelector("svg"); + const remaining = + svgElement && + Array.from(svgElement.childNodes) + .filter(node => node.nodeType === 1 && !used.has(node as Element)) + .map(node => (node as Element).outerHTML) + .join(""); + + if (remaining) { + fragments.push(remaining); + } + return fragments; +} + async function generateComponent(svgPath: string, outputDir: string): Promise { const svgName = path.basename(svgPath); const componentName = pascalCaseName(svgName); @@ -85,7 +138,7 @@ export default createIcon( const componentCode = Mustache.render(template, { componentName, - svgContent: cleanedSvg + svgContent: getSvgFragments(cleanedSvg).join("") }); const outPath = path.join(outputDir, outputFileName); diff --git a/src/picto/Accessibility.tsx b/src/picto/Accessibility.tsx index 6818ed431..c043d8f95 100644 --- a/src/picto/Accessibility.tsx +++ b/src/picto/Accessibility.tsx @@ -3,34 +3,31 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - + + + + + + + + + , "Accessibility" ); diff --git a/src/picto/Airport.tsx b/src/picto/Airport.tsx index 59844572e..fa10ceb1a 100644 --- a/src/picto/Airport.tsx +++ b/src/picto/Airport.tsx @@ -3,64 +3,35 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + , "Airport" ); diff --git a/src/picto/Application.tsx b/src/picto/Application.tsx index db0849cbe..1db5f0b4e 100644 --- a/src/picto/Application.tsx +++ b/src/picto/Application.tsx @@ -3,70 +3,40 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + , "Application" ); diff --git a/src/picto/Archive.tsx b/src/picto/Archive.tsx index 5811309f5..9fdfb58a6 100644 --- a/src/picto/Archive.tsx +++ b/src/picto/Archive.tsx @@ -3,78 +3,70 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "Archive" ); diff --git a/src/picto/ArmyTank.tsx b/src/picto/ArmyTank.tsx index 227fcf8a4..ff53de019 100644 --- a/src/picto/ArmyTank.tsx +++ b/src/picto/ArmyTank.tsx @@ -3,56 +3,33 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - + + + + + + + + + + + + + + + , "ArmyTank" ); diff --git a/src/picto/Art.tsx b/src/picto/Art.tsx index fe70e698d..7c6e8d1fd 100644 --- a/src/picto/Art.tsx +++ b/src/picto/Art.tsx @@ -3,84 +3,75 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + , "Art" ); diff --git a/src/picto/Astronaut.tsx b/src/picto/Astronaut.tsx index 05ad9e40a..fdc58b0f3 100644 --- a/src/picto/Astronaut.tsx +++ b/src/picto/Astronaut.tsx @@ -3,90 +3,80 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + , "Astronaut" ); diff --git a/src/picto/Audio.tsx b/src/picto/Audio.tsx index b6c94e0d7..68b4f1958 100644 --- a/src/picto/Audio.tsx +++ b/src/picto/Audio.tsx @@ -3,90 +3,80 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + , "Audio" ); diff --git a/src/picto/Avatar.tsx b/src/picto/Avatar.tsx index b3651871a..84d7e6e18 100644 --- a/src/picto/Avatar.tsx +++ b/src/picto/Avatar.tsx @@ -3,24 +3,18 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "Avatar" ); diff --git a/src/picto/Backpack.tsx b/src/picto/Backpack.tsx index 7f19c0967..edc7f2768 100644 --- a/src/picto/Backpack.tsx +++ b/src/picto/Backpack.tsx @@ -3,22 +3,21 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "Backpack" ); diff --git a/src/picto/Base.tsx b/src/picto/Base.tsx index f9b14338e..ca70d6b95 100644 --- a/src/picto/Base.tsx +++ b/src/picto/Base.tsx @@ -3,36 +3,35 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - + + + + + + + + + , "Base" ); diff --git a/src/picto/Binders.tsx b/src/picto/Binders.tsx index c7ca9bb9c..88f146d18 100644 --- a/src/picto/Binders.tsx +++ b/src/picto/Binders.tsx @@ -3,66 +3,25 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + , "Binders" ); diff --git a/src/picto/Book.tsx b/src/picto/Book.tsx index daf30faba..3dc26fda6 100644 --- a/src/picto/Book.tsx +++ b/src/picto/Book.tsx @@ -3,48 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - + + + + + + + + + + + + + + , "Book" ); diff --git a/src/picto/Calendar.tsx b/src/picto/Calendar.tsx index adb89d0c8..fcb86f610 100644 --- a/src/picto/Calendar.tsx +++ b/src/picto/Calendar.tsx @@ -3,52 +3,39 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "Calendar" ); diff --git a/src/picto/Catalog.tsx b/src/picto/Catalog.tsx index 8558738a5..120c0241b 100644 --- a/src/picto/Catalog.tsx +++ b/src/picto/Catalog.tsx @@ -3,104 +3,38 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + , "Catalog" ); diff --git a/src/picto/CityHall.tsx b/src/picto/CityHall.tsx index c0b323a5a..366c0ce9b 100644 --- a/src/picto/CityHall.tsx +++ b/src/picto/CityHall.tsx @@ -3,106 +3,42 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + , "CityHall" ); diff --git a/src/picto/Coding.tsx b/src/picto/Coding.tsx index 291d77b0d..d504eea2c 100644 --- a/src/picto/Coding.tsx +++ b/src/picto/Coding.tsx @@ -3,69 +3,40 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + , "Coding" ); diff --git a/src/picto/Community.tsx b/src/picto/Community.tsx index 6c9844658..9b6607951 100644 --- a/src/picto/Community.tsx +++ b/src/picto/Community.tsx @@ -3,72 +3,30 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + , "Community" ); diff --git a/src/picto/Companie.tsx b/src/picto/Companie.tsx index c8f5918b8..1dfb2e058 100644 --- a/src/picto/Companie.tsx +++ b/src/picto/Companie.tsx @@ -3,112 +3,82 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + , "Companie" ); diff --git a/src/picto/Compass.tsx b/src/picto/Compass.tsx index 708e13645..f25ca1bf9 100644 --- a/src/picto/Compass.tsx +++ b/src/picto/Compass.tsx @@ -3,30 +3,16 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - + + + + + + + + + + , "Compass" ); diff --git a/src/picto/Conclusion.tsx b/src/picto/Conclusion.tsx index e0102c56e..ed67390d1 100644 --- a/src/picto/Conclusion.tsx +++ b/src/picto/Conclusion.tsx @@ -3,58 +3,51 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "Conclusion" ); diff --git a/src/picto/ConnectionLost.tsx b/src/picto/ConnectionLost.tsx index 4009181e9..1e4c1fc82 100644 --- a/src/picto/ConnectionLost.tsx +++ b/src/picto/ConnectionLost.tsx @@ -3,50 +3,21 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - + + + + + + + + + + + + + + + , "ConnectionLost" ); diff --git a/src/picto/Contract.tsx b/src/picto/Contract.tsx index 766b57ae8..397234532 100644 --- a/src/picto/Contract.tsx +++ b/src/picto/Contract.tsx @@ -3,48 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - + + + + + + + + + + + + + + , "Contract" ); diff --git a/src/picto/Culture.tsx b/src/picto/Culture.tsx index c4ff4872c..6a9b3ffdd 100644 --- a/src/picto/Culture.tsx +++ b/src/picto/Culture.tsx @@ -3,54 +3,22 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "Culture" ); diff --git a/src/picto/DataVisualization.tsx b/src/picto/DataVisualization.tsx index 96405804d..bf9eec057 100644 --- a/src/picto/DataVisualization.tsx +++ b/src/picto/DataVisualization.tsx @@ -3,86 +3,44 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + , "DataVisualization" ); diff --git a/src/picto/DigitalArt.tsx b/src/picto/DigitalArt.tsx index 386f61380..6a3cbccea 100644 --- a/src/picto/DigitalArt.tsx +++ b/src/picto/DigitalArt.tsx @@ -3,42 +3,26 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "DigitalArt" ); diff --git a/src/picto/Doctor.tsx b/src/picto/Doctor.tsx index 4ff920c8f..fba4036da 100644 --- a/src/picto/Doctor.tsx +++ b/src/picto/Doctor.tsx @@ -3,120 +3,105 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + , "Doctor" ); diff --git a/src/picto/Document.tsx b/src/picto/Document.tsx index a05b8e069..b278ad24b 100644 --- a/src/picto/Document.tsx +++ b/src/picto/Document.tsx @@ -3,48 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - + + + + + + + + + + + + + + , "Document" ); diff --git a/src/picto/DocumentAdd.tsx b/src/picto/DocumentAdd.tsx index 699925876..89b7ccb33 100644 --- a/src/picto/DocumentAdd.tsx +++ b/src/picto/DocumentAdd.tsx @@ -3,18 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - + + + + + + , "DocumentAdd" ); diff --git a/src/picto/DocumentDownload.tsx b/src/picto/DocumentDownload.tsx index fbdaa6f79..96463c89a 100644 --- a/src/picto/DocumentDownload.tsx +++ b/src/picto/DocumentDownload.tsx @@ -3,60 +3,27 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + , "DocumentDownload" ); diff --git a/src/picto/DocumentSearch.tsx b/src/picto/DocumentSearch.tsx index 054cf576f..fa24ea6d4 100644 --- a/src/picto/DocumentSearch.tsx +++ b/src/picto/DocumentSearch.tsx @@ -3,60 +3,27 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + , "DocumentSearch" ); diff --git a/src/picto/DrivingLicense.tsx b/src/picto/DrivingLicense.tsx index b8422a6e5..5e1bd294d 100644 --- a/src/picto/DrivingLicense.tsx +++ b/src/picto/DrivingLicense.tsx @@ -3,83 +3,37 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + , "DrivingLicense" ); diff --git a/src/picto/DrivingLicenseNew.tsx b/src/picto/DrivingLicenseNew.tsx index 3359c1126..cb3efb1b5 100644 --- a/src/picto/DrivingLicenseNew.tsx +++ b/src/picto/DrivingLicenseNew.tsx @@ -3,18 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - + + + + + + , "DrivingLicenseNew" ); diff --git a/src/picto/EarOff.tsx b/src/picto/EarOff.tsx index 650454edf..1a6794696 100644 --- a/src/picto/EarOff.tsx +++ b/src/picto/EarOff.tsx @@ -3,44 +3,37 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - + + + + + + + + + + + , "EarOff" ); diff --git a/src/picto/Ecosystem.tsx b/src/picto/Ecosystem.tsx index 0854abc87..827cf015e 100644 --- a/src/picto/Ecosystem.tsx +++ b/src/picto/Ecosystem.tsx @@ -3,130 +3,111 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + , "Ecosystem" ); diff --git a/src/picto/Environment.tsx b/src/picto/Environment.tsx index 7f6fc4dd0..1a8eb5dd4 100644 --- a/src/picto/Environment.tsx +++ b/src/picto/Environment.tsx @@ -3,24 +3,18 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "Environment" ); diff --git a/src/picto/Error.tsx b/src/picto/Error.tsx index 91da7dea1..3fb8362eb 100644 --- a/src/picto/Error.tsx +++ b/src/picto/Error.tsx @@ -3,22 +3,14 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "Error" ); diff --git a/src/picto/EyeOff.tsx b/src/picto/EyeOff.tsx index e77e34329..212d2ee23 100644 --- a/src/picto/EyeOff.tsx +++ b/src/picto/EyeOff.tsx @@ -3,48 +3,45 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - + + + + + + + + + + + , "EyeOff" ); diff --git a/src/picto/Factory.tsx b/src/picto/Factory.tsx index 8cb11211d..a0102bee4 100644 --- a/src/picto/Factory.tsx +++ b/src/picto/Factory.tsx @@ -3,40 +3,22 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "Factory" ); diff --git a/src/picto/Firefighter.tsx b/src/picto/Firefighter.tsx index 9b62d8e44..07b387f97 100644 --- a/src/picto/Firefighter.tsx +++ b/src/picto/Firefighter.tsx @@ -3,44 +3,23 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "Firefighter" ); diff --git a/src/picto/FlowList.tsx b/src/picto/FlowList.tsx index de029c167..3e45f64a7 100644 --- a/src/picto/FlowList.tsx +++ b/src/picto/FlowList.tsx @@ -3,30 +3,30 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "FlowList" ); diff --git a/src/picto/FlowSettings.tsx b/src/picto/FlowSettings.tsx index 8960a7d87..eafe62498 100644 --- a/src/picto/FlowSettings.tsx +++ b/src/picto/FlowSettings.tsx @@ -3,52 +3,39 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "FlowSettings" ); diff --git a/src/picto/Food.tsx b/src/picto/Food.tsx index 5e4f02fdb..6c20008d9 100644 --- a/src/picto/Food.tsx +++ b/src/picto/Food.tsx @@ -3,18 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - + + + + + + , "Food" ); diff --git a/src/picto/Gendarmerie.tsx b/src/picto/Gendarmerie.tsx index 29492ec24..8e48e4b87 100644 --- a/src/picto/Gendarmerie.tsx +++ b/src/picto/Gendarmerie.tsx @@ -3,22 +3,21 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "Gendarmerie" ); diff --git a/src/picto/Grocery.tsx b/src/picto/Grocery.tsx index ad706f95d..a9162a657 100644 --- a/src/picto/Grocery.tsx +++ b/src/picto/Grocery.tsx @@ -3,18 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - + + + + + + , "Grocery" ); diff --git a/src/picto/Health.tsx b/src/picto/Health.tsx index fc0ac00b2..4eeb3a41c 100644 --- a/src/picto/Health.tsx +++ b/src/picto/Health.tsx @@ -3,34 +3,17 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - + + + + + + + + + + + , "Health" ); diff --git a/src/picto/Hospital.tsx b/src/picto/Hospital.tsx index 11a9a95b6..b3f3d42fc 100644 --- a/src/picto/Hospital.tsx +++ b/src/picto/Hospital.tsx @@ -3,82 +3,57 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + , "Hospital" ); diff --git a/src/picto/House.tsx b/src/picto/House.tsx index 8838e9b40..3f8636c4a 100644 --- a/src/picto/House.tsx +++ b/src/picto/House.tsx @@ -3,18 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - + + + + + + , "House" ); diff --git a/src/picto/HumanCooperation.tsx b/src/picto/HumanCooperation.tsx index 8773f39f7..558cc0894 100644 --- a/src/picto/HumanCooperation.tsx +++ b/src/picto/HumanCooperation.tsx @@ -3,38 +3,18 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "HumanCooperation" ); diff --git a/src/picto/InProgress.tsx b/src/picto/InProgress.tsx index a8dd19f29..85c3c3b3b 100644 --- a/src/picto/InProgress.tsx +++ b/src/picto/InProgress.tsx @@ -3,82 +3,64 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + , "InProgress" ); diff --git a/src/picto/Information.tsx b/src/picto/Information.tsx index 3103be8a9..1704389ca 100644 --- a/src/picto/Information.tsx +++ b/src/picto/Information.tsx @@ -3,20 +3,17 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "Information" ); diff --git a/src/picto/Innovation.tsx b/src/picto/Innovation.tsx index 591694188..755b0cb8a 100644 --- a/src/picto/Innovation.tsx +++ b/src/picto/Innovation.tsx @@ -3,108 +3,95 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + , "Innovation" ); diff --git a/src/picto/InternationalDrivingLicense.tsx b/src/picto/InternationalDrivingLicense.tsx index a4243a5a8..d431ecd65 100644 --- a/src/picto/InternationalDrivingLicense.tsx +++ b/src/picto/InternationalDrivingLicense.tsx @@ -3,32 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - + + + + + + + + + + , "InternationalDrivingLicense" ); diff --git a/src/picto/InternationalDrivingLicenseNew.tsx b/src/picto/InternationalDrivingLicenseNew.tsx index 077fd3846..def39a9a7 100644 --- a/src/picto/InternationalDrivingLicenseNew.tsx +++ b/src/picto/InternationalDrivingLicenseNew.tsx @@ -3,24 +3,25 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "InternationalDrivingLicenseNew" ); diff --git a/src/picto/Internet.tsx b/src/picto/Internet.tsx index 9a9bac133..b8da91c52 100644 --- a/src/picto/Internet.tsx +++ b/src/picto/Internet.tsx @@ -3,44 +3,23 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "Internet" ); diff --git a/src/picto/JusticeScales.tsx b/src/picto/JusticeScales.tsx index eaf32b3dd..2e87e077c 100644 --- a/src/picto/JusticeScales.tsx +++ b/src/picto/JusticeScales.tsx @@ -3,26 +3,22 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "JusticeScales" ); diff --git a/src/picto/Language.tsx b/src/picto/Language.tsx index 0d4537f58..8862aa305 100644 --- a/src/picto/Language.tsx +++ b/src/picto/Language.tsx @@ -3,14 +3,12 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - + + + + + + , "Language" ); diff --git a/src/picto/Leaf.tsx b/src/picto/Leaf.tsx index 057c71524..b06d153e0 100644 --- a/src/picto/Leaf.tsx +++ b/src/picto/Leaf.tsx @@ -3,46 +3,20 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - + + + + + + + + + + + + + + , "Leaf" ); diff --git a/src/picto/LocationFrance.tsx b/src/picto/LocationFrance.tsx index 5f1c077fa..5e8b8fc55 100644 --- a/src/picto/LocationFrance.tsx +++ b/src/picto/LocationFrance.tsx @@ -3,102 +3,76 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + , "LocationFrance" ); diff --git a/src/picto/LocationOverseasFrance.tsx b/src/picto/LocationOverseasFrance.tsx index 39394c238..89e6e1ce5 100644 --- a/src/picto/LocationOverseasFrance.tsx +++ b/src/picto/LocationOverseasFrance.tsx @@ -3,125 +3,91 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , "LocationOverseasFrance" ); diff --git a/src/picto/Luggage.tsx b/src/picto/Luggage.tsx index 5ddb0159d..6065facfd 100644 --- a/src/picto/Luggage.tsx +++ b/src/picto/Luggage.tsx @@ -3,50 +3,35 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "Luggage" ); diff --git a/src/picto/MainSend.tsx b/src/picto/MainSend.tsx index d2472b6c3..ad4502e87 100644 --- a/src/picto/MainSend.tsx +++ b/src/picto/MainSend.tsx @@ -3,44 +3,23 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "MainSend" ); diff --git a/src/picto/Map.tsx b/src/picto/Map.tsx index 2756cd9c8..44808c0d3 100644 --- a/src/picto/Map.tsx +++ b/src/picto/Map.tsx @@ -3,86 +3,65 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + , "Map" ); diff --git a/src/picto/MapPin.tsx b/src/picto/MapPin.tsx index eda81033b..d85360213 100644 --- a/src/picto/MapPin.tsx +++ b/src/picto/MapPin.tsx @@ -3,18 +3,13 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "MapPin" ); diff --git a/src/picto/MedicalResearch.tsx b/src/picto/MedicalResearch.tsx index 6ec7d6208..cb0ed0c4c 100644 --- a/src/picto/MedicalResearch.tsx +++ b/src/picto/MedicalResearch.tsx @@ -3,112 +3,96 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + , "MedicalResearch" ); diff --git a/src/picto/MentalDisabilities.tsx b/src/picto/MentalDisabilities.tsx index 900cd96a6..cb4fa97fd 100644 --- a/src/picto/MentalDisabilities.tsx +++ b/src/picto/MentalDisabilities.tsx @@ -3,58 +3,51 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "MentalDisabilities" ); diff --git a/src/picto/Money.tsx b/src/picto/Money.tsx index e7568a440..b3b7bc5dd 100644 --- a/src/picto/Money.tsx +++ b/src/picto/Money.tsx @@ -3,44 +3,30 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "Money" ); diff --git a/src/picto/Moon.tsx b/src/picto/Moon.tsx index 615411980..919fb23f7 100644 --- a/src/picto/Moon.tsx +++ b/src/picto/Moon.tsx @@ -3,38 +3,18 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "Moon" ); diff --git a/src/picto/Mountain.tsx b/src/picto/Mountain.tsx index 7c92180bb..90c277675 100644 --- a/src/picto/Mountain.tsx +++ b/src/picto/Mountain.tsx @@ -3,60 +3,27 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + , "Mountain" ); diff --git a/src/picto/NationalIdentityCard.tsx b/src/picto/NationalIdentityCard.tsx index 385b2a1ff..625ee7ad5 100644 --- a/src/picto/NationalIdentityCard.tsx +++ b/src/picto/NationalIdentityCard.tsx @@ -3,24 +3,25 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "NationalIdentityCard" ); diff --git a/src/picto/NationalIdentityCardPassport.tsx b/src/picto/NationalIdentityCardPassport.tsx index 9bcc12465..4b1b6c1f2 100644 --- a/src/picto/NationalIdentityCardPassport.tsx +++ b/src/picto/NationalIdentityCardPassport.tsx @@ -3,30 +3,23 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - + + + + + + + + + , "NationalIdentityCardPassport" ); diff --git a/src/picto/NavyAnchor.tsx b/src/picto/NavyAnchor.tsx index 5c3818b5a..032e7f6fe 100644 --- a/src/picto/NavyAnchor.tsx +++ b/src/picto/NavyAnchor.tsx @@ -3,76 +3,66 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "NavyAnchor" ); diff --git a/src/picto/NavyBachi.tsx b/src/picto/NavyBachi.tsx index db2dfab69..207d765d0 100644 --- a/src/picto/NavyBachi.tsx +++ b/src/picto/NavyBachi.tsx @@ -3,48 +3,45 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - + + + + + + + + + + + , "NavyBachi" ); diff --git a/src/picto/Notification.tsx b/src/picto/Notification.tsx index 27efed60f..04b8fb121 100644 --- a/src/picto/Notification.tsx +++ b/src/picto/Notification.tsx @@ -3,58 +3,37 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - + + + + + + + + + + + + + + + , "Notification" ); diff --git a/src/picto/NuclearPlant.tsx b/src/picto/NuclearPlant.tsx index 268c407d1..d8aa46182 100644 --- a/src/picto/NuclearPlant.tsx +++ b/src/picto/NuclearPlant.tsx @@ -3,72 +3,58 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "NuclearPlant" ); diff --git a/src/picto/Paint.tsx b/src/picto/Paint.tsx index 184f6d40a..9b6577566 100644 --- a/src/picto/Paint.tsx +++ b/src/picto/Paint.tsx @@ -3,54 +3,22 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "Paint" ); diff --git a/src/picto/Passport.tsx b/src/picto/Passport.tsx index 00c4f12a9..62bdf0736 100644 --- a/src/picto/Passport.tsx +++ b/src/picto/Passport.tsx @@ -3,34 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - + + + + + + + + + + , "Passport" ); diff --git a/src/picto/Pictures.tsx b/src/picto/Pictures.tsx index 1df25e443..1a7955646 100644 --- a/src/picto/Pictures.tsx +++ b/src/picto/Pictures.tsx @@ -3,60 +3,55 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - + + + + + + + + + + + + + , "Pictures" ); diff --git a/src/picto/Podcast.tsx b/src/picto/Podcast.tsx index ff00a8ba0..493bd0de0 100644 --- a/src/picto/Podcast.tsx +++ b/src/picto/Podcast.tsx @@ -3,78 +3,28 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + , "Podcast" ); diff --git a/src/picto/Police.tsx b/src/picto/Police.tsx index 4de556fe3..e6bffe00e 100644 --- a/src/picto/Police.tsx +++ b/src/picto/Police.tsx @@ -3,20 +3,17 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - + + + + + + + , "Police" ); diff --git a/src/picto/PressCard.tsx b/src/picto/PressCard.tsx index 51790da0f..85c206004 100644 --- a/src/picto/PressCard.tsx +++ b/src/picto/PressCard.tsx @@ -3,70 +3,61 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - + + + + + + + + + + + + + + + , "PressCard" ); diff --git a/src/picto/School.tsx b/src/picto/School.tsx index 7f6e7210f..b72e6d61b 100644 --- a/src/picto/School.tsx +++ b/src/picto/School.tsx @@ -3,102 +3,55 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + , "School" ); diff --git a/src/picto/Search.tsx b/src/picto/Search.tsx index 665200df4..abd05176f 100644 --- a/src/picto/Search.tsx +++ b/src/picto/Search.tsx @@ -3,48 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - + + + + + + + + + + + + + + , "Search" ); diff --git a/src/picto/SelfTraining.tsx b/src/picto/SelfTraining.tsx index 14507e4c4..e7e9592b2 100644 --- a/src/picto/SelfTraining.tsx +++ b/src/picto/SelfTraining.tsx @@ -3,90 +3,66 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + , "SelfTraining" ); diff --git a/src/picto/SignDocument.tsx b/src/picto/SignDocument.tsx index 3876b08f7..a861c5480 100644 --- a/src/picto/SignDocument.tsx +++ b/src/picto/SignDocument.tsx @@ -3,42 +3,26 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "SignDocument" ); diff --git a/src/picto/Smartphone.tsx b/src/picto/Smartphone.tsx index 839074ed4..ab97efb09 100644 --- a/src/picto/Smartphone.tsx +++ b/src/picto/Smartphone.tsx @@ -3,66 +3,53 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - + + + + + + + + + + + + + + + , "Smartphone" ); diff --git a/src/picto/Success.tsx b/src/picto/Success.tsx index 432d7e526..8de363a68 100644 --- a/src/picto/Success.tsx +++ b/src/picto/Success.tsx @@ -3,24 +3,18 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "Success" ); diff --git a/src/picto/Sun.tsx b/src/picto/Sun.tsx index 285e21f91..d1ded713c 100644 --- a/src/picto/Sun.tsx +++ b/src/picto/Sun.tsx @@ -3,48 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - + + + + + + + + + + + + + + , "Sun" ); diff --git a/src/picto/System.tsx b/src/picto/System.tsx index 7d8612953..f0c2b7186 100644 --- a/src/picto/System.tsx +++ b/src/picto/System.tsx @@ -3,30 +3,16 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - + + + + + + + + + + , "System" ); diff --git a/src/picto/TaxStamp.tsx b/src/picto/TaxStamp.tsx index 3b80a49de..f67b856fd 100644 --- a/src/picto/TaxStamp.tsx +++ b/src/picto/TaxStamp.tsx @@ -3,54 +3,22 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "TaxStamp" ); diff --git a/src/picto/TechnicalError.tsx b/src/picto/TechnicalError.tsx index 161b0ca14..e9ab4d26e 100644 --- a/src/picto/TechnicalError.tsx +++ b/src/picto/TechnicalError.tsx @@ -3,56 +3,26 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - + + + + + + + + + + + + + + + + , "TechnicalError" ); diff --git a/src/picto/TravelBack.tsx b/src/picto/TravelBack.tsx index 32359818f..1ce5dc15b 100644 --- a/src/picto/TravelBack.tsx +++ b/src/picto/TravelBack.tsx @@ -3,30 +3,30 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "TravelBack" ); diff --git a/src/picto/Tree.tsx b/src/picto/Tree.tsx index 2252d5558..e145d5204 100644 --- a/src/picto/Tree.tsx +++ b/src/picto/Tree.tsx @@ -3,34 +3,17 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - + + + + + + + + + + + , "Tree" ); diff --git a/src/picto/Vaccine.tsx b/src/picto/Vaccine.tsx index 8c911b77c..0b5e50d39 100644 --- a/src/picto/Vaccine.tsx +++ b/src/picto/Vaccine.tsx @@ -3,98 +3,47 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + , "Vaccine" ); diff --git a/src/picto/VehicleRegistrationDocument.tsx b/src/picto/VehicleRegistrationDocument.tsx index cb0fb2ee6..15e03f22b 100644 --- a/src/picto/VehicleRegistrationDocument.tsx +++ b/src/picto/VehicleRegistrationDocument.tsx @@ -3,42 +3,33 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - + + + + + + + + + + + , "VehicleRegistrationDocument" ); diff --git a/src/picto/Video.tsx b/src/picto/Video.tsx index c27b405da..ea24ceb42 100644 --- a/src/picto/Video.tsx +++ b/src/picto/Video.tsx @@ -3,62 +3,24 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + , "Video" ); diff --git a/src/picto/VideoGames.tsx b/src/picto/VideoGames.tsx index 644ce17cb..7e34ae713 100644 --- a/src/picto/VideoGames.tsx +++ b/src/picto/VideoGames.tsx @@ -3,94 +3,81 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + , "VideoGames" ); diff --git a/src/picto/Virus.tsx b/src/picto/Virus.tsx index 8618fb18d..60e8d258f 100644 --- a/src/picto/Virus.tsx +++ b/src/picto/Virus.tsx @@ -3,28 +3,26 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - + + + + + + + + , "Virus" ); diff --git a/src/picto/Warning.tsx b/src/picto/Warning.tsx index 60189be3d..1bafc6d02 100644 --- a/src/picto/Warning.tsx +++ b/src/picto/Warning.tsx @@ -3,26 +3,15 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - + + + + + + + + + , "Warning" ); diff --git a/src/picto/Wheelchair.tsx b/src/picto/Wheelchair.tsx index dc456892e..e8813fa31 100644 --- a/src/picto/Wheelchair.tsx +++ b/src/picto/Wheelchair.tsx @@ -3,52 +3,46 @@ import { createIcon } from "./utils/IconWrapper"; export default createIcon( <> - - - - - - - - + + + + + + + + + + + + , "Wheelchair" ); diff --git a/src/picto/utils/IconWrapper.tsx b/src/picto/utils/IconWrapper.tsx index c3b51016f..358d0203f 100644 --- a/src/picto/utils/IconWrapper.tsx +++ b/src/picto/utils/IconWrapper.tsx @@ -1,8 +1,28 @@ import React, { memo } from "react"; +import { cx } from "../../tools/cx"; type IconSize = "small" | "medium" | "large" | "inherit" | (string & {}); +type IconColor = + | "green-tilleul-verveine" + | "green-bourgeon" + | "green-emeraude" + | "green-menthe" + | "green-archipel" + | "blue-ecume" + | "blue-cumulus" + | "purple-glycine" + | "pink-macaron" + | "pink-tuile" + | "yellow-tournesol" + | "yellow-moutarde" + | "orange-terre-battue" + | "brown-cafe-creme" + | "brown-caramel" + | "brown-opera" + | "beige-gris-galet"; export type IconProps = { fontSize?: IconSize; + color?: IconColor; } & Omit, "fontSize">; const getSize = (size: IconSize) => { @@ -20,8 +40,15 @@ const getSize = (size: IconSize) => { } }; +const getColor = (color?: IconColor) => { + if (!color) { + return undefined; + } + return `fr-artwork--${color}`; +}; + export const IconWrapper: React.FC = memo( - ({ children, fontSize = "medium", ...props }) => ( + ({ children, color, fontSize = "medium", className, ...props }) => ( = memo( focusable="false" aria-hidden="true" fontSize={getSize(fontSize)} + className={cx("fr-artwork", getColor(color), className)} {...props} > {children} diff --git a/stories/picto/Pictograms.tsx b/stories/picto/Pictograms.tsx index b3756c0ea..179de2b88 100644 --- a/stories/picto/Pictograms.tsx +++ b/stories/picto/Pictograms.tsx @@ -5,11 +5,13 @@ import { useConst } from "powerhooks/useConst"; import { Evt } from "evt"; import { tss } from "tss-react"; import { fr } from "../../dist/fr"; +import { cx } from "../../dist/tools/cx"; import * as Picto from "../../dist/picto"; import { createModal } from "../../dist/Modal"; import { Tooltip } from "../../dist/Tooltip"; import CallOut from "../../dist/CallOut"; import { getLink } from "../../dist/link"; +import { useColors } from "../../dist/useColors"; const pictogrameEntries = Object.entries(Picto); @@ -80,94 +82,144 @@ export function Pictograms() { ))} - - {selectedPicto !== null && ( - <> -
- -
-
- {selectedPicto && - createElement( - Picto[selectedPicto.key] as React.ElementType, - { - style: { - backgroundSize: "30px 30px", - backgroundColor: "transparent", - backgroundPosition: - "0px 0px, 0px 15px, 15px -15px, -15px 0px", - backgroundImage: - "linear-gradient(45deg, rgb(230, 230, 230) 25%, transparent 25%), linear-gradient(-45deg, rgb(230, 230, 230) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgb(230, 230, 230) 75%), linear-gradient(-45deg, transparent 75%, rgb(230, 230, 230) 75%)" - }, - fontSize: 210 - } - )} + +
+ ); +} + +const PictogramsModal = ({ selectedPicto }: { selectedPicto: { key: string } | null }) => { + const { isDark } = useColors(); + const { classes } = useStyles(); + + if (selectedPicto === null) { + return null; + } + + return ( + +
+ +
+
+ {selectedPicto && + createElement(Picto[selectedPicto.key] as React.ElementType, { + className: cx( + classes.pictogramsPlaceholder, + isDark + ? classes.pictogramsPlaceholderDark + : classes.pictogramsPlaceholderLight + ), + fontSize: 210 + })} +
+
+
+ +
+ {createElement(Picto[selectedPicto.key] as React.ElementType, { + fontSize: "small" + })} +
+
+ +
+ {createElement(Picto[selectedPicto.key] as React.ElementType, { + fontSize: "medium" + })}
+
+
- -
- {createElement( - Picto[selectedPicto.key] as React.ElementType, - { fontSize: "small" } - )} -
-
- -
- {createElement( - Picto[selectedPicto.key] as React.ElementType, - { fontSize: "medium" } - )} -
-
- -
- {createElement( - Picto[selectedPicto.key] as React.ElementType, - { fontSize: "large" } - )} -
-
+ {createElement(Picto[selectedPicto.key] as React.ElementType, { + fontSize: "large" + })}
-
+
- - )} - -
+
+ +
+ {createElement(Picto[selectedPicto.key] as React.ElementType, { + fontSize: "large", + color: "green-emeraude" + })} +
+
+ +
+ {createElement(Picto[selectedPicto.key] as React.ElementType, { + fontSize: "large", + color: "yellow-moutarde" + })} +
+
+ +
+ {createElement(Picto[selectedPicto.key] as React.ElementType, { + fontSize: "large", + color: "blue-ecume" + })} +
+
+
+
+
+
+ ); -} +}; const useStyles = tss.withName({ Pictograms }).create(() => ({ pictoTile: { @@ -197,5 +249,24 @@ const useStyles = tss.withName({ Pictograms }).create(() => ({ padding: fr.spacing("1w"), borderRadius: "8px", backgroundColor: "var(--background-default-grey)" + }, + pictogramsPlaceholder: { + backgroundSize: "30px 30px", + backgroundColor: "transparent", + backgroundPosition: "0px 0px, 0px 15px, 15px -15px, -15px 0px" + }, + pictogramsPlaceholderLight: { + backgroundImage: + "linear-gradient(45deg, rgb(230, 230, 230) 25%, transparent 25%), " + + "linear-gradient(-45deg, rgb(230, 230, 230) 25%, transparent 25%), " + + "linear-gradient(45deg, transparent 75%, rgb(230, 230, 230) 75%), " + + "linear-gradient(-45deg, transparent 75%, rgb(230, 230, 230) 75%)" + }, + pictogramsPlaceholderDark: { + backgroundImage: + "linear-gradient(45deg, rgb(60, 60, 60) 25%, transparent 25%), " + + "linear-gradient(-45deg, rgb(60, 60, 60) 25%, transparent 25%), " + + "linear-gradient(45deg, transparent 75%, rgb(60, 60, 60) 75%), " + + "linear-gradient(-45deg, transparent 75%, rgb(60, 60, 60) 75%)" } })); diff --git a/yarn.lock b/yarn.lock index 637ea1ead..f5aceb8a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,6 +17,17 @@ dependencies: grapheme-splitter "^1.0.4" +"@asamuzakjp/css-color@^3.1.2": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794" + integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw== + dependencies: + "@csstools/css-calc" "^2.1.3" + "@csstools/css-color-parser" "^3.0.9" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + lru-cache "^10.4.3" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" @@ -1162,6 +1173,34 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@csstools/color-helpers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" + integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== + +"@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== + +"@csstools/css-color-parser@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz#79fc68864dd43c3b6782d2b3828bc0fa9d085c10" + integrity sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg== + dependencies: + "@csstools/color-helpers" "^5.0.2" + "@csstools/css-calc" "^2.1.4" + +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== + +"@csstools/css-tokenizer@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== + "@design-systems/utils@2.12.0": version "2.12.0" resolved "https://registry.npmjs.org/@design-systems/utils/-/utils-2.12.0.tgz" @@ -3107,6 +3146,15 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/jsdom@^21.1.7": + version "21.1.7" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-21.1.7.tgz#9edcb09e0b07ce876e7833922d3274149c898cfa" + integrity sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^7.0.0" + "@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" @@ -3254,6 +3302,11 @@ resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz" integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + "@types/treeify@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@types/treeify/-/treeify-1.0.0.tgz" @@ -3831,6 +3884,11 @@ address@^1.0.1: resolved "https://registry.npmjs.org/address/-/address-1.2.1.tgz" integrity sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA== +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" + integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" @@ -5556,6 +5614,14 @@ csso@^5.0.5: dependencies: css-tree "~2.2.0" +cssstyle@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.3.1.tgz#68a3c9f5a70aa97d5a6ebecc9805e511fc022eb8" + integrity sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q== + dependencies: + "@asamuzakjp/css-color" "^3.1.2" + rrweb-cssom "^0.8.0" + csstype@^3.0.2, csstype@^3.1.0, csstype@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" @@ -5630,6 +5696,14 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" +data-urls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" + integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== + dependencies: + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" @@ -5656,6 +5730,11 @@ decamelize@^1.1.2: resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +decimal.js@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" + integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== + decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" @@ -6069,6 +6148,11 @@ entities@^4.2.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51" + integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw== + errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" @@ -7559,6 +7643,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +html-encoding-sniffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" + integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== + dependencies: + whatwg-encoding "^3.1.1" + html-entities@^2.1.0: version "2.3.3" resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz" @@ -7657,6 +7748,14 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" @@ -7670,6 +7769,14 @@ https-browserify@^1.0.0: resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== +https-proxy-agent@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== + dependencies: + agent-base "^7.1.2" + debug "4" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" @@ -7698,6 +7805,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" @@ -8096,6 +8210,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + is-promise@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" @@ -8411,6 +8530,32 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsdom@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-26.1.0.tgz#ab5f1c1cafc04bd878725490974ea5e8bf0c72b3" + integrity sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg== + dependencies: + cssstyle "^4.2.1" + data-urls "^5.0.0" + decimal.js "^10.5.0" + html-encoding-sniffer "^4.0.0" + http-proxy-agent "^7.0.2" + https-proxy-agent "^7.0.6" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.16" + parse5 "^7.2.1" + rrweb-cssom "^0.8.0" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^5.1.1" + w3c-xmlserializer "^5.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^3.1.1" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.1.1" + ws "^8.18.0" + xml-name-validator "^5.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" @@ -8847,6 +8992,11 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" @@ -9554,6 +9704,11 @@ num2fraction@^1.2.2: resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== +nwsapi@^2.2.16: + version "2.2.20" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" + integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== + object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" @@ -9937,6 +10092,13 @@ parse5@^6.0.0: resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parse5@^7.0.0, parse5@^7.2.1: + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== + dependencies: + entities "^6.0.0" + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" @@ -10528,6 +10690,11 @@ punycode@^2.1.0: resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + qs@6.11.0, qs@^6.10.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" @@ -11084,6 +11251,11 @@ rollup@^2.79.1: optionalDependencies: fsevents "~2.3.2" +rrweb-cssom@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" + integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" @@ -11148,7 +11320,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -11188,6 +11360,13 @@ sass@^1.32.5: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + scheduler@^0.23.0: version "0.23.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" @@ -11970,6 +12149,11 @@ svgo@^3.3.2: csso "^5.0.5" picocolors "^1.0.0" +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + symbol.prototype.description@^1.0.0: version "1.0.5" resolved "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz" @@ -12186,6 +12370,18 @@ tinyspy@^1.0.2: resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz" integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== +tldts-core@^6.1.86: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" + integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== + +tldts@^6.1.32: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" + integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== + dependencies: + tldts-core "^6.1.86" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -12245,6 +12441,20 @@ toidentifier@1.0.1: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +tough-cookie@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" + integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== + dependencies: + tldts "^6.1.32" + +tr46@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca" + integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== + dependencies: + punycode "^2.3.1" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" @@ -12802,6 +13012,13 @@ vuex@^3.6.0: resolved "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz" integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== +w3c-xmlserializer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" + integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== + dependencies: + xml-name-validator "^5.0.0" + walker@^1.0.7, walker@~1.0.5: version "1.0.8" resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" @@ -12853,6 +13070,11 @@ webidl-conversions@^3.0.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + webpack-dev-middleware@^3.7.3: version "3.7.3" resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" @@ -12982,6 +13204,26 @@ webpack@4: watchpack "^2.4.1" webpack-sources "^3.2.3" +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + +whatwg-url@^14.0.0, whatwg-url@^14.1.1: + version "14.2.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663" + integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== + dependencies: + tr46 "^5.1.0" + webidl-conversions "^7.0.0" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" @@ -13113,6 +13355,11 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +ws@^8.18.0: + version "8.18.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" + integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== + ws@^8.2.3: version "8.11.0" resolved "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz" @@ -13125,6 +13372,16 @@ x-default-browser@^0.4.0: optionalDependencies: default-browser-id "^1.0.4" +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"