Repository: storybook
Issue: [Bug]: Storybook canvas doesn't persist arg from URL
Labels: bug,help wanted,args,sev:S3

### Describe the bug

Storybook canvas doesn't persist an arg from the URL arg when `@storybook/addon-essentials` (docs add-on) is installed and an arg can accept `React.ReactNode` (or other complex type).

For example, say I have a Button component with a label prop that accepts a string (`label: string`), I can:

1. Preview the button in storybook
2. Change the label to 'Test'
3. Click "Open canvas in new tab"
4. See the Button with the "Test" label (expected)

If I change the TypeScript type for the Button's label prop from `label: string` to `label: React.ReactNode` or `label: string | React.ReactNode`, then 

1. Preview the button in storybook
2. Change the label to 'Test'
3. Click "Open canvas in new tab"
4. The Button has the default label, not the new "Test" label (unexpected)

If I disable the `@storybook/addon-essentials` add-on, reload storybook and refresh the canvas, then this resolves the issue.

If I keep the `@storybook/addon-essentials` add-on enabled, but specifically disable docs, this also resolves the issue:

```js
  {
      name: "@storybook/addon-essentials",
      options: {
        docs: false,
      },
    },
```

(note that in the sample repository, when disabling docs, you also need to remove .mdx files from the stories entries so that you don't get an error)

```js
  stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
```

Also note that if you disable the docs addon, the Storybook canvas live updates when you type in the Controls field for the Button label - without this you need to tab away.

### Reproduction link

https://github.com/penx/storybook-controls-frame-issue

### Reproduction steps


1.

```sh
npx storybook@next sandbox
npx storybook@latest init
```

2.

Open src/stories/Button.tsx and change

```
  label: string;
```

to

```
  label: string | React.ReactNode;
```

Follow steps above

### System

Storybook Environment Info:

  System:
    OS: macOS 15.0
    CPU: (12) arm64 Apple M2 Max
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 22.9.0 - ~/.nvm/versions/node/v22.9.0/bin/node
    Yarn: 1.22.22 - ~/.nvm/versions/node/v22.9.0/bin/yarn
    npm: 10.8.3 - ~/.nvm/versions/node/v22.9.0/bin/npm <----- active
    pnpm: 9.12.1 - ~/.nvm/versions/node/v22.9.0/bin/pnpm
  Browsers:
    Safari: 18.0
  npmPackages:
    @storybook/addon-essentials: ^8.3.6 => 8.3.6 
    @storybook/addon-interactions: ^8.3.6 => 8.3.6 
    @storybook/addon-links: ^8.3.6 => 8.3.6 
    @storybook/addon-onboarding: ^8.3.6 => 8.3.6 
    @storybook/blocks: ^8.3.6 => 8.3.6 
    @storybook/react: ^8.3.6 => 8.3.6 
    @storybook/react-vite: ^8.3.6 => 8.3.6 
    @storybook/test: ^8.3.6 => 8.3.6 
    eslint-plugin-storybook: ^0.10.1 => 0.10.1 
    storybook: ^8.3.6 => 8.3.6 


### Additional context

We need to be able to produce links to a canvas in this way so that, during testing, we can create and send a preconfigured canvas URL to a mobile device and then open the URL directly on the device.

- possible duplicate of https://github.com/storybookjs/storybook/issues/20951, but this has been closed as a duplicate of https://github.com/storybookjs/storybook/issues/25035, and issue still persists
- Relates to https://github.com/storybookjs/storybook/issues/28774