@ankhorage/zora 25.7.0 → 25.8.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.
Files changed (311) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +1 -1
  3. package/dist/capabilities/index.d.ts +2 -74
  4. package/dist/capabilities/index.d.ts.map +1 -1
  5. package/dist/capabilities/index.js +6170 -59
  6. package/dist/capabilities/index.js.map +119 -1
  7. package/dist/cli/index.d.ts +2 -74
  8. package/dist/cli/index.d.ts.map +1 -1
  9. package/dist/cli/index.js +2 -1
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.d.ts +5 -0
  12. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.d.ts.map +1 -0
  13. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.js +40 -0
  14. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.js.map +1 -0
  15. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.d.ts +2 -0
  16. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.d.ts.map +1 -0
  17. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.js +2 -0
  18. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.js.map +1 -0
  19. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.d.ts +11 -0
  20. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.d.ts.map +1 -0
  21. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.js +5 -0
  22. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.js.map +1 -0
  23. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.d.ts +11 -0
  24. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.d.ts.map +1 -0
  25. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.js +20 -0
  26. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.js.map +1 -0
  27. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.d.ts +17 -0
  28. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.d.ts.map +1 -0
  29. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.js +76 -0
  30. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.js.map +1 -0
  31. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.d.ts +21 -0
  32. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.d.ts.map +1 -0
  33. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.js +20 -0
  34. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.js.map +1 -0
  35. package/dist/features/grid-interactions/application/createGridInteractionsController.d.ts +4 -0
  36. package/dist/features/grid-interactions/application/createGridInteractionsController.d.ts.map +1 -0
  37. package/dist/features/grid-interactions/application/createGridInteractionsController.js +191 -0
  38. package/dist/features/grid-interactions/application/createGridInteractionsController.js.map +1 -0
  39. package/dist/features/grid-interactions/meta.d.ts +11 -0
  40. package/dist/features/grid-interactions/meta.d.ts.map +1 -0
  41. package/dist/features/grid-interactions/meta.js +11 -0
  42. package/dist/features/grid-interactions/meta.js.map +1 -0
  43. package/dist/features/grid-interactions/public.d.ts +4 -0
  44. package/dist/features/grid-interactions/public.d.ts.map +1 -0
  45. package/dist/features/grid-interactions/public.js +3 -0
  46. package/dist/features/grid-interactions/public.js.map +1 -0
  47. package/dist/features/matrix-grid/adapters/inbound/MatrixGrid.d.ts.map +1 -1
  48. package/dist/features/matrix-grid/adapters/inbound/MatrixGrid.js +73 -19
  49. package/dist/features/matrix-grid/adapters/inbound/MatrixGrid.js.map +1 -1
  50. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.d.ts +9 -0
  51. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.d.ts.map +1 -0
  52. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.js +5 -0
  53. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.js.map +1 -0
  54. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.d.ts +9 -0
  55. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.d.ts.map +1 -0
  56. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.js +5 -0
  57. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.js.map +1 -0
  58. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.d.ts +9 -0
  59. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.d.ts.map +1 -0
  60. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.js +28 -0
  61. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.js.map +1 -0
  62. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.d.ts +14 -0
  63. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.d.ts.map +1 -0
  64. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.js +50 -0
  65. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.js.map +1 -0
  66. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.d.ts +18 -0
  67. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.d.ts.map +1 -0
  68. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.js +56 -0
  69. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.js.map +1 -0
  70. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.d.ts +4 -0
  71. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.d.ts.map +1 -0
  72. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.js +65 -0
  73. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.js.map +1 -0
  74. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.d.ts +8 -1
  75. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.d.ts.map +1 -1
  76. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.js +15 -4
  77. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.js.map +1 -1
  78. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts.map +1 -1
  79. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +2 -0
  80. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
  81. package/dist/features/registry/componentMeta.d.ts.map +1 -1
  82. package/dist/features/registry/componentMeta.js +2 -0
  83. package/dist/features/registry/componentMeta.js.map +1 -1
  84. package/dist/features/registry/createEventCapabilities.d.ts +4 -0
  85. package/dist/features/registry/createEventCapabilities.d.ts.map +1 -0
  86. package/dist/features/registry/createEventCapabilities.js +76 -0
  87. package/dist/features/registry/createEventCapabilities.js.map +1 -0
  88. package/dist/index.d.ts +1 -0
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +1 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/types/grid-interactions.d.ts +58 -0
  93. package/dist/types/grid-interactions.d.ts.map +1 -0
  94. package/dist/types/grid-interactions.js +2 -0
  95. package/dist/types/grid-interactions.js.map +1 -0
  96. package/dist/types/matrix-grid.d.ts +2 -0
  97. package/dist/types/matrix-grid.d.ts.map +1 -1
  98. package/dist/types/matrix-grid.js.map +1 -1
  99. package/package.json +1825 -7
  100. package/src/capabilities/index.test.ts +87 -15
  101. package/src/capabilities/index.ts +5 -2
  102. package/src/cli/index.test.ts +5 -3
  103. package/src/cli/index.ts +5 -2
  104. package/src/features/grid-interactions/adapters/inbound/GridInteractions.test.tsx +143 -0
  105. package/src/features/grid-interactions/adapters/inbound/GridInteractions.tsx +79 -0
  106. package/src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.tsx +14 -0
  107. package/src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.tsx +1 -0
  108. package/src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.tsx +41 -0
  109. package/src/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.test.ts +98 -0
  110. package/src/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.ts +94 -0
  111. package/src/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.test.ts +33 -0
  112. package/src/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.ts +45 -0
  113. package/src/features/grid-interactions/application/createGridInteractionsController.test.ts +115 -0
  114. package/src/features/grid-interactions/application/createGridInteractionsController.ts +231 -0
  115. package/src/features/grid-interactions/meta.ts +12 -0
  116. package/src/features/grid-interactions/public.ts +11 -0
  117. package/src/features/matrix-grid/adapters/inbound/MatrixGrid.test.tsx +280 -2
  118. package/src/features/matrix-grid/adapters/inbound/MatrixGrid.tsx +121 -31
  119. package/src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.tsx +11 -0
  120. package/src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.tsx +11 -0
  121. package/src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.tsx +43 -0
  122. package/src/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.ts +70 -0
  123. package/src/features/matrix-grid/application/createMatrixGridSparseIndex.test.ts +35 -0
  124. package/src/features/matrix-grid/application/createMatrixGridSparseIndex.ts +105 -0
  125. package/src/features/matrix-grid/application/getMatrixGridNextFocusId.test.ts +93 -0
  126. package/src/features/matrix-grid/application/getMatrixGridNextFocusId.ts +112 -0
  127. package/src/features/matrix-grid/application/resolveMatrixGridSelection.test.ts +63 -2
  128. package/src/features/matrix-grid/application/resolveMatrixGridSelection.ts +27 -4
  129. package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +2 -0
  130. package/src/features/registry/componentMeta.ts +2 -0
  131. package/src/features/registry/createEventCapabilities.ts +108 -0
  132. package/src/index.ts +11 -0
  133. package/src/structureOwnership.test.ts +5 -0
  134. package/src/types/grid-interactions.ts +72 -0
  135. package/src/types/matrix-grid.ts +2 -0
  136. package/web-dist/chunks/{Accordion-5g05kfmx.js → Accordion-0q2wzjdd.js} +4 -4
  137. package/web-dist/chunks/{Accordion-b96evb46.js → Accordion-1fsrnq73.js} +1 -1
  138. package/web-dist/chunks/{Accordion-h3y8qev2.js → Accordion-38ts3gnn.js} +2 -2
  139. package/web-dist/chunks/{Accordion-jnc315h7.js → Accordion-8pkw32q9.js} +2 -2
  140. package/web-dist/chunks/{Accordion-h7zsx9eg.js → Accordion-9jrxktne.js} +3 -3
  141. package/web-dist/chunks/{Accordion-9w8wg9mf.js → Accordion-9rnsg9pk.js} +1 -1
  142. package/web-dist/chunks/{Accordion-4zqd7twp.js → Accordion-9ygakvwk.js} +5 -5
  143. package/web-dist/chunks/{Accordion-fhnazn3n.js → Accordion-b74j4hdt.js} +1 -1
  144. package/web-dist/chunks/{Accordion-nssr5gep.js → Accordion-c50pywj3.js} +2 -2
  145. package/web-dist/chunks/{Accordion-pvj5npzc.js → Accordion-ddrn94v3.js} +3 -3
  146. package/web-dist/chunks/{Accordion-090y18cv.js → Accordion-dk0dtyc0.js} +3 -3
  147. package/web-dist/chunks/{Accordion-59pa0677.js → Accordion-fcczvwgg.js} +0 -1
  148. package/web-dist/chunks/{Accordion-sp4k08kw.js → Accordion-geah5s4f.js} +4 -4
  149. package/web-dist/chunks/{Accordion-6rrqpb2h.js → Accordion-h4ekm5cp.js} +2 -2
  150. package/web-dist/chunks/{Accordion-3d4wkzg7.js → Accordion-hecpczme.js} +5 -5
  151. package/web-dist/chunks/{Accordion-a6551mh4.js → Accordion-hn43wt45.js} +1 -1
  152. package/web-dist/chunks/{Accordion-sw7ep29d.js → Accordion-hnx7hx55.js} +2 -2
  153. package/web-dist/chunks/{Accordion-rsvphbe4.js → Accordion-j1chy29e.js} +1 -1
  154. package/web-dist/chunks/{Accordion-ewf1zen9.js → Accordion-k9cxpg08.js} +5 -5
  155. package/web-dist/chunks/{Accordion-5df6cgyf.js → Accordion-md1g54wg.js} +1 -1
  156. package/web-dist/chunks/{Accordion-kjtcbe09.js → Accordion-p1ebrt17.js} +3 -3
  157. package/web-dist/chunks/{Accordion-qn398m1x.js → Accordion-r2g18vxa.js} +1 -1
  158. package/web-dist/chunks/{Accordion-zt9yghdz.js → Accordion-rctfgyfv.js} +4 -4
  159. package/web-dist/chunks/{Accordion-88t8fgxv.js → Accordion-rfc5mdbv.js} +1 -1
  160. package/web-dist/chunks/{Accordion-fmzxat3v.js → Accordion-sdnzqktc.js} +4 -4
  161. package/web-dist/chunks/{Accordion-v0grdh6q.js → Accordion-sq7ya2ye.js} +2 -2
  162. package/web-dist/chunks/{Accordion-ejx5gcf9.js → Accordion-t5scffdr.js} +9 -9
  163. package/web-dist/chunks/{Accordion-sy1cc5my.js → Accordion-ts788t7b.js} +3 -3
  164. package/web-dist/chunks/{Accordion-4s68t3h7.js → Accordion-v3rzy273.js} +6 -6
  165. package/web-dist/chunks/{Accordion-7tjz25jh.js → Accordion-vbzjq3z8.js} +1 -1
  166. package/web-dist/chunks/{Accordion-jh72azm2.js → Accordion-vg337250.js} +2 -2
  167. package/web-dist/chunks/{Accordion-42jfy1a1.js → Accordion-vj1m2wck.js} +1 -1
  168. package/web-dist/chunks/{Accordion-tqpsmdrk.js → Accordion-vxg5sw01.js} +4 -4
  169. package/web-dist/chunks/{Accordion-61ntvh14.js → Accordion-w59y0jdf.js} +4 -4
  170. package/web-dist/chunks/{Accordion-fjxcn6g9.js → Accordion-wcmrasqx.js} +8 -8
  171. package/web-dist/chunks/{Accordion-r1cj2w9e.js → Accordion-wpk8dxqp.js} +3 -3
  172. package/web-dist/chunks/{Accordion-w6qedeba.js → Accordion-x055n3b3.js} +1 -1
  173. package/web-dist/chunks/{Accordion-dbf93gxh.js → Accordion-xcm1qc39.js} +1 -1
  174. package/web-dist/chunks/{Accordion-7kq500r1.js → Accordion-xgxxg1hz.js} +1 -1
  175. package/web-dist/chunks/{Accordion-a4cma5b6.js → Accordion-y3083394.js} +3 -3
  176. package/web-dist/chunks/{Accordion-40tenzcg.js → Accordion-yexfbrzg.js} +4 -4
  177. package/web-dist/chunks/{Accordion-2r0gqk3x.js → Accordion-ztw7zp6v.js} +5 -5
  178. package/web-dist/chunks/{Accordion-bz04casa.js → Accordion-zypyr9xw.js} +211 -6
  179. package/web-dist/components/accordion/Accordion.js +5 -5
  180. package/web-dist/components/accordion-item/AccordionItem.js +5 -5
  181. package/web-dist/components/activity-indicator/ActivityIndicator.js +1 -1
  182. package/web-dist/components/app-bar/AppBar.js +7 -7
  183. package/web-dist/components/app-header/AppHeader.js +7 -7
  184. package/web-dist/components/app-shell/AppShell.js +2 -2
  185. package/web-dist/components/auth-screen/AuthScreen.js +10 -10
  186. package/web-dist/components/avatar/Avatar.js +5 -5
  187. package/web-dist/components/avatar-group/AvatarGroup.js +5 -5
  188. package/web-dist/components/badge/Badge.js +2 -2
  189. package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +10 -10
  190. package/web-dist/components/bottom-sheet/BottomSheet.js +3 -3
  191. package/web-dist/components/bottom-sheet-flat-list/BottomSheetFlatList.js +3 -3
  192. package/web-dist/components/bottom-sheet-scroll-view/BottomSheetScrollView.js +3 -3
  193. package/web-dist/components/bottom-sheet-section-list/BottomSheetSectionList.js +3 -3
  194. package/web-dist/components/bottom-sheet-view/BottomSheetView.js +3 -3
  195. package/web-dist/components/bottom-sheet-virtualized-list/BottomSheetVirtualizedList.js +3 -3
  196. package/web-dist/components/breadcrumbs/Breadcrumbs.js +5 -5
  197. package/web-dist/components/button/Button.js +3 -3
  198. package/web-dist/components/button-group/ButtonGroup.js +3 -3
  199. package/web-dist/components/camera-permission-view/CameraPermissionView.js +10 -10
  200. package/web-dist/components/card/Card.js +9 -9
  201. package/web-dist/components/card-back/CardBack.js +2 -2
  202. package/web-dist/components/card-hand/CardHand.js +2 -2
  203. package/web-dist/components/chat-list-item/ChatListItem.js +7 -7
  204. package/web-dist/components/checkbox/Checkbox.js +4 -4
  205. package/web-dist/components/checkbox-group/CheckboxGroup.js +4 -4
  206. package/web-dist/components/chess-board/ChessBoard.js +2 -2
  207. package/web-dist/components/chip/Chip.js +5 -5
  208. package/web-dist/components/chip-group/ChipGroup.js +5 -5
  209. package/web-dist/components/collection-editor/CollectionEditor.js +9 -9
  210. package/web-dist/components/content-rail/ContentRail.js +4 -4
  211. package/web-dist/components/data-table/DataTable.js +14 -14
  212. package/web-dist/components/date-picker/DatePicker.js +5 -5
  213. package/web-dist/components/dialog/Dialog.js +4 -4
  214. package/web-dist/components/divider/Divider.js +2 -2
  215. package/web-dist/components/empty-state/EmptyState.js +10 -10
  216. package/web-dist/components/explorer/Explorer.js +7 -7
  217. package/web-dist/components/field/Field.js +4 -4
  218. package/web-dist/components/file-explorer/FileExplorer.js +7 -7
  219. package/web-dist/components/flat-list/FlatList.js +5 -5
  220. package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +10 -10
  221. package/web-dist/components/form/Form.js +6 -6
  222. package/web-dist/components/form-actions/FormActions.js +6 -6
  223. package/web-dist/components/form-error/FormError.js +6 -6
  224. package/web-dist/components/game/Game.js +3 -3
  225. package/web-dist/components/game-entity/GameEntity.js +3 -3
  226. package/web-dist/components/game-field/GameField.js +3 -3
  227. package/web-dist/components/game-input-zone/GameInputZone.js +3 -3
  228. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +3 -3
  229. package/web-dist/components/game-overlay/GameOverlay.js +3 -3
  230. package/web-dist/components/gradient/Gradient.js +3 -3
  231. package/web-dist/components/gradient-renderer-provider/GradientRendererProvider.js +3 -3
  232. package/web-dist/components/graph-view/GraphView.js +2 -2
  233. package/web-dist/components/grid/Grid.js +2 -2
  234. package/web-dist/components/grid-interactions/GridInteractions.d.ts +3 -0
  235. package/web-dist/components/grid-interactions/GridInteractions.js +371 -0
  236. package/web-dist/components/grid-interactions/index.d.ts +1 -0
  237. package/web-dist/components/grid-interactions/index.js +2 -0
  238. package/web-dist/components/grid-line-overlay/GridLineOverlay.js +2 -2
  239. package/web-dist/components/grid-ruler/GridRuler.js +2 -2
  240. package/web-dist/components/grid-view/GridView.js +1 -1
  241. package/web-dist/components/heading/Heading.js +2 -2
  242. package/web-dist/components/hero/Hero.js +9 -9
  243. package/web-dist/components/icon/Icon.js +2 -2
  244. package/web-dist/components/icon-button/IconButton.js +3 -3
  245. package/web-dist/components/image/Image.js +4 -4
  246. package/web-dist/components/keyboard-avoiding-view/KeyboardAvoidingView.js +2 -2
  247. package/web-dist/components/list/List.js +5 -5
  248. package/web-dist/components/list-item/ListItem.js +5 -5
  249. package/web-dist/components/list-section/ListSection.js +5 -5
  250. package/web-dist/components/matrix-grid/MatrixGrid.js +296 -47
  251. package/web-dist/components/media-card/MediaCard.js +9 -9
  252. package/web-dist/components/media-explorer/MediaExplorer.js +7 -7
  253. package/web-dist/components/message-bubble/MessageBubble.js +7 -7
  254. package/web-dist/components/metric-card/MetricCard.js +9 -9
  255. package/web-dist/components/missing-element/MissingElement.js +4 -4
  256. package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +10 -10
  257. package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +10 -10
  258. package/web-dist/components/opening-book/OpeningBook.js +2 -2
  259. package/web-dist/components/otp-form/OtpForm.js +10 -10
  260. package/web-dist/components/pagination/Pagination.js +4 -4
  261. package/web-dist/components/palette-item/PaletteItem.js +9 -9
  262. package/web-dist/components/playing-card/PlayingCard.js +2 -2
  263. package/web-dist/components/poker-training-table/PokerTrainingTable.js +2 -2
  264. package/web-dist/components/popover-menu/PopoverMenu.js +4 -4
  265. package/web-dist/components/post-card/PostCard.js +9 -9
  266. package/web-dist/components/product-card/ProductCard.js +9 -9
  267. package/web-dist/components/progress/Progress.js +4 -4
  268. package/web-dist/components/progress-ring/ProgressRing.js +4 -4
  269. package/web-dist/components/radio/Radio.js +5 -5
  270. package/web-dist/components/radio-group/RadioGroup.js +5 -5
  271. package/web-dist/components/rating/Rating.js +3 -3
  272. package/web-dist/components/reader/Reader.js +10 -10
  273. package/web-dist/components/scan-overlay/ScanOverlay.js +10 -10
  274. package/web-dist/components/screen/Screen.js +2 -2
  275. package/web-dist/components/screen-section/ScreenSection.js +4 -4
  276. package/web-dist/components/scroll-view/ScrollView.js +2 -2
  277. package/web-dist/components/search-input/SearchInput.js +4 -4
  278. package/web-dist/components/section-header/SectionHeader.js +4 -4
  279. package/web-dist/components/section-list/SectionList.js +5 -5
  280. package/web-dist/components/select/Select.js +4 -4
  281. package/web-dist/components/selectable-item/SelectableItem.js +2 -2
  282. package/web-dist/components/selection-provider/SelectionProvider.js +2 -2
  283. package/web-dist/components/sign-in-form/SignInForm.js +10 -10
  284. package/web-dist/components/sign-up-form/SignUpForm.js +10 -10
  285. package/web-dist/components/skeleton/Skeleton.js +12 -12
  286. package/web-dist/components/skeleton-card/SkeletonCard.js +12 -12
  287. package/web-dist/components/skeleton-list/SkeletonList.js +12 -12
  288. package/web-dist/components/skeleton-text/SkeletonText.js +12 -12
  289. package/web-dist/components/spatial-grid/SpatialGrid.js +1 -1
  290. package/web-dist/components/surface/Surface.js +2 -2
  291. package/web-dist/components/switch/Switch.js +1 -1
  292. package/web-dist/components/tab/Tab.js +2 -2
  293. package/web-dist/components/tab-list/TabList.js +2 -2
  294. package/web-dist/components/tab-panel/TabPanel.js +2 -2
  295. package/web-dist/components/tabletop-table/TabletopTable.js +2 -2
  296. package/web-dist/components/tabs/Tabs.js +2 -2
  297. package/web-dist/components/text/Text.js +2 -2
  298. package/web-dist/components/text-input/TextInput.js +4 -4
  299. package/web-dist/components/tile-grid/TileGrid.js +1 -1
  300. package/web-dist/components/time-grid/TimeGrid.js +2 -2
  301. package/web-dist/components/time-picker/TimePicker.js +5 -5
  302. package/web-dist/components/timeline/Timeline.js +4 -4
  303. package/web-dist/components/toast/Toast.js +2 -2
  304. package/web-dist/components/toast-provider/ToastProvider.js +2 -2
  305. package/web-dist/components/toolbar/Toolbar.js +9 -9
  306. package/web-dist/components/tree-item/TreeItem.js +9 -9
  307. package/web-dist/components/tree-view/TreeView.js +1 -1
  308. package/web-dist/components/uploader/Uploader.js +12 -12
  309. package/web-dist/components/view/View.js +2 -2
  310. package/web-dist/manifest.json +787 -772
  311. package/web-dist/runtime/ZoraProvider.js +3 -3
