@perses-dev/explore 0.51.1 → 0.52.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,15 +24,24 @@ const _jsxruntime = require("react/jsx-runtime");
24
24
  const _material = require("@mui/material");
25
25
  const _pluginsystem = require("@perses-dev/plugin-system");
26
26
  const _react = require("react");
27
+ const _ChevronRight = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ChevronRight"));
28
+ const _ChevronLeft = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ChevronLeft"));
29
+ const _browserstorage = require("@perses-dev/app/src/utils/browser-storage");
27
30
  const _ExploreToolbar = require("../ExploreToolbar");
28
31
  const _ExplorerManagerProvider = require("./ExplorerManagerProvider");
32
+ function _interop_require_default(obj) {
33
+ return obj && obj.__esModule ? obj : {
34
+ default: obj
35
+ };
36
+ }
29
37
  function ExploreManager(props) {
30
38
  const { exploreTitleComponent } = props;
31
39
  const { explorer, setExplorer } = (0, _ExplorerManagerProvider.useExplorerManagerContext)();
32
40
  const plugins = (0, _pluginsystem.useListPluginMetadata)([
33
41
  'Explore'
34
42
  ]);
35
- const smallScreen = (0, _material.useMediaQuery)('(max-width: 768px)');
43
+ const isSmallScreen = (0, _material.useMediaQuery)('(max-width: 768px)');
44
+ const [isCollapsed, setIsCollapsed] = (0, _browserstorage.useLocalStorage)('explore-tabs-collapsed', false);
36
45
  const explorerPluginsMap = (0, _react.useMemo)(()=>Object.fromEntries(plugins.data?.map((plugin)=>[
37
46
  `${plugin.module.name}-${plugin.spec.name}`,
38
47
  plugin
@@ -62,33 +71,66 @@ function ExploreManager(props) {
62
71
  px: 2,
63
72
  pb: 2,
64
73
  pt: 1.5,
65
- gap: 3,
74
+ gap: 1,
66
75
  children: [
67
76
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_ExploreToolbar.ExploreToolbar, {
68
77
  exploreTitleComponent: exploreTitleComponent
69
78
  }),
70
79
  /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
71
- direction: smallScreen ? 'column' : 'row',
80
+ direction: isSmallScreen ? 'column' : 'row',
72
81
  gap: 2,
73
82
  sx: {
74
83
  width: '100%'
75
84
  },
76
85
  children: [
77
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tabs, {
78
- orientation: smallScreen ? 'horizontal' : 'vertical',
79
- value: explorer,
80
- onChange: (_, state)=>setExplorer(state),
81
- variant: smallScreen ? 'fullWidth' : 'scrollable',
86
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
82
87
  sx: {
83
- borderRight: smallScreen ? 0 : 1,
84
- borderBottom: smallScreen ? 1 : 0,
88
+ borderRight: isSmallScreen ? 0 : 1,
89
+ borderBottom: isSmallScreen ? 1 : 0,
85
90
  borderColor: 'divider',
86
- minWidth: '100px'
91
+ minWidth: isCollapsed ? 15 : 100
87
92
  },
88
- children: plugins.data?.map((plugin)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tab, {
89
- value: `${plugin.module.name}-${plugin.spec.name}`,
90
- label: plugin.spec.display.name
91
- }, `${plugin.module.name}-${plugin.spec.name}`))
93
+ children: [
94
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
95
+ sx: {
96
+ position: 'relative',
97
+ height: 30,
98
+ display: isSmallScreen ? 'none' : undefined
99
+ },
100
+ "test-id": "qdqwd",
101
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
102
+ title: isCollapsed ? 'Expand explorer tabs' : 'Collapse explorer tabs',
103
+ "aria-label": isCollapsed ? 'Expand explorer tabs' : 'Collapse explorer tabs',
104
+ variant: "text",
105
+ sx: {
106
+ position: 'absolute',
107
+ right: -15,
108
+ zIndex: 1,
109
+ padding: 0.5,
110
+ minWidth: 'auto',
111
+ backgroundColor: (theme)=>theme.palette.background.default
112
+ },
113
+ onClick: ()=>setIsCollapsed(!isCollapsed),
114
+ children: isCollapsed ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChevronRight.default, {}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChevronLeft.default, {})
115
+ })
116
+ }),
117
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tabs, {
118
+ orientation: isSmallScreen ? 'horizontal' : 'vertical',
119
+ value: explorer,
120
+ onChange: (_, state)=>setExplorer(state),
121
+ variant: isSmallScreen ? 'fullWidth' : 'scrollable',
122
+ sx: {
123
+ display: isCollapsed ? 'none' : 'flex'
124
+ },
125
+ children: plugins.data?.sort((a, b)=>a.spec.display.name.localeCompare(b.spec.display.name)).map((plugin)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tab, {
126
+ value: `${plugin.module.name}-${plugin.spec.name}`,
127
+ label: plugin.spec.display.name,
128
+ sx: {
129
+ padding: 0.5
130
+ }
131
+ }, `${plugin.module.name}-${plugin.spec.name}`))
132
+ })
133
+ ]
92
134
  }),
