m4Mindset docs

Mindset v3 / Build & Optimize / Widget Studio

View as Markdown

Widget Studio: Widget Editor Guide

Detailed guide to building and iterating on widgets

The Widget Editor is your workspace for creating and refining widgets. This guide covers all the tools and techniques you need to build production-ready widgets efficiently.

Widget Editor Overview

The Widget Editor has three main tabs plus additional tools for previewing and publishing:

  • Assistant - Chat with AI to generate and modify your widget
  • Code - View and copy the MDX code for your widget
  • Data - See the data structure your tool provides
  • Examples - Browse and copy prompts from example widgets
  • Preview - See your widget on desktop/mobile, light/dark modes
  • Design System - Apply your brand colors
  • Publish - Review checklist and publish when ready

Assistant Tab: Building with AI

How the Widget Editor Agent Works

The Agent generates MDX code based on your natural language descriptions. You don't need to know how to code - just describe what you want.

What Happens When You Send a Message:

  1. Type and send

    You type your request and hit send

  2. Processing status

    Status shows "Sending request..."

  3. Widget updates

    Widget updates automatically in the preview

  4. Changes appear

    No reply message appears - changes just show up

Writing Effective Prompts

The key to great results is being specific about what you want.

Good prompt structure:
[Action] + [Component] + [Visual details] + [Interaction behavior]

Examples:

Good:
"Create a quiz widget with one question displayed at a time, four multiple choice buttons in a 2x2 grid, and a submit button at the bottom"

Not as good:
"Make a quiz"

Good:
"Add a progress bar at the top showing question 3 of 10, make it blue to match our brand"

Not as good:
"Add progress"

Good:
"When the user clicks an answer, highlight it in green and disable the other options"

Not as good:
"Make it interactive"

Using the Examples Library

The fastest way to build is starting with an example.

To Access:

  1. Click the Examples button in the Editor
  2. Browse by category or search by keyword
  3. Click on any example to see details

Categories Include:

Data Visualization

Charts, graphs, dashboards

Feedback & Communication

Forms, surveys, notifications

Data Display

Lists, cards, tables

User Input

Forms, selectors, pickers

Navigation & Controls

Menus, tabs, buttons

Scheduling

Calendars, timelines

Surveys and Assessments

Quizzes, polls

Text & Documents

Readers, previews

To Use an Example:

  1. Find an example

    Find an example close to what you want

  2. Copy Prompt

    Click Copy Prompt

  3. Return to Assistant

    Return to Assistant tab

  4. Paste the prompt

    Paste the prompt

  5. Send it

    Send it

  6. Modify from there

    Modify from there

Iterating on Your Widget

Making Changes:

Just chat naturally with the Agent:

  • "Make the buttons larger"
  • "Change the color scheme to use our brand purple"
  • "Add icons next to each option"
  • "Move the submit button to the right side"
  • "Add a congratulations message when the quiz is complete"

Each Message Creates a New Version:

  • Your edit history is saved as versions
  • You can always revert to a previous version
  • See the Versions tab for full history

Working with Tool Data

Your widget displays data from your tool. The Data tab shows you what information your tool provides.

To Reference Tool Data in Your Prompts:

"Show the course title, description, and rating from the tool data"

"Display the quiz questions as a list with the question text and four answer options"

"Create a card for each result that shows the thumbnail image, title, and price"

The Agent understands your tool's data structure and will map it correctly.

Code Tab: Viewing and Copying MDX

What's in the Code Tab

The Code tab shows the MDX (Markdown + JSX) code that powers your widget. You don't need to understand this code to use Widget Studio, but it's here if you want to:

  • Copy the code to use elsewhere
  • Share it with developers
  • Keep a backup

Copying Your Code

  1. Go to the Code tab

    Navigate to the Code tab

  2. Click the Copy button

    Click the Copy button

  3. Code is copied

    Your MDX code is now on your clipboard

You can paste this into:

  • External code editors
  • Other AI tools for further refinement
  • Documentation for your team

Import Function (Coming Soon)

You'll see an Import button in the Code tab. This doesn't work yet - we're enabling it soon.

Data Tab: Understanding Tool Output

What the Data Tab Shows

The Data tab displays the structure of data your tool returns. This helps you understand what information you have available to display in your widget.

Example Data Structure:

json
{
  "courses": [
    {
      "title": "Introduction to Python",
      "description": "Learn Python basics",
      "rating": 4.5,
      "thumbnail": "https://...",
      "duration": "6 weeks"
    }
  ]
}

Using Data in Your Widget

When you describe your widget to the Agent, reference the data fields you see:

"Show each course as a card with the thumbnail image, title, rating, and duration. Add an 'Enroll Now' button for each."

The Agent maps your description to the actual data structure automatically.

Preview: Testing Your Widget

Preview Modes

  • Desktop - How your widget looks in the full-width agent chat
  • Mobile - How it appears on mobile devices
  • Light Mode - Default light theme
  • Dark Mode - Dark theme appearance

Why Preview Matters:

  • Text that's readable on desktop might be too small on mobile
  • Colors that work in light mode might not contrast well in dark mode
  • Interactive elements need to be touch-friendly on mobile

What to Check

On Desktop
  • Does the layout use space effectively?
  • Are buttons and interactive elements easy to click?
  • Is text easily readable?
On Mobile
  • Does content fit without horizontal scrolling?
  • Are touch targets large enough (buttons, links)?
  • Is text still readable at smaller sizes?
In Light Mode
  • Is contrast sufficient for readability?
  • Do colors align with your brand?
