@ankhorage/zora 25.6.2 → 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 (295) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -1
  3. package/dist/capabilities/index.js +13 -1
  4. package/dist/capabilities/index.js.map +5 -4
  5. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.d.ts +5 -0
  6. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.d.ts.map +1 -0
  7. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.js +40 -0
  8. package/dist/features/grid-interactions/adapters/inbound/GridInteractions.js.map +1 -0
  9. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.d.ts +2 -0
  10. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.d.ts.map +1 -0
  11. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.js +2 -0
  12. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.js.map +1 -0
  13. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.d.ts +11 -0
  14. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.d.ts.map +1 -0
  15. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.js +5 -0
  16. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.js.map +1 -0
  17. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.d.ts +11 -0
  18. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.d.ts.map +1 -0
  19. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.js +20 -0
  20. package/dist/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.js.map +1 -0
  21. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.d.ts +17 -0
  22. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.d.ts.map +1 -0
  23. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.js +76 -0
  24. package/dist/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.js.map +1 -0
  25. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.d.ts +21 -0
  26. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.d.ts.map +1 -0
  27. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.js +20 -0
  28. package/dist/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.js.map +1 -0
  29. package/dist/features/grid-interactions/application/createGridInteractionsController.d.ts +4 -0
  30. package/dist/features/grid-interactions/application/createGridInteractionsController.d.ts.map +1 -0
  31. package/dist/features/grid-interactions/application/createGridInteractionsController.js +191 -0
  32. package/dist/features/grid-interactions/application/createGridInteractionsController.js.map +1 -0
  33. package/dist/features/grid-interactions/meta.d.ts +11 -0
  34. package/dist/features/grid-interactions/meta.d.ts.map +1 -0
  35. package/dist/features/grid-interactions/meta.js +11 -0
  36. package/dist/features/grid-interactions/meta.js.map +1 -0
  37. package/dist/features/grid-interactions/public.d.ts +4 -0
  38. package/dist/features/grid-interactions/public.d.ts.map +1 -0
  39. package/dist/features/grid-interactions/public.js +3 -0
  40. package/dist/features/grid-interactions/public.js.map +1 -0
  41. package/dist/features/matrix-grid/adapters/inbound/MatrixGrid.d.ts.map +1 -1
  42. package/dist/features/matrix-grid/adapters/inbound/MatrixGrid.js +73 -19
  43. package/dist/features/matrix-grid/adapters/inbound/MatrixGrid.js.map +1 -1
  44. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.d.ts +9 -0
  45. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.d.ts.map +1 -0
  46. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.js +5 -0
  47. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.js.map +1 -0
  48. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.d.ts +9 -0
  49. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.d.ts.map +1 -0
  50. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.js +5 -0
  51. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.js.map +1 -0
  52. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.d.ts +9 -0
  53. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.d.ts.map +1 -0
  54. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.js +28 -0
  55. package/dist/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.js.map +1 -0
  56. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.d.ts +14 -0
  57. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.d.ts.map +1 -0
  58. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.js +50 -0
  59. package/dist/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.js.map +1 -0
  60. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.d.ts +18 -0
  61. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.d.ts.map +1 -0
  62. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.js +56 -0
  63. package/dist/features/matrix-grid/application/createMatrixGridSparseIndex.js.map +1 -0
  64. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.d.ts +4 -0
  65. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.d.ts.map +1 -0
  66. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.js +65 -0
  67. package/dist/features/matrix-grid/application/getMatrixGridNextFocusId.js.map +1 -0
  68. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.d.ts +8 -1
  69. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.d.ts.map +1 -1
  70. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.js +15 -4
  71. package/dist/features/matrix-grid/application/resolveMatrixGridSelection.js.map +1 -1
  72. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts.map +1 -1
  73. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +2 -0
  74. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
  75. package/dist/features/registry/componentMeta.d.ts.map +1 -1
  76. package/dist/features/registry/componentMeta.js +2 -0
  77. package/dist/features/registry/componentMeta.js.map +1 -1
  78. package/dist/index.d.ts +1 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/types/grid-interactions.d.ts +58 -0
  83. package/dist/types/grid-interactions.d.ts.map +1 -0
  84. package/dist/types/grid-interactions.js +2 -0
  85. package/dist/types/grid-interactions.js.map +1 -0
  86. package/dist/types/matrix-grid.d.ts +2 -0
  87. package/dist/types/matrix-grid.d.ts.map +1 -1
  88. package/dist/types/matrix-grid.js.map +1 -1
  89. package/package.json +5 -5
  90. package/src/features/grid-interactions/adapters/inbound/GridInteractions.test.tsx +143 -0
  91. package/src/features/grid-interactions/adapters/inbound/GridInteractions.tsx +79 -0
  92. package/src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.native.tsx +14 -0
  93. package/src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.tsx +1 -0
  94. package/src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.tsx +41 -0
  95. package/src/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.test.ts +98 -0
  96. package/src/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.ts +94 -0
  97. package/src/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.test.ts +33 -0
  98. package/src/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.ts +45 -0
  99. package/src/features/grid-interactions/application/createGridInteractionsController.test.ts +115 -0
  100. package/src/features/grid-interactions/application/createGridInteractionsController.ts +231 -0
  101. package/src/features/grid-interactions/meta.ts +12 -0
  102. package/src/features/grid-interactions/public.ts +11 -0
  103. package/src/features/matrix-grid/adapters/inbound/MatrixGrid.test.tsx +280 -2
  104. package/src/features/matrix-grid/adapters/inbound/MatrixGrid.tsx +121 -31
  105. package/src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.native.tsx +11 -0
  106. package/src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.tsx +11 -0
  107. package/src/features/matrix-grid/adapters/inbound/MatrixGridKeyboardProxy.web.tsx +43 -0
  108. package/src/features/matrix-grid/adapters/inbound/useMatrixGridKeyboardFocus.ts +70 -0
  109. package/src/features/matrix-grid/application/createMatrixGridSparseIndex.test.ts +35 -0
  110. package/src/features/matrix-grid/application/createMatrixGridSparseIndex.ts +105 -0
  111. package/src/features/matrix-grid/application/getMatrixGridNextFocusId.test.ts +93 -0
  112. package/src/features/matrix-grid/application/getMatrixGridNextFocusId.ts +112 -0
  113. package/src/features/matrix-grid/application/resolveMatrixGridSelection.test.ts +63 -2
  114. package/src/features/matrix-grid/application/resolveMatrixGridSelection.ts +27 -4
  115. package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +2 -0
  116. package/src/features/registry/componentMeta.ts +2 -0
  117. package/src/index.ts +11 -0
  118. package/src/types/grid-interactions.ts +72 -0
  119. package/src/types/matrix-grid.ts +2 -0
  120. package/web-dist/chunks/{Accordion-5g05kfmx.js → Accordion-0q2wzjdd.js} +4 -4
  121. package/web-dist/chunks/{Accordion-b96evb46.js → Accordion-1fsrnq73.js} +1 -1
  122. package/web-dist/chunks/{Accordion-h3y8qev2.js → Accordion-38ts3gnn.js} +2 -2
  123. package/web-dist/chunks/{Accordion-jnc315h7.js → Accordion-8pkw32q9.js} +2 -2
  124. package/web-dist/chunks/{Accordion-h7zsx9eg.js → Accordion-9jrxktne.js} +3 -3
  125. package/web-dist/chunks/{Accordion-9w8wg9mf.js → Accordion-9rnsg9pk.js} +1 -1
  126. package/web-dist/chunks/{Accordion-4zqd7twp.js → Accordion-9ygakvwk.js} +5 -5
  127. package/web-dist/chunks/{Accordion-fhnazn3n.js → Accordion-b74j4hdt.js} +1 -1
  128. package/web-dist/chunks/{Accordion-nssr5gep.js → Accordion-c50pywj3.js} +2 -2
  129. package/web-dist/chunks/{Accordion-pvj5npzc.js → Accordion-ddrn94v3.js} +3 -3
  130. package/web-dist/chunks/{Accordion-090y18cv.js → Accordion-dk0dtyc0.js} +3 -3
  131. package/web-dist/chunks/{Accordion-59pa0677.js → Accordion-fcczvwgg.js} +0 -1
  132. package/web-dist/chunks/{Accordion-sp4k08kw.js → Accordion-geah5s4f.js} +4 -4
  133. package/web-dist/chunks/{Accordion-6rrqpb2h.js → Accordion-h4ekm5cp.js} +2 -2
  134. package/web-dist/chunks/{Accordion-3d4wkzg7.js → Accordion-hecpczme.js} +5 -5
  135. package/web-dist/chunks/{Accordion-a6551mh4.js → Accordion-hn43wt45.js} +1 -1
  136. package/web-dist/chunks/{Accordion-sw7ep29d.js → Accordion-hnx7hx55.js} +2 -2
  137. package/web-dist/chunks/{Accordion-rsvphbe4.js → Accordion-j1chy29e.js} +1 -1
  138. package/web-dist/chunks/{Accordion-ewf1zen9.js → Accordion-k9cxpg08.js} +5 -5
  139. package/web-dist/chunks/{Accordion-5df6cgyf.js → Accordion-md1g54wg.js} +1 -1
  140. package/web-dist/chunks/{Accordion-kjtcbe09.js → Accordion-p1ebrt17.js} +3 -3
  141. package/web-dist/chunks/{Accordion-qn398m1x.js → Accordion-r2g18vxa.js} +1 -1
  142. package/web-dist/chunks/{Accordion-zt9yghdz.js → Accordion-rctfgyfv.js} +4 -4
  143. package/web-dist/chunks/{Accordion-88t8fgxv.js → Accordion-rfc5mdbv.js} +1 -1
  144. package/web-dist/chunks/{Accordion-fmzxat3v.js → Accordion-sdnzqktc.js} +4 -4
  145. package/web-dist/chunks/{Accordion-v0grdh6q.js → Accordion-sq7ya2ye.js} +2 -2
  146. package/web-dist/chunks/{Accordion-ejx5gcf9.js → Accordion-t5scffdr.js} +9 -9
  147. package/web-dist/chunks/{Accordion-sy1cc5my.js → Accordion-ts788t7b.js} +3 -3
  148. package/web-dist/chunks/{Accordion-4s68t3h7.js → Accordion-v3rzy273.js} +6 -6
  149. package/web-dist/chunks/{Accordion-7tjz25jh.js → Accordion-vbzjq3z8.js} +1 -1
  150. package/web-dist/chunks/{Accordion-jh72azm2.js → Accordion-vg337250.js} +2 -2
  151. package/web-dist/chunks/{Accordion-42jfy1a1.js → Accordion-vj1m2wck.js} +1 -1
  152. package/web-dist/chunks/{Accordion-tqpsmdrk.js → Accordion-vxg5sw01.js} +4 -4
  153. package/web-dist/chunks/{Accordion-61ntvh14.js → Accordion-w59y0jdf.js} +4 -4
  154. package/web-dist/chunks/{Accordion-fjxcn6g9.js → Accordion-wcmrasqx.js} +8 -8
  155. package/web-dist/chunks/{Accordion-r1cj2w9e.js → Accordion-wpk8dxqp.js} +3 -3
  156. package/web-dist/chunks/{Accordion-w6qedeba.js → Accordion-x055n3b3.js} +1 -1
  157. package/web-dist/chunks/{Accordion-dbf93gxh.js → Accordion-xcm1qc39.js} +1 -1
  158. package/web-dist/chunks/{Accordion-7kq500r1.js → Accordion-xgxxg1hz.js} +1 -1
  159. package/web-dist/chunks/{Accordion-a4cma5b6.js → Accordion-y3083394.js} +3 -3
  160. package/web-dist/chunks/{Accordion-40tenzcg.js → Accordion-yexfbrzg.js} +4 -4
  161. package/web-dist/chunks/{Accordion-2r0gqk3x.js → Accordion-ztw7zp6v.js} +5 -5
  162. package/web-dist/chunks/{Accordion-bz04casa.js → Accordion-zypyr9xw.js} +211 -6
  163. package/web-dist/components/accordion/Accordion.js +5 -5
  164. package/web-dist/components/accordion-item/AccordionItem.js +5 -5
  165. package/web-dist/components/activity-indicator/ActivityIndicator.js +1 -1
  166. package/web-dist/components/app-bar/AppBar.js +7 -7
  167. package/web-dist/components/app-header/AppHeader.js +7 -7
  168. package/web-dist/components/app-shell/AppShell.js +2 -2
  169. package/web-dist/components/auth-screen/AuthScreen.js +10 -10
  170. package/web-dist/components/avatar/Avatar.js +5 -5
  171. package/web-dist/components/avatar-group/AvatarGroup.js +5 -5
  172. package/web-dist/components/badge/Badge.js +2 -2
  173. package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +10 -10
  174. package/web-dist/components/bottom-sheet/BottomSheet.js +3 -3
  175. package/web-dist/components/bottom-sheet-flat-list/BottomSheetFlatList.js +3 -3
  176. package/web-dist/components/bottom-sheet-scroll-view/BottomSheetScrollView.js +3 -3
  177. package/web-dist/components/bottom-sheet-section-list/BottomSheetSectionList.js +3 -3
  178. package/web-dist/components/bottom-sheet-view/BottomSheetView.js +3 -3
  179. package/web-dist/components/bottom-sheet-virtualized-list/BottomSheetVirtualizedList.js +3 -3
  180. package/web-dist/components/breadcrumbs/Breadcrumbs.js +5 -5
  181. package/web-dist/components/button/Button.js +3 -3
  182. package/web-dist/components/button-group/ButtonGroup.js +3 -3
  183. package/web-dist/components/camera-permission-view/CameraPermissionView.js +10 -10
  184. package/web-dist/components/card/Card.js +9 -9
  185. package/web-dist/components/card-back/CardBack.js +2 -2
  186. package/web-dist/components/card-hand/CardHand.js +2 -2
  187. package/web-dist/components/chat-list-item/ChatListItem.js +7 -7
  188. package/web-dist/components/checkbox/Checkbox.js +4 -4
  189. package/web-dist/components/checkbox-group/CheckboxGroup.js +4 -4
  190. package/web-dist/components/chess-board/ChessBoard.js +2 -2
  191. package/web-dist/components/chip/Chip.js +5 -5
  192. package/web-dist/components/chip-group/ChipGroup.js +5 -5
  193. package/web-dist/components/collection-editor/CollectionEditor.js +9 -9
  194. package/web-dist/components/content-rail/ContentRail.js +4 -4
  195. package/web-dist/components/data-table/DataTable.js +14 -14
  196. package/web-dist/components/date-picker/DatePicker.js +5 -5
  197. package/web-dist/components/dialog/Dialog.js +4 -4
  198. package/web-dist/components/divider/Divider.js +2 -2
  199. package/web-dist/components/empty-state/EmptyState.js +10 -10
  200. package/web-dist/components/explorer/Explorer.js +7 -7
  201. package/web-dist/components/field/Field.js +4 -4
  202. package/web-dist/components/file-explorer/FileExplorer.js +7 -7
  203. package/web-dist/components/flat-list/FlatList.js +5 -5
  204. package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +10 -10
  205. package/web-dist/components/form/Form.js +6 -6
  206. package/web-dist/components/form-actions/FormActions.js +6 -6
  207. package/web-dist/components/form-error/FormError.js +6 -6
  208. package/web-dist/components/game/Game.js +3 -3
  209. package/web-dist/components/game-entity/GameEntity.js +3 -3
  210. package/web-dist/components/game-field/GameField.js +3 -3
  211. package/web-dist/components/game-input-zone/GameInputZone.js +3 -3
  212. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +3 -3
  213. package/web-dist/components/game-overlay/GameOverlay.js +3 -3
  214. package/web-dist/components/gradient/Gradient.js +3 -3
  215. package/web-dist/components/gradient-renderer-provider/GradientRendererProvider.js +3 -3
  216. package/web-dist/components/graph-view/GraphView.js +2 -2
  217. package/web-dist/components/grid/Grid.js +2 -2
  218. package/web-dist/components/grid-interactions/GridInteractions.d.ts +3 -0
  219. package/web-dist/components/grid-interactions/GridInteractions.js +371 -0
  220. package/web-dist/components/grid-interactions/index.d.ts +1 -0
  221. package/web-dist/components/grid-interactions/index.js +2 -0
  222. package/web-dist/components/grid-line-overlay/GridLineOverlay.js +2 -2
  223. package/web-dist/components/grid-ruler/GridRuler.js +2 -2
  224. package/web-dist/components/grid-view/GridView.js +1 -1
  225. package/web-dist/components/heading/Heading.js +2 -2
  226. package/web-dist/components/hero/Hero.js +9 -9
  227. package/web-dist/components/icon/Icon.js +2 -2
  228. package/web-dist/components/icon-button/IconButton.js +3 -3
  229. package/web-dist/components/image/Image.js +4 -4
  230. package/web-dist/components/keyboard-avoiding-view/KeyboardAvoidingView.js +2 -2
  231. package/web-dist/components/list/List.js +5 -5
  232. package/web-dist/components/list-item/ListItem.js +5 -5
  233. package/web-dist/components/list-section/ListSection.js +5 -5
  234. package/web-dist/components/matrix-grid/MatrixGrid.js +296 -47
  235. package/web-dist/components/media-card/MediaCard.js +9 -9
  236. package/web-dist/components/media-explorer/MediaExplorer.js +7 -7
  237. package/web-dist/components/message-bubble/MessageBubble.js +7 -7
  238. package/web-dist/components/metric-card/MetricCard.js +9 -9
  239. package/web-dist/components/missing-element/MissingElement.js +4 -4
  240. package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +10 -10
  241. package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +10 -10
  242. package/web-dist/components/opening-book/OpeningBook.js +2 -2
  243. package/web-dist/components/otp-form/OtpForm.js +10 -10
  244. package/web-dist/components/pagination/Pagination.js +4 -4
  245. package/web-dist/components/palette-item/PaletteItem.js +9 -9
  246. package/web-dist/components/playing-card/PlayingCard.js +2 -2
  247. package/web-dist/components/poker-training-table/PokerTrainingTable.js +2 -2
  248. package/web-dist/components/popover-menu/PopoverMenu.js +4 -4
  249. package/web-dist/components/post-card/PostCard.js +9 -9
  250. package/web-dist/components/product-card/ProductCard.js +9 -9
  251. package/web-dist/components/progress/Progress.js +4 -4
  252. package/web-dist/components/progress-ring/ProgressRing.js +4 -4
  253. package/web-dist/components/radio/Radio.js +5 -5
  254. package/web-dist/components/radio-group/RadioGroup.js +5 -5
  255. package/web-dist/components/rating/Rating.js +3 -3
  256. package/web-dist/components/reader/Reader.js +10 -10
  257. package/web-dist/components/scan-overlay/ScanOverlay.js +10 -10
  258. package/web-dist/components/screen/Screen.js +2 -2
  259. package/web-dist/components/screen-section/ScreenSection.js +4 -4
  260. package/web-dist/components/scroll-view/ScrollView.js +2 -2
  261. package/web-dist/components/search-input/SearchInput.js +4 -4
  262. package/web-dist/components/section-header/SectionHeader.js +4 -4
  263. package/web-dist/components/section-list/SectionList.js +5 -5
  264. package/web-dist/components/select/Select.js +4 -4
  265. package/web-dist/components/selectable-item/SelectableItem.js +2 -2
  266. package/web-dist/components/selection-provider/SelectionProvider.js +2 -2
  267. package/web-dist/components/sign-in-form/SignInForm.js +10 -10
  268. package/web-dist/components/sign-up-form/SignUpForm.js +10 -10
  269. package/web-dist/components/skeleton/Skeleton.js +12 -12
  270. package/web-dist/components/skeleton-card/SkeletonCard.js +12 -12
  271. package/web-dist/components/skeleton-list/SkeletonList.js +12 -12
  272. package/web-dist/components/skeleton-text/SkeletonText.js +12 -12
  273. package/web-dist/components/spatial-grid/SpatialGrid.js +1 -1
  274. package/web-dist/components/surface/Surface.js +2 -2
  275. package/web-dist/components/switch/Switch.js +1 -1
  276. package/web-dist/components/tab/Tab.js +2 -2
  277. package/web-dist/components/tab-list/TabList.js +2 -2
  278. package/web-dist/components/tab-panel/TabPanel.js +2 -2
  279. package/web-dist/components/tabletop-table/TabletopTable.js +2 -2
  280. package/web-dist/components/tabs/Tabs.js +2 -2
  281. package/web-dist/components/text/Text.js +2 -2
  282. package/web-dist/components/text-input/TextInput.js +4 -4
  283. package/web-dist/components/tile-grid/TileGrid.js +1 -1
  284. package/web-dist/components/time-grid/TimeGrid.js +2 -2
  285. package/web-dist/components/time-picker/TimePicker.js +5 -5
  286. package/web-dist/components/timeline/Timeline.js +4 -4
  287. package/web-dist/components/toast/Toast.js +2 -2
  288. package/web-dist/components/toast-provider/ToastProvider.js +2 -2
  289. package/web-dist/components/toolbar/Toolbar.js +9 -9
  290. package/web-dist/components/tree-item/TreeItem.js +9 -9
  291. package/web-dist/components/tree-view/TreeView.js +1 -1
  292. package/web-dist/components/uploader/Uploader.js +12 -12
  293. package/web-dist/components/view/View.js +2 -2
  294. package/web-dist/manifest.json +787 -772
  295. package/web-dist/runtime/ZoraProvider.js +3 -3
