@measured/puck-plugin-heading-analyzer 0.17.0-canary.fcdf346 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +1486 -82
  2. package/dist/index.mjs +1482 -74
  3. package/package.json +5 -5
package/dist/index.mjs CHANGED
@@ -72,35 +72,45 @@ var require_classnames = __commonJS({
72
72
  (function() {
73
73
  "use strict";
74
74
  var hasOwn = {}.hasOwnProperty;
75
- var nativeCodeString = "[native code]";
76
75
  function classNames() {
77
- var classes = [];
76
+ var classes = "";
78
77
  for (var i = 0; i < arguments.length; i++) {
79
78
  var arg = arguments[i];
80
- if (!arg) continue;
81
- var argType = typeof arg;
82
- if (argType === "string" || argType === "number") {
83
- classes.push(arg);
84
- } else if (Array.isArray(arg)) {
85
- if (arg.length) {
86
- var inner = classNames.apply(null, arg);
87
- if (inner) {
88
- classes.push(inner);
89
- }
90
- }
91
- } else if (argType === "object") {
92
- if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
93
- classes.push(arg.toString());
94
- continue;
95
- }
96
- for (var key in arg) {
97
- if (hasOwn.call(arg, key) && arg[key]) {
98
- classes.push(key);
99
- }
100
- }
79
+ if (arg) {
80
+ classes = appendClass(classes, parseValue(arg));
101
81
  }
102
82
  }
103
- return classes.join(" ");
83
+ return classes;
84
+ }
85
+ function parseValue(arg) {
86
+ if (typeof arg === "string" || typeof arg === "number") {
87
+ return arg;
88
+ }
89
+ if (typeof arg !== "object") {
90
+ return "";
91
+ }
92
+ if (Array.isArray(arg)) {
93
+ return classNames.apply(null, arg);
94
+ }
95
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
96
+ return arg.toString();
97
+ }
98
+ var classes = "";
99
+ for (var key in arg) {
100
+ if (hasOwn.call(arg, key) && arg[key]) {
101
+ classes = appendClass(classes, key);
102
+ }
103
+ }
104
+ return classes;
105
+ }
106
+ function appendClass(value, newClass) {
107
+ if (!newClass) {
108
+ return value;
109
+ }
110
+ if (value) {
111
+ return value + " " + newClass;
112
+ }
113
+ return value + newClass;
104
114
  }
105
115
  if (typeof module !== "undefined" && module.exports) {
106
116
  classNames.default = classNames;
@@ -116,6 +126,1341 @@ var require_classnames = __commonJS({
116
126
  }
117
127
  });
118
128
 
129
+ // ../../node_modules/ua-parser-js/src/ua-parser.js
130
+ var require_ua_parser = __commonJS({
131
+ "../../node_modules/ua-parser-js/src/ua-parser.js"(exports, module) {
132
+ "use strict";
133
+ init_react_import();
134
+ (function(window2, undefined2) {
135
+ "use strict";
136
+ var LIBVERSION = "1.0.39", EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 500;
137
+ var AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook", CHROMIUM_OS = "Chromium OS", MAC_OS = "Mac OS", SUFFIX_BROWSER = " Browser";
138
+ var extend = function(regexes2, extensions) {
139
+ var mergedRegexes = {};
140
+ for (var i in regexes2) {
141
+ if (extensions[i] && extensions[i].length % 2 === 0) {
142
+ mergedRegexes[i] = extensions[i].concat(regexes2[i]);
143
+ } else {
144
+ mergedRegexes[i] = regexes2[i];
145
+ }
146
+ }
147
+ return mergedRegexes;
148
+ }, enumerize = function(arr) {
149
+ var enums = {};
150
+ for (var i = 0; i < arr.length; i++) {
151
+ enums[arr[i].toUpperCase()] = arr[i];
152
+ }
153
+ return enums;
154
+ }, has = function(str1, str2) {
155
+ return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
156
+ }, lowerize = function(str) {
157
+ return str.toLowerCase();
158
+ }, majorize = function(version) {
159
+ return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined2;
160
+ }, trim = function(str, len) {
161
+ if (typeof str === STR_TYPE) {
162
+ str = str.replace(/^\s\s*/, EMPTY);
163
+ return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
164
+ }
165
+ };
166
+ var rgxMapper = function(ua, arrays) {
167
+ var i = 0, j, k, p, q, matches, match;
168
+ while (i < arrays.length && !matches) {
169
+ var regex = arrays[i], props = arrays[i + 1];
170
+ j = k = 0;
171
+ while (j < regex.length && !matches) {
172
+ if (!regex[j]) {
173
+ break;
174
+ }
175
+ matches = regex[j++].exec(ua);
176
+ if (!!matches) {
177
+ for (p = 0; p < props.length; p++) {
178
+ match = matches[++k];
179
+ q = props[p];
180
+ if (typeof q === OBJ_TYPE && q.length > 0) {
181
+ if (q.length === 2) {
182
+ if (typeof q[1] == FUNC_TYPE) {
183
+ this[q[0]] = q[1].call(this, match);
184
+ } else {
185
+ this[q[0]] = q[1];
186
+ }
187
+ } else if (q.length === 3) {
188
+ if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
189
+ this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined2;
190
+ } else {
191
+ this[q[0]] = match ? match.replace(q[1], q[2]) : undefined2;
192
+ }
193
+ } else if (q.length === 4) {
194
+ this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined2;
195
+ }
196
+ } else {
197
+ this[q] = match ? match : undefined2;
198
+ }
199
+ }
200
+ }
201
+ }
202
+ i += 2;
203
+ }
204
+ }, strMapper = function(str, map) {
205
+ for (var i in map) {
206
+ if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
207
+ for (var j = 0; j < map[i].length; j++) {
208
+ if (has(map[i][j], str)) {
209
+ return i === UNKNOWN ? undefined2 : i;
210
+ }
211
+ }
212
+ } else if (has(map[i], str)) {
213
+ return i === UNKNOWN ? undefined2 : i;
214
+ }
215
+ }
216
+ return map.hasOwnProperty("*") ? map["*"] : str;
217
+ };
218
+ var oldSafariMap = {
219
+ "1.0": "/8",
220
+ "1.2": "/1",
221
+ "1.3": "/3",
222
+ "2.0": "/412",
223
+ "2.0.2": "/416",
224
+ "2.0.3": "/417",
225
+ "2.0.4": "/419",
226
+ "?": "/"
227
+ }, windowsVersionMap = {
228
+ "ME": "4.90",
229
+ "NT 3.11": "NT3.51",
230
+ "NT 4.0": "NT4.0",
231
+ "2000": "NT 5.0",
232
+ "XP": ["NT 5.1", "NT 5.2"],
233
+ "Vista": "NT 6.0",
234
+ "7": "NT 6.1",
235
+ "8": "NT 6.2",
236
+ "8.1": "NT 6.3",
237
+ "10": ["NT 6.4", "NT 10.0"],
238
+ "RT": "ARM"
239
+ };
240
+ var regexes = {
241
+ browser: [
242
+ [
243
+ /\b(?:crmo|crios)\/([\w\.]+)/i
244
+ // Chrome for Android/iOS
245
+ ],
246
+ [VERSION, [NAME, "Chrome"]],
247
+ [
248
+ /edg(?:e|ios|a)?\/([\w\.]+)/i
249
+ // Microsoft Edge
250
+ ],
251
+ [VERSION, [NAME, "Edge"]],
252
+ [
253
+ // Presto based
254
+ /(opera mini)\/([-\w\.]+)/i,
255
+ // Opera Mini
256
+ /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
257
+ // Opera Mobi/Tablet
258
+ /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
259
+ // Opera
260
+ ],
261
+ [NAME, VERSION],
262
+ [
263
+ /opios[\/ ]+([\w\.]+)/i
264
+ // Opera mini on iphone >= 8.0
265
+ ],
266
+ [VERSION, [NAME, OPERA + " Mini"]],
267
+ [
268
+ /\bop(?:rg)?x\/([\w\.]+)/i
269
+ // Opera GX
270
+ ],
271
+ [VERSION, [NAME, OPERA + " GX"]],
272
+ [
273
+ /\bopr\/([\w\.]+)/i
274
+ // Opera Webkit
275
+ ],
276
+ [VERSION, [NAME, OPERA]],
277
+ [
278
+ // Mixed
279
+ /\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
280
+ // Baidu
281
+ ],
282
+ [VERSION, [NAME, "Baidu"]],
283
+ [
284
+ /(kindle)\/([\w\.]+)/i,
285
+ // Kindle
286
+ /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
287
+ // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
288
+ // Trident based
289
+ /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,
290
+ // Avant/IEMobile/SlimBrowser
291
+ /(?:ms|\()(ie) ([\w\.]+)/i,
292
+ // Internet Explorer
293
+ // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
294
+ /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,
295
+ // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio
296
+ /(heytap|ovi)browser\/([\d\.]+)/i,
297
+ // HeyTap/Ovi
298
+ /(weibo)__([\d\.]+)/i
299
+ // Weibo
300
+ ],
301
+ [NAME, VERSION],
302
+ [
303
+ /quark(?:pc)?\/([-\w\.]+)/i
304
+ // Quark
305
+ ],
306
+ [VERSION, [NAME, "Quark"]],
307
+ [
308
+ /\bddg\/([\w\.]+)/i
309
+ // DuckDuckGo
310
+ ],
311
+ [VERSION, [NAME, "DuckDuckGo"]],
312
+ [
313
+ /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
314
+ // UCBrowser
315
+ ],
316
+ [VERSION, [NAME, "UC" + BROWSER]],
317
+ [
318
+ /microm.+\bqbcore\/([\w\.]+)/i,
319
+ // WeChat Desktop for Windows Built-in Browser
320
+ /\bqbcore\/([\w\.]+).+microm/i,
321
+ /micromessenger\/([\w\.]+)/i
322
+ // WeChat
323
+ ],
324
+ [VERSION, [NAME, "WeChat"]],
325
+ [
326
+ /konqueror\/([\w\.]+)/i
327
+ // Konqueror
328
+ ],
329
+ [VERSION, [NAME, "Konqueror"]],
330
+ [
331
+ /trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
332
+ // IE11
333
+ ],
334
+ [VERSION, [NAME, "IE"]],
335
+ [
336
+ /ya(?:search)?browser\/([\w\.]+)/i
337
+ // Yandex
338
+ ],
339
+ [VERSION, [NAME, "Yandex"]],
340
+ [
341
+ /slbrowser\/([\w\.]+)/i
342
+ // Smart Lenovo Browser
343
+ ],
344
+ [VERSION, [NAME, "Smart Lenovo " + BROWSER]],
345
+ [
346
+ /(avast|avg)\/([\w\.]+)/i
347
+ // Avast/AVG Secure Browser
348
+ ],
349
+ [[NAME, /(.+)/, "$1 Secure " + BROWSER], VERSION],
350
+ [
351
+ /\bfocus\/([\w\.]+)/i
352
+ // Firefox Focus
353
+ ],
354
+ [VERSION, [NAME, FIREFOX + " Focus"]],
355
+ [
356
+ /\bopt\/([\w\.]+)/i
357
+ // Opera Touch
358
+ ],
359
+ [VERSION, [NAME, OPERA + " Touch"]],
360
+ [
361
+ /coc_coc\w+\/([\w\.]+)/i
362
+ // Coc Coc Browser
363
+ ],
364
+ [VERSION, [NAME, "Coc Coc"]],
365
+ [
366
+ /dolfin\/([\w\.]+)/i
367
+ // Dolphin
368
+ ],
369
+ [VERSION, [NAME, "Dolphin"]],
370
+ [
371
+ /coast\/([\w\.]+)/i
372
+ // Opera Coast
373
+ ],
374
+ [VERSION, [NAME, OPERA + " Coast"]],
375
+ [
376
+ /miuibrowser\/([\w\.]+)/i
377
+ // MIUI Browser
378
+ ],
379
+ [VERSION, [NAME, "MIUI " + BROWSER]],
380
+ [
381
+ /fxios\/([-\w\.]+)/i
382
+ // Firefox for iOS
383
+ ],
384
+ [VERSION, [NAME, FIREFOX]],
385
+ [
386
+ /\bqihu|(qi?ho?o?|360)browser/i
387
+ // 360
388
+ ],
389
+ [[NAME, "360" + SUFFIX_BROWSER]],
390
+ [
391
+ /\b(qq)\/([\w\.]+)/i
392
+ // QQ
393
+ ],
394
+ [[NAME, /(.+)/, "$1Browser"], VERSION],
395
+ [
396
+ /(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
397
+ ],
398
+ [[NAME, /(.+)/, "$1" + SUFFIX_BROWSER], VERSION],
399
+ [
400
+ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
401
+ /samsungbrowser\/([\w\.]+)/i
402
+ // Samsung Internet
403
+ ],
404
+ [VERSION, [NAME, SAMSUNG + " Internet"]],
405
+ [
406
+ /(comodo_dragon)\/([\w\.]+)/i
407
+ // Comodo Dragon
408
+ ],
409
+ [[NAME, /_/g, " "], VERSION],
410
+ [
411
+ /metasr[\/ ]?([\d\.]+)/i
412
+ // Sogou Explorer
413
+ ],
414
+ [VERSION, [NAME, "Sogou Explorer"]],
415
+ [
416
+ /(sogou)mo\w+\/([\d\.]+)/i
417
+ // Sogou Mobile
418
+ ],
419
+ [[NAME, "Sogou Mobile"], VERSION],
420
+ [
421
+ /(electron)\/([\w\.]+) safari/i,
422
+ // Electron-based App
423
+ /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
424
+ // Tesla
425
+ /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i
426
+ // QQBrowser/2345 Browser
427
+ ],
428
+ [NAME, VERSION],
429
+ [
430
+ /(lbbrowser|rekonq)/i,
431
+ // LieBao Browser/Rekonq
432
+ /\[(linkedin)app\]/i
433
+ // LinkedIn App for iOS & Android
434
+ ],
435
+ [NAME],
436
+ [
437
+ // WebView
438
+ /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
439
+ // Facebook App for iOS & Android
440
+ ],
441
+ [[NAME, FACEBOOK], VERSION],
442
+ [
443
+ /(Klarna)\/([\w\.]+)/i,
444
+ // Klarna Shopping Browser for iOS & Android
445
+ /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
446
+ // Kakao App
447
+ /(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
448
+ // Naver InApp
449
+ /safari (line)\/([\w\.]+)/i,
450
+ // Line App for iOS
451
+ /\b(line)\/([\w\.]+)\/iab/i,
452
+ // Line App for Android
453
+ /(alipay)client\/([\w\.]+)/i,
454
+ // Alipay
455
+ /(twitter)(?:and| f.+e\/([\w\.]+))/i,
456
+ // Twitter
457
+ /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i
458
+ // Chromium/Instagram/Snapchat
459
+ ],
460
+ [NAME, VERSION],
461
+ [
462
+ /\bgsa\/([\w\.]+) .*safari\//i
463
+ // Google Search Appliance on iOS
464
+ ],
465
+ [VERSION, [NAME, "GSA"]],
466
+ [
467
+ /musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
468
+ // TikTok
469
+ ],
470
+ [VERSION, [NAME, "TikTok"]],
471
+ [
472
+ /headlesschrome(?:\/([\w\.]+)| )/i
473
+ // Chrome Headless
474
+ ],
475
+ [VERSION, [NAME, CHROME + " Headless"]],
476
+ [
477
+ / wv\).+(chrome)\/([\w\.]+)/i
478
+ // Chrome WebView
479
+ ],
480
+ [[NAME, CHROME + " WebView"], VERSION],
481
+ [
482
+ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
483
+ // Android Browser
484
+ ],
485
+ [VERSION, [NAME, "Android " + BROWSER]],
486
+ [
487
+ /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
488
+ // Chrome/OmniWeb/Arora/Tizen/Nokia
489
+ ],
490
+ [NAME, VERSION],
491
+ [
492
+ /version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
493
+ // Mobile Safari
494
+ ],
495
+ [VERSION, [NAME, "Mobile Safari"]],
496
+ [
497
+ /version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
498
+ // Safari & Safari Mobile
499
+ ],
500
+ [VERSION, NAME],
501
+ [
502
+ /webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
503
+ // Safari < 3.0
504
+ ],
505
+ [NAME, [VERSION, strMapper, oldSafariMap]],
506
+ [
507
+ /(webkit|khtml)\/([\w\.]+)/i
508
+ ],
509
+ [NAME, VERSION],
510
+ [
511
+ // Gecko based
512
+ /(navigator|netscape\d?)\/([-\w\.]+)/i
513
+ // Netscape
514
+ ],
515
+ [[NAME, "Netscape"], VERSION],
516
+ [
517
+ /(wolvic)\/([\w\.]+)/i
518
+ // Wolvic
519
+ ],
520
+ [NAME, VERSION],
521
+ [
522
+ /mobile vr; rv:([\w\.]+)\).+firefox/i
523
+ // Firefox Reality
524
+ ],
525
+ [VERSION, [NAME, FIREFOX + " Reality"]],
526
+ [
527
+ /ekiohf.+(flow)\/([\w\.]+)/i,
528
+ // Flow
529
+ /(swiftfox)/i,
530
+ // Swiftfox
531
+ /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
532
+ // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
533
+ /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
534
+ // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
535
+ /(firefox)\/([\w\.]+)/i,
536
+ // Other Firefox-based
537
+ /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
538
+ // Mozilla
539
+ // Other
540
+ /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
541
+ // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser
542
+ /(links) \(([\w\.]+)/i
543
+ // Links
544
+ ],
545
+ [NAME, [VERSION, /_/g, "."]],
546
+ [
547
+ /(cobalt)\/([\w\.]+)/i
548
+ // Cobalt
549
+ ],
550
+ [NAME, [VERSION, /master.|lts./, ""]]
551
+ ],
552
+ cpu: [
553
+ [
554
+ /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
555
+ // AMD64 (x64)
556
+ ],
557
+ [[ARCHITECTURE, "amd64"]],
558
+ [
559
+ /(ia32(?=;))/i
560
+ // IA32 (quicktime)
561
+ ],
562
+ [[ARCHITECTURE, lowerize]],
563
+ [
564
+ /((?:i[346]|x)86)[;\)]/i
565
+ // IA32 (x86)
566
+ ],
567
+ [[ARCHITECTURE, "ia32"]],
568
+ [
569
+ /\b(aarch64|arm(v?8e?l?|_?64))\b/i
570
+ // ARM64
571
+ ],
572
+ [[ARCHITECTURE, "arm64"]],
573
+ [
574
+ /\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
575
+ // ARMHF
576
+ ],
577
+ [[ARCHITECTURE, "armhf"]],
578
+ [
579
+ // PocketPC mistakenly identified as PowerPC
580
+ /windows (ce|mobile); ppc;/i
581
+ ],
582
+ [[ARCHITECTURE, "arm"]],
583
+ [
584
+ /((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
585
+ // PowerPC
586
+ ],
587
+ [[ARCHITECTURE, /ower/, EMPTY, lowerize]],
588
+ [
589
+ /(sun4\w)[;\)]/i
590
+ // SPARC
591
+ ],
592
+ [[ARCHITECTURE, "sparc"]],
593
+ [
594
+ /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
595
+ // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
596
+ ],
597
+ [[ARCHITECTURE, lowerize]]
598
+ ],
599
+ device: [
600
+ [
601
+ //////////////////////////
602
+ // MOBILES & TABLETS
603
+ /////////////////////////
604
+ // Samsung
605
+ /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
606
+ ],
607
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
608
+ [
609
+ /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
610
+ /samsung[- ]((?!sm-[lr])[-\w]+)/i,
611
+ /sec-(sgh\w+)/i
612
+ ],
613
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
614
+ [
615
+ // Apple
616
+ /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
617
+ // iPod/iPhone
618
+ ],
619
+ [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
620
+ [
621
+ /\((ipad);[-\w\),; ]+apple/i,
622
+ // iPad
623
+ /applecoremedia\/[\w\.]+ \((ipad)/i,
624
+ /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
625
+ ],
626
+ [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
627
+ [
628
+ /(macintosh);/i
629
+ ],
630
+ [MODEL, [VENDOR, APPLE]],
631
+ [
632
+ // Sharp
633
+ /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
634
+ ],
635
+ [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
636
+ [
637
+ // Huawei
638
+ /\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
639
+ ],
640
+ [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
641
+ [
642
+ /(?:huawei|honor)([-\w ]+)[;\)]/i,
643
+ /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
644
+ ],
645
+ [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
646
+ [
647
+ // Xiaomi
648
+ /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
649
+ // Xiaomi POCO
650
+ /\b; (\w+) build\/hm\1/i,
651
+ // Xiaomi Hongmi 'numeric' models
652
+ /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
653
+ // Xiaomi Hongmi
654
+ /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
655
+ // Xiaomi Redmi
656
+ /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
657
+ // Xiaomi Redmi 'numeric' models
658
+ /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i
659
+ // Xiaomi Mi
660
+ ],
661
+ [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, MOBILE]],
662
+ [
663
+ /oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,
664
+ // Redmi Pad
665
+ /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
666
+ // Mi Pad tablets
667
+ ],
668
+ [[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE, TABLET]],
669
+ [
670
+ // OPPO
671
+ /; (\w+) bui.+ oppo/i,
672
+ /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
673
+ ],
674
+ [MODEL, [VENDOR, "OPPO"], [TYPE, MOBILE]],
675
+ [
676
+ /\b(opd2\d{3}a?) bui/i
677
+ ],
678
+ [MODEL, [VENDOR, "OPPO"], [TYPE, TABLET]],
679
+ [
680
+ // Vivo
681
+ /vivo (\w+)(?: bui|\))/i,
682
+ /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
683
+ ],
684
+ [MODEL, [VENDOR, "Vivo"], [TYPE, MOBILE]],
685
+ [
686
+ // Realme
687
+ /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
688
+ ],
689
+ [MODEL, [VENDOR, "Realme"], [TYPE, MOBILE]],
690
+ [
691
+ // Motorola
692
+ /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
693
+ /\bmot(?:orola)?[- ](\w*)/i,
694
+ /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
695
+ ],
696
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
697
+ [
698
+ /\b(mz60\d|xoom[2 ]{0,2}) build\//i
699
+ ],
700
+ [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
701
+ [
702
+ // LG
703
+ /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
704
+ ],
705
+ [MODEL, [VENDOR, LG], [TYPE, TABLET]],
706
+ [
707
+ /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
708
+ /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
709
+ /\blg-?([\d\w]+) bui/i
710
+ ],
711
+ [MODEL, [VENDOR, LG], [TYPE, MOBILE]],
712
+ [
713
+ // Lenovo
714
+ /(ideatab[-\w ]+)/i,
715
+ /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
716
+ ],
717
+ [MODEL, [VENDOR, "Lenovo"], [TYPE, TABLET]],
718
+ [
719
+ // Nokia
720
+ /(?:maemo|nokia).*(n900|lumia \d+)/i,
721
+ /nokia[-_ ]?([-\w\.]*)/i
722
+ ],
723
+ [[MODEL, /_/g, " "], [VENDOR, "Nokia"], [TYPE, MOBILE]],
724
+ [
725
+ // Google
726
+ /(pixel c)\b/i
727
+ // Google Pixel C
728
+ ],
729
+ [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
730
+ [
731
+ /droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
732
+ // Google Pixel
733
+ ],
734
+ [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
735
+ [
736
+ // Sony
737
+ /droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
738
+ ],
739
+ [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
740
+ [
741
+ /sony tablet [ps]/i,
742
+ /\b(?:sony)?sgp\w+(?: bui|\))/i
743
+ ],
744
+ [[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE, TABLET]],
745
+ [
746
+ // OnePlus
747
+ / (kb2005|in20[12]5|be20[12][59])\b/i,
748
+ /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
749
+ ],
750
+ [MODEL, [VENDOR, "OnePlus"], [TYPE, MOBILE]],
751
+ [
752
+ // Amazon
753
+ /(alexa)webm/i,
754
+ /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,
755
+ // Kindle Fire without Silk / Echo Show
756
+ /(kf[a-z]+)( bui|\)).+silk\//i
757
+ // Kindle Fire HD
758
+ ],
759
+ [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
760
+ [
761
+ /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
762
+ // Fire Phone
763
+ ],
764
+ [[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE, MOBILE]],
765
+ [
766
+ // BlackBerry
767
+ /(playbook);[-\w\),; ]+(rim)/i
768
+ // BlackBerry PlayBook
769
+ ],
770
+ [MODEL, VENDOR, [TYPE, TABLET]],
771
+ [
772
+ /\b((?:bb[a-f]|st[hv])100-\d)/i,
773
+ /\(bb10; (\w+)/i
774
+ // BlackBerry 10
775
+ ],
776
+ [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
777
+ [
778
+ // Asus
779
+ /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
780
+ ],
781
+ [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
782
+ [
783
+ / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
784
+ ],
785
+ [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
786
+ [
787
+ // HTC
788
+ /(nexus 9)/i
789
+ // HTC Nexus 9
790
+ ],
791
+ [MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
792
+ [
793
+ /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
794
+ // HTC
795
+ // ZTE
796
+ /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
797
+ /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
798
+ // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
799
+ ],
800
+ [VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
801
+ [
802
+ // TCL
803
+ /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i
804
+ ],
805
+ [MODEL, [VENDOR, "TCL"], [TYPE, TABLET]],
806
+ [
807
+ // itel
808
+ /(itel) ((\w+))/i
809
+ ],
810
+ [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { "tablet": ["p10001l", "w7001"], "*": "mobile" }]],
811
+ [
812
+ // Acer
813
+ /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
814
+ ],
815
+ [MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
816
+ [
817
+ // Meizu
818
+ /droid.+; (m[1-5] note) bui/i,
819
+ /\bmz-([-\w]{2,})/i
820
+ ],
821
+ [MODEL, [VENDOR, "Meizu"], [TYPE, MOBILE]],
822
+ [
823
+ // Ulefone
824
+ /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
825
+ ],
826
+ [MODEL, [VENDOR, "Ulefone"], [TYPE, MOBILE]],
827
+ [
828
+ // Nothing
829
+ /droid.+; (a(?:015|06[35]|142p?))/i
830
+ ],
831
+ [MODEL, [VENDOR, "Nothing"], [TYPE, MOBILE]],
832
+ [
833
+ // MIXED
834
+ /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
835
+ // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
836
+ /(hp) ([\w ]+\w)/i,
837
+ // HP iPAQ
838
+ /(asus)-?(\w+)/i,
839
+ // Asus
840
+ /(microsoft); (lumia[\w ]+)/i,
841
+ // Microsoft Lumia
842
+ /(lenovo)[-_ ]?([-\w]+)/i,
843
+ // Lenovo
844
+ /(jolla)/i,
845
+ // Jolla
846
+ /(oppo) ?([\w ]+) bui/i
847
+ // OPPO
848
+ ],
849
+ [VENDOR, MODEL, [TYPE, MOBILE]],
850
+ [
851
+ /(kobo)\s(ereader|touch)/i,
852
+ // Kobo
853
+ /(archos) (gamepad2?)/i,
854
+ // Archos
855
+ /(hp).+(touchpad(?!.+tablet)|tablet)/i,
856
+ // HP TouchPad
857
+ /(kindle)\/([\w\.]+)/i,
858
+ // Kindle
859
+ /(nook)[\w ]+build\/(\w+)/i,
860
+ // Nook
861
+ /(dell) (strea[kpr\d ]*[\dko])/i,
862
+ // Dell Streak
863
+ /(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
864
+ // Le Pan Tablets
865
+ /(trinity)[- ]*(t\d{3}) bui/i,
866
+ // Trinity Tablets
867
+ /(gigaset)[- ]+(q\w{1,9}) bui/i,
868
+ // Gigaset Tablets
869
+ /(vodafone) ([\w ]+)(?:\)| bui)/i
870
+ // Vodafone
871
+ ],
872
+ [VENDOR, MODEL, [TYPE, TABLET]],
873
+ [
874
+ /(surface duo)/i
875
+ // Surface Duo
876
+ ],
877
+ [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
878
+ [
879
+ /droid [\d\.]+; (fp\du?)(?: b|\))/i
880
+ // Fairphone
881
+ ],
882
+ [MODEL, [VENDOR, "Fairphone"], [TYPE, MOBILE]],
883
+ [
884
+ /(u304aa)/i
885
+ // AT&T
886
+ ],
887
+ [MODEL, [VENDOR, "AT&T"], [TYPE, MOBILE]],
888
+ [
889
+ /\bsie-(\w*)/i
890
+ // Siemens
891
+ ],
892
+ [MODEL, [VENDOR, "Siemens"], [TYPE, MOBILE]],
893
+ [
894
+ /\b(rct\w+) b/i
895
+ // RCA Tablets
896
+ ],
897
+ [MODEL, [VENDOR, "RCA"], [TYPE, TABLET]],
898
+ [
899
+ /\b(venue[\d ]{2,7}) b/i
900
+ // Dell Venue Tablets
901
+ ],
902
+ [MODEL, [VENDOR, "Dell"], [TYPE, TABLET]],
903
+ [
904
+ /\b(q(?:mv|ta)\w+) b/i
905
+ // Verizon Tablet
906
+ ],
907
+ [MODEL, [VENDOR, "Verizon"], [TYPE, TABLET]],
908
+ [
909
+ /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
910
+ // Barnes & Noble Tablet
911
+ ],
912
+ [MODEL, [VENDOR, "Barnes & Noble"], [TYPE, TABLET]],
913
+ [
914
+ /\b(tm\d{3}\w+) b/i
915
+ ],
916
+ [MODEL, [VENDOR, "NuVision"], [TYPE, TABLET]],
917
+ [
918
+ /\b(k88) b/i
919
+ // ZTE K Series Tablet
920
+ ],
921
+ [MODEL, [VENDOR, "ZTE"], [TYPE, TABLET]],
922
+ [
923
+ /\b(nx\d{3}j) b/i
924
+ // ZTE Nubia
925
+ ],
926
+ [MODEL, [VENDOR, "ZTE"], [TYPE, MOBILE]],
927
+ [
928
+ /\b(gen\d{3}) b.+49h/i
929
+ // Swiss GEN Mobile
930
+ ],
931
+ [MODEL, [VENDOR, "Swiss"], [TYPE, MOBILE]],
932
+ [
933
+ /\b(zur\d{3}) b/i
934
+ // Swiss ZUR Tablet
935
+ ],
936
+ [MODEL, [VENDOR, "Swiss"], [TYPE, TABLET]],
937
+ [
938
+ /\b((zeki)?tb.*\b) b/i
939
+ // Zeki Tablets
940
+ ],
941
+ [MODEL, [VENDOR, "Zeki"], [TYPE, TABLET]],
942
+ [
943
+ /\b([yr]\d{2}) b/i,
944
+ /\b(dragon[- ]+touch |dt)(\w{5}) b/i
945
+ // Dragon Touch Tablet
946
+ ],
947
+ [[VENDOR, "Dragon Touch"], MODEL, [TYPE, TABLET]],
948
+ [
949
+ /\b(ns-?\w{0,9}) b/i
950
+ // Insignia Tablets
951
+ ],
952
+ [MODEL, [VENDOR, "Insignia"], [TYPE, TABLET]],
953
+ [
954
+ /\b((nxa|next)-?\w{0,9}) b/i
955
+ // NextBook Tablets
956
+ ],
957
+ [MODEL, [VENDOR, "NextBook"], [TYPE, TABLET]],
958
+ [
959
+ /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
960
+ // Voice Xtreme Phones
961
+ ],
962
+ [[VENDOR, "Voice"], MODEL, [TYPE, MOBILE]],
963
+ [
964
+ /\b(lvtel\-)?(v1[12]) b/i
965
+ // LvTel Phones
966
+ ],
967
+ [[VENDOR, "LvTel"], MODEL, [TYPE, MOBILE]],
968
+ [
969
+ /\b(ph-1) /i
970
+ // Essential PH-1
971
+ ],
972
+ [MODEL, [VENDOR, "Essential"], [TYPE, MOBILE]],
973
+ [
974
+ /\b(v(100md|700na|7011|917g).*\b) b/i
975
+ // Envizen Tablets
976
+ ],
977
+ [MODEL, [VENDOR, "Envizen"], [TYPE, TABLET]],
978
+ [
979
+ /\b(trio[-\w\. ]+) b/i
980
+ // MachSpeed Tablets
981
+ ],
982
+ [MODEL, [VENDOR, "MachSpeed"], [TYPE, TABLET]],
983
+ [
984
+ /\btu_(1491) b/i
985
+ // Rotor Tablets
986
+ ],
987
+ [MODEL, [VENDOR, "Rotor"], [TYPE, TABLET]],
988
+ [
989
+ /(shield[\w ]+) b/i
990
+ // Nvidia Shield Tablets
991
+ ],
992
+ [MODEL, [VENDOR, "Nvidia"], [TYPE, TABLET]],
993
+ [
994
+ /(sprint) (\w+)/i
995
+ // Sprint Phones
996
+ ],
997
+ [VENDOR, MODEL, [TYPE, MOBILE]],
998
+ [
999
+ /(kin\.[onetw]{3})/i
1000
+ // Microsoft Kin
1001
+ ],
1002
+ [[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE, MOBILE]],
1003
+ [
1004
+ /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
1005
+ // Zebra
1006
+ ],
1007
+ [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
1008
+ [
1009
+ /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
1010
+ ],
1011
+ [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
1012
+ [
1013
+ ///////////////////
1014
+ // SMARTTVS
1015
+ ///////////////////
1016
+ /smart-tv.+(samsung)/i
1017
+ // Samsung
1018
+ ],
1019
+ [VENDOR, [TYPE, SMARTTV]],
1020
+ [
1021
+ /hbbtv.+maple;(\d+)/i
1022
+ ],
1023
+ [[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]],
1024
+ [
1025
+ /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
1026
+ // LG SmartTV
1027
+ ],
1028
+ [[VENDOR, LG], [TYPE, SMARTTV]],
1029
+ [
1030
+ /(apple) ?tv/i
1031
+ // Apple TV
1032
+ ],
1033
+ [VENDOR, [MODEL, APPLE + " TV"], [TYPE, SMARTTV]],
1034
+ [
1035
+ /crkey/i
1036
+ // Google Chromecast
1037
+ ],
1038
+ [[MODEL, CHROME + "cast"], [VENDOR, GOOGLE], [TYPE, SMARTTV]],
1039
+ [
1040
+ /droid.+aft(\w+)( bui|\))/i
1041
+ // Fire TV
1042
+ ],
1043
+ [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
1044
+ [
1045
+ /\(dtv[\);].+(aquos)/i,
1046
+ /(aquos-tv[\w ]+)\)/i
1047
+ // Sharp
1048
+ ],
1049
+ [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
1050
+ [
1051
+ /(bravia[\w ]+)( bui|\))/i
1052
+ // Sony
1053
+ ],
1054
+ [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
1055
+ [
1056
+ /(mitv-\w{5}) bui/i
1057
+ // Xiaomi
1058
+ ],
1059
+ [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
1060
+ [
1061
+ /Hbbtv.*(technisat) (.*);/i
1062
+ // TechniSAT
1063
+ ],
1064
+ [VENDOR, MODEL, [TYPE, SMARTTV]],
1065
+ [
1066
+ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
1067
+ // Roku
1068
+ /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
1069
+ // HbbTV devices
1070
+ ],
1071
+ [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]],
1072
+ [
1073
+ /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
1074
+ // SmartTV from Unidentified Vendors
1075
+ ],
1076
+ [[TYPE, SMARTTV]],
1077
+ [
1078
+ ///////////////////
1079
+ // CONSOLES
1080
+ ///////////////////
1081
+ /(ouya)/i,
1082
+ // Ouya
1083
+ /(nintendo) ([wids3utch]+)/i
1084
+ // Nintendo
1085
+ ],
1086
+ [VENDOR, MODEL, [TYPE, CONSOLE]],
1087
+ [
1088
+ /droid.+; (shield) bui/i
1089
+ // Nvidia
1090
+ ],
1091
+ [MODEL, [VENDOR, "Nvidia"], [TYPE, CONSOLE]],
1092
+ [
1093
+ /(playstation [345portablevi]+)/i
1094
+ // Playstation
1095
+ ],
1096
+ [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
1097
+ [
1098
+ /\b(xbox(?: one)?(?!; xbox))[\); ]/i
1099
+ // Microsoft Xbox
1100
+ ],
1101
+ [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
1102
+ [
1103
+ ///////////////////
1104
+ // WEARABLES
1105
+ ///////////////////
1106
+ /\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i
1107
+ // Samsung Galaxy Watch
1108
+ ],
1109
+ [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]],
1110
+ [
1111
+ /((pebble))app/i
1112
+ // Pebble
1113
+ ],
1114
+ [VENDOR, MODEL, [TYPE, WEARABLE]],
1115
+ [
1116
+ /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
1117
+ // Apple Watch
1118
+ ],
1119
+ [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]],
1120
+ [
1121
+ /droid.+; (glass) \d/i
1122
+ // Google Glass
1123
+ ],
1124
+ [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],
1125
+ [
1126
+ /droid.+; (wt63?0{2,3})\)/i
1127
+ ],
1128
+ [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
1129
+ [
1130
+ /(quest( \d| pro)?)/i
1131
+ // Oculus Quest
1132
+ ],
1133
+ [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],
1134
+ [
1135
+ ///////////////////
1136
+ // EMBEDDED
1137
+ ///////////////////
1138
+ /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
1139
+ // Tesla
1140
+ ],
1141
+ [VENDOR, [TYPE, EMBEDDED]],
1142
+ [
1143
+ /(aeobc)\b/i
1144
+ // Echo Dot
1145
+ ],
1146
+ [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]],
1147
+ [
1148
+ ////////////////////
1149
+ // MIXED (GENERIC)
1150
+ ///////////////////
1151
+ /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i
1152
+ // Android Phones from Unidentified Vendors
1153
+ ],
1154
+ [MODEL, [TYPE, MOBILE]],
1155
+ [
1156
+ /droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
1157
+ // Android Tablets from Unidentified Vendors
1158
+ ],
1159
+ [MODEL, [TYPE, TABLET]],
1160
+ [
1161
+ /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1162
+ // Unidentifiable Tablet
1163
+ ],
1164
+ [[TYPE, TABLET]],
1165
+ [
1166
+ /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1167
+ // Unidentifiable Mobile
1168
+ ],
1169
+ [[TYPE, MOBILE]],
1170
+ [
1171
+ /(android[-\w\. ]{0,9});.+buil/i
1172
+ // Generic Android Device
1173
+ ],
1174
+ [MODEL, [VENDOR, "Generic"]]
1175
+ ],
1176
+ engine: [
1177
+ [
1178
+ /windows.+ edge\/([\w\.]+)/i
1179
+ // EdgeHTML
1180
+ ],
1181
+ [VERSION, [NAME, EDGE + "HTML"]],
1182
+ [
1183
+ /webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
1184
+ // Blink
1185
+ ],
1186
+ [VERSION, [NAME, "Blink"]],
1187
+ [
1188
+ /(presto)\/([\w\.]+)/i,
1189
+ // Presto
1190
+ /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
1191
+ // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
1192
+ /ekioh(flow)\/([\w\.]+)/i,
1193
+ // Flow
1194
+ /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
1195
+ // KHTML/Tasman/Links
1196
+ /(icab)[\/ ]([23]\.[\d\.]+)/i,
1197
+ // iCab
1198
+ /\b(libweb)/i
1199
+ ],
1200
+ [NAME, VERSION],
1201
+ [
1202
+ /rv\:([\w\.]{1,9})\b.+(gecko)/i
1203
+ // Gecko
1204
+ ],
1205
+ [VERSION, NAME]
1206
+ ],
1207
+ os: [
1208
+ [
1209
+ // Windows
1210
+ /microsoft (windows) (vista|xp)/i
1211
+ // Windows (iTunes)
1212
+ ],
1213
+ [NAME, VERSION],
1214
+ [
1215
+ /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i
1216
+ // Windows Phone
1217
+ ],
1218
+ [NAME, [VERSION, strMapper, windowsVersionMap]],
1219
+ [
1220
+ /windows nt 6\.2; (arm)/i,
1221
+ // Windows RT
1222
+ /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
1223
+ /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
1224
+ ],
1225
+ [[VERSION, strMapper, windowsVersionMap], [NAME, "Windows"]],
1226
+ [
1227
+ // iOS/macOS
1228
+ /ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
1229
+ // iOS
1230
+ /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
1231
+ /cfnetwork\/.+darwin/i
1232
+ ],
1233
+ [[VERSION, /_/g, "."], [NAME, "iOS"]],
1234
+ [
1235
+ /(mac os x) ?([\w\. ]*)/i,
1236
+ /(macintosh|mac_powerpc\b)(?!.+haiku)/i
1237
+ // Mac OS
1238
+ ],
1239
+ [[NAME, MAC_OS], [VERSION, /_/g, "."]],
1240
+ [
1241
+ // Mobile OSes
1242
+ /droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
1243
+ // Android-x86/HarmonyOS
1244
+ ],
1245
+ [VERSION, NAME],
1246
+ [
1247
+ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
1248
+ /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
1249
+ /(blackberry)\w*\/([\w\.]*)/i,
1250
+ // Blackberry
1251
+ /(tizen|kaios)[\/ ]([\w\.]+)/i,
1252
+ // Tizen/KaiOS
1253
+ /\((series40);/i
1254
+ // Series 40
1255
+ ],
1256
+ [NAME, VERSION],
1257
+ [
1258
+ /\(bb(10);/i
1259
+ // BlackBerry 10
1260
+ ],
1261
+ [VERSION, [NAME, BLACKBERRY]],
1262
+ [
1263
+ /(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
1264
+ // Symbian
1265
+ ],
1266
+ [VERSION, [NAME, "Symbian"]],
1267
+ [
1268
+ /mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
1269
+ // Firefox OS
1270
+ ],
1271
+ [VERSION, [NAME, FIREFOX + " OS"]],
1272
+ [
1273
+ /web0s;.+rt(tv)/i,
1274
+ /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
1275
+ // WebOS
1276
+ ],
1277
+ [VERSION, [NAME, "webOS"]],
1278
+ [
1279
+ /watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
1280
+ // watchOS
1281
+ ],
1282
+ [VERSION, [NAME, "watchOS"]],
1283
+ [
1284
+ // Google Chromecast
1285
+ /crkey\/([\d\.]+)/i
1286
+ // Google Chromecast
1287
+ ],
1288
+ [VERSION, [NAME, CHROME + "cast"]],
1289
+ [
1290
+ /(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
1291
+ // Chromium OS
1292
+ ],
1293
+ [[NAME, CHROMIUM_OS], VERSION],
1294
+ [
1295
+ // Smart TVs
1296
+ /panasonic;(viera)/i,
1297
+ // Panasonic Viera
1298
+ /(netrange)mmh/i,
1299
+ // Netrange
1300
+ /(nettv)\/(\d+\.[\w\.]+)/i,
1301
+ // NetTV
1302
+ // Console
1303
+ /(nintendo|playstation) ([wids345portablevuch]+)/i,
1304
+ // Nintendo/Playstation
1305
+ /(xbox); +xbox ([^\);]+)/i,
1306
+ // Microsoft Xbox (360, One, X, S, Series X, Series S)
1307
+ // Other
1308
+ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
1309
+ // Joli/Palm
1310
+ /(mint)[\/\(\) ]?(\w*)/i,
1311
+ // Mint
1312
+ /(mageia|vectorlinux)[; ]/i,
1313
+ // Mageia/VectorLinux
1314
+ /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
1315
+ // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
1316
+ /(hurd|linux) ?([\w\.]*)/i,
1317
+ // Hurd/Linux
1318
+ /(gnu) ?([\w\.]*)/i,
1319
+ // GNU
1320
+ /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
1321
+ // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
1322
+ /(haiku) (\w+)/i
1323
+ // Haiku
1324
+ ],
1325
+ [NAME, VERSION],
1326
+ [
1327
+ /(sunos) ?([\w\.\d]*)/i
1328
+ // Solaris
1329
+ ],
1330
+ [[NAME, "Solaris"], VERSION],
1331
+ [
1332
+ /((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
1333
+ // Solaris
1334
+ /(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
1335
+ // AIX
1336
+ /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
1337
+ // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
1338
+ /(unix) ?([\w\.]*)/i
1339
+ // UNIX
1340
+ ],
1341
+ [NAME, VERSION]
1342
+ ]
1343
+ };
1344
+ var UAParser2 = function(ua, extensions) {
1345
+ if (typeof ua === OBJ_TYPE) {
1346
+ extensions = ua;
1347
+ ua = undefined2;
1348
+ }
1349
+ if (!(this instanceof UAParser2)) {
1350
+ return new UAParser2(ua, extensions).getResult();
1351
+ }
1352
+ var _navigator = typeof window2 !== UNDEF_TYPE && window2.navigator ? window2.navigator : undefined2;
1353
+ var _ua = ua || (_navigator && _navigator.userAgent ? _navigator.userAgent : EMPTY);
1354
+ var _uach = _navigator && _navigator.userAgentData ? _navigator.userAgentData : undefined2;
1355
+ var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
1356
+ var _isSelfNav = _navigator && _navigator.userAgent == _ua;
1357
+ this.getBrowser = function() {
1358
+ var _browser = {};
1359
+ _browser[NAME] = undefined2;
1360
+ _browser[VERSION] = undefined2;
1361
+ rgxMapper.call(_browser, _ua, _rgxmap.browser);
1362
+ _browser[MAJOR] = majorize(_browser[VERSION]);
1363
+ if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {
1364
+ _browser[NAME] = "Brave";
1365
+ }
1366
+ return _browser;
1367
+ };
1368
+ this.getCPU = function() {
1369
+ var _cpu = {};
1370
+ _cpu[ARCHITECTURE] = undefined2;
1371
+ rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
1372
+ return _cpu;
1373
+ };
1374
+ this.getDevice = function() {
1375
+ var _device = {};
1376
+ _device[VENDOR] = undefined2;
1377
+ _device[MODEL] = undefined2;
1378
+ _device[TYPE] = undefined2;
1379
+ rgxMapper.call(_device, _ua, _rgxmap.device);
1380
+ if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {
1381
+ _device[TYPE] = MOBILE;
1382
+ }
1383
+ if (_isSelfNav && _device[MODEL] == "Macintosh" && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {
1384
+ _device[MODEL] = "iPad";
1385
+ _device[TYPE] = TABLET;
1386
+ }
1387
+ return _device;
1388
+ };
1389
+ this.getEngine = function() {
1390
+ var _engine = {};
1391
+ _engine[NAME] = undefined2;
1392
+ _engine[VERSION] = undefined2;
1393
+ rgxMapper.call(_engine, _ua, _rgxmap.engine);
1394
+ return _engine;
1395
+ };
1396
+ this.getOS = function() {
1397
+ var _os = {};
1398
+ _os[NAME] = undefined2;
1399
+ _os[VERSION] = undefined2;
1400
+ rgxMapper.call(_os, _ua, _rgxmap.os);
1401
+ if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != "Unknown") {
1402
+ _os[NAME] = _uach.platform.replace(/chrome os/i, CHROMIUM_OS).replace(/macos/i, MAC_OS);
1403
+ }
1404
+ return _os;
1405
+ };
1406
+ this.getResult = function() {
1407
+ return {
1408
+ ua: this.getUA(),
1409
+ browser: this.getBrowser(),
1410
+ engine: this.getEngine(),
1411
+ os: this.getOS(),
1412
+ device: this.getDevice(),
1413
+ cpu: this.getCPU()
1414
+ };
1415
+ };
1416
+ this.getUA = function() {
1417
+ return _ua;
1418
+ };
1419
+ this.setUA = function(ua2) {
1420
+ _ua = typeof ua2 === STR_TYPE && ua2.length > UA_MAX_LENGTH ? trim(ua2, UA_MAX_LENGTH) : ua2;
1421
+ return this;
1422
+ };
1423
+ this.setUA(_ua);
1424
+ return this;
1425
+ };
1426
+ UAParser2.VERSION = LIBVERSION;
1427
+ UAParser2.BROWSER = enumerize([NAME, VERSION, MAJOR]);
1428
+ UAParser2.CPU = enumerize([ARCHITECTURE]);
1429
+ UAParser2.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
1430
+ UAParser2.ENGINE = UAParser2.OS = enumerize([NAME, VERSION]);
1431
+ if (typeof exports !== UNDEF_TYPE) {
1432
+ if (typeof module !== UNDEF_TYPE && module.exports) {
1433
+ exports = module.exports = UAParser2;
1434
+ }
1435
+ exports.UAParser = UAParser2;
1436
+ } else {
1437
+ if (typeof define === FUNC_TYPE && define.amd) {
1438
+ define(function() {
1439
+ return UAParser2;
1440
+ });
1441
+ } else if (typeof window2 !== UNDEF_TYPE) {
1442
+ window2.UAParser = UAParser2;
1443
+ }
1444
+ }
1445
+ var $ = typeof window2 !== UNDEF_TYPE && (window2.jQuery || window2.Zepto);
1446
+ if ($ && !$.ua) {
1447
+ var parser = new UAParser2();
1448
+ $.ua = parser.getResult();
1449
+ $.ua.get = function() {
1450
+ return parser.getUA();
1451
+ };
1452
+ $.ua.set = function(ua) {
1453
+ parser.setUA(ua);
1454
+ var result = parser.getResult();
1455
+ for (var prop in result) {
1456
+ $.ua[prop] = result[prop];
1457
+ }
1458
+ };
1459
+ }
1460
+ })(typeof window === "object" ? window : exports);
1461
+ }
1462
+ });
1463
+
119
1464
  // index.ts
120
1465
  init_react_import();
121
1466
 
@@ -192,6 +1537,17 @@ init_react_import();
192
1537
 
193
1538
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
194
1539
  init_react_import();
1540
+ import { forwardRef as forwardRef2, createElement as createElement2 } from "react";
1541
+
1542
+ // ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
1543
+ init_react_import();
1544
+ var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
1545
+ var mergeClasses = (...classes) => classes.filter((className, index, array) => {
1546
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
1547
+ }).join(" ").trim();
1548
+
1549
+ // ../../node_modules/lucide-react/dist/esm/Icon.js
1550
+ init_react_import();
195
1551
  import { forwardRef, createElement } from "react";
196
1552
 
197
1553
  // ../../node_modules/lucide-react/dist/esm/defaultAttributes.js
@@ -208,28 +1564,55 @@ var defaultAttributes = {
208
1564
  strokeLinejoin: "round"
209
1565
  };
210
1566
 
1567
+ // ../../node_modules/lucide-react/dist/esm/Icon.js
1568
+ var Icon = forwardRef(
1569
+ (_a, ref) => {
1570
+ var _b = _a, {
1571
+ color = "currentColor",
1572
+ size = 24,
1573
+ strokeWidth = 2,
1574
+ absoluteStrokeWidth,
1575
+ className = "",
1576
+ children,
1577
+ iconNode
1578
+ } = _b, rest = __objRest(_b, [
1579
+ "color",
1580
+ "size",
1581
+ "strokeWidth",
1582
+ "absoluteStrokeWidth",
1583
+ "className",
1584
+ "children",
1585
+ "iconNode"
1586
+ ]);
1587
+ return createElement(
1588
+ "svg",
1589
+ __spreadValues(__spreadProps(__spreadValues({
1590
+ ref
1591
+ }, defaultAttributes), {
1592
+ width: size,
1593
+ height: size,
1594
+ stroke: color,
1595
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
1596
+ className: mergeClasses("lucide", className)
1597
+ }), rest),
1598
+ [
1599
+ ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
1600
+ ...Array.isArray(children) ? children : [children]
1601
+ ]
1602
+ );
1603
+ }
1604
+ );
1605
+
211
1606
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
212
- var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim();
213
1607
  var createLucideIcon = (iconName, iconNode) => {
214
- const Component = forwardRef(
1608
+ const Component = forwardRef2(
215
1609
  (_a, ref) => {
216
- var _b = _a, { color = "currentColor", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = "", children } = _b, rest = __objRest(_b, ["color", "size", "strokeWidth", "absoluteStrokeWidth", "className", "children"]);
217
- return createElement(
218
- "svg",
219
- __spreadValues(__spreadProps(__spreadValues({
220
- ref
221
- }, defaultAttributes), {
222
- width: size,
223
- height: size,
224
- stroke: color,
225
- strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
226
- className: ["lucide", `lucide-${toKebabCase(iconName)}`, className].join(" ")
227
- }), rest),
228
- [
229
- ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
230
- ...Array.isArray(children) ? children : [children]
231
- ]
232
- );
1610
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1611
+ return createElement2(Icon, __spreadValues({
1612
+ ref,
1613
+ iconNode,
1614
+ className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className)
1615
+ }, props));
233
1616
  }
234
1617
  );
235
1618
  Component.displayName = `${iconName}`;
@@ -248,17 +1631,10 @@ import { useContext as useContext2, useMemo } from "react";
248
1631
 
249
1632
  // ../core/components/DropZone/context.tsx
250
1633
  init_react_import();
251
- import { createContext, useCallback, useState } from "react";
252
- import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
253
- var dropZoneContext = createContext(null);
254
-
255
- // ../core/components/Puck/context.tsx
256
- init_react_import();
257
1634
  import {
258
- createContext as createContext2,
259
- useContext,
260
- useEffect as useEffect3,
261
- useState as useState4
1635
+ createContext,
1636
+ useCallback,
1637
+ useState
262
1638
  } from "react";
263
1639
 
264
1640
  // ../core/lib/get-item.ts
@@ -271,6 +1647,31 @@ var rootDroppableId = "default-zone";
271
1647
  // ../core/lib/setup-zone.ts
272
1648
  init_react_import();
273
1649
 
1650
+ // ../core/lib/get-zone-id.ts
1651
+ init_react_import();
1652
+ var getZoneId = (zoneCompound) => {
1653
+ if (!zoneCompound) {
1654
+ return [];
1655
+ }
1656
+ if (zoneCompound && zoneCompound.indexOf(":") > -1) {
1657
+ return zoneCompound.split(":");
1658
+ }
1659
+ return [rootDroppableId, zoneCompound];
1660
+ };
1661
+
1662
+ // ../core/components/DropZone/context.tsx
1663
+ import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
1664
+ var dropZoneContext = createContext(null);
1665
+
1666
+ // ../core/components/Puck/context.tsx
1667
+ init_react_import();
1668
+ import {
1669
+ createContext as createContext2,
1670
+ useContext,
1671
+ useEffect as useEffect3,
1672
+ useState as useState4
1673
+ } from "react";
1674
+
274
1675
  // ../core/components/ViewportControls/default-viewports.ts
275
1676
  init_react_import();
276
1677
  var defaultViewports = [
@@ -279,6 +1680,9 @@ var defaultViewports = [
279
1680
  { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
280
1681
  ];
281
1682
 
1683
+ // ../core/components/Puck/context.tsx
1684
+ var import_ua_parser_js = __toESM(require_ua_parser());
1685
+
282
1686
  // ../core/lib/use-resolved-permissions.ts
283
1687
  init_react_import();
284
1688
  import { useCallback as useCallback2, useEffect, useState as useState2 } from "react";
@@ -346,6 +1750,7 @@ var defaultContext = {
346
1750
  status: "LOADING",
347
1751
  setStatus: () => null,
348
1752
  iframe: {},
1753
+ safariFallbackMode: false,
349
1754
  globalPermissions: {},
350
1755
  getPermissions: () => ({}),
351
1756
  refreshPermissions: () => null
@@ -365,18 +1770,6 @@ function useAppContext() {
365
1770
  });
366
1771
  }
367
1772
 
368
- // ../core/lib/get-zone-id.ts
369
- init_react_import();
370
- var getZoneId = (zoneCompound) => {
371
- if (!zoneCompound) {
372
- return [];
373
- }
374
- if (zoneCompound && zoneCompound.indexOf(":") > -1) {
375
- return zoneCompound.split(":");
376
- }
377
- return [rootDroppableId, zoneCompound];
378
- };
379
-
380
1773
  // ../core/lib/use-breadcrumbs.ts
381
1774
  var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
382
1775
  const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
@@ -570,12 +1963,11 @@ var scrollIntoView = (el) => {
570
1963
  // ../core/lib/get-frame.ts
571
1964
  init_react_import();
572
1965
  var getFrame = () => {
573
- if (typeof window === "undefined") return;
574
- let frameEl = document.querySelector("#preview-frame");
575
- if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
576
- return frameEl.contentDocument || document;
1966
+ let frame = document.querySelector("#preview-frame");
1967
+ if ((frame == null ? void 0 : frame.tagName) === "IFRAME") {
1968
+ frame = frame.contentDocument;
577
1969
  }
578
- return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
1970
+ return frame;
579
1971
  };
580
1972
 
581
1973
  // src/HeadingAnalyzer.tsx
@@ -756,9 +2148,25 @@ classnames/index.js:
756
2148
  http://jedwatson.github.io/classnames
757
2149
  *)
758
2150
 
2151
+ lucide-react/dist/esm/shared/src/utils.js:
2152
+ (**
2153
+ * @license lucide-react v0.468.0 - ISC
2154
+ *
2155
+ * This source code is licensed under the ISC license.
2156
+ * See the LICENSE file in the root directory of this source tree.
2157
+ *)
2158
+
759
2159
  lucide-react/dist/esm/defaultAttributes.js:
760
2160
  (**
761
- * @license lucide-react v0.298.0 - ISC
2161
+ * @license lucide-react v0.468.0 - ISC
2162
+ *
2163
+ * This source code is licensed under the ISC license.
2164
+ * See the LICENSE file in the root directory of this source tree.
2165
+ *)
2166
+
2167
+ lucide-react/dist/esm/Icon.js:
2168
+ (**
2169
+ * @license lucide-react v0.468.0 - ISC
762
2170
  *
763
2171
  * This source code is licensed under the ISC license.
764
2172
  * See the LICENSE file in the root directory of this source tree.
@@ -766,7 +2174,7 @@ lucide-react/dist/esm/defaultAttributes.js:
766
2174
 
767
2175
  lucide-react/dist/esm/createLucideIcon.js:
768
2176
  (**
769
- * @license lucide-react v0.298.0 - ISC
2177
+ * @license lucide-react v0.468.0 - ISC
770
2178
  *
771
2179
  * This source code is licensed under the ISC license.
772
2180
  * See the LICENSE file in the root directory of this source tree.
@@ -774,7 +2182,7 @@ lucide-react/dist/esm/createLucideIcon.js:
774
2182
 
775
2183
  lucide-react/dist/esm/icons/chevron-right.js:
776
2184
  (**
777
- * @license lucide-react v0.298.0 - ISC
2185
+ * @license lucide-react v0.468.0 - ISC
778
2186
  *
779
2187
  * This source code is licensed under the ISC license.
780
2188
  * See the LICENSE file in the root directory of this source tree.
@@ -782,7 +2190,7 @@ lucide-react/dist/esm/icons/chevron-right.js:
782
2190
 
783
2191
  lucide-react/dist/esm/lucide-react.js:
784
2192
  (**
785
- * @license lucide-react v0.298.0 - ISC
2193
+ * @license lucide-react v0.468.0 - ISC
786
2194
  *
787
2195
  * This source code is licensed under the ISC license.
788
2196
  * See the LICENSE file in the root directory of this source tree.