react-native-tvos 0.71.8-0rc4 → 0.71.10-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -279,92 +279,6 @@ export interface TextInputIOSProps {
279
279
  * @see https://reactnative.dev/docs/textinput#props
280
280
  */
281
281
  export interface TextInputAndroidProps {
282
- /**
283
- * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
284
- * To disable autocomplete, set `autoComplete` to `off`.
285
- *
286
- * *Android Only*
287
- *
288
- * Possible values for `autoComplete` are:
289
- *
290
- * - `birthdate-day`
291
- * - `birthdate-full`
292
- * - `birthdate-month`
293
- * - `birthdate-year`
294
- * - `cc-csc`
295
- * - `cc-exp`
296
- * - `cc-exp-day`
297
- * - `cc-exp-month`
298
- * - `cc-exp-year`
299
- * - `cc-number`
300
- * - `email`
301
- * - `gender`
302
- * - `name`
303
- * - `name-family`
304
- * - `name-given`
305
- * - `name-middle`
306
- * - `name-middle-initial`
307
- * - `name-prefix`
308
- * - `name-suffix`
309
- * - `password`
310
- * - `password-new`
311
- * - `postal-address`
312
- * - `postal-address-country`
313
- * - `postal-address-extended`
314
- * - `postal-address-extended-postal-code`
315
- * - `postal-address-locality`
316
- * - `postal-address-region`
317
- * - `postal-code`
318
- * - `street-address`
319
- * - `sms-otp`
320
- * - `tel`
321
- * - `tel-country-code`
322
- * - `tel-national`
323
- * - `tel-device`
324
- * - `username`
325
- * - `username-new`
326
- * - `off`
327
- */
328
- autoComplete?:
329
- | 'birthdate-day'
330
- | 'birthdate-full'
331
- | 'birthdate-month'
332
- | 'birthdate-year'
333
- | 'cc-csc'
334
- | 'cc-exp'
335
- | 'cc-exp-day'
336
- | 'cc-exp-month'
337
- | 'cc-exp-year'
338
- | 'cc-number'
339
- | 'email'
340
- | 'gender'
341
- | 'name'
342
- | 'name-family'
343
- | 'name-given'
344
- | 'name-middle'
345
- | 'name-middle-initial'
346
- | 'name-prefix'
347
- | 'name-suffix'
348
- | 'password'
349
- | 'password-new'
350
- | 'postal-address'
351
- | 'postal-address-country'
352
- | 'postal-address-extended'
353
- | 'postal-address-extended-postal-code'
354
- | 'postal-address-locality'
355
- | 'postal-address-region'
356
- | 'postal-code'
357
- | 'street-address'
358
- | 'sms-otp'
359
- | 'tel'
360
- | 'tel-country-code'
361
- | 'tel-national'
362
- | 'tel-device'
363
- | 'username'
364
- | 'username-new'
365
- | 'off'
366
- | undefined;
367
-
368
282
  /**
369
283
  * When provided it will set the color of the cursor (or "caret") in the component.
370
284
  * Unlike the behavior of `selectionColor` the cursor color will be set independently
@@ -548,6 +462,127 @@ export interface TextInputProps
548
462
  */
549
463
  autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters' | undefined;
550
464
 
465
+ /**
466
+ * Specifies autocomplete hints for the system, so it can provide autofill.
467
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
468
+ * To disable autocomplete, set autoComplete to off.
469
+ *
470
+ * The following values work across platforms:
471
+ *
472
+ * - `additional-name`
473
+ * - `address-line1`
474
+ * - `address-line2`
475
+ * - `cc-number`
476
+ * - `country`
477
+ * - `current-password`
478
+ * - `email`
479
+ * - `family-name`
480
+ * - `given-name`
481
+ * - `honorific-prefix`
482
+ * - `honorific-suffix`
483
+ * - `name`
484
+ * - `new-password`
485
+ * - `off`
486
+ * - `one-time-code`
487
+ * - `postal-code`
488
+ * - `street-address`
489
+ * - `tel`
490
+ * - `username`
491
+ *
492
+ * The following values work on iOS only:
493
+ *
494
+ * - `nickname`
495
+ * - `organization`
496
+ * - `organization-title`
497
+ * - `url`
498
+ *
499
+ * The following values work on Android only:
500
+ *
501
+ * - `birthdate-day`
502
+ * - `birthdate-full`
503
+ * - `birthdate-month`
504
+ * - `birthdate-year`
505
+ * - `cc-csc`
506
+ * - `cc-exp`
507
+ * - `cc-exp-day`
508
+ * - `cc-exp-month`
509
+ * - `cc-exp-year`
510
+ * - `gender`
511
+ * - `name-family`
512
+ * - `name-given`
513
+ * - `name-middle`
514
+ * - `name-middle-initial`
515
+ * - `name-prefix`
516
+ * - `name-suffix`
517
+ * - `password`
518
+ * - `password-new`
519
+ * - `postal-address`
520
+ * - `postal-address-country`
521
+ * - `postal-address-extended`
522
+ * - `postal-address-extended-postal-code`
523
+ * - `postal-address-locality`
524
+ * - `postal-address-region`
525
+ * - `sms-otp`
526
+ * - `tel-country-code`
527
+ * - `tel-national`
528
+ * - `tel-device`
529
+ * - `username-new`
530
+ */
531
+ autoComplete?:
532
+ | 'additional-name'
533
+ | 'address-line1'
534
+ | 'address-line2'
535
+ | 'birthdate-day'
536
+ | 'birthdate-full'
537
+ | 'birthdate-month'
538
+ | 'birthdate-year'
539
+ | 'cc-csc'
540
+ | 'cc-exp'
541
+ | 'cc-exp-day'
542
+ | 'cc-exp-month'
543
+ | 'cc-exp-year'
544
+ | 'cc-number'
545
+ | 'country'
546
+ | 'current-password'
547
+ | 'email'
548
+ | 'family-name'
549
+ | 'gender'
550
+ | 'given-name'
551
+ | 'honorific-prefix'
552
+ | 'honorific-suffix'
553
+ | 'name'
554
+ | 'name-family'
555
+ | 'name-given'
556
+ | 'name-middle'
557
+ | 'name-middle-initial'
558
+ | 'name-prefix'
559
+ | 'name-suffix'
560
+ | 'new-password'
561
+ | 'nickname'
562
+ | 'one-time-code'
563
+ | 'organization'
564
+ | 'organization-title'
565
+ | 'password'
566
+ | 'password-new'
567
+ | 'postal-address'
568
+ | 'postal-address-country'
569
+ | 'postal-address-extended'
570
+ | 'postal-address-extended-postal-code'
571
+ | 'postal-address-locality'
572
+ | 'postal-address-region'
573
+ | 'postal-code'
574
+ | 'street-address'
575
+ | 'sms-otp'
576
+ | 'tel'
577
+ | 'tel-country-code'
578
+ | 'tel-national'
579
+ | 'tel-device'
580
+ | 'url'
581
+ | 'username'
582
+ | 'username-new'
583
+ | 'off'
584
+ | undefined;
585
+
551
586
  /**
552
587
  * If false, disables auto-correct.
553
588
  * The default value is true.
@@ -196,36 +196,6 @@ export type enterKeyHintType =
196
196
  type PasswordRules = string;
197
197
 
198
198
  type IOSProps = $ReadOnly<{|
199
- /**
200
- * Give the keyboard and the system information about the
201
- * expected semantic meaning for the content that users enter.
202
- * @platform ios
203
- */
204
- autoComplete?: ?(
205
- | 'address-line1'
206
- | 'address-line2'
207
- | 'cc-number'
208
- | 'current-password'
209
- | 'country'
210
- | 'email'
211
- | 'name'
212
- | 'additional-name'
213
- | 'family-name'
214
- | 'given-name'
215
- | 'nickname'
216
- | 'honorific-prefix'
217
- | 'honorific-suffix'
218
- | 'new-password'
219
- | 'off'
220
- | 'one-time-code'
221
- | 'organization'
222
- | 'organization-title'
223
- | 'postal-code'
224
- | 'street-address'
225
- | 'tel'
226
- | 'url'
227
- | 'username'
228
- ),
229
199
  /**
230
200
  * When the clear button should appear on the right side of the text view.
231
201
  * This property is supported only for single-line TextInput component.
@@ -328,111 +298,6 @@ type IOSProps = $ReadOnly<{|
328
298
  |}>;
329
299
 
330
300
  type AndroidProps = $ReadOnly<{|
331
- /**
332
- * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
333
- * To disable autocomplete, set `autoComplete` to `off`.
334
- *
335
- * *Android Only*
336
- *
337
- * Possible values for `autoComplete` are:
338
- *
339
- * - `birthdate-day`
340
- * - `birthdate-full`
341
- * - `birthdate-month`
342
- * - `birthdate-year`
343
- * - `cc-csc`
344
- * - `cc-exp`
345
- * - `cc-exp-day`
346
- * - `cc-exp-month`
347
- * - `cc-exp-year`
348
- * - `cc-number`
349
- * - `email`
350
- * - `gender`
351
- * - `name`
352
- * - `name-family`
353
- * - `name-given`
354
- * - `name-middle`
355
- * - `name-middle-initial`
356
- * - `name-prefix`
357
- * - `name-suffix`
358
- * - `password`
359
- * - `password-new`
360
- * - `postal-address`
361
- * - `postal-address-country`
362
- * - `postal-address-extended`
363
- * - `postal-address-extended-postal-code`
364
- * - `postal-address-locality`
365
- * - `postal-address-region`
366
- * - `postal-code`
367
- * - `street-address`
368
- * - `sms-otp`
369
- * - `tel`
370
- * - `tel-country-code`
371
- * - `tel-national`
372
- * - `tel-device`
373
- * - `username`
374
- * - `username-new`
375
- * - `off`
376
- *
377
- * @platform android
378
- */
379
- autoComplete?: ?(
380
- | 'birthdate-day'
381
- | 'birthdate-full'
382
- | 'birthdate-month'
383
- | 'birthdate-year'
384
- | 'cc-csc'
385
- | 'cc-exp'
386
- | 'cc-exp-day'
387
- | 'cc-exp-month'
388
- | 'cc-exp-year'
389
- | 'cc-number'
390
- | 'email'
391
- | 'gender'
392
- | 'name'
393
- | 'name-family'
394
- | 'name-given'
395
- | 'name-middle'
396
- | 'name-middle-initial'
397
- | 'name-prefix'
398
- | 'name-suffix'
399
- | 'password'
400
- | 'password-new'
401
- | 'postal-address'
402
- | 'postal-address-country'
403
- | 'postal-address-extended'
404
- | 'postal-address-extended-postal-code'
405
- | 'postal-address-locality'
406
- | 'postal-address-region'
407
- | 'postal-code'
408
- | 'street-address'
409
- | 'sms-otp'
410
- | 'tel'
411
- | 'tel-country-code'
412
- | 'tel-national'
413
- | 'tel-device'
414
- | 'username'
415
- | 'username-new'
416
- | 'off'
417
- // additional HTML autocomplete values
418
- | 'address-line1'
419
- | 'address-line2'
420
- | 'bday'
421
- | 'bday-day'
422
- | 'bday-month'
423
- | 'bday-year'
424
- | 'country'
425
- | 'current-password'
426
- | 'honorific-prefix'
427
- | 'honorific-suffix'
428
- | 'additional-name'
429
- | 'family-name'
430
- | 'given-name'
431
- | 'new-password'
432
- | 'one-time-code'
433
- | 'sex'
434
- ),
435
-
436
301
  /**
437
302
  * When provided it will set the color of the cursor (or "caret") in the component.
438
303
  * Unlike the behavior of `selectionColor` the cursor color will be set independently
@@ -533,6 +398,127 @@ export type Props = $ReadOnly<{|
533
398
  */
534
399
  autoCapitalize?: ?AutoCapitalize,
535
400
 
401
+ /**
402
+ * Specifies autocomplete hints for the system, so it can provide autofill.
403
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
404
+ * To disable autocomplete, set autoComplete to off.
405
+ *
406
+ * The following values work across platforms:
407
+ *
408
+ * - `additional-name`
409
+ * - `address-line1`
410
+ * - `address-line2`
411
+ * - `cc-number`
412
+ * - `country`
413
+ * - `current-password`
414
+ * - `email`
415
+ * - `family-name`
416
+ * - `given-name`
417
+ * - `honorific-prefix`
418
+ * - `honorific-suffix`
419
+ * - `name`
420
+ * - `new-password`
421
+ * - `off`
422
+ * - `one-time-code`
423
+ * - `postal-code`
424
+ * - `street-address`
425
+ * - `tel`
426
+ * - `username`
427
+ *
428
+ * The following values work on iOS only:
429
+ *
430
+ * - `nickname`
431
+ * - `organization`
432
+ * - `organization-title`
433
+ * - `url`
434
+ *
435
+ * The following values work on Android only:
436
+ *
437
+ * - `birthdate-day`
438
+ * - `birthdate-full`
439
+ * - `birthdate-month`
440
+ * - `birthdate-year`
441
+ * - `cc-csc`
442
+ * - `cc-exp`
443
+ * - `cc-exp-day`
444
+ * - `cc-exp-month`
445
+ * - `cc-exp-year`
446
+ * - `gender`
447
+ * - `name-family`
448
+ * - `name-given`
449
+ * - `name-middle`
450
+ * - `name-middle-initial`
451
+ * - `name-prefix`
452
+ * - `name-suffix`
453
+ * - `password`
454
+ * - `password-new`
455
+ * - `postal-address`
456
+ * - `postal-address-country`
457
+ * - `postal-address-extended`
458
+ * - `postal-address-extended-postal-code`
459
+ * - `postal-address-locality`
460
+ * - `postal-address-region`
461
+ * - `sms-otp`
462
+ * - `tel-country-code`
463
+ * - `tel-national`
464
+ * - `tel-device`
465
+ * - `username-new`
466
+ */
467
+ autoComplete?: ?(
468
+ | 'additional-name'
469
+ | 'address-line1'
470
+ | 'address-line2'
471
+ | 'birthdate-day'
472
+ | 'birthdate-full'
473
+ | 'birthdate-month'
474
+ | 'birthdate-year'
475
+ | 'cc-csc'
476
+ | 'cc-exp'
477
+ | 'cc-exp-day'
478
+ | 'cc-exp-month'
479
+ | 'cc-exp-year'
480
+ | 'cc-number'
481
+ | 'country'
482
+ | 'current-password'
483
+ | 'email'
484
+ | 'family-name'
485
+ | 'gender'
486
+ | 'given-name'
487
+ | 'honorific-prefix'
488
+ | 'honorific-suffix'
489
+ | 'name'
490
+ | 'name-family'
491
+ | 'name-given'
492
+ | 'name-middle'
493
+ | 'name-middle-initial'
494
+ | 'name-prefix'
495
+ | 'name-suffix'
496
+ | 'new-password'
497
+ | 'nickname'
498
+ | 'one-time-code'
499
+ | 'organization'
500
+ | 'organization-title'
501
+ | 'password'
502
+ | 'password-new'
503
+ | 'postal-address'
504
+ | 'postal-address-country'
505
+ | 'postal-address-extended'
506
+ | 'postal-address-extended-postal-code'
507
+ | 'postal-address-locality'
508
+ | 'postal-address-region'
509
+ | 'postal-code'
510
+ | 'street-address'
511
+ | 'sms-otp'
512
+ | 'tel'
513
+ | 'tel-country-code'
514
+ | 'tel-national'
515
+ | 'tel-device'
516
+ | 'url'
517
+ | 'username'
518
+ | 'username-new'
519
+ | 'off'
520
+ ),
521
+
536
522
  /**
537
523
  * If `false`, disables auto-correct. The default value is `true`.
538
524
  */
@@ -230,36 +230,6 @@ export type enterKeyHintType =
230
230
  type PasswordRules = string;
231
231
 
232
232
  type IOSProps = $ReadOnly<{|
233
- /**
234
- * Give the keyboard and the system information about the
235
- * expected semantic meaning for the content that users enter.
236
- * @platform ios
237
- */
238
- autoComplete?: ?(
239
- | 'address-line1'
240
- | 'address-line2'
241
- | 'cc-number'
242
- | 'current-password'
243
- | 'country'
244
- | 'email'
245
- | 'name'
246
- | 'additional-name'
247
- | 'family-name'
248
- | 'given-name'
249
- | 'nickname'
250
- | 'honorific-prefix'
251
- | 'honorific-suffix'
252
- | 'new-password'
253
- | 'off'
254
- | 'one-time-code'
255
- | 'organization'
256
- | 'organization-title'
257
- | 'postal-code'
258
- | 'street-address'
259
- | 'tel'
260
- | 'url'
261
- | 'username'
262
- ),
263
233
  /**
264
234
  * When the clear button should appear on the right side of the text view.
265
235
  * This property is supported only for single-line TextInput component.
@@ -365,111 +335,6 @@ type IOSProps = $ReadOnly<{|
365
335
  |}>;
366
336
 
367
337
  type AndroidProps = $ReadOnly<{|
368
- /**
369
- * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
370
- * To disable autocomplete, set `autoComplete` to `off`.
371
- *
372
- * *Android Only*
373
- *
374
- * Possible values for `autoComplete` are:
375
- *
376
- * - `birthdate-day`
377
- * - `birthdate-full`
378
- * - `birthdate-month`
379
- * - `birthdate-year`
380
- * - `cc-csc`
381
- * - `cc-exp`
382
- * - `cc-exp-day`
383
- * - `cc-exp-month`
384
- * - `cc-exp-year`
385
- * - `cc-number`
386
- * - `email`
387
- * - `gender`
388
- * - `name`
389
- * - `name-family`
390
- * - `name-given`
391
- * - `name-middle`
392
- * - `name-middle-initial`
393
- * - `name-prefix`
394
- * - `name-suffix`
395
- * - `password`
396
- * - `password-new`
397
- * - `postal-address`
398
- * - `postal-address-country`
399
- * - `postal-address-extended`
400
- * - `postal-address-extended-postal-code`
401
- * - `postal-address-locality`
402
- * - `postal-address-region`
403
- * - `postal-code`
404
- * - `street-address`
405
- * - `sms-otp`
406
- * - `tel`
407
- * - `tel-country-code`
408
- * - `tel-national`
409
- * - `tel-device`
410
- * - `username`
411
- * - `username-new`
412
- * - `off`
413
- *
414
- * @platform android
415
- */
416
- autoComplete?: ?(
417
- | 'birthdate-day'
418
- | 'birthdate-full'
419
- | 'birthdate-month'
420
- | 'birthdate-year'
421
- | 'cc-csc'
422
- | 'cc-exp'
423
- | 'cc-exp-day'
424
- | 'cc-exp-month'
425
- | 'cc-exp-year'
426
- | 'cc-number'
427
- | 'email'
428
- | 'gender'
429
- | 'name'
430
- | 'name-family'
431
- | 'name-given'
432
- | 'name-middle'
433
- | 'name-middle-initial'
434
- | 'name-prefix'
435
- | 'name-suffix'
436
- | 'password'
437
- | 'password-new'
438
- | 'postal-address'
439
- | 'postal-address-country'
440
- | 'postal-address-extended'
441
- | 'postal-address-extended-postal-code'
442
- | 'postal-address-locality'
443
- | 'postal-address-region'
444
- | 'postal-code'
445
- | 'street-address'
446
- | 'sms-otp'
447
- | 'tel'
448
- | 'tel-country-code'
449
- | 'tel-national'
450
- | 'tel-device'
451
- | 'username'
452
- | 'username-new'
453
- | 'off'
454
- // additional HTML autocomplete values
455
- | 'address-line1'
456
- | 'address-line2'
457
- | 'bday'
458
- | 'bday-day'
459
- | 'bday-month'
460
- | 'bday-year'
461
- | 'country'
462
- | 'current-password'
463
- | 'honorific-prefix'
464
- | 'honorific-suffix'
465
- | 'additional-name'
466
- | 'family-name'
467
- | 'given-name'
468
- | 'new-password'
469
- | 'one-time-code'
470
- | 'sex'
471
- ),
472
-
473
338
  /**
474
339
  * When provided it will set the color of the cursor (or "caret") in the component.
475
340
  * Unlike the behavior of `selectionColor` the cursor color will be set independently
@@ -570,6 +435,127 @@ export type Props = $ReadOnly<{|
570
435
  */
571
436
  autoCapitalize?: ?AutoCapitalize,
572
437
 
438
+ /**
439
+ * Specifies autocomplete hints for the system, so it can provide autofill.
440
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
441
+ * To disable autocomplete, set autoComplete to off.
442
+ *
443
+ * The following values work across platforms:
444
+ *
445
+ * - `additional-name`
446
+ * - `address-line1`
447
+ * - `address-line2`
448
+ * - `cc-number`
449
+ * - `country`
450
+ * - `current-password`
451
+ * - `email`
452
+ * - `family-name`
453
+ * - `given-name`
454
+ * - `honorific-prefix`
455
+ * - `honorific-suffix`
456
+ * - `name`
457
+ * - `new-password`
458
+ * - `off`
459
+ * - `one-time-code`
460
+ * - `postal-code`
461
+ * - `street-address`
462
+ * - `tel`
463
+ * - `username`
464
+ *
465
+ * The following values work on iOS only:
466
+ *
467
+ * - `nickname`
468
+ * - `organization`
469
+ * - `organization-title`
470
+ * - `url`
471
+ *
472
+ * The following values work on Android only:
473
+ *
474
+ * - `birthdate-day`
475
+ * - `birthdate-full`
476
+ * - `birthdate-month`
477
+ * - `birthdate-year`
478
+ * - `cc-csc`
479
+ * - `cc-exp`
480
+ * - `cc-exp-day`
481
+ * - `cc-exp-month`
482
+ * - `cc-exp-year`
483
+ * - `gender`
484
+ * - `name-family`
485
+ * - `name-given`
486
+ * - `name-middle`
487
+ * - `name-middle-initial`
488
+ * - `name-prefix`
489
+ * - `name-suffix`
490
+ * - `password`
491
+ * - `password-new`
492
+ * - `postal-address`
493
+ * - `postal-address-country`
494
+ * - `postal-address-extended`
495
+ * - `postal-address-extended-postal-code`
496
+ * - `postal-address-locality`
497
+ * - `postal-address-region`
498
+ * - `sms-otp`
499
+ * - `tel-country-code`
500
+ * - `tel-national`
501
+ * - `tel-device`
502
+ * - `username-new`
503
+ */
504
+ autoComplete?: ?(
505
+ | 'additional-name'
506
+ | 'address-line1'
507
+ | 'address-line2'
508
+ | 'birthdate-day'
509
+ | 'birthdate-full'
510
+ | 'birthdate-month'
511
+ | 'birthdate-year'
512
+ | 'cc-csc'
513
+ | 'cc-exp'
514
+ | 'cc-exp-day'
515
+ | 'cc-exp-month'
516
+ | 'cc-exp-year'
517
+ | 'cc-number'
518
+ | 'country'
519
+ | 'current-password'
520
+ | 'email'
521
+ | 'family-name'
522
+ | 'gender'
523
+ | 'given-name'
524
+ | 'honorific-prefix'
525
+ | 'honorific-suffix'
526
+ | 'name'
527
+ | 'name-family'
528
+ | 'name-given'
529
+ | 'name-middle'
530
+ | 'name-middle-initial'
531
+ | 'name-prefix'
532
+ | 'name-suffix'
533
+ | 'new-password'
534
+ | 'nickname'
535
+ | 'one-time-code'
536
+ | 'organization'
537
+ | 'organization-title'
538
+ | 'password'
539
+ | 'password-new'
540
+ | 'postal-address'
541
+ | 'postal-address-country'
542
+ | 'postal-address-extended'
543
+ | 'postal-address-extended-postal-code'
544
+ | 'postal-address-locality'
545
+ | 'postal-address-region'
546
+ | 'postal-code'
547
+ | 'street-address'
548
+ | 'sms-otp'
549
+ | 'tel'
550
+ | 'tel-country-code'
551
+ | 'tel-national'
552
+ | 'tel-device'
553
+ | 'url'
554
+ | 'username'
555
+ | 'username-new'
556
+ | 'off'
557
+ ),
558
+
573
559
  /**
574
560
  * If `false`, disables auto-correct. The default value is `true`.
575
561
  */
@@ -12,6 +12,6 @@
12
12
  exports.version = {
13
13
  major: 0,
14
14
  minor: 71,
15
- patch: 8,
16
- prerelease: '0rc4',
15
+ patch: 10,
16
+ prerelease: '0',
17
17
  };
@@ -158,6 +158,9 @@ export default class VirtualizedList extends StateSafePureComponent<
158
158
  scrollToEnd(params?: ?{animated?: ?boolean, ...}) {
159
159
  const animated = params ? params.animated : true;
160
160
  const veryLast = this.props.getItemCount(this.props.data) - 1;
161
+ if (veryLast < 0) {
162
+ return;
163
+ }
161
164
  const frame = this.__getFrameMetricsApprox(veryLast, this.props);
162
165
  const offset = Math.max(
163
166
  0,
@@ -180,6 +180,7 @@ export interface TransformsStyle {
180
180
  | SkewYTransform
181
181
  | MatrixTransform
182
182
  )[]
183
+ | string
183
184
  | undefined;
184
185
  /**
185
186
  * @deprecated Use matrix in transform prop instead.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Going forward, Apple TV support for React Native will be maintained here and in the corresponding `react-native-tvos` NPM package, and not in the [core repo](https://github.com/facebook/react-native/). This is a full fork of the main repository, with only the changes needed to support Apple TV.
4
4
 
5
- Releases of `react-native-tvos` will be based on a public release of `react-native`; e.g. the 0.69.5-0 release of this package will be derived from the 0.69.5 release of `react-native`. All releases of this repo will follow the 0.xx.x-y format, where x digits are from a specific RN core release, and y represents the additional versioning from this repo.
5
+ Releases of `react-native-tvos` will be based on a public release of `react-native`; e.g. the 0.71.8-0 release of this package will be derived from the 0.71.8 release of `react-native`. All releases of this repo will follow the 0.xx.x-y format, where x digits are from a specific RN core release, and y represents the additional versioning from this repo.
6
6
 
7
7
  Releases will be published on npmjs.org and you may find the latest release version here: https://www.npmjs.com/package/react-native-tvos?activeTab=versions or use the tag `@latest`
8
8
 
@@ -16,6 +16,10 @@ To build your project for Apple TV, you should change your `package.json` import
16
16
 
17
17
  You cannot use this package and the core react-native package simultaneously in a project.
18
18
 
19
+ ### Hermes JS support
20
+
21
+ As of the 0.71 release, Hermes is fully working on both Apple TV and Android TV, and is enabled by default.
22
+
19
23
  ### React Native new architecture (Fabric) support
20
24
 
21
25
  Before creating a new project, or running `pod install` in an existing project using version 0.69.5-0 or higher, execute
@@ -25,54 +29,44 @@ export RCT_NEW_ARCH_ENABLED=1
25
29
  ```
26
30
  Notes:
27
31
 
28
- - _Apple TV_: `pod install` will pick up the additional pods needed for the new architecture.
29
- - _Android TV_: Enabling the new architecture will cause your app to be built from React Native sources, including C++ sources, so you will need the NDK and the build will take much longer.
30
- - _Third party libraries_: As of this moment, third party libraries have not all enabled support for the new architecture.
31
- - _Bugs_: There are some issues with interactions between Apple TV parallax properties implementation and the new renderer. TabBarIOS has not been reimplemented in the new architecture so it will show up as an "unimplemented component".
32
+ - _Apple TV_: `pod install` will pick up the additional pods needed for the new architecture. There are some issues with interactions between Apple TV parallax properties implementation and the new renderer. TabBarIOS has not been reimplemented in the new architecture so it will show up as an "unimplemented component".
33
+ - _Android TV_: As in the core repo, Android builds use prebuilt artifacts published in Maven Central.
32
34
 
33
35
  ### Typescript
34
36
 
35
- Due to the nature of the typing resolution, the current solution to include types is to:
37
+ Typescript types for TV-specific components and APIs have been added to `types/public`.
36
38
 
37
- - install `@types/react-native` as a dev dependency
38
- - put `import 'react-native/tvos-types.d'` in any of your `.ts` files (root suggested)
39
+ A minimal Typescript starter template can be used to start a new project using the community react-native CLI (see below for more information on the CLI).
39
40
 
40
- See the "Build Changes" section below for how to start a new project that will automatically use Typescript.
41
+ ```sh
42
+ react-native init TestApp --template=react-native-template-typescript-tv
43
+ ```
41
44
 
42
45
  ## General support for Apple TV
43
46
 
44
- TV devices support has been implemented with the intention of making existing React Native applications "just work" on Apple TV, with few or no changes needed in the JavaScript code for the applications.
47
+ TV device support has been implemented with the intention of making existing React Native applications "just work" on Apple TV, with few or no changes needed in the JavaScript code for the applications.
45
48
 
46
49
  The RNTester app supports Apple TV. In this repo, `RNTester/Podfile` and `RNTester/RNTesterPods.xcodeproj` have been modified to work for tvOS. Run `pod install`, then open `RNTesterPods.xcworkspace` and build.
47
50
 
48
51
  ## Pitfall
49
52
 
50
- Make sure you do not globally install `react-native` or `react-native-tvos`. You should only install `react-native-cli` to use the commands below. If you have done this the wrong way, you may get error messages like:
53
+ Make sure you do not globally install `react-native` or `react-native-tvos`. You should only install `@react-native-community/cli` to use the commands below. If you have done this the wrong way, you may get error messages like:
51
54
 
52
55
  ```
53
56
  ld: library not found for -lPods-TestApp-tvOS
54
57
  ```
55
58
 
56
- You should also install `yarn` globally, as it should be used instead of npm for working in React Native projects.
59
+ You should also install `yarn` globally, as it should be used instead of `npm` for working in React Native projects.
57
60
 
58
61
  ## Build changes
59
62
 
60
63
  - _Native layer_: React Native Xcode projects all now have Apple TV build targets, with names ending in the string '-tvOS'.
61
-
62
64
  - _react-native init_: Creating a new project that uses this package is done using the react-native CLI. New projects created this way will automatically have properly configured Apple TV targets created in their XCode projects.
65
+ - _Maven artifacts_: In 0.71, the React Native Android prebuilt archives are published to Maven instead of being included in the NPM. We are following the same model, except that the Maven artifacts will be in group `io.github.react-native-tvos` instead of `com.facebook.react`. The `react-native-gradle-plugin` has been upgraded so that the Android dependencies will be detected correctly during build.
63
66
 
64
- To use this NPM package in a new project, you can reference it as in the following example using the older `react-native-cli` package:
67
+ ## New project creation
65
68
 
66
- ```sh
67
- # Make sure you have the CLI installed globally (this only needs to be done once on your system)
68
- npm install -g react-native-cli
69
- # Init an app called 'TestApp', note that you must not be in a node module (directory with node_modules sub-directory) for this to work
70
- react-native init TestApp --version=react-native@npm:react-native-tvos@latest
71
- # Now start the app in the tvOS Simulator - this will only work on a macOS machine
72
- cd TestApp && react-native run-ios --simulator "Apple TV" --scheme "TestApp-tvOS"
73
- ```
74
-
75
- If you are using the newer `@react-native-community/cli` package, the syntax is slightly different:
69
+ To use this NPM package in a new project, you can reference it as in the following example using the React Native community CLI:
76
70
 
77
71
  ```sh
78
72
  # Make sure you have the CLI installed globally (this only needs to be done once on your system)
@@ -83,11 +77,12 @@ react-native init TestApp --template=react-native-tvos@latest
83
77
  cd TestApp && react-native run-ios --simulator "Apple TV" --scheme "TestApp-tvOS"
84
78
  ```
85
79
 
86
- A minimal Typescript starter template can be used to start a new project using the community react-native CLI. The process is the same as above except for the template:
87
-
88
- ```sh
89
- react-native init TestApp --template=react-native-template-typescript-tv
90
- ```
80
+ (_Note_: As of now, `npx react-native run-ios` will no longer run Apple TV targets. A fix for this has been merged (https://github.com/react-native-community/cli/pull/1929) and will be released shortly. To run Apple TV (and Android TV) targets from the command line, it is now possible to use the Expo CLI, using the following steps:
81
+ - In your app, install the required Expo modules: `yarn add expo`
82
+ - Add a file `react-native.config.js` at the top level of your app directory, with [these contents](https://github.com/byCedric/custom-prebuild-example/blob/main/app/react-native.config.js).
83
+ - Then an Apple TV target can be run: `npx expo run:ios --scheme MyApp-tvOS --device "Apple TV"`
84
+ - To run Android TV: `npx expo run:android`
85
+ See [this document](https://docs.expo.dev/bare/using-expo-cli/) for more details on Expo CLI functionality. Note that many of these features require that Expo SDK modules be built into your app, which is not yet supported on Apple TV.)
91
86
 
92
87
  - _JavaScript layer_: Support for Apple TV has been added to `Platform.ios.js`. You can check whether code is running on AppleTV by doing
93
88
 
@@ -185,8 +180,6 @@ class Game2048 extends React.Component {
185
180
 
186
181
  - _Flipper_: Working in the 0.62.2-x releases. Working in the 0.63.x releases; however, tvOS requires the Flipper pods from 0.62.2-x. `scripts/react_native_pods.rb` contains macros for both versions. The new project template Podfile is correctly set up to provide the older Flipper for both iOS and tvOS targets. In 0.64.x and later, Flipper support is removed until issues can be resolved with newer Xcode versions.
187
182
 
188
- - _Hermes for tvOS_: RN core added support for the Hermes JS engine on iOS in 0.64. tvOS does not yet have this, as it will require significant additions to the Hermes build structure.
189
-
190
183
  - _LogBox_: The new LogBox error/warning display (which replaced YellowBox in 0.63) is working as expected in tvOS, after a few adjustments to make the controls accessible to the focus engine.
191
184
 
192
185
  - _Pressable_: The new `Pressable` API for React Native 0.63 works with TV. Additional `onFocus` and `onBlur` props are provided to allow you to customize behavior when a Pressable enters or leaves focus. Similar to the `pressed` state that is true while a user is pressing the component on a touchscreen, the `focused` state will be true when it is focused on TV. `PressableExample` in RNTester has been modified appropriately.
@@ -197,7 +190,7 @@ class Game2048 extends React.Component {
197
190
 
198
191
  - _Back navigation with the TV remote menu button_: The `BackHandler` component, originally written to support the Android back button, now also supports back navigation on the Apple TV using the menu button on the TV remote.
199
192
 
200
- - _TVEventControl_: (Formerly "TVMenuControl") (Apple TV only) This module provides methods to enable and disable firing of two types of events from the Apple TV Siri remote:
193
+ - _TVEventControl_: (Formerly "TVMenuControl") (Apple TV only) This module provides methods to enable and disable features on the Apple TV Siri remote:
201
194
  - `enableTVMenuKey`/`disableTVMenuKey`: Method to enable and disable the menu key gesture recognizer, in order to fix an issue with Apple's guidelines for menu key navigation (see https://github.com/facebook/react-native/issues/18930). The `RNTester` app uses these methods to implement correct menu key behavior for back navigation.
202
195
  - `enableTVPanGesture`/`disableTVPanGesture`: Methods to enable and disable detection of finger touches that pan across the touch surface of the Siri remote. See `TVEventHandlerExample` in the `RNTester` app for a demo.
203
196
  - `enableGestureHandlersCancelTouches`/`disableGestureHandlersCancelTouches`: Methods to turn on and turn off cancellation of touches by the gesture handlers in `RCTTVRemoteHandler` (see #366). Cancellation of touches is turned on (enabled) by default in 0.69 and earlier releases.
@@ -210,6 +203,8 @@ class Game2048 extends React.Component {
210
203
  | autoFocus | boolean? | If true, `TVFocusGuide` will automatically manage focus for you. It will redirect the focus to the first focusable child on the first visit. It also remembers the last focused child and redirects the focus to it on the subsequent visits. `destinations` prop takes precedence over this prop when used together. |
211
204
  | trapFocus* (Up, Down, Left, Right) | Prevents focus escaping from the container for the given directions. |
212
205
 
206
+ More information on the focus handling improvements above can be found in [this article](https://medium.com/xite-engineering/revolutionizing-focus-management-in-tv-applications-with-react-native-10ba69bd90).
207
+
213
208
  - _Next Focus Direction_: the props `nextFocus*` on `View` should work as expected on iOS too (previously android only). One caveat is that if there is no focusable in the `nextFocusable*` direction next to the starting view, iOS doesn't check if we want to override the destination.
214
209
 
215
210
  - _TVTextScrollView_: On Apple TV, a ScrollView will not scroll unless there are focusable items inside it or above/below it. This component wraps ScrollView and uses tvOS-specific native code to allow scrolling using swipe gestures from the remote control.
@@ -23,8 +23,8 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(71),
26
- RCTVersionPatch: @(8),
27
- RCTVersionPrerelease: @"0rc4",
26
+ RCTVersionPatch: @(10),
27
+ RCTVersionPrerelease: @"0",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.71.8-0rc4
1
+ VERSION_NAME=0.71.10-0
2
2
 
3
3
  # GROUP=com.facebook.react
4
4
  # Group for the TV repo
@@ -17,6 +17,6 @@ public class ReactNativeVersion {
17
17
  public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
18
18
  "major", 0,
19
19
  "minor", 71,
20
- "patch", 8,
21
- "prerelease", "0rc4");
20
+ "patch", 10,
21
+ "prerelease", "0");
22
22
  }
@@ -17,8 +17,8 @@ namespace facebook::react {
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 71;
20
- int32_t Patch = 8;
21
- std::string_view Prerelease = "0rc4";
20
+ int32_t Patch = 10;
21
+ std::string_view Prerelease = "0";
22
22
  } ReactNativeVersion;
23
23
 
24
24
  } // namespace facebook::react
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-tvos",
3
- "version": "0.71.8-0rc4",
3
+ "version": "0.71.10-0",
4
4
  "bin": "./cli.js",
5
5
  "description": "A framework for building native apps using React",
6
6
  "license": "MIT",
@@ -141,7 +141,7 @@
141
141
  "pretty-format": "^26.5.2",
142
142
  "promise": "^8.3.0",
143
143
  "react-devtools-core": "^4.26.1",
144
- "react-native-gradle-plugin": "^0.71.18",
144
+ "react-native-gradle-plugin": "^0.71.19",
145
145
  "react-refresh": "^0.4.0",
146
146
  "react-shallow-renderer": "^16.15.0",
147
147
  "regenerator-runtime": "^0.13.2",
@@ -196,7 +196,7 @@
196
196
  "mkdirp": "^0.5.1",
197
197
  "mock-fs": "^5.1.4",
198
198
  "prettier": "^2.4.1",
199
- "react-native-core": "npm:react-native@0.71.8",
199
+ "react-native-core": "npm:react-native@0.71.10",
200
200
  "shelljs": "^0.8.5",
201
201
  "signedsource": "^1.0.0",
202
202
  "typescript": "4.1.3",
Binary file
Binary file
package/template/App.tsx CHANGED
@@ -7,8 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import type {PropsWithChildren} from 'react';
10
- import ReactNative, {
11
- Platform,
10
+ import {
12
11
  SafeAreaView,
13
12
  ScrollView,
14
13
  StatusBar,
@@ -41,7 +41,7 @@
41
41
  <string>LaunchScreen</string>
42
42
  <key>UIRequiredDeviceCapabilities</key>
43
43
  <array>
44
- <string>armv7</string>
44
+ <string>arm64</string>
45
45
  </array>
46
46
  <key>UISupportedInterfaceOrientations</key>
47
47
  <array>
@@ -39,7 +39,7 @@
39
39
  <string>LaunchScreen</string>
40
40
  <key>UIRequiredDeviceCapabilities</key>
41
41
  <array>
42
- <string>armv7</string>
42
+ <string>arm64</string>
43
43
  </array>
44
44
  <key>UISupportedInterfaceOrientations</key>
45
45
  <array>
@@ -50,4 +50,4 @@
50
50
  <key>UIViewControllerBasedStatusBarAppearance</key>
51
51
  <false/>
52
52
  </dict>
53
- </plist>
53
+ </plist>
@@ -22,7 +22,7 @@ target 'HelloWorld' do
22
22
  # Hermes is now enabled by default. Disable by setting this flag to false.
23
23
  # Upcoming versions of React Native may rely on get_default_flags(), but
24
24
  # we make it explicit here to aid in the React Native upgrade process.
25
- :hermes_enabled => false,
25
+ :hermes_enabled => true,
26
26
  :fabric_enabled => flags[:fabric_enabled],
27
27
  # Enables Flipper.
28
28
  #
@@ -50,8 +50,10 @@ target 'HelloWorld-tvOS' do
50
50
 
51
51
  use_react_native!(
52
52
  :path => config[:reactNativePath],
53
- # Hermes not yet available on tvOS
54
- :hermes_enabled => false,
53
+ # Hermes is now enabled by default. Disable by setting this flag to false.
54
+ # Upcoming versions of React Native may rely on get_default_flags(), but
55
+ # we make it explicit here to aid in the React Native upgrade process.
56
+ :hermes_enabled => true,
55
57
  :fabric_enabled => flags[:fabric_enabled],
56
58
  # An absolute path to your application root.
57
59
  :app_path => "#{Pod::Config.instance.installation_root}/.."
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "react": "18.2.0",
14
- "react-native": "npm:react-native-tvos@0.71.8-0rc4"
14
+ "react-native": "npm:react-native-tvos@0.71.10-0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@babel/core": "^7.20.0",