import { Accordion, Checkbox, Grid, Group, Stack, Text } from '@mantine/core';
import { IconAccessible, IconBrush, IconChartCandle, IconCode, IconDragDrop, IconLayout } from '@tabler/icons-react';
import { i18n, useTranslation } from 'next-i18next';
import { ReactNode } from 'react';
import { GridstackConfiguration } from './Layout/GridstackConfiguration';
import { LayoutSelector } from './Layout/LayoutSelector';
import { BackgroundChanger } from './Meta/BackgroundChanger';
import { FaviconChanger } from './Meta/FaviconChanger';
import { LogoImageChanger } from './Meta/LogoImageChanger';
import { BrowserTabTitle } from './Meta/MetaTitleChanger';
import { DashboardTitleChanger } from './Meta/PageTitleChanger';
import { ColorSelector } from './Theme/ColorSelector';
import { CustomCssChanger } from './Theme/CustomCssChanger';
import { DashboardTilesOpacitySelector } from './Theme/OpacitySelector';
import { ShadeSelector } from './Theme/ShadeSelector';
import { AccessibilitySettings } from './Accessibility/AccessibilitySettings';
export const CustomizationSettingsAccordeon = () => {
const items = getItems().map((item) => (
{item.content}
));
return (
{items}
);
};
interface AccordionLabelProps {
label: string;
image: ReactNode;
description: string;
}
const AccordionLabel = ({ label, image, description }: AccordionLabelProps) => (
{image}
{label}
{description}
);
const getItems = () => {
const { t } = useTranslation([
'settings/customization/general',
'settings/customization/color-selector',
]);
const items = [
{
id: 'layout',
image: ,
label: t('accordeon.layout.name'),
description: t('accordeon.layout.description'),
content: ,
},
{
id: 'gridstack',
image: ,
label: t('accordeon.gridstack.name'),
description: t('accordeon.gridstack.description'),
content: ,
},
{
id: 'accessibility',
image: ,
label: t('accordeon.accessibility.name'),
description: t('accordeon.accessibility.description'),
content: ,
},
{
id: 'page_metadata',
image: ,
label: t('accordeon.pageMetadata.name'),
description: t('accordeon.pageMetadata.description'),
content: (
<>
>
),
},
{
id: 'appereance',
image: ,
label: t('accordeon.appereance.name'),
description: t('accordeon.appereance.description'),
content: (
<>
{t('settings/customization/color-selector:colors')}
>
),
},
];
if (process.env.NODE_ENV === 'development') {
items.push({
id: 'dev',
image: ,
label: 'Developer options',
description: 'Options to help when developing',
content: (
// Change to CI mode language
i18n?.changeLanguage(e.target.checked ? 'cimode' : 'en')
}
/>
),
});
}
return items;
};