diff --git a/.stylelintrc.js b/.stylelintrc.js new file mode 100644 index 0000000000..913c9635ee --- /dev/null +++ b/.stylelintrc.js @@ -0,0 +1,13 @@ +const { config } = require('@dhis2/cli-style') + +module.exports = { + extends: [config.stylelint], + rules: { + 'csstools/use-logical': [ + true, + { + severity: 'error', + }, + ], + }, +} diff --git a/d2.config.js b/d2.config.js index 1f003e36b3..f256c28edc 100644 --- a/d2.config.js +++ b/d2.config.js @@ -7,6 +7,8 @@ const config = { minDHIS2Version: '2.40', + direction: 'auto', + pwa: { enabled: true, caching: { diff --git a/package.json b/package.json index fab13efb24..3e60552c44 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,8 @@ "cy:run": "start-server-and-test 'yarn start:nobrowser' http://localhost:3000 'yarn cypress run --browser chrome headless --env networkMode=live'" }, "devDependencies": { - "@dhis2/cli-app-scripts": "^10.3.9", - "@dhis2/cli-style": "^10.5.1", + "@dhis2/cli-app-scripts": "^11.3.0", + "@dhis2/cli-style": "^10.7.3", "@dhis2/cypress-commands": "^10.0.3", "@dhis2/cypress-plugins": "^10.0.2", "@reportportal/agent-js-cypress": "git+https://github.com/dhis2/agent-js-cypress.git#develop", @@ -44,7 +44,7 @@ }, "dependencies": { "@dhis2/analytics": "^26.8.1", - "@dhis2/app-runtime": "^3.7.0", + "@dhis2/app-runtime": "^3.10.4", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", "@dhis2/d2-i18n": "^1.1.0", diff --git a/src/components/App.css b/src/components/App.css index 9508d24b08..fd418e559c 100644 --- a/src/components/App.css +++ b/src/components/App.css @@ -1,7 +1,7 @@ /* App */ .data-visualizer-app { - height: 100%; + block-size: 100%; background-color: var(--colors-grey300); overflow: hidden; } @@ -34,7 +34,7 @@ body { /* Headerbar */ .section-headerbar { - height: 48px; + block-size: 48px; } /* Main */ @@ -43,14 +43,14 @@ body { } .main-left { - min-width: 260px; + min-inline-size: 260px; } .main-right { flex: 1 1 0%; - max-width: 380px; + max-inline-size: 380px; background-color: var(--colors-grey100); - border-left: 1px solid var(--colors-grey400); + border-inline-start: 1px solid var(--colors-grey400); box-shadow: 1px 0 -2px 0 rgba(0, 0, 0, 0.03); overflow-y: auto; overflow-x: hidden; @@ -61,7 +61,7 @@ body { .main-center-canvas { display: flex; justify-content: center; - height: 100%; + block-size: 100%; overflow: hidden; position: relative; } diff --git a/src/components/AxesTabs/AxesTabs.js b/src/components/AxesTabs/AxesTabs.js index 7bd1d21286..dfa622741a 100644 --- a/src/components/AxesTabs/AxesTabs.js +++ b/src/components/AxesTabs/AxesTabs.js @@ -2,7 +2,7 @@ import PropTypes from 'prop-types' import React, { useState } from 'react' import VerticalTab from '../VerticalTabBar/VerticalTab.js' import VerticalTabBar from '../VerticalTabBar/VerticalTabBar.js' -import { tabSectionTitle } from '../VisualizationOptions/styles/VisualizationOptions.style.js' +import tabStyles from '../VisualizationOptions/styles/VisualizationOptions.module.css' import styles from './styles/AxesTabs.module.css' const AxesTabs = ({ items, dataTest }) => { @@ -24,12 +24,11 @@ const AxesTabs = ({ items, dataTest }) => {
- + {items[selectedTabIndex].label} {items[selectedTabIndex].content}
- {tabSectionTitle.styles} ) } diff --git a/src/components/AxesTabs/styles/AxesTabs.module.css b/src/components/AxesTabs/styles/AxesTabs.module.css index c7486512cf..651fd2745f 100644 --- a/src/components/AxesTabs/styles/AxesTabs.module.css +++ b/src/components/AxesTabs/styles/AxesTabs.module.css @@ -1,11 +1,10 @@ .tabs { - width: 200px; + inline-size: 200px; position: absolute; - top: 136px; /* modal title + horizontal tab bar height */ - bottom: 84px; /* modal actions section height */ + inset-block: 136px 84px; /* modal title + horizontal tab bar height */ /* modal actions section height */ z-index: 1; } .content { - margin-left: 200px; + margin-inline-start: 200px; } diff --git a/src/components/DetailsPanel/styles/DetailsPanel.module.css b/src/components/DetailsPanel/styles/DetailsPanel.module.css index 2106c40f9a..96144e10a8 100644 --- a/src/components/DetailsPanel/styles/DetailsPanel.module.css +++ b/src/components/DetailsPanel/styles/DetailsPanel.module.css @@ -1,3 +1,3 @@ .panel { - width: 380px; + inline-size: 380px; } diff --git a/src/components/DimensionsPanel/Dialogs/styles/DialogManager.module.css b/src/components/DimensionsPanel/Dialogs/styles/DialogManager.module.css index 1381c380c3..912063c86c 100644 --- a/src/components/DimensionsPanel/Dialogs/styles/DialogManager.module.css +++ b/src/components/DimensionsPanel/Dialogs/styles/DialogManager.module.css @@ -1,3 +1,3 @@ .tabs { - padding-bottom: var(--spacers-dp16); + padding-block-end: var(--spacers-dp16); } diff --git a/src/components/DimensionsPanel/styles/DndDimensionList.module.css b/src/components/DimensionsPanel/styles/DndDimensionList.module.css index 37f4d0b203..d57f26d2b1 100644 --- a/src/components/DimensionsPanel/styles/DndDimensionList.module.css +++ b/src/components/DimensionsPanel/styles/DndDimensionList.module.css @@ -1,19 +1,19 @@ .container { position: relative; flex: 1 1 0%; - min-height: 30vh; + min-block-size: 30vh; } .wrapper { position: absolute; - width: 100%; - height: 100%; + inline-size: 100%; + block-size: 100%; overflow: auto; - margin-top: 0px; + margin-block-start: 0px; padding: var(--spacers-dp8); background: var(--colors-white); - border-top: 1px solid var(--colors-grey300); - border-bottom: 1px solid var(--colors-grey300); + border-block-start: 1px solid var(--colors-grey300); + border-block-end: 1px solid var(--colors-grey300); } .list { @@ -28,11 +28,14 @@ text-transform: uppercase; font-size: 11px; color: var(--colors-grey600); - margin: 0 0 var(--spacers-dp8) 0; + margin-block-start: 0; + margin-block-end: var(--spacers-dp8); + margin-inline-start: 0; + margin-inline-end: 0; letter-spacing: 0.3px; font-weight: 400; } .section:not(:last-child) { - margin-bottom: var(--spacers-dp24); + margin-block-end: var(--spacers-dp24); } diff --git a/src/components/DimensionsPanel/styles/DndDimensionsPanel.module.css b/src/components/DimensionsPanel/styles/DndDimensionsPanel.module.css index 4b4d930f76..1adc0f539a 100644 --- a/src/components/DimensionsPanel/styles/DndDimensionsPanel.module.css +++ b/src/components/DimensionsPanel/styles/DndDimensionsPanel.module.css @@ -1,15 +1,18 @@ .container { - height: 100%; + block-size: 100%; display: flex; flex-direction: column; background-color: var(--colors-grey100); - border-right: 1px solid var(--colors-grey400); + border-inline-end: 1px solid var(--colors-grey400); box-shadow: 1px 0 2px 0 rgba(0, 0, 0, 0.03); padding: 0; overflow: hidden; } .filter { - padding: var(--spacers-dp8) var(--spacers-dp8) 0 var(--spacers-dp8); + padding-block-start: var(--spacers-dp8); + padding-block-end: 0; + padding-inline-start: var(--spacers-dp8); + padding-inline-end: var(--spacers-dp8); background: var(--colors-white); } diff --git a/src/components/DownloadMenu/ModalDownloadDropdown.module.css b/src/components/DownloadMenu/ModalDownloadDropdown.module.css index 55c5ecaf22..3e39ed3d78 100644 --- a/src/components/DownloadMenu/ModalDownloadDropdown.module.css +++ b/src/components/DownloadMenu/ModalDownloadDropdown.module.css @@ -1,4 +1,4 @@ .container { - margin-top: var(--spacers-dp12); - margin-bottom: var(--spacers-dp16); + margin-block-start: var(--spacers-dp12); + margin-block-end: var(--spacers-dp16); } diff --git a/src/components/IconButton/styles/IconButton.module.css b/src/components/IconButton/styles/IconButton.module.css index 413b863096..14440db8ab 100644 --- a/src/components/IconButton/styles/IconButton.module.css +++ b/src/components/IconButton/styles/IconButton.module.css @@ -10,9 +10,12 @@ padding: 0; vertical-align: middle; border-radius: 0; - width: 20px; - height: 20px; - margin: 0px 0px 0px 2px; + inline-size: 20px; + block-size: 20px; + margin-block-start: 0px; + margin-block-end: 0px; + margin-inline-start: 2px; + margin-inline-end: 0px; color: var(--colors-grey700); } diff --git a/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css b/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css index 2f3ba96073..fff6bf53ff 100644 --- a/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css +++ b/src/components/Layout/DefaultLayout/styles/DefaultAxis.module.css @@ -1,10 +1,10 @@ .content { - width: 100%; + inline-size: 100%; display: flex; align-items: flex-start; align-content: flex-start; flex-wrap: wrap; - min-height: 26px; + min-block-size: 26px; } .content > div { diff --git a/src/components/Layout/DefaultLayout/styles/DefaultAxis.style.js b/src/components/Layout/DefaultLayout/styles/DefaultAxis.style.js index a3c55e8e86..73b8dce7ae 100644 --- a/src/components/Layout/DefaultLayout/styles/DefaultAxis.style.js +++ b/src/components/Layout/DefaultLayout/styles/DefaultAxis.style.js @@ -11,7 +11,7 @@ export default { padding: layoutStyle.AXIS_PADDING, }, axisContainerLeft: { - borderLeftWidth: 0, + borderInlineStartWidth: 0, }, label: { minWidth: 55, diff --git a/src/components/Layout/ScatterLayout/styles/ScatterAxis.style.js b/src/components/Layout/ScatterLayout/styles/ScatterAxis.style.js index 27d7cb3ca1..75f705d075 100644 --- a/src/components/Layout/ScatterLayout/styles/ScatterAxis.style.js +++ b/src/components/Layout/ScatterLayout/styles/ScatterAxis.style.js @@ -12,7 +12,7 @@ export default { padding: layoutStyle.AXIS_PADDING, }, axisContainerLeft: { - borderLeftWidth: 0, + borderInlineStartWidth: 0, }, label: { minWidth: 55, diff --git a/src/components/Layout/styles/Chip.module.css b/src/components/Layout/styles/Chip.module.css index aa0443fbc1..c6e200bf5e 100644 --- a/src/components/Layout/styles/Chip.module.css +++ b/src/components/Layout/styles/Chip.module.css @@ -1,5 +1,5 @@ .chip { - max-width: 400px; + max-inline-size: 400px; display: flex; align-items: center; background-color: var(--colors-teal100); @@ -40,27 +40,39 @@ } .fixedDimensionIcon { - padding: 0 4px; + padding-block-start: 0; + padding-block-end: 0; + padding-inline-start: 4px; + padding-inline-end: 4px; } .leftIconWrapper { - padding: 0 4px; + padding-block-start: 0; + padding-block-end: 0; + padding-inline-start: 4px; + padding-inline-end: 4px; display: flex; align-items: center; } .warningIconWrapper { - padding-left: 2px; - height: 20px; + padding-inline-start: 2px; + block-size: 20px; display: flex; align-items: center; } .lockIconWrapper { background: #cbe7e5; - height: 20px; - padding: 0 2px 0 3px; - margin: 0 0 0 2px; + block-size: 20px; + padding-block-start: 0; + padding-block-end: 0; + padding-inline-start: 3px; + padding-inline-end: 2px; + margin-block-start: 0; + margin-block-end: 0; + margin-inline-start: 2px; + margin-inline-end: 0; display: flex; align-items: center; justify-content: center; @@ -89,19 +101,22 @@ overflow: hidden; text-overflow: ellipsis; display: flex; - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; + border-start-end-radius: 0px; + border-end-end-radius: 0px; align-items: center; - min-height: 20px; - margin: 0 2px 0 0; + min-block-size: 20px; + margin-block-start: 0; + margin-block-end: 0; + margin-inline-start: 0; + margin-inline-end: 2px; } .chipRight { - padding-left: 0px; - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; + padding-inline-start: 0px; + border-start-start-radius: 0px; + border-end-start-radius: 0px; display: flex; - height: 20px; + block-size: 20px; } .chipRight + .lockIconWrapper { @@ -113,10 +128,13 @@ font-size: 11px; background: #c5e4e3; border-radius: 2px; - margin-left: 4px; - min-width: 12px; + margin-inline-start: 4px; + min-inline-size: 12px; text-align: center; - padding: 2px 2px 1px 2px; + padding-block-start: 2px; + padding-block-end: 1px; + padding-inline-start: 2px; + padding-inline-end: 2px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; diff --git a/src/components/Layout/styles/Tooltip.style.js b/src/components/Layout/styles/Tooltip.style.js index 0118849244..862c954d99 100644 --- a/src/components/Layout/styles/Tooltip.style.js +++ b/src/components/Layout/styles/Tooltip.style.js @@ -32,6 +32,6 @@ export const styles = { }, label: { whiteSpace: 'normal', - marginLeft: '6px', + marginInlineStart: '6px', }, } diff --git a/src/components/Snackbar/styles/Snackbar.module.css b/src/components/Snackbar/styles/Snackbar.module.css index b3036dffa8..d43abf9bec 100644 --- a/src/components/Snackbar/styles/Snackbar.module.css +++ b/src/components/Snackbar/styles/Snackbar.module.css @@ -1,6 +1,6 @@ .container { position: fixed; - bottom: 0; - left: 50%; + inset-block-end: 0; + inset-inline-start: 50%; transform: translateX(-50%); } diff --git a/src/components/TitleBar/styles/TitleBar.style.js b/src/components/TitleBar/styles/TitleBar.style.js index 8fb6d4c2df..a6fe0af69e 100644 --- a/src/components/TitleBar/styles/TitleBar.style.js +++ b/src/components/TitleBar/styles/TitleBar.style.js @@ -17,7 +17,7 @@ export default { fontSize: '14px', }, suffix: { - paddingLeft: '4px', + paddingInlineStart: '4px', }, titleUnsaved: { color: colors.grey500, diff --git a/src/components/VerticalTabBar/styles/VerticalTab.module.css b/src/components/VerticalTabBar/styles/VerticalTab.module.css index c20065f2c3..b1559e597e 100644 --- a/src/components/VerticalTabBar/styles/VerticalTab.module.css +++ b/src/components/VerticalTabBar/styles/VerticalTab.module.css @@ -10,7 +10,7 @@ .selected, .selected:hover { background: var(--colors-blue050); - border-right: 4px solid var(--colors-blue700); + border-inline-end: 4px solid var(--colors-blue700); color: var(--colors-blue700); - margin-right: -1px; + margin-inline-end: -1px; } diff --git a/src/components/VerticalTabBar/styles/VerticalTabBar.module.css b/src/components/VerticalTabBar/styles/VerticalTabBar.module.css index 2d360c238f..189e7d33bc 100644 --- a/src/components/VerticalTabBar/styles/VerticalTabBar.module.css +++ b/src/components/VerticalTabBar/styles/VerticalTabBar.module.css @@ -1,6 +1,6 @@ .container { - height: 100%; - border-right: 1px solid var(--colors-grey400); - margin-right: var(--spacers-dp24); + block-size: 100%; + border-inline-end: 1px solid var(--colors-grey400); + margin-inline-end: var(--spacers-dp24); background: var(--colors-white); } diff --git a/src/components/Visualization/styles/StartScreen.module.css b/src/components/Visualization/styles/StartScreen.module.css index 7b4f7331bc..180e63b2b1 100644 --- a/src/components/Visualization/styles/StartScreen.module.css +++ b/src/components/Visualization/styles/StartScreen.module.css @@ -1,12 +1,15 @@ .outer { display: flex; justify-content: center; - height: 100%; + block-size: 100%; flex-grow: 1; } .inner { - padding: var(--spacers-dp16) var(--spacers-dp24); - max-width: 600px; + padding-block-start: var(--spacers-dp16); + padding-block-end: var(--spacers-dp16); + padding-inline-start: var(--spacers-dp24); + padding-inline-end: var(--spacers-dp24); + max-inline-size: 600px; box-sizing: border-box; color: var(--colors-grey900); position: relative; @@ -20,9 +23,12 @@ text-align: center; } .errorIcon { - width: 136px; - height: 136px; - margin: 0 auto var(--spacers-dp24); + inline-size: 136px; + block-size: 136px; + margin-block-start: 0; + margin-block-end: var(--spacers-dp24); + margin-inline-start: auto; + margin-inline-end: auto; } .errorTitle { font-weight: 500; @@ -30,29 +36,35 @@ color: var(--colors-grey800); letter-spacing: 0.15px; line-height: 24px; - width: 360px; - margin: 0 auto var(--spacers-dp12); + inline-size: 360px; + margin-block-start: 0; + margin-block-end: var(--spacers-dp12); + margin-inline-start: auto; + margin-inline-end: auto; } .errorDescription { font-weight: 400; font-size: 14px; color: var(--colors-grey700); line-height: 19px; - width: 360px; - margin: 0 auto; + inline-size: 360px; + margin-block-start: 0; + margin-block-end: 0; + margin-inline-start: auto; + margin-inline-end: auto; } .title { font-weight: 500; font-size: 17px; - margin-top: 0; + margin-block-start: 0; line-height: 22px; color: var(--colors-grey800); } .section { - text-align: left; + text-align: start; background: var(--colors-white); padding: var(--spacers-dp16); - margin-bottom: var(--spacers-dp24); + margin-block-end: var(--spacers-dp24); border-radius: 5px; border: 1px solid var(--colors-grey400); } @@ -61,20 +73,32 @@ letter-spacing: 0.1px; list-style: circle; list-style-position: outside; - margin: 0 0 0 var(--spacers-dp12); - padding: 0 0 0 var(--spacers-dp12); + margin-block-start: 0; + margin-block-end: 0; + margin-inline-start: var(--spacers-dp12); + margin-inline-end: 0; + padding-block-start: 0; + padding-block-end: 0; + padding-inline-start: var(--spacers-dp12); + padding-inline-end: 0; } .guideItem { font-size: 14px; line-height: 18px; letter-spacing: 0.1px; - margin-bottom: var(--spacers-dp12); + margin-block-end: var(--spacers-dp12); } .visualization { display: flex; align-items: center; - margin: 0 0 var(--spacers-dp4) 0; - padding: var(--spacers-dp4) 0 var(--spacers-dp4) var(--spacers-dp12); + margin-block-start: 0; + margin-block-end: var(--spacers-dp4); + margin-inline-start: 0; + margin-inline-end: 0; + padding-block-start: var(--spacers-dp4); + padding-block-end: var(--spacers-dp4); + padding-inline-start: var(--spacers-dp12); + padding-inline-end: 0; letter-spacing: 0.1px; line-height: 16px; cursor: pointer; @@ -86,12 +110,12 @@ background-color: var(--colors-grey100); } .visIcon { - height: 16px; + block-size: 16px; display: flex; align-items: center; } .visIcon svg { - height: 16px; - width: 16px; - margin-right: var(--spacers-dp8); + block-size: 16px; + inline-size: 16px; + margin-inline-end: var(--spacers-dp8); } diff --git a/src/components/Visualization/styles/Visualization.style.js b/src/components/Visualization/styles/Visualization.style.js index 242ee71dd8..9ab33089c3 100644 --- a/src/components/Visualization/styles/Visualization.style.js +++ b/src/components/Visualization/styles/Visualization.style.js @@ -9,8 +9,8 @@ export default { position: 'absolute', height: '100%', width: '100%', - left: 0, - top: 0, + insetInlineStart: 0, + insetBlockStart: 0, zIndex: 100, background: '#ffffffab', }, diff --git a/src/components/VisualizationOptions/InfoText.js b/src/components/VisualizationOptions/InfoText.js index 5debd6b34b..42af17114f 100644 --- a/src/components/VisualizationOptions/InfoText.js +++ b/src/components/VisualizationOptions/InfoText.js @@ -1,16 +1,12 @@ import { IconInfo16 } from '@dhis2/ui' import PropTypes from 'prop-types' import React from 'react' -import { - tabSectionOption, - tabSectionOptionText, - tabSectionOptionIcon, -} from './styles/VisualizationOptions.style.js' +import styles from './styles/VisualizationOptions.module.css' export const InfoText = ({ text }) => ( -
-

- +

+

+ {text} diff --git a/src/components/VisualizationOptions/NoticeBox.js b/src/components/VisualizationOptions/NoticeBox.js index 3402afcb38..9bb9108e39 100644 --- a/src/components/VisualizationOptions/NoticeBox.js +++ b/src/components/VisualizationOptions/NoticeBox.js @@ -1,10 +1,10 @@ import { NoticeBox as UiNoticeBox } from '@dhis2/ui' import PropTypes from 'prop-types' import React from 'react' -import { tabSectionOption } from './styles/VisualizationOptions.style.js' +import styles from './styles/VisualizationOptions.module.css' const NoticeBox = ({ title, text, warning = false, error = false }) => ( -

+
{text} diff --git a/src/components/VisualizationOptions/Options/AxisLabels.js b/src/components/VisualizationOptions/Options/AxisLabels.js index 0e1c0b4c27..ed75551fec 100644 --- a/src/components/VisualizationOptions/Options/AxisLabels.js +++ b/src/components/VisualizationOptions/Options/AxisLabels.js @@ -3,11 +3,11 @@ import i18n from '@dhis2/d2-i18n' import { Label } from '@dhis2/ui' import PropTypes from 'prop-types' import React from 'react' -import { tabSectionOption } from '../styles/VisualizationOptions.style.js' +import styles from '../styles/VisualizationOptions.module.css' import TextStyle from './TextStyle.js' const AxisLabels = ({ disabled, axisId }) => ( -
+
( -
+
-
+
{'\u00A0\u2013\u00A0'} diff --git a/src/components/VisualizationOptions/Options/AxisTitle.js b/src/components/VisualizationOptions/Options/AxisTitle.js index 4b93794c9f..5067e5a633 100644 --- a/src/components/VisualizationOptions/Options/AxisTitle.js +++ b/src/components/VisualizationOptions/Options/AxisTitle.js @@ -13,10 +13,7 @@ import { OPTION_AXIS_TITLE_TEXT_MODE, } from '../../../modules/options.js' import { sGetUiOption } from '../../../reducers/ui.js' -import { - tabSectionOption, - tabSectionOptionToggleable, -} from '../styles/VisualizationOptions.style.js' +import styles from '../styles/VisualizationOptions.module.css' import TextStyle from './TextStyle.js' export const TITLE_AUTO = 'AUTO' @@ -70,7 +67,7 @@ const AxisTitle = ({ return (
@@ -100,7 +97,7 @@ const AxisTitle = ({ ))} {textMode === TITLE_CUSTOM ? ( -
+
onTextChange(value)} @@ -113,7 +110,7 @@ const AxisTitle = ({
) : null} {textMode === TITLE_AUTO || textMode === TITLE_CUSTOM ? ( -
+
( -
+
{((!inverted && value) || (inverted && !value)) && fontStyleKey ? ( -
+
( -
+
{[ [ @@ -90,7 +90,11 @@ ColorSet.propTypes = { const ColorSetPreview = ({ colorSet, disabled }) => (
{colorSet?.patterns && colorSet.patterns.map((pattern, index) => ( diff --git a/src/components/VisualizationOptions/Options/CompletedOnly.js b/src/components/VisualizationOptions/Options/CompletedOnly.js index 0b61c52cb2..f1835ed542 100644 --- a/src/components/VisualizationOptions/Options/CompletedOnly.js +++ b/src/components/VisualizationOptions/Options/CompletedOnly.js @@ -1,11 +1,11 @@ import i18n from '@dhis2/d2-i18n' import { Label } from '@dhis2/ui' import React from 'react' -import { tabSectionOption } from '../styles/VisualizationOptions.style.js' +import styles from '../styles/VisualizationOptions.module.css' import { CheckboxBaseOption } from './CheckboxBaseOption.js' const CompletedOnly = () => ( -
+
( <> -
-
+
+
{isEnabled && ( -
-
+
+
+