Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
aabca7c
Build: Respect CLI-set watch & prod flags in scripts
Sidnioulz Jan 14, 2026
89c268b
Merge branch 'next' into sidnioulz/script-flags-prompt-edge-case
ndelangen Jan 20, 2026
cba4bde
Initial plan
Copilot Feb 25, 2026
ca3c9c2
fix(manager): guard against undefined tag filters
abhaysinh1000 Feb 25, 2026
919eac2
Initial plan
Copilot Feb 25, 2026
c047ebe
Fix HMR race conditions: fix STORY_INDEX_INVALIDATED double-fire and …
Copilot Feb 25, 2026
0c5405e
Improve hooks error message and add documentation about mixing Storyb…
Copilot Feb 25, 2026
3d39c26
CLI: Set STORYBOOK environment variable
yannbf Feb 25, 2026
a7fab86
chore(manager): fix prettier formatting for tag filter guard
abhaysinh1000 Feb 26, 2026
7d8aeb8
React: Handle render identifier in manifest snippet generation
kasperpeulen Feb 26, 2026
2974cb8
chore: rerun CI (flaky E2E)
abhaysinh1000 Feb 26, 2026
64ee143
Support function declaration Templates in render identifier resolution
kasperpeulen Feb 26, 2026
b418efe
Fix prettier formatting
kasperpeulen Feb 26, 2026
d20faea
Merge branch 'next' into fix/tags-filter-undefined
yannbf Feb 26, 2026
25237e1
Update CHANGELOG.md for v10.2.13 [skip ci]
storybook-bot Feb 26, 2026
a833be6
Merge branch 'next-release' into next
storybook-bot Feb 26, 2026
40bab5e
Preserve story-level render precedence over meta render
kasperpeulen Feb 26, 2026
032c046
Merge branch 'next' into kasper/fix-render-template-identifier
JReinhold Feb 26, 2026
090474e
Merge pull request #33938 from storybookjs/yann/add-storybook-to-proc…
yannbf Feb 26, 2026
5a9c6ec
Merge pull request #33931 from abhayinh/fix/tags-filter-undefined
yannbf Feb 26, 2026
a49d9e1
Fix linting
valentinpalkovic Feb 27, 2026
2b6c4da
Merge pull request #33930 from storybookjs/copilot/fix-storybook-hmr-…
valentinpalkovic Feb 27, 2026
47ce1da
fix: Add ScrollArea prop focusable for when it has no interactive chi…
Sidnioulz Feb 20, 2026
0cb0d09
UI: Add focus outline to focusable scroll area
Sidnioulz Feb 27, 2026
967875e
Controls: Fix Object contrast issue and tidy up code
Sidnioulz Feb 25, 2026
2095787
Merge pull request #33541 from storybookjs/sidnioulz/script-flags-pro…
Sidnioulz Feb 27, 2026
4bf2e5b
Adjust warning callout on args
jonniebigodes Feb 27, 2026
2dd18d2
Merge branch 'next' into copilot/fix-react-storybook-hooks-issue
jonniebigodes Feb 27, 2026
9334c23
Merge pull request #33935 from storybookjs/copilot/fix-react-storyboo…
jonniebigodes Feb 27, 2026
c046a5f
Merge pull request #33923 from storybookjs/sidnioulz/object-code-debt
Sidnioulz Feb 27, 2026
ad66209
Merge pull request #33876 from storybookjs/sidnioulz/fix-focusable-sc…
Sidnioulz Feb 27, 2026
1cc41db
Initial plan
Copilot Feb 27, 2026
b061ce9
docs: update Angular version range to include v21 support
Copilot Feb 27, 2026
f73e0fe
Merge pull request #33955 from storybookjs/copilot/update-angular-v21…
jonniebigodes Feb 27, 2026
2b8e827
Merge pull request #33940 from storybookjs/kasper/fix-render-template…
kasperpeulen Feb 28, 2026
2a4ecd4
Write changelog for 10.3.0-alpha.13 [skip ci]
storybook-bot Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,12 @@ yarn nx compile <package-name> -c production # Compile specific package
yarn lint # Run all linting checks (~4 min)
```

Fix linting on all touched files by running the following command before commiting:

```bash
yarn --cwd code lint:js:cmd <file> --fix
```

### Type Checking

```bash
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 10.2.13

