@mounaji_npm/widget-controls
v0.1.8
Published
Complete reusable widget configuration panel for Mounaji/CognitionDesk dashboards
Downloads
945
Maintainers
Readme
@mounaji_npm/widget-controls
Complete reusable React panel for configuring @mounaji_npm/web-widget.
Features
- Full widget control surface (appearance, identity, copy, behavior).
- Advanced controls for file uploads, rate limiting, and proactive messages.
- Contract-safe normalization via
normalizeWidgetVisualControls. - Configurable rendering by mode and section visibility.
- Internal styling (no Tailwind dependency required).
Install
npm install @mounaji_npm/widget-controlsUsage
import { useState } from 'react';
import {
WidgetAdvancedControls,
DEFAULT_WIDGET_VISUAL_CONTROLS,
normalizeWidgetVisualControls,
} from '@mounaji_npm/widget-controls';
export function WidgetEditor() {
const [config, setConfig] = useState(DEFAULT_WIDGET_VISUAL_CONTROLS);
return (
<WidgetAdvancedControls
value={config}
onChange={(next) => setConfig(normalizeWidgetVisualControls(next))}
/>
);
}API
WidgetAdvancedControls props
value: objectcurrent config.onChange: (nextConfig) => voidreceives normalized config.mode?: 'full' | 'compact'default section preset.visibleSections?: string[]explicit section ids override mode preset.title?: stringpanel title.subtitle?: stringpanel subtitle.showHeader?: booleandefaults totrue.showReset?: booleandefaults totrue.resetLabel?: stringdefaults toReset to defaults.
Section ids
Use with visibleSections:
appearanceidentitycopybehavioruploadrate-limitsproactive
You can also import WIDGET_CONTROL_SECTION_IDS.
Exports
WidgetAdvancedControlsDEFAULT_WIDGET_VISUAL_CONTROLSnormalizeWidgetVisualControlssanitizeWidgetVisualControlsFILE_TYPE_OPTIONSWIDGET_CONTROL_SECTION_IDS
Compact mode example
<WidgetAdvancedControls
mode="compact"
value={config}
onChange={setConfig}
/>Partial sections example
<WidgetAdvancedControls
value={config}
onChange={setConfig}
visibleSections={['appearance', 'identity', 'copy']}
title="Quick Widget Setup"
/>