In Dark Mode
  • Does text remain readable?
  • Do colors still look good?
  • Are borders and dividers visible?

Design System: Applying Your Brand

What Design Systems Do

Design systems automatically apply your brand colors throughout your widget. When you select a design system, colors propagate to:

  • Buttons
  • Backgrounds
  • Text highlights
  • Borders
  • Interactive elements

Changing Design Systems

  1. Click the Design System dropdown

    Click the Design System dropdown

  2. Select from your configured design systems

    Select from your configured design systems

  3. Preview updates immediately

    Preview updates immediately

  4. Switch between systems

    Switch between systems to see which looks best

Versions: Managing Widget History

How Versioning Works

Every time you edit your widget and the Agent generates new code, a new version is created automatically.

Version Information:

  • Version number (0.1, 0.2, 0.3, etc.)
  • Timestamp of creation
  • Status (Published, Unpublished, Latest)

Viewing Version History

  1. Go to the Versions tab

    Go to the Versions tab

  2. See all versions

    See all versions listed with timestamps

  3. Click on any version

    Click on any version to view its code

Reverting to a Previous Version

To go back to an earlier version:

  1. Unpublish your current widget

    Unpublish your current widget

  2. Go to Versions tab

    Go to Versions tab

  3. Find the version you want

    Find the version you want

  4. Click Promote to Latest

    Click Promote to Latest

  5. Go to Publish tab

    Go to Publish tab

  6. Click Publish

    Click Publish

Publishing: Making Your Widget Live

Publishing Checklist

Before you can publish, certain requirements must be met:

  • ✓ Widget Name - Must have a name
  • ✓ Widget Description - Must have a description
  • ✓ Widget Mode - Display or Standalone selected
  • ✓ Initial Version - At least version 0.1 created
  • ✓ Widget Code - MDX code generated
  • ✓ Widget Compiles - Code compiles successfully

Most of these are automatically checked as you build. If something's missing, you'll see what needs attention.

Publishing Your Widget

  1. Go to the Publish tab

    Go to the Publish tab

  2. Review the checklist

    Review the checklist - all items should be checked

  3. Click Publish

    Click Publish

  4. Your widget is now live!

    Your widget is now live!

What Happens When Published:

  • Widget becomes active in your agent
  • When the agent calls your tool, the widget displays automatically
  • End users see your widget in the agent chat

Unpublishing

To take a widget offline:

  1. Open the widget

    Open the widget

  2. Go to Publish tab

    Go to Publish tab

  3. Click Unpublish

    Click Unpublish

  4. Tool continues to work

    Tool continues to work, but widget won't display

When to Unpublish:

  • Making major edits
  • Widget isn't working as expected
  • Testing changes before republishing

Practical Examples

Example 1: Building a Quiz Widget

"Create a quiz widget that shows one question at a time with four multiple choice answers. Include a progress indicator and a submit button."

"Make the answer buttons larger with more padding. Add a blue progress bar at the top showing question number out of total."

"When the user selects an answer, highlight it in green and disable the other options. Show a 'Next Question' button after they select."

"Add a completion screen that shows their score as a percentage with a congratulations message. Include a 'Retake Quiz' button."

Example 2: Building a Course Catalog

"Build a course catalog that displays courses as cards in a grid. Each card should show the thumbnail, title, rating, and duration."

"Change to a 3-column grid on desktop and single column on mobile. Add more spacing between cards."

"Display the rating as yellow stars instead of numbers. Add a subtle shadow to each card and a hover effect that slightly elevates it."

"Include an 'Enroll Now' button on each card. When hovering over a course, show the number of students already enrolled."

Example 3: Building a Booking Calendar

"Make a calendar widget for booking appointments. Show available time slots as buttons."

"Organize time slots by day of the week. Show morning, afternoon, and evening sections clearly labeled."

"When a user clicks a time slot, highlight it and show a confirmation panel asking them to confirm or cancel. Display the selected date and time clearly."

"Add a small calendar icon next to each time slot. Disable past time slots and show them in gray. Add a success message after booking is confirmed."

Best Practices

Building Effective Widgets

Start Simple

Get basic functionality working first. Add visual polish and complexity later. Iterate gradually.

Test Thoroughly

Preview on desktop and mobile. Check light and dark modes. Test with real tool data if possible.

Consider Your Users

Make touch targets large enough for mobile. Use clear, readable text. Provide visual feedback for interactions.

Managing Your Workflow

Keep Sessions Focused
  • Complete related edits in one session
  • Don't switch tabs unnecessarily (message history will be lost)
  • Save/publish when you reach a good stopping point
Use Version Control
  • Major milestones = good time to note the version
  • Can always revert if needed
  • Promotes a safety net for experimentation
Backup Important Work
  • Copy MDX code for critical widgets
  • Keep external notes on design decisions
  • Document what prompts worked well

Troubleshooting

Problem: Agent doesn't seem to understand my request

Try:

  • Be more specific and descriptive
  • Reference the data structure from the Data tab
  • Use an example from the library as a starting point
Problem: Widget looks good on desktop but broken on mobile

Try:

  • Ask the Agent: "Make this responsive for mobile devices"
  • Simplify the layout for smaller screens
  • Test preview on Mobile mode as you iterate
Problem: Colors don't match my brand

Try:

  • Switch Design Systems
  • Ask the Agent: "Use colors from the [System Name] design system"
  • Contact your team if you need a new design system created
Problem: I lost my message history

This happens when you switch tabs. For now:

  • Keep external notes
  • Try to complete edits in one session
  • We're fixing this soon