import { html, type TemplateResult } from 'lit';
import {
formatUsageFromDefaults,
type PlaygroundControl,
type PlaygroundDefinition,
type PlaygroundProps,
whenBoolean,
whenString,
} from '../types.js';
const ATTRIBUTE_NAMES: Record = {
useSymbol: 'use-symbol',
lighterColorClass: 'lighter-color-class',
darkerColorClass: 'darker-color-class',
nuiType: 'nui-type',
logoClass: 'logo-class',
};
export const NUI_LOGO_DEFAULTS: PlaygroundProps = {
dimensions: '44',
useSymbol: false,
lighterColorClass: '',
darkerColorClass: '',
unstyled: false,
nuiType: '',
logoClass: '',
};
const CONTROLS: PlaygroundControl[] = [
{
key: 'dimensions',
label: 'dimensions',
type: 'text',
section: 'Layout',
placeholder: '44',
},
{
key: 'lighterColorClass',
label: 'lighter-color-class',
type: 'text',
section: 'Appearance',
},
{
key: 'darkerColorClass',
label: 'darker-color-class',
type: 'text',
section: 'Appearance',
},
{
key: 'logoClass',
label: 'logo-class',
type: 'text',
section: 'Appearance',
},
{ key: 'nuiType', label: 'nui-type', type: 'text', section: 'Appearance' },
{
key: 'useSymbol',
label: 'use-symbol',
type: 'boolean',
section: 'Modifiers',
},
{
key: 'unstyled',
label: 'unstyled',
type: 'boolean',
section: 'Modifiers',
},
];
function renderPreview(props: PlaygroundProps): TemplateResult {
return html`
`;
}
export const nuiLogoPlayground: PlaygroundDefinition = {
tag: 'nui-logo',
label: 'Logo',
description:
'Nucleify brand logo with optional nui-type theming and inline SVG or document symbol reference.',
defaults: NUI_LOGO_DEFAULTS,
controls: CONTROLS,
renderPreview,
formatUsage: (props) =>
formatUsageFromDefaults(
'nui-logo',
props,
NUI_LOGO_DEFAULTS,
ATTRIBUTE_NAMES,
),
};