Skip to content

Commit 48caf94

Browse files
committed
Merge branch 'main' into s2-combobox-picker-virtualizer
2 parents 85440fc + 1dd65ff commit 48caf94

Some content is hidden

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

56 files changed

+5080
-571
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/buffer.d.ts b/buffer.d.ts
2+
index 5d6c97d6b5d47fd189f795498aefd6b8d7713b7d..b9a22c4634fa6308006ae17d3527ff3c518a789d 100644
3+
--- a/buffer.d.ts
4+
+++ b/buffer.d.ts
5+
@@ -629,7 +629,7 @@ declare module "buffer" {
6+
*/
7+
poolSize: number;
8+
}
9+
- interface Buffer extends Uint8Array {
10+
+ interface Buffer extends Uint8Array<ArrayBuffer> {
11+
/**
12+
* Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did
13+
* not contain enough space to fit the entire string, only part of `string` will be

lib/viewTransitions.d.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,3 @@
1313
interface Document {
1414
startViewTransition(update: (() => void) | {update: () => void, types: string[]}): ViewTransition;
1515
}
16-
17-
interface ViewTransition {
18-
ready: Promise<void>;
19-
finished: Promise<void>;
20-
}

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@
206206
"tailwindcss": "^4.0.0",
207207
"tailwindcss-animate": "^1.0.7",
208208
"tempy": "^0.5.0",
209-
"typescript": "^5.5.0",
209+
"typescript": "^5.8.2",
210210
"typescript-eslint": "^8.9.0",
211211
"verdaccio": "^6.0.0",
212212
"walk-object": "^4.0.0",
@@ -234,7 +234,10 @@
234234
"recast": "0.23.6",
235235
"ast-types": "0.16.1",
236236
"svgo": "^3",
237-
"@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch"
237+
"@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch",
238+
"@types/node@npm:*": "patch:@types/node@npm%3A20.14.13#~/.yarn/patches/@types-node-npm-20.14.13-41f92d384c.patch",
239+
"@types/node@npm:^18.0.0": "patch:@types/node@npm%3A20.14.13#~/.yarn/patches/@types-node-npm-20.14.13-41f92d384c.patch",
240+
"@types/node@npm:>= 8": "patch:@types/node@npm%3A20.14.13#~/.yarn/patches/@types-node-npm-20.14.13-41f92d384c.patch"
238241
},
239242
"@parcel/transformer-css": {
240243
"cssModules": {

packages/@react-aria/dnd/src/useDrop.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export interface DropOptions {
3636
/**
3737
* Handler that is called after a valid drag is held over the drop target for a period of time.
3838
* This typically opens the item so that the user can drop within it.
39-
* @private
4039
*/
4140
onDropActivate?: (e: DropActivateEvent) => void,
4241
/** Handler that is called when a valid drag exits the drop target. */

packages/@react-aria/dnd/src/useDroppableCollection.ts

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
DropTargetDelegate,
3131
Key,
3232
KeyboardDelegate,
33+
KeyboardEvents,
3334
Node,
3435
RefObject
3536
} from '@react-types/shared';
@@ -46,7 +47,8 @@ export interface DroppableCollectionOptions extends DroppableCollectionProps {
4647
/** A delegate object that implements behavior for keyboard focus movement. */
4748
keyboardDelegate: KeyboardDelegate,
4849
/** A delegate object that provides drop targets for pointer coordinates within the collection. */
49-
dropTargetDelegate: DropTargetDelegate
50+
dropTargetDelegate: DropTargetDelegate,
51+
onKeyDown?: KeyboardEvents['onKeyDown']
5052
}
5153

5254
export interface DroppableCollectionResult {
@@ -201,7 +203,7 @@ export function useDroppableCollection(props: DroppableCollectionOptions, state:
201203
autoScroll.stop();
202204
},
203205
onDropActivate(e) {
204-
if (state.target?.type === 'item' && state.target?.dropPosition === 'on' && typeof props.onDropActivate === 'function') {
206+
if (state.target?.type === 'item' && typeof props.onDropActivate === 'function') {
205207
props.onDropActivate({
206208
type: 'dropactivate',
207209
x: e.x, // todo
@@ -258,18 +260,25 @@ export function useDroppableCollection(props: DroppableCollectionOptions, state:
258260
// inserted item. If selection is disabled, then also show the focus ring so there
259261
// is some indication that items were added.
260262
if (state.selectionManager.focusedKey === prevFocusedKey) {
261-
let first = newKeys.keys().next().value;
262-
let item = state.collection.getItem(first);
263-
264-
// If this is a cell, focus the parent row.
265-
if (item?.type === 'cell') {
266-
first = item.parentKey;
267-
}
263+
let first: Key | null | undefined = newKeys.keys().next().value;
264+
if (first != null) {
265+
let item = state.collection.getItem(first);
266+
267+
// If this is a cell, focus the parent row.
268+
// eslint-disable-next-line max-depth
269+
if (item?.type === 'cell') {
270+
first = item.parentKey;
271+
}
268272

269-
state.selectionManager.setFocusedKey(first);
273+
// eslint-disable-next-line max-depth
274+
if (first != null) {
275+
state.selectionManager.setFocusedKey(first);
276+
}
270277

271-
if (state.selectionManager.selectionMode === 'none') {
272-
setInteractionModality('keyboard');
278+
// eslint-disable-next-line max-depth
279+
if (state.selectionManager.selectionMode === 'none') {
280+
setInteractionModality('keyboard');
281+
}
273282
}
274283
}
275284
} else if (
@@ -335,7 +344,7 @@ export function useDroppableCollection(props: DroppableCollectionOptions, state:
335344
}, 50);
336345
}, [localState, defaultOnDrop, ref, updateFocusAfterDrop]);
337346

338-
347+
339348
useEffect(() => {
340349
return () => {
341350
if (droppingState.current) {
@@ -741,6 +750,7 @@ export function useDroppableCollection(props: DroppableCollectionOptions, state:
741750
break;
742751
}
743752
}
753+
localState.props.onKeyDown?.(e as any);
744754
}
745755
});
746756
}, [localState, ref, onDrop, direction]);

packages/@react-aria/grid/src/useGridSelectionAnnouncement.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,25 @@ export function useGridSelectionAnnouncement<T>(props: GridSelectionAnnouncement
6161
let messages: string[] = [];
6262

6363
if ((state.selectionManager.selectedKeys.size === 1 && isReplace)) {
64-
if (state.collection.getItem(state.selectionManager.selectedKeys.keys().next().value)) {
65-
let currentSelectionText = getRowText(state.selectionManager.selectedKeys.keys().next().value);
64+
let firstKey = state.selectionManager.selectedKeys.keys().next().value;
65+
if (firstKey != null && state.collection.getItem(firstKey)) {
66+
let currentSelectionText = getRowText(firstKey);
6667
if (currentSelectionText) {
6768
messages.push(stringFormatter.format('selectedItem', {item: currentSelectionText}));
6869
}
6970
}
7071
} else if (addedKeys.size === 1 && removedKeys.size === 0) {
71-
let addedText = getRowText(addedKeys.keys().next().value);
72-
if (addedText) {
73-
messages.push(stringFormatter.format('selectedItem', {item: addedText}));
72+
let firstKey = addedKeys.keys().next().value;
73+
if (firstKey != null) {
74+
let addedText = getRowText(firstKey);
75+
if (addedText) {
76+
messages.push(stringFormatter.format('selectedItem', {item: addedText}));
77+
}
7478
}
7579
} else if (removedKeys.size === 1 && addedKeys.size === 0) {
76-
if (state.collection.getItem(removedKeys.keys().next().value)) {
77-
let removedText = getRowText(removedKeys.keys().next().value);
80+
let firstKey = removedKeys.keys().next().value;
81+
if (firstKey != null && state.collection.getItem(firstKey)) {
82+
let removedText = getRowText(firstKey);
7883
if (removedText) {
7984
messages.push(stringFormatter.format('deselectedItem', {item: removedText}));
8085
}

packages/@react-spectrum/calendar/stories/Calendar.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ const calendars = [
209209

210210
function Example(props) {
211211
let [locale, setLocale] = React.useState('');
212-
let [calendar, setCalendar] = React.useState<Key>(calendars[0].key);
212+
let [calendar, setCalendar] = React.useState<Key | null>(calendars[0].key);
213213
let {locale: defaultLocale} = useLocale();
214214

215215
let pref = preferences.find(p => p.locale === locale)!;

packages/@react-spectrum/datepicker/stories/DateField.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ export const IsDateUnavailable: DateFieldStory = {
212212
...Default,
213213
args: {
214214
isDateUnavailable: (date) => {
215-
return date.compare(new CalendarDate(1980, 1, 1)) >= 0
215+
return date.compare(new CalendarDate(1980, 1, 1)) >= 0
216216
&& date.compare(new CalendarDate(1980, 1, 8)) <= 0;
217217
},
218218
errorMessage: 'Date unavailable.',
@@ -310,7 +310,7 @@ const calendars = [
310310

311311
function Example(props) {
312312
let [locale, setLocale] = React.useState('');
313-
let [calendar, setCalendar] = React.useState<Key>(calendars[0].key);
313+
let [calendar, setCalendar] = React.useState<Key | null>(calendars[0].key);
314314
let {locale: defaultLocale} = useLocale();
315315

316316
let pref = preferences.find(p => p.locale === locale);

packages/@react-spectrum/datepicker/stories/DatePicker.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ const calendars = [
338338

339339
function Example(props) {
340340
let [locale, setLocale] = React.useState('');
341-
let [calendar, setCalendar] = React.useState<Key>(calendars[0].key);
341+
let [calendar, setCalendar] = React.useState<Key | null>(calendars[0].key);
342342
let {locale: defaultLocale} = useLocale();
343343

344344
let pref = preferences.find(p => p.locale === locale);

packages/@react-spectrum/datepicker/stories/DateRangePicker.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ const calendars = [
238238

239239
function Example(props) {
240240
let [locale, setLocale] = React.useState('');
241-
let [calendar, setCalendar] = React.useState<Key>(calendars[0].key);
241+
let [calendar, setCalendar] = React.useState<Key | null>(calendars[0].key);
242242
let {locale: defaultLocale} = useLocale();
243243

244244
let pref = preferences.find(p => p.locale === locale);

0 commit comments

Comments
 (0)