@@ -1,31 +1,32 @@
1
1
  'use client';
2
- import"../../chunks/Accordion-09qs8gt1.js";
3
- import"../../chunks/Accordion-6wrr910w.js";
4
- import {
5
- Pressable
6
- } from "../../chunks/Accordion-nnv76yff.js";
7
2
  import {
8
3
  GridView2
9
- } from "../../chunks/Accordion-a6551mh4.js";
4
+ } from "../../chunks/Accordion-hn43wt45.js";
5
+ import"../../chunks/Accordion-09qs8gt1.js";
6
+ import"../../chunks/Accordion-6wrr910w.js";
7
+ import"../../chunks/Accordion-nnv76yff.js";
10
8
  import {
11
9
  withZoraThemeScope
12
- } from "../../chunks/Accordion-42jfy1a1.js";
13
- import"../../chunks/Accordion-sw7ep29d.js";
10
+ } from "../../chunks/Accordion-vj1m2wck.js";
11
+ import"../../chunks/Accordion-hnx7hx55.js";
14
12
  import {
15
13
  resolveSelectionEventIntent
16
- } from "../../chunks/Accordion-5df6cgyf.js";
14
+ } from "../../chunks/Accordion-md1g54wg.js";
17
15
  import {
18
16
  applySelectionIntent
19
17
  } from "../../chunks/Accordion-n4et7etk.js";
