@expo/ui 58.0.6 → 58.0.8

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.
Files changed (113) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/ui/ExpoUIModule.kt +9 -0
  4. package/android/src/main/java/expo/modules/ui/LazyColumnView.kt +6 -1
  5. package/android/src/main/java/expo/modules/ui/LazyItemsView.kt +313 -0
  6. package/android/src/main/java/expo/modules/ui/LazyRowView.kt +6 -1
  7. package/android/src/main/java/expo/modules/ui/ModifierRegistry.kt +11 -3
  8. package/android/src/main/java/expo/modules/ui/RNHostView.kt +18 -4
  9. package/android/src/main/java/expo/modules/ui/SemanticsModifier.kt +2 -1
  10. package/build/jetpack-compose/LazyColumn/index.d.ts +6 -0
  11. package/build/jetpack-compose/LazyColumn/index.js +2 -0
  12. package/build/jetpack-compose/LazyColumn/index.js.map +1 -1
  13. package/build/jetpack-compose/LazyItems/index.d.ts +54 -0
  14. package/build/jetpack-compose/LazyItems/index.js +63 -0
  15. package/build/jetpack-compose/LazyItems/index.js.map +1 -0
  16. package/build/jetpack-compose/LazyRow/index.d.ts +6 -0
  17. package/build/jetpack-compose/LazyRow/index.js +2 -0
  18. package/build/jetpack-compose/LazyRow/index.js.map +1 -1
  19. package/build/jetpack-compose/index.d.ts +1 -0
  20. package/build/jetpack-compose/index.js.map +1 -1
  21. package/build/jetpack-compose/modifiers/index.d.ts +15 -3
  22. package/build/jetpack-compose/modifiers/index.js.map +1 -1
  23. package/build/recycling/useRecycledRows.d.ts +52 -0
  24. package/build/recycling/useRecycledRows.js +121 -0
  25. package/build/recycling/useRecycledRows.js.map +1 -0
  26. package/build/recycling/window.js.map +1 -0
  27. package/build/swift-ui/List/DataListForEach.d.ts +2 -9
  28. package/build/swift-ui/List/DataListForEach.js +15 -106
  29. package/build/swift-ui/List/DataListForEach.js.map +1 -1
  30. package/build/swift-ui/List/ListForEach.js +3 -2
  31. package/build/swift-ui/List/ListForEach.js.map +1 -1
  32. package/build/swift-ui/modifiers/index.d.ts +5 -1
  33. package/build/swift-ui/modifiers/index.js.map +1 -1
  34. package/build/swift-ui/modifiers/presentationModifiers.d.ts +8 -0
  35. package/build/swift-ui/modifiers/presentationModifiers.js +9 -0
  36. package/build/swift-ui/modifiers/presentationModifiers.js.map +1 -1
  37. package/build/universal/State.android.d.ts +1 -3
  38. package/build/universal/State.d.ts +2 -3
  39. package/build/universal/State.ios.d.ts +1 -3
  40. package/build/universal/State.js +10 -4
  41. package/build/universal/State.js.map +1 -1
  42. package/build/universal/transformStyle.ios.js +4 -3
  43. package/build/universal/transformStyle.ios.js.map +1 -1
  44. package/build/universal/types.d.ts +24 -0
  45. package/build/universal/types.js +8 -2
  46. package/build/universal/types.js.map +1 -1
  47. package/expo-module.config.json +1 -1
  48. package/ios/Modifiers/PresentationModifiers.swift +10 -0
  49. package/ios/Modifiers/ViewModifierRegistry.swift +4 -0
  50. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.6/expo.modules.ui-58.0.6-sources.jar → 58.0.8/expo.modules.ui-58.0.8-sources.jar} +0 -0
  51. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8-sources.jar.md5 +1 -0
  52. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8-sources.jar.sha1 +1 -0
  53. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8-sources.jar.sha256 +1 -0
  54. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8-sources.jar.sha512 +1 -0
  55. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.aar +0 -0
  56. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.aar.md5 +1 -0
  57. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.aar.sha1 +1 -0
  58. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.aar.sha256 +1 -0
  59. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.aar.sha512 +1 -0
  60. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.6/expo.modules.ui-58.0.6.module → 58.0.8/expo.modules.ui-58.0.8.module} +24 -24
  61. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.module.md5 +1 -0
  62. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.module.sha1 +1 -0
  63. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.module.sha256 +1 -0
  64. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.module.sha512 +1 -0
  65. package/local-maven-repo/expo/modules/ui/expo.modules.ui/{58.0.6/expo.modules.ui-58.0.6.pom → 58.0.8/expo.modules.ui-58.0.8.pom} +3 -3
  66. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.pom.md5 +1 -0
  67. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.pom.sha1 +1 -0
  68. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.pom.sha256 +1 -0
  69. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.8/expo.modules.ui-58.0.8.pom.sha512 +1 -0
  70. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml +4 -4
  71. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.md5 +1 -1
  72. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha1 +1 -1
  73. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha256 +1 -1
  74. package/local-maven-repo/expo/modules/ui/expo.modules.ui/maven-metadata.xml.sha512 +1 -1
  75. package/package.json +4 -4
  76. package/prebuilds/output/debug/xcframeworks/ExpoUI.tar.gz +0 -0
  77. package/prebuilds/output/release/xcframeworks/ExpoUI.tar.gz +0 -0
  78. package/src/jetpack-compose/LazyColumn/index.tsx +3 -0
  79. package/src/jetpack-compose/LazyItems/index.tsx +121 -0
  80. package/src/jetpack-compose/LazyRow/index.tsx +3 -0
  81. package/src/jetpack-compose/index.ts +1 -0
  82. package/src/jetpack-compose/modifiers/index.ts +16 -1
  83. package/src/recycling/useRecycledRows.tsx +200 -0
  84. package/src/swift-ui/List/DataListForEach.tsx +21 -142
  85. package/src/swift-ui/List/ListForEach.tsx +3 -2
  86. package/src/swift-ui/modifiers/index.ts +5 -1
  87. package/src/swift-ui/modifiers/presentationModifiers.ts +10 -0
  88. package/src/universal/State.android.ts +1 -1
  89. package/src/universal/State.ios.ts +1 -1
  90. package/src/universal/State.ts +12 -4
  91. package/src/universal/transformStyle.ios.ts +5 -2
  92. package/src/universal/types.ts +27 -0
  93. package/build/swift-ui/List/window.js.map +0 -1
  94. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6-sources.jar.md5 +0 -1
  95. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6-sources.jar.sha1 +0 -1
  96. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6-sources.jar.sha256 +0 -1
  97. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6-sources.jar.sha512 +0 -1
  98. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.aar +0 -0
  99. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.aar.md5 +0 -1
  100. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.aar.sha1 +0 -1
  101. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.aar.sha256 +0 -1
  102. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.aar.sha512 +0 -1
  103. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.module.md5 +0 -1
  104. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.module.sha1 +0 -1
  105. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.module.sha256 +0 -1
  106. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.module.sha512 +0 -1
  107. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.pom.md5 +0 -1
  108. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.pom.sha1 +0 -1
  109. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.pom.sha256 +0 -1
  110. package/local-maven-repo/expo/modules/ui/expo.modules.ui/58.0.6/expo.modules.ui-58.0.6.pom.sha512 +0 -1
  111. /package/build/{swift-ui/List → recycling}/window.d.ts +0 -0
  112. /package/build/{swift-ui/List → recycling}/window.js +0 -0
  113. /package/src/{swift-ui/List → recycling}/window.ts +0 -0
