<!-- source-hash: a34cdabdcffe2227fd25cb927e40e785 -->
Thin wrapper around `<ContactForm />` that preconfigures it for Help Center ticket creation, plus a pixel-accurate loading skeleton.

## Key Components

### `HelpCenterCreateForm`
The primary export. Wraps `<ContactForm />` with ticket-specific configuration:
- Hides irrelevant contact fields (`name`, `email`, `companySize`, `referralSource`, `helpCategory`)
- Injects a locally-managed `Subject` input via `extraTopField`
- Pre-fills hidden fields from session identity to satisfy Zod validators
- Wires `onCustomSubmit` to `actions.submitTicket(...)` with subject validation before delegating

### `HelpCenterCreateFormSkeleton`
A loading placeholder that mirrors the real form's dimensions pixel-for-pixel (verified at `lg` breakpoint: 556px wrapper height). Includes 4 hidden `<input type="hidden">` elements to replicate Tailwind's `space-y-*` sibling spacing behavior — omitting them shifts the visible stack up by 24px on page load.

### `HelpCenterCreateFormProps`
| Prop | Type | Description |
|------|------|-------------|
| `actions` | `UseTicketActionsReturn` | Full actions bag; `submitTicket` is consumed |
| `sessionName` | `string` | Pre-resolved identity name from parent |
| `sessionEmail` | `string` | Pre-resolved identity email from parent |
| `supportSystemDown` | `boolean` | Disables all inputs when HubSpot is unavailable |

## Usage Example

```typescript
<HelpCenterCreateForm
  actions={ticketActions}
  sessionName={identity.name}
  sessionEmail={identity.email}
  supportSystemDown={ticketActions.onSupportSystemDown}
/>

// While identity.isLoading:
<HelpCenterCreateFormSkeleton />
```

> **Note:** `sessionName`/`sessionEmail` must be passed from the parent rather than re-calling `useChatIdentity` inside this component — a second hook call mounts with `user = null`, causing react-hook-form to lock `defaultValues.email` to an empty string for the form's lifetime, silently failing Zod validation on submit.