@perses-dev/logs-table-plugin 0.2.0-beta.0 → 0.2.0

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.
Files changed (137) hide show
  1. package/__mf/js/{LogsTable.6980b2d9.js → LogsTable.2781dfd7.js} +3 -3
  2. package/__mf/js/async/1117.0a72bc85.js +2 -0
  3. package/__mf/js/async/1129.e0f0503a.js +7 -0
  4. package/__mf/js/async/1240.1a0b69fc.js +1 -0
  5. package/__mf/js/async/304.d0edd380.js +37 -0
  6. package/__mf/js/async/392.2e457deb.js +2 -0
  7. package/__mf/js/async/3982.ab5d25af.js +1 -0
  8. package/__mf/js/async/6034.130a9e6d.js +22 -0
  9. package/__mf/js/async/648.0ddef36d.js +1 -0
  10. package/__mf/js/async/7445.28262ec0.js +110 -0
  11. package/__mf/js/async/8542.1802a06b.js +1 -0
  12. package/__mf/js/async/8608.4e8b55b4.js +1 -0
  13. package/__mf/js/async/8859.f8f648fc.js +1 -0
  14. package/__mf/js/async/9293.7e278959.js +2 -0
  15. package/__mf/js/async/__federation_expose_LogsTable.f2d6f7ad.js +1 -0
  16. package/__mf/js/async/lib-router.04411383.js +2 -0
  17. package/__mf/js/async/{lib-router.318cb64e.js.LICENSE.txt → lib-router.04411383.js.LICENSE.txt} +3 -3
  18. package/__mf/js/{main.029df708.js → main.76fc2531.js} +3 -3
  19. package/lib/LogsTable.d.ts.map +1 -1
  20. package/lib/LogsTable.js +6 -1
  21. package/lib/LogsTable.js.map +1 -1
  22. package/lib/LogsTableComponent.d.ts.map +1 -1
  23. package/lib/LogsTableComponent.js +13 -9
  24. package/lib/LogsTableComponent.js.map +1 -1
  25. package/lib/LogsTableItemSelectionActionsEditor.d.ts +4 -0
  26. package/lib/LogsTableItemSelectionActionsEditor.d.ts.map +1 -0
  27. package/lib/LogsTableItemSelectionActionsEditor.js +36 -0
  28. package/lib/LogsTableItemSelectionActionsEditor.js.map +1 -0
  29. package/lib/LogsTablePanel.js +1 -1
  30. package/lib/LogsTablePanel.js.map +1 -1
  31. package/lib/LogsTableSettingsEditor.js +2 -2
  32. package/lib/LogsTableSettingsEditor.js.map +1 -1
  33. package/lib/bootstrap.js +1 -1
  34. package/lib/bootstrap.js.map +1 -1
  35. package/lib/cjs/LogsTable.js +6 -1
  36. package/lib/cjs/LogsTableComponent.js +12 -8
  37. package/lib/cjs/LogsTableItemSelectionActionsEditor.js +44 -0
  38. package/lib/cjs/LogsTablePanel.js +1 -1
  39. package/lib/cjs/LogsTableSettingsEditor.js +1 -1
  40. package/lib/cjs/bootstrap.js +1 -1
  41. package/lib/cjs/components/EmptyLogsState.js +1 -1
  42. package/lib/cjs/components/LogRow/LogDetailsTable.js +1 -1
  43. package/lib/cjs/components/LogRow/LogRow.js +260 -13
  44. package/lib/cjs/components/LogRow/LogTimestamp.js +1 -1
  45. package/lib/cjs/components/LogRow/LogsStyles.js +9 -7
  46. package/lib/cjs/components/LogRow/index.js +1 -1
  47. package/lib/cjs/components/LogsList.js +1 -1
  48. package/lib/cjs/components/VirtualizedLogsList.js +502 -19
  49. package/lib/cjs/components/hooks/useExpandedRows.js +1 -1
  50. package/lib/cjs/components/hooks/useSeverity.js +47 -0
  51. package/lib/cjs/components/utils.js +78 -0
  52. package/lib/cjs/env.d.js +1 -1
  53. package/lib/cjs/getPluginModule.js +12 -0
  54. package/lib/cjs/index-federation.js +1 -1
  55. package/lib/cjs/index.js +12 -0
  56. package/lib/cjs/model.js +1 -1
  57. package/lib/cjs/setup-tests.js +1 -1
  58. package/lib/cjs/test/mock-query-results.js +60 -3
  59. package/lib/cjs/utils/copyHelpers.js +70 -0
  60. package/lib/components/EmptyLogsState.js +1 -1
  61. package/lib/components/EmptyLogsState.js.map +1 -1
  62. package/lib/components/LogRow/LogDetailsTable.js +1 -1
  63. package/lib/components/LogRow/LogDetailsTable.js.map +1 -1
  64. package/lib/components/LogRow/LogRow.d.ts +4 -1
  65. package/lib/components/LogRow/LogRow.d.ts.map +1 -1
  66. package/lib/components/LogRow/LogRow.js +262 -15
  67. package/lib/components/LogRow/LogRow.js.map +1 -1
  68. package/lib/components/LogRow/LogTimestamp.js +1 -1
  69. package/lib/components/LogRow/LogTimestamp.js.map +1 -1
  70. package/lib/components/LogRow/LogsStyles.d.ts +3 -0
  71. package/lib/components/LogRow/LogsStyles.d.ts.map +1 -1
  72. package/lib/components/LogRow/LogsStyles.js +9 -7
  73. package/lib/components/LogRow/LogsStyles.js.map +1 -1
  74. package/lib/components/LogRow/index.js +1 -1
  75. package/lib/components/LogRow/index.js.map +1 -1
  76. package/lib/components/LogsList.js +1 -1
  77. package/lib/components/LogsList.js.map +1 -1
  78. package/lib/components/VirtualizedLogsList.d.ts.map +1 -1
  79. package/lib/components/VirtualizedLogsList.js +463 -21
  80. package/lib/components/VirtualizedLogsList.js.map +1 -1
  81. package/lib/components/hooks/useExpandedRows.js +1 -1
  82. package/lib/components/hooks/useExpandedRows.js.map +1 -1
  83. package/lib/components/hooks/useSeverity.d.ts +3 -0
  84. package/lib/components/hooks/useSeverity.d.ts.map +1 -0
  85. package/lib/components/hooks/useSeverity.js +39 -0
  86. package/lib/components/hooks/useSeverity.js.map +1 -0
  87. package/lib/components/utils.d.ts +5 -0
  88. package/lib/components/utils.d.ts.map +1 -0
  89. package/lib/components/utils.js +62 -0
  90. package/lib/components/utils.js.map +1 -0
  91. package/lib/env.d.js +1 -1
  92. package/lib/env.d.js.map +1 -1
  93. package/lib/getPluginModule.d.ts.map +1 -1
  94. package/lib/getPluginModule.js +12 -0
  95. package/lib/getPluginModule.js.map +1 -1
  96. package/lib/index-federation.js +1 -1
  97. package/lib/index-federation.js.map +1 -1
  98. package/lib/index.d.ts.map +1 -1
  99. package/lib/index.js +12 -0
  100. package/lib/index.js.map +1 -1
  101. package/lib/model.d.ts +4 -1
  102. package/lib/model.d.ts.map +1 -1
  103. package/lib/model.js +1 -1
  104. package/lib/model.js.map +1 -1
  105. package/lib/setup-tests.js +1 -1
  106. package/lib/setup-tests.js.map +1 -1
  107. package/lib/test/mock-query-results.d.ts +1 -0
  108. package/lib/test/mock-query-results.d.ts.map +1 -1
  109. package/lib/test/mock-query-results.js +57 -3
  110. package/lib/test/mock-query-results.js.map +1 -1
  111. package/lib/utils/copyHelpers.d.ts +28 -0
  112. package/lib/utils/copyHelpers.d.ts.map +1 -0
  113. package/lib/utils/copyHelpers.js +56 -0
  114. package/lib/utils/copyHelpers.js.map +1 -0
  115. package/mf-manifest.json +30 -30
  116. package/mf-stats.json +35 -32
  117. package/package.json +5 -5
  118. package/__mf/js/async/1117.921746cb.js +0 -2
  119. package/__mf/js/async/1939.46722505.js +0 -1
  120. package/__mf/js/async/392.ffb0729b.js +0 -2
  121. package/__mf/js/async/580.9e16464c.js +0 -110
  122. package/__mf/js/async/5997.f6b3408c.js +0 -2
  123. package/__mf/js/async/6600.884fc0ad.js +0 -22
  124. package/__mf/js/async/6916.3d24109f.js +0 -7
  125. package/__mf/js/async/7417.39d13c6a.js +0 -1
  126. package/__mf/js/async/8252.88cd9656.js +0 -1
  127. package/__mf/js/async/8294.dac3426d.js +0 -37
  128. package/__mf/js/async/8535.20f8a453.js +0 -1
  129. package/__mf/js/async/9558.692edca6.js +0 -1
  130. package/__mf/js/async/9890.b97f395d.js +0 -1
  131. package/__mf/js/async/__federation_expose_LogsTable.6f8b33f4.js +0 -1
  132. package/__mf/js/async/lib-router.318cb64e.js +0 -2
  133. /package/__mf/js/async/{1117.921746cb.js.LICENSE.txt → 1117.0a72bc85.js.LICENSE.txt} +0 -0
  134. /package/__mf/js/async/{6916.3d24109f.js.LICENSE.txt → 1129.e0f0503a.js.LICENSE.txt} +0 -0
  135. /package/__mf/js/async/{392.ffb0729b.js.LICENSE.txt → 392.2e457deb.js.LICENSE.txt} +0 -0
  136. /package/__mf/js/async/{6600.884fc0ad.js.LICENSE.txt → 6034.130a9e6d.js.LICENSE.txt} +0 -0
  137. /package/__mf/js/async/{580.9e16464c.js.LICENSE.txt → 7445.28262ec0.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/LogRow/LogRow.tsx"],"sourcesContent":["// Copyright 2025 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 React, { memo, useCallback } from 'react';\nimport { Box, Collapse, useTheme } from '@mui/material';\nimport ChevronRight from 'mdi-material-ui/ChevronRight';\nimport { LogEntry } from '@perses-dev/core';\nimport { LogTimestamp } from './LogTimestamp';\nimport { LogRowContainer, LogRowContent, ExpandButton, LogText } from './LogsStyles';\nimport { LogDetailsTable } from './LogDetailsTable';\n\ninterface LogRowProps {\n log?: LogEntry;\n index: number;\n isExpanded: boolean;\n onToggle: (index: number) => void;\n isExpandable?: boolean;\n showTime?: boolean;\n allowWrap?: boolean;\n}\n\nconst DefaultLogRow: React.FC<LogRowProps> = ({\n log,\n isExpanded,\n index,\n onToggle,\n isExpandable = true,\n showTime = false,\n allowWrap = false,\n}) => {\n const theme = useTheme();\n const severityColor = theme.palette.text.secondary;\n\n const handleToggle = useCallback(() => {\n if (isExpandable) {\n onToggle(index);\n }\n }, [isExpandable, onToggle, index]);\n\n if (!log) return null;\n\n return (\n <LogRowContainer severityColor={severityColor}>\n <LogRowContent onClick={handleToggle} isExpandable={isExpandable}>\n {isExpandable && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n width: '16px',\n justifyContent: 'center',\n }}\n >\n <ExpandButton size=\"small\" isExpanded={isExpanded}>\n <ChevronRight sx={{ fontSize: '12px' }} />\n </ExpandButton>\n </Box>\n )}\n\n <LogTimestamp timestamp={log.timestamp} />\n\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n marginLeft: '36px',\n }}\n >\n <LogText variant=\"body2\" allowWrap={allowWrap}>\n {log.line}\n </LogText>\n </Box>\n </LogRowContent>\n\n <Collapse in={isExpanded} timeout={200}>\n <Box sx={{ padding: '8px' }}>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: !showTime ? '1fr' : '8px minmax(160px, max-content) 1fr',\n gap: '12px',\n }}\n >\n {showTime && (\n <>\n <Box />\n <Box />\n </>\n )}\n <Box>\n <LogDetailsTable log={log.labels} />\n </Box>\n </Box>\n </Box>\n </Collapse>\n </LogRowContainer>\n );\n};\n\nexport const LogRow = memo(DefaultLogRow);\nLogRow.displayName = 'LogRow';\n"],"names":["React","memo","useCallback","Box","Collapse","useTheme","ChevronRight","LogTimestamp","LogRowContainer","LogRowContent","ExpandButton","LogText","LogDetailsTable","DefaultLogRow","log","isExpanded","index","onToggle","isExpandable","showTime","allowWrap","theme","severityColor","palette","text","secondary","handleToggle","onClick","sx","display","alignItems","width","justifyContent","size","fontSize","timestamp","gap","marginLeft","variant","line","in","timeout","padding","gridTemplateColumns","labels","LogRow","displayName"],"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,OAAOA,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AACjD,SAASC,GAAG,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,gBAAgB;AACxD,OAAOC,kBAAkB,+BAA+B;AAExD,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,eAAe,EAAEC,aAAa,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAe;AACrF,SAASC,eAAe,QAAQ,oBAAoB;AAYpD,MAAMC,gBAAuC,CAAC,EAC5CC,GAAG,EACHC,UAAU,EACVC,KAAK,EACLC,QAAQ,EACRC,eAAe,IAAI,EACnBC,WAAW,KAAK,EAChBC,YAAY,KAAK,EAClB;IACC,MAAMC,QAAQhB;IACd,MAAMiB,gBAAgBD,MAAME,OAAO,CAACC,IAAI,CAACC,SAAS;IAElD,MAAMC,eAAexB,YAAY;QAC/B,IAAIgB,cAAc;YAChBD,SAASD;QACX;IACF,GAAG;QAACE;QAAcD;QAAUD;KAAM;IAElC,IAAI,CAACF,KAAK,OAAO;IAEjB,qBACE,MAACN;QAAgBc,eAAeA;;0BAC9B,MAACb;gBAAckB,SAASD;gBAAcR,cAAcA;;oBACjDA,8BACC,KAACf;wBACCyB,IAAI;4BACFC,SAAS;4BACTC,YAAY;4BACZC,OAAO;4BACPC,gBAAgB;wBAClB;kCAEA,cAAA,KAACtB;4BAAauB,MAAK;4BAAQlB,YAAYA;sCACrC,cAAA,KAACT;gCAAasB,IAAI;oCAAEM,UAAU;gCAAO;;;;kCAK3C,KAAC3B;wBAAa4B,WAAWrB,IAAIqB,SAAS;;kCAEtC,KAAChC;wBACCyB,IAAI;4BACFC,SAAS;4BACTO,KAAK;4BACLC,YAAY;wBACd;kCAEA,cAAA,KAAC1B;4BAAQ2B,SAAQ;4BAAQlB,WAAWA;sCACjCN,IAAIyB,IAAI;;;;;0BAKf,KAACnC;gBAASoC,IAAIzB;gBAAY0B,SAAS;0BACjC,cAAA,KAACtC;oBAAIyB,IAAI;wBAAEc,SAAS;oBAAM;8BACxB,cAAA,MAACvC;wBACCyB,IAAI;4BACFC,SAAS;4BACTc,qBAAqB,CAACxB,WAAW,QAAQ;4BACzCiB,KAAK;wBACP;;4BAECjB,0BACC;;kDACE,KAAChB;kDACD,KAACA;;;0CAGL,KAACA;0CACC,cAAA,KAACS;oCAAgBE,KAAKA,IAAI8B,MAAM;;;;;;;;;AAO9C;AAEA,OAAO,MAAMC,uBAAS5C,KAAKY,eAAe;AAC1CgC,OAAOC,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/LogRow/LogRow.tsx"],"sourcesContent":["// Copyright 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 React, { memo, useCallback, useState, useRef, useEffect, ReactNode } from 'react';\nimport {\n Box,\n Collapse,\n useTheme,\n IconButton,\n Tooltip,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n} from '@mui/material';\nimport ChevronRight from 'mdi-material-ui/ChevronRight';\nimport ContentCopy from 'mdi-material-ui/ContentCopy';\nimport ChevronDown from 'mdi-material-ui/ChevronDown';\nimport FormatQuoteClose from 'mdi-material-ui/FormatQuoteClose';\nimport CodeJson from 'mdi-material-ui/CodeJson';\nimport Check from 'mdi-material-ui/Check';\nimport { LogEntry } from '@perses-dev/core';\nimport { useSeverityColor } from '../hooks/useSeverity';\nimport { formatLogEntry, formatLogMessage, formatLogAsJson } from '../../utils/copyHelpers';\nimport { LogTimestamp } from './LogTimestamp';\nimport { LogRowContainer, LogRowContent, ExpandButton, LogText } from './LogsStyles';\nimport { LogDetailsTable } from './LogDetailsTable';\n\nconst COPY_SUCCESS_DURATION_MS = 1500;\n\ninterface LogRowProps {\n log?: LogEntry;\n index: number;\n isExpanded: boolean;\n onToggle: (index: number) => void;\n isExpandable?: boolean;\n showTime?: boolean;\n allowWrap?: boolean;\n isSelected?: boolean;\n onSelect?: (index: number, event: React.MouseEvent) => void;\n itemActionButtons?: ReactNode[];\n}\n\nconst DefaultLogRow: React.FC<LogRowProps> = ({\n log,\n isExpanded,\n index,\n onToggle,\n isExpandable = true,\n showTime = false,\n allowWrap = false,\n isSelected = false,\n onSelect,\n itemActionButtons,\n}) => {\n const theme = useTheme();\n const severityColor = useSeverityColor(log);\n const [isHovered, setIsHovered] = useState(false);\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [copySuccess, setCopySuccess] = useState(false);\n const rowRef = useRef<HTMLDivElement>(null);\n const copyTimeoutRef = useRef<number | null>(null);\n\n // Cleanup timeout on unmount\n useEffect(() => {\n return () => {\n if (copyTimeoutRef.current) {\n window.clearTimeout(copyTimeoutRef.current);\n }\n };\n }, []);\n\n const handleToggle = useCallback(\n (e: React.MouseEvent) => {\n if (isExpandable) {\n e.stopPropagation();\n onToggle(index);\n }\n },\n [isExpandable, onToggle, index]\n );\n\n const handleRowMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if (onSelect) {\n onSelect(index, e);\n }\n },\n [onSelect, index]\n );\n\n const handleOpenMenu = useCallback((e: React.MouseEvent<HTMLElement>) => {\n e.stopPropagation();\n setAnchorEl(e.currentTarget);\n }, []);\n\n const handleCloseMenu = useCallback(() => {\n setAnchorEl(null);\n setIsHovered(false);\n }, []);\n\n const handleCopy = useCallback(\n async (format: 'full' | 'message' | 'json') => {\n if (!log) return;\n\n let text: string;\n switch (format) {\n case 'message':\n text = formatLogMessage(log);\n break;\n case 'json':\n text = formatLogAsJson(log);\n break;\n case 'full':\n default:\n text = formatLogEntry(log);\n }\n\n await navigator.clipboard.writeText(text);\n setCopySuccess(true);\n handleCloseMenu();\n\n // Clear existing timeout\n if (copyTimeoutRef.current) {\n window.clearTimeout(copyTimeoutRef.current);\n }\n\n // Reset success state after configured duration\n copyTimeoutRef.current = window.setTimeout(() => {\n setCopySuccess(false);\n }, COPY_SUCCESS_DURATION_MS);\n },\n [log, handleCloseMenu]\n );\n\n if (!log) return null;\n\n const hasRowActions = itemActionButtons && itemActionButtons.length > 0;\n\n return (\n <LogRowContainer\n severityColor={severityColor}\n ref={rowRef}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => {\n if (!anchorEl) {\n setIsHovered(false);\n }\n }}\n data-log-index={index}\n data-testid={`log-row-container-${index}`}\n >\n <LogRowContent\n onMouseDown={handleRowMouseDown}\n isExpandable={isExpandable}\n isHighlighted={Boolean(anchorEl)}\n hasRowActions={hasRowActions}\n isSelected={isSelected}\n >\n {isExpandable && (\n <Box\n onClick={handleToggle}\n sx={{\n display: 'flex',\n alignItems: 'center',\n width: '16px',\n justifyContent: 'center',\n cursor: 'pointer',\n }}\n >\n <ExpandButton size=\"small\" isExpanded={isExpanded}>\n <ChevronRight sx={{ fontSize: '12px' }} />\n </ExpandButton>\n </Box>\n )}\n\n <LogTimestamp timestamp={log.timestamp} />\n\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n marginLeft: '36px',\n alignItems: 'center',\n }}\n >\n <LogText variant=\"body2\" allowWrap={allowWrap}>\n {log.line}\n </LogText>\n <Tooltip title={copySuccess ? 'Copied!' : 'Copy options'}>\n <IconButton\n size=\"small\"\n onClick={handleOpenMenu}\n aria-label=\"Copy log options\"\n sx={{\n padding: '4px',\n marginLeft: 'auto',\n color: copySuccess ? theme.palette.success.main : theme.palette.text.secondary,\n opacity: isHovered || Boolean(anchorEl) || copySuccess ? 1 : 0,\n pointerEvents: isHovered || Boolean(anchorEl) || copySuccess ? 'auto' : 'none',\n transition: 'opacity 0.08s ease, color 0.2s ease',\n '&:hover': {\n color: copySuccess ? theme.palette.success.main : theme.palette.primary.main,\n backgroundColor: theme.palette.action.hover,\n },\n borderRadius: '4px',\n display: 'flex',\n gap: '2px',\n }}\n >\n {copySuccess ? (\n <Check sx={{ fontSize: '14px' }} />\n ) : (\n <>\n <ContentCopy sx={{ fontSize: '14px' }} />\n <ChevronDown sx={{ fontSize: '12px' }} />\n </>\n )}\n </IconButton>\n </Tooltip>\n {hasRowActions && (\n <Box\n sx={{\n display: 'flex',\n gap: '4px',\n alignItems: 'center',\n opacity: isHovered || Boolean(anchorEl) ? 1 : 0,\n pointerEvents: isHovered || Boolean(anchorEl) ? 'auto' : 'none',\n transition: 'opacity 0.08s ease',\n }}\n >\n {itemActionButtons}\n </Box>\n )}\n <Menu\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleCloseMenu}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Copy format options\"\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n slotProps={{\n paper: {\n sx: {\n mt: 0.5,\n minWidth: 180,\n boxShadow: theme.shadows[3],\n },\n },\n }}\n >\n <MenuItem\n onClick={() => handleCopy('full')}\n sx={{\n py: 1,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n }}\n >\n <ListItemIcon>\n <ContentCopy fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText\n primary=\"Copy log\"\n secondary=\"Timestamp + labels + message\"\n slotProps={{\n primary: { fontSize: '14px' },\n secondary: { fontSize: '11px' },\n }}\n />\n </MenuItem>\n <MenuItem\n onClick={() => handleCopy('message')}\n sx={{\n py: 1,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n }}\n >\n <ListItemIcon>\n <FormatQuoteClose fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText\n primary=\"Copy message\"\n secondary=\"Message text only\"\n slotProps={{\n primary: { fontSize: '14px' },\n secondary: { fontSize: '11px' },\n }}\n />\n </MenuItem>\n <MenuItem\n onClick={() => handleCopy('json')}\n sx={{\n py: 1,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n }}\n >\n <ListItemIcon>\n <CodeJson fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText\n primary=\"Copy as JSON\"\n secondary=\"Full log entry\"\n slotProps={{\n primary: { fontSize: '14px' },\n secondary: { fontSize: '11px' },\n }}\n />\n </MenuItem>\n </Menu>\n </Box>\n </LogRowContent>\n\n <Collapse in={isExpanded} timeout={200}>\n <Box sx={{ padding: '8px' }}>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: !showTime ? '1fr' : '8px minmax(160px, max-content) 1fr',\n gap: '12px',\n }}\n >\n {showTime && (\n <>\n <Box />\n <Box />\n </>\n )}\n <Box>\n <LogDetailsTable log={log.labels} />\n </Box>\n </Box>\n </Box>\n </Collapse>\n </LogRowContainer>\n );\n};\n\nexport const LogRow = memo(DefaultLogRow);\nLogRow.displayName = 'LogRow';\n"],"names":["React","memo","useCallback","useState","useRef","useEffect","Box","Collapse","useTheme","IconButton","Tooltip","Menu","MenuItem","ListItemIcon","ListItemText","ChevronRight","ContentCopy","ChevronDown","FormatQuoteClose","CodeJson","Check","useSeverityColor","formatLogEntry","formatLogMessage","formatLogAsJson","LogTimestamp","LogRowContainer","LogRowContent","ExpandButton","LogText","LogDetailsTable","COPY_SUCCESS_DURATION_MS","DefaultLogRow","log","isExpanded","index","onToggle","isExpandable","showTime","allowWrap","isSelected","onSelect","itemActionButtons","theme","severityColor","isHovered","setIsHovered","anchorEl","setAnchorEl","copySuccess","setCopySuccess","rowRef","copyTimeoutRef","current","window","clearTimeout","handleToggle","e","stopPropagation","handleRowMouseDown","handleOpenMenu","currentTarget","handleCloseMenu","handleCopy","format","text","navigator","clipboard","writeText","setTimeout","hasRowActions","length","ref","onMouseEnter","onMouseLeave","data-log-index","data-testid","onMouseDown","isHighlighted","Boolean","onClick","sx","display","alignItems","width","justifyContent","cursor","size","fontSize","timestamp","gap","marginLeft","variant","line","title","aria-label","padding","color","palette","success","main","secondary","opacity","pointerEvents","transition","primary","backgroundColor","action","hover","borderRadius","open","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","paper","mt","minWidth","boxShadow","shadows","py","in","timeout","gridTemplateColumns","labels","LogRow","displayName"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- // Copyright 2025 The Perses Authors
2
+ // Copyright The Perses Authors
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
5
5
  // You may obtain a copy of the License at
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/LogRow/LogTimestamp.tsx"],"sourcesContent":["// Copyright 2025 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 React from 'react';\n\ninterface LogTimestampProps {\n timestamp: number | string;\n}\n\nconst dateFromStr = (timestamp: string): Date => {\n return /^\\d+$/.test(timestamp) ? new Date(parseInt(timestamp) * 1000) : new Date(Date.parse(timestamp));\n};\n\nexport const LogTimestamp: React.FC<LogTimestampProps> = ({ timestamp }) => {\n const date = typeof timestamp === 'number' ? new Date(timestamp * 1000) : dateFromStr(timestamp);\n return (\n <time\n style={{\n fontSize: '12px',\n whiteSpace: 'nowrap',\n minWidth: 'max-content',\n }}\n dateTime={date.toISOString()}\n >\n {date.toISOString()}\n </time>\n );\n};\n"],"names":["React","dateFromStr","timestamp","test","Date","parseInt","parse","LogTimestamp","date","time","style","fontSize","whiteSpace","minWidth","dateTime","toISOString"],"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,OAAOA,WAAW,QAAQ;AAM1B,MAAMC,cAAc,CAACC;IACnB,OAAO,QAAQC,IAAI,CAACD,aAAa,IAAIE,KAAKC,SAASH,aAAa,QAAQ,IAAIE,KAAKA,KAAKE,KAAK,CAACJ;AAC9F;AAEA,OAAO,MAAMK,eAA4C,CAAC,EAAEL,SAAS,EAAE;IACrE,MAAMM,OAAO,OAAON,cAAc,WAAW,IAAIE,KAAKF,YAAY,QAAQD,YAAYC;IACtF,qBACE,KAACO;QACCC,OAAO;YACLC,UAAU;YACVC,YAAY;YACZC,UAAU;QACZ;QACAC,UAAUN,KAAKO,WAAW;kBAEzBP,KAAKO,WAAW;;AAGvB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/LogRow/LogTimestamp.tsx"],"sourcesContent":["// Copyright 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 React from 'react';\n\ninterface LogTimestampProps {\n timestamp: number | string;\n}\n\nconst dateFromStr = (timestamp: string): Date => {\n return /^\\d+$/.test(timestamp) ? new Date(parseInt(timestamp) * 1000) : new Date(Date.parse(timestamp));\n};\n\nexport const LogTimestamp: React.FC<LogTimestampProps> = ({ timestamp }) => {\n const date = typeof timestamp === 'number' ? new Date(timestamp * 1000) : dateFromStr(timestamp);\n return (\n <time\n style={{\n fontSize: '12px',\n whiteSpace: 'nowrap',\n minWidth: 'max-content',\n }}\n dateTime={date.toISOString()}\n >\n {date.toISOString()}\n </time>\n );\n};\n"],"names":["React","dateFromStr","timestamp","test","Date","parseInt","parse","LogTimestamp","date","time","style","fontSize","whiteSpace","minWidth","dateTime","toISOString"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAOA,WAAW,QAAQ;AAM1B,MAAMC,cAAc,CAACC;IACnB,OAAO,QAAQC,IAAI,CAACD,aAAa,IAAIE,KAAKC,SAASH,aAAa,QAAQ,IAAIE,KAAKA,KAAKE,KAAK,CAACJ;AAC9F;AAEA,OAAO,MAAMK,eAA4C,CAAC,EAAEL,SAAS,EAAE;IACrE,MAAMM,OAAO,OAAON,cAAc,WAAW,IAAIE,KAAKF,YAAY,QAAQD,YAAYC;IACtF,qBACE,KAACO;QACCC,OAAO;YACLC,UAAU;YACVC,YAAY;YACZC,UAAU;QACZ;QACAC,UAAUN,KAAKO,WAAW;kBAEzBP,KAAKO,WAAW;;AAGvB,EAAE"}
@@ -7,6 +7,9 @@ export declare const LogRowContent: import("@emotion/styled").StyledComponent<im
7
7
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
8
8
  }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
