## Overview

The Creation Form widget allows easy creation of multiple instances of a type. It streamlines the process of creating multiple related pages by embedding a creation form directly into the current page. Instead of navigating away to create new pages individually, users can create many instances in succession without losing context. After submitting the form, it automatically resets to allow immediate creation of the next instance.

Key characteristics:
- Always displays in edit mode (always editable)
- Automatically resets after successful submission
- Can preset reference attributes to link created pages to the embedding page
- Supports custom layouts for attribute arrangement

## Use Cases

### Rapid Data Entry
When users need to create many instances of the same type in succession:
- Creating multiple tasks within a project page
- Adding multiple risk items to a risk register
- Logging multiple issues or incidents
- Entering a series of related records (meeting minutes, action items)

### Contextual Page Creation
Creating pages that are automatically linked to the current context:
- A project page with a form to create tasks that are automatically linked to that project
- A parent entity with a form to create child entities
- A workflow stage with a form to create items in that stage

### Simplified User Experience
Reducing navigation complexity for non-technical users:
- Providing a focused creation interface without the full page creation workflow
- Hiding complexity by showing only relevant attributes in the form
- Maintaining user context by keeping them on the same page

### Embedded Creation Workflows
Supporting specific business processes:
- Feedback collection forms
- Quick entry forms for repetitive data
- Intake forms for requests or submissions
- Data collection interfaces embedded in dashboards

## Design Considerations

### When to Use This Pattern
Use the Creation Form widget when:
- Users need to create multiple related pages in succession
- Created pages should automatically reference the embedding page (parent-child relationships)
- Only a subset of attributes needs to be filled during creation
- Maintaining user context and minimizing navigation is important
- The creation process is part of a larger workflow on the page

### When Not to Use This Pattern
Consider alternatives when:
- Users typically create only one page at a time
- All attributes should be filled during creation
- The page type requires complex configuration that benefits from full-page creation flow
- Post-creation navigation to the created page is desired

### Permission Handling
The widget performs permission checks before displaying the form:
- Verifies that the current user has rights to create pages of the specified type
- Checks creation permissions in the context of the specified space
- If an attribute matching embedded is configured, validates that the user can create pages with that reference preset
- If the user lacks permissions, the form is not displayed

## Comparison with Standard Page Creation

| Aspect | Creation Form Widget | Standard Page Creation |
|--------|-------------------|----------------------|
| Navigation | Stays on same page | Navigates to creation form |
| Workflow | Optimized for multiple creations | One at a time |
| Context | Preserves current page context | New page context |
| Customization | Configurable attribute subset | All attributes shown |
| Linking | Automatic reference to embedding page | Manual relationship setup |
| Button Labels | "Create and continue" | "Save" |
| After Save | Form resets for next entry | Navigates to created page |

## Related Patterns

### Attribute in Form Widget
**Widget ID**: `cf.cplace.simpleForm.attributeInForm`

This companion widget can only be embedded inside the Creation Form widget. It is used within the layout configuration to specify individual attributes that should be displayed in the form.

Purpose:
- Provides granular control over which attributes appear in the form
- Allows ordering of attributes
- Enables selective display of only relevant attributes
