From 2e36537205eb551147ddd2b305e8681837aacf89 Mon Sep 17 00:00:00 2001 From: David Cho-Lerat Date: Thu, 12 Dec 2024 11:09:12 +0100 Subject: [PATCH] ECHOES-491 Add new AI icons to our custom icon font --- src/components/icons/IconSparkleInShield.tsx | 32 ++++++++++++++++++ .../icons/IconSparkleInShieldDisabled.tsx | 32 ++++++++++++++++++ .../icons/IconSparkleInShieldError.tsx | 32 ++++++++++++++++++ .../icons/IconSparkleInShieldSuccess.tsx | 32 ++++++++++++++++++ src/components/icons/index.ts | 4 +++ src/generated/echoes.woff2 | Bin 4852 -> 5604 bytes 6 files changed, 132 insertions(+) create mode 100644 src/components/icons/IconSparkleInShield.tsx create mode 100644 src/components/icons/IconSparkleInShieldDisabled.tsx create mode 100644 src/components/icons/IconSparkleInShieldError.tsx create mode 100644 src/components/icons/IconSparkleInShieldSuccess.tsx diff --git a/src/components/icons/IconSparkleInShield.tsx b/src/components/icons/IconSparkleInShield.tsx new file mode 100644 index 00000000..15f9e165 --- /dev/null +++ b/src/components/icons/IconSparkleInShield.tsx @@ -0,0 +1,32 @@ +/* + * Echoes React + * Copyright (C) 2023-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import { forwardRef } from 'react'; +import { IconCustomWrapper, IconProps } from './IconWrapper'; + +export const IconSparkleInShield = forwardRef((props, ref) => { + // This is an icon from the "Echoes" custom font + return ( + + , + + ); +}); +IconSparkleInShield.displayName = 'IconSparkleInShield'; diff --git a/src/components/icons/IconSparkleInShieldDisabled.tsx b/src/components/icons/IconSparkleInShieldDisabled.tsx new file mode 100644 index 00000000..73fc15e7 --- /dev/null +++ b/src/components/icons/IconSparkleInShieldDisabled.tsx @@ -0,0 +1,32 @@ +/* + * Echoes React + * Copyright (C) 2023-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import { forwardRef } from 'react'; +import { IconCustomWrapper, IconProps } from './IconWrapper'; + +export const IconSparkleInShieldDisabled = forwardRef((props, ref) => { + // This is an icon from the "Echoes" custom font + return ( + + / + + ); +}); +IconSparkleInShieldDisabled.displayName = 'IconSparkleInShieldDisabled'; diff --git a/src/components/icons/IconSparkleInShieldError.tsx b/src/components/icons/IconSparkleInShieldError.tsx new file mode 100644 index 00000000..5ae4a442 --- /dev/null +++ b/src/components/icons/IconSparkleInShieldError.tsx @@ -0,0 +1,32 @@ +/* + * Echoes React + * Copyright (C) 2023-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import { forwardRef } from 'react'; +import { IconCustomWrapper, IconProps } from './IconWrapper'; + +export const IconSparkleInShieldError = forwardRef((props, ref) => { + // This is an icon from the "Echoes" custom font + return ( + + - + + ); +}); +IconSparkleInShieldError.displayName = 'IconSparkleInShieldError'; diff --git a/src/components/icons/IconSparkleInShieldSuccess.tsx b/src/components/icons/IconSparkleInShieldSuccess.tsx new file mode 100644 index 00000000..2572a87e --- /dev/null +++ b/src/components/icons/IconSparkleInShieldSuccess.tsx @@ -0,0 +1,32 @@ +/* + * Echoes React + * Copyright (C) 2023-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import { forwardRef } from 'react'; +import { IconCustomWrapper, IconProps } from './IconWrapper'; + +export const IconSparkleInShieldSuccess = forwardRef((props, ref) => { + // This is an icon from the "Echoes" custom font + return ( + + . + + ); +}); +IconSparkleInShieldSuccess.displayName = 'IconSparkleInShieldSuccess'; diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts index 1e157b78..cd8b2bd3 100644 --- a/src/components/icons/index.ts +++ b/src/components/icons/index.ts @@ -80,6 +80,10 @@ export { IconSearch } from './IconSearch'; export { IconSecurityFinding } from './IconSecurityFinding'; export { IconSlideshow } from './IconSlideshow'; export { IconSparkle } from './IconSparkle'; +export { IconSparkleInShield } from './IconSparkleInShield'; +export { IconSparkleInShieldDisabled } from './IconSparkleInShieldDisabled'; +export { IconSparkleInShieldError } from './IconSparkleInShieldError'; +export { IconSparkleInShieldSuccess } from './IconSparkleInShieldSuccess'; export { IconStar } from './IconStar'; export { IconStatusConfirmed } from './IconStatusConfirmed'; export { IconStatusOpen } from './IconStatusOpen'; diff --git a/src/generated/echoes.woff2 b/src/generated/echoes.woff2 index a368ea9c861be6aba7ab342d1b1ccba4d4e530a5..78d700e3f797897bca7732f03747f122539a2929 100644 GIT binary patch literal 5604 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 ao_q$`^It=mOQ-qT8F8HWq8is|ZwCNc>oWHM