@ankhorage/zora 23.4.3 → 24.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/constants/authoring.d.ts +3 -3
  4. package/dist/constants/authoring.d.ts.map +1 -1
  5. package/dist/constants/authoring.js +1 -1
  6. package/dist/constants/authoring.js.map +1 -1
  7. package/dist/features/accordion/accordionItemMeta.d.ts +1 -1
  8. package/dist/features/bottom-sheet/bottomSheetMeta.d.ts +1 -1
  9. package/dist/features/card/cardMeta.d.ts +1 -1
  10. package/dist/features/card/mediaCardMeta.d.ts +1 -1
  11. package/dist/features/card/postCardMeta.d.ts +1 -1
  12. package/dist/features/chat/messageBubbleMeta.d.ts +1 -1
  13. package/dist/features/dialog/dialogMeta.d.ts +2 -2
  14. package/dist/features/gradient/gradientMeta.d.ts +1 -1
  15. package/dist/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.d.ts +1 -1
  16. package/dist/features/layout/gridMeta.d.ts +1 -1
  17. package/dist/features/layout/screenMeta.d.ts +1 -1
  18. package/dist/features/layout/scrollViewMeta.d.ts +1 -1
  19. package/dist/features/layout/viewMeta.d.ts +1 -1
  20. package/dist/features/list/flatListMeta.d.ts +1 -1
  21. package/dist/features/list/sectionListMeta.d.ts +1 -1
  22. package/dist/features/reader/adapters/inbound/Reader.d.ts +9 -0
  23. package/dist/features/reader/adapters/inbound/Reader.d.ts.map +1 -0
  24. package/dist/features/reader/adapters/inbound/{ReaderSurface.js → Reader.js} +33 -9
  25. package/dist/features/reader/adapters/inbound/Reader.js.map +1 -0
  26. package/dist/features/reader/composition/useReaderController.d.ts +24 -0
  27. package/dist/features/reader/composition/useReaderController.d.ts.map +1 -0
  28. package/dist/features/reader/composition/useReaderController.js +73 -0
  29. package/dist/features/reader/composition/useReaderController.js.map +1 -0
  30. package/dist/features/reader/meta.d.ts +5 -9
  31. package/dist/features/reader/meta.d.ts.map +1 -1
  32. package/dist/features/reader/meta.js +3 -7
  33. package/dist/features/reader/meta.js.map +1 -1
  34. package/dist/features/reader/public.d.ts +2 -2
  35. package/dist/features/reader/public.d.ts.map +1 -1
  36. package/dist/features/reader/public.js +1 -1
  37. package/dist/features/reader/public.js.map +1 -1
  38. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +2 -2
  39. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
  40. package/dist/features/registry/bindableComponentMeta.d.ts +5 -9
  41. package/dist/features/registry/bindableComponentMeta.d.ts.map +1 -1
  42. package/dist/features/registry/bindableComponentMeta.js +4 -4
  43. package/dist/features/registry/bindableComponentMeta.js.map +1 -1
  44. package/dist/features/registry/componentMeta.js +2 -2
  45. package/dist/features/registry/componentMeta.js.map +1 -1
  46. package/dist/features/scanner/meta.d.ts +2 -2
  47. package/dist/features/section/screenSectionMeta.d.ts +1 -1
  48. package/dist/features/surface/surfaceMeta.d.ts +1 -1
  49. package/dist/features/tabs/tabPanelMeta.d.ts +1 -1
  50. package/dist/index.d.ts +2 -2
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/types/reader.d.ts +3 -21
  55. package/dist/types/reader.d.ts.map +1 -1
  56. package/dist/types/reader.js.map +1 -1
  57. package/package.json +3 -2
  58. package/src/constants/authoring.ts +1 -1
  59. package/src/features/reader/adapters/inbound/{ReaderSurface.test.ts → Reader.test.ts} +6 -5
  60. package/src/features/reader/adapters/inbound/{ReaderSurface.tsx → Reader.tsx} +67 -33
  61. package/src/features/reader/composition/useReaderController.ts +110 -0
  62. package/src/features/reader/meta.ts +3 -8
  63. package/src/features/reader/public.ts +2 -2
  64. package/src/features/reader/utils/resolveReaderProgress.test.ts +1 -1
  65. package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +2 -2
  66. package/src/features/registry/bindableComponentMeta.test.ts +2 -2
  67. package/src/features/registry/bindableComponentMeta.ts +4 -4
  68. package/src/features/registry/componentMeta.test.ts +5 -5
  69. package/src/features/registry/componentMeta.ts +2 -2
  70. package/src/index.ts +2 -2
  71. package/src/interactionPolicy.test.ts +3 -3
  72. package/src/showcaseCoverage.test.ts +1 -1
  73. package/src/types/reader.ts +16 -29
  74. package/web-dist/chunks/{Accordion-ct805sm7.js → Accordion-0acrkcyd.js} +3 -3
  75. package/web-dist/chunks/{Accordion-m4brcz8v.js → Accordion-122fdtp0.js} +6 -6
  76. package/web-dist/chunks/{Accordion-6xrse5my.js → Accordion-1dah5bqg.js} +1 -1
  77. package/web-dist/chunks/{Accordion-yae3m7g7.js → Accordion-2afa2z5x.js} +4 -4
  78. package/web-dist/chunks/{Accordion-0047zyx7.js → Accordion-2bsecqwf.js} +4 -4
  79. package/web-dist/chunks/{Accordion-basd2gyf.js → Accordion-2csc57rv.js} +2 -2
  80. package/web-dist/chunks/{Accordion-73x0gt11.js → Accordion-2d3hbryv.js} +7 -7
  81. package/web-dist/chunks/{Accordion-8fne0gf9.js → Accordion-2q6p67xe.js} +5 -5
  82. package/web-dist/chunks/{Accordion-axxgq453.js → Accordion-3f5vnfk8.js} +7 -7
  83. package/web-dist/chunks/{Accordion-gkx1kszz.js → Accordion-3hg1wprb.js} +2 -2
  84. package/web-dist/chunks/{Accordion-d24n7srd.js → Accordion-3rv8psbv.js} +4 -4
  85. package/web-dist/chunks/{Accordion-8z7naxj2.js → Accordion-74rt38d4.js} +1 -1
  86. package/web-dist/chunks/{Accordion-2dqpjya2.js → Accordion-7bb37pdc.js} +7 -7
  87. package/web-dist/chunks/{Accordion-adc7k14q.js → Accordion-7q1qf7c0.js} +5 -5
  88. package/web-dist/chunks/{Accordion-zgzrah0a.js → Accordion-7rvtpcwt.js} +6 -6
  89. package/web-dist/chunks/{Accordion-a1ervhyg.js → Accordion-9rhbc32v.js} +14 -14
  90. package/web-dist/chunks/{Accordion-37n4bt3g.js → Accordion-ae7m1dkn.js} +2 -2
  91. package/web-dist/chunks/{Accordion-ekjwm5dw.js → Accordion-ansfkmye.js} +4 -4
  92. package/web-dist/chunks/{Accordion-qyssgtwe.js → Accordion-apwk2wjr.js} +2 -2
  93. package/web-dist/chunks/{Accordion-vjgk1sz7.js → Accordion-avnt7nkz.js} +2 -2
  94. package/web-dist/chunks/{Accordion-wxbh98kp.js → Accordion-brt4drx3.js} +9 -9
  95. package/web-dist/chunks/{Accordion-6ytrt7xj.js → Accordion-cs8k948c.js} +6 -6
  96. package/web-dist/chunks/{Accordion-693gvpde.js → Accordion-egq42kdy.js} +4 -4
  97. package/web-dist/chunks/{Accordion-8bxy3g7a.js → Accordion-fvkwq99h.js} +4 -4
  98. package/web-dist/chunks/{Accordion-mbqtk7y0.js → Accordion-g0c439br.js} +2 -2
  99. package/web-dist/chunks/{Accordion-3m6de80j.js → Accordion-h46676ex.js} +2 -2
  100. package/web-dist/chunks/{Accordion-7y9wt946.js → Accordion-hwd5ntgm.js} +2 -2
  101. package/web-dist/chunks/{Accordion-k6dg8zd2.js → Accordion-jdwwf626.js} +3 -3
  102. package/web-dist/chunks/{Accordion-q9zge7kd.js → Accordion-jkhq422b.js} +2 -2
  103. package/web-dist/chunks/{Accordion-p0fh69qq.js → Accordion-jtrpmvzs.js} +6 -6
  104. package/web-dist/chunks/{Accordion-tdjh81ax.js → Accordion-k8tfv274.js} +6 -6
  105. package/web-dist/chunks/{Accordion-1xpq9bxk.js → Accordion-kcwdwd5z.js} +8 -8
  106. package/web-dist/chunks/{Accordion-v4n4ygwn.js → Accordion-kpap0trj.js} +1 -1
  107. package/web-dist/chunks/{Accordion-rmp9sfra.js → Accordion-kpxyryke.js} +2 -2
  108. package/web-dist/chunks/{Accordion-wgesygtk.js → Accordion-mdc214tk.js} +11 -11
  109. package/web-dist/chunks/{Accordion-nkd7nhyx.js → Accordion-nanvzve9.js} +5 -5
  110. package/web-dist/chunks/{Accordion-ph15h010.js → Accordion-nay7yexy.js} +11 -11
  111. package/web-dist/chunks/{Accordion-9qvmwkxe.js → Accordion-nh0cs9hq.js} +31 -1
  112. package/web-dist/chunks/{Accordion-snyacfyh.js → Accordion-nj9g6p48.js} +9 -9
  113. package/web-dist/chunks/{Accordion-dbxpv5eq.js → Accordion-q1mnv5g8.js} +4 -4
  114. package/web-dist/chunks/{Accordion-1e1nfhtc.js → Accordion-qj4qxx1p.js} +6 -6
  115. package/web-dist/chunks/{Accordion-bz2dzbad.js → Accordion-qsxx5q34.js} +10 -10
  116. package/web-dist/chunks/{Accordion-ancjf7q8.js → Accordion-rg763dfb.js} +4 -4
  117. package/web-dist/chunks/{Accordion-g2d4fskg.js → Accordion-rkt7qdmj.js} +2 -2
  118. package/web-dist/chunks/{Accordion-pvz3r99n.js → Accordion-sek2q4r1.js} +1 -1
  119. package/web-dist/chunks/{Accordion-0yhkg017.js → Accordion-sxfqnnx6.js} +10 -10
  120. package/web-dist/chunks/{Accordion-wytj5wwc.js → Accordion-sxzax4x4.js} +4 -4
  121. package/web-dist/chunks/{Accordion-e2kr1z3g.js → Accordion-t3hm5tcv.js} +6 -6
  122. package/web-dist/chunks/{Accordion-0yvepteg.js → Accordion-vewrj1kr.js} +6 -6
  123. package/web-dist/chunks/Accordion-vgkvvdvg.js +4295 -0
  124. package/web-dist/chunks/{Accordion-kxa15n19.js → Accordion-x3tphbvw.js} +1 -1
  125. package/web-dist/chunks/{Accordion-ebw6xj6x.js → Accordion-x5v1p4df.js} +5 -5
  126. package/web-dist/chunks/{Accordion-70g7n6tk.js → Accordion-y2eyyqrk.js} +9 -9
  127. package/web-dist/chunks/ReadiumCSS-after.css-2389epxb.js +477 -0
  128. package/web-dist/chunks/ReadiumCSS-after.css-8se5z2w3.js +492 -0
  129. package/web-dist/chunks/ReadiumCSS-after.css-x15y26r7.js +532 -0
  130. package/web-dist/chunks/ReadiumCSS-after.css-z23c32jh.js +594 -0
  131. package/web-dist/chunks/ReadiumCSS-before.css-1t98py7y.js +531 -0
  132. package/web-dist/chunks/ReadiumCSS-before.css-hszzyv5p.js +531 -0
  133. package/web-dist/chunks/ReadiumCSS-before.css-mjvegqjq.js +532 -0
  134. package/web-dist/chunks/ReadiumCSS-before.css-pnpxcrwx.js +531 -0
  135. package/web-dist/chunks/ReadiumCSS-default.css-8gxjy9na.js +185 -0
  136. package/web-dist/chunks/ReadiumCSS-default.css-m8ts96nj.js +182 -0
  137. package/web-dist/chunks/ReadiumCSS-default.css-rg94gstv.js +164 -0
  138. package/web-dist/chunks/ReadiumCSS-default.css-y8p5hk56.js +164 -0
  139. package/web-dist/chunks/ReadiumCSS-ebpaj_fonts_patch.css-50yy1az9.js +84 -0
  140. package/web-dist/chunks/zip-reader-f0yphjb9.js +103 -0
  141. package/web-dist/components/accordion/Accordion.js +12 -12
  142. package/web-dist/components/accordion-item/AccordionItem.js +12 -12
  143. package/web-dist/components/activity-indicator/ActivityIndicator.js +4 -4
  144. package/web-dist/components/app-bar/AppBar.js +19 -19
  145. package/web-dist/components/app-header/AppHeader.js +19 -19
  146. package/web-dist/components/app-shell/AppShell.js +6 -6
  147. package/web-dist/components/auth-screen/AuthScreen.js +21 -21
  148. package/web-dist/components/avatar/Avatar.js +12 -12
  149. package/web-dist/components/avatar-group/AvatarGroup.js +12 -12
  150. package/web-dist/components/badge/Badge.js +7 -7
  151. package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +20 -20
  152. package/web-dist/components/bottom-sheet/BottomSheet.js +8 -8
  153. package/web-dist/components/bottom-sheet-flat-list/BottomSheetFlatList.js +8 -8
  154. package/web-dist/components/bottom-sheet-scroll-view/BottomSheetScrollView.js +8 -8
  155. package/web-dist/components/bottom-sheet-section-list/BottomSheetSectionList.js +8 -8
  156. package/web-dist/components/bottom-sheet-view/BottomSheetView.js +8 -8
  157. package/web-dist/components/bottom-sheet-virtualized-list/BottomSheetVirtualizedList.js +8 -8
  158. package/web-dist/components/breadcrumbs/Breadcrumbs.js +14 -14
  159. package/web-dist/components/button/Button.js +12 -12
  160. package/web-dist/components/button-group/ButtonGroup.js +12 -12
  161. package/web-dist/components/camera-permission-view/CameraPermissionView.js +20 -20
  162. package/web-dist/components/card/Card.js +19 -19
  163. package/web-dist/components/card-back/CardBack.js +4 -4
  164. package/web-dist/components/card-hand/CardHand.js +4 -4
  165. package/web-dist/components/chat-list-item/ChatListItem.js +16 -16
  166. package/web-dist/components/checkbox/Checkbox.js +12 -12
  167. package/web-dist/components/checkbox-group/CheckboxGroup.js +12 -12
  168. package/web-dist/components/chess-board/ChessBoard.js +4 -4
  169. package/web-dist/components/chip/Chip.js +13 -13
  170. package/web-dist/components/chip-group/ChipGroup.js +13 -13
  171. package/web-dist/components/collection-editor/CollectionEditor.js +19 -19
  172. package/web-dist/components/content-rail/ContentRail.js +14 -14
  173. package/web-dist/components/data-table/DataTable.js +27 -27
  174. package/web-dist/components/date-picker/DatePicker.js +17 -17
  175. package/web-dist/components/dialog/Dialog.js +12 -12
  176. package/web-dist/components/divider/Divider.js +6 -6
  177. package/web-dist/components/empty-state/EmptyState.js +20 -20
  178. package/web-dist/components/field/Field.js +12 -12
  179. package/web-dist/components/flat-list/FlatList.js +13 -13
  180. package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +21 -21
  181. package/web-dist/components/form/Form.js +16 -16
  182. package/web-dist/components/form-actions/FormActions.js +16 -16
  183. package/web-dist/components/form-error/FormError.js +16 -16
  184. package/web-dist/components/game/Game.js +7 -7
  185. package/web-dist/components/game-entity/GameEntity.js +7 -7
  186. package/web-dist/components/game-field/GameField.js +7 -7
  187. package/web-dist/components/game-input-zone/GameInputZone.js +7 -7
  188. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +7 -7
  189. package/web-dist/components/game-overlay/GameOverlay.js +7 -7
  190. package/web-dist/components/gradient/Gradient.js +7 -7
  191. package/web-dist/components/gradient-renderer-provider/GradientRendererProvider.js +7 -7
  192. package/web-dist/components/graph-view/GraphView.js +1 -1
  193. package/web-dist/components/grid/Grid.js +6 -6
  194. package/web-dist/components/heading/Heading.js +6 -6
  195. package/web-dist/components/hero/Hero.js +19 -19
  196. package/web-dist/components/icon/Icon.js +4 -4
  197. package/web-dist/components/icon-button/IconButton.js +12 -12
  198. package/web-dist/components/image/Image.js +10 -10
  199. package/web-dist/components/keyboard-avoiding-view/KeyboardAvoidingView.js +3 -3
  200. package/web-dist/components/list/List.js +13 -13
  201. package/web-dist/components/list-item/ListItem.js +13 -13
  202. package/web-dist/components/list-section/ListSection.js +13 -13
  203. package/web-dist/components/media-card/MediaCard.js +19 -19
  204. package/web-dist/components/message-bubble/MessageBubble.js +16 -16
  205. package/web-dist/components/metric-card/MetricCard.js +19 -19
  206. package/web-dist/components/missing-element/MissingElement.js +12 -12
  207. package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +21 -21
  208. package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +21 -21
  209. package/web-dist/components/opening-book/OpeningBook.js +4 -4
  210. package/web-dist/components/otp-form/OtpForm.js +21 -21
  211. package/web-dist/components/pagination/Pagination.js +13 -13
  212. package/web-dist/components/palette-item/PaletteItem.js +19 -19
  213. package/web-dist/components/playing-card/PlayingCard.js +4 -4
  214. package/web-dist/components/poker-training-table/PokerTrainingTable.js +4 -4
  215. package/web-dist/components/popover-menu/PopoverMenu.js +14 -14
  216. package/web-dist/components/post-card/PostCard.js +19 -19
  217. package/web-dist/components/product-card/ProductCard.js +19 -19
  218. package/web-dist/components/progress/Progress.js +10 -10
  219. package/web-dist/components/progress-ring/ProgressRing.js +10 -10
  220. package/web-dist/components/radio/Radio.js +14 -14
  221. package/web-dist/components/radio-group/RadioGroup.js +14 -14
  222. package/web-dist/components/rating/Rating.js +9 -9
  223. package/web-dist/components/reader/Reader.d.ts +3 -0
  224. package/web-dist/components/reader/Reader.js +38562 -0
  225. package/web-dist/components/reader/index.d.ts +1 -0
  226. package/web-dist/components/reader/index.js +2 -0
  227. package/web-dist/components/scan-overlay/ScanOverlay.js +20 -20
  228. package/web-dist/components/screen/Screen.js +6 -6
  229. package/web-dist/components/screen-section/ScreenSection.js +10 -10
  230. package/web-dist/components/scroll-view/ScrollView.js +6 -6
  231. package/web-dist/components/search-input/SearchInput.js +13 -13
  232. package/web-dist/components/section-header/SectionHeader.js +10 -10
  233. package/web-dist/components/section-list/SectionList.js +13 -13
  234. package/web-dist/components/select/Select.js +16 -16
  235. package/web-dist/components/selectable-item/SelectableItem.js +6 -6
  236. package/web-dist/components/selection-provider/SelectionProvider.js +6 -6
  237. package/web-dist/components/sign-in-form/SignInForm.js +21 -21
  238. package/web-dist/components/sign-up-form/SignUpForm.js +21 -21
  239. package/web-dist/components/skeleton/Skeleton.js +22 -22
  240. package/web-dist/components/skeleton-card/SkeletonCard.js +22 -22
  241. package/web-dist/components/skeleton-list/SkeletonList.js +22 -22
  242. package/web-dist/components/skeleton-text/SkeletonText.js +22 -22
  243. package/web-dist/components/surface/Surface.js +7 -7
  244. package/web-dist/components/switch/Switch.js +7 -7
  245. package/web-dist/components/tab/Tab.js +7 -7
  246. package/web-dist/components/tab-list/TabList.js +7 -7
  247. package/web-dist/components/tab-panel/TabPanel.js +7 -7
  248. package/web-dist/components/tabletop-table/TabletopTable.js +4 -4
  249. package/web-dist/components/tabs/Tabs.js +7 -7
  250. package/web-dist/components/text/Text.js +6 -6
  251. package/web-dist/components/text-input/TextInput.js +13 -13
  252. package/web-dist/components/time-picker/TimePicker.js +18 -18
  253. package/web-dist/components/timeline/Timeline.js +11 -11
  254. package/web-dist/components/toast/Toast.js +9 -9
  255. package/web-dist/components/toast-provider/ToastProvider.js +9 -9
  256. package/web-dist/components/toolbar/Toolbar.js +19 -19
  257. package/web-dist/components/tree-item/TreeItem.js +18 -18
  258. package/web-dist/components/uploader/Uploader.js +22 -22
  259. package/web-dist/components/view/View.js +6 -6
  260. package/web-dist/manifest.json +1615 -1601
  261. package/web-dist/runtime/ZoraProvider.js +9 -9
  262. package/dist/features/reader/adapters/inbound/ReaderSurface.d.ts +0 -11
  263. package/dist/features/reader/adapters/inbound/ReaderSurface.d.ts.map +0 -1
  264. package/dist/features/reader/adapters/inbound/ReaderSurface.js.map +0 -1
  265. package/web-dist/components/reader-surface/ReaderSurface.d.ts +0 -3
  266. package/web-dist/components/reader-surface/ReaderSurface.js +0 -360
  267. package/web-dist/components/reader-surface/index.d.ts +0 -1
  268. package/web-dist/components/reader-surface/index.js +0 -2
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import {
3
3
  ResponsiveProvider
4
- } from "../chunks/Accordion-gkx1kszz.js";
4
+ } from "../chunks/Accordion-3hg1wprb.js";
5
5
  import {
6
6
  resolvePointerEvents
7
- } from "../chunks/Accordion-wytj5wwc.js";
7
+ } from "../chunks/Accordion-sxzax4x4.js";
8
8
  import {
9
9
  sortOverlayEntries,
10
10
  OverlayStackContext,
@@ -20,22 +20,22 @@ import {
20
20
  useTheme,
21
21
  zoraDefaultTheme,
22
22
  ZoraThemeRuntimeContext
23
- } from "../chunks/Accordion-pvz3r99n.js";
23
+ } from "../chunks/Accordion-sek2q4r1.js";
24
24
  import {
25
25
  ToastProvider3
26
- } from "../chunks/Accordion-8fne0gf9.js";
27
- import"../chunks/Accordion-g2d4fskg.js";
28
- import"../chunks/Accordion-rmp9sfra.js";
26
+ } from "../chunks/Accordion-2q6p67xe.js";
27
+ import"../chunks/Accordion-rkt7qdmj.js";
28
+ import"../chunks/Accordion-kpxyryke.js";
29
29
  import"../chunks/Accordion-eqvdv7tt.js";