@@ -1,24 +1,24 @@
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"../../chunks/Accordion-09qs8gt1.js";
5
5
  import"../../chunks/Accordion-z5a0tx18.js";
6
- import"../../chunks/Accordion-7tjz25jh.js";
6
+ import"../../chunks/Accordion-vbzjq3z8.js";
7
7
  import"../../chunks/Accordion-bfzeab9x.js";
8
8
  import"../../chunks/Accordion-8f0nekwe.js";
9
9
  import"../../chunks/Accordion-nnv76yff.js";
10
10
  import"../../chunks/Accordion-wyxmd0n0.js";
11
- import"../../chunks/Accordion-6rrqpb2h.js";
11
+ import"../../chunks/Accordion-h4ekm5cp.js";
12
12
  import {
13
13
  FormActions2,
14
14
  Form2,
15
15
  FormError2
16
- } from "../../chunks/Accordion-40tenzcg.js";
17
- import"../../chunks/Accordion-9w8wg9mf.js";
16
+ } from "../../chunks/Accordion-yexfbrzg.js";
17
+ import"../../chunks/Accordion-9rnsg9pk.js";
18
18
  import"../../chunks/Accordion-45nc4bte.js";
19
19
  import {
20
20
  Field2
21
- } from "../../chunks/Accordion-kjtcbe09.js";
21
+ } from "../../chunks/Accordion-p1ebrt17.js";
22
22
  import"../../chunks/Accordion-61e19g3e.js";
