@ankhorage/zora 25.2.0 → 25.3.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 (221) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -1
  3. package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.d.ts +5 -0
  4. package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.d.ts.map +1 -0
  5. package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.js +69 -0
  6. package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.js.map +1 -0
  7. package/dist/features/grid-rulers/adapters/inbound/GridRuler.d.ts +5 -0
  8. package/dist/features/grid-rulers/adapters/inbound/GridRuler.d.ts.map +1 -0
  9. package/dist/features/grid-rulers/adapters/inbound/GridRuler.js +59 -0
  10. package/dist/features/grid-rulers/adapters/inbound/GridRuler.js.map +1 -0
  11. package/dist/features/grid-rulers/application/projectGridRulerPosition.d.ts +4 -0
  12. package/dist/features/grid-rulers/application/projectGridRulerPosition.d.ts.map +1 -0
  13. package/dist/features/grid-rulers/application/projectGridRulerPosition.js +10 -0
  14. package/dist/features/grid-rulers/application/projectGridRulerPosition.js.map +1 -0
  15. package/dist/features/grid-rulers/application/resolveGridRulerMarks.d.ts +5 -0
  16. package/dist/features/grid-rulers/application/resolveGridRulerMarks.d.ts.map +1 -0
  17. package/dist/features/grid-rulers/application/resolveGridRulerMarks.js +22 -0
  18. package/dist/features/grid-rulers/application/resolveGridRulerMarks.js.map +1 -0
  19. package/dist/features/grid-rulers/meta.d.ts +21 -0
  20. package/dist/features/grid-rulers/meta.d.ts.map +1 -0
  21. package/dist/features/grid-rulers/meta.js +22 -0
  22. package/dist/features/grid-rulers/meta.js.map +1 -0
  23. package/dist/features/grid-rulers/public.d.ts +5 -0
  24. package/dist/features/grid-rulers/public.d.ts.map +1 -0
  25. package/dist/features/grid-rulers/public.js +4 -0
  26. package/dist/features/grid-rulers/public.js.map +1 -0
  27. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts.map +1 -1
  28. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +3 -0
  29. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
  30. package/dist/features/registry/componentMeta.d.ts.map +1 -1
  31. package/dist/features/registry/componentMeta.js +3 -0
  32. package/dist/features/registry/componentMeta.js.map +1 -1
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/types/grid-rulers.d.ts +48 -0
  38. package/dist/types/grid-rulers.d.ts.map +1 -0
  39. package/dist/types/grid-rulers.js +2 -0
  40. package/dist/types/grid-rulers.js.map +1 -0
  41. package/package.json +6 -6
  42. package/src/features/grid-rulers/adapters/inbound/GridLineOverlay.tsx +123 -0
  43. package/src/features/grid-rulers/adapters/inbound/GridRuler.tsx +96 -0
  44. package/src/features/grid-rulers/adapters/inbound/GridRulers.test.tsx +162 -0
  45. package/src/features/grid-rulers/application/projectGridRulerPosition.ts +19 -0
  46. package/src/features/grid-rulers/application/resolveGridRulerMarks.test.ts +90 -0
  47. package/src/features/grid-rulers/application/resolveGridRulerMarks.ts +39 -0
  48. package/src/features/grid-rulers/meta.ts +26 -0
  49. package/src/features/grid-rulers/public.ts +10 -0
  50. package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +3 -0
  51. package/src/features/registry/componentMeta.ts +3 -0
  52. package/src/index.ts +8 -0
  53. package/src/types/grid-rulers.ts +59 -0
  54. package/web-dist/chunks/{Accordion-mh67wb34.js → Accordion-090y18cv.js} +2 -2
  55. package/web-dist/chunks/{Accordion-7yazfxr6.js → Accordion-3d4wkzg7.js} +4 -4
  56. package/web-dist/chunks/{Accordion-ndf3jqhb.js → Accordion-40tenzcg.js} +3 -3
  57. package/web-dist/chunks/{Accordion-cbfa2b8j.js → Accordion-4s68t3h7.js} +5 -5
  58. package/web-dist/chunks/{Accordion-7asr7vb0.js → Accordion-4zqd7twp.js} +4 -4
  59. package/web-dist/chunks/{Accordion-sdcfa14w.js → Accordion-5g05kfmx.js} +3 -3
  60. package/web-dist/chunks/{Accordion-wgejzesa.js → Accordion-61ntvh14.js} +3 -3
  61. package/web-dist/chunks/{Accordion-kkr7xfh2.js → Accordion-689w7frk.js} +4 -4
  62. package/web-dist/chunks/{Accordion-q09fjenx.js → Accordion-6rrqpb2h.js} +1 -1
  63. package/web-dist/chunks/{Accordion-mej71qnw.js → Accordion-a4cma5b6.js} +2 -2
  64. package/web-dist/chunks/Accordion-e6ddpz5v.js +209 -0
  65. package/web-dist/chunks/Accordion-e9ewv367.js +201 -0
  66. package/web-dist/chunks/{Accordion-9dqkq9am.js → Accordion-ejx5gcf9.js} +8 -8
  67. package/web-dist/chunks/{Accordion-pe66x9cv.js → Accordion-ewf1zen9.js} +4 -4
  68. package/web-dist/chunks/{Accordion-xvzrx6bh.js → Accordion-fjxcn6g9.js} +7 -7
  69. package/web-dist/chunks/{Accordion-teg40mpt.js → Accordion-fmzxat3v.js} +3 -3
  70. package/web-dist/chunks/{Accordion-016wvwpg.js → Accordion-h3y8qev2.js} +1 -1
  71. package/web-dist/chunks/{Accordion-t0hbez90.js → Accordion-h7zsx9eg.js} +2 -2
  72. package/web-dist/chunks/{Accordion-ch4q5w0z.js → Accordion-jnc315h7.js} +1 -1
  73. package/web-dist/chunks/{Accordion-fkc50r9z.js → Accordion-kjtcbe09.js} +2 -2
  74. package/web-dist/chunks/{Accordion-tmrjy46p.js → Accordion-nssr5gep.js} +1 -1
  75. package/web-dist/chunks/{Accordion-ntndskbj.js → Accordion-pvj5npzc.js} +2 -2
  76. package/web-dist/chunks/{Accordion-54k0ncs3.js → Accordion-q2z00p5r.js} +5 -73
  77. package/web-dist/chunks/{Accordion-ggwxv6k3.js → Accordion-r1cj2w9e.js} +2 -2
  78. package/web-dist/chunks/{Accordion-5ga4549x.js → Accordion-sp4k08kw.js} +3 -3
  79. package/web-dist/chunks/{Accordion-1p9r2ack.js → Accordion-sy1cc5my.js} +2 -2
  80. package/web-dist/chunks/{Accordion-hmhdwvqp.js → Accordion-tqpsmdrk.js} +3 -3
  81. package/web-dist/chunks/{Accordion-fzkrrc4z.js → Accordion-v0grdh6q.js} +1 -1
  82. package/web-dist/chunks/{Accordion-ajawc6nq.js → Accordion-zt9yghdz.js} +3 -3
  83. package/web-dist/components/accordion/Accordion.js +4 -4
  84. package/web-dist/components/accordion-item/AccordionItem.js +4 -4
  85. package/web-dist/components/app-bar/AppBar.js +6 -6
  86. package/web-dist/components/app-header/AppHeader.js +6 -6
  87. package/web-dist/components/app-shell/AppShell.js +1 -1
  88. package/web-dist/components/auth-screen/AuthScreen.js +9 -9
  89. package/web-dist/components/avatar/Avatar.js +4 -4
  90. package/web-dist/components/avatar-group/AvatarGroup.js +4 -4
  91. package/web-dist/components/badge/Badge.js +1 -1
  92. package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +9 -9
  93. package/web-dist/components/bottom-sheet/BottomSheet.js +2 -2
  94. package/web-dist/components/bottom-sheet-flat-list/BottomSheetFlatList.js +2 -2
  95. package/web-dist/components/bottom-sheet-scroll-view/BottomSheetScrollView.js +2 -2
  96. package/web-dist/components/bottom-sheet-section-list/BottomSheetSectionList.js +2 -2
  97. package/web-dist/components/bottom-sheet-view/BottomSheetView.js +2 -2
  98. package/web-dist/components/bottom-sheet-virtualized-list/BottomSheetVirtualizedList.js +2 -2
  99. package/web-dist/components/breadcrumbs/Breadcrumbs.js +4 -4
  100. package/web-dist/components/button/Button.js +2 -2
  101. package/web-dist/components/button-group/ButtonGroup.js +2 -2
  102. package/web-dist/components/camera-permission-view/CameraPermissionView.js +9 -9
  103. package/web-dist/components/card/Card.js +8 -8
  104. package/web-dist/components/card-back/CardBack.js +1 -1
  105. package/web-dist/components/card-hand/CardHand.js +1 -1
  106. package/web-dist/components/chat-list-item/ChatListItem.js +6 -6
  107. package/web-dist/components/checkbox/Checkbox.js +3 -3
  108. package/web-dist/components/checkbox-group/CheckboxGroup.js +3 -3
  109. package/web-dist/components/chess-board/ChessBoard.js +1 -1
  110. package/web-dist/components/chip/Chip.js +4 -4
  111. package/web-dist/components/chip-group/ChipGroup.js +4 -4
  112. package/web-dist/components/collection-editor/CollectionEditor.js +8 -8
  113. package/web-dist/components/content-rail/ContentRail.js +3 -3
  114. package/web-dist/components/data-table/DataTable.js +13 -13
  115. package/web-dist/components/date-picker/DatePicker.js +4 -4
  116. package/web-dist/components/dialog/Dialog.js +3 -3
  117. package/web-dist/components/divider/Divider.js +1 -1
  118. package/web-dist/components/empty-state/EmptyState.js +9 -9
  119. package/web-dist/components/explorer/Explorer.js +6 -6
  120. package/web-dist/components/field/Field.js +3 -3
  121. package/web-dist/components/file-explorer/FileExplorer.js +6 -6
  122. package/web-dist/components/flat-list/FlatList.js +4 -4
  123. package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +9 -9
  124. package/web-dist/components/form/Form.js +5 -5
  125. package/web-dist/components/form-actions/FormActions.js +5 -5
  126. package/web-dist/components/form-error/FormError.js +5 -5
  127. package/web-dist/components/game/Game.js +2 -2
  128. package/web-dist/components/game-entity/GameEntity.js +2 -2
  129. package/web-dist/components/game-field/GameField.js +2 -2
  130. package/web-dist/components/game-input-zone/GameInputZone.js +2 -2
  131. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +2 -2
  132. package/web-dist/components/game-overlay/GameOverlay.js +2 -2
  133. package/web-dist/components/gradient/Gradient.js +2 -2
  134. package/web-dist/components/gradient-renderer-provider/GradientRendererProvider.js +2 -2
  135. package/web-dist/components/grid/Grid.js +1 -1
  136. package/web-dist/components/grid-line-overlay/GridLineOverlay.d.ts +4 -0
  137. package/web-dist/components/grid-line-overlay/GridLineOverlay.js +13 -0
  138. package/web-dist/components/grid-line-overlay/index.d.ts +1 -0
  139. package/web-dist/components/grid-line-overlay/index.js +2 -0
  140. package/web-dist/components/grid-ruler/GridRuler.d.ts +4 -0
  141. package/web-dist/components/grid-ruler/GridRuler.js +13 -0
  142. package/web-dist/components/grid-ruler/index.d.ts +1 -0
  143. package/web-dist/components/grid-ruler/index.js +2 -0
  144. package/web-dist/components/grid-view/GridView.js +1 -1
  145. package/web-dist/components/heading/Heading.js +1 -1
  146. package/web-dist/components/hero/Hero.js +8 -8
  147. package/web-dist/components/icon/Icon.js +1 -1
  148. package/web-dist/components/icon-button/IconButton.js +2 -2
  149. package/web-dist/components/image/Image.js +3 -3
  150. package/web-dist/components/keyboard-avoiding-view/KeyboardAvoidingView.js +1 -1
  151. package/web-dist/components/list/List.js +4 -4
  152. package/web-dist/components/list-item/ListItem.js +4 -4
  153. package/web-dist/components/list-section/ListSection.js +4 -4
  154. package/web-dist/components/media-card/MediaCard.js +8 -8
  155. package/web-dist/components/media-explorer/MediaExplorer.js +6 -6
  156. package/web-dist/components/message-bubble/MessageBubble.js +6 -6
  157. package/web-dist/components/metric-card/MetricCard.js +8 -8
  158. package/web-dist/components/missing-element/MissingElement.js +3 -3
  159. package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +9 -9
  160. package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +9 -9
  161. package/web-dist/components/opening-book/OpeningBook.js +1 -1
  162. package/web-dist/components/otp-form/OtpForm.js +9 -9
  163. package/web-dist/components/pagination/Pagination.js +3 -3
  164. package/web-dist/components/palette-item/PaletteItem.js +8 -8
  165. package/web-dist/components/playing-card/PlayingCard.js +1 -1
  166. package/web-dist/components/poker-training-table/PokerTrainingTable.js +1 -1
  167. package/web-dist/components/popover-menu/PopoverMenu.js +3 -3
  168. package/web-dist/components/post-card/PostCard.js +8 -8
  169. package/web-dist/components/product-card/ProductCard.js +8 -8
  170. package/web-dist/components/progress/Progress.js +3 -3
  171. package/web-dist/components/progress-ring/ProgressRing.js +3 -3
  172. package/web-dist/components/radio/Radio.js +4 -4
  173. package/web-dist/components/radio-group/RadioGroup.js +4 -4
  174. package/web-dist/components/rating/Rating.js +2 -2
  175. package/web-dist/components/reader/Reader.js +9 -9
  176. package/web-dist/components/scan-overlay/ScanOverlay.js +9 -9
  177. package/web-dist/components/screen/Screen.js +1 -1
  178. package/web-dist/components/screen-section/ScreenSection.js +3 -3
  179. package/web-dist/components/scroll-view/ScrollView.js +1 -1
  180. package/web-dist/components/search-input/SearchInput.js +3 -3
  181. package/web-dist/components/section-header/SectionHeader.js +3 -3
  182. package/web-dist/components/section-list/SectionList.js +4 -4
  183. package/web-dist/components/select/Select.js +3 -3
  184. package/web-dist/components/selectable-item/SelectableItem.js +1 -1
  185. package/web-dist/components/selection-provider/SelectionProvider.js +1 -1
  186. package/web-dist/components/sign-in-form/SignInForm.js +9 -9
  187. package/web-dist/components/sign-up-form/SignUpForm.js +9 -9
  188. package/web-dist/components/skeleton/Skeleton.js +11 -11
  189. package/web-dist/components/skeleton-card/SkeletonCard.js +11 -11
  190. package/web-dist/components/skeleton-list/SkeletonList.js +11 -11
  191. package/web-dist/components/skeleton-text/SkeletonText.js +11 -11
  192. package/web-dist/components/surface/Surface.js +1 -1
  193. package/web-dist/components/tab/Tab.js +1 -1
  194. package/web-dist/components/tab-list/TabList.js +1 -1
  195. package/web-dist/components/tab-panel/TabPanel.js +1 -1
  196. package/web-dist/components/tabletop-table/TabletopTable.js +1 -1
  197. package/web-dist/components/tabs/Tabs.js +1 -1
  198. package/web-dist/components/text/Text.js +1 -1
  199. package/web-dist/components/text-input/TextInput.js +3 -3
  200. package/web-dist/components/tile-grid/TileGrid.js +1 -1
  201. package/web-dist/components/time-picker/TimePicker.js +4 -4
  202. package/web-dist/components/timeline/Timeline.js +3 -3
  203. package/web-dist/components/toast/Toast.js +1 -1
  204. package/web-dist/components/toast-provider/ToastProvider.js +1 -1
  205. package/web-dist/components/toolbar/Toolbar.js +8 -8
  206. package/web-dist/components/tree-item/TreeItem.js +7 -7
  207. package/web-dist/components/uploader/Uploader.js +11 -11
  208. package/web-dist/components/view/View.js +1 -1
  209. package/web-dist/manifest.json +539 -493
  210. package/web-dist/runtime/ZoraProvider.js +3 -3
  211. /package/web-dist/chunks/{Accordion-qkh5yy94.js → Accordion-7kq500r1.js} +0 -0
  212. /package/web-dist/chunks/{Accordion-f0jsd9f9.js → Accordion-7tjz25jh.js} +0 -0
  213. /package/web-dist/chunks/{Accordion-3m3572sa.js → Accordion-88t8fgxv.js} +0 -0
  214. /package/web-dist/chunks/{Accordion-afmybp67.js → Accordion-9w8wg9mf.js} +0 -0
  215. /package/web-dist/chunks/{Accordion-bb8y34wh.js → Accordion-b96evb46.js} +0 -0
  216. /package/web-dist/chunks/{Accordion-nmpmdrba.js → Accordion-dbf93gxh.js} +0 -0
  217. /package/web-dist/chunks/{Accordion-x12fca21.js → Accordion-fhnazn3n.js} +0 -0
  218. /package/web-dist/chunks/{Accordion-n9c5tsqw.js → Accordion-qn398m1x.js} +0 -0
  219. /package/web-dist/chunks/{Accordion-2rgexkze.js → Accordion-rsvphbe4.js} +0 -0
  220. /package/web-dist/chunks/{Accordion-c69374jn.js → Accordion-sw7ep29d.js} +0 -0
  221. /package/web-dist/chunks/{Accordion-8jxc7tx9.js → Accordion-w6qedeba.js} +0 -0
