postext 1.8.5 → 1.9.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 (565) hide show
  1. package/dist/__bench__/cjkChapter.bench.test.d.ts +2 -0
  2. package/dist/__bench__/cjkChapter.bench.test.d.ts.map +1 -0
  3. package/dist/__bench__/cjkChapter.bench.test.js +71 -0
  4. package/dist/__bench__/cjkChapter.bench.test.js.map +1 -0
  5. package/dist/__tests__/bundle.test.js +16 -0
  6. package/dist/__tests__/bundle.test.js.map +1 -1
  7. package/dist/__tests__/canvasDirection.test.d.ts +2 -0
  8. package/dist/__tests__/canvasDirection.test.d.ts.map +1 -0
  9. package/dist/__tests__/canvasDirection.test.js +45 -0
  10. package/dist/__tests__/canvasDirection.test.js.map +1 -0
  11. package/dist/__tests__/chineseLocale.test.d.ts +2 -0
  12. package/dist/__tests__/chineseLocale.test.d.ts.map +1 -0
  13. package/dist/__tests__/chineseLocale.test.js +253 -0
  14. package/dist/__tests__/chineseLocale.test.js.map +1 -0
  15. package/dist/__tests__/chineseNumbering.test.d.ts +2 -0
  16. package/dist/__tests__/chineseNumbering.test.d.ts.map +1 -0
  17. package/dist/__tests__/chineseNumbering.test.js +376 -0
  18. package/dist/__tests__/chineseNumbering.test.js.map +1 -0
  19. package/dist/__tests__/cjk/annotations.test.d.ts +2 -0
  20. package/dist/__tests__/cjk/annotations.test.d.ts.map +1 -0
  21. package/dist/__tests__/cjk/annotations.test.js +483 -0
  22. package/dist/__tests__/cjk/annotations.test.js.map +1 -0
  23. package/dist/__tests__/cjk/annotationsRender.test.d.ts +2 -0
  24. package/dist/__tests__/cjk/annotationsRender.test.d.ts.map +1 -0
  25. package/dist/__tests__/cjk/annotationsRender.test.js +263 -0
  26. package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -0
  27. package/dist/__tests__/cjk/composer.test.d.ts +2 -0
  28. package/dist/__tests__/cjk/composer.test.d.ts.map +1 -0
  29. package/dist/__tests__/cjk/composer.test.js +237 -0
  30. package/dist/__tests__/cjk/composer.test.js.map +1 -0
  31. package/dist/__tests__/cjk/composerEdges.test.d.ts +2 -0
  32. package/dist/__tests__/cjk/composerEdges.test.d.ts.map +1 -0
  33. package/dist/__tests__/cjk/composerEdges.test.js +352 -0
  34. package/dist/__tests__/cjk/composerEdges.test.js.map +1 -0
  35. package/dist/__tests__/cjk/dashRule.test.d.ts +2 -0
  36. package/dist/__tests__/cjk/dashRule.test.d.ts.map +1 -0
  37. package/dist/__tests__/cjk/dashRule.test.js +261 -0
  38. package/dist/__tests__/cjk/dashRule.test.js.map +1 -0
  39. package/dist/__tests__/cjk/fuzz.test.d.ts +2 -0
  40. package/dist/__tests__/cjk/fuzz.test.d.ts.map +1 -0
  41. package/dist/__tests__/cjk/fuzz.test.js +102 -0
  42. package/dist/__tests__/cjk/fuzz.test.js.map +1 -0
  43. package/dist/__tests__/cjk/grid.test.d.ts +2 -0
  44. package/dist/__tests__/cjk/grid.test.d.ts.map +1 -0
  45. package/dist/__tests__/cjk/grid.test.js +261 -0
  46. package/dist/__tests__/cjk/grid.test.js.map +1 -0
  47. package/dist/__tests__/cjk/justifyRender.test.d.ts +2 -0
  48. package/dist/__tests__/cjk/justifyRender.test.d.ts.map +1 -0
  49. package/dist/__tests__/cjk/justifyRender.test.js +139 -0
  50. package/dist/__tests__/cjk/justifyRender.test.js.map +1 -0
  51. package/dist/__tests__/cjk/latinFastPath.test.d.ts +2 -0
  52. package/dist/__tests__/cjk/latinFastPath.test.d.ts.map +1 -0
  53. package/dist/__tests__/cjk/latinFastPath.test.js +208 -0
  54. package/dist/__tests__/cjk/latinFastPath.test.js.map +1 -0
  55. package/dist/__tests__/cjk/markCutsLatin.test.d.ts +2 -0
  56. package/dist/__tests__/cjk/markCutsLatin.test.d.ts.map +1 -0
  57. package/dist/__tests__/cjk/markCutsLatin.test.js +69 -0
  58. package/dist/__tests__/cjk/markCutsLatin.test.js.map +1 -0
  59. package/dist/__tests__/cjk/markRuns.test.d.ts +2 -0
  60. package/dist/__tests__/cjk/markRuns.test.d.ts.map +1 -0
  61. package/dist/__tests__/cjk/markRuns.test.js +347 -0
  62. package/dist/__tests__/cjk/markRuns.test.js.map +1 -0
  63. package/dist/__tests__/cjk/punctuation.test.d.ts +2 -0
  64. package/dist/__tests__/cjk/punctuation.test.d.ts.map +1 -0
  65. package/dist/__tests__/cjk/punctuation.test.js +440 -0
  66. package/dist/__tests__/cjk/punctuation.test.js.map +1 -0
  67. package/dist/__tests__/cjk/punctuationRender.test.d.ts +2 -0
  68. package/dist/__tests__/cjk/punctuationRender.test.d.ts.map +1 -0
  69. package/dist/__tests__/cjk/punctuationRender.test.js +135 -0
  70. package/dist/__tests__/cjk/punctuationRender.test.js.map +1 -0
  71. package/dist/__tests__/cjk/rubyDescenders.test.d.ts +2 -0
  72. package/dist/__tests__/cjk/rubyDescenders.test.d.ts.map +1 -0
  73. package/dist/__tests__/cjk/rubyDescenders.test.js +77 -0
  74. package/dist/__tests__/cjk/rubyDescenders.test.js.map +1 -0
  75. package/dist/__tests__/cjk/runt.test.d.ts +2 -0
  76. package/dist/__tests__/cjk/runt.test.d.ts.map +1 -0
  77. package/dist/__tests__/cjk/runt.test.js +103 -0
  78. package/dist/__tests__/cjk/runt.test.js.map +1 -0
  79. package/dist/__tests__/cjk/sharedMarks.test.d.ts +2 -0
  80. package/dist/__tests__/cjk/sharedMarks.test.d.ts.map +1 -0
  81. package/dist/__tests__/cjk/sharedMarks.test.js +347 -0
  82. package/dist/__tests__/cjk/sharedMarks.test.js.map +1 -0
  83. package/dist/__tests__/cjk/uprightDots.test.d.ts +2 -0
  84. package/dist/__tests__/cjk/uprightDots.test.d.ts.map +1 -0
  85. package/dist/__tests__/cjk/uprightDots.test.js +47 -0
  86. package/dist/__tests__/cjk/uprightDots.test.js.map +1 -0
  87. package/dist/__tests__/cjk/wordJoiner.test.d.ts +2 -0
  88. package/dist/__tests__/cjk/wordJoiner.test.d.ts.map +1 -0
  89. package/dist/__tests__/cjk/wordJoiner.test.js +47 -0
  90. package/dist/__tests__/cjk/wordJoiner.test.js.map +1 -0
  91. package/dist/__tests__/cjk/zhuyinTones.test.d.ts +2 -0
  92. package/dist/__tests__/cjk/zhuyinTones.test.d.ts.map +1 -0
  93. package/dist/__tests__/cjk/zhuyinTones.test.js +72 -0
  94. package/dist/__tests__/cjk/zhuyinTones.test.js.map +1 -0
  95. package/dist/__tests__/contentLocale.test.d.ts +2 -0
  96. package/dist/__tests__/contentLocale.test.d.ts.map +1 -0
  97. package/dist/__tests__/contentLocale.test.js +167 -0
  98. package/dist/__tests__/contentLocale.test.js.map +1 -0
  99. package/dist/__tests__/defaults/cjk.test.d.ts +2 -0
  100. package/dist/__tests__/defaults/cjk.test.d.ts.map +1 -0
  101. package/dist/__tests__/defaults/cjk.test.js +70 -0
  102. package/dist/__tests__/defaults/cjk.test.js.map +1 -0
  103. package/dist/__tests__/design/designTextRender.test.js +31 -0
  104. package/dist/__tests__/design/designTextRender.test.js.map +1 -1
  105. package/dist/__tests__/design/imageAltText.test.d.ts +2 -0
  106. package/dist/__tests__/design/imageAltText.test.d.ts.map +1 -0
  107. package/dist/__tests__/design/imageAltText.test.js +126 -0
  108. package/dist/__tests__/design/imageAltText.test.js.map +1 -0
  109. package/dist/__tests__/exports.test.js +61 -0
  110. package/dist/__tests__/exports.test.js.map +1 -1
  111. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  112. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  113. package/dist/__tests__/indexChinese.test.d.ts +2 -0
  114. package/dist/__tests__/indexChinese.test.d.ts.map +1 -0
  115. package/dist/__tests__/indexChinese.test.js +190 -0
  116. package/dist/__tests__/indexChinese.test.js.map +1 -0
  117. package/dist/__tests__/parse/annotations.test.d.ts +2 -0
  118. package/dist/__tests__/parse/annotations.test.d.ts.map +1 -0
  119. package/dist/__tests__/parse/annotations.test.js +175 -0
  120. package/dist/__tests__/parse/annotations.test.js.map +1 -0
  121. package/dist/__tests__/parse/attrQuoting.test.js +10 -8
  122. package/dist/__tests__/parse/attrQuoting.test.js.map +1 -1
  123. package/dist/__tests__/parse/chineseText.test.d.ts +2 -0
  124. package/dist/__tests__/parse/chineseText.test.d.ts.map +1 -0
  125. package/dist/__tests__/parse/chineseText.test.js +352 -0
  126. package/dist/__tests__/parse/chineseText.test.js.map +1 -0
  127. package/dist/__tests__/parts.test.js +25 -0
  128. package/dist/__tests__/parts.test.js.map +1 -1
  129. package/dist/__tests__/pipeline/colonListRoom.test.js +20 -0
  130. package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
  131. package/dist/__tests__/presets/hongloumeng.test.d.ts +2 -0
  132. package/dist/__tests__/presets/hongloumeng.test.d.ts.map +1 -0
  133. package/dist/__tests__/presets/hongloumeng.test.js +484 -0
  134. package/dist/__tests__/presets/hongloumeng.test.js.map +1 -0
  135. package/dist/__tests__/vertical/canvasPaint.test.d.ts +2 -0
  136. package/dist/__tests__/vertical/canvasPaint.test.d.ts.map +1 -0
  137. package/dist/__tests__/vertical/canvasPaint.test.js +229 -0
  138. package/dist/__tests__/vertical/canvasPaint.test.js.map +1 -0
  139. package/dist/__tests__/vertical/compositionPaint.test.d.ts +2 -0
  140. package/dist/__tests__/vertical/compositionPaint.test.d.ts.map +1 -0
  141. package/dist/__tests__/vertical/compositionPaint.test.js +538 -0
  142. package/dist/__tests__/vertical/compositionPaint.test.js.map +1 -0
  143. package/dist/__tests__/vertical/geometry.test.d.ts +2 -0
  144. package/dist/__tests__/vertical/geometry.test.d.ts.map +1 -0
  145. package/dist/__tests__/vertical/geometry.test.js +276 -0
  146. package/dist/__tests__/vertical/geometry.test.js.map +1 -0
  147. package/dist/__tests__/vertical/htmlSmoke.test.d.ts +2 -0
  148. package/dist/__tests__/vertical/htmlSmoke.test.d.ts.map +1 -0
  149. package/dist/__tests__/vertical/htmlSmoke.test.js +25 -0
  150. package/dist/__tests__/vertical/htmlSmoke.test.js.map +1 -0
  151. package/dist/__tests__/vertical/htmlTurnedCells.test.d.ts +2 -0
  152. package/dist/__tests__/vertical/htmlTurnedCells.test.d.ts.map +1 -0
  153. package/dist/__tests__/vertical/htmlTurnedCells.test.js +99 -0
  154. package/dist/__tests__/vertical/htmlTurnedCells.test.js.map +1 -0
  155. package/dist/__tests__/vertical/htmlVertical.test.d.ts +2 -0
  156. package/dist/__tests__/vertical/htmlVertical.test.d.ts.map +1 -0
  157. package/dist/__tests__/vertical/htmlVertical.test.js +145 -0
  158. package/dist/__tests__/vertical/htmlVertical.test.js.map +1 -0
  159. package/dist/__tests__/vertical/lineAxis.test.d.ts +2 -0
  160. package/dist/__tests__/vertical/lineAxis.test.d.ts.map +1 -0
  161. package/dist/__tests__/vertical/lineAxis.test.js +128 -0
  162. package/dist/__tests__/vertical/lineAxis.test.js.map +1 -0
  163. package/dist/__tests__/vertical/measurePaint.test.d.ts +2 -0
  164. package/dist/__tests__/vertical/measurePaint.test.d.ts.map +1 -0
  165. package/dist/__tests__/vertical/measurePaint.test.js +259 -0
  166. package/dist/__tests__/vertical/measurePaint.test.js.map +1 -0
  167. package/dist/__tests__/vertical/orientation.test.d.ts +2 -0
  168. package/dist/__tests__/vertical/orientation.test.d.ts.map +1 -0
  169. package/dist/__tests__/vertical/orientation.test.js +153 -0
  170. package/dist/__tests__/vertical/orientation.test.js.map +1 -0
  171. package/dist/__tests__/vertical/stub.d.ts +8 -0
  172. package/dist/__tests__/vertical/stub.d.ts.map +1 -0
  173. package/dist/__tests__/vertical/stub.js +37 -0
  174. package/dist/__tests__/vertical/stub.js.map +1 -0
  175. package/dist/__tests__/vertical/tateChuYoko.test.d.ts +2 -0
  176. package/dist/__tests__/vertical/tateChuYoko.test.d.ts.map +1 -0
  177. package/dist/__tests__/vertical/tateChuYoko.test.js +270 -0
  178. package/dist/__tests__/vertical/tateChuYoko.test.js.map +1 -0
  179. package/dist/__tests__/vertical/uprightResources.test.d.ts +2 -0
  180. package/dist/__tests__/vertical/uprightResources.test.d.ts.map +1 -0
  181. package/dist/__tests__/vertical/uprightResources.test.js +182 -0
  182. package/dist/__tests__/vertical/uprightResources.test.js.map +1 -0
  183. package/dist/__tests__/vertical/verticalDesignText.test.d.ts +2 -0
  184. package/dist/__tests__/vertical/verticalDesignText.test.d.ts.map +1 -0
  185. package/dist/__tests__/vertical/verticalDesignText.test.js +190 -0
  186. package/dist/__tests__/vertical/verticalDesignText.test.js.map +1 -0
  187. package/dist/__tests__/vertical/verticalSpans.d.ts +25 -0
  188. package/dist/__tests__/vertical/verticalSpans.d.ts.map +1 -0
  189. package/dist/__tests__/vertical/verticalSpans.js +39 -0
  190. package/dist/__tests__/vertical/verticalSpans.js.map +1 -0
  191. package/dist/__tests__/vertical/verticalTwins.test.d.ts +2 -0
  192. package/dist/__tests__/vertical/verticalTwins.test.d.ts.map +1 -0
  193. package/dist/__tests__/vertical/verticalTwins.test.js +71 -0
  194. package/dist/__tests__/vertical/verticalTwins.test.js.map +1 -0
  195. package/dist/bundle/adapters.d.ts +14 -5
  196. package/dist/bundle/adapters.d.ts.map +1 -1
  197. package/dist/bundle/adapters.js +4 -3
  198. package/dist/bundle/adapters.js.map +1 -1
  199. package/dist/bundle/codec.d.ts.map +1 -1
  200. package/dist/bundle/codec.js +27 -4
  201. package/dist/bundle/codec.js.map +1 -1
  202. package/dist/bundle/index.d.ts +1 -1
  203. package/dist/bundle/index.d.ts.map +1 -1
  204. package/dist/bundle/manifest.d.ts +6 -4
  205. package/dist/bundle/manifest.d.ts.map +1 -1
  206. package/dist/bundle/manifest.js +31 -32
  207. package/dist/bundle/manifest.js.map +1 -1
  208. package/dist/bundle/types.d.ts +7 -2
  209. package/dist/bundle/types.d.ts.map +1 -1
  210. package/dist/canvas-backend/annotations.d.ts +31 -0
  211. package/dist/canvas-backend/annotations.d.ts.map +1 -0
  212. package/dist/canvas-backend/annotations.js +120 -0
  213. package/dist/canvas-backend/annotations.js.map +1 -0
  214. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  215. package/dist/canvas-backend/blockRender.js +195 -15
  216. package/dist/canvas-backend/blockRender.js.map +1 -1
  217. package/dist/canvas-backend/decorations.d.ts +5 -0
  218. package/dist/canvas-backend/decorations.d.ts.map +1 -1
  219. package/dist/canvas-backend/decorations.js +27 -0
  220. package/dist/canvas-backend/decorations.js.map +1 -1
  221. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  222. package/dist/canvas-backend/headerFooter.js +32 -16
  223. package/dist/canvas-backend/headerFooter.js.map +1 -1
  224. package/dist/canvas-backend/index.d.ts +2 -0
  225. package/dist/canvas-backend/index.d.ts.map +1 -1
  226. package/dist/canvas-backend/index.js +62 -2
  227. package/dist/canvas-backend/index.js.map +1 -1
  228. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  229. package/dist/canvas-backend/renderResourceBlock.js +42 -5
  230. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  231. package/dist/canvas-backend/segmentText.d.ts +23 -0
  232. package/dist/canvas-backend/segmentText.d.ts.map +1 -0
  233. package/dist/canvas-backend/segmentText.js +41 -0
  234. package/dist/canvas-backend/segmentText.js.map +1 -0
  235. package/dist/canvas-backend/verticalText.d.ts +113 -0
  236. package/dist/canvas-backend/verticalText.d.ts.map +1 -0
  237. package/dist/canvas-backend/verticalText.js +437 -0
  238. package/dist/canvas-backend/verticalText.js.map +1 -0
  239. package/dist/chineseNumerals.d.ts +39 -0
  240. package/dist/chineseNumerals.d.ts.map +1 -0
  241. package/dist/chineseNumerals.js +192 -0
  242. package/dist/chineseNumerals.js.map +1 -0
  243. package/dist/cjkMarks.d.ts +61 -0
  244. package/dist/cjkMarks.d.ts.map +1 -0
  245. package/dist/cjkMarks.js +441 -0
  246. package/dist/cjkMarks.js.map +1 -0
  247. package/dist/columnClip.d.ts +13 -4
  248. package/dist/columnClip.d.ts.map +1 -1
  249. package/dist/columnClip.js +33 -5
  250. package/dist/columnClip.js.map +1 -1
  251. package/dist/configWarnings.d.ts.map +1 -1
  252. package/dist/configWarnings.js +18 -3
  253. package/dist/configWarnings.js.map +1 -1
  254. package/dist/defaults/bodyText.d.ts +4 -1
  255. package/dist/defaults/bodyText.d.ts.map +1 -1
  256. package/dist/defaults/bodyText.js +27 -5
  257. package/dist/defaults/bodyText.js.map +1 -1
  258. package/dist/defaults/calloutStyles.js +1 -1
  259. package/dist/defaults/calloutStyles.js.map +1 -1
  260. package/dist/defaults/captionStyle.d.ts.map +1 -1
  261. package/dist/defaults/captionStyle.js +14 -0
  262. package/dist/defaults/captionStyle.js.map +1 -1
  263. package/dist/defaults/cjk.d.ts +33 -0
  264. package/dist/defaults/cjk.d.ts.map +1 -0
  265. package/dist/defaults/cjk.js +234 -0
  266. package/dist/defaults/cjk.js.map +1 -0
  267. package/dist/defaults/headerFooter.d.ts.map +1 -1
  268. package/dist/defaults/headerFooter.js +2 -0
  269. package/dist/defaults/headerFooter.js.map +1 -1
  270. package/dist/defaults/headingStyles.d.ts.map +1 -1
  271. package/dist/defaults/headingStyles.js +4 -0
  272. package/dist/defaults/headingStyles.js.map +1 -1
  273. package/dist/defaults/headings.d.ts.map +1 -1
  274. package/dist/defaults/headings.js +13 -6
  275. package/dist/defaults/headings.js.map +1 -1
  276. package/dist/defaults/index.d.ts +1 -0
  277. package/dist/defaults/index.d.ts.map +1 -1
  278. package/dist/defaults/index.js +10 -1
  279. package/dist/defaults/index.js.map +1 -1
  280. package/dist/defaults/indexConfig.d.ts +2 -1
  281. package/dist/defaults/indexConfig.d.ts.map +1 -1
  282. package/dist/defaults/indexConfig.js +5 -0
  283. package/dist/defaults/indexConfig.js.map +1 -1
  284. package/dist/defaults/layout.d.ts.map +1 -1
  285. package/dist/defaults/layout.js +7 -0
  286. package/dist/defaults/layout.js.map +1 -1
  287. package/dist/defaults/orderedLists.d.ts +5 -2
  288. package/dist/defaults/orderedLists.d.ts.map +1 -1
  289. package/dist/defaults/orderedLists.js +20 -5
  290. package/dist/defaults/orderedLists.js.map +1 -1
  291. package/dist/defaults/page.d.ts +8 -2
  292. package/dist/defaults/page.d.ts.map +1 -1
  293. package/dist/defaults/page.js +24 -7
  294. package/dist/defaults/page.js.map +1 -1
  295. package/dist/defaults/resourceTypes.d.ts +3 -3
  296. package/dist/defaults/resourceTypes.d.ts.map +1 -1
  297. package/dist/defaults/resourceTypes.js +23 -9
  298. package/dist/defaults/resourceTypes.js.map +1 -1
  299. package/dist/defaults/tableStyle.d.ts.map +1 -1
  300. package/dist/defaults/tableStyle.js +8 -5
  301. package/dist/defaults/tableStyle.js.map +1 -1
  302. package/dist/design/layout.d.ts +33 -0
  303. package/dist/design/layout.d.ts.map +1 -1
  304. package/dist/design/layout.js +124 -18
  305. package/dist/design/layout.js.map +1 -1
  306. package/dist/design/placeholders.d.ts.map +1 -1
  307. package/dist/design/placeholders.js +5 -1
  308. package/dist/design/placeholders.js.map +1 -1
  309. package/dist/design/richText.d.ts +24 -4
  310. package/dist/design/richText.d.ts.map +1 -1
  311. package/dist/design/richText.js +77 -16
  312. package/dist/design/richText.js.map +1 -1
  313. package/dist/html-backend.d.ts.map +1 -1
  314. package/dist/html-backend.js +635 -25
  315. package/dist/html-backend.js.map +1 -1
  316. package/dist/htmlAnnotations.d.ts +29 -0
  317. package/dist/htmlAnnotations.d.ts.map +1 -0
  318. package/dist/htmlAnnotations.js +86 -0
  319. package/dist/htmlAnnotations.js.map +1 -0
  320. package/dist/hyphenate.js +2 -1
  321. package/dist/hyphenate.js.map +1 -1
  322. package/dist/index.d.ts +28 -14
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +16 -8
  325. package/dist/index.js.map +1 -1
  326. package/dist/knuthPlass/pretextAdapter.d.ts +4 -1
  327. package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
  328. package/dist/knuthPlass/pretextAdapter.js +9 -5
  329. package/dist/knuthPlass/pretextAdapter.js.map +1 -1
  330. package/dist/knuthPlass/richAdapter.d.ts +15 -2
  331. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  332. package/dist/knuthPlass/richAdapter.js +16 -6
  333. package/dist/knuthPlass/richAdapter.js.map +1 -1
  334. package/dist/knuthPlass/tracking.d.ts +1 -1
  335. package/dist/knuthPlass/tracking.d.ts.map +1 -1
  336. package/dist/knuthPlass/tracking.js +4 -3
  337. package/dist/knuthPlass/tracking.js.map +1 -1
  338. package/dist/knuthPlass/types.d.ts +3 -0
  339. package/dist/knuthPlass/types.d.ts.map +1 -1
  340. package/dist/lineInk.d.ts +13 -0
  341. package/dist/lineInk.d.ts.map +1 -1
  342. package/dist/lineInk.js +28 -1
  343. package/dist/lineInk.js.map +1 -1
  344. package/dist/locale.d.ts +91 -3
  345. package/dist/locale.d.ts.map +1 -1
  346. package/dist/locale.js +245 -1
  347. package/dist/locale.js.map +1 -1
  348. package/dist/looseLines.d.ts +11 -1
  349. package/dist/looseLines.d.ts.map +1 -1
  350. package/dist/looseLines.js +26 -1
  351. package/dist/looseLines.js.map +1 -1
  352. package/dist/measure/cache.d.ts.map +1 -1
  353. package/dist/measure/cache.js +51 -3
  354. package/dist/measure/cache.js.map +1 -1
  355. package/dist/measure/canvas.d.ts +25 -0
  356. package/dist/measure/canvas.d.ts.map +1 -1
  357. package/dist/measure/canvas.js +90 -1
  358. package/dist/measure/canvas.js.map +1 -1
  359. package/dist/measure/cjk.d.ts +8 -13
  360. package/dist/measure/cjk.d.ts.map +1 -1
  361. package/dist/measure/cjk.js +29 -53
  362. package/dist/measure/cjk.js.map +1 -1
  363. package/dist/measure/cjkAnnotate.d.ts +96 -0
  364. package/dist/measure/cjkAnnotate.d.ts.map +1 -0
  365. package/dist/measure/cjkAnnotate.js +237 -0
  366. package/dist/measure/cjkAnnotate.js.map +1 -0
  367. package/dist/measure/cjkClasses.d.ts +133 -0
  368. package/dist/measure/cjkClasses.d.ts.map +1 -0
  369. package/dist/measure/cjkClasses.js +273 -0
  370. package/dist/measure/cjkClasses.js.map +1 -0
  371. package/dist/measure/cjkCompose.d.ts +86 -0
  372. package/dist/measure/cjkCompose.d.ts.map +1 -0
  373. package/dist/measure/cjkCompose.js +2022 -0
  374. package/dist/measure/cjkCompose.js.map +1 -0
  375. package/dist/measure/cjkPunctuation.d.ts +248 -0
  376. package/dist/measure/cjkPunctuation.d.ts.map +1 -0
  377. package/dist/measure/cjkPunctuation.js +492 -0
  378. package/dist/measure/cjkPunctuation.js.map +1 -0
  379. package/dist/measure/graphemes.d.ts +13 -0
  380. package/dist/measure/graphemes.d.ts.map +1 -0
  381. package/dist/measure/graphemes.js +38 -0
  382. package/dist/measure/graphemes.js.map +1 -0
  383. package/dist/measure/index.d.ts +3 -0
  384. package/dist/measure/index.d.ts.map +1 -1
  385. package/dist/measure/index.js +2 -0
  386. package/dist/measure/index.js.map +1 -1
  387. package/dist/measure/links.d.ts +6 -2
  388. package/dist/measure/links.d.ts.map +1 -1
  389. package/dist/measure/links.js +15 -5
  390. package/dist/measure/links.js.map +1 -1
  391. package/dist/measure/markCuts.d.ts +37 -0
  392. package/dist/measure/markCuts.d.ts.map +1 -0
  393. package/dist/measure/markCuts.js +77 -0
  394. package/dist/measure/markCuts.js.map +1 -0
  395. package/dist/measure/plain.d.ts.map +1 -1
  396. package/dist/measure/plain.js +33 -11
  397. package/dist/measure/plain.js.map +1 -1
  398. package/dist/measure/rich.d.ts +88 -1
  399. package/dist/measure/rich.d.ts.map +1 -1
  400. package/dist/measure/rich.js +233 -111
  401. package/dist/measure/rich.js.map +1 -1
  402. package/dist/measure/rubyLift.d.ts +11 -0
  403. package/dist/measure/rubyLift.d.ts.map +1 -0
  404. package/dist/measure/rubyLift.js +57 -0
  405. package/dist/measure/rubyLift.js.map +1 -0
  406. package/dist/measure/spaces.d.ts +12 -2
  407. package/dist/measure/spaces.d.ts.map +1 -1
  408. package/dist/measure/spaces.js +21 -7
  409. package/dist/measure/spaces.js.map +1 -1
  410. package/dist/measure/types.d.ts +20 -1
  411. package/dist/measure/types.d.ts.map +1 -1
  412. package/dist/measure/types.js.map +1 -1
  413. package/dist/measure/vertical.d.ts +104 -0
  414. package/dist/measure/vertical.d.ts.map +1 -0
  415. package/dist/measure/vertical.js +184 -0
  416. package/dist/measure/vertical.js.map +1 -0
  417. package/dist/numberWords.d.ts +3 -10
  418. package/dist/numberWords.d.ts.map +1 -1
  419. package/dist/numberWords.js +21 -9
  420. package/dist/numberWords.js.map +1 -1
  421. package/dist/numbering.d.ts +23 -5
  422. package/dist/numbering.d.ts.map +1 -1
  423. package/dist/numbering.js +99 -14
  424. package/dist/numbering.js.map +1 -1
  425. package/dist/parse/annotations.d.ts +101 -0
  426. package/dist/parse/annotations.d.ts.map +1 -0
  427. package/dist/parse/annotations.js +556 -0
  428. package/dist/parse/annotations.js.map +1 -0
  429. package/dist/parse/attrs.d.ts +48 -1
  430. package/dist/parse/attrs.d.ts.map +1 -1
  431. package/dist/parse/attrs.js +121 -8
  432. package/dist/parse/attrs.js.map +1 -1
  433. package/dist/parse/blockParser.d.ts.map +1 -1
  434. package/dist/parse/blockParser.js +50 -24
  435. package/dist/parse/blockParser.js.map +1 -1
  436. package/dist/parse/index.d.ts +3 -1
  437. package/dist/parse/index.d.ts.map +1 -1
  438. package/dist/parse/index.js +1 -0
  439. package/dist/parse/index.js.map +1 -1
  440. package/dist/parse/injectSpans.d.ts +3 -1
  441. package/dist/parse/injectSpans.d.ts.map +1 -1
  442. package/dist/parse/injectSpans.js +29 -8
  443. package/dist/parse/injectSpans.js.map +1 -1
  444. package/dist/parse/inlineFormatting.d.ts +38 -6
  445. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  446. package/dist/parse/inlineFormatting.js +139 -26
  447. package/dist/parse/inlineFormatting.js.map +1 -1
  448. package/dist/parse/inlineSnippet.d.ts +2 -1
  449. package/dist/parse/inlineSnippet.d.ts.map +1 -1
  450. package/dist/parse/inlineSnippet.js +6 -2
  451. package/dist/parse/inlineSnippet.js.map +1 -1
  452. package/dist/parse/orientationMarks.d.ts +49 -0
  453. package/dist/parse/orientationMarks.d.ts.map +1 -0
  454. package/dist/parse/orientationMarks.js +138 -0
  455. package/dist/parse/orientationMarks.js.map +1 -0
  456. package/dist/parse/softBreaks.d.ts +56 -0
  457. package/dist/parse/softBreaks.d.ts.map +1 -0
  458. package/dist/parse/softBreaks.js +271 -0
  459. package/dist/parse/softBreaks.js.map +1 -0
  460. package/dist/parse/sourceMapping.d.ts.map +1 -1
  461. package/dist/parse/sourceMapping.js +41 -0
  462. package/dist/parse/sourceMapping.js.map +1 -1
  463. package/dist/parse/types.d.ts +84 -0
  464. package/dist/parse/types.d.ts.map +1 -1
  465. package/dist/pipeline/annotations.d.ts +56 -0
  466. package/dist/pipeline/annotations.d.ts.map +1 -0
  467. package/dist/pipeline/annotations.js +181 -0
  468. package/dist/pipeline/annotations.js.map +1 -0
  469. package/dist/pipeline/build.d.ts.map +1 -1
  470. package/dist/pipeline/build.js +158 -47
  471. package/dist/pipeline/build.js.map +1 -1
  472. package/dist/pipeline/buildBlockKind.d.ts +3 -0
  473. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  474. package/dist/pipeline/buildBlockKind.js +5 -3
  475. package/dist/pipeline/buildBlockKind.js.map +1 -1
  476. package/dist/pipeline/buildHelpers.d.ts +36 -6
  477. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  478. package/dist/pipeline/buildHelpers.js +55 -8
  479. package/dist/pipeline/buildHelpers.js.map +1 -1
  480. package/dist/pipeline/buildMeasurement.d.ts +4 -0
  481. package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
  482. package/dist/pipeline/buildMeasurement.js +3 -1
  483. package/dist/pipeline/buildMeasurement.js.map +1 -1
  484. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  485. package/dist/pipeline/calloutLayout.js +25 -11
  486. package/dist/pipeline/calloutLayout.js.map +1 -1
  487. package/dist/pipeline/cjkGrid.d.ts +133 -0
  488. package/dist/pipeline/cjkGrid.d.ts.map +1 -0
  489. package/dist/pipeline/cjkGrid.js +191 -0
  490. package/dist/pipeline/cjkGrid.js.map +1 -0
  491. package/dist/pipeline/config.d.ts +13 -9
  492. package/dist/pipeline/config.d.ts.map +1 -1
  493. package/dist/pipeline/config.js +43 -18
  494. package/dist/pipeline/config.js.map +1 -1
  495. package/dist/pipeline/contentWarnings.d.ts +10 -0
  496. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  497. package/dist/pipeline/contentWarnings.js +174 -2
  498. package/dist/pipeline/contentWarnings.js.map +1 -1
  499. package/dist/pipeline/floatPlacement.d.ts +9 -3
  500. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  501. package/dist/pipeline/floatPlacement.js +17 -6
  502. package/dist/pipeline/floatPlacement.js.map +1 -1
  503. package/dist/pipeline/headerFooter.d.ts +5 -2
  504. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  505. package/dist/pipeline/headerFooter.js +123 -28
  506. package/dist/pipeline/headerFooter.js.map +1 -1
  507. package/dist/pipeline/headingDesignCuts.d.ts.map +1 -1
  508. package/dist/pipeline/headingDesignCuts.js +3 -1
  509. package/dist/pipeline/headingDesignCuts.js.map +1 -1
  510. package/dist/pipeline/headingStyles.d.ts +9 -3
  511. package/dist/pipeline/headingStyles.d.ts.map +1 -1
  512. package/dist/pipeline/headingStyles.js +23 -5
  513. package/dist/pipeline/headingStyles.js.map +1 -1
  514. package/dist/pipeline/indexDirective.d.ts.map +1 -1
  515. package/dist/pipeline/indexDirective.js +64 -20
  516. package/dist/pipeline/indexDirective.js.map +1 -1
  517. package/dist/pipeline/indexGroups.d.ts +55 -0
  518. package/dist/pipeline/indexGroups.d.ts.map +1 -0
  519. package/dist/pipeline/indexGroups.js +151 -0
  520. package/dist/pipeline/indexGroups.js.map +1 -0
  521. package/dist/pipeline/lists.d.ts +17 -0
  522. package/dist/pipeline/lists.d.ts.map +1 -1
  523. package/dist/pipeline/lists.js +43 -51
  524. package/dist/pipeline/lists.js.map +1 -1
  525. package/dist/pipeline/measureContentBlock.d.ts +3 -0
  526. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  527. package/dist/pipeline/measureContentBlock.js +31 -4
  528. package/dist/pipeline/measureContentBlock.js.map +1 -1
  529. package/dist/pipeline/outline.d.ts.map +1 -1
  530. package/dist/pipeline/outline.js +13 -8
  531. package/dist/pipeline/outline.js.map +1 -1
  532. package/dist/pipeline/parts.d.ts +6 -3
  533. package/dist/pipeline/parts.d.ts.map +1 -1
  534. package/dist/pipeline/parts.js +28 -5
  535. package/dist/pipeline/parts.js.map +1 -1
  536. package/dist/pipeline/placeholders.d.ts +11 -0
  537. package/dist/pipeline/placeholders.d.ts.map +1 -1
  538. package/dist/pipeline/placeholders.js +48 -18
  539. package/dist/pipeline/placeholders.js.map +1 -1
  540. package/dist/pipeline/placement.d.ts +10 -6
  541. package/dist/pipeline/placement.d.ts.map +1 -1
  542. package/dist/pipeline/placement.js +33 -16
  543. package/dist/pipeline/placement.js.map +1 -1
  544. package/dist/pipeline/resourceLayout.d.ts +18 -1
  545. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  546. package/dist/pipeline/resourceLayout.js +109 -21
  547. package/dist/pipeline/resourceLayout.js.map +1 -1
  548. package/dist/pipeline/toc.d.ts.map +1 -1
  549. package/dist/pipeline/toc.js +6 -5
  550. package/dist/pipeline/toc.js.map +1 -1
  551. package/dist/pipeline/verticalMetrics.d.ts +14 -0
  552. package/dist/pipeline/verticalMetrics.d.ts.map +1 -0
  553. package/dist/pipeline/verticalMetrics.js +154 -0
  554. package/dist/pipeline/verticalMetrics.js.map +1 -0
  555. package/dist/types.d.ts +344 -13
  556. package/dist/types.d.ts.map +1 -1
  557. package/dist/vdt.d.ts +396 -6
  558. package/dist/vdt.d.ts.map +1 -1
  559. package/dist/vdt.js +49 -0
  560. package/dist/vdt.js.map +1 -1
  561. package/dist/writingMode.d.ts +156 -0
  562. package/dist/writingMode.d.ts.map +1 -0
  563. package/dist/writingMode.js +291 -0
  564. package/dist/writingMode.js.map +1 -0
  565. package/package.json +1 -1
