@wordpress/element 5.6.0 → 5.8.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 5.8.0 (2023-04-12)
6
+
7
+ ## 5.7.0 (2023-03-29)
8
+
5
9
  ## 5.6.0 (2023-03-15)
6
10
 
7
11
  ## 5.5.0 (2023-03-01)
package/README.md CHANGED
@@ -25,23 +25,33 @@ _This package assumes that your code will run in an **ES2015+** environment. If
25
25
 
26
26
  ## Usage
27
27
 
28
- Let's render a customized greeting into an empty element:
28
+ Let's render a customized greeting into an empty element.
29
+
30
+ **Note:** `createRoot` was introduced with React 18, which is bundled with WordPress 6.2. Therefore it may be necessary to mount your component depending on which version of WordPress (and therefore React) you are currently using. This is possible by checking for an undefined import and falling back to the React 17 method of mounting an app using `render`.
31
+
32
+ Assuming the following root element is present in the page:
29
33
 
30
34
  ```html
31
35
  <div id="greeting"></div>
32
- <script>
33
- function Greeting( props ) {
34
- return wp.element.createElement(
35
- 'span',
36
- null,
37
- 'Hello ' + props.toWhom + '!'
38
- );
39
- }
40
-
41
- wp.element
42
- .createRoot( document.getElementById( 'greeting' ) )
43
- .render( wp.element.createElement( Greeting, { toWhom: 'World' } ) );
44
- </script>
36
+ ```
37
+
38
+ We can mount our app:
39
+
40
+ ```js
41
+ import { createRoot, render, createElement } from '@wordpress/element';
42
+
43
+ function Greeting( props ) {
44
+ return createElement( 'span', null, 'Hello ' + props.toWhom + '!' );
45
+ }
46
+
47
+ const domElement = document.getElementById( 'greeting' );
48
+ const uiElement = createElement( Greeting, { toWhom: 'World' } );
49
+
50
+ if ( createRoot ) {
51
+ createRoot( domElement ).render( uiElement );
52
+ } else {
53
+ render( uiElement, domElement );
54
+ }
45
55
  ```
46
56
 
