postext 1.15.0 → 1.16.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 (423) hide show
  1. package/dist/__tests__/arabic/harakatProfile.test.d.ts +2 -0
  2. package/dist/__tests__/arabic/harakatProfile.test.d.ts.map +1 -0
  3. package/dist/__tests__/arabic/harakatProfile.test.js +105 -0
  4. package/dist/__tests__/arabic/harakatProfile.test.js.map +1 -0
  5. package/dist/__tests__/bundleLocaleAndBytes.test.js +9 -9
  6. package/dist/__tests__/bundleLocaleAndBytes.test.js.map +1 -1
  7. package/dist/__tests__/chineseLocale.test.js +10 -5
  8. package/dist/__tests__/chineseLocale.test.js.map +1 -1
  9. package/dist/__tests__/cjk/annotationsRender.test.js +5 -2
  10. package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -1
  11. package/dist/__tests__/cjk/chipTracking.test.d.ts +2 -0
  12. package/dist/__tests__/cjk/chipTracking.test.d.ts.map +1 -0
  13. package/dist/__tests__/cjk/chipTracking.test.js +52 -0
  14. package/dist/__tests__/cjk/chipTracking.test.js.map +1 -0
  15. package/dist/__tests__/cjk/japaneseHtml.test.d.ts +2 -0
  16. package/dist/__tests__/cjk/japaneseHtml.test.d.ts.map +1 -0
  17. package/dist/__tests__/cjk/japaneseHtml.test.js +163 -0
  18. package/dist/__tests__/cjk/japaneseHtml.test.js.map +1 -0
  19. package/dist/__tests__/cjk/japaneseMarks.test.d.ts +2 -0
  20. package/dist/__tests__/cjk/japaneseMarks.test.d.ts.map +1 -0
  21. package/dist/__tests__/cjk/japaneseMarks.test.js +289 -0
  22. package/dist/__tests__/cjk/japaneseMarks.test.js.map +1 -0
  23. package/dist/__tests__/cjk/japaneseMarksRender.test.d.ts +2 -0
  24. package/dist/__tests__/cjk/japaneseMarksRender.test.d.ts.map +1 -0
  25. package/dist/__tests__/cjk/japaneseMarksRender.test.js +161 -0
  26. package/dist/__tests__/cjk/japaneseMarksRender.test.js.map +1 -0
  27. package/dist/__tests__/cjk/japaneseRuby.test.d.ts +2 -0
  28. package/dist/__tests__/cjk/japaneseRuby.test.d.ts.map +1 -0
  29. package/dist/__tests__/cjk/japaneseRuby.test.js +457 -0
  30. package/dist/__tests__/cjk/japaneseRuby.test.js.map +1 -0
  31. package/dist/__tests__/cjk/japaneseSegmentLanguage.test.d.ts +2 -0
  32. package/dist/__tests__/cjk/japaneseSegmentLanguage.test.d.ts.map +1 -0
  33. package/dist/__tests__/cjk/japaneseSegmentLanguage.test.js +50 -0
  34. package/dist/__tests__/cjk/japaneseSegmentLanguage.test.js.map +1 -0
  35. package/dist/__tests__/cjk/japaneseSpacing.test.d.ts +2 -0
  36. package/dist/__tests__/cjk/japaneseSpacing.test.d.ts.map +1 -0
  37. package/dist/__tests__/cjk/japaneseSpacing.test.js +417 -0
  38. package/dist/__tests__/cjk/japaneseSpacing.test.js.map +1 -0
  39. package/dist/__tests__/cjk/kanbunKunten.test.d.ts +2 -0
  40. package/dist/__tests__/cjk/kanbunKunten.test.d.ts.map +1 -0
  41. package/dist/__tests__/cjk/kanbunKunten.test.js +230 -0
  42. package/dist/__tests__/cjk/kanbunKunten.test.js.map +1 -0
  43. package/dist/__tests__/cjk/kanbunKuntenRender.test.d.ts +2 -0
  44. package/dist/__tests__/cjk/kanbunKuntenRender.test.d.ts.map +1 -0
  45. package/dist/__tests__/cjk/kanbunKuntenRender.test.js +127 -0
  46. package/dist/__tests__/cjk/kanbunKuntenRender.test.js.map +1 -0
  47. package/dist/__tests__/cjk/kinsokuJa.test.d.ts +2 -0
  48. package/dist/__tests__/cjk/kinsokuJa.test.d.ts.map +1 -0
  49. package/dist/__tests__/cjk/kinsokuJa.test.js +388 -0
  50. package/dist/__tests__/cjk/kinsokuJa.test.js.map +1 -0
  51. package/dist/__tests__/cjk/kinsokuJaBuild.test.d.ts +2 -0
  52. package/dist/__tests__/cjk/kinsokuJaBuild.test.d.ts.map +1 -0
  53. package/dist/__tests__/cjk/kinsokuJaBuild.test.js +38 -0
  54. package/dist/__tests__/cjk/kinsokuJaBuild.test.js.map +1 -0
  55. package/dist/__tests__/cjk/resourceAnnotations.test.d.ts +2 -0
  56. package/dist/__tests__/cjk/resourceAnnotations.test.d.ts.map +1 -0
  57. package/dist/__tests__/cjk/resourceAnnotations.test.js +223 -0
  58. package/dist/__tests__/cjk/resourceAnnotations.test.js.map +1 -0
  59. package/dist/__tests__/defaults/cjk.test.js +10 -2
  60. package/dist/__tests__/defaults/cjk.test.js.map +1 -1
  61. package/dist/__tests__/exports.test.js +36 -0
  62. package/dist/__tests__/exports.test.js.map +1 -1
  63. package/dist/__tests__/headingLetterSpacing.test.js +2 -1
  64. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  65. package/dist/__tests__/indexChinese.test.js +1 -1
  66. package/dist/__tests__/indexJapanese.test.d.ts +2 -0
  67. package/dist/__tests__/indexJapanese.test.d.ts.map +1 -0
  68. package/dist/__tests__/indexJapanese.test.js +242 -0
  69. package/dist/__tests__/indexJapanese.test.js.map +1 -0
  70. package/dist/__tests__/japaneseHeadings.test.d.ts +2 -0
  71. package/dist/__tests__/japaneseHeadings.test.d.ts.map +1 -0
  72. package/dist/__tests__/japaneseHeadings.test.js +319 -0
  73. package/dist/__tests__/japaneseHeadings.test.js.map +1 -0
  74. package/dist/__tests__/japaneseLocale.test.d.ts +2 -0
  75. package/dist/__tests__/japaneseLocale.test.d.ts.map +1 -0
  76. package/dist/__tests__/japaneseLocale.test.js +201 -0
  77. package/dist/__tests__/japaneseLocale.test.js.map +1 -0
  78. package/dist/__tests__/japaneseNotes.test.d.ts +2 -0
  79. package/dist/__tests__/japaneseNotes.test.d.ts.map +1 -0
  80. package/dist/__tests__/japaneseNotes.test.js +336 -0
  81. package/dist/__tests__/japaneseNotes.test.js.map +1 -0
  82. package/dist/__tests__/japaneseNumbering.test.d.ts +2 -0
  83. package/dist/__tests__/japaneseNumbering.test.d.ts.map +1 -0
  84. package/dist/__tests__/japaneseNumbering.test.js +292 -0
  85. package/dist/__tests__/japaneseNumbering.test.js.map +1 -0
  86. package/dist/__tests__/parse/anchors.test.js +17 -0
  87. package/dist/__tests__/parse/anchors.test.js.map +1 -1
  88. package/dist/__tests__/pipeline/citationsJapanese.test.d.ts +2 -0
  89. package/dist/__tests__/pipeline/citationsJapanese.test.d.ts.map +1 -0
  90. package/dist/__tests__/pipeline/citationsJapanese.test.js +110 -0
  91. package/dist/__tests__/pipeline/citationsJapanese.test.js.map +1 -0
  92. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +1 -1
  93. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
  94. package/dist/__tests__/pipeline/safeArea.test.d.ts +2 -0
  95. package/dist/__tests__/pipeline/safeArea.test.d.ts.map +1 -0
  96. package/dist/__tests__/pipeline/safeArea.test.js +207 -0
  97. package/dist/__tests__/pipeline/safeArea.test.js.map +1 -0
  98. package/dist/__tests__/vertical/compositionPaint.test.js +6 -5
  99. package/dist/__tests__/vertical/compositionPaint.test.js.map +1 -1
  100. package/dist/__tests__/vertical/japaneseVertical.test.d.ts +2 -0
  101. package/dist/__tests__/vertical/japaneseVertical.test.d.ts.map +1 -0
  102. package/dist/__tests__/vertical/japaneseVertical.test.js +247 -0
  103. package/dist/__tests__/vertical/japaneseVertical.test.js.map +1 -0
  104. package/dist/__tests__/vertical/verticalSpans.d.ts +2 -1
  105. package/dist/__tests__/vertical/verticalSpans.d.ts.map +1 -1
  106. package/dist/__tests__/vertical/verticalSpans.js +3 -2
  107. package/dist/__tests__/vertical/verticalSpans.js.map +1 -1
  108. package/dist/__tests__/video.test.d.ts +2 -0
  109. package/dist/__tests__/video.test.d.ts.map +1 -0
  110. package/dist/__tests__/video.test.js +305 -0
  111. package/dist/__tests__/video.test.js.map +1 -0
  112. package/dist/arabicMarks.d.ts +11 -1
  113. package/dist/arabicMarks.d.ts.map +1 -1
  114. package/dist/arabicMarks.js +72 -5
  115. package/dist/arabicMarks.js.map +1 -1
  116. package/dist/bundle/adapters.d.ts +6 -0
  117. package/dist/bundle/adapters.d.ts.map +1 -1
  118. package/dist/bundle/adapters.js +30 -0
  119. package/dist/bundle/adapters.js.map +1 -1
  120. package/dist/bundle/codec.d.ts.map +1 -1
  121. package/dist/bundle/codec.js +67 -3
  122. package/dist/bundle/codec.js.map +1 -1
  123. package/dist/bundle/index.d.ts +2 -2
  124. package/dist/bundle/index.d.ts.map +1 -1
  125. package/dist/bundle/index.js +2 -2
  126. package/dist/bundle/index.js.map +1 -1
  127. package/dist/bundle/manifest.d.ts +8 -0
  128. package/dist/bundle/manifest.d.ts.map +1 -1
  129. package/dist/bundle/manifest.js +48 -1
  130. package/dist/bundle/manifest.js.map +1 -1
  131. package/dist/bundle/types.d.ts +5 -0
  132. package/dist/bundle/types.d.ts.map +1 -1
  133. package/dist/bundle/zip.js +1 -1
  134. package/dist/bundle/zip.js.map +1 -1
  135. package/dist/canvas-backend/annotations.d.ts +20 -5
  136. package/dist/canvas-backend/annotations.d.ts.map +1 -1
  137. package/dist/canvas-backend/annotations.js +59 -6
  138. package/dist/canvas-backend/annotations.js.map +1 -1
  139. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  140. package/dist/canvas-backend/blockRender.js +29 -3
  141. package/dist/canvas-backend/blockRender.js.map +1 -1
  142. package/dist/canvas-backend/renderResourceBlock.d.ts +6 -1
  143. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  144. package/dist/canvas-backend/renderResourceBlock.js +124 -5
  145. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  146. package/dist/canvas-backend/verticalText.d.ts +9 -4
  147. package/dist/canvas-backend/verticalText.d.ts.map +1 -1
  148. package/dist/canvas-backend/verticalText.js +20 -9
  149. package/dist/canvas-backend/verticalText.js.map +1 -1
  150. package/dist/chineseNumerals.d.ts +3 -2
  151. package/dist/chineseNumerals.d.ts.map +1 -1
  152. package/dist/chineseNumerals.js +11 -8
  153. package/dist/chineseNumerals.js.map +1 -1
  154. package/dist/citations/bibtex.d.ts.map +1 -1
  155. package/dist/citations/bibtex.js +4 -0
  156. package/dist/citations/bibtex.js.map +1 -1
  157. package/dist/citations/data.d.ts.map +1 -1
  158. package/dist/citations/data.js +6 -1
  159. package/dist/citations/data.js.map +1 -1
  160. package/dist/citations/types.d.ts +8 -0
  161. package/dist/citations/types.d.ts.map +1 -1
  162. package/dist/cjkMarks.d.ts +23 -14
  163. package/dist/cjkMarks.d.ts.map +1 -1
  164. package/dist/cjkMarks.js +251 -49
  165. package/dist/cjkMarks.js.map +1 -1
  166. package/dist/configWarnings.js +9 -3
  167. package/dist/configWarnings.js.map +1 -1
  168. package/dist/defaults/cjk.d.ts +64 -14
  169. package/dist/defaults/cjk.d.ts.map +1 -1
  170. package/dist/defaults/cjk.js +203 -29
  171. package/dist/defaults/cjk.js.map +1 -1
  172. package/dist/defaults/footnotes.d.ts +27 -4
  173. package/dist/defaults/footnotes.d.ts.map +1 -1
  174. package/dist/defaults/footnotes.js +95 -36
  175. package/dist/defaults/footnotes.js.map +1 -1
  176. package/dist/defaults/headings.d.ts +5 -0
  177. package/dist/defaults/headings.d.ts.map +1 -1
  178. package/dist/defaults/headings.js +46 -1
  179. package/dist/defaults/headings.js.map +1 -1
  180. package/dist/defaults/index.d.ts +3 -2
  181. package/dist/defaults/index.d.ts.map +1 -1
  182. package/dist/defaults/index.js +12 -3
  183. package/dist/defaults/index.js.map +1 -1
  184. package/dist/defaults/indexConfig.d.ts.map +1 -1
  185. package/dist/defaults/indexConfig.js +7 -4
  186. package/dist/defaults/indexConfig.js.map +1 -1
  187. package/dist/defaults/paragraphStyles.d.ts.map +1 -1
  188. package/dist/defaults/paragraphStyles.js +4 -0
  189. package/dist/defaults/paragraphStyles.js.map +1 -1
  190. package/dist/defaults/resourceTypes.d.ts +16 -3
  191. package/dist/defaults/resourceTypes.d.ts.map +1 -1
  192. package/dist/defaults/resourceTypes.js +56 -8
  193. package/dist/defaults/resourceTypes.js.map +1 -1
  194. package/dist/defaults/shared.d.ts.map +1 -1
  195. package/dist/defaults/shared.js +21 -0
  196. package/dist/defaults/shared.js.map +1 -1
  197. package/dist/defaults/tableStyle.d.ts.map +1 -1
  198. package/dist/defaults/tableStyle.js +4 -1
  199. package/dist/defaults/tableStyle.js.map +1 -1
  200. package/dist/defaults/videoStyle.d.ts +9 -0
  201. package/dist/defaults/videoStyle.d.ts.map +1 -0
  202. package/dist/defaults/videoStyle.js +130 -0
  203. package/dist/defaults/videoStyle.js.map +1 -0
  204. package/dist/design/placeholders.d.ts.map +1 -1
  205. package/dist/design/placeholders.js +5 -3
  206. package/dist/design/placeholders.js.map +1 -1
  207. package/dist/html-backend.d.ts +13 -0
  208. package/dist/html-backend.d.ts.map +1 -1
  209. package/dist/html-backend.js +233 -26
  210. package/dist/html-backend.js.map +1 -1
  211. package/dist/htmlAnnotations.d.ts +47 -9
  212. package/dist/htmlAnnotations.d.ts.map +1 -1
  213. package/dist/htmlAnnotations.js +89 -17
  214. package/dist/htmlAnnotations.js.map +1 -1
  215. package/dist/index.d.ts +13 -7
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +8 -4
  218. package/dist/index.js.map +1 -1
  219. package/dist/japaneseNumerals.d.ts +44 -0
  220. package/dist/japaneseNumerals.d.ts.map +1 -0
  221. package/dist/japaneseNumerals.js +100 -0
  222. package/dist/japaneseNumerals.js.map +1 -0
  223. package/dist/knuthPlass/richAdapter.d.ts +5 -1
  224. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  225. package/dist/knuthPlass/richAdapter.js +2 -0
  226. package/dist/knuthPlass/richAdapter.js.map +1 -1
  227. package/dist/locale.d.ts +19 -12
  228. package/dist/locale.d.ts.map +1 -1
  229. package/dist/locale.js +24 -12
  230. package/dist/locale.js.map +1 -1
  231. package/dist/measure/cache.d.ts.map +1 -1
  232. package/dist/measure/cache.js +17 -8
  233. package/dist/measure/cache.js.map +1 -1
  234. package/dist/measure/canvas.d.ts +21 -0
  235. package/dist/measure/canvas.d.ts.map +1 -1
  236. package/dist/measure/canvas.js +82 -0
  237. package/dist/measure/canvas.js.map +1 -1
  238. package/dist/measure/cjk.d.ts +3 -1
  239. package/dist/measure/cjk.d.ts.map +1 -1
  240. package/dist/measure/cjk.js +4 -2
  241. package/dist/measure/cjk.js.map +1 -1
  242. package/dist/measure/cjkAnnotate.d.ts +62 -3
  243. package/dist/measure/cjkAnnotate.d.ts.map +1 -1
  244. package/dist/measure/cjkAnnotate.js +99 -2
  245. package/dist/measure/cjkAnnotate.js.map +1 -1
  246. package/dist/measure/cjkClasses.d.ts +93 -13
  247. package/dist/measure/cjkClasses.d.ts.map +1 -1
  248. package/dist/measure/cjkClasses.js +204 -14
  249. package/dist/measure/cjkClasses.js.map +1 -1
  250. package/dist/measure/cjkCompose.d.ts +10 -4
  251. package/dist/measure/cjkCompose.d.ts.map +1 -1
  252. package/dist/measure/cjkCompose.js +715 -75
  253. package/dist/measure/cjkCompose.js.map +1 -1
  254. package/dist/measure/cjkPunctuation.d.ts +68 -14
  255. package/dist/measure/cjkPunctuation.d.ts.map +1 -1
  256. package/dist/measure/cjkPunctuation.js +96 -21
  257. package/dist/measure/cjkPunctuation.js.map +1 -1
  258. package/dist/measure/plain.js +2 -2
  259. package/dist/measure/plain.js.map +1 -1
  260. package/dist/measure/rich.d.ts +12 -2
  261. package/dist/measure/rich.d.ts.map +1 -1
  262. package/dist/measure/rich.js +46 -8
  263. package/dist/measure/rich.js.map +1 -1
  264. package/dist/measure/rubyJis.d.ts +96 -0
  265. package/dist/measure/rubyJis.d.ts.map +1 -0
  266. package/dist/measure/rubyJis.js +245 -0
  267. package/dist/measure/rubyJis.js.map +1 -0
  268. package/dist/measure/vertical.d.ts +13 -5
  269. package/dist/measure/vertical.d.ts.map +1 -1
  270. package/dist/measure/vertical.js +16 -6
  271. package/dist/measure/vertical.js.map +1 -1
  272. package/dist/numberWords.d.ts +4 -3
  273. package/dist/numberWords.d.ts.map +1 -1
  274. package/dist/numberWords.js +15 -5
  275. package/dist/numberWords.js.map +1 -1
  276. package/dist/numbering.d.ts +24 -12
  277. package/dist/numbering.d.ts.map +1 -1
  278. package/dist/numbering.js +57 -11
  279. package/dist/numbering.js.map +1 -1
  280. package/dist/parse/annotations.d.ts +21 -18
  281. package/dist/parse/annotations.d.ts.map +1 -1
  282. package/dist/parse/annotations.js +140 -51
  283. package/dist/parse/annotations.js.map +1 -1
  284. package/dist/parse/index.d.ts +1 -1
  285. package/dist/parse/index.d.ts.map +1 -1
  286. package/dist/parse/index.js.map +1 -1
  287. package/dist/parse/indexMarks.d.ts.map +1 -1
  288. package/dist/parse/indexMarks.js +74 -10
  289. package/dist/parse/indexMarks.js.map +1 -1
  290. package/dist/parse/inlineFormatting.d.ts +4 -3
  291. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  292. package/dist/parse/inlineFormatting.js +9 -8
  293. package/dist/parse/inlineFormatting.js.map +1 -1
  294. package/dist/parse/types.d.ts +93 -5
  295. package/dist/parse/types.d.ts.map +1 -1
  296. package/dist/pipeline/annotations.d.ts +25 -15
  297. package/dist/pipeline/annotations.d.ts.map +1 -1
  298. package/dist/pipeline/annotations.js +102 -16
  299. package/dist/pipeline/annotations.js.map +1 -1
  300. package/dist/pipeline/build.d.ts.map +1 -1
  301. package/dist/pipeline/build.js +284 -31
  302. package/dist/pipeline/build.js.map +1 -1
  303. package/dist/pipeline/buildBlockKind.js +2 -1
  304. package/dist/pipeline/buildBlockKind.js.map +1 -1
  305. package/dist/pipeline/buildHelpers.d.ts +2 -0
  306. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  307. package/dist/pipeline/buildHelpers.js +17 -0
  308. package/dist/pipeline/buildHelpers.js.map +1 -1
  309. package/dist/pipeline/buildMeasurement.d.ts +3 -0
  310. package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
  311. package/dist/pipeline/buildMeasurement.js +1 -0
  312. package/dist/pipeline/buildMeasurement.js.map +1 -1
  313. package/dist/pipeline/calloutLayout.d.ts +2 -0
  314. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  315. package/dist/pipeline/calloutLayout.js +5 -5
  316. package/dist/pipeline/calloutLayout.js.map +1 -1
  317. package/dist/pipeline/citations.d.ts +1 -1
  318. package/dist/pipeline/citations.d.ts.map +1 -1
  319. package/dist/pipeline/citations.js +15 -7
  320. package/dist/pipeline/citations.js.map +1 -1
  321. package/dist/pipeline/columnBalancing.d.ts +22 -0
  322. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  323. package/dist/pipeline/columnBalancing.js +80 -3
  324. package/dist/pipeline/columnBalancing.js.map +1 -1
  325. package/dist/pipeline/config.d.ts.map +1 -1
  326. package/dist/pipeline/config.js +3 -2
  327. package/dist/pipeline/config.js.map +1 -1
  328. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  329. package/dist/pipeline/contentWarnings.js +19 -0
  330. package/dist/pipeline/contentWarnings.js.map +1 -1
  331. package/dist/pipeline/continuation.d.ts.map +1 -1
  332. package/dist/pipeline/continuation.js +3 -3
  333. package/dist/pipeline/continuation.js.map +1 -1
  334. package/dist/pipeline/crossRefs.d.ts.map +1 -1
  335. package/dist/pipeline/crossRefs.js +3 -0
  336. package/dist/pipeline/crossRefs.js.map +1 -1
  337. package/dist/pipeline/footnotes.d.ts +20 -12
  338. package/dist/pipeline/footnotes.d.ts.map +1 -1
  339. package/dist/pipeline/footnotes.js +62 -16
  340. package/dist/pipeline/footnotes.js.map +1 -1
  341. package/dist/pipeline/headingStyles.js +1 -1
  342. package/dist/pipeline/headingStyles.js.map +1 -1
  343. package/dist/pipeline/indexDirective.d.ts.map +1 -1
  344. package/dist/pipeline/indexDirective.js +89 -12
  345. package/dist/pipeline/indexDirective.js.map +1 -1
  346. package/dist/pipeline/indexGroups.d.ts +5 -3
  347. package/dist/pipeline/indexGroups.d.ts.map +1 -1
  348. package/dist/pipeline/indexGroups.js +9 -4
  349. package/dist/pipeline/indexGroups.js.map +1 -1
  350. package/dist/pipeline/indexJapanese.d.ts +75 -0
  351. package/dist/pipeline/indexJapanese.d.ts.map +1 -0
  352. package/dist/pipeline/indexJapanese.js +264 -0
  353. package/dist/pipeline/indexJapanese.js.map +1 -0
  354. package/dist/pipeline/lineSpan.d.ts +36 -0
  355. package/dist/pipeline/lineSpan.d.ts.map +1 -0
  356. package/dist/pipeline/lineSpan.js +36 -0
  357. package/dist/pipeline/lineSpan.js.map +1 -0
  358. package/dist/pipeline/lists.js +2 -2
  359. package/dist/pipeline/lists.js.map +1 -1
  360. package/dist/pipeline/measureContentBlock.d.ts +4 -0
  361. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  362. package/dist/pipeline/measureContentBlock.js +54 -5
  363. package/dist/pipeline/measureContentBlock.js.map +1 -1
  364. package/dist/pipeline/outline.d.ts.map +1 -1
  365. package/dist/pipeline/outline.js +3 -1
  366. package/dist/pipeline/outline.js.map +1 -1
  367. package/dist/pipeline/paragraphContainers.d.ts +25 -2
  368. package/dist/pipeline/paragraphContainers.d.ts.map +1 -1
  369. package/dist/pipeline/paragraphContainers.js +82 -2
  370. package/dist/pipeline/paragraphContainers.js.map +1 -1
  371. package/dist/pipeline/parts.d.ts +2 -2
  372. package/dist/pipeline/parts.js +3 -3
  373. package/dist/pipeline/parts.js.map +1 -1
  374. package/dist/pipeline/placement.d.ts.map +1 -1
  375. package/dist/pipeline/placement.js +2 -2
  376. package/dist/pipeline/placement.js.map +1 -1
  377. package/dist/pipeline/resourceLayout.d.ts +6 -0
  378. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  379. package/dist/pipeline/resourceLayout.js +85 -15
  380. package/dist/pipeline/resourceLayout.js.map +1 -1
  381. package/dist/pipeline/resourceNumbering.d.ts +5 -2
  382. package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
  383. package/dist/pipeline/resourceNumbering.js +12 -7
  384. package/dist/pipeline/resourceNumbering.js.map +1 -1
  385. package/dist/pipeline/safeArea.d.ts +29 -0
  386. package/dist/pipeline/safeArea.d.ts.map +1 -0
  387. package/dist/pipeline/safeArea.js +89 -0
  388. package/dist/pipeline/safeArea.js.map +1 -0
  389. package/dist/pipeline/styles.d.ts +12 -0
  390. package/dist/pipeline/styles.d.ts.map +1 -1
  391. package/dist/pipeline/styles.js +7 -1
  392. package/dist/pipeline/styles.js.map +1 -1
  393. package/dist/pipeline/verse.d.ts +3 -0
  394. package/dist/pipeline/verse.d.ts.map +1 -1
  395. package/dist/pipeline/verse.js +1 -1
  396. package/dist/pipeline/verse.js.map +1 -1
  397. package/dist/pipeline/verticalMetrics.d.ts.map +1 -1
  398. package/dist/pipeline/verticalMetrics.js +4 -0
  399. package/dist/pipeline/verticalMetrics.js.map +1 -1
  400. package/dist/pipeline/videoOverlay.d.ts +24 -0
  401. package/dist/pipeline/videoOverlay.d.ts.map +1 -0
  402. package/dist/pipeline/videoOverlay.js +134 -0
  403. package/dist/pipeline/videoOverlay.js.map +1 -0
  404. package/dist/types.d.ts +567 -50
  405. package/dist/types.d.ts.map +1 -1
  406. package/dist/uprightArabic.js +1 -1
  407. package/dist/uprightArabic.js.map +1 -1
  408. package/dist/vdt.d.ts +221 -17
  409. package/dist/vdt.d.ts.map +1 -1
  410. package/dist/vdt.js.map +1 -1
  411. package/dist/video/qr.d.ts +21 -0
  412. package/dist/video/qr.d.ts.map +1 -0
  413. package/dist/video/qr.js +326 -0
  414. package/dist/video/qr.js.map +1 -0
  415. package/dist/video/url.d.ts +62 -0
  416. package/dist/video/url.d.ts.map +1 -0
  417. package/dist/video/url.js +206 -0
  418. package/dist/video/url.js.map +1 -0
  419. package/dist/writingMode.d.ts +74 -20
  420. package/dist/writingMode.d.ts.map +1 -1
  421. package/dist/writingMode.js +146 -27
  422. package/dist/writingMode.js.map +1 -1
  423. package/package.json +1 -1
