1
0
Fork 0
freesewing/sites/shared/components/workbench/menus/index.mjs

127 lines
2.9 KiB
JavaScript
Raw Normal View History

import { linkClasses } from 'shared/components/navigation/primary.mjs'
import { DesignOptions } from './design-options/index.mjs'
import { CoreSettings } from './core-settings/index.mjs'
import { XrayMenu } from './xray/index.mjs'
import { TestDesignOptions } from './test-design-options/index.mjs'
2022-01-25 12:39:29 +01:00
export const Ul = (props) => <ul className="pl-5 list-inside">{props.children}</ul>
export const Li = (props) => (
2023-05-11 19:14:48 +02:00
<li className="flex flex-row border-r-2 border-r-transparent hover:border-r-secondary">
{props.children}
</li>
2022-01-30 12:21:08 +01:00
)
export const Details = (props) => (
2022-01-29 18:24:36 +01:00
<details className="grow" open={props.open || false}>
{props.children}
</details>
)
2023-02-05 19:58:25 +01:00
export const Deg = () => (
<span className="text-3xl inline-block p-0 leading-3 px-2 translate-y-3">&deg;</span>
)
export const NoSumDiv = (props) => (
<div
className={`
grow px-2 ml-2 border-l-2
${linkClasses}
2023-05-11 19:14:48 +02:00
hover:cursor-pointer
hover:border-secondary
sm:hover:border-secondary-focus
2022-05-14 14:53:29 +02:00
text-base-content sm:text-base-content
`}
>
{props.children}
</div>
)
export const SumDiv = (props) => (
<div
className={`
2022-01-29 18:24:36 +01:00
grow pl-2 border-l-2
${linkClasses}
2023-05-11 19:14:48 +02:00
hover:cursor-pointer
2022-01-29 18:24:36 +01:00
hover:border-secondary
sm:hover:border-secondary-focus
2022-05-14 14:53:29 +02:00
text-base-content sm:text-base-content
`}
>
{props.children}
</div>
2022-01-29 18:24:36 +01:00
)
export const Summary = (props) => (
<summary
className={`
2022-01-29 18:24:36 +01:00
flex flex-row
px-2
text-base-content
2022-05-14 14:53:29 +02:00
sm:text-base-content
2023-05-11 19:14:48 +02:00
hover:cursor-pointer
2022-01-29 18:24:36 +01:00
items-center
`}
>
{props.children}
</summary>
2022-01-29 18:24:36 +01:00
)
export const TopSummary = (props) => (
<summary
className={`
2022-01-29 18:24:36 +01:00
flex flex-row gap-4 text-lg
2023-05-11 19:14:48 +02:00
hover:cursor-pointer
2022-01-29 18:24:36 +01:00
p-2
text-base-content
2022-05-14 14:53:29 +02:00
sm:text-base-content
2022-01-29 18:24:36 +01:00
items-center
`}
>
2022-01-29 18:24:36 +01:00
<span className="text-secondary-focus mr-4">{props.icon || null}</span>
{props.children}
</summary>
)
export const SumButton = (props) => (
<button
className={`
2022-01-29 18:24:36 +01:00
flex flex-row
px-2
w-full justify-between
text-left
text-base-content
2022-05-14 14:53:29 +02:00
sm:text-base-content
2022-01-29 18:24:36 +01:00
hover:cursor-pointer
items-center
mr-4
`}
onClick={props.onClick}
>
{props.children}
</button>
2022-01-29 18:24:36 +01:00
)
export const TopSumTitle = (props) => (
2023-05-11 19:14:48 +02:00
<span className={`grow ${linkClasses} hover:cursor-pointer font-bold uppercase`}>
2022-01-29 18:24:36 +01:00
{props.children}
</span>
)
export const SecText = (props) =>
props.raw ? (
<span className="text-secondary-focus" dangerouslySetInnerHTML={{ __html: props.raw }} />
) : (
<span className="text-secondary-focus">{props.children}</span>
)
2022-01-29 18:24:36 +01:00
2023-05-11 19:14:48 +02:00
export const DraftMenu = (props) => {
const { design, patternConfig, settings, ui, update, Option = false } = props
return (
<nav className="grow mb-12">
<DesignOptions {...props} />
<CoreSettings {...props} />
{ui.renderer === 'react' ? <XrayMenu {...props} /> : null}
</nav>
)
}
export const TestMenu = (props) => {
2022-01-25 12:39:29 +01:00
return (
2022-05-14 14:53:29 +02:00
<nav className="grow mb-12">
2023-05-11 19:14:48 +02:00
<TestDesignOptions {...props} />
2022-01-25 12:39:29 +01:00
</nav>
)
}