@@ -29,3 +29,9 @@ export interface LazyRowProps {
29
29
  * A lazy row component that efficiently displays a horizontally scrolling list.
30
30
  */
31
31
  export declare function LazyRow(props: LazyRowProps): import("react").JSX.Element;
32
+ export declare namespace LazyRow {
33
+ var Items: {
34
+ <ItemT>({ recycling, ...props }: import("..").LazyItemsProps<ItemT>): import("react").JSX.Element;
35
+ displayName: string;
36
+ };
37
+ }
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { requireNativeView } from 'expo';
3
+ import { createLazyItems } from '../LazyItems';
3
4
  import { createViewModifierEventListener } from '../modifiers/utils';
4
5
  const LazyRowNativeView = requireNativeView('ExpoUI', 'LazyRowView');
5
6
  function transformProps(props) {
@@ -17,5 +18,6 @@ function transformProps(props) {
17
18
  ...transformProps(props)
18
19
  });
19
20
  }
21
+ LazyRow.Items = createLazyItems('LazyRow.Items');
20
22
 
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["jetpack-compose/LazyRow/index.tsx"],"sourcesContent":[null],"names":["requireNativeView","createViewModifierEventListener","LazyRowNativeView","transformProps","props","modifiers","restProps","undefined","LazyRow"],"mappings":";AAAA,SAASA,iBAAiB,QAAQ,OAAO;AAIzC,SAASC,+BAA+B,QAAQ,qBAAqB;AAkCrE,MAAMC,oBAA6DF,kBACjE,UACA;AAGF,SAASG,eAAeC,KAAmB;IACzC,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAW,GAAGF;IACpC,OAAO;QACLC;QACA,GAAIA,YAAYJ,gCAAgCI,aAAaE,SAAS;QACtE,GAAGD,SAAS;IACd;AACF;AAEA;;CAEC,GACD,OAAO,SAASE,QAAQJ,KAAmB;IACzC,qBAAO,KAACF;QAAmB,GAAGC,eAAeC,MAAM;;AACrD"}
1
+ {"version":3,"sources":["jetpack-compose/LazyRow/index.tsx"],"sourcesContent":[null],"names":["requireNativeView","createLazyItems","createViewModifierEventListener","LazyRowNativeView","transformProps","props","modifiers","restProps","undefined","LazyRow","Items"],"mappings":";AAAA,SAASA,iBAAiB,QAAQ,OAAO;AAIzC,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,+BAA+B,QAAQ,qBAAqB;AAkCrE,MAAMC,oBAA6DH,kBACjE,UACA;AAGF,SAASI,eAAeC,KAAmB;IACzC,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAW,GAAGF;IACpC,OAAO;QACLC;QACA,GAAIA,YAAYJ,gCAAgCI,aAAaE,SAAS;QACtE,GAAGD,SAAS;IACd;AACF;AAEA;;CAEC,GACD,OAAO,SAASE,QAAQJ,KAAmB;IACzC,qBAAO,KAACF;QAAmB,GAAGC,eAAeC,MAAM;;AACrD;AAEAI,QAAQC,KAAK,GAAGT,gBAAgB"}
@@ -16,6 +16,7 @@ export * from './ExposedDropdownMenuBox';
16
16
  export * from './Divider';
17
17
  export * from './Host';
18
18
  export * from './LazyColumn';
19
+ export { type LazyItemsProps } from './LazyItems';
19
20
  export * from './LazyRow';
20
21
  export * from './ListItem';
21
22
  export * from './RNHostView';