@@ -0,0 +1,209 @@
1
+ 'use client';
2
+ // node_modules/@ankhorage/grid-view/dist/features/viewport/assertValidViewport.js
3
+ function assertValidViewport(viewport) {
4
+ if (![
5
+ viewport.width,
6
+ viewport.height,
7
+ viewport.offsetX,
8
+ viewport.offsetY,
9
+ viewport.pixelsPerUnitX,
10
+ viewport.pixelsPerUnitY
11
+ ].every(Number.isFinite) || viewport.width <= 0 || viewport.height <= 0 || viewport.pixelsPerUnitX <= 0 || viewport.pixelsPerUnitY <= 0) {
12
+ throw new RangeError("Viewport geometry must be finite with positive dimensions and scales.");
13
+ }
14
+ }
15
+
16
+ // node_modules/@ankhorage/grid-view/dist/features/viewport/viewportToWorld.js
17
+ function viewportToWorld(point, viewport) {
18
+ assertValidViewport(viewport);
19
+ if (![point.x, point.y].every(Number.isFinite)) {
20
+ throw new RangeError("Viewport points must be finite.");
21
+ }
22
+ return {
23
+ x: viewport.offsetX + point.x / viewport.pixelsPerUnitX,
24
+ y: viewport.offsetY + point.y / viewport.pixelsPerUnitY
25
+ };
26
+ }
27
+
28
+ // node_modules/@ankhorage/grid-view/dist/features/viewport/getVisibleWorldBounds.js
29
+ function getVisibleWorldBounds(viewport, overscanPixels = 0) {
30
+ assertValidViewport(viewport);
31
+ if (!Number.isFinite(overscanPixels) || overscanPixels < 0) {
32
+ throw new RangeError("Overscan must be a finite nonnegative number.");
33
+ }
34
+ const topLeft = viewportToWorld({ x: -overscanPixels, y: -overscanPixels }, viewport);
35
+ const bottomRight = viewportToWorld({ x: viewport.width + overscanPixels, y: viewport.height + overscanPixels }, viewport);
36
+ return {
37
+ x: topLeft.x,
38
+ y: topLeft.y,
39
+ width: bottomRight.x - topLeft.x,
40
+ height: bottomRight.y - topLeft.y
41
+ };
42
+ }
43
+
44
+ // node_modules/@ankhorage/grid-view/dist/features/items/getVisibleGridItems.js
45
+ function getVisibleGridItems(items, viewport, overscanPixels = 0) {
46
+ const bounds = getVisibleWorldBounds(viewport, overscanPixels);
47
+ return items.filter((item) => item.x <= bounds.x + bounds.width && item.x + item.width >= bounds.x && item.y <= bounds.y + bounds.height && item.y + item.height >= bounds.y);
48
+ }
49
+
50
+ // node_modules/@ankhorage/grid-view/dist/features/viewport/constrainViewport.js
51
+ function constrainViewport(viewport, constraints) {
52
+ assertValidViewport(viewport);
53
+ if (!constraints) {
54
+ return viewport;
55
+ }
56
+ validateConstraints(constraints);
57
+ return {
58
+ ...viewport,
59
+ offsetX: constrainAxis(viewport.offsetX, viewport.width / viewport.pixelsPerUnitX, constraints.world.x, constraints.world.width, constraints.overscrollX ?? 0, constraints.alignmentX ?? "center"),
60
+ offsetY: constrainAxis(viewport.offsetY, viewport.height / viewport.pixelsPerUnitY, constraints.world.y, constraints.world.height, constraints.overscrollY ?? 0, constraints.alignmentY ?? "center")
61
+ };
62
+ }
63
+ function constrainAxis(offset, visibleSize, worldStart, worldSize, overscroll, alignment) {
64
+ const minimum = worldStart - overscroll;
65
+ const maximum = worldStart + worldSize - visibleSize + overscroll;
66
+ if (minimum <= maximum) {
67
+ return Math.max(minimum, Math.min(maximum, offset));
68
+ }
69
+ return worldStart - (visibleSize - worldSize) * getAlignmentFactor(alignment);
70
+ }
71
+ function getAlignmentFactor(alignment) {
72
+ return alignment === "start" ? 0 : alignment === "end" ? 1 : 0.5;
73
+ }
74
+ function validateConstraints(constraints) {
75
+ const { world } = constraints;
76
+ if (![world.x, world.y, world.width, world.height].every(Number.isFinite) || world.width < 0 || world.height < 0 || ![constraints.overscrollX ?? 0, constraints.overscrollY ?? 0].every((value) => Number.isFinite(value) && value >= 0) || ![constraints.alignmentX, constraints.alignmentY].every((value) => value === undefined || isAlignment(value))) {
77
+ throw new RangeError("Viewport constraints must contain finite world bounds and nonnegative overscroll.");
78
+ }
79
+ }
80
+ function isAlignment(value) {
81
+ return value === "start" || value === "center" || value === "end";
82
+ }
83
+
84
+ // node_modules/@ankhorage/grid-view/dist/features/viewport/revealWorldRect.js
85
+ function revealWorldRect(viewport, rect, paddingPixels = 0, constraints) {
86
+ validateRevealInput(viewport, rect, paddingPixels);
87
+ return constrainViewport({
88
+ ...viewport,
89
+ offsetX: revealAxis(viewport.offsetX, viewport.width, viewport.pixelsPerUnitX, rect.x, rect.width, paddingPixels),
90
+ offsetY: revealAxis(viewport.offsetY, viewport.height, viewport.pixelsPerUnitY, rect.y, rect.height, paddingPixels)
91
+ }, constraints);
92
+ }
93
+ function revealAxis(offset, viewportPixels, pixelsPerUnit, rectStart, rectSize, paddingPixels) {
94
+ const visibleStart = offset + paddingPixels / pixelsPerUnit;
95
+ const visibleEnd = offset + (viewportPixels - paddingPixels) / pixelsPerUnit;
96
+ const rectEnd = rectStart + rectSize;
97
+ if (rectSize > visibleEnd - visibleStart || rectStart < visibleStart) {
98
+ return rectStart - paddingPixels / pixelsPerUnit;
99
+ }
100
+ if (rectEnd > visibleEnd) {
101
+ return rectEnd - (viewportPixels - paddingPixels) / pixelsPerUnit;
102
+ }
103
+ return offset;
104
+ }
105
+ function validateRevealInput(viewport, rect, paddingPixels) {
106
+ if (![
107
+ viewport.width,
108
+ viewport.height,
109
+ viewport.offsetX,
110
+ viewport.offsetY,
111
+ viewport.pixelsPerUnitX,
112
+ viewport.pixelsPerUnitY
113
+ ].every(Number.isFinite) || viewport.width <= 0 || viewport.height <= 0 || viewport.pixelsPerUnitX <= 0 || viewport.pixelsPerUnitY <= 0 || !Number.isFinite(paddingPixels) || paddingPixels < 0 || paddingPixels * 2 >= viewport.width || paddingPixels * 2 >= viewport.height) {
114
+ throw new RangeError("Viewport geometry must be finite and padding must leave visible space.");
115
+ }
116
+ if (![rect.x, rect.y, rect.width, rect.height].every(Number.isFinite) || rect.width < 0 || rect.height < 0) {
117
+ throw new RangeError("World rectangles must have finite nonnegative dimensions.");
118
+ }
119
+ }
120
+
121
+ // node_modules/@ankhorage/grid-view/dist/features/viewport/worldToViewport.js
122
+ function worldToViewport(point, viewport) {
123
+ assertValidViewport(viewport);
124
+ if (![point.x, point.y].every(Number.isFinite)) {
125
+ throw new RangeError("World points must be finite.");
126
+ }
127
+ return {
128
+ x: (point.x - viewport.offsetX) * viewport.pixelsPerUnitX,
129
+ y: (point.y - viewport.offsetY) * viewport.pixelsPerUnitY
130
+ };
131
+ }
132
+
133
+ // node_modules/@ankhorage/grid-view/dist/features/axes/getAxisCategoryTicks.js
134
+ function getAxisCategoryTicks(viewport, axis, categories) {
135
+ const bounds = getVisibleWorldBounds(viewport);
136
+ const start = axis === "x" ? bounds.x : bounds.y;
137
+ const end = axis === "x" ? bounds.x + bounds.width : bounds.y + bounds.height;
138
+ return categories.map((category) => validateCategory(category)).filter((category) => category.start >= start && category.start <= end).sort((left, right) => left.start - right.start || left.id.localeCompare(right.id)).map((category) => ({
139
+ position: category.start,
140
+ level: "major",
141
+ categoryId: category.id
142
+ }));
143
+ }
144
+ function validateCategory(category) {
145
+ if (!category.id || !Number.isFinite(category.start) || !Number.isFinite(category.size) || category.size <= 0) {
146
+ throw new RangeError("Axis categories require an id and finite positive size.");
147
+ }
148
+ return category;
149
+ }
150
+ // node_modules/@ankhorage/grid-view/dist/features/axes/getAxisTicks.js
151
+ function getAxisTicks(viewport, axis, specification, provider) {
152
+ const context = getTickContext(viewport, axis, specification);
153
+ if (provider) {
154
+ return getProvidedTicks(provider, context);
155
+ }
156
+ return getGeneratedTicks(context, specification);
157
+ }
158
+ function getTickContext(viewport, axis, specification) {
159
+ const bounds = getVisibleWorldBounds(viewport, specification.overscanPixels ?? 0);
160
+ return axis === "x" ? {
161
+ viewport,
162
+ axis,
163
+ start: bounds.x,
164
+ end: bounds.x + bounds.width,
165
+ pixelsPerUnit: viewport.pixelsPerUnitX
166
+ } : {
167
+ viewport,
168
+ axis,
169
+ start: bounds.y,
170
+ end: bounds.y + bounds.height,
171
+ pixelsPerUnit: viewport.pixelsPerUnitY
172
+ };
173
+ }
174
+ function getProvidedTicks(provider, { start, end, ...context }) {
175
+ return provider({ ...context, start, end }).filter((tick) => Number.isFinite(tick.position) && tick.position >= start && tick.position <= end).sort((a, b) => a.position - b.position);
176
+ }
177
+ function getGeneratedTicks({ start, end, pixelsPerUnit }, specification) {
178
+ const step = specification.mode === "fixed" ? specification.step : adaptiveStep((specification.minPixelSpacing ?? 32) / pixelsPerUnit);
179
+ if (!Number.isFinite(step) || step <= 0) {
180
+ throw new RangeError("Grid tick step must be positive and finite.");
181
+ }
182
+ const origin = specification.origin ?? 0;
183
+ const first = Math.ceil((start - origin) / step);
184
+ const last = Math.floor((end - origin) / step);
185
+ const count = Math.max(0, last - first + 1);
186
+ if (count > (specification.maxTicks ?? 2048)) {
187
+ throw new RangeError("Too many visible ticks. Increase display spacing or use adaptive ticks.");
188
+ }
189
+ const majorEvery = specification.majorEvery ?? 1;
190
+ if (!Number.isSafeInteger(majorEvery) || majorEvery < 1) {
191
+ throw new RangeError("majorEvery must be a positive integer.");
192
+ }
193
+ return Array.from({ length: count }, (_, index) => {
194
+ const tickIndex = first + index;
195
+ return {
196
+ position: origin + tickIndex * step,
197
+ level: tickIndex % majorEvery === 0 ? "major" : "minor"
198
+ };
199
+ });
200
+ }
201
+ function adaptiveStep(minimum) {
202
+ if (!Number.isFinite(minimum) || minimum <= 0) {
203
+ throw new RangeError("Minimum grid spacing must be positive and finite.");
204
+ }
205
+ const magnitude = 10 ** Math.floor(Math.log10(minimum));
206
+ const multiplier = [1, 2, 5, 10].find((candidate) => candidate * magnitude >= minimum) ?? 10;
207
+ return multiplier * magnitude;
208
+ }
209
+ export { getAxisCategoryTicks, getAxisTicks, getVisibleGridItems, revealWorldRect, worldToViewport };
@@ -0,0 +1,201 @@
1
+ 'use client';
2
+ import {
3
+ withZoraThemeScope
4
+ } from "./Accordion-42jfy1a1.js";
5
+ import {
6
+ getAxisCategoryTicks,
7
+ getAxisTicks,
8
+ worldToViewport
9
+ } from "./Accordion-e6ddpz5v.js";
10
+ import {
11
+ useZoraTheme2
12
+ } from "./Accordion-srjya6dz.js";
13
+ import {
14
+ require_cjs
15
+ } from "./Accordion-xgpzh4wq.js";
16
+ import {
17
+ __toESM
18
+ } from "./Accordion-nh0cs9hq.js";
19
+
20
+ // src/features/grid-rulers/adapters/inbound/GridLineOverlay.tsx
21
+ var import_react_native = __toESM(require_cjs(), 1);
22
+
23
+ // src/features/grid-rulers/application/projectGridRulerPosition.ts
24
+ function projectGridRulerPosition(viewport, axis, position, direction = "ltr") {
25
+ const point = worldToViewport(axis === "x" ? { x: position, y: viewport.offsetY } : { x: viewport.offsetX, y: position }, viewport);
26
+ const projectedPosition = axis === "x" ? point.x : point.y;
27
+ return axis === "x" && direction === "rtl" ? viewport.width - projectedPosition : projectedPosition;
28
+ }
29
+
30
+ // src/features/grid-rulers/application/resolveGridRulerMarks.ts
31
+ function resolveGridRulerMarks(viewport, axis, tickSource, formatLabel, direction = "ltr") {
32
+ const ticks = tickSource.kind === "categories" ? getAxisCategoryTicks(viewport, axis, tickSource.categories) : getAxisTicks(viewport, axis, tickSource.specification, tickSource.provider);
33
+ return ticks.map((tick) => {
34
+ const formattedLabel = formatLabel?.(tick);
35
+ return {
36
+ position: projectGridRulerPosition(viewport, axis, tick.position, direction),
37
+ level: tick.level,
38
+ ...tick.label !== undefined || formattedLabel !== undefined ? { label: formattedLabel ?? tick.label } : {},
39
+ ..."categoryId" in tick && typeof tick.categoryId === "string" ? { categoryId: tick.categoryId } : {}
40
+ };
41
+ });
42
+ }
43
+
44
+ // src/features/grid-rulers/adapters/inbound/GridLineOverlay.tsx
45
+ import { jsx, jsxs } from "react/jsx-runtime";
46
+ function GridLineOverlayInner({
47
+ accessibilityLabel = "Grid guides",
48
+ direction = "ltr",
49
+ guides = [],
50
+ testID,
51
+ viewport,
52
+ xTickSource,
53
+ yTickSource
54
+ }) {
55
+ const { theme } = useZoraTheme2();
56
+ const xMarks = xTickSource ? resolveGridRulerMarks(viewport, "x", xTickSource, undefined, direction) : [];
57
+ const yMarks = yTickSource ? resolveGridRulerMarks(viewport, "y", yTickSource) : [];
58
+ const visibleGuides = resolveVisibleGridGuides(guides, viewport, direction);
59
+ return /* @__PURE__ */ jsxs(import_react_native.View, {
60
+ accessible: false,
61
+ importantForAccessibility: "no",
62
+ pointerEvents: "none",
63
+ style: [styles.overlay, { height: viewport.height, width: viewport.width }],
64
+ testID,
65
+ children: [
66
+ xMarks.map((mark, index) => /* @__PURE__ */ jsx(import_react_native.View, {
67
+ importantForAccessibility: "no-hide-descendants",
68
+ style: [
69
+ styles.vertical,
70
+ {
71
+ backgroundColor: theme.semantics.neutral.divider,
72
+ left: mark.position,
73
+ opacity: mark.level === "major" ? 0.5 : 0.25
74
+ }
75
+ ],
76
+ testID: testID === undefined ? undefined : `${testID}-x-line-${index}`
77
+ }, `x-${mark.position}-${index}`)),
78
+ yMarks.map((mark, index) => /* @__PURE__ */ jsx(import_react_native.View, {
79
+ importantForAccessibility: "no-hide-descendants",
80
+ style: [
81
+ styles.horizontal,
82
+ {
83
+ backgroundColor: theme.semantics.neutral.divider,
84
+ opacity: mark.level === "major" ? 0.5 : 0.25,
85
+ top: mark.position
86
+ }
87
+ ],
88
+ testID: testID === undefined ? undefined : `${testID}-y-line-${index}`
89
+ }, `y-${mark.position}-${index}`)),
90
+ visibleGuides.map(({ guide, position }) => /* @__PURE__ */ jsx(import_react_native.View, {
91
+ accessibilityLabel: createGuideAccessibilityLabel(accessibilityLabel, guide),
92
+ accessibilityRole: "text",
93
+ accessible: true,
94
+ style: [
95
+ guide.axis === "x" ? styles.vertical : styles.horizontal,
96
+ guide.axis === "x" ? {
97
+ backgroundColor: theme.colors.primary,
98
+ left: position
99
+ } : {
100
+ backgroundColor: theme.colors.primary,
101
+ top: position
102
+ }
103
+ ],
104
+ testID: testID === undefined ? undefined : `${testID}-guide-${guide.id}`
105
+ }, guide.id))
106
+ ]
107
+ });
108
+ }
109
+ var styles = import_react_native.StyleSheet.create({
110
+ horizontal: { height: 1, left: 0, position: "absolute", right: 0 },
111
+ overlay: { overflow: "hidden", position: "absolute" },
112
+ vertical: { bottom: 0, position: "absolute", top: 0, width: 1 }
113
+ });
114
+ function resolveVisibleGridGuides(guides, viewport, direction) {
115
+ return guides.flatMap((guide) => {
116
+ if (!Number.isFinite(guide.position))
117
+ return [];
118
+ const position = projectGridRulerPosition(viewport, guide.axis, guide.position, direction);
119
+ const size = guide.axis === "x" ? viewport.width : viewport.height;
120
+ return Number.isFinite(position) && position >= 0 && position <= size ? [{ guide, position }] : [];
121
+ });
122
+ }
123
+ function createGuideAccessibilityLabel(overlayLabel, guide) {
124
+ return `${overlayLabel}: ${guide.label ?? `Guide ${guide.id}`} at ${guide.position}`;
125
+ }
126
+ var GridLineOverlay2 = withZoraThemeScope(GridLineOverlayInner);
127
+
128
+ // src/features/grid-rulers/adapters/inbound/GridRuler.tsx
129
+ var import_react_native2 = __toESM(require_cjs(), 1);
130
+ import React from "react";
131
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
132
+ function GridRulerInner({
133
+ accessibilityLabel,
134
+ axis,
135
+ direction = "ltr",
136
+ formatLabel,
137
+ offset = 0,
138
+ position = "start",
139
+ testID,
140
+ thickness = 24,
141
+ tickSource,
142
+ viewport
143
+ }) {
144
+ const { theme } = useZoraTheme2();
145
+ const marks = resolveGridRulerMarks(viewport, axis, tickSource, formatLabel, direction);
146
+ const horizontal = axis === "x";
147
+ const size = horizontal ? viewport.width : viewport.height;
148
+ const label = accessibilityLabel ?? `${horizontal ? "Horizontal" : "Vertical"} ruler`;
149
+ return /* @__PURE__ */ jsx2(import_react_native2.View, {
150
+ accessibilityLabel: label,
151
+ accessible: true,
152
+ pointerEvents: "none",
153
+ style: [
154
+ styles2.ruler,
155
+ horizontal ? { height: thickness, width: size } : { height: size, width: thickness },
156
+ position === "start" ? horizontal ? { top: offset } : { left: offset } : horizontal ? { bottom: offset } : { right: offset }
157
+ ],
158
+ testID,
159
+ children: marks.map((mark, index) => {
160
+ const coordinate = mark.position;
161
+ const tickStyle = horizontal ? {
162
+ height: mark.level === "major" ? thickness : thickness / 2,
163
+ left: coordinate,
164
+ top: 0,
165
+ width: 1
166
+ } : {
167
+ height: 1,
168
+ left: 0,
169
+ top: coordinate,
170
+ width: mark.level === "major" ? thickness : thickness / 2
171
+ };
172
+ return /* @__PURE__ */ jsxs2(React.Fragment, {
173
+ children: [
174
+ /* @__PURE__ */ jsx2(import_react_native2.View, {
175
+ importantForAccessibility: "no-hide-descendants",
176
+ style: [styles2.tick, { backgroundColor: theme.semantics.neutral.divider }, tickStyle],
177
+ testID: testID === undefined ? undefined : `${testID}-tick-${index}`
178
+ }),
179
+ mark.label !== undefined ? /* @__PURE__ */ jsx2(import_react_native2.Text, {
180
+ importantForAccessibility: "no-hide-descendants",
181
+ numberOfLines: 1,
182
+ style: [
183
+ styles2.label,
184
+ { color: theme.semantics.neutral.textMuted },
185
+ horizontal ? { left: coordinate + 3, top: 2 } : { left: 3, top: coordinate + 2 }
186
+ ],
187
+ testID: testID === undefined ? undefined : `${testID}-label-${index}`,
188
+ children: mark.label
189
+ }) : null
190
+ ]
191
+ }, `${mark.position}-${index}`);
192
+ })
193
+ });
194
+ }
195
+ var styles2 = import_react_native2.StyleSheet.create({
196
+ label: { fontSize: 10, position: "absolute" },
197
+ ruler: { overflow: "hidden", position: "absolute" },
198
+ tick: { position: "absolute" }
199
+ });
200
+ var GridRuler2 = withZoraThemeScope(GridRulerInner);
201
+ export { GridLineOverlay2, GridRuler2 };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  Button2
4
- } from "./Accordion-q09fjenx.js";
4
+ } from "./Accordion-6rrqpb2h.js";
5
5
  import {
6
6
  withZoraThemeScope
7
7
  } from "./Accordion-42jfy1a1.js";
