@posthog/rrweb 0.0.32 → 0.0.35

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/dist/rrweb.js CHANGED
@@ -891,6 +891,7 @@ function hrefFrom(n2) {
891
891
  return n2.href;
892
892
  }
893
893
  function serializeElementNode(n2, options) {
894
+ var _a2, _b;
894
895
  const {
895
896
  doc,
896
897
  blockClass,
@@ -1064,11 +1065,13 @@ function serializeElementNode(n2, options) {
1064
1065
  }
1065
1066
  }
1066
1067
  if (needBlock) {
1067
- const { width, height } = n2.getBoundingClientRect();
1068
+ const { width, height, left, top } = n2.getBoundingClientRect();
1068
1069
  attributes = {
1069
1070
  class: attributes.class,
1070
1071
  rr_width: `${width}px`,
1071
- rr_height: `${height}px`
1072
+ rr_height: `${height}px`,
1073
+ rr_left: `${Math.floor(left + (((_a2 = doc.defaultView) == null ? void 0 : _a2.scrollX) || 0))}px`,
1074
+ rr_top: `${Math.floor(top + (((_b = doc.defaultView) == null ? void 0 : _b.scrollY) || 0))}px`
1072
1075
  };
1073
1076
  }
1074
1077
  if (tagName === "iframe" && !keepIframeSrcFn(attributes.src)) {
@@ -1473,7 +1476,7 @@ function getDefaultExportFromCjs$1(x) {
1473
1476
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
1474
1477
  }
1475
1478
  function getAugmentedNamespace$1(n2) {
1476
- if (n2.__esModule) return n2;
1479
+ if (Object.prototype.hasOwnProperty.call(n2, "__esModule")) return n2;
1477
1480
  var f2 = n2.default;
1478
1481
  if (typeof f2 == "function") {
1479
1482
  var a2 = function a3() {
@@ -1992,6 +1995,9 @@ function requireNode$1() {
1992
1995
  return offset;
1993
1996
  }
1994
1997
  class Node2 {
1998
+ get proxyOf() {
1999
+ return this;
2000
+ }
1995
2001
  constructor(defaults = {}) {
1996
2002
  this.raws = {};
1997
2003
  this[isClean] = false;
@@ -2110,7 +2116,7 @@ function requireNode$1() {
2110
2116
  let index2 = this.parent.index(this);
2111
2117
  return this.parent.nodes[index2 + 1];
2112
2118
  }
2113
- positionBy(opts) {
2119
+ positionBy(opts = {}) {
2114
2120
  let pos = this.source.start;
2115
2121
  if (opts.index) {
2116
2122
  pos = this.positionInside(opts.index);
@@ -2139,27 +2145,38 @@ function requireNode$1() {
2139
2145
  column += 1;
2140
2146
  }
2141
2147
  }
2142
- return { column, line };
2148
+ return { column, line, offset: end };
2143
2149
  }
2144
2150
  prev() {
2145
2151
  if (!this.parent) return void 0;
2146
2152
  let index2 = this.parent.index(this);
2147
2153
  return this.parent.nodes[index2 - 1];
2148
2154
  }
2149
- rangeBy(opts) {
2155
+ rangeBy(opts = {}) {
2156
+ let inputString = "document" in this.source.input ? this.source.input.document : this.source.input.css;
2150
2157
  let start = {
2151
2158
  column: this.source.start.column,
2152
- line: this.source.start.line
2159
+ line: this.source.start.line,
2160
+ offset: sourceOffset(inputString, this.source.start)
2153
2161
  };
2154
2162
  let end = this.source.end ? {
2155
2163
  column: this.source.end.column + 1,
2156
- line: this.source.end.line
2164
+ line: this.source.end.line,
2165
+ offset: typeof this.source.end.offset === "number" ? (
2166
+ // `source.end.offset` is exclusive, so we don't need to add 1
2167
+ this.source.end.offset
2168
+ ) : (
2169
+ // Since line/column in this.source.end is inclusive,
2170
+ // the `sourceOffset(... , this.source.end)` returns an inclusive offset.
2171
+ // So, we add 1 to convert it to exclusive.
2172
+ sourceOffset(inputString, this.source.end) + 1
2173
+ )
2157
2174
  } : {
2158
2175
  column: start.column + 1,
2159
- line: start.line
2176
+ line: start.line,
2177
+ offset: start.offset + 1
2160
2178
  };
2161
2179
  if (opts.word) {
2162
- let inputString = "document" in this.source.input ? this.source.input.document : this.source.input.css;
2163
2180
  let stringRepresentation = inputString.slice(
2164
2181
  sourceOffset(inputString, this.source.start),
2165
2182
  sourceOffset(inputString, this.source.end)
@@ -2167,15 +2184,14 @@ function requireNode$1() {
2167
2184
  let index2 = stringRepresentation.indexOf(opts.word);
2168
2185
  if (index2 !== -1) {
2169
2186
  start = this.positionInside(index2);
2170
- end = this.positionInside(
2171
- index2 + opts.word.length
2172
- );
2187
+ end = this.positionInside(index2 + opts.word.length);
2173
2188
  }
2174
2189
  } else {
2175
2190
  if (opts.start) {
2176
2191
  start = {
2177
2192
  column: opts.start.column,
2178
- line: opts.start.line
2193
+ line: opts.start.line,
2194
+ offset: sourceOffset(inputString, opts.start)
2179
2195
  };
2180
2196
  } else if (opts.index) {
2181
2197
  start = this.positionInside(opts.index);
@@ -2183,7 +2199,8 @@ function requireNode$1() {
2183
2199
  if (opts.end) {
2184
2200
  end = {
2185
2201
  column: opts.end.column,
2186
- line: opts.end.line
2202
+ line: opts.end.line,
2203
+ offset: sourceOffset(inputString, opts.end)
2187
2204
  };
2188
2205
  } else if (typeof opts.endIndex === "number") {
2189
2206
  end = this.positionInside(opts.endIndex);
@@ -2192,7 +2209,11 @@ function requireNode$1() {
2192
2209
  }
2193
2210
  }
2194
2211
  if (end.line < start.line || end.line === start.line && end.column <= start.column) {
2195
- end = { column: start.column + 1, line: start.line };
2212
+ end = {
2213
+ column: start.column + 1,
2214
+ line: start.line,
2215
+ offset: start.offset + 1
2216
+ };
2196
2217
  }
2197
2218
  return { end, start };
2198
2219
  }
@@ -2256,6 +2277,7 @@ function requireNode$1() {
2256
2277
  } else if (typeof value === "object" && value.toJSON) {
2257
2278
  fixed[name] = value.toJSON(null, inputs);
2258
2279
  } else if (name === "source") {
2280
+ if (value == null) continue;
2259
2281
  let inputId = inputs.get(value.input);
2260
2282
  if (inputId == null) {
2261
2283
  inputId = inputsNextIndex;
@@ -2290,14 +2312,11 @@ function requireNode$1() {
2290
2312
  });
2291
2313
  return result2;
2292
2314
  }
2293
- warn(result2, text, opts) {
2315
+ warn(result2, text, opts = {}) {
2294
2316
  let data = { node: this };
2295
2317
  for (let i2 in opts) data[i2] = opts[i2];
2296
2318
  return result2.warn(text, data);
2297
2319
  }
2298
- get proxyOf() {
2299
- return this;
2300
- }
2301
2320
  }
2302
2321
  node$1 = Node2;
2303
2322
  Node2.default = Node2;
@@ -2326,6 +2345,9 @@ function requireDeclaration$1() {
2326
2345
  hasRequiredDeclaration$1 = 1;
2327
2346
  let Node2 = requireNode$1();
2328
2347
  class Declaration extends Node2 {
2348
+ get variable() {
2349
+ return this.prop.startsWith("--") || this.prop[0] === "$";
2350
+ }
2329
2351
  constructor(defaults) {
2330
2352
  if (defaults && typeof defaults.value !== "undefined" && typeof defaults.value !== "string") {
2331
2353
  defaults = { ...defaults, value: String(defaults.value) };
@@ -2333,9 +2355,6 @@ function requireDeclaration$1() {
2333
2355
  super(defaults);
2334
2356
  this.type = "decl";
2335
2357
  }
2336
- get variable() {
2337
- return this.prop.startsWith("--") || this.prop[0] === "$";
2338
- }
2339
2358
  }
2340
2359
  declaration$1 = Declaration;
2341
2360
  Declaration.default = Declaration;
@@ -2367,6 +2386,14 @@ function requireContainer$1() {
2367
2386
  }
2368
2387
  }
2369
2388
  class Container extends Node2 {
2389
+ get first() {
2390
+ if (!this.proxyOf.nodes) return void 0;
2391
+ return this.proxyOf.nodes[0];
2392
+ }
2393
+ get last() {
2394
+ if (!this.proxyOf.nodes) return void 0;
2395
+ return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
2396
+ }
2370
2397
  append(...children) {
2371
2398
  for (let child of children) {
2372
2399
  let nodes = this.normalize(child, this.last);
@@ -2679,14 +2706,6 @@ function requireContainer$1() {
2679
2706
  }
2680
2707
  });
2681
2708
  }
2682
- get first() {
2683
- if (!this.proxyOf.nodes) return void 0;
2684
- return this.proxyOf.nodes[0];
2685
- }
2686
- get last() {
2687
- if (!this.proxyOf.nodes) return void 0;
2688
- return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
2689
- }
2690
2709
  }
2691
2710
  Container.registerParse = (dependant) => {
2692
2711
  parse = dependant;
@@ -2936,10 +2955,25 @@ function requireInput$1() {
2936
2955
  let CssSyntaxError = requireCssSyntaxError$1();
2937
2956
  let PreviousMap = requirePreviousMap$1();
2938
2957
  let terminalHighlight = require$$2$1;
2939
- let fromOffsetCache = Symbol("fromOffsetCache");
2958
+ let lineToIndexCache = Symbol("lineToIndexCache");
2940
2959
  let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);
2941
2960
  let pathAvailable = Boolean(resolve && isAbsolute);
2961
+ function getLineToIndex(input2) {
2962
+ if (input2[lineToIndexCache]) return input2[lineToIndexCache];
2963
+ let lines = input2.css.split("\n");
2964
+ let lineToIndex = new Array(lines.length);
2965
+ let prevIndex = 0;
2966
+ for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {
2967
+ lineToIndex[i2] = prevIndex;
2968
+ prevIndex += lines[i2].length + 1;
2969
+ }
2970
+ input2[lineToIndexCache] = lineToIndex;
2971
+ return lineToIndex;
2972
+ }
2942
2973
  class Input {
2974
+ get from() {
2975
+ return this.file || this.id;
2976
+ }
2943
2977
  constructor(css, opts = {}) {
2944
2978
  if (css === null || typeof css === "undefined" || typeof css === "object" && !css.toString) {
2945
2979
  throw new Error(`PostCSS received ${css} instead of CSS string`);
@@ -2974,30 +3008,37 @@ function requireInput$1() {
2974
3008
  if (this.map) this.map.file = this.from;
2975
3009
  }
2976
3010
  error(message, line, column, opts = {}) {
2977
- let endColumn, endLine, result2;
3011
+ let endColumn, endLine, endOffset, offset, result2;
2978
3012
  if (line && typeof line === "object") {
2979
3013
  let start = line;
2980
3014
  let end = column;
2981
3015
  if (typeof start.offset === "number") {
2982
- let pos = this.fromOffset(start.offset);
3016
+ offset = start.offset;
3017
+ let pos = this.fromOffset(offset);
2983
3018
  line = pos.line;
2984
3019
  column = pos.col;
2985
3020
  } else {
2986
3021
  line = start.line;
2987
3022
  column = start.column;
3023
+ offset = this.fromLineAndColumn(line, column);
2988
3024
  }
2989
3025
  if (typeof end.offset === "number") {
2990
- let pos = this.fromOffset(end.offset);
3026
+ endOffset = end.offset;
3027
+ let pos = this.fromOffset(endOffset);
2991
3028
  endLine = pos.line;
2992
3029
  endColumn = pos.col;
2993
3030
  } else {
2994
3031
  endLine = end.line;
2995
3032
  endColumn = end.column;
3033
+ endOffset = this.fromLineAndColumn(end.line, end.column);
2996
3034
  }
2997
3035
  } else if (!column) {
2998
- let pos = this.fromOffset(line);
3036
+ offset = line;
3037
+ let pos = this.fromOffset(offset);
2999
3038
  line = pos.line;
3000
3039
  column = pos.col;
3040
+ } else {
3041
+ offset = this.fromLineAndColumn(line, column);
3001
3042
  }
3002
3043
  let origin = this.origin(line, column, endLine, endColumn);
3003
3044
  if (origin) {
@@ -3019,7 +3060,7 @@ function requireInput$1() {
3019
3060
  opts.plugin
3020
3061
  );
3021
3062
  }
3022
- result2.input = { column, endColumn, endLine, line, source: this.css };
3063
+ result2.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css };
3023
3064
  if (this.file) {
3024
3065
  if (pathToFileURL) {
3025
3066
  result2.input.url = pathToFileURL(this.file).toString();
@@ -3028,21 +3069,14 @@ function requireInput$1() {
3028
3069
  }
3029
3070
  return result2;
3030
3071
  }
3072
+ fromLineAndColumn(line, column) {
3073
+ let lineToIndex = getLineToIndex(this);
3074
+ let index2 = lineToIndex[line - 1];
3075
+ return index2 + column - 1;
3076
+ }
3031
3077
  fromOffset(offset) {
3032
- let lastLine, lineToIndex;
3033
- if (!this[fromOffsetCache]) {
3034
- let lines = this.css.split("\n");
3035
- lineToIndex = new Array(lines.length);
3036
- let prevIndex = 0;
3037
- for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {
3038
- lineToIndex[i2] = prevIndex;
3039
- prevIndex += lines[i2].length + 1;
3040
- }
3041
- this[fromOffsetCache] = lineToIndex;
3042
- } else {
3043
- lineToIndex = this[fromOffsetCache];
3044
- }
3045
- lastLine = lineToIndex[lineToIndex.length - 1];
3078
+ let lineToIndex = getLineToIndex(this);
3079
+ let lastLine = lineToIndex[lineToIndex.length - 1];
3046
3080
  let min = 0;
3047
3081
  if (offset >= lastLine) {
3048
3082
  min = lineToIndex.length - 1;
@@ -3123,9 +3157,6 @@ function requireInput$1() {
3123
3157
  }
3124
3158
  return json;
3125
3159
  }
3126
- get from() {
3127
- return this.file || this.id;
3128
- }
3129
3160
  }
3130
3161
  input$1 = Input;
3131
3162
  Input.default = Input;
@@ -3251,11 +3282,6 @@ function requireRule$1() {
3251
3282
  let Container = requireContainer$1();
3252
3283
  let list = requireList$1();
3253
3284
  class Rule extends Container {
3254
- constructor(defaults) {
3255
- super(defaults);
3256
- this.type = "rule";
3257
- if (!this.nodes) this.nodes = [];
3258
- }
3259
3285
  get selectors() {
3260
3286
  return list.comma(this.selector);
3261
3287
  }
@@ -3264,6 +3290,11 @@ function requireRule$1() {
3264
3290
  let sep = match ? match[0] : "," + this.raw("between", "beforeOpen");
3265
3291
  this.selector = values.join(sep);
3266
3292
  }
3293
+ constructor(defaults) {
3294
+ super(defaults);
3295
+ this.type = "rule";
3296
+ if (!this.nodes) this.nodes = [];
3297
+ }
3267
3298
  }
3268
3299
  rule$1 = Rule;
3269
3300
  Rule.default = Rule;
@@ -4163,6 +4194,8 @@ function requireParser$1() {
4163
4194
  if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) {
4164
4195
  prev.raws.ownSemicolon = this.spaces;
4165
4196
  this.spaces = "";
4197
+ prev.source.end = this.getPosition(token[2]);
4198
+ prev.source.end.offset += prev.raws.ownSemicolon.length;
4166
4199
  }
4167
4200
  }
4168
4201
  }
@@ -4374,7 +4407,7 @@ function requireParser$1() {
4374
4407
  }
4375
4408
  unknownWord(tokens) {
4376
4409
  throw this.input.error(
4377
- "Unknown word",
4410
+ "Unknown word " + tokens[0][1],
4378
4411
  { offset: tokens[0][2] },
4379
4412
  { offset: tokens[0][2] + tokens[0][1].length }
4380
4413
  );
@@ -4467,12 +4500,15 @@ function requireResult$1() {
4467
4500
  hasRequiredResult$1 = 1;
4468
4501
  let Warning = requireWarning$1();
4469
4502
  class Result {
4503
+ get content() {
4504
+ return this.css;
4505
+ }
4470
4506
  constructor(processor2, root2, opts) {
4471
4507
  this.processor = processor2;
4472
4508
  this.messages = [];
4473
4509
  this.root = root2;
4474
4510
  this.opts = opts;
4475
- this.css = void 0;
4511
+ this.css = "";
4476
4512
  this.map = void 0;
4477
4513
  }
4478
4514
  toString() {
@@ -4491,9 +4527,6 @@ function requireResult$1() {
4491
4527
  warnings() {
4492
4528
  return this.messages.filter((i2) => i2.type === "warning");
4493
4529
  }
4494
- get content() {
4495
- return this.css;
4496
- }
4497
4530
  }
4498
4531
  result$1 = Result;
4499
4532
  Result.default = Result;
@@ -4612,6 +4645,30 @@ function requireLazyResult$1() {
4612
4645
  }
4613
4646
  let postcss2 = {};
4614
4647
  class LazyResult {
4648
+ get content() {
4649
+ return this.stringify().content;
4650
+ }
4651
+ get css() {
4652
+ return this.stringify().css;
4653
+ }
4654
+ get map() {
4655
+ return this.stringify().map;
4656
+ }
4657
+ get messages() {
4658
+ return this.sync().messages;
4659
+ }
4660
+ get opts() {
4661
+ return this.result.opts;
4662
+ }
4663
+ get processor() {
4664
+ return this.result.processor;
4665
+ }
4666
+ get root() {
4667
+ return this.sync().root;
4668
+ }
4669
+ get [Symbol.toStringTag]() {
4670
+ return "LazyResult";
4671
+ }
4615
4672
  constructor(processor2, css, opts) {
4616
4673
  this.stringified = false;
4617
4674
  this.processed = false;
@@ -4954,30 +5011,6 @@ function requireLazyResult$1() {
4954
5011
  warnings() {
4955
5012
  return this.sync().warnings();
4956
5013
  }
4957
- get content() {
4958
- return this.stringify().content;
4959
- }
4960
- get css() {
4961
- return this.stringify().css;
4962
- }
4963
- get map() {
4964
- return this.stringify().map;
4965
- }
4966
- get messages() {
4967
- return this.sync().messages;
4968
- }
4969
- get opts() {
4970
- return this.result.opts;
4971
- }
4972
- get processor() {
4973
- return this.result.processor;
4974
- }
4975
- get root() {
4976
- return this.sync().root;
4977
- }
4978
- get [Symbol.toStringTag]() {
4979
- return "LazyResult";
4980
- }
4981
5014
  }
4982
5015
  LazyResult.registerPostcss = (dependant) => {
4983
5016
  postcss2 = dependant;
@@ -4999,6 +5032,45 @@ function requireNoWorkResult$1() {
4999
5032
  let stringify = requireStringify$1();
5000
5033
  let warnOnce2 = requireWarnOnce$1();
5001
5034
  class NoWorkResult {
5035
+ get content() {
5036
+ return this.result.css;
5037
+ }
5038
+ get css() {
5039
+ return this.result.css;
5040
+ }
5041
+ get map() {
5042
+ return this.result.map;
5043
+ }
5044
+ get messages() {
5045
+ return [];
5046
+ }
5047
+ get opts() {
5048
+ return this.result.opts;
5049
+ }
5050
+ get processor() {
5051
+ return this.result.processor;
5052
+ }
5053
+ get root() {
5054
+ if (this._root) {
5055
+ return this._root;
5056
+ }
5057
+ let root2;
5058
+ let parser2 = parse;
5059
+ try {
5060
+ root2 = parser2(this._css, this._opts);
5061
+ } catch (error) {
5062
+ this.error = error;
5063
+ }
5064
+ if (this.error) {
5065
+ throw this.error;
5066
+ } else {
5067
+ this._root = root2;
5068
+ return root2;
5069
+ }
5070
+ }
5071
+ get [Symbol.toStringTag]() {
5072
+ return "NoWorkResult";
5073
+ }
5002
5074
  constructor(processor2, css, opts) {
5003
5075
  css = css.toString();
5004
5076
  this.stringified = false;
@@ -5060,45 +5132,6 @@ function requireNoWorkResult$1() {
5060
5132
  warnings() {
5061
5133
  return [];
5062
5134
  }
5063
- get content() {
5064
- return this.result.css;
5065
- }
5066
- get css() {
5067
- return this.result.css;
5068
- }
5069
- get map() {
5070
- return this.result.map;
5071
- }
5072
- get messages() {
5073
- return [];
5074
- }
5075
- get opts() {
5076
- return this.result.opts;
5077
- }
5078
- get processor() {
5079
- return this.result.processor;
5080
- }
5081
- get root() {
5082
- if (this._root) {
5083
- return this._root;
5084
- }
5085
- let root2;
5086
- let parser2 = parse;
5087
- try {
5088
- root2 = parser2(this._css, this._opts);
5089
- } catch (error) {
5090
- this.error = error;
5091
- }
5092
- if (this.error) {
5093
- throw this.error;
5094
- } else {
5095
- this._root = root2;
5096
- return root2;
5097
- }
5098
- }
5099
- get [Symbol.toStringTag]() {
5100
- return "NoWorkResult";
5101
- }
5102
5135
  }
5103
5136
  noWorkResult$1 = NoWorkResult;
5104
5137
  NoWorkResult.default = NoWorkResult;
@@ -5115,7 +5148,7 @@ function requireProcessor$1() {
5115
5148
  let Root = requireRoot$1();
5116
5149
  class Processor {
5117
5150
  constructor(plugins = []) {
5118
- this.version = "8.5.1";
5151
+ this.version = "8.5.6";
5119
5152
  this.plugins = this.normalize(plugins);
5120
5153
  }
5121
5154
  normalize(plugins) {
@@ -5571,6 +5604,12 @@ function buildNode(n2, options) {
5571
5604
  node2.style.setProperty("width", value.toString());
5572
5605
  } else if (name === "rr_height") {
5573
5606
  node2.style.setProperty("height", value.toString());
5607
+ } else if (name === "rr_left") {
5608
+ node2.style.setProperty("left", value.toString());
5609
+ node2.style.setProperty("position", "absolute");
5610
+ } else if (name === "rr_top") {
5611
+ node2.style.setProperty("top", value.toString());
5612
+ node2.style.setProperty("position", "absolute");
5574
5613
  } else if (name === "rr_mediaCurrentTime" && typeof value === "number") {
5575
5614
  node2.currentTime = value;
5576
5615
  } else if (name === "rr_mediaState") {
@@ -5830,7 +5869,7 @@ function getDefaultExportFromCjs(x) {
5830
5869
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
5831
5870
  }
5832
5871
  function getAugmentedNamespace(n2) {
5833
- if (n2.__esModule) return n2;
5872
+ if (Object.prototype.hasOwnProperty.call(n2, "__esModule")) return n2;
5834
5873
  var f2 = n2.default;
5835
5874
  if (typeof f2 == "function") {
5836
5875
  var a2 = function a3() {
@@ -6349,6 +6388,9 @@ function requireNode() {
6349
6388
  return offset;
6350
6389
  }
6351
6390
  class Node2 {
6391
+ get proxyOf() {
6392
+ return this;
6393
+ }
6352
6394
  constructor(defaults = {}) {
6353
6395
  this.raws = {};
6354
6396
  this[isClean] = false;
@@ -6467,7 +6509,7 @@ function requireNode() {
6467
6509
  let index2 = this.parent.index(this);
6468
6510
  return this.parent.nodes[index2 + 1];
6469
6511
  }
6470
- positionBy(opts) {
6512
+ positionBy(opts = {}) {
6471
6513
  let pos = this.source.start;
6472
6514
  if (opts.index) {
6473
6515
  pos = this.positionInside(opts.index);
@@ -6496,27 +6538,38 @@ function requireNode() {
6496
6538
  column += 1;
6497
6539
  }
6498
6540
  }
6499
- return { column, line };
6541
+ return { column, line, offset: end };
6500
6542
  }
6501
6543
  prev() {
6502
6544
  if (!this.parent) return void 0;
6503
6545
  let index2 = this.parent.index(this);
6504
6546
  return this.parent.nodes[index2 - 1];
6505
6547
  }
6506
- rangeBy(opts) {
6548
+ rangeBy(opts = {}) {
6549
+ let inputString = "document" in this.source.input ? this.source.input.document : this.source.input.css;
6507
6550
  let start = {
6508
6551
  column: this.source.start.column,
6509
- line: this.source.start.line
6552
+ line: this.source.start.line,
6553
+ offset: sourceOffset(inputString, this.source.start)
6510
6554
  };
6511
6555
  let end = this.source.end ? {
6512
6556
  column: this.source.end.column + 1,
6513
- line: this.source.end.line
6557
+ line: this.source.end.line,
6558
+ offset: typeof this.source.end.offset === "number" ? (
6559
+ // `source.end.offset` is exclusive, so we don't need to add 1
6560
+ this.source.end.offset
6561
+ ) : (
6562
+ // Since line/column in this.source.end is inclusive,
6563
+ // the `sourceOffset(... , this.source.end)` returns an inclusive offset.
6564
+ // So, we add 1 to convert it to exclusive.
6565
+ sourceOffset(inputString, this.source.end) + 1
6566
+ )
6514
6567
  } : {
6515
6568
  column: start.column + 1,
6516
- line: start.line
6569
+ line: start.line,
6570
+ offset: start.offset + 1
6517
6571
  };
6518
6572
  if (opts.word) {
6519
- let inputString = "document" in this.source.input ? this.source.input.document : this.source.input.css;
6520
6573
  let stringRepresentation = inputString.slice(
6521
6574
  sourceOffset(inputString, this.source.start),
6522
6575
  sourceOffset(inputString, this.source.end)
@@ -6524,15 +6577,14 @@ function requireNode() {
6524
6577
  let index2 = stringRepresentation.indexOf(opts.word);
6525
6578
  if (index2 !== -1) {
6526
6579
  start = this.positionInside(index2);
6527
- end = this.positionInside(
6528
- index2 + opts.word.length
6529
- );
6580
+ end = this.positionInside(index2 + opts.word.length);
6530
6581
  }
6531
6582
  } else {
6532
6583
  if (opts.start) {
6533
6584
  start = {
6534
6585
  column: opts.start.column,
6535
- line: opts.start.line
6586
+ line: opts.start.line,
6587
+ offset: sourceOffset(inputString, opts.start)
6536
6588
  };
6537
6589
  } else if (opts.index) {
6538
6590
  start = this.positionInside(opts.index);
@@ -6540,7 +6592,8 @@ function requireNode() {
6540
6592
  if (opts.end) {
6541
6593
  end = {
6542
6594
  column: opts.end.column,
6543
- line: opts.end.line
6595
+ line: opts.end.line,
6596
+ offset: sourceOffset(inputString, opts.end)
6544
6597
  };
6545
6598
  } else if (typeof opts.endIndex === "number") {
6546
6599
  end = this.positionInside(opts.endIndex);
@@ -6549,7 +6602,11 @@ function requireNode() {
6549
6602
  }
6550
6603
  }
6551
6604
  if (end.line < start.line || end.line === start.line && end.column <= start.column) {
6552
- end = { column: start.column + 1, line: start.line };
6605
+ end = {
6606
+ column: start.column + 1,
6607
+ line: start.line,
6608
+ offset: start.offset + 1
6609
+ };
6553
6610
  }
6554
6611
  return { end, start };
6555
6612
  }
@@ -6613,6 +6670,7 @@ function requireNode() {
6613
6670
  } else if (typeof value === "object" && value.toJSON) {
6614
6671
  fixed[name] = value.toJSON(null, inputs);
6615
6672
  } else if (name === "source") {
6673
+ if (value == null) continue;
6616
6674
  let inputId = inputs.get(value.input);
6617
6675
  if (inputId == null) {
6618
6676
  inputId = inputsNextIndex;
@@ -6647,14 +6705,11 @@ function requireNode() {
6647
6705
  });
6648
6706
  return result2;
6649
6707
  }
6650
- warn(result2, text, opts) {
6708
+ warn(result2, text, opts = {}) {
6651
6709
  let data = { node: this };
6652
6710
  for (let i2 in opts) data[i2] = opts[i2];
6653
6711
  return result2.warn(text, data);
6654
6712
  }
6655
- get proxyOf() {
6656
- return this;
6657
- }
6658
6713
  }
6659
6714
  node = Node2;
6660
6715
  Node2.default = Node2;
@@ -6683,6 +6738,9 @@ function requireDeclaration() {
6683
6738
  hasRequiredDeclaration = 1;
6684
6739
  let Node2 = requireNode();
6685
6740
  class Declaration extends Node2 {
6741
+ get variable() {
6742
+ return this.prop.startsWith("--") || this.prop[0] === "$";
6743
+ }
6686
6744
  constructor(defaults) {
6687
6745
  if (defaults && typeof defaults.value !== "undefined" && typeof defaults.value !== "string") {
6688
6746
  defaults = { ...defaults, value: String(defaults.value) };
@@ -6690,9 +6748,6 @@ function requireDeclaration() {
6690
6748
  super(defaults);
6691
6749
  this.type = "decl";
6692
6750
  }
6693
- get variable() {
6694
- return this.prop.startsWith("--") || this.prop[0] === "$";
6695
- }
6696
6751
  }
6697
6752
  declaration = Declaration;
6698
6753
  Declaration.default = Declaration;
@@ -6724,6 +6779,14 @@ function requireContainer() {
6724
6779
  }
6725
6780
  }
6726
6781
  class Container extends Node2 {
6782
+ get first() {
6783
+ if (!this.proxyOf.nodes) return void 0;
6784
+ return this.proxyOf.nodes[0];
6785
+ }
6786
+ get last() {
6787
+ if (!this.proxyOf.nodes) return void 0;
6788
+ return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
6789
+ }
6727
6790
  append(...children) {
6728
6791
  for (let child of children) {
6729
6792
  let nodes = this.normalize(child, this.last);
@@ -7036,14 +7099,6 @@ function requireContainer() {
7036
7099
  }
7037
7100
  });
7038
7101
  }
7039
- get first() {
7040
- if (!this.proxyOf.nodes) return void 0;
7041
- return this.proxyOf.nodes[0];
7042
- }
7043
- get last() {
7044
- if (!this.proxyOf.nodes) return void 0;
7045
- return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
7046
- }
7047
7102
  }
7048
7103
  Container.registerParse = (dependant) => {
7049
7104
  parse = dependant;
@@ -7293,10 +7348,25 @@ function requireInput() {
7293
7348
  let CssSyntaxError = requireCssSyntaxError();
7294
7349
  let PreviousMap = requirePreviousMap();
7295
7350
  let terminalHighlight = require$$2;
7296
- let fromOffsetCache = Symbol("fromOffsetCache");
7351
+ let lineToIndexCache = Symbol("lineToIndexCache");
7297
7352
  let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);
7298
7353
  let pathAvailable = Boolean(resolve && isAbsolute);
7354
+ function getLineToIndex(input2) {
7355
+ if (input2[lineToIndexCache]) return input2[lineToIndexCache];
7356
+ let lines = input2.css.split("\n");
7357
+ let lineToIndex = new Array(lines.length);
7358
+ let prevIndex = 0;
7359
+ for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {
7360
+ lineToIndex[i2] = prevIndex;
7361
+ prevIndex += lines[i2].length + 1;
7362
+ }
7363
+ input2[lineToIndexCache] = lineToIndex;
7364
+ return lineToIndex;
7365
+ }
7299
7366
  class Input {
7367
+ get from() {
7368
+ return this.file || this.id;
7369
+ }
7300
7370
  constructor(css, opts = {}) {
7301
7371
  if (css === null || typeof css === "undefined" || typeof css === "object" && !css.toString) {
7302
7372
  throw new Error(`PostCSS received ${css} instead of CSS string`);
@@ -7331,30 +7401,37 @@ function requireInput() {
7331
7401
  if (this.map) this.map.file = this.from;
7332
7402
  }
7333
7403
  error(message, line, column, opts = {}) {
7334
- let endColumn, endLine, result2;
7404
+ let endColumn, endLine, endOffset, offset, result2;
7335
7405
  if (line && typeof line === "object") {
7336
7406
  let start = line;
7337
7407
  let end = column;
7338
7408
  if (typeof start.offset === "number") {
7339
- let pos = this.fromOffset(start.offset);
7409
+ offset = start.offset;
7410
+ let pos = this.fromOffset(offset);
7340
7411
  line = pos.line;
7341
7412
  column = pos.col;
7342
7413
  } else {
7343
7414
  line = start.line;
7344
7415
  column = start.column;
7416
+ offset = this.fromLineAndColumn(line, column);
7345
7417
  }
7346
7418
  if (typeof end.offset === "number") {
7347
- let pos = this.fromOffset(end.offset);
7419
+ endOffset = end.offset;
7420
+ let pos = this.fromOffset(endOffset);
7348
7421
  endLine = pos.line;
7349
7422
  endColumn = pos.col;
7350
7423
  } else {
7351
7424
  endLine = end.line;
7352
7425
  endColumn = end.column;
7426
+ endOffset = this.fromLineAndColumn(end.line, end.column);
7353
7427
  }
7354
7428
  } else if (!column) {
7355
- let pos = this.fromOffset(line);
7429
+ offset = line;
7430
+ let pos = this.fromOffset(offset);
7356
7431
  line = pos.line;
7357
7432
  column = pos.col;
7433
+ } else {
7434
+ offset = this.fromLineAndColumn(line, column);
7358
7435
  }
7359
7436
  let origin = this.origin(line, column, endLine, endColumn);
7360
7437
  if (origin) {
@@ -7376,7 +7453,7 @@ function requireInput() {
7376
7453
  opts.plugin
7377
7454
  );
7378
7455
  }
7379
- result2.input = { column, endColumn, endLine, line, source: this.css };
7456
+ result2.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css };
7380
7457
  if (this.file) {
7381
7458
  if (pathToFileURL) {
7382
7459
  result2.input.url = pathToFileURL(this.file).toString();
@@ -7385,21 +7462,14 @@ function requireInput() {
7385
7462
  }
7386
7463
  return result2;
7387
7464
  }
7465
+ fromLineAndColumn(line, column) {
7466
+ let lineToIndex = getLineToIndex(this);
7467
+ let index2 = lineToIndex[line - 1];
7468
+ return index2 + column - 1;
7469
+ }
7388
7470
  fromOffset(offset) {
7389
- let lastLine, lineToIndex;
7390
- if (!this[fromOffsetCache]) {
7391
- let lines = this.css.split("\n");
7392
- lineToIndex = new Array(lines.length);
7393
- let prevIndex = 0;
7394
- for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {
7395
- lineToIndex[i2] = prevIndex;
7396
- prevIndex += lines[i2].length + 1;
7397
- }
7398
- this[fromOffsetCache] = lineToIndex;
7399
- } else {
7400
- lineToIndex = this[fromOffsetCache];
7401
- }
7402
- lastLine = lineToIndex[lineToIndex.length - 1];
7471
+ let lineToIndex = getLineToIndex(this);
7472
+ let lastLine = lineToIndex[lineToIndex.length - 1];
7403
7473
  let min = 0;
7404
7474
  if (offset >= lastLine) {
7405
7475
  min = lineToIndex.length - 1;
@@ -7480,9 +7550,6 @@ function requireInput() {
7480
7550
  }
7481
7551
  return json;
7482
7552
  }
7483
- get from() {
7484
- return this.file || this.id;
7485
- }
7486
7553
  }
7487
7554
  input = Input;
7488
7555
  Input.default = Input;
@@ -7608,11 +7675,6 @@ function requireRule() {
7608
7675
  let Container = requireContainer();
7609
7676
  let list = requireList();
7610
7677
  class Rule extends Container {
7611
- constructor(defaults) {
7612
- super(defaults);
7613
- this.type = "rule";
7614
- if (!this.nodes) this.nodes = [];
7615
- }
7616
7678
  get selectors() {
7617
7679
  return list.comma(this.selector);
7618
7680
  }
@@ -7621,6 +7683,11 @@ function requireRule() {
7621
7683
  let sep = match ? match[0] : "," + this.raw("between", "beforeOpen");
7622
7684
  this.selector = values.join(sep);
7623
7685
  }
7686
+ constructor(defaults) {
7687
+ super(defaults);
7688
+ this.type = "rule";
7689
+ if (!this.nodes) this.nodes = [];
7690
+ }
7624
7691
  }
7625
7692
  rule = Rule;
7626
7693
  Rule.default = Rule;
@@ -8520,6 +8587,8 @@ function requireParser() {
8520
8587
  if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) {
8521
8588
  prev.raws.ownSemicolon = this.spaces;
8522
8589
  this.spaces = "";
8590
+ prev.source.end = this.getPosition(token[2]);
8591
+ prev.source.end.offset += prev.raws.ownSemicolon.length;
8523
8592
  }
8524
8593
  }
8525
8594
  }
@@ -8731,7 +8800,7 @@ function requireParser() {
8731
8800
  }
8732
8801
  unknownWord(tokens) {
8733
8802
  throw this.input.error(
8734
- "Unknown word",
8803
+ "Unknown word " + tokens[0][1],
8735
8804
  { offset: tokens[0][2] },
8736
8805
  { offset: tokens[0][2] + tokens[0][1].length }
8737
8806
  );
@@ -8824,12 +8893,15 @@ function requireResult() {
8824
8893
  hasRequiredResult = 1;
8825
8894
  let Warning = requireWarning();
8826
8895
  class Result {
8896
+ get content() {
8897
+ return this.css;
8898
+ }
8827
8899
  constructor(processor2, root2, opts) {
8828
8900
  this.processor = processor2;
8829
8901
  this.messages = [];
8830
8902
  this.root = root2;
8831
8903
  this.opts = opts;
8832
- this.css = void 0;
8904
+ this.css = "";
8833
8905
  this.map = void 0;
8834
8906
  }
8835
8907
  toString() {
@@ -8848,9 +8920,6 @@ function requireResult() {
8848
8920
  warnings() {
8849
8921
  return this.messages.filter((i2) => i2.type === "warning");
8850
8922
  }
8851
- get content() {
8852
- return this.css;
8853
- }
8854
8923
  }
8855
8924
  result = Result;
8856
8925
  Result.default = Result;
@@ -8969,6 +9038,30 @@ function requireLazyResult() {
8969
9038
  }
8970
9039
  let postcss2 = {};
8971
9040
  class LazyResult {
9041
+ get content() {
9042
+ return this.stringify().content;
9043
+ }
9044
+ get css() {
9045
+ return this.stringify().css;
9046
+ }
9047
+ get map() {
9048
+ return this.stringify().map;
9049
+ }
9050
+ get messages() {
9051
+ return this.sync().messages;
9052
+ }
9053
+ get opts() {
9054
+ return this.result.opts;
9055
+ }
9056
+ get processor() {
9057
+ return this.result.processor;
9058
+ }
9059
+ get root() {
9060
+ return this.sync().root;
9061
+ }
9062
+ get [Symbol.toStringTag]() {
9063
+ return "LazyResult";
9064
+ }
8972
9065
  constructor(processor2, css, opts) {
8973
9066
  this.stringified = false;
8974
9067
  this.processed = false;
@@ -9311,30 +9404,6 @@ function requireLazyResult() {
9311
9404
  warnings() {
9312
9405
  return this.sync().warnings();
9313
9406
  }
9314
- get content() {
9315
- return this.stringify().content;
9316
- }
9317
- get css() {
9318
- return this.stringify().css;
9319
- }
9320
- get map() {
9321
- return this.stringify().map;
9322
- }
9323
- get messages() {
9324
- return this.sync().messages;
9325
- }
9326
- get opts() {
9327
- return this.result.opts;
9328
- }
9329
- get processor() {
9330
- return this.result.processor;
9331
- }
9332
- get root() {
9333
- return this.sync().root;
9334
- }
9335
- get [Symbol.toStringTag]() {
9336
- return "LazyResult";
9337
- }
9338
9407
  }
9339
9408
  LazyResult.registerPostcss = (dependant) => {
9340
9409
  postcss2 = dependant;
@@ -9356,6 +9425,45 @@ function requireNoWorkResult() {
9356
9425
  let stringify = requireStringify();
9357
9426
  let warnOnce2 = requireWarnOnce();
9358
9427
  class NoWorkResult {
9428
+ get content() {
9429
+ return this.result.css;
9430
+ }
9431
+ get css() {
9432
+ return this.result.css;
9433
+ }
9434
+ get map() {
9435
+ return this.result.map;
9436
+ }
9437
+ get messages() {
9438
+ return [];
9439
+ }
9440
+ get opts() {
9441
+ return this.result.opts;
9442
+ }
9443
+ get processor() {
9444
+ return this.result.processor;
9445
+ }
9446
+ get root() {
9447
+ if (this._root) {
9448
+ return this._root;
9449
+ }
9450
+ let root2;
9451
+ let parser2 = parse;
9452
+ try {
9453
+ root2 = parser2(this._css, this._opts);
9454
+ } catch (error) {
9455
+ this.error = error;
9456
+ }
9457
+ if (this.error) {
9458
+ throw this.error;
9459
+ } else {
9460
+ this._root = root2;
9461
+ return root2;
9462
+ }
9463
+ }
9464
+ get [Symbol.toStringTag]() {
9465
+ return "NoWorkResult";
9466
+ }
9359
9467
  constructor(processor2, css, opts) {
9360
9468
  css = css.toString();
9361
9469
  this.stringified = false;
@@ -9417,45 +9525,6 @@ function requireNoWorkResult() {
9417
9525
  warnings() {
9418
9526
  return [];
9419
9527
  }
9420
- get content() {
9421
- return this.result.css;
9422
- }
9423
- get css() {
9424
- return this.result.css;
9425
- }
9426
- get map() {
9427
- return this.result.map;
9428
- }
9429
- get messages() {
9430
- return [];
9431
- }
9432
- get opts() {
9433
- return this.result.opts;
9434
- }
9435
- get processor() {
9436
- return this.result.processor;
9437
- }
9438
- get root() {
9439
- if (this._root) {
9440
- return this._root;
9441
- }
9442
- let root2;
9443
- let parser2 = parse;
9444
- try {
9445
- root2 = parser2(this._css, this._opts);
9446
- } catch (error) {
9447
- this.error = error;
9448
- }
9449
- if (this.error) {
9450
- throw this.error;
9451
- } else {
9452
- this._root = root2;
9453
- return root2;
9454
- }
9455
- }
9456
- get [Symbol.toStringTag]() {
9457
- return "NoWorkResult";
9458
- }
9459
9528
  }
9460
9529
  noWorkResult = NoWorkResult;
9461
9530
  NoWorkResult.default = NoWorkResult;
@@ -9472,7 +9541,7 @@ function requireProcessor() {
9472
9541
  let Root = requireRoot();
9473
9542
  class Processor {
9474
9543
  constructor(plugins = []) {
9475
- this.version = "8.5.1";
9544
+ this.version = "8.5.6";
9476
9545
  this.plugins = this.normalize(plugins);
9477
9546
  }
9478
9547
  normalize(plugins) {
@@ -12274,7 +12343,7 @@ const callbackWrapper = (cb) => {
12274
12343
  if (!errorHandler) {
12275
12344
  return cb;
12276
12345
  }
12277
- const rrwebWrapped = (...rest) => {
12346
+ const rrwebWrapped = ((...rest) => {
12278
12347
  try {
12279
12348
  return cb(...rest);
12280
12349
  } catch (error) {
@@ -12283,7 +12352,7 @@ const callbackWrapper = (cb) => {
12283
12352
  }
12284
12353
  throw error;
12285
12354
  }
12286
- };
12355
+ });
12287
12356
  return rrwebWrapped;
12288
12357
  };
12289
12358
  const mutationBuffers = [];
@@ -13041,7 +13110,11 @@ function initFontObserver({ fontCb, doc }) {
13041
13110
  const fontMap = /* @__PURE__ */ new WeakMap();
13042
13111
  const originalFontFace = win.FontFace;
13043
13112
  win.FontFace = function FontFace2(family, source, descriptors) {
13044
- const fontFace = new originalFontFace(family, source, descriptors);
13113
+ const fontFace = new originalFontFace(
13114
+ family,
13115
+ source,
13116
+ descriptors
13117
+ );
13045
13118
  fontMap.set(fontFace, {
13046
13119
  family,
13047
13120
  buffer: typeof source !== "string",
@@ -13377,6 +13450,7 @@ class IframeManager {
13377
13450
  __publicField(this, "messageHandler");
13378
13451
  // Map window to handler for cleanup - windows are browser-owned and won't prevent GC
13379
13452
  __publicField(this, "nestedIframeListeners", /* @__PURE__ */ new Map());
13453
+ __publicField(this, "attachedIframes", /* @__PURE__ */ new Map());
13380
13454
  this.mutationCb = options.mutationCb;
13381
13455
  this.wrappedEmit = options.wrappedEmit;
13382
13456
  this.stylesheetManager = options.stylesheetManager;
@@ -13403,12 +13477,18 @@ class IframeManager {
13403
13477
  removeLoadListener() {
13404
13478
  this.loadListener = void 0;
13405
13479
  }
13480
+ trackIframeContent(iframeEl, content) {
13481
+ const iframeId = this.mirror.getId(iframeEl);
13482
+ this.attachedIframes.set(iframeId, { element: iframeEl, content });
13483
+ return iframeId;
13484
+ }
13406
13485
  attachIframe(iframeEl, childSn) {
13407
13486
  var _a2;
13487
+ const iframeId = this.trackIframeContent(iframeEl, childSn);
13408
13488
  this.mutationCb({
13409
13489
  adds: [
13410
13490
  {
13411
- parentId: this.mirror.getId(iframeEl),
13491
+ parentId: iframeId,
13412
13492
  nextId: null,
13413
13493
  node: childSn
13414
13494
  }
@@ -13460,6 +13540,7 @@ class IframeManager {
13460
13540
  const rootId = e2.data.node.id;
13461
13541
  this.crossOriginIframeRootIdMap.set(iframeEl, rootId);
13462
13542
  this.patchRootIdOnNode(e2.data.node, rootId);
13543
+ this.trackIframeContent(iframeEl, e2.data.node);
13463
13544
  return {
13464
13545
  timestamp: e2.timestamp,
13465
13546
  type: EventType.IncrementalSnapshot,
@@ -13602,6 +13683,38 @@ class IframeManager {
13602
13683
  });
13603
13684
  }
13604
13685
  }
13686
+ removeIframeById(iframeId) {
13687
+ const entry = this.attachedIframes.get(iframeId);
13688
+ if (!entry) return;
13689
+ const win = entry.element.contentWindow;
13690
+ if (win && this.nestedIframeListeners.has(win)) {
13691
+ const handler = this.nestedIframeListeners.get(win);
13692
+ win.removeEventListener("message", handler);
13693
+ this.nestedIframeListeners.delete(win);
13694
+ }
13695
+ this.attachedIframes.delete(iframeId);
13696
+ }
13697
+ reattachIframes() {
13698
+ this.attachedIframes.forEach(({ content }, iframeId) => {
13699
+ if (!this.mirror.has(iframeId)) {
13700
+ this.attachedIframes.delete(iframeId);
13701
+ return;
13702
+ }
13703
+ this.mutationCb({
13704
+ adds: [
13705
+ {
13706
+ parentId: iframeId,
13707
+ nextId: null,
13708
+ node: content
13709
+ }
13710
+ ],
13711
+ removes: [],
13712
+ texts: [],
13713
+ attributes: [],
13714
+ isAttachIframe: true
13715
+ });
13716
+ });
13717
+ }
13605
13718
  destroy() {
13606
13719
  if (this.recordCrossOriginIframes) {
13607
13720
  window.removeEventListener("message", this.messageHandler);
@@ -13612,6 +13725,7 @@ class IframeManager {
13612
13725
  this.nestedIframeListeners.clear();
13613
13726
  this.crossOriginIframeMirror.reset();
13614
13727
  this.crossOriginIframeStyleMirror.reset();
13728
+ this.attachedIframes.clear();
13615
13729
  }
13616
13730
  }
13617
13731
  class ShadowDomManager {
@@ -14564,6 +14678,11 @@ function record(options = {}) {
14564
14678
  }
14565
14679
  };
14566
14680
  const wrappedMutationEmit = (m) => {
14681
+ if (recordCrossOriginIframes && m.removes) {
14682
+ m.removes.forEach(({ id }) => {
14683
+ iframeManager.removeIframeById(id);
14684
+ });
14685
+ }
14567
14686
  wrappedEmit({
14568
14687
  type: EventType.IncrementalSnapshot,
14569
14688
  data: {
@@ -14714,6 +14833,9 @@ function record(options = {}) {
14714
14833
  isCheckout
14715
14834
  );
14716
14835
  mutationBuffers.forEach((buf) => buf.unlock());
14836
+ if (recordCrossOriginIframes) {
14837
+ iframeManager.reattachIframes();
14838
+ }
14717
14839
  if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)
14718
14840
  stylesheetManager.adoptStyleSheets(
14719
14841
  document.adoptedStyleSheets,
@@ -15279,9 +15401,9 @@ function t(t2, n2) {
15279
15401
  return a2;
15280
15402
  }
15281
15403
  var n;
15282
- !function(t2) {
15404
+ !(function(t2) {
15283
15405
  t2[t2.NotStarted = 0] = "NotStarted", t2[t2.Running = 1] = "Running", t2[t2.Stopped = 2] = "Stopped";
15284
- }(n || (n = {}));
15406
+ })(n || (n = {}));
15285
15407
  var e = { type: "xstate.init" };
15286
15408
  function r(t2) {
15287
15409
  return void 0 === t2 ? [] : [].concat(t2);
@@ -15305,45 +15427,45 @@ function c(t2, n2) {
15305
15427
  }
15306
15428
  function f(t2, n2, e2) {
15307
15429
  var r2 = n2, o2 = false;
15308
- return [t2.filter(function(t3) {
15430
+ return [t2.filter((function(t3) {
15309
15431
  if ("xstate.assign" === t3.type) {
15310
15432
  o2 = true;
15311
15433
  var n3 = Object.assign({}, r2);
15312
- return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(o3) {
15434
+ return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach((function(o3) {
15313
15435
  n3[o3] = "function" == typeof t3.assignment[o3] ? t3.assignment[o3](r2, e2) : t3.assignment[o3];
15314
- }), r2 = n3, false;
15436
+ })), r2 = n3, false;
15315
15437
  }
15316
15438
  return true;
15317
- }), r2, o2];
15439
+ })), r2, o2];
15318
15440
  }
15319
15441
  function s(n2, o2) {
15320
15442
  void 0 === o2 && (o2 = {});
15321
- var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {
15443
+ var s2 = t(f(r(n2.states[n2.initial].entry).map((function(t2) {
15322
15444
  return i(t2, o2.actions);
15323
- }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: o2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, o3) {
15445
+ })), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: o2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, o3) {
15324
15446
  var s3, l3, v3 = "string" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g = v3.context, d = u(o3), x = n2.states[p];
15325
15447
  if (x.on) {
15326
15448
  var m = r(x.on[d.type]);
15327
15449
  try {
15328
- for (var h = function(t2) {
15450
+ for (var h = (function(t2) {
15329
15451
  var n3 = "function" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;
15330
15452
  if (e3) return e3.call(t2);
15331
15453
  if (t2 && "number" == typeof t2.length) return { next: function() {
15332
15454
  return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };
15333
15455
  } };
15334
15456
  throw new TypeError(n3 ? "Object is not iterable." : "Symbol.iterator is not defined.");
15335
- }(m), b = h.next(); !b.done; b = h.next()) {
15457
+ })(m), b = h.next(); !b.done; b = h.next()) {
15336
15458
  var S = b.value;
15337
15459
  if (void 0 === S) return c(p, g);
15338
15460
  var w = "string" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {
15339
15461
  return true;
15340
15462
  } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];
15341
15463
  if (O(g, d)) {
15342
- var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function(t2) {
15464
+ var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter((function(t2) {
15343
15465
  return t2;
15344
- })).map(function(t2) {
15466
+ }))).map((function(t2) {
15345
15467
  return i(t2, y._options.actions);
15346
- }), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;
15468
+ })), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;
15347
15469
  return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };
15348
15470
  }
15349
15471
  }
@@ -15362,16 +15484,16 @@ function s(n2, o2) {
15362
15484
  return y;
15363
15485
  }
15364
15486
  var l = function(t2, n2) {
15365
- return t2.actions.forEach(function(e2) {
15487
+ return t2.actions.forEach((function(e2) {
15366
15488
  var r2 = e2.exec;
15367
15489
  return r2 && r2(t2.context, n2);
15368
- });
15490
+ }));
15369
15491
  };
15370
15492
  function v(t2) {
15371
15493
  var r2 = t2.initialState, o2 = n.NotStarted, i2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {
15372
- o2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), i2.forEach(function(t3) {
15494
+ o2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), i2.forEach((function(t3) {
15373
15495
  return t3(r2);
15374
- }));
15496
+ })));
15375
15497
  }, subscribe: function(t3) {
15376
15498
  return i2.add(t3), t3(r2), { unsubscribe: function() {
15377
15499
  return i2.delete(t3);