@@ -1 +1 @@
1
- {"version":3,"sources":["jetpack-compose/index.ts"],"sourcesContent":[null],"names":["BasicAlertDialog","TextField","OutlinedTextField","BasicTextField","HorizontalPager","Text","useNativeState"],"mappings":"AAAA,OAAO,wCAAwC;AAE/C,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,SAASA,gBAAgB,QAAoC,qBAAqB;AAClF,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,iBAAiB;AAC/B,cAAc,2BAA2B;AACzC,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,eAAe;AAC7B,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,oBAAoB;AAClC,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,SACEC,SAAS,EACTC,iBAAiB,EACjBC,cAAc,QAcT,cAAc;AACrB,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,qBAAqB;AACnC,cAAc,kBAAkB;AAChC,cAAc,aAAa;AAC3B,SACEC,eAAe,QAGV,oBAAoB;AAC3B,cAAc,cAAc;AAC5B,cAAc,aAAa;AAC3B,cAAc,oBAAoB;AAClC,cAAc,8BAA8B;AAC5C,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,SAAyBC,IAAI,QAAQ,SAAS;AAC9C,cAAc,YAAY;AAC1B,cAAc,qBAAqB;AAEnC,cAAc,uBAAuB;AACrC,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,SAASC,cAAc,QAAQ,WAAW"}
1
+ {"version":3,"sources":["jetpack-compose/index.ts"],"sourcesContent":[null],"names":["BasicAlertDialog","TextField","OutlinedTextField","BasicTextField","HorizontalPager","Text","useNativeState"],"mappings":"AAAA,OAAO,wCAAwC;AAE/C,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,SAASA,gBAAgB,QAAoC,qBAAqB;AAClF,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,iBAAiB;AAC/B,cAAc,2BAA2B;AACzC,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,eAAe;AAE7B,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,oBAAoB;AAClC,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,SACEC,SAAS,EACTC,iBAAiB,EACjBC,cAAc,QAcT,cAAc;AACrB,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,qBAAqB;AACnC,cAAc,kBAAkB;AAChC,cAAc,aAAa;AAC3B,SACEC,eAAe,QAGV,oBAAoB;AAC3B,cAAc,cAAc;AAC5B,cAAc,aAAa;AAC3B,cAAc,oBAAoB;AAClC,cAAc,8BAA8B;AAC5C,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,SAAyBC,IAAI,QAAQ,SAAS;AAC9C,cAAc,YAAY;AAC1B,cAAc,qBAAqB;AAEnC,cAAc,uBAAuB;AACrC,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,SAASC,cAAc,QAAQ,WAAW"}
@@ -313,11 +313,23 @@ export declare const onGloballyPositioned: (handler: (layout: {
313
313
  */
314
314
  export declare const testID: (tag: string) => import("./createModifier").ModifierConfig;
315
315
  /**
316
- * Applies semantic properties. Wraps `Modifier.semantics { ... }`.
316
+ * Options for the `semantics` modifier.
317
317
  */
318
- export declare const semantics: (params: {
318
+ export type SemanticsConfig = {
319
+ /**
320
+ * An autofill hint, such as `'email'` or `'password'`.
321
+ */
319
322
  contentType?: string;
320
- }) => import("./createModifier").ModifierConfig;
323
+ /**
324
+ * What accessibility services such as TalkBack announce for the element. Useful when the visible
325
+ * content does not read well aloud, as with an abbreviation or a glyph.
326
+ */
327
+ contentDescription?: string;
328
+ };
329
+ /**
330
+ * Applies semantic properties. Wraps `Modifier.semantics { ... }`.
331
+ */
332
+ export declare const semantics: (params: SemanticsConfig) => import("./createModifier").ModifierConfig;
321
333
  type MaterialShapeName = 'cookie4Sided' | 'cookie6Sided' | 'cookie7Sided' | 'cookie9Sided' | 'cookie12Sided' | 'clover4Leaf' | 'clover8Leaf' | 'softBurst' | 'boom' | 'oval' | 'pill' | 'triangle' | 'diamond' | 'pentagon' | 'sunny' | 'verySunny' | 'fan' | 'pixelCircle' | 'pixelTriangle' | 'ghostish' | 'bun' | 'heart' | 'arch' | 'slanted' | 'puffy' | 'puffyDiamond';
322
334
  type CornerRadii = {
323
335
  topStart?: number;
@@ -1 +1 @@
1
- {"version":3,"sources":["jetpack-compose/modifiers/index.ts"],"sourcesContent":[null],"names":["createModifier","createModifierWithEventListener","animated","spring","tween","snap","keyframes","paddingAll","all","padding","start","top","end","bottom","size","width","height","fillMaxSize","fraction","fillMaxWidth","fillMaxHeight","value","defaultMinSize","options","wrapContentWidth","alignment","wrapContentHeight","imePadding","offset","x","y","background","color","animationSpec","border","borderWidth","borderColor","shadow","elevation","dropShadow","shape","config","innerShadow","alpha","blur","radius","cornerRadius","rotate","degrees","graphicsLayer","params","zIndex","index","animateContentSize","dampingRatio","stiffness","weight","align","matchParentSize","menuAnchor","type","enabled","clickable","handler","indication","combinedClickable","handlers","event","onClick","onLongClick","selectable","selected","role","selectableGroup","toggleable","onVisibilityChanged","isVisible","minDurationMs","minFractionVisible","onSizeChanged","onGloballyPositioned","layout","testID","tag","semantics","material","name","Shapes","Rectangle","Circle","RoundedCorner","CutCorner","Material","Cookie4Sided","Cookie6Sided","Cookie7Sided","Cookie9Sided","Cookie12Sided","Clover4Leaf","Clover8Leaf","SoftBurst","Boom","Oval","Pill","Triangle","Diamond","Pentagon","Sunny","VerySunny","Fan","PixelCircle","PixelTriangle","Ghostish","Bun","Heart","Arch","Slanted","Puffy","PuffyDiamond","clip","maskClip","verticalScroll","horizontalScroll","createViewModifierEventListener"],"mappings":"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"}
1
+ {"version":3,"sources":["jetpack-compose/modifiers/index.ts"],"sourcesContent":[null],"names":["createModifier","createModifierWithEventListener","animated","spring","tween","snap","keyframes","paddingAll","all","padding","start","top","end","bottom","size","width","height","fillMaxSize","fraction","fillMaxWidth","fillMaxHeight","value","defaultMinSize","options","wrapContentWidth","alignment","wrapContentHeight","imePadding","offset","x","y","background","color","animationSpec","border","borderWidth","borderColor","shadow","elevation","dropShadow","shape","config","innerShadow","alpha","blur","radius","cornerRadius","rotate","degrees","graphicsLayer","params","zIndex","index","animateContentSize","dampingRatio","stiffness","weight","align","matchParentSize","menuAnchor","type","enabled","clickable","handler","indication","combinedClickable","handlers","event","onClick","onLongClick","selectable","selected","role","selectableGroup","toggleable","onVisibilityChanged","isVisible","minDurationMs","minFractionVisible","onSizeChanged","onGloballyPositioned","layout","testID","tag","semantics","material","name","Shapes","Rectangle","Circle","RoundedCorner","CutCorner","Material","Cookie4Sided","Cookie6Sided","Cookie7Sided","Cookie9Sided","Cookie12Sided","Clover4Leaf","Clover8Leaf","SoftBurst","Boom","Oval","Pill","Triangle","Diamond","Pentagon","Sunny","VerySunny","Fan","PixelCircle","PixelTriangle","Ghostish","Bun","Heart","Arch","Slanted","Puffy","PuffyDiamond","clip","maskClip","verticalScroll","horizontalScroll","createViewModifierEventListener"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type ComponentType, type ReactElement } from 'react';
2
+ /** Payload of the native event asking for the rows around the visible range. */
3
+ export type WindowChangeEvent = {
4
+ first: number;
5
+ last: number;
6
+ revision: number;
7
+ };
8
+ /** Props of the native view that holds one recycled row. */
9
+ export type RecycledSlotProps = {
10
+ itemKey: string;
11
+ index: number;
12
+ revision: number;
13
+ children: ReactElement;
14
+ };
15
+ /** Renders one row of the data set. */
16
+ export type RenderItem<ItemT> = (info: {
17
+ item: ItemT;
18
+ index: number;
19
+ }) => ReactElement;
20
+ export type RecycledRows = {
21
+ /** Keys of every item, so the native list can size and identify the full data set. */
22
+ itemKeys: string[];
23
+ /** Increases whenever the data changes, so late native events can be dropped. */
24
+ revision: number;
25
+ /** The pooled rows to mount, one per slot. */
26
+ rows: ReactElement[];
27
+ /** Applies a native window request. */
28
+ onWindowChange: (event: WindowChangeEvent) => void;
29
+ /** Whether a native event was sent for the data currently committed to native. */
30
+ isCurrentRevision: (revision: number) => boolean;
31
+ };
32
+ /**
33
+ * Returns one key per item. Keys follow `data` only: an inline `keyExtractor` changes identity on
34
+ * every parent render, and recomputing keys for it would bump the revision and re-render every row.
35
+ */
36
+ export declare function useItemKeys<ItemT>(componentName: string, data: readonly ItemT[], keyExtractor: (item: ItemT, index: number) => string): string[];
37
+ /**
38
+ * Keeps a fixed pool of rows centered on the range the native list asks for.
39
+ * Item `index` always renders in slot `index % capacity`, so moving the window
40
+ * only re-renders the slots whose item changed.
41
+ */
42
+ export declare function useRecycledRows<ItemT>({ componentName, Slot, data, keyExtractor, renderItem, overscanCount, estimatedItemSize, }: {
43
+ /** Name used in error messages, for example `List.ForEach`. */
44
+ componentName: string;
45
+ /** Native view that holds one recycled row. */
46
+ Slot: ComponentType<RecycledSlotProps>;
47
+ data: readonly ItemT[];
48
+ keyExtractor: (item: ItemT, index: number) => string;
49
+ renderItem: RenderItem<ItemT>;
50
+ overscanCount?: number;
51
+ estimatedItemSize?: number;
52
+ }): RecycledRows;
@@ -0,0 +1,121 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
+ import { getSlotIndices, getWindow } from './window';
4
+ // Skip unchanged rows when the window moves.
5
+ const RecycledRow = /*#__PURE__*/ memo(function RecycledRow({ Slot, item, index, itemKey, revision, renderItem }) {
6
+ return /*#__PURE__*/ _jsx(Slot, {
7
+ itemKey: itemKey,
8
+ index: index,
9
+ revision: revision,
10
+ children: renderItem({
11
+ item,
12
+ index
13
+ })
14
+ });
15
+ });
16
+ /**
17
+ * Returns one key per item. Keys follow `data` only: an inline `keyExtractor` changes identity on
18
+ * every parent render, and recomputing keys for it would bump the revision and re-render every row.
19
+ */ export function useItemKeys(componentName, data, keyExtractor) {
20
+ const keyExtractorRef = useRef(keyExtractor);
21
+ keyExtractorRef.current = keyExtractor;
22
+ return useMemo(()=>{
23
+ const keys = data.map((item, index)=>keyExtractorRef.current(item, index));
24
+ if (keys.some((key)=>typeof key !== 'string') || new Set(keys).size !== keys.length) {
25
+ throw new Error(`${componentName} keyExtractor must return a unique string for every item.`);
26
+ }
27
+ return keys;
28
+ }, [
29
+ data
30
+ ]);
31
+ }
32
+ /**
33
+ * Keeps a fixed pool of rows centered on the range the native list asks for.
34
+ * Item `index` always renders in slot `index % capacity`, so moving the window
35
+ * only re-renders the slots whose item changed.
36
+ */ export function useRecycledRows({ componentName, Slot, data, keyExtractor, renderItem, overscanCount = 10, estimatedItemSize = 64 }) {
37
+ if (!Number.isSafeInteger(overscanCount) || overscanCount < 0) {
38
+ throw new Error(`${componentName} overscanCount must be a non-negative integer.`);
39
+ }
40
+ if (!Number.isFinite(estimatedItemSize) || estimatedItemSize <= 0) {
41
+ throw new Error(`${componentName} estimatedItemSize must be a positive finite number.`);
42
+ }
43
+ const itemKeys = useItemKeys(componentName, data, keyExtractor);
44
+ const [state, setState] = useState({
45
+ keys: itemKeys,
46
+ first: 0,
47
+ last: 0,
48
+ revision: 0,
49
+ capacity: 0,
50
+ overscanCount
51
+ });
52
+ let current = state;
53
+ if (state.keys !== itemKeys) {
54
+ const previousKey = state.keys[state.first];
55
+ const anchor = previousKey === undefined ? 0 : Math.max(0, itemKeys.indexOf(previousKey));
56
+ current = {
57
+ ...state,
58
+ keys: itemKeys,
59
+ first: Math.min(anchor, Math.max(0, data.length - 1)),
60
+ last: Math.min(anchor + state.last - state.first, Math.max(0, data.length - 1)),
61
+ revision: state.revision + 1
62
+ };
63
+ }
64
+ if (current.overscanCount !== overscanCount) {
65
+ current = {
66
+ ...current,
67
+ overscanCount,
68
+ capacity: 0
69
+ };
70
+ }
71
+ if (current !== state) setState(current);
72
+ const { start, capacity } = getWindow(data.length, current.first, current.last, overscanCount, current.capacity);
73
+ const committedRevision = useRef(current.revision);
74
+ useLayoutEffect(()=>{
75
+ committedRevision.current = current.revision;
76
+ }, [
77
+ current.revision
78
+ ]);
79
+ const rows = getSlotIndices(start, capacity).map((index, slot)=>{
80
+ const item = data[index];
81
+ const itemKey = itemKeys[index];
82
+ if (item === undefined || itemKey === undefined) {
83
+ throw new Error(`${componentName} could not resolve the item at index ${index}.`);
84
+ }
85
+ return /*#__PURE__*/ _jsx(RecycledRow, {
86
+ Slot: Slot,
87
+ item: item,
88
+ index: index,
89
+ itemKey: itemKey,
90
+ revision: current.revision,
91
+ renderItem: renderItem
92
+ }, slot);
93
+ });
94
+ return {
95
+ itemKeys,
96
+ revision: current.revision,
97
+ rows,
98
+ isCurrentRevision: (revision)=>revision === committedRevision.current,
99
+ onWindowChange: (event)=>{
100
+ if (!Number.isSafeInteger(event.first) || !Number.isSafeInteger(event.last) || event.last < event.first) {
101
+ return;
102
+ }
103
+ setState((previous)=>{
104
+ // Ignore requests from before a data change.
105
+ if (event.revision !== previous.revision) return previous;
106
+ const maximum = Math.max(0, previous.keys.length - 1);
107
+ const first = Math.max(0, Math.min(event.first, maximum));
108
+ const last = Math.max(first, Math.min(event.last, maximum));
109
+ const { capacity } = getWindow(previous.keys.length, first, last, previous.overscanCount, previous.capacity);
110
+ return first === previous.first && last === previous.last && capacity === previous.capacity ? previous : {
111
+ ...previous,
112
+ first,
113
+ last,
114
+ capacity
115
+ };
116
+ });
117
+ }
118
+ };
119
+ }
120
+
121
+ //# sourceMappingURL=useRecycledRows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["recycling/useRecycledRows.tsx"],"sourcesContent":[null],"names":["memo","useLayoutEffect","useMemo","useRef","useState","getSlotIndices","getWindow","RecycledRow","Slot","item","index","itemKey","revision","renderItem","useItemKeys","componentName","data","keyExtractor","keyExtractorRef","current","keys","map","some","key","Set","size","length","Error","useRecycledRows","overscanCount","estimatedItemSize","Number","isSafeInteger","isFinite","itemKeys","state","setState","first","last","capacity","previousKey","anchor","undefined","Math","max","indexOf","min","start","committedRevision","rows","slot","isCurrentRevision","onWindowChange","event","previous","maximum"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["recycling/window.ts"],"sourcesContent":[null],"names":["getWindow","count","first","last","overscanCount","minCapacity","start","capacity","Math","max","min","end","needed","getSlotIndices","Array","from","length","_","slot"],"mappings":"AAAA,OAAO,SAASA,UACdC,KAAa,EACbC,KAAa,EACbC,IAAY,EACZC,aAAqB,EACrBC,cAAc,CAAC;IAEf,IAAIJ,UAAU,GAAG,OAAO;QAAEK,OAAO;QAAGC,UAAU;IAAE;IAChDL,QAAQM,KAAKC,GAAG,CAAC,GAAGD,KAAKE,GAAG,CAACR,OAAOD,QAAQ;IAC5CE,OAAOK,KAAKC,GAAG,CAACP,OAAOM,KAAKE,GAAG,CAACP,MAAMF,QAAQ;IAC9C,MAAMK,QAAQE,KAAKC,GAAG,CAAC,GAAGP,QAAQE;IAClC,MAAMO,MAAMH,KAAKE,GAAG,CAACT,OAAOE,OAAO,IAAIC;IACvC,6FAA6F;IAC7F,yEAAyE;IACzE,MAAMQ,SAASD,MAAML;IACrB,IAAIC,WAAWF;IACf,IAAIO,SAASL,UAAUA,WAAWA,aAAa,IAAIK,SAASA,SAASR;IACrEG,WAAWC,KAAKE,GAAG,CAACT,OAAOM;IAC3B,OAAO;QAAED,OAAOE,KAAKE,GAAG,CAACJ,OAAOL,QAAQM;QAAWA;IAAS;AAC9D;AAEA,OAAO,SAASM,eAAeP,KAAa,EAAEC,QAAgB;IAC5D,IAAIA,aAAa,GAAG,OAAO,EAAE;IAC7B,OAAOO,MAAMC,IAAI,CACf;QAAEC,QAAQT;IAAS,GACnB,CAACU,GAAGC,OAASZ,QAAS,AAACY,CAAAA,OAAQZ,QAAQC,WAAYA,QAAO,IAAKA;AAEnE"}
@@ -1,4 +1,5 @@
1
1
  import { type ReactElement } from 'react';
2
+ import { type RecycledSlotProps } from '../../recycling/useRecycledRows';
2
3
  import { type CommonViewModifierProps } from '../types';
3
4
  export interface ListForEachProps<ItemT> extends CommonViewModifierProps {
4
5
  /** Called with deleted indices from this group's `data` array. */
@@ -42,18 +43,10 @@ export interface ListForEachProps<ItemT> extends CommonViewModifierProps {
42
43
  */
43
44
  estimatedItemSize?: number;
44
45
  }
45
- type SlotProps = {
46
- itemKey: string;
47
- index: number;
48
- revision: number;
49
- children: ReactElement;
50
- };
51
- export declare const NativeSlot: import("react").ComponentType<SlotProps>;
52
- export declare function useItemKeys<ItemT>(data: readonly ItemT[], keyExtractor: ListForEachProps<ItemT>['keyExtractor']): string[];
46
+ export declare const NativeSlot: import("react").ComponentType<RecycledSlotProps>;
53
47
  /**
54
48
  * Renders a window of recycled rows inside List or Section.
55
49
  * Rows show placeholders while JS prepares content. Native keys still cover the full data set.
56
50
  * @platform ios
57
51
  */
58
52
  export declare function DataListForEach<ItemT>({ data, keyExtractor, children: renderItem, overscanCount, estimatedItemSize, modifiers, onDelete, onMove, ...props }: ListForEachProps<ItemT>): import("react").JSX.Element;
59
- export {};
@@ -1,84 +1,24 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { requireNativeView } from 'expo';
3
- import { memo, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
+ import { useRecycledRows } from '../../recycling/useRecycledRows';
4
4
  import { createViewModifierEventListener } from '../modifiers/utils';
5
- import { getSlotIndices, getWindow } from './window';
6
5
  const NativeList = requireNativeView('ExpoUI', 'DataListForEachView');
7
6
  export const NativeSlot = requireNativeView('ExpoUI', 'DataListForEachItemView');
8
7
  const NativePool = requireNativeView('ExpoUI', 'DataListForEachPoolView');
9
- // Skip unchanged rows when the window moves.
10
- const RecycledRow = /*#__PURE__*/ memo(function RecycledRow({ item, index, itemKey, revision, renderItem }) {
11
- return /*#__PURE__*/ _jsx(NativeSlot, {
12
- itemKey: itemKey,
13
- index: index,
14
- revision: revision,
15
- children: renderItem({
16
- item,
17
- index
18
- })
19
- });
20
- });
21
- export function useItemKeys(data, keyExtractor) {
22
- const keyExtractorRef = useRef(keyExtractor);
23
- keyExtractorRef.current = keyExtractor;
24
- return useMemo(()=>{
25
- const keys = data.map((item, index)=>keyExtractorRef.current(item, index));
26
- if (keys.some((key)=>typeof key !== 'string') || new Set(keys).size !== keys.length) {
27
- throw new Error('List.ForEach keyExtractor must return a unique string for every item.');
28
- }
29
- return keys;
30
- }, [
31
- data
32
- ]);
33
- }
34
8
  /**
35
9
  * Renders a window of recycled rows inside List or Section.
36
10
  * Rows show placeholders while JS prepares content. Native keys still cover the full data set.
37
11
  * @platform ios
38
- */ export function DataListForEach({ data, keyExtractor, children: renderItem, overscanCount = 10, estimatedItemSize = 64, modifiers, onDelete, onMove, ...props }) {
39
- if (!Number.isSafeInteger(overscanCount) || overscanCount < 0) {
40
- throw new Error('List.ForEach overscanCount must be a non-negative integer.');
41
- }
42
- if (!Number.isFinite(estimatedItemSize) || estimatedItemSize <= 0) {
43
- throw new Error('List.ForEach estimatedItemSize must be a positive finite number.');
44
- }
45
- const itemKeys = useItemKeys(data, keyExtractor);
46
- const [state, setState] = useState({
47
- keys: itemKeys,
48
- first: 0,
49
- last: 0,
50
- revision: 0,
51
- capacity: 0,
52
- overscanCount
12
+ */ export function DataListForEach({ data, keyExtractor, children: renderItem, overscanCount, estimatedItemSize = 64, modifiers, onDelete, onMove, ...props }) {
13
+ const { itemKeys, revision, rows, onWindowChange, isCurrentRevision } = useRecycledRows({
14
+ componentName: 'List.ForEach',
15
+ Slot: NativeSlot,
16
+ data,
17
+ keyExtractor,
18
+ renderItem,
19
+ overscanCount,
20
+ estimatedItemSize
53
21
  });
54
- let current = state;
55
- if (state.keys !== itemKeys) {
56
- const previousKey = state.keys[state.first];
57
- const anchor = previousKey === undefined ? 0 : Math.max(0, itemKeys.indexOf(previousKey));
58
- current = {
59
- ...state,
60
- keys: itemKeys,
61
- first: Math.min(anchor, Math.max(0, data.length - 1)),
62
- last: Math.min(anchor + state.last - state.first, Math.max(0, data.length - 1)),
63
- revision: state.revision + 1
64
- };
65
- }
66
- if (current.overscanCount !== overscanCount) {
67
- current = {
68
- ...current,
69
- overscanCount,
70
- capacity: 0
71
- };
72
- }
73
- if (current !== state) setState(current);
74
- const { start, capacity } = getWindow(data.length, current.first, current.last, overscanCount, current.capacity);
75
- const committedRevision = useRef(current.revision);
76
- useLayoutEffect(()=>{
77
- committedRevision.current = current.revision;
78
- }, [
79
- current.revision
80
- ]);
81
- const indices = getSlotIndices(start, capacity);
82
22
  return /*#__PURE__*/ _jsx(NativeList, {
83
23
  ...props,
84
24
  modifiers: modifiers,
@@ -86,50 +26,19 @@ export function useItemKeys(data, keyExtractor) {
86
26
  deleteEnabled: !!onDelete,
87
27
  moveEnabled: !!onMove,
88
28
  onDelete: onDelete ? ({ nativeEvent })=>{
89
- if (nativeEvent.revision === committedRevision.current) onDelete(nativeEvent.indices);
29
+ if (isCurrentRevision(nativeEvent.revision)) onDelete(nativeEvent.indices);
90
30
  } : undefined,
91
31
  onMove: onMove ? ({ nativeEvent })=>{
92
- if (nativeEvent.revision === committedRevision.current) {
32
+ if (isCurrentRevision(nativeEvent.revision)) {
93
33
  onMove(nativeEvent.sourceIndices, nativeEvent.destination);
94
34
  }
95
35
  } : undefined,
96
36
  itemKeys: itemKeys,
97
- revision: current.revision,
37
+ revision: revision,
98
38
  estimatedItemSize: estimatedItemSize,
99
- onWindowChange: ({ nativeEvent: event })=>{
100
- if (!Number.isSafeInteger(event.first) || !Number.isSafeInteger(event.last) || event.last < event.first) {
101
- return;
102
- }
103
- setState((previous)=>{
104
- // Ignore requests from before a data change.
105
- if (event.revision !== previous.revision) return previous;
106
- const maximum = Math.max(0, previous.keys.length - 1);
107
- const first = Math.max(0, Math.min(event.first, maximum));
108
- const last = Math.max(first, Math.min(event.last, maximum));
109
- const { capacity } = getWindow(previous.keys.length, first, last, previous.overscanCount, previous.capacity);
110
- return first === previous.first && last === previous.last && capacity === previous.capacity ? previous : {
111
- ...previous,
112
- first,
113
- last,
114
- capacity
115
- };
116
- });
117
- },
39
+ onWindowChange: ({ nativeEvent })=>onWindowChange(nativeEvent),
118
40
  children: /*#__PURE__*/ _jsx(NativePool, {
119
- children: indices.map((index, slot)=>{
120
- const item = data[index];
121
- const itemKey = itemKeys[index];
122
- if (item === undefined || itemKey === undefined) {
123
- throw new Error(`List.ForEach could not resolve the item at index ${index}.`);
124
- }
125
- return /*#__PURE__*/ _jsx(RecycledRow, {
126
- item: item,
127
- index: index,
128
- itemKey: itemKey,
129
- revision: current.revision,
130
- renderItem: renderItem
131
- }, slot);
132
- })
41
+ children: rows
133
42
  })
134
43
  });
135
44
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["swift-ui/List/DataListForEach.tsx"],"sourcesContent":[null],"names":["requireNativeView","memo","useLayoutEffect","useMemo","useRef","useState","createViewModifierEventListener","getSlotIndices","getWindow","NativeList","NativeSlot","NativePool","RecycledRow","item","index","itemKey","revision","renderItem","useItemKeys","data","keyExtractor","keyExtractorRef","current","keys","map","some","key","Set","size","length","Error","DataListForEach","children","overscanCount","estimatedItemSize","modifiers","onDelete","onMove","props","Number","isSafeInteger","isFinite","itemKeys","state","setState","first","last","capacity","previousKey","anchor","undefined","Math","max","indexOf","min","start","committedRevision","indices","deleteEnabled","moveEnabled","nativeEvent","sourceIndices","destination","onWindowChange","event","previous","maximum","slot"],"mappings":"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"}
1
+ {"version":3,"sources":["swift-ui/List/DataListForEach.tsx"],"sourcesContent":[null],"names":["requireNativeView","useRecycledRows","createViewModifierEventListener","NativeList","NativeSlot","NativePool","DataListForEach","data","keyExtractor","children","renderItem","overscanCount","estimatedItemSize","modifiers","onDelete","onMove","props","itemKeys","revision","rows","onWindowChange","isCurrentRevision","componentName","Slot","undefined","deleteEnabled","moveEnabled","nativeEvent","indices","sourceIndices","destination"],"mappings":";AAAA,SAASA,iBAAiB,QAAQ,OAAO;AAGzC,SACEC,eAAe,QAGV,kCAAkC;AAEzC,SAASC,+BAA+B,QAAQ,qBAAqB;AAuDrE,MAAMC,aAAaH,kBAA+B,UAAU;AAC5D,OAAO,MAAMI,aAAaJ,kBAAqC,UAAU,2BAA2B;AACpG,MAAMK,aAAaL,kBACjB,UACA;AAGF;;;;CAIC,GACD,OAAO,SAASM,gBAAuB,EACrCC,IAAI,EACJC,YAAY,EACZC,UAAUC,UAAU,EACpBC,aAAa,EACbC,oBAAoB,EAAE,EACtBC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACN,GAAGC,OACqB;IACxB,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,cAAc,EAAEC,iBAAiB,EAAE,GAAGpB,gBAAgB;QACtFqB,eAAe;QACfC,MAAMnB;QACNG;QACAC;QACAE;QACAC;QACAC;IACF;IAEA,qBACE,KAACT;QACE,GAAGa,KAAK;QACTH,WAAWA;QACV,GAAIA,YAAYX,gCAAgCW,aAAaW,SAAS;QACvEC,eAAe,CAAC,CAACX;QACjBY,aAAa,CAAC,CAACX;QACfD,UACEA,WACI,CAAC,EAAEa,WAAW,EAAE;YACd,IAAIN,kBAAkBM,YAAYT,QAAQ,GAAGJ,SAASa,YAAYC,OAAO;QAC3E,IACAJ;QAENT,QACEA,SACI,CAAC,EAAEY,WAAW,EAAE;YACd,IAAIN,kBAAkBM,YAAYT,QAAQ,GAAG;gBAC3CH,OAAOY,YAAYE,aAAa,EAAEF,YAAYG,WAAW;YAC3D;QACF,IACAN;QAENP,UAAUA;QACVC,UAAUA;QACVN,mBAAmBA;QACnBQ,gBAAgB,CAAC,EAAEO,WAAW,EAAE,GAAKP,eAAeO;kBACpD,cAAA,KAACtB;sBAAYc;;;AAGnB"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { requireNativeView } from 'expo';
3
- import { DataListForEach, NativeSlot, useItemKeys } from './DataListForEach';
3
+ import { useItemKeys } from '../../recycling/useRecycledRows';
4
+ import { DataListForEach, NativeSlot } from './DataListForEach';
4
5
  const ListForEachNativeView = requireNativeView('ExpoUI', 'ListForEachView');
5
6
  let warnedElements = false;
6
7
  /**
@@ -35,7 +36,7 @@ function ChildrenListForEach({ children, onDelete, onMove, ...props }) {
35
36
  });
36
37
  }
37
38
  function StaticListForEach({ data, keyExtractor, children: renderItem, overscanCount: _overscanCount, estimatedItemSize: _estimatedItemSize, ...props }) {
38
- const itemKeys = useItemKeys(data, keyExtractor);
39
+ const itemKeys = useItemKeys('List.ForEach', data, keyExtractor);
39
40
  return /*#__PURE__*/ _jsx(ChildrenListForEach, {
40
41
  ...props,
41
42
  children: data.map((item, index)=>/*#__PURE__*/ _jsx(NativeSlot, {
@@ -1 +1 @@
1
- {"version":3,"sources":["swift-ui/List/ListForEach.tsx"],"sourcesContent":[null],"names":["requireNativeView","DataListForEach","NativeSlot","useItemKeys","ListForEachNativeView","warnedElements","ListForEach","props","data","undefined","__DEV__","console","warn","ChildrenListForEach","recycling","rest","StaticListForEach","children","onDelete","onMove","deleteEnabled","moveEnabled","nativeEvent","indices","sourceIndices","destination","keyExtractor","renderItem","overscanCount","_overscanCount","estimatedItemSize","_estimatedItemSize","itemKeys","map","item","index","itemKey","revision"],"mappings":";AAAA,SAASA,iBAAiB,QAAQ,OAAO;AAIzC,SAASC,eAAe,EAAEC,UAAU,EAAEC,WAAW,QAA+B,oBAAoB;AAIpG,MAAMC,wBACJJ,kBAA0C,UAAU;AAyCtD,IAAIK,iBAAiB;AAErB;;;;CAIC,GACD,OAAO,SAASC,YAAmBC,KAAyD;IAC1F,IAAIA,MAAMC,IAAI,KAAKC,WAAW;QAC5B,IAAIC,WAAW,CAACL,gBAAgB;YAC9BA,iBAAiB;YACjBM,QAAQC,IAAI,CACV;QAEJ;QACA,qBAAO,KAACC;YAAqB,GAAGN,KAAK;;IACvC;IACA,MAAM,EAAEO,YAAY,IAAI,EAAE,GAAGC,MAAM,GAAGR;IACtC,OAAOO,0BAAY,KAACb;QAAiB,GAAGc,IAAI;uBAAO,KAACC;QAAmB,GAAGD,IAAI;;AAChF;AAEA,SAASF,oBAAoB,EAAEI,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGZ,OAAiC;IAC7F,qBACE,KAACH;QACE,GAAGG,KAAK;QACTa,eAAe,CAAC,CAACF;QACjBG,aAAa,CAAC,CAACF;QACfD,UAAUA,WAAW,CAAC,EAAEI,WAAW,EAAE,GAAKJ,SAASI,YAAYC,OAAO,IAAId;QAC1EU,QACEA,SACI,CAAC,EAAEG,WAAW,EAAE,GAAKH,OAAOG,YAAYE,aAAa,EAAEF,YAAYG,WAAW,IAC9EhB;kBAELQ;;AAGP;AAEA,SAASD,kBAAyB,EAChCR,IAAI,EACJkB,YAAY,EACZT,UAAUU,UAAU,EACpBC,eAAeC,cAAc,EAC7BC,mBAAmBC,kBAAkB,EACrC,GAAGxB,OACwC;IAC3C,MAAMyB,WAAW7B,YAAYK,MAAMkB;IACnC,qBACE,KAACb;QAAqB,GAAGN,KAAK;kBAC3BC,KAAKyB,GAAG,CAAC,CAACC,MAAMC,sBACf,KAACjC;gBAAiCkC,SAASJ,QAAQ,CAACG,MAAM;gBAAGA,OAAOA;gBAAOE,UAAU;0BAClFV,WAAW;oBAAEO;oBAAMC;gBAAM;eADXH,QAAQ,CAACG,MAAM;;AAMxC"}
1
+ {"version":3,"sources":["swift-ui/List/ListForEach.tsx"],"sourcesContent":[null],"names":["requireNativeView","useItemKeys","DataListForEach","NativeSlot","ListForEachNativeView","warnedElements","ListForEach","props","data","undefined","__DEV__","console","warn","ChildrenListForEach","recycling","rest","StaticListForEach","children","onDelete","onMove","deleteEnabled","moveEnabled","nativeEvent","indices","sourceIndices","destination","keyExtractor","renderItem","overscanCount","_overscanCount","estimatedItemSize","_estimatedItemSize","itemKeys","map","item","index","itemKey","revision"],"mappings":";AAAA,SAASA,iBAAiB,QAAQ,OAAO;AAEzC,SAASC,WAAW,QAAQ,kCAAkC;AAG9D,SAASC,eAAe,EAAEC,UAAU,QAA+B,oBAAoB;AAIvF,MAAMC,wBACJJ,kBAA0C,UAAU;AAyCtD,IAAIK,iBAAiB;AAErB;;;;CAIC,GACD,OAAO,SAASC,YAAmBC,KAAyD;IAC1F,IAAIA,MAAMC,IAAI,KAAKC,WAAW;QAC5B,IAAIC,WAAW,CAACL,gBAAgB;YAC9BA,iBAAiB;YACjBM,QAAQC,IAAI,CACV;QAEJ;QACA,qBAAO,KAACC;YAAqB,GAAGN,KAAK;;IACvC;IACA,MAAM,EAAEO,YAAY,IAAI,EAAE,GAAGC,MAAM,GAAGR;IACtC,OAAOO,0BAAY,KAACZ;QAAiB,GAAGa,IAAI;uBAAO,KAACC;QAAmB,GAAGD,IAAI;;AAChF;AAEA,SAASF,oBAAoB,EAAEI,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGZ,OAAiC;IAC7F,qBACE,KAACH;QACE,GAAGG,KAAK;QACTa,eAAe,CAAC,CAACF;QACjBG,aAAa,CAAC,CAACF;QACfD,UAAUA,WAAW,CAAC,EAAEI,WAAW,EAAE,GAAKJ,SAASI,YAAYC,OAAO,IAAId;QAC1EU,QACEA,SACI,CAAC,EAAEG,WAAW,EAAE,GAAKH,OAAOG,YAAYE,aAAa,EAAEF,YAAYG,WAAW,IAC9EhB;kBAELQ;;AAGP;AAEA,SAASD,kBAAyB,EAChCR,IAAI,EACJkB,YAAY,EACZT,UAAUU,UAAU,EACpBC,eAAeC,cAAc,EAC7BC,mBAAmBC,kBAAkB,EACrC,GAAGxB,OACwC;IAC3C,MAAMyB,WAAW/B,YAAY,gBAAgBO,MAAMkB;IACnD,qBACE,KAACb;QAAqB,GAAGN,KAAK;kBAC3BC,KAAKyB,GAAG,CAAC,CAACC,MAAMC,sBACf,KAAChC;gBAAiCiC,SAASJ,QAAQ,CAACG,MAAM;gBAAGA,OAAOA;gBAAOE,UAAU;0BAClFV,WAAW;oBAAEO;oBAAMC;gBAAM;eADXH,QAAQ,CAACG,MAAM;;AAMxC"}
@@ -77,7 +77,11 @@ export declare const matchedGeometryEffect: (id: string, namespaceId: string, op
77
77
  * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/geometrygroup()).
78
78
  */
79
79
  export declare const geometryGroup: () => ModifierConfig;
80
- type FrameAlignment = 'center' | 'leading' | 'trailing' | 'top' | 'bottom' | 'topLeading' | 'topTrailing' | 'bottomLeading' | 'bottomTrailing';
80
+ /**
81
+ * The alignment of a view inside the frame that `frame()` creates.
82
+ * Most values have no visible effect when the frame is the same size as the view.
83
+ */
84
+ export type FrameAlignment = 'center' | 'leading' | 'trailing' | 'top' | 'bottom' | 'topLeading' | 'topTrailing' | 'bottomLeading' | 'bottomTrailing';
81
85
  /**
82
86
  * Positions this view within an invisible frame with the specified size.
83
87
  * @param params - The fixed frame parameters: `width`, `height` and `alignment`.