9
9
  isExpandable: boolean;
10
+ isHighlighted?: boolean;
11
+ isSelected?: boolean;
12
+ hasRowActions?: boolean;
10
13
  }, {}, {}>;
11
14
  export declare const ExpandButton: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
12
15
  ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"LogsStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogsStyles.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,eAAe;;;oBAEP,MAAM;UAKxB,CAAC;AAEJ,eAAO,MAAM,aAAa;;;kBAEP,OAAO;UAUvB,CAAC;AAEJ,eAAO,MAAM,YAAY;;;gBAER,OAAO;UAOrB,CAAC;AAEJ,eAAO,MAAM,OAAO;;;eAEJ,OAAO;UAgBpB,CAAC"}
1
+ {"version":3,"file":"LogsStyles.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogsStyles.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,eAAe;;;oBAEP,MAAM;UAMxB,CAAC;AAEJ,eAAO,MAAM,aAAa;;;kBAGP,OAAO;oBAAkB,OAAO;iBAAe,OAAO;oBAAkB,OAAO;UAmBjG,CAAC;AAEF,eAAO,MAAM,YAAY;;;gBAER,OAAO;UAOrB,CAAC;AAEJ,eAAO,MAAM,OAAO;;;eAEJ,OAAO;UAgBpB,CAAC"}
@@ -1,4 +1,4 @@
1
- // Copyright 2025 The Perses Authors
1
+ // Copyright The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -17,19 +17,21 @@ export const LogRowContainer = styled(Box, {
17
17
  borderLeft: `4px solid ${severityColor}`,