20
18
  import {
21
19
  getMatrixCellPlacement,
22
20
  getVisibleMatrixCells
23
- } from "../../chunks/Accordion-bz04casa.js";
21
+ } from "../../chunks/Accordion-zypyr9xw.js";
24
22
  import {
25
23
  useZoraTheme2
26
24
  } from "../../chunks/Accordion-srjya6dz.js";
27
25
  import"../../chunks/Accordion-184r2r82.js";
28
26
  import"../../chunks/Accordion-fre84yaq.js";
27
+ import {
28
+ isRecord
29
+ } from "../../chunks/Accordion-fcczvwgg.js";
29
30
  import {
30
31
  require_cjs
31
32
  } from "../../chunks/Accordion-xgpzh4wq.js";
@@ -35,7 +36,55 @@ import {
35
36
 
36
37
  // src/features/matrix-grid/adapters/inbound/MatrixGrid.tsx
37
38
  var import_react_native = __toESM(require_cjs(), 1);
38
- import React from "react";
39
+ import React2 from "react";
40
+
41
+ // src/features/matrix-grid/application/createMatrixGridSparseIndex.ts
42
+ function createMatrixGridSparseIndex(layout, cells) {
43
+ const rowIndexes = new Map(layout.rows.map((row, index) => [row.id, index]));
44
+ const columnIndexes = new Map(layout.columns.map((column, index) => [column.id, index]));
45
+ const entries = cells.map((cell) => createSparseEntry(cell, rowIndexes, columnIndexes));
46
+ const entriesByRow = groupEntries(entries, "columnIndex");
47
+ const entriesByColumn = groupEntries(entries, "rowIndex");
48
+ const orderedEntries = [...entries].sort(compareRowThenColumn);
49
+ return {
50
+ cellById: new Map(entries.map((entry) => [entry.id, entry.cell])),
51
+ entries,
52
+ entriesByColumn,
53
+ entriesByRow,
54
+ firstId: orderedEntries.at(0)?.id ?? null,
55
+ positionById: new Map(entries.map((entry) => [entry.id, entry]))
56
+ };
57
+ }
58
+ function createSparseEntry(cell, rowIndexes, columnIndexes) {
59
+ const rowIndex = rowIndexes.get(cell.rowId);
60
+ const columnIndex = columnIndexes.get(cell.columnId);
61
+ if (rowIndex === undefined || columnIndex === undefined) {
62
+ throw new Error(`Matrix cell ${cell.id} references an unknown row or column.`);
63
+ }
64
+ return { cell, columnIndex, id: cell.id, rowIndex };
65
+ }
66
+ function groupEntries(entries, axis) {
67
+ const groups = new Map;
68
+ for (const entry of entries) {
69
+ const groupKey = axis === "columnIndex" ? entry.rowIndex : entry.columnIndex;
70
+ const group = groups.get(groupKey) ?? [];
71
+ group.push(entry);
72
+ groups.set(groupKey, group);
73
+ }
74
+ return new Map([...groups].map(([key, group]) => [
75
+ key,
76
+ group.sort((left, right) => compareAxisThenId(left, right, axis))
77
+ ]));
78
+ }
79
+ function compareRowThenColumn(left, right) {
80
+ return left.rowIndex - right.rowIndex || left.columnIndex - right.columnIndex || left.id.localeCompare(right.id);
81
+ }
82
+ function compareAxisThenId(left, right, axis) {
83
+ return getAxisCoordinate(left, axis) - getAxisCoordinate(right, axis) || left.id.localeCompare(right.id);
84
+ }
85
+ function getAxisCoordinate(entry, axis) {
86
+ return axis === "columnIndex" ? entry.columnIndex : entry.rowIndex;
87
+ }
39
88
 
40
89
  // src/features/matrix-grid/application/resolveMatrixGridContentSize.ts
41
90
  function resolveMatrixGridContentSize(layout) {
@@ -61,12 +110,157 @@ function resolveMatrixGridContentSize(layout) {
61
110
  }
62
111
 
63
112
  // src/features/matrix-grid/application/resolveMatrixGridSelection.ts
64
- function resolveMatrixGridSelection(selectedIds, cellId, intent, mode) {
65
- return mode === "single" ? applySelectionIntent(selectedIds, cellId, "replace") : applySelectionIntent(selectedIds, cellId, intent);
113
+ function resolveMatrixGridSelection(cells, selectedIds, cellId, anchorId, intent, mode) {
114
+ if (mode === "single")
115
+ return applySelectionIntent(selectedIds, cellId, "replace");
116
+ if (intent !== "range")
117
+ return applySelectionIntent(selectedIds, cellId, intent);
118
+ const anchor = cells.find((cell) => cell.id === anchorId);
119
+ const target = cells.find((cell) => cell.id === cellId);
120
+ if (!anchor || !target)
121
+ return applySelectionIntent(selectedIds, cellId, "replace");
122
+ return cells.filter((cell) => cell.rowIndex >= Math.min(anchor.rowIndex, target.rowIndex) && cell.rowIndex <= Math.max(anchor.rowIndex, target.rowIndex) && cell.columnIndex >= Math.min(anchor.columnIndex, target.columnIndex) && cell.columnIndex <= Math.max(anchor.columnIndex, target.columnIndex)).map((cell) => cell.id);
66
123
  }
67
124
 
68
- // src/features/matrix-grid/adapters/inbound/MatrixGrid.tsx
125
+ // src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.tsx
69
126
  import { jsx } from "react/jsx-runtime";
127
+ function MatrixGridKeyboardProxy({ children, onKeyDown }) {
128
+ return /* @__PURE__ */ jsx("div", {
129
+ onKeyDownCapture: (event) => {
130
+ if (isNestedInteractiveElement(event.target, event.currentTarget))
131
+ return;
132
+ if (onKeyDown(event))
133
+ event.preventDefault();
134
+ },
135
+ style: { display: "flex", flex: 1 },
136
+ children
137
+ });
138
+ }
139
+ function isNestedInteractiveElement(target, boundary) {
140
+ if (target === boundary || !hasClosest(target))
141
+ return false;
142
+ const interactiveElement = target.closest(interactiveSelector);
143
+ return interactiveElement !== null && interactiveElement !== getFirstElementChild(boundary);
144
+ }
145
+ function hasClosest(target) {
146
+ return "closest" in target && typeof target.closest === "function";
147
+ }
148
+ function getFirstElementChild(boundary) {
149
+ return "firstElementChild" in boundary ? boundary.firstElementChild : undefined;
150
+ }
151
+ var interactiveSelector = 'a, button, input, select, textarea, [contenteditable="true"], [role="button"], [role="checkbox"], [role="combobox"], [role="link"], [role="menuitem"], [role="option"], [role="slider"], [role="spinbutton"], [role="switch"], [role="tab"]';
152
+
153
+ // src/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.ts
154
+ import React from "react";
155
+
156
+ // src/features/matrix-grid/application/getMatrixGridNextFocusId.ts
157
+ function getMatrixGridNextFocusId(index, currentId, key) {
158
+ const current = currentId === null ? undefined : index.positionById.get(currentId);
159
+ if (!current)
160
+ return index.firstId;
161
+ return resolveDirectionalCandidate(index, current, key)?.id ?? current.id;
162
+ }
163
+ function resolveDirectionalCandidate(index, current, key) {
164
+ switch (key) {
165
+ case "ArrowLeft":
166
+ return findDirectionalNeighbour(index.entriesByRow.get(current.rowIndex), current, "columnIndex", -1);
167
+ case "ArrowRight":
168
+ return findDirectionalNeighbour(index.entriesByRow.get(current.rowIndex), current, "columnIndex", 1);
169
+ case "ArrowUp":
170
+ return findDirectionalNeighbour(index.entriesByColumn.get(current.columnIndex), current, "rowIndex", -1);
171
+ case "ArrowDown":
172
+ return findDirectionalNeighbour(index.entriesByColumn.get(current.columnIndex), current, "rowIndex", 1);
173
+ default:
174
+ return;
175
+ }
176
+ }
177
+ function findDirectionalNeighbour(entries, current, axis, direction) {
178
+ if (!entries)
179
+ return;
180
+ const coordinate = getAxisCoordinate2(current, axis);
181
+ const insertionIndex = findFirstGreaterOrEqual(entries, coordinate, axis);
182
+ if (direction === -1)
183
+ return insertionIndex === 0 ? undefined : entries[insertionIndex - 1];
184
+ return entries[findFirstGreater(entries, coordinate, axis)];
185
+ }
186
+ function findFirstGreater(entries, coordinate, axis) {
187
+ let lower = 0;
188
+ let upper = entries.length;
189
+ while (lower < upper) {
190
+ const middle = Math.floor((lower + upper) / 2);
191
+ const entry = entries.at(middle);
192
+ if (entry && getAxisCoordinate2(entry, axis) <= coordinate)
193
+ lower = middle + 1;
194
+ else
195
+ upper = middle;
196
+ }
197
+ return lower;
198
+ }
199
+ function findFirstGreaterOrEqual(entries, coordinate, axis) {
200
+ let lower = 0;
201
+ let upper = entries.length;
202
+ while (lower < upper) {
203
+ const middle = Math.floor((lower + upper) / 2);
204
+ const entry = entries.at(middle);
205
+ if (entry && getAxisCoordinate2(entry, axis) < coordinate)
206
+ lower = middle + 1;
207
+ else
208
+ upper = middle;
209
+ }
210
+ return lower;
211
+ }
212
+ function getAxisCoordinate2(entry, axis) {
213
+ return axis === "columnIndex" ? entry.columnIndex : entry.rowIndex;
214
+ }
215
+
216
+ // src/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.ts
217
+ function useMatrixGridKeyboardFocus(index, disabled, visibleIds, onNavigate) {
218
+ const [focusedId, setFocusedId] = React.useState(null);
219
+ const focusedRef = React.useRef(null);
220
+ const pendingFocusRef = React.useRef(null);
221
+ const cellRefs = React.useRef(new Map);
222
+ const visibleIdSet = React.useMemo(() => new Set(visibleIds), [visibleIds]);
223
+ const tabStopId = focusedId !== null && visibleIdSet.has(focusedId) ? focusedId : visibleIds.find((id) => index.positionById.has(id));
224
+ const onFocus = React.useCallback((id) => {
225
+ pendingFocusRef.current = null;
226
+ focusedRef.current = id;
227
+ setFocusedId(id);
228
+ }, []);
229
+ const registerCell = React.useCallback((id, node) => {
230
+ if (node === null) {
231
+ cellRefs.current.delete(id);
232
+ return;
233
+ }
234
+ cellRefs.current.set(id, node);
235
+ if (pendingFocusRef.current === id) {
236
+ pendingFocusRef.current = null;
237
+ node.focus();
238
+ }
239
+ }, []);
240
+ const onKeyDown = React.useCallback((id, key, shiftKey) => {
241
+ if (disabled || !["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"].includes(key)) {
242
+ return false;
243
+ }
244
+ const originId = focusedRef.current ?? id;
245
+ const nextId = getMatrixGridNextFocusId(index, originId, key);
246
+ if (nextId === null || nextId === originId)
247
+ return true;
248
+ focusedRef.current = nextId;
249
+ pendingFocusRef.current = nextId;
250
+ setFocusedId(nextId);
251
+ onNavigate(nextId, originId, shiftKey);
252
+ const mounted = cellRefs.current.get(nextId);
253
+ if (mounted) {
254
+ pendingFocusRef.current = null;
255
+ mounted.focus();
256
+ }
257
+ return true;
258
+ }, [disabled, index, onNavigate]);
259
+ return { focusedId, onFocus, onKeyDown, registerCell, tabStopId };
260
+ }
261
+
262
+ // src/features/matrix-grid/adapters/inbound/MatrixGrid.tsx
263
+ import { jsx as jsx2 } from "react/jsx-runtime";
70
264
  function MatrixGridInner({
71
265
  accessibilityLabel = "Matrix grid",
72
266
  cells,
@@ -76,6 +270,7 @@ function MatrixGridInner({
76
270
  onSelectionChange,
77
271
  onViewportChange,
78
272
  overscanPixels = 160,
273
+ readOnly = false,
79
274
  renderCell,
80
275
  selectedCellIds = [],
81
276
  selectionMode = "single",
@@ -86,37 +281,65 @@ function MatrixGridInner({
86
281
  zoomY = 1
87
282
  }) {
88
283
  const { theme } = useZoraTheme2();
89
- const contentSize = React.useMemo(() => resolveMatrixGridContentSize(layout), [layout]);
90
- const initialViewport = React.useMemo(() => ({ height, offsetX: 0, offsetY: 0, pixelsPerUnitX: zoomX, pixelsPerUnitY: zoomY, width }), [height, width, zoomX, zoomY]);
91
- const [uncontrolledViewport, setUncontrolledViewport] = React.useState(initialViewport);
284
+ const contentSize = React2.useMemo(() => resolveMatrixGridContentSize(layout), [layout]);
285
+ const initialViewport = React2.useMemo(() => ({ height, offsetX: 0, offsetY: 0, pixelsPerUnitX: zoomX, pixelsPerUnitY: zoomY, width }), [height, width, zoomX, zoomY]);
286
+ const [uncontrolledViewport, setUncontrolledViewport] = React2.useState(initialViewport);
92
287
  const viewport = controlledViewport ?? uncontrolledViewport;
93
- const visibleCells = React.useMemo(() => getVisibleMatrixCells(layout, cells, viewport, overscanPixels), [cells, layout, overscanPixels, viewport]);
94
- const visibleCellById = React.useMemo(() => new Map(visibleCells.map((cell) => [cell.id, cell])), [visibleCells]);
95
- const handleViewportChange = React.useCallback((proposal) => {
288
+ const sparseIndex = React2.useMemo(() => createMatrixGridSparseIndex(layout, cells), [cells, layout]);
289
+ const cellPlacements = React2.useMemo(() => getVisibleMatrixCells(layout, cells, viewport, overscanPixels), [cells, layout, overscanPixels, viewport]);
290
+ const [visibleIds, setVisibleIds] = React2.useState([]);
291
+ const anchorId = React2.useRef(null);
292
+ const handleViewportChange = React2.useCallback((proposal) => {
96
293
  if (controlledViewport === undefined)
97
294
  setUncontrolledViewport(proposal);
98
295
  onViewportChange?.(proposal);
99
296
  }, [controlledViewport, onViewportChange]);
100
- const activateCell = React.useCallback((cell, event) => {
101
- if (interactionPolicy === "passive")
297
+ const activateCell = React2.useCallback((cell, event) => {
298
+ if (interactionPolicy === "passive" || readOnly)
299
+ return;
300
+ const intent = isRangeSelectionEvent(event) ? "range" : resolveSelectionEventIntent(event, "pointer");
301
+ onSelectionChange?.(resolveMatrixGridSelection(sparseIndex.entries, selectedCellIds, cell.id, anchorId.current, intent, selectionMode));
302
+ if (intent !== "range")
303
+ anchorId.current = cell.id;
304
+ }, [
305
+ interactionPolicy,
306
+ onSelectionChange,
307
+ readOnly,
308
+ selectedCellIds,
309
+ selectionMode,
310
+ sparseIndex.entries
311
+ ]);
312
+ const handleKeyboardNavigation = React2.useCallback((targetId, originId, shiftKey) => {
313
+ anchorId.current ??= originId;
314
+ if (!shiftKey)
102
315
  return;
103
- const intent = resolveSelectionEventIntent(event, "pointer");
104
- onSelectionChange?.(resolveMatrixGridSelection(selectedCellIds, cell.id, intent, selectionMode));
105
- }, [interactionPolicy, onSelectionChange, selectedCellIds, selectionMode]);
106
- return /* @__PURE__ */ jsx(import_react_native.View, {
316
+ const cell = sparseIndex.cellById.get(targetId);
317
+ if (cell)
318
+ activateCell(getMatrixCellPlacement(layout, cell), { shiftKey: true });
319
+ }, [activateCell, layout, sparseIndex]);
320
+ const keyboard = useMatrixGridKeyboardFocus(sparseIndex, interactionPolicy === "passive", visibleIds, handleKeyboardNavigation);
321
+ const focusedPlacement = React2.useMemo(() => {
322
+ const focusedCell = keyboard.focusedId === null ? undefined : sparseIndex.cellById.get(keyboard.focusedId);
323
+ return focusedCell ? getMatrixCellPlacement(layout, focusedCell) : undefined;
324
+ }, [keyboard.focusedId, layout, sparseIndex.cellById]);
325
+ const gridItems = React2.useMemo(() => focusedPlacement && !cellPlacements.some((cell) => cell.id === focusedPlacement.id) ? [...cellPlacements, focusedPlacement] : cellPlacements, [cellPlacements, focusedPlacement]);
326
+ const cellById = React2.useMemo(() => new Map(gridItems.map((cell) => [cell.id, cell])), [gridItems]);
327
+ return /* @__PURE__ */ jsx2(import_react_native.View, {
107
328
  accessibilityLabel,
108
- children: /* @__PURE__ */ jsx(GridView2, {
329
+ children: /* @__PURE__ */ jsx2(GridView2, {
109
330
  contentHeight: contentSize.height,
110
331
  contentWidth: contentSize.width,
111
332
  height,
112
333
  interactionPolicy,
113
- items: visibleCells,
334
+ items: gridItems,
335
+ focusedItemId: keyboard.focusedId ?? undefined,
114
336
  overscanPixels: 0,
337
+ onVisibleItemIdsChange: setVisibleIds,
115
338
  renderItem: (item) => {
116
- const cell = visibleCellById.get(item.id);
339
+ const cell = cellById.get(item.id);
117
340
  if (!cell)
118
341
  return null;
119
- return renderMatrixCell(cell, selectedCellIds, theme.semantics.neutral.divider, theme.colors.primary, renderCell, activateCell, testID);
342
+ return renderMatrixCell(cell, selectedCellIds, theme.semantics.neutral.divider, theme.colors.primary, renderCell, activateCell, keyboard, interactionPolicy === "passive", readOnly, testID);
120
343
  },
121
344
  testID,
122
345
  viewport,
@@ -125,24 +348,50 @@ function MatrixGridInner({
125
348
  })
126
349
  });
127
350
  }
128
- function renderMatrixCell(cell, selectedCellIds, dividerColor, selectedColor, renderCell, activateCell, testID) {
351
+ function renderMatrixCell(cell, selectedCellIds, dividerColor, selectedColor, renderCell, activateCell, keyboard, passive, readOnly, testID) {
129
352
  const selected = selectedCellIds.includes(cell.id);
130
- return /* @__PURE__ */ jsx(Pressable, {
131
- accessibilityLabel: `Cell ${cell.id}`,
132
- accessibilityRole: "button",
133
- accessibilityState: { selected },
134
- style: [
135
- styles.cell,
136
- {
137
- borderColor: selected ? selectedColor : dividerColor,
138
- height: "100%",
139
- width: "100%"
140
- }
141
- ],
142
- testID: testID === undefined ? undefined : `${testID}-cell-${cell.id}`,
143
- onPress: (event) => activateCell(cell, event),
144
- children: renderCell(cell)
145
- }, cell.id);
353
+ const canInteract = keyboard.tabStopId === cell.id;
354
+ return /* @__PURE__ */ jsx2(MatrixGridKeyboardProxy, {
355
+ onKeyDown: (event) => {
356
+ if (keyboard.onKeyDown(cell.id, event.key, event.shiftKey))
357
+ return true;
358
+ if (!["Enter", " "].includes(event.key))
359
+ return false;
360
+ if (passive || readOnly)
361
+ return false;
362
+ activateCell(cell, event);
363
+ return true;
364
+ },
365
+ children: /* @__PURE__ */ jsx2(import_react_native.Pressable, {
366
+ accessibilityActions: [{ name: "activate" }],
367
+ accessibilityLabel: `Cell ${cell.id}`,
368
+ accessibilityRole: "button",
369
+ accessibilityState: { disabled: passive, selected },
370
+ disabled: passive,
371
+ focusable: import_react_native.Platform.OS !== "web" || canInteract,
372
+ style: [
373
+ styles.cell,
374
+ {
375
+ borderColor: selected || keyboard.focusedId === cell.id ? selectedColor : dividerColor,
376
+ height: "100%",
377
+ width: "100%"
378
+ }
379
+ ],
380
+ testID: testID === undefined ? undefined : `${testID}-cell-${cell.id}`,
381
+ onAccessibilityAction: () => activateCell(cell, {}),
382
+ onFocus: () => keyboard.onFocus(cell.id),
383
+ onPress: (event) => activateCell(cell, event),
384
+ ref: (node) => keyboard.registerCell(cell.id, node),
385
+ children: renderCell(cell)
386
+ }, cell.id)
387
+ });
388
+ }
389
+ function isRangeSelectionEvent(event) {
390
+ if (!isRecord(event))
391
+ return false;
392
+ if (event.shiftKey === true)
393
+ return true;
394
+ return isRecord(event.nativeEvent) && event.nativeEvent.shiftKey === true || isRecord(event.originalEvent) && event.originalEvent.shiftKey === true;
146
395
  }
147
396
  var styles = import_react_native.StyleSheet.create({
148
397
  cell: { borderWidth: 1, height: "100%", overflow: "hidden", width: "100%" }
@@ -10,18 +10,18 @@ import {
10
10
  MetricCard2,
11
11
  PostCard2,
12
12
  ProductCard2
13
- } from "../../chunks/Accordion-fjxcn6g9.js";
14
- import"../../chunks/Accordion-42jfy1a1.js";
15
- import"../../chunks/Accordion-7tjz25jh.js";
13
+ } from "../../chunks/Accordion-wcmrasqx.js";
14
+ import"../../chunks/Accordion-vj1m2wck.js";
15
+ import"../../chunks/Accordion-vbzjq3z8.js";
16
16
  import"../../chunks/Accordion-bfzeab9x.js";
17
- import"../../chunks/Accordion-9w8wg9mf.js";
17
+ import"../../chunks/Accordion-9rnsg9pk.js";
18
18
  import"../../chunks/Accordion-wyxmd0n0.js";
19
- import"../../chunks/Accordion-7kq500r1.js";
19
+ import"../../chunks/Accordion-xgxxg1hz.js";
20
20
  import"../../chunks/Accordion-8f0nekwe.js";
21
- import"../../chunks/Accordion-b96evb46.js";
22
- import"../../chunks/Accordion-61ntvh14.js";
23
- import"../../chunks/Accordion-6rrqpb2h.js";
24
- import"../../chunks/Accordion-a4cma5b6.js";
21
+ import"../../chunks/Accordion-1fsrnq73.js";
22
+ import"../../chunks/Accordion-w59y0jdf.js";
23
+ import"../../chunks/Accordion-h4ekm5cp.js";
24
+ import"../../chunks/Accordion-y3083394.js";
25
25
  import"../../chunks/Accordion-eqvdv7tt.js";
26
26
  import"../../chunks/Accordion-61e19g3e.js";
27
27
  import"../../chunks/Accordion-ys214jt5.js";
@@ -1,20 +1,20 @@
1
1
  'use client';
2
- import"../../chunks/Accordion-a6551mh4.js";
2
+ import"../../chunks/Accordion-hn43wt45.js";
3
3
  import"../../chunks/Accordion-bfzeab9x.js";
4
4
  import"../../chunks/Accordion-6wrr910w.js";
5
5
  import"../../chunks/Accordion-8f0nekwe.js";
6
- import"../../chunks/Accordion-42jfy1a1.js";
7
- import"../../chunks/Accordion-b96evb46.js";
8
- import"../../chunks/Accordion-a4cma5b6.js";
6
+ import"../../chunks/Accordion-vj1m2wck.js";
7
+ import"../../chunks/Accordion-1fsrnq73.js";
8
+ import"../../chunks/Accordion-y3083394.js";
9
9
  import"../../chunks/Accordion-09qs8gt1.js";
10
10
  import"../../chunks/Accordion-z5a0tx18.js";
11
- import"../../chunks/Accordion-7tjz25jh.js";
12
- import"../../chunks/Accordion-9w8wg9mf.js";
11
+ import"../../chunks/Accordion-vbzjq3z8.js";
12
+ import"../../chunks/Accordion-9rnsg9pk.js";
13
13
  import {
14
14
  Explorer2,
15
15
  FileExplorer2,
16
16
  MediaExplorer2
17
- } from "../../chunks/Accordion-2r0gqk3x.js";
17
+ } from "../../chunks/Accordion-ztw7zp6v.js";
18
18
  import"../../chunks/Accordion-bff0p3x4.js";
19
19
  import"../../chunks/Accordion-srjya6dz.js";
20
20
  import"../../chunks/Accordion-184r2r82.js";
@@ -4,18 +4,18 @@ import"../../chunks/Accordion-6wrr910w.js";
4
4
  import"../../chunks/Accordion-nnv76yff.js";
5
5
  import"../../chunks/Accordion-bfzeab9x.js";
6
6
  import"../../chunks/Accordion-8f0nekwe.js";
7
- import"../../chunks/Accordion-42jfy1a1.js";
8
- import"../../chunks/Accordion-b96evb46.js";
7
+ import"../../chunks/Accordion-vj1m2wck.js";
8
+ import"../../chunks/Accordion-1fsrnq73.js";
9
9
  import"../../chunks/Accordion-z5a0tx18.js";
10
- import"../../chunks/Accordion-7tjz25jh.js";
11
- import"../../chunks/Accordion-9w8wg9mf.js";
12
- import"../../chunks/Accordion-61ntvh14.js";
10
+ import"../../chunks/Accordion-vbzjq3z8.js";
11
+ import"../../chunks/Accordion-9rnsg9pk.js";
12
+ import"../../chunks/Accordion-w59y0jdf.js";
13
13
  import"../../chunks/Accordion-wyxmd0n0.js";
14
- import"../../chunks/Accordion-7kq500r1.js";
14
+ import"../../chunks/Accordion-xgxxg1hz.js";
15
15
  import {
16
16
  ChatListItem2,
17
17
  MessageBubble2
18
- } from "../../chunks/Accordion-3d4wkzg7.js";
18
+ } from "../../chunks/Accordion-hecpczme.js";
19
19
  import"../../chunks/Accordion-ys214jt5.js";
20
20
  import"../../chunks/Accordion-bff0p3x4.js";
21
21
  import"../../chunks/Accordion-srjya6dz.js";
@@ -10,18 +10,18 @@ import {
10
10
  MetricCard2,
11
11
  PostCard2,
12
12
  ProductCard2
13
- } from "../../chunks/Accordion-fjxcn6g9.js";
14
- import"../../chunks/Accordion-42jfy1a1.js";
15
- import"../../chunks/Accordion-7tjz25jh.js";
13
+ } from "../../chunks/Accordion-wcmrasqx.js";
14
+ import"../../chunks/Accordion-vj1m2wck.js";
15
+ import"../../chunks/Accordion-vbzjq3z8.js";
16
16
  import"../../chunks/Accordion-bfzeab9x.js";
17
- import"../../chunks/Accordion-9w8wg9mf.js";
17
+ import"../../chunks/Accordion-9rnsg9pk.js";
18
18
  import"../../chunks/Accordion-wyxmd0n0.js";
19
- import"../../chunks/Accordion-7kq500r1.js";
19
+ import"../../chunks/Accordion-xgxxg1hz.js";
20
20
  import"../../chunks/Accordion-8f0nekwe.js";
21
- import"../../chunks/Accordion-b96evb46.js";
22
- import"../../chunks/Accordion-61ntvh14.js";
23
- import"../../chunks/Accordion-6rrqpb2h.js";
24
- import"../../chunks/Accordion-a4cma5b6.js";
21
+ import"../../chunks/Accordion-1fsrnq73.js";
22
+ import"../../chunks/Accordion-w59y0jdf.js";
23
+ import"../../chunks/Accordion-h4ekm5cp.js";
24
+ import"../../chunks/Accordion-y3083394.js";
25
25
  import"../../chunks/Accordion-eqvdv7tt.js";
26
26
  import"../../chunks/Accordion-61e19g3e.js";
27
27
  import"../../chunks/Accordion-ys214jt5.js";
@@ -5,17 +5,17 @@ import"../../chunks/Accordion-6wrr910w.js";
5
5
  import"../../chunks/Accordion-wyxmd0n0.js";
6
6
  import {
7
7
  Badge2
8
- } from "../../chunks/Accordion-7kq500r1.js";
8
+ } from "../../chunks/Accordion-xgxxg1hz.js";
9
9
  import {
10
10
  withZoraThemeScope
11
- } from "../../chunks/Accordion-42jfy1a1.js";
11
+ } from "../../chunks/Accordion-vj1m2wck.js";
12
12
  import {
13
13
  View2
14
- } from "../../chunks/Accordion-7tjz25jh.js";
14
+ } from "../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-bfzeab9x.js";
16
16
  import {
17
17
  Text3
18
- } from "../../chunks/Accordion-9w8wg9mf.js";
18
+ } from "../../chunks/Accordion-9rnsg9pk.js";
19
19
  import"../../chunks/Accordion-ys214jt5.js";
20
20
  import"../../chunks/Accordion-bff0p3x4.js";
21
21
  import {
@@ -1,18 +1,18 @@
1
1
  'use client';
2
- import"../../chunks/Accordion-qn398m1x.js";
2
+ import"../../chunks/Accordion-r2g18vxa.js";
3
3
  import"../../chunks/Accordion-6wrr910w.js";
4
- import"../../chunks/Accordion-42jfy1a1.js";
4
+ import"../../chunks/Accordion-vj1m2wck.js";
5
5
  import"../../chunks/Accordion-09qs8gt1.js";
6
6
  import"../../chunks/Accordion-z5a0tx18.js";
7
- import"../../chunks/Accordion-7tjz25jh.js";
7
+ import"../../chunks/Accordion-vbzjq3z8.js";
8
8
  import"../../chunks/Accordion-2nesr9cv.js";
9
- import"../../chunks/Accordion-w6qedeba.js";
9
+ import"../../chunks/Accordion-x055n3b3.js";
10
10
  import"../../chunks/Accordion-bfzeab9x.js";
11
- import"../../chunks/Accordion-9w8wg9mf.js";
11
+ import"../../chunks/Accordion-9rnsg9pk.js";
12
12
  import"../../chunks/Accordion-8f0nekwe.js";
13
13
  import"../../chunks/Accordion-nnv76yff.js";
14
14
  import"../../chunks/Accordion-wyxmd0n0.js";
15
- import"../../chunks/Accordion-6rrqpb2h.js";
15
+ import"../../chunks/Accordion-h4ekm5cp.js";
16
16
  import {
17
17
  OAuthProviderButton2,
18
18
  OAuthProviderList2,
@@ -21,11 +21,11 @@ import {
21
21
  AuthScreen2,
22
22
  ForgotPasswordForm2,
23
23
  OtpForm2
24
- } from "../../chunks/Accordion-ejx5gcf9.js";
25
- import"../../chunks/Accordion-40tenzcg.js";
24
+ } from "../../chunks/Accordion-t5scffdr.js";
25
+ import"../../chunks/Accordion-yexfbrzg.js";
26
26
  import"../../chunks/Accordion-45nc4bte.js";
27
- import"../../chunks/Accordion-kjtcbe09.js";
28
- import"../../chunks/Accordion-nssr5gep.js";
27
+ import"../../chunks/Accordion-p1ebrt17.js";
28
+ import"../../chunks/Accordion-c50pywj3.js";
29
29
  import"../../chunks/Accordion-61e19g3e.js";
30
30
  import"../../chunks/Accordion-ys214jt5.js";
31
31
  import"../../chunks/Accordion-bff0p3x4.js";
@@ -1,18 +1,18 @@
1
1
  'use client';
2
- import"../../chunks/Accordion-qn398m1x.js";
2
+ import"../../chunks/Accordion-r2g18vxa.js";
3
3
  import"../../chunks/Accordion-6wrr910w.js";
4
- import"../../chunks/Accordion-42jfy1a1.js";
4
+ import"../../chunks/Accordion-vj1m2wck.js";
5
5
  import"../../chunks/Accordion-09qs8gt1.js";
6
6
  import"../../chunks/Accordion-z5a0tx18.js";
7
- import"../../chunks/Accordion-7tjz25jh.js";
7
+ import"../../chunks/Accordion-vbzjq3z8.js";
8
8
  import"../../chunks/Accordion-2nesr9cv.js";
9
- import"../../chunks/Accordion-w6qedeba.js";
9
+ import"../../chunks/Accordion-x055n3b3.js";
10
10
  import"../../chunks/Accordion-bfzeab9x.js";
11
- import"../../chunks/Accordion-9w8wg9mf.js";
11
+ import"../../chunks/Accordion-9rnsg9pk.js";
12
12
  import"../../chunks/Accordion-8f0nekwe.js";
13
13
  import"../../chunks/Accordion-nnv76yff.js";
14
14
  import"../../chunks/Accordion-wyxmd0n0.js";
15
- import"../../chunks/Accordion-6rrqpb2h.js";
15
+ import"../../chunks/Accordion-h4ekm5cp.js";
16
16
  import {
17
17
  OAuthProviderButton2,
18
18
  OAuthProviderList2,
@@ -21,11 +21,11 @@ import {
21
21
  AuthScreen2,
22
22
  ForgotPasswordForm2,
23
23
  OtpForm2
24
- } from "../../chunks/Accordion-ejx5gcf9.js";
25
- import"../../chunks/Accordion-40tenzcg.js";
24
+ } from "../../chunks/Accordion-t5scffdr.js";
25
+ import"../../chunks/Accordion-yexfbrzg.js";
26
26
  import"../../chunks/Accordion-45nc4bte.js";
27
- import"../../chunks/Accordion-kjtcbe09.js";
28
- import"../../chunks/Accordion-nssr5gep.js";
27
+ import"../../chunks/Accordion-p1ebrt17.js";
28
+ import"../../chunks/Accordion-c50pywj3.js";
29
29
  import"../../chunks/Accordion-61e19g3e.js";
30
30
  import"../../chunks/Accordion-ys214jt5.js";
31
31
  import"../../chunks/Accordion-bff0p3x4.js";
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import"../../chunks/Accordion-6wrr910w.js";
3
- import"../../chunks/Accordion-42jfy1a1.js";
3
+ import"../../chunks/Accordion-vj1m2wck.js";
4
4
  import {
5
5
  ChessBoard2,
6
6
  OpeningBook2
7
- } from "../../chunks/Accordion-dbf93gxh.js";
7
+ } from "../../chunks/Accordion-xcm1qc39.js";
8
8
  import"../../chunks/Accordion-srjya6dz.js";
9
9
  import"../../chunks/Accordion-xgpzh4wq.js";
10
10
  export {