93
135
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Card, {
94
136
  sx: {
@@ -1 +1 @@
1
- {"version":3,"file":"ExploreManager.d.ts","sourceRoot":"","sources":["../../../src/components/ExploreManager/ExploreManager.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,CAAC,EAAE,SAAS,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAkEvE"}
1
+ {"version":3,"file":"ExploreManager.d.ts","sourceRoot":"","sources":["../../../src/components/ExploreManager/ExploreManager.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAC;AAOpE,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,CAAC,EAAE,SAAS,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAiGvE"}
@@ -11,9 +11,12 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- import { Card, Stack, Tab, Tabs, useMediaQuery } from '@mui/material';
14
+ import { Box, Button, Card, Stack, Tab, Tabs, useMediaQuery } from '@mui/material';
15
15
  import { PluginLoaderComponent, useListPluginMetadata } from '@perses-dev/plugin-system';
16
16
  import { useEffect, useMemo } from 'react';
17
+ import ChevronRight from 'mdi-material-ui/ChevronRight';
18
+ import ChevronLeft from 'mdi-material-ui/ChevronLeft';
19
+ import { useLocalStorage } from '@perses-dev/app/src/utils/browser-storage';
17
20
  import { ExploreToolbar } from '../ExploreToolbar';
18
21
  import { useExplorerManagerContext } from './ExplorerManagerProvider';
19
22
  export function ExploreManager(props) {
@@ -22,7 +25,8 @@ export function ExploreManager(props) {
22
25
  const plugins = useListPluginMetadata([
23
26
  'Explore'
24
27
  ]);
25
- const smallScreen = useMediaQuery('(max-width: 768px)');
28
+ const isSmallScreen = useMediaQuery('(max-width: 768px)');
29
+ const [isCollapsed, setIsCollapsed] = useLocalStorage('explore-tabs-collapsed', false);
26
30
  const explorerPluginsMap = useMemo(()=>Object.fromEntries(plugins.data?.map((plugin)=>[
27
31
  `${plugin.module.name}-${plugin.spec.name}`,
28
32
  plugin
@@ -52,33 +56,66 @@ export function ExploreManager(props) {
52
56
  px: 2,
53
57
  pb: 2,
54
58
  pt: 1.5,
55
- gap: 3,
59
+ gap: 1,
56
60
  children: [
57
61
  /*#__PURE__*/ _jsx(ExploreToolbar, {
58
62
  exploreTitleComponent: exploreTitleComponent
59
63
  }),
60
64
  /*#__PURE__*/ _jsxs(Stack, {
61
- direction: smallScreen ? 'column' : 'row',
65
+ direction: isSmallScreen ? 'column' : 'row',
62
66
  gap: 2,
63
67
  sx: {
64
68
  width: '100%'
65
69
  },
66
70
  children: [
67
- /*#__PURE__*/ _jsx(Tabs, {
68
- orientation: smallScreen ? 'horizontal' : 'vertical',
69
- value: explorer,
70
- onChange: (_, state)=>setExplorer(state),
71
- variant: smallScreen ? 'fullWidth' : 'scrollable',
71
+ /*#__PURE__*/ _jsxs(Stack, {
72
72
  sx: {
73
- borderRight: smallScreen ? 0 : 1,
74
- borderBottom: smallScreen ? 1 : 0,
73
+ borderRight: isSmallScreen ? 0 : 1,
74
+ borderBottom: isSmallScreen ? 1 : 0,
75
75
  borderColor: 'divider',
76
- minWidth: '100px'
76
+ minWidth: isCollapsed ? 15 : 100
77
77
  },
78
- children: plugins.data?.map((plugin)=>/*#__PURE__*/ _jsx(Tab, {
79
- value: `${plugin.module.name}-${plugin.spec.name}`,
80
- label: plugin.spec.display.name
81
- }, `${plugin.module.name}-${plugin.spec.name}`))
78
+ children: [
79
+ /*#__PURE__*/ _jsx(Box, {
80
+ sx: {
81
+ position: 'relative',
82
+ height: 30,
83
+ display: isSmallScreen ? 'none' : undefined
84
+ },
85
+ "test-id": "qdqwd",
86
+ children: /*#__PURE__*/ _jsx(Button, {
87
+ title: isCollapsed ? 'Expand explorer tabs' : 'Collapse explorer tabs',
88
+ "aria-label": isCollapsed ? 'Expand explorer tabs' : 'Collapse explorer tabs',
89
+ variant: "text",
90
+ sx: {
91
+ position: 'absolute',
92
+ right: -15,
93
+ zIndex: 1,
94
+ padding: 0.5,
95
+ minWidth: 'auto',
96
+ backgroundColor: (theme)=>theme.palette.background.default
97
+ },
98
+ onClick: ()=>setIsCollapsed(!isCollapsed),
99
+ children: isCollapsed ? /*#__PURE__*/ _jsx(ChevronRight, {}) : /*#__PURE__*/ _jsx(ChevronLeft, {})
100
+ })
101
+ }),
102
+ /*#__PURE__*/ _jsx(Tabs, {
103
+ orientation: isSmallScreen ? 'horizontal' : 'vertical',
104
+ value: explorer,
105
+ onChange: (_, state)=>setExplorer(state),
106
+ variant: isSmallScreen ? 'fullWidth' : 'scrollable',
107
+ sx: {
108
+ display: isCollapsed ? 'none' : 'flex'
109
+ },
110
+ children: plugins.data?.sort((a, b)=>a.spec.display.name.localeCompare(b.spec.display.name)).map((plugin)=>/*#__PURE__*/ _jsx(Tab, {
111
+ value: `${plugin.module.name}-${plugin.spec.name}`,
112
+ label: plugin.spec.display.name,
113
+ sx: {
114
+ padding: 0.5
115
+ }
116
+ }, `${plugin.module.name}-${plugin.spec.name}`))
117
+ })
118
+ ]
82
119
  }),
83
120
  /*#__PURE__*/ _jsx(Card, {
84
121
  sx: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExploreManager/ExploreManager.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Card, Stack, Tab, Tabs, useMediaQuery } from '@mui/material';\nimport { PluginLoaderComponent, useListPluginMetadata } from '@perses-dev/plugin-system';\nimport { ReactElement, ReactNode, useEffect, useMemo } from 'react';\nimport { ExploreToolbar } from '../ExploreToolbar';\nimport { useExplorerManagerContext } from './ExplorerManagerProvider';\n\nexport interface ExploreManagerProps {\n exploreTitleComponent?: ReactNode;\n}\n\nexport function ExploreManager(props: ExploreManagerProps): ReactElement {\n const { exploreTitleComponent } = props;\n const { explorer, setExplorer } = useExplorerManagerContext();\n\n const plugins = useListPluginMetadata(['Explore']);\n\n const smallScreen = useMediaQuery('(max-width: 768px)');\n\n const explorerPluginsMap = useMemo(\n () =>\n Object.fromEntries(plugins.data?.map((plugin) => [`${plugin.module.name}-${plugin.spec.name}`, plugin]) ?? []),\n [plugins.data]\n );\n\n useEffect(() => {\n const plugins = Object.keys(explorerPluginsMap);\n if (!explorer && plugins?.[0]) {\n setExplorer(plugins[0]);\n }\n }, [explorerPluginsMap, explorer, setExplorer]);\n\n const currentPlugin = explorer ? explorerPluginsMap[explorer] : undefined;\n\n if (!explorer) {\n return <div>No explorer plugin available</div>;\n }\n\n return (\n <Stack sx={{ width: '100%' }} px={2} pb={2} pt={1.5} gap={3}>\n <ExploreToolbar exploreTitleComponent={exploreTitleComponent} />\n\n <Stack direction={smallScreen ? 'column' : 'row'} gap={2} sx={{ width: '100%' }}>\n <Tabs\n orientation={smallScreen ? 'horizontal' : 'vertical'}\n value={explorer}\n onChange={(_, state) => setExplorer(state)}\n variant={smallScreen ? 'fullWidth' : 'scrollable'}\n sx={{\n borderRight: smallScreen ? 0 : 1,\n borderBottom: smallScreen ? 1 : 0,\n borderColor: 'divider',\n minWidth: '100px',\n }}\n >\n {plugins.data?.map((plugin) => (\n <Tab\n key={`${plugin.module.name}-${plugin.spec.name}`}\n value={`${plugin.module.name}-${plugin.spec.name}`}\n label={plugin.spec.display.name}\n />\n ))}\n </Tabs>\n <Card sx={{ padding: '10px', width: '100%' }}>\n {currentPlugin && (\n <PluginLoaderComponent\n key={`${currentPlugin.module.name}-${currentPlugin.spec.name}`}\n plugin={{\n name: currentPlugin.spec.name,\n moduleName: currentPlugin.module.name,\n }}\n />\n )}\n </Card>\n </Stack>\n </Stack>\n );\n}\n"],"names":["Card","Stack","Tab","Tabs","useMediaQuery","PluginLoaderComponent","useListPluginMetadata","useEffect","useMemo","ExploreToolbar","useExplorerManagerContext","ExploreManager","props","exploreTitleComponent","explorer","setExplorer","plugins","smallScreen","explorerPluginsMap","Object","fromEntries","data","map","plugin","module","name","spec","keys","currentPlugin","undefined","div","sx","width","px","pb","pt","gap","direction","orientation","value","onChange","_","state","variant","borderRight","borderBottom","borderColor","minWidth","label","display","padding","moduleName"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,SAASA,IAAI,EAAEC,KAAK,EAAEC,GAAG,EAAEC,IAAI,EAAEC,aAAa,QAAQ,gBAAgB;AACtE,SAASC,qBAAqB,EAAEC,qBAAqB,QAAQ,4BAA4B;AACzF,SAAkCC,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AACpE,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,yBAAyB,QAAQ,4BAA4B;AAMtE,OAAO,SAASC,eAAeC,KAA0B;IACvD,MAAM,EAAEC,qBAAqB,EAAE,GAAGD;IAClC,MAAM,EAAEE,QAAQ,EAAEC,WAAW,EAAE,GAAGL;IAElC,MAAMM,UAAUV,sBAAsB;QAAC;KAAU;IAEjD,MAAMW,cAAcb,cAAc;IAElC,MAAMc,qBAAqBV,QACzB,IACEW,OAAOC,WAAW,CAACJ,QAAQK,IAAI,EAAEC,IAAI,CAACC,SAAW;gBAAC,GAAGA,OAAOC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEF,OAAOG,IAAI,CAACD,IAAI,EAAE;gBAAEF;aAAO,KAAK,EAAE,GAC/G;QAACP,QAAQK,IAAI;KAAC;IAGhBd,UAAU;QACR,MAAMS,UAAUG,OAAOQ,IAAI,CAACT;QAC5B,IAAI,CAACJ,YAAYE,SAAS,CAAC,EAAE,EAAE;YAC7BD,YAAYC,OAAO,CAAC,EAAE;QACxB;IACF,GAAG;QAACE;QAAoBJ;QAAUC;KAAY;IAE9C,MAAMa,gBAAgBd,WAAWI,kBAAkB,CAACJ,SAAS,GAAGe;IAEhE,IAAI,CAACf,UAAU;QACb,qBAAO,KAACgB;sBAAI;;IACd;IAEA,qBACE,MAAC7B;QAAM8B,IAAI;YAAEC,OAAO;QAAO;QAAGC,IAAI;QAAGC,IAAI;QAAGC,IAAI;QAAKC,KAAK;;0BACxD,KAAC3B;gBAAeI,uBAAuBA;;0BAEvC,MAACZ;gBAAMoC,WAAWpB,cAAc,WAAW;gBAAOmB,KAAK;gBAAGL,IAAI;oBAAEC,OAAO;gBAAO;;kCAC5E,KAAC7B;wBACCmC,aAAarB,cAAc,eAAe;wBAC1CsB,OAAOzB;wBACP0B,UAAU,CAACC,GAAGC,QAAU3B,YAAY2B;wBACpCC,SAAS1B,cAAc,cAAc;wBACrCc,IAAI;4BACFa,aAAa3B,cAAc,IAAI;4BAC/B4B,cAAc5B,cAAc,IAAI;4BAChC6B,aAAa;4BACbC,UAAU;wBACZ;kCAEC/B,QAAQK,IAAI,EAAEC,IAAI,CAACC,uBAClB,KAACrB;gCAECqC,OAAO,GAAGhB,OAAOC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEF,OAAOG,IAAI,CAACD,IAAI,EAAE;gCAClDuB,OAAOzB,OAAOG,IAAI,CAACuB,OAAO,CAACxB,IAAI;+BAF1B,GAAGF,OAAOC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEF,OAAOG,IAAI,CAACD,IAAI,EAAE;;kCAMtD,KAACzB;wBAAK+B,IAAI;4BAAEmB,SAAS;4BAAQlB,OAAO;wBAAO;kCACxCJ,+BACC,KAACvB;4BAECkB,QAAQ;gCACNE,MAAMG,cAAcF,IAAI,CAACD,IAAI;gCAC7B0B,YAAYvB,cAAcJ,MAAM,CAACC,IAAI;4BACvC;2BAJK,GAAGG,cAAcJ,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEG,cAAcF,IAAI,CAACD,IAAI,EAAE;;;;;;AAW5E"}
1
+ {"version":3,"sources":["../../../src/components/ExploreManager/ExploreManager.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box, Button, Card, Stack, Tab, Tabs, useMediaQuery } from '@mui/material';\nimport { PluginLoaderComponent, useListPluginMetadata } from '@perses-dev/plugin-system';\nimport { ReactElement, ReactNode, useEffect, useMemo } from 'react';\nimport ChevronRight from 'mdi-material-ui/ChevronRight';\nimport ChevronLeft from 'mdi-material-ui/ChevronLeft';\nimport { useLocalStorage } from '@perses-dev/app/src/utils/browser-storage';\nimport { ExploreToolbar } from '../ExploreToolbar';\nimport { useExplorerManagerContext } from './ExplorerManagerProvider';\n\nexport interface ExploreManagerProps {\n exploreTitleComponent?: ReactNode;\n}\n\nexport function ExploreManager(props: ExploreManagerProps): ReactElement {\n const { exploreTitleComponent } = props;\n const { explorer, setExplorer } = useExplorerManagerContext();\n\n const plugins = useListPluginMetadata(['Explore']);\n\n const isSmallScreen = useMediaQuery('(max-width: 768px)');\n const [isCollapsed, setIsCollapsed] = useLocalStorage<boolean>('explore-tabs-collapsed', false);\n\n const explorerPluginsMap = useMemo(\n () =>\n Object.fromEntries(plugins.data?.map((plugin) => [`${plugin.module.name}-${plugin.spec.name}`, plugin]) ?? []),\n [plugins.data]\n );\n\n useEffect(() => {\n const plugins = Object.keys(explorerPluginsMap);\n if (!explorer && plugins?.[0]) {\n setExplorer(plugins[0]);\n }\n }, [explorerPluginsMap, explorer, setExplorer]);\n\n const currentPlugin = explorer ? explorerPluginsMap[explorer] : undefined;\n\n if (!explorer) {\n return <div>No explorer plugin available</div>;\n }\n\n return (\n <Stack sx={{ width: '100%' }} px={2} pb={2} pt={1.5} gap={1}>\n <ExploreToolbar exploreTitleComponent={exploreTitleComponent} />\n\n <Stack direction={isSmallScreen ? 'column' : 'row'} gap={2} sx={{ width: '100%' }}>\n <Stack\n sx={{\n borderRight: isSmallScreen ? 0 : 1,\n borderBottom: isSmallScreen ? 1 : 0,\n borderColor: 'divider',\n minWidth: isCollapsed ? 15 : 100,\n }}\n >\n <Box sx={{ position: 'relative', height: 30, display: isSmallScreen ? 'none' : undefined }} test-id=\"qdqwd\">\n <Button\n title={isCollapsed ? 'Expand explorer tabs' : 'Collapse explorer tabs'}\n aria-label={isCollapsed ? 'Expand explorer tabs' : 'Collapse explorer tabs'}\n variant=\"text\"\n sx={{\n position: 'absolute',\n right: -15,\n zIndex: 1,\n padding: 0.5,\n minWidth: 'auto',\n backgroundColor: (theme) => theme.palette.background.default,\n }}\n onClick={() => setIsCollapsed(!isCollapsed)}\n >\n {isCollapsed ? <ChevronRight /> : <ChevronLeft />}\n </Button>\n </Box>\n\n <Tabs\n orientation={isSmallScreen ? 'horizontal' : 'vertical'}\n value={explorer}\n onChange={(_, state) => setExplorer(state)}\n variant={isSmallScreen ? 'fullWidth' : 'scrollable'}\n sx={{\n display: isCollapsed ? 'none' : 'flex',\n }}\n >\n {plugins.data\n ?.sort((a, b) => a.spec.display.name.localeCompare(b.spec.display.name))\n .map((plugin) => (\n <Tab\n key={`${plugin.module.name}-${plugin.spec.name}`}\n value={`${plugin.module.name}-${plugin.spec.name}`}\n label={plugin.spec.display.name}\n sx={{\n padding: 0.5,\n }}\n />\n ))}\n </Tabs>\n </Stack>\n <Card sx={{ padding: '10px', width: '100%' }}>\n {currentPlugin && (\n <PluginLoaderComponent\n key={`${currentPlugin.module.name}-${currentPlugin.spec.name}`}\n plugin={{\n name: currentPlugin.spec.name,\n moduleName: currentPlugin.module.name,\n }}\n />\n )}\n </Card>\n </Stack>\n </Stack>\n );\n}\n"],"names":["Box","Button","Card","Stack","Tab","Tabs","useMediaQuery","PluginLoaderComponent","useListPluginMetadata","useEffect","useMemo","ChevronRight","ChevronLeft","useLocalStorage","ExploreToolbar","useExplorerManagerContext","ExploreManager","props","exploreTitleComponent","explorer","setExplorer","plugins","isSmallScreen","isCollapsed","setIsCollapsed","explorerPluginsMap","Object","fromEntries","data","map","plugin","module","name","spec","keys","currentPlugin","undefined","div","sx","width","px","pb","pt","gap","direction","borderRight","borderBottom","borderColor","minWidth","position","height","display","test-id","title","aria-label","variant","right","zIndex","padding","backgroundColor","theme","palette","background","default","onClick","orientation","value","onChange","_","state","sort","a","b","localeCompare","label","moduleName"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perses-dev/explore",
3
- "version": "0.51.1",
3
+ "version": "0.52.0-beta.1",
4
4
  "description": "The explore feature in Perses",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/perses/perses/blob/main/README.md",
@@ -28,10 +28,10 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@nexucis/fuzzy": "^0.5.1",
31
- "@perses-dev/components": "0.51.1",
32
- "@perses-dev/core": "0.51.1",
33
- "@perses-dev/dashboards": "0.51.1",
34
- "@perses-dev/plugin-system": "0.51.1",
31
+ "@perses-dev/components": "0.52.0-beta.1",
32
+ "@perses-dev/core": "0.52.0-beta.1",
33
+ "@perses-dev/dashboards": "0.52.0-beta.1",
34
+ "@perses-dev/plugin-system": "0.52.0-beta.1",
35
35
  "@types/react-grid-layout": "^1.3.2",
36
36
  "date-fns": "^4.1.0",
37
37
  "immer": "^10.1.1",
@@ -47,7 +47,7 @@
47
47
  "zustand": "^4.3.3"
48
48
  },
49
49
  "devDependencies": {
50
- "@perses-dev/internal-utils": "0.51.1",
50
+ "@perses-dev/internal-utils": "0.52.0-beta.1",
51
51
  "history": "^5.3.0",
52
52
  "intersection-observer": "^0.12.2",
53
53
  "react-router-dom": "^6.11.0"