18
18
  transition: 'all 0.2s ease',
19
19
  marginBottom: '4px',
20
- fontFamily: '"DejaVu Sans Mono", monospace'
20
+ fontFamily: '"DejaVu Sans Mono", monospace',
21
+ userSelect: 'text'
21
22
  }));
22
23
  export const LogRowContent = styled(Box, {
23
- shouldForwardProp: (prop)=>prop !== 'isExpandable'
24
- })(({ theme, isExpandable })=>({
24
+ shouldForwardProp: (prop)=>prop !== 'isExpandable' && prop !== 'isHighlighted' && prop !== 'isSelected' && prop !== 'hasRowActions'
25
+ })(({ theme, isExpandable, isHighlighted, isSelected, hasRowActions })=>({
25
26
  display: 'grid',
26
- gridTemplateColumns: isExpandable ? '16px minmax(160px, max-content) 1fr' : 'minmax(160px, max-content) 1fr',
27
+ gridTemplateColumns: isExpandable ? `16px minmax(160px, max-content) 1fr ${hasRowActions ? 'min-content' : ''}` : `minmax(160px, max-content) 1fr ${hasRowActions ? 'min-content' : ''}`,
27
28
  alignItems: 'flex-start',
28
29
  padding: '4px 8px',
29
- cursor: isExpandable ? 'pointer' : 'default',
30
+ cursor: 'default',
30
31
  gap: '12px',
32
+ backgroundColor: isHighlighted ? theme.palette.action.hover : isSelected ? theme.palette.action.selected : 'transparent',
31
33
  '&:hover': {
32
- backgroundColor: theme.palette.action.hover
34
+ backgroundColor: isSelected ? theme.palette.action.focus : theme.palette.action.hover
33
35
  }
34
36
  }));
35
37
  export const ExpandButton = styled(IconButton, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/LogRow/LogsStyles.tsx"],"sourcesContent":["// Copyright 2025 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, styled, IconButton, Typography } from '@mui/material';\n\nexport const LogRowContainer = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'severityColor',\n})<{ severityColor?: string }>(({ severityColor }) => ({\n borderLeft: `4px solid ${severityColor}`,\n transition: 'all 0.2s ease',\n marginBottom: '4px',\n fontFamily: '\"DejaVu Sans Mono\", monospace',\n}));\n\nexport const LogRowContent = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'isExpandable',\n})<{ isExpandable: boolean }>(({ theme, isExpandable }) => ({\n display: 'grid',\n gridTemplateColumns: isExpandable ? '16px minmax(160px, max-content) 1fr' : 'minmax(160px, max-content) 1fr',\n alignItems: 'flex-start',\n padding: '4px 8px',\n cursor: isExpandable ? 'pointer' : 'default',\n gap: '12px',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n}));\n\nexport const ExpandButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'isExpanded',\n})<{ isExpanded: boolean }>(({ theme, isExpanded }) => ({\n padding: 0,\n width: '16px',\n height: '16px',\n color: theme.palette.text.secondary,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease',\n}));\n\nexport const LogText = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'allowWrap',\n})<{ allowWrap: boolean }>(({ allowWrap }) => ({\n fontSize: '12px',\n flex: 1,\n lineHeight: 1.4,\n textAlign: 'left',\n ...(allowWrap\n ? {\n wordBreak: 'break-word',\n whiteSpace: 'pre-wrap',\n overflow: 'visible',\n textOverflow: 'unset',\n }\n : {\n wordBreak: 'normal',\n whiteSpace: 'nowrap',\n }),\n}));\n"],"names":["Box","styled","IconButton","Typography","LogRowContainer","shouldForwardProp","prop","severityColor","borderLeft","transition","marginBottom","fontFamily","LogRowContent","theme","isExpandable","display","gridTemplateColumns","alignItems","padding","cursor","gap","backgroundColor","palette","action","hover","ExpandButton","isExpanded","width","height","color","text","secondary","transform","LogText","allowWrap","fontSize","flex","lineHeight","textAlign","wordBreak","whiteSpace","overflow","textOverflow"],"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,GAAG,EAAEC,MAAM,EAAEC,UAAU,EAAEC,UAAU,QAAQ,gBAAgB;AAEpE,OAAO,MAAMC,kBAAkBH,OAAOD,KAAK;IACzCK,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA+B,CAAC,EAAEC,aAAa,EAAE,GAAM,CAAA;QACrDC,YAAY,CAAC,UAAU,EAAED,eAAe;QACxCE,YAAY;QACZC,cAAc;QACdC,YAAY;IACd,CAAA,GAAI;AAEJ,OAAO,MAAMC,gBAAgBX,OAAOD,KAAK;IACvCK,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA8B,CAAC,EAAEO,KAAK,EAAEC,YAAY,EAAE,GAAM,CAAA;QAC1DC,SAAS;QACTC,qBAAqBF,eAAe,wCAAwC;QAC5EG,YAAY;QACZC,SAAS;QACTC,QAAQL,eAAe,YAAY;QACnCM,KAAK;QACL,WAAW;YACTC,iBAAiBR,MAAMS,OAAO,CAACC,MAAM,CAACC,KAAK;QAC7C;IACF,CAAA,GAAI;AAEJ,OAAO,MAAMC,eAAexB,OAAOC,YAAY;IAC7CG,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA4B,CAAC,EAAEO,KAAK,EAAEa,UAAU,EAAE,GAAM,CAAA;QACtDR,SAAS;QACTS,OAAO;QACPC,QAAQ;QACRC,OAAOhB,MAAMS,OAAO,CAACQ,IAAI,CAACC,SAAS;QACnCC,WAAWN,aAAa,kBAAkB;QAC1CjB,YAAY;IACd,CAAA,GAAI;AAEJ,OAAO,MAAMwB,UAAUhC,OAAOE,YAAY;IACxCE,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA2B,CAAC,EAAE4B,SAAS,EAAE,GAAM,CAAA;QAC7CC,UAAU;QACVC,MAAM;QACNC,YAAY;QACZC,WAAW;QACX,GAAIJ,YACA;YACEK,WAAW;YACXC,YAAY;YACZC,UAAU;YACVC,cAAc;QAChB,IACA;YACEH,WAAW;YACXC,YAAY;QACd,CAAC;IACP,CAAA,GAAI"}
1
+ {"version":3,"sources":["../../../../src/components/LogRow/LogsStyles.tsx"],"sourcesContent":["// Copyright 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, styled, IconButton, Typography } from '@mui/material';\n\nexport const LogRowContainer = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'severityColor',\n})<{ severityColor?: string }>(({ severityColor }) => ({\n borderLeft: `4px solid ${severityColor}`,\n transition: 'all 0.2s ease',\n marginBottom: '4px',\n fontFamily: '\"DejaVu Sans Mono\", monospace',\n userSelect: 'text',\n}));\n\nexport const LogRowContent = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== 'isExpandable' && prop !== 'isHighlighted' && prop !== 'isSelected' && prop !== 'hasRowActions',\n})<{ isExpandable: boolean; isHighlighted?: boolean; isSelected?: boolean; hasRowActions?: boolean }>(\n ({ theme, isExpandable, isHighlighted, isSelected, hasRowActions }) => ({\n display: 'grid',\n gridTemplateColumns: isExpandable\n ? `16px minmax(160px, max-content) 1fr ${hasRowActions ? 'min-content' : ''}`\n : `minmax(160px, max-content) 1fr ${hasRowActions ? 'min-content' : ''}`,\n alignItems: 'flex-start',\n padding: '4px 8px',\n cursor: 'default',\n gap: '12px',\n backgroundColor: isHighlighted\n ? theme.palette.action.hover\n : isSelected\n ? theme.palette.action.selected\n : 'transparent',\n '&:hover': {\n backgroundColor: isSelected ? theme.palette.action.focus : theme.palette.action.hover,\n },\n })\n);\n\nexport const ExpandButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'isExpanded',\n})<{ isExpanded: boolean }>(({ theme, isExpanded }) => ({\n padding: 0,\n width: '16px',\n height: '16px',\n color: theme.palette.text.secondary,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease',\n}));\n\nexport const LogText = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'allowWrap',\n})<{ allowWrap: boolean }>(({ allowWrap }) => ({\n fontSize: '12px',\n flex: 1,\n lineHeight: 1.4,\n textAlign: 'left',\n ...(allowWrap\n ? {\n wordBreak: 'break-word',\n whiteSpace: 'pre-wrap',\n overflow: 'visible',\n textOverflow: 'unset',\n }\n : {\n wordBreak: 'normal',\n whiteSpace: 'nowrap',\n }),\n}));\n"],"names":["Box","styled","IconButton","Typography","LogRowContainer","shouldForwardProp","prop","severityColor","borderLeft","transition","marginBottom","fontFamily","userSelect","LogRowContent","theme","isExpandable","isHighlighted","isSelected","hasRowActions","display","gridTemplateColumns","alignItems","padding","cursor","gap","backgroundColor","palette","action","hover","selected","focus","ExpandButton","isExpanded","width","height","color","text","secondary","transform","LogText","allowWrap","fontSize","flex","lineHeight","textAlign","wordBreak","whiteSpace","overflow","textOverflow"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,GAAG,EAAEC,MAAM,EAAEC,UAAU,EAAEC,UAAU,QAAQ,gBAAgB;AAEpE,OAAO,MAAMC,kBAAkBH,OAAOD,KAAK;IACzCK,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA+B,CAAC,EAAEC,aAAa,EAAE,GAAM,CAAA;QACrDC,YAAY,CAAC,UAAU,EAAED,eAAe;QACxCE,YAAY;QACZC,cAAc;QACdC,YAAY;QACZC,YAAY;IACd,CAAA,GAAI;AAEJ,OAAO,MAAMC,gBAAgBZ,OAAOD,KAAK;IACvCK,mBAAmB,CAACC,OAClBA,SAAS,kBAAkBA,SAAS,mBAAmBA,SAAS,gBAAgBA,SAAS;AAC7F,GACE,CAAC,EAAEQ,KAAK,EAAEC,YAAY,EAAEC,aAAa,EAAEC,UAAU,EAAEC,aAAa,EAAE,GAAM,CAAA;QACtEC,SAAS;QACTC,qBAAqBL,eACjB,CAAC,oCAAoC,EAAEG,gBAAgB,gBAAgB,IAAI,GAC3E,CAAC,+BAA+B,EAAEA,gBAAgB,gBAAgB,IAAI;QAC1EG,YAAY;QACZC,SAAS;QACTC,QAAQ;QACRC,KAAK;QACLC,iBAAiBT,gBACbF,MAAMY,OAAO,CAACC,MAAM,CAACC,KAAK,GAC1BX,aACEH,MAAMY,OAAO,CAACC,MAAM,CAACE,QAAQ,GAC7B;QACN,WAAW;YACTJ,iBAAiBR,aAAaH,MAAMY,OAAO,CAACC,MAAM,CAACG,KAAK,GAAGhB,MAAMY,OAAO,CAACC,MAAM,CAACC,KAAK;QACvF;IACF,CAAA,GACA;AAEF,OAAO,MAAMG,eAAe9B,OAAOC,YAAY;IAC7CG,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA4B,CAAC,EAAEQ,KAAK,EAAEkB,UAAU,EAAE,GAAM,CAAA;QACtDV,SAAS;QACTW,OAAO;QACPC,QAAQ;QACRC,OAAOrB,MAAMY,OAAO,CAACU,IAAI,CAACC,SAAS;QACnCC,WAAWN,aAAa,kBAAkB;QAC1CvB,YAAY;IACd,CAAA,GAAI;AAEJ,OAAO,MAAM8B,UAAUtC,OAAOE,YAAY;IACxCE,mBAAmB,CAACC,OAASA,SAAS;AACxC,GAA2B,CAAC,EAAEkC,SAAS,EAAE,GAAM,CAAA;QAC7CC,UAAU;QACVC,MAAM;QACNC,YAAY;QACZC,WAAW;QACX,GAAIJ,YACA;YACEK,WAAW;YACXC,YAAY;YACZC,UAAU;YACVC,cAAc;QAChB,IACA;YACEH,WAAW;YACXC,YAAY;QACd,CAAC;IACP,CAAA,GAAI"}
@@ -1,4 +1,4 @@
1
- // Copyright 2025 The Perses Authors
1
+ // Copyright The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/LogRow/index.ts"],"sourcesContent":["// Copyright 2025 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\nexport { LogRow } from './LogRow';\nexport * from './LogsStyles';\n"],"names":["LogRow"],"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,MAAM,QAAQ,WAAW;AAClC,cAAc,eAAe"}
1
+ {"version":3,"sources":["../../../../src/components/LogRow/index.ts"],"sourcesContent":["// Copyright 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\nexport { LogRow } from './LogRow';\nexport * from './LogsStyles';\n"],"names":["LogRow"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,MAAM,QAAQ,WAAW;AAClC,cAAc,eAAe"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- // Copyright 2025 The Perses Authors
2
+ // Copyright The Perses Authors
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
5
5
  // You may obtain a copy of the License at
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/LogsList.tsx"],"sourcesContent":["// Copyright 2025 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 React from 'react';\nimport { LogEntry } from '@perses-dev/core';\nimport { LogsTableOptions } from '../model';\nimport { EmptyLogsState } from './EmptyLogsState';\nimport { useExpandedRows } from './hooks/useExpandedRows';\nimport { VirtualizedLogsList } from './VirtualizedLogsList';\n\ninterface LogsListProps {\n logs: LogEntry[];\n spec: LogsTableOptions;\n}\n\nexport const LogsList: React.FC<LogsListProps> = ({ logs, spec }) => {\n const { expandedRows, toggleExpand } = useExpandedRows();\n\n if (!logs.length) {\n return <EmptyLogsState />;\n }\n\n return <VirtualizedLogsList logs={logs} spec={spec} expandedRows={expandedRows} onToggleExpand={toggleExpand} />;\n};\n"],"names":["React","EmptyLogsState","useExpandedRows","VirtualizedLogsList","LogsList","logs","spec","expandedRows","toggleExpand","length","onToggleExpand"],"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,OAAOA,WAAW,QAAQ;AAG1B,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,mBAAmB,QAAQ,wBAAwB;AAO5D,OAAO,MAAMC,WAAoC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAE;IAC9D,MAAM,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGN;IAEvC,IAAI,CAACG,KAAKI,MAAM,EAAE;QAChB,qBAAO,KAACR;IACV;IAEA,qBAAO,KAACE;QAAoBE,MAAMA;QAAMC,MAAMA;QAAMC,cAAcA;QAAcG,gBAAgBF;;AAClG,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/LogsList.tsx"],"sourcesContent":["// Copyright 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 React from 'react';\nimport { LogEntry } from '@perses-dev/core';\nimport { LogsTableOptions } from '../model';\nimport { EmptyLogsState } from './EmptyLogsState';\nimport { useExpandedRows } from './hooks/useExpandedRows';\nimport { VirtualizedLogsList } from './VirtualizedLogsList';\n\ninterface LogsListProps {\n logs: LogEntry[];\n spec: LogsTableOptions;\n}\n\nexport const LogsList: React.FC<LogsListProps> = ({ logs, spec }) => {\n const { expandedRows, toggleExpand } = useExpandedRows();\n\n if (!logs.length) {\n return <EmptyLogsState />;\n }\n\n return <VirtualizedLogsList logs={logs} spec={spec} expandedRows={expandedRows} onToggleExpand={toggleExpand} />;\n};\n"],"names":["React","EmptyLogsState","useExpandedRows","VirtualizedLogsList","LogsList","logs","spec","expandedRows","toggleExpand","length","onToggleExpand"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAOA,WAAW,QAAQ;AAG1B,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,mBAAmB,QAAQ,wBAAwB;AAO5D,OAAO,MAAMC,WAAoC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAE;IAC9D,MAAM,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGN;IAEvC,IAAI,CAACG,KAAKI,MAAM,EAAE;QAChB,qBAAO,KAACR;IACV;IAEA,qBAAO,KAACE;QAAoBE,MAAMA;QAAMC,MAAMA;QAAMC,cAAcA;QAAcG,gBAAgBF;;AAClG,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedLogsList.d.ts","sourceRoot":"","sources":["../../../src/components/VirtualizedLogsList.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,UAAU,wBAAwB;IAChC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA0ClE,CAAC"}
1
+ {"version":3,"file":"VirtualizedLogsList.d.ts","sourceRoot":"","sources":["../../../src/components/VirtualizedLogsList.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAInF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAS5C,UAAU,wBAAwB;IAChC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAualE,CAAC"}