@@ -9,28 +9,28 @@ import {
9
9
  View2,
10
10
  Divider2,
11
11
  ScrollView2
12
- } from "./Accordion-f0jsd9f9.js";
12
+ } from "./Accordion-7tjz25jh.js";
13
13
  import {
14
14
  FormActions2,
15
15
  FormError2,
16
16
  hasRequiredRule,
17
17
  useFormController
18
- } from "./Accordion-ndf3jqhb.js";
18
+ } from "./Accordion-40tenzcg.js";
19
19
  import {
20
20
  Text3
21
- } from "./Accordion-afmybp67.js";
21
+ } from "./Accordion-9w8wg9mf.js";
22
22
  import {
23
23
  Field2
24
- } from "./Accordion-fkc50r9z.js";
24
+ } from "./Accordion-kjtcbe09.js";
25
25
  import {
26
26
  TextInput2
27
- } from "./Accordion-tmrjy46p.js";
27
+ } from "./Accordion-nssr5gep.js";
28
28
  import {
29
29
  KeyboardAvoidingView2
30
- } from "./Accordion-n9c5tsqw.js";
30
+ } from "./Accordion-qn398m1x.js";
31
31
  import {
32
32
  Surface2
33
- } from "./Accordion-8jxc7tx9.js";
33
+ } from "./Accordion-w6qedeba.js";
34
34
  import {
35
35
  require_cjs
36
36
  } from "./Accordion-xgpzh4wq.js";