23
23
  import"../../chunks/Accordion-ys214jt5.js";
24
24
  import"../../chunks/Accordion-bff0p3x4.js";
@@ -1,24 +1,24 @@
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"../../chunks/Accordion-09qs8gt1.js";
5
5
  import"../../chunks/Accordion-z5a0tx18.js";
6
- import"../../chunks/Accordion-7tjz25jh.js";
6
+ import"../../chunks/Accordion-vbzjq3z8.js";
7
7
  import"../../chunks/Accordion-bfzeab9x.js";
8
8
  import"../../chunks/Accordion-8f0nekwe.js";
9
9
  import"../../chunks/Accordion-nnv76yff.js";
10
10
  import"../../chunks/Accordion-wyxmd0n0.js";
11
- import"../../chunks/Accordion-6rrqpb2h.js";
11
+ import"../../chunks/Accordion-h4ekm5cp.js";
12
12
  import {
13
13
  FormActions2,
14
14
  Form2,
15
15
  FormError2
16
- } from "../../chunks/Accordion-40tenzcg.js";
17
- import"../../chunks/Accordion-9w8wg9mf.js";
16
+ } from "../../chunks/Accordion-yexfbrzg.js";
17
+ import"../../chunks/Accordion-9rnsg9pk.js";
18
18
  import"../../chunks/Accordion-45nc4bte.js";
