palt-typesetting 0.5.3 → 0.6.2

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.
package/README.md CHANGED
@@ -13,6 +13,8 @@ Palt Typesetting は、美しいテキスト表示を実現するための JavaS
13
13
  - [Interactive Demo](https://palt.typesetting.jp)
14
14
  - [Try on CodePen](https://codepen.io/yamatoiizuka-the-animator/pen/PoLGrZe)
15
15
 
16
+ ---
17
+
16
18
  ## Getting Started
17
19
 
18
20
  ### Install from NPM
@@ -23,6 +25,7 @@ npm install palt-typesetting
23
25
 
24
26
  ```javascript
25
27
  import Typesetter from 'palt-typesetting'
28
+ import 'palt-typesetting/dist/typesetter.css'
26
29
 
27
30
  // Typesetter のインスタンスを作成
28
31
  const typesetter = new Typesetter()
@@ -34,7 +37,8 @@ typesetter.renderToSelector('.my-class')
34
37
  ### Use Typesetter from CDN
35
38
 
36
39
  ```html
37
- <script src="https://unpkg.com/palt-typesetting@0.5.3/bundle/typesetter.min.js"></script>
40
+ <script src="https://unpkg.com/palt-typesetting@0.6.2/bundle/typesetter.min.js"></script>
41
+ <link rel="stylesheet" type="text/css" href="https://unpkg.com/palt-typesetting@0.6.2/bundle/typesetter.min.css" />
38
42
  ```
39
43
 
40
44
  ```html
@@ -53,7 +57,7 @@ typesetter.renderToSelector('.my-class')
53
57
  /*
54
58
  * 共通のスタイリング(例)
55
59
  */
56
- .typeset {
60
+ .typeset-wrapper {
57
61
  /* プロポーショナルメトリクス(ツメ組み)の設定 */
58
62
  font-feature-settings: 'palt';
59
63
 
@@ -82,8 +86,8 @@ typesetter.renderToSelector('.my-class')
82
86
  vertical-align: 0.02em;
83
87
 
84
88
  /*
85
- * 行間の調整。親要素 .typeset の行間と視覚的に合わせます。
86
- * [.typeset の line-height] ÷ [フォントの拡大率] - [ベースラインの調整値の絶対値] × 2
89
+ * 行間の調整。親要素 .typeset-wrapper の行間と視覚的に合わせます。
90
+ * [.typeset-wrapper の line-height] ÷ [フォントの拡大率] - [ベースラインの調整値の絶対値] × 2
87
91
  */
88
92
  line-height: calc(1.8 / 1.05 - 0.02 * 2);
89
93
 
@@ -95,6 +99,8 @@ typesetter.renderToSelector('.my-class')
95
99
  }
96
100
  ```
97
101
 
102
+ ---
103
+
98
104
  ## Typesetter Class
99
105
 
100
106
  ### Usage
@@ -181,6 +187,120 @@ typesetter.renderToSelector('.my-class')
181
187
  | `thinSpaceWidth` | 四分アキスペースの幅を設定します。<br>`insertThinSpaces` が `true` の場合にのみ有効です。 | `string` | `'0.2em' ` |
182
188
  | `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
183
189
 
190
+ ---
191
+
192
+ ## Typescript Support
193
+
194
+ ### Type Definitions
195
+
196
+ ```typescript
197
+ /* オプションの型定義 */
198
+
199
+ interface TypesettingOptions {
200
+ useWordBreak: boolean
201
+ wrapLatin: boolean
202
+ noSpaceBetweenNoBreaks: boolean
203
+ insertThinSpaces: boolean
204
+ thinSpaceWidth: string
205
+ kerningRules: KerningRule[]
206
+ }
207
+
208
+ interface KerningRule {
209
+ between: [string, string]
210
+ value: string | number
211
+ }
212
+ ```
213
+
214
+ ### Usage
215
+
216
+ ```typescript
217
+ import Typesetter from 'palt-typesetting'
218
+ import type { TypesettingOptions, KerningRule } from 'palt-typesetting'
219
+ import 'palt-typesetting/dist/typesetter.css'
220
+
221
+ const kerning: KerningRule[] = [
222
+ {
223
+ between: ['し', 'ま'],
224
+ value: '60',
225
+ },
226
+ {
227
+ between: ['す', '。'],
228
+ value: '-80',
229
+ },
230
+ ]
231
+
232
+ const options: TypesettingOptions = {
233
+ thinSpaceWidth: '0.25em',
234
+ kerningRules: kerning,
235
+ }
236
+
237
+ const typeset = new Typesetter(options)
238
+ typesetter.renderToSelector('.my-class')
239
+ ```
240
+
241
+ ---
242
+
243
+ ## for Frameworks
244
+
245
+ ### Astro.js
246
+
247
+ #### Typesetting コンポーネントの作成
248
+
249
+ `components/Typesetting.astro`
250
+
251
+ ```astro
252
+ ---
253
+ import Typesetter from 'palt-typesetting';
254
+ import 'palt-typesetting/dist/typesetter.css';
255
+
256
+ const srcHtml = await Astro.slots.render('default');
257
+ const typesetter = new Typesetter();
258
+ ---
259
+
260
+ <Fragment set:html={typesetter.render(srcHtml)}></Fragment>
261
+
262
+ <style is:global>
263
+ /* 合成フォントのイメージでスタイルを設定 */
264
+
265
+ .typeset-wrapper {
266
+ font-feature-settings: 'palt';
267
+ line-height: 1.8;
268
+ letter-spacing: 0.1em;
269
+ /* ...その他のスタイル */
270
+ }
271
+
272
+ .typeset-latin {
273
+ font-size: 105%;
274
+ letter-spacing: 0.05em;
275
+ /* ...その他のスタイル */
276
+ }
277
+ </style>
278
+ ```
279
+
280
+ #### Typesetting コンポーネントの読み込み
281
+
282
+ `pages/index.astro`
283
+
284
+ ```astro
285
+ ---
286
+ import Typesetting from '../components/Typesetting.astro'
287
+ ---
288
+
289
+ <p>
290
+ <Typesetting>
291
+ 「日本語」とEnglish、晴れ・28度。
292
+ </Typesetting>
293
+ </p>
294
+
295
+ <style>
296
+ p {
297
+ font-size: 1.8rem;
298
+ }
299
+ </style>
300
+ ```
301
+
302
+ ---
303
+
184
304
  ## Notes
185
305
 
186
306
  ### 環境要件
@@ -0,0 +1 @@
1
+ @font-face{font-family:ling-one;src:url('data:font/woff2;base64,AAEAAAAKAIAAAwAgT1MvMhG03xcAAAEoAAAAYGNtYXAADABzAAABkAAAADRnbHlmJAM2GwAAAcwAAAAYaGVhZCLbfFwAAACsAAAANmhoZWEnEvkrAAAA5AAAACRobXR4AAEAAAAAAYgAAAAIbG9jYQAMABgAAAHEAAAACG1heHAAcQAiAAABCAAAACBuYW1lBbsdPAAAAeQAAACKcG9zdHQrY6cAAAJwAAAALQABAAAAAQAAsWqD8F8PPPUAAycQAAAAAOHcugAAAAAA4edeTwAAAAAAAQABAAAABwACAAAAAAAAAAEAACcQ+DAAAAB9AAAAfAABAAEAAAAAAAAAAAAAAAAAAAABAAEAAAADAAMAAQAAAAAAAQACAB4ABgAAAGQAAAAAAAAAAwB9AZAABQAIGWQXcAAAAu4ZZBdwAAANrAAyC7gAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3N6bQBAACAAIB9A+DAH0CcQB9AAAAABAAAAABOIG1gAAAAgAAAAAQAAAAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAIAAAAAQABAABAAAAIP//AAAAIP///+EAAQAAAAAAAAAMAAwADAABAAAAAAABAAEAAgAANRcjAQEBAQAAAAAAAAYATgADAAEECQABAAgAAAADAAEECQACAAIACAADAAEECQADAB4ACgADAAEECQAEAAwAKAADAAEECQAFAAgANAADAAEECQAGAAwAKABMAGkAbgBnADEAMQAuADAAOwBzAHMAegBtADsATABpAG4AZwAtADEATABpAG4AZwAtADEAdgAxAC4AMAAAAAIAAAAAAAD/tQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMBAgRuYnNwAAAA') format('woff2')}.typeset wbr{visibility:hidden}.typeset-word-break{word-break:keep-all;overflow-wrap:anywhere}.typeset-kerning,.typeset-thin-space{letter-spacing:0;user-select:none}.typeset-kerning[data-content]::after,.typeset-thin-space[data-content]::after{content:attr(data-content);font-family:ling-one;line-height:0}.typeset-no-breaks{letter-spacing:0}
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typesetter=e():t.Typesetter=e()}(this,(()=>(()=>{var t={954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),u="0".charCodeAt(0),o="a".charCodeAt(0),a="A".charCodeAt(0),i="-".charCodeAt(0),s="_".charCodeAt(0);function A(t){var e=t.charCodeAt(0);return e===r||e===i?62:e===n||e===s?63:e<u?-1:e<u+10?e-u+26+26:e<a+26?e-a:e<o+26?e-o+26:void 0}t.toByteArray=function(t){var r,n,u,o,a,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;a="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-a),u=a>0?t.length-4:t.length;var c=0;function f(t){i[c++]=t}for(r=0,n=0;r<u;r+=4,n+=3)f((16711680&(o=A(t.charAt(r))<<18|A(t.charAt(r+1))<<12|A(t.charAt(r+2))<<6|A(t.charAt(r+3))))>>16),f((65280&o)>>8),f(255&o);return 2===a?f(255&(o=A(t.charAt(r))<<2|A(t.charAt(r+1))>>4)):1===a&&(f((o=A(t.charAt(r))<<10|A(t.charAt(r+1))<<4|A(t.charAt(r+2))>>2)>>8&255),f(255&o)),i},t.fromByteArray=function(t){var e,r,n,u,o=t.length%3,a="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-o;e<n;e+=3)a+=i((u=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(u>>12&63)+i(u>>6&63)+i(63&u);switch(o){case 1:a+=i((r=t[t.length-1])>>2),a+=i(r<<4&63),a+="==";break;case 2:a+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),a+=i(r>>4&63),a+=i(r<<2&63),a+="="}return a}}(e)},297:(t,e,r)=>{"use strict";r.d(e,{A:()=>l});var n=r(601),u=r.n(n),o=r(314),a=r.n(o),i=r(417),s=r.n(i),A=new URL(r(539),r.b),c=a()(u()),f=s()(A);c.push([t.id,`@font-face {\n /* \n * カスタムフォント: 1/10000 UPM 幅の Space と No-Break Space を定義。\n * 注意:完全なゼロ幅スペースを使用すると、Safari では letter-spacing が無視される。\n * @sharapeco による貢献に感謝します。{@link https://gist.github.com/sharapeco/1dd7f4433dad07648e1325e1fa5926ee}\n */\n font-family: ling-one;\n src: url(${f})\n format('woff2');\n}\n\n/* \n * Safari のリーダーモード対応\n * See: {@link https://github.com/yamatoiizuka/palt-typesetting/issues/96}\n */\n.typeset wbr {\n visibility: hidden;\n}\n\n.typeset-word-break {\n word-break: keep-all;\n overflow-wrap: anywhere;\n}\n\n.typeset-thin-space,\n.typeset-kerning {\n letter-spacing: 0; /* 親要素から継承される letter-spacing の影響を無視します。 */\n user-select: none; /* ユーザーによるテキストのコピーを無効にします。 */\n}\n\n.typeset-thin-space[data-content]::after,\n.typeset-kerning[data-content]::after {\n content: attr(data-content); /* Space または No-Break Space */\n font-family: ling-one; /* カスタムフォントのスペースを使用します。 */\n line-height: 0; /* 空白による行の高さの影響を無視します。 */\n}\n\n.typeset-no-breaks {\n letter-spacing: 0; /* 親要素から継承される letter-spacing の影響を無視します。 */\n}\n`,""]);const l=c},314:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var r="",n=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),n&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=t(e),n&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(t,r,n,u,o){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(n)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(a[s]=!0)}for(var A=0;A<t.length;A++){var c=[].concat(t[A]);n&&a[c[0]]||(void 0!==o&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),r&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=r):c[2]=r),u&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=u):c[4]="".concat(u)),e.push(c))}},e}},417:t=>{"use strict";t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]|(%20)/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t):t}},601:t=>{"use strict";t.exports=function(t){return t[1]}},72:t=>{"use strict";var e=[];function r(t){for(var r=-1,n=0;n<e.length;n++)if(e[n].identifier===t){r=n;break}return r}function n(t,n){for(var o={},a=[],i=0;i<t.length;i++){var s=t[i],A=n.base?s[0]+n.base:s[0],c=o[A]||0,f="".concat(A," ").concat(c);o[A]=c+1;var l=r(f),h={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==l)e[l].references++,e[l].updater(h);else{var p=u(h,n);n.byIndex=i,e.splice(i,0,{identifier:f,updater:p,references:1})}a.push(f)}return a}function u(t,e){var r=e.domAPI(e);return r.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;r.update(t=e)}else r.remove()}}t.exports=function(t,u){var o=n(t=t||[],u=u||{});return function(t){t=t||[];for(var a=0;a<o.length;a++){var i=r(o[a]);e[i].references--}for(var s=n(t,u),A=0;A<o.length;A++){var c=r(o[A]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}o=s}}},659:t=>{"use strict";var e={};t.exports=function(t,r){var n=function(t){if(void 0===e[t]){var r=document.querySelector(t);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(t){r=null}e[t]=r}return e[t]}(t);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},540:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},56:(t,e,r)=>{"use strict";t.exports=function(t){var e=r.nc;e&&t.setAttribute("nonce",e)}},825:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(r){!function(t,e,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var u=void 0!==r.layer;u&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,u&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var o=r.sourceMap;o&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleTagTransform(n,t,e.options)}(e,t,r)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},113:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},741:t=>{function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(t,r){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=r,this.destLen=0,this.ltree=new e,this.dtree=new e}var n=new e,u=new e,o=new Uint8Array(30),a=new Uint16Array(30),i=new Uint8Array(30),s=new Uint16Array(30),A=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),c=new e,f=new Uint8Array(320);function l(t,e,r,n){var u,o;for(u=0;u<r;++u)t[u]=0;for(u=0;u<30-r;++u)t[u+r]=u/r|0;for(o=n,u=0;u<30;++u)e[u]=o,o+=1<<t[u]}var h=new Uint16Array(16);function p(t,e,r,n){var u,o;for(u=0;u<16;++u)t.table[u]=0;for(u=0;u<n;++u)t.table[e[r+u]]++;for(t.table[0]=0,o=0,u=0;u<16;++u)h[u]=o,o+=t.table[u];for(u=0;u<n;++u)e[r+u]&&(t.trans[h[e[r+u]]++]=u)}function d(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=1&t.tag;return t.tag>>>=1,e}function b(t,e,r){if(!e)return r;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var n=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,n+r}function v(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var r=0,n=0,u=0,o=t.tag;do{n=2*n+(1&o),o>>>=1,++u,r+=e.table[u],n-=e.table[u]}while(n>=0);return t.tag=o,t.bitcount-=u,e.trans[r+n]}function y(t,e,r){var n,u,o,a,i,s;for(n=b(t,5,257),u=b(t,5,1),o=b(t,4,4),a=0;a<19;++a)f[a]=0;for(a=0;a<o;++a){var l=b(t,3,0);f[A[a]]=l}for(p(c,f,0,19),i=0;i<n+u;){var h=v(t,c);switch(h){case 16:var d=f[i-1];for(s=b(t,2,3);s;--s)f[i++]=d;break;case 17:for(s=b(t,3,3);s;--s)f[i++]=0;break;case 18:for(s=b(t,7,11);s;--s)f[i++]=0;break;default:f[i++]=h}}p(e,f,0,n),p(r,f,n,u)}function g(t,e,r){for(;;){var n,u,A,c,f=v(t,e);if(256===f)return 0;if(f<256)t.dest[t.destLen++]=f;else for(n=b(t,o[f-=257],a[f]),u=v(t,r),c=A=t.destLen-b(t,i[u],s[u]);c<A+n;++c)t.dest[t.destLen++]=t.dest[c]}}function D(t){for(var e,r;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if((e=256*(e=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return-3;for(t.sourceIndex+=4,r=e;r;--r)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,0}!function(t,e){var r;for(r=0;r<7;++r)t.table[r]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,r=0;r<24;++r)t.trans[r]=256+r;for(r=0;r<144;++r)t.trans[24+r]=r;for(r=0;r<8;++r)t.trans[168+r]=280+r;for(r=0;r<112;++r)t.trans[176+r]=144+r;for(r=0;r<5;++r)e.table[r]=0;for(e.table[5]=32,r=0;r<32;++r)e.trans[r]=r}(n,u),l(o,a,4,3),l(i,s,2,1),o[28]=0,a[28]=258,t.exports=function(t,e){var o,a,i=new r(t,e);do{switch(o=d(i),b(i,2,0)){case 0:a=D(i);break;case 1:a=g(i,n,u);break;case 2:y(i,i.ltree,i.dtree),a=g(i,i.ltree,i.dtree);break;default:a=-3}if(0!==a)throw new Error("Data error")}while(!o);return i.destLen<i.dest.length?"function"==typeof i.dest.slice?i.dest.slice(0,i.destLen):i.dest.subarray(0,i.destLen):i.dest}},667:(t,e,r)=>{const n=r(741),{swap32LE:u}=r(288);t.exports=class{constructor(t){const e="function"==typeof t.readUInt32BE&&"function"==typeof t.slice;if(e||t instanceof Uint8Array){let r;if(e)this.highStart=t.readUInt32LE(0),this.errorValue=t.readUInt32LE(4),r=t.readUInt32LE(8),t=t.slice(12);else{const e=new DataView(t.buffer);this.highStart=e.getUint32(0,!0),this.errorValue=e.getUint32(4,!0),r=e.getUint32(8,!0),t=t.subarray(12)}t=n(t,new Uint8Array(r)),t=n(t,new Uint8Array(r)),u(t),this.data=new Uint32Array(t.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=t)}get(t){let e;return t<0||t>1114111?this.errorValue:t<55296||t>56319&&t<=65535?(e=(this.data[t>>5]<<2)+(31&t),this.data[e]):t<=65535?(e=(this.data[2048+(t-55296>>5)]<<2)+(31&t),this.data[e]):t<this.highStart?(e=this.data[2080+(t>>11)],e=this.data[e+(t>>5&63)],e=(e<<2)+(31&t),this.data[e]):this.data[this.data.length-4]}}},288:t=>{const e=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=(t,e,r)=>{let n=t[e];t[e]=t[r],t[r]=n};t.exports={swap32LE:t=>{e&&(t=>{const e=t.length;for(let n=0;n<e;n+=4)r(t,n,n+3),r(t,n+1,n+2)})(t)}}},539:t=>{"use strict";t.exports="data:font/woff2;base64,AAEAAAAKAIAAAwAgT1MvMhG03xcAAAEoAAAAYGNtYXAADABzAAABkAAAADRnbHlmJAM2GwAAAcwAAAAYaGVhZCLbfFwAAACsAAAANmhoZWEnEvkrAAAA5AAAACRobXR4AAEAAAAAAYgAAAAIbG9jYQAMABgAAAHEAAAACG1heHAAcQAiAAABCAAAACBuYW1lBbsdPAAAAeQAAACKcG9zdHQrY6cAAAJwAAAALQABAAAAAQAAsWqD8F8PPPUAAycQAAAAAOHcugAAAAAA4edeTwAAAAAAAQABAAAABwACAAAAAAAAAAEAACcQ+DAAAAB9AAAAfAABAAEAAAAAAAAAAAAAAAAAAAABAAEAAAADAAMAAQAAAAAAAQACAB4ABgAAAGQAAAAAAAAAAwB9AZAABQAIGWQXcAAAAu4ZZBdwAAANrAAyC7gAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3N6bQBAACAAIB9A+DAH0CcQB9AAAAABAAAAABOIG1gAAAAgAAAAAQAAAAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAIAAAAAQABAABAAAAIP//AAAAIP///+EAAQAAAAAAAAAMAAwADAABAAAAAAABAAEAAgAANRcjAQEBAQAAAAAAAAYATgADAAEECQABAAgAAAADAAEECQACAAIACAADAAEECQADAB4ACgADAAEECQAEAAwAKAADAAEECQAFAAgANAADAAEECQAGAAwAKABMAGkAbgBnADEAMQAuADAAOwBzAHMAegBtADsATABpAG4AZwAtADEATABpAG4AZwAtADEAdgAxAC4AMAAAAAIAAAAAAAD/tQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMBAgRuYnNwAAAA"}},e={};function r(n){var u=e[n];if(void 0!==u)return u.exports;var o=e[n]={id:n,exports:{}};return t[n](o,o.exports,r),o.exports}r.m=t,r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.b=document.baseURI||self.location.href,r.nc=void 0;var n={};return(()=>{"use strict";r.d(n,{default:()=>At});var t=window;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function u(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function o(t){var r=function(t,r){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var u=n.call(t,"string");if("object"!=e(u))return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:String(r)}var a,i=function(){function e(r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.replaceNode=function(e,r){var n=t.document.createRange();n.selectNode(e);var u=n.createContextualFragment(r);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.removeChild(e))},this.transformFunctions=r,this.options=n}var r,n;return r=e,(n=[{key:"processHtmlWithFunctions",value:function(t){var e=this;return""===t?t:this.transformFunctions.reduce((function(t,r){return e.processHtml(t,r)}),t)}},{key:"processHtml",value:function(t,e){var r=this;if(""===t)return t;var n=s(t),u=A(n.body);return u.forEach((function(t,n){var o=u[n+1]||null,a=r.getTransformedHtml(t,o,e);r.replaceNode(t,a)})),n.body.innerHTML}},{key:"getTransformedHtml",value:function(t,e,r){return r(t.nodeValue||"",e&&e.nodeValue||"",this.options)}}])&&u(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),e}(),s=function(e){return(new t.DOMParser).parseFromString(e,"text/html")},A=function(e){for(var r=t.document.createTreeWalker(e,t.NodeFilter.SHOW_TEXT),n=r.nextNode(),u=[];n;)n.nodeValue&&""!==n.nodeValue.trim()&&u.push(n),n=r.nextNode();return u},c=i,f=r(667),l=r(954);const h=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],p=new f(l.toByteArray("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")),d=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},b=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class v{constructor(t,e=!1){this.position=t,this.required=e}}a=class{nextCodePoint(){const t=this.string.charCodeAt(this.pos++),e=this.string.charCodeAt(this.pos);return 55296<=t&&t<=56319&&56320<=e&&e<=57343?(this.pos++,1024*(t-55296)+(e-56320)+65536):t}nextCharClass(){return d(p.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(t){let e=!1;switch(h[this.curClass][this.nextClass]){case 0:e=!0;break;case 1:e=41===t;break;case 2:if(e=41===t,!e)return e=!1,e;break;case 3:if(41!==t)return e}return this.LB8a&&(e=!1),!this.LB21a||16!==this.curClass&&17!==this.curClass?this.LB21a=13===this.curClass:(e=!1,this.LB21a=!1),28===this.curClass?(this.LB30a++,2==this.LB30a&&28===this.nextClass&&(e=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,e}nextBreak(){if(null==this.curClass){let t=this.nextCharClass();this.curClass=b(t),this.nextClass=t,this.LB8a=31===t,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const t=this.nextClass;if(this.nextClass=this.nextCharClass(),34===this.curClass||36===this.curClass&&37!==this.nextClass)return this.curClass=b(d(this.nextClass)),new v(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new v(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new v(this.string.length)):null}constructor(t){this.string=t,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};var y=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB9\xBA\xBF-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2000-\u200A\u2018\u2019\u201C\u201D\u2028\u2029\u202F\u2030\u205F\u2070\u2071\u2074-\u208E\u2090-\u209C\u20AC\u20F0\u212A\u212B\u2132\u214E\u2160-\u2188\u2202\u2205\u220F\u2211\u2212\u221A\u221E\u222B\u2248\u2260\u2264\u2265\u2C60-\u2C7F\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uA92E\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFEFF\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A])+/g,g=/(?:[\|\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3001-\u3003\u3005-\u3011\u3013-\u301F\u3021-\u302D\u3030-\u3035\u3037-\u303F\u3041-\u3096\u3099-\u30FF\u3190-\u319F\u31C0-\u31E3\u31F0-\u31FF\u3220-\u3247\u3280-\u32B0\u32C0-\u32CB\u32D0-\u3370\u337B-\u337F\u33E0-\u33FE\u3400-\u4DBF\u4E00-\u9FFF\uA700-\uA707\uF900-\uFA6D\uFA70-\uFAD9\uFE45\uFE46\uFF61-\uFF9F]|\uD81B[\uDFE2\uDFE3\uDFF0\uDFF1]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67]|\uD834[\uDF60-\uDF71]|\uD83C[\uDE00\uDE50\uDE51]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])+/,D=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,m=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,w=/・|:|;/,F=/、|,/,B=/。|./,C=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),E=/[\s\u00A0]/,P={isLatin:function(t){return y.test(t)},isJapanese:function(t){return g.test(t)},hasLanguageTransition:function(t,e){return P.isJapanese(t)!==P.isJapanese(e)},shouldAddThinSpace:function(t,e){return P.hasLanguageTransition(t,e)&&(r=e,!new RegExp("^[".concat(B.source).concat(F.source,"]")).test(r));var r}},x=r(72),S=r.n(x),O=r(825),L=r.n(O),k=r(659),j=r.n(k),H=r(56),T=r.n(H),X=r(540),W=r.n(X),z=r(113),U=r.n(z),I=r(297),N={};N.styleTagTransform=U(),N.setAttributes=T(),N.insert=j().bind(null,"head"),N.domAPI=L(),N.insertStyleElement=W(),S()(I.A,N),I.A&&I.A.locals&&I.A.locals;var V="typeset",Q=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",u=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(u).concat(n,">").concat(t,"</span>")},Z=function(t,e,r,n){var u="letter-spacing: ".concat(r,";"),o=' data-content="'.concat(n?" ":"&nbsp;",'"');return Q(t,e,u,o)},M=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},R=function(t,e){return!E.test(t)&&!E.test(e)&&(P.shouldAddThinSpace(t,e)||function(t,e){for(var r=new RegExp("(".concat(m.source,"|").concat(F.source,"|").concat(B.source,")")),n={spaceBefore:{regex:D,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:w,hasSpaceBefore:!0,hasSpaceAfter:!0}},u=0,o=Object.values(n);u<o.length;u++){var a=o[u],i=a.regex,s=a.hasSpaceBefore,A=a.hasSpaceAfter;if(s&&i.test(e)&&!i.test(t))return!0;if(A&&i.test(t)&&!i.test(e))return!0}return!1}(t,e))},G=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new a(r).nextBreak();return!!n&&1===n.position},q=function(t,e,r){var n=M(t),u=M(e);return n.reduce((function(t,e,n,o){return t+function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;if(!e)return t;var n=r.insertThinSpaces&&R(t,e),u=G(t,e);return n?t+function(t,e){var r="".concat(V,"-thin-space");return Z("",r,t,e)}(r.thinSpaceWidth,u):r.useWordBreak&&u?t+"<wbr>":t}(e,o[n+1]||u[0],r)}),"")};function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var J=function(t,e,r){return" "===t?t:(n=t,u=r.useWordBreak,o=V,a="".concat(V,"-word-break"),i=u?"".concat(o," ").concat(a):o,Q(n,i));var n,u,o,a,i},Y=function(t,e,r){return" "===t?t:r.wrapLatin&&P.isLatin(t)?t.replace(y,(function(t){return e=t,r="".concat(V,"-latin"),Q(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,C.test(n))?t.replace(C,(function(t){return e=t,r="".concat(V,"-no-breaks"),Q(e,r);var e,r})):t;var n},_=function(t,e,r){var n,u=function(t){if(Array.isArray(t))return K(t)}(n=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return K(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(t,e):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return u.map((function(t,n){var o=u[n+1]||e[0]||"",a=r.kerningRules.find((function(e){return e.between[0]===t&&e.between[1]===o}));if(a){var i="number"==typeof a.value?a.value:parseInt(a.value,10),s=!r.useWordBreak&&G(t,o);return t+function(t,e){if(0===t)return"";var r="".concat(V,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return Q("",r,n)}return Z("",r,t/1e3+"em",e)}(i,s)}return t})).join("")};function $(t){return $="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$(t)}function tt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function et(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?tt(Object(r),!0).forEach((function(e){var n,u,o;n=t,u=e,o=r[e],(u=nt(u))in n?Object.defineProperty(n,u,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[u]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):tt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function rt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,nt(n.key),n)}}function nt(t){var e=function(t,e){if("object"!=$(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=$(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==$(e)?e:String(e)}function ut(t,e,r){return e=at(e),function(t,e){if(e&&("object"===$(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,ot()?Reflect.construct(e,r||[],at(t).constructor):e.apply(t,r))}function ot(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(ot=function(){return!!t})()}function at(t){return at=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},at(t)}function it(t,e){return it=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},it(t,e)}var st=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var e=void 0!==Intl.Segmenter;e||console.warn("Intl.Segmenter is not supported in this environment. \nTherefore, the options `useWordBreak` and `insertThinSpaces` will be ignored. \nFor more information about Intl.Segmenter, please visit:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter");var n=e?[J,q,Y,_]:[Y,_],u=r.validateOptions(t);return ut(this,r,[n,u])}var n,u,o;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&it(t,e)}(r,e),n=r,o=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(r.isValidKerningRule)),et(et({},r.getDefaultOptions()),t)}},{key:"isValidKerningRule",value:function(t){return 1===t.between[0].length&&1===t.between[1].length||(console.warn("Kerning rule between '".concat(t.between[0],"' and '").concat(t.between[1],"' must be single characters.")),!1)}}],(u=[{key:"render",value:function(t){return t?this.processHtmlWithFunctions(t):""}},{key:"renderToElements",value:function(t){var e=this;t&&(Array.isArray(t)||(t=[t]),t.forEach((function(t){var r=e.render(t.innerHTML);t.innerHTML=r})))}},{key:"renderToSelector",value:function(e){if(e){var r=t.document.querySelectorAll(e);this.renderToElements(Array.from(r))}}}])&&rt(n.prototype,u),o&&rt(n,o),Object.defineProperty(n,"prototype",{writable:!1}),r}(c),At=st})(),n.default})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typesetter=e():t.Typesetter=e()}(this,(()=>(()=>{var t={954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),u="0".charCodeAt(0),o="a".charCodeAt(0),a="A".charCodeAt(0),i="-".charCodeAt(0),s="_".charCodeAt(0);function c(t){var e=t.charCodeAt(0);return e===r||e===i?62:e===n||e===s?63:e<u?-1:e<u+10?e-u+26+26:e<a+26?e-a:e<o+26?e-o+26:void 0}t.toByteArray=function(t){var r,n,u,o,a,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;a="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-a),u=a>0?t.length-4:t.length;var f=0;function l(t){i[f++]=t}for(r=0,n=0;r<u;r+=4,n+=3)l((16711680&(o=c(t.charAt(r))<<18|c(t.charAt(r+1))<<12|c(t.charAt(r+2))<<6|c(t.charAt(r+3))))>>16),l((65280&o)>>8),l(255&o);return 2===a?l(255&(o=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===a&&(l((o=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),l(255&o)),i},t.fromByteArray=function(t){var e,r,n,u,o=t.length%3,a="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-o;e<n;e+=3)a+=i((u=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(u>>12&63)+i(u>>6&63)+i(63&u);switch(o){case 1:a+=i((r=t[t.length-1])>>2),a+=i(r<<4&63),a+="==";break;case 2:a+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),a+=i(r>>4&63),a+=i(r<<2&63),a+="="}return a}}(e)},741:t=>{function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(t,r){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=r,this.destLen=0,this.ltree=new e,this.dtree=new e}var n=new e,u=new e,o=new Uint8Array(30),a=new Uint16Array(30),i=new Uint8Array(30),s=new Uint16Array(30),c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new e,l=new Uint8Array(320);function h(t,e,r,n){var u,o;for(u=0;u<r;++u)t[u]=0;for(u=0;u<30-r;++u)t[u+r]=u/r|0;for(o=n,u=0;u<30;++u)e[u]=o,o+=1<<t[u]}var d=new Uint16Array(16);function b(t,e,r,n){var u,o;for(u=0;u<16;++u)t.table[u]=0;for(u=0;u<n;++u)t.table[e[r+u]]++;for(t.table[0]=0,o=0,u=0;u<16;++u)d[u]=o,o+=t.table[u];for(u=0;u<n;++u)e[r+u]&&(t.trans[d[e[r+u]]++]=u)}function p(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=1&t.tag;return t.tag>>>=1,e}function v(t,e,r){if(!e)return r;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var n=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,n+r}function y(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var r=0,n=0,u=0,o=t.tag;do{n=2*n+(1&o),o>>>=1,++u,r+=e.table[u],n-=e.table[u]}while(n>=0);return t.tag=o,t.bitcount-=u,e.trans[r+n]}function D(t,e,r){var n,u,o,a,i,s;for(n=v(t,5,257),u=v(t,5,1),o=v(t,4,4),a=0;a<19;++a)l[a]=0;for(a=0;a<o;++a){var h=v(t,3,0);l[c[a]]=h}for(b(f,l,0,19),i=0;i<n+u;){var d=y(t,f);switch(d){case 16:var p=l[i-1];for(s=v(t,2,3);s;--s)l[i++]=p;break;case 17:for(s=v(t,3,3);s;--s)l[i++]=0;break;case 18:for(s=v(t,7,11);s;--s)l[i++]=0;break;default:l[i++]=d}}b(e,l,0,n),b(r,l,n,u)}function F(t,e,r){for(;;){var n,u,c,f,l=y(t,e);if(256===l)return 0;if(l<256)t.dest[t.destLen++]=l;else for(n=v(t,o[l-=257],a[l]),u=y(t,r),f=c=t.destLen-v(t,i[u],s[u]);f<c+n;++f)t.dest[t.destLen++]=t.dest[f]}}function g(t){for(var e,r;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if((e=256*(e=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return-3;for(t.sourceIndex+=4,r=e;r;--r)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,0}!function(t,e){var r;for(r=0;r<7;++r)t.table[r]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,r=0;r<24;++r)t.trans[r]=256+r;for(r=0;r<144;++r)t.trans[24+r]=r;for(r=0;r<8;++r)t.trans[168+r]=280+r;for(r=0;r<112;++r)t.trans[176+r]=144+r;for(r=0;r<5;++r)e.table[r]=0;for(e.table[5]=32,r=0;r<32;++r)e.trans[r]=r}(n,u),h(o,a,4,3),h(i,s,2,1),o[28]=0,a[28]=258,t.exports=function(t,e){var o,a,i=new r(t,e);do{switch(o=p(i),v(i,2,0)){case 0:a=g(i);break;case 1:a=F(i,n,u);break;case 2:D(i,i.ltree,i.dtree),a=F(i,i.ltree,i.dtree);break;default:a=-3}if(0!==a)throw new Error("Data error")}while(!o);return i.destLen<i.dest.length?"function"==typeof i.dest.slice?i.dest.slice(0,i.destLen):i.dest.subarray(0,i.destLen):i.dest}},667:(t,e,r)=>{const n=r(741),{swap32LE:u}=r(288);t.exports=class{constructor(t){const e="function"==typeof t.readUInt32BE&&"function"==typeof t.slice;if(e||t instanceof Uint8Array){let r;if(e)this.highStart=t.readUInt32LE(0),this.errorValue=t.readUInt32LE(4),r=t.readUInt32LE(8),t=t.slice(12);else{const e=new DataView(t.buffer);this.highStart=e.getUint32(0,!0),this.errorValue=e.getUint32(4,!0),r=e.getUint32(8,!0),t=t.subarray(12)}t=n(t,new Uint8Array(r)),t=n(t,new Uint8Array(r)),u(t),this.data=new Uint32Array(t.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=t)}get(t){let e;return t<0||t>1114111?this.errorValue:t<55296||t>56319&&t<=65535?(e=(this.data[t>>5]<<2)+(31&t),this.data[e]):t<=65535?(e=(this.data[2048+(t-55296>>5)]<<2)+(31&t),this.data[e]):t<this.highStart?(e=this.data[2080+(t>>11)],e=this.data[e+(t>>5&63)],e=(e<<2)+(31&t),this.data[e]):this.data[this.data.length-4]}}},288:t=>{const e=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=(t,e,r)=>{let n=t[e];t[e]=t[r],t[r]=n};t.exports={swap32LE:t=>{e&&(t=>{const e=t.length;for(let n=0;n<e;n+=4)r(t,n,n+3),r(t,n+1,n+2)})(t)}}}},e={};function r(n){var u=e[n];if(void 0!==u)return u.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};return(()=>{"use strict";r.d(n,{default:()=>Q});var t=window;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function u(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function o(t){var r=function(t,r){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var u=n.call(t,"string");if("object"!=e(u))return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:String(r)}var a,i=function(){function e(r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.replaceNode=function(e,r){var n=t.document.createRange();n.selectNode(e);var u=n.createContextualFragment(r);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.removeChild(e))},this.transformFunctions=r,this.options=n}var r,n;return r=e,(n=[{key:"processHtmlWithFunctions",value:function(t){var e=this;return""===t?t:this.transformFunctions.reduce((function(t,r){return e.processHtml(t,r)}),t)}},{key:"processHtml",value:function(t,e){var r=this;if(""===t)return t;var n=s(t),u=c(n.body);return u.forEach((function(t,n){var o=u[n+1]||null,a=r.getTransformedHtml(t,o,e);r.replaceNode(t,a)})),n.body.innerHTML}},{key:"getTransformedHtml",value:function(t,e,r){return r(t.nodeValue||"",e&&e.nodeValue||"",this.options)}}])&&u(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),e}(),s=function(e){return(new t.DOMParser).parseFromString(e,"text/html")},c=function(e){for(var r=t.document.createTreeWalker(e,t.NodeFilter.SHOW_TEXT),n=r.nextNode(),u=[];n;)n.nodeValue&&""!==n.nodeValue.trim()&&u.push(n),n=r.nextNode();return u},f=i,l=r(667),h=r(954);const d=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],b=new l(h.toByteArray("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")),p=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},v=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class y{constructor(t,e=!1){this.position=t,this.required=e}}a=class{nextCodePoint(){const t=this.string.charCodeAt(this.pos++),e=this.string.charCodeAt(this.pos);return 55296<=t&&t<=56319&&56320<=e&&e<=57343?(this.pos++,1024*(t-55296)+(e-56320)+65536):t}nextCharClass(){return p(b.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(t){let e=!1;switch(d[this.curClass][this.nextClass]){case 0:e=!0;break;case 1:e=41===t;break;case 2:if(e=41===t,!e)return e=!1,e;break;case 3:if(41!==t)return e}return this.LB8a&&(e=!1),!this.LB21a||16!==this.curClass&&17!==this.curClass?this.LB21a=13===this.curClass:(e=!1,this.LB21a=!1),28===this.curClass?(this.LB30a++,2==this.LB30a&&28===this.nextClass&&(e=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,e}nextBreak(){if(null==this.curClass){let t=this.nextCharClass();this.curClass=v(t),this.nextClass=t,this.LB8a=31===t,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const t=this.nextClass;if(this.nextClass=this.nextCharClass(),34===this.curClass||36===this.curClass&&37!==this.nextClass)return this.curClass=v(p(this.nextClass)),new y(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new y(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new y(this.string.length)):null}constructor(t){this.string=t,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};var D=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB9\xBA\xBF-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2000-\u200A\u2018\u2019\u201C\u201D\u2028\u2029\u202F\u2030\u205F\u2070\u2071\u2074-\u208E\u2090-\u209C\u20AC\u20F0\u212A\u212B\u2132\u214E\u2160-\u2188\u2202\u2205\u220F\u2211\u2212\u221A\u221E\u222B\u2248\u2260\u2264\u2265\u2C60-\u2C7F\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uA92E\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFEFF\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A])+/g,F=/(?:[\|\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3001-\u3003\u3005-\u3011\u3013-\u301F\u3021-\u302D\u3030-\u3035\u3037-\u303F\u3041-\u3096\u3099-\u30FF\u3190-\u319F\u31C0-\u31E3\u31F0-\u31FF\u3220-\u3247\u3280-\u32B0\u32C0-\u32CB\u32D0-\u3370\u337B-\u337F\u33E0-\u33FE\u3400-\u4DBF\u4E00-\u9FFF\uA700-\uA707\uF900-\uFA6D\uFA70-\uFAD9\uFE45\uFE46\uFF61-\uFF9F]|\uD81B[\uDFE2\uDFE3\uDFF0\uDFF1]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67]|\uD834[\uDF60-\uDF71]|\uD83C[\uDE00\uDE50\uDE51]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])+/,g=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,A=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,w=/・|:|;/,m=/、|,/,P=/。|./,B=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),C=/[\s\u00A0]/,x={isLatin:function(t){return D.test(t)},isJapanese:function(t){return F.test(t)},hasLanguageTransition:function(t,e){return x.isJapanese(t)!==x.isJapanese(e)},shouldAddThinSpace:function(t,e){return x.hasLanguageTransition(t,e)&&(r=e,!new RegExp("^[".concat(P.source).concat(m.source,"]")).test(r));var r}},O="typeset",S=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",u=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(u).concat(n,">").concat(t,"</span>")},L=function(t,e,r,n){var u="letter-spacing: ".concat(r,";"),o=' data-content="'.concat(n?" ":"&nbsp;",'"');return S(t,e,u,o)},j=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},E=function(t,e){return!C.test(t)&&!C.test(e)&&(x.shouldAddThinSpace(t,e)||function(t,e){for(var r=new RegExp("(".concat(A.source,"|").concat(m.source,"|").concat(P.source,")")),n={spaceBefore:{regex:g,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:w,hasSpaceBefore:!0,hasSpaceAfter:!0}},u=0,o=Object.values(n);u<o.length;u++){var a=o[u],i=a.regex,s=a.hasSpaceBefore,c=a.hasSpaceAfter;if(s&&i.test(e)&&!i.test(t))return!0;if(c&&i.test(t)&&!i.test(e))return!0}return!1}(t,e))},X=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new a(r).nextBreak();return!!n&&1===n.position},H=function(t,e,r){var n=j(t),u=j(e);return n.reduce((function(t,e,n,o){return t+function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;if(!e)return t;var n,u=r.insertThinSpaces&&E(t,e),o=X(t,e);return u?t+function(t,e){var r="".concat(O,"-thin-space");return L("",r,t,e)}(null!==(n=r.thinSpaceWidth)&&void 0!==n?n:"",o):r.useWordBreak&&o?t+"<wbr>":t}(e,o[n+1]||u[0],r)}),"")};function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var W=function(t,e,r){return" "===t?t:(n=t,u=r.useWordBreak,o="".concat(O," ").concat(O,"-wrapper"),a="".concat(O,"-word-break"),i=u?"".concat(o," ").concat(a):o,S(n,i));var n,u,o,a,i},z=function(t,e,r){return" "===t?t:r.wrapLatin&&x.isLatin(t)?t.replace(D,(function(t){return e=t,r="".concat(O,"-latin"),S(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,B.test(n))?t.replace(B,(function(t){return e=t,r="".concat(O,"-no-breaks"),S(e,r);var e,r})):t;var n},T=function(t,e,r){var n,u=function(t){if(Array.isArray(t))return k(t)}(n=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return k(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?k(t,e):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return u.map((function(t,n){var o,a=u[n+1]||e[0]||"",i=null===(o=r.kerningRules)||void 0===o?void 0:o.find((function(e){return e.between[0]===t&&e.between[1]===a}));if(i){var s="number"==typeof i.value?i.value:parseInt(i.value,10),c=!r.useWordBreak&&X(t,a);return t+function(t,e){if(0===t)return"";var r="".concat(O,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return S("",r,n)}return L("",r,t/1e3+"em",e)}(s,c)}return t})).join("")};function U(t){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function V(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function N(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?V(Object(r),!0).forEach((function(e){var n,u,o;n=t,u=e,o=r[e],(u=Z(u))in n?Object.defineProperty(n,u,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[u]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function I(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Z(n.key),n)}}function Z(t){var e=function(t,e){if("object"!=U(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=U(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==U(e)?e:String(e)}function q(t,e,r){return e=K(e),function(t,e){if(e&&("object"===U(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,R()?Reflect.construct(e,r||[],K(t).constructor):e.apply(t,r))}function R(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(R=function(){return!!t})()}function K(t){return K=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},K(t)}function J(t,e){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},J(t,e)}var Q=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var e=void 0!==Intl.Segmenter;e||console.warn("Intl.Segmenter is not supported in this environment. \nTherefore, the options `useWordBreak` and `insertThinSpaces` will be ignored. \nFor more information about Intl.Segmenter, please visit:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter");var n=e?[W,H,z,T]:[z,T],u=r.validateOptions(t);return q(this,r,[n,u])}var n,u,o;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J(t,e)}(r,e),n=r,o=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(r.isValidKerningRule)),N(N({},r.getDefaultOptions()),t)}},{key:"isValidKerningRule",value:function(t){return 1===t.between[0].length&&1===t.between[1].length||(console.warn("Kerning rule between '".concat(t.between[0],"' and '").concat(t.between[1],"' must be single characters.")),!1)}}],(u=[{key:"render",value:function(t){return t?this.processHtmlWithFunctions(t):""}},{key:"renderToElements",value:function(t){var e=this;t&&(Array.isArray(t)||(t=[t]),t.forEach((function(t){var r=e.render(t.innerHTML);t.innerHTML=r})))}},{key:"renderToSelector",value:function(e){if(e){var r=t.document.querySelectorAll(e);this.renderToElements(Array.from(r))}}}])&&I(n.prototype,u),o&&I(n,o),Object.defineProperty(n,"prototype",{writable:!1}),r}(f)})(),n.default})()));
@@ -1,7 +1,7 @@
1
- import { isBreakable } from "./insert-separators";
2
- import { CharClass, LanguageClass } from "./util-text-classes";
3
- import { applyWrapperStyle, applyLatinStyle, applyNoBreaksStyle, createKerning } from "./util-tags";
4
- import * as util from "./util-regex";
1
+ import { isBreakable } from "./insert-separators.js";
2
+ import { CharClass, LanguageClass } from "./util-text-classes.js";
3
+ import { applyWrapperStyle, applyLatinStyle, applyNoBreaksStyle, createKerning } from "./util-tags.js";
4
+ import * as util from "./util-regex.js";
5
5
  const applyStyleToText = (currentNodeValue, nextNodeValue, options) => {
6
6
  if (currentNodeValue === " ") {
7
7
  return currentNodeValue;
@@ -24,7 +24,7 @@ const applyKerningToSegment = (currentSegment, nextSegment, options) => {
24
24
  const chars = [...currentSegment];
25
25
  const kernedChars = chars.map((currentChar, i) => {
26
26
  const nextChar = chars[i + 1] || nextSegment[0] || "";
27
- const kerningRule = options.kerningRules.find(
27
+ const kerningRule = options.kerningRules?.find(
28
28
  (rule) => rule.between[0] === currentChar && rule.between[1] === nextChar
29
29
  );
30
30
  if (kerningRule) {
@@ -1,4 +1,4 @@
1
- import win from "./win";
1
+ import win from "./win.js";
2
2
  class HTMLProcessor {
3
3
  constructor(transformFunctions, options) {
4
4
  /**
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import HTMLProcessor from './html-processor';
1
+ import HTMLProcessor from './html-processor.js';
2
2
  import type { TypesettingOptions } from '../types';
3
3
  declare class Typesetter extends HTMLProcessor {
4
- static getDefaultOptions(): TypesettingOptions;
5
- constructor(options?: Partial<TypesettingOptions>);
4
+ static getDefaultOptions(): Required<TypesettingOptions>;
5
+ constructor(options?: TypesettingOptions);
6
6
  private static validateOptions;
7
7
  private static isValidKerningRule;
8
8
  render(srcHtml: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAA;AAI5C,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,UAAU,CAAA;AAM/D,cAAM,UAAW,SAAQ,aAAa;IAIpC,MAAM,CAAC,iBAAiB,IAAI,kBAAkB;gBAWlC,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAgCrD,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiBjC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAY/B,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;IAmB5D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAMhD;AAED,eAAe,UAAU,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAI/C,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,UAAU,CAAA;AAM/D,cAAM,UAAW,SAAQ,aAAa;IAIpC,MAAM,CAAC,iBAAiB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;gBAW5C,OAAO,GAAE,kBAAuB;IAgC5C,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiBjC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAY/B,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;IAmB5D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAMhD;AAED,eAAe,UAAU,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import HTMLProcessor from "./html-processor";
2
- import insertSeparatorsToText from "./insert-separators";
3
- import { applyStyleToText, applyStyleToSegment, applyKerningToSegment } from "./apply-style";
4
- import win from "./win";
1
+ import HTMLProcessor from "./html-processor.js";
2
+ import insertSeparatorsToText from "./insert-separators.js";
3
+ import { applyStyleToText, applyStyleToSegment, applyKerningToSegment } from "./apply-style.js";
4
+ import win from "./win.js";
5
5
  class Typesetter extends HTMLProcessor {
6
6
  /**
7
7
  * Typesetter のデフォルトの設定を返します。
@@ -1 +1 @@
1
- {"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAS7C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAG3C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,MAezF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAI3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OAKpD,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAS7C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAG3C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,MAgBzF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAI3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OAKpD,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import LineBreaker from "linebreak";
2
- import { CharClass, LanguageClass } from "./util-text-classes";
3
- import { createWbr, createThinSpace } from "./util-tags";
4
- import { whitespaceRegex } from "./util-regex";
2
+ import { CharClass, LanguageClass } from "./util-text-classes.js";
3
+ import { createWbr, createThinSpace } from "./util-tags.js";
4
+ import { whitespaceRegex } from "./util-regex.js";
5
5
  const insertSeparatorsToText = (currentText, nextText, options) => {
6
6
  const currentSegments = createSegments(currentText);
7
7
  const nextSegments = createSegments(nextText);
@@ -22,7 +22,8 @@ const addSeparatorsToSegment = (current, next = "", options) => {
22
22
  const addThinSpace = options.insertThinSpaces && shouldAddThinSpace(current, next);
23
23
  const breakable = isBreakable(current, next);
24
24
  if (addThinSpace) {
25
- return current + createThinSpace(options.thinSpaceWidth, breakable);
25
+ const thinSpaceWidth = options.thinSpaceWidth ?? "";
26
+ return current + createThinSpace(thinSpaceWidth, breakable);
26
27
  }
27
28
  if (options.useWordBreak && breakable) {
28
29
  return current + createWbr();
@@ -1,8 +1,7 @@
1
- import './style/typesetting.css';
2
1
  declare const createWbr: () => string;
3
2
  declare const createThinSpace: (thinSpaceWidth: string, breakable?: boolean) => string;
4
3
  declare const createKerning: (kerningValue: number, breakable?: boolean) => string;
5
- declare const applyWrapperStyle: (text: string, useWordBreak: boolean) => string;
4
+ declare const applyWrapperStyle: (text: string, useWordBreak?: boolean) => string;
6
5
  declare const applyLatinStyle: (segment: string) => string;
7
6
  declare const applyNoBreaksStyle: (segment: string) => string;
8
7
  export { createWbr, createThinSpace, createKerning, applyWrapperStyle, applyLatinStyle, applyNoBreaksStyle };
@@ -1 +1 @@
1
- {"version":3,"file":"util-tags.d.ts","sourceRoot":"","sources":["../src/util-tags.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA;AAQhC,QAAA,MAAM,SAAS,QAAO,MAErB,CAAA;AAQD,QAAA,MAAM,eAAe,mBAAoB,MAAM,cAAc,OAAO,KAAG,MAItE,CAAA;AASD,QAAA,MAAM,aAAa,iBAAkB,MAAM,cAAc,OAAO,KAAG,MAclE,CAAA;AAQD,QAAA,MAAM,iBAAiB,SAAU,MAAM,gBAAgB,OAAO,KAAG,MAKhE,CAAA;AAOD,QAAA,MAAM,eAAe,YAAa,MAAM,KAAG,MAG1C,CAAA;AAOD,QAAA,MAAM,kBAAkB,YAAa,MAAM,KAAG,MAG7C,CAAA;AAkCD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"util-tags.d.ts","sourceRoot":"","sources":["../src/util-tags.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,SAAS,QAAO,MAErB,CAAA;AAQD,QAAA,MAAM,eAAe,mBAAoB,MAAM,cAAc,OAAO,KAAG,MAItE,CAAA;AASD,QAAA,MAAM,aAAa,iBAAkB,MAAM,cAAc,OAAO,KAAG,MAclE,CAAA;AAQD,QAAA,MAAM,iBAAiB,SAAU,MAAM,iBAAiB,OAAO,KAAG,MAMjE,CAAA;AAOD,QAAA,MAAM,eAAe,YAAa,MAAM,KAAG,MAG1C,CAAA;AAOD,QAAA,MAAM,kBAAkB,YAAa,MAAM,KAAG,MAG7C,CAAA;AAkCD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
package/dist/util-tags.js CHANGED
@@ -1,4 +1,3 @@
1
- import "./style/typesetting.css";
2
1
  const prefix = "typeset";
3
2
  const createWbr = () => {
4
3
  return "<wbr>";
@@ -23,7 +22,7 @@ const createKerning = (kerningValue, breakable) => {
23
22
  }
24
23
  };
25
24
  const applyWrapperStyle = (text, useWordBreak) => {
26
- const wrapperName = prefix;
25
+ const wrapperName = `${prefix} ${prefix}-wrapper`;
27
26
  const wordBreakName = `${prefix}-word-break`;
28
27
  const className = useWordBreak ? `${wrapperName} ${wordBreakName}` : wrapperName;
29
28
  return createStyledSpan(text, className);
@@ -1,4 +1,4 @@
1
- import * as util from "./util-regex";
1
+ import * as util from "./util-regex.js";
2
2
  const CharClass = {
3
3
  /**
4
4
  * セグメントが分離禁則文字で構成されているかどうかを判定します。
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "palt-typesetting",
3
- "version": "0.5.3",
3
+ "version": "0.6.2",
4
4
  "description": "A typesetting library.",
5
+ "type": "module",
5
6
  "main": "./dist/index.js",
6
7
  "types": "./dist/index.d.ts",
7
8
  "files": [
@@ -14,12 +15,14 @@
14
15
  "url": "https://github.com/yamatoiizuka/palt-typesetting.git"
15
16
  },
16
17
  "scripts": {
17
- "clean:dist": "rm -rf ./dist",
18
- "copy:css": "mkdir -p ./dist/style && cp -R ./src/style/* ./dist/style",
19
- "prebuild": "npm run clean:dist && npm run copy:css",
20
- "build": "node ./scripts/build.js && webpack",
18
+ "clean": "rm -rf ./dist && rm -rf ./bundle",
19
+ "copy:css": "mkdir ./dist && cp -R ./src/*.css ./dist/",
20
+ "prebuild": "npm run clean && npm run copy:css",
21
+ "bundle:css": "mkdir ./bundle && cleancss -o ./bundle/typesetter.min.css ./src/*.css",
22
+ "bundle": "npm run bundle:css && webpack",
23
+ "build": "node ./scripts/build.js && npm run bundle",
21
24
  "test": "vitest",
22
- "lint": "eslint ./src/** --no-error-on-unmatched-pattern",
25
+ "lint": "eslint \"./src/**/*.ts\" --no-error-on-unmatched-pattern",
23
26
  "lint:fix": "eslint ./src/** --fix"
24
27
  },
25
28
  "author": {
@@ -43,6 +46,7 @@
43
46
  "@typescript-eslint/parser": "^7.1.0",
44
47
  "babel-jest": "^29.7.0",
45
48
  "babel-loader": "^9.1.3",
49
+ "clean-css-cli": "^5.6.3",
46
50
  "css-loader": "^6.10.0",
47
51
  "esbuild": "^0.20.1",
48
52
  "eslint": "^8",
package/types/index.d.ts CHANGED
@@ -16,38 +16,38 @@ export interface TypesettingOptions {
16
16
  * HTML内のテキストにWBRタグを自動的に追加するかどうかを指定します。
17
17
  * WBRタグは、必要に応じて改行の挿入を許可するために使用されます。
18
18
  */
19
- useWordBreak: boolean
19
+ useWordBreak?: boolean
20
20
 
21
21
  /**
22
22
  * 英数を .typeset-latin でラップします。
23
23
  * useWordBreak が true の場合にのみ有効です。
24
24
  */
25
- wrapLatin: boolean
25
+ wrapLatin?: boolean
26
26
 
27
27
  /**
28
28
  * 分離禁則文字を .typeset-nobreaks でラップし、文字間を 0 に設定します。
29
29
  * useWordBreak が true の場合にのみ有効です。
30
30
  */
31
- noSpaceBetweenNoBreaks: boolean
31
+ noSpaceBetweenNoBreaks?: boolean
32
32
 
33
33
  /**
34
- * HTML内のテキストにTHIN SPACEを自動的に挿入するかどうかを指定します。
35
- * THIN SPACEは、視覚的なスペースを微調整するために使用されます。
34
+ * HTML内のテキストに四分アキを自動的に挿入するかどうかを指定します。
35
+ * 四分アキは、視覚的なスペースを微調整するために使用されます。
36
36
  */
37
- insertThinSpaces: boolean
37
+ insertThinSpaces?: boolean
38
38
 
39
39
  /**
40
- * THIN SPACEの幅を指定します。
41
- * 例えば'20%'と指定すると、THIN SPACEは通常のスペースの20%の幅になります。
40
+ * 四分アキの幅を指定します。
41
+ * 例えば'20%'と指定すると、四分アキは通常のスペースの20%の幅になります。
42
42
  * insertThinSpaces が true の場合のみ有効です。
43
43
  */
44
- thinSpaceWidth: string
44
+ thinSpaceWidth?: string
45
45
 
46
46
  /**
47
47
  * カーニングを適用するためのルールのリスト。
48
48
  * 各ルールは、特定の文字ペア間に適用されるカーニング値を指定します。
49
49
  */
50
- kerningRules: KerningRule[]
50
+ kerningRules?: KerningRule[]
51
51
  }
52
52
 
53
53
  /**