@@ -8,20 +8,20 @@ import {
8
8
  } from "./Accordion-6wrr910w.js";
9
9
  import {
10
10
  IconButton2
11
- } from "./Accordion-q09fjenx.js";
11
+ } from "./Accordion-6rrqpb2h.js";
12
12
  import {
13
13
  withZoraThemeScope
14
14
  } from "./Accordion-42jfy1a1.js";
15
15
  import {
16
16
  View2
17
- } from "./Accordion-f0jsd9f9.js";
17
+ } from "./Accordion-7tjz25jh.js";
18
18
  import {
19
19
  PopoverMenu2
20
- } from "./Accordion-t0hbez90.js";
20
+ } from "./Accordion-h7zsx9eg.js";
21
21
  import {
22
22
  Heading2,
23
23
  Text3
24
- } from "./Accordion-afmybp67.js";
24
+ } from "./Accordion-9w8wg9mf.js";
25
25
  import {
26
26
  useZoraTheme2
27
27
  } from "./Accordion-srjya6dz.js";
@@ -14,27 +14,27 @@ import {
14
14
  import {
15
15
  View2,
16
16
  Divider2
17
- } from "./Accordion-f0jsd9f9.js";
17
+ } from "./Accordion-7tjz25jh.js";
18
18
  import {
19
19
  Heading2,
20
20
  Text3
21
- } from "./Accordion-afmybp67.js";
21
+ } from "./Accordion-9w8wg9mf.js";
22
22
  import {
23
23
  resolveBadgeRecipe,
24
24
  Badge2
25
- } from "./Accordion-qkh5yy94.js";
25
+ } from "./Accordion-7kq500r1.js";
26
26
  import {
27
27
  Icon2
28
- } from "./Accordion-bb8y34wh.js";
28
+ } from "./Accordion-b96evb46.js";
29
29
  import {
30
30
  Avatar2
31
- } from "./Accordion-wgejzesa.js";
31
+ } from "./Accordion-61ntvh14.js";
32
32
  import {
33
33
  Button2
34
- } from "./Accordion-q09fjenx.js";
34
+ } from "./Accordion-6rrqpb2h.js";
35
35
  import {
36
36
  Image2
37
- } from "./Accordion-mej71qnw.js";
37
+ } from "./Accordion-a4cma5b6.js";
38
38
  import {
39
39
  resolveIconSize
40
40
  } from "./Accordion-961ncx4e.js";
