@ankhorage/zora 25.8.14 → 25.8.15

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 (46) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/features/button/utils/resolveButtonThemeRecipe.d.ts +1 -1
  4. package/dist/features/registry/ZORA_BASE_COMPONENT_REGISTRY.d.ts +4 -0
  5. package/dist/features/registry/ZORA_BASE_COMPONENT_REGISTRY.d.ts.map +1 -0
  6. package/dist/features/registry/ZORA_BASE_COMPONENT_REGISTRY.js +187 -0
  7. package/dist/features/registry/ZORA_BASE_COMPONENT_REGISTRY.js.map +1 -0
  8. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts +1 -0
  9. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts.map +1 -1
  10. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +4 -185
  11. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
  12. package/dist/features/registry/createZoraComponentRegistry.d.ts +4 -0
  13. package/dist/features/registry/createZoraComponentRegistry.d.ts.map +1 -0
  14. package/dist/features/registry/createZoraComponentRegistry.js +6 -0
  15. package/dist/features/registry/createZoraComponentRegistry.js.map +1 -0
  16. package/dist/features/registry/public.d.ts +2 -0
  17. package/dist/features/registry/public.d.ts.map +1 -1
  18. package/dist/features/registry/public.js +2 -0
  19. package/dist/features/registry/public.js.map +1 -1
  20. package/dist/features/registry/readerFreeRegistry.d.ts +3 -0
  21. package/dist/features/registry/readerFreeRegistry.d.ts.map +1 -0
  22. package/dist/features/registry/readerFreeRegistry.js +3 -0
  23. package/dist/features/registry/readerFreeRegistry.js.map +1 -0
  24. package/dist/index.d.ts +1 -126
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -77
  27. package/dist/index.js.map +1 -1
  28. package/dist/readerFree.d.ts +129 -0
  29. package/dist/readerFree.d.ts.map +1 -0
  30. package/dist/readerFree.js +79 -0
  31. package/dist/readerFree.js.map +1 -0
  32. package/package.json +16 -1
  33. package/src/features/layout/public.test.ts +2 -1
  34. package/src/features/progress/adapters/inbound/ProgressRing.test.ts +6 -4
  35. package/src/features/reader/adapters/inbound/Reader.test.ts +1 -1
  36. package/src/features/reader/utils/resolveReaderProgress.test.ts +1 -1
  37. package/src/features/registry/ZORA_BASE_COMPONENT_REGISTRY.ts +236 -0
  38. package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +4 -233
  39. package/src/features/registry/createZoraComponentRegistry.ts +9 -0
  40. package/src/features/registry/public.ts +2 -0
  41. package/src/features/registry/readerFreeRegistry.ts +2 -0
  42. package/src/features/registry/registry.test.ts +36 -5
  43. package/src/features/uploader/public.test.ts +3 -2
  44. package/src/index.ts +1 -533
  45. package/src/interactionPolicy.test.ts +1 -1
  46. package/src/readerFree.ts +538 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readerFree.js","sourceRoot":"","sources":["../src/readerFree.ts"],"names":[],"mappings":"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","sourcesContent":["export {\n Accordion,\n AccordionItem,\n type AccordionItemProps,\n type AccordionMode,\n type AccordionMultipleProps,\n type AccordionProps,\n type AccordionSingleProps,\n} from './features/accordion/public';\nexport {\n ActivityIndicator,\n type ActivityIndicatorProps,\n} from './features/activity-indicator/public';\nexport type { AppBarMode, AppBarOverflowMenu, AppBarProps } from './features/app-bar/public';\nexport { AppBar } from './features/app-bar/public';\nexport { AppHeader, type AppHeaderProps } from './features/app-header/public';\nexport type {\n AuthFormBaseProps,\n AuthIdentifierKind,\n AuthScreenMode,\n AuthScreenProps,\n ForgotPasswordFormProps,\n ForgotPasswordFormValues,\n OAuthProviderButtonProps,\n OAuthProviderIconSpec,\n OAuthProviderItem,\n OAuthProviderListLayout,\n OAuthProviderListProps,\n OtpFormProps,\n OtpFormValues,\n SignInFormProps,\n SignInFormValues,\n SignUpFormField,\n SignUpFormProps,\n SignUpFormValues,\n} from './features/auth/public';\nexport {\n AuthScreen,\n DEFAULT_OAUTH_PROVIDER_ICONS,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n resolveOAuthProviderIcon,\n resolveOAuthProviderLabel,\n SignInForm,\n SignUpForm,\n} from './features/auth/public';\nexport type { AvatarProps, AvatarShape, AvatarSize } from './features/avatar/public';\nexport type { AvatarGroupItem, AvatarGroupProps } from './features/avatar/public';\nexport { Avatar, resolveAvatarInitials } from './features/avatar/public';\nexport { AvatarGroup } from './features/avatar/public';\nexport type { BadgeProps } from './features/badge/public';\nexport { Badge } from './features/badge/public';\nexport type { BottomSheetProps } from './features/bottom-sheet/public';\nexport { BottomSheet } from './features/bottom-sheet/public';\nexport {\n type BreadcrumbItem,\n type BreadcrumbPressEvent,\n Breadcrumbs,\n type BreadcrumbsProps,\n} from './features/breadcrumbs/public';\nexport type { ButtonProps } from './features/button/public';\nexport type {\n ButtonGroupAlign,\n ButtonGroupOrientation,\n ButtonGroupProps,\n} from './features/button/public';\nexport type { IconButtonProps } from './features/button/public';\nexport { Button } from './features/button/public';\nexport { ButtonGroup } from './features/button/public';\nexport { IconButton } from './features/button/public';\nexport type { CardProps } from './features/card/public';\nexport type { MediaCardImageProps, MediaCardProps } from './features/card/public';\nexport type { MetricCardProps } from './features/card/public';\nexport type {\n PostAction,\n PostAuthor,\n PostAuthorAvatar,\n PostCardMedia,\n PostCardProps,\n} from './features/card/public';\nexport type { ProductCardProps } from './features/card/public';\nexport { Card } from './features/card/public';\nexport { MediaCard } from './features/card/public';\nexport { MetricCard } from './features/card/public';\nexport { PostCard } from './features/card/public';\nexport { ProductCard } from './features/card/public';\nexport type {\n ChatListAvatar,\n ChatListItemProps,\n MessageBubbleAuthor,\n MessageBubbleAvatar,\n MessageBubbleDirection,\n MessageBubbleProps,\n MessageBubbleStatus,\n} from './features/chat/public';\nexport { ChatListItem, MessageBubble } from './features/chat/public';\nexport type {\n ChessBoardColorOverrides,\n ChessBoardColorScheme,\n ChessBoardOrientation,\n ChessBoardProps,\n ChessMoveAttempt,\n ChessMoveResult,\n ChessPieceCode,\n ChessPieceRenderContext,\n ChessPieceRenderer,\n ChessPieceState,\n ChessPromotionPiece,\n ChessSquareId,\n OpeningBookColorOverrides,\n OpeningBookColorScheme,\n OpeningBookMove,\n OpeningBookProps,\n} from './features/chess/public';\nexport type { ChessColorThemeShape } from './features/chess/public';\nexport { ChessBoard, chessBoardMeta, OpeningBook, openingBookMeta } from './features/chess/public';\nexport {\n chessSquares,\n createBoardSquares,\n createChessBoardColorScheme,\n createOpeningBookColorScheme,\n getLegalTargets,\n getSquareFile,\n getSquareRank,\n isLightSquare,\n readChessPieces,\n tryMove,\n} from './features/chess/public';\nexport type { ChipProps } from './features/chip/public';\nexport type { ChipGroupItem, ChipGroupProps } from './features/chip/public';\nexport { Chip } from './features/chip/public';\nexport { ChipGroup } from './features/chip/public';\nexport type {\n CollectionEditorProps,\n CollectionEditorRenderItemProps,\n} from './features/collection-editor/public';\nexport { CollectionEditor } from './features/collection-editor/public';\nexport type {\n ContentRailControlPressEvent,\n ContentRailDirection,\n ContentRailItemSize,\n ContentRailMotion,\n ContentRailProps,\n ContentRailSpacing,\n ContentRailVisibleRangeChangeEvent,\n} from './features/content-rail/public';\nexport { ContentRail } from './features/content-rail/public';\nexport type {\n DataTableCellContext,\n DataTableColumn,\n DataTableColumnAlign,\n DataTableDensity,\n DataTableProps,\n DataTableRowAction,\n DataTableSortDirection,\n DataTableSortState,\n} from './features/data-table/public';\nexport { DataTable } from './features/data-table/public';\nexport {\n DatePicker,\n type DatePickerProps,\n type DatePickerValue,\n} from './features/date-picker/public';\nexport { Dialog, type DialogProps } from './features/dialog/public';\nexport {\n EmptyState,\n type EmptyStateAction,\n type EmptyStateProps,\n} from './features/empty-state/public';\nexport type {\n ExplorerActivateEvent,\n ExplorerItem,\n ExplorerItemKind,\n ExplorerProps,\n ExplorerSelectionChangeEvent,\n ExplorerSelectionMode,\n} from './features/explorer/public';\nexport {\n Explorer,\n FileExplorer,\n MediaExplorer,\n resolveExplorerSelection,\n} from './features/explorer/public';\nexport {\n Checkbox,\n CheckboxGroup,\n type CheckboxGroupOption,\n type CheckboxGroupProps,\n type CheckboxProps,\n} from './features/form/checkbox/public';\nexport type {\n FieldProps,\n FormActionsProps,\n FormErrorProps,\n FormErrors,\n FormFieldConfig,\n FormFieldInputType,\n FormProps,\n FormValidationErrors,\n FormValidationResult,\n FormValues,\n UseFormControllerOptions,\n UseFormControllerResult,\n ValidationRule,\n} from './features/form/public';\nexport {\n Field,\n Form,\n FormActions,\n FormError,\n hasRequiredRule,\n useFormController,\n validateField,\n validateFields,\n validateValue,\n} from './features/form/public';\nexport {\n Radio,\n RadioGroup,\n type RadioGroupOption,\n type RadioGroupProps,\n type RadioProps,\n} from './features/form/radio/public';\nexport { SearchInput, type SearchInputProps } from './features/form/search-input/public';\nexport { Select, type SelectOption, type SelectProps } from './features/form/select/public';\nexport { Switch, type SwitchProps } from './features/form/switch/public';\nexport {\n TextInput,\n type TextInputProps,\n type TextInputTrailingAction,\n} from './features/form/text-input/public';\nexport type {\n GameEntityEasing,\n GameEntityMotionProps,\n GameEntityProps,\n GameFieldProps,\n GameInputZoneProps,\n GameKeyboardBinding,\n GameMeasurementProbeProps,\n GameOverlayPlacement,\n GameOverlayProps,\n GamePointerEvents,\n GameProps,\n} from './features/game/public';\nexport {\n Game,\n GameEntity,\n GameField,\n GameInputZone,\n GameMeasurementProbe,\n GameOverlay,\n} from './features/game/public';\nexport type {\n GradientColor,\n GradientColors,\n GradientLocations,\n GradientPoint,\n GradientProps,\n GradientRenderer,\n GradientRendererProps,\n GradientRendererProviderProps,\n} from './features/gradient/public';\nexport { Gradient, GradientRendererProvider } from './features/gradient/public';\nexport {\n createGridInteractionsController,\n type GridInteractionIntent,\n type GridInteractionItem,\n type GridInteractionPointer,\n GridInteractions,\n type GridInteractionsController,\n type GridInteractionsControllerProps,\n type GridInteractionSnap,\n type GridInteractionsProps,\n} from './features/grid-interactions/public';\nexport type {\n GridGuide,\n GridLineOverlayProps,\n GridRulerMark,\n GridRulerProps,\n GridRulerTickSource,\n} from './features/grid-rulers/public';\nexport { GridLineOverlay, GridRuler, resolveGridRulerMarks } from './features/grid-rulers/public';\nexport type { GridViewProps, TileGridItem, TileGridProps } from './features/grid-view/public';\nexport { GridView, layoutTileGrid, TileGrid } from './features/grid-view/public';\nexport {\n Hero,\n type HeroAction,\n type HeroAlign,\n type HeroLayout,\n type HeroProps,\n type HeroTone,\n} from './features/hero/public';\nexport type { IconProps } from './features/icon/public';\nexport { Icon } from './features/icon/public';\nexport type { ImageFit, ImageProps, SurfaceImageSource } from './features/image/public';\nexport { Image } from './features/image/public';\nexport {\n KeyboardAvoidingView,\n type KeyboardAvoidingViewBehavior,\n type KeyboardAvoidingViewProps,\n} from './features/keyboard-avoiding-view/public';\nexport type {\n AppShellProps,\n DividerProps,\n GridProps,\n ScreenProps,\n ScrollViewProps,\n ViewProps,\n} from './features/layout/public';\nexport { AppShell, Divider, Grid, Screen, ScrollView, View } from './features/layout/public';\nexport type {\n ManifestListProps,\n ManifestListSection,\n ManifestSectionListProps,\n} from './features/list/public';\nexport type {\n ListChildrenProps,\n ListItemProps,\n ListItemsProps,\n ListItemVariant,\n ListProps,\n ListSectionProps,\n} from './features/list/public';\nexport { FlatList, SectionList } from './features/list/public';\nexport { List, ListItem, ListSection } from './features/list/public';\nexport type { MatrixGridProps } from './features/matrix-grid/public';\nexport { MatrixGrid } from './features/matrix-grid/public';\nexport { MissingElement, type MissingElementProps } from './features/missing-element/public';\nexport { Pagination, type PaginationProps } from './features/pagination/public';\nexport type { PaletteItemProps } from './features/palette-item/public';\nexport { PaletteItem } from './features/palette-item/public';\nexport {\n PopoverMenu,\n type PopoverMenuAction,\n type PopoverMenuActionIntent,\n type PopoverMenuProps,\n} from './features/popover-menu/public';\nexport {\n Progress,\n type ProgressProps,\n ProgressRing,\n type ProgressRingProps,\n} from './features/progress/public';\nexport { Rating, type RatingProps } from './features/rating/public';\nexport type {\n ZoraBindableComponentType,\n ZoraComponentBlueprint,\n ZoraComponentCategory,\n ZoraComponentEventMeta,\n ZoraComponentEventPayloadFieldMeta,\n ZoraComponentEventPayloadFieldType,\n ZoraComponentEventPayloadKind,\n ZoraComponentI18nMeta,\n ZoraComponentManifestPolicy,\n ZoraComponentMeta,\n ZoraComponentMetaRegistry,\n ZoraComponentPropArrayItemSchema,\n ZoraComponentPropAuthoring,\n ZoraComponentPropSchema,\n ZoraComponentPropType,\n ZoraComponentPropValue,\n ZoraComponentSlotMeta,\n ZoraThemeRecipeBooleanFieldMeta,\n ZoraThemeRecipeChoiceFieldMeta,\n ZoraThemeRecipeFieldMeta,\n ZoraThemeRecipeKind,\n ZoraThemeRecipeMeta,\n ZoraThemeRecipeMetaRegistry,\n ZoraThemeRecipeTokenFieldMeta,\n ZoraThemeTokenFamily,\n} from './features/registry';\nexport {\n ZORA_BINDABLE_COMPONENT_META,\n ZORA_COMPONENT_META,\n ZORA_THEME_RECIPE_META,\n ZORA_THEME_TOKEN_FAMILIES,\n} from './features/registry';\nexport {\n createZoraComponentRegistry,\n ZORA_BASE_COMPONENT_REGISTRY,\n} from './features/registry/readerFreeRegistry';\nexport type {\n BarcodeScannerViewProps,\n BarcodeScanResult,\n CameraPermissionStatus,\n CameraPermissionViewProps,\n ScanOverlayProps,\n} from './features/scanner/public';\nexport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from './features/scanner/public';\nexport {\n ScreenSection,\n type ScreenSectionProps,\n SectionHeader,\n type SectionHeaderProps,\n} from './features/section/public';\nexport type {\n SelectableItemProps,\n SelectableItemState,\n SelectionIntent,\n SelectionMode,\n SelectionProviderProps,\n SelectionTrigger,\n UseSelectionResult,\n} from './features/selection/public';\nexport { SelectableItem, SelectionProvider, useSelection } from './features/selection/public';\nexport {\n Skeleton,\n SkeletonCard,\n type SkeletonCardProps,\n type SkeletonDimension,\n SkeletonList,\n type SkeletonListProps,\n type SkeletonListVariant,\n type SkeletonProps,\n type SkeletonRadius,\n SkeletonText,\n type SkeletonTextProps,\n} from './features/skeleton/public';\nexport type {\n SpatialGridItem,\n SpatialGridItemState,\n SpatialGridProps,\n} from './features/spatial-grid/public';\nexport { SpatialGrid } from './features/spatial-grid/public';\nexport type { SurfaceProps, SurfaceVariant } from './features/surface/public';\nexport { Surface } from './features/surface/public';\nexport type {\n CardBackProps,\n CardHandProps,\n CreatePokerTrainingTableStateOptions,\n CreateTabletopGameSeatsInput,\n PlayingCardProps,\n PlayingCardSuit,\n PlayingCardValue,\n PokerTrainingPlayer,\n PokerTrainingTableProps,\n PokerTrainingTableSize,\n PokerTrainingTableState,\n PokerTrainingTaskTableData,\n TabletopCardSize,\n TabletopColorOverrides,\n TabletopColorScheme,\n TabletopGameParticipantState,\n TabletopGameSeatDefinition,\n TabletopGameSeatPresentation,\n TabletopSeatCount,\n TabletopSeatState,\n TabletopShape,\n TabletopTableProps,\n} from './features/tabletop/public';\nexport {\n CardBack,\n CardHand,\n createPokerTrainingTableState,\n createTabletopColorScheme,\n createTabletopGameSeats,\n PlayingCard,\n PokerTrainingTable,\n pokerTrainingTableMeta,\n TabletopTable,\n tabletopTableMeta,\n} from './features/tabletop/public';\nexport {\n Tab,\n TabList,\n type TabListProps,\n TabPanel,\n type TabPanelProps,\n type TabProps,\n Tabs,\n type TabsProps,\n} from './features/tabs/public';\nexport type {\n ZoraColor,\n ZoraEmphasis,\n ZoraPaletteColor,\n ZoraStatusColor,\n} from './features/theme/colorModel';\nexport {\n ZORA_COLORS,\n ZORA_EMPHASES,\n ZORA_PALETTE_COLORS,\n ZORA_STATUS_COLORS,\n} from './features/theme/colorModel';\nexport * from './features/theme/public';\nexport * from './features/theme/runtime';\nexport type { TimeGridInterval, TimeGridLane, TimeGridProps } from './features/time-grid/public';\nexport { resolveTimeGridVisibleIntervals, TimeGrid } from './features/time-grid/public';\nexport {\n TimePicker,\n type TimePickerProps,\n type TimePickerValue,\n} from './features/time-picker/public';\nexport type { TimelineItem, TimelineProps } from './features/timeline/public';\nexport { Timeline } from './features/timeline/public';\nexport type {\n ToastController,\n ToastOptions,\n ToastProps,\n ToastProviderProps,\n ToastStatus,\n} from './features/toast/public';\nexport { Toast, ToastProvider, useToast } from './features/toast/public';\nexport { Toolbar, type ToolbarProps } from './features/toolbar/public';\nexport type { TreeItemNode, TreeItemRenderProps, TreeViewProps } from './features/tree-view/public';\nexport { TreeItem, TreeView } from './features/tree-view/public';\nexport type {\n HeadingAlign,\n HeadingColor,\n HeadingEmphasis,\n HeadingLevel,\n HeadingProps,\n HeadingSize,\n HeadingWeight,\n} from './features/typography/public';\nexport type {\n TextAlign,\n TextColor,\n TextEmphasis,\n TextProps,\n TextVariant,\n TextWeight,\n} from './features/typography/public';\nexport { Heading } from './features/typography/public';\nexport { Text } from './features/typography/public';\nexport type {\n UploadAsset,\n UploadAssetBase,\n UploaderExplorerItem,\n UploaderProps,\n UploadProgressContext,\n UploadType,\n ValidateUploadAssetInput,\n} from './features/uploader/public';\nexport { Uploader, validateUploadAsset } from './features/uploader/public';\nexport type { ZoraComponentRegistry } from './types/registry';\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "25.8.14",