19
19
  import {
20
20
  Field2
21
- } from "../../chunks/Accordion-kjtcbe09.js";
21
+ } from "../../chunks/Accordion-p1ebrt17.js";
22
22
  import"../../chunks/Accordion-61e19g3e.js";
23
23
  import"../../chunks/Accordion-ys214jt5.js";
24
24
  import"../../chunks/Accordion-bff0p3x4.js";
@@ -1,24 +1,24 @@
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"../../chunks/Accordion-09qs8gt1.js";
5
5
  import"../../chunks/Accordion-z5a0tx18.js";
6
- import"../../chunks/Accordion-7tjz25jh.js";
6
+ import"../../chunks/Accordion-vbzjq3z8.js";
7
7
  import"../../chunks/Accordion-bfzeab9x.js";
8
8
  import"../../chunks/Accordion-8f0nekwe.js";
9
9
  import"../../chunks/Accordion-nnv76yff.js";
10
10
  import"../../chunks/Accordion-wyxmd0n0.js";
11
- import"../../chunks/Accordion-6rrqpb2h.js";
11
+ import"../../chunks/Accordion-h4ekm5cp.js";
12
12
  import {
13
13
  FormActions2,
14
14
  Form2,
15
15
  FormError2
16
- } from "../../chunks/Accordion-40tenzcg.js";
17
- import"../../chunks/Accordion-9w8wg9mf.js";
16
+ } from "../../chunks/Accordion-yexfbrzg.js";
17
+ import"../../chunks/Accordion-9rnsg9pk.js";
18
18
  import"../../chunks/Accordion-45nc4bte.js";
