unframer 4.1.9 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +238 -15
- package/dist/cli.js.map +1 -1
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +29 -5
- package/dist/exporter.js.map +1 -1
- package/dist/framer-chunks/{SqliteDatabase-VAKIICSG-W43ZSXBO.js → SqliteDatabase-VAKIICSG-OPV4MG3Y.js} +5 -4
- package/dist/framer-chunks/{chunk-WYG6DFEF.js → chunk-7ZLQTYXQ.js} +4 -23
- package/dist/framer-chunks/chunk-IKQSD2QC.js +10 -0
- package/dist/framer-chunks/default-blog-sqlite-7ZHEY3GT-TVGUYU6H.js +7 -0
- package/dist/framer-chunks/fontshare-4THNDPMZ-FLLTWCDO.js +7 -0
- package/dist/framer-chunks/fontshare-B2QLD7YB-5V3XZJAH.js +7 -0
- package/dist/framer-chunks/fontshare-O22OBJ3D-FIG3CRN3.js +7 -0
- package/dist/framer-chunks/framer-font-45AI7UCZ-CKGC4MJC.js +7 -0
- package/dist/framer-chunks/google-3FCAKCAC-AM34UPJK.js +7 -0
- package/dist/framer-chunks/google-3SZHWBC6-2VTQEQ7J.js +7 -0
- package/dist/framer-chunks/google-GXDJLGJB-JNEJGCGD.js +7 -0
- package/dist/framer-chunks/sqlite-wasm-FGP37EAY-NO5QVZDI.js +7 -0
- package/dist/framer-chunks/sqlite3-SISQ6ENZ-5WRKGWTY.js +7 -0
- package/dist/framer.d.ts +128 -0
- package/dist/framer.js +395 -393
- package/dist/plugin-mcp-dist/lib/framer.d.ts.map +1 -1
- package/dist/plugin-mcp-dist/lib/framer.js +30 -14
- package/dist/plugin-mcp-dist/lib/framer.js.map +1 -1
- package/dist/plugin-mcp-dist/lib/framer.test.js +34 -64
- package/dist/plugin-mcp-dist/lib/framer.test.js.map +1 -1
- package/dist/plugin-mcp-dist/lib/mcp-handlers.d.ts.map +1 -1
- package/dist/plugin-mcp-dist/lib/mcp-handlers.js +59 -0
- package/dist/plugin-mcp-dist/lib/mcp-handlers.js.map +1 -1
- package/dist/plugin-mcp-dist/lib/react-export.d.ts.map +1 -1
- package/dist/plugin-mcp-dist/lib/react-export.js +79 -61
- package/dist/plugin-mcp-dist/lib/react-export.js.map +1 -1
- package/dist/plugin-mcp-dist/lib/schema.d.ts +8 -0
- package/dist/plugin-mcp-dist/lib/schema.d.ts.map +1 -1
- package/dist/plugin-mcp-dist/lib/schema.js +18 -1
- package/dist/plugin-mcp-dist/lib/schema.js.map +1 -1
- package/dist/plugin-mcp-dist/lib/store.d.ts +1 -1
- package/dist/plugin-mcp-dist/lib/store.d.ts.map +1 -1
- package/dist/plugin-mcp-dist/lib/utils.d.ts.map +1 -1
- package/dist/plugin-mcp-dist/lib/utils.js +11 -7
- package/dist/plugin-mcp-dist/lib/utils.js.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +0 -2
- package/dist/react.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -5
- package/src/cli.ts +265 -14
- package/src/exporter.ts +39 -6
- package/src/framer.d.ts +128 -0
- package/src/framer.js +395 -393
- package/src/plugin-mcp-dist/lib/framer.d.ts.map +1 -1
- package/src/plugin-mcp-dist/lib/framer.js +30 -14
- package/src/plugin-mcp-dist/lib/framer.js.map +1 -1
- package/src/plugin-mcp-dist/lib/framer.test.js +34 -64
- package/src/plugin-mcp-dist/lib/framer.test.js.map +1 -1
- package/src/plugin-mcp-dist/lib/mcp-handlers.d.ts +2 -2
- package/src/plugin-mcp-dist/lib/mcp-handlers.d.ts.map +1 -1
- package/src/plugin-mcp-dist/lib/mcp-handlers.js +59 -0
- package/src/plugin-mcp-dist/lib/mcp-handlers.js.map +1 -1
- package/src/plugin-mcp-dist/lib/react-export.d.ts +1 -1
- package/src/plugin-mcp-dist/lib/react-export.d.ts.map +1 -1
- package/src/plugin-mcp-dist/lib/react-export.js +79 -61
- package/src/plugin-mcp-dist/lib/react-export.js.map +1 -1
- package/src/plugin-mcp-dist/lib/schema.d.ts +11 -3
- package/src/plugin-mcp-dist/lib/schema.d.ts.map +1 -1
- package/src/plugin-mcp-dist/lib/schema.js +18 -1
- package/src/plugin-mcp-dist/lib/schema.js.map +1 -1
- package/src/plugin-mcp-dist/lib/utils.d.ts.map +1 -1
- package/src/plugin-mcp-dist/lib/utils.js +11 -7
- package/src/plugin-mcp-dist/lib/utils.js.map +1 -1
- package/src/react.tsx +0 -3
- package/src/styles/framer.css +34 -64
- package/src/version.ts +1 -1
- package/dist/framer-chunks/default-blog-sqlite-7ZHEY3GT-DXFOTMBP.js +0 -9
- package/dist/framer-chunks/fontshare-4THNDPMZ-L3NZDIOE.js +0 -27099
- package/dist/framer-chunks/fontshare-B2QLD7YB-ZLNQ44LW.js +0 -119
- package/dist/framer-chunks/fontshare-O22OBJ3D-VY7WF3BB.js +0 -825
- package/dist/framer-chunks/framer-font-45AI7UCZ-Z3XHDH5K.js +0 -7
- package/dist/framer-chunks/google-3FCAKCAC-K2ZVMKHN.js +0 -623876
- package/dist/framer-chunks/google-3SZHWBC6-MIC5SCB4.js +0 -1627
- package/dist/framer-chunks/google-GXDJLGJB-356NWSZ7.js +0 -6885
- package/dist/framer-chunks/sqlite-wasm-FGP37EAY-MBPG3MPB.js +0 -11479
- package/dist/framer-chunks/sqlite3-SISQ6ENZ-RRHGROT5.js +0 -9
package/src/framer.js
CHANGED
|
@@ -12,7 +12,8 @@ import {
|
|
|
12
12
|
__require,
|
|
13
13
|
__runInitializers,
|
|
14
14
|
__toESM,
|
|
15
|
-
} from './framer-chunks/chunk-
|
|
15
|
+
} from './framer-chunks/chunk-7ZLQTYXQ.js';
|
|
16
|
+
import './framer-chunks/chunk-IKQSD2QC.js';
|
|
16
17
|
|
|
17
18
|
// /:https://app.framerstatic.com/chunk-7KEO2DXG.mjs
|
|
18
19
|
import { createContext, } from 'react';
|
|
@@ -12752,7 +12753,7 @@ function ReorderItemComponent({
|
|
|
12752
12753
|
}
|
|
12753
12754
|
var ReorderItem = /* @__PURE__ */ forwardRef(ReorderItemComponent,);
|
|
12754
12755
|
|
|
12755
|
-
// /:https://app.framerstatic.com/framer.
|
|
12756
|
+
// /:https://app.framerstatic.com/framer.SZORHXMV.mjs
|
|
12756
12757
|
|
|
12757
12758
|
import React42 from 'react';
|
|
12758
12759
|
import { startTransition as startTransition2, useDeferredValue, useSyncExternalStore, } from 'react';
|
|
@@ -14252,6 +14253,15 @@ var LazyValue = class _LazyValue {
|
|
|
14252
14253
|
return this.read();
|
|
14253
14254
|
}
|
|
14254
14255
|
};
|
|
14256
|
+
var UNDEFINED = -1;
|
|
14257
|
+
var HOLE = -2;
|
|
14258
|
+
var NAN = -3;
|
|
14259
|
+
var POSITIVE_INFINITY = -4;
|
|
14260
|
+
var NEGATIVE_INFINITY = -5;
|
|
14261
|
+
var NEGATIVE_ZERO = -6;
|
|
14262
|
+
var SPARSE = -7;
|
|
14263
|
+
var MAX_ARRAY_LEN = 2 ** 32 - 1;
|
|
14264
|
+
var MAX_ARRAY_INDEX = MAX_ARRAY_LEN - 1;
|
|
14255
14265
|
var DevalueError = class extends Error {
|
|
14256
14266
|
/**
|
|
14257
14267
|
* @param {string} message
|
|
@@ -14268,7 +14278,7 @@ var DevalueError = class extends Error {
|
|
|
14268
14278
|
}
|
|
14269
14279
|
};
|
|
14270
14280
|
function is_primitive(thing,) {
|
|
14271
|
-
return
|
|
14281
|
+
return thing === null || typeof thing !== 'object' && typeof thing !== 'function';
|
|
14272
14282
|
}
|
|
14273
14283
|
var object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(Object.prototype,).sort().join('\0',);
|
|
14274
14284
|
function is_plain_object(thing,) {
|
|
@@ -14326,105 +14336,72 @@ var is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
|
|
|
14326
14336
|
function stringify_key(key7,) {
|
|
14327
14337
|
return is_identifier.test(key7,) ? '.' + key7 : '[' + JSON.stringify(key7,) + ']';
|
|
14328
14338
|
}
|
|
14329
|
-
function is_valid_array_index(
|
|
14339
|
+
function is_valid_array_index(n,) {
|
|
14340
|
+
if (!Number.isInteger(n,)) return false;
|
|
14341
|
+
if (n < 0) return false;
|
|
14342
|
+
if (n > MAX_ARRAY_INDEX) return false;
|
|
14343
|
+
return true;
|
|
14344
|
+
}
|
|
14345
|
+
function is_valid_array_len(n,) {
|
|
14346
|
+
if (!Number.isInteger(n,)) return false;
|
|
14347
|
+
if (n < 0) return false;
|
|
14348
|
+
if (n > MAX_ARRAY_LEN) return false;
|
|
14349
|
+
return true;
|
|
14350
|
+
}
|
|
14351
|
+
function is_valid_array_index_string(s,) {
|
|
14330
14352
|
if (s.length === 0) return false;
|
|
14331
14353
|
if (s.length > 1 && s.charCodeAt(0,) === 48) return false;
|
|
14332
14354
|
for (let i = 0; i < s.length; i++) {
|
|
14333
14355
|
const c = s.charCodeAt(i,);
|
|
14334
14356
|
if (c < 48 || c > 57) return false;
|
|
14335
14357
|
}
|
|
14336
|
-
|
|
14337
|
-
if (n >= 2 ** 32 - 1) return false;
|
|
14338
|
-
if (n < 0) return false;
|
|
14339
|
-
return true;
|
|
14358
|
+
return is_valid_array_index(+s,);
|
|
14340
14359
|
}
|
|
14341
14360
|
function valid_array_indices(array,) {
|
|
14342
14361
|
const keys3 = Object.keys(array,);
|
|
14343
14362
|
for (var i = keys3.length - 1; i >= 0; i--) {
|
|
14344
|
-
if (
|
|
14363
|
+
if (is_valid_array_index_string(keys3[i],)) {
|
|
14345
14364
|
break;
|
|
14346
14365
|
}
|
|
14347
14366
|
}
|
|
14348
14367
|
keys3.length = i + 1;
|
|
14349
14368
|
return keys3;
|
|
14350
14369
|
}
|
|
14351
|
-
function
|
|
14352
|
-
|
|
14353
|
-
|
|
14354
|
-
|
|
14355
|
-
|
|
14356
|
-
|
|
14357
|
-
|
|
14358
|
-
|
|
14359
|
-
|
|
14360
|
-
|
|
14361
|
-
|
|
14362
|
-
|
|
14363
|
-
|
|
14364
|
-
|
|
14365
|
-
|
|
14366
|
-
|
|
14367
|
-
|
|
14368
|
-
|
|
14369
|
-
|
|
14370
|
-
if (data2.length % 4 === 0) {
|
|
14371
|
-
data2 = data2.replace(/==?$/, '',);
|
|
14372
|
-
}
|
|
14373
|
-
let output = '';
|
|
14374
|
-
let buffer = 0;
|
|
14375
|
-
let accumulatedBits = 0;
|
|
14376
|
-
for (let i = 0; i < data2.length; i++) {
|
|
14377
|
-
buffer <<= 6;
|
|
14378
|
-
buffer |= KEY_STRING.indexOf(data2[i],);
|
|
14379
|
-
accumulatedBits += 6;
|
|
14380
|
-
if (accumulatedBits === 24) {
|
|
14381
|
-
output += String.fromCharCode((buffer & 16711680) >> 16,);
|
|
14382
|
-
output += String.fromCharCode((buffer & 65280) >> 8,);
|
|
14383
|
-
output += String.fromCharCode(buffer & 255,);
|
|
14384
|
-
buffer = accumulatedBits = 0;
|
|
14385
|
-
}
|
|
14386
|
-
}
|
|
14387
|
-
if (accumulatedBits === 12) {
|
|
14388
|
-
buffer >>= 4;
|
|
14389
|
-
output += String.fromCharCode(buffer,);
|
|
14390
|
-
} else if (accumulatedBits === 18) {
|
|
14391
|
-
buffer >>= 2;
|
|
14392
|
-
output += String.fromCharCode((buffer & 65280) >> 8,);
|
|
14393
|
-
output += String.fromCharCode(buffer & 255,);
|
|
14370
|
+
function encode_native(array_buffer,) {
|
|
14371
|
+
return new Uint8Array(array_buffer,).toBase64();
|
|
14372
|
+
}
|
|
14373
|
+
function decode_native(base64,) {
|
|
14374
|
+
return Uint8Array.fromBase64(base64,).buffer;
|
|
14375
|
+
}
|
|
14376
|
+
function encode_buffer(array_buffer,) {
|
|
14377
|
+
return Buffer.from(array_buffer,).toString('base64',);
|
|
14378
|
+
}
|
|
14379
|
+
function decode_buffer(base64,) {
|
|
14380
|
+
return Uint8Array.from(Buffer.from(base64, 'base64',),).buffer;
|
|
14381
|
+
}
|
|
14382
|
+
function encode_legacy(array_buffer,) {
|
|
14383
|
+
const array = new Uint8Array(array_buffer,);
|
|
14384
|
+
let binary = '';
|
|
14385
|
+
const chunk_size = 32768;
|
|
14386
|
+
for (let i = 0; i < array.length; i += chunk_size) {
|
|
14387
|
+
const chunk = array.subarray(i, i + chunk_size,);
|
|
14388
|
+
binary += String.fromCharCode.apply(null, chunk,);
|
|
14394
14389
|
}
|
|
14395
|
-
return
|
|
14390
|
+
return btoa(binary,);
|
|
14396
14391
|
}
|
|
14397
|
-
function
|
|
14398
|
-
|
|
14399
|
-
|
|
14400
|
-
|
|
14401
|
-
|
|
14402
|
-
|
|
14403
|
-
if (str.length > i + 1) {
|
|
14404
|
-
groupsOfSix[1] |= str.charCodeAt(i + 1,) >> 4;
|
|
14405
|
-
groupsOfSix[2] = (str.charCodeAt(i + 1,) & 15) << 2;
|
|
14406
|
-
}
|
|
14407
|
-
if (str.length > i + 2) {
|
|
14408
|
-
groupsOfSix[2] |= str.charCodeAt(i + 2,) >> 6;
|
|
14409
|
-
groupsOfSix[3] = str.charCodeAt(i + 2,) & 63;
|
|
14410
|
-
}
|
|
14411
|
-
for (let j = 0; j < groupsOfSix.length; j++) {
|
|
14412
|
-
if (typeof groupsOfSix[j] === 'undefined') {
|
|
14413
|
-
out += '=';
|
|
14414
|
-
} else {
|
|
14415
|
-
out += KEY_STRING[groupsOfSix[j]];
|
|
14416
|
-
}
|
|
14417
|
-
}
|
|
14392
|
+
function decode_legacy(base64,) {
|
|
14393
|
+
const binary_string = atob(base64,);
|
|
14394
|
+
const len = binary_string.length;
|
|
14395
|
+
const array = new Uint8Array(len,);
|
|
14396
|
+
for (let i = 0; i < len; i++) {
|
|
14397
|
+
array[i] = binary_string.charCodeAt(i,);
|
|
14418
14398
|
}
|
|
14419
|
-
return
|
|
14399
|
+
return array.buffer;
|
|
14420
14400
|
}
|
|
14421
|
-
var
|
|
14422
|
-
var
|
|
14423
|
-
var
|
|
14424
|
-
var
|
|
14425
|
-
var NEGATIVE_INFINITY = -5;
|
|
14426
|
-
var NEGATIVE_ZERO = -6;
|
|
14427
|
-
var SPARSE = -7;
|
|
14401
|
+
var native = typeof Uint8Array.fromBase64 === 'function';
|
|
14402
|
+
var buffer = typeof process === 'object' && process.versions?.node !== void 0;
|
|
14403
|
+
var encode64 = native ? encode_native : buffer ? encode_buffer : encode_legacy;
|
|
14404
|
+
var decode64 = native ? decode_native : buffer ? decode_buffer : decode_legacy;
|
|
14428
14405
|
function parse(serialized, revivers,) {
|
|
14429
14406
|
return unflatten(JSON.parse(serialized,), revivers,);
|
|
14430
14407
|
}
|
|
@@ -14489,13 +14466,14 @@ function unflatten(parsed, revivers,) {
|
|
|
14489
14466
|
case 'RegExp':
|
|
14490
14467
|
hydrated[index] = new RegExp(value[1], value[2],);
|
|
14491
14468
|
break;
|
|
14492
|
-
case 'Object':
|
|
14493
|
-
const
|
|
14494
|
-
if (
|
|
14495
|
-
throw new Error('
|
|
14469
|
+
case 'Object': {
|
|
14470
|
+
const wrapped_index = value[1];
|
|
14471
|
+
if (typeof values[wrapped_index] === 'object' && values[wrapped_index][0] !== 'BigInt') {
|
|
14472
|
+
throw new Error('Invalid input',);
|
|
14496
14473
|
}
|
|
14497
|
-
hydrated[index] =
|
|
14474
|
+
hydrated[index] = Object(hydrate(wrapped_index,),);
|
|
14498
14475
|
break;
|
|
14476
|
+
}
|
|
14499
14477
|
case 'BigInt':
|
|
14500
14478
|
hydrated[index] = BigInt(value[1],);
|
|
14501
14479
|
break;
|
|
@@ -14514,19 +14492,22 @@ function unflatten(parsed, revivers,) {
|
|
|
14514
14492
|
case 'Uint8ClampedArray':
|
|
14515
14493
|
case 'Int16Array':
|
|
14516
14494
|
case 'Uint16Array':
|
|
14495
|
+
case 'Float16Array':
|
|
14517
14496
|
case 'Int32Array':
|
|
14518
14497
|
case 'Uint32Array':
|
|
14519
14498
|
case 'Float32Array':
|
|
14520
14499
|
case 'Float64Array':
|
|
14521
14500
|
case 'BigInt64Array':
|
|
14522
|
-
case 'BigUint64Array':
|
|
14501
|
+
case 'BigUint64Array':
|
|
14502
|
+
case 'DataView': {
|
|
14523
14503
|
if (values[value[1]][0] !== 'ArrayBuffer') {
|
|
14524
14504
|
throw new Error('Invalid data',);
|
|
14525
14505
|
}
|
|
14526
14506
|
const TypedArrayConstructor = globalThis[type];
|
|
14527
|
-
const
|
|
14528
|
-
|
|
14529
|
-
|
|
14507
|
+
const buffer2 = hydrate(value[1],);
|
|
14508
|
+
hydrated[index] = value[2] !== void 0
|
|
14509
|
+
? new TypedArrayConstructor(buffer2, value[2], value[3],)
|
|
14510
|
+
: new TypedArrayConstructor(buffer2,);
|
|
14530
14511
|
break;
|
|
14531
14512
|
}
|
|
14532
14513
|
case 'ArrayBuffer': {
|
|
@@ -14565,18 +14546,21 @@ function unflatten(parsed, revivers,) {
|
|
|
14565
14546
|
}
|
|
14566
14547
|
} else if (value[0] === SPARSE) {
|
|
14567
14548
|
const len = value[1];
|
|
14568
|
-
if (!
|
|
14549
|
+
if (!is_valid_array_len(len,)) {
|
|
14569
14550
|
throw new Error('Invalid input',);
|
|
14570
14551
|
}
|
|
14571
|
-
const array =
|
|
14552
|
+
const array = [];
|
|
14572
14553
|
hydrated[index] = array;
|
|
14554
|
+
array[MAX_ARRAY_INDEX] = void 0;
|
|
14555
|
+
delete array[MAX_ARRAY_INDEX];
|
|
14573
14556
|
for (let i = 2; i < value.length; i += 2) {
|
|
14574
14557
|
const idx = value[i];
|
|
14575
|
-
if (!
|
|
14558
|
+
if (!is_valid_array_index(idx,) || idx >= len) {
|
|
14576
14559
|
throw new Error('Invalid input',);
|
|
14577
14560
|
}
|
|
14578
14561
|
array[idx] = hydrate(value[i + 1],);
|
|
14579
14562
|
}
|
|
14563
|
+
array.length = len;
|
|
14580
14564
|
} else {
|
|
14581
14565
|
const array = new Array(value.length,);
|
|
14582
14566
|
hydrated[index] = array;
|
|
@@ -14602,6 +14586,10 @@ function unflatten(parsed, revivers,) {
|
|
|
14602
14586
|
return hydrate(0,);
|
|
14603
14587
|
}
|
|
14604
14588
|
function stringify(value, reducers,) {
|
|
14589
|
+
const stringified = run(false, value, reducers,);
|
|
14590
|
+
return typeof stringified === 'string' ? stringified : `[${stringified.join(',',)}]`;
|
|
14591
|
+
}
|
|
14592
|
+
function run(async, value, reducers,) {
|
|
14605
14593
|
const stringified = [];
|
|
14606
14594
|
const indexes = /* @__PURE__ */ new Map();
|
|
14607
14595
|
const custom = [];
|
|
@@ -14615,14 +14603,14 @@ function stringify(value, reducers,) {
|
|
|
14615
14603
|
}
|
|
14616
14604
|
const keys3 = [];
|
|
14617
14605
|
let p = 0;
|
|
14618
|
-
function flatten(thing,) {
|
|
14606
|
+
function flatten(thing, index2,) {
|
|
14619
14607
|
if (thing === void 0) return UNDEFINED;
|
|
14620
14608
|
if (Number.isNaN(thing,)) return NAN;
|
|
14621
14609
|
if (thing === Infinity) return POSITIVE_INFINITY;
|
|
14622
14610
|
if (thing === -Infinity) return NEGATIVE_INFINITY;
|
|
14623
14611
|
if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO;
|
|
14624
|
-
if (indexes.has(thing,)) return indexes.get(thing,);
|
|
14625
|
-
|
|
14612
|
+
if (indexes.has(thing,)) return /** @type {number} */ indexes.get(thing,);
|
|
14613
|
+
index2 ??= p++;
|
|
14626
14614
|
indexes.set(thing, index2,);
|
|
14627
14615
|
for (
|
|
14628
14616
|
const {
|
|
@@ -14638,20 +14626,28 @@ function stringify(value, reducers,) {
|
|
|
14638
14626
|
}
|
|
14639
14627
|
if (typeof thing === 'function') {
|
|
14640
14628
|
throw new DevalueError(`Cannot stringify a function`, keys3, thing, value,);
|
|
14629
|
+
} else if (typeof thing === 'symbol') {
|
|
14630
|
+
throw new DevalueError(`Cannot stringify a Symbol primitive`, keys3, thing, value,);
|
|
14641
14631
|
}
|
|
14642
14632
|
let str = '';
|
|
14643
14633
|
if (is_primitive(thing,)) {
|
|
14644
14634
|
str = stringify_primitive(thing,);
|
|
14635
|
+
} else if (typeof thing.then === 'function') {
|
|
14636
|
+
if (!async) {
|
|
14637
|
+
throw new DevalueError(`Cannot stringify a Promise or thenable \u2014 use stringifyAsync instead`, keys3, thing, value,);
|
|
14638
|
+
}
|
|
14639
|
+
str = Promise.resolve(thing,).then((value2) => {
|
|
14640
|
+
const i = flatten(value2, index2,);
|
|
14641
|
+
if (i < 0) stringified[index2] = i;
|
|
14642
|
+
},);
|
|
14645
14643
|
} else {
|
|
14646
14644
|
const type = get_type(thing,);
|
|
14647
14645
|
switch (type) {
|
|
14648
14646
|
case 'Number':
|
|
14649
14647
|
case 'String':
|
|
14650
14648
|
case 'Boolean':
|
|
14651
|
-
str = `["Object",${stringify_primitive(thing,)}]`;
|
|
14652
|
-
break;
|
|
14653
14649
|
case 'BigInt':
|
|
14654
|
-
str = `["
|
|
14650
|
+
str = `["Object",${flatten(thing.valueOf(),)}]`;
|
|
14655
14651
|
break;
|
|
14656
14652
|
case 'Date':
|
|
14657
14653
|
const valid = !isNaN(thing.getDate(),);
|
|
@@ -14729,19 +14725,18 @@ function stringify(value, reducers,) {
|
|
|
14729
14725
|
case 'Uint8ClampedArray':
|
|
14730
14726
|
case 'Int16Array':
|
|
14731
14727
|
case 'Uint16Array':
|
|
14728
|
+
case 'Float16Array':
|
|
14732
14729
|
case 'Int32Array':
|
|
14733
14730
|
case 'Uint32Array':
|
|
14734
14731
|
case 'Float32Array':
|
|
14735
14732
|
case 'Float64Array':
|
|
14736
14733
|
case 'BigInt64Array':
|
|
14737
|
-
case 'BigUint64Array':
|
|
14734
|
+
case 'BigUint64Array':
|
|
14735
|
+
case 'DataView': {
|
|
14738
14736
|
const typedArray = thing;
|
|
14739
14737
|
str = '["' + type + '",' + flatten(typedArray.buffer,);
|
|
14740
|
-
|
|
14741
|
-
|
|
14742
|
-
if (a > 0 || b !== typedArray.buffer.byteLength) {
|
|
14743
|
-
const m2 = +/(\d+)/.exec(type,)[1] / 8;
|
|
14744
|
-
str += `,${a / m2},${b / m2}`;
|
|
14738
|
+
if (typedArray.byteLength !== typedArray.buffer.byteLength) {
|
|
14739
|
+
str += `,${typedArray.byteOffset},${typedArray.length}`;
|
|
14745
14740
|
}
|
|
14746
14741
|
str += ']';
|
|
14747
14742
|
break;
|
|
@@ -14802,12 +14797,11 @@ function stringify(value, reducers,) {
|
|
|
14802
14797
|
}
|
|
14803
14798
|
const index = flatten(value,);
|
|
14804
14799
|
if (index < 0) return `${index}`;
|
|
14805
|
-
return
|
|
14800
|
+
return stringified;
|
|
14806
14801
|
}
|
|
14807
14802
|
function stringify_primitive(thing,) {
|
|
14808
14803
|
const type = typeof thing;
|
|
14809
14804
|
if (type === 'string') return stringify_string(thing,);
|
|
14810
|
-
if (thing instanceof String) return stringify_string(thing.toString(),);
|
|
14811
14805
|
if (thing === void 0) return UNDEFINED.toString();
|
|
14812
14806
|
if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString();
|
|
14813
14807
|
if (type === 'bigint') return `["BigInt","${thing}"]`;
|
|
@@ -14866,7 +14860,6 @@ var mockWindow = {
|
|
|
14866
14860
|
innerHeight: 0,
|
|
14867
14861
|
innerWidth: 0,
|
|
14868
14862
|
SVGSVGElement: {},
|
|
14869
|
-
scheduler: void 0,
|
|
14870
14863
|
open: function (_url, _target, _features,) {},
|
|
14871
14864
|
__framer_events: [],
|
|
14872
14865
|
};
|
|
@@ -15153,8 +15146,12 @@ var CollectionUtilsCache = class {
|
|
|
15153
15146
|
return this.callUtilsMethod('getRecordIdBySlug', slug, locale,);
|
|
15154
15147
|
}
|
|
15155
15148
|
};
|
|
15156
|
-
|
|
15157
|
-
|
|
15149
|
+
function hasScheduler(value,) {
|
|
15150
|
+
return 'scheduler' in value;
|
|
15151
|
+
}
|
|
15152
|
+
var safeWindowScheduler = /* @__PURE__ */ (() => hasScheduler(safeWindow,) ? safeWindow.scheduler : void 0)();
|
|
15153
|
+
var canUseYield = /* @__PURE__ */ (() => safeWindowScheduler && 'yield' in safeWindowScheduler)();
|
|
15154
|
+
var canUsePostTask = /* @__PURE__ */ (() => safeWindowScheduler && 'postTask' in safeWindowScheduler)();
|
|
15158
15155
|
var pendingResolvers = /* @__PURE__ */ new Set();
|
|
15159
15156
|
function resolvePendingPromises() {
|
|
15160
15157
|
for (const resolve of pendingResolvers) resolve();
|
|
@@ -15210,9 +15207,9 @@ function schedulerYield(options,) {
|
|
|
15210
15207
|
},);
|
|
15211
15208
|
}
|
|
15212
15209
|
if (canUseYield) {
|
|
15213
|
-
return
|
|
15210
|
+
return safeWindowScheduler.yield(options,).catch(noop22,);
|
|
15214
15211
|
}
|
|
15215
|
-
return
|
|
15212
|
+
return safeWindowScheduler.postTask(() => {}, options,).catch(noop22,);
|
|
15216
15213
|
}
|
|
15217
15214
|
function yieldToMain(options,) {
|
|
15218
15215
|
const {
|
|
@@ -23286,6 +23283,10 @@ var componentsWithServerRenderedStyles = /* @__PURE__ */ (() => {
|
|
|
23286
23283
|
return new Set(componentsWithSSRStylesAttr.split(' ',),);
|
|
23287
23284
|
})();
|
|
23288
23285
|
var framerCSSMarker = 'data-framer-css-ssr';
|
|
23286
|
+
function currentCSSRenderTarget() {
|
|
23287
|
+
if (isScreenshotFramerHost()) return RenderTarget.preview;
|
|
23288
|
+
return RenderTarget.current();
|
|
23289
|
+
}
|
|
23289
23290
|
var withCSS = (Component18, escapedCSS, componentSerializationId,) =>
|
|
23290
23291
|
React42.forwardRef((props, ref,) => {
|
|
23291
23292
|
const {
|
|
@@ -23294,14 +23295,14 @@ var withCSS = (Component18, escapedCSS, componentSerializationId,) =>
|
|
|
23294
23295
|
} = React42.useContext(StyleSheetContext,) ?? {};
|
|
23295
23296
|
const id3 = componentSerializationId;
|
|
23296
23297
|
if (!isBrowser22()) {
|
|
23297
|
-
if (isFunction(escapedCSS,)) escapedCSS = escapedCSS(
|
|
23298
|
+
if (isFunction(escapedCSS,)) escapedCSS = escapedCSS(currentCSSRenderTarget(), props,);
|
|
23298
23299
|
const concatenatedCSS = Array.isArray(escapedCSS,) ? escapedCSS.join('\n',) : escapedCSS;
|
|
23299
23300
|
cssCollector.add(concatenatedCSS, id3,);
|
|
23300
23301
|
}
|
|
23301
23302
|
useInsertionEffect(() => {
|
|
23302
23303
|
if (id3 && componentsWithServerRenderedStyles.has(id3,)) return;
|
|
23303
23304
|
const css22 = isFunction(escapedCSS,)
|
|
23304
|
-
? escapedCSS(
|
|
23305
|
+
? escapedCSS(currentCSSRenderTarget(), props,)
|
|
23305
23306
|
: Array.isArray(escapedCSS,)
|
|
23306
23307
|
? escapedCSS
|
|
23307
23308
|
: escapedCSS.split('\n',);
|
|
@@ -23773,6 +23774,55 @@ var inputIconCSSDeclaration = /* @__PURE__ */ (() => ({
|
|
|
23773
23774
|
pointerEvents: 'none',
|
|
23774
23775
|
...iconImageCSS,
|
|
23775
23776
|
}))();
|
|
23777
|
+
var listStyleTypeProperty = '--list-style-type';
|
|
23778
|
+
var maxListDigitsProperty = '--max-list-digits';
|
|
23779
|
+
function getMaxListDigits(start2, itemCount, listStyleType,) {
|
|
23780
|
+
const lastListNumber = start2 + Math.max(itemCount, 1,) - 1;
|
|
23781
|
+
switch (listStyleType) {
|
|
23782
|
+
case 'decimal':
|
|
23783
|
+
return decimalMaxListDigits(lastListNumber,);
|
|
23784
|
+
case 'lower-alpha':
|
|
23785
|
+
case 'upper-alpha':
|
|
23786
|
+
case 'lower-latin':
|
|
23787
|
+
case 'upper-latin':
|
|
23788
|
+
return alphaMaxListDigits(lastListNumber,);
|
|
23789
|
+
case 'lower-roman':
|
|
23790
|
+
case 'upper-roman':
|
|
23791
|
+
return romanMaxListDigits(lastListNumber,);
|
|
23792
|
+
default:
|
|
23793
|
+
return decimalMaxListDigits(lastListNumber,);
|
|
23794
|
+
}
|
|
23795
|
+
}
|
|
23796
|
+
function decimalMaxListDigits(lastListNumber,) {
|
|
23797
|
+
return String(lastListNumber,).length;
|
|
23798
|
+
}
|
|
23799
|
+
function alphaMaxListDigits(lastListNumber,) {
|
|
23800
|
+
let nextCharacters = 1;
|
|
23801
|
+
while (letterPermutations(nextCharacters,) < lastListNumber) {
|
|
23802
|
+
nextCharacters++;
|
|
23803
|
+
}
|
|
23804
|
+
return nextCharacters;
|
|
23805
|
+
}
|
|
23806
|
+
function letterPermutations(characters,) {
|
|
23807
|
+
let permutations = 0;
|
|
23808
|
+
for (let i = 0; i < characters; i++) {
|
|
23809
|
+
permutations += 26 ** (i + 1);
|
|
23810
|
+
}
|
|
23811
|
+
return permutations;
|
|
23812
|
+
}
|
|
23813
|
+
var romanNumeralLengthThresholds = [1, 2, 3, 8, 18, 28, 38, 88, 188, 288, 388, 888,];
|
|
23814
|
+
function romanMaxListDigits(lastListNumber,) {
|
|
23815
|
+
let maxLength = 0;
|
|
23816
|
+
for (const threshold2 of romanNumeralLengthThresholds) {
|
|
23817
|
+
if (lastListNumber < threshold2) return maxLength;
|
|
23818
|
+
maxLength++;
|
|
23819
|
+
}
|
|
23820
|
+
const thousands = Math.floor((lastListNumber - 888) / 1e3,);
|
|
23821
|
+
if (thousands >= 1) {
|
|
23822
|
+
return Math.max(maxLength, thousands + 12,);
|
|
23823
|
+
}
|
|
23824
|
+
return maxLength;
|
|
23825
|
+
}
|
|
23776
23826
|
function createRGBVariableFallbacks(variables, fallback,) {
|
|
23777
23827
|
return css2.variable(...variables.flatMap((variable) => [`${variable}-rgb`, variable,]), fallback,);
|
|
23778
23828
|
}
|
|
@@ -24025,11 +24075,11 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24025
24075
|
span.framer-text[data-nested-link] span.framer-text:not([data-text-fill]) {
|
|
24026
24076
|
/* Ensure the color is inherited from the link style rather than the parent text for nested spans */
|
|
24027
24077
|
color: inherit;
|
|
24028
|
-
font-family: var(--framer-font-family-preview, var(--framer-
|
|
24029
|
-
font-style: var(--framer-font-style-preview, var(--framer-
|
|
24030
|
-
font-weight: var(--framer-font-weight-preview, var(--framer-
|
|
24078
|
+
font-family: var(--framer-font-family-preview, var(--framer-link-font-family, var(--framer-blockquote-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif))));
|
|
24079
|
+
font-style: var(--framer-font-style-preview, var(--framer-link-font-style, var(--framer-blockquote-font-style, var(--framer-font-style, normal))));
|
|
24080
|
+
font-weight: var(--framer-font-weight-preview, var(--framer-link-font-weight, var(--framer-blockquote-font-weight, var(--framer-font-weight, 400))));
|
|
24031
24081
|
font-size: calc(var(--framer-blockquote-font-size, var(--framer-font-size, 16px)) * var(--framer-font-size-scale, 1));
|
|
24032
|
-
text-transform: var(--framer-
|
|
24082
|
+
text-transform: var(--framer-link-text-transform, var(--framer-blockquote-text-transform, var(--framer-text-transform, none)));
|
|
24033
24083
|
/* Cursor inherit to overwrite the user agent stylesheet on rich text links. */
|
|
24034
24084
|
cursor: var(--framer-custom-cursors, pointer);
|
|
24035
24085
|
/* Don't inherit background styles from any parent text style. */
|
|
@@ -24044,13 +24094,13 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24044
24094
|
`
|
|
24045
24095
|
a.framer-text,
|
|
24046
24096
|
span.framer-text[data-nested-link] {
|
|
24047
|
-
color: var(--framer-
|
|
24048
|
-
text-decoration-line: var(--framer-
|
|
24049
|
-
text-decoration-style: var(--framer-
|
|
24050
|
-
text-decoration-color: var(--framer-
|
|
24051
|
-
text-decoration-thickness: var(--framer-
|
|
24052
|
-
text-decoration-skip-ink: var(--framer-
|
|
24053
|
-
text-underline-offset: var(--framer-
|
|
24097
|
+
color: var(--framer-link-text-color, var(--framer-blockquote-text-color, var(--framer-text-color, #000)));
|
|
24098
|
+
text-decoration-line: var(--framer-link-text-decoration, var(--framer-blockquote-text-decoration, var(--framer-text-decoration, initial)));
|
|
24099
|
+
text-decoration-style: var(--framer-link-text-decoration-style, var(--framer-blockquote-text-decoration-style, var(--framer-text-decoration-style, initial)));
|
|
24100
|
+
text-decoration-color: var(--framer-link-text-decoration-color, var(--framer-blockquote-text-decoration-color, var(--framer-text-decoration-color, initial)));
|
|
24101
|
+
text-decoration-thickness: var(--framer-link-text-decoration-thickness, var(--framer-blockquote-text-decoration-thickness, var(--framer-text-decoration-thickness, initial)));
|
|
24102
|
+
text-decoration-skip-ink: var(--framer-link-text-decoration-skip-ink, var(--framer-blockquote-text-decoration-skip-ink, var(--framer-text-decoration-skip-ink, initial)));
|
|
24103
|
+
text-underline-offset: var(--framer-link-text-decoration-offset, var(--framer-blockquote-text-decoration-offset, var(--framer-text-decoration-offset, initial)));
|
|
24054
24104
|
/* Don't inherit background styles from any parent text style. */
|
|
24055
24105
|
background-color: var(--framer-link-text-background-color, initial);
|
|
24056
24106
|
}
|
|
@@ -24060,7 +24110,7 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24060
24110
|
a.framer-text,
|
|
24061
24111
|
span.framer-text[data-nested-link] {
|
|
24062
24112
|
color: ${
|
|
24063
|
-
createRGBVariableFallbacks(['--framer-
|
|
24113
|
+
createRGBVariableFallbacks(['--framer-link-text-color', '--framer-blockquote-text-color', '--framer-text-color',], '#000',)
|
|
24064
24114
|
};
|
|
24065
24115
|
background-color: ${createRGBVariableFallbacks(['--framer-link-text-background-color',], 'initial',)};
|
|
24066
24116
|
text-decoration-color: ${
|
|
@@ -24084,7 +24134,7 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24084
24134
|
`
|
|
24085
24135
|
code.framer-text a.framer-text,
|
|
24086
24136
|
code.framer-text span.framer-text[data-nested-link] {
|
|
24087
|
-
color: var(--framer-
|
|
24137
|
+
color: var(--framer-link-text-color, var(--framer-blockquote-text-color, var(--framer-code-text-color, var(--framer-text-color, #000))));
|
|
24088
24138
|
}
|
|
24089
24139
|
`, /* css */
|
|
24090
24140
|
`
|
|
@@ -24095,8 +24145,8 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24095
24145
|
code.framer-text span.framer-text[data-nested-link] span.framer-text:not([data-text-fill]) {
|
|
24096
24146
|
color: ${
|
|
24097
24147
|
createRGBVariableFallbacks([
|
|
24098
|
-
'--framer-blockquote-text-color',
|
|
24099
24148
|
'--framer-link-text-color',
|
|
24149
|
+
'--framer-blockquote-text-color',
|
|
24100
24150
|
'--framer-code-text-color',
|
|
24101
24151
|
'--framer-text-color',
|
|
24102
24152
|
], '#000',)
|
|
@@ -24109,11 +24159,11 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24109
24159
|
a.framer-text:hover span.framer-text:not([data-text-fill]),
|
|
24110
24160
|
span.framer-text[data-nested-link]:hover,
|
|
24111
24161
|
span.framer-text[data-nested-link]:hover span.framer-text:not([data-text-fill]) {
|
|
24112
|
-
font-family: var(--framer-font-family-preview, var(--framer-link-hover-font-family, var(--framer-
|
|
24113
|
-
font-style: var(--framer-font-style-preview, var(--framer-link-hover-font-style, var(--framer-
|
|
24114
|
-
font-weight: var(--framer-font-weight-preview, var(--framer-link-hover-font-weight, var(--framer-
|
|
24162
|
+
font-family: var(--framer-font-family-preview, var(--framer-link-hover-font-family, var(--framer-link-font-family, var(--framer-blockquote-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif)))));
|
|
24163
|
+
font-style: var(--framer-font-style-preview, var(--framer-link-hover-font-style, var(--framer-link-font-style, var(--framer-blockquote-font-style, var(--framer-font-style, normal)))));
|
|
24164
|
+
font-weight: var(--framer-font-weight-preview, var(--framer-link-hover-font-weight, var(--framer-link-font-weight, var(--framer-blockquote-font-weight, var(--framer-font-weight, 400)))));
|
|
24115
24165
|
font-size: calc(var(--framer-link-hover-font-size, var(--framer-blockquote-font-size, var(--framer-font-size, 16px))) * var(--framer-font-size-scale, 1));
|
|
24116
|
-
text-transform: var(--framer-link-hover-text-transform, var(--framer-
|
|
24166
|
+
text-transform: var(--framer-link-hover-text-transform, var(--framer-link-text-transform, var(--framer-blockquote-text-transform, var(--framer-text-transform, none))));
|
|
24117
24167
|
border-radius: var(--framer-link-hover-text-background-radius, var(--framer-link-text-background-radius, var(--framer-text-background-radius, initial)));
|
|
24118
24168
|
corner-shape: var(--framer-link-hover-text-background-corner-shape, var(--framer-link-text-background-corner-shape, var(--framer-text-background-corner-shape, initial)));
|
|
24119
24169
|
padding: var(--framer-link-hover-text-background-padding, var(--framer-link-text-background-padding, var(--framer-text-background-padding, initial)));
|
|
@@ -24122,13 +24172,13 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24122
24172
|
`
|
|
24123
24173
|
a.framer-text:hover,
|
|
24124
24174
|
span.framer-text[data-nested-link]:hover {
|
|
24125
|
-
color: var(--framer-link-hover-text-color, var(--framer-
|
|
24126
|
-
text-decoration-line: var(--framer-link-hover-text-decoration, var(--framer-
|
|
24127
|
-
text-decoration-style: var(--framer-link-hover-text-decoration-style, var(--framer-
|
|
24128
|
-
text-decoration-color: var(--framer-link-hover-text-decoration-color, var(--framer-
|
|
24129
|
-
text-decoration-thickness: var(--framer-link-hover-text-decoration-thickness, var(--framer-
|
|
24130
|
-
text-decoration-skip-ink: var(--framer-link-hover-text-decoration-skip-ink, var(--framer-
|
|
24131
|
-
text-underline-offset: var(--framer-link-hover-text-decoration-offset, var(--framer-
|
|
24175
|
+
color: var(--framer-link-hover-text-color, var(--framer-link-text-color, var(--framer-blockquote-text-color, var(--framer-text-color, #000))));
|
|
24176
|
+
text-decoration-line: var(--framer-link-hover-text-decoration, var(--framer-link-text-decoration, var(--framer-blockquote-text-decoration, var(--framer-text-decoration, initial))));
|
|
24177
|
+
text-decoration-style: var(--framer-link-hover-text-decoration-style, var(--framer-link-text-decoration-style, var(--framer-blockquote-text-decoration-style, var(--framer-text-decoration-style, initial))));
|
|
24178
|
+
text-decoration-color: var(--framer-link-hover-text-decoration-color, var(--framer-link-text-decoration-color, var(--framer-blockquote-text-decoration-color, var(--framer-text-decoration-color, initial))));
|
|
24179
|
+
text-decoration-thickness: var(--framer-link-hover-text-decoration-thickness, var(--framer-link-text-decoration-thickness, var(--framer-blockquote-text-decoration-thickness, var(--framer-text-decoration-thickness, initial))));
|
|
24180
|
+
text-decoration-skip-ink: var(--framer-link-hover-text-decoration-skip-ink, var(--framer-link-text-decoration-skip-ink, var(--framer-blockquote-text-decoration-skip-ink, var(--framer-text-decoration-skip-ink, initial))));
|
|
24181
|
+
text-underline-offset: var(--framer-link-hover-text-decoration-offset, var(--framer-link-text-decoration-offset, var(--framer-blockquote-text-decoration-offset, var(--framer-text-decoration-offset, initial))));
|
|
24132
24182
|
background-color: var(--framer-link-hover-text-background-color, var(--framer-link-text-background-color, var(--framer-text-background-color, initial)));
|
|
24133
24183
|
}
|
|
24134
24184
|
`, /* css */
|
|
@@ -24139,8 +24189,8 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24139
24189
|
color: ${
|
|
24140
24190
|
createRGBVariableFallbacks([
|
|
24141
24191
|
'--framer-link-hover-text-color',
|
|
24142
|
-
'--framer-blockquote-text-color',
|
|
24143
24192
|
'--framer-link-text-color',
|
|
24193
|
+
'--framer-blockquote-text-color',
|
|
24144
24194
|
'--framer-text-color',
|
|
24145
24195
|
], '#000',)
|
|
24146
24196
|
};
|
|
@@ -24164,7 +24214,7 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24164
24214
|
`
|
|
24165
24215
|
code.framer-text a.framer-text:hover,
|
|
24166
24216
|
code.framer-text span.framer-text[data-nested-link]:hover {
|
|
24167
|
-
color: var(--framer-link-hover-text-color, var(--framer-
|
|
24217
|
+
color: var(--framer-link-hover-text-color, var(--framer-link-text-color, var(--framer-blockquote-text-color, var(--framer-code-text-color, var(--framer-text-color, #000)))));
|
|
24168
24218
|
}
|
|
24169
24219
|
`, /* css */
|
|
24170
24220
|
`
|
|
@@ -24174,8 +24224,8 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24174
24224
|
color: ${
|
|
24175
24225
|
createRGBVariableFallbacks([
|
|
24176
24226
|
'--framer-link-hover-text-color',
|
|
24177
|
-
'--framer-blockquote-text-color',
|
|
24178
24227
|
'--framer-link-text-color',
|
|
24228
|
+
'--framer-blockquote-text-color',
|
|
24179
24229
|
'--framer-code-text-color',
|
|
24180
24230
|
'--framer-text-color',
|
|
24181
24231
|
], '#000',)
|
|
@@ -24421,6 +24471,11 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24421
24471
|
list-style: none;
|
|
24422
24472
|
padding-inline-start: 2ch;
|
|
24423
24473
|
}
|
|
24474
|
+
`, /* css */
|
|
24475
|
+
`
|
|
24476
|
+
ol.framer-text > li.framer-text {
|
|
24477
|
+
padding-inline-start: calc(calc(var(${maxListDigitsProperty}, 1) + 1) * 1ch);
|
|
24478
|
+
}
|
|
24424
24479
|
`,
|
|
24425
24480
|
// font-variant-numeric: tabular-nums enables monospaced numbers (which is neat in a vertical list of numbers)
|
|
24426
24481
|
// and makes `li`s match the default browser styles better.
|
|
@@ -24432,48 +24487,6 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24432
24487
|
content: counter(list-item, var(--list-style-type)) ".";
|
|
24433
24488
|
font-variant-numeric: tabular-nums;
|
|
24434
24489
|
}
|
|
24435
|
-
`,
|
|
24436
|
-
// Why this? Due to `position: absolute` (see above), if a list has a lot of items, the numbers
|
|
24437
|
-
// might start overlapping the text content. This compensates for that. The trick is based on
|
|
24438
|
-
// https://alistapart.com/article/quantity-queries-for-css/#section6. The trick doesn’t account
|
|
24439
|
-
// for lists longer than 1,000,000 items, but if you have a list of 1,000,000 items, you’ll have
|
|
24440
|
-
// other problems ¯\_(ツ)_/¯
|
|
24441
|
-
/* css */
|
|
24442
|
-
`
|
|
24443
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 10),
|
|
24444
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 10) ~ li {
|
|
24445
|
-
padding-inline-start: 3ch;
|
|
24446
|
-
}
|
|
24447
|
-
`, /* css */
|
|
24448
|
-
`
|
|
24449
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 100),
|
|
24450
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 100) ~ li {
|
|
24451
|
-
padding-inline-start: 4ch;
|
|
24452
|
-
}
|
|
24453
|
-
`, /* css */
|
|
24454
|
-
`
|
|
24455
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 1000),
|
|
24456
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 1000) ~ li {
|
|
24457
|
-
padding-inline-start: 5ch;
|
|
24458
|
-
}
|
|
24459
|
-
`, /* css */
|
|
24460
|
-
`
|
|
24461
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 10000),
|
|
24462
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 10000) ~ li {
|
|
24463
|
-
padding-inline-start: 6ch;
|
|
24464
|
-
}
|
|
24465
|
-
`, /* css */
|
|
24466
|
-
`
|
|
24467
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 100000),
|
|
24468
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 100000) ~ li {
|
|
24469
|
-
padding-inline-start: 7ch;
|
|
24470
|
-
}
|
|
24471
|
-
`, /* css */
|
|
24472
|
-
`
|
|
24473
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 1000000),
|
|
24474
|
-
ol.framer-text > li.framer-text:nth-last-child(n + 1000000) ~ li {
|
|
24475
|
-
padding-inline-start: 8ch;
|
|
24476
|
-
}
|
|
24477
24490
|
`, /* css */
|
|
24478
24491
|
`
|
|
24479
24492
|
ul.framer-text > li.framer-text::before {
|
|
@@ -24501,6 +24514,7 @@ var richTextCSSRules = /* @__PURE__ */ (() => [
|
|
|
24501
24514
|
td.framer-text,
|
|
24502
24515
|
th.framer-text {
|
|
24503
24516
|
min-width: 16ch;
|
|
24517
|
+
overflow-wrap: anywhere;
|
|
24504
24518
|
vertical-align: top;
|
|
24505
24519
|
}
|
|
24506
24520
|
`,
|
|
@@ -34992,8 +35006,8 @@ var Scroll = /* @__PURE__ */ (() => {
|
|
|
34992
35006
|
disabledTitle: 'Off',
|
|
34993
35007
|
defaultValue: true,
|
|
34994
35008
|
hidden: ({
|
|
34995
|
-
native,
|
|
34996
|
-
},) =>
|
|
35009
|
+
native: native2,
|
|
35010
|
+
},) => native2 === true,
|
|
34997
35011
|
},
|
|
34998
35012
|
dragEnabled: {
|
|
34999
35013
|
type: 'boolean',
|
|
@@ -35009,8 +35023,8 @@ var Scroll = /* @__PURE__ */ (() => {
|
|
|
35009
35023
|
disabledTitle: 'Off',
|
|
35010
35024
|
defaultValue: true,
|
|
35011
35025
|
hidden: ({
|
|
35012
|
-
native,
|
|
35013
|
-
},) =>
|
|
35026
|
+
native: native2,
|
|
35027
|
+
},) => native2 === true,
|
|
35014
35028
|
},
|
|
35015
35029
|
wheelEnabled: {
|
|
35016
35030
|
type: 'boolean',
|
|
@@ -35019,8 +35033,8 @@ var Scroll = /* @__PURE__ */ (() => {
|
|
|
35019
35033
|
disabledTitle: 'Off',
|
|
35020
35034
|
defaultValue: true,
|
|
35021
35035
|
hidden: ({
|
|
35022
|
-
native,
|
|
35023
|
-
},) =>
|
|
35036
|
+
native: native2,
|
|
35037
|
+
},) => native2 === true,
|
|
35024
35038
|
},
|
|
35025
35039
|
scrollBarVisible: {
|
|
35026
35040
|
type: 'boolean',
|
|
@@ -35029,8 +35043,8 @@ var Scroll = /* @__PURE__ */ (() => {
|
|
|
35029
35043
|
disabledTitle: 'Hidden',
|
|
35030
35044
|
defaultValue: false,
|
|
35031
35045
|
hidden: ({
|
|
35032
|
-
native,
|
|
35033
|
-
},) =>
|
|
35046
|
+
native: native2,
|
|
35047
|
+
},) => native2 === false,
|
|
35034
35048
|
},
|
|
35035
35049
|
resetOffset: {
|
|
35036
35050
|
type: 'boolean',
|
|
@@ -39498,8 +39512,8 @@ var maxTime = 1e4;
|
|
|
39498
39512
|
function createWorkerTask() {
|
|
39499
39513
|
return function () {
|
|
39500
39514
|
async function sha256(text,) {
|
|
39501
|
-
const
|
|
39502
|
-
const hashBuffer = await crypto.subtle.digest('SHA-256',
|
|
39515
|
+
const buffer2 = new TextEncoder().encode(text,);
|
|
39516
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', buffer2,);
|
|
39503
39517
|
return Array.from(new Uint8Array(hashBuffer,),).map((b) => b.toString(16,).padStart(2, '0',)).join('',);
|
|
39504
39518
|
}
|
|
39505
39519
|
function randomCharacters(count,) {
|
|
@@ -39704,21 +39718,17 @@ var HoneypotInput = ({
|
|
|
39704
39718
|
'data-bwignore': true,
|
|
39705
39719
|
},);
|
|
39706
39720
|
};
|
|
39707
|
-
function useHoneypotFields(
|
|
39721
|
+
function useHoneypotFields() {
|
|
39708
39722
|
const framerSiteId = React42.useContext(FormContext,);
|
|
39709
39723
|
const states = React42.useMemo(() =>
|
|
39710
|
-
|
|
39711
|
-
|
|
39712
|
-
|
|
39713
|
-
|
|
39714
|
-
|
|
39715
|
-
|
|
39716
|
-
|
|
39717
|
-
|
|
39718
|
-
},
|
|
39719
|
-
};
|
|
39720
|
-
},)
|
|
39721
|
-
: [], [isEnabled,],);
|
|
39724
|
+
COMMON_FIELD_NAMES.map((fieldName) => ({
|
|
39725
|
+
inputRef: React42.createRef(),
|
|
39726
|
+
originalName: fieldName,
|
|
39727
|
+
methodsUsed: {
|
|
39728
|
+
setAttribute: false,
|
|
39729
|
+
valueProperty: false,
|
|
39730
|
+
},
|
|
39731
|
+
})), [],);
|
|
39722
39732
|
const convertHoneypotFieldsForSubmission = React42.useCallback(() => {
|
|
39723
39733
|
states.forEach((state) => {
|
|
39724
39734
|
const currentHoneypotInput = state.inputRef.current;
|
|
@@ -39728,7 +39738,6 @@ function useHoneypotFields(isEnabled,) {
|
|
|
39728
39738
|
},);
|
|
39729
39739
|
}, [states,],);
|
|
39730
39740
|
const replaceHoneypotWithMetadata = React42.useCallback((formData) => {
|
|
39731
|
-
if (!isEnabled) return;
|
|
39732
39741
|
const honeypotCount = states.length;
|
|
39733
39742
|
let honeypotFilled = 0;
|
|
39734
39743
|
const filledFieldsData = [];
|
|
@@ -39760,7 +39769,7 @@ function useHoneypotFields(isEnabled,) {
|
|
|
39760
39769
|
formData.append(`${HONEYPOT_FIELD_NAME}_${METADATA_KEYS_ENUM.hpVersion}`, HONEYPOT_VERSION,);
|
|
39761
39770
|
formData.append(`${HONEYPOT_FIELD_NAME}_${METADATA_KEYS_ENUM.siteId}`, framerSiteId || '',);
|
|
39762
39771
|
formData.append(`${HONEYPOT_FIELD_NAME}_${METADATA_KEYS_ENUM.timeToSubmissionSinceModuleLoad}`, getTimeSinceModuleLoadInSeconds(),);
|
|
39763
|
-
}, [
|
|
39772
|
+
}, [states, framerSiteId,],);
|
|
39764
39773
|
return {
|
|
39765
39774
|
states,
|
|
39766
39775
|
convertHoneypotFieldsForSubmission,
|
|
@@ -39802,68 +39811,6 @@ function sendFormSubmitTrackingEvent(pageviewEventData, nodeId, trackingId,) {
|
|
|
39802
39811
|
trackingId: trackingId || null,
|
|
39803
39812
|
}, 'eager',);
|
|
39804
39813
|
}
|
|
39805
|
-
var RECAPTCHA_SCRIPT_URL = 'https://www.google.com/recaptcha/api.js';
|
|
39806
|
-
function getRecaptchaScriptUrl(siteKey,) {
|
|
39807
|
-
return `${RECAPTCHA_SCRIPT_URL}?render=${encodeURIComponent(siteKey,)}&badge=bottomleft`;
|
|
39808
|
-
}
|
|
39809
|
-
var captchaScriptPromises = /* @__PURE__ */ new Map();
|
|
39810
|
-
function loadRecaptchaScript(siteKey,) {
|
|
39811
|
-
const existing = captchaScriptPromises.get(siteKey,);
|
|
39812
|
-
if (existing) return existing;
|
|
39813
|
-
const scriptUrl = getRecaptchaScriptUrl(siteKey,);
|
|
39814
|
-
if (document.querySelector(`script[src="${scriptUrl}"]`,)) {
|
|
39815
|
-
const resolved = Promise.resolve();
|
|
39816
|
-
captchaScriptPromises.set(siteKey, resolved,);
|
|
39817
|
-
return resolved;
|
|
39818
|
-
}
|
|
39819
|
-
const promise = new Promise((resolve, reject,) => {
|
|
39820
|
-
const script = document.createElement('script',);
|
|
39821
|
-
script.src = scriptUrl;
|
|
39822
|
-
script.onload = () => resolve();
|
|
39823
|
-
script.onerror = () => {
|
|
39824
|
-
captchaScriptPromises.delete(siteKey,);
|
|
39825
|
-
script.remove();
|
|
39826
|
-
reject(new Error('Failed to load captcha script',),);
|
|
39827
|
-
};
|
|
39828
|
-
document.head.appendChild(script,);
|
|
39829
|
-
},);
|
|
39830
|
-
captchaScriptPromises.set(siteKey, promise,);
|
|
39831
|
-
return promise;
|
|
39832
|
-
}
|
|
39833
|
-
function executeRecaptcha(siteKey, _action,) {
|
|
39834
|
-
return new Promise((resolve, reject,) => {
|
|
39835
|
-
const {
|
|
39836
|
-
grecaptcha,
|
|
39837
|
-
} = __unframerWindow2;
|
|
39838
|
-
if (!grecaptcha) {
|
|
39839
|
-
reject(new Error('Captcha script not available',),);
|
|
39840
|
-
return;
|
|
39841
|
-
}
|
|
39842
|
-
grecaptcha.ready(() => {
|
|
39843
|
-
grecaptcha.execute(siteKey,).then(resolve, reject,);
|
|
39844
|
-
},);
|
|
39845
|
-
},);
|
|
39846
|
-
}
|
|
39847
|
-
function useCaptcha({
|
|
39848
|
-
provider,
|
|
39849
|
-
siteKey,
|
|
39850
|
-
},) {
|
|
39851
|
-
React42.useEffect(() => {
|
|
39852
|
-
if (provider === 'recaptcha_v3' && siteKey) {
|
|
39853
|
-
requestIdleCallback(() => {
|
|
39854
|
-
loadRecaptchaScript(siteKey,).catch(() => {},);
|
|
39855
|
-
},);
|
|
39856
|
-
}
|
|
39857
|
-
}, [provider, siteKey,],);
|
|
39858
|
-
const executeChallenge = React42.useCallback(async (action) => {
|
|
39859
|
-
if (provider !== 'recaptcha_v3' || !siteKey) return void 0;
|
|
39860
|
-
await loadRecaptchaScript(siteKey,);
|
|
39861
|
-
return executeRecaptcha(siteKey, action,);
|
|
39862
|
-
}, [provider, siteKey,],);
|
|
39863
|
-
return {
|
|
39864
|
-
executeChallenge,
|
|
39865
|
-
};
|
|
39866
|
-
}
|
|
39867
39814
|
var pendingState = {
|
|
39868
39815
|
state: 'pending',
|
|
39869
39816
|
};
|
|
@@ -39930,28 +39877,19 @@ var FormContainer = /* @__PURE__ */ React42.forwardRef(function FormContainer2({
|
|
|
39930
39877
|
onLoading,
|
|
39931
39878
|
submitTrackingId,
|
|
39932
39879
|
nodeId,
|
|
39933
|
-
formCaptchaProvider,
|
|
39934
|
-
formCaptchaSiteKey,
|
|
39935
39880
|
...props
|
|
39936
39881
|
}, forwardedRef,) {
|
|
39937
39882
|
const fallbackRef = React42.useRef(null,);
|
|
39938
39883
|
const ref = forwardedRef ?? fallbackRef;
|
|
39939
|
-
const shouldUseHoneypot = !(formCaptchaProvider && formCaptchaSiteKey);
|
|
39940
39884
|
const {
|
|
39941
39885
|
states: honeypotStateRefs,
|
|
39942
39886
|
convertHoneypotFieldsForSubmission,
|
|
39943
39887
|
replaceHoneypotWithMetadata,
|
|
39944
|
-
} = useHoneypotFields(
|
|
39888
|
+
} = useHoneypotFields();
|
|
39945
39889
|
const router = useRouter();
|
|
39946
39890
|
const currentRoute = useCurrentRoute();
|
|
39947
39891
|
const implicitPathVariables = useImplicitPathVariables();
|
|
39948
39892
|
const collectionUtils = useCollectionUtils();
|
|
39949
|
-
const {
|
|
39950
|
-
executeChallenge,
|
|
39951
|
-
} = useCaptcha({
|
|
39952
|
-
provider: formCaptchaProvider,
|
|
39953
|
-
siteKey: formCaptchaSiteKey,
|
|
39954
|
-
},);
|
|
39955
39893
|
const [state, dispatch,] = React42.useReducer(formReducer, incompleteState,);
|
|
39956
39894
|
const {
|
|
39957
39895
|
activeLocale,
|
|
@@ -40029,7 +39967,7 @@ var FormContainer = /* @__PURE__ */ React42.forwardRef(function FormContainer2({
|
|
|
40029
39967
|
submitTrackingId,
|
|
40030
39968
|
activeLocale,
|
|
40031
39969
|
},);
|
|
40032
|
-
await submitForm(action, data2, projectHash,
|
|
39970
|
+
await submitForm(action, data2, projectHash,);
|
|
40033
39971
|
startTransition2(() =>
|
|
40034
39972
|
dispatch({
|
|
40035
39973
|
type: 'success',
|
|
@@ -40084,7 +40022,7 @@ var FormContainer = /* @__PURE__ */ React42.forwardRef(function FormContainer2({
|
|
|
40084
40022
|
ref,
|
|
40085
40023
|
children: [
|
|
40086
40024
|
children(state,),
|
|
40087
|
-
|
|
40025
|
+
/* @__PURE__ */ jsx(HoneypotFields, {
|
|
40088
40026
|
suppressHydrationWarning: true,
|
|
40089
40027
|
states: honeypotStateRefs,
|
|
40090
40028
|
},),
|
|
@@ -40103,20 +40041,16 @@ function anyEmptyRequiredFields(element,) {
|
|
|
40103
40041
|
}
|
|
40104
40042
|
return false;
|
|
40105
40043
|
}
|
|
40106
|
-
async function submitForm(action, data2, projectHash,
|
|
40044
|
+
async function submitForm(action, data2, projectHash,) {
|
|
40107
40045
|
const proofOfWork = await calculateProofOfWork();
|
|
40108
40046
|
if (!proofOfWork) {
|
|
40109
40047
|
throw new Error('Failed to calculate proof of work',);
|
|
40110
40048
|
}
|
|
40111
|
-
const captchaToken = await executeChallenge('submit',);
|
|
40112
40049
|
const headers = {
|
|
40113
40050
|
'Framer-Site-Id': projectHash,
|
|
40114
40051
|
'Framer-POW': proofOfWork.secret,
|
|
40115
40052
|
'Framer-Form-Fields': getEncodedFormFieldsHeader(data2,),
|
|
40116
40053
|
};
|
|
40117
|
-
if (captchaToken) {
|
|
40118
|
-
headers['Framer-Captcha-Response'] = captchaToken;
|
|
40119
|
-
}
|
|
40120
40054
|
const response = await fetch(action, {
|
|
40121
40055
|
body: data2,
|
|
40122
40056
|
method: 'POST',
|
|
@@ -46873,6 +46807,10 @@ var QueryCache = class {
|
|
|
46873
46807
|
__publicField(this, 'cache', /* @__PURE__ */ new Map(),);
|
|
46874
46808
|
__publicField(this, 'serializedCache', handoverCollector !== void 0 ? /* @__PURE__ */ new Map() : void 0,);
|
|
46875
46809
|
}
|
|
46810
|
+
clear() {
|
|
46811
|
+
this.cache.clear();
|
|
46812
|
+
this.serializedCache?.clear();
|
|
46813
|
+
}
|
|
46876
46814
|
prune() {
|
|
46877
46815
|
if (this.cache.size <= this.maxSize) return;
|
|
46878
46816
|
for (const [key7, value,] of this.cache) {
|
|
@@ -46934,7 +46872,7 @@ function getCacheKey(query, locale,) {
|
|
|
46934
46872
|
async function executeServerDatabaseQuery(sql,) {
|
|
46935
46873
|
const {
|
|
46936
46874
|
executeServerDatabaseQuery: executeServerDatabaseQueryWithSqlite,
|
|
46937
|
-
} = await import('./framer-chunks/SqliteDatabase-VAKIICSG-
|
|
46875
|
+
} = await import('./framer-chunks/SqliteDatabase-VAKIICSG-OPV4MG3Y.js');
|
|
46938
46876
|
return executeServerDatabaseQueryWithSqlite(sql,);
|
|
46939
46877
|
}
|
|
46940
46878
|
var queryEngine = /* @__PURE__ */ new QueryEngine();
|
|
@@ -48536,7 +48474,7 @@ function flattenChildrenToTickerItems(children,) {
|
|
|
48536
48474
|
Children.forEach(children, (child) => {
|
|
48537
48475
|
if (isValidElement(child,) && child.type === Fragment) {
|
|
48538
48476
|
result.push(...flattenChildrenToTickerItems(child.props.children,),);
|
|
48539
|
-
} else {
|
|
48477
|
+
} else if (child) {
|
|
48540
48478
|
result.push(child,);
|
|
48541
48479
|
}
|
|
48542
48480
|
},);
|
|
@@ -48623,7 +48561,7 @@ var TickerContext = /* @__PURE__ */ (() => {
|
|
|
48623
48561
|
})();
|
|
48624
48562
|
function useTicker() {
|
|
48625
48563
|
const context = useContext(TickerContext,);
|
|
48626
|
-
|
|
48564
|
+
invariant2(Boolean(context,), 'useTicker must be used within a Ticker component',);
|
|
48627
48565
|
return context;
|
|
48628
48566
|
}
|
|
48629
48567
|
var TickerItemContext = /* @__PURE__ */ (() => {
|
|
@@ -48633,7 +48571,7 @@ var TickerItemContext = /* @__PURE__ */ (() => {
|
|
|
48633
48571
|
})();
|
|
48634
48572
|
function useTickerItem() {
|
|
48635
48573
|
const itemContext = useContext(TickerItemContext,);
|
|
48636
|
-
|
|
48574
|
+
invariant2(Boolean(itemContext,), 'useTickerItem must be used within a TickerItem',);
|
|
48637
48575
|
return itemContext;
|
|
48638
48576
|
}
|
|
48639
48577
|
var ltrStrategy = (insetProp, lengthProp, viewportLengthProp, paddingStartProp, direction,) => {
|
|
@@ -48726,7 +48664,7 @@ function TickerItemWrapper({
|
|
|
48726
48664
|
return listSize * sign;
|
|
48727
48665
|
}
|
|
48728
48666
|
if (safeMargin > 0) {
|
|
48729
|
-
const rightBoundary = visibleLength -
|
|
48667
|
+
const rightBoundary = visibleLength - safeMargin - inset2;
|
|
48730
48668
|
if (currentOffset * sign + bounds.start >= rightBoundary) {
|
|
48731
48669
|
return -listSize * sign;
|
|
48732
48670
|
}
|
|
@@ -48739,7 +48677,6 @@ function TickerItemWrapper({
|
|
|
48739
48677
|
if (!start2 && !end || !listSize) return 0;
|
|
48740
48678
|
return currentOffset * sign + start2 + currentTransform * sign;
|
|
48741
48679
|
},);
|
|
48742
|
-
const offAxisSize = alignItems === 'stretch' ? '100%' : 'fit-content';
|
|
48743
48680
|
const ariaProps = cloneIndex === void 0
|
|
48744
48681
|
? {
|
|
48745
48682
|
['aria-hidden']: false,
|
|
@@ -48749,6 +48686,8 @@ function TickerItemWrapper({
|
|
|
48749
48686
|
: {
|
|
48750
48687
|
['aria-hidden']: true,
|
|
48751
48688
|
};
|
|
48689
|
+
const isFill = size === 'fill';
|
|
48690
|
+
const offAxisSize = alignItems === 'stretch' ? '100%' : 'fit-content';
|
|
48752
48691
|
const props = {
|
|
48753
48692
|
className: cloneIndex === void 0 ? 'ticker-item' : 'clone-item',
|
|
48754
48693
|
style: {
|
|
@@ -48756,7 +48695,11 @@ function TickerItemWrapper({
|
|
|
48756
48695
|
flexShrink: 0,
|
|
48757
48696
|
position: 'relative',
|
|
48758
48697
|
flexBasis: size === 'fill' ? '100%' : void 0,
|
|
48759
|
-
display:
|
|
48698
|
+
display: isFill ? 'grid' : void 0,
|
|
48699
|
+
gridTemplateColumns: isFill ? '1fr' : void 0,
|
|
48700
|
+
gridTemplateRows: isFill ? '1fr' : void 0,
|
|
48701
|
+
minWidth: isFill ? 0 : void 0,
|
|
48702
|
+
minHeight: isFill ? 0 : void 0,
|
|
48760
48703
|
height: axis === 'x' ? offAxisSize : void 0,
|
|
48761
48704
|
width: axis === 'y' ? offAxisSize : void 0,
|
|
48762
48705
|
x: axis === 'x' ? projection : 0,
|
|
@@ -48816,7 +48759,9 @@ function useFocusNavigation(containerRef, axis, focusOffset, offset, setHasFocus
|
|
|
48816
48759
|
const applyFocusOffset = () => {
|
|
48817
48760
|
const nextFocusableElement = focusableElements[focusIndex];
|
|
48818
48761
|
if (!nextFocusableElement) return;
|
|
48819
|
-
nextFocusableElement.focus(
|
|
48762
|
+
nextFocusableElement.focus({
|
|
48763
|
+
preventScroll: true,
|
|
48764
|
+
},);
|
|
48820
48765
|
focusOffset.set(-nextFocusableElement[offsetProp],);
|
|
48821
48766
|
container[scrollProp] = 0;
|
|
48822
48767
|
frame.render(() => {
|
|
@@ -48829,7 +48774,7 @@ function useFocusNavigation(containerRef, axis, focusOffset, offset, setHasFocus
|
|
|
48829
48774
|
endFocusTrap();
|
|
48830
48775
|
const allFocusableElements = Array.from(
|
|
48831
48776
|
document.querySelectorAll('a, button, input, textarea, select, [tabindex]:not([tabindex="-1"]), [contenteditable="true"]',),
|
|
48832
|
-
).filter(
|
|
48777
|
+
).filter(isHTMLElement2,);
|
|
48833
48778
|
allFocusableElements.sort(compareTabIndexes,);
|
|
48834
48779
|
const lastFocusableElement = allFocusableElements[event.shiftKey ? 0 : allFocusableElements.length - 1];
|
|
48835
48780
|
const initialIndex = event.shiftKey ? allFocusableElements.length - 1 : 0;
|
|
@@ -48862,7 +48807,7 @@ function useFocusNavigation(containerRef, axis, focusOffset, offset, setHasFocus
|
|
|
48862
48807
|
container.querySelectorAll(
|
|
48863
48808
|
'.ticker-item a, .ticker-item button, .ticker-item input, .ticker-item textarea, .ticker-item select, .ticker-item [tabindex]:not([tabindex="-1"]), .ticker-item [contenteditable="true"]',
|
|
48864
48809
|
),
|
|
48865
|
-
).filter(
|
|
48810
|
+
).filter(isHTMLElement2,);
|
|
48866
48811
|
focusIndex = 0;
|
|
48867
48812
|
if (!focusableElements.length) return;
|
|
48868
48813
|
setHasFocus(true,);
|
|
@@ -48890,7 +48835,7 @@ function useFocusNavigation(containerRef, axis, focusOffset, offset, setHasFocus
|
|
|
48890
48835
|
const {
|
|
48891
48836
|
target,
|
|
48892
48837
|
} = event;
|
|
48893
|
-
if (!
|
|
48838
|
+
if (!isHTMLElement2(target,)) return;
|
|
48894
48839
|
if (!isFocusTrapped.current) {
|
|
48895
48840
|
startFocusTrap();
|
|
48896
48841
|
}
|
|
@@ -48909,13 +48854,18 @@ function useFocusNavigation(containerRef, axis, focusOffset, offset, setHasFocus
|
|
|
48909
48854
|
};
|
|
48910
48855
|
const handleAriaHiddenClicks = (event) => {
|
|
48911
48856
|
const target = event.target;
|
|
48912
|
-
|
|
48857
|
+
const ariaHiddenAncestor = target.closest('[aria-hidden="true"]',);
|
|
48913
48858
|
if (ariaHiddenAncestor) {
|
|
48914
48859
|
ariaHiddenAncestor.removeAttribute('aria-hidden',);
|
|
48915
48860
|
}
|
|
48916
48861
|
};
|
|
48862
|
+
const resetScroll = () => {
|
|
48863
|
+
container.scrollLeft = 0;
|
|
48864
|
+
container.scrollTop = 0;
|
|
48865
|
+
};
|
|
48917
48866
|
__unframerWindow2.addEventListener('keydown', detectFocusTrapEnable, eventOptions,);
|
|
48918
48867
|
container.addEventListener('pointerdown', handleAriaHiddenClicks, eventOptions,);
|
|
48868
|
+
container.addEventListener('scroll', resetScroll, eventOptions,);
|
|
48919
48869
|
return () => {
|
|
48920
48870
|
abortController.abort();
|
|
48921
48871
|
endFocusTrap();
|
|
@@ -48934,6 +48884,9 @@ function compareTabIndexes(a, b,) {
|
|
|
48934
48884
|
}
|
|
48935
48885
|
return 0;
|
|
48936
48886
|
}
|
|
48887
|
+
function isHTMLElement2(element,) {
|
|
48888
|
+
return element instanceof HTMLElement;
|
|
48889
|
+
}
|
|
48937
48890
|
function calcItemLength(itemPosition,) {
|
|
48938
48891
|
return itemPosition.end - itemPosition.start;
|
|
48939
48892
|
}
|
|
@@ -48972,6 +48925,8 @@ function TickerComponent({
|
|
|
48972
48925
|
snap,
|
|
48973
48926
|
safeMargin = 0,
|
|
48974
48927
|
fade = 0,
|
|
48928
|
+
fadeTransition,
|
|
48929
|
+
pageTransition,
|
|
48975
48930
|
...props
|
|
48976
48931
|
}, ref,) {
|
|
48977
48932
|
const internalContainerRef = useRef(null,);
|
|
@@ -48988,6 +48943,9 @@ function TickerComponent({
|
|
|
48988
48943
|
maxInset: null,
|
|
48989
48944
|
},);
|
|
48990
48945
|
const alignItems = alignAlias[align] || align;
|
|
48946
|
+
const {
|
|
48947
|
+
sign,
|
|
48948
|
+
} = getLayoutStrategy(axis, state.direction,);
|
|
48991
48949
|
if (isStatic) {
|
|
48992
48950
|
const renderedOffset2 = useMotionValue(0,);
|
|
48993
48951
|
return /* @__PURE__ */ jsx(TickerContext.Provider, {
|
|
@@ -48996,6 +48954,7 @@ function TickerComponent({
|
|
|
48996
48954
|
...state,
|
|
48997
48955
|
gap,
|
|
48998
48956
|
clampOffset: noop,
|
|
48957
|
+
offset: renderedOffset2,
|
|
48999
48958
|
renderedOffset: renderedOffset2,
|
|
49000
48959
|
},
|
|
49001
48960
|
children: /* @__PURE__ */ jsx(ListView, {
|
|
@@ -49016,13 +48975,14 @@ function TickerComponent({
|
|
|
49016
48975
|
isStatic: true,
|
|
49017
48976
|
as,
|
|
49018
48977
|
fade,
|
|
48978
|
+
sign,
|
|
49019
48979
|
},),
|
|
49020
48980
|
},);
|
|
49021
48981
|
}
|
|
49022
48982
|
const [hasFocus, setHasFocus,] = useState(false,);
|
|
49023
48983
|
const velocityFactor = useMotionValue(1,);
|
|
49024
48984
|
const defaultOffset22 = useMotionValue(0,);
|
|
49025
|
-
offset
|
|
48985
|
+
offset ??= defaultOffset22;
|
|
49026
48986
|
const wrappedOffset = useTransform(() => {
|
|
49027
48987
|
if (state.direction === 'rtl' && axis === 'x') {
|
|
49028
48988
|
return wrap(state.totalItemLength + gap + state.inset, state.inset, offset.get(),);
|
|
@@ -49100,12 +49060,9 @@ function TickerComponent({
|
|
|
49100
49060
|
};
|
|
49101
49061
|
}, [items, isInView, overflow,],);
|
|
49102
49062
|
const isMeasured = state.totalItemLength > 0;
|
|
49103
|
-
const {
|
|
49104
|
-
sign,
|
|
49105
|
-
} = getLayoutStrategy(axis, state.direction,);
|
|
49106
49063
|
useAnimationFrame(
|
|
49107
49064
|
isMeasured && isInView && offset === defaultOffset22 && !isReducedMotion
|
|
49108
|
-
? (
|
|
49065
|
+
? (_time, delta,) => {
|
|
49109
49066
|
const frameOffset = delta / 1e3 * (velocity * sign * velocityFactor.get());
|
|
49110
49067
|
offset.set(offset.get() - frameOffset,);
|
|
49111
49068
|
}
|
|
@@ -49153,15 +49110,16 @@ function TickerComponent({
|
|
|
49153
49110
|
}
|
|
49154
49111
|
}
|
|
49155
49112
|
useFocusNavigation(internalContainerRef, axis, focusOffset, offset, setHasFocus,);
|
|
49156
|
-
const clampOffset = useCallback2((
|
|
49157
|
-
state.maxInset,
|
|
49158
|
-
],);
|
|
49113
|
+
const clampOffset = useCallback2((offset2) => {
|
|
49114
|
+
return state.maxInset !== null ? clamp(-state.maxInset, 0, offset2,) : offset2;
|
|
49115
|
+
}, [state.maxInset,],);
|
|
49159
49116
|
return /* @__PURE__ */ jsx(TickerContext.Provider, {
|
|
49160
49117
|
suppressHydrationWarning: true,
|
|
49161
49118
|
value: {
|
|
49162
49119
|
...state,
|
|
49163
49120
|
gap,
|
|
49164
49121
|
clampOffset,
|
|
49122
|
+
offset,
|
|
49165
49123
|
renderedOffset,
|
|
49166
49124
|
},
|
|
49167
49125
|
children: /* @__PURE__ */ jsx(ListView, {
|
|
@@ -49195,6 +49153,9 @@ function TickerComponent({
|
|
|
49195
49153
|
loop,
|
|
49196
49154
|
as,
|
|
49197
49155
|
fade,
|
|
49156
|
+
sign,
|
|
49157
|
+
fadeTransition,
|
|
49158
|
+
pageTransition,
|
|
49198
49159
|
},),
|
|
49199
49160
|
},);
|
|
49200
49161
|
}
|
|
@@ -49226,6 +49187,9 @@ function ListView({
|
|
|
49226
49187
|
loop,
|
|
49227
49188
|
as,
|
|
49228
49189
|
fade,
|
|
49190
|
+
sign,
|
|
49191
|
+
fadeTransition = defaultFadeTransition,
|
|
49192
|
+
pageTransition,
|
|
49229
49193
|
},) {
|
|
49230
49194
|
const MotionComponent = useMemo(() => motion.create(as,), [as,],);
|
|
49231
49195
|
let dragConstraints = {};
|
|
@@ -49234,10 +49198,15 @@ function ListView({
|
|
|
49234
49198
|
} = state;
|
|
49235
49199
|
if (maxInset !== null) {
|
|
49236
49200
|
if (axis === 'x') {
|
|
49237
|
-
dragConstraints =
|
|
49238
|
-
|
|
49239
|
-
|
|
49240
|
-
|
|
49201
|
+
dragConstraints = sign > 0
|
|
49202
|
+
? {
|
|
49203
|
+
left: maxInset * -1,
|
|
49204
|
+
right: 0,
|
|
49205
|
+
}
|
|
49206
|
+
: {
|
|
49207
|
+
right: maxInset,
|
|
49208
|
+
left: 0,
|
|
49209
|
+
};
|
|
49241
49210
|
} else {
|
|
49242
49211
|
dragConstraints = {
|
|
49243
49212
|
top: maxInset * -1,
|
|
@@ -49250,7 +49219,6 @@ function ListView({
|
|
|
49250
49219
|
_dragX,
|
|
49251
49220
|
_dragY,
|
|
49252
49221
|
dragMomentum = false,
|
|
49253
|
-
onDragStart,
|
|
49254
49222
|
onDragEnd,
|
|
49255
49223
|
onPointerDown,
|
|
49256
49224
|
...remainingProps
|
|
@@ -49285,13 +49253,18 @@ function ListView({
|
|
|
49285
49253
|
target = Math.abs(current2 - closestNext,) < Math.abs(current2 - closestPrev,) ? closestNext : closestPrev;
|
|
49286
49254
|
}
|
|
49287
49255
|
}
|
|
49288
|
-
const constraints = loop ? {} :
|
|
49289
|
-
|
|
49290
|
-
|
|
49291
|
-
|
|
49256
|
+
const constraints = loop ? {} : sign > 0
|
|
49257
|
+
? {
|
|
49258
|
+
max: 0,
|
|
49259
|
+
min: dragConstraints[axis === 'x' ? 'left' : 'top'],
|
|
49260
|
+
}
|
|
49261
|
+
: {
|
|
49262
|
+
min: 0,
|
|
49263
|
+
max: dragConstraints.right,
|
|
49264
|
+
};
|
|
49292
49265
|
dragMomentumAnimation.current = animate(
|
|
49293
49266
|
dragMotionValue,
|
|
49294
|
-
clampOffset
|
|
49267
|
+
clampOffset(target * sign,) * sign,
|
|
49295
49268
|
snap ? pageTransition : {
|
|
49296
49269
|
type: 'inertia',
|
|
49297
49270
|
velocity: velocity[axis],
|
|
@@ -49323,27 +49296,29 @@ function ListView({
|
|
|
49323
49296
|
},);
|
|
49324
49297
|
useMotionValueEvent(renderedOffset, 'change', (value) => {
|
|
49325
49298
|
if (maxInset === null) return;
|
|
49326
|
-
|
|
49327
|
-
|
|
49328
|
-
|
|
49329
|
-
isAtLimits.current.start = true;
|
|
49330
|
-
}
|
|
49331
|
-
} else {
|
|
49299
|
+
const maxOffset = maxInset * -1;
|
|
49300
|
+
value *= sign;
|
|
49301
|
+
if (value < 0) {
|
|
49332
49302
|
if (isAtLimits.current.start) {
|
|
49333
49303
|
animate(fadeStartOpacity, 0, fadeTransition,);
|
|
49334
49304
|
isAtLimits.current.start = false;
|
|
49335
49305
|
}
|
|
49336
|
-
}
|
|
49337
|
-
if (value >= 0) {
|
|
49338
|
-
if (!isAtLimits.current.end) {
|
|
49339
|
-
animate(fadeEndOpacity, 1, fadeTransition,);
|
|
49340
|
-
isAtLimits.current.end = true;
|
|
49341
|
-
}
|
|
49342
49306
|
} else {
|
|
49307
|
+
if (!isAtLimits.current.start) {
|
|
49308
|
+
animate(fadeStartOpacity, 1, fadeTransition,);
|
|
49309
|
+
isAtLimits.current.start = true;
|
|
49310
|
+
}
|
|
49311
|
+
}
|
|
49312
|
+
if (value > maxOffset) {
|
|
49343
49313
|
if (isAtLimits.current.end) {
|
|
49344
49314
|
animate(fadeEndOpacity, 0, fadeTransition,);
|
|
49345
49315
|
isAtLimits.current.end = false;
|
|
49346
49316
|
}
|
|
49317
|
+
} else {
|
|
49318
|
+
if (!isAtLimits.current.end) {
|
|
49319
|
+
animate(fadeEndOpacity, 1, fadeTransition,);
|
|
49320
|
+
isAtLimits.current.end = true;
|
|
49321
|
+
}
|
|
49347
49322
|
}
|
|
49348
49323
|
},);
|
|
49349
49324
|
return /* @__PURE__ */ jsxs(Fragment, {
|
|
@@ -49361,10 +49336,16 @@ function ListView({
|
|
|
49361
49336
|
},
|
|
49362
49337
|
onPointerEnter,
|
|
49363
49338
|
onPointerLeave,
|
|
49339
|
+
drag: drag2,
|
|
49340
|
+
_dragX,
|
|
49341
|
+
_dragY,
|
|
49342
|
+
dragConstraints,
|
|
49343
|
+
dragMomentum,
|
|
49344
|
+
onPointerDown,
|
|
49345
|
+
onDragEnd,
|
|
49364
49346
|
children: /* @__PURE__ */ jsxs(motion.ul, {
|
|
49365
49347
|
suppressHydrationWarning: true,
|
|
49366
49348
|
ref: listRef,
|
|
49367
|
-
role: 'group',
|
|
49368
49349
|
style: {
|
|
49369
49350
|
...listStyle,
|
|
49370
49351
|
flexDirection: axis === 'x' ? 'row' : 'column',
|
|
@@ -49379,14 +49360,6 @@ function ListView({
|
|
|
49379
49360
|
maxHeight: '100%',
|
|
49380
49361
|
maxWidth: '100%',
|
|
49381
49362
|
},
|
|
49382
|
-
drag: drag2,
|
|
49383
|
-
_dragX,
|
|
49384
|
-
_dragY,
|
|
49385
|
-
dragConstraints,
|
|
49386
|
-
dragMomentum,
|
|
49387
|
-
onPointerDown,
|
|
49388
|
-
onDragStart,
|
|
49389
|
-
onDragEnd,
|
|
49390
49363
|
children: [
|
|
49391
49364
|
items.map((item, index,) =>
|
|
49392
49365
|
/* @__PURE__ */ jsx(TickerItemWrapper, {
|
|
@@ -49413,6 +49386,11 @@ function ListView({
|
|
|
49413
49386
|
],
|
|
49414
49387
|
},);
|
|
49415
49388
|
}
|
|
49389
|
+
function invariant2(condition, message,) {
|
|
49390
|
+
if (!condition) {
|
|
49391
|
+
throw new Error(message,);
|
|
49392
|
+
}
|
|
49393
|
+
}
|
|
49416
49394
|
var defaultBounds = {
|
|
49417
49395
|
start: 0,
|
|
49418
49396
|
end: 0,
|
|
@@ -49430,12 +49408,7 @@ var listStyle = {
|
|
|
49430
49408
|
margin: 0,
|
|
49431
49409
|
justifyContent: 'flex-start',
|
|
49432
49410
|
};
|
|
49433
|
-
var
|
|
49434
|
-
type: 'spring',
|
|
49435
|
-
stiffness: 400,
|
|
49436
|
-
damping: 40,
|
|
49437
|
-
};
|
|
49438
|
-
var fadeTransition = {
|
|
49411
|
+
var defaultFadeTransition = {
|
|
49439
49412
|
duration: 0.2,
|
|
49440
49413
|
ease: 'linear',
|
|
49441
49414
|
};
|
|
@@ -50372,11 +50345,11 @@ var WebGL2ShaderRenderer = class {
|
|
|
50372
50345
|
}
|
|
50373
50346
|
};
|
|
50374
50347
|
function createStaticArrayBuffer(gl, data2,) {
|
|
50375
|
-
const
|
|
50376
|
-
if (!
|
|
50377
|
-
gl.bindBuffer(gl.ARRAY_BUFFER,
|
|
50348
|
+
const buffer2 = gl.createBuffer();
|
|
50349
|
+
if (!buffer2) throw new Error('Failed to create buffer',);
|
|
50350
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, buffer2,);
|
|
50378
50351
|
gl.bufferData(gl.ARRAY_BUFFER, data2, gl.STATIC_DRAW,);
|
|
50379
|
-
return
|
|
50352
|
+
return buffer2;
|
|
50380
50353
|
}
|
|
50381
50354
|
function bindFullScreenQuadAttribs(gl, program, positionBuffer, texCoordBuffer,) {
|
|
50382
50355
|
const positionLocation = gl.getAttribLocation(program, 'a_position',);
|
|
@@ -50582,11 +50555,11 @@ var defaultBufferResolutionScale = 0.5;
|
|
|
50582
50555
|
var defaultBufferFormat = 'rgba8';
|
|
50583
50556
|
function resolveBufferDescriptors(buffers, common, headOptions,) {
|
|
50584
50557
|
if (!buffers) return void 0;
|
|
50585
|
-
return buffers.map((
|
|
50586
|
-
uniformName: toBufferUniformName(
|
|
50587
|
-
fragment: prepareFragmentShader(
|
|
50588
|
-
resolutionScale:
|
|
50589
|
-
format:
|
|
50558
|
+
return buffers.map((buffer2) => ({
|
|
50559
|
+
uniformName: toBufferUniformName(buffer2.name,),
|
|
50560
|
+
fragment: prepareFragmentShader(buffer2.fragment, common, headOptions,),
|
|
50561
|
+
resolutionScale: buffer2.resolutionScale ?? defaultBufferResolutionScale,
|
|
50562
|
+
format: buffer2.format ?? defaultBufferFormat,
|
|
50590
50563
|
}));
|
|
50591
50564
|
}
|
|
50592
50565
|
var shaderConfigBrand = '__framer_shaderConfig__';
|
|
@@ -50644,30 +50617,32 @@ function validateShaderInputs(shaderConfig,) {
|
|
|
50644
50617
|
}
|
|
50645
50618
|
}
|
|
50646
50619
|
if (shaderConfig.buffers) {
|
|
50647
|
-
for (const
|
|
50648
|
-
if (isUniformName(
|
|
50649
|
-
throw new Error(`Shader buffer name "${
|
|
50620
|
+
for (const buffer2 of shaderConfig.buffers) {
|
|
50621
|
+
if (isUniformName(buffer2.name,)) {
|
|
50622
|
+
throw new Error(`Shader buffer name "${buffer2.name}" must not start with "${uniformPrefix}".`,);
|
|
50650
50623
|
}
|
|
50651
|
-
const derivedName = toBufferUniformName(
|
|
50624
|
+
const derivedName = toBufferUniformName(buffer2.name,);
|
|
50652
50625
|
const collidingName = seenDerivedNames.get(derivedName,);
|
|
50653
50626
|
if (collidingName !== void 0) {
|
|
50654
50627
|
throw new Error(
|
|
50655
|
-
collidingName ===
|
|
50656
|
-
? `Duplicate shader buffer name "${
|
|
50657
|
-
: `Shader buffer names "${collidingName}" and "${
|
|
50628
|
+
collidingName === buffer2.name
|
|
50629
|
+
? `Duplicate shader buffer name "${buffer2.name}".`
|
|
50630
|
+
: `Shader buffer names "${collidingName}" and "${buffer2.name}" both resolve to the same uniform "${derivedName}".`,
|
|
50658
50631
|
);
|
|
50659
50632
|
}
|
|
50660
|
-
seenDerivedNames.set(derivedName,
|
|
50661
|
-
if (
|
|
50662
|
-
if (!isNumber2(
|
|
50633
|
+
seenDerivedNames.set(derivedName, buffer2.name,);
|
|
50634
|
+
if (buffer2.resolutionScale !== void 0) {
|
|
50635
|
+
if (!isNumber2(buffer2.resolutionScale,) || buffer2.resolutionScale <= 0 || buffer2.resolutionScale > 1) {
|
|
50663
50636
|
throw new Error(
|
|
50664
|
-
`Shader buffer "${
|
|
50637
|
+
`Shader buffer "${buffer2.name}" has invalid resolutionScale ${buffer2.resolutionScale}. Must be in the range (0, 1].`,
|
|
50665
50638
|
);
|
|
50666
50639
|
}
|
|
50667
50640
|
}
|
|
50668
|
-
if (
|
|
50641
|
+
if (buffer2.format !== void 0 && !shaderBufferFormats.has(buffer2.format,)) {
|
|
50669
50642
|
throw new Error(
|
|
50670
|
-
`Shader buffer "${
|
|
50643
|
+
`Shader buffer "${buffer2.name}" has invalid format "${buffer2.format}". Must be one of: ${
|
|
50644
|
+
[...shaderBufferFormats,].join(', ',)
|
|
50645
|
+
}.`,
|
|
50671
50646
|
);
|
|
50672
50647
|
}
|
|
50673
50648
|
}
|
|
@@ -51802,8 +51777,10 @@ function useShaderMouse(containerRef, mouseConfig,) {
|
|
|
51802
51777
|
passive: true,
|
|
51803
51778
|
capture: true,
|
|
51804
51779
|
},);
|
|
51780
|
+
const cleanupWindowResize = resize(updateRect,);
|
|
51805
51781
|
const cleanupResize = resize(el, updateRect,);
|
|
51806
51782
|
const cleanupHover = hover(el, () => {
|
|
51783
|
+
updateRect();
|
|
51807
51784
|
if (!hasEnteredOnce) {
|
|
51808
51785
|
hasEnteredOnce = true;
|
|
51809
51786
|
smoothX.jump(rawX.get(),);
|
|
@@ -51820,6 +51797,7 @@ function useShaderMouse(containerRef, mouseConfig,) {
|
|
|
51820
51797
|
__unframerWindow2.removeEventListener('scroll', updateRect, {
|
|
51821
51798
|
capture: true,
|
|
51822
51799
|
},);
|
|
51800
|
+
cleanupWindowResize();
|
|
51823
51801
|
cleanupResize();
|
|
51824
51802
|
cleanupHover();
|
|
51825
51803
|
cleanupPress();
|
|
@@ -51850,18 +51828,12 @@ function useConditionalAnimationFrame(enabled, callback,) {
|
|
|
51850
51828
|
return () => cancelAnimationFrame(rafId,);
|
|
51851
51829
|
}, [enabled, callback,],);
|
|
51852
51830
|
}
|
|
51853
|
-
var shaderPriority = {
|
|
51854
|
-
low: 0,
|
|
51855
|
-
medium: 1,
|
|
51856
|
-
high: 2,
|
|
51857
|
-
};
|
|
51858
51831
|
function useShaderPoolSlot(id3, isSelected, isVisible,) {
|
|
51859
51832
|
const pool = useShaderPoolContext();
|
|
51860
|
-
const priority = isSelected ? shaderPriority.high : isVisible ? shaderPriority.medium : shaderPriority.low;
|
|
51861
51833
|
const [status, setStatus,] = useState(slotStatus.noSlot,);
|
|
51862
51834
|
useEffect(() => {
|
|
51863
51835
|
if (!pool || !id3) return;
|
|
51864
|
-
pool.register(id3,
|
|
51836
|
+
pool.register(id3, isSelected, isVisible,);
|
|
51865
51837
|
startTransition2(() => setStatus(pool.getSlotStatus(id3,),));
|
|
51866
51838
|
const unsub = pool.subscribe(id3, () => {
|
|
51867
51839
|
startTransition2(() => setStatus(pool.getSlotStatus(id3,),));
|
|
@@ -51869,7 +51841,7 @@ function useShaderPoolSlot(id3, isSelected, isVisible,) {
|
|
|
51869
51841
|
return () => {
|
|
51870
51842
|
unsub();
|
|
51871
51843
|
};
|
|
51872
|
-
}, [pool, id3,
|
|
51844
|
+
}, [pool, id3, isSelected, isVisible,],);
|
|
51873
51845
|
useEffect(() => {
|
|
51874
51846
|
if (!pool || !id3) return;
|
|
51875
51847
|
return () => {
|
|
@@ -53089,6 +53061,7 @@ var BuiltInFontSource = class {
|
|
|
53089
53061
|
const isVariableFont2 = Array.isArray(variationAxesData,);
|
|
53090
53062
|
const variant = isVariableFont2 ? 'variable' : properties.font.fontSubFamily || 'regular';
|
|
53091
53063
|
const url = createAbsoluteAssetURLFromAsset(asset,);
|
|
53064
|
+
const validatedVariationAxes = validateVariationAxes(variationAxesData,);
|
|
53092
53065
|
const font = {
|
|
53093
53066
|
assetKey: asset.key,
|
|
53094
53067
|
family: fontFamily,
|
|
@@ -53096,9 +53069,11 @@ var BuiltInFontSource = class {
|
|
|
53096
53069
|
variant,
|
|
53097
53070
|
file: url,
|
|
53098
53071
|
hasOpenTypeFeatures: supportsOpenType(openTypeData,),
|
|
53099
|
-
variationAxes:
|
|
53072
|
+
variationAxes: validatedVariationAxes,
|
|
53100
53073
|
category: properties.font.fontCategory,
|
|
53101
|
-
weight:
|
|
53074
|
+
weight: isVariableFont2
|
|
53075
|
+
? getWeightFromVariationAxes(validatedVariationAxes, properties.font.faceDescriptors?.weight,)
|
|
53076
|
+
: variantNameToWeight(variant,),
|
|
53102
53077
|
style: getFontStyle(variant,),
|
|
53103
53078
|
cssFamilyName: createCSSFamilyName(fontName, isVariableFont2,),
|
|
53104
53079
|
};
|
|
@@ -53118,7 +53093,8 @@ var BuiltInFontSource = class {
|
|
|
53118
53093
|
}
|
|
53119
53094
|
static parseVariant(variant,) {
|
|
53120
53095
|
const kebabCaseVariant = variantToKebabCase(variant,);
|
|
53121
|
-
const
|
|
53096
|
+
const isVariable = kebabCaseVariant === 'variable' || kebabCaseVariant === 'variable-italic';
|
|
53097
|
+
const weight = isVariable ? 400 : variantsNameToWeight[kebabCaseVariant];
|
|
53122
53098
|
const style2 = getFontStyle(variant,);
|
|
53123
53099
|
return {
|
|
53124
53100
|
weight,
|
|
@@ -53268,6 +53244,13 @@ function variantNameToWeight(variant,) {
|
|
|
53268
53244
|
const kebabCaseVariant = variantToKebabCase(variant,);
|
|
53269
53245
|
return variantsNameToWeight[kebabCaseVariant];
|
|
53270
53246
|
}
|
|
53247
|
+
function getWeightFromVariationAxes(variationAxes, faceWeight,) {
|
|
53248
|
+
const axisDefault = variationAxes?.find((axis) => axis.tag === 'wght')?.defaultValue;
|
|
53249
|
+
if (axisDefault !== void 0 && axisDefault >= 1 && axisDefault <= 1e3) {
|
|
53250
|
+
return axisDefault;
|
|
53251
|
+
}
|
|
53252
|
+
return faceWeight ?? variantNameToWeight('variable',) ?? 500;
|
|
53253
|
+
}
|
|
53271
53254
|
function variantToKebabCase(variant,) {
|
|
53272
53255
|
return variant.toLowerCase().replace(/\s+/gu, '-',);
|
|
53273
53256
|
}
|
|
@@ -53655,11 +53638,11 @@ function getAssetOwnerType(asset,) {
|
|
|
53655
53638
|
async function loadFontsWithOpenType(source,) {
|
|
53656
53639
|
switch (source) {
|
|
53657
53640
|
case 'google': {
|
|
53658
|
-
const supportedFonts = await import('./framer-chunks/google-3SZHWBC6-
|
|
53641
|
+
const supportedFonts = await import('./framer-chunks/google-3SZHWBC6-2VTQEQ7J.js');
|
|
53659
53642
|
return supportedFonts.default;
|
|
53660
53643
|
}
|
|
53661
53644
|
case 'fontshare': {
|
|
53662
|
-
const supportedFonts = await import('./framer-chunks/fontshare-B2QLD7YB-
|
|
53645
|
+
const supportedFonts = await import('./framer-chunks/fontshare-B2QLD7YB-5V3XZJAH.js');
|
|
53663
53646
|
return supportedFonts.default;
|
|
53664
53647
|
}
|
|
53665
53648
|
default:
|
|
@@ -53669,15 +53652,15 @@ async function loadFontsWithOpenType(source,) {
|
|
|
53669
53652
|
async function loadFontToOpenTypeFeatures(source,) {
|
|
53670
53653
|
switch (source) {
|
|
53671
53654
|
case 'google': {
|
|
53672
|
-
const features = await import('./framer-chunks/google-3FCAKCAC-
|
|
53655
|
+
const features = await import('./framer-chunks/google-3FCAKCAC-AM34UPJK.js');
|
|
53673
53656
|
return features.default;
|
|
53674
53657
|
}
|
|
53675
53658
|
case 'fontshare': {
|
|
53676
|
-
const features = await import('./framer-chunks/fontshare-4THNDPMZ-
|
|
53659
|
+
const features = await import('./framer-chunks/fontshare-4THNDPMZ-FLLTWCDO.js');
|
|
53677
53660
|
return features.default;
|
|
53678
53661
|
}
|
|
53679
53662
|
case 'framer': {
|
|
53680
|
-
const features = await import('./framer-chunks/framer-font-45AI7UCZ-
|
|
53663
|
+
const features = await import('./framer-chunks/framer-font-45AI7UCZ-CKGC4MJC.js');
|
|
53681
53664
|
return features.default;
|
|
53682
53665
|
}
|
|
53683
53666
|
default:
|
|
@@ -54221,10 +54204,10 @@ function loadVariationAxes(source,) {
|
|
|
54221
54204
|
const axes = (async () => {
|
|
54222
54205
|
switch (source) {
|
|
54223
54206
|
case 'google': {
|
|
54224
|
-
return (await import('./framer-chunks/google-GXDJLGJB-
|
|
54207
|
+
return (await import('./framer-chunks/google-GXDJLGJB-JNEJGCGD.js')).default;
|
|
54225
54208
|
}
|
|
54226
54209
|
case 'fontshare': {
|
|
54227
|
-
return (await import('./framer-chunks/fontshare-O22OBJ3D-
|
|
54210
|
+
return (await import('./framer-chunks/fontshare-O22OBJ3D-FIG3CRN3.js')).default;
|
|
54228
54211
|
}
|
|
54229
54212
|
default:
|
|
54230
54213
|
assertNever(source,);
|
|
@@ -56921,7 +56904,9 @@ var RichTextContainer = /* @__PURE__ */ forwardRef(function RichTextContainer2(p
|
|
|
56921
56904
|
...rest
|
|
56922
56905
|
} = props;
|
|
56923
56906
|
const parentSize = useParentSize();
|
|
56924
|
-
const
|
|
56907
|
+
const renderTarget = environment2();
|
|
56908
|
+
const isOnCanvas = renderTarget === RenderTarget.canvas;
|
|
56909
|
+
const isRenderingStaticContent = isOnCanvas || renderTarget === RenderTarget.export;
|
|
56925
56910
|
const inCodeComponent = useContext(ComponentContainerContext,);
|
|
56926
56911
|
const layoutId = useLayoutId2(props,);
|
|
56927
56912
|
const fallbackRef = useRef(null,);
|
|
@@ -56968,7 +56953,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef(function RichTextContainer2(p
|
|
|
56968
56953
|
containerStyle2.rotate = rotation;
|
|
56969
56954
|
}
|
|
56970
56955
|
if (positionSticky) {
|
|
56971
|
-
if (!
|
|
56956
|
+
if (!isRenderingStaticContent || inCodeComponent) {
|
|
56972
56957
|
containerStyle2.position = 'sticky';
|
|
56973
56958
|
containerStyle2.willChange = 'transform';
|
|
56974
56959
|
containerStyle2.top = positionStickyTop;
|
|
@@ -57096,6 +57081,16 @@ function processRichTextChildren(
|
|
|
57096
57081
|
};
|
|
57097
57082
|
children = [anchorLink,];
|
|
57098
57083
|
}
|
|
57084
|
+
if (tag === 'ol') {
|
|
57085
|
+
props.style = {
|
|
57086
|
+
...(props.style ?? {}),
|
|
57087
|
+
[maxListDigitsProperty]: safeGetMaxListDigits(
|
|
57088
|
+
props.start ?? 1,
|
|
57089
|
+
Children.count(props.children,),
|
|
57090
|
+
props.style?.[listStyleTypeProperty] ?? '',
|
|
57091
|
+
),
|
|
57092
|
+
};
|
|
57093
|
+
}
|
|
57099
57094
|
}
|
|
57100
57095
|
return cloneElement32(element, props, ...children,);
|
|
57101
57096
|
}
|
|
@@ -57121,6 +57116,10 @@ function extractTextFromReactNode(node,) {
|
|
|
57121
57116
|
}
|
|
57122
57117
|
return '';
|
|
57123
57118
|
}
|
|
57119
|
+
function safeGetMaxListDigits(start2, itemCount, listStyleType,) {
|
|
57120
|
+
const startNumber = Number(start2,) || 1;
|
|
57121
|
+
return getMaxListDigits(startNumber, itemCount, listStyleType,);
|
|
57122
|
+
}
|
|
57124
57123
|
var RichTextInner = /* @__PURE__ */ forwardRef(function RichText({
|
|
57125
57124
|
children,
|
|
57126
57125
|
html,
|
|
@@ -57510,7 +57509,10 @@ var SharedSVGManager = class {
|
|
|
57510
57509
|
const output = [];
|
|
57511
57510
|
output.push(`<div id="svg-templates" style="${visuallyHiddenStyle}" aria-hidden="true">`,);
|
|
57512
57511
|
this.entries.forEach((value) => output.push(value.svg,));
|
|
57513
|
-
this.vectorSetItems.forEach((value) =>
|
|
57512
|
+
this.vectorSetItems.forEach((value, revision,) => {
|
|
57513
|
+
const svg = value.svg;
|
|
57514
|
+
output.push(svg.includes(`id="${revision}"`,) ? svg : svg.replace(/^<svg/, `<svg id="${revision}"`,),);
|
|
57515
|
+
},);
|
|
57514
57516
|
output.push('</div>',);
|
|
57515
57517
|
return output.join('\n',);
|
|
57516
57518
|
}
|
|
@@ -58296,9 +58298,9 @@ var TextComponent = /* @__PURE__ */ (() => {
|
|
|
58296
58298
|
rotate: rotate2,
|
|
58297
58299
|
},);
|
|
58298
58300
|
}
|
|
58299
|
-
const
|
|
58301
|
+
const isRenderingStaticContent = isStaticRenderer();
|
|
58300
58302
|
if (positionSticky) {
|
|
58301
|
-
if (!
|
|
58303
|
+
if (!isRenderingStaticContent || inCodeComponent) {
|
|
58302
58304
|
style2.position = 'sticky';
|
|
58303
58305
|
style2.willChange = 'transform';
|
|
58304
58306
|
style2.top = positionStickyTop;
|
|
@@ -58306,7 +58308,7 @@ var TextComponent = /* @__PURE__ */ (() => {
|
|
|
58306
58308
|
style2.bottom = positionStickyBottom;
|
|
58307
58309
|
style2.left = positionStickyLeft;
|
|
58308
58310
|
}
|
|
58309
|
-
} else if (
|
|
58311
|
+
} else if (RenderTarget.current() === RenderTarget.canvas && (positionFixed || positionAbsolute)) {
|
|
58310
58312
|
style2.position = 'absolute';
|
|
58311
58313
|
}
|
|
58312
58314
|
}
|
|
@@ -59710,7 +59712,7 @@ var package_default = {
|
|
|
59710
59712
|
},
|
|
59711
59713
|
dependencies: {
|
|
59712
59714
|
'@sqlite.org/sqlite-wasm': '^3.50.4-build1',
|
|
59713
|
-
devalue: '^5.
|
|
59715
|
+
devalue: '^5.8.1',
|
|
59714
59716
|
eventemitter3: '^5.0.1',
|
|
59715
59717
|
fontfaceobserver: '2.2.0',
|
|
59716
59718
|
'hoist-non-react-statics': '^3.3.2',
|