4
+ "version": "25.8.15",
5
5
  "description": "Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.",
6
6
  "homepage": "https://github.com/ankhorage/zora#readme",
7
7
  "bugs": {
@@ -93,6 +93,20 @@
93
93
  "import": "./dist/features/registry/index.js",
94
94
  "default": "./dist/features/registry/index.js"
95
95
  },
96
+ "./registry": {
97
+ "react-native": "./src/features/registry/readerFreeRegistry.ts",
98
+ "browser": "./src/features/registry/readerFreeRegistry.ts",
99
+ "types": "./dist/features/registry/readerFreeRegistry.d.ts",
100
+ "import": "./dist/features/registry/readerFreeRegistry.js",
101
+ "default": "./dist/features/registry/readerFreeRegistry.js"
102
+ },
103
+ "./reader-free": {
104
+ "react-native": "./src/readerFree.ts",
105
+ "browser": "./src/readerFree.ts",
106
+ "types": "./dist/readerFree.d.ts",
107
+ "import": "./dist/readerFree.js",
108
+ "default": "./dist/readerFree.js"
109
+ },
96
110
  "./capabilities": {
97
111
  "types": "./dist/capabilities/index.d.ts",
98
112
  "import": "./dist/capabilities/index.js",
@@ -124,6 +138,7 @@
124
138
  "knip:check": "ankhorage-knip",
125
139
  "examples:validate": "bun scripts/validate-example-projects.ts",
126
140
  "expo:candidate": "bun scripts/validate-expo-candidate.ts",
141
+ "expo:reader-free": "bun scripts/validate-reader-free-expo.ts",
127
142
  "lint": "ankhorage-eslint . --max-warnings=0",
128
143
  "lint:fix": "ankhorage-eslint . --fix --max-warnings=0",
129
144
  "format": "ankhorage-prettier --write .",
@@ -6,6 +6,7 @@ import { describe, expect, test } from 'bun:test';
6
6
  const srcDir = join(import.meta.dir, '../..');
7
7
  const publicSource = readFileSync(join(import.meta.dir, 'public.ts'), 'utf8');
8
8
  const rootSource = readFileSync(join(srcDir, 'index.ts'), 'utf8');
9
+ const readerFreeSource = readFileSync(join(srcDir, 'readerFree.ts'), 'utf8');
9
10
 
10
11
  const removedPublicNames = [
11
12
  'Box',
@@ -27,7 +28,7 @@ describe('canonical layout boundary', () => {
27
28
  }
28
29
 
29
30
  expect(publicSource).not.toContain('TileGrid');
30
- expect(rootSource).toContain(
31
+ expect(`${rootSource}\n${readerFreeSource}`).toContain(
31
32
  "export { GridView, layoutTileGrid, TileGrid } from './features/grid-view/public';",
32
33
  );
33
34
 
@@ -4,18 +4,20 @@ import { progressRingMeta } from '../../progressMeta';
4
4
 
5
5
  describe('ProgressRing public contract', () => {
6
6
  test('is exported from the component and package entrypoints', async () => {
7
- const [componentIndex, rootIndex] = await Promise.all([
7
+ const [componentIndex, rootIndex, readerFreeIndex] = await Promise.all([
8
8
  Bun.file('src/features/progress/public.ts').text(),
9
9
  Bun.file('src/index.ts').text(),
10
+ Bun.file('src/readerFree.ts').text(),
10
11
  ]);
11
12
 
12
13
  expect(componentIndex).toContain(
13
14
  "export { ProgressRing } from './adapters/inbound/ProgressRing';",
14
15
  );
15
16
  expect(componentIndex).toContain('ProgressRingProps');
16
- expect(rootIndex).toContain("} from './features/progress/public';");
17
- expect(rootIndex).toContain('type ProgressProps');
18
- expect(rootIndex).toContain('type ProgressRingProps');
17
+ const rootSurface = `${rootIndex}\n${readerFreeIndex}`;
18
+ expect(rootSurface).toContain("} from './features/progress/public';");
19
+ expect(rootSurface).toContain('type ProgressProps');
20
+ expect(rootSurface).toContain('type ProgressRingProps');
19
21
  });
20
22
 
21
23
  test('exposes native progress semantics and uses canonical normalization and colors', async () => {
@@ -30,7 +30,7 @@ describe('Reader public contract', () => {
30
30
  const source = await Bun.file('src/index.ts').text();
31
31
 
32
32
  expect(source).toContain("from './features/reader/public';");
33
- expect(source).toContain('Reader, resolveReaderProgress');
33
+ expect(source).toContain('resolveReaderProgress');
34
34
  expect(source).not.toContain('ReaderSurface');
35
35
  });
36
36
 
@@ -6,7 +6,7 @@ describe('resolveReaderProgress', () => {
6
6
  test('is exported from the package root', async () => {
7
7
  const source = await Bun.file('src/index.ts').text();
8
8
 
9
- expect(source).toContain('Reader, resolveReaderProgress');
9
+ expect(source).toContain('resolveReaderProgress');
10
10
  });
11
11
 
12
12
  test('clamps an explicit progress value', () => {
@@ -0,0 +1,236 @@
1
+ import type { InteractionPolicyProps } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+
4
+ import type { ZoraComponentRegistry } from '../../types/registry';
5
+ import { Accordion, AccordionItem } from '../accordion/public';
6
+ import { ActivityIndicator } from '../activity-indicator/public';
7
+ import { AppBar } from '../app-bar/public';
8
+ import { AppHeader } from '../app-header/public';
9
+ import {
10
+ AuthScreen,
11
+ ForgotPasswordForm,
12
+ OAuthProviderButton,
13
+ OAuthProviderList,
14
+ OtpForm,
15
+ SignInForm,
16
+ SignUpForm,
17
+ } from '../auth/public';
18
+ import { Avatar, AvatarGroup } from '../avatar/public';
19
+ import { Badge } from '../badge/public';
20
+ import { BottomSheet } from '../bottom-sheet/public';
21
+ import { Breadcrumbs } from '../breadcrumbs/public';
22
+ import { Button, ButtonGroup, IconButton } from '../button/public';
23
+ import { Card, MediaCard, MetricCard, PostCard, ProductCard } from '../card/public';
24
+ import { ChatListItem, MessageBubble } from '../chat/public';
25
+ import { ChessBoard, OpeningBook } from '../chess/public';
26
+ import { Chip, ChipGroup } from '../chip/public';
27
+ import { CollectionEditor } from '../collection-editor/public';
28
+ import { ContentRail } from '../content-rail/public';
29
+ import { DataTable } from '../data-table/public';
30
+ import { DatePicker } from '../date-picker/public';
31
+ import { Dialog } from '../dialog/public';
32
+ import { EmptyState } from '../empty-state/public';
33
+ import { Explorer, FileExplorer, MediaExplorer } from '../explorer/public';
34
+ import { Checkbox, CheckboxGroup } from '../form/checkbox/public';
35
+ import { Field, Form, FormActions, FormError } from '../form/public';
36
+ import { Radio, RadioGroup } from '../form/radio/public';
37
+ import { SearchInput } from '../form/search-input/public';
38
+ import { Select } from '../form/select/public';
39
+ import { Switch } from '../form/switch/public';
40
+ import { TextInput } from '../form/text-input/public';
41
+ import {
42
+ Game,
43
+ GameEntity,
44
+ GameField,
45
+ GameInputZone,
46
+ GameMeasurementProbe,
47
+ GameOverlay,
48
+ } from '../game/public';
49
+ import { Gradient } from '../gradient/public';
50
+ import { GridInteractions } from '../grid-interactions/public';
51
+ import { GridLineOverlay, GridRuler } from '../grid-rulers/public';
52
+ import { GridView, TileGrid } from '../grid-view/public';
53
+ import { Hero } from '../hero/public';
54
+ import { Icon } from '../icon/public';
55
+ import { Image } from '../image/public';
56
+ import { KeyboardAvoidingView } from '../keyboard-avoiding-view/public';
57
+ import { AppShell, Divider, Grid, Screen, ScrollView, View } from '../layout/public';
58
+ import { FlatList, List, ListItem, ListSection, SectionList } from '../list/public';
59
+ import { MatrixGrid } from '../matrix-grid/public';
60
+ import { MissingElement } from '../missing-element/public';
61
+ import { Pagination } from '../pagination/public';
62
+ import { PaletteItem } from '../palette-item/public';
63
+ import { PopoverMenu } from '../popover-menu/public';
64
+ import { Progress, ProgressRing } from '../progress/public';
65
+ import { Rating } from '../rating/public';
66
+ import { BarcodeScannerView, CameraPermissionView, ScanOverlay } from '../scanner/public';
67
+ import { ScreenSection, SectionHeader } from '../section/public';
68
+ import { SelectableItem } from '../selection/public';
69
+ import { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from '../skeleton/public';
70
+ import { SpatialGrid } from '../spatial-grid/public';
71
+ import { Surface } from '../surface/public';
72
+ import {
73
+ CardBack,
74
+ CardHand,
75
+ PlayingCard,
76
+ PokerTrainingTable,
77
+ TabletopTable,
78
+ } from '../tabletop/public';
79
+ import { Tab, TabList, TabPanel, Tabs } from '../tabs/public';
80
+ import { ThemeModeToggle } from '../theme/adapters/inbound/ThemeModeToggle';
81
+ import { TimeGrid } from '../time-grid/public';
82
+ import { TimePicker } from '../time-picker/public';
83
+ import { Timeline } from '../timeline/public';
84
+ import { Toast } from '../toast/public';
85
+ import { Toolbar } from '../toolbar/public';
86
+ import { TreeItem, TreeView } from '../tree-view/public';
87
+ import { Heading, Text } from '../typography/public';
88
+ import { Uploader } from '../uploader/public';
89
+
90
+ type ComponentPropsFor<K extends keyof typeof _ZORA_BASE_COMPONENT_REGISTRY> = React.ComponentProps<
91
+ (typeof _ZORA_BASE_COMPONENT_REGISTRY)[K]
92
+ >;
93
+
94
+ type AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P
95
+ ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>
96
+ ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps
97
+ ? true
98
+ : false
99
+ : false
100
+ : false;
101
+
102
+ type RegistryInteractionPolicyContract = {
103
+ [K in keyof typeof _ZORA_BASE_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<
104
+ ComponentPropsFor<K>
105
+ >;
106
+ };
107
+
108
+ type _AssertTrue<T extends true> = T;
109
+ type _RegistryInteractionPolicyCheck = _AssertTrue<
110
+ RegistryInteractionPolicyContract[keyof typeof _ZORA_BASE_COMPONENT_REGISTRY]
111
+ >;
112
+
113
+ const _ZORA_BASE_COMPONENT_REGISTRY = {
114
+ Accordion,
115
+ AccordionItem,
116
+ ActivityIndicator,
117
+ AppBar,
118
+ AppHeader,
119
+ Avatar,
120
+ AvatarGroup,
121
+ Badge,
122
+ Breadcrumbs,
123
+ Button,
124
+ ButtonGroup,
125
+ Card,
126
+ Checkbox,
127
+ CheckboxGroup,
128
+ Chip,
129
+ ChipGroup,
130
+ DataTable,
131
+ DatePicker,
132
+ Dialog,
133
+ Form,
134
+ FormActions,
135
+ FormError,
136
+ Field,
137
+ Gradient,
138
+ Game,
139
+ GameEntity,
140
+ GameField,
141
+ GameInputZone,
142
+ GameMeasurementProbe,
143
+ GameOverlay,
144
+ Heading,
145
+ Icon,
146
+ IconButton,
147
+ Image,
148
+ KeyboardAvoidingView,
149
+ TextInput,
150
+ MediaCard,
151
+ MetricCard,
152
+ Pagination,
153
+ PopoverMenu,
154
+ Progress,
155
+ ProgressRing,
156
+ Radio,
157
+ RadioGroup,
158
+ Rating,
159
+ SearchInput,
160
+ Select,
161
+ Switch,
162
+ Skeleton,
163
+ SkeletonCard,
164
+ SkeletonList,
165
+ SkeletonText,
166
+ Tab,
167
+ TabList,
168
+ TabPanel,
169
+ Tabs,
170
+ Text,
171
+ TimePicker,
172
+ Toast,
173
+ Toolbar,
174
+ Uploader,
175
+ BottomSheet,
176
+ FlatList,
177
+ SectionList,
178
+ ScrollView,
179
+ View,
180
+ ThemeModeToggle,
181
+ Divider,
182
+ Grid,
183
+ Surface,
184
+ AppShell,
185
+ Screen,
186
+ ScreenSection,
187
+ AuthScreen,
188
+ ForgotPasswordForm,
189
+ OAuthProviderButton,
190
+ OAuthProviderList,
191
+ OtpForm,
192
+ SignInForm,
193
+ SignUpForm,
194
+ ChatListItem,
195
+ ChessBoard,
196
+ CollectionEditor,
197
+ ContentRail,
198
+ EmptyState,
199
+ Explorer,
200
+ FileExplorer,
201
+ GridLineOverlay,
202
+ GridRuler,
203
+ GridInteractions,
204
+ GridView,
205
+ TileGrid,
206
+ TimeGrid,
207
+ MatrixGrid,
208
+ MediaExplorer,
209
+ Hero,
210
+ List,
211
+ ListItem,
212
+ ListSection,
213
+ MessageBubble,
214
+ OpeningBook,
215
+ MissingElement,
216
+ PostCard,
217
+ ProductCard,
218
+ BarcodeScannerView,
219
+ CameraPermissionView,
220
+ ScanOverlay,
221
+ SectionHeader,
222
+ SelectableItem,
223
+ SpatialGrid,
224
+ PaletteItem,
225
+ CardBack,
226
+ CardHand,
227
+ PlayingCard,
228
+ TabletopTable,
229
+ PokerTrainingTable,
230
+ Timeline,
231
+ TreeItem,
232
+ TreeView,
233
+ } as const satisfies ZoraComponentRegistry;
234
+
235
+ /*** The core ZORA runtime component registry, excluding separately selected feature entries such as Reader. */
236
+ export const ZORA_BASE_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_BASE_COMPONENT_REGISTRY;
@@ -1,237 +1,8 @@
1
- import type { InteractionPolicyProps } from '@ankhorage/surface';
2
- import type React from 'react';
3
-
4
1
  import type { ZoraComponentRegistry } from '../../types/registry';
5
- import { Accordion, AccordionItem } from '../accordion/public';
6
- import { ActivityIndicator } from '../activity-indicator/public';
7
- import { AppBar } from '../app-bar/public';
8
- import { AppHeader } from '../app-header/public';
9
- import {
10
- AuthScreen,
11
- ForgotPasswordForm,
12
- OAuthProviderButton,
13
- OAuthProviderList,
14
- OtpForm,
15
- SignInForm,
16
- SignUpForm,
17
- } from '../auth/public';
18
- import { Avatar, AvatarGroup } from '../avatar/public';
19
- import { Badge } from '../badge/public';
20
- import { BottomSheet } from '../bottom-sheet/public';
21
- import { Breadcrumbs } from '../breadcrumbs/public';
22
- import { Button, ButtonGroup, IconButton } from '../button/public';
23
- import { Card, MediaCard, MetricCard, PostCard, ProductCard } from '../card/public';
24
- import { ChatListItem, MessageBubble } from '../chat/public';
25
- import { ChessBoard, OpeningBook } from '../chess/public';
26
- import { Chip, ChipGroup } from '../chip/public';
27
- import { CollectionEditor } from '../collection-editor/public';
28
- import { ContentRail } from '../content-rail/public';
29
- import { DataTable } from '../data-table/public';
30
- import { DatePicker } from '../date-picker/public';
31
- import { Dialog } from '../dialog/public';
32
- import { EmptyState } from '../empty-state/public';
33
- import { Explorer, FileExplorer, MediaExplorer } from '../explorer/public';
34
- import { Checkbox, CheckboxGroup } from '../form/checkbox/public';
35
- import { Field, Form, FormActions, FormError } from '../form/public';
36
- import { Radio, RadioGroup } from '../form/radio/public';
37
- import { SearchInput } from '../form/search-input/public';
38
- import { Select } from '../form/select/public';
39
- import { Switch } from '../form/switch/public';
40
- import { TextInput } from '../form/text-input/public';
41
- import {
42
- Game,
43
- GameEntity,
44
- GameField,
45
- GameInputZone,
46
- GameMeasurementProbe,
47
- GameOverlay,
48
- } from '../game/public';
49
- import { Gradient } from '../gradient/public';
50
- import { GridInteractions } from '../grid-interactions/public';
51
- import { GridLineOverlay, GridRuler } from '../grid-rulers/public';
52
- import { GridView, TileGrid } from '../grid-view/public';
53
- import { Hero } from '../hero/public';
54
- import { Icon } from '../icon/public';
55
- import { Image } from '../image/public';
56
- import { KeyboardAvoidingView } from '../keyboard-avoiding-view/public';
57
- import { AppShell, Divider, Grid, Screen, ScrollView, View } from '../layout/public';
58
- import { FlatList, List, ListItem, ListSection, SectionList } from '../list/public';
59
- import { MatrixGrid } from '../matrix-grid/public';
60
- import { MissingElement } from '../missing-element/public';
61
- import { Pagination } from '../pagination/public';
62
- import { PaletteItem } from '../palette-item/public';
63
- import { PopoverMenu } from '../popover-menu/public';
64
- import { Progress, ProgressRing } from '../progress/public';
65
- import { Rating } from '../rating/public';
66
2
  import { Reader } from '../reader/public';
67
- import { BarcodeScannerView, CameraPermissionView, ScanOverlay } from '../scanner/public';
68
- import { ScreenSection, SectionHeader } from '../section/public';
69
- import { SelectableItem } from '../selection/public';
70
- import { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from '../skeleton/public';
71
- import { SpatialGrid } from '../spatial-grid/public';
72
- import { Surface } from '../surface/public';
73
- import {
74
- CardBack,
75
- CardHand,
76
- PlayingCard,
77
- PokerTrainingTable,
78
- TabletopTable,
79
- } from '../tabletop/public';
80
- import { Tab, TabList, TabPanel, Tabs } from '../tabs/public';
81
- import { ThemeModeToggle } from '../theme/adapters/inbound/ThemeModeToggle';
82
- import { TimeGrid } from '../time-grid/public';
83
- import { TimePicker } from '../time-picker/public';
84
- import { Timeline } from '../timeline/public';
85
- import { Toast } from '../toast/public';
86
- import { Toolbar } from '../toolbar/public';
87
- import { TreeItem, TreeView } from '../tree-view/public';
88
- import { Heading, Text } from '../typography/public';
89
- import { Uploader } from '../uploader/public';
90
-
91
- type ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<
92
- (typeof _ZORA_COMPONENT_REGISTRY)[K]
93
- >;
94
-
95
- type AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P
96
- ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>
97
- ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps
98
- ? true
99
- : false
100
- : false
101
- : false;
3
+ import { createZoraComponentRegistry } from './createZoraComponentRegistry';
102
4
 
103
- type RegistryInteractionPolicyContract = {
104
- [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<
105
- ComponentPropsFor<K>
106
- >;
107
- };
108
-
109
- type _AssertTrue<T extends true> = T;
110
- type _RegistryInteractionPolicyCheck = _AssertTrue<
111
- RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]
112
- >;
113
-
114
- const _ZORA_COMPONENT_REGISTRY = {
115
- Accordion,
116
- AccordionItem,
117
- ActivityIndicator,
118
- AppBar,
119
- AppHeader,
120
- Avatar,
121
- AvatarGroup,
122
- Badge,
123
- Breadcrumbs,
124
- Button,
125
- ButtonGroup,
126
- Card,
127
- Checkbox,
128
- CheckboxGroup,
129
- Chip,
130
- ChipGroup,
131
- DataTable,
132
- DatePicker,
133
- Dialog,
134
- Form,
135
- FormActions,
136
- FormError,
137
- Field,
138
- Gradient,
139
- Game,
140
- GameEntity,
141
- GameField,
142
- GameInputZone,
143
- GameMeasurementProbe,
144
- GameOverlay,
145
- Heading,
146
- Icon,
147
- IconButton,
148
- Image,
149
- KeyboardAvoidingView,
150
- TextInput,
151
- MediaCard,
152
- MetricCard,
153
- Pagination,
154
- PopoverMenu,
155
- Progress,
156
- ProgressRing,
157
- Radio,
158
- RadioGroup,
159
- Rating,
160
- SearchInput,
161
- Select,
162
- Switch,
163
- Skeleton,
164
- SkeletonCard,
165
- SkeletonList,
166
- SkeletonText,
167
- Tab,
168
- TabList,
169
- TabPanel,
170
- Tabs,
171
- Text,
172
- TimePicker,
173
- Toast,
174
- Toolbar,
175
- Uploader,
176
- BottomSheet,
177
- FlatList,
178
- SectionList,
179
- ScrollView,
180
- View,
181
- ThemeModeToggle,
182
- Divider,
183
- Grid,
184
- Surface,
185
- AppShell,
186
- Screen,
187
- ScreenSection,
188
- AuthScreen,
189
- ForgotPasswordForm,
190
- OAuthProviderButton,
191
- OAuthProviderList,
192
- OtpForm,
193
- SignInForm,
194
- SignUpForm,
195
- ChatListItem,
196
- ChessBoard,
197
- CollectionEditor,
198
- ContentRail,
199
- EmptyState,
200
- Explorer,
201
- FileExplorer,
202
- GridLineOverlay,
203
- GridRuler,
204
- GridInteractions,
205
- GridView,
206
- TileGrid,
207
- TimeGrid,
208
- MatrixGrid,
209
- MediaExplorer,
210
- Hero,
211
- List,
212
- ListItem,
213
- ListSection,
214
- MessageBubble,
215
- OpeningBook,
216
- MissingElement,
217
- PostCard,
218
- ProductCard,
5
+ /*** The complete ZORA runtime component registry, including the public Reader component. */
6
+ export const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = createZoraComponentRegistry({
219
7
  Reader,
220
- BarcodeScannerView,
221
- CameraPermissionView,
222
- ScanOverlay,
223
- SectionHeader,
224
- SelectableItem,
225
- SpatialGrid,
226
- PaletteItem,
227
- CardBack,
228
- CardHand,
229
- PlayingCard,
230
- TabletopTable,
231
- PokerTrainingTable,
232
- Timeline,
233
- TreeItem,
234
- TreeView,
235
- } as const satisfies ZoraComponentRegistry;
236
-
237
- export const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;
8
+ });
@@ -0,0 +1,9 @@
1
+ import type { ZoraComponentRegistry } from '../../types/registry';
2
+ import { ZORA_BASE_COMPONENT_REGISTRY } from './ZORA_BASE_COMPONENT_REGISTRY';
3
+
4
+ /*** Build a runtime component registry from ZORA's Reader-free base and explicitly selected feature entries. */
5
+ export function createZoraComponentRegistry(
6
+ extensions: ZoraComponentRegistry = {},
7
+ ): ZoraComponentRegistry {
8
+ return { ...ZORA_BASE_COMPONENT_REGISTRY, ...extensions };
9
+ }
@@ -1 +1,3 @@
1
+ export { createZoraComponentRegistry } from './createZoraComponentRegistry';
2
+ export { ZORA_BASE_COMPONENT_REGISTRY } from './ZORA_BASE_COMPONENT_REGISTRY';
1
3
  export { ZORA_COMPONENT_REGISTRY } from './ZORA_COMPONENT_REGISTRY';
@@ -0,0 +1,2 @@
1
+ export { createZoraComponentRegistry } from './createZoraComponentRegistry';
2
+ export { ZORA_BASE_COMPONENT_REGISTRY } from './ZORA_BASE_COMPONENT_REGISTRY';