Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d6c5ea2
PMM-15159 Use Peak Design CodeBlock for code snippets in RTA
claude Jul 7, 2026
144c82c
PMM-15159 Keep code block frame visible in RTA overview cells
claude Jul 9, 2026
c26b92a
PMM-15159 Fade out clipped query text in RTA overview cells
claude Jul 9, 2026
78fdd55
Merge remote-tracking branch 'origin/main' into claude/pmm-rta-code-b…
claude Jul 9, 2026
006269f
PMM-15159 Make QAN header responsive with wrapping, scrollable tabs
claude Jul 9, 2026
f2c6891
Merge remote-tracking branch 'origin/main' into claude/pmm-rta-code-b…
claude Jul 9, 2026
66bddbb
Refactor UI components and enhance functionality
freenandes Jul 9, 2026
7250b6b
Enhance UI layout and component styling
freenandes Jul 9, 2026
914cdf5
Merge remote-tracking branch 'origin/main' into claude/pmm-rta-code-b…
claude Jul 10, 2026
7172598
PMM-15159 Apply prettier formatting to RTA layout changes
claude Jul 10, 2026
6ef5497
PMM-15159 Note pending Shape token for details pane radius
claude Jul 10, 2026
1428169
PMM-15159 Align table and modal corner radius to 8px
claude Jul 10, 2026
4d01ebc
Merge branch 'main' into PMM-15159-code-blocks
fabio-silva Jul 10, 2026
2c73ef9
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 10, 2026
9b3c510
Merge branch 'main' into PMM-15159-code-blocks
fabio-silva Jul 13, 2026
9b14f73
PMM-15159 Address RTA code block review comments
cursoragent Jul 13, 2026
7bb644d
fix: permissive regex
fabio-silva Jul 13, 2026
186d405
fix: omit props
fabio-silva Jul 13, 2026
37bb3ed
fix: mask-repeat strategy
fabio-silva Jul 13, 2026
7b9240c
chore: format
fabio-silva Jul 13, 2026
899e358
fix: formatting
fabio-silva Jul 13, 2026
1c9568b
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 13, 2026
5fff248
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 13, 2026
090c50e
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 14, 2026
1a2dad1
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 14, 2026
64300ce
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 14, 2026
85721ed
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 14, 2026
cfed100
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 14, 2026
d18f1bd
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 15, 2026
2fd52f8
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 15, 2026
5eebae9
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 15, 2026
121aa88
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 16, 2026
b142d48
Merge branch 'main' into PMM-15159-code-blocks
pmcf-percona Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions ui/apps/pmm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"@mui/icons-material": "^7.3.7",
"@mui/material": "^7.3.7",
"@mui/x-date-pickers": "^7.5.0",
"@percona/percona-ui": "1.0.22",
"@percona/percona-ui": "1.0.23",
"@pmm/shared": "*",
"@reactour/tour": "^3.8.0",
"@tanstack/react-query": "^5.45.1",
Expand All @@ -41,7 +41,6 @@
"react-is": "18.3.1",
"react-markdown": "^9.0.1",
"react-router-dom": "^6.30.2",
"react-syntax-highlighter": "^16.1.0",
"rehype-raw": "^7.0.0",
"remark-gfm": "^4.0.0",
"vite-plugin-svgr": "^4.3.0",
Expand All @@ -53,7 +52,6 @@
"@testing-library/react": "^15.0.7",
"@types/react": "^18.3.2",
"@types/react-dom": "^18.3.0",
"@types/react-syntax-highlighter": "^15.5.13",
"@typescript-eslint/eslint-plugin": "^7.9.0",
"@typescript-eslint/parser": "^7.9.0",
"@vitejs/plugin-basic-ssl": "^1.2.0",
Expand Down
3 changes: 0 additions & 3 deletions ui/apps/pmm/src/Providers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,6 @@ const Providers: FC<PropsWithChildren> = () => (
<TourProvider>
<GlobalStyles
styles={{
html: {
scrollbarGutter: 'stable',
},
'html, body, div#root': {
minHeight: '100vh',
},
Expand Down
25 changes: 0 additions & 25 deletions ui/apps/pmm/src/components/code-block/CodeBlock.tsx

This file was deleted.

8 changes: 0 additions & 8 deletions ui/apps/pmm/src/components/code-block/CodeBlock.types.ts

This file was deleted.

1 change: 0 additions & 1 deletion ui/apps/pmm/src/components/code-block/index.ts

This file was deleted.

2 changes: 2 additions & 0 deletions ui/apps/pmm/src/components/icon/Icon.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,6 @@ export const VIEWBOX_MAP: Partial<
'pmm-titled': '0 0 141 48',
'pmm-titled-outlined': '0 0 252 113',
'real-time-database-off': '0 0 192 192',
'electric-bolt': '0 0 20 20',
'electric-bolt-off': '0 0 20 20',
};
31 changes: 22 additions & 9 deletions ui/apps/pmm/src/components/main/header/qan-header/QanHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,43 @@ import Typography from '@mui/material/Typography';
import { Messages } from './QanHeader.messages';
import QanHeaderTabs from './qan-header-tabs/QanHeaderTabs';
import QanHeaderActions from './qan-header-actions/QanHeaderActions';
import Divider from '@mui/material/Divider';
import { useIsRealtimeQan } from 'hooks/utils/useLocation';

const QanHeader: FC = () => {
const isRealtime = useIsRealtimeQan();

return (
<>
<Stack
sx={{
mx: 2,
pt: 1,
columnGap: 3,
flexDirection: 'row',
flexWrap: 'wrap',
alignItems: 'center',
// The border lives on the container so the tabs always sit flush
// against it, whether they share the title's row or wrap below it
...(isRealtime && { borderBottom: 1, borderColor: 'divider' }),
}}
>
<Typography variant="h6" sx={{ my: 1 }}>
{Messages.title}
</Typography>
<Stack
sx={{
pt: 1,
px: 2,
gap: 3,
// Wraps under the title as a unit when narrower than the basis,
// then shrinks freely and lets the tabs scroll internally
flex: '1 1 320px',
minWidth: 0,
gap: 1,
flexDirection: 'row',
justifyContent: 'flex-start',
alignItems: 'center',
}}
>
<Typography variant="h6">{Messages.title}</Typography>
<QanHeaderTabs />
<QanHeaderActions />
</Stack>
{isRealtime && <Divider sx={{ mx: 2 }} />}
</>
</Stack>
);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export const QanHeaderActions: FC = () => {
};

return (
<Stack gap={1} flex={1} flexDirection="row" justifyContent="flex-end">
<Stack gap={1} flexShrink={0} flexDirection="row" alignItems="center">
<Tooltip title="Share session settings" arrow>
<IconButton
data-testid="qan-header-actions-copy-button"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@ const QanHeaderTabs: FC = () => {
const isRealtime = useIsRealtimeQan();

return (
<Tabs value={isRealtime ? 'real-time' : 'historical'}>
<Tabs
value={isRealtime ? 'real-time' : 'historical'}
variant="scrollable"
scrollButtons="auto"
sx={{ flex: 1, minWidth: 0 }}
>
<Tab
value="historical"
label={Messages.tabStoredMetrics}
Expand Down
4 changes: 3 additions & 1 deletion ui/apps/pmm/src/components/modal/Modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ export const Modal: FC<ModalProps> = ({
backgroundColor: theme.palette.background.paper,
minWidth: 480,
maxWidth: '80vw',
borderRadius: 1,
// TODO: use theme.shape.borderRadiusMd (8px) once percona-ui
// publishes the Shape tokens (percona-ui#37, not in 1.0.23)
borderRadius: '8px',
boxShadow: theme.shadows[24],
border: 'none',
})}
Expand Down
101 changes: 0 additions & 101 deletions ui/apps/pmm/src/components/syntax-highlighter/SyntaxHighlighter.tsx

This file was deleted.

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion ui/apps/pmm/src/components/syntax-highlighter/index.ts

This file was deleted.

2 changes: 2 additions & 0 deletions ui/apps/pmm/src/components/text-select/TextSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export const TextSelect = <T,>({
disabled,
disabledValue,
startIcon,
buttonProps,
'data-testid-button': dataTestIdButton,
}: TextSelectProps<T>) => {
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
Expand All @@ -43,6 +44,7 @@ export const TextSelect = <T,>({
return (
<Stack>
<Button
{...buttonProps}
variant="text"
onClick={handleOpen}
endIcon={open ? <ArrowDropUp /> : <ArrowDropDown />}
Expand Down
4 changes: 4 additions & 0 deletions ui/apps/pmm/src/components/text-select/TextSelect.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,9 @@ export interface TextSelectProps<T> {
disabled?: boolean;
disabledValue?: string;
startIcon?: ButtonProps['startIcon'];
buttonProps?: Omit<
ButtonProps,
'onClick' | 'variant' | 'endIcon' | 'startIcon' | 'disabled'
>;
'data-testid-button'?: string;
Comment thread
Copilot marked this conversation as resolved.
}
4 changes: 2 additions & 2 deletions ui/apps/pmm/src/icons/electric-bolt-off.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading