From 132a7cd344cab435f2ee32dbfb9b1b6da7bd55de Mon Sep 17 00:00:00 2001 From: LucaP Date: Wed, 2 Sep 2026 16:40:46 +0300 Subject: [PATCH] feat: add infrastructure flow and official iconography --- docs/third-party-notices.md | 9 + package-lock.json | 20 +++ package.json | 1 + src/components/BrandIcon.vue | 19 ++ src/components/ContactDestination.vue | 6 +- src/components/InfrastructureDiagram.vue | 60 +++++-- src/components/ToolkitGrid.vue | 11 +- src/icons/brand-icons.ts | 129 ++++++++++++++ src/styles/components.css | 214 ++++++++++++++++++++--- tests/browser/accessibility-axe.spec.ts | 6 +- tests/browser/no-javascript.spec.ts | 1 - tests/browser/responsive-layout.spec.ts | 29 +++ tests/unit/brand-icons.test.ts | 47 +++++ tests/unit/components.test.ts | 23 ++- 14 files changed, 520 insertions(+), 55 deletions(-) create mode 100644 src/components/BrandIcon.vue create mode 100644 src/icons/brand-icons.ts create mode 100644 tests/unit/brand-icons.test.ts diff --git a/docs/third-party-notices.md b/docs/third-party-notices.md index 8ac8e8d..692e3d8 100644 --- a/docs/third-party-notices.md +++ b/docs/third-party-notices.md @@ -30,3 +30,12 @@ The complete license text is distributed in `node_modules/@fontsource-variable/g - License: MIT The complete license text is distributed in `node_modules/@phosphor-icons/vue/LICENSE` during development and dependency review. + +## Simple Icons + +- Package: `simple-icons` version 16.29.0 +- Copyright: Simple Icons contributors +- Package source: https://github.com/simple-icons/simple-icons +- License: CC0 1.0 Universal + +The complete license text is distributed in `node_modules/simple-icons/LICENSE.md` during development and dependency review. Product names and marks remain the property of their respective owners; inclusion identifies the technologies used and does not imply endorsement. diff --git a/package-lock.json b/package-lock.json index db5cf81..ee19637 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@fontsource-variable/geist-mono": "5.3.0", "@phosphor-icons/vue": "2.2.1", "canonicalize": "2.1.0", + "simple-icons": "16.29.0", "three": "^0.185.1", "vue": "^3.5.42", "zod": "^4.5.4" @@ -6186,6 +6187,25 @@ "simple-concat": "^1.0.0" } }, + "node_modules/simple-icons": { + "version": "16.29.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-16.29.0.tgz", + "integrity": "sha512-4H94f5ZgcCcgJroc902TFlFdgPu2IU2eD7+WebN2Z14xKYrKHeJ4UQcZwzgSuH4Rgzw+jp7sbHl40NefuIEYsg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/simple-icons" + }, + { + "type": "github", + "url": "https://github.com/sponsors/simple-icons" + } + ], + "license": "CC0-1.0", + "engines": { + "node": ">=0.12.18" + } + }, "node_modules/slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", diff --git a/package.json b/package.json index 224dfdb..ce50304 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@fontsource-variable/geist-mono": "5.3.0", "@phosphor-icons/vue": "2.2.1", "canonicalize": "2.1.0", + "simple-icons": "16.29.0", "three": "^0.185.1", "vue": "^3.5.42", "zod": "^4.5.4" diff --git a/src/components/BrandIcon.vue b/src/components/BrandIcon.vue new file mode 100644 index 0000000..9ff063f --- /dev/null +++ b/src/components/BrandIcon.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/components/ContactDestination.vue b/src/components/ContactDestination.vue index ea8af78..9ab4f3a 100644 --- a/src/components/ContactDestination.vue +++ b/src/components/ContactDestination.vue @@ -1,4 +1,5 @@