@@ -1,16 +1,16 @@
1
1
  'use client';
2
2
  import {
3
3
  Button2
4
- } from "./Accordion-q09fjenx.js";
4
+ } from "./Accordion-6rrqpb2h.js";
5
5
  import {
6
6
  withZoraThemeScope
7
7
  } from "./Accordion-42jfy1a1.js";
8
8
  import {
9
9
  View2
10
- } from "./Accordion-f0jsd9f9.js";
10
+ } from "./Accordion-7tjz25jh.js";
11
11
  import {
12
12
  Card2
13
- } from "./Accordion-xvzrx6bh.js";
13
+ } from "./Accordion-fjxcn6g9.js";
14
14
 
15
15
  // src/features/empty-state/adapters/inbound/EmptyState.tsx
16
16
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./Accordion-42jfy1a1.js";
5
5
  import {
6
6
  View2
7
- } from "./Accordion-f0jsd9f9.js";
7
+ } from "./Accordion-7tjz25jh.js";
8
8
  import {
9
9
  require_cjs
10
10
  } from "./Accordion-xgpzh4wq.js";
@@ -25,10 +25,10 @@ import {
25
25
  } from "./Accordion-42jfy1a1.js";
26
26
  import {
27
27
  Icon2
28
- } from "./Accordion-bb8y34wh.js";
28
+ } from "./Accordion-b96evb46.js";
29
29
  import {
30
30
  View2
31
- } from "./Accordion-f0jsd9f9.js";
31
+ } from "./Accordion-7tjz25jh.js";
32
32
  import {
33
33
  resolveIconSize
34
34
  } from "./Accordion-961ncx4e.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./Accordion-42jfy1a1.js";
