@projektemacher/storymapjs 0.10.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 (326) hide show
  1. package/CHANGELOG +121 -0
  2. package/LICENSE +365 -0
  3. package/README.md +128 -0
  4. package/dist/assets/demo-DYodj6d7.js +1 -0
  5. package/dist/assets/harness-UkbbPmC4.js +1 -0
  6. package/dist/assets/index-DDsPBPZA.js +1 -0
  7. package/dist/assets/main-BDSRsIiB.js +17 -0
  8. package/dist/assets/main-Bzm6THVj.css +1 -0
  9. package/dist/assets/modulepreload-polyfill-P2Xu9kJm.js +1 -0
  10. package/dist/context.json +35 -0
  11. package/dist/css/fonts/files/abril-fatface-latin-400-normal.woff2 +0 -0
  12. package/dist/css/fonts/files/abril-fatface-latin-ext-400-normal.woff2 +0 -0
  13. package/dist/css/fonts/files/amatic-sc-latin-400-normal.woff2 +0 -0
  14. package/dist/css/fonts/files/amatic-sc-latin-700-normal.woff2 +0 -0
  15. package/dist/css/fonts/files/amatic-sc-latin-ext-400-normal.woff2 +0 -0
  16. package/dist/css/fonts/files/amatic-sc-latin-ext-700-normal.woff2 +0 -0
  17. package/dist/css/fonts/files/average-sans-latin-400-normal.woff2 +0 -0
  18. package/dist/css/fonts/files/average-sans-latin-ext-400-normal.woff2 +0 -0
  19. package/dist/css/fonts/files/bitter-latin-100-italic.woff2 +0 -0
  20. package/dist/css/fonts/files/bitter-latin-100-normal.woff2 +0 -0
  21. package/dist/css/fonts/files/bitter-latin-200-italic.woff2 +0 -0
  22. package/dist/css/fonts/files/bitter-latin-200-normal.woff2 +0 -0
  23. package/dist/css/fonts/files/bitter-latin-300-italic.woff2 +0 -0
  24. package/dist/css/fonts/files/bitter-latin-300-normal.woff2 +0 -0
  25. package/dist/css/fonts/files/bitter-latin-400-italic.woff2 +0 -0
  26. package/dist/css/fonts/files/bitter-latin-400-normal.woff2 +0 -0
  27. package/dist/css/fonts/files/bitter-latin-500-italic.woff2 +0 -0
  28. package/dist/css/fonts/files/bitter-latin-500-normal.woff2 +0 -0
  29. package/dist/css/fonts/files/bitter-latin-600-italic.woff2 +0 -0
  30. package/dist/css/fonts/files/bitter-latin-600-normal.woff2 +0 -0
  31. package/dist/css/fonts/files/bitter-latin-700-italic.woff2 +0 -0
  32. package/dist/css/fonts/files/bitter-latin-700-normal.woff2 +0 -0
  33. package/dist/css/fonts/files/bitter-latin-800-italic.woff2 +0 -0
  34. package/dist/css/fonts/files/bitter-latin-800-normal.woff2 +0 -0
  35. package/dist/css/fonts/files/bitter-latin-900-italic.woff2 +0 -0
  36. package/dist/css/fonts/files/bitter-latin-900-normal.woff2 +0 -0
  37. package/dist/css/fonts/files/bitter-latin-ext-100-italic.woff2 +0 -0
  38. package/dist/css/fonts/files/bitter-latin-ext-100-normal.woff2 +0 -0
  39. package/dist/css/fonts/files/bitter-latin-ext-200-italic.woff2 +0 -0
  40. package/dist/css/fonts/files/bitter-latin-ext-200-normal.woff2 +0 -0
  41. package/dist/css/fonts/files/bitter-latin-ext-300-italic.woff2 +0 -0
  42. package/dist/css/fonts/files/bitter-latin-ext-300-normal.woff2 +0 -0
  43. package/dist/css/fonts/files/bitter-latin-ext-400-italic.woff2 +0 -0
  44. package/dist/css/fonts/files/bitter-latin-ext-400-normal.woff2 +0 -0
  45. package/dist/css/fonts/files/bitter-latin-ext-500-italic.woff2 +0 -0
  46. package/dist/css/fonts/files/bitter-latin-ext-500-normal.woff2 +0 -0
  47. package/dist/css/fonts/files/bitter-latin-ext-600-italic.woff2 +0 -0
  48. package/dist/css/fonts/files/bitter-latin-ext-600-normal.woff2 +0 -0
  49. package/dist/css/fonts/files/bitter-latin-ext-700-italic.woff2 +0 -0
  50. package/dist/css/fonts/files/bitter-latin-ext-700-normal.woff2 +0 -0
  51. package/dist/css/fonts/files/bitter-latin-ext-800-italic.woff2 +0 -0
  52. package/dist/css/fonts/files/bitter-latin-ext-800-normal.woff2 +0 -0
  53. package/dist/css/fonts/files/bitter-latin-ext-900-italic.woff2 +0 -0
  54. package/dist/css/fonts/files/bitter-latin-ext-900-normal.woff2 +0 -0
  55. package/dist/css/fonts/files/bitter-latin-ext-wght-italic.woff2 +0 -0
  56. package/dist/css/fonts/files/bitter-latin-ext-wght-normal.woff2 +0 -0
  57. package/dist/css/fonts/files/bitter-latin-wght-italic.woff2 +0 -0
  58. package/dist/css/fonts/files/bitter-latin-wght-normal.woff2 +0 -0
  59. package/dist/css/fonts/files/clicker-script-latin-400-normal.woff2 +0 -0
  60. package/dist/css/fonts/files/clicker-script-latin-ext-400-normal.woff2 +0 -0
  61. package/dist/css/fonts/files/dancing-script-latin-ext-wght-normal.woff2 +0 -0
  62. package/dist/css/fonts/files/dancing-script-latin-wght-normal.woff2 +0 -0
  63. package/dist/css/fonts/files/eb-garamond-latin-ext-wght-italic.woff2 +0 -0
  64. package/dist/css/fonts/files/eb-garamond-latin-ext-wght-normal.woff2 +0 -0
  65. package/dist/css/fonts/files/eb-garamond-latin-wght-italic.woff2 +0 -0
  66. package/dist/css/fonts/files/eb-garamond-latin-wght-normal.woff2 +0 -0
  67. package/dist/css/fonts/files/fauna-one-latin-400-normal.woff2 +0 -0
  68. package/dist/css/fonts/files/fauna-one-latin-ext-400-normal.woff2 +0 -0
  69. package/dist/css/fonts/files/gentium-book-plus-latin-400-italic.woff2 +0 -0
  70. package/dist/css/fonts/files/gentium-book-plus-latin-400-normal.woff2 +0 -0
  71. package/dist/css/fonts/files/gentium-book-plus-latin-700-italic.woff2 +0 -0
  72. package/dist/css/fonts/files/gentium-book-plus-latin-700-normal.woff2 +0 -0
  73. package/dist/css/fonts/files/gentium-book-plus-latin-ext-400-italic.woff2 +0 -0
  74. package/dist/css/fonts/files/gentium-book-plus-latin-ext-400-normal.woff2 +0 -0
  75. package/dist/css/fonts/files/gentium-book-plus-latin-ext-700-italic.woff2 +0 -0
  76. package/dist/css/fonts/files/gentium-book-plus-latin-ext-700-normal.woff2 +0 -0
  77. package/dist/css/fonts/files/lato-latin-100-italic.woff2 +0 -0
  78. package/dist/css/fonts/files/lato-latin-100-normal.woff2 +0 -0
  79. package/dist/css/fonts/files/lato-latin-300-italic.woff2 +0 -0
  80. package/dist/css/fonts/files/lato-latin-300-normal.woff2 +0 -0
  81. package/dist/css/fonts/files/lato-latin-400-italic.woff2 +0 -0
  82. package/dist/css/fonts/files/lato-latin-400-normal.woff2 +0 -0
  83. package/dist/css/fonts/files/lato-latin-700-italic.woff2 +0 -0
  84. package/dist/css/fonts/files/lato-latin-700-normal.woff2 +0 -0
  85. package/dist/css/fonts/files/lato-latin-900-italic.woff2 +0 -0
  86. package/dist/css/fonts/files/lato-latin-900-normal.woff2 +0 -0
  87. package/dist/css/fonts/files/lato-latin-ext-100-italic.woff2 +0 -0
  88. package/dist/css/fonts/files/lato-latin-ext-100-normal.woff2 +0 -0
  89. package/dist/css/fonts/files/lato-latin-ext-300-italic.woff2 +0 -0
  90. package/dist/css/fonts/files/lato-latin-ext-300-normal.woff2 +0 -0
  91. package/dist/css/fonts/files/lato-latin-ext-400-italic.woff2 +0 -0
  92. package/dist/css/fonts/files/lato-latin-ext-400-normal.woff2 +0 -0
  93. package/dist/css/fonts/files/lato-latin-ext-700-italic.woff2 +0 -0
  94. package/dist/css/fonts/files/lato-latin-ext-700-normal.woff2 +0 -0
  95. package/dist/css/fonts/files/lato-latin-ext-900-italic.woff2 +0 -0
  96. package/dist/css/fonts/files/lato-latin-ext-900-normal.woff2 +0 -0
  97. package/dist/css/fonts/files/megrim-latin-400-normal.woff2 +0 -0
  98. package/dist/css/fonts/files/megrim-latin-ext-400-normal.woff2 +0 -0
  99. package/dist/css/fonts/files/old-standard-tt-latin-400-italic.woff2 +0 -0
  100. package/dist/css/fonts/files/old-standard-tt-latin-400-normal.woff2 +0 -0
  101. package/dist/css/fonts/files/old-standard-tt-latin-700-normal.woff2 +0 -0
  102. package/dist/css/fonts/files/old-standard-tt-latin-ext-400-italic.woff2 +0 -0
  103. package/dist/css/fonts/files/old-standard-tt-latin-ext-400-normal.woff2 +0 -0
  104. package/dist/css/fonts/files/old-standard-tt-latin-ext-700-normal.woff2 +0 -0
  105. package/dist/css/fonts/files/open-sans-latin-ext-wght-italic.woff2 +0 -0
  106. package/dist/css/fonts/files/open-sans-latin-ext-wght-normal.woff2 +0 -0
  107. package/dist/css/fonts/files/open-sans-latin-wght-italic.woff2 +0 -0
  108. package/dist/css/fonts/files/open-sans-latin-wght-normal.woff2 +0 -0
  109. package/dist/css/fonts/files/playfair-display-latin-ext-wght-italic.woff2 +0 -0
  110. package/dist/css/fonts/files/playfair-display-latin-ext-wght-normal.woff2 +0 -0
  111. package/dist/css/fonts/files/playfair-display-latin-wght-italic.woff2 +0 -0
  112. package/dist/css/fonts/files/playfair-display-latin-wght-normal.woff2 +0 -0
  113. package/dist/css/fonts/files/playfair-display-sc-latin-400-italic.woff2 +0 -0
  114. package/dist/css/fonts/files/playfair-display-sc-latin-400-normal.woff2 +0 -0
  115. package/dist/css/fonts/files/playfair-display-sc-latin-700-italic.woff2 +0 -0
  116. package/dist/css/fonts/files/playfair-display-sc-latin-700-normal.woff2 +0 -0
  117. package/dist/css/fonts/files/playfair-display-sc-latin-900-italic.woff2 +0 -0
  118. package/dist/css/fonts/files/playfair-display-sc-latin-900-normal.woff2 +0 -0
  119. package/dist/css/fonts/files/playfair-display-sc-latin-ext-400-italic.woff2 +0 -0
  120. package/dist/css/fonts/files/playfair-display-sc-latin-ext-400-normal.woff2 +0 -0
  121. package/dist/css/fonts/files/playfair-display-sc-latin-ext-700-italic.woff2 +0 -0
  122. package/dist/css/fonts/files/playfair-display-sc-latin-ext-700-normal.woff2 +0 -0
  123. package/dist/css/fonts/files/playfair-display-sc-latin-ext-900-italic.woff2 +0 -0
  124. package/dist/css/fonts/files/playfair-display-sc-latin-ext-900-normal.woff2 +0 -0
  125. package/dist/css/fonts/files/pt-sans-latin-400-italic.woff2 +0 -0
  126. package/dist/css/fonts/files/pt-sans-latin-400-normal.woff2 +0 -0
  127. package/dist/css/fonts/files/pt-sans-latin-700-italic.woff2 +0 -0
  128. package/dist/css/fonts/files/pt-sans-latin-700-normal.woff2 +0 -0
  129. package/dist/css/fonts/files/pt-sans-latin-ext-400-italic.woff2 +0 -0
  130. package/dist/css/fonts/files/pt-sans-latin-ext-400-normal.woff2 +0 -0
  131. package/dist/css/fonts/files/pt-sans-latin-ext-700-italic.woff2 +0 -0
  132. package/dist/css/fonts/files/pt-sans-latin-ext-700-normal.woff2 +0 -0
  133. package/dist/css/fonts/files/pt-sans-narrow-latin-400-normal.woff2 +0 -0
  134. package/dist/css/fonts/files/pt-sans-narrow-latin-700-normal.woff2 +0 -0
  135. package/dist/css/fonts/files/pt-sans-narrow-latin-ext-400-normal.woff2 +0 -0
  136. package/dist/css/fonts/files/pt-sans-narrow-latin-ext-700-normal.woff2 +0 -0
  137. package/dist/css/fonts/files/pt-serif-latin-400-italic.woff2 +0 -0
  138. package/dist/css/fonts/files/pt-serif-latin-400-normal.woff2 +0 -0
  139. package/dist/css/fonts/files/pt-serif-latin-700-italic.woff2 +0 -0
  140. package/dist/css/fonts/files/pt-serif-latin-700-normal.woff2 +0 -0
  141. package/dist/css/fonts/files/pt-serif-latin-ext-400-italic.woff2 +0 -0
  142. package/dist/css/fonts/files/pt-serif-latin-ext-400-normal.woff2 +0 -0
  143. package/dist/css/fonts/files/pt-serif-latin-ext-700-italic.woff2 +0 -0
  144. package/dist/css/fonts/files/pt-serif-latin-ext-700-normal.woff2 +0 -0
  145. package/dist/css/fonts/files/raleway-latin-ext-wght-italic.woff2 +0 -0
  146. package/dist/css/fonts/files/raleway-latin-ext-wght-normal.woff2 +0 -0
  147. package/dist/css/fonts/files/raleway-latin-wght-italic.woff2 +0 -0
  148. package/dist/css/fonts/files/raleway-latin-wght-normal.woff2 +0 -0
  149. package/dist/css/fonts/files/roboto-slab-latin-ext-wght-normal.woff2 +0 -0
  150. package/dist/css/fonts/files/roboto-slab-latin-wght-normal.woff2 +0 -0
  151. package/dist/css/fonts/files/rufina-latin-400-normal.woff2 +0 -0
  152. package/dist/css/fonts/files/rufina-latin-700-normal.woff2 +0 -0
  153. package/dist/css/fonts/files/rufina-latin-ext-400-normal.woff2 +0 -0
  154. package/dist/css/fonts/files/rufina-latin-ext-700-normal.woff2 +0 -0
  155. package/dist/css/fonts/files/ubuntu-latin-300-italic.woff2 +0 -0
  156. package/dist/css/fonts/files/ubuntu-latin-300-normal.woff2 +0 -0
  157. package/dist/css/fonts/files/ubuntu-latin-400-italic.woff2 +0 -0
  158. package/dist/css/fonts/files/ubuntu-latin-400-normal.woff2 +0 -0
  159. package/dist/css/fonts/files/ubuntu-latin-500-italic.woff2 +0 -0
  160. package/dist/css/fonts/files/ubuntu-latin-500-normal.woff2 +0 -0
  161. package/dist/css/fonts/files/ubuntu-latin-700-italic.woff2 +0 -0
  162. package/dist/css/fonts/files/ubuntu-latin-700-normal.woff2 +0 -0
  163. package/dist/css/fonts/files/ubuntu-latin-ext-300-italic.woff2 +0 -0
  164. package/dist/css/fonts/files/ubuntu-latin-ext-300-normal.woff2 +0 -0
  165. package/dist/css/fonts/files/ubuntu-latin-ext-400-italic.woff2 +0 -0
  166. package/dist/css/fonts/files/ubuntu-latin-ext-400-normal.woff2 +0 -0
  167. package/dist/css/fonts/files/ubuntu-latin-ext-500-italic.woff2 +0 -0
  168. package/dist/css/fonts/files/ubuntu-latin-ext-500-normal.woff2 +0 -0
  169. package/dist/css/fonts/files/ubuntu-latin-ext-700-italic.woff2 +0 -0
  170. package/dist/css/fonts/files/ubuntu-latin-ext-700-normal.woff2 +0 -0
  171. package/dist/css/fonts/files/unica-one-latin-400-normal.woff2 +0 -0
  172. package/dist/css/fonts/files/unica-one-latin-ext-400-normal.woff2 +0 -0
  173. package/dist/css/fonts/files/vollkorn-latin-ext-wght-italic.woff2 +0 -0
  174. package/dist/css/fonts/files/vollkorn-latin-ext-wght-normal.woff2 +0 -0
  175. package/dist/css/fonts/files/vollkorn-latin-wght-italic.woff2 +0 -0
  176. package/dist/css/fonts/files/vollkorn-latin-wght-normal.woff2 +0 -0
  177. package/dist/css/fonts/font.abril-droidsans.css +108 -0
  178. package/dist/css/fonts/font.amatic-andika.css +126 -0
  179. package/dist/css/fonts/font.bitter-raleway.css +162 -0
  180. package/dist/css/fonts/font.clicker-garamond.css +149 -0
  181. package/dist/css/fonts/font.dancing-ledger.css +108 -0
  182. package/dist/css/fonts/font.default.css +278 -0
  183. package/dist/css/fonts/font.fjalla-average.css +113 -0
  184. package/dist/css/fonts/font.georgia-helvetica.css +88 -0
  185. package/dist/css/fonts/font.knightlab.css +467 -0
  186. package/dist/css/fonts/font.lustria-lato.css +275 -0
  187. package/dist/css/fonts/font.medula-lato.css +270 -0
  188. package/dist/css/fonts/font.oldstandard.css +160 -0
  189. package/dist/css/fonts/font.opensans-gentiumbook.css +167 -0
  190. package/dist/css/fonts/font.playfair-faunaone.css +145 -0
  191. package/dist/css/fonts/font.playfair.css +234 -0
  192. package/dist/css/fonts/font.pt.css +271 -0
  193. package/dist/css/fonts/font.roboto-megrim.css +108 -0
  194. package/dist/css/fonts/font.rufina-sintony.css +126 -0
  195. package/dist/css/fonts/font.ubuntu.css +237 -0
  196. package/dist/css/fonts/font.unicaone-vollkorn.css +144 -0
  197. package/dist/css/icons/README.md +4 -0
  198. package/dist/css/icons/emoji.png +0 -0
  199. package/dist/css/icons/emoji@2x.png +0 -0
  200. package/dist/css/icons/vco-icons.eot +0 -0
  201. package/dist/css/icons/vco-icons.svg +63 -0
  202. package/dist/css/icons/vco-icons.ttf +0 -0
  203. package/dist/css/icons/vco-icons.woff +0 -0
  204. package/dist/css/icons/vco-icons.woff2 +0 -0
  205. package/dist/css/storymap.css +2 -0
  206. package/dist/demo.html +17 -0
  207. package/dist/demo.json +479 -0
  208. package/dist/docs/api/.nojekyll +1 -0
  209. package/dist/docs/api/assets/custom.css +47 -0
  210. package/dist/docs/api/assets/hierarchy.js +1 -0
  211. package/dist/docs/api/assets/highlight.css +22 -0
  212. package/dist/docs/api/assets/icons.js +18 -0
  213. package/dist/docs/api/assets/icons.svg +1 -0
  214. package/dist/docs/api/assets/main.js +60 -0
  215. package/dist/docs/api/assets/navigation.js +1 -0
  216. package/dist/docs/api/assets/search.js +1 -0
  217. package/dist/docs/api/assets/style.css +1648 -0
  218. package/dist/docs/api/classes/StoryMap.html +799 -0
  219. package/dist/docs/api/functions/MediaType.html +51 -0
  220. package/dist/docs/api/functions/loadCSS.html +64 -0
  221. package/dist/docs/api/functions/setLanguage.html +53 -0
  222. package/dist/docs/api/functions/validateStorymap.html +53 -0
  223. package/dist/docs/api/functions/validateStorymapAndReport.html +54 -0
  224. package/dist/docs/api/hierarchy.html +28 -0
  225. package/dist/docs/api/index.html +127 -0
  226. package/dist/docs/api/modules.html +42 -0
  227. package/dist/docs/iiif.html +912 -0
  228. package/dist/docs/migration.html +264 -0
  229. package/dist/docs/readme.html +178 -0
  230. package/dist/embed/index.html +95 -0
  231. package/dist/examples/assets/placeholder-city.jpg +0 -0
  232. package/dist/examples/assets/placeholder-landscape.jpg +0 -0
  233. package/dist/examples/assets/placeholder-portrait.jpg +0 -0
  234. package/dist/examples/assets/tone.mp3 +0 -0
  235. package/dist/examples/bob-boilen.json +123 -0
  236. package/dist/examples/courbet.json +32 -0
  237. package/dist/examples/empty.json +5 -0
  238. package/dist/examples/flickr-drewvigal.json +341 -0
  239. package/dist/examples/flickr-zach.wise.json +341 -0
  240. package/dist/examples/iiif-wellcome.json +28 -0
  241. package/dist/examples/instagram-chenpamela.json +592 -0
  242. package/dist/examples/instagram_brentfoster.json +565 -0
  243. package/dist/examples/instagram_couch.json +402 -0
  244. package/dist/examples/instagram_joegermuska.json +687 -0
  245. package/dist/examples/instagram_matteich.json +341 -0
  246. package/dist/examples/instagram_mirandamulligan.json +402 -0
  247. package/dist/examples/instagram_raymondmccrea.json +341 -0
  248. package/dist/examples/instagram_test.json +341 -0
  249. package/dist/examples/issue-134-no-lines.json +78 -0
  250. package/dist/examples/issue-177-color-vars.json +44 -0
  251. package/dist/examples/issue-211-rtl.json +44 -0
  252. package/dist/examples/issue-272-facebook.json +47 -0
  253. package/dist/examples/issue-305-start-at-slide.json +95 -0
  254. package/dist/examples/issue-341-distance.json +44 -0
  255. package/dist/examples/issue-360-juxtapose.json +35 -0
  256. package/dist/examples/issue-368-null-fields.json +60 -0
  257. package/dist/examples/issue-375-code-lists.json +35 -0
  258. package/dist/examples/issue-381-dateline.json +77 -0
  259. package/dist/examples/issue-425-many-slides.json +2723 -0
  260. package/dist/examples/issue-428-background.json +62 -0
  261. package/dist/examples/issue-435-googlemaps.json +35 -0
  262. package/dist/examples/issue-437-documentcloud.json +35 -0
  263. package/dist/examples/issue-451-webp.json +35 -0
  264. package/dist/examples/issue-455-audio.json +35 -0
  265. package/dist/examples/issue-480-shorts.json +35 -0
  266. package/dist/examples/issue-506-marker-sync.json +77 -0
  267. package/dist/examples/jansteen.json +1 -0
  268. package/dist/examples/katrina.json +161 -0
  269. package/dist/examples/marktwain.json +341 -0
  270. package/dist/examples/population.json +463 -0
  271. package/dist/examples/president.json +454 -0
  272. package/dist/examples/seurat.json +248 -0
  273. package/dist/examples-iiif/bob-boilen.json +341 -0
  274. package/dist/examples-iiif/courbet.json +80 -0
  275. package/dist/examples-iiif/empty.json +29 -0
  276. package/dist/examples-iiif/flickr-drewvigal.json +1189 -0
  277. package/dist/examples-iiif/flickr-zach.wise.json +1074 -0
  278. package/dist/examples-iiif/iiif-wellcome.json +97 -0
  279. package/dist/examples-iiif/instagram-chenpamela.json +1716 -0
  280. package/dist/examples-iiif/instagram_brentfoster.json +1804 -0
  281. package/dist/examples-iiif/instagram_couch.json +1166 -0
  282. package/dist/examples-iiif/instagram_joegermuska.json +1946 -0
  283. package/dist/examples-iiif/instagram_matteich.json +1190 -0
  284. package/dist/examples-iiif/instagram_mirandamulligan.json +1171 -0
  285. package/dist/examples-iiif/instagram_raymondmccrea.json +1165 -0
  286. package/dist/examples-iiif/instagram_test.json +1185 -0
  287. package/dist/examples-iiif/issue-134-no-lines.json +245 -0
  288. package/dist/examples-iiif/issue-177-color-vars.json +182 -0
  289. package/dist/examples-iiif/issue-211-rtl.json +182 -0
  290. package/dist/examples-iiif/issue-272-facebook.json +146 -0
  291. package/dist/examples-iiif/issue-305-start-at-slide.json +300 -0
  292. package/dist/examples-iiif/issue-341-distance.json +182 -0
  293. package/dist/examples-iiif/issue-360-juxtapose.json +112 -0
  294. package/dist/examples-iiif/issue-368-null-fields.json +202 -0
  295. package/dist/examples-iiif/issue-375-code-lists.json +111 -0
  296. package/dist/examples-iiif/issue-381-dateline.json +244 -0
  297. package/dist/examples-iiif/issue-425-many-slides.json +8476 -0
  298. package/dist/examples-iiif/issue-428-background.json +191 -0
  299. package/dist/examples-iiif/issue-435-googlemaps.json +111 -0
  300. package/dist/examples-iiif/issue-437-documentcloud.json +112 -0
  301. package/dist/examples-iiif/issue-451-webp.json +111 -0
  302. package/dist/examples-iiif/issue-455-audio.json +111 -0
  303. package/dist/examples-iiif/issue-480-shorts.json +110 -0
  304. package/dist/examples-iiif/issue-506-marker-sync.json +244 -0
  305. package/dist/examples-iiif/jansteen.json +509 -0
  306. package/dist/examples-iiif/katrina.json +499 -0
  307. package/dist/examples-iiif/marktwain.json +929 -0
  308. package/dist/examples-iiif/population.json +1464 -0
  309. package/dist/examples-iiif/president.json +1351 -0
  310. package/dist/examples-iiif/seurat.json +870 -0
  311. package/dist/football.json +344 -0
  312. package/dist/harness.html +15 -0
  313. package/dist/index.html +410 -0
  314. package/dist/js/storymap.js +25787 -0
  315. package/dist/js/storymap.js.map +1 -0
  316. package/dist/site.css +592 -0
  317. package/dist/thumbs/bosch-garden.jpg +0 -0
  318. package/dist/thumbs/iiif-wellcome.jpg +0 -0
  319. package/dist/thumbs/katrina.jpg +0 -0
  320. package/dist/thumbs/marktwain.jpg +0 -0
  321. package/dist/thumbs/population.jpg +0 -0
  322. package/dist/thumbs/president.jpg +0 -0
  323. package/dist/thumbs/seurat.jpg +0 -0
  324. package/dist/thumbs/southern-literary-trail.jpg +0 -0
  325. package/package.json +105 -0
  326. package/schema/storymap.schema.json +192 -0