@@ -13,27 +13,40 @@
13
13
  *
14
14
  * Classes follow Unicode's `Vertical_Orientation` (UAX #50, data 18.0),
15
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).
16
+ * - pause and stop marks (、。,.!?) are never turned. A Simplified
17
+ * (mainland) font sets them in the upper right of the cell through
18
+ * `vert` (、。,. in the top-right corner, !?:; in the right half);
19
+ * Taiwan and Hong Kong fonts centre them and have no such form (their
20
+ * U+FE10–FE16 are the mainland shapes, so the vertical presentation
21
+ * forms must not be substituted there), and leave :; upright too.
22
+ * Japanese text (the `japan` region) sets 、。,. in the corner as the
23
+ * mainland does, !? upright in the centre of the cell (JLReq §3.1.10;
24
+ * a Japanese font has no vertical form for them) and turns :; (UAX #50
25
+ * `Tr`, the vertical form of JIS X 4051).
22
26
  * - brackets and quotes take the vertical form, which is the horizontal
23
27
  * glyph turned about the em box's centre when the font gives none;
24
28
  * “ ” ‘ ’ in mainland text read as the corner brackets 『』「」
25
- * (UAX #50 §3.2.4, the Hans vertical convention).
29
+ * (UAX #50 §3.2.4, the Hans vertical convention). Japanese “ ” are
30
+ * horizontal marks: vertical text sets 〝 〟 in their place (JLReq
31
+ * §3.1.1; ja-typography §5), whose vertical forms Japanese fonts have
32
+ * where they have none for “ ”; ‘ ’ keep their own.
33
+ * - small kana (ぁ っ ゃ ァ ッ ㇰ…, UAX #50 `Tu`) take their vertical form in
34
+ * Japanese text, which sits up and to the right of the horizontal one
35
+ * (JLReq §2.1.2), or move there without one; Chinese text leaves every
36
+ * `Tu` character upright as it is.
26
37
  * - dashes, ellipses, the wave dash and the interpunct are turned about
27
38
  * the em box's centre (Noto CJK gives —— a vertical form only with
28
39
  * `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.
40
+ * takes half a cell (clreq §5.1), the Taiwan, Hong Kong and Japanese
41
+ * one a whole cell (JLReq §3.1.2: ・ is a full em).
31
42
  * - an apostrophe or an interpunct inside a Latin word ("don’t", "l·l")
32
43
  * runs sideways with the word, as the composer keeps it in the word.
33
44
  *
34
45
  * The measurer and every renderer read the same runs ({@link
35
46
  * verticalRuns}): what stands in a cell advances its cell (one em, half an
36
47
  * em for the mainland interpunct), what runs sideways its horizontal width.
48
+ * Japanese text also sets a pair of exclamation and question marks (!! !?
49
+ * ?! ?? and !! !? ?! ??) side by side in one cell (JLReq §3.1.10).
37
50
  */
38
51
  import type { CjkRegion } from './types';
39
52
  /** How a character is set in a vertical line.
@@ -53,11 +66,19 @@ export type VerticalOrientationKind = 'upright' | 'sideways' | 'rotate' | 'alter
53
66
  export interface VerticalGlyph {
54
67
  orient: VerticalOrientationKind;
55
68
  /** `alternate` only: what a renderer without the font's vertical forms
56
- * does instead. */
69
+ * does instead: turn the glyph (`rotate`), or move the upright glyph by
70
+ * `offset` in its cell (`corner`: a mainland pause mark to the top
71
+ * right, a Japanese small kana up and to the right). */
57
72
  fallback?: 'rotate' | 'corner';
58
73
  /** The character a fallback paints instead of this one (“ → 『 in
59
74
  * mainland text: the Hans vertical quote is the corner bracket). */
60
75
  substitute?: string;
76
+ /** The text every renderer paints in place of the grapheme (or of the
77
+ * `tcy` cell's text), before it looks for the font's vertical form:
78
+ * Japanese “ ” are set as 〝 〟; a Japanese pair of full-width !? in one
79
+ * cell as the half-width !? that fit it. The text read and copied stays
80
+ * the grapheme. Absent outside the `japan` region. */
81
+ paintAs?: string;
61
82
  /** `rotate`: stretch the turned glyph along the line to fill its cell
62
83
  * (a dash narrower than its em). */
63
84
  stretch?: boolean;
@@ -81,10 +102,20 @@ export declare function holdsTurnedMark(text: string): boolean;
81
102
  /** The dashes of `text` a vertical line stretches to fill their cell
82
103
  * (`VerticalGlyph.stretch`), each once. */
83
104
  export declare function stretchedDashesOf(text: string): string[];
105
+ /** Where a Japanese small kana moves when the font gives no vertical form,
106
+ * in ems of its cell (right and up): the shift of the `vert` glyphs'
107
+ * ink from the horizontal ones in Noto Serif JP and Noto Sans JP, Shippori
108
+ * Mincho, BIZ UDMincho and Zen Old Mincho: 0.09–0.25 em right and
109
+ * 0.06–0.26 em up (0.15 and 0.14 in Noto Serif JP). */
110
+ export declare const SMALL_KANA_OFFSET_EM: {
111
+ x: number;
112
+ y: number;
113
+ };
84
114
  /**
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.
115
+ * How a grapheme is set in a vertical line of `region`'s Chinese or
116
+ * Japanese (see the module comment). Reads the grapheme's first code
117
+ * point; a sequence with a combining mark or a variation selector follows
118
+ * its base.
88
119
  */
89
120
  export declare function verticalOrientation(grapheme: string, region?: CjkRegion): VerticalGlyph;
90
121
  /** Whether a grapheme stands in a cell of its own in vertical text (every
@@ -95,14 +126,17 @@ export declare function isVerticalCell(grapheme: string, region?: CjkRegion): bo
95
126
  * quadrant, the vertical one in the top-right). Measured against the
96
127
  * `vert` glyphs of Noto Serif SC: within 0.07 em for 、。,.. !? and :;
97
128
  * 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. */
129
+ * within 0.02 em of the font's. Japanese 、。,. use it too: the `vert`
130
+ * glyphs of Noto Serif JP move 0.59–0.62 em right and 0.60–0.65 em up,
131
+ * those of Shippori Mincho 0.61–0.65 and 0.62–0.66. */
99
132
  export declare const CORNER_OFFSET_EM: {
100
133
  x: number;
101
134
  y: number;
102
135
  };
103
136
  /** The size of a character's cell in a vertical line, in ems: half an em
104
137
  * for the mainland interpunct (· ・, clreq §5.1), one em for
105
- * every other character that stands in a cell. `cls`, when the caller has
138
+ * every other character that stands in a cell (the Japanese ・ too,
139
+ * JLReq §3.1.2). `cls`, when the caller has
106
140
  * it, is the grapheme's `cjkClassOf`. */
107
141
  export declare function verticalCellEms(grapheme: string, region?: CjkRegion, cls?: import("./measure/cjkClasses").CjkClass): number;
108
142
  /** One run of a vertical line: consecutive graphemes set alike. A
@@ -154,12 +188,29 @@ export declare function latinReader(graphemes: readonly string[], region?: CjkRe
154
188
  * character, or alone between Chinese text, stands upright.
155
189
  */
156
190
  export declare function uprightDigitRuns(graphemes: readonly string[], digits: number, region?: CjkRegion): Map<number, number>;
191
+ /**
192
+ * Whether `graphemes[i, i + 2)` is a pair of exclamation and question marks
193
+ * Japanese vertical text sets side by side in one upright cell (JLReq
194
+ * §3.1.10; ja-typography §8): !! !? ?! ?? or !! !? ?! ??, exactly two
195
+ * (a third mark on either side leaves all of them as they are). Half-width
196
+ * marks pair only outside a Latin run: no letter, digit or other mark set
197
+ * sideways touches them (`Wow!!`, `(!?)` and `12!!` run sideways with their
198
+ * text); a space may. The composer reads its units by the same rule
199
+ * (`cjkCompose.ts`), so a line paints the cells it measured.
200
+ */
201
+ export declare function isUprightMarkPair(graphemes: readonly string[], i: number, region: CjkRegion): boolean;
202
+ /** The one-cell glyph of a mark pair (see {@link isUprightMarkPair}): a
203
+ * full-width pair is painted with the half-width marks, which fit the
204
+ * cell where the full-width ones would be squeezed to half their width. */
205
+ export declare function markPairGlyph(pair: string): VerticalGlyph;
157
206
  /** Cut `text` into the runs a vertical line paints and measures: sideways
158
207
  * graphemes joined into runs, every other grapheme a cell of its own. An
159
208
  * apostrophe or interpunct between two letters of a Latin word runs
160
209
  * sideways with it (see `isWordInnerMark`), as the composer measures it.
161
210
  * With `uprightDigits` (`cjk.uprightDigits`), each short number
162
- * ({@link uprightDigitRuns}) is one `tcy` cell. */
211
+ * ({@link uprightDigitRuns}) is one `tcy` cell; in Japanese text, so is
212
+ * each pair of exclamation and question marks ({@link
213
+ * isUprightMarkPair}). */
163
214
  export declare function verticalRuns(graphemes: readonly string[], region?: CjkRegion, uprightDigits?: number): VerticalRun[];
164
215
  /** How the author set a run of vertical text apart (`VDTLineSegment.tcy`,
165
216
  * `VDTLineSegment.orientation`): `'tcy'` (`:tcy[…]`), one upright cell;
@@ -168,8 +219,10 @@ export declare function verticalRuns(graphemes: readonly string[], region?: CjkR
168
219
  export type ForcedOrientation = 'tcy' | 'upright' | 'sideways';
169
220
  /** The runs of a text whose orientation the author forced (see
170
221
  * {@link ForcedOrientation}): one `tcy` cell, one upright cell per
171
- * grapheme, or one sideways run. */
172
- export declare function forcedVerticalRuns(graphemes: readonly string[], orient: ForcedOrientation): VerticalRun[];
222
+ * grapheme, or one sideways run. A cell of two full-width !? in
223
+ * Japanese text (`region`; the composer sets a pair in one, see {@link
224
+ * isUprightMarkPair}) is painted with the half-width marks. */
225
+ export declare function forcedVerticalRuns(graphemes: readonly string[], orient: ForcedOrientation, region?: CjkRegion): VerticalRun[];
173
226
  /** The orientation a segment's author forced, if any. */
174
227
  export declare function segmentOrientation(seg: {
175
228
  tcy?: boolean;
@@ -182,6 +235,7 @@ export declare function segmentOrientation(seg: {
182
235
  * {@link uprightDigitCandidates}, also one that runs with Latin text, so a
183
236
  * paragraph holding one is measured by the formatted path, which reads
184
237
  * each number with its paragraph (`sidewaysNumberSpans`). ASCII letters
185
- * never do. */
186
- export declare function holdsVerticalCell(text: string, uprightDigits: number): boolean;
238
+ * never do; in Japanese text (`region`), a pair of half-width marks set
239
+ * in one cell does ({@link isUprightMarkPair}). */
240
+ export declare function holdsVerticalCell(text: string, uprightDigits: number, region?: CjkRegion): boolean;
187
241
  //# sourceMappingURL=writingMode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writingMode.d.ts","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writingMode.d.ts","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"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"}
@@ -13,27 +13,40 @@
13
13
  *
14
14
  * Classes follow Unicode's `Vertical_Orientation` (UAX #50, data 18.0),
15
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).
16
+ * - pause and stop marks (、。,.!?) are never turned. A Simplified
17
+ * (mainland) font sets them in the upper right of the cell through
18
+ * `vert` (、。,. in the top-right corner, !?:; in the right half);
19
+ * Taiwan and Hong Kong fonts centre them and have no such form (their
20
+ * U+FE10–FE16 are the mainland shapes, so the vertical presentation
21
+ * forms must not be substituted there), and leave :; upright too.
22
+ * Japanese text (the `japan` region) sets 、。,. in the corner as the
23
+ * mainland does, !? upright in the centre of the cell (JLReq §3.1.10;
24
+ * a Japanese font has no vertical form for them) and turns :; (UAX #50
25
+ * `Tr`, the vertical form of JIS X 4051).
22
26
  * - brackets and quotes take the vertical form, which is the horizontal
23
27
  * glyph turned about the em box's centre when the font gives none;
24
28
  * “ ” ‘ ’ in mainland text read as the corner brackets 『』「」
25
- * (UAX #50 §3.2.4, the Hans vertical convention).
29
+ * (UAX #50 §3.2.4, the Hans vertical convention). Japanese “ ” are
30
+ * horizontal marks: vertical text sets 〝 〟 in their place (JLReq
31
+ * §3.1.1; ja-typography §5), whose vertical forms Japanese fonts have
32
+ * where they have none for “ ”; ‘ ’ keep their own.
33
+ * - small kana (ぁ っ ゃ ァ ッ ㇰ…, UAX #50 `Tu`) take their vertical form in
34
+ * Japanese text, which sits up and to the right of the horizontal one
35
+ * (JLReq §2.1.2), or move there without one; Chinese text leaves every
36
+ * `Tu` character upright as it is.
26
37
  * - dashes, ellipses, the wave dash and the interpunct are turned about
27
38
  * the em box's centre (Noto CJK gives —— a vertical form only with
28
39
  * `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.
40
+ * takes half a cell (clreq §5.1), the Taiwan, Hong Kong and Japanese
41
+ * one a whole cell (JLReq §3.1.2: ・ is a full em).
31
42
  * - an apostrophe or an interpunct inside a Latin word ("don’t", "l·l")
32
43
  * runs sideways with the word, as the composer keeps it in the word.
33
44
  *
34
45
  * The measurer and every renderer read the same runs ({@link
35
46
  * verticalRuns}): what stands in a cell advances its cell (one em, half an
36
47
  * em for the mainland interpunct), what runs sideways its horizontal width.
48
+ * Japanese text also sets a pair of exclamation and question marks (!! !?
49
+ * ?! ?? and !! !? ?! ??) side by side in one cell (JLReq §3.1.10).
37
50
  */
38
51
  import { cjkClassOf, isWordInnerMark } from './measure/cjkClasses';
39
52
  // VerticalOrientation-18.0.0.txt, the ranges that are not `R`, merged:
@@ -96,7 +109,7 @@ export function uaxVerticalOrientation(cp) {
96
109
  const CORNER_MARKS = new Set(['、', '。', ',', '.', '﹐', '﹑', '﹒']);
97
110
  const EXCLAIM_MARKS = new Set(['!', '?', '﹖', '﹗']);
98
111
  const COLON_MARKS = new Set([':', ';', '﹔', '﹕']);
99
- /** Marks turned about their em box in every Chinese region: dashes,
112
+ /** Marks turned about their em box in every CJK region: dashes,
100
113
  * ellipses, the interpunct, connectors and the wave dash. */
101
114
  const TURNED = new Set([
102
115
  '—', '―', '⸺', '⸻', // — ― ⸺ ⸻
@@ -139,10 +152,33 @@ const ALT_CORNER = { orient: 'alternate', fallback: 'corner' };
139
152
  const ALT_EXCLAIM = { orient: 'alternate', fallback: 'corner', offset: { x: 0.5, y: -0.08 } };
140
153
  const ALT_COLON = { orient: 'alternate', fallback: 'corner', offset: { x: 0.52, y: -0.22 } };
141
154
  const TCY = { orient: 'tcy' };
155
+ /** Japanese small kana: the font's vertical form, else moved by
156
+ * {@link SMALL_KANA_OFFSET_EM}. */
157
+ const ALT_SMALL_KANA = { orient: 'alternate', fallback: 'corner', offset: { x: 0.13, y: -0.13 } };
158
+ /** Another `Tu` character in Japanese text (the squared words ㍻ ㌀, the
159
+ * standalone sound marks ゛゜): the font's vertical form, else upright in
160
+ * the middle of its cell. */
161
+ const ALT_UPRIGHT = { orient: 'alternate', fallback: 'corner', offset: { x: 0, y: 0 } };
162
+ /** Japanese vertical quotes (JLReq §3.1.1): “ ” are set as 〝 〟. */
163
+ const JAPANESE_QUOTES = {
164
+ '“': { orient: 'alternate', fallback: 'rotate', paintAs: '〝' },
165
+ '”': { orient: 'alternate', fallback: 'rotate', paintAs: '〟' },
166
+ };
167
+ /** The small kana of UAX #50 `Tu` (JLReq cl-11 less ゝゞヽヾ々ー, which are
168
+ * `U` / `Tr`): hiragana, katakana, the katakana extensions for Ainu
169
+ * (ㇰ–ㇿ) and the small kana of the Kana Extended blocks. */
170
+ const SMALL_KANA_RE = /^[ぁぃぅぇぉっゃゅょゎゕゖァィゥェォッャュョヮヵヶㇰ-ㇿ\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}]/u;
171
+ /** Where a Japanese small kana moves when the font gives no vertical form,
172
+ * in ems of its cell (right and up): the shift of the `vert` glyphs'
173
+ * ink from the horizontal ones in Noto Serif JP and Noto Sans JP, Shippori
174
+ * Mincho, BIZ UDMincho and Zen Old Mincho: 0.09–0.25 em right and
175
+ * 0.06–0.26 em up (0.15 and 0.14 in Noto Serif JP). */
176
+ export const SMALL_KANA_OFFSET_EM = ALT_SMALL_KANA.offset;
142
177
  /**
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.
178
+ * How a grapheme is set in a vertical line of `region`'s Chinese or
179
+ * Japanese (see the module comment). Reads the grapheme's first code
180
+ * point; a sequence with a combining mark or a variation selector follows
181
+ * its base.
146
182
  */
147
183
  export function verticalOrientation(grapheme, region = 'mainland') {
148
184
  const cp = grapheme.codePointAt(0);
@@ -151,20 +187,32 @@ export function verticalOrientation(grapheme, region = 'mainland') {
151
187
  if (cp < 0x80)
152
188
  return SIDEWAYS;
153
189
  const ch = String.fromCodePoint(cp);
190
+ const japan = region === 'japan';
191
+ // Japan sets 、。,. in the corner too, and !? upright and centred: a
192
+ // Japanese font has no vertical form for them to move to the right.
154
193
  if (CORNER_MARKS.has(ch))
155
- return region === 'mainland' ? ALT_CORNER : UPRIGHT;
194
+ return region === 'mainland' || japan ? ALT_CORNER : UPRIGHT;
156
195
  if (EXCLAIM_MARKS.has(ch))
157
196
  return region === 'mainland' ? ALT_EXCLAIM : UPRIGHT;
197
+ // Japan turns :; (UAX #50 `Tr`): the font's vertical form, else the
198
+ // colon turned about its em box.
158
199
  if (COLON_MARKS.has(ch))
159
- return region === 'mainland' ? ALT_COLON : UPRIGHT;
200
+ return region === 'mainland' ? ALT_COLON : japan ? ALT_ROTATE : UPRIGHT;
160
201
  if (TURNED.has(ch))
161
202
  return STRETCHED.has(ch) ? ROTATE_STRETCH : ROTATE;
162
203
  const hans = HANS_QUOTES[ch];
163
- if (hans !== undefined)
164
- return region === 'mainland' ? { orient: 'alternate', fallback: 'rotate', substitute: hans } : ALT_ROTATE;
204
+ if (hans !== undefined) {
205
+ if (region === 'mainland')
206
+ return { orient: 'alternate', fallback: 'rotate', substitute: hans };
207
+ return (japan ? JAPANESE_QUOTES[ch] : undefined) ?? ALT_ROTATE;
208
+ }
165
209
  switch (uaxVerticalOrientation(cp)) {
166
210
  case 'U': return UPRIGHT;
167
- case 'Tu': return UPRIGHT; // small kana and the like: upright, the vertical form when the font has one
211
+ // Small kana and the like: in Japanese text the font's vertical form
212
+ // (a small kana up and to the right of the horizontal one), else moved
213
+ // there; Chinese text leaves them upright as they are (the bopomofo ㄧ
214
+ // is `Tu` too).
215
+ case 'Tu': return japan ? (SMALL_KANA_RE.test(ch) ? ALT_SMALL_KANA : ALT_UPRIGHT) : UPRIGHT;
168
216
  case 'Tr': return ALT_ROTATE;
169
217
  default: return SIDEWAYS;
170
218
  }
@@ -179,11 +227,14 @@ export function isVerticalCell(grapheme, region = 'mainland') {
179
227
  * quadrant, the vertical one in the top-right). Measured against the
180
228
  * `vert` glyphs of Noto Serif SC: within 0.07 em for 、。,.. !? and :;
181
229
  * 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. */
230
+ * within 0.02 em of the font's. Japanese 、。,. use it too: the `vert`
231
+ * glyphs of Noto Serif JP move 0.59–0.62 em right and 0.60–0.65 em up,
232
+ * those of Shippori Mincho 0.61–0.65 and 0.62–0.66. */
183
233
  export const CORNER_OFFSET_EM = { x: 0.6, y: -0.62 };
184
234
  /** The size of a character's cell in a vertical line, in ems: half an em
185
235
  * for the mainland interpunct (· ・, clreq §5.1), one em for
186
- * every other character that stands in a cell. `cls`, when the caller has
236
+ * every other character that stands in a cell (the Japanese ・ too,
237
+ * JLReq §3.1.2). `cls`, when the caller has
187
238
  * it, is the grapheme's `cjkClassOf`. */
188
239
  export function verticalCellEms(grapheme, region = 'mainland', cls = cjkClassOf(grapheme)) {
189
240
  return region === 'mainland' && cls === 'interpunct' ? 0.5 : 1;
@@ -287,12 +338,58 @@ export function uprightDigitRuns(graphemes, digits, region = 'mainland') {
287
338
  out.delete(i);
288
339
  return out;
289
340
  }
341
+ const HALF_MARKS = new Set(['!', '?']);
342
+ const FULL_MARKS = new Set(['!', '?']);
343
+ /** Every exclamation and question mark a pair must not touch. */
344
+ const PAIR_BLOCKERS = new Set(['!', '?', '!', '?', '﹗', '﹖', '‼', '⁇', '⁈', '⁉']);
345
+ /** The half-width marks a full-width pair is painted with in its cell
346
+ * (`VerticalGlyph.paintAs`): !? → !?. */
347
+ function halfWidthPair(pair) {
348
+ return [...pair].map((c) => String.fromCodePoint(c.codePointAt(0) - 0xFEE0)).join('');
349
+ }
350
+ /** Whether `a` and `b` are a pair of exclamation or question marks of one
351
+ * width (!! !? ?! ?? or !! !? ?! ??). */
352
+ function isMarkPair(a, b) {
353
+ if (a === undefined || b === undefined)
354
+ return false;
355
+ return (HALF_MARKS.has(a) && HALF_MARKS.has(b)) || (FULL_MARKS.has(a) && FULL_MARKS.has(b));
356
+ }
357
+ /**
358
+ * Whether `graphemes[i, i + 2)` is a pair of exclamation and question marks
359
+ * Japanese vertical text sets side by side in one upright cell (JLReq
360
+ * §3.1.10; ja-typography §8): !! !? ?! ?? or !! !? ?! ??, exactly two
361
+ * (a third mark on either side leaves all of them as they are). Half-width
362
+ * marks pair only outside a Latin run: no letter, digit or other mark set
363
+ * sideways touches them (`Wow!!`, `(!?)` and `12!!` run sideways with their
364
+ * text); a space may. The composer reads its units by the same rule
365
+ * (`cjkCompose.ts`), so a line paints the cells it measured.
366
+ */
367
+ export function isUprightMarkPair(graphemes, i, region) {
368
+ if (region !== 'japan' || !isMarkPair(graphemes[i], graphemes[i + 1]))
369
+ return false;
370
+ const before = graphemes[i - 1];
371
+ const after = graphemes[i + 2];
372
+ if ((before !== undefined && PAIR_BLOCKERS.has(before)) || (after !== undefined && PAIR_BLOCKERS.has(after)))
373
+ return false;
374
+ if (FULL_MARKS.has(graphemes[i]))
375
+ return true;
376
+ const latin = (g) => g !== undefined && !/^\s+$/.test(g) && verticalOrientation(g, region).orient === 'sideways';
377
+ return !latin(before) && !latin(after);
378
+ }
379
+ /** The one-cell glyph of a mark pair (see {@link isUprightMarkPair}): a
380
+ * full-width pair is painted with the half-width marks, which fit the
381
+ * cell where the full-width ones would be squeezed to half their width. */
382
+ export function markPairGlyph(pair) {
383
+ return FULL_MARKS.has([...pair][0]) ? { orient: 'tcy', paintAs: halfWidthPair(pair) } : TCY;
384
+ }
290
385
  /** Cut `text` into the runs a vertical line paints and measures: sideways
291
386
  * graphemes joined into runs, every other grapheme a cell of its own. An
292
387
  * apostrophe or interpunct between two letters of a Latin word runs
293
388
  * sideways with it (see `isWordInnerMark`), as the composer measures it.
294
389
  * With `uprightDigits` (`cjk.uprightDigits`), each short number
295
- * ({@link uprightDigitRuns}) is one `tcy` cell. */
390
+ * ({@link uprightDigitRuns}) is one `tcy` cell; in Japanese text, so is
391
+ * each pair of exclamation and question marks ({@link
392
+ * isUprightMarkPair}). */
296
393
  export function verticalRuns(graphemes, region = 'mainland', uprightDigits = 0) {
297
394
  const out = [];
298
395
  const tcy = uprightDigitRuns(graphemes, uprightDigits, region);
@@ -309,6 +406,16 @@ export function verticalRuns(graphemes, region = 'mainland', uprightDigits = 0)
309
406
  i += combined - 1;
310
407
  continue;
311
408
  }
409
+ if (region === 'japan' && isUprightMarkPair(graphemes, i, region)) {
410
+ if (side) {
411
+ out.push({ text: side, glyph: SIDEWAYS });
412
+ side = '';
413
+ }
414
+ const pair = g + graphemes[i + 1];
415
+ out.push({ text: pair, glyph: markPairGlyph(pair), cell: 1 });
416
+ i += 1;
417
+ continue;
418
+ }
312
419
  const glyph = isWordInnerMark(g, graphemes[i - 1], graphemes[i + 1]) ? SIDEWAYS : verticalOrientation(g, region);
313
420
  if (glyph.orient === 'sideways') {
314
421
  side += g;
@@ -326,12 +433,17 @@ export function verticalRuns(graphemes, region = 'mainland', uprightDigits = 0)
326
433
  }
327
434
  /** The runs of a text whose orientation the author forced (see
328
435
  * {@link ForcedOrientation}): one `tcy` cell, one upright cell per
329
- * grapheme, or one sideways run. */
330
- export function forcedVerticalRuns(graphemes, orient) {
436
+ * grapheme, or one sideways run. A cell of two full-width !? in
437
+ * Japanese text (`region`; the composer sets a pair in one, see {@link
438
+ * isUprightMarkPair}) is painted with the half-width marks. */
439
+ export function forcedVerticalRuns(graphemes, orient, region) {
331
440
  if (graphemes.length === 0)
332
441
  return [];
333
- if (orient === 'tcy')
334
- return [{ text: graphemes.join(''), glyph: TCY, cell: 1 }];
442
+ if (orient === 'tcy') {
443
+ const text = graphemes.join('');
444
+ const glyph = region === 'japan' && graphemes.length === 2 && isMarkPair(graphemes[0], graphemes[1]) ? markPairGlyph(text) : TCY;
445
+ return [{ text, glyph, cell: 1 }];
446
+ }
335
447
  if (orient === 'sideways')
336
448
  return [{ text: graphemes.join(''), glyph: SIDEWAYS }];
337
449
  return graphemes.map((g) => ({ text: g, glyph: UPRIGHT, cell: 1 }));
@@ -347,10 +459,17 @@ export function segmentOrientation(seg) {
347
459
  * {@link uprightDigitCandidates}, also one that runs with Latin text, so a
348
460
  * paragraph holding one is measured by the formatted path, which reads
349
461
  * each number with its paragraph (`sidewaysNumberSpans`). ASCII letters
350
- * never do. */
351
- export function holdsVerticalCell(text, uprightDigits) {
462
+ * never do; in Japanese text (`region`), a pair of half-width marks set
463
+ * in one cell does ({@link isUprightMarkPair}). */
464
+ export function holdsVerticalCell(text, uprightDigits, region) {
352
465
  if (uprightDigits > 0 && /[0-9]/.test(text) && uprightDigitCandidates([...text], uprightDigits).size > 0)
353
466
  return true;
467
+ if (region === 'japan' && /[!?][!?]/.test(text)) {
468
+ const graphemes = [...text];
469
+ for (let i = 0; i + 1 < graphemes.length; i++)
470
+ if (isUprightMarkPair(graphemes, i, region))
471
+ return true;
472
+ }
354
473
  if (!/[^\u0000-\u007F]/.test(text))
355
474
  return false;
356
475
  for (const ch of text) {
@@ -1 +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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"}
1
+ {"version":3,"file":"writingMode.js","sourceRoot":"","sources":["../src/writingMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA8CnE,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,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,OAAO,EAAC,OAAO,EAAC,CAAC;IACtG,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC;IAC7F,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC;IAC7F,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC;IAC7F,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC;IAC7F,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC;IAC7F,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,EAAE,QAAQ,EAAC,QAAQ,EAAC,CAAC;CAC1D,CAAC;AACF,MAAM,QAAQ,GAAsC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE3E,qDAAqD;AACrD,MAAM,UAAU,sBAAsB,CAAC,EAAU;IAC/C,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;QAClC,IAAI,EAAE,GAAG,KAAK;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;aACxB,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAE;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;YAC/C,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAE,CAAE,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;oDAEoD;AACpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAClE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAElD;8DAC8D;AAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;IACrB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU;IAC9B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;IACvB,GAAG,EAAE,GAAG,EAAE,MAAM;IAChB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;IACvB,GAAG,EAAE,IAAI;CACV,CAAC,CAAC;AAEH;4DAC4D;AAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1D,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAErE;;4EAE4E;AAC5E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;4CAC4C;AAC5C,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,sEAAsE;AACtE,MAAM,WAAW,GAA2B;IAC1C,GAAG,EAAE,GAAG,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,OAAO,GAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACrD,MAAM,QAAQ,GAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACvD,MAAM,MAAM,GAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACnD,MAAM,cAAc,GAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1E,MAAM,UAAU,GAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9E,MAAM,UAAU,GAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9E,MAAM,WAAW,GAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7G,MAAM,SAAS,GAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5G,MAAM,GAAG,GAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7C;oCACoC;AACpC,MAAM,cAAc,GAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;AACjH;;8BAE8B;AAC9B,MAAM,WAAW,GAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACvG,mEAAmE;AACnE,MAAM,eAAe,GAAkC;IACrD,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;IAC9D,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;CAC/D,CAAC;AAEF;;4DAE4D;AAC5D,MAAM,aAAa,GAAG,yFAAyF,CAAC;AAEhH;;;;wDAIwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAO,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,SAAoB,UAAU;IAClF,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACtC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC;IACjC,mEAAmE;IACnE,oEAAoE;IACpE,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;IACvF,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IAChF,oEAAoE;IACpE,iCAAiC;IACjC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;IACjG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAChG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC;IACjE,CAAC;IACD,QAAQ,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;QACnC,KAAK,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC;QACzB,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,gBAAgB;QAChB,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5F,KAAK,IAAI,CAAC,CAAC,OAAO,UAAU,CAAC;QAC7B,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;mCACmC;AACnC,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,SAAoB,UAAU;IAC7E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;AACrE,CAAC;AAED;;;;;;;wDAOwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AAErD;;;;0CAI0C;AAC1C,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAoB,UAAU,EAAE,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC1G,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAiBD,MAAM,YAAY,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC;AACnH,MAAM,aAAa,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClH,MAAM,WAAW,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA4B,EAAE,MAAc;IACjF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9G,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;gBACgB;AAChB,MAAM,UAAU,GAAG,wCAAwC,CAAC;AAE5D;kBACkB;AAClB,SAAS,kBAAkB,CAAC,CAAS;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;8EAG8E;AAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5D,MAAM,SAAS,GAAG,SAAS,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,SAA4B,EAAE,SAAoB,UAAU;IACtF,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3B,qEAAqE;IACrE,eAAe;IACf,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAc,EAAE;QAC3C,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC9E,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC;QACnE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,2EAA2E;IAC3E,MAAM,IAAI,GAAG,IAAI,KAAK,CAAU,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAU,CAAC,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1G,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAE,IAAI,KAAK,CAAC,EAAE,CAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA4B,EAAE,MAAc,EAAE,SAAoB,UAAU;IAC3G,MAAM,GAAG,GAAG,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG;QAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,iEAAiE;AACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAElF;0CAC0C;AAC1C,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AAED;0CAC0C;AAC1C,SAAS,UAAU,CAAC,CAAqB,EAAE,CAAqB;IAC9D,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAA4B,EAAE,CAAS,EAAE,MAAiB;IAC1F,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACpF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3H,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;IAC9I,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;4EAE4E;AAC5E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/F,CAAC;AAED;;;;;;;2BAO2B;AAC3B,MAAM,UAAU,YAAY,CAAC,SAA4B,EAAE,SAAoB,UAAU,EAAE,aAAa,GAAG,CAAC;IAC1G,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1C,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;YAClE,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1C,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjH,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,CAAC;YACV,SAAS;QACX,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1C,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD;;;;gEAIgE;AAChE,MAAM,UAAU,kBAAkB,CAAC,SAA4B,EAAE,MAAyB,EAAE,MAAkB;IAC5G,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjI,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,GAA4D;IAC7F,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3C,CAAC;AAED;;;;;;;;oDAQoD;AACpD,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,aAAqB,EAAE,MAAkB;IACvF,IAAI,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtH,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;IAC1G,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;YAAE,SAAS;QACtC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
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.15.0",
4
+ "version": "1.16.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "homepage": "https://postext.dev/",