19
19
  import {
20
20
  Field2
21
- } from "../../chunks/Accordion-kjtcbe09.js";
21
+ } from "../../chunks/Accordion-p1ebrt17.js";
22
22
  import"../../chunks/Accordion-61e19g3e.js";
23
23
  import"../../chunks/Accordion-ys214jt5.js";
24
24
  import"../../chunks/Accordion-bff0p3x4.js";
@@ -6,12 +6,12 @@ import {
6
6
  GameInputZone2,
7
7
  GameMeasurementProbe2,
8
8
  GameOverlay2
9
- } from "../../chunks/Accordion-h3y8qev2.js";
9
+ } from "../../chunks/Accordion-38ts3gnn.js";
10
10
  import"../../chunks/Accordion-6wrr910w.js";
11
- import"../../chunks/Accordion-42jfy1a1.js";
11
+ import"../../chunks/Accordion-vj1m2wck.js";
12
12
  import"../../chunks/Accordion-09qs8gt1.js";
13
13
  import"../../chunks/Accordion-z5a0tx18.js";
14
- import"../../chunks/Accordion-7tjz25jh.js";
14
+ import"../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-184r2r82.js";
16
16
  import"../../chunks/Accordion-fre84yaq.js";
17
17
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -6,12 +6,12 @@ import {
6
6
  GameInputZone2,
7
7
  GameMeasurementProbe2,
8
8
  GameOverlay2
9
- } from "../../chunks/Accordion-h3y8qev2.js";
9
+ } from "../../chunks/Accordion-38ts3gnn.js";
10
10
  import"../../chunks/Accordion-6wrr910w.js";
11
- import"../../chunks/Accordion-42jfy1a1.js";
11
+ import"../../chunks/Accordion-vj1m2wck.js";
12
12
  import"../../chunks/Accordion-09qs8gt1.js";
13
13
  import"../../chunks/Accordion-z5a0tx18.js";
14
- import"../../chunks/Accordion-7tjz25jh.js";
14
+ import"../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-184r2r82.js";
16
16
  import"../../chunks/Accordion-fre84yaq.js";
17
17
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -6,12 +6,12 @@ import {
6
6
  GameInputZone2,
7
7
  GameMeasurementProbe2,
8
8
  GameOverlay2
9
- } from "../../chunks/Accordion-h3y8qev2.js";
9
+ } from "../../chunks/Accordion-38ts3gnn.js";
10
10
  import"../../chunks/Accordion-6wrr910w.js";
11
- import"../../chunks/Accordion-42jfy1a1.js";
11
+ import"../../chunks/Accordion-vj1m2wck.js";
12
12
  import"../../chunks/Accordion-09qs8gt1.js";
13
13
  import"../../chunks/Accordion-z5a0tx18.js";
14
- import"../../chunks/Accordion-7tjz25jh.js";
14
+ import"../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-184r2r82.js";
16
16
  import"../../chunks/Accordion-fre84yaq.js";
17
17
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -6,12 +6,12 @@ import {
6
6
  GameInputZone2,
7
7
  GameMeasurementProbe2,
8
8
  GameOverlay2
9
- } from "../../chunks/Accordion-h3y8qev2.js";
9
+ } from "../../chunks/Accordion-38ts3gnn.js";
10
10
  import"../../chunks/Accordion-6wrr910w.js";
11
- import"../../chunks/Accordion-42jfy1a1.js";
11
+ import"../../chunks/Accordion-vj1m2wck.js";
12
12
  import"../../chunks/Accordion-09qs8gt1.js";
13
13
  import"../../chunks/Accordion-z5a0tx18.js";
14
- import"../../chunks/Accordion-7tjz25jh.js";
14
+ import"../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-184r2r82.js";
16
16
  import"../../chunks/Accordion-fre84yaq.js";
17
17
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -6,12 +6,12 @@ import {
6
6
  GameInputZone2,
7
7
  GameMeasurementProbe2,
8
8
  GameOverlay2
9
- } from "../../chunks/Accordion-h3y8qev2.js";
9
+ } from "../../chunks/Accordion-38ts3gnn.js";
10
10
  import"../../chunks/Accordion-6wrr910w.js";
11
- import"../../chunks/Accordion-42jfy1a1.js";
11
+ import"../../chunks/Accordion-vj1m2wck.js";
12
12
  import"../../chunks/Accordion-09qs8gt1.js";
13
13
  import"../../chunks/Accordion-z5a0tx18.js";
14
- import"../../chunks/Accordion-7tjz25jh.js";
14
+ import"../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-184r2r82.js";
16
16
  import"../../chunks/Accordion-fre84yaq.js";
17
17
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -6,12 +6,12 @@ import {
6
6
  GameInputZone2,
7
7
  GameMeasurementProbe2,
8
8
  GameOverlay2
9
- } from "../../chunks/Accordion-h3y8qev2.js";
9
+ } from "../../chunks/Accordion-38ts3gnn.js";
10
10
  import"../../chunks/Accordion-6wrr910w.js";
