@ankhorage/zora 25.2.1 → 25.4.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.
- package/CHANGELOG.md +12 -0
- package/README.md +2 -1
- package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.d.ts +5 -0
- package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.d.ts.map +1 -0
- package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.js +69 -0
- package/dist/features/grid-rulers/adapters/inbound/GridLineOverlay.js.map +1 -0
- package/dist/features/grid-rulers/adapters/inbound/GridRuler.d.ts +5 -0
- package/dist/features/grid-rulers/adapters/inbound/GridRuler.d.ts.map +1 -0
- package/dist/features/grid-rulers/adapters/inbound/GridRuler.js +59 -0
- package/dist/features/grid-rulers/adapters/inbound/GridRuler.js.map +1 -0
- package/dist/features/grid-rulers/application/projectGridRulerPosition.d.ts +4 -0
- package/dist/features/grid-rulers/application/projectGridRulerPosition.d.ts.map +1 -0
- package/dist/features/grid-rulers/application/projectGridRulerPosition.js +10 -0
- package/dist/features/grid-rulers/application/projectGridRulerPosition.js.map +1 -0
- package/dist/features/grid-rulers/application/resolveGridRulerMarks.d.ts +5 -0
- package/dist/features/grid-rulers/application/resolveGridRulerMarks.d.ts.map +1 -0
- package/dist/features/grid-rulers/application/resolveGridRulerMarks.js +22 -0
- package/dist/features/grid-rulers/application/resolveGridRulerMarks.js.map +1 -0
- package/dist/features/grid-rulers/meta.d.ts +21 -0
- package/dist/features/grid-rulers/meta.d.ts.map +1 -0
- package/dist/features/grid-rulers/meta.js +22 -0
- package/dist/features/grid-rulers/meta.js.map +1 -0
- package/dist/features/grid-rulers/public.d.ts +5 -0
- package/dist/features/grid-rulers/public.d.ts.map +1 -0
- package/dist/features/grid-rulers/public.js +4 -0
- package/dist/features/grid-rulers/public.js.map +1 -0
- package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts.map +1 -1
- package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +5 -0
- package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
- package/dist/features/registry/componentMeta.d.ts.map +1 -1
- package/dist/features/registry/componentMeta.js +5 -0
- package/dist/features/registry/componentMeta.js.map +1 -1
- package/dist/features/spatial-grid/adapters/inbound/SpatialGrid.d.ts +5 -0
- package/dist/features/spatial-grid/adapters/inbound/SpatialGrid.d.ts.map +1 -0
- package/dist/features/spatial-grid/adapters/inbound/SpatialGrid.js +38 -0
- package/dist/features/spatial-grid/adapters/inbound/SpatialGrid.js.map +1 -0
- package/dist/features/spatial-grid/application/sortSpatialGridItems.d.ts +4 -0
- package/dist/features/spatial-grid/application/sortSpatialGridItems.d.ts.map +1 -0
- package/dist/features/spatial-grid/application/sortSpatialGridItems.js +8 -0
- package/dist/features/spatial-grid/application/sortSpatialGridItems.js.map +1 -0
- package/dist/features/spatial-grid/meta.d.ts +11 -0
- package/dist/features/spatial-grid/meta.d.ts.map +1 -0
- package/dist/features/spatial-grid/meta.js +11 -0
- package/dist/features/spatial-grid/meta.js.map +1 -0
- package/dist/features/spatial-grid/public.d.ts +3 -0
- package/dist/features/spatial-grid/public.d.ts.map +1 -0
- package/dist/features/spatial-grid/public.js +2 -0
- package/dist/features/spatial-grid/public.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/grid-rulers.d.ts +48 -0
- package/dist/types/grid-rulers.d.ts.map +1 -0
- package/dist/types/grid-rulers.js +2 -0
- package/dist/types/grid-rulers.js.map +1 -0
- package/dist/types/spatial-grid.d.ts +41 -0
- package/dist/types/spatial-grid.d.ts.map +1 -0
- package/dist/types/spatial-grid.js +2 -0
- package/dist/types/spatial-grid.js.map +1 -0
- package/package.json +3 -3
- package/src/features/grid-rulers/adapters/inbound/GridLineOverlay.tsx +123 -0
- package/src/features/grid-rulers/adapters/inbound/GridRuler.tsx +96 -0
- package/src/features/grid-rulers/adapters/inbound/GridRulers.test.tsx +162 -0
- package/src/features/grid-rulers/application/projectGridRulerPosition.ts +19 -0
- package/src/features/grid-rulers/application/resolveGridRulerMarks.test.ts +90 -0
- package/src/features/grid-rulers/application/resolveGridRulerMarks.ts +39 -0
- package/src/features/grid-rulers/meta.ts +26 -0
- package/src/features/grid-rulers/public.ts +10 -0
- package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +5 -0
- package/src/features/registry/componentMeta.ts +5 -0
- package/src/features/spatial-grid/adapters/inbound/SpatialGrid.test.tsx +248 -0
- package/src/features/spatial-grid/adapters/inbound/SpatialGrid.tsx +112 -0
- package/src/features/spatial-grid/application/sortSpatialGridItems.test.ts +42 -0
- package/src/features/spatial-grid/application/sortSpatialGridItems.ts +14 -0
- package/src/features/spatial-grid/meta.ts +12 -0
- package/src/features/spatial-grid/public.ts +6 -0
- package/src/index.ts +14 -0
- package/src/types/grid-rulers.ts +59 -0
- package/src/types/spatial-grid.ts +44 -0
- package/web-dist/chunks/{Accordion-mh67wb34.js → Accordion-090y18cv.js} +2 -2
- package/web-dist/chunks/{Accordion-7yazfxr6.js → Accordion-3d4wkzg7.js} +4 -4
- package/web-dist/chunks/{Accordion-ndf3jqhb.js → Accordion-40tenzcg.js} +3 -3
- package/web-dist/chunks/{Accordion-cbfa2b8j.js → Accordion-4s68t3h7.js} +5 -5
- package/web-dist/chunks/{Accordion-7asr7vb0.js → Accordion-4zqd7twp.js} +4 -4
- package/web-dist/chunks/{Accordion-sdcfa14w.js → Accordion-5g05kfmx.js} +3 -3
- package/web-dist/chunks/Accordion-60wn9xn9.js +201 -0
- package/web-dist/chunks/{Accordion-wgejzesa.js → Accordion-61ntvh14.js} +3 -3
- package/web-dist/chunks/{Accordion-q09fjenx.js → Accordion-6rrqpb2h.js} +1 -1
- package/web-dist/chunks/{Accordion-mej71qnw.js → Accordion-a4cma5b6.js} +2 -2
- package/web-dist/chunks/{Accordion-9dqkq9am.js → Accordion-ejx5gcf9.js} +8 -8
- package/web-dist/chunks/{Accordion-pe66x9cv.js → Accordion-ewf1zen9.js} +4 -4
- package/web-dist/chunks/{Accordion-xvzrx6bh.js → Accordion-fjxcn6g9.js} +7 -7
- package/web-dist/chunks/{Accordion-teg40mpt.js → Accordion-fmzxat3v.js} +3 -3
- package/web-dist/chunks/{Accordion-016wvwpg.js → Accordion-h3y8qev2.js} +1 -1
- package/web-dist/chunks/{Accordion-t0hbez90.js → Accordion-h7zsx9eg.js} +2 -2
- package/web-dist/chunks/{Accordion-ch4q5w0z.js → Accordion-jnc315h7.js} +1 -1
- package/web-dist/chunks/{Accordion-fkc50r9z.js → Accordion-kjtcbe09.js} +2 -2
- package/web-dist/chunks/{Accordion-tmrjy46p.js → Accordion-nssr5gep.js} +1 -1
- package/web-dist/chunks/{Accordion-54k0ncs3.js → Accordion-nxsda1my.js} +5 -73
- package/web-dist/chunks/{Accordion-ntndskbj.js → Accordion-pvj5npzc.js} +2 -2
- package/web-dist/chunks/{Accordion-ggwxv6k3.js → Accordion-r1cj2w9e.js} +2 -2
- package/web-dist/chunks/Accordion-r2w86rwv.js +209 -0
- package/web-dist/chunks/{Accordion-kkr7xfh2.js → Accordion-s3d6g59s.js} +4 -4
- package/web-dist/chunks/{Accordion-5ga4549x.js → Accordion-sp4k08kw.js} +3 -3
- package/web-dist/chunks/{Accordion-1p9r2ack.js → Accordion-sy1cc5my.js} +2 -2
- package/web-dist/chunks/{Accordion-hmhdwvqp.js → Accordion-tqpsmdrk.js} +3 -3
- package/web-dist/chunks/{Accordion-fzkrrc4z.js → Accordion-v0grdh6q.js} +1 -1
- package/web-dist/chunks/{Accordion-ajawc6nq.js → Accordion-zt9yghdz.js} +3 -3
- package/web-dist/components/accordion/Accordion.js +4 -4
- package/web-dist/components/accordion-item/AccordionItem.js +4 -4
- package/web-dist/components/app-bar/AppBar.js +6 -6
- package/web-dist/components/app-header/AppHeader.js +6 -6
- package/web-dist/components/app-shell/AppShell.js +1 -1
- package/web-dist/components/auth-screen/AuthScreen.js +9 -9
- package/web-dist/components/avatar/Avatar.js +4 -4
- package/web-dist/components/avatar-group/AvatarGroup.js +4 -4
- package/web-dist/components/badge/Badge.js +1 -1
- package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +9 -9
- package/web-dist/components/bottom-sheet/BottomSheet.js +2 -2
- package/web-dist/components/bottom-sheet-flat-list/BottomSheetFlatList.js +2 -2
- package/web-dist/components/bottom-sheet-scroll-view/BottomSheetScrollView.js +2 -2
- package/web-dist/components/bottom-sheet-section-list/BottomSheetSectionList.js +2 -2
- package/web-dist/components/bottom-sheet-view/BottomSheetView.js +2 -2
- package/web-dist/components/bottom-sheet-virtualized-list/BottomSheetVirtualizedList.js +2 -2
- package/web-dist/components/breadcrumbs/Breadcrumbs.js +4 -4
- package/web-dist/components/button/Button.js +2 -2
- package/web-dist/components/button-group/ButtonGroup.js +2 -2
- package/web-dist/components/camera-permission-view/CameraPermissionView.js +9 -9
- package/web-dist/components/card/Card.js +8 -8
- package/web-dist/components/card-back/CardBack.js +1 -1
- package/web-dist/components/card-hand/CardHand.js +1 -1
- package/web-dist/components/chat-list-item/ChatListItem.js +6 -6
- package/web-dist/components/checkbox/Checkbox.js +3 -3
- package/web-dist/components/checkbox-group/CheckboxGroup.js +3 -3
- package/web-dist/components/chess-board/ChessBoard.js +1 -1
- package/web-dist/components/chip/Chip.js +4 -4
- package/web-dist/components/chip-group/ChipGroup.js +4 -4
- package/web-dist/components/collection-editor/CollectionEditor.js +8 -8
- package/web-dist/components/content-rail/ContentRail.js +3 -3
- package/web-dist/components/data-table/DataTable.js +13 -13
- package/web-dist/components/date-picker/DatePicker.js +4 -4
- package/web-dist/components/dialog/Dialog.js +3 -3
- package/web-dist/components/divider/Divider.js +1 -1
- package/web-dist/components/empty-state/EmptyState.js +9 -9
- package/web-dist/components/explorer/Explorer.js +6 -6
- package/web-dist/components/field/Field.js +3 -3
- package/web-dist/components/file-explorer/FileExplorer.js +6 -6
- package/web-dist/components/flat-list/FlatList.js +4 -4
- package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +9 -9
- package/web-dist/components/form/Form.js +5 -5
- package/web-dist/components/form-actions/FormActions.js +5 -5
- package/web-dist/components/form-error/FormError.js +5 -5
- package/web-dist/components/game/Game.js +2 -2
- package/web-dist/components/game-entity/GameEntity.js +2 -2
- package/web-dist/components/game-field/GameField.js +2 -2
- package/web-dist/components/game-input-zone/GameInputZone.js +2 -2
- package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +2 -2
- package/web-dist/components/game-overlay/GameOverlay.js +2 -2
- package/web-dist/components/gradient/Gradient.js +2 -2
- package/web-dist/components/gradient-renderer-provider/GradientRendererProvider.js +2 -2
- package/web-dist/components/grid/Grid.js +1 -1
- package/web-dist/components/grid-line-overlay/GridLineOverlay.d.ts +4 -0
- package/web-dist/components/grid-line-overlay/GridLineOverlay.js +13 -0
- package/web-dist/components/grid-line-overlay/index.d.ts +1 -0
- package/web-dist/components/grid-line-overlay/index.js +2 -0
- package/web-dist/components/grid-ruler/GridRuler.d.ts +4 -0
- package/web-dist/components/grid-ruler/GridRuler.js +13 -0
- package/web-dist/components/grid-ruler/index.d.ts +1 -0
- package/web-dist/components/grid-ruler/index.js +2 -0
- package/web-dist/components/grid-view/GridView.js +1 -1
- package/web-dist/components/heading/Heading.js +1 -1
- package/web-dist/components/hero/Hero.js +8 -8
- package/web-dist/components/icon/Icon.js +1 -1
- package/web-dist/components/icon-button/IconButton.js +2 -2
- package/web-dist/components/image/Image.js +3 -3
- package/web-dist/components/keyboard-avoiding-view/KeyboardAvoidingView.js +1 -1
- package/web-dist/components/list/List.js +4 -4
- package/web-dist/components/list-item/ListItem.js +4 -4
- package/web-dist/components/list-section/ListSection.js +4 -4
- package/web-dist/components/media-card/MediaCard.js +8 -8
- package/web-dist/components/media-explorer/MediaExplorer.js +6 -6
- package/web-dist/components/message-bubble/MessageBubble.js +6 -6
- package/web-dist/components/metric-card/MetricCard.js +8 -8
- package/web-dist/components/missing-element/MissingElement.js +3 -3
- package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +9 -9
- package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +9 -9
- package/web-dist/components/opening-book/OpeningBook.js +1 -1
- package/web-dist/components/otp-form/OtpForm.js +9 -9
- package/web-dist/components/pagination/Pagination.js +3 -3
- package/web-dist/components/palette-item/PaletteItem.js +8 -8
- package/web-dist/components/playing-card/PlayingCard.js +1 -1
- package/web-dist/components/poker-training-table/PokerTrainingTable.js +1 -1
- package/web-dist/components/popover-menu/PopoverMenu.js +3 -3
- package/web-dist/components/post-card/PostCard.js +8 -8
- package/web-dist/components/product-card/ProductCard.js +8 -8
- package/web-dist/components/progress/Progress.js +3 -3
- package/web-dist/components/progress-ring/ProgressRing.js +3 -3
- package/web-dist/components/radio/Radio.js +4 -4
- package/web-dist/components/radio-group/RadioGroup.js +4 -4
- package/web-dist/components/rating/Rating.js +2 -2
- package/web-dist/components/reader/Reader.js +9 -9
- package/web-dist/components/scan-overlay/ScanOverlay.js +9 -9
- package/web-dist/components/screen/Screen.js +1 -1
- package/web-dist/components/screen-section/ScreenSection.js +3 -3
- package/web-dist/components/scroll-view/ScrollView.js +1 -1
- package/web-dist/components/search-input/SearchInput.js +3 -3
- package/web-dist/components/section-header/SectionHeader.js +3 -3
- package/web-dist/components/section-list/SectionList.js +4 -4
- package/web-dist/components/select/Select.js +3 -3
- package/web-dist/components/selectable-item/SelectableItem.js +1 -1
- package/web-dist/components/selection-provider/SelectionProvider.js +1 -1
- package/web-dist/components/sign-in-form/SignInForm.js +9 -9
- package/web-dist/components/sign-up-form/SignUpForm.js +9 -9
- package/web-dist/components/skeleton/Skeleton.js +11 -11
- package/web-dist/components/skeleton-card/SkeletonCard.js +11 -11
- package/web-dist/components/skeleton-list/SkeletonList.js +11 -11
- package/web-dist/components/skeleton-text/SkeletonText.js +11 -11
- package/web-dist/components/spatial-grid/SpatialGrid.d.ts +3 -0
- package/web-dist/components/spatial-grid/SpatialGrid.js +102 -0
- package/web-dist/components/spatial-grid/index.d.ts +1 -0
- package/web-dist/components/spatial-grid/index.js +2 -0
- package/web-dist/components/surface/Surface.js +1 -1
- package/web-dist/components/tab/Tab.js +1 -1
- package/web-dist/components/tab-list/TabList.js +1 -1
- package/web-dist/components/tab-panel/TabPanel.js +1 -1
- package/web-dist/components/tabletop-table/TabletopTable.js +1 -1
- package/web-dist/components/tabs/Tabs.js +1 -1
- package/web-dist/components/text/Text.js +1 -1
- package/web-dist/components/text-input/TextInput.js +3 -3
- package/web-dist/components/tile-grid/TileGrid.js +1 -1
- package/web-dist/components/time-picker/TimePicker.js +4 -4
- package/web-dist/components/timeline/Timeline.js +3 -3
- package/web-dist/components/toast/Toast.js +1 -1
- package/web-dist/components/toast-provider/ToastProvider.js +1 -1
- package/web-dist/components/toolbar/Toolbar.js +8 -8
- package/web-dist/components/tree-item/TreeItem.js +7 -7
- package/web-dist/components/uploader/Uploader.js +11 -11
- package/web-dist/components/view/View.js +1 -1
- package/web-dist/manifest.json +555 -493
- package/web-dist/runtime/ZoraProvider.js +3 -3
- /package/web-dist/chunks/{Accordion-qkh5yy94.js → Accordion-7kq500r1.js} +0 -0
- /package/web-dist/chunks/{Accordion-f0jsd9f9.js → Accordion-7tjz25jh.js} +0 -0
- /package/web-dist/chunks/{Accordion-3m3572sa.js → Accordion-88t8fgxv.js} +0 -0
- /package/web-dist/chunks/{Accordion-afmybp67.js → Accordion-9w8wg9mf.js} +0 -0
- /package/web-dist/chunks/{Accordion-bb8y34wh.js → Accordion-b96evb46.js} +0 -0
- /package/web-dist/chunks/{Accordion-nmpmdrba.js → Accordion-dbf93gxh.js} +0 -0
- /package/web-dist/chunks/{Accordion-x12fca21.js → Accordion-fhnazn3n.js} +0 -0
- /package/web-dist/chunks/{Accordion-n9c5tsqw.js → Accordion-qn398m1x.js} +0 -0
- /package/web-dist/chunks/{Accordion-2rgexkze.js → Accordion-rsvphbe4.js} +0 -0
- /package/web-dist/chunks/{Accordion-c69374jn.js → Accordion-sw7ep29d.js} +0 -0
- /package/web-dist/chunks/{Accordion-8jxc7tx9.js → Accordion-w6qedeba.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 25.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1a3af1d: Add a virtualized SpatialGrid for accessible free-placement boards.
|
|
8
|
+
|
|
9
|
+
## 25.3.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 380050f: Add passive, viewport-projected rulers, grid lines, and accessible world-space guides.
|
|
14
|
+
|
|
3
15
|
## 25.2.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/zora
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.
|
|
9
9
|
|
|
@@ -68,6 +68,7 @@ This package contains 6 additional examples. See the generated documentation for
|
|
|
68
68
|
- [readChessPieces sequence](././paradox/diagrams/sequences/read-chess-pieces.mmd)
|
|
69
69
|
- [resolveAvatarInitials sequence](././paradox/diagrams/sequences/resolve-avatar-initials.mmd)
|
|
70
70
|
- [resolveExplorerSelection sequence](././paradox/diagrams/sequences/resolve-explorer-selection.mmd)
|
|
71
|
+
- [resolveGridRulerMarks sequence](././paradox/diagrams/sequences/resolve-grid-ruler-marks.mmd)
|
|
71
72
|
- [resolveOAuthProviderIcon sequence](././paradox/diagrams/sequences/resolve-oauth-provider-icon.mmd)
|
|
72
73
|
- [resolveOAuthProviderLabel sequence](././paradox/diagrams/sequences/resolve-oauth-provider-label.mmd)
|
|
73
74
|
- [SelectionProvider sequence](././paradox/diagrams/sequences/selection-provider.mmd)
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { GridLineOverlayProps } from '../../../../types/grid-rulers';
|
|
3
|
+
/*** A reusable passive world-space grid and guide overlay. */
|
|
4
|
+
export declare const GridLineOverlay: (props: GridLineOverlayProps) => React.ReactElement | null;
|
|
5
|
+
//# sourceMappingURL=GridLineOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLineOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/features/grid-rulers/adapters/inbound/GridLineOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAsH1E,8DAA8D;AAC9D,eAAO,MAAM,eAAe,4DAA2C,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';
|
|
4
|
+
import { useZoraTheme } from '../../../theme/composition/useZoraTheme';
|
|
5
|
+
import { projectGridRulerPosition } from '../../application/projectGridRulerPosition';
|
|
6
|
+
import { resolveGridRulerMarks } from '../../application/resolveGridRulerMarks';
|
|
7
|
+
/*** Renders visible world-grid lines and explicit guides without owning viewport interaction. */
|
|
8
|
+
function GridLineOverlayInner({ accessibilityLabel = 'Grid guides', direction = 'ltr', guides = [], testID, viewport, xTickSource, yTickSource, }) {
|
|
9
|
+
const { theme } = useZoraTheme();
|
|
10
|
+
const xMarks = xTickSource
|
|
11
|
+
? resolveGridRulerMarks(viewport, 'x', xTickSource, undefined, direction)
|
|
12
|
+
: [];
|
|
13
|
+
const yMarks = yTickSource ? resolveGridRulerMarks(viewport, 'y', yTickSource) : [];
|
|
14
|
+
const visibleGuides = resolveVisibleGridGuides(guides, viewport, direction);
|
|
15
|
+
return (<View accessible={false} importantForAccessibility="no" pointerEvents="none" style={[styles.overlay, { height: viewport.height, width: viewport.width }]} testID={testID}>
|
|
16
|
+
{xMarks.map((mark, index) => (<View key={`x-${mark.position}-${index}`} importantForAccessibility="no-hide-descendants" style={[
|
|
17
|
+
styles.vertical,
|
|
18
|
+
{
|
|
19
|
+
backgroundColor: theme.semantics.neutral.divider,
|
|
20
|
+
left: mark.position,
|
|
21
|
+
opacity: mark.level === 'major' ? 0.5 : 0.25,
|
|
22
|
+
},
|
|
23
|
+
]} testID={testID === undefined ? undefined : `${testID}-x-line-${index}`}/>))}
|
|
24
|
+
{yMarks.map((mark, index) => (<View key={`y-${mark.position}-${index}`} importantForAccessibility="no-hide-descendants" style={[
|
|
25
|
+
styles.horizontal,
|
|
26
|
+
{
|
|
27
|
+
backgroundColor: theme.semantics.neutral.divider,
|
|
28
|
+
opacity: mark.level === 'major' ? 0.5 : 0.25,
|
|
29
|
+
top: mark.position,
|
|
30
|
+
},
|
|
31
|
+
]} testID={testID === undefined ? undefined : `${testID}-y-line-${index}`}/>))}
|
|
32
|
+
{visibleGuides.map(({ guide, position }) => (<View key={guide.id} accessibilityLabel={createGuideAccessibilityLabel(accessibilityLabel, guide)} accessibilityRole="text" accessible style={[
|
|
33
|
+
guide.axis === 'x' ? styles.vertical : styles.horizontal,
|
|
34
|
+
guide.axis === 'x'
|
|
35
|
+
? {
|
|
36
|
+
backgroundColor: theme.colors.primary,
|
|
37
|
+
left: position,
|
|
38
|
+
}
|
|
39
|
+
: {
|
|
40
|
+
backgroundColor: theme.colors.primary,
|
|
41
|
+
top: position,
|
|
42
|
+
},
|
|
43
|
+
]} testID={testID === undefined ? undefined : `${testID}-guide-${guide.id}`}/>))}
|
|
44
|
+
</View>);
|
|
45
|
+
}
|
|
46
|
+
const styles = StyleSheet.create({
|
|
47
|
+
horizontal: { height: 1, left: 0, position: 'absolute', right: 0 },
|
|
48
|
+
overlay: { overflow: 'hidden', position: 'absolute' },
|
|
49
|
+
vertical: { bottom: 0, position: 'absolute', top: 0, width: 1 },
|
|
50
|
+
});
|
|
51
|
+
/*** Selects finite guides whose shared world-to-visual projection falls inside the viewport. */
|
|
52
|
+
function resolveVisibleGridGuides(guides, viewport, direction) {
|
|
53
|
+
return guides.flatMap((guide) => {
|
|
54
|
+
if (!Number.isFinite(guide.position))
|
|
55
|
+
return [];
|
|
56
|
+
const position = projectGridRulerPosition(viewport, guide.axis, guide.position, direction);
|
|
57
|
+
const size = guide.axis === 'x' ? viewport.width : viewport.height;
|
|
58
|
+
return Number.isFinite(position) && position >= 0 && position <= size
|
|
59
|
+
? [{ guide, position }]
|
|
60
|
+
: [];
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/*** Gives each visible guide an independent screen-reader identity with its stable world position. */
|
|
64
|
+
function createGuideAccessibilityLabel(overlayLabel, guide) {
|
|
65
|
+
return `${overlayLabel}: ${guide.label ?? `Guide ${guide.id}`} at ${guide.position}`;
|
|
66
|
+
}
|
|
67
|
+
/*** A reusable passive world-space grid and guide overlay. */
|
|
68
|
+
export const GridLineOverlay = withZoraThemeScope(GridLineOverlayInner);
|
|
69
|
+
//# sourceMappingURL=GridLineOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLineOverlay.js","sourceRoot":"","sources":["../../../../../src/features/grid-rulers/adapters/inbound/GridLineOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,iGAAiG;AACjG,SAAS,oBAAoB,CAAC,EAC5B,kBAAkB,GAAG,aAAa,EAClC,SAAS,GAAG,KAAK,EACjB,MAAM,GAAG,EAAE,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,GACU;IACrB,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW;QACxB,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;QACzE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE5E,OAAO,CACL,CAAC,IAAI,CACH,UAAU,CAAC,CAAC,KAAK,CAAC,CAClB,yBAAyB,CAAC,IAAI,CAC9B,aAAa,CAAC,MAAM,CACpB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAC5E,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CACnC,yBAAyB,CAAC,qBAAqB,CAC/C,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,QAAQ;gBACf;oBACE,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO;oBAChD,IAAI,EAAE,IAAI,CAAC,QAAQ;oBACnB,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;iBAC7C;aACF,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,WAAW,KAAK,EAAE,CAAC,EACvE,CACH,CAAC,CACF;MAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CACnC,yBAAyB,CAAC,qBAAqB,CAC/C,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,UAAU;gBACjB;oBACE,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO;oBAChD,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;oBAC5C,GAAG,EAAE,IAAI,CAAC,QAAQ;iBACnB;aACF,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,WAAW,KAAK,EAAE,CAAC,EACvE,CACH,CAAC,CACF;MAAA,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC1C,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CACd,kBAAkB,CAAC,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAC7E,iBAAiB,CAAC,MAAM,CACxB,UAAU,CACV,KAAK,CAAC,CAAC;gBACL,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;gBACxD,KAAK,CAAC,IAAI,KAAK,GAAG;oBAChB,CAAC,CAAC;wBACE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;wBACrC,IAAI,EAAE,QAAQ;qBACf;oBACH,CAAC,CAAC;wBACE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;wBACrC,GAAG,EAAE,QAAQ;qBACd;aACN,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,UAAU,KAAK,CAAC,EAAE,EAAE,CAAC,EACzE,CACH,CAAC,CACJ;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;IAClE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE;IACrD,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;CAChE,CAAC,CAAC;AAEH,gGAAgG;AAChG,SAAS,wBAAwB,CAC/B,MAAmD,EACnD,QAA0C,EAC1C,SAAyD;IAEzD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAEhD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEnE,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,IAAI;YACnE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sGAAsG;AACtG,SAAS,6BAA6B,CACpC,YAAoB,EACpB,KAA0D;IAE1D,OAAO,GAAG,YAAY,KAAK,KAAK,CAAC,KAAK,IAAI,SAAS,KAAK,CAAC,EAAE,EAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvF,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport type { GridLineOverlayProps } from '../../../../types/grid-rulers';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\nimport { useZoraTheme } from '../../../theme/composition/useZoraTheme';\nimport { projectGridRulerPosition } from '../../application/projectGridRulerPosition';\nimport { resolveGridRulerMarks } from '../../application/resolveGridRulerMarks';\n\n/*** Renders visible world-grid lines and explicit guides without owning viewport interaction. */\nfunction GridLineOverlayInner({\n accessibilityLabel = 'Grid guides',\n direction = 'ltr',\n guides = [],\n testID,\n viewport,\n xTickSource,\n yTickSource,\n}: GridLineOverlayProps) {\n const { theme } = useZoraTheme();\n const xMarks = xTickSource\n ? resolveGridRulerMarks(viewport, 'x', xTickSource, undefined, direction)\n : [];\n const yMarks = yTickSource ? resolveGridRulerMarks(viewport, 'y', yTickSource) : [];\n const visibleGuides = resolveVisibleGridGuides(guides, viewport, direction);\n\n return (\n <View\n accessible={false}\n importantForAccessibility=\"no\"\n pointerEvents=\"none\"\n style={[styles.overlay, { height: viewport.height, width: viewport.width }]}\n testID={testID}\n >\n {xMarks.map((mark, index) => (\n <View\n key={`x-${mark.position}-${index}`}\n importantForAccessibility=\"no-hide-descendants\"\n style={[\n styles.vertical,\n {\n backgroundColor: theme.semantics.neutral.divider,\n left: mark.position,\n opacity: mark.level === 'major' ? 0.5 : 0.25,\n },\n ]}\n testID={testID === undefined ? undefined : `${testID}-x-line-${index}`}\n />\n ))}\n {yMarks.map((mark, index) => (\n <View\n key={`y-${mark.position}-${index}`}\n importantForAccessibility=\"no-hide-descendants\"\n style={[\n styles.horizontal,\n {\n backgroundColor: theme.semantics.neutral.divider,\n opacity: mark.level === 'major' ? 0.5 : 0.25,\n top: mark.position,\n },\n ]}\n testID={testID === undefined ? undefined : `${testID}-y-line-${index}`}\n />\n ))}\n {visibleGuides.map(({ guide, position }) => (\n <View\n key={guide.id}\n accessibilityLabel={createGuideAccessibilityLabel(accessibilityLabel, guide)}\n accessibilityRole=\"text\"\n accessible\n style={[\n guide.axis === 'x' ? styles.vertical : styles.horizontal,\n guide.axis === 'x'\n ? {\n backgroundColor: theme.colors.primary,\n left: position,\n }\n : {\n backgroundColor: theme.colors.primary,\n top: position,\n },\n ]}\n testID={testID === undefined ? undefined : `${testID}-guide-${guide.id}`}\n />\n ))}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n horizontal: { height: 1, left: 0, position: 'absolute', right: 0 },\n overlay: { overflow: 'hidden', position: 'absolute' },\n vertical: { bottom: 0, position: 'absolute', top: 0, width: 1 },\n});\n\n/*** Selects finite guides whose shared world-to-visual projection falls inside the viewport. */\nfunction resolveVisibleGridGuides(\n guides: NonNullable<GridLineOverlayProps['guides']>,\n viewport: GridLineOverlayProps['viewport'],\n direction: NonNullable<GridLineOverlayProps['direction']>,\n) {\n return guides.flatMap((guide) => {\n if (!Number.isFinite(guide.position)) return [];\n\n const position = projectGridRulerPosition(viewport, guide.axis, guide.position, direction);\n const size = guide.axis === 'x' ? viewport.width : viewport.height;\n\n return Number.isFinite(position) && position >= 0 && position <= size\n ? [{ guide, position }]\n : [];\n });\n}\n\n/*** Gives each visible guide an independent screen-reader identity with its stable world position. */\nfunction createGuideAccessibilityLabel(\n overlayLabel: string,\n guide: NonNullable<GridLineOverlayProps['guides']>[number],\n): string {\n return `${overlayLabel}: ${guide.label ?? `Guide ${guide.id}`} at ${guide.position}`;\n}\n\n/*** A reusable passive world-space grid and guide overlay. */\nexport const GridLineOverlay = withZoraThemeScope(GridLineOverlayInner);\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { GridRulerProps } from '../../../../types/grid-rulers';
|
|
3
|
+
/*** A reusable passive horizontal or vertical world-space ruler. */
|
|
4
|
+
export declare const GridRuler: (props: GridRulerProps) => React.ReactElement | null;
|
|
5
|
+
//# sourceMappingURL=GridRuler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridRuler.d.ts","sourceRoot":"","sources":["../../../../../src/features/grid-rulers/adapters/inbound/GridRuler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AA2FpE,oEAAoE;AACpE,eAAO,MAAM,SAAS,sDAAqC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';
|
|
4
|
+
import { useZoraTheme } from '../../../theme/composition/useZoraTheme';
|
|
5
|
+
import { resolveGridRulerMarks } from '../../application/resolveGridRulerMarks';
|
|
6
|
+
/*** Renders a passive axis ruler from published grid-view tick geometry. */
|
|
7
|
+
function GridRulerInner({ accessibilityLabel, axis, direction = 'ltr', formatLabel, offset = 0, position = 'start', testID, thickness = 24, tickSource, viewport, }) {
|
|
8
|
+
const { theme } = useZoraTheme();
|
|
9
|
+
const marks = resolveGridRulerMarks(viewport, axis, tickSource, formatLabel, direction);
|
|
10
|
+
const horizontal = axis === 'x';
|
|
11
|
+
const size = horizontal ? viewport.width : viewport.height;
|
|
12
|
+
const label = accessibilityLabel ?? `${horizontal ? 'Horizontal' : 'Vertical'} ruler`;
|
|
13
|
+
return (<View accessibilityLabel={label} accessible pointerEvents="none" style={[
|
|
14
|
+
styles.ruler,
|
|
15
|
+
horizontal ? { height: thickness, width: size } : { height: size, width: thickness },
|
|
16
|
+
position === 'start'
|
|
17
|
+
? horizontal
|
|
18
|
+
? { top: offset }
|
|
19
|
+
: { left: offset }
|
|
20
|
+
: horizontal
|
|
21
|
+
? { bottom: offset }
|
|
22
|
+
: { right: offset },
|
|
23
|
+
]} testID={testID}>
|
|
24
|
+
{marks.map((mark, index) => {
|
|
25
|
+
const coordinate = mark.position;
|
|
26
|
+
const tickStyle = horizontal
|
|
27
|
+
? {
|
|
28
|
+
height: mark.level === 'major' ? thickness : thickness / 2,
|
|
29
|
+
left: coordinate,
|
|
30
|
+
top: 0,
|
|
31
|
+
width: 1,
|
|
32
|
+
}
|
|
33
|
+
: {
|
|
34
|
+
height: 1,
|
|
35
|
+
left: 0,
|
|
36
|
+
top: coordinate,
|
|
37
|
+
width: mark.level === 'major' ? thickness : thickness / 2,
|
|
38
|
+
};
|
|
39
|
+
return (<React.Fragment key={`${mark.position}-${index}`}>
|
|
40
|
+
<View importantForAccessibility="no-hide-descendants" style={[styles.tick, { backgroundColor: theme.semantics.neutral.divider }, tickStyle]} testID={testID === undefined ? undefined : `${testID}-tick-${index}`}/>
|
|
41
|
+
{mark.label !== undefined ? (<Text importantForAccessibility="no-hide-descendants" numberOfLines={1} style={[
|
|
42
|
+
styles.label,
|
|
43
|
+
{ color: theme.semantics.neutral.textMuted },
|
|
44
|
+
horizontal ? { left: coordinate + 3, top: 2 } : { left: 3, top: coordinate + 2 },
|
|
45
|
+
]} testID={testID === undefined ? undefined : `${testID}-label-${index}`}>
|
|
46
|
+
{mark.label}
|
|
47
|
+
</Text>) : null}
|
|
48
|
+
</React.Fragment>);
|
|
49
|
+
})}
|
|
50
|
+
</View>);
|
|
51
|
+
}
|
|
52
|
+
const styles = StyleSheet.create({
|
|
53
|
+
label: { fontSize: 10, position: 'absolute' },
|
|
54
|
+
ruler: { overflow: 'hidden', position: 'absolute' },
|
|
55
|
+
tick: { position: 'absolute' },
|
|
56
|
+
});
|
|
57
|
+
/*** A reusable passive horizontal or vertical world-space ruler. */
|
|
58
|
+
export const GridRuler = withZoraThemeScope(GridRulerInner);
|
|
59
|
+
//# sourceMappingURL=GridRuler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridRuler.js","sourceRoot":"","sources":["../../../../../src/features/grid-rulers/adapters/inbound/GridRuler.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport type { GridRulerProps } from '../../../../types/grid-rulers';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\nimport { useZoraTheme } from '../../../theme/composition/useZoraTheme';\nimport { resolveGridRulerMarks } from '../../application/resolveGridRulerMarks';\n\n/*** Renders a passive axis ruler from published grid-view tick geometry. */\nfunction GridRulerInner({\n accessibilityLabel,\n axis,\n direction = 'ltr',\n formatLabel,\n offset = 0,\n position = 'start',\n testID,\n thickness = 24,\n tickSource,\n viewport,\n}: GridRulerProps) {\n const { theme } = useZoraTheme();\n const marks = resolveGridRulerMarks(viewport, axis, tickSource, formatLabel, direction);\n const horizontal = axis === 'x';\n const size = horizontal ? viewport.width : viewport.height;\n const label = accessibilityLabel ?? `${horizontal ? 'Horizontal' : 'Vertical'} ruler`;\n\n return (\n <View\n accessibilityLabel={label}\n accessible\n pointerEvents=\"none\"\n style={[\n styles.ruler,\n horizontal ? { height: thickness, width: size } : { height: size, width: thickness },\n position === 'start'\n ? horizontal\n ? { top: offset }\n : { left: offset }\n : horizontal\n ? { bottom: offset }\n : { right: offset },\n ]}\n testID={testID}\n >\n {marks.map((mark, index) => {\n const coordinate = mark.position;\n const tickStyle = horizontal\n ? {\n height: mark.level === 'major' ? thickness : thickness / 2,\n left: coordinate,\n top: 0,\n width: 1,\n }\n : {\n height: 1,\n left: 0,\n top: coordinate,\n width: mark.level === 'major' ? thickness : thickness / 2,\n };\n return (\n <React.Fragment key={`${mark.position}-${index}`}>\n <View\n importantForAccessibility=\"no-hide-descendants\"\n style={[styles.tick, { backgroundColor: theme.semantics.neutral.divider }, tickStyle]}\n testID={testID === undefined ? undefined : `${testID}-tick-${index}`}\n />\n {mark.label !== undefined ? (\n <Text\n importantForAccessibility=\"no-hide-descendants\"\n numberOfLines={1}\n style={[\n styles.label,\n { color: theme.semantics.neutral.textMuted },\n horizontal ? { left: coordinate + 3, top: 2 } : { left: 3, top: coordinate + 2 },\n ]}\n testID={testID === undefined ? undefined : `${testID}-label-${index}`}\n >\n {mark.label}\n </Text>\n ) : null}\n </React.Fragment>\n );\n })}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n label: { fontSize: 10, position: 'absolute' },\n ruler: { overflow: 'hidden', position: 'absolute' },\n tick: { position: 'absolute' },\n});\n\n/*** A reusable passive horizontal or vertical world-space ruler. */\nexport const GridRuler = withZoraThemeScope(GridRulerInner);\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type GridAxisName, type GridViewport } from '@ankhorage/grid-view';
|
|
2
|
+
/*** Projects a stable world-axis coordinate into the matching visual ruler or overlay position. */
|
|
3
|
+
export declare function projectGridRulerPosition(viewport: GridViewport, axis: GridAxisName, position: number, direction?: 'ltr' | 'rtl'): number;
|
|
4
|
+
//# sourceMappingURL=projectGridRulerPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectGridRulerPosition.d.ts","sourceRoot":"","sources":["../../../../src/features/grid-rulers/application/projectGridRulerPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAE7F,mGAAmG;AACnG,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,KAAK,GAAG,KAAa,GAC/B,MAAM,CAUR"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { worldToViewport } from '@ankhorage/grid-view';
|
|
2
|
+
/*** Projects a stable world-axis coordinate into the matching visual ruler or overlay position. */
|
|
3
|
+
export function projectGridRulerPosition(viewport, axis, position, direction = 'ltr') {
|
|
4
|
+
const point = worldToViewport(axis === 'x' ? { x: position, y: viewport.offsetY } : { x: viewport.offsetX, y: position }, viewport);
|
|
5
|
+
const projectedPosition = axis === 'x' ? point.x : point.y;
|
|
6
|
+
return axis === 'x' && direction === 'rtl'
|
|
7
|
+
? viewport.width - projectedPosition
|
|
8
|
+
: projectedPosition;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=projectGridRulerPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectGridRulerPosition.js","sourceRoot":"","sources":["../../../../src/features/grid-rulers/application/projectGridRulerPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE7F,mGAAmG;AACnG,MAAM,UAAU,wBAAwB,CACtC,QAAsB,EACtB,IAAkB,EAClB,QAAgB,EAChB,YAA2B,KAAK;IAEhC,MAAM,KAAK,GAAG,eAAe,CAC3B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAC1F,QAAQ,CACT,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3D,OAAO,IAAI,KAAK,GAAG,IAAI,SAAS,KAAK,KAAK;QACxC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,iBAAiB;QACpC,CAAC,CAAC,iBAAiB,CAAC;AACxB,CAAC","sourcesContent":["import { type GridAxisName, type GridViewport, worldToViewport } from '@ankhorage/grid-view';\n\n/*** Projects a stable world-axis coordinate into the matching visual ruler or overlay position. */\nexport function projectGridRulerPosition(\n viewport: GridViewport,\n axis: GridAxisName,\n position: number,\n direction: 'ltr' | 'rtl' = 'ltr',\n): number {\n const point = worldToViewport(\n axis === 'x' ? { x: position, y: viewport.offsetY } : { x: viewport.offsetX, y: position },\n viewport,\n );\n const projectedPosition = axis === 'x' ? point.x : point.y;\n\n return axis === 'x' && direction === 'rtl'\n ? viewport.width - projectedPosition\n : projectedPosition;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type GridAxisName, type GridAxisTick, type GridViewport } from '@ankhorage/grid-view';
|
|
2
|
+
import type { GridRulerMark, GridRulerTickSource } from '../../../types/grid-rulers';
|
|
3
|
+
/*** Resolves bounded engine ticks into viewport-pixel ruler marks without changing interaction state. */
|
|
4
|
+
export declare function resolveGridRulerMarks(viewport: GridViewport, axis: GridAxisName, tickSource: GridRulerTickSource, formatLabel?: (tick: GridAxisTick) => string | undefined, direction?: 'ltr' | 'rtl'): readonly GridRulerMark[];
|
|
5
|
+
//# sourceMappingURL=resolveGridRulerMarks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGridRulerMarks.d.ts","sourceRoot":"","sources":["../../../../src/features/grid-rulers/application/resolveGridRulerMarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGrF,yGAAyG;AACzG,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,EACxD,SAAS,GAAE,KAAK,GAAG,KAAa,GAC/B,SAAS,aAAa,EAAE,CAoB1B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { getAxisCategoryTicks, getAxisTicks, } from '@ankhorage/grid-view';
|
|
2
|
+
import { projectGridRulerPosition } from './projectGridRulerPosition';
|
|
3
|
+
/*** Resolves bounded engine ticks into viewport-pixel ruler marks without changing interaction state. */
|
|
4
|
+
export function resolveGridRulerMarks(viewport, axis, tickSource, formatLabel, direction = 'ltr') {
|
|
5
|
+
const ticks = tickSource.kind === 'categories'
|
|
6
|
+
? getAxisCategoryTicks(viewport, axis, tickSource.categories)
|
|
7
|
+
: getAxisTicks(viewport, axis, tickSource.specification, tickSource.provider);
|
|
8
|
+
return ticks.map((tick) => {
|
|
9
|
+
const formattedLabel = formatLabel?.(tick);
|
|
10
|
+
return {
|
|
11
|
+
position: projectGridRulerPosition(viewport, axis, tick.position, direction),
|
|
12
|
+
level: tick.level,
|
|
13
|
+
...(tick.label !== undefined || formattedLabel !== undefined
|
|
14
|
+
? { label: formattedLabel ?? tick.label }
|
|
15
|
+
: {}),
|
|
16
|
+
...('categoryId' in tick && typeof tick.categoryId === 'string'
|
|
17
|
+
? { categoryId: tick.categoryId }
|
|
18
|
+
: {}),
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=resolveGridRulerMarks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGridRulerMarks.js","sourceRoot":"","sources":["../../../../src/features/grid-rulers/application/resolveGridRulerMarks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,YAAY,GAIb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,yGAAyG;AACzG,MAAM,UAAU,qBAAqB,CACnC,QAAsB,EACtB,IAAkB,EAClB,UAA+B,EAC/B,WAAwD,EACxD,YAA2B,KAAK;IAEhC,MAAM,KAAK,GACT,UAAU,CAAC,IAAI,KAAK,YAAY;QAC9B,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC;QAC7D,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAElF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;QAE3C,OAAO;YACL,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC5E,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;gBAC1D,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE;gBACzC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAC7D,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;gBACjC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n getAxisCategoryTicks,\n getAxisTicks,\n type GridAxisName,\n type GridAxisTick,\n type GridViewport,\n} from '@ankhorage/grid-view';\n\nimport type { GridRulerMark, GridRulerTickSource } from '../../../types/grid-rulers';\nimport { projectGridRulerPosition } from './projectGridRulerPosition';\n\n/*** Resolves bounded engine ticks into viewport-pixel ruler marks without changing interaction state. */\nexport function resolveGridRulerMarks(\n viewport: GridViewport,\n axis: GridAxisName,\n tickSource: GridRulerTickSource,\n formatLabel?: (tick: GridAxisTick) => string | undefined,\n direction: 'ltr' | 'rtl' = 'ltr',\n): readonly GridRulerMark[] {\n const ticks =\n tickSource.kind === 'categories'\n ? getAxisCategoryTicks(viewport, axis, tickSource.categories)\n : getAxisTicks(viewport, axis, tickSource.specification, tickSource.provider);\n\n return ticks.map((tick) => {\n const formattedLabel = formatLabel?.(tick);\n\n return {\n position: projectGridRulerPosition(viewport, axis, tick.position, direction),\n level: tick.level,\n ...(tick.label !== undefined || formattedLabel !== undefined\n ? { label: formattedLabel ?? tick.label }\n : {}),\n ...('categoryId' in tick && typeof tick.categoryId === 'string'\n ? { categoryId: tick.categoryId }\n : {}),\n };\n });\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Passive viewport decorations intentionally remain outside direct manifest authoring. */
|
|
2
|
+
export declare const gridLineOverlayMeta: {
|
|
3
|
+
readonly name: "GridLineOverlay";
|
|
4
|
+
readonly category: "foundation";
|
|
5
|
+
readonly description: "Projects bounded world-grid lines and explicit guides from a supplied viewport.";
|
|
6
|
+
readonly directManifestNode: false;
|
|
7
|
+
readonly note: "Requires a live viewport and optional executable tick/label providers; available through code APIs, not a serializable manifest node.";
|
|
8
|
+
readonly allowedChildren: readonly [];
|
|
9
|
+
readonly props: {};
|
|
10
|
+
};
|
|
11
|
+
/** Rulers accept code-dependent tick and label providers and therefore remain code-only. */
|
|
12
|
+
export declare const gridRulerMeta: {
|
|
13
|
+
readonly name: "GridRuler";
|
|
14
|
+
readonly category: "foundation";
|
|
15
|
+
readonly description: "Projects visible world-axis ticks into a passive horizontal or vertical ruler.";
|
|
16
|
+
readonly directManifestNode: false;
|
|
17
|
+
readonly note: "Requires a live viewport and optional executable tick/label providers; available through code APIs, not a serializable manifest node.";
|
|
18
|
+
readonly allowedChildren: readonly [];
|
|
19
|
+
readonly props: {};
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/features/grid-rulers/meta.ts"],"names":[],"mappings":"AAKA,2FAA2F;AAC3F,eAAO,MAAM,mBAAmB;;;;;;;;CAQM,CAAC;AAEvC,4FAA4F;AAC5F,eAAO,MAAM,aAAa;;;;;;;;CAQY,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const GRID_RULERS_NOTE = 'Requires a live viewport and optional executable tick/label providers; available through code APIs, not a serializable manifest node.';
|
|
2
|
+
/** Passive viewport decorations intentionally remain outside direct manifest authoring. */
|
|
3
|
+
export const gridLineOverlayMeta = {
|
|
4
|
+
name: 'GridLineOverlay',
|
|
5
|
+
category: 'foundation',
|
|
6
|
+
description: 'Projects bounded world-grid lines and explicit guides from a supplied viewport.',
|
|
7
|
+
directManifestNode: false,
|
|
8
|
+
note: GRID_RULERS_NOTE,
|
|
9
|
+
allowedChildren: [],
|
|
10
|
+
props: {},
|
|
11
|
+
};
|
|
12
|
+
/** Rulers accept code-dependent tick and label providers and therefore remain code-only. */
|
|
13
|
+
export const gridRulerMeta = {
|
|
14
|
+
name: 'GridRuler',
|
|
15
|
+
category: 'foundation',
|
|
16
|
+
description: 'Projects visible world-axis ticks into a passive horizontal or vertical ruler.',
|
|
17
|
+
directManifestNode: false,
|
|
18
|
+
note: GRID_RULERS_NOTE,
|
|
19
|
+
allowedChildren: [],
|
|
20
|
+
props: {},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/features/grid-rulers/meta.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GACpB,uIAAuI,CAAC;AAE1I,2FAA2F;AAC3F,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,iFAAiF;IAC9F,kBAAkB,EAAE,KAAK;IACzB,IAAI,EAAE,gBAAgB;IACtB,eAAe,EAAE,EAAE;IACnB,KAAK,EAAE,EAAE;CAC2B,CAAC;AAEvC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,gFAAgF;IAC7F,kBAAkB,EAAE,KAAK;IACzB,IAAI,EAAE,gBAAgB;IACtB,eAAe,EAAE,EAAE;IACnB,KAAK,EAAE,EAAE;CAC2B,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../types/authoring';\n\nconst GRID_RULERS_NOTE =\n 'Requires a live viewport and optional executable tick/label providers; available through code APIs, not a serializable manifest node.';\n\n/** Passive viewport decorations intentionally remain outside direct manifest authoring. */\nexport const gridLineOverlayMeta = {\n name: 'GridLineOverlay',\n category: 'foundation',\n description: 'Projects bounded world-grid lines and explicit guides from a supplied viewport.',\n directManifestNode: false,\n note: GRID_RULERS_NOTE,\n allowedChildren: [],\n props: {},\n} as const satisfies ZoraComponentMeta;\n\n/** Rulers accept code-dependent tick and label providers and therefore remain code-only. */\nexport const gridRulerMeta = {\n name: 'GridRuler',\n category: 'foundation',\n description: 'Projects visible world-axis ticks into a passive horizontal or vertical ruler.',\n directManifestNode: false,\n note: GRID_RULERS_NOTE,\n allowedChildren: [],\n props: {},\n} as const satisfies ZoraComponentMeta;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { GridGuide, GridLineOverlayProps, GridRulerMark, GridRulerProps, GridRulerTickSource, } from '../../types/grid-rulers';
|
|
2
|
+
export { GridLineOverlay } from './adapters/inbound/GridLineOverlay';
|
|
3
|
+
export { GridRuler } from './adapters/inbound/GridRuler';
|
|
4
|
+
export { resolveGridRulerMarks } from './application/resolveGridRulerMarks';
|
|
5
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/features/grid-rulers/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/features/grid-rulers/public.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC","sourcesContent":["export type {\n GridGuide,\n GridLineOverlayProps,\n GridRulerMark,\n GridRulerProps,\n GridRulerTickSource,\n} from '../../types/grid-rulers';\nexport { GridLineOverlay } from './adapters/inbound/GridLineOverlay';\nexport { GridRuler } from './adapters/inbound/GridRuler';\nexport { resolveGridRulerMarks } from './application/resolveGridRulerMarks';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZORA_COMPONENT_REGISTRY.d.ts","sourceRoot":"","sources":["../../../src/features/registry/ZORA_COMPONENT_REGISTRY.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ZORA_COMPONENT_REGISTRY.d.ts","sourceRoot":"","sources":["../../../src/features/registry/ZORA_COMPONENT_REGISTRY.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmOlE,eAAO,MAAM,uBAAuB,EAAE,qBAAgD,CAAC"}
|
|
@@ -28,6 +28,7 @@ import { Switch } from '../form/switch/public';
|
|
|
28
28
|
import { TextInput } from '../form/text-input/public';
|
|
29
29
|
import { Game, GameEntity, GameField, GameInputZone, GameMeasurementProbe, GameOverlay, } from '../game/public';
|
|
30
30
|
import { Gradient } from '../gradient/public';
|
|
31
|
+
import { GridLineOverlay, GridRuler } from '../grid-rulers/public';
|
|
31
32
|
import { GridView, TileGrid } from '../grid-view/public';
|
|
32
33
|
import { Hero } from '../hero/public';
|
|
33
34
|
import { Icon } from '../icon/public';
|
|
@@ -46,6 +47,7 @@ import { BarcodeScannerView, CameraPermissionView, ScanOverlay } from '../scanne
|
|
|
46
47
|
import { ScreenSection, SectionHeader } from '../section/public';
|
|
47
48
|
import { SelectableItem } from '../selection/public';
|
|
48
49
|
import { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from '../skeleton/public';
|
|
50
|
+
import { SpatialGrid } from '../spatial-grid/public';
|
|
49
51
|
import { Surface } from '../surface/public';
|
|
50
52
|
import { CardBack, CardHand, PlayingCard, PokerTrainingTable, TabletopTable, } from '../tabletop/public';
|
|
51
53
|
import { Tab, TabList, TabPanel, Tabs } from '../tabs/public';
|
|
@@ -145,6 +147,8 @@ const _ZORA_COMPONENT_REGISTRY = {
|
|
|
145
147
|
EmptyState,
|
|
146
148
|
Explorer,
|
|
147
149
|
FileExplorer,
|
|
150
|
+
GridLineOverlay,
|
|
151
|
+
GridRuler,
|
|
148
152
|
GridView,
|
|
149
153
|
TileGrid,
|
|
150
154
|
MediaExplorer,
|
|
@@ -163,6 +167,7 @@ const _ZORA_COMPONENT_REGISTRY = {
|
|
|
163
167
|
ScanOverlay,
|
|
164
168
|
SectionHeader,
|
|
165
169
|
SelectableItem,
|
|
170
|
+
SpatialGrid,
|
|
166
171
|
PaletteItem,
|
|
167
172
|
CardBack,
|
|
168
173
|
CardHand,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZORA_COMPONENT_REGISTRY.js","sourceRoot":"","sources":["../../../src/features/registry/ZORA_COMPONENT_REGISTRY.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport type { ZoraComponentRegistry } from '../../types/registry';\nimport { Accordion, AccordionItem } from '../accordion/public';\nimport { ActivityIndicator } from '../activity-indicator/public';\nimport { AppBar } from '../app-bar/public';\nimport { AppHeader } from '../app-header/public';\nimport {\n AuthScreen,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n} from '../auth/public';\nimport { Avatar, AvatarGroup } from '../avatar/public';\nimport { Badge } from '../badge/public';\nimport { BottomSheet } from '../bottom-sheet/public';\nimport { Breadcrumbs } from '../breadcrumbs/public';\nimport { Button, ButtonGroup, IconButton } from '../button/public';\nimport { Card, MediaCard, MetricCard, PostCard, ProductCard } from '../card/public';\nimport { ChatListItem, MessageBubble } from '../chat/public';\nimport { ChessBoard, OpeningBook } from '../chess/public';\nimport { Chip, ChipGroup } from '../chip/public';\nimport { CollectionEditor } from '../collection-editor/public';\nimport { ContentRail } from '../content-rail/public';\nimport { DataTable } from '../data-table/public';\nimport { DatePicker } from '../date-picker/public';\nimport { Dialog } from '../dialog/public';\nimport { EmptyState } from '../empty-state/public';\nimport { Explorer, FileExplorer, MediaExplorer } from '../explorer/public';\nimport { Checkbox, CheckboxGroup } from '../form/checkbox/public';\nimport { Field, Form, FormActions, FormError } from '../form/public';\nimport { Radio, RadioGroup } from '../form/radio/public';\nimport { SearchInput } from '../form/search-input/public';\nimport { Select } from '../form/select/public';\nimport { Switch } from '../form/switch/public';\nimport { TextInput } from '../form/text-input/public';\nimport {\n Game,\n GameEntity,\n GameField,\n GameInputZone,\n GameMeasurementProbe,\n GameOverlay,\n} from '../game/public';\nimport { Gradient } from '../gradient/public';\nimport { GridView, TileGrid } from '../grid-view/public';\nimport { Hero } from '../hero/public';\nimport { Icon } from '../icon/public';\nimport { Image } from '../image/public';\nimport { KeyboardAvoidingView } from '../keyboard-avoiding-view/public';\nimport { AppShell, Divider, Grid, Screen, ScrollView, View } from '../layout/public';\nimport { FlatList, List, ListItem, ListSection, SectionList } from '../list/public';\nimport { MissingElement } from '../missing-element/public';\nimport { Pagination } from '../pagination/public';\nimport { PaletteItem } from '../palette-item/public';\nimport { PopoverMenu } from '../popover-menu/public';\nimport { Progress, ProgressRing } from '../progress/public';\nimport { Rating } from '../rating/public';\nimport { Reader } from '../reader/public';\nimport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from '../scanner/public';\nimport { ScreenSection, SectionHeader } from '../section/public';\nimport { SelectableItem } from '../selection/public';\nimport { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from '../skeleton/public';\nimport { Surface } from '../surface/public';\nimport {\n CardBack,\n CardHand,\n PlayingCard,\n PokerTrainingTable,\n TabletopTable,\n} from '../tabletop/public';\nimport { Tab, TabList, TabPanel, Tabs } from '../tabs/public';\nimport { ThemeModeToggle } from '../theme/adapters/inbound/ThemeModeToggle';\nimport { TimePicker } from '../time-picker/public';\nimport { Timeline } from '../timeline/public';\nimport { Toast } from '../toast/public';\nimport { Toolbar } from '../toolbar/public';\nimport { TreeItem, TreeView } from '../tree-view/public';\nimport { Heading, Text } from '../typography/public';\nimport { Uploader } from '../uploader/public';\n\ntype ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<\n (typeof _ZORA_COMPONENT_REGISTRY)[K]\n>;\n\ntype AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P\n ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>\n ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps\n ? true\n : false\n : false\n : false;\n\ntype RegistryInteractionPolicyContract = {\n [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<\n ComponentPropsFor<K>\n >;\n};\n\ntype _AssertTrue<T extends true> = T;\ntype _RegistryInteractionPolicyCheck = _AssertTrue<\n RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]\n>;\n\nconst _ZORA_COMPONENT_REGISTRY = {\n Accordion,\n AccordionItem,\n ActivityIndicator,\n AppBar,\n AppHeader,\n Avatar,\n AvatarGroup,\n Badge,\n Breadcrumbs,\n Button,\n ButtonGroup,\n Card,\n Checkbox,\n CheckboxGroup,\n Chip,\n ChipGroup,\n DataTable,\n DatePicker,\n Dialog,\n Form,\n FormActions,\n FormError,\n Field,\n Gradient,\n Game,\n GameEntity,\n GameField,\n GameInputZone,\n GameMeasurementProbe,\n GameOverlay,\n Heading,\n Icon,\n IconButton,\n Image,\n KeyboardAvoidingView,\n TextInput,\n MediaCard,\n MetricCard,\n Pagination,\n PopoverMenu,\n Progress,\n ProgressRing,\n Radio,\n RadioGroup,\n Rating,\n SearchInput,\n Select,\n Switch,\n Skeleton,\n SkeletonCard,\n SkeletonList,\n SkeletonText,\n Tab,\n TabList,\n TabPanel,\n Tabs,\n Text,\n TimePicker,\n Toast,\n Toolbar,\n Uploader,\n BottomSheet,\n FlatList,\n SectionList,\n ScrollView,\n View,\n ThemeModeToggle,\n Divider,\n Grid,\n Surface,\n AppShell,\n Screen,\n ScreenSection,\n AuthScreen,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n ChatListItem,\n ChessBoard,\n CollectionEditor,\n ContentRail,\n EmptyState,\n Explorer,\n FileExplorer,\n GridView,\n TileGrid,\n MediaExplorer,\n Hero,\n List,\n ListItem,\n ListSection,\n MessageBubble,\n OpeningBook,\n MissingElement,\n PostCard,\n ProductCard,\n Reader,\n BarcodeScannerView,\n CameraPermissionView,\n ScanOverlay,\n SectionHeader,\n SelectableItem,\n PaletteItem,\n CardBack,\n CardHand,\n PlayingCard,\n TabletopTable,\n PokerTrainingTable,\n Timeline,\n TreeItem,\n TreeView,\n} as const satisfies ZoraComponentRegistry;\n\nexport const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;\n"]}
|
|
1
|
+
{"version":3,"file":"ZORA_COMPONENT_REGISTRY.js","sourceRoot":"","sources":["../../../src/features/registry/ZORA_COMPONENT_REGISTRY.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport type { ZoraComponentRegistry } from '../../types/registry';\nimport { Accordion, AccordionItem } from '../accordion/public';\nimport { ActivityIndicator } from '../activity-indicator/public';\nimport { AppBar } from '../app-bar/public';\nimport { AppHeader } from '../app-header/public';\nimport {\n AuthScreen,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n} from '../auth/public';\nimport { Avatar, AvatarGroup } from '../avatar/public';\nimport { Badge } from '../badge/public';\nimport { BottomSheet } from '../bottom-sheet/public';\nimport { Breadcrumbs } from '../breadcrumbs/public';\nimport { Button, ButtonGroup, IconButton } from '../button/public';\nimport { Card, MediaCard, MetricCard, PostCard, ProductCard } from '../card/public';\nimport { ChatListItem, MessageBubble } from '../chat/public';\nimport { ChessBoard, OpeningBook } from '../chess/public';\nimport { Chip, ChipGroup } from '../chip/public';\nimport { CollectionEditor } from '../collection-editor/public';\nimport { ContentRail } from '../content-rail/public';\nimport { DataTable } from '../data-table/public';\nimport { DatePicker } from '../date-picker/public';\nimport { Dialog } from '../dialog/public';\nimport { EmptyState } from '../empty-state/public';\nimport { Explorer, FileExplorer, MediaExplorer } from '../explorer/public';\nimport { Checkbox, CheckboxGroup } from '../form/checkbox/public';\nimport { Field, Form, FormActions, FormError } from '../form/public';\nimport { Radio, RadioGroup } from '../form/radio/public';\nimport { SearchInput } from '../form/search-input/public';\nimport { Select } from '../form/select/public';\nimport { Switch } from '../form/switch/public';\nimport { TextInput } from '../form/text-input/public';\nimport {\n Game,\n GameEntity,\n GameField,\n GameInputZone,\n GameMeasurementProbe,\n GameOverlay,\n} from '../game/public';\nimport { Gradient } from '../gradient/public';\nimport { GridLineOverlay, GridRuler } from '../grid-rulers/public';\nimport { GridView, TileGrid } from '../grid-view/public';\nimport { Hero } from '../hero/public';\nimport { Icon } from '../icon/public';\nimport { Image } from '../image/public';\nimport { KeyboardAvoidingView } from '../keyboard-avoiding-view/public';\nimport { AppShell, Divider, Grid, Screen, ScrollView, View } from '../layout/public';\nimport { FlatList, List, ListItem, ListSection, SectionList } from '../list/public';\nimport { MissingElement } from '../missing-element/public';\nimport { Pagination } from '../pagination/public';\nimport { PaletteItem } from '../palette-item/public';\nimport { PopoverMenu } from '../popover-menu/public';\nimport { Progress, ProgressRing } from '../progress/public';\nimport { Rating } from '../rating/public';\nimport { Reader } from '../reader/public';\nimport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from '../scanner/public';\nimport { ScreenSection, SectionHeader } from '../section/public';\nimport { SelectableItem } from '../selection/public';\nimport { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from '../skeleton/public';\nimport { SpatialGrid } from '../spatial-grid/public';\nimport { Surface } from '../surface/public';\nimport {\n CardBack,\n CardHand,\n PlayingCard,\n PokerTrainingTable,\n TabletopTable,\n} from '../tabletop/public';\nimport { Tab, TabList, TabPanel, Tabs } from '../tabs/public';\nimport { ThemeModeToggle } from '../theme/adapters/inbound/ThemeModeToggle';\nimport { TimePicker } from '../time-picker/public';\nimport { Timeline } from '../timeline/public';\nimport { Toast } from '../toast/public';\nimport { Toolbar } from '../toolbar/public';\nimport { TreeItem, TreeView } from '../tree-view/public';\nimport { Heading, Text } from '../typography/public';\nimport { Uploader } from '../uploader/public';\n\ntype ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<\n (typeof _ZORA_COMPONENT_REGISTRY)[K]\n>;\n\ntype AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P\n ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>\n ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps\n ? true\n : false\n : false\n : false;\n\ntype RegistryInteractionPolicyContract = {\n [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<\n ComponentPropsFor<K>\n >;\n};\n\ntype _AssertTrue<T extends true> = T;\ntype _RegistryInteractionPolicyCheck = _AssertTrue<\n RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]\n>;\n\nconst _ZORA_COMPONENT_REGISTRY = {\n Accordion,\n AccordionItem,\n ActivityIndicator,\n AppBar,\n AppHeader,\n Avatar,\n AvatarGroup,\n Badge,\n Breadcrumbs,\n Button,\n ButtonGroup,\n Card,\n Checkbox,\n CheckboxGroup,\n Chip,\n ChipGroup,\n DataTable,\n DatePicker,\n Dialog,\n Form,\n FormActions,\n FormError,\n Field,\n Gradient,\n Game,\n GameEntity,\n GameField,\n GameInputZone,\n GameMeasurementProbe,\n GameOverlay,\n Heading,\n Icon,\n IconButton,\n Image,\n KeyboardAvoidingView,\n TextInput,\n MediaCard,\n MetricCard,\n Pagination,\n PopoverMenu,\n Progress,\n ProgressRing,\n Radio,\n RadioGroup,\n Rating,\n SearchInput,\n Select,\n Switch,\n Skeleton,\n SkeletonCard,\n SkeletonList,\n SkeletonText,\n Tab,\n TabList,\n TabPanel,\n Tabs,\n Text,\n TimePicker,\n Toast,\n Toolbar,\n Uploader,\n BottomSheet,\n FlatList,\n SectionList,\n ScrollView,\n View,\n ThemeModeToggle,\n Divider,\n Grid,\n Surface,\n AppShell,\n Screen,\n ScreenSection,\n AuthScreen,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n ChatListItem,\n ChessBoard,\n CollectionEditor,\n ContentRail,\n EmptyState,\n Explorer,\n FileExplorer,\n GridLineOverlay,\n GridRuler,\n GridView,\n TileGrid,\n MediaExplorer,\n Hero,\n List,\n ListItem,\n ListSection,\n MessageBubble,\n OpeningBook,\n MissingElement,\n PostCard,\n ProductCard,\n Reader,\n BarcodeScannerView,\n CameraPermissionView,\n ScanOverlay,\n SectionHeader,\n SelectableItem,\n SpatialGrid,\n PaletteItem,\n CardBack,\n CardHand,\n PlayingCard,\n TabletopTable,\n PokerTrainingTable,\n Timeline,\n TreeItem,\n TreeView,\n} as const satisfies ZoraComponentRegistry;\n\nexport const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentMeta.d.ts","sourceRoot":"","sources":["../../../src/features/registry/componentMeta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"componentMeta.d.ts","sourceRoot":"","sources":["../../../src/features/registry/componentMeta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAgHvE,eAAO,MAAM,mBAAmB,EAAE,yBAwHhC,CAAC"}
|
|
@@ -52,6 +52,7 @@ import { gameMeasurementProbeMeta } from '../game/meta/gameMeasurementProbeMeta'
|
|
|
52
52
|
import { gameMeta } from '../game/meta/gameMeta';
|
|
53
53
|
import { gameOverlayMeta } from '../game/meta/gameOverlayMeta';
|
|
54
54
|
import { gradientMeta } from '../gradient/gradientMeta';
|
|
55
|
+
import { gridLineOverlayMeta, gridRulerMeta } from '../grid-rulers/meta';
|
|
55
56
|
import { gridViewMeta, tileGridMeta } from '../grid-view/meta';
|
|
56
57
|
import { heroMeta } from '../hero/heroMeta';
|
|
57
58
|
import { iconMeta } from '../icon/iconMeta';
|
|
@@ -78,6 +79,7 @@ import { screenSectionMeta } from '../section/screenSectionMeta';
|
|
|
78
79
|
import { sectionHeaderMeta } from '../section/sectionHeaderMeta';
|
|
79
80
|
import { selectableItemMeta, selectionProviderMeta } from '../selection/meta';
|
|
80
81
|
import { skeletonCardMeta, skeletonListMeta, skeletonMeta, skeletonTextMeta, } from '../skeleton/skeletonMeta';
|
|
82
|
+
import { spatialGridMeta } from '../spatial-grid/meta';
|
|
81
83
|
import { surfaceMeta } from '../surface/surfaceMeta';
|
|
82
84
|
import { cardBackMeta, cardHandMeta, playingCardMeta, pokerTrainingTableMeta, tabletopTableMeta, } from '../tabletop/meta';
|
|
83
85
|
import { tabListMeta } from '../tabs/tabListMeta';
|
|
@@ -185,6 +187,8 @@ export const ZORA_COMPONENT_META = finalizeFeatureMetadata({
|
|
|
185
187
|
Explorer: explorerMeta,
|
|
186
188
|
FileExplorer: fileExplorerMeta,
|
|
187
189
|
MediaExplorer: mediaExplorerMeta,
|
|
190
|
+
GridLineOverlay: gridLineOverlayMeta,
|
|
191
|
+
GridRuler: gridRulerMeta,
|
|
188
192
|
GridView: gridViewMeta,
|
|
189
193
|
TileGrid: tileGridMeta,
|
|
190
194
|
Hero: heroMeta,
|
|
@@ -202,6 +206,7 @@ export const ZORA_COMPONENT_META = finalizeFeatureMetadata({
|
|
|
202
206
|
ScanOverlay: scanOverlayMeta,
|
|
203
207
|
SectionHeader: sectionHeaderMeta,
|
|
204
208
|
SelectableItem: selectableItemMeta,
|
|
209
|
+
SpatialGrid: spatialGridMeta,
|
|
205
210
|
SelectionProvider: selectionProviderMeta,
|
|
206
211
|
PaletteItem: paletteItemMeta,
|
|
207
212
|
Timeline: timelineMeta,
|