47
57
  Refer to the [official React Quick Start guide](https://reactjs.org/docs/hello-world.html) for a more thorough walkthrough, in most cases substituting `React` and `ReactDOM` with `wp.element` in code examples.
@@ -129,8 +139,7 @@ _Returns_
129
139
 
130
140
  ### createElement
131
141
 
132
- Returns a new element of given type. Type can be either a string tag name or
133
- another function which itself returns an element.
142
+ Returns a new element of given type. Type can be either a string tag name or another function which itself returns an element.
134
143
 
135
144
  _Parameters_
136
145
 
@@ -144,9 +153,7 @@ _Returns_
144
153
 
145
154
  ### createInterpolateElement
146
155
 
147
- This function creates an interpolated element from a passed in string with
148
- specific tags matching how the string should be converted to an element via
149
- the conversion map value.
156
+ This function creates an interpolated element from a passed in string with specific tags matching how the string should be converted to an element via the conversion map value.
150
157
 
151
158
  _Usage_
152
159
 
@@ -168,7 +175,7 @@ You would have something like this as the conversionMap value:
168
175
  _Parameters_
169
176
 
170
177
  - _interpolatedString_ `string`: The interpolation string to be parsed.
171
- - _conversionMap_ `Object`: The map used to convert the string to a react element.
178
+ - _conversionMap_ `Record<string, WPElement>`: The map used to convert the string to a react element.
172
179
 
173
180
  _Returns_
174
181
 
@@ -189,9 +196,7 @@ _Parameters_
189
196
 
190
197
  ### createRef
191
198
 
192
- Returns an object tracking a reference to a rendered element via its
193
- `current` property as either a DOMElement or Element, dependent upon the
194
- type of element rendered with the ref attribute.
199
+ Returns an object tracking a reference to a rendered element via its `current` property as either a DOMElement or Element, dependent upon the type of element rendered with the ref attribute.
195
200
 
196
201
  _Returns_
197
202
 
@@ -203,7 +208,11 @@ Creates a new React root for the target DOM node.
203
208
 
204
209
  _Related_
205
210
 
206
- - <https://reactjs.org/docs/react-dom-client.html#createroot>
211
+ - <https://react.dev/reference/react-dom/client/createRoot>
212
+
213
+ _Changelog_
214
+
215
+ `6.2.0` Introduced in WordPress core.
207
216
 
208
217
  ### findDOMNode
209
218
 
@@ -223,10 +232,7 @@ _Parameters_
223
232
 
224
233
  ### forwardRef
225
234
 
226
- Component enhancer used to enable passing a ref to its wrapped component.
227
- Pass a function argument which receives `props` and `ref` as its arguments,
228
- returning an element using the forwarded ref. The return value is a new
229
- component which forwards its ref.
235
+ Component enhancer used to enable passing a ref to its wrapped component. Pass a function argument which receives `props` and `ref` as its arguments, returning an element using the forwarded ref. The return value is a new component which forwards its ref.
230
236
 
231
237
  _Parameters_
232
238
 
@@ -242,12 +248,13 @@ A component which renders its children without any wrapping element.
242
248
 
243
249
  ### hydrate
244
250
 
251
+ > **Deprecated** since WordPress 6.2.0. Use `hydrateRoot` instead.
252
+
245
253
  Hydrates a given element into the target DOM node.
246
254
 
247
- _Parameters_
255
+ _Related_
248
256
 
249
- - _element_ `import('./react').WPElement`: Element to hydrate.
250
- - _target_ `HTMLElement`: DOM node into which element should be hydrated.
257
+ - <https://react.dev/reference/react-dom/hydrate>
251
258
 
252
259
  ### hydrateRoot
253
260
 
@@ -255,7 +262,11 @@ Creates a new React root for the target DOM node and hydrates it with a pre-gene
255
262
 
256
263
  _Related_
257
264
 
258
- - <https://reactjs.org/docs/react-dom-client.html#hydrateroot>
265
+ - <https://react.dev/reference/react-dom/client/hydrateRoot>
266
+
267
+ _Changelog_
268
+
269
+ `6.2.0` Introduced in WordPress core.
259
270
 
260
271
  ### isEmptyElement
261
272
 
@@ -295,8 +306,7 @@ _Related_
295
306
 
296
307
  ### Platform
297
308
 
298
- Component used to detect the current Platform being used.
299
- Use Platform.OS === 'web' to detect if running on web enviroment.
309
+ Component used to detect the current Platform being used. Use Platform.OS === 'web' to detect if running on web enviroment.
300
310
 
301
311
  This is the same concept as the React Native implementation.
302
312
 
@@ -319,10 +329,7 @@ const placeholderLabel = Platform.select( {
319
329
 
320
330
  ### RawHTML
321
331
 
322
- Component used as equivalent of Fragment with unescaped HTML, in cases where
323
- it is desirable to render dangerous HTML without needing a wrapper element.
324
- To preserve additional props, a `div` wrapper _will_ be created if any props
325
- aside from `children` are passed.
332
+ Component used as equivalent of Fragment with unescaped HTML, in cases where it is desirable to render dangerous HTML without needing a wrapper element. To preserve additional props, a `div` wrapper _will_ be created if any props aside from `children` are passed.
326
333
 
327
334
  _Parameters_
328
335
 
@@ -334,12 +341,13 @@ _Returns_
334
341
 
335
342
  ### render
336
343
 
344
+ > **Deprecated** since WordPress 6.2.0. Use `createRoot` instead.
345
+
337
346
  Renders a given element into the target DOM node.
338
347
 
339
- _Parameters_
348
+ _Related_
340
349
 
341
- - _element_ `import('./react').WPElement`: Element to render.
342
- - _target_ `HTMLElement`: DOM node into which element should be rendered.
350
+ - <https://react.dev/reference/react-dom/render>
343
351
 
344
352
  ### renderToString
345
353
 
@@ -386,11 +394,13 @@ _Returns_
386
394
 
387
395
  ### unmountComponentAtNode
388
396
 
397
+ > **Deprecated** since WordPress 6.2.0. Use `root.unmount()` instead.
398
+
389
399
  Removes any mounted element from the target DOM node.
390
400
 
391
- _Parameters_
401
+ _Related_
392
402
 
393
- - _target_ `Element`: DOM node in which element is to be removed
403
+ - <https://react.dev/reference/react-dom/unmountComponentAtNode>
394
404
 
395
405
  ### useCallback
396
406
 
@@ -101,9 +101,9 @@ function createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextSt
101
101
  * }
102
102
  * ```
103
103
  *
104
- * @param {string} interpolatedString The interpolation string to be parsed.
105
- * @param {Object} conversionMap The map used to convert the string to
106
- * a react element.
104
+ * @param {string} interpolatedString The interpolation string to be parsed.
105
+ * @param {Record<string, WPElement>} conversionMap The map used to convert the string to
106
+ * a react element.
107
107
  * @throws {TypeError}
108
108
  * @return {WPElement} A wp element.
109
109
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/element/src/create-interpolate-element.js"],"names":["indoc","offset","output","stack","tokenizer","createFrame","element","tokenStart","tokenLength","prevOffset","leadingTextStart","children","createInterpolateElement","interpolatedString","conversionMap","lastIndex","isValidConversionMap","TypeError","proceed","Fragment","isObject","values","Object","length","every","next","nextToken","tokenType","name","startOffset","stackDepth","addText","stackLeadingText","pop","push","substr","addChild","closeOuterElement","stackTop","text","frame","matches","exec","startedAt","index","match","isClosing","isSelfClosed","parent","endOffset"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AAEA,IAAIA,KAAJ,EAAWC,MAAX,EAAmBC,MAAnB,EAA2BC,KAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,SAAS,GAAG,uBAAlB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT,CACCC,OADD,EAECC,UAFD,EAGCC,WAHD,EAICC,UAJD,EAKCC,gBALD,EAME;AACD,SAAO;AACNJ,IAAAA,OADM;AAENC,IAAAA,UAFM;AAGNC,IAAAA,WAHM;AAINC,IAAAA,UAJM;AAKNC,IAAAA,gBALM;AAMNC,IAAAA,QAAQ,EAAE;AANJ,GAAP;AAQA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,wBAAwB,GAAG,CAAEC,kBAAF,EAAsBC,aAAtB,KAAyC;AACzEd,EAAAA,KAAK,GAAGa,kBAAR;AACAZ,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,MAAM,GAAG,EAAT;AACAC,EAAAA,KAAK,GAAG,EAAR;AACAC,EAAAA,SAAS,CAACW,SAAV,GAAsB,CAAtB;;AAEA,MAAK,CAAEC,oBAAoB,CAAEF,aAAF,CAA3B,EAA+C;AAC9C,UAAM,IAAIG,SAAJ,CACL,+FADK,CAAN;AAGA;;AAED,KAAG,CACF;AACA,GAFD,QAEUC,OAAO,CAAEJ,aAAF,CAFjB;;AAGA,SAAO,0BAAeK,eAAf,EAAyB,IAAzB,EAA+B,GAAGjB,MAAlC,CAAP;AACA,CAjBD;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMc,oBAAoB,GAAKF,aAAF,IAAqB;AACjD,QAAMM,QAAQ,GAAG,OAAON,aAAP,KAAyB,QAA1C;AACA,QAAMO,MAAM,GAAGD,QAAQ,IAAIE,MAAM,CAACD,MAAP,CAAeP,aAAf,CAA3B;AACA,SACCM,QAAQ,IACRC,MAAM,CAACE,MADP,IAEAF,MAAM,CAACG,KAAP,CAAgBlB,OAAF,IAAe,2BAAgBA,OAAhB,CAA7B,CAHD;AAKA,CARD;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASY,OAAT,CAAkBJ,aAAlB,EAAkC;AACjC,QAAMW,IAAI,GAAGC,SAAS,EAAtB;AACA,QAAM,CAAEC,SAAF,EAAaC,IAAb,EAAmBC,WAAnB,EAAgCrB,WAAhC,IAAgDiB,IAAtD;AACA,QAAMK,UAAU,GAAG3B,KAAK,CAACoB,MAAzB;AACA,QAAMb,gBAAgB,GAAGmB,WAAW,GAAG5B,MAAd,GAAuBA,MAAvB,GAAgC,IAAzD;;AACA,MAAK,CAAEa,aAAa,CAAEc,IAAF,CAApB,EAA+B;AAC9BG,IAAAA,OAAO;AACP,WAAO,KAAP;AACA;;AACD,UAASJ,SAAT;AACC,SAAK,gBAAL;AACC,UAAKG,UAAU,KAAK,CAApB,EAAwB;AACvB,cAAM;AAAEpB,UAAAA,gBAAgB,EAAEsB,gBAApB;AAAsCzB,UAAAA;AAAtC,YACLJ,KAAK,CAAC8B,GAAN,EADD;AAEA/B,QAAAA,MAAM,CAACgC,IAAP,CAAalC,KAAK,CAACmC,MAAN,CAAcH,gBAAd,EAAgCzB,UAAhC,CAAb;AACA;;AACDwB,MAAAA,OAAO;AACP,aAAO,KAAP;;AAED,SAAK,aAAL;AACC,UAAK,MAAMD,UAAX,EAAwB;AACvB,YAAK,SAASpB,gBAAd,EAAiC;AAChCR,UAAAA,MAAM,CAACgC,IAAP,CACClC,KAAK,CAACmC,MAAN,CACCzB,gBADD,EAECmB,WAAW,GAAGnB,gBAFf,CADD;AAMA;;AACDR,QAAAA,MAAM,CAACgC,IAAP,CAAapB,aAAa,CAAEc,IAAF,CAA1B;AACA3B,QAAAA,MAAM,GAAG4B,WAAW,GAAGrB,WAAvB;AACA,eAAO,IAAP;AACA,OAbF,CAeC;;;AACA4B,MAAAA,QAAQ,CACP/B,WAAW,CAAES,aAAa,CAAEc,IAAF,CAAf,EAAyBC,WAAzB,EAAsCrB,WAAtC,CADJ,CAAR;AAGAP,MAAAA,MAAM,GAAG4B,WAAW,GAAGrB,WAAvB;AACA,aAAO,IAAP;;AAED,SAAK,QAAL;AACCL,MAAAA,KAAK,CAAC+B,IAAN,CACC7B,WAAW,CACVS,aAAa,CAAEc,IAAF,CADH,EAEVC,WAFU,EAGVrB,WAHU,EAIVqB,WAAW,GAAGrB,WAJJ,EAKVE,gBALU,CADZ;AASAT,MAAAA,MAAM,GAAG4B,WAAW,GAAGrB,WAAvB;AACA,aAAO,IAAP;;AAED,SAAK,QAAL;AACC;AACA,UAAK,MAAMsB,UAAX,EAAwB;AACvBO,QAAAA,iBAAiB,CAAER,WAAF,CAAjB;AACA5B,QAAAA,MAAM,GAAG4B,WAAW,GAAGrB,WAAvB;AACA,eAAO,IAAP;AACA,OANF,CAQC;AACA;;;AACA,YAAM8B,QAAQ,GAAGnC,KAAK,CAAC8B,GAAN,EAAjB;AACA,YAAMM,IAAI,GAAGvC,KAAK,CAACmC,MAAN,CACZG,QAAQ,CAAC7B,UADG,EAEZoB,WAAW,GAAGS,QAAQ,CAAC7B,UAFX,CAAb;AAIA6B,MAAAA,QAAQ,CAAC3B,QAAT,CAAkBuB,IAAlB,CAAwBK,IAAxB;AACAD,MAAAA,QAAQ,CAAC7B,UAAT,GAAsBoB,WAAW,GAAGrB,WAApC;AACA,YAAMgC,KAAK,GAAGnC,WAAW,CACxBiC,QAAQ,CAAChC,OADe,EAExBgC,QAAQ,CAAC/B,UAFe,EAGxB+B,QAAQ,CAAC9B,WAHe,EAIxBqB,WAAW,GAAGrB,WAJU,CAAzB;AAMAgC,MAAAA,KAAK,CAAC7B,QAAN,GAAiB2B,QAAQ,CAAC3B,QAA1B;AACAyB,MAAAA,QAAQ,CAAEI,KAAF,CAAR;AACAvC,MAAAA,MAAM,GAAG4B,WAAW,GAAGrB,WAAvB;AACA,aAAO,IAAP;;AAED;AACCuB,MAAAA,OAAO;AACP,aAAO,KAAP;AA3EF;AA6EA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASL,SAAT,GAAqB;AACpB,QAAMe,OAAO,GAAGrC,SAAS,CAACsC,IAAV,CAAgB1C,KAAhB,CAAhB,CADoB,CAEpB;;AACA,MAAK,SAASyC,OAAd,EAAwB;AACvB,WAAO,CAAE,gBAAF,CAAP;AACA;;AACD,QAAME,SAAS,GAAGF,OAAO,CAACG,KAA1B;AACA,QAAM,CAAEC,KAAF,EAASC,SAAT,EAAoBlB,IAApB,EAA0BmB,YAA1B,IAA2CN,OAAjD;AACA,QAAMlB,MAAM,GAAGsB,KAAK,CAACtB,MAArB;;AACA,MAAKwB,YAAL,EAAoB;AACnB,WAAO,CAAE,aAAF,EAAiBnB,IAAjB,EAAuBe,SAAvB,EAAkCpB,MAAlC,CAAP;AACA;;AACD,MAAKuB,SAAL,EAAiB;AAChB,WAAO,CAAE,QAAF,EAAYlB,IAAZ,EAAkBe,SAAlB,EAA6BpB,MAA7B,CAAP;AACA;;AACD,SAAO,CAAE,QAAF,EAAYK,IAAZ,EAAkBe,SAAlB,EAA6BpB,MAA7B,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,OAAT,GAAmB;AAClB,QAAMR,MAAM,GAAGvB,KAAK,CAACuB,MAAN,GAAetB,MAA9B;;AACA,MAAK,MAAMsB,MAAX,EAAoB;AACnB;AACA;;AACDrB,EAAAA,MAAM,CAACgC,IAAP,CAAalC,KAAK,CAACmC,MAAN,CAAclC,MAAd,EAAsBsB,MAAtB,CAAb;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASa,QAAT,CAAmBI,KAAnB,EAA2B;AAC1B,QAAM;AAAElC,IAAAA,OAAF;AAAWC,IAAAA,UAAX;AAAuBC,IAAAA,WAAvB;AAAoCC,IAAAA,UAApC;AAAgDE,IAAAA;AAAhD,MAA6D6B,KAAnE;AACA,QAAMQ,MAAM,GAAG7C,KAAK,CAAEA,KAAK,CAACoB,MAAN,GAAe,CAAjB,CAApB;AACA,QAAMgB,IAAI,GAAGvC,KAAK,CAACmC,MAAN,CACZa,MAAM,CAACvC,UADK,EAEZF,UAAU,GAAGyC,MAAM,CAACvC,UAFR,CAAb;;AAKA,MAAK8B,IAAL,EAAY;AACXS,IAAAA,MAAM,CAACrC,QAAP,CAAgBuB,IAAhB,CAAsBK,IAAtB;AACA;;AAEDS,EAAAA,MAAM,CAACrC,QAAP,CAAgBuB,IAAhB,CAAsB,yBAAc5B,OAAd,EAAuB,IAAvB,EAA6B,GAAGK,QAAhC,CAAtB;AACAqC,EAAAA,MAAM,CAACvC,UAAP,GAAoBA,UAAU,GAAGA,UAAH,GAAgBF,UAAU,GAAGC,WAA3D;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6B,iBAAT,CAA4BY,SAA5B,EAAwC;AACvC,QAAM;AAAE3C,IAAAA,OAAF;AAAWI,IAAAA,gBAAX;AAA6BD,IAAAA,UAA7B;AAAyCF,IAAAA,UAAzC;AAAqDI,IAAAA;AAArD,MACLR,KAAK,CAAC8B,GAAN,EADD;AAGA,QAAMM,IAAI,GAAGU,SAAS,GACnBjD,KAAK,CAACmC,MAAN,CAAc1B,UAAd,EAA0BwC,SAAS,GAAGxC,UAAtC,CADmB,GAEnBT,KAAK,CAACmC,MAAN,CAAc1B,UAAd,CAFH;;AAIA,MAAK8B,IAAL,EAAY;AACX5B,IAAAA,QAAQ,CAACuB,IAAT,CAAeK,IAAf;AACA;;AAED,MAAK,SAAS7B,gBAAd,EAAiC;AAChCR,IAAAA,MAAM,CAACgC,IAAP,CACClC,KAAK,CAACmC,MAAN,CAAczB,gBAAd,EAAgCH,UAAU,GAAGG,gBAA7C,CADD;AAGA;;AAEDR,EAAAA,MAAM,CAACgC,IAAP,CAAa,yBAAc5B,OAAd,EAAuB,IAAvB,EAA6B,GAAGK,QAAhC,CAAb;AACA;;eAEcC,wB","sourcesContent":["/**\n * Internal dependencies\n */\nimport { createElement, cloneElement, Fragment, isValidElement } from './react';\n\n/** @typedef {import('./react').WPElement} WPElement */\n\nlet indoc, offset, output, stack;\n\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, if it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\nconst tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element A parent element which may still have\n * @property {number} tokenStart Offset at which parent element first\n * appears.\n * @property {number} tokenLength Length of string marking start of parent\n * element.\n * @property {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @property {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n * @property {WPElement[]} children Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element A parent element which may still have\n * nested children not yet parsed.\n * @param {number} tokenStart Offset at which parent element first\n * appears.\n * @param {number} tokenLength Length of string marking start of parent\n * element.\n * @param {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @param {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\nfunction createFrame(\n\telement,\n\ttokenStart,\n\ttokenLength,\n\tprevOffset,\n\tleadingTextStart\n) {\n\treturn {\n\t\telement,\n\t\ttokenStart,\n\t\ttokenLength,\n\t\tprevOffset,\n\t\tleadingTextStart,\n\t\tchildren: [],\n\t};\n}\n\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n * span: <span />,\n * a: <a href={ 'https://github.com' } />,\n * CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string} interpolatedString The interpolation string to be parsed.\n * @param {Object} conversionMap The map used to convert the string to\n * a react element.\n * @throws {TypeError}\n * @return {WPElement} A wp element.\n */\nconst createInterpolateElement = ( interpolatedString, conversionMap ) => {\n\tindoc = interpolatedString;\n\toffset = 0;\n\toutput = [];\n\tstack = [];\n\ttokenizer.lastIndex = 0;\n\n\tif ( ! isValidConversionMap( conversionMap ) ) {\n\t\tthrow new TypeError(\n\t\t\t'The conversionMap provided is not valid. It must be an object with values that are WPElements'\n\t\t);\n\t}\n\n\tdo {\n\t\t// twiddle our thumbs\n\t} while ( proceed( conversionMap ) );\n\treturn createElement( Fragment, null, ...output );\n};\n\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap The map being validated.\n *\n * @return {boolean} True means the map is valid.\n */\nconst isValidConversionMap = ( conversionMap ) => {\n\tconst isObject = typeof conversionMap === 'object';\n\tconst values = isObject && Object.values( conversionMap );\n\treturn (\n\t\tisObject &&\n\t\tvalues.length &&\n\t\tvalues.every( ( element ) => isValidElement( element ) )\n\t);\n};\n\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\nfunction proceed( conversionMap ) {\n\tconst next = nextToken();\n\tconst [ tokenType, name, startOffset, tokenLength ] = next;\n\tconst stackDepth = stack.length;\n\tconst leadingTextStart = startOffset > offset ? offset : null;\n\tif ( ! conversionMap[ name ] ) {\n\t\taddText();\n\t\treturn false;\n\t}\n\tswitch ( tokenType ) {\n\t\tcase 'no-more-tokens':\n\t\t\tif ( stackDepth !== 0 ) {\n\t\t\t\tconst { leadingTextStart: stackLeadingText, tokenStart } =\n\t\t\t\t\tstack.pop();\n\t\t\t\toutput.push( indoc.substr( stackLeadingText, tokenStart ) );\n\t\t\t}\n\t\t\taddText();\n\t\t\treturn false;\n\n\t\tcase 'self-closed':\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\tif ( null !== leadingTextStart ) {\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tindoc.substr(\n\t\t\t\t\t\t\tleadingTextStart,\n\t\t\t\t\t\t\tstartOffset - leadingTextStart\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\toutput.push( conversionMap[ name ] );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we found an inner element.\n\t\t\taddChild(\n\t\t\t\tcreateFrame( conversionMap[ name ], startOffset, tokenLength )\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'opener':\n\t\t\tstack.push(\n\t\t\t\tcreateFrame(\n\t\t\t\t\tconversionMap[ name ],\n\t\t\t\t\tstartOffset,\n\t\t\t\t\ttokenLength,\n\t\t\t\t\tstartOffset + tokenLength,\n\t\t\t\t\tleadingTextStart\n\t\t\t\t)\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'closer':\n\t\t\t// If we're not nesting then this is easy - close the block.\n\t\t\tif ( 1 === stackDepth ) {\n\t\t\t\tcloseOuterElement( startOffset );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we're nested and we have to close out the current\n\t\t\t// block and add it as a innerBlock to the parent.\n\t\t\tconst stackTop = stack.pop();\n\t\t\tconst text = indoc.substr(\n\t\t\t\tstackTop.prevOffset,\n\t\t\t\tstartOffset - stackTop.prevOffset\n\t\t\t);\n\t\t\tstackTop.children.push( text );\n\t\t\tstackTop.prevOffset = startOffset + tokenLength;\n\t\t\tconst frame = createFrame(\n\t\t\t\tstackTop.element,\n\t\t\t\tstackTop.tokenStart,\n\t\t\t\tstackTop.tokenLength,\n\t\t\t\tstartOffset + tokenLength\n\t\t\t);\n\t\t\tframe.children = stackTop.children;\n\t\t\taddChild( frame );\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tdefault:\n\t\t\taddText();\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array} An array of details for the token matched.\n */\nfunction nextToken() {\n\tconst matches = tokenizer.exec( indoc );\n\t// We have no more tokens.\n\tif ( null === matches ) {\n\t\treturn [ 'no-more-tokens' ];\n\t}\n\tconst startedAt = matches.index;\n\tconst [ match, isClosing, name, isSelfClosed ] = matches;\n\tconst length = match.length;\n\tif ( isSelfClosed ) {\n\t\treturn [ 'self-closed', name, startedAt, length ];\n\t}\n\tif ( isClosing ) {\n\t\treturn [ 'closer', name, startedAt, length ];\n\t}\n\treturn [ 'opener', name, startedAt, length ];\n}\n\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\nfunction addText() {\n\tconst length = indoc.length - offset;\n\tif ( 0 === length ) {\n\t\treturn;\n\t}\n\toutput.push( indoc.substr( offset, length ) );\n}\n\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame} frame The Frame containing the child element and it's\n * token information.\n */\nfunction addChild( frame ) {\n\tconst { element, tokenStart, tokenLength, prevOffset, children } = frame;\n\tconst parent = stack[ stack.length - 1 ];\n\tconst text = indoc.substr(\n\t\tparent.prevOffset,\n\t\ttokenStart - parent.prevOffset\n\t);\n\n\tif ( text ) {\n\t\tparent.children.push( text );\n\t}\n\n\tparent.children.push( cloneElement( element, null, ...children ) );\n\tparent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n * begins in the string. If this is greater than the\n * prevOffset attached to the element, then this\n * helps capture any remaining nested text nodes in\n * the element.\n */\nfunction closeOuterElement( endOffset ) {\n\tconst { element, leadingTextStart, prevOffset, tokenStart, children } =\n\t\tstack.pop();\n\n\tconst text = endOffset\n\t\t? indoc.substr( prevOffset, endOffset - prevOffset )\n\t\t: indoc.substr( prevOffset );\n\n\tif ( text ) {\n\t\tchildren.push( text );\n\t}\n\n\tif ( null !== leadingTextStart ) {\n\t\toutput.push(\n\t\t\tindoc.substr( leadingTextStart, tokenStart - leadingTextStart )\n\t\t);\n\t}\n\n\toutput.push( cloneElement( element, null, ...children ) );\n}\n\nexport default createInterpolateElement;\n"]}
1
+ {"version":3,"sources":["@wordpress/element/src/create-interpolate-element.js"],"names":["indoc","offset","output","stack","tokenizer","createFrame","element","tokenStart","tokenLength","prevOffset","leadingTextStart","children","createInterpolateElement","interpolatedString","conversionMap","lastIndex","isValidConversionMap","TypeError","proceed","Fragment","isObject","values","Object","length","every","next","nextToken","tokenType","name","startOffset","stackDepth","addText","stackLeadingText","pop","push","substr","addChild","closeOuterElement","stackTop","text","frame","matches","exec","startedAt","index","match","isClosing","isSelfClosed","parent","endOffset"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AAEA,IAAIA,KAAJ,EAAWC,MAAX,EAAmBC,MAAnB,EAA2BC,KAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,SAAS,GAAG,uBAAlB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT,CACCC,OADD,EAECC,UAFD,EAGCC,WAHD,EAICC,UAJD,EAKCC,gBALD,EAME;AACD,SAAO;AACNJ,IAAAA,OADM;AAENC,IAAAA,UAFM;AAGNC,IAAAA,WAHM;AAINC,IAAAA,UAJM;AAKNC,IAAAA,gBALM;AAMNC,IAAAA,QAAQ,EAAE;AANJ,GAAP;AAQA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,wBAAwB,GAAG,CAAEC,kBAAF,EAAsBC,aAAtB,KAAyC;AACzEd,EAAAA,KAAK,GAAGa,kBAAR;AACAZ,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,MAAM,GAAG,EAAT;AACAC,EAAAA,KAAK,GAAG,EAAR;AACAC,EAAAA,SAAS,CAACW,SAAV,GAAsB,CAAtB;;AAEA,MAAK,CAAEC,oBAAoB,CAAEF,aAAF,CAA3B,EAA+C;AAC9C,UAAM,IAAIG,SAAJ,CACL,+FADK,CAAN;AAGA;;AAED,KAAG,CACF;AACA,GAFD,QAEUC,OAAO,CAAEJ,aAAF,CAFjB;;AAGA,SAAO,0BAAeK,eAAf,EAAyB,IAAzB,EAA+B,GAAGjB,MAAlC,CAAP;AACA,CAjBD;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { createElement, cloneElement, Fragment, isValidElement } from './react';\n\n/** @typedef {import('./react').WPElement} WPElement */\n\nlet indoc, offset, output, stack;\n\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, if it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\nconst tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element A parent element which may still have\n * @property {number} tokenStart Offset at which parent element first\n * appears.\n * @property {number} tokenLength Length of string marking start of parent\n * element.\n * @property {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @property {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n * @property {WPElement[]} children Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element A parent element which may still have\n * nested children not yet parsed.\n * @param {number} tokenStart Offset at which parent element first\n * appears.\n * @param {number} tokenLength Length of string marking start of parent\n * element.\n * @param {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @param {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\nfunction createFrame(\n\telement,\n\ttokenStart,\n\ttokenLength,\n\tprevOffset,\n\tleadingTextStart\n) {\n\treturn {\n\t\telement,\n\t\ttokenStart,\n\t\ttokenLength,\n\t\tprevOffset,\n\t\tleadingTextStart,\n\t\tchildren: [],\n\t};\n}\n\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n * span: <span />,\n * a: <a href={ 'https://github.com' } />,\n * CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string} interpolatedString The interpolation string to be parsed.\n * @param {Record<string, WPElement>} conversionMap The map used to convert the string to\n * a react element.\n * @throws {TypeError}\n * @return {WPElement} A wp element.\n */\nconst createInterpolateElement = ( interpolatedString, conversionMap ) => {\n\tindoc = interpolatedString;\n\toffset = 0;\n\toutput = [];\n\tstack = [];\n\ttokenizer.lastIndex = 0;\n\n\tif ( ! isValidConversionMap( conversionMap ) ) {\n\t\tthrow new TypeError(\n\t\t\t'The conversionMap provided is not valid. It must be an object with values that are WPElements'\n\t\t);\n\t}\n\n\tdo {\n\t\t// twiddle our thumbs\n\t} while ( proceed( conversionMap ) );\n\treturn createElement( Fragment, null, ...output );\n};\n\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap The map being validated.\n *\n * @return {boolean} True means the map is valid.\n */\nconst isValidConversionMap = ( conversionMap ) => {\n\tconst isObject = typeof conversionMap === 'object';\n\tconst values = isObject && Object.values( conversionMap );\n\treturn (\n\t\tisObject &&\n\t\tvalues.length &&\n\t\tvalues.every( ( element ) => isValidElement( element ) )\n\t);\n};\n\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\nfunction proceed( conversionMap ) {\n\tconst next = nextToken();\n\tconst [ tokenType, name, startOffset, tokenLength ] = next;\n\tconst stackDepth = stack.length;\n\tconst leadingTextStart = startOffset > offset ? offset : null;\n\tif ( ! conversionMap[ name ] ) {\n\t\taddText();\n\t\treturn false;\n\t}\n\tswitch ( tokenType ) {\n\t\tcase 'no-more-tokens':\n\t\t\tif ( stackDepth !== 0 ) {\n\t\t\t\tconst { leadingTextStart: stackLeadingText, tokenStart } =\n\t\t\t\t\tstack.pop();\n\t\t\t\toutput.push( indoc.substr( stackLeadingText, tokenStart ) );\n\t\t\t}\n\t\t\taddText();\n\t\t\treturn false;\n\n\t\tcase 'self-closed':\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\tif ( null !== leadingTextStart ) {\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tindoc.substr(\n\t\t\t\t\t\t\tleadingTextStart,\n\t\t\t\t\t\t\tstartOffset - leadingTextStart\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\toutput.push( conversionMap[ name ] );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we found an inner element.\n\t\t\taddChild(\n\t\t\t\tcreateFrame( conversionMap[ name ], startOffset, tokenLength )\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'opener':\n\t\t\tstack.push(\n\t\t\t\tcreateFrame(\n\t\t\t\t\tconversionMap[ name ],\n\t\t\t\t\tstartOffset,\n\t\t\t\t\ttokenLength,\n\t\t\t\t\tstartOffset + tokenLength,\n\t\t\t\t\tleadingTextStart\n\t\t\t\t)\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'closer':\n\t\t\t// If we're not nesting then this is easy - close the block.\n\t\t\tif ( 1 === stackDepth ) {\n\t\t\t\tcloseOuterElement( startOffset );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we're nested and we have to close out the current\n\t\t\t// block and add it as a innerBlock to the parent.\n\t\t\tconst stackTop = stack.pop();\n\t\t\tconst text = indoc.substr(\n\t\t\t\tstackTop.prevOffset,\n\t\t\t\tstartOffset - stackTop.prevOffset\n\t\t\t);\n\t\t\tstackTop.children.push( text );\n\t\t\tstackTop.prevOffset = startOffset + tokenLength;\n\t\t\tconst frame = createFrame(\n\t\t\t\tstackTop.element,\n\t\t\t\tstackTop.tokenStart,\n\t\t\t\tstackTop.tokenLength,\n\t\t\t\tstartOffset + tokenLength\n\t\t\t);\n\t\t\tframe.children = stackTop.children;\n\t\t\taddChild( frame );\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tdefault:\n\t\t\taddText();\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array} An array of details for the token matched.\n */\nfunction nextToken() {\n\tconst matches = tokenizer.exec( indoc );\n\t// We have no more tokens.\n\tif ( null === matches ) {\n\t\treturn [ 'no-more-tokens' ];\n\t}\n\tconst startedAt = matches.index;\n\tconst [ match, isClosing, name, isSelfClosed ] = matches;\n\tconst length = match.length;\n\tif ( isSelfClosed ) {\n\t\treturn [ 'self-closed', name, startedAt, length ];\n\t}\n\tif ( isClosing ) {\n\t\treturn [ 'closer', name, startedAt, length ];\n\t}\n\treturn [ 'opener', name, startedAt, length ];\n}\n\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\nfunction addText() {\n\tconst length = indoc.length - offset;\n\tif ( 0 === length ) {\n\t\treturn;\n\t}\n\toutput.push( indoc.substr( offset, length ) );\n}\n\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame} frame The Frame containing the child element and it's\n * token information.\n */\nfunction addChild( frame ) {\n\tconst { element, tokenStart, tokenLength, prevOffset, children } = frame;\n\tconst parent = stack[ stack.length - 1 ];\n\tconst text = indoc.substr(\n\t\tparent.prevOffset,\n\t\ttokenStart - parent.prevOffset\n\t);\n\n\tif ( text ) {\n\t\tparent.children.push( text );\n\t}\n\n\tparent.children.push( cloneElement( element, null, ...children ) );\n\tparent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n * begins in the string. If this is greater than the\n * prevOffset attached to the element, then this\n * helps capture any remaining nested text nodes in\n * the element.\n */\nfunction closeOuterElement( endOffset ) {\n\tconst { element, leadingTextStart, prevOffset, tokenStart, children } =\n\t\tstack.pop();\n\n\tconst text = endOffset\n\t\t? indoc.substr( prevOffset, endOffset - prevOffset )\n\t\t: indoc.substr( prevOffset );\n\n\tif ( text ) {\n\t\tchildren.push( text );\n\t}\n\n\tif ( null !== leadingTextStart ) {\n\t\toutput.push(\n\t\t\tindoc.substr( leadingTextStart, tokenStart - leadingTextStart )\n\t\t);\n\t}\n\n\toutput.push( cloneElement( element, null, ...children ) );\n}\n\nexport default createInterpolateElement;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/element/src/react-platform.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAQA","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tcreatePortal,\n\tfindDOMNode,\n\tflushSync,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n} from 'react-dom';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\n\n/**\n * Creates a portal into which a component can be rendered.\n *\n * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235\n *\n * @param {import('./react').WPElement} child Any renderable child, such as an element,\n * string, or fragment.\n * @param {HTMLElement} container DOM node into which element should be rendered.\n */\nexport { createPortal };\n\n/**\n * Finds the dom node of a React component.\n *\n * @param {import('./react').WPComponent} component Component's instance.\n */\nexport { findDOMNode };\n\n/**\n * Forces React to flush any updates inside the provided callback synchronously.\n *\n * @param {Function} callback Callback to run synchronously.\n */\nexport { flushSync };\n\n/**\n * Renders a given element into the target DOM node.\n *\n * @param {import('./react').WPElement} element Element to render.\n * @param {HTMLElement} target DOM node into which element should be rendered.\n */\nexport { render };\n\n/**\n * Hydrates a given element into the target DOM node.\n *\n * @param {import('./react').WPElement} element Element to hydrate.\n * @param {HTMLElement} target DOM node into which element should be hydrated.\n */\nexport { hydrate };\n\n/**\n * Creates a new React root for the target DOM node.\n *\n * @see https://reactjs.org/docs/react-dom-client.html#createroot\n */\nexport { createRoot };\n\n/**\n * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup.\n *\n * @see https://reactjs.org/docs/react-dom-client.html#hydrateroot\n */\nexport { hydrateRoot };\n\n/**\n * Removes any mounted element from the target DOM node.\n *\n * @param {Element} target DOM node in which element is to be removed\n */\nexport { unmountComponentAtNode };\n"]}
1
+ {"version":3,"sources":["@wordpress/element/src/react-platform.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAQA","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tcreatePortal,\n\tfindDOMNode,\n\tflushSync,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n} from 'react-dom';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\n\n/**\n * Creates a portal into which a component can be rendered.\n *\n * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235\n *\n * @param {import('./react').WPElement} child Any renderable child, such as an element,\n * string, or fragment.\n * @param {HTMLElement} container DOM node into which element should be rendered.\n */\nexport { createPortal };\n\n/**\n * Finds the dom node of a React component.\n *\n * @param {import('./react').WPComponent} component Component's instance.\n */\nexport { findDOMNode };\n\n/**\n * Forces React to flush any updates inside the provided callback synchronously.\n *\n * @param {Function} callback Callback to run synchronously.\n */\nexport { flushSync };\n\n/**\n * Renders a given element into the target DOM node.\n *\n * @deprecated since WordPress 6.2.0. Use `createRoot` instead.\n * @see https://react.dev/reference/react-dom/render\n */\nexport { render };\n\n/**\n * Hydrates a given element into the target DOM node.\n *\n * @deprecated since WordPress 6.2.0. Use `hydrateRoot` instead.\n * @see https://react.dev/reference/react-dom/hydrate\n */\nexport { hydrate };\n\n/**\n * Creates a new React root for the target DOM node.\n *\n * @since 6.2.0 Introduced in WordPress core.\n * @see https://react.dev/reference/react-dom/client/createRoot\n */\nexport { createRoot };\n\n/**\n * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup.\n *\n * @since 6.2.0 Introduced in WordPress core.\n * @see https://react.dev/reference/react-dom/client/hydrateRoot\n */\nexport { hydrateRoot };\n\n/**\n * Removes any mounted element from the target DOM node.\n *\n * @deprecated since WordPress 6.2.0. Use `root.unmount()` instead.\n * @see https://react.dev/reference/react-dom/unmountComponentAtNode\n */\nexport { unmountComponentAtNode };\n"]}
@@ -93,9 +93,9 @@ function createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextSt
93
93
  * }
94
94
  * ```
95
95
  *
96
- * @param {string} interpolatedString The interpolation string to be parsed.
97
- * @param {Object} conversionMap The map used to convert the string to
98
- * a react element.
96
+ * @param {string} interpolatedString The interpolation string to be parsed.
97
+ * @param {Record<string, WPElement>} conversionMap The map used to convert the string to
98
+ * a react element.
99
99
  * @throws {TypeError}
100
100
  * @return {WPElement} A wp element.
101
101
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/element/src/create-interpolate-element.js"],"names":["createElement","cloneElement","Fragment","isValidElement","indoc","offset","output","stack","tokenizer","createFrame","element","tokenStart","tokenLength","prevOffset","leadingTextStart","children","createInterpolateElement","interpolatedString","conversionMap","lastIndex","isValidConversionMap","TypeError","proceed","isObject","values","Object","length","every","next","nextToken","tokenType","name","startOffset","stackDepth","addText","stackLeadingText","pop","push","substr","addChild","closeOuterElement","stackTop","text","frame","matches","exec","startedAt","index","match","isClosing","isSelfClosed","parent","endOffset"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { createElement, cloneElement, Fragment, isValidElement } from './react';\n\n/** @typedef {import('./react').WPElement} WPElement */\n\nlet indoc, offset, output, stack;\n\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, if it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\nconst tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element A parent element which may still have\n * @property {number} tokenStart Offset at which parent element first\n * appears.\n * @property {number} tokenLength Length of string marking start of parent\n * element.\n * @property {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @property {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n * @property {WPElement[]} children Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element A parent element which may still have\n * nested children not yet parsed.\n * @param {number} tokenStart Offset at which parent element first\n * appears.\n * @param {number} tokenLength Length of string marking start of parent\n * element.\n * @param {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @param {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\nfunction createFrame(\n\telement,\n\ttokenStart,\n\ttokenLength,\n\tprevOffset,\n\tleadingTextStart\n) {\n\treturn {\n\t\telement,\n\t\ttokenStart,\n\t\ttokenLength,\n\t\tprevOffset,\n\t\tleadingTextStart,\n\t\tchildren: [],\n\t};\n}\n\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n * span: <span />,\n * a: <a href={ 'https://github.com' } />,\n * CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string} interpolatedString The interpolation string to be parsed.\n * @param {Object} conversionMap The map used to convert the string to\n * a react element.\n * @throws {TypeError}\n * @return {WPElement} A wp element.\n */\nconst createInterpolateElement = ( interpolatedString, conversionMap ) => {\n\tindoc = interpolatedString;\n\toffset = 0;\n\toutput = [];\n\tstack = [];\n\ttokenizer.lastIndex = 0;\n\n\tif ( ! isValidConversionMap( conversionMap ) ) {\n\t\tthrow new TypeError(\n\t\t\t'The conversionMap provided is not valid. It must be an object with values that are WPElements'\n\t\t);\n\t}\n\n\tdo {\n\t\t// twiddle our thumbs\n\t} while ( proceed( conversionMap ) );\n\treturn createElement( Fragment, null, ...output );\n};\n\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap The map being validated.\n *\n * @return {boolean} True means the map is valid.\n */\nconst isValidConversionMap = ( conversionMap ) => {\n\tconst isObject = typeof conversionMap === 'object';\n\tconst values = isObject && Object.values( conversionMap );\n\treturn (\n\t\tisObject &&\n\t\tvalues.length &&\n\t\tvalues.every( ( element ) => isValidElement( element ) )\n\t);\n};\n\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\nfunction proceed( conversionMap ) {\n\tconst next = nextToken();\n\tconst [ tokenType, name, startOffset, tokenLength ] = next;\n\tconst stackDepth = stack.length;\n\tconst leadingTextStart = startOffset > offset ? offset : null;\n\tif ( ! conversionMap[ name ] ) {\n\t\taddText();\n\t\treturn false;\n\t}\n\tswitch ( tokenType ) {\n\t\tcase 'no-more-tokens':\n\t\t\tif ( stackDepth !== 0 ) {\n\t\t\t\tconst { leadingTextStart: stackLeadingText, tokenStart } =\n\t\t\t\t\tstack.pop();\n\t\t\t\toutput.push( indoc.substr( stackLeadingText, tokenStart ) );\n\t\t\t}\n\t\t\taddText();\n\t\t\treturn false;\n\n\t\tcase 'self-closed':\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\tif ( null !== leadingTextStart ) {\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tindoc.substr(\n\t\t\t\t\t\t\tleadingTextStart,\n\t\t\t\t\t\t\tstartOffset - leadingTextStart\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\toutput.push( conversionMap[ name ] );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we found an inner element.\n\t\t\taddChild(\n\t\t\t\tcreateFrame( conversionMap[ name ], startOffset, tokenLength )\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'opener':\n\t\t\tstack.push(\n\t\t\t\tcreateFrame(\n\t\t\t\t\tconversionMap[ name ],\n\t\t\t\t\tstartOffset,\n\t\t\t\t\ttokenLength,\n\t\t\t\t\tstartOffset + tokenLength,\n\t\t\t\t\tleadingTextStart\n\t\t\t\t)\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'closer':\n\t\t\t// If we're not nesting then this is easy - close the block.\n\t\t\tif ( 1 === stackDepth ) {\n\t\t\t\tcloseOuterElement( startOffset );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we're nested and we have to close out the current\n\t\t\t// block and add it as a innerBlock to the parent.\n\t\t\tconst stackTop = stack.pop();\n\t\t\tconst text = indoc.substr(\n\t\t\t\tstackTop.prevOffset,\n\t\t\t\tstartOffset - stackTop.prevOffset\n\t\t\t);\n\t\t\tstackTop.children.push( text );\n\t\t\tstackTop.prevOffset = startOffset + tokenLength;\n\t\t\tconst frame = createFrame(\n\t\t\t\tstackTop.element,\n\t\t\t\tstackTop.tokenStart,\n\t\t\t\tstackTop.tokenLength,\n\t\t\t\tstartOffset + tokenLength\n\t\t\t);\n\t\t\tframe.children = stackTop.children;\n\t\t\taddChild( frame );\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tdefault:\n\t\t\taddText();\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array} An array of details for the token matched.\n */\nfunction nextToken() {\n\tconst matches = tokenizer.exec( indoc );\n\t// We have no more tokens.\n\tif ( null === matches ) {\n\t\treturn [ 'no-more-tokens' ];\n\t}\n\tconst startedAt = matches.index;\n\tconst [ match, isClosing, name, isSelfClosed ] = matches;\n\tconst length = match.length;\n\tif ( isSelfClosed ) {\n\t\treturn [ 'self-closed', name, startedAt, length ];\n\t}\n\tif ( isClosing ) {\n\t\treturn [ 'closer', name, startedAt, length ];\n\t}\n\treturn [ 'opener', name, startedAt, length ];\n}\n\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\nfunction addText() {\n\tconst length = indoc.length - offset;\n\tif ( 0 === length ) {\n\t\treturn;\n\t}\n\toutput.push( indoc.substr( offset, length ) );\n}\n\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame} frame The Frame containing the child element and it's\n * token information.\n */\nfunction addChild( frame ) {\n\tconst { element, tokenStart, tokenLength, prevOffset, children } = frame;\n\tconst parent = stack[ stack.length - 1 ];\n\tconst text = indoc.substr(\n\t\tparent.prevOffset,\n\t\ttokenStart - parent.prevOffset\n\t);\n\n\tif ( text ) {\n\t\tparent.children.push( text );\n\t}\n\n\tparent.children.push( cloneElement( element, null, ...children ) );\n\tparent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n * begins in the string. If this is greater than the\n * prevOffset attached to the element, then this\n * helps capture any remaining nested text nodes in\n * the element.\n */\nfunction closeOuterElement( endOffset ) {\n\tconst { element, leadingTextStart, prevOffset, tokenStart, children } =\n\t\tstack.pop();\n\n\tconst text = endOffset\n\t\t? indoc.substr( prevOffset, endOffset - prevOffset )\n\t\t: indoc.substr( prevOffset );\n\n\tif ( text ) {\n\t\tchildren.push( text );\n\t}\n\n\tif ( null !== leadingTextStart ) {\n\t\toutput.push(\n\t\t\tindoc.substr( leadingTextStart, tokenStart - leadingTextStart )\n\t\t);\n\t}\n\n\toutput.push( cloneElement( element, null, ...children ) );\n}\n\nexport default createInterpolateElement;\n"]}
1
+ {"version":3,"sources":["@wordpress/element/src/create-interpolate-element.js"],"names":["createElement","cloneElement","Fragment","isValidElement","indoc","offset","output","stack","tokenizer","createFrame","element","tokenStart","tokenLength","prevOffset","leadingTextStart","children","createInterpolateElement","interpolatedString","conversionMap","lastIndex","isValidConversionMap","TypeError","proceed","isObject","values","Object","length","every","next","nextToken","tokenType","name","startOffset","stackDepth","addText","stackLeadingText","pop","push","substr","addChild","closeOuterElement","stackTop","text","frame","matches","exec","startedAt","index","match","isClosing","isSelfClosed","parent","endOffset"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { createElement, cloneElement, Fragment, isValidElement } from './react';\n\n/** @typedef {import('./react').WPElement} WPElement */\n\nlet indoc, offset, output, stack;\n\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, if it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\nconst tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element A parent element which may still have\n * @property {number} tokenStart Offset at which parent element first\n * appears.\n * @property {number} tokenLength Length of string marking start of parent\n * element.\n * @property {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @property {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n * @property {WPElement[]} children Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element A parent element which may still have\n * nested children not yet parsed.\n * @param {number} tokenStart Offset at which parent element first\n * appears.\n * @param {number} tokenLength Length of string marking start of parent\n * element.\n * @param {number} [prevOffset] Running offset at which parsing should\n * continue.\n * @param {number} [leadingTextStart] Offset at which last closing element\n * finished, used for finding text between\n * elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\nfunction createFrame(\n\telement,\n\ttokenStart,\n\ttokenLength,\n\tprevOffset,\n\tleadingTextStart\n) {\n\treturn {\n\t\telement,\n\t\ttokenStart,\n\t\ttokenLength,\n\t\tprevOffset,\n\t\tleadingTextStart,\n\t\tchildren: [],\n\t};\n}\n\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n * span: <span />,\n * a: <a href={ 'https://github.com' } />,\n * CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string} interpolatedString The interpolation string to be parsed.\n * @param {Record<string, WPElement>} conversionMap The map used to convert the string to\n * a react element.\n * @throws {TypeError}\n * @return {WPElement} A wp element.\n */\nconst createInterpolateElement = ( interpolatedString, conversionMap ) => {\n\tindoc = interpolatedString;\n\toffset = 0;\n\toutput = [];\n\tstack = [];\n\ttokenizer.lastIndex = 0;\n\n\tif ( ! isValidConversionMap( conversionMap ) ) {\n\t\tthrow new TypeError(\n\t\t\t'The conversionMap provided is not valid. It must be an object with values that are WPElements'\n\t\t);\n\t}\n\n\tdo {\n\t\t// twiddle our thumbs\n\t} while ( proceed( conversionMap ) );\n\treturn createElement( Fragment, null, ...output );\n};\n\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap The map being validated.\n *\n * @return {boolean} True means the map is valid.\n */\nconst isValidConversionMap = ( conversionMap ) => {\n\tconst isObject = typeof conversionMap === 'object';\n\tconst values = isObject && Object.values( conversionMap );\n\treturn (\n\t\tisObject &&\n\t\tvalues.length &&\n\t\tvalues.every( ( element ) => isValidElement( element ) )\n\t);\n};\n\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\nfunction proceed( conversionMap ) {\n\tconst next = nextToken();\n\tconst [ tokenType, name, startOffset, tokenLength ] = next;\n\tconst stackDepth = stack.length;\n\tconst leadingTextStart = startOffset > offset ? offset : null;\n\tif ( ! conversionMap[ name ] ) {\n\t\taddText();\n\t\treturn false;\n\t}\n\tswitch ( tokenType ) {\n\t\tcase 'no-more-tokens':\n\t\t\tif ( stackDepth !== 0 ) {\n\t\t\t\tconst { leadingTextStart: stackLeadingText, tokenStart } =\n\t\t\t\t\tstack.pop();\n\t\t\t\toutput.push( indoc.substr( stackLeadingText, tokenStart ) );\n\t\t\t}\n\t\t\taddText();\n\t\t\treturn false;\n\n\t\tcase 'self-closed':\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\tif ( null !== leadingTextStart ) {\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tindoc.substr(\n\t\t\t\t\t\t\tleadingTextStart,\n\t\t\t\t\t\t\tstartOffset - leadingTextStart\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\toutput.push( conversionMap[ name ] );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we found an inner element.\n\t\t\taddChild(\n\t\t\t\tcreateFrame( conversionMap[ name ], startOffset, tokenLength )\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'opener':\n\t\t\tstack.push(\n\t\t\t\tcreateFrame(\n\t\t\t\t\tconversionMap[ name ],\n\t\t\t\t\tstartOffset,\n\t\t\t\t\ttokenLength,\n\t\t\t\t\tstartOffset + tokenLength,\n\t\t\t\t\tleadingTextStart\n\t\t\t\t)\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'closer':\n\t\t\t// If we're not nesting then this is easy - close the block.\n\t\t\tif ( 1 === stackDepth ) {\n\t\t\t\tcloseOuterElement( startOffset );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we're nested and we have to close out the current\n\t\t\t// block and add it as a innerBlock to the parent.\n\t\t\tconst stackTop = stack.pop();\n\t\t\tconst text = indoc.substr(\n\t\t\t\tstackTop.prevOffset,\n\t\t\t\tstartOffset - stackTop.prevOffset\n\t\t\t);\n\t\t\tstackTop.children.push( text );\n\t\t\tstackTop.prevOffset = startOffset + tokenLength;\n\t\t\tconst frame = createFrame(\n\t\t\t\tstackTop.element,\n\t\t\t\tstackTop.tokenStart,\n\t\t\t\tstackTop.tokenLength,\n\t\t\t\tstartOffset + tokenLength\n\t\t\t);\n\t\t\tframe.children = stackTop.children;\n\t\t\taddChild( frame );\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tdefault:\n\t\t\taddText();\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array} An array of details for the token matched.\n */\nfunction nextToken() {\n\tconst matches = tokenizer.exec( indoc );\n\t// We have no more tokens.\n\tif ( null === matches ) {\n\t\treturn [ 'no-more-tokens' ];\n\t}\n\tconst startedAt = matches.index;\n\tconst [ match, isClosing, name, isSelfClosed ] = matches;\n\tconst length = match.length;\n\tif ( isSelfClosed ) {\n\t\treturn [ 'self-closed', name, startedAt, length ];\n\t}\n\tif ( isClosing ) {\n\t\treturn [ 'closer', name, startedAt, length ];\n\t}\n\treturn [ 'opener', name, startedAt, length ];\n}\n\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\nfunction addText() {\n\tconst length = indoc.length - offset;\n\tif ( 0 === length ) {\n\t\treturn;\n\t}\n\toutput.push( indoc.substr( offset, length ) );\n}\n\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame} frame The Frame containing the child element and it's\n * token information.\n */\nfunction addChild( frame ) {\n\tconst { element, tokenStart, tokenLength, prevOffset, children } = frame;\n\tconst parent = stack[ stack.length - 1 ];\n\tconst text = indoc.substr(\n\t\tparent.prevOffset,\n\t\ttokenStart - parent.prevOffset\n\t);\n\n\tif ( text ) {\n\t\tparent.children.push( text );\n\t}\n\n\tparent.children.push( cloneElement( element, null, ...children ) );\n\tparent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n * begins in the string. If this is greater than the\n * prevOffset attached to the element, then this\n * helps capture any remaining nested text nodes in\n * the element.\n */\nfunction closeOuterElement( endOffset ) {\n\tconst { element, leadingTextStart, prevOffset, tokenStart, children } =\n\t\tstack.pop();\n\n\tconst text = endOffset\n\t\t? indoc.substr( prevOffset, endOffset - prevOffset )\n\t\t: indoc.substr( prevOffset );\n\n\tif ( text ) {\n\t\tchildren.push( text );\n\t}\n\n\tif ( null !== leadingTextStart ) {\n\t\toutput.push(\n\t\t\tindoc.substr( leadingTextStart, tokenStart - leadingTextStart )\n\t\t);\n\t}\n\n\toutput.push( cloneElement( element, null, ...children ) );\n}\n\nexport default createInterpolateElement;\n"]}
@@ -31,37 +31,40 @@ export { flushSync };
31
31
  /**
32
32
  * Renders a given element into the target DOM node.
33
33
  *
34
- * @param {import('./react').WPElement} element Element to render.
35
- * @param {HTMLElement} target DOM node into which element should be rendered.
34
+ * @deprecated since WordPress 6.2.0. Use `createRoot` instead.
35
+ * @see https://react.dev/reference/react-dom/render
36
36
  */
37
37
 
38
38
  export { render };
39
39
  /**
40
40
  * Hydrates a given element into the target DOM node.
41
41
  *
42
- * @param {import('./react').WPElement} element Element to hydrate.
43
- * @param {HTMLElement} target DOM node into which element should be hydrated.
42
+ * @deprecated since WordPress 6.2.0. Use `hydrateRoot` instead.
43
+ * @see https://react.dev/reference/react-dom/hydrate
44
44
  */
45
45
 
46
46
  export { hydrate };
47
47
  /**
48
48
  * Creates a new React root for the target DOM node.
49
49
  *
50
- * @see https://reactjs.org/docs/react-dom-client.html#createroot
50
+ * @since 6.2.0 Introduced in WordPress core.
51
+ * @see https://react.dev/reference/react-dom/client/createRoot
51
52
  */
52
53
 
53
54
  export { createRoot };
54
55
  /**
55
56
  * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup.
56
57
  *
57
- * @see https://reactjs.org/docs/react-dom-client.html#hydrateroot
58
+ * @since 6.2.0 Introduced in WordPress core.
59
+ * @see https://react.dev/reference/react-dom/client/hydrateRoot
58
60
  */
59
61
 
60
62
  export { hydrateRoot };
61
63
  /**
62
64
  * Removes any mounted element from the target DOM node.
63
65
  *
64
- * @param {Element} target DOM node in which element is to be removed
66
+ * @deprecated since WordPress 6.2.0. Use `root.unmount()` instead.
67
+ * @see https://react.dev/reference/react-dom/unmountComponentAtNode
65
68
  */
66
69
 
67
70
  export { unmountComponentAtNode };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/element/src/react-platform.js"],"names":["createPortal","findDOMNode","flushSync","render","hydrate","unmountComponentAtNode","createRoot","hydrateRoot"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,YADD,EAECC,WAFD,EAGCC,SAHD,EAICC,MAJD,EAKCC,OALD,EAMCC,sBAND,QAOO,WAPP;AAQA,SAASC,UAAT,EAAqBC,WAArB,QAAwC,kBAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASP,YAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,MAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASE,UAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASF,sBAAT","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tcreatePortal,\n\tfindDOMNode,\n\tflushSync,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n} from 'react-dom';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\n\n/**\n * Creates a portal into which a component can be rendered.\n *\n * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235\n *\n * @param {import('./react').WPElement} child Any renderable child, such as an element,\n * string, or fragment.\n * @param {HTMLElement} container DOM node into which element should be rendered.\n */\nexport { createPortal };\n\n/**\n * Finds the dom node of a React component.\n *\n * @param {import('./react').WPComponent} component Component's instance.\n */\nexport { findDOMNode };\n\n/**\n * Forces React to flush any updates inside the provided callback synchronously.\n *\n * @param {Function} callback Callback to run synchronously.\n */\nexport { flushSync };\n\n/**\n * Renders a given element into the target DOM node.\n *\n * @param {import('./react').WPElement} element Element to render.\n * @param {HTMLElement} target DOM node into which element should be rendered.\n */\nexport { render };\n\n/**\n * Hydrates a given element into the target DOM node.\n *\n * @param {import('./react').WPElement} element Element to hydrate.\n * @param {HTMLElement} target DOM node into which element should be hydrated.\n */\nexport { hydrate };\n\n/**\n * Creates a new React root for the target DOM node.\n *\n * @see https://reactjs.org/docs/react-dom-client.html#createroot\n */\nexport { createRoot };\n\n/**\n * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup.\n *\n * @see https://reactjs.org/docs/react-dom-client.html#hydrateroot\n */\nexport { hydrateRoot };\n\n/**\n * Removes any mounted element from the target DOM node.\n *\n * @param {Element} target DOM node in which element is to be removed\n */\nexport { unmountComponentAtNode };\n"]}
1
+ {"version":3,"sources":["@wordpress/element/src/react-platform.js"],"names":["createPortal","findDOMNode","flushSync","render","hydrate","unmountComponentAtNode","createRoot","hydrateRoot"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,YADD,EAECC,WAFD,EAGCC,SAHD,EAICC,MAJD,EAKCC,OALD,EAMCC,sBAND,QAOO,WAPP;AAQA,SAASC,UAAT,EAAqBC,WAArB,QAAwC,kBAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASP,YAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,MAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,UAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASF,sBAAT","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tcreatePortal,\n\tfindDOMNode,\n\tflushSync,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n} from 'react-dom';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\n\n/**\n * Creates a portal into which a component can be rendered.\n *\n * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235\n *\n * @param {import('./react').WPElement} child Any renderable child, such as an element,\n * string, or fragment.\n * @param {HTMLElement} container DOM node into which element should be rendered.\n */\nexport { createPortal };\n\n/**\n * Finds the dom node of a React component.\n *\n * @param {import('./react').WPComponent} component Component's instance.\n */\nexport { findDOMNode };\n\n/**\n * Forces React to flush any updates inside the provided callback synchronously.\n *\n * @param {Function} callback Callback to run synchronously.\n */\nexport { flushSync };\n\n/**\n * Renders a given element into the target DOM node.\n *\n * @deprecated since WordPress 6.2.0. Use `createRoot` instead.\n * @see https://react.dev/reference/react-dom/render\n */\nexport { render };\n\n/**\n * Hydrates a given element into the target DOM node.\n *\n * @deprecated since WordPress 6.2.0. Use `hydrateRoot` instead.\n * @see https://react.dev/reference/react-dom/hydrate\n */\nexport { hydrate };\n\n/**\n * Creates a new React root for the target DOM node.\n *\n * @since 6.2.0 Introduced in WordPress core.\n * @see https://react.dev/reference/react-dom/client/createRoot\n */\nexport { createRoot };\n\n/**\n * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup.\n *\n * @since 6.2.0 Introduced in WordPress core.\n * @see https://react.dev/reference/react-dom/client/hydrateRoot\n */\nexport { hydrateRoot };\n\n/**\n * Removes any mounted element from the target DOM node.\n *\n * @deprecated since WordPress 6.2.0. Use `root.unmount()` instead.\n * @see https://react.dev/reference/react-dom/unmountComponentAtNode\n */\nexport { unmountComponentAtNode };\n"]}
@@ -55,11 +55,11 @@ export type WPElement = import('./react').WPElement;
55
55
  * }
56
56
  * ```
57
57
  *
58
- * @param {string} interpolatedString The interpolation string to be parsed.
59
- * @param {Object} conversionMap The map used to convert the string to
60
- * a react element.
58
+ * @param {string} interpolatedString The interpolation string to be parsed.
59
+ * @param {Record<string, WPElement>} conversionMap The map used to convert the string to
60
+ * a react element.
61
61
  * @throws {TypeError}
62
62
  * @return {WPElement} A wp element.
63
63
  */
64
- declare function createInterpolateElement(interpolatedString: string, conversionMap: any): WPElement;
64
+ declare function createInterpolateElement(interpolatedString: string, conversionMap: Record<string, WPElement>): WPElement;
65
65
  //# sourceMappingURL=create-interpolate-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-interpolate-element.d.ts","sourceRoot":"","sources":["../src/create-interpolate-element.js"],"names":[],"mappings":";;;;;;;;aA+Bc,SAAS;;;;;gBACT,MAAM;;;;;iBAEN,MAAM;;;;;iBAEN,MAAM;;;;;;uBAEN,MAAM;;;;cAGN,SAAS,EAAE;;wBApCX,OAAO,SAAS,EAAE,SAAS;AA6EzC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8DANW,MAAM,uBAIL,SAAS,CAmBpB"}
1
+ {"version":3,"file":"create-interpolate-element.d.ts","sourceRoot":"","sources":["../src/create-interpolate-element.js"],"names":[],"mappings":";;;;;;;;aA+Bc,SAAS;;;;;gBACT,MAAM;;;;;iBAEN,MAAM;;;;;iBAEN,MAAM;;;;;;uBAEN,MAAM;;;;cAGN,SAAS,EAAE;;wBApCX,OAAO,SAAS,EAAE,SAAS;AA6EzC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8DANW,MAAM,iBACN,OAAO,MAAM,EAAE,SAAS,CAAC,GAGxB,SAAS,CAmBpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/element",
3
- "version": "5.6.0",
3
+ "version": "5.8.0",
4
4
  "description": "Element React module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -31,7 +31,7 @@
31
31
  "@babel/runtime": "^7.16.0",
32
32
  "@types/react": "^18.0.21",
33
33
  "@types/react-dom": "^18.0.6",
34
- "@wordpress/escape-html": "^2.29.0",
34
+ "@wordpress/escape-html": "^2.31.0",
35
35
  "change-case": "^4.1.2",
36
36
  "is-plain-object": "^5.0.0",
37
37
  "react": "^18.2.0",
@@ -40,5 +40,5 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "9534a7b3bbf07c1d40b94fdb7a3d091f297bfb06"
43
+ "gitHead": "d61700b9f1c72ba0b030fc815ef1685b4f4031ec"
44
44
  }
@@ -101,9 +101,9 @@ function createFrame(
101
101
  * }
102
102
  * ```
103
103
  *
104
- * @param {string} interpolatedString The interpolation string to be parsed.
105
- * @param {Object} conversionMap The map used to convert the string to
106
- * a react element.
104
+ * @param {string} interpolatedString The interpolation string to be parsed.
105
+ * @param {Record<string, WPElement>} conversionMap The map used to convert the string to
106
+ * a react element.
107
107
  * @throws {TypeError}
108
108
  * @return {WPElement} A wp element.
109
109
  */
@@ -39,36 +39,39 @@ export { flushSync };
39
39
  /**
40
40
  * Renders a given element into the target DOM node.
41
41
  *
42
- * @param {import('./react').WPElement} element Element to render.
43
- * @param {HTMLElement} target DOM node into which element should be rendered.
42
+ * @deprecated since WordPress 6.2.0. Use `createRoot` instead.
43
+ * @see https://react.dev/reference/react-dom/render
44
44
  */
45
45
  export { render };
46
46
 
47
47
  /**
48
48
  * Hydrates a given element into the target DOM node.
49
49
  *
50
- * @param {import('./react').WPElement} element Element to hydrate.
51
- * @param {HTMLElement} target DOM node into which element should be hydrated.
50
+ * @deprecated since WordPress 6.2.0. Use `hydrateRoot` instead.
51
+ * @see https://react.dev/reference/react-dom/hydrate
52
52
  */
53
53
  export { hydrate };
54
54
 
55
55
  /**
56
56
  * Creates a new React root for the target DOM node.
57
57
  *
58
- * @see https://reactjs.org/docs/react-dom-client.html#createroot
58
+ * @since 6.2.0 Introduced in WordPress core.
59
+ * @see https://react.dev/reference/react-dom/client/createRoot
59
60
  */
60
61
  export { createRoot };
61
62
 
62
63
  /**
63
64
  * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup.
64
65
  *
65
- * @see https://reactjs.org/docs/react-dom-client.html#hydrateroot
66
+ * @since 6.2.0 Introduced in WordPress core.
67
+ * @see https://react.dev/reference/react-dom/client/hydrateRoot
66
68
  */
67
69
  export { hydrateRoot };
68
70
 
69
71
  /**
70
72
  * Removes any mounted element from the target DOM node.
71
73
  *
72
- * @param {Element} target DOM node in which element is to be removed
74
+ * @deprecated since WordPress 6.2.0. Use `root.unmount()` instead.
75
+ * @see https://react.dev/reference/react-dom/unmountComponentAtNode
73
76
  */
74
77
  export { unmountComponentAtNode };
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","./node_modules/@types/react/index.d.ts","./src/react.js","./src/create-interpolate-element.js","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-dom/client.d.ts","./src/react-platform.js","./src/utils.js","./src/platform.js","../../node_modules/is-plain-object/is-plain-object.d.ts","../../node_modules/no-case/dist/index.d.ts","../../node_modules/pascal-case/dist/index.d.ts","../../node_modules/camel-case/dist/index.d.ts","../../node_modules/capital-case/dist/index.d.ts","../../node_modules/constant-case/dist/index.d.ts","../../node_modules/dot-case/dist/index.d.ts","../../node_modules/header-case/dist/index.d.ts","../../node_modules/param-case/dist/index.d.ts","../../node_modules/path-case/dist/index.d.ts","../../node_modules/sentence-case/dist/index.d.ts","../../node_modules/snake-case/dist/index.d.ts","../../node_modules/change-case/dist/index.d.ts","../escape-html/build-types/index.d.ts","./src/raw-html.js","./src/serialize.js","./src/index.js","../../node_modules/@types/react/global.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"381899b8d1d4c1be716f18cb5242ba39f66f4b1e31d45af62a32a99f8edcb39d","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},{"version":"7a58f31fde65860374f0316b1c33d36e6989fb760ae6c37899650d094d4818bf","signature":"d6fb9ff2cee2c7a615095294725795a017ea0ed527f735194d4b53438d16d2b5"},{"version":"7872dacc152b788c27e87def0abb73dffe7c1ab30b34dd131f5e7a24b925cc00","signature":"bcea387d6dda72c67859577371766e98ecdc7469136180034d96e099221969a9"},{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386",{"version":"2467a678a4d43d086ad93e539d9b2406f5b209f271772b56d1d092001e31b5a7","signature":"ecdb92a68dfadbd8028f19871cc68056a1eed73882d7a1cc694150b0f0b46abd"},{"version":"2a99fa3c0f4461420236f7e60b5e61091abef2f2ab686c1eb21c82039542f77c","signature":"4d807d55c784b72f71c092c34c84d09b95c29500c30252538fd5cf9a0a788c0e"},{"version":"36af408a1aedb7ef10cb8d8c8a1474883330805d09c17f080887143602cf9f77","signature":"4179323c5420e86202ce6eafc5670823ae577c5643629f9d878ff1d0d9d9d7a8"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","b4e123af1af6049685c93073a15868b50aebdad666d422edc72fa2b585fa8a37","f86c04a744ebcede96bac376f9a2c90f2bd3c422740d91dda4ca6233199d4977","6ae1bddee5c790439bd992abd063b9b46e0cadd676c2a8562268d1869213ff60","606244fc97a6a74b877f2e924ba7e55b233bc6acb57d7bf40ba84a5be2d9adb0","4a1cabac71036b8a14f5db1b753b579f0c901c7d7b9227e6872dadf6efb104e8","062959a1d825b96639d87be35fe497cbd3f89544bf06fdad577bbfb85fcf604c","4c3672dc8f4e4fdd3d18525b22b31f1b5481f5a415db96550d3ac5163a6c3dd3","f9a69ca445010b91fe08f08c06e0f86d79c0d776905f9bdb828477cb2a1eb7fc","ad7fd0e7ee457d4884b3aaecbcbd2a80b6803407c4ce2540c296170d4c7918ef","a50ef21605f41c6acad6c3ef0307e5311b94963c846ca093c764b80cdb5318d6","74b4035dd26d09a417c44ca23ab5ee69b173f8c2f6b2e47350ab0795cf2d4a17","918f86ee2b19cc38cb8b1a4cf8f223eb228aaa39df3604c42f700fac2f0b3ea1","50df563ad5ecc74b720c28955b5df707fda64ea42d123d55ced52657bf4e9b6c",{"version":"869b42f50db4f8ef7aaa344f15af1e9f15f7a544db4b451210a059d01a4bd50b","signature":"582f001c48a6204fd6bb5c6c71b36adc5256078c0ac3686b99db59cbb724ca73"},{"version":"485fd86507321b06a1d3f025712687860b422054fc16d29ffcdd8b8bc16968db","signature":"69ae15cf7f64219db1d1585f0ec791ee14b48d07e4fb453e80137b84e0a8c3a0"},{"version":"e2877cc0e5f7bb33c7751b0e66c102d26cb2423e65908fde2ed3093d571ee264","signature":"af88a0b0f808a6721401550621bfe67c46c6fd55000305058e7c73600d119a9b"}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"rootDir":"./src","strict":true,"strictNullChecks":false,"target":99},"fileIdsList":[[60],[57,58,59,86],[71],[70],[70,71,72,73,74,75,76,77,78,79,80],[73],[75],[56,57,58,59],[61],[61,62,66,67,68,83,84],[60,61],[61,64,65],[60,61,69,81,82,83]],"referencedMap":[[65,1],[64,1],[63,2],[72,3],[73,4],[81,5],[74,4],[75,4],[76,6],[77,7],[71,4],[78,7],[79,4],[80,7],[60,8],[62,9],[85,10],[83,11],[66,12],[61,1],[84,13]],"exportedModulesMap":[[65,1],[64,1],[63,2],[72,3],[73,4],[81,5],[74,4],[75,4],[76,6],[77,7],[71,4],[78,7],[79,4],[80,7],[60,8],[62,9],[83,1],[61,1],[84,11]],"semanticDiagnosticsPerFile":[58,65,64,63,59,72,73,81,74,57,75,76,69,70,77,71,78,79,80,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,56,60,62,85,68,83,66,61,84,67,82],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"4.9.5"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","./node_modules/@types/react/index.d.ts","./src/react.js","./src/create-interpolate-element.js","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-dom/client.d.ts","./src/react-platform.js","./src/utils.js","./src/platform.js","../../node_modules/is-plain-object/is-plain-object.d.ts","../../node_modules/no-case/dist/index.d.ts","../../node_modules/pascal-case/dist/index.d.ts","../../node_modules/camel-case/dist/index.d.ts","../../node_modules/capital-case/dist/index.d.ts","../../node_modules/constant-case/dist/index.d.ts","../../node_modules/dot-case/dist/index.d.ts","../../node_modules/header-case/dist/index.d.ts","../../node_modules/param-case/dist/index.d.ts","../../node_modules/path-case/dist/index.d.ts","../../node_modules/sentence-case/dist/index.d.ts","../../node_modules/snake-case/dist/index.d.ts","../../node_modules/change-case/dist/index.d.ts","../escape-html/build-types/index.d.ts","./src/raw-html.js","./src/serialize.js","./src/index.js","../../node_modules/@types/react/global.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"381899b8d1d4c1be716f18cb5242ba39f66f4b1e31d45af62a32a99f8edcb39d","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},{"version":"7a58f31fde65860374f0316b1c33d36e6989fb760ae6c37899650d094d4818bf","signature":"d6fb9ff2cee2c7a615095294725795a017ea0ed527f735194d4b53438d16d2b5"},{"version":"f04896c7678439e6989596f4d6b2fd5b39a7949244028896aff4ca8fa1a1667b","signature":"9448cecc866cbdbe522f6152b6645e3e36aaee8f276d04e6c8bed83193b12c73"},{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386",{"version":"5df533459dd81f66f06856f02d7971898e65b2d26e2198544530553470e1e413","signature":"ecdb92a68dfadbd8028f19871cc68056a1eed73882d7a1cc694150b0f0b46abd"},{"version":"2a99fa3c0f4461420236f7e60b5e61091abef2f2ab686c1eb21c82039542f77c","signature":"4d807d55c784b72f71c092c34c84d09b95c29500c30252538fd5cf9a0a788c0e"},{"version":"36af408a1aedb7ef10cb8d8c8a1474883330805d09c17f080887143602cf9f77","signature":"4179323c5420e86202ce6eafc5670823ae577c5643629f9d878ff1d0d9d9d7a8"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","b4e123af1af6049685c93073a15868b50aebdad666d422edc72fa2b585fa8a37","f86c04a744ebcede96bac376f9a2c90f2bd3c422740d91dda4ca6233199d4977","6ae1bddee5c790439bd992abd063b9b46e0cadd676c2a8562268d1869213ff60","606244fc97a6a74b877f2e924ba7e55b233bc6acb57d7bf40ba84a5be2d9adb0","4a1cabac71036b8a14f5db1b753b579f0c901c7d7b9227e6872dadf6efb104e8","062959a1d825b96639d87be35fe497cbd3f89544bf06fdad577bbfb85fcf604c","4c3672dc8f4e4fdd3d18525b22b31f1b5481f5a415db96550d3ac5163a6c3dd3","f9a69ca445010b91fe08f08c06e0f86d79c0d776905f9bdb828477cb2a1eb7fc","ad7fd0e7ee457d4884b3aaecbcbd2a80b6803407c4ce2540c296170d4c7918ef","a50ef21605f41c6acad6c3ef0307e5311b94963c846ca093c764b80cdb5318d6","74b4035dd26d09a417c44ca23ab5ee69b173f8c2f6b2e47350ab0795cf2d4a17","918f86ee2b19cc38cb8b1a4cf8f223eb228aaa39df3604c42f700fac2f0b3ea1","50df563ad5ecc74b720c28955b5df707fda64ea42d123d55ced52657bf4e9b6c",{"version":"869b42f50db4f8ef7aaa344f15af1e9f15f7a544db4b451210a059d01a4bd50b","signature":"582f001c48a6204fd6bb5c6c71b36adc5256078c0ac3686b99db59cbb724ca73"},{"version":"485fd86507321b06a1d3f025712687860b422054fc16d29ffcdd8b8bc16968db","signature":"69ae15cf7f64219db1d1585f0ec791ee14b48d07e4fb453e80137b84e0a8c3a0"},{"version":"e2877cc0e5f7bb33c7751b0e66c102d26cb2423e65908fde2ed3093d571ee264","signature":"af88a0b0f808a6721401550621bfe67c46c6fd55000305058e7c73600d119a9b"}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"rootDir":"./src","strict":true,"strictNullChecks":false,"target":99},"fileIdsList":[[60],[57,58,59,86],[71],[70],[70,71,72,73,74,75,76,77,78,79,80],[73],[75],[56,57,58,59],[61],[61,62,66,67,68,83,84],[60,61],[61,64,65],[60,61,69,81,82,83]],"referencedMap":[[65,1],[64,1],[63,2],[72,3],[73,4],[81,5],[74,4],[75,4],[76,6],[77,7],[71,4],[78,7],[79,4],[80,7],[60,8],[62,9],[85,10],[83,11],[66,12],[61,1],[84,13]],"exportedModulesMap":[[65,1],[64,1],[63,2],[72,3],[73,4],[81,5],[74,4],[75,4],[76,6],[77,7],[71,4],[78,7],[79,4],[80,7],[60,8],[62,9],[83,1],[61,1],[84,11]],"semanticDiagnosticsPerFile":[58,65,64,63,59,72,73,81,74,57,75,76,69,70,77,71,78,79,80,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,56,60,62,85,68,83,66,61,84,67,82],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"4.9.5"}