11
- import"../../chunks/Accordion-42jfy1a1.js";
11
+ import"../../chunks/Accordion-vj1m2wck.js";
12
12
  import"../../chunks/Accordion-09qs8gt1.js";
13
13
  import"../../chunks/Accordion-z5a0tx18.js";
14
- import"../../chunks/Accordion-7tjz25jh.js";
14
+ import"../../chunks/Accordion-vbzjq3z8.js";
15
15
  import"../../chunks/Accordion-184r2r82.js";
16
16
  import"../../chunks/Accordion-fre84yaq.js";
17
17
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -1,13 +1,13 @@
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"../../chunks/Accordion-09qs8gt1.js";
5
5
  import"../../chunks/Accordion-z5a0tx18.js";
6
- import"../../chunks/Accordion-7tjz25jh.js";
6
+ import"../../chunks/Accordion-vbzjq3z8.js";
7
7
  import {
8
8
  GradientRendererProvider2,
9
9
  Gradient2
10
- } from "../../chunks/Accordion-v0grdh6q.js";
10
+ } from "../../chunks/Accordion-sq7ya2ye.js";
11
11
  import"../../chunks/Accordion-184r2r82.js";
12
12
  import"../../chunks/Accordion-fre84yaq.js";
13
13
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -1,13 +1,13 @@
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"../../chunks/Accordion-09qs8gt1.js";
5
5
  import"../../chunks/Accordion-z5a0tx18.js";
6
- import"../../chunks/Accordion-7tjz25jh.js";
6
+ import"../../chunks/Accordion-vbzjq3z8.js";
7
7
  import {
8
8
  GradientRendererProvider2,
9
9
  Gradient2
10
- } from "../../chunks/Accordion-v0grdh6q.js";
10
+ } from "../../chunks/Accordion-sq7ya2ye.js";
11
11
  import"../../chunks/Accordion-184r2r82.js";
12
12
  import"../../chunks/Accordion-fre84yaq.js";
