From 1e669cbb456d1766cddcc39c9a32623c3fc11222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 11 Apr 2025 09:25:09 +0200 Subject: [PATCH] AppChrome: Sidebar extensions button update (#103791) * AppChrome: Sidebar app icon button update * Update * remove unused files * Update public/app/core/components/AppChrome/ExtensionSidebar/ExtensionToolbarItem.tsx Co-authored-by: Sven Grossmann * update --------- Co-authored-by: Sven Grossmann --- packages/grafana-data/src/types/icon.ts | 1 + .../ExtensionSidebar/ExtensionToolbarItem.tsx | 40 ++++++++++++++----- public/app/core/icons/cached.json | 7 +++- public/img/icons/unicons/ai-sparkle.svg | 4 ++ public/locales/en-US/grafana.json | 3 ++ 5 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 public/img/icons/unicons/ai-sparkle.svg diff --git a/packages/grafana-data/src/types/icon.ts b/packages/grafana-data/src/types/icon.ts index 6c53ddcb48a..d3dea16ff5c 100644 --- a/packages/grafana-data/src/types/icon.ts +++ b/packages/grafana-data/src/types/icon.ts @@ -269,6 +269,7 @@ export const availableIconsIndex = { 'add-user': true, attach: true, 'dollar-alt': true, + 'ai-sparkle': true, }; export type IconName = keyof typeof availableIconsIndex; diff --git a/public/app/core/components/AppChrome/ExtensionSidebar/ExtensionToolbarItem.tsx b/public/app/core/components/AppChrome/ExtensionSidebar/ExtensionToolbarItem.tsx index d7af125d894..be49778db62 100644 --- a/public/app/core/components/AppChrome/ExtensionSidebar/ExtensionToolbarItem.tsx +++ b/public/app/core/components/AppChrome/ExtensionSidebar/ExtensionToolbarItem.tsx @@ -1,13 +1,15 @@ -import { useState } from 'react'; +import { css, cx } from '@emotion/css'; -import { Dropdown, Menu, ToolbarButton } from '@grafana/ui'; +import { GrafanaTheme2 } from '@grafana/data'; +import { Dropdown, Menu, ToolbarButton, useTheme2 } from '@grafana/ui'; +import { t } from 'app/core/internationalization'; import { NavToolbarSeparator } from '../NavToolbar/NavToolbarSeparator'; import { getComponentIdFromComponentMeta, useExtensionSidebarContext } from './ExtensionSidebarProvider'; export function ExtensionToolbarItem() { - const [isMenuOpen, setIsMenuOpen] = useState(false); + const styles = getStyles(useTheme2()); const { availableComponents, dockedComponentId, setDockedComponentId, isOpen, isEnabled } = useExtensionSidebarContext(); @@ -28,9 +30,9 @@ export function ExtensionToolbarItem() { return ( <> { if (isOpen) { @@ -68,15 +70,35 @@ export function ExtensionToolbarItem() { ); return ( <> - + ); } + +function getStyles(theme: GrafanaTheme2) { + return { + button: css({ + width: '28px', + height: '28px', + padding: 0, + justifyContent: 'center', + borderRadius: theme.shape.radius.circle, + margin: theme.spacing(0, 0.25), + }), + buttonActive: css({ + borderRadius: theme.shape.radius.circle, + backgroundColor: theme.colors.primary.transparent, + border: `1px solid ${theme.colors.primary.borderTransparent}`, + color: theme.colors.text.primary, + }), + }; +} diff --git a/public/app/core/icons/cached.json b/public/app/core/icons/cached.json index 28cfb2d352c..fa49afb6bf4 100644 --- a/public/app/core/icons/cached.json +++ b/public/app/core/icons/cached.json @@ -142,6 +142,7 @@ "unicons/hourglass", "unicons/layer-group", "unicons/layers-alt", + "unicons/layers-slash", "unicons/line-alt", "unicons/list-ui-alt", "unicons/message", @@ -173,5 +174,9 @@ "mono/panel-add", "mono/library-panel", "unicons/record-audio", - "solid/bookmark" + "solid/bookmark", + "unicons/ai-sparkle", + "unicons/dollar-alt", + "unicons/window-grid", + "unicons/ban" ] diff --git a/public/img/icons/unicons/ai-sparkle.svg b/public/img/icons/unicons/ai-sparkle.svg new file mode 100644 index 00000000000..8ec596330fc --- /dev/null +++ b/public/img/icons/unicons/ai-sparkle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json index d9037ed2ddd..4c99d311a6b 100644 --- a/public/locales/en-US/grafana.json +++ b/public/locales/en-US/grafana.json @@ -5994,6 +5994,9 @@ "breadcrumbs": { "aria-label": "Breadcrumbs" }, + "extension-sidebar": { + "button-tooltip": "Open AI assistants and sidebar apps" + }, "help": { "aria-label": "Help" },