package/dist/vdt.js CHANGED
@@ -124,6 +124,55 @@ export function resourceBlockRectToPage(rb, rect) {
124
124
  const b = resourceBlockToPage(rb, rect.x + rect.width, rect.y + rect.height);
125
125
  return createBoundingBox(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
126
126
  }
127
+ /** Where the ideographic em box's centre sits above the alphabetic
128
+ * baseline, in ems, when the font was not measured: the value of every
129
+ * Source Han / Noto CJK face (em box from −0.12 to 0.88 em). */
130
+ export const DEFAULT_CENTRAL_BASELINE = 0.38;
131
+ /** Whether a page's flow is set vertically (`page.flow`). */
132
+ export function pageIsVertical(page) {
133
+ return page.flow !== undefined;
134
+ }
135
+ /** Map a point of a page's flow frame to page coordinates: the identity on
136
+ * a horizontal page, `(page.width − y, x)` on a vertical one. */
137
+ export function flowToPage(page, x, y) {
138
+ const r = page.flow?.rotation;
139
+ if (!r)
140
+ return { x, y };
141
+ return { x: r.originX - y, y: r.originY + x };
142
+ }
143
+ /** Map a page point into the page's flow frame (the inverse of
144
+ * {@link flowToPage}). */
145
+ export function pageToFlow(page, x, y) {
146
+ const r = page.flow?.rotation;
147
+ if (!r)
148
+ return { x, y };
149
+ return { x: y - r.originY, y: r.originX - x };
150
+ }
151
+ /** Map an axis-aligned rect of a page's flow frame to the page: width and
152
+ * height swap on a vertical page. */
153
+ export function flowRectToPage(page, rect) {
154
+ if (!page.flow)
155
+ return rect;
156
+ const a = flowToPage(page, rect.x, rect.y);
157
+ const b = flowToPage(page, rect.x + rect.width, rect.y + rect.height);
158
+ return createBoundingBox(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
159
+ }
160
+ /** Map an axis-aligned page rect into the page's flow frame (the inverse
161
+ * of {@link flowRectToPage}). */
162
+ export function pageRectToFlow(page, rect) {
163
+ if (!page.flow)
164
+ return rect;
165
+ const a = pageToFlow(page, rect.x, rect.y);
166
+ const b = pageToFlow(page, rect.x + rect.width, rect.y + rect.height);
167
+ return createBoundingBox(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.abs(b.x - a.x), Math.abs(b.y - a.y));
168
+ }
169
+ /** The flow frame of a vertical page `width` × `height` px (physical). */
170
+ export function verticalFlowFrame(width, height) {
171
+ return {
172
+ writingMode: 'vertical-rl',
173
+ rotation: { direction: 'cw', originX: width, originY: 0, width: height, height: width },
174
+ };
175
+ }
127
176
  // ---------------------------------------------------------------------------
128
177
  // Factory functions
129
178
  // ---------------------------------------------------------------------------
package/dist/vdt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vdt.js","sourceRoot":"","sources":["../src/vdt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vdt.js","sourceRoot":"","sources":["../src/vdt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Glyph orientation in vertical text (`layout.writingMode: 'vertical-rl'`),
3
+ * one helper shared by every renderer, so the canvas, the PDF and the HTML
4
+ * output turn the same characters the same way.
5
+ *
6
+ * The flow of a vertical page is laid out as horizontal lines in a frame
7
+ * turned a quarter turn clockwise (`VDTPage.flow`). Text painted there
8
+ * "as is" comes out turned 90° clockwise — which is right for Latin words
9
+ * and long numbers (sideways, UAX #50 `R`) and wrong for Chinese
10
+ * characters, which stand upright, each in its own 1 em cell, turned back
11
+ * about the cell's centre. Punctuation takes the font's vertical form
12
+ * (OpenType `vert`) when a renderer can get it, else a fallback.
13
+ *
14
+ * Classes follow Unicode's `Vertical_Orientation` (UAX #50, data 18.0),
15
+ * with the Chinese rules on top (clreq Appendix A, GB/T 15834—2011 §5.2):
16
+ * - pause and stop marks (、。,.!?) and :; are never turned. A
17
+ * Simplified (mainland) font sets them in the upper right of the cell
18
+ * through `vert` (、。,. in the top-right corner, !?:; in the right
19
+ * half); Taiwan and Hong Kong fonts centre them and have no such form
20
+ * (their U+FE10–FE16 are the mainland shapes, so the vertical
21
+ * presentation forms must not be substituted there).
22
+ * - brackets and quotes take the vertical form, which is the horizontal
23
+ * glyph turned about the em box's centre when the font gives none;
24
+ * “ ” ‘ ’ in mainland text read as the corner brackets 『』「」
25
+ * (UAX #50 §3.2.4, the Hans vertical convention).
26
+ * - dashes, ellipses, the wave dash and the interpunct are turned about
27
+ * the em box's centre (Noto CJK gives —— a vertical form only with
28
+ * `fwid`): a dash is stretched to fill its cell. The mainland interpunct
29
+ * takes half a cell (clreq §5.1), the Taiwan and Hong Kong one
30
+ * a whole cell.
31
+ * - an apostrophe or an interpunct inside a Latin word ("don’t", "l·l")
32
+ * runs sideways with the word, as the composer keeps it in the word.
33
+ *
34
+ * The measurer and every renderer read the same runs ({@link
35
+ * verticalRuns}): what stands in a cell advances its cell (one em, half an
36
+ * em for the mainland interpunct), what runs sideways its horizontal width.
37
+ */
38
+ import type { CjkRegion } from './types';
39
+ /** How a character is set in a vertical line.
40
+ * - `upright`: standing, centred in its cell (Han, kana, hangul,
41
+ * fullwidth letters, and the pause marks of Taiwan and Hong Kong).
42
+ * - `sideways`: turned 90° clockwise with the run it belongs to, keeping
43
+ * its horizontal advance (Latin, digits, most symbols).
44
+ * - `rotate`: turned 90° clockwise about the centre of its em box, in a
45
+ * cell of its own (dashes, ellipses, the interpunct).
46
+ * - `alternate`: the font's vertical form (`vert`); without one, the
47
+ * `fallback`: `rotate` (brackets, quotes) or `corner` (a mainland
48
+ * pause or stop mark moved to the top-right quadrant of its cell).
49
+ * - `tcy`: tate-chu-yoko (縱中橫): a short number (`cjk.uprightDigits`)
50
+ * or a `:tcy[…]` run set side by side in one upright cell, squeezed
51
+ * across when wider than the cell. */
52
+ export type VerticalOrientationKind = 'upright' | 'sideways' | 'rotate' | 'alternate' | 'tcy';
53
+ export interface VerticalGlyph {
54
+ orient: VerticalOrientationKind;
55
+ /** `alternate` only: what a renderer without the font's vertical forms
56
+ * does instead. */
57
+ fallback?: 'rotate' | 'corner';
58
+ /** The character a fallback paints instead of this one (“ → 『 in
59
+ * mainland text: the Hans vertical quote is the corner bracket). */
60
+ substitute?: string;
61
+ /** `rotate`: stretch the turned glyph along the line to fill its cell
62
+ * (a dash narrower than its em). */
63
+ stretch?: boolean;
64
+ /** `corner` fallback: where the upright glyph moves in its cell, in ems
65
+ * (`x` across the column, to the right; `y` along it, negative up).
66
+ * {@link CORNER_OFFSET_EM} when absent. */
67
+ offset?: {
68
+ x: number;
69
+ y: number;
70
+ };
71
+ }
72
+ /** Unicode `Vertical_Orientation` (UAX #50): `U` upright, `R` rotated,
73
+ * `Tu` / `Tr` a vertical glyph, else upright / rotated. */
74
+ export type UaxVerticalOrientation = 'U' | 'R' | 'Tu' | 'Tr';
75
+ /** A code point's Unicode `Vertical_Orientation`. */
76
+ export declare function uaxVerticalOrientation(cp: number): UaxVerticalOrientation;
77
+ /** Whether `text` holds a mark a vertical line turns in a cell of its own
78
+ * (`rotate`: a dash, an ellipsis, an interpunct, a wave dash), which a
79
+ * browser setting the text vertically advances by its horizontal width. */
80
+ export declare function holdsTurnedMark(text: string): boolean;
81
+ /** The dashes of `text` a vertical line stretches to fill their cell
82
+ * (`VerticalGlyph.stretch`), each once. */
83
+ export declare function stretchedDashesOf(text: string): string[];
84
+ /**
85
+ * How a grapheme is set in a vertical line of `region`'s Chinese (see the
86
+ * module comment). Reads the grapheme's first code point; a sequence with
87
+ * a combining mark or a variation selector follows its base.
88
+ */
89
+ export declare function verticalOrientation(grapheme: string, region?: CjkRegion): VerticalGlyph;
90
+ /** Whether a grapheme stands in a cell of its own in vertical text (every
91
+ * orientation but `sideways`). */
92
+ export declare function isVerticalCell(grapheme: string, region?: CjkRegion): boolean;
93
+ /** Where a mainland 、。,. moves when the font gives no vertical form, in
94
+ * ems of the cell: right and up (a horizontal 。 sits in the bottom-left
95
+ * quadrant, the vertical one in the top-right). Measured against the
96
+ * `vert` glyphs of Noto Serif SC: within 0.07 em for 、。,.. !? and :;
97
+ * carry their own `offset` (half an em to the right, 0.08 and 0.22 em up),
98
+ * within 0.02 em of the font's. */
99
+ export declare const CORNER_OFFSET_EM: {
100
+ x: number;
101
+ y: number;
102
+ };
103
+ /** The size of a character's cell in a vertical line, in ems: half an em
104
+ * for the mainland interpunct (· ・, clreq §5.1), one em for
105
+ * every other character that stands in a cell. `cls`, when the caller has
106
+ * it, is the grapheme's `cjkClassOf`. */
107
+ export declare function verticalCellEms(grapheme: string, region?: CjkRegion, cls?: import("./measure/cjkClasses").CjkClass): number;
108
+ /** One run of a vertical line: consecutive graphemes set alike. A
109
+ * `sideways` run holds a whole Latin word or number; every other run is
110
+ * one grapheme in a cell `cell` ems long. */
111
+ export interface VerticalRun {
112
+ text: string;
113
+ glyph: VerticalGlyph;
114
+ /** The cell's length along the line, in ems (not on a sideways run). */
115
+ cell?: number;
116
+ }
117
+ /** The numbers up to how many ASCII digits are set side by side in one
118
+ * upright cell (tate-chu-yoko) in vertical text: `cjk.uprightDigits`, 0
119
+ * (none), 2 (the default), 3 or 4. */
120
+ export type UprightDigits = 0 | 2 | 3 | 4;
121
+ /**
122
+ * Where the automatic tate-chu-yoko cells of `graphemes` start, with their
123
+ * length: every run of at most `digits` ASCII digits, whole (a longer run is
124
+ * set sideways, never split), that is not part of a word (no Latin letter
125
+ * touches it: `A4`, `mp3`, `3D` stay sideways) nor of a number with digit
126
+ * grouping or a decimal point (`10,000`, `3.14`: a `,` or `.` between it and
127
+ * another digit). Empty when `digits` is 0.
128
+ */
129
+ export declare function uprightDigitRuns(graphemes: readonly string[], digits: number): Map<number, number>;
130
+ /** Cut `text` into the runs a vertical line paints and measures: sideways
131
+ * graphemes joined into runs, every other grapheme a cell of its own. An
132
+ * apostrophe or interpunct between two letters of a Latin word runs
133
+ * sideways with it (see `isWordInnerMark`), as the composer measures it.
134
+ * With `uprightDigits` (`cjk.uprightDigits`), each short number
135
+ * ({@link uprightDigitRuns}) is one `tcy` cell. */
136
+ export declare function verticalRuns(graphemes: readonly string[], region?: CjkRegion, uprightDigits?: number): VerticalRun[];
137
+ /** How the author set a run of vertical text apart (`VDTLineSegment.tcy`,
138
+ * `VDTLineSegment.orientation`): `'tcy'` (`:tcy[…]`), one upright cell;
139
+ * `'upright'` (`:upright[…]`), every character upright in a cell of its
140
+ * own; `'sideways'` (`:sideways[…]`), the whole run turned. */
141
+ export type ForcedOrientation = 'tcy' | 'upright' | 'sideways';
142
+ /** The runs of a text whose orientation the author forced (see
143
+ * {@link ForcedOrientation}): one `tcy` cell, one upright cell per
144
+ * grapheme, or one sideways run. */
145
+ export declare function forcedVerticalRuns(graphemes: readonly string[], orient: ForcedOrientation): VerticalRun[];
146
+ /** The orientation a segment's author forced, if any. */
147
+ export declare function segmentOrientation(seg: {
148
+ tcy?: boolean;
149
+ orientation?: 'upright' | 'sideways';
150
+ }): ForcedOrientation | undefined;
151
+ /** Whether `text` holds a character that stands in a cell of its own in
152
+ * vertical text (see {@link verticalRuns}), a short number included when
153
+ * `uprightDigits` sets it in a cell (the measurer passes the document's
154
+ * `cjk.uprightDigits`, as the painters do). ASCII letters never do. */
155
+ export declare function holdsVerticalCell(text: string, uprightDigits: number): boolean;
156
+ //# sourceMappingURL=writingMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writingMode.d.ts","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC;;;;;;;;;;;;yCAYyC;AACzC,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAE9F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,uBAAuB,CAAC;IAChC;wBACoB;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;yEACqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;yCACqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;gDAE4C;IAC5C,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED;4DAC4D;AAC5D,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAyC7D,qDAAqD;AACrD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAWzE;AA2BD;;4EAE4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;4CAC4C;AAC5C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxD;AAoBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsB,GAAG,aAAa,CAiBnG;AAED;mCACmC;AACnC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsB,GAAG,OAAO,CAExF;AAED;;;;;oCAKoC;AACpC,eAAO,MAAM,gBAAgB;;;CAAuB,CAAC;AAErD;;;0CAG0C;AAC1C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAsB,EAAE,GAAG,0CAAuB,GAAG,MAAM,CAEpH;AAED;;8CAE8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;uCAEuC;AACvC,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAM1C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAclG;AAED;;;;;oDAKoD;AACpD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,GAAE,SAAsB,EAAE,aAAa,SAAI,GAAG,WAAW,EAAE,CA6B3H;AAED;;;gEAGgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D;;qCAEqC;AACrC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAKzG;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CAAE,GAAG,iBAAiB,GAAG,SAAS,CAE9H;AAED;;;wEAGwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAQ9E"}
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Glyph orientation in vertical text (`layout.writingMode: 'vertical-rl'`),
3
+ * one helper shared by every renderer, so the canvas, the PDF and the HTML
4
+ * output turn the same characters the same way.
5
+ *
6
+ * The flow of a vertical page is laid out as horizontal lines in a frame
7
+ * turned a quarter turn clockwise (`VDTPage.flow`). Text painted there
8
+ * "as is" comes out turned 90° clockwise — which is right for Latin words
9
+ * and long numbers (sideways, UAX #50 `R`) and wrong for Chinese
10
+ * characters, which stand upright, each in its own 1 em cell, turned back
11
+ * about the cell's centre. Punctuation takes the font's vertical form
12
+ * (OpenType `vert`) when a renderer can get it, else a fallback.
13
+ *
14
+ * Classes follow Unicode's `Vertical_Orientation` (UAX #50, data 18.0),
15
+ * with the Chinese rules on top (clreq Appendix A, GB/T 15834—2011 §5.2):
16
+ * - pause and stop marks (、。,.!?) and :; are never turned. A
17
+ * Simplified (mainland) font sets them in the upper right of the cell
18
+ * through `vert` (、。,. in the top-right corner, !?:; in the right
19
+ * half); Taiwan and Hong Kong fonts centre them and have no such form
20
+ * (their U+FE10–FE16 are the mainland shapes, so the vertical
21
+ * presentation forms must not be substituted there).
22
+ * - brackets and quotes take the vertical form, which is the horizontal
23
+ * glyph turned about the em box's centre when the font gives none;
24
+ * “ ” ‘ ’ in mainland text read as the corner brackets 『』「」
25
+ * (UAX #50 §3.2.4, the Hans vertical convention).
26
+ * - dashes, ellipses, the wave dash and the interpunct are turned about
27
+ * the em box's centre (Noto CJK gives —— a vertical form only with
28
+ * `fwid`): a dash is stretched to fill its cell. The mainland interpunct
29
+ * takes half a cell (clreq §5.1), the Taiwan and Hong Kong one
30
+ * a whole cell.
31
+ * - an apostrophe or an interpunct inside a Latin word ("don’t", "l·l")
32
+ * runs sideways with the word, as the composer keeps it in the word.
33
+ *
34
+ * The measurer and every renderer read the same runs ({@link
35
+ * verticalRuns}): what stands in a cell advances its cell (one em, half an
36
+ * em for the mainland interpunct), what runs sideways its horizontal width.
37
+ */
38
+ import { cjkClassOf, isWordInnerMark } from './measure/cjkClasses';
39
+ // VerticalOrientation-18.0.0.txt, the ranges that are not `R`, merged:
40
+ // [first, last, class] with 1 = U, 2 = Tu, 3 = Tr. Everything else is R.
41
+ const VO_RANGES = [
42
+ 0xA7, 0xA7, 1, 0xA9, 0xA9, 1, 0xAE, 0xAE, 1, 0xB1, 0xB1, 1, 0xBC, 0xBE, 1, 0xD7, 0xD7, 1, 0xF7, 0xF7, 1, 0x2EA, 0x2EB, 1,
43
+ 0x1100, 0x11FF, 1, 0x1401, 0x167F, 1, 0x18B0, 0x18FF, 1, 0x2016, 0x2016, 1, 0x2018, 0x2019, 3, 0x201C, 0x201D, 3,
44
+ 0x2020, 0x2021, 1, 0x2030, 0x2031, 1, 0x203B, 0x203C, 1, 0x2042, 0x2042, 1, 0x2047, 0x2049, 1, 0x2051, 0x2051, 1,
45
+ 0x2065, 0x2065, 1, 0x20DD, 0x20E0, 1, 0x20E2, 0x20E4, 1, 0x2100, 0x2101, 1, 0x2103, 0x2109, 1, 0x210F, 0x210F, 1,
46
+ 0x2113, 0x2114, 1, 0x2116, 0x2117, 1, 0x211E, 0x2123, 1, 0x2125, 0x2125, 1, 0x2127, 0x2127, 1, 0x2129, 0x2129, 1,
47
+ 0x212E, 0x212E, 1, 0x2135, 0x213F, 1, 0x2145, 0x214A, 1, 0x214C, 0x214D, 1, 0x214F, 0x2189, 1, 0x218C, 0x218F, 1,
48
+ 0x221E, 0x221E, 1, 0x2234, 0x2235, 1, 0x2300, 0x2307, 1, 0x230C, 0x231F, 1, 0x2324, 0x2328, 1, 0x2329, 0x232A, 3,
49
+ 0x232B, 0x232B, 1, 0x237D, 0x239A, 1, 0x23BE, 0x23CD, 1, 0x23CF, 0x23CF, 1, 0x23D1, 0x23DB, 1, 0x23E2, 0x2422, 1,
50
+ 0x2424, 0x24FF, 1, 0x25A0, 0x2619, 1, 0x2620, 0x2767, 1, 0x2776, 0x2793, 1, 0x2B12, 0x2B2F, 1, 0x2B50, 0x2B59, 1,
51
+ 0x2B97, 0x2B97, 1, 0x2BB8, 0x2BD1, 1, 0x2BD3, 0x2BEB, 1, 0x2BF0, 0x2BFF, 1, 0x2E50, 0x2E51, 1, 0x2E80, 0x3000, 1,
52
+ 0x3001, 0x3002, 2, 0x3003, 0x3007, 1, 0x3008, 0x3011, 3, 0x3012, 0x3013, 1, 0x3014, 0x301F, 3, 0x3020, 0x302F, 1,
53
+ 0x3030, 0x3030, 3, 0x3031, 0x3040, 1, 0x3041, 0x3041, 2, 0x3042, 0x3042, 1, 0x3043, 0x3043, 2, 0x3044, 0x3044, 1,
54
+ 0x3045, 0x3045, 2, 0x3046, 0x3046, 1, 0x3047, 0x3047, 2, 0x3048, 0x3048, 1, 0x3049, 0x3049, 2, 0x304A, 0x3062, 1,
55
+ 0x3063, 0x3063, 2, 0x3064, 0x3082, 1, 0x3083, 0x3083, 2, 0x3084, 0x3084, 1, 0x3085, 0x3085, 2, 0x3086, 0x3086, 1,
56
+ 0x3087, 0x3087, 2, 0x3088, 0x308D, 1, 0x308E, 0x308E, 2, 0x308F, 0x3094, 1, 0x3095, 0x3096, 2, 0x3097, 0x309A, 1,
57
+ 0x309B, 0x309C, 2, 0x309D, 0x309F, 1, 0x30A0, 0x30A0, 3, 0x30A1, 0x30A1, 2, 0x30A2, 0x30A2, 1, 0x30A3, 0x30A3, 2,
58
+ 0x30A4, 0x30A4, 1, 0x30A5, 0x30A5, 2, 0x30A6, 0x30A6, 1, 0x30A7, 0x30A7, 2, 0x30A8, 0x30A8, 1, 0x30A9, 0x30A9, 2,
59
+ 0x30AA, 0x30C2, 1, 0x30C3, 0x30C3, 2, 0x30C4, 0x30E2, 1, 0x30E3, 0x30E3, 2, 0x30E4, 0x30E4, 1, 0x30E5, 0x30E5, 2,
60
+ 0x30E6, 0x30E6, 1, 0x30E7, 0x30E7, 2, 0x30E8, 0x30ED, 1, 0x30EE, 0x30EE, 2, 0x30EF, 0x30F4, 1, 0x30F5, 0x30F6, 2,
61
+ 0x30F7, 0x30FB, 1, 0x30FC, 0x30FC, 3, 0x30FD, 0x3126, 1, 0x3127, 0x3127, 2, 0x3128, 0x31B3, 1, 0x31B4, 0x31B7, 2,
62
+ 0x31B8, 0x31BA, 1, 0x31BB, 0x31BB, 2, 0x31BC, 0x31EF, 1, 0x31F0, 0x31FF, 2, 0x3200, 0x32FE, 1, 0x32FF, 0x3357, 2,
63
+ 0x3358, 0x337A, 1, 0x337B, 0x337F, 2, 0x3380, 0xA4CF, 1, 0xA960, 0xA97F, 1, 0xAC00, 0xD7FF, 1, 0xE000, 0xFAFF, 1,
64
+ 0xFE10, 0xFE1F, 1, 0xFE30, 0xFE48, 1, 0xFE50, 0xFE52, 2, 0xFE53, 0xFE57, 1, 0xFE59, 0xFE5E, 3, 0xFE5F, 0xFE62, 1,
65
+ 0xFE67, 0xFE6F, 1, 0xFF01, 0xFF01, 2, 0xFF02, 0xFF07, 1, 0xFF08, 0xFF09, 3, 0xFF0A, 0xFF0B, 1, 0xFF0C, 0xFF0C, 2,
66
+ 0xFF0E, 0xFF0E, 2, 0xFF0F, 0xFF19, 1, 0xFF1A, 0xFF1B, 3, 0xFF1F, 0xFF1F, 2, 0xFF20, 0xFF3A, 1, 0xFF3B, 0xFF3B, 3,
67
+ 0xFF3C, 0xFF3C, 1, 0xFF3D, 0xFF3D, 3, 0xFF3E, 0xFF3E, 1, 0xFF3F, 0xFF3F, 3, 0xFF40, 0xFF5A, 1, 0xFF5B, 0xFF60, 3,
68
+ 0xFFE0, 0xFFE2, 1, 0xFFE3, 0xFFE3, 3, 0xFFE4, 0xFFE7, 1, 0xFFF0, 0xFFF8, 1, 0xFFFC, 0xFFFD, 1, 0x10980, 0x1099F, 1,
69
+ 0x11580, 0x115FF, 1, 0x11A00, 0x11ABF, 1, 0x13000, 0x1467F, 1, 0x16FE0, 0x191DF, 1, 0x1AFF0, 0x1B131, 1,
70
+ 0x1B132, 0x1B132, 2, 0x1B133, 0x1B14F, 1, 0x1B150, 0x1B152, 2, 0x1B153, 0x1B154, 1, 0x1B155, 0x1B155, 2,
71
+ 0x1B156, 0x1B163, 1, 0x1B164, 0x1B168, 2, 0x1B169, 0x1B2FF, 1, 0x1CEC0, 0x1CEDC, 1, 0x1CEE0, 0x1CEF0, 1,
72
+ 0x1CEFE, 0x1CFCF, 1, 0x1D000, 0x1D1FF, 1, 0x1D250, 0x1D281, 1, 0x1D2E0, 0x1D37F, 1, 0x1D800, 0x1DAAF, 1,
73
+ 0x1F000, 0x1F1FF, 1, 0x1F200, 0x1F201, 2, 0x1F202, 0x1F7FF, 1, 0x1F900, 0x1FAFF, 1, 0x20000, 0x2FFFD, 1,
74
+ 0x30000, 0x3FFFD, 1, 0xF0000, 0xFFFFD, 1, 0x100000, 0x10FFFD, 1
75
+ ];
76
+ const VO_CLASS = ['R', 'U', 'Tu', 'Tr'];
77
+ /** A code point's Unicode `Vertical_Orientation`. */
78
+ export function uaxVerticalOrientation(cp) {
79
+ let lo = 0;
80
+ let hi = VO_RANGES.length / 3 - 1;
81
+ while (lo <= hi) {
82
+ const mid = (lo + hi) >> 1;
83
+ const first = VO_RANGES[mid * 3];
84
+ if (cp < first)
85
+ hi = mid - 1;
86
+ else if (cp > VO_RANGES[mid * 3 + 1])
87
+ lo = mid + 1;
88
+ else
89
+ return VO_CLASS[VO_RANGES[mid * 3 + 2]];
90
+ }
91
+ return 'R';
92
+ }
93
+ /** Pause and stop marks (标点 of GB/T 15834 §5.2.1): never turned. The
94
+ * first group sits in the top-right corner of a mainland cell, the second
95
+ * in the right half, a little above the middle. */
96
+ const CORNER_MARKS = new Set(['、', '。', ',', '.', '﹐', '﹑', '﹒']);
97
+ const EXCLAIM_MARKS = new Set(['!', '?', '﹖', '﹗']);
98
+ const COLON_MARKS = new Set([':', ';', '﹔', '﹕']);
99
+ /** Marks turned about their em box in every Chinese region: dashes,
100
+ * ellipses, the interpunct, connectors and the wave dash. */
101
+ const TURNED = new Set([
102
+ '—', '―', '⸺', '⸻', // — ― ⸺ ⸻
103
+ '…', '‥', '⋯', // … ‥ ⋯
104
+ '·', '‧', // · ‧
105
+ '–', // –
106
+ '~', '〜', '〰', // ~ 〜 〰
107
+ '-', // -
108
+ ]);
109
+ /** Dashes stretched to their cell when turned. (The Latin hyphens ‐ ‑ ‒
110
+ * are Unicode's `R`: sideways with the word they join.) */
111
+ const STRETCHED = new Set(['—', '―', '⸺', '⸻', '–', '-']);
112
+ const TURNED_RE = new RegExp(`[${[...TURNED].join('')}]`);
113
+ const STRETCHED_RE = new RegExp(`[${[...STRETCHED].join('')}]`, 'g');
114
+ /** Whether `text` holds a mark a vertical line turns in a cell of its own
115
+ * (`rotate`: a dash, an ellipsis, an interpunct, a wave dash), which a
116
+ * browser setting the text vertically advances by its horizontal width. */
117
+ export function holdsTurnedMark(text) {
118
+ return TURNED_RE.test(text);
119
+ }
120
+ /** The dashes of `text` a vertical line stretches to fill their cell
121
+ * (`VerticalGlyph.stretch`), each once. */
122
+ export function stretchedDashesOf(text) {
123
+ const found = text.match(STRETCHED_RE);
124
+ return found ? [...new Set(found)] : [];
125
+ }
126
+ /** Mainland vertical quotes: the corner brackets (UAX #50 §3.2.4). */
127
+ const HANS_QUOTES = {
128
+ '“': '『', // “ → 『
129
+ '”': '』', // ” → 』
130
+ '‘': '「', // ‘ → 「
131
+ '’': '」', // ’ → 」
132
+ };
133
+ const UPRIGHT = { orient: 'upright' };
134
+ const SIDEWAYS = { orient: 'sideways' };
135
+ const ROTATE = { orient: 'rotate' };
136
+ const ROTATE_STRETCH = { orient: 'rotate', stretch: true };
137
+ const ALT_ROTATE = { orient: 'alternate', fallback: 'rotate' };
138
+ const ALT_CORNER = { orient: 'alternate', fallback: 'corner' };
139
+ const ALT_EXCLAIM = { orient: 'alternate', fallback: 'corner', offset: { x: 0.5, y: -0.08 } };
140
+ const ALT_COLON = { orient: 'alternate', fallback: 'corner', offset: { x: 0.52, y: -0.22 } };
141
+ const TCY = { orient: 'tcy' };
142
+ /**
143
+ * How a grapheme is set in a vertical line of `region`'s Chinese (see the
144
+ * module comment). Reads the grapheme's first code point; a sequence with
145
+ * a combining mark or a variation selector follows its base.
146
+ */
147
+ export function verticalOrientation(grapheme, region = 'mainland') {
148
+ const cp = grapheme.codePointAt(0);
149
+ if (cp === undefined)
150
+ return SIDEWAYS;
151
+ if (cp < 0x80)
152
+ return SIDEWAYS;
153
+ const ch = String.fromCodePoint(cp);
154
+ if (CORNER_MARKS.has(ch))
155
+ return region === 'mainland' ? ALT_CORNER : UPRIGHT;
156
+ if (EXCLAIM_MARKS.has(ch))
157
+ return region === 'mainland' ? ALT_EXCLAIM : UPRIGHT;
158
+ if (COLON_MARKS.has(ch))
159
+ return region === 'mainland' ? ALT_COLON : UPRIGHT;
160
+ if (TURNED.has(ch))
161
+ return STRETCHED.has(ch) ? ROTATE_STRETCH : ROTATE;
162
+ const hans = HANS_QUOTES[ch];
163
+ if (hans !== undefined)
164
+ return region === 'mainland' ? { orient: 'alternate', fallback: 'rotate', substitute: hans } : ALT_ROTATE;
165
+ switch (uaxVerticalOrientation(cp)) {
166
+ case 'U': return UPRIGHT;
167
+ case 'Tu': return UPRIGHT; // small kana and the like: upright, the vertical form when the font has one
168
+ case 'Tr': return ALT_ROTATE;
169
+ default: return SIDEWAYS;
170
+ }
171
+ }
172
+ /** Whether a grapheme stands in a cell of its own in vertical text (every
173
+ * orientation but `sideways`). */
174
+ export function isVerticalCell(grapheme, region = 'mainland') {
175
+ return verticalOrientation(grapheme, region).orient !== 'sideways';
176
+ }
177
+ /** Where a mainland 、。,. moves when the font gives no vertical form, in
178
+ * ems of the cell: right and up (a horizontal 。 sits in the bottom-left
179
+ * quadrant, the vertical one in the top-right). Measured against the
180
+ * `vert` glyphs of Noto Serif SC: within 0.07 em for 、。,.. !? and :;
181
+ * carry their own `offset` (half an em to the right, 0.08 and 0.22 em up),
182
+ * within 0.02 em of the font's. */
183
+ export const CORNER_OFFSET_EM = { x: 0.6, y: -0.62 };
184
+ /** The size of a character's cell in a vertical line, in ems: half an em
185
+ * for the mainland interpunct (· ・, clreq §5.1), one em for
186
+ * every other character that stands in a cell. `cls`, when the caller has
187
+ * it, is the grapheme's `cjkClassOf`. */
188
+ export function verticalCellEms(grapheme, region = 'mainland', cls = cjkClassOf(grapheme)) {
189
+ return region === 'mainland' && cls === 'interpunct' ? 0.5 : 1;
190
+ }
191
+ const isAsciiDigit = (g) => g !== undefined && g.length === 1 && g >= '0' && g <= '9';
192
+ const isAsciiLetter = (g) => g !== undefined && g.length === 1 && /[A-Za-z]/.test(g);
193
+ const isGroupMark = (g) => g === '.' || g === ',';
194
+ /**
195
+ * Where the automatic tate-chu-yoko cells of `graphemes` start, with their
196
+ * length: every run of at most `digits` ASCII digits, whole (a longer run is
197
+ * set sideways, never split), that is not part of a word (no Latin letter
198
+ * touches it: `A4`, `mp3`, `3D` stay sideways) nor of a number with digit
199
+ * grouping or a decimal point (`10,000`, `3.14`: a `,` or `.` between it and
200
+ * another digit). Empty when `digits` is 0.
201
+ */
202
+ export function uprightDigitRuns(graphemes, digits) {
203
+ const out = new Map();
204
+ if (!(digits > 0))
205
+ return out;
206
+ for (let i = 0; i < graphemes.length; i++) {
207
+ if (!isAsciiDigit(graphemes[i]))
208
+ continue;
209
+ let j = i;
210
+ while (isAsciiDigit(graphemes[j + 1]))
211
+ j++;
212
+ const before = graphemes[i - 1];
213
+ const after = graphemes[j + 1];
214
+ const grouped = (isGroupMark(before) && isAsciiDigit(graphemes[i - 2])) || (isGroupMark(after) && isAsciiDigit(graphemes[j + 2]));
215
+ if (j - i + 1 <= digits && !isAsciiLetter(before) && !isAsciiLetter(after) && !grouped)
216
+ out.set(i, j - i + 1);
217
+ i = j;
218
+ }
219
+ return out;
220
+ }
221
+ /** Cut `text` into the runs a vertical line paints and measures: sideways
222
+ * graphemes joined into runs, every other grapheme a cell of its own. An
223
+ * apostrophe or interpunct between two letters of a Latin word runs
224
+ * sideways with it (see `isWordInnerMark`), as the composer measures it.
225
+ * With `uprightDigits` (`cjk.uprightDigits`), each short number
226
+ * ({@link uprightDigitRuns}) is one `tcy` cell. */
227
+ export function verticalRuns(graphemes, region = 'mainland', uprightDigits = 0) {
228
+ const out = [];
229
+ const tcy = uprightDigitRuns(graphemes, uprightDigits);
230
+ let side = '';
231
+ for (let i = 0; i < graphemes.length; i++) {
232
+ const g = graphemes[i];
233
+ const combined = tcy.get(i);
234
+ if (combined !== undefined) {
235
+ if (side) {
236
+ out.push({ text: side, glyph: SIDEWAYS });
237
+ side = '';
238
+ }
239
+ out.push({ text: graphemes.slice(i, i + combined).join(''), glyph: TCY, cell: 1 });
240
+ i += combined - 1;
241
+ continue;
242
+ }
243
+ const glyph = isWordInnerMark(g, graphemes[i - 1], graphemes[i + 1]) ? SIDEWAYS : verticalOrientation(g, region);
244
+ if (glyph.orient === 'sideways') {
245
+ side += g;
246
+ continue;
247
+ }
248
+ if (side) {
249
+ out.push({ text: side, glyph: SIDEWAYS });
250
+ side = '';
251
+ }
252
+ out.push({ text: g, glyph, cell: verticalCellEms(g, region) });
253
+ }
254
+ if (side)
255
+ out.push({ text: side, glyph: SIDEWAYS });
256
+ return out;
257
+ }
258
+ /** The runs of a text whose orientation the author forced (see
259
+ * {@link ForcedOrientation}): one `tcy` cell, one upright cell per
260
+ * grapheme, or one sideways run. */
261
+ export function forcedVerticalRuns(graphemes, orient) {
262
+ if (graphemes.length === 0)
263
+ return [];
264
+ if (orient === 'tcy')
265
+ return [{ text: graphemes.join(''), glyph: TCY, cell: 1 }];
266
+ if (orient === 'sideways')
267
+ return [{ text: graphemes.join(''), glyph: SIDEWAYS }];
268
+ return graphemes.map((g) => ({ text: g, glyph: UPRIGHT, cell: 1 }));
269
+ }
270
+ /** The orientation a segment's author forced, if any. */
271
+ export function segmentOrientation(seg) {
272
+ return seg.tcy ? 'tcy' : seg.orientation;
273
+ }
274
+ /** Whether `text` holds a character that stands in a cell of its own in
275
+ * vertical text (see {@link verticalRuns}), a short number included when
276
+ * `uprightDigits` sets it in a cell (the measurer passes the document's
277
+ * `cjk.uprightDigits`, as the painters do). ASCII letters never do. */
278
+ export function holdsVerticalCell(text, uprightDigits) {
279
+ if (uprightDigits > 0 && /[0-9]/.test(text) && uprightDigitRuns([...text], uprightDigits).size > 0)
280
+ return true;
281
+ if (!/[^\u0000-\u007F]/.test(text))
282
+ return false;
283
+ for (const ch of text) {
284
+ if (ch.charCodeAt(0) < 0x80)
285
+ continue;
286
+ if (verticalOrientation(ch).orient !== 'sideways')
287
+ return true;
288
+ }
289
+ return false;
290
+ }
291
+ //# sourceMappingURL=writingMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writingMode.js","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAsCnE,uEAAuE;AACvE,yEAAyE;AACzE,MAAM,SAAS,GAAsB;IACnC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC;IACxG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC;IACpG,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAC,MAAM,EAAC,CAAC,EAAE,MA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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "postext",
3
3
  "description": "A programmable typesetter for the web. Layout engine that applies professional editorial rules — columns, orphan/widow prevention, balanced columns, resource placement, running heads — to semantic content. Built on @chenglou/pretext for DOM-free text measurement.",
4
- "version": "1.8.5",
4
+ "version": "1.9.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "homepage": "https://postext.dev/",