13
13
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import {
3
3
  resolveSelectionEventIntent
4
- } from "../../chunks/Accordion-5df6cgyf.js";
4
+ } from "../../chunks/Accordion-md1g54wg.js";
5
5
  import {
6
6
  isRecord
7
- } from "../../chunks/Accordion-59pa0677.js";
7
+ } from "../../chunks/Accordion-fcczvwgg.js";
8
8
  import {
9
9
  __toESM,
10
10
  __commonJS,
@@ -1,6 +1,6 @@
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"../../chunks/Accordion-09qs8gt1.js";
5
5
  import"../../chunks/Accordion-z5a0tx18.js";
6
6
  import {
@@ -10,7 +10,7 @@ import {
10
10
  Grid2,
11
11
  ScrollView2,
12
12
  Screen2
13
- } from "../../chunks/Accordion-7tjz25jh.js";
13
+ } from "../../chunks/Accordion-vbzjq3z8.js";
14
14
  import"../../chunks/Accordion-184r2r82.js";
15
15
  import"../../chunks/Accordion-fre84yaq.js";
16
16
  import"../../chunks/Accordion-xgpzh4wq.js";
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+
3
+ export declare const GridInteractions: React.ComponentType<Record<string, unknown>>;
@@ -0,0 +1,371 @@
1
+ 'use client';
2
+ import {
3
+ viewportToWorld,
4
+ hitTestWorldRects,
5
+ moveWorldRects,
6
+ resizeWorldRect,
7
+ resolveWorldSnapCandidate,
8
+ selectWorldRects,
9
+ panViewport
10
+ } from "../../chunks/Accordion-zypyr9xw.js";
11
+ import {
12
+ require_cjs
13
+ } from "../../chunks/Accordion-xgpzh4wq.js";
14
+ import {
15
+ __toESM
16
+ } from "../../chunks/Accordion-nh0cs9hq.js";
17
+
18
+ // src/features/grid-interactions/adapters/inbound/GridInteractions.tsx
19
+ var import_react_native = __toESM(require_cjs(), 1);
20
+ import React from "react";
21
+
22
+ // src/features/grid-interactions/application/createGridInteractionsController.ts
23
+ function createGridInteractionsController(props) {
24
+ let currentProps = props;
25
+ let state = { kind: "idle" };
26
+ let previousIntent;
27
+ const point = (pointer) => Number.isFinite(pointer.x) && Number.isFinite(pointer.y) ? viewportToWorld(pointer, currentProps.viewport) : undefined;
28
+ const emit = (intent) => {
29
+ if (JSON.stringify(previousIntent) === JSON.stringify(intent))
30
+ return;
31
+ previousIntent = intent;
32
+ currentProps.onIntent(intent);
33
+ };
34
+ return {
35
+ begin: (pointer, handle) => {
36
+ if (!canEdit(currentProps))
37
+ return;
38
+ const start = point(pointer);
39
+ if (start === undefined)
40
+ return;
41
+ if (pointer.spaceKey === true || pointer.altKey === true) {
42
+ state = { kind: "pan", start };
43
+ return;
44
+ }
45
+ const target = hitTestWorldRects(currentProps.items, start);
46
+ if (target === undefined || isProtected(target)) {
47
+ state = { kind: "marquee", start };
48
+ return;
49
+ }
50
+ if (handle !== undefined && target.resizable !== false) {
51
+ state = { kind: "resize", start, item: target, handle };
52
+ return;
53
+ }
54
+ const itemIds = currentProps.selectedIds?.includes(target.id) === true ? currentProps.selectedIds : [target.id];
55
+ state = { kind: "move", start, itemIds };
56
+ },
57
+ move: (pointer) => {
58
+ if (!canEdit(currentProps))
59
+ return;
60
+ const current = point(pointer);
61
+ if (current !== undefined)
62
+ emitPreview(state, current, currentProps, emit);
63
+ },
64
+ end: (pointer) => {
65
+ if (!canEdit(currentProps)) {
66
+ state = { kind: "idle" };
67
+ return;
68
+ }
69
+ const current = point(pointer);
70
+ if (current !== undefined)
71
+ emitPreview(state, current, currentProps, emit);
72
+ state = { kind: "idle" };
73
+ },
74
+ cancel: () => {
75
+ state = { kind: "idle" };
76
+ },
77
+ keyDown: (key, pointer = { x: 0, y: 0 }) => {
78
+ if (!canEdit(currentProps))
79
+ return false;
80
+ const focusedId = currentProps.selectedIds?.at(-1);
81
+ const focused = currentProps.items.find((item) => item.id === focusedId);
82
+ if (!focused || isProtected(focused))
83
+ return false;
84
+ const increment = pointer.shiftKey === true ? 10 : 1;
85
+ const delta = keyToDelta(key, increment);
86
+ if (delta === undefined)
87
+ return false;
88
+ if (pointer.altKey === true) {
89
+ emit({
90
+ type: "resize",
91
+ itemIds: [focused.id],
92
+ rects: [resizeWorldRect(focused, resizeHandleForDelta(delta), delta)]
93
+ });
94
+ return true;
95
+ }
96
+ emit({ type: "move", itemIds: [focused.id], rects: moveWorldRects([focused], delta) });
97
+ return true;
98
+ },
99
+ update: (nextProps) => {
100
+ currentProps = nextProps;
101
+ }
102
+ };
103
+ }
104
+ function canEdit(props) {
105
+ return props.interactionPolicy !== "passive";
106
+ }
107
+ function emitPreview(state, current, props, emit) {
108
+ if (state.kind === "idle")
109
+ return;
110
+ if (state.kind === "pan") {
111
+ emit({
112
+ type: "pan",
113
+ itemIds: [],
114
+ viewport: panViewport(props.viewport, {
115
+ x: state.start.x - current.x,
116
+ y: state.start.y - current.y
117
+ })
118
+ });
119
+ return;
120
+ }
121
+ if (state.kind === "marquee") {
122
+ const marquee = normalizeRect(state.start, current);
123
+ const itemIds = selectWorldRects(props.items, marquee, {
124
+ mode: props.marqueeMode ?? "intersect"
125
+ }).filter((id) => {
126
+ const item = props.items.find((candidate) => candidate.id === id);
127
+ return item !== undefined && !isProtected(item);
128
+ });
129
+ emit({ type: "marquee", itemIds, marquee });
130
+ return;
131
+ }
132
+ const delta = resolveSnapDelta(state, current, props);
133
+ if (state.kind === "move") {
134
+ const selected = props.items.filter((item) => state.itemIds.includes(item.id));
135
+ emit({ type: "move", itemIds: state.itemIds, rects: moveWorldRects(selected, delta) });
136
+ return;
137
+ }
138
+ emit({
139
+ type: "resize",
140
+ itemIds: [state.item.id],
141
+ rects: [resizeWorldRect(state.item, state.handle, delta)]
142
+ });
143
+ }
144
+ function resolveSnapDelta(state, current, props) {
145
+ if (state.kind === "idle" || state.kind === "marquee" || state.kind === "pan") {
146
+ return { x: 0, y: 0 };
147
+ }
148
+ const raw = { x: current.x - state.start.x, y: current.y - state.start.y };
149
+ if (props.snap?.enabled !== true)
150
+ return raw;
151
+ const anchor = state.kind === "resize" ? state.item : props.items.find((item) => item.id === state.itemIds[0]);
152
+ if (anchor === undefined)
153
+ return raw;
154
+ const options = {
155
+ enabled: true,
156
+ tolerancePixels: props.snap.tolerancePixels,
157
+ priorities: props.snap.priorities
158
+ };
159
+ return {
160
+ x: resolveWorldSnapCandidate(anchor.x + raw.x, props.snap.x ?? [], {
161
+ ...options,
162
+ pixelsPerUnit: props.viewport.pixelsPerUnitX
163
+ }) - anchor.x,
164
+ y: resolveWorldSnapCandidate(anchor.y + raw.y, props.snap.y ?? [], {
165
+ ...options,
166
+ pixelsPerUnit: props.viewport.pixelsPerUnitY
167
+ }) - anchor.y
168
+ };
169
+ }
170
+ function isProtected(item) {
171
+ return item.disabled === true || item.locked === true || item.readOnly === true || item.passive === true;
172
+ }
173
+ function normalizeRect(start, end) {
174
+ return {
175
+ x: Math.min(start.x, end.x),
176
+ y: Math.min(start.y, end.y),
177
+ width: Math.abs(end.x - start.x),
178
+ height: Math.abs(end.y - start.y)
179
+ };
180
+ }
181
+ function keyToDelta(key, increment) {
182
+ if (key === "ArrowUp")
183
+ return { x: 0, y: -increment };
184
+ if (key === "ArrowRight")
185
+ return { x: increment, y: 0 };
186
+ if (key === "ArrowDown")
187
+ return { x: 0, y: increment };
188
+ if (key === "ArrowLeft")
189
+ return { x: -increment, y: 0 };
190
+ return;
191
+ }
192
+ function resizeHandleForDelta(delta) {
193
+ if (delta.x < 0)
194
+ return delta.y < 0 ? "top-left" : delta.y > 0 ? "bottom-left" : "left";
195
+ return delta.y < 0 ? "top-right" : delta.y > 0 ? "bottom-right" : "right";
196
+ }
197
+
198
+ // src/features/grid-interactions/adapters/inbound/createGridInteractionsPointerQueue.ts
199
+ function createGridInteractionsPointerQueue() {
200
+ let active = true;
201
+ let generation = 0;
202
+ let measuring = false;
203
+ let measurementId = 0;
204
+ let activeMeasurementId;
205
+ let pending = [];
206
+ const processNext = () => {
207
+ if (measuring)
208
+ return;
209
+ const pointerWork = pending.at(0);
210
+ if (pointerWork === undefined)
211
+ return;
212
+ pending = pending.slice(1);
213
+ measuring = true;
214
+ const currentMeasurementId = ++measurementId;
215
+ activeMeasurementId = currentMeasurementId;
216
+ let settled = false;
217
+ measureSurfaceOrigin(pointerWork.surface, (origin) => {
218
+ if (settled)
219
+ return;
220
+ settled = true;
221
+ if (activeMeasurementId !== currentMeasurementId)
222
+ return;
223
+ try {
224
+ if (active && pointerWork.generation === generation) {
225
+ pointerWork.handleOrigin(origin);
226
+ }
227
+ } finally {
228
+ activeMeasurementId = undefined;
229
+ measuring = false;
230
+ processNext();
231
+ }
232
+ });
233
+ };
234
+ return {
235
+ activate: () => {
236
+ active = true;
237
+ },
238
+ enqueue: (surface, handleOrigin) => {
239
+ if (!active)
240
+ return;
241
+ pending = [...pending, { generation, handleOrigin, surface }];
242
+ processNext();
243
+ },
244
+ cancel: () => {
245
+ generation += 1;
246
+ pending = [];
247
+ activeMeasurementId = undefined;
248
+ measuring = false;
249
+ },
250
+ dispose: () => {
251
+ active = false;
252
+ generation += 1;
253
+ pending = [];
254
+ activeMeasurementId = undefined;
255
+ measuring = false;
256
+ }
257
+ };
258
+ }
259
+ function measureSurfaceOrigin(surface, onOrigin) {
260
+ const rect = surface.getBoundingClientRect?.();
261
+ if (rect) {
262
+ onOrigin({ x: rect.left, y: rect.top });
263
+ return;
264
+ }
265
+ if (surface.measureInWindow !== undefined) {
266
+ surface.measureInWindow((x, y) => onOrigin({ x, y }));
267
+ return;
268
+ }
269
+ onOrigin({ x: 0, y: 0 });
270
+ }
271
+
272
+ // src/features/grid-interactions/adapters/inbound/GridInteractionsKeyboardProxy.web.tsx
273
+ import { jsx } from "react/jsx-runtime";
274
+ function GridInteractionsKeyboardProxy({
275
+ children,
276
+ enabled,
277
+ onKeyDown
278
+ }) {
279
+ return /* @__PURE__ */ jsx("div", {
280
+ "aria-label": "Grid interaction keyboard controls",
281
+ onKeyDown: (event) => {
282
+ if (!enabled)
283
+ return;
284
+ if (onKeyDown(event.key, {
285
+ altKey: event.altKey,
286
+ ctrlKey: event.ctrlKey,
287
+ metaKey: event.metaKey,
288
+ shiftKey: event.shiftKey,
289
+ x: 0,
290
+ y: 0
291
+ })) {
292
+ event.preventDefault();
293
+ }
294
+ },
295
+ style: { display: "contents" },
296
+ tabIndex: enabled ? 0 : -1,
297
+ children
298
+ });
299
+ }
300
+
301
+ // src/features/grid-interactions/adapters/inbound/resolveGridInteractionPointer.ts
302
+ function resolveGridInteractionPointer(event, surfaceOrigin) {
303
+ const { nativeEvent } = event;
304
+ const { pageX, pageY } = nativeEvent;
305
+ const x = typeof pageX === "number" && Number.isFinite(pageX) ? pageX - surfaceOrigin.x : nativeEvent.locationX;
306
+ const y = typeof pageY === "number" && Number.isFinite(pageY) ? pageY - surfaceOrigin.y : nativeEvent.locationY;
307
+ return {
308
+ altKey: nativeEvent.altKey,
309
+ ctrlKey: nativeEvent.ctrlKey,
310
+ metaKey: nativeEvent.metaKey,
311
+ shiftKey: nativeEvent.shiftKey,
312
+ x,
313
+ y
314
+ };
315
+ }
316
+
317
+ // src/features/grid-interactions/adapters/inbound/GridInteractions.tsx
318
+ import { jsx as jsx2 } from "react/jsx-runtime";
319
+ function GridInteractions({
320
+ children,
321
+ interactionPolicy,
322
+ resizeHandle,
323
+ testID,
324
+ ...props
325
+ }) {
326
+ const controllerProps = React.useMemo(() => ({ ...props, interactionPolicy }), [interactionPolicy, props]);
327
+ const [controller] = React.useState(() => createGridInteractionsController(controllerProps));
328
+ const surfaceRef = React.useRef(null);
329
+ const [pointerQueue] = React.useState(() => createGridInteractionsPointerQueue());
330
+ React.useLayoutEffect(() => controller.update(controllerProps), [controller, controllerProps]);
331
+ React.useLayoutEffect(() => {
332
+ pointerQueue.activate();
333
+ return () => {
334
+ pointerQueue.dispose();
335
+ controller.cancel();
336
+ };
337
+ }, [controller, pointerQueue]);
338
+ const withPointer = (event, handlePointer) => {
339
+ const surface = surfaceRef.current;
340
+ if (!surface)
341
+ return;
342
+ const eventSnapshot = { nativeEvent: { ...event.nativeEvent } };
343
+ pointerQueue.enqueue(surface, (origin) => handlePointer(resolveGridInteractionPointer(eventSnapshot, origin)));
344
+ };
345
+ const enabled = interactionPolicy !== "passive";
346
+ return /* @__PURE__ */ jsx2(import_react_native.View, {
347
+ accessible: true,
348
+ accessibilityLabel: "Grid interaction surface",
349
+ accessibilityRole: "adjustable",
350
+ ref: surfaceRef,
351
+ testID,
352
+ onResponderGrant: (event) => withPointer(event, (pointer) => controller.begin(pointer, resizeHandle)),
353
+ onResponderMove: (event) => withPointer(event, controller.move),
354
+ onResponderRelease: (event) => withPointer(event, controller.end),
355
+ onResponderTerminate: () => {
356
+ pointerQueue.cancel();
357
+ controller.cancel();
358
+ },
359
+ onStartShouldSetResponder: () => enabled,
360
+ children: /* @__PURE__ */ jsx2(GridInteractionsKeyboardProxy, {
361
+ enabled,
362
+ onKeyDown: (key, keyPointer) => {
363
+ return controller.keyDown(key, keyPointer);
364
+ },
365
+ children
366
+ })
367
+ });
368
+ }
369
+ export {
370
+ GridInteractions
371
+ };
@@ -0,0 +1 @@
1
+ export * from './GridInteractions';
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ export * from './GridInteractions.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
  GridLineOverlay2,
6
6
  GridRuler2
7
- } from "../../chunks/Accordion-jh72azm2.js";
7
+ } from "../../chunks/Accordion-vg337250.js";
8
8
  import"../../chunks/Accordion-srjya6dz.js";
9
9
  import"../../chunks/Accordion-xgpzh4wq.js";
10
10
  export {