30
30
  import"../chunks/Accordion-ys214jt5.js";
31
31
  import {
32
32
  useZoraTheme2
33
- } from "../chunks/Accordion-6xrse5my.js";
34
- import"../chunks/Accordion-v4n4ygwn.js";
33
+ } from "../chunks/Accordion-1dah5bqg.js";
34
+ import"../chunks/Accordion-kpap0trj.js";
35
35
  import"../chunks/Accordion-fre84yaq.js";
36
36
  import {
37
37
  __toESM
38
- } from "../chunks/Accordion-9qvmwkxe.js";
38
+ } from "../chunks/Accordion-nh0cs9hq.js";
39
39
  import {
40
40
  deepMerge
41
41
  } from "../chunks/Accordion-59pa0677.js";
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { ReaderSurfaceProps } from '../../../../types/reader';
3
- /***
4
- * Adapter-neutral reader shell for EPUB and PDF experiences.
5
- *
6
- * Supply the actual renderer through `viewport`; ZORA owns only the reader
7
- * chrome, controlled state, progress, accessible controls, and normalized
8
- * adapter callbacks.
9
- */
10
- export declare const ReaderSurface: (props: ReaderSurfaceProps) => React.ReactElement | null;
11
- //# sourceMappingURL=ReaderSurface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReaderSurface.d.ts","sourceRoot":"","sources":["../../../../../src/features/reader/adapters/inbound/ReaderSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAmVjF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,0DAAyC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReaderSurface.js","sourceRoot":"","sources":["../../../../../src/features/reader/adapters/inbound/ReaderSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,SAAS,gBAAgB,CAAC,IAAwB,EAAE,SAA6B;IAC/E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,IAAI,EAAE,CAAC;IAClF,OAAO,QAAQ,IAAI,OAAO,SAAS,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,aAAa,EACb,IAAI,GAC+C;IACnD,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,IAAI,EACJ,SAAS,GACoD;IAC7D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,GAAG,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,GAMjB;IACC,MAAM,KAAK,GACT,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAE3F,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAClE;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CACvD;QAAA,CAAC,KAAK,CACR;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAgD;IAC1E,KAAK,MAAM,EAAE,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAclB;IACC,MAAM,OAAO,GACX,cAAc,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,aAAa,CAAC,CAAC,CAAC,CACzE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACzD;QAAA,CAAC,cAAc,CAAC,CAAC,CAAC,CAChB,CAAC,UAAU,CACT,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAC/B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,aAAa,IAAI,mBAAmB,CAAC,CAC5C,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAClD,IAAI,CAAC,GAAG,EACR,CACH,CAAC,CAAC,CAAC,IAAI,CACR;QAAA,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAClB,CAAC,UAAU,CACT,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAC/B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,eAAe,IAAI,oBAAoB,CAAC,CAC/C,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CACpD,IAAI,CAAC,GAAG,EACR,CACH,CAAC,CAAC,CAAC,IAAI,CACR;QAAA,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACnB,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAC3C,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAC9D,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,cAAc,IAAI,kBAAkB,CAAC,CAC5C,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CACrD,IAAI,CAAC,GAAG,EACR,CACH,CAAC,CAAC,CAAC,IAAI,CACR;QAAA,CAAC,aAAa,CAChB;MAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CACP,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,WAAW,CACX,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,KAAK,CAAC,CAAC,KAAK,CAAC,EACb,CACH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,GAiBX;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,SAAS,IAAI,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,eAAe,GACnB,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,WAAW,GACf,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhG,OAAO,CACL,CAAC,IAAI,CACH,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CACnC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7C,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,GAAG,CAAC,GAAG,CACP,CAAC,CAAC,GAAG,CAEL;MAAA,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EACnD;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAChF;QAAA,CAAC,UAAU,CACT,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAC3B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAC/B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,iBAAiB,IAAI,eAAe,CAAC,CAC5C,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAClD,IAAI,CAAC,GAAG,EAEV;QAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACzB;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAC3B;YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,CACd,CAAC,IAAI,CACH,KAAK,CAAC,QAAQ,CACd,aAAa,CAAC,MAAM,CACpB,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB,OAAO,CAAC,OAAO,CACf,MAAM,CAAC,UAAU,CAEjB;gBAAA,CAAC,YAAY,CACf;cAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACR;YAAA,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACnB,CAAC,IAAI,CACH,uBAAuB,CAAC,QAAQ,CAChC,KAAK,CAAC,QAAQ,CACd,QAAQ,CAAC,OAAO,CAChB,OAAO,CAAC,SAAS,CAEjB;gBAAA,CAAC,iBAAiB,CACpB;cAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACV;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,UAAU,CACT,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CACvB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAClC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,aAAa,IAAI,WAAW,CAAC,CACpC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAC9C,IAAI,CAAC,GAAG,EAEZ;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACtD;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EACjB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,SAAS,EACnB,MAAM,GAAG,MAAM,EACf,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,aAAa,EACb,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,iBAAiB,GAAG,eAAe,EACnC,aAAa,GAAG,WAAW,EAC3B,aAAa,GAAG,mBAAmB,EACnC,eAAe,GAAG,oBAAoB,EACtC,cAAc,GAAG,kBAAkB,EACnC,YAAY,GAAG,mBAAmB,EAClC,UAAU,GAAG,+BAA+B,EAC5C,gBAAgB,GAAG,6BAA6B,EAChD,UAAU,GAAG,IAAI,EACjB,iBAAiB,EAAE,kBAAkB,GAAG,QAAQ,EAChD,SAAS,EAAE,UAAU,GAAG,CAAC,EACzB,UAAU,EAAE,WAAW,GAAG,QAAQ,EAClC,WAAW,GAAG,KAAK,EACnB,QAAQ,EACR,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAAE,iBAAiB,EACnC,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAAE,mBAAmB,EACvC,aAAa,EAAE,cAAc,EAC7B,MAAM,GACa;IACnB,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,eAAe,GACnB,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAC/B,QAAQ,CACT,CAAC,CAAC,CAAC,CACF,CAAC,gBAAgB,CACf,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,EACnC,CACH,CAAC;IAEJ,OAAO,CACL,CAAC,OAAO,CACN,MAAM,CAAC,GAAG,CACV,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,OAAO,CAAC,SAAS,CACjB,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAE9C;MAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB;QAAA,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,CAAC,YAAY,CACX,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CACnC,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,KAAK,CAAC,CAAC,KAAK,CAAC,EACb,CACH,CAAC,CAAC,CAAC,IAAI,CAER;;QAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CACnF;UAAA,CAAC,eAAe,CAClB;QAAA,EAAE,IAAI,CAEN;;QAAA,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,CAAC,YAAY,CACX,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC,CAAC,CAAC,IAAI,CACV;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,OAAO,CAAC,CACX,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport type { ReaderStatus, ReaderSurfaceProps } from '../../../../types/reader';\nimport { AppBar } from '../../../app-bar/public';\nimport { IconButton } from '../../../button/public';\nimport { View } from '../../../layout/public';\nimport { Progress } from '../../../progress/public';\nimport { Surface } from '../../../surface/public';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\nimport { useZoraTheme } from '../../../theme/composition/useZoraTheme';\nimport { Text } from '../../../typography/public';\nimport { resolveReaderProgress } from '../../utils/resolveReaderProgress';\n\nfunction resolvePageLabel(page: number | undefined, pageCount: number | undefined): string | null {\n if (page === undefined || !Number.isFinite(page)) return null;\n if (pageCount === undefined || !Number.isFinite(pageCount)) return `Page ${page}`;\n return `Page ${page} of ${pageCount}`;\n}\n\nfunction resolveCanGoPrevious({\n canGoPrevious,\n page,\n}: Pick<ReaderSurfaceProps, 'canGoPrevious' | 'page'>): boolean {\n if (canGoPrevious !== undefined) return canGoPrevious;\n return page === undefined || page > 1;\n}\n\nfunction resolveCanGoNext({\n canGoNext,\n page,\n pageCount,\n}: Pick<ReaderSurfaceProps, 'canGoNext' | 'page' | 'pageCount'>): boolean {\n if (canGoNext !== undefined) return canGoNext;\n return page === undefined || pageCount === undefined || page < pageCount;\n}\n\nfunction ReaderEmptyState({\n status,\n loadingLabel,\n errorTitle,\n unavailableTitle,\n}: {\n status: ReaderStatus;\n loadingLabel: string;\n errorTitle: string;\n unavailableTitle: string;\n}) {\n const title =\n status === 'loading' ? loadingLabel : status === 'error' ? errorTitle : unavailableTitle;\n\n return (\n <View align=\"center\" justify=\"center\" flex={1} minHeight={360} p=\"l\">\n <Text align=\"center\" emphasis=\"muted\" variant=\"bodySmall\">\n {title}\n </Text>\n </View>\n );\n}\n\nfunction invokeReaderAction(action: (() => void | Promise<void>) | undefined): void {\n void action?.();\n}\n\nfunction ReaderHeader({\n interactionPolicy,\n title,\n subtitle,\n contentsLabel,\n appearanceLabel,\n highlightLabel,\n highlighted,\n headerActions,\n onOpenContents,\n onOpenAppearance,\n onToggleHighlight,\n}: Pick<\n ReaderSurfaceProps,\n | 'interactionPolicy'\n | 'title'\n | 'subtitle'\n | 'contentsLabel'\n | 'appearanceLabel'\n | 'highlightLabel'\n | 'highlighted'\n | 'headerActions'\n | 'onOpenContents'\n | 'onOpenAppearance'\n | 'onToggleHighlight'\n>) {\n const actions =\n onOpenContents || onOpenAppearance || onToggleHighlight || headerActions ? (\n <View direction=\"row\" align=\"center\" gap=\"xs\" wrap=\"nowrap\">\n {onOpenContents ? (\n <IconButton\n icon={{ name: 'list-outline' }}\n interactionPolicy={interactionPolicy}\n label={contentsLabel ?? 'Table of contents'}\n onPress={() => invokeReaderAction(onOpenContents)}\n size=\"l\"\n />\n ) : null}\n {onOpenAppearance ? (\n <IconButton\n icon={{ name: 'text-outline' }}\n interactionPolicy={interactionPolicy}\n label={appearanceLabel ?? 'Reading appearance'}\n onPress={() => invokeReaderAction(onOpenAppearance)}\n size=\"l\"\n />\n ) : null}\n {onToggleHighlight ? (\n <IconButton\n color={highlighted ? 'primary' : 'neutral'}\n icon={{ name: highlighted ? 'bookmark' : 'bookmark-outline' }}\n interactionPolicy={interactionPolicy}\n label={highlightLabel ?? 'Toggle highlight'}\n onPress={() => invokeReaderAction(onToggleHighlight)}\n size=\"l\"\n />\n ) : null}\n {headerActions}\n </View>\n ) : undefined;\n\n return (\n <AppBar\n actions={actions}\n divider\n interactionPolicy={interactionPolicy}\n safeAreaTop\n subtitle={subtitle}\n title={title}\n />\n );\n}\n\nfunction ReaderFooter({\n interactionPolicy,\n status,\n page,\n pageCount,\n progress,\n canGoPrevious,\n canGoNext,\n chapterLabel,\n pageLabel,\n previousPageLabel,\n nextPageLabel,\n footerActions,\n onPreviousPage,\n onNextPage,\n}: Pick<\n ReaderSurfaceProps,\n | 'interactionPolicy'\n | 'status'\n | 'page'\n | 'pageCount'\n | 'progress'\n | 'canGoPrevious'\n | 'canGoNext'\n | 'chapterLabel'\n | 'pageLabel'\n | 'previousPageLabel'\n | 'nextPageLabel'\n | 'footerActions'\n | 'onPreviousPage'\n | 'onNextPage'\n>) {\n const { theme } = useZoraTheme();\n const resolvedProgress = resolveReaderProgress({ progress, page, pageCount });\n const resolvedPageLabel = pageLabel ?? resolvePageLabel(page, pageCount);\n const previousEnabled =\n status === 'ready' && Boolean(onPreviousPage) && resolveCanGoPrevious({ canGoPrevious, page });\n const nextEnabled =\n status === 'ready' && Boolean(onNextPage) && resolveCanGoNext({ canGoNext, page, pageCount });\n\n return (\n <View\n bg={theme.semantics.surface.raised}\n borderColor={theme.semantics.neutral.divider}\n borderWidth={1}\n gap=\"s\"\n p=\"m\"\n >\n <Progress value={resolvedProgress} max={1} size=\"s\" />\n <View align=\"center\" direction=\"row\" gap=\"m\" justify=\"space-between\" wrap=\"nowrap\">\n <IconButton\n disabled={!previousEnabled}\n icon={{ name: 'chevron-back' }}\n interactionPolicy={interactionPolicy}\n label={previousPageLabel ?? 'Previous page'}\n onPress={() => invokeReaderAction(onPreviousPage)}\n size=\"l\"\n />\n <View flex={1} minWidth={0}>\n <View align=\"center\" gap=\"xs\">\n {chapterLabel ? (\n <Text\n align=\"center\"\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n variant=\"label\"\n weight=\"semiBold\"\n >\n {chapterLabel}\n </Text>\n ) : null}\n {resolvedPageLabel ? (\n <Text\n accessibilityLiveRegion=\"polite\"\n align=\"center\"\n emphasis=\"muted\"\n variant=\"caption\"\n >\n {resolvedPageLabel}\n </Text>\n ) : null}\n </View>\n </View>\n <IconButton\n disabled={!nextEnabled}\n icon={{ name: 'chevron-forward' }}\n interactionPolicy={interactionPolicy}\n label={nextPageLabel ?? 'Next page'}\n onPress={() => invokeReaderAction(onNextPage)}\n size=\"l\"\n />\n </View>\n {footerActions ? <View>{footerActions}</View> : null}\n </View>\n );\n}\n\nfunction ReaderSurfaceInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy,\n source: _source,\n format: _format,\n location: _location,\n status = 'idle',\n page,\n pageCount,\n progress,\n canGoPrevious,\n canGoNext,\n title,\n subtitle,\n chapterLabel,\n pageLabel,\n previousPageLabel = 'Previous page',\n nextPageLabel = 'Next page',\n contentsLabel = 'Table of contents',\n appearanceLabel = 'Reading appearance',\n highlightLabel = 'Toggle highlight',\n loadingLabel = 'Loading document…',\n errorTitle = 'Unable to open this document.',\n unavailableTitle = 'Reader preview unavailable.',\n showChrome = true,\n readerColorScheme: _readerColorScheme = 'system',\n fontScale: _fontScale = 1,\n lineHeight: _lineHeight = 'normal',\n highlighted = false,\n viewport,\n headerActions,\n footerActions,\n onPreviousPage,\n onNextPage,\n onLocationChange: _onLocationChange,\n onOpenContents,\n onOpenAppearance,\n onToggleHighlight,\n onOpenExternalLink: _onOpenExternalLink,\n onReaderError: _onReaderError,\n testID,\n}: ReaderSurfaceProps) {\n const { theme } = useZoraTheme();\n\n const viewportContent =\n viewport && status !== 'error' ? (\n viewport\n ) : (\n <ReaderEmptyState\n errorTitle={errorTitle}\n loadingLabel={loadingLabel}\n status={status}\n unavailableTitle={unavailableTitle}\n />\n );\n\n return (\n <Surface\n radius=\"l\"\n testID={testID}\n variant=\"default\"\n style={{ minHeight: 480, overflow: 'hidden' }}\n >\n <View flex={1} gap={0}>\n {showChrome ? (\n <ReaderHeader\n appearanceLabel={appearanceLabel}\n contentsLabel={contentsLabel}\n headerActions={headerActions}\n highlightLabel={highlightLabel}\n highlighted={highlighted}\n interactionPolicy={interactionPolicy}\n onOpenAppearance={onOpenAppearance}\n onOpenContents={onOpenContents}\n onToggleHighlight={onToggleHighlight}\n subtitle={subtitle}\n title={title}\n />\n ) : null}\n\n <View bg={theme.semantics.surface.default} flex={1} minHeight={360} overflow=\"hidden\">\n {viewportContent}\n </View>\n\n {showChrome ? (\n <ReaderFooter\n canGoNext={canGoNext}\n canGoPrevious={canGoPrevious}\n chapterLabel={chapterLabel}\n footerActions={footerActions}\n interactionPolicy={interactionPolicy}\n nextPageLabel={nextPageLabel}\n onNextPage={onNextPage}\n onPreviousPage={onPreviousPage}\n page={page}\n pageCount={pageCount}\n pageLabel={pageLabel}\n previousPageLabel={previousPageLabel}\n progress={progress}\n status={status}\n />\n ) : null}\n </View>\n </Surface>\n );\n}\n\n/***\n * Adapter-neutral reader shell for EPUB and PDF experiences.\n *\n * Supply the actual renderer through `viewport`; ZORA owns only the reader\n * chrome, controlled state, progress, accessible controls, and normalized\n * adapter callbacks.\n */\nexport const ReaderSurface = withZoraThemeScope(ReaderSurfaceInner);\n"]}
@@ -1,3 +0,0 @@
1
- import type React from 'react';
2
-
3
- export declare const ReaderSurface: React.ComponentType<Record<string, unknown>>;
@@ -1,360 +0,0 @@
1
- 'use client';
2
- import {
3
- AppBar2
4
- } from "../../chunks/Accordion-wxbh98kp.js";
5
- import"../../chunks/Accordion-gkx1kszz.js";
6
- import"../../chunks/Accordion-wytj5wwc.js";
7
- import"../../chunks/Accordion-pvz3r99n.js";
8
- import"../../chunks/Accordion-bfzeab9x.js";
9
- import"../../chunks/Accordion-mbqtk7y0.js";
10
- import"../../chunks/Accordion-8bxy3g7a.js";
11
- import"../../chunks/Accordion-rmp9sfra.js";
12
- import {
13
- IconButton2
14
- } from "../../chunks/Accordion-snyacfyh.js";
15
- import {
16
- withZoraThemeScope
17
- } from "../../chunks/Accordion-8z7naxj2.js";
18
- import {
19
- View2
20
- } from "../../chunks/Accordion-0yvepteg.js";
21
- import"../../chunks/Accordion-6zb9d92y.js";
22
- import"../../chunks/Accordion-3m6de80j.js";
23
- import"../../chunks/Accordion-mnac2z83.js";
24
- import"../../chunks/Accordion-0gfsj9qh.js";
25
- import"../../chunks/Accordion-vjgk1sz7.js";
26
- import"../../chunks/Accordion-g2d4fskg.js";
27
- import"../../chunks/Accordion-ph15h010.js";
28
- import"../../chunks/Accordion-37n4bt3g.js";
29
- import {
30
- Text3
31
- } from "../../chunks/Accordion-e2kr1z3g.js";
32
- import {
33
- Progress2
34
- } from "../../chunks/Accordion-m4brcz8v.js";
35
- import {
36
- Surface2
37
- } from "../../chunks/Accordion-qyssgtwe.js";
38
- import"../../chunks/Accordion-eqvdv7tt.js";
39
- import"../../chunks/Accordion-61e19g3e.js";
40
- import"../../chunks/Accordion-ys214jt5.js";
41
- import"../../chunks/Accordion-kxa15n19.js";
42
- import {
43
- useZoraTheme2
44
- } from "../../chunks/Accordion-6xrse5my.js";
45
- import"../../chunks/Accordion-v4n4ygwn.js";
46
- import"../../chunks/Accordion-fre84yaq.js";
47
-
48
- // src/features/reader/utils/resolveReaderProgress.ts
49
- function resolveReaderProgress({
50
- progress,
51
- page,
52
- pageCount
53
- }) {
54
- if (progress !== undefined && Number.isFinite(progress)) {
55
- return Math.min(1, Math.max(0, progress));
56
- }
57
- if (page === undefined || pageCount === undefined || !Number.isFinite(page) || !Number.isFinite(pageCount) || pageCount < 1) {
58
- return 0;
59
- }
60
- if (pageCount === 1) {
61
- return 1;
62
- }
63
- return Math.min(1, Math.max(0, (page - 1) / (pageCount - 1)));
64
- }
65
-
66
- // src/features/reader/adapters/inbound/ReaderSurface.tsx
67
- import { jsx, jsxs } from "react/jsx-runtime";
68
- function resolvePageLabel(page, pageCount) {
69
- if (page === undefined || !Number.isFinite(page))
70
- return null;
71
- if (pageCount === undefined || !Number.isFinite(pageCount))
72
- return `Page ${page}`;
73
- return `Page ${page} of ${pageCount}`;
74
- }
75
- function resolveCanGoPrevious({
76
- canGoPrevious,
77
- page
78
- }) {
79
- if (canGoPrevious !== undefined)
80
- return canGoPrevious;
81
- return page === undefined || page > 1;
82
- }
83
- function resolveCanGoNext({
84
- canGoNext,
85
- page,
86
- pageCount
87
- }) {
88
- if (canGoNext !== undefined)
89
- return canGoNext;
90
- return page === undefined || pageCount === undefined || page < pageCount;
91
- }
92
- function ReaderEmptyState({
93
- status,
94
- loadingLabel,
95
- errorTitle,
96
- unavailableTitle
97
- }) {
98
- const title = status === "loading" ? loadingLabel : status === "error" ? errorTitle : unavailableTitle;
99
- return /* @__PURE__ */ jsx(View2, {
100
- align: "center",
101
- justify: "center",
102
- flex: 1,
103
- minHeight: 360,
104
- p: "l",
105
- children: /* @__PURE__ */ jsx(Text3, {
106
- align: "center",
107
- emphasis: "muted",
108
- variant: "bodySmall",
109
- children: title
110
- })
111
- });
112
- }
113
- function invokeReaderAction(action) {
114
- action?.();
115
- }
116
- function ReaderHeader({
117
- interactionPolicy,
118
- title,
119
- subtitle,
120
- contentsLabel,
121
- appearanceLabel,
122
- highlightLabel,
123
- highlighted,
124
- headerActions,
125
- onOpenContents,
126
- onOpenAppearance,
127
- onToggleHighlight
128
- }) {
129
- const actions = onOpenContents || onOpenAppearance || onToggleHighlight || headerActions ? /* @__PURE__ */ jsxs(View2, {
130
- direction: "row",
131
- align: "center",
132
- gap: "xs",
133
- wrap: "nowrap",
134
- children: [
135
- onOpenContents ? /* @__PURE__ */ jsx(IconButton2, {
136
- icon: { name: "list-outline" },
137
- interactionPolicy,
138
- label: contentsLabel ?? "Table of contents",
139
- onPress: () => invokeReaderAction(onOpenContents),
140
- size: "l"
141
- }) : null,
142
- onOpenAppearance ? /* @__PURE__ */ jsx(IconButton2, {
143
- icon: { name: "text-outline" },
144
- interactionPolicy,
145
- label: appearanceLabel ?? "Reading appearance",
146
- onPress: () => invokeReaderAction(onOpenAppearance),
147
- size: "l"
148
- }) : null,
149
- onToggleHighlight ? /* @__PURE__ */ jsx(IconButton2, {
150
- color: highlighted ? "primary" : "neutral",
151
- icon: { name: highlighted ? "bookmark" : "bookmark-outline" },
152
- interactionPolicy,
153
- label: highlightLabel ?? "Toggle highlight",
154
- onPress: () => invokeReaderAction(onToggleHighlight),
155
- size: "l"
156
- }) : null,
157
- headerActions
158
- ]
159
- }) : undefined;
160
- return /* @__PURE__ */ jsx(AppBar2, {
161
- actions,
162
- divider: true,
163
- interactionPolicy,
164
- safeAreaTop: true,
165
- subtitle,
166
- title
167
- });
168
- }
169
- function ReaderFooter({
170
- interactionPolicy,
171
- status,
172
- page,
173
- pageCount,
174
- progress,
175
- canGoPrevious,
176
- canGoNext,
177
- chapterLabel,
178
- pageLabel,
179
- previousPageLabel,
180
- nextPageLabel,
181
- footerActions,
182
- onPreviousPage,
183
- onNextPage
184
- }) {
185
- const { theme } = useZoraTheme2();
186
- const resolvedProgress = resolveReaderProgress({ progress, page, pageCount });
187
- const resolvedPageLabel = pageLabel ?? resolvePageLabel(page, pageCount);
188
- const previousEnabled = status === "ready" && Boolean(onPreviousPage) && resolveCanGoPrevious({ canGoPrevious, page });
189
- const nextEnabled = status === "ready" && Boolean(onNextPage) && resolveCanGoNext({ canGoNext, page, pageCount });
190
- return /* @__PURE__ */ jsxs(View2, {
191
- bg: theme.semantics.surface.raised,
192
- borderColor: theme.semantics.neutral.divider,
193
- borderWidth: 1,
194
- gap: "s",
195
- p: "m",
196
- children: [
197
- /* @__PURE__ */ jsx(Progress2, {
198
- value: resolvedProgress,
199
- max: 1,
200
- size: "s"
201
- }),
202
- /* @__PURE__ */ jsxs(View2, {
203
- align: "center",
204
- direction: "row",
205
- gap: "m",
206
- justify: "space-between",
207
- wrap: "nowrap",
208
- children: [
209
- /* @__PURE__ */ jsx(IconButton2, {
210
- disabled: !previousEnabled,
211
- icon: { name: "chevron-back" },
212
- interactionPolicy,
213
- label: previousPageLabel ?? "Previous page",
214
- onPress: () => invokeReaderAction(onPreviousPage),
215
- size: "l"
216
- }),
217
- /* @__PURE__ */ jsx(View2, {
218
- flex: 1,
219
- minWidth: 0,
220
- children: /* @__PURE__ */ jsxs(View2, {
221
- align: "center",
222
- gap: "xs",
223
- children: [
224
- chapterLabel ? /* @__PURE__ */ jsx(Text3, {
225
- align: "center",
226
- ellipsizeMode: "tail",
227
- numberOfLines: 1,
228
- variant: "label",
229
- weight: "semiBold",
230
- children: chapterLabel
231
- }) : null,
232
- resolvedPageLabel ? /* @__PURE__ */ jsx(Text3, {
233
- accessibilityLiveRegion: "polite",
234
- align: "center",
235
- emphasis: "muted",
236
- variant: "caption",
237
- children: resolvedPageLabel
238
- }) : null
239
- ]
240
- })
241
- }),
242
- /* @__PURE__ */ jsx(IconButton2, {
243
- disabled: !nextEnabled,
244
- icon: { name: "chevron-forward" },
245
- interactionPolicy,
246
- label: nextPageLabel ?? "Next page",
247
- onPress: () => invokeReaderAction(onNextPage),
248
- size: "l"
249
- })
250
- ]
251
- }),
252
- footerActions ? /* @__PURE__ */ jsx(View2, {
253
- children: footerActions
254
- }) : null
255
- ]
256
- });
257
- }
258
- function ReaderSurfaceInner({
259
- themeId: _themeId,
260
- mode: _mode,
261
- interactionPolicy,
262
- source: _source,
263
- format: _format,
264
- location: _location,
265
- status = "idle",
266
- page,
267
- pageCount,
268
- progress,
269
- canGoPrevious,
270
- canGoNext,
271
- title,
272
- subtitle,
273
- chapterLabel,
274
- pageLabel,
275
- previousPageLabel = "Previous page",
276
- nextPageLabel = "Next page",
277
- contentsLabel = "Table of contents",
278
- appearanceLabel = "Reading appearance",
279
- highlightLabel = "Toggle highlight",
280
- loadingLabel = "Loading document…",
281
- errorTitle = "Unable to open this document.",
282
- unavailableTitle = "Reader preview unavailable.",
283
- showChrome = true,
284
- readerColorScheme: _readerColorScheme = "system",
285
- fontScale: _fontScale = 1,
286
- lineHeight: _lineHeight = "normal",
287
- highlighted = false,
288
- viewport,
289
- headerActions,
290
- footerActions,
291
- onPreviousPage,
292
- onNextPage,
293
- onLocationChange: _onLocationChange,
294
- onOpenContents,
295
- onOpenAppearance,
296
- onToggleHighlight,
297
- onOpenExternalLink: _onOpenExternalLink,
298
- onReaderError: _onReaderError,
299
- testID
300
- }) {
301
- const { theme } = useZoraTheme2();
302
- const viewportContent = viewport && status !== "error" ? viewport : /* @__PURE__ */ jsx(ReaderEmptyState, {
303
- errorTitle,
304
- loadingLabel,
305
- status,
306
- unavailableTitle
307
- });
308
- return /* @__PURE__ */ jsx(Surface2, {
309
- radius: "l",
310
- testID,
311
- variant: "default",
312
- style: { minHeight: 480, overflow: "hidden" },
313
- children: /* @__PURE__ */ jsxs(View2, {
314
- flex: 1,
315
- gap: 0,
316
- children: [
317
- showChrome ? /* @__PURE__ */ jsx(ReaderHeader, {
318
- appearanceLabel,
319
- contentsLabel,
320
- headerActions,
321
- highlightLabel,
322
- highlighted,
323
- interactionPolicy,
324
- onOpenAppearance,
325
- onOpenContents,
326
- onToggleHighlight,
327
- subtitle,
328
- title
329
- }) : null,
330
- /* @__PURE__ */ jsx(View2, {
331
- bg: theme.semantics.surface.default,
332
- flex: 1,
333
- minHeight: 360,
334
- overflow: "hidden",
335
- children: viewportContent
336
- }),
337
- showChrome ? /* @__PURE__ */ jsx(ReaderFooter, {
338
- canGoNext,
339
- canGoPrevious,
340
- chapterLabel,
341
- footerActions,
342
- interactionPolicy,
343
- nextPageLabel,
344
- onNextPage,
345
- onPreviousPage,
346
- page,
347
- pageCount,
348
- pageLabel,
349
- previousPageLabel,
350
- progress,
351
- status
352
- }) : null
353
- ]
354
- })
355
- });
356
- }
357
- var ReaderSurface = withZoraThemeScope(ReaderSurfaceInner);
358
- export {
359
- ReaderSurface
360
- };
@@ -1 +0,0 @@
1
- export * from './ReaderSurface';
@@ -1,2 +0,0 @@
1
- 'use client';
2
- export * from './ReaderSurface.js';