// __SDEFILE__ - This file is a dependency for the stand-alone environment import { controlLevels } from 'shared/config/freesewing.config.mjs' // Hooks import { useState } from 'react' import { useTranslation } from 'next-i18next' // Components import { BeakerIcon, CodeIcon, CutIcon, OptionsIcon, PrintIcon, SaveIcon, SaveAsIcon, RightIcon, LeftIcon, DocsIcon, MeasieIcon, XrayIcon, EditIcon, ExportIcon, } from 'shared/components/icons.mjs' import Link from 'next/link' import { MenuWrapper } from 'shared/components/workbench/menus/shared/menu-wrapper.mjs' export const ns = ['workbench', 'sections'] const icons = { test: BeakerIcon, export: ExportIcon, Edit: EditIcon, cut: CutIcon, draft: OptionsIcon, print: PrintIcon, save: SaveIcon, saveas: SaveAsIcon, logs: CodeIcon, inspect: XrayIcon, measies: MeasieIcon, } export const NavButton = ({ href, label, children, onClick = false, active = false, extraClasses = 'lg:hover:bg-secondary lg:hover:text-secondary-content', }) => { const className = `w-full flex flex-row items-center px-4 py-2 ${extraClasses} ${ active ? 'font-bold lg:font-normal bg-secondary bg-opacity-10 lg:bg-secondary lg:text-secondary-content lg:bg-opacity-50' : 'lg:bg-neutral lg:text-neutral-content' }` const span = {label} return onClick ? ( ) : ( {span} {children} ) } const NavIcons = ({ setView, setDense, dense, view, saveAs = false, control }) => { const { t } = useTranslation(['header']) const iconSize = 'h-6 w-6 grow-0' return ( <> setDense(!dense)} label="" extraClasses="hidden lg:flex text-accent bg-neutral hover:bg-accent hover:text-neutral-content" > {dense ? ( ) : ( )} {control >= controlLevels.views.draft && ( setView('draft')} label={t('workbench:patternEditor')} active={view === 'draft'} > )} {control >= controlLevels.views.measies && ( setView('measies')} label={t('workbench:measies')} active={view === 'measies'} > )} {control >= controlLevels.views.test && ( setView('test')} label={t('workbench:patternTests')} active={view === 'test'} > )} {control >= controlLevels.views.print && ( setView('print')} label={t('workbench:printLayout')} active={view === 'print'} > )} {/*!isProduction && ( setView('cut')} label={t('workbench:cutLayout')} active={view === 'cut'} > )*/} {control >= controlLevels.views.save && ( setView('save')} label={t(`workbench:${saveAs ? 'savePattern' : 'savePatternAsHellip'}`)} active={view === 'save'} > {saveAs ? : } )} {control >= controlLevels.views.export && ( setView('export')} label={t('workbench:exportPattern')} active={view === 'export'} > )} {control >= controlLevels.views.edit && ( setView('edit')} label={t('workbench:editByHand')} active={view === 'edit'} > )}{' '} {control >= controlLevels.views.logs && ( setView('logs')} label={t('workbench:patternLogs')} active={view === 'logs'} > )} {control >= controlLevels.views.inspect && ( setView('inspect')} label={t('workbench:patternInspector')} active={view === 'inspect'} > )} {control >= controlLevels.views.docs && ( setView('docs')} label={t('workbench:docs')} active={view === 'docs'} > )} ) } export const WorkbenchHeader = ({ view, setView, saveAs = false, control = 4 }) => { const [dense, setDense] = useState(true) return (
) }