- Addon Pseudo-states: Process all nested css rules - [#33605](https://github.com/storybookjs/storybook/pull/33605), thanks @hpohlmeyer!
- Builder-Vite: Prevent config duplication - [#33883](https://github.com/storybookjs/storybook/pull/33883), thanks @copilot-swe-agent!
- CLI: Fix React native web A11y issues - [#33937](https://github.com/storybookjs/storybook/pull/33937), thanks @jonniebigodes!
- Core: Avoid hanging when inferring args for recursive calls on DOM elemens - [#33922](https://github.com/storybookjs/storybook/pull/33922), thanks @valentinpalkovic!
- Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - [#33884](https://github.com/storybookjs/storybook/pull/33884), thanks @copilot-swe-agent!
- Viewport: Prioritize story viewport globals and avoid user-global pollution - [#33849](https://github.com/storybookjs/storybook/pull/33849), thanks @ia319!

## 10.2.12

- Core: Sanitize inputs for save from controls - [#33868](https://github.com/storybookjs/storybook/pull/33868), thanks @valentinpalkovic!
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.prerelease.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 10.3.0-alpha.13

- A11y: Add ScrollArea prop focusable for when it has static children - [#33876](https://github.com/storybookjs/storybook/pull/33876), thanks @Sidnioulz!
- CLI: Set STORYBOOK environment variable - [#33938](https://github.com/storybookjs/storybook/pull/33938), thanks @yannbf!
- Controls: Fix Object contrast issue and tidy up code - [#33923](https://github.com/storybookjs/storybook/pull/33923), thanks @Sidnioulz!
- HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - [#33930](https://github.com/storybookjs/storybook/pull/33930), thanks @copilot-swe-agent!
- React: Handle render identifier in manifest snippet generation - [#33940](https://github.com/storybookjs/storybook/pull/33940), thanks @kasperpeulen!
- UI: Prevent crash when tag filters contain undefined entries - [#33931](https://github.com/storybookjs/storybook/pull/33931), thanks @abhaysinh1000!

## 10.3.0-alpha.12

- Builder-Vite: Prevent config duplication - [#33883](https://github.com/storybookjs/storybook/pull/33883), thanks @copilot-swe-agent!
Expand Down
33 changes: 11 additions & 22 deletions code/addons/docs/src/blocks/controls/Object.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
import type { ComponentProps, FC, FocusEvent, SyntheticEvent } from 'react';
import type { FC, FocusEvent, SyntheticEvent } from 'react';
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';

import { Button, Form, ToggleButton } from 'storybook/internal/components';

import { AddIcon, SubtractIcon } from '@storybook/icons';

import { cloneDeep } from 'es-toolkit/object';
import { type Theme, styled, useTheme } from 'storybook/theming';
import { styled, useTheme } from 'storybook/theming';

import { getControlId, getControlSetterButtonId } from './helpers';
import { JsonTree } from './react-editable-json-tree';
import type { ControlProps, ObjectConfig, ObjectValue } from './types';

const { window: globalWindow } = globalThis;

type JsonTreeProps = ComponentProps<typeof JsonTree>;

const Wrapper = styled.div(({ theme }) => ({
position: 'relative',
display: 'flex',
Expand All @@ -39,8 +37,14 @@ const Wrapper = styled.div(({ theme }) => ({
alignItems: 'center',
},
'.rejt-name': {
color: theme.color.secondary,
lineHeight: '22px',
},
'.rejt-not-collapsed-list': {
listStyle: 'none',
margin: '0 0 0 1rem',
padding: 0,
},
'.rejt-not-collapsed-delimiter': {
lineHeight: '22px',
},
Expand All @@ -57,6 +61,9 @@ const Wrapper = styled.div(({ theme }) => ({
background: theme.base === 'light' ? theme.color.lighter : 'hsl(0 0 100 / 0.02)',
borderColor: theme.appBorderColor,
},
'.rejt-collapsed-value': {
color: theme.color.defaultText,
},
}));

const ButtonInline = styled.button<{ primary?: boolean }>(({ theme, primary }) => ({
Expand Down Expand Up @@ -155,23 +162,6 @@ const selectValue = (event: SyntheticEvent<HTMLInputElement>) => {

export type ObjectProps = ControlProps<ObjectValue> & ObjectConfig;

const getCustomStyleFunction: (theme: Theme) => JsonTreeProps['getStyle'] = (theme) => () => ({
name: {
color: theme.color.secondary,
},
collapsed: {
color: theme.color.dark,
},
ul: {
listStyle: 'none',
margin: '0 0 0 1rem',
padding: 0,
},
li: {
outline: 0,
},
});

export const ObjectControl: FC<ObjectProps> = ({ name, value, onChange, argType }) => {
const theme = useTheme();
const data = useMemo(() => value && cloneDeep(value), [value]);
Expand Down Expand Up @@ -266,7 +256,6 @@ export const ObjectControl: FC<ObjectProps> = ({ name, value, onChange, argType
data={data}
rootName={name}
onFullyUpdate={onChange}
getStyle={getCustomStyleFunction(theme)}
cancelButtonElement={<ButtonInline type="button">Cancel</ButtonInline>}
addButtonElement={
<ButtonInline type="submit" primary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export function JsonNodeAccordion({
{name} :
</Trigger>
<Region
role="region"
role="group"
id={ids.region}
aria-labelledby={ids.trigger}
className="rejt-accordion-region"
Expand Down
Loading
Loading