* InfoTooltip: refactor component to be accessible
* new: create ghostMode prop to allow turning on/off button styles
* update infoToolTip component to use ghostMode prop
* update story to show ghostMode state
* fix condition to work properly
* nit fix
* revert changes to former infoTooltip state
* InfoTooltip: use iconButton instead to achieve keyboard a11y
* fix minor type nit
* BarGauge: fix vertical view flip issue
* fix bar misalignment in vertical and horizontal orientations
* add test to prevent bar misalignment in the future
* Chore: move close popover utility to a standalone file
* remove duplicate function in colorpicker
* fixed incorrect import
* make method slightly flexible by removing type parameter
* add useToolTipTrigger react aria and state to grafana-ui
* show tooltip on focus and close tooltip when esc key is pressed
* remove react-aria/tooltip package
* fix failing test
* SelectOrgPage: migrate API function calls to Redux
* used a much better approach
* writes test for getUserOrganizations action
* writes test for userOrganizationsLoaded reducer
* change userOrg to plural
* WIP: move user/using api call to redux
* WIP: use redux instead in NewOrgPage component
* moved all the createOrg logic into redux
* type the redux state and action creators automatically
* adds test for setUserOrganization thunk
* update selectOrgPage to use Redux instead
* removes unnecessary dispatch call
* ColorPicker: implement new ui
* makes color swatches tabbable
* implements next and previous arrow key navigation
* make colorPickerPopover to close when esc key is pressed
* colorValueEditor: fix colorPopover closing immediately when clicked
* add blue focus ring to both colorSwatch and picker tabs
* refactor color label divs to be more readable
* more cleanup
* refactor color swatches to use buttons instead
* removes left and right arrow navigation to maintain consistency
* makes colors selectable using the keyboard
* use native button instead for mouse and keyboard click hadling
* when a color is clicked, row backgound should change
* add left padding to last row in colorPopover
* when a color is hovered, row backgound should change
* test for colorPickerPopover component
* small typo fix
* ariaLabel over label
* make row background to not change when a color is selected
* style refactor to be standalone
* use HTMLAttributes instead
* add focus trapping to colorPickerPopover
* make popover exit using esc key
* fix colorPickerPopover to be tabbable
* fix focus escape in colorPickerPopover
* revert to focus trap fix
* TimePickerSettings: make label appropriately link to input when clicked
* DashboardSettings: link labels to input
* use loweercase instead for IDs
* fixes failing e2e test
* adds better aria-label for run and interval buttons
* enable refreshPicker to be keyboard navigable
* adds support for closing menu using esc key
* Fix: weird behaviour when navigating menu items
* adds focus trapping to refresh picker
* WIP: sanitize time interval values for screen readers to pronounce correctly
* WIP: improve sanitizeLabel function to work for all use cases
* Chore: move label sanitization to refreshPicker component instead
* Chore: add fallback label when ariaLabel prop is not set
* Chore: fix some type errors
* code cleanup
* update tests
* rename function to be more descriptive
* remove unnecessary type casting
* WIP: use cleaner solution
* WIP: use parseDuration util instead
* use more descriptive aria label
* fix: modify parseDuration util to output correct interval unit format
* fix: move interval unit format logic to refreshPicker
* Chore: add back old refreshPicker e2e selectors for backward compatibility
* Fix: improve refresh picker to voice out selected interval option
* Fix: use appropriate aria roles and states to aid screen reader a11y
* Fix: support dropdown expansion using down arrow key
* Chore: use better type construct
* Fix: add support for tab to close menu
* add more context to the deprecation warning message
* Chore: use formatDuration util instead to format interval labels
* Chore: small syntax fix
* chore: syntax fix
* syntax fix
* Chore: add back lockfile
* docs: update frontend style guide to highlight new function paradigm
* docs: add section for default exports
* chore: some typo/syntax/grammar fixes
* chore: change new additions from rule to recommendation
* small typo fix
* Text Panel: fixes unnecessary scroll in tables
* uses more robust solution that covers every edge case
* chore: uses variables instead and sets first child margins to zero
* override margin for only h1 and figure elements
* remove override styles for h1,table markdown contents
* WIP: adds react-aria package to package.json
* adds focus trapping to the calendar widget
* makes focus to move in and out of the widget
* Chore: remove unused component
* WIP: adds keyboard nav to calendar
* adds close button to calendar on wide screen
* Chore: update test to reflect new changes
* use more descriptive aria label
* prune duplicate absolute timeRange aria label
* TimePicker: Use aria overlays to enable closing with esc (#40045)
* Move timepicker to function component
* update overlayprops
* Remove unused import
* Fix for picker closing before setting the range when selecting quick ranges
* use more descriptive aria label
* update test to correspond with new label
* chore: some nit fix
* chore: used specific version for react-aria/overlay package
* Chore: refactor timePickerCalendar component
* chore: nit fixes
* chore: nit fixes
* reverts back to main and re-add deps with yarn 2
* chore: removes react-aria deps from root
* Chore: replace default export
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* PlaylistPage: removes search due to no wildcard support
* PlaylistPage: adds back search input and wildcard search support
* makes banner to appear only when playlist does not exist
* Chore: small refactor
* Chore: some code refactoring to make it readable
* fixes focus leaving input when query is cleared
* adds styling to the emptyQueryList banner
* extracts emptyQueryListBanner component to a separate file
* adds debounce to search
* use new theme for styling
* Chore: some nit fix
* fixes empty list banner showing for a second before the full list is loaded
* Fix: removes search when playlist is empty
Co-authored-by: Ash <ashharrison90@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* WIP: add delete functionality to playlist
* fixes deleted item to be removed instantly without manual refresh
* update confirmModal to reference playlist name
* refactor confirmModal message to be clear enough
* WIP: some unit tests for the playlistPage
* added more tests and did some cleanup
* some code refactoring
* adds ability for user roles to control playlist delete
* some abstraction to cleanup code
* modified alert message for delete button to correspond with action
* tried a better approach to modify the alert message
* fixes playlist lookup on each render
* update handlers to not use anonymous function
* exposed getBackendSrv().get api to fetch all playlist
* used better naming convention
* removes unecessary async/await construct
* some code refactoring
* used the correct param structure
* Fixes wrong annotation when opening dashboard with URL encoded variable
Co-authored-by: Ashley Harrison, Hugo Haggmark, and Tobias Skarhed.
* added a more descriptive comment
* Docs: added an accessibility section in the pull request guide
* added more points to the accessibility guideline
* fixes some grammar nits
* changed aria to capital case since its an acronym
* added a reference to the Grafana theme
* improved the wordings for better context
* Grafana-ui: disables storybook controls that are irrelevant
* excluded unused control in Select story
* made timeRange control visisble in GraphNG story
* fixes storybook crash
* CodeEditor: refactors story from knobs to controls
* refactor codeEditor to work when showLineNumbers is set to false
* fixes non functional controls in story
* fixes arg 'value' formatting
* revert monaco options config
* withStoryContainer: removes addon-knobs since we've migrated to controls
* refactored withStoryContainer utility so that users can be able to resize story
* Layout: added ability to resize story (#35824)
* Layout: added ability to resize story
* removes the knobs-disable config since its already been applied globally
* FieldArray: refactors story to use controls and ability to resize story (#35820)
* FieldArray: refactors story to use controls and ability to resize story
* added much better argTypes changed story name to capital case
* updates the FieldArray.mdx with the new usage examples
* fixes incorrect naming of the args
* Add Panel: fixes No gap between rows in safari
* removes extra margin from bottom and far right
* fixes frontend test
* make add panel actions accessible and rewrite test using RTL
* Grafana-UI: Removes knobs from storybook addons pane
* removed other knobs settings since we are disabling it
* remove the knobs disable config in individual stories
* VizLegendTable: fixes column spacing to span to the right side
* reverted text alignment to right
* implemented a more readable solution for tabble legend spacing
* Table: datalink to have text underline and support for image datalink
* fixes image oversize issue when using both image and link in a column
* fixes small nit
* extracted the getLink logic to be a standalone utility function
* Updates table tests to suit current structure
* fixes small syntax nit
* fixes bad typing issue
* annotes the getCellLinks logic as an internal utility function
* removes blank whitespace
* Tests: updates test cases to use getByRole
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* TextArea: updates story from knobs to control
* removed the cols control since it has no effect on component
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* Tables: updates story from knobs to control
* removes the Descending and sortByDisplayName controls since they have no effect on component
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* RangeSlider: updates story from knobs to control
* changed the orientation control to type Select
* removes tooltipAlwaysVisible control since it crashes the story
* updates component to use the new theme model
* updates ssome old style to use new theme
* uses correct theme color property
* updates new theme style with correct naming
* Card: migrates styles from sass to emotion
* removed LayoutSelector component since it's not used in the codebase
* updates card styles with new color name
* DashboardPanel: migrates styling from sass to emotion
* fixes frontend test
* removed the theme since it doesn't have any use case in the styles
* updates frontend snapshot test
* DashboardPage: refactored styles from sass to emotion
* refactored dashboardPage component to be alot easier to read and understand
* more refactoring...
* more cleaning...
* fixes frontend test
* fixes frontend test- I hope
* fixes frontend test- I hope
* moves dashboard scss styles back to it's standalone file
* VizLegend: updates story from knobs to controls
* refactored story to be small and concise
* reverted stories to be WithValues and WithNoValues
* fixes the seriesCount control not having effects to the story by using the Effect hook
* ButtonStory: updates story from knobs to controls
* removed type in story
* changed to a much descriptive variable name
* adds type back to the story
* ContextMenu: changed menu item rendering to render prop pattern to enable manual composition of menu items
* fixes affected components
* fixes small nits
* added some changes
* used a more descriptive variable name