diff --git a/i18n/en.pot b/i18n/en.pot index 4e210aef..4dc7e86d 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2026-06-30T04:22:42.079Z\n" -"PO-Revision-Date: 2026-06-30T04:22:42.081Z\n" +"POT-Creation-Date: 2026-07-03T12:42:31.329Z\n" +"PO-Revision-Date: 2026-07-03T12:42:31.331Z\n" msgid "" "Some dimensions were not added because they cannot be used in a " @@ -579,6 +579,12 @@ msgstr "Options" msgid "Display" msgstr "Display" +msgid "Line list title" +msgstr "Line list title" + +msgid "Line list subtitle" +msgstr "Line list subtitle" + msgid "Totals" msgstr "Totals" diff --git a/src/components/line-list/heading-row.tsx b/src/components/line-list/heading-row.tsx new file mode 100644 index 00000000..1d9e2363 --- /dev/null +++ b/src/components/line-list/heading-row.tsx @@ -0,0 +1,25 @@ +import { DataTableColumnHeader, DataTableRow } from '@dhis2/ui' +import cx from 'classnames' +import type { FC } from 'react' +import headerClasses from './styles/header-cell.module.css' +import classes from './styles/heading-row.module.css' + +type HeadingRowProps = { + text: string + colSpan: number +} + +export const HeadingRow: FC = ({ text, colSpan }) => ( + + + {text} + + +) diff --git a/src/components/line-list/line-list.tsx b/src/components/line-list/line-list.tsx index 6ceec713..fda3f6f2 100644 --- a/src/components/line-list/line-list.tsx +++ b/src/components/line-list/line-list.tsx @@ -18,6 +18,7 @@ import { import { BodyCell } from './body-cell' import { FetchOverlay } from './fetch-overlay' import { HeaderCell } from './header-cell' +import { HeadingRow } from './heading-row' import { LegendKey } from './legend-key' import { NoTimeDimensionWarning } from './no-time-dimension-warning' import { ScrollBox } from './scroll-box' @@ -152,6 +153,18 @@ const LineListInternal: FC = ({ dataTest="line-list-data-table-head" className={classes.fixedHead} > + {visualization.title && ( + + )} + {visualization.subtitle && ( + + )} {headers.map((header) => ( (
+ + <Subtitle label={i18n.t('Line list subtitle')} /> <DisplayDensity /> <FontSize /> <DigitGroupSeparator />