@@ -0,0 +1,410 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>StoryMapJS</title>
7
+ <meta
8
+ name="description"
9
+ content="Maps that tell stories. StoryMapJS is a viewer for place-based slide stories, built on OpenLayers."
10
+ />
11
+ <link rel="stylesheet" href="./site.css" />
12
+ <script type="module" crossorigin src="./assets/index-DDsPBPZA.js"></script>
13
+ <link rel="modulepreload" crossorigin href="./assets/modulepreload-polyfill-P2Xu9kJm.js">
14
+ </head>
15
+
16
+ <body class="sm-site">
17
+ <nav class="navbar navbar-dark">
18
+ <ul>
19
+ <li class="logo">
20
+ <a href="./index.html">StoryMap <span>JS</span></a>
21
+ </li>
22
+ </ul>
23
+ <ul class="nav-right">
24
+ <li>
25
+ <a
26
+ class="button button-dark button-active"
27
+ href="https://github.com/cmahnke/StoryMapJS"
28
+ >GitHub</a
29
+ >
30
+ </li>
31
+ <li>
32
+ <a
33
+ class="button button-dark"
34
+ href="https://github.com/cmahnke/StoryMapJS/issues"
35
+ >Issues</a
36
+ >
37
+ </li>
38
+ <li>
39
+ <a class="button button-dark" href="https://github.com/NUKnightLab/StoryMapJS"
40
+ >Upstream</a
41
+ >
42
+ </li>
43
+ </ul>
44
+ </nav>
45
+
46
+ <header class="header-product">
47
+ <h1 class="product-logo">StoryMap <span>JS</span></h1>
48
+ <h2 class="product-tagline">Maps that tell stories.</h2>
49
+ <a class="button button-secondary button-large" href="#overview">Get started</a>
50
+
51
+ <nav id="navbar-secondary" class="navbar navbar-subnav" aria-label="Page navigation">
52
+ <ul>
53
+ <li><a class="button" href="#overview">Overview</a></li>
54
+ <li><a class="button" href="#examples">Examples</a></li>
55
+ <li><a class="button" href="./docs/readme.html">README</a></li>
56
+ <li>
57
+ <a class="button" href="./docs/migration.html">Migration guide</a>
58
+ </li>
59
+ <li><a class="button" href="./docs/iiif.html">IIIF docs</a></li>
60
+ <li><a class="button" href="./docs/api/index.html">API docs</a></li>
61
+ <li><a class="button" href="#help">Help</a></li>
62
+ </ul>
63
+ </nav>
64
+ </header>
65
+
66
+ <article id="product-body">
67
+ <!-- The widget runs in its own document: its CSS can never mix
68
+ with the page chrome (and vice versa). -->
69
+ <section id="demo" class="container-fluid">
70
+ <iframe
71
+ class="demo-frame"
72
+ id="demo-frame"
73
+ src="./demo.html"
74
+ title="StoryMapJS demo"
75
+ ></iframe>
76
+ </section>
77
+
78
+ <section id="overview" class="section container">
79
+ <div class="grid grid-size-2">
80
+ <div class="grid-item">
81
+ <p class="note">
82
+ <strong>Unofficial fork:</strong> this is an unofficial, unapproved fork
83
+ of the original
84
+ <a href="https://github.com/NUKnightLab/StoryMapJS"
85
+ >NUKnightLab/StoryMapJS</a
86
+ >
87
+ repository and a proof of concept for an AI-based renovation using the
88
+ model GLM 5.3 Flash. It is not endorsed by Northwestern University
89
+ Knight Lab.
90
+ </p>
91
+ <p>
92
+ StoryMapJS tells stories on the web that highlight the locations of a
93
+ series of events. This is a TypeScript rewrite of the original Knight
94
+ Lab viewer: it renders storymap JSON (and IIIF manifests) on modern web
95
+ maps — the authoring tool is not part of this repository.
96
+ </p>
97
+ <p>There are a couple ways you can use a StoryMap.</p>
98
+ <ul>
99
+ <li>
100
+ <h5>Maps</h5>
101
+ <p>
102
+ Add a slide for each place in your story. The viewer draws
103
+ cartography from OpenStreetMap or custom tile servers, and
104
+ renders the route between your places.
105
+ </p>
106
+ </li>
107
+ <li>
108
+ <h5>Really big images</h5>
109
+ <p>
110
+ You can tell stories with large photographs, works of art,
111
+ historic maps and other image files. Because it works best with
112
+ pixel-dense files served over the
113
+ <strong>IIIF Image API</strong>.
114
+ </p>
115
+ <p class="text-align-center">
116
+ <a class="button button-small" href="./docs/iiif.html"
117
+ >Learn more about IIIF</a
118
+ >
119
+ </p>
120
+ </li>
121
+ </ul>
122
+ </div>
123
+ <div class="grid-item">
124
+ <h3 style="margin-top: 0">Tips &amp; tricks</h3>
125
+ <ol>
126
+ <li>
127
+ Keep it short. We recommend not having more than 20 slides for a
128
+ reader to click through.
129
+ </li>
130
+ <li>
131
+ Pick stories that have a strong location narrative. It does not work
132
+ well for stories that need to jump around in the map.
133
+ </li>
134
+ <li>Write each event as a part of a larger narrative.</li>
135
+ <li>
136
+ Include events that build up to major occurrences — not just the
137
+ major events.
138
+ </li>
139
+ </ol>
140
+ <h3>Media sources</h3>
141
+ <p>
142
+ The viewer can pull in media from a variety of sources: Twitter/X,
143
+ Flickr, YouTube, Vimeo, Dailymotion, Wikipedia, SoundCloud, Facebook,
144
+ DocumentCloud, Juxtapose, Google Docs, images, audio, video, quotes and
145
+ more.
146
+ </p>
147
+ </div>
148
+ </div>
149
+ </section>
150
+
151
+ <section class="section-color fill-color-grey" id="examples">
152
+ <div class="container">
153
+ <h2>Examples</h2>
154
+ <div class="cards cards-link" id="examples-cards">
155
+ <!-- Populated by /src/site/site.ts -->
156
+ </div>
157
+ </div>
158
+ </section>
159
+
160
+ <section class="section container" id="help">
161
+ <div class="grid">
162
+ <div class="grid-item" style="flex: 2">
163
+ <h2>Help</h2>
164
+ <p>
165
+ Need help? Start with the frequently asked questions below, then check
166
+ the
167
+ <a href="./docs/readme.html">README</a> and the
168
+ <a href="./docs/migration.html">migration guide</a>.
169
+ </p>
170
+ <p>
171
+ If you don't find an answer there, open a
172
+ <a href="https://github.com/cmahnke/StoryMapJS/issues">GitHub issue</a>.
173
+ Please be clear with your question, include the storymap JSON you are
174
+ loading and, if appropriate, a link to a page which shows the issue.
175
+ </p>
176
+ <p class="note">
177
+ <strong>Find a bug?</strong> If you are confident you have found a bug,
178
+ please report it as
179
+ <a href="https://github.com/cmahnke/StoryMapJS/issues">a GitHub issue</a
180
+ >. Be sure to include detailed instructions on how to reproduce it.
181
+ Upstream bugs go to
182
+ <a href="https://github.com/NUKnightLab/StoryMapJS/issues"
183
+ >NUKnightLab/StoryMapJS</a
184
+ >.
185
+ </p>
186
+ </div>
187
+ <div class="grid-item">
188
+ <h3>Technical documentation</h3>
189
+ <p>Go further with StoryMap:</p>
190
+ <ul>
191
+ <li>
192
+ <a href="./docs/migration.html"
193
+ >Migrating from Knight Lab StoryMapJS</a
194
+ >
195
+ </li>
196
+ <li>
197
+ <a href="./docs/migration.html">Storymap options</a>
198
+ </li>
199
+ <li>
200
+ <a href="./docs/iiif.html">StoryMap data as IIIF manifests</a>
201
+ </li>
202
+ <li>
203
+ <a href="./docs/readme.html#development">Development setup</a>
204
+ </li>
205
+ <li>
206
+ <a href="https://github.com/cmahnke/StoryMapJS/tree/main/schema"
207
+ >JSON schema</a
208
+ >
209
+ </li>
210
+ </ul>
211
+ </div>
212
+ </div>
213
+ <div class="grid" id="faq">
214
+ <div class="grid-item">
215
+ <h3>Frequently asked questions</h3>
216
+ <ul class="accordion">
217
+ <li>
218
+ <input type="checkbox" checked />
219
+ <i></i>
220
+ <h3>How do I install the viewer?</h3>
221
+ <div class="accordion-content">
222
+ <p>
223
+ <code>npm install @projektemacher/storymapjs</code>, then
224
+ import the module and the stylesheet:
225
+ </p>
226
+ <pre><code>import { StoryMap } from "@projektemacher/storymapjs";
227
+ import "@projektemacher/storymapjs/css/storymap.css";
228
+
229
+ new StoryMap("mapdiv", "my-storymap.json");</code></pre>
230
+ </div>
231
+ </li>
232
+ <li>
233
+ <input type="checkbox" checked />
234
+ <i></i>
235
+ <h3>How do I embed a published storymap?</h3>
236
+ <div class="accordion-content">
237
+ <p>
238
+ Use the embed page in an iframe; the
239
+ <code>url</code> parameter is resolved against the site
240
+ root:
241
+ </p>
242
+ <pre><code>&lt;iframe src="/embed/index.html?url=my-storymap.json"
243
+ width="100%" height="800"&gt;&lt;/iframe&gt;</code></pre>
244
+ </div>
245
+ </li>
246
+ <li>
247
+ <input type="checkbox" checked />
248
+ <i></i>
249
+ <h3>How can I link to a specific slide?</h3>
250
+ <div class="accordion-content">
251
+ <p>
252
+ The viewer keeps the current slide in the URL as a
253
+ <code>#slide-N</code>
254
+ hash. Open a storymap at
255
+ <code>…#slide-5</code> to start there, or use the
256
+ <code>start_at_slide</code> option (also available as an
257
+ embed URL parameter). Copy the URL at any time — it always
258
+ points at the slide you are viewing.
259
+ </p>
260
+ </div>
261
+ </li>
262
+ <li>
263
+ <input type="checkbox" checked />
264
+ <i></i>
265
+ <h3>How can I have a map without lines between points?</h3>
266
+ <div class="accordion-content">
267
+ Set <code>show_lines: false</code> in the storymap options (or
268
+ use <code>map_as_image</code> for IIIF image stories, where
269
+ lines are off by default).
270
+ </div>
271
+ </li>
272
+ <li>
273
+ <input type="checkbox" checked />
274
+ <i></i>
275
+ <h3>How can I use a custom map?</h3>
276
+ <div class="accordion-content">
277
+ <p>
278
+ Set <code>map_type</code> to a tile URL template (e.g.
279
+ <code>"https://tile.example.org/{z}/{x}/{y}.png"</code>) or
280
+ pass raw OpenLayers options via <code>map_options</code> —
281
+ view, controls and interactions are all configurable.
282
+ </p>
283
+ </div>
284
+ </li>
285
+ <li>
286
+ <input type="checkbox" checked />
287
+ <i></i>
288
+ <h3>How can I adjust the zoom?</h3>
289
+ <div class="accordion-content">
290
+ <p>
291
+ The viewer fits the map to all markers and zooms between
292
+ places as the reader navigates
293
+ (<code>calculate_zoom</code>). With
294
+ <code>calculate_zoom: true</code> (the default) the
295
+ calculated zoom overrides per-slide
296
+ <code>location.zoom</code> values; set
297
+ <code>calculate_zoom: false</code> to use your own
298
+ <code>location.zoom</code> per slide.
299
+ <code>map_options.view</code> accepts raw OpenLayers view
300
+ options.
301
+ </p>
302
+ </div>
303
+ </li>
304
+ <li>
305
+ <input type="checkbox" checked />
306
+ <i></i>
307
+ <h3>Can I change the fonts?</h3>
308
+ <div class="accordion-content">
309
+ <p>
310
+ Yes — ship a font theme with your storymap (<code
311
+ >font_css</code
312
+ >
313
+ in the data, relative to the script) or reference a stock
314
+ theme with <code>font_css: "stock:knightlab"</code>. The
315
+ compiled stock themes are resolved from the library's
316
+ <code>css/fonts/</code> directory (next to the bundled JS).
317
+ </p>
318
+ </div>
319
+ </li>
320
+ <li>
321
+ <input type="checkbox" checked />
322
+ <i></i>
323
+ <h3>Can I use custom HTML in a slide?</h3>
324
+ <div class="accordion-content">
325
+ <p>
326
+ Yes — the slide <code>text</code> renders as HTML: links,
327
+ images, lists and <code>vco-note</code> spans all work. Text
328
+ without a <code>&lt;p&gt;</code>
329
+ tag is wrapped in one automatically. The markup is rendered
330
+ raw, so only load storymaps from sources you trust.
331
+ </p>
332
+ </div>
333
+ </li>
334
+ <li>
335
+ <input type="checkbox" checked />
336
+ <i></i>
337
+ <h3>Can I limit the map to an area?</h3>
338
+ <div class="accordion-content">
339
+ Set
340
+ <code>map_bbox: [west, south, east, north]</code>
341
+ (lon/lat) in the options — nothing outside of the box can be
342
+ visible. For IIIF image stories the coordinates are raw image
343
+ pixels.
344
+ </div>
345
+ </li>
346
+ <li>
347
+ <input type="checkbox" checked />
348
+ <i></i>
349
+ <h3>Does the viewer load external services by default?</h3>
350
+ <div class="accordion-content">
351
+ <p>
352
+ Yes, but set
353
+ <code>consent_required: true</code> to ask for permission
354
+ before anything is loaded from external services (media
355
+ embeds, map tiles, external fonts). Each service asks once
356
+ per page load with an Allow/Deny panel; denied services show
357
+ a placeholder instead. Decisions are stored in a cookie for
358
+ 90 days — clearing cookies asks again.
359
+ </p>
360
+ </div>
361
+ </li>
362
+ </ul>
363
+ </div>
364
+ </div>
365
+ </section>
366
+ </article>
367
+
368
+ <footer class="footer-knightlab">
369
+ <div class="footer-grid">
370
+ <div>
371
+ <div class="footer-brand">StoryMap <span>JS</span></div>
372
+ <ul class="list-social">
373
+ <li>
374
+ <a
375
+ href="https://github.com/cmahnke/StoryMapJS"
376
+ title="StoryMapJS fork on GitHub"
377
+ >GitHub</a
378
+ >
379
+ </li>
380
+ <li>
381
+ <a
382
+ href="https://github.com/NUKnightLab/StoryMapJS"
383
+ title="Upstream Knight Lab repository"
384
+ >Upstream</a
385
+ >
386
+ </li>
387
+ </ul>
388
+ </div>
389
+ <div class="footer-description">
390
+ <p>
391
+ A TypeScript rewrite of
392
+ <a href="https://github.com/NUKnightLab/StoryMapJS"
393
+ >NUKnightLab/StoryMapJS</a
394
+ >, the original tool by
395
+ <a href="https://knightlab.northwestern.edu/"
396
+ >Northwestern University Knight Lab</a
397
+ >. The storymap JSON format is preserved; the rendering engine moved from
398
+ Leaflet to OpenLayers, so some rendering details differ (see the
399
+ <a href="./docs/migration.html">migration notes</a>).
400
+ </p>
401
+ <span class="copyright">
402
+ Released under the
403
+ <a href="https://opensource.org/license/MPL-2-0">MPL-2.0</a>
404
+ license.
405
+ </span>
406
+ </div>
407
+ </div>
408
+ </footer>
409
+ </body>
410
+ </html>