* chore(grafana-ui): begin migration to storybook7
* refactor(storybook): begin cleanup of storybook and addon configs
* chore(storybook): add storybook/blocks to keep yarn berry happy
* chore(storybook): rename intro story for storybook 7
* chore(stories): rename internal stories to support SB7 story name mapper
* chore(betterer): update glob to support internal story renaming
* chore(stories): silence TS errors for subcomponents in SB7
* fix(clickoutsidewrapper): window | document can be undefined not null
* chore(storybook): remove patch for 6.5.16
* revert(storybook): put back story globs
* docs(storybook): replace removed <Props /> with <ArgsTypes /> in mdx files
* docs(storybook): use ArgTypes instead of ArgsTable
* chore(storybook): use correct ArgTypes import name in mdx files
* chore(storybook): patch blocks to expose Preview component for docs
* chore(storybook): rename deprecated ComponentStory and ComponentMeta for v7
* feat(storybook): add STORY env var to customise which stories storybook should load
* chore(storybook): bump to 7.0.4
* fix(storybook): set esbuild minify target to fix erroring docs in production builds
* fix(toolbarbuttonrow): fix import path to prevent error in storybook doc
* docs(storybook): fix up some more stories
* chore(storybook): more config updates to match storybook documentation
* chore(storybook): bump to 7.0.5
* Apply suggestions from code review
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* chore(storybook): fix broken merge causing types issues
* chore(storybook): mimic broken alphabetical storySort and docs overview ordering
* docs(storybook): fix button docs adding p tags due to mdx2
* chore(storybook): bump to 7.0.10
* chore(storybook): apply patch on yarn install
* chore(text): update stories for storybook 7
* fix(storybook): make sure globs don't include internal stories in production
---------
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* fix(packages): remove double trailing slash from npmrc credentials
* chore(packages): add new line to storybook config to trigger an npm canary release
* docs(pluginextensions): initial commit detailing how to add menu items to grafana
* docs(pluginextensions): initial commit detailing how to do cross plugin linking
* Update cross-plugin-linking.md
* Update extend-the-grafana-ui-with-links-and-commands.md
* style(pluginextensions): prettier fix for extend the grafana ui with links and commands
* Update docs/sources/developers/plugins/extend-the-grafana-ui-with-links-and-commands.md
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Update docs/sources/developers/plugins/cross-plugin-linking.md
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* docs(pluginextensions): add info for placements and link to metadata
* docs(plugin-extensions): update metadata for new docs pages
* docs(plugin-extensions): pr feedback
* Update docs/sources/developers/plugins/cross-plugin-linking.md
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* docs(plugin-extensions): remove all mention of commands
* chore(plugin-extensions): rename extension doc to remove reference to commands
* docs(plugin-extensions): replace usage of placement with extension point
* docs(plugin-extensions): lowercase ID
---------
Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* feat(pluginextensions): move panel menu links into an extensions submenu
* refactor(pluginextensions): move extensions submenu above more... submenu
* test(panelmenu): fix failing tests after moving extensions out of more
* fix: fix rebase issues
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* feat(plugins): introduce dashboard panel menu placement for adding menu items
* test: add test for getPanelMenu()
* added an unique identifier for each extension.
* added context to getPluginExtensions.
* wip
* Wip
* wiwip
* Wip
* feat: WWWIIIIPPPP 🧨
* Wip
* Renamed some of the types to align a bit better.
* added limit to how many extensions a plugin can register per placement.
* decreased number of items to 2
* will trim the lenght of titles to max 25 chars.
* wrapping configure function with error handling.
* added error handling for all scenarios.
* moved extension menu items to the bottom of the more sub menu.
* added tests for configuring the title.
* minor refactorings.
* changed so you need to specify the full path in package.json.
* wip
* removed unused type.
* big refactor to make things simpler and to centralize all configure error/validation handling.
* added missing import.
* fixed failing tests.
* fixed tests.
* revert(extensions): remove static extensions config in favour of registering via AppPlugin APIs
* removed the compose that didn't work for some reason.
* added tests just to verify that validation and error handling is tied together in configuration function.
* adding some more values to the context.
* draft validation.
* added missing tests for getPanelMenu.
* added more tests.
* refactor(extensions): move logic for validating extension link config to function
* Fixed ts errors.
* Update packages/grafana-data/src/types/app.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update packages/grafana-runtime/src/services/pluginExtensions/extensions.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* refactor(extensions): rename limiter -> pluginPlacementCount
* refactor(getpanelmenu): remove redundant continue statement
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* feat(debugpanel): schematizing debug panel plugin
* delete old types and update imports to new generated schema
* update to experimental
* derived counters, fix options key name
* num to int
* chore(debugpanel): update ts imports post type rename
* chore(kindsys): refresh report.json
* migrate UpdateCounters back to runtime
* merge with main
---------
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: sam boyer <sdboyer@grafana.com>
* move packed packages to npm-artifacts dir
* remove unnecessary any to trigger canary build
* update canary script to create dir only if it does not exist
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* chore(d3-color): resolve all copies to 3.1.0 to fix vulnerability
* chore(yarn): fix resolution version
* chore(jest): compile d3-color from esm to cjs
* chore(d3): bump d3 to latest, set jest config to transpile es modules
* chore: bump visx packages to resolve d3-color to latest
* chore(jest): add missing es modules to config
* chore(storybook): prevent storybook config failure due to nested esm imports
* chore(storybook): use a direct path to avoid es modules breaking config build
* build(sass): use esbuild to generate sass theme vars for esm deps
* chore: clean up swc dependencies
* revert: remove debug console.log breaking tests
* build(webpack): replace babel-loader with esbuild-loader
* build(webpack): add esbuild minifier to production builds
* Wip
* Removed ngInject and replaced with manual inject params
* chore: bump esbuild to 0.15.13
* Fixed angular issues
* build(frontend): update esbuild to 0.16.16
* chore(webpack): support browserslist for esbuild
* build(esbuild): unify versions of esbuild to 0.16.17 and esbuild-loader to 2.21.0
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* feat(plugins-catalog): only allow admins to access plugins catalog routes
* add backend check
* fix(plugins-catalog): update route role access to include server admins
Co-authored-by: Will Browne <will.browne@grafana.com>
* fix(toolkit): ignore node_modules and dist directories when watching for changes to plugin
* fix(toolkit): move watchOptions.ignored config to pluginDev watch call
* chore: remove unused webpack loaders from core and toolkit
* chore: refresh yarn.lock file
* chore(yarn): refresh lock file for loader-utils update to 2.0.3
* chore: force ngtemplate-loader to use loader-utils@2.0.3
* chore(e2e): bump ts-loader@8.4.0 for loader-utils@2.0.3
* chore(yarn): remove unused packageExtensions
* chore(storybook): force unused webpack deps to v5. force plugins and loaders for loader-utils@2.0.3
* chore(storybook): update config for type changes from webpack v4 to v5
* chore(grafana-ui): export prop types for queryfield, modal and field components
* docs(migration-guide): add notes for react peerdependencies and additional type exposure
* Update docs/sources/developers/plugins/migration-guide.md
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* feat(sass): introduce font-file-path var to define where to load fonts from
* feat(storybook): introduce storybook sass theme styles to set font file paths
* chore(sass): change imports so treated as sass rather than css
* feat(storybook): filter assets so builds dont contain thousands of files
* chore(grafana-ui): don't bundle emotionPerfTest
* chore(grafana-ui): fix circular dependencies that cause esm chunks to not match up
* chore(grafana-ui): prevent bundling all css properties in package types
* fix(toolkit): package without dist folder so config file paths are correct
* chore(packages): make sure to bundle readme, changelog and apache2 license
* refactor(packages): recursively copy src when prepacking toolkit
* chore(toolkit): lock down babel dependencies. use grafana-eslint-config@5 for TS4.8 support
* refactor(breaking-changes): make sure to pack and zip tarballed packages before artifact upload
* feat(check-breaking-changes): support extracting npm package tarballs before comparing packages
* chore(breaking-changes): fix typo preventing upload of pr_built_packages.zip
* Revert "Chore: Bump terser to fix security vulnerability (#53052)"
This reverts commit 7ae74d2a18.
* feat: use tsc and rollup directly with esbuild and publishConfig, files props
* refactor(grafana-data): fix isolatedModules re-export type error
* refactor(grafana-data): import paths from src not package name
* refactor(rollup): fix dts output.file
* chore(grafana-schema): delete dashboard_experimental.gen.ts - cannot work with isolatedModules
* refactor(grafana-e2e-selectors): fix export types isolatedModules error
* refactor(grafana-runtime): fix isolatedModules re-export type error
* refactor(grafana-ui): fix isolatedModules re-export type error
* feat(grafana-ui): use named imports for treeshaking
* refactor(grafana-ui): use named imports for treeshaking
* feat: react and react-dom as peerDeps for packages
* feat(grafana-ui): emotion packages as peerDeps
* feat(grafana-e2e): use tsc, rollup, esbuild for bundling
* chore(packages): clean up redundant dependencies
* chore(toolkit): deprecate unused package:build task
* chore(schema): put back dashboard_experimental and exclude to prevent isolatedModules error
* docs(packages): update readme
* chore(storybook): disable isolatedModules for builds
* chore: relax peerDeps for emotion and react
* revert(grafana-ui): put @emotion dependencies back
* refactor: replace relative package imports with package name
* build(packages): set emitDeclaration false for typecheck scripts to work
* test(publicdashboarddatasource): move test next to implementation. try to appease the betterer gods
* chore(storybook): override ts-node config for storybook compilation
* refactor(grafana-data): use ternary so babel doesnt complain about expecting flow types
* chore(toolkit): prefer files and publishConfig package.json props over copying
* build(npm): remove --contents dist arg from publishing commands
* chore(packages): introduce sideEffects prop to package.json to hint package can be treeshaken
* chore(packages): remove redundant index.js files
* feat(packages): set publishConfig.access to public
* feat(packages): use yarn berry and npm for packaging and publishing
* refactor(packages): simplify rollup configs
* chore(schema): add comment explaining need to exclude dashboard_experimental
* revert(toolkit): put back clean to prevent cli failures
* ci(packages): run packages:pack before a canary publish
* chore(gitignore): add npm-artifacts directory to ignore list
* test(publicdashboarddatasource): fix module mocking
* chore(packages): delete package.tgz when running clean
* chore(grafana-data): move dependencies from devDeps to prevent build resolution errors
* fix(grafana-ui): prevent module resolution failure where component-indexof appears as indexof
* chore(grafana-ui): update comment explaining need for alias plugin
* refactor(selectoptiontest): move helper function out of grafana/ui so testing-lib isn't in bundle
* test(selectoptionintest): update import location of helper function
* test(amroutes): put back missing selectOptionInTest helper
* test(selectoptionintest): clean up remaining file imports / exports
* test(queryeditor): fix failing import
* refactor(grafana-ui): reuse selectOptionInTest in SelectBase test
* chore(typescript): remove sanitize_url.d.ts in favour of npm package types
* chore(toolkit): bump all webpack related deps inline with grafana core
* refactor(toolkit): prefer webpack types and use from imports for bundling
* feat(toolkit): bundle plugins using webpack 5 and babel
* chore(toolkit): but all eslint deps inline with grafana core
* refactor(toolkit): rewrite linting step to use new eslint node api
* chore(toolkit): bump jest dependencies inline with grafana core
* refactor(toolkit): update jest config for jest 27
* fix(toolkit): resolve toolkit if using yarn berry
* docs(toolkit): update instructions for developing with yarn berry
* chore(toolkit): remove yarnlink code as won't work with yarn berry
* chore(toolkit): bump remaining dependencies
* chore(toolkit): remove unused core.start task
* feat(toolkit): use browserlist when building plugins
* chore(toolkit): add browserslist dependency
* refactor(toolkit): resolve style loaders, update postcss options for webpack5
* chore(toolkit): put back grafana/data and grafana/ui
* docs(toolkit): improve instructions for developing toolkit locally
* chore(toolkit): clean up webpack debug and warnings
* chore(input-datasource): remove pnpwebpack plugin and update browserslist to solve failing build
* chore(renovatebot): remove toolkit package.json from ignorePaths
* revert(renovate): put back toolkit package.json in ignorePaths
* feat(toolkit): introduce babel plugins
* refactor(toolkit): remove runtime automatic from preset-react for earlier versions of react
* refactor(toolkit): add missing fallbacks to webpack config
* fix(toolkit): remove spaces from copy webpack glob so files are copied
* refactor(toolkit): fix up babel typescript support and copy browserlist on build
* chore(yarn): refresh lock file
* revert(toolkit): remove browsers list so plugins compile to ES5
* revert(toolkit): remove copying .browserslistrc
* build(webpack): move CopyUniconsPlugin into own file
* chore(webpack): delete unused blobUrl and compile loaders
* build(webpack): prefer contenthash over fullhash for longer caching
* build(webpack): set optimization.moduleIds named only in dev
* build(webpack): introduce HTMLWebpackCSSChunks so templates can access theme css by name
* feat: inject css files with contenthash in html templates
* revert(error-template): remove ContentDeliveryURL from CSS href
* refactor(index-template): update grafanaBootData.themePaths
* chore(webpack): add typescript annotations for CopyUniconsPlugin
* chore(eslint): remove prettier-plugin
* chore(eslint): test changes by using grafana/eslint 3.0.0-alpha
* chore(prettier): add js,ts,tsx when checking / writing
* chore(prettier): dont check js files
* chore(linting): align prettier and eslint ignore files
* style: run prettier:write on FE codebase
* chore(eslint): use grafana/eslint-config@3.0.0