Commit Graph
5333 Commits
Author SHA1 Message Date
Paul Marbach 000c00aee9 Sparkline: Improve min/max logic to avoid issues for very narrow deltas (#115030)
* Sparkline: Prevent infinite loop when rendering a sparkline with a single value

* some tests for this case

* refactor out utils, experiment with getting highlightIndex working

* add comments throughout for #112977

* remove unused import

* Update Sparkline.test.tsx

* fix points mode rendering

* Sparkline: Improve min/max logic to avoid issues for very narrow deltas

* spread all config

* defaults deep

* delete unused import

* remove go.work.sum delta

* line break at end of file
2025-12-10 16:54:29 -05:00
Paul Marbach 63bfc1596c Gauge: Updates to the design of the panel edit (#115097)
* Gauge: Updates to the design of the panel edit

* i18n

* remove unused const

* i18n

* fix gdev and migration tests

* reduce bar gauge glow factor
2025-12-10 21:03:44 +00:00
Paul Marbach 1146ac790c Sparkline: Prevent infinite loop when rendering a sparkline with a single value (#114203)
* Sparkline: Prevent infinite loop when rendering a sparkline with a single value

* some tests for this case

* refactor out utils, experiment with getting highlightIndex working

* add comments throughout for #112977

* remove unused import

* Update Sparkline.test.tsx

* fix points mode rendering
2025-12-10 12:37:05 -05:00
Ashley Harrison cc1bba85e4 VizLegend: Always display header for screenreader users (#115003)
always display vizlegend header for screenreader users
2025-12-10 13:44:21 +00:00
Ashley Harrison 27482194e3 InteractiveTable: Improve accessibility and reenable tests (#115002)
* attempt at fixing some stuff

* tidy up

* prettier

* fix suppressions
2025-12-10 13:44:08 +00:00
Torkel Ödegaard ca342afb25 AppChrome: Add proper menu icon for menu, logo icon becomes home (#114713)
* AppChrome: Add proper menu icon for menu, logo icon becomes home

* Update

* Update

* fix merge issue

* Aligning icons

* Simplify styling and fix issues

* fixes

* style fix

* Fixed unit test

* review updates

* update

* Update

* Remove feature highlight

* fix lint

* remove unused parts
2025-12-09 09:59:40 +01:00
7ea009c7f8 Dashboards: Per panel filtering for timeseries (#114499)
* wip per panel group by

* wip groupBy per panel

* wip groupBy per panel

* groupBy per panel action tests

* fix

* fix

* fix

* fix

* CR mods

* switch to dropdown

* adjust apply

* optimise action logic to avoid unnecessary triggers

* canary scenes

* wip

(cherry picked from commit 51a00db93d0805f481a9e48213382468f1eb2986)

* optimise action logic to avoid unnecessary triggers

(cherry picked from commit c4de2dfff8)

* refactor

* refactor

* memoize values/ refactor

* refactor

* refactor components - do not make async call unless queries/groupByOptions change

* canary scenes

* fix test

* Optimise handlers

* Reset options if they are not applied

* refactor subscriptions

* refactor

* scenes bump

* fixes

* properly deactivate header actions on panel edit

* list

* refactor showing menu using css, remove header deactivation code from panel-edit

* cleanup

* cleanup

* cleanup + action redesign

* i18n

* wip

* wip

* wip

* wip

* wip

* tests

* pr mods

* translations

* fix

* fix

* fixes

* translations

* translations

* extra ff check

* CR mods

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2025-12-08 16:18:04 +00:00
Ashley Harrison 5bd73f3264 Icon: Use empty <svg> as fallback to prevent layout shift (#114901)
render an empty `<svg>` instead to better match styles in other components
2025-12-08 11:11:50 +00:00
Ashley Harrison 310662a4d0 QueryEditor: Expose aria-labelledby prop, reenable storybook a11y tests (#114925)
* expose aria-label prop, reenable storybook a11y tests

* extract translations

* expose aria-labelledby instead
2025-12-08 10:27:40 +00:00
Torkel Ödegaard 8bf3ac9710 SelectBase: Use standard portal container (#114844)
* SelectBase: Use standard portal container

* Fixed positioning issue
2025-12-08 10:13:56 +01:00
Torkel Ödegaard c74af430a6 Gauge: Only show spotlight in dark themes (#114524)
* Gauge: Only show spotlight in dark themes

* Update
2025-12-05 08:48:39 +01:00
Galen Kistler 10ad94af38 TableRT: fix bug preventing users from selecting filter operators (#114860)
* fix: bug preventing users from selecting filter operators
2025-12-04 17:02:54 -06:00
Ashley Harrison 83d6eab66a Chore: Upgrade rc- libs (#114788)
* upgrade rc-drawer

* upgrade rc-slider

* update rc-tooltip

* update rc-picker

* update rc-tree

* upgrade rc-cascader

* for some reason this works

* Revert "for some reason this works"

This reverts commit 4f8cbc5a76.

* force react to 18

* add MessageChannel mock

* Revert "add MessageChannel mock"

This reverts commit 93c11d4060.

* Revert "force react to 18"

This reverts commit 6433204d4b.

* Revert "upgrade rc-cascader"

This reverts commit 16c36cd12e.
2025-12-04 16:25:22 +00:00
Ashley Harrison d7d0c104ab React 19: non-breaking type and test changes (#114760)
non-breaking type and test changes needed for react 19
2025-12-04 16:19:25 +00:00
Torkel Ödegaard 3abe3fa730 Explore: Remove use of AppChrome navbar (#114680)
* Explore: Remove use of AppChrome navbar

* fix lint

* Active state
2025-12-02 12:29:30 +00:00
Marc M. e8f1eb1ee8 Sidebar: Fix resizing (#114597) 2025-12-02 11:51:26 +01:00
Ashley Harrison 7f1ac6188a PanelChrome: Wrapping div needs height: 100% as well (#114655)
wrapping div needs height: 100% as well
2025-12-01 17:39:15 +00:00
Torkel Ödegaard 0275939762 Sidebar: Persist state to local storage (#114627)
* fix merge issues

* unsaved file
2025-12-01 12:54:18 +01:00
Torkel Ödegaard b5eac7baad Sidebar: Clickout side to close pane (#114523)
* Sidebar: Clickout side to close pane

* fixes

* fixing tests

* fix

* ignore clicks in portals

* fix e2e

* fix test

* Fix click away issues

* add missing file
2025-11-28 15:07:15 +01:00
Ashley Harrison 11a27ab870 Chore: Convert more class components to functional (#114311)
* refactor ColorPicker to functional components

* don't need memo for these components

* convert CustomHeadersSettings to a functional component

* ignore Legacy form components

* ignore legacy forms in some lint rules

* convert JSONFormatter to a functional component

* convert WrapperWithState to a functional component

* convert StatsPicker to a functional component

* convert PopoverController to a functional component

* convert UnitPicker to a functional component

* fix linting

* fix flaky dashboardcontrolsmenu test
2025-11-28 12:00:31 +00:00
Ashley Harrison 49175bb2cb Chore: Run some React 19 codemods (#114575)
running react 19 codemods
2025-11-28 11:27:48 +00:00
Jesse David Peterson 399370bc2c TimeRange: Avoid x-axis pan jump caused by data loading latency (#114496)
* fix(time-range): avoid x-axis pan jump caused by data loading latency

* refactor(time-range): use a more semantically meaningful names
2025-11-26 20:41:02 +00:00
Jesse David Peterson b08e7bc373 TimePicker: Show new shortcut for zoom out when experimental flag toggled on (#114506)
* fix(time-picker): show new shortcut for zoom out when flag toggled on

* chore(i18n): extract translations
2025-11-26 20:32:37 +00:00
Torkel Ödegaard f0a394e67b Dashboards: Use new sidebar in dynamic dashboards (#114245)
* Dynamic dashboards sidebar wip

* Progress

* Outline in view mode cannot change name

* Only one pane at a time

* Adding starbutton and custom precence

* undo / redo working

* Progress

* Update

* Progress

* Update

* Public badge, provisining badge

* playlist stop

* Update

* some initial unit tests

* Fix export tooltip

* Close pane when leaving edit mode if pane is an element

* Update

* e2e fixes

* fixing e2e

* Fix lint suppressions

* e2e fixes

* fixing more e2e

* fixing e2e

* fix e2e

* e2e fixes

* Fixinfg e2e

* fixing e2e
2025-11-26 14:30:18 +01:00
Victor MarinandDominik Prokop 336aa06966 Dashboards: Add non-applicable filter pills per panel (#112507)
* wip non-applicable pills

* refactor

* fix

* tests

* locales

* canary version

* mods

* fix query fetching

* fix

* fix

* Add VizPanelSubHeader component

* lint

* extra check

* refactor

* wip

* refactor wipp

* refactor

* refactor

* use canary scenes

* prettier

* canary scenes

* interpolate ds uid for ds var case

* refactor

* refactor

* memoize values + tests + rename component

* refactor

* refactor

* refactor

* refactor

* canary scenes + fixes

* Fix infinite loop casused by unstable useEffect dependency

* lint

* helper functions

* bump scenes

* reduce applicability calls to only when filters or groupBy keys change, not any var state change

* refactor

* fix

* fix

* fixes

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2025-11-21 18:03:27 +02:00
Victor Marin 42babc7ce7 Select: Fix width bug when maxVisibleValues is set (#113913)
* fix

* fix
2025-11-21 12:14:50 +02:00
Paul Marbach 6f9c867660 Timeseries: More nuanced editing of linear threshold to avoid crashes (#112301)
* Timeseries: More nuanced editing of linear threshold to avoid crashes

* remove useEffect import

* remove unused import

* update error and invalid field handling to call out error case
2025-11-20 18:49:46 +00:00
Torkel Ödegaard 4637da8fcc Sidebar: A new reusable component for side toolbars and panes (#114141)
* initial wip

* fixes

* Switching to context

* New button design

* Overflow ellipsis

* Changes to button

* initial resize work

* resize progress

* Update

* no reszier in tabs mode

* fixing text truncte, and tabs right position

* Minor story tweaks

* added unit test

* added unit test

* Minor change

* minor story fix

* Fixes
2025-11-20 12:22:47 +01:00
Paul Marbach 946e6d9641 Table: Improve JSON rendering in inspect for JSON strings (#114189) 2025-11-19 19:38:06 -05:00
Ashley Harrison 341a32266d Toggletip: Ensure consistent positioning in all scenarios (#114085)
* portal toggletip content

* add test to check focus trapping

* kick CI
2025-11-19 12:53:21 +00:00
Ashley Harrison 3f008acde2 PanelChrome: Wrap in a div to allow for hover headers (#114037)
wrap PanelChrome in a div that's outside of `overflow: hidden;` to allow for hover headers
2025-11-19 12:52:09 +00:00
Ashley Harrison cf24e0bbd8 ToolbarButton: Require tooltip or aria-label if no children are present (#114097)
* split into separate stories

* make tooltip/aria-label required if no children present

* kick CI

* fix unit tests

* cleaner

* clean up story
2025-11-19 12:51:29 +00:00
Torkel Ödegaard 11901cd242 PanelChrome: Hover header fixes (#113908)
* PanelChrome: Hover header fixes

* More fixes

* fixes

* Fix test

* restore hoverHeaderOffset feature

* Fixes
2025-11-18 17:05:30 +01:00
Paul Marbach d6e81c6334 Table: Clean up filter popover layout and improve filter selection UX (#114052)
* Table: Clean up filter popover layout

* Table: Improve filter selection ux text

* remove unused ref

* update snapshot test

* whoops, we don't want to change the global input suffix padding
2025-11-18 06:57:08 +01:00
renovate-sh-app[bot] f6df949bc3 chore(deps): update node.js to v24 (#114011)
| datasource   | package     | from     | to       |
| ------------ | ----------- | -------- | -------- |
| node-version | node        | v22.21.1 | v24.11.1 |
| npm          | @types/node | 24.9.2   | 24.10.1  |
| npm          | @types/node | 22.17.0  | 24.10.1  |

Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
Co-authored-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
2025-11-17 13:46:26 +00:00
renovate-sh-app[bot] e6b12f865f fix(deps): update dependency ol to v10.7.0 (#114009)
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | ol      | 10.6.1 | 10.7.0 |

Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
Co-authored-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
2025-11-17 13:43:18 +00:00
Ashley Harrison fe0486915e Card: Adjust grid styles conditionally based on the presence of description (#113848)
* adjust card grid styles conditionally based on presence of description

* handle everything as part of `gridTemplate`
2025-11-14 15:57:31 +00:00
Ashley Harrison 67444cee78 Storybook: Set role="menuitem" on storybook menu links, fix positioning to not stretch menu (#113705)
* set role="menuitem" on storybook menu links, fix positioning to not stretch menu

* fix description/icon contrast for active items
2025-11-14 10:20:18 +00:00
Ashley Harrison bfee2ecc65 Chore: Rename render method on classes which aren't actually react class components (#113808)
* rename canvas class method so it's not falsely marked as a react class component

* also rename scene method

* rename render method in OptionsPaneCategoryDescriptor and OptionsPaneItemDescriptor

* rename render to setup in test scenario class
2025-11-14 10:20:01 +00:00
Galen KistlerandPaul Marbach 23c192f330 TableCellInspector: fix runtime error thrown when inspecting non-string table cells (#113865)
* fix: old table throwing error on inspect of dates and empty cells

---------

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-11-13 19:48:40 +00:00
Jesse David Peterson 108693eb31 TimeSeries: X-axis (time range) click-and-drag panning in panel (#112982)
* feat(time-range): click and drag interaction to pan x-axis over time

* feat(timeseries): add x-axis interaction area uPlot plugin

* test(timeseries): validate x-axis pan with Playwright browser test

* refactor(uplot-config): simplify state management for x-axis panning

* refactor(uplot-config): plot state union type

* fix(time-range-pan): simplify calcs, mouse handler cleanup function
2025-11-13 06:33:09 -04:00
Torkel Ödegaard 1f558b1e06 PanelChrome: Feature toggle increased panel header height and padding (#112613)
* PanelChrome: Feature toggle for increase header and content panel padding

* Update

* Update to panel menu

* Fix lint

* Revert theme feature ttoggle changes

Signed-off-by: Torkel Ödegaard <torkel@grafana.com>

* Update

* fix storybook

* Update

---------

Signed-off-by: Torkel Ödegaard <torkel@grafana.com>
2025-11-12 16:40:46 +01:00
Torkel Ödegaard 0392bf5724 ExternalPlugins: Restore backward compatability for util function (#113735)
* ExternalPlugins: Restore backward compatability for util function

* tweak

* fix withValue => withTitle
2025-11-12 16:04:35 +01:00
Chris Bedwell 6401901e5d GrafanaUI: Fix iconPlacement prop not being respected in LinkButton (#113708)
fix: iconPlacement now respected in LinkButton. Added tests.
2025-11-12 08:53:04 +00:00
Laura Fernández 4ae1774e1f Chore: remove gf-form in grafana-ui components (#113659) 2025-11-11 15:58:16 +01:00
Ashley Harrison ee6c8a6e20 Storybook: Ensure panels have unique titles (#113703)
ensure panels have unique titles
2025-11-11 13:47:31 +00:00
Luminessa StarlightandHarshada Gawas b6bd31a4aa Slider: Add support for decimal values (#113473)
* UI: Fix Slider component to handle decimal inputs correctly

* format code and run eslint fix

* fix Slider to have:
- "single" source of truth for state
- state synchronization for controlled values
- clamp values to step
- disallow decimal values in input when min+step are integers
- tests for the new functionality
- design decision included in docs
- behavior notes in docs

* allow non-numeric characters all the time
always parse decimal numbers, stripping non-numerics
integer coercion is implicitly handled in clamping

---------

Co-authored-by: Harshada Gawas <harshadagawas95@gmail.com>
2025-11-10 14:41:39 -05:00
Jesse David Peterson 243f1fc64b Timeseries: Change mouse cursors to indicate active x-axis and y-axis zoom interactions (#113465)
* feat(panel-zoom): change mouse cursor when zooming x-axis or y-axis

* test(panel-zoom): browser test mouse cursor change interactions

* fix(mouse-cursor-styles): no need for important
2025-11-10 11:26:00 -04:00
Ashley Harrison 51c18b57a2 Chore: some any fixes (#113290)
* fix some anys in select styles

* remove anys from ModalsContext

* improve some types

* improve ArrayDataFrame

* restore behavior

* use unknown for Parser type
2025-11-10 10:57:33 +00:00
Ashley Harrison 834ff1be3c MultiCombobox: Fix a11y and enable storybook a11y tests (#113411)
fix multicombobox a11y and enable storybook a11y tests
2025-11-10 09:47:01 +00:00