8
8
  import {
9
9
  View2
10
- } from "./Accordion-f0jsd9f9.js";
10
+ } from "./Accordion-7tjz25jh.js";
11
11
  import {
12
12
  useZoraTheme2
13
13
  } from "./Accordion-srjya6dz.js";
@@ -7,10 +7,10 @@ import {
7
7
  } from "./Accordion-42jfy1a1.js";
8
8
  import {
9
9
  View2
10
- } from "./Accordion-f0jsd9f9.js";
10
+ } from "./Accordion-7tjz25jh.js";
11
11
  import {
12
12
  Text3
13
- } from "./Accordion-afmybp67.js";
13
+ } from "./Accordion-9w8wg9mf.js";
14
14
 
15
15
  // src/features/form/field/adapters/inbound/Field.tsx
16
16
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./Accordion-8f0nekwe.js";
8
8
  import {
9
9
  IconButton2
10
- } from "./Accordion-q09fjenx.js";
10
+ } from "./Accordion-6rrqpb2h.js";
11
11
  import {
12
12
  withZoraThemeScope
13
13
  } from "./Accordion-42jfy1a1.js";
@@ -4,10 +4,10 @@ import {
4
4
  } from "./Accordion-42jfy1a1.js";
5
5
  import {
6
6
  View2
7
- } from "./Accordion-f0jsd9f9.js";
7
+ } from "./Accordion-7tjz25jh.js";
8
8
  import {
9
9
  Text3
10
- } from "./Accordion-afmybp67.js";
10
+ } from "./Accordion-9w8wg9mf.js";
11
11
  import {
12
12
  useZoraTheme2
13
13
  } from "./Accordion-srjya6dz.js";