Skip to content

Commit f9534d8

Browse files
Merge branch 'next' into fix/nextjs15-link-component-override
2 parents 8ecdecc + 37b892e commit f9534d8

File tree

78 files changed

+1784
-960
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1784
-960
lines changed

.github/workflows/stale.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ jobs:
1111
with:
1212
stale-issue-message: "Hi there! Thank you for opening this issue, but it has been marked as `stale` because we need more information to move forward. Could you please provide us with the requested reproduction or additional information that could help us better understand the problem? We'd love to resolve this issue, but we can't do it without your help!"
1313
close-issue-message: "I'm afraid we need to close this issue for now, since we can't take any action without the requested reproduction or additional information. But please don't hesitate to open a new issue if the problem persists – we're always happy to help. Thanks so much for your understanding."
14-
any-of-labels: "needs reproduction,needs more info"
14+
any-of-issue-labels: "needs reproduction,needs more info"
1515
exempt-issue-labels: "needs triage"
1616
labels-to-add-when-unstale: "needs triage"
17-
days-before-stale: 21
18-
days-before-pr-stale: -1
17+
days-before-issue-close: 7
18+
days-before-issue-stale: 21
19+
days-before-pr-stale: 10
20+
exempt-draft-pr: true

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
## 9.0.15
2+
3+
- CLI: Do not fail incompatible package check in doctor if only core packages used - [#31886](https://github.com/storybookjs/storybook/pull/31886), thanks @mrginglymus!
4+
- React: Bump @joshwooding/vite-plugin-react-docgen-typescript to 0.6.1 - [#31899](https://github.com/storybookjs/storybook/pull/31899), thanks @mrginglymus!
5+
6+
## 9.0.14
7+
8+
- CLI: Prebundle more in cli-storybook package - [#31746](https://github.com/storybookjs/storybook/pull/31746), thanks @ndelangen!
9+
- Core: Fix FIPS compliance - [#31806](https://github.com/storybookjs/storybook/pull/31806), thanks @JReinhold!
10+
- Core: Fix addon scrollbars and align scrollbar colors with toolbars - [#31844](https://github.com/storybookjs/storybook/pull/31844), thanks @Sidnioulz!
11+
- Deps: Extend `vite` peerDependencies range to include `7.0.0` - [#31859](https://github.com/storybookjs/storybook/pull/31859), thanks @ghengeveld!
12+
- Deps: Update vite-plugin-babel to 1.3.2 to fix vite 7.0.0 peerDependency issue - [#31888](https://github.com/storybookjs/storybook/pull/31888), thanks @ghengeveld!
13+
- UI: Hide keyboard shortcuts entry from menu when shortcuts are disabled - [#23411](https://github.com/storybookjs/storybook/pull/23411), thanks @Spielboerg!
14+
15+
## 9.0.13
16+
17+
- Core: Gracefully handle disallowed cross-origin clipboard access - [#31834](https://github.com/storybookjs/storybook/pull/31834), thanks @ghengeveld!
18+
- Core: Support array-based catch-all Next.js route segments in AppRouterProvider - [#31524](https://github.com/storybookjs/storybook/pull/31524), thanks @yatishgoel!
19+
- Next.js-Vite: Support Next.js v15.4 - [#31828](https://github.com/storybookjs/storybook/pull/31828), thanks @valentinpalkovic!
20+
- React Native Web: Fix shift spread operator in react-native-web-vite presets - [#31804](https://github.com/storybookjs/storybook/pull/31804), thanks @xlecunff-pass!
21+
- Telemetry: Fix prompting without checking isTTY - [#31781](https://github.com/storybookjs/storybook/pull/31781), thanks @Synar!
22+
- Vite: Remove addon-themes and theming from optimized deps list - [#31833](https://github.com/storybookjs/storybook/pull/31833), thanks @ghengeveld!
23+
124
## 9.0.12
225

326
- Addon Vitest: Support init in Vitest >= 3.2 - [#31715](https://github.com/storybookjs/storybook/pull/31715), thanks @valentinpalkovic!

code/.yarn/patches/@vitest-expect-npm-3.0.9-e2a2210fb4.patch

Lines changed: 0 additions & 44 deletions
This file was deleted.

code/.yarn/patches/@vitest-expect-npm-3.2.4-97c526d5cc.patch

Lines changed: 42 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

code/addons/a11y/src/components/Tabs.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ const Subnav = styled.div(({ theme }) => ({
5858
overflow: 'auto',
5959
paddingRight: 10,
6060
gap: 6,
61+
scrollbarColor: `${theme.barTextColor} ${theme.background.app}`,
62+
scrollbarWidth: 'thin',
6163
}));
6264

6365
const TabsWrapper = styled.div({});

code/addons/docs/src/blocks/controls/Boolean.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ const Label = styled.label(({ theme }) => ({
4545
outline: 'none',
4646
boxShadow: `${theme.color.secondary} 0 0 0 1px inset !important`,
4747
},
48+
'@media (forced-colors: active)': {
49+
'&:focus': {
50+
outline: '1px solid highlight',
51+
},
52+
},
4853
},
4954

5055
span: {
@@ -87,6 +92,10 @@ const Label = styled.label(({ theme }) => ({
8792
: `${theme.appBorderColor} 0 0 0 1px`,
8893
color: theme.color.defaultText,
8994
padding: '7px 15px',
95+
96+
'@media (forced-colors: active)': {
97+
textDecoration: 'underline',
98+
},
9099
},
91100
}));
92101

code/addons/docs/src/blocks/controls/Object.tsx

Lines changed: 49 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,12 @@ const Wrapper = styled.div(({ theme }) => ({
2727
'.rejt-tree': {
2828
marginLeft: '1rem',
2929
fontSize: '13px',
30+
listStyleType: 'none',
3031
},
31-
'.rejt-value-node, .rejt-object-node > .rejt-collapsed, .rejt-array-node > .rejt-collapsed, .rejt-object-node > .rejt-not-collapsed, .rejt-array-node > .rejt-not-collapsed':
32-
{
33-
'& > svg': {
34-
opacity: 0,
35-
transition: 'opacity 0.2s',
36-
},
32+
'.rejt-value-node:hover': {
33+
'& > button': {
34+
opacity: 1,
3735
},
38-
'.rejt-value-node:hover, .rejt-object-node:hover > .rejt-collapsed, .rejt-array-node:hover > .rejt-collapsed, .rejt-object-node:hover > .rejt-not-collapsed, .rejt-array-node:hover > .rejt-not-collapsed':
39-
{
40-
'& > svg': {
41-
opacity: 1,
42-
},
43-
},
44-
'.rejt-edit-form button': {
45-
display: 'none',
4636
},
4737
'.rejt-add-form': {
4838
marginLeft: 10,
@@ -57,62 +47,6 @@ const Wrapper = styled.div(({ theme }) => ({
5747
'.rejt-not-collapsed-delimiter': {
5848
lineHeight: '22px',
5949
},
60-
'.rejt-plus-menu': {
61-
marginLeft: 5,
62-
},
63-
'.rejt-object-node > span > *, .rejt-array-node > span > *': {
64-
position: 'relative',
65-
zIndex: 2,
66-
},
67-
'.rejt-object-node, .rejt-array-node': {
68-
position: 'relative',
69-
},
70-
'.rejt-object-node > span:first-of-type::after, .rejt-array-node > span:first-of-type::after, .rejt-collapsed::before, .rejt-not-collapsed::before':
71-
{
72-
content: '""',
73-
position: 'absolute',
74-
top: 0,
75-
display: 'block',
76-
width: '100%',
77-
marginLeft: '-1rem',
78-
padding: '0 4px 0 1rem',
79-
height: 22,
80-
},
81-
'.rejt-collapsed::before, .rejt-not-collapsed::before': {
82-
zIndex: 1,
83-
background: 'transparent',
84-
borderRadius: 4,
85-
transition: 'background 0.2s',
86-
pointerEvents: 'none',
87-
opacity: 0.1,
88-
},
89-
'.rejt-object-node:hover, .rejt-array-node:hover': {
90-
'& > .rejt-collapsed::before, & > .rejt-not-collapsed::before': {
91-
background: theme.color.secondary,
92-
},
93-
},
94-
'.rejt-collapsed::after, .rejt-not-collapsed::after': {
95-
content: '""',
96-
position: 'absolute',
97-
display: 'inline-block',
98-
pointerEvents: 'none',
99-
width: 0,
100-
height: 0,
101-
},
102-
'.rejt-collapsed::after': {
103-
left: -8,
104-
top: 8,
105-
borderTop: '3px solid transparent',
106-
borderBottom: '3px solid transparent',
107-
borderLeft: '3px solid rgba(153,153,153,0.6)',
108-
},
109-
'.rejt-not-collapsed::after': {
110-
left: -10,
111-
top: 10,
112-
borderTop: '3px solid rgba(153,153,153,0.6)',
113-
borderLeft: '3px solid transparent',
114-
borderRight: '3px solid transparent',
115-
},
11650
'.rejt-value': {
11751
display: 'inline-block',
11852
border: '1px solid transparent',
@@ -137,36 +71,37 @@ const ButtonInline = styled.button<{ primary?: boolean }>(({ theme, primary }) =
13771
color: primary ? theme.color.lightest : theme.color.dark,
13872
fontWeight: primary ? 'bold' : 'normal',
13973
cursor: 'pointer',
140-
order: primary ? 'initial' : 9,
14174
}));
14275

143-
const ActionAddIcon = styled(AddIcon)<{ disabled?: boolean }>(({ theme, disabled }) => ({
144-
display: 'inline-block',
76+
const ActionButton = styled.button(({ theme }) => ({
77+
background: 'none',
78+
border: 0,
79+
display: 'inline-flex',
14580
verticalAlign: 'middle',
146-
width: 15,
147-
height: 15,
14881
padding: 3,
14982
marginLeft: 5,
150-
cursor: disabled ? 'not-allowed' : 'pointer',
15183
color: theme.textMutedColor,
152-
'&:hover': disabled ? {} : { color: theme.color.ancillary },
153-
'svg + &': {
154-
marginLeft: 0,
84+
opacity: 0,
85+
transition: 'opacity 0.2s',
86+
cursor: 'pointer',
87+
position: 'relative',
88+
svg: {
89+
width: 9,
90+
height: 9,
15591
},
156-
}));
157-
158-
const ActionSubstractIcon = styled(SubtractIcon)<{ disabled?: boolean }>(({ theme, disabled }) => ({
159-
display: 'inline-block',
160-
verticalAlign: 'middle',
161-
width: 15,
162-
height: 15,
163-
padding: 3,
164-
marginLeft: 5,
165-
cursor: disabled ? 'not-allowed' : 'pointer',
166-
color: theme.textMutedColor,
167-
'&:hover': disabled ? {} : { color: theme.color.negative },
168-
'svg + &': {
169-
marginLeft: 0,
92+
':disabled': {
93+
cursor: 'not-allowed',
94+
},
95+
':hover, :focus-visible': {
96+
opacity: 1,
97+
},
98+
'&:hover:not(:disabled), &:focus-visible:not(:disabled)': {
99+
'&.rejt-plus-menu': {
100+
color: theme.color.ancillary,
101+
},
102+
'&.rejt-minus-menu': {
103+
color: theme.color.negative,
104+
},
170105
},
171106
}));
172107

@@ -220,7 +155,13 @@ const RawInput = styled(Form.Textarea)(({ theme }) => ({
220155
},
221156
}));
222157

223-
const ENTER_EVENT = { bubbles: true, cancelable: true, key: 'Enter', code: 'Enter', keyCode: 13 };
158+
const ENTER_EVENT = {
159+
bubbles: true,
160+
cancelable: true,
161+
key: 'Enter',
162+
code: 'Enter',
163+
keyCode: 13,
164+
};
224165
const dispatchEnterKey = (event: SyntheticEvent<HTMLInputElement>) => {
225166
event.currentTarget.dispatchEvent(new globalWindow.KeyboardEvent('keydown', ENTER_EVENT));
226167
};
@@ -311,9 +252,12 @@ export const ObjectControl: FC<ObjectProps> = ({ name, value, onChange, argType
311252
<Wrapper aria-readonly={readonly}>
312253
{isObjectOrArray && (
313254
<RawButton
255+
role="switch"
256+
aria-checked={showRaw}
257+
aria-label={`Edit the ${name} properties in text format`}
314258
onClick={(e: SyntheticEvent) => {
315259
e.preventDefault();
316-
setShowRaw((v) => !v);
260+
setShowRaw((isRaw) => !isRaw);
317261
}}
318262
>
319263
{showRaw ? <EyeCloseIcon /> : <EyeIcon />}
@@ -329,14 +273,21 @@ export const ObjectControl: FC<ObjectProps> = ({ name, value, onChange, argType
329273
onFullyUpdate={onChange}
330274
getStyle={getCustomStyleFunction(theme)}
331275
cancelButtonElement={<ButtonInline type="button">Cancel</ButtonInline>}
332-
editButtonElement={<ButtonInline type="submit">Save</ButtonInline>}
333276
addButtonElement={
334277
<ButtonInline type="submit" primary>
335278
Save
336279
</ButtonInline>
337280
}
338-
plusMenuElement={<ActionAddIcon />}
339-
minusMenuElement={<ActionSubstractIcon />}
281+
plusMenuElement={
282+
<ActionButton type="button">
283+
<AddIcon />
284+
</ActionButton>
285+
}
286+
minusMenuElement={
287+
<ActionButton type="button">
288+
<SubtractIcon />
289+
</ActionButton>
290+
}
340291
inputElement={(_: any, __: any, ___: any, key: string) =>
341292
key ? <Input onFocus={selectValue} onBlur={dispatchEnterKey} /> : <Input />
342293
}

0 commit comments

Comments
 (0)