unframer 2.26.0 → 2.27.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/dist/css.d.ts.map +1 -1
- package/dist/css.js +7 -6
- package/dist/css.js.map +1 -1
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +0 -1
- package/dist/exporter.js.map +1 -1
- package/dist/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.d.ts +115 -0
- package/dist/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.d.ts.map +1 -0
- package/dist/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.js +8 -0
- package/dist/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.js.map +1 -0
- package/dist/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.d.ts +781 -0
- package/dist/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.d.ts.map +1 -0
- package/dist/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.js +8 -0
- package/dist/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.js.map +1 -0
- package/dist/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.d.ts +634 -0
- package/dist/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.d.ts.map +1 -0
- package/dist/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.js +8 -0
- package/dist/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.js.map +1 -0
- package/dist/framer-chunks/google-42BCYVR5-QT55MZO3.d.ts +3231 -0
- package/dist/framer-chunks/google-42BCYVR5-QT55MZO3.d.ts.map +1 -0
- package/dist/framer-chunks/google-42BCYVR5-QT55MZO3.js +8 -0
- package/dist/framer-chunks/google-42BCYVR5-QT55MZO3.js.map +1 -0
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +745 -443
- package/dist/framer.js.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +18 -0
- package/dist/react.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/css.d.ts.map +1 -1
- package/esm/css.js +7 -6
- package/esm/css.js.map +1 -1
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +1 -2
- package/esm/exporter.js.map +1 -1
- package/esm/framer-chunks/chunk-22NYTOTD.d.ts +14 -0
- package/esm/framer-chunks/chunk-22NYTOTD.d.ts.map +1 -0
- package/esm/framer-chunks/chunk-22NYTOTD.js +99 -0
- package/esm/framer-chunks/chunk-22NYTOTD.js.map +1 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.d.ts +115 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.d.ts.map +1 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.js +5 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.js.map +1 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-7BHTUG6K.d.ts +115 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-7BHTUG6K.d.ts.map +1 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-7BHTUG6K.js +5 -0
- package/esm/framer-chunks/fontshare-GSJIWLGZ-7BHTUG6K.js.map +1 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.d.ts +781 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.d.ts.map +1 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.js +5 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.js.map +1 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-ZX5Y6FJ4.d.ts +781 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-ZX5Y6FJ4.d.ts.map +1 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-ZX5Y6FJ4.js +5 -0
- package/esm/framer-chunks/fontshare-SSHBFVID-ZX5Y6FJ4.js.map +1 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-FUMOBUA2.d.ts +634 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-FUMOBUA2.d.ts.map +1 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-FUMOBUA2.js +5 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-FUMOBUA2.js.map +1 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.d.ts +634 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.d.ts.map +1 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.js +5 -0
- package/esm/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.js.map +1 -0
- package/esm/framer-chunks/framer-font-TNC5DMGA-XVG7BST3.d.ts +18 -0
- package/esm/framer-chunks/framer-font-TNC5DMGA-XVG7BST3.d.ts.map +1 -0
- package/esm/framer-chunks/framer-font-TNC5DMGA-XVG7BST3.js +5 -0
- package/esm/framer-chunks/framer-font-TNC5DMGA-XVG7BST3.js.map +1 -0
- package/esm/framer-chunks/google-3GQMHAEU-KEOTHDV6.d.ts +9827 -0
- package/esm/framer-chunks/google-3GQMHAEU-KEOTHDV6.d.ts.map +1 -0
- package/esm/framer-chunks/google-3GQMHAEU-KEOTHDV6.js +5 -0
- package/esm/framer-chunks/google-3GQMHAEU-KEOTHDV6.js.map +1 -0
- package/esm/framer-chunks/google-42BCYVR5-PDCHFNPY.d.ts +3231 -0
- package/esm/framer-chunks/google-42BCYVR5-PDCHFNPY.d.ts.map +1 -0
- package/esm/framer-chunks/google-42BCYVR5-PDCHFNPY.js +5 -0
- package/esm/framer-chunks/google-42BCYVR5-PDCHFNPY.js.map +1 -0
- package/esm/framer-chunks/google-42BCYVR5-QT55MZO3.d.ts +3231 -0
- package/esm/framer-chunks/google-42BCYVR5-QT55MZO3.d.ts.map +1 -0
- package/esm/framer-chunks/google-42BCYVR5-QT55MZO3.js +5 -0
- package/esm/framer-chunks/google-42BCYVR5-QT55MZO3.js.map +1 -0
- package/esm/framer-chunks/google-LHIHIYDX-FZZ6UXE7.d.ts +1499 -0
- package/esm/framer-chunks/google-LHIHIYDX-FZZ6UXE7.d.ts.map +1 -0
- package/esm/framer-chunks/google-LHIHIYDX-FZZ6UXE7.js +5 -0
- package/esm/framer-chunks/google-LHIHIYDX-FZZ6UXE7.js.map +1 -0
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +739 -439
- package/esm/framer.js.map +1 -1
- package/esm/react.d.ts.map +1 -1
- package/esm/react.js +18 -0
- package/esm/react.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/src/css.ts +7 -6
- package/src/exporter.ts +0 -1
- package/src/framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.js +7 -0
- package/src/framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.js +7 -0
- package/src/framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.js +7 -0
- package/src/framer-chunks/google-42BCYVR5-QT55MZO3.js +7 -0
- package/src/framer.js +763 -449
- package/src/react.tsx +24 -0
- package/src/version.ts +1 -1
package/dist/framer.js
CHANGED
|
@@ -193,6 +193,7 @@ exports.recordStats = recordStats;
|
|
|
193
193
|
exports.removeHiddenBreakpointLayers = removeHiddenBreakpointLayers;
|
|
194
194
|
exports.removeHiddenBreakpointLayersV2 = removeHiddenBreakpointLayersV2;
|
|
195
195
|
exports.removeItem = removeItem;
|
|
196
|
+
exports.resize = resize;
|
|
196
197
|
exports.resolveElements = resolveElements;
|
|
197
198
|
exports.resolveLink = resolveLink;
|
|
198
199
|
exports.resolveMotionValue = resolveMotionValue;
|
|
@@ -269,6 +270,7 @@ exports.useLocaleInfo = useLocaleInfo;
|
|
|
269
270
|
exports.useLocalesForCurrentRoute = useLocalesForCurrentRoute;
|
|
270
271
|
exports.useLocalizationInfo = useLocalizationInfo;
|
|
271
272
|
exports.useMeasureLayout = useMeasureLayout;
|
|
273
|
+
exports.useMetadata = useMetadata;
|
|
272
274
|
exports.useMotionTemplate = useMotionTemplate;
|
|
273
275
|
exports.useMotionValue = useMotionValue;
|
|
274
276
|
exports.useMotionValueEvent = useMotionValueEvent;
|
|
@@ -322,7 +324,7 @@ exports.withShape = withShape;
|
|
|
322
324
|
exports.yieldToMain = yieldToMain;
|
|
323
325
|
exports.Router = Router;
|
|
324
326
|
const chunk_A2PMVMFI_js_1 = require("./framer-chunks/chunk-A2PMVMFI.js");
|
|
325
|
-
// /:https://app.framerstatic.com/chunk-
|
|
327
|
+
// /:https://app.framerstatic.com/chunk-BLFSVU7M.mjs
|
|
326
328
|
const react_1 = require("react");
|
|
327
329
|
const react_2 = require("react");
|
|
328
330
|
const react_3 = require("react");
|
|
@@ -3812,6 +3814,99 @@ function getComputedStyle2(element, name) {
|
|
|
3812
3814
|
const computedStyle = window.getComputedStyle(element);
|
|
3813
3815
|
return isCSSVar(name) ? computedStyle.getPropertyValue(name) : computedStyle[name];
|
|
3814
3816
|
}
|
|
3817
|
+
function isSVGElement(element) {
|
|
3818
|
+
return isObject(element) && 'ownerSVGElement' in element;
|
|
3819
|
+
}
|
|
3820
|
+
var resizeHandlers = /* @__PURE__ */ new WeakMap();
|
|
3821
|
+
var observer;
|
|
3822
|
+
var getSize = (borderBoxAxis, svgAxis, htmlAxis) => (target, borderBoxSize) => {
|
|
3823
|
+
if (borderBoxSize && borderBoxSize[0]) {
|
|
3824
|
+
return borderBoxSize[0][borderBoxAxis + 'Size'];
|
|
3825
|
+
}
|
|
3826
|
+
else if (isSVGElement(target) && 'getBBox' in target) {
|
|
3827
|
+
return target.getBBox()[svgAxis];
|
|
3828
|
+
}
|
|
3829
|
+
else {
|
|
3830
|
+
return target[htmlAxis];
|
|
3831
|
+
}
|
|
3832
|
+
};
|
|
3833
|
+
var getWidth = /* @__PURE__ */ getSize('inline', 'width', 'offsetWidth');
|
|
3834
|
+
var getHeight = /* @__PURE__ */ getSize('block', 'height', 'offsetHeight');
|
|
3835
|
+
function notifyTarget({ target, borderBoxSize, }) {
|
|
3836
|
+
var _a;
|
|
3837
|
+
(_a = resizeHandlers.get(target)) == null ? void 0 : _a.forEach((handler) => {
|
|
3838
|
+
handler(target, {
|
|
3839
|
+
get width() {
|
|
3840
|
+
return getWidth(target, borderBoxSize);
|
|
3841
|
+
},
|
|
3842
|
+
get height() {
|
|
3843
|
+
return getHeight(target, borderBoxSize);
|
|
3844
|
+
},
|
|
3845
|
+
});
|
|
3846
|
+
});
|
|
3847
|
+
}
|
|
3848
|
+
function notifyAll(entries) {
|
|
3849
|
+
entries.forEach(notifyTarget);
|
|
3850
|
+
}
|
|
3851
|
+
function createResizeObserver() {
|
|
3852
|
+
if (typeof ResizeObserver === 'undefined')
|
|
3853
|
+
return;
|
|
3854
|
+
observer = new ResizeObserver(notifyAll);
|
|
3855
|
+
}
|
|
3856
|
+
function resizeElement(target, handler) {
|
|
3857
|
+
if (!observer)
|
|
3858
|
+
createResizeObserver();
|
|
3859
|
+
const elements = resolveElements(target);
|
|
3860
|
+
elements.forEach((element) => {
|
|
3861
|
+
let elementHandlers = resizeHandlers.get(element);
|
|
3862
|
+
if (!elementHandlers) {
|
|
3863
|
+
elementHandlers = /* @__PURE__ */ new Set();
|
|
3864
|
+
resizeHandlers.set(element, elementHandlers);
|
|
3865
|
+
}
|
|
3866
|
+
elementHandlers.add(handler);
|
|
3867
|
+
observer == null ? void 0 : observer.observe(element);
|
|
3868
|
+
});
|
|
3869
|
+
return () => {
|
|
3870
|
+
elements.forEach((element) => {
|
|
3871
|
+
const elementHandlers = resizeHandlers.get(element);
|
|
3872
|
+
elementHandlers == null ? void 0 : elementHandlers.delete(handler);
|
|
3873
|
+
if (!(elementHandlers == null ? void 0 : elementHandlers.size)) {
|
|
3874
|
+
observer == null ? void 0 : observer.unobserve(element);
|
|
3875
|
+
}
|
|
3876
|
+
});
|
|
3877
|
+
};
|
|
3878
|
+
}
|
|
3879
|
+
var windowCallbacks = /* @__PURE__ */ new Set();
|
|
3880
|
+
var windowResizeHandler;
|
|
3881
|
+
function createWindowResizeHandler() {
|
|
3882
|
+
windowResizeHandler = () => {
|
|
3883
|
+
const info = {
|
|
3884
|
+
get width() {
|
|
3885
|
+
return window.innerWidth;
|
|
3886
|
+
},
|
|
3887
|
+
get height() {
|
|
3888
|
+
return window.innerHeight;
|
|
3889
|
+
},
|
|
3890
|
+
};
|
|
3891
|
+
windowCallbacks.forEach((callback) => callback(info));
|
|
3892
|
+
};
|
|
3893
|
+
window.addEventListener('resize', windowResizeHandler);
|
|
3894
|
+
}
|
|
3895
|
+
function resizeWindow(callback) {
|
|
3896
|
+
windowCallbacks.add(callback);
|
|
3897
|
+
if (!windowResizeHandler)
|
|
3898
|
+
createWindowResizeHandler();
|
|
3899
|
+
return () => {
|
|
3900
|
+
windowCallbacks.delete(callback);
|
|
3901
|
+
if (!windowCallbacks.size && typeof windowResizeHandler === 'function') {
|
|
3902
|
+
window.removeEventListener('resize', windowResizeHandler);
|
|
3903
|
+
windowResizeHandler = void 0;
|
|
3904
|
+
}
|
|
3905
|
+
};
|
|
3906
|
+
}
|
|
3907
|
+
function resize(a, b) {
|
|
3908
|
+
return typeof a === 'function' ? resizeWindow(a) : resizeElement(a, b);
|
|
3909
|
+
}
|
|
3815
3910
|
function observeTimeline(update, timeline) {
|
|
3816
3911
|
let prevProgress;
|
|
3817
3912
|
const onFrame = () => {
|
|
@@ -3934,9 +4029,6 @@ function recordStats() {
|
|
|
3934
4029
|
frame.postRender(record, true);
|
|
3935
4030
|
return reportStats;
|
|
3936
4031
|
}
|
|
3937
|
-
function isSVGElement(element) {
|
|
3938
|
-
return isObject(element) && 'ownerSVGElement' in element;
|
|
3939
|
-
}
|
|
3940
4032
|
function isSVGSVGElement(element) {
|
|
3941
4033
|
return isSVGElement(element) && element.tagName === 'svg';
|
|
3942
4034
|
}
|
|
@@ -8471,6 +8563,7 @@ function createProjectionNode2({ attachResizeListener, defaultParent, measureScr
|
|
|
8471
8563
|
this.motionValue || (this.motionValue = motionValue(0));
|
|
8472
8564
|
this.currentAnimation = animateSingleValue(this.motionValue, [0, 1e3,], {
|
|
8473
8565
|
...options,
|
|
8566
|
+
velocity: 0,
|
|
8474
8567
|
isSync: true,
|
|
8475
8568
|
onUpdate: (latest) => {
|
|
8476
8569
|
this.mixTargetDelta(latest);
|
|
@@ -9263,100 +9356,6 @@ exports.domMin = domMin;
|
|
|
9263
9356
|
function useMotionValueEvent(value, event, callback) {
|
|
9264
9357
|
(0, react_5.useInsertionEffect)(() => value.on(event, callback), [value, event, callback,]);
|
|
9265
9358
|
}
|
|
9266
|
-
var resizeHandlers = /* @__PURE__ */ new WeakMap();
|
|
9267
|
-
var observer;
|
|
9268
|
-
function getElementSize(target, borderBoxSize) {
|
|
9269
|
-
if (borderBoxSize) {
|
|
9270
|
-
const { inlineSize, blockSize, } = borderBoxSize[0];
|
|
9271
|
-
return {
|
|
9272
|
-
width: inlineSize,
|
|
9273
|
-
height: blockSize,
|
|
9274
|
-
};
|
|
9275
|
-
}
|
|
9276
|
-
else if (isSVGElement(target) && 'getBBox' in target) {
|
|
9277
|
-
return target.getBBox();
|
|
9278
|
-
}
|
|
9279
|
-
else {
|
|
9280
|
-
return {
|
|
9281
|
-
width: target.offsetWidth,
|
|
9282
|
-
height: target.offsetHeight,
|
|
9283
|
-
};
|
|
9284
|
-
}
|
|
9285
|
-
}
|
|
9286
|
-
function notifyTarget({ target, contentRect, borderBoxSize, }) {
|
|
9287
|
-
var _a;
|
|
9288
|
-
(_a = resizeHandlers.get(target)) == null ? void 0 : _a.forEach((handler) => {
|
|
9289
|
-
handler({
|
|
9290
|
-
target,
|
|
9291
|
-
contentSize: contentRect,
|
|
9292
|
-
get size() {
|
|
9293
|
-
return getElementSize(target, borderBoxSize);
|
|
9294
|
-
},
|
|
9295
|
-
});
|
|
9296
|
-
});
|
|
9297
|
-
}
|
|
9298
|
-
function notifyAll(entries) {
|
|
9299
|
-
entries.forEach(notifyTarget);
|
|
9300
|
-
}
|
|
9301
|
-
function createResizeObserver() {
|
|
9302
|
-
if (typeof ResizeObserver === 'undefined')
|
|
9303
|
-
return;
|
|
9304
|
-
observer = new ResizeObserver(notifyAll);
|
|
9305
|
-
}
|
|
9306
|
-
function resizeElement(target, handler) {
|
|
9307
|
-
if (!observer)
|
|
9308
|
-
createResizeObserver();
|
|
9309
|
-
const elements = resolveElements(target);
|
|
9310
|
-
elements.forEach((element) => {
|
|
9311
|
-
let elementHandlers = resizeHandlers.get(element);
|
|
9312
|
-
if (!elementHandlers) {
|
|
9313
|
-
elementHandlers = /* @__PURE__ */ new Set();
|
|
9314
|
-
resizeHandlers.set(element, elementHandlers);
|
|
9315
|
-
}
|
|
9316
|
-
elementHandlers.add(handler);
|
|
9317
|
-
observer == null ? void 0 : observer.observe(element);
|
|
9318
|
-
});
|
|
9319
|
-
return () => {
|
|
9320
|
-
elements.forEach((element) => {
|
|
9321
|
-
const elementHandlers = resizeHandlers.get(element);
|
|
9322
|
-
elementHandlers == null ? void 0 : elementHandlers.delete(handler);
|
|
9323
|
-
if (!(elementHandlers == null ? void 0 : elementHandlers.size)) {
|
|
9324
|
-
observer == null ? void 0 : observer.unobserve(element);
|
|
9325
|
-
}
|
|
9326
|
-
});
|
|
9327
|
-
};
|
|
9328
|
-
}
|
|
9329
|
-
var windowCallbacks = /* @__PURE__ */ new Set();
|
|
9330
|
-
var windowResizeHandler;
|
|
9331
|
-
function createWindowResizeHandler() {
|
|
9332
|
-
windowResizeHandler = () => {
|
|
9333
|
-
const size = {
|
|
9334
|
-
width: window.innerWidth,
|
|
9335
|
-
height: window.innerHeight,
|
|
9336
|
-
};
|
|
9337
|
-
const info = {
|
|
9338
|
-
target: window,
|
|
9339
|
-
size,
|
|
9340
|
-
contentSize: size,
|
|
9341
|
-
};
|
|
9342
|
-
windowCallbacks.forEach((callback) => callback(info));
|
|
9343
|
-
};
|
|
9344
|
-
window.addEventListener('resize', windowResizeHandler);
|
|
9345
|
-
}
|
|
9346
|
-
function resizeWindow(callback) {
|
|
9347
|
-
windowCallbacks.add(callback);
|
|
9348
|
-
if (!windowResizeHandler)
|
|
9349
|
-
createWindowResizeHandler();
|
|
9350
|
-
return () => {
|
|
9351
|
-
windowCallbacks.delete(callback);
|
|
9352
|
-
if (!windowCallbacks.size && windowResizeHandler) {
|
|
9353
|
-
windowResizeHandler = void 0;
|
|
9354
|
-
}
|
|
9355
|
-
};
|
|
9356
|
-
}
|
|
9357
|
-
function resize(a, b) {
|
|
9358
|
-
return typeof a === 'function' ? resizeWindow(a) : resizeElement(a, b);
|
|
9359
|
-
}
|
|
9360
9359
|
var maxElapsed2 = 50;
|
|
9361
9360
|
var createAxisInfo = () => ({
|
|
9362
9361
|
current: 0,
|
|
@@ -10959,7 +10958,7 @@ function stagger(duration = 0.1, { startDelay = 0, from = 0, ease: ease2, } = {}
|
|
|
10959
10958
|
return startDelay + delay2;
|
|
10960
10959
|
};
|
|
10961
10960
|
}
|
|
10962
|
-
// /:https://app.framerstatic.com/framer.
|
|
10961
|
+
// /:https://app.framerstatic.com/framer.6RBAH774.mjs
|
|
10963
10962
|
const react_10 = require("react");
|
|
10964
10963
|
const react_11 = __importDefault(require("react"));
|
|
10965
10964
|
const react_12 = require("react");
|
|
@@ -14249,6 +14248,198 @@ function patchRoutesForABTesting(routes, initialRouteId) {
|
|
|
14249
14248
|
removeRoutesVariants(routes);
|
|
14250
14249
|
return resolvedInitialRouteId;
|
|
14251
14250
|
}
|
|
14251
|
+
var mainTagId = 'main';
|
|
14252
|
+
var generatedPageDatasetKey = 'framerGeneratedPage';
|
|
14253
|
+
var searchIndexMetaName = 'framer-search-index';
|
|
14254
|
+
var searchIndexMetaSelector = `meta[name="${searchIndexMetaName}"]`;
|
|
14255
|
+
var endOfHeadStartMarker = '<!-- End of headStart -->';
|
|
14256
|
+
var endOfHeadEndMarker = '<!-- End of headEnd -->';
|
|
14257
|
+
var endOfBodyStartMarker = '<!-- End of bodyStart -->';
|
|
14258
|
+
var endOfBodyEndMarker = '<!-- End of bodyEnd -->';
|
|
14259
|
+
function assert(condition, ...msg) {
|
|
14260
|
+
var _a, _b;
|
|
14261
|
+
if (condition)
|
|
14262
|
+
return;
|
|
14263
|
+
const e = Error('Assertion Error' + (msg.length > 0 ? ': ' + msg.join(' ') : ''));
|
|
14264
|
+
if (e.stack) {
|
|
14265
|
+
try {
|
|
14266
|
+
const lines = e.stack.split('\n');
|
|
14267
|
+
if ((_a = lines[1]) == null ? void 0 : _a.includes('assert')) {
|
|
14268
|
+
lines.splice(1, 1);
|
|
14269
|
+
e.stack = lines.join('\n');
|
|
14270
|
+
}
|
|
14271
|
+
else if ((_b = lines[0]) == null ? void 0 : _b.includes('assert')) {
|
|
14272
|
+
lines.splice(0, 1);
|
|
14273
|
+
e.stack = lines.join('\n');
|
|
14274
|
+
}
|
|
14275
|
+
}
|
|
14276
|
+
catch { }
|
|
14277
|
+
}
|
|
14278
|
+
throw e;
|
|
14279
|
+
}
|
|
14280
|
+
function assertNever(x, error) {
|
|
14281
|
+
throw error || new Error(x ? `Unexpected value: ${x}` : 'Application entered invalid state');
|
|
14282
|
+
}
|
|
14283
|
+
async function insertHTML(html, referenceNode, position = 'beforeend') {
|
|
14284
|
+
let insertionParent, insertionPoint;
|
|
14285
|
+
switch (position) {
|
|
14286
|
+
case 'beforebegin':
|
|
14287
|
+
assert(referenceNode.parentNode, 'Can\'t use \'beforebegin\' with a referenceNode at the top level');
|
|
14288
|
+
insertionParent = referenceNode.parentNode;
|
|
14289
|
+
insertionPoint = referenceNode;
|
|
14290
|
+
break;
|
|
14291
|
+
case 'afterend':
|
|
14292
|
+
assert(referenceNode.parentNode, 'Can\'t use \'afterend\' with a referenceNode at the top level');
|
|
14293
|
+
insertionParent = referenceNode.parentNode;
|
|
14294
|
+
insertionPoint = referenceNode.nextSibling;
|
|
14295
|
+
break;
|
|
14296
|
+
case 'afterbegin':
|
|
14297
|
+
insertionParent = referenceNode;
|
|
14298
|
+
insertionPoint = referenceNode.firstChild;
|
|
14299
|
+
break;
|
|
14300
|
+
case 'beforeend':
|
|
14301
|
+
insertionParent = referenceNode;
|
|
14302
|
+
insertionPoint = null;
|
|
14303
|
+
break;
|
|
14304
|
+
default:
|
|
14305
|
+
assertNever(position);
|
|
14306
|
+
}
|
|
14307
|
+
const range = document.createRange();
|
|
14308
|
+
range.selectNodeContents(insertionParent);
|
|
14309
|
+
const fragment = range.createContextualFragment(html);
|
|
14310
|
+
await pump(fragment, insertionParent, insertionPoint);
|
|
14311
|
+
}
|
|
14312
|
+
async function pump(sourceNode, targetParent, beforeNode) {
|
|
14313
|
+
for (let node = sourceNode.firstChild; node; node = node.nextSibling) {
|
|
14314
|
+
if (node instanceof HTMLScriptElement) {
|
|
14315
|
+
await handleScript(node, targetParent, beforeNode);
|
|
14316
|
+
continue;
|
|
14317
|
+
}
|
|
14318
|
+
const clone = node.cloneNode(false);
|
|
14319
|
+
targetParent.insertBefore(clone, beforeNode);
|
|
14320
|
+
if (node.firstChild) {
|
|
14321
|
+
await pump(node, clone, null);
|
|
14322
|
+
}
|
|
14323
|
+
}
|
|
14324
|
+
}
|
|
14325
|
+
async function handleScript(node, parent, beforeNode) {
|
|
14326
|
+
var _a;
|
|
14327
|
+
const script = node.cloneNode(true);
|
|
14328
|
+
const isExternal = script.hasAttribute('src');
|
|
14329
|
+
const isAsync = script.hasAttribute('async');
|
|
14330
|
+
const isDefer = script.hasAttribute('defer');
|
|
14331
|
+
const isModule = ((_a = script.getAttribute('type')) == null ? void 0 : _a.toLowerCase()) === 'module';
|
|
14332
|
+
if (!isExternal || isAsync || isDefer || isModule) {
|
|
14333
|
+
parent.insertBefore(script, beforeNode);
|
|
14334
|
+
}
|
|
14335
|
+
else {
|
|
14336
|
+
await execExternalBlockingScript(script, parent, beforeNode);
|
|
14337
|
+
}
|
|
14338
|
+
}
|
|
14339
|
+
function execExternalBlockingScript(script, parent, beforeNode) {
|
|
14340
|
+
return new Promise((resolve) => {
|
|
14341
|
+
script.onload = () => resolve();
|
|
14342
|
+
script.onerror = () => resolve();
|
|
14343
|
+
parent.insertBefore(script, beforeNode);
|
|
14344
|
+
});
|
|
14345
|
+
}
|
|
14346
|
+
function useMetadata(metadata) {
|
|
14347
|
+
const { isInitialNavigation, } = useRouter();
|
|
14348
|
+
React2.useEffect(() => {
|
|
14349
|
+
if (metadata.robots) {
|
|
14350
|
+
let robotsTag = document.querySelector('meta[name="robots"]');
|
|
14351
|
+
if (robotsTag) {
|
|
14352
|
+
robotsTag.setAttribute('content', metadata.robots);
|
|
14353
|
+
}
|
|
14354
|
+
else {
|
|
14355
|
+
robotsTag = document.createElement('meta');
|
|
14356
|
+
robotsTag.setAttribute('name', 'robots');
|
|
14357
|
+
robotsTag.setAttribute('content', metadata.robots);
|
|
14358
|
+
document.head.appendChild(robotsTag);
|
|
14359
|
+
}
|
|
14360
|
+
}
|
|
14361
|
+
}, [metadata.robots,]);
|
|
14362
|
+
React2.useInsertionEffect(() => {
|
|
14363
|
+
var _a;
|
|
14364
|
+
document.title = metadata.title || '';
|
|
14365
|
+
if (metadata.viewport) {
|
|
14366
|
+
(_a = document.querySelector('meta[name="viewport"]')) == null ? void 0 : _a.setAttribute('content', metadata.viewport);
|
|
14367
|
+
}
|
|
14368
|
+
}, [metadata.title, metadata.viewport,]);
|
|
14369
|
+
React2.useEffect(() => {
|
|
14370
|
+
if (!isInitialNavigation)
|
|
14371
|
+
return;
|
|
14372
|
+
const mainTag = document.getElementById(mainTagId);
|
|
14373
|
+
const isGeneratedPage = mainTag && mainTag.dataset[generatedPageDatasetKey] !== void 0;
|
|
14374
|
+
if (isGeneratedPage)
|
|
14375
|
+
return;
|
|
14376
|
+
void insertCustomHTML(metadata.customHTMLHeadStart, metadata.customHTMLHeadEnd, metadata.customHTMLBodyStart, metadata.customHTMLBodyEnd);
|
|
14377
|
+
}, []);
|
|
14378
|
+
}
|
|
14379
|
+
async function insertCustomHTML(customHTMLHeadStart, customHTMLHeadEnd, customHTMLBodyStart, customHTMLBodyEnd) {
|
|
14380
|
+
let endOfHeadStart;
|
|
14381
|
+
let endOfHeadEnd;
|
|
14382
|
+
let endOfBodyStart;
|
|
14383
|
+
let endOfBodyEnd;
|
|
14384
|
+
if (customHTMLHeadStart || customHTMLHeadEnd) {
|
|
14385
|
+
const { start: start2, end, } = findCommentMarkers(document.head.childNodes, customHTMLHeadStart ? endOfHeadStartMarker : void 0, customHTMLHeadEnd ? endOfHeadEndMarker : void 0);
|
|
14386
|
+
endOfHeadStart = start2;
|
|
14387
|
+
endOfHeadEnd = end;
|
|
14388
|
+
}
|
|
14389
|
+
if (customHTMLBodyStart || customHTMLBodyEnd) {
|
|
14390
|
+
const { start: start2, end, } = findCommentMarkers(document.body.childNodes, customHTMLBodyStart ? endOfBodyStartMarker : void 0, customHTMLBodyEnd ? endOfBodyEndMarker : void 0);
|
|
14391
|
+
endOfBodyStart = start2;
|
|
14392
|
+
endOfBodyEnd = end;
|
|
14393
|
+
}
|
|
14394
|
+
if (customHTMLHeadStart && endOfHeadStart) {
|
|
14395
|
+
await insertHTML(customHTMLHeadStart, endOfHeadStart, 'beforebegin');
|
|
14396
|
+
}
|
|
14397
|
+
if (customHTMLHeadEnd && endOfHeadEnd) {
|
|
14398
|
+
await insertHTML(customHTMLHeadEnd, endOfHeadEnd, 'beforebegin');
|
|
14399
|
+
}
|
|
14400
|
+
if (customHTMLBodyStart && endOfBodyStart) {
|
|
14401
|
+
await insertHTML(customHTMLBodyStart, endOfBodyStart, 'beforebegin');
|
|
14402
|
+
}
|
|
14403
|
+
if (customHTMLBodyEnd && endOfBodyEnd) {
|
|
14404
|
+
await insertHTML(customHTMLBodyEnd, endOfBodyEnd, 'beforebegin');
|
|
14405
|
+
}
|
|
14406
|
+
}
|
|
14407
|
+
function findCommentMarkers(nodes, startMarker, endMarker) {
|
|
14408
|
+
if (!startMarker && !endMarker) {
|
|
14409
|
+
return {
|
|
14410
|
+
start: void 0,
|
|
14411
|
+
end: void 0,
|
|
14412
|
+
};
|
|
14413
|
+
}
|
|
14414
|
+
let start2;
|
|
14415
|
+
let end;
|
|
14416
|
+
let i = 0;
|
|
14417
|
+
let j = nodes.length - 1;
|
|
14418
|
+
while (i <= j) {
|
|
14419
|
+
const startNode = nodes[i];
|
|
14420
|
+
const endNode = nodes[j];
|
|
14421
|
+
if (!start2 && (startNode == null ? void 0 : startNode.nodeType) === Node.COMMENT_NODE && startMarker &&
|
|
14422
|
+
`<!--${startNode.nodeValue}-->` === startMarker) {
|
|
14423
|
+
start2 = startNode;
|
|
14424
|
+
if (!endMarker)
|
|
14425
|
+
break;
|
|
14426
|
+
}
|
|
14427
|
+
if (!end && (endNode == null ? void 0 : endNode.nodeType) === Node.COMMENT_NODE && endMarker &&
|
|
14428
|
+
`<!--${endNode.nodeValue}-->` === endMarker) {
|
|
14429
|
+
end = endNode;
|
|
14430
|
+
if (!startMarker)
|
|
14431
|
+
break;
|
|
14432
|
+
}
|
|
14433
|
+
if (start2 && end)
|
|
14434
|
+
break;
|
|
14435
|
+
i++;
|
|
14436
|
+
j--;
|
|
14437
|
+
}
|
|
14438
|
+
return {
|
|
14439
|
+
start: start2,
|
|
14440
|
+
end,
|
|
14441
|
+
};
|
|
14442
|
+
}
|
|
14252
14443
|
var warningMessages = /* @__PURE__ */ new Set();
|
|
14253
14444
|
function warnOnce2(keyMessage, ...rest) {
|
|
14254
14445
|
if (warningMessages.has(keyMessage))
|
|
@@ -14436,6 +14627,9 @@ function roundWithOffset(value, offset) {
|
|
|
14436
14627
|
}
|
|
14437
14628
|
return Math.round(value - offset) + offset;
|
|
14438
14629
|
}
|
|
14630
|
+
function roundToHalfPixel(value) {
|
|
14631
|
+
return Math.round(value * 2) / 2;
|
|
14632
|
+
}
|
|
14439
14633
|
function Point(x, y) {
|
|
14440
14634
|
return {
|
|
14441
14635
|
x,
|
|
@@ -14564,30 +14758,6 @@ function Point(x, y) {
|
|
|
14564
14758
|
}
|
|
14565
14759
|
Point2.sortClockwise = sortClockwise;
|
|
14566
14760
|
})(Point || (exports.Point = Point = {}));
|
|
14567
|
-
function assert(condition, ...msg) {
|
|
14568
|
-
var _a, _b;
|
|
14569
|
-
if (condition)
|
|
14570
|
-
return;
|
|
14571
|
-
const e = Error('Assertion Error' + (msg.length > 0 ? ': ' + msg.join(' ') : ''));
|
|
14572
|
-
if (e.stack) {
|
|
14573
|
-
try {
|
|
14574
|
-
const lines = e.stack.split('\n');
|
|
14575
|
-
if ((_a = lines[1]) == null ? void 0 : _a.includes('assert')) {
|
|
14576
|
-
lines.splice(1, 1);
|
|
14577
|
-
e.stack = lines.join('\n');
|
|
14578
|
-
}
|
|
14579
|
-
else if ((_b = lines[0]) == null ? void 0 : _b.includes('assert')) {
|
|
14580
|
-
lines.splice(0, 1);
|
|
14581
|
-
e.stack = lines.join('\n');
|
|
14582
|
-
}
|
|
14583
|
-
}
|
|
14584
|
-
catch { }
|
|
14585
|
-
}
|
|
14586
|
-
throw e;
|
|
14587
|
-
}
|
|
14588
|
-
function assertNever(x, error) {
|
|
14589
|
-
throw error || new Error(x ? `Unexpected value: ${x}` : 'Application entered invalid state');
|
|
14590
|
-
}
|
|
14591
14761
|
var BezierDefaults = {
|
|
14592
14762
|
curve: 'ease',
|
|
14593
14763
|
duration: 1,
|
|
@@ -16790,7 +16960,10 @@ var Loop = class extends EventEmitter {
|
|
|
16790
16960
|
var MainLoop = /* @__PURE__ */ new Loop();
|
|
16791
16961
|
exports.MainLoop = MainLoop;
|
|
16792
16962
|
var RenderEnvironment = {
|
|
16793
|
-
target:
|
|
16963
|
+
target:
|
|
16964
|
+
// Enable static renderer when taking screenshots
|
|
16965
|
+
// in screenshot-site lambda
|
|
16966
|
+
safeWindow.location.origin === 'https://screenshot.framer.invalid' ? 'EXPORT' : 'PREVIEW',
|
|
16794
16967
|
zoom: 1,
|
|
16795
16968
|
};
|
|
16796
16969
|
function executeInRenderEnvironment(customEnvironment, task) {
|
|
@@ -18013,11 +18186,21 @@ var Rect = {
|
|
|
18013
18186
|
return rect.x === other.x && rect.y === other.y && rect.width === other.width && rect.height === other.height;
|
|
18014
18187
|
},
|
|
18015
18188
|
/** @internal */
|
|
18189
|
+
from: (rect) => {
|
|
18190
|
+
return {
|
|
18191
|
+
x: rect.x,
|
|
18192
|
+
y: rect.y,
|
|
18193
|
+
width: rect.width,
|
|
18194
|
+
height: rect.height,
|
|
18195
|
+
};
|
|
18196
|
+
},
|
|
18197
|
+
/** @internal */
|
|
18016
18198
|
atOrigin: (size) => {
|
|
18017
18199
|
return {
|
|
18018
|
-
...size,
|
|
18019
18200
|
x: 0,
|
|
18020
18201
|
y: 0,
|
|
18202
|
+
width: size.width,
|
|
18203
|
+
height: size.height,
|
|
18021
18204
|
};
|
|
18022
18205
|
},
|
|
18023
18206
|
/** @internal */
|
|
@@ -18181,13 +18364,13 @@ var Rect = {
|
|
|
18181
18364
|
};
|
|
18182
18365
|
},
|
|
18183
18366
|
/** @internal */
|
|
18184
|
-
boundingRectFromPoints: (
|
|
18367
|
+
boundingRectFromPoints: (points) => {
|
|
18185
18368
|
let minX = Infinity;
|
|
18186
18369
|
let maxX = -Infinity;
|
|
18187
18370
|
let minY = Infinity;
|
|
18188
18371
|
let maxY = -Infinity;
|
|
18189
|
-
for (let i = 0; i <
|
|
18190
|
-
const point2 =
|
|
18372
|
+
for (let i = 0; i < points.length; i++) {
|
|
18373
|
+
const point2 = points[i];
|
|
18191
18374
|
minX = Math.min(minX, point2.x);
|
|
18192
18375
|
maxX = Math.max(maxX, point2.x);
|
|
18193
18376
|
minY = Math.min(minY, point2.y);
|
|
@@ -18491,20 +18674,6 @@ var Rect = {
|
|
|
18491
18674
|
y: 0,
|
|
18492
18675
|
});
|
|
18493
18676
|
},
|
|
18494
|
-
/** @internal */
|
|
18495
|
-
fromAny: (rect, defaults = {
|
|
18496
|
-
x: 0,
|
|
18497
|
-
y: 0,
|
|
18498
|
-
width: 0,
|
|
18499
|
-
height: 0,
|
|
18500
|
-
}) => {
|
|
18501
|
-
return {
|
|
18502
|
-
x: rect.x || defaults.x,
|
|
18503
|
-
y: rect.y || defaults.y,
|
|
18504
|
-
width: rect.width || defaults.width,
|
|
18505
|
-
height: rect.height || defaults.height,
|
|
18506
|
-
};
|
|
18507
|
-
},
|
|
18508
18677
|
delta: (a, b) => {
|
|
18509
18678
|
const pointA = {
|
|
18510
18679
|
x: Rect.minX(a),
|
|
@@ -19229,6 +19398,7 @@ var ControlType = /* @__PURE__ */ ((ControlType2) => {
|
|
|
19229
19398
|
ControlType2['MultiCollectionReference'] = 'multicollectionreference';
|
|
19230
19399
|
ControlType2['TrackingId'] = 'trackingid';
|
|
19231
19400
|
ControlType2['VectorSetItem'] = 'vectorsetitem';
|
|
19401
|
+
ControlType2['LinkRelValues'] = 'linkrelvalues';
|
|
19232
19402
|
return ControlType2;
|
|
19233
19403
|
})(ControlType || {});
|
|
19234
19404
|
exports.ControlType = ControlType;
|
|
@@ -20599,6 +20769,8 @@ function getControlDefaultValue(control) {
|
|
|
20599
20769
|
return isObject2(control.defaultValue) ? control.defaultValue : void 0;
|
|
20600
20770
|
case 'font':
|
|
20601
20771
|
return isObject2(control.defaultValue) ? control.defaultValue : void 0;
|
|
20772
|
+
case 'linkrelvalues':
|
|
20773
|
+
return isArray(control.defaultValue) ? control.defaultValue : void 0;
|
|
20602
20774
|
case 'object': {
|
|
20603
20775
|
const value = isObject2(control.defaultValue) ? control.defaultValue : {};
|
|
20604
20776
|
if (isObject2(control.controls)) {
|
|
@@ -22423,7 +22595,7 @@ function OptimizedCanvasImage({ nodeId, image, containerSize, }) {
|
|
|
22423
22595
|
});
|
|
22424
22596
|
}
|
|
22425
22597
|
function BackgroundImageComponent({ layoutId, image, ...props }) {
|
|
22426
|
-
const {
|
|
22598
|
+
const { motionDivToDivBackgroundImage, } = useLibraryFeatures();
|
|
22427
22599
|
if (layoutId) {
|
|
22428
22600
|
layoutId += '-background';
|
|
22429
22601
|
}
|
|
@@ -22437,6 +22609,7 @@ function BackgroundImageComponent({ layoutId, image, ...props }) {
|
|
|
22437
22609
|
width: Math.round(backgroundSize * image.pixelWidth),
|
|
22438
22610
|
height: Math.round(backgroundSize * image.pixelHeight),
|
|
22439
22611
|
};
|
|
22612
|
+
const roundedBackgroundSize = roundToHalfPixel(backgroundSize * (image.pixelWidth / 2));
|
|
22440
22613
|
const imageSource = runtime.useImageSource(image, tileSize);
|
|
22441
22614
|
fallbackWrapperStyles = {
|
|
22442
22615
|
...wrapperStyle,
|
|
@@ -22445,15 +22618,7 @@ function BackgroundImageComponent({ layoutId, image, ...props }) {
|
|
|
22445
22618
|
backgroundPosition: cssObjectPosition(image.positionX, image.positionY),
|
|
22446
22619
|
opacity: void 0,
|
|
22447
22620
|
border: 0,
|
|
22448
|
-
|
|
22449
|
-
// so we need to multiply it by the pixelWidth to get the pixel
|
|
22450
|
-
// value for the backgroundSize so that the size of the tile is
|
|
22451
|
-
// a function of the image width + background size percentage.
|
|
22452
|
-
// e.g image is 64px/64px and backgroundSize is 0.05, the tile size
|
|
22453
|
-
// should be 3.2px
|
|
22454
|
-
// We divide the pixel width by 2 because we assume that most designers
|
|
22455
|
-
// will be working with 2x (retina) assets.
|
|
22456
|
-
backgroundSize: `${(backgroundSize * (image.pixelWidth / 2)).toFixed(2)}px auto`,
|
|
22621
|
+
backgroundSize: `${roundedBackgroundSize}px auto`,
|
|
22457
22622
|
};
|
|
22458
22623
|
imageNode = null;
|
|
22459
22624
|
needsMotion = true;
|
|
@@ -22484,7 +22649,7 @@ function BackgroundImageComponent({ layoutId, image, ...props }) {
|
|
|
22484
22649
|
...wrapperStyle,
|
|
22485
22650
|
...getPlaceholderStyle(),
|
|
22486
22651
|
};
|
|
22487
|
-
return needsMotion || !
|
|
22652
|
+
return needsMotion || !motionDivToDivBackgroundImage
|
|
22488
22653
|
? /* @__PURE__ */ (0, jsx_runtime_1.jsx)(motion.div, {
|
|
22489
22654
|
layoutId,
|
|
22490
22655
|
style: style2,
|
|
@@ -22634,7 +22799,15 @@ var isFirefox = () => safeNavigator && /Firefox\/\d+\.\d+$/u.test(safeNavigator.
|
|
|
22634
22799
|
var isFramerX = () => safeNavigator && /FramerX/u.test(safeNavigator.userAgent);
|
|
22635
22800
|
var isEdge = () => safeNavigator && /Edg\//u.test(safeNavigator.userAgent);
|
|
22636
22801
|
var isAndroid = () => safeNavigator && /android/iu.test(safeNavigator.userAgent);
|
|
22637
|
-
var
|
|
22802
|
+
var iOSRegex = /iPhone|iPod|iPad/iu;
|
|
22803
|
+
var macIntelRegex = /MacIntel/iu;
|
|
22804
|
+
var isIOS = () => {
|
|
22805
|
+
if (!safeNavigator)
|
|
22806
|
+
return false;
|
|
22807
|
+
if (iOSRegex.test(safeNavigator.platform))
|
|
22808
|
+
return true;
|
|
22809
|
+
return macIntelRegex.test(safeNavigator.platform) && safeNavigator.maxTouchPoints && safeNavigator.maxTouchPoints > 2;
|
|
22810
|
+
};
|
|
22638
22811
|
var isMacOS = () => safeNavigator && /Mac/u.test(safeNavigator.platform);
|
|
22639
22812
|
var isWindows = () => safeNavigator && /Win/u.test(safeNavigator.platform);
|
|
22640
22813
|
var isTouch = () => safeWindow.ontouchstart === null && safeWindow.ontouchmove === null && safeWindow.ontouchend === null;
|
|
@@ -23965,39 +24138,59 @@ function useStableRefWithObserver() {
|
|
|
23965
24138
|
return ref.current;
|
|
23966
24139
|
},
|
|
23967
24140
|
set current(value) {
|
|
24141
|
+
if (value === ref.current)
|
|
24142
|
+
return;
|
|
24143
|
+
ref.current = value;
|
|
23968
24144
|
if (refCallback)
|
|
23969
24145
|
refCallback(value);
|
|
23970
|
-
|
|
23971
|
-
|
|
23972
|
-
|
|
23973
|
-
|
|
23974
|
-
|
|
23975
|
-
|
|
23976
|
-
|
|
23977
|
-
cleanups.set(callback, cleanup);
|
|
24146
|
+
cleanups.forEach((cleanup, callback) => {
|
|
24147
|
+
if (cleanup) {
|
|
24148
|
+
cleanup();
|
|
24149
|
+
}
|
|
24150
|
+
else {
|
|
24151
|
+
callback(null);
|
|
24152
|
+
}
|
|
23978
24153
|
});
|
|
23979
|
-
if (
|
|
23980
|
-
cleanups.forEach((cleanup) => cleanup());
|
|
24154
|
+
if (value === null) {
|
|
23981
24155
|
cleanups.clear();
|
|
24156
|
+
callbacks.clear();
|
|
24157
|
+
return;
|
|
23982
24158
|
}
|
|
24159
|
+
callbacks.forEach((callback) => {
|
|
24160
|
+
const cleanup = callback(value);
|
|
24161
|
+
cleanups.set(callback, cleanup);
|
|
24162
|
+
});
|
|
23983
24163
|
},
|
|
23984
|
-
|
|
23985
|
-
|
|
23986
|
-
|
|
24164
|
+
/**
|
|
24165
|
+
* Adds `fn` to the list of callbacks to be called when the ref is updated.
|
|
24166
|
+
* Executes `fn` immediately if the ref already has a value.
|
|
24167
|
+
*/
|
|
24168
|
+
observe(fn) {
|
|
23987
24169
|
callbacks.add(fn);
|
|
23988
|
-
|
|
23989
|
-
|
|
24170
|
+
const value = ref.current;
|
|
24171
|
+
if (value) {
|
|
24172
|
+
const cleanup = fn(value);
|
|
24173
|
+
cleanups.set(fn, cleanup);
|
|
24174
|
+
}
|
|
23990
24175
|
},
|
|
24176
|
+
/**
|
|
24177
|
+
* Removes `fn` from the list of callbacks.
|
|
24178
|
+
* Runs the cleanup for `fn` if it has been called before.
|
|
24179
|
+
*/
|
|
23991
24180
|
unobserve(fn) {
|
|
23992
|
-
if (fn)
|
|
23993
|
-
|
|
23994
|
-
|
|
23995
|
-
|
|
23996
|
-
|
|
23997
|
-
|
|
23998
|
-
|
|
23999
|
-
|
|
24000
|
-
|
|
24181
|
+
if (!fn)
|
|
24182
|
+
return;
|
|
24183
|
+
callbacks.delete(fn);
|
|
24184
|
+
if (!cleanups.has(fn))
|
|
24185
|
+
return;
|
|
24186
|
+
const cleanupFn = cleanups.get(fn);
|
|
24187
|
+
if (cleanupFn) {
|
|
24188
|
+
cleanupFn();
|
|
24189
|
+
}
|
|
24190
|
+
else {
|
|
24191
|
+
fn(null);
|
|
24192
|
+
}
|
|
24193
|
+
cleanups.delete(fn);
|
|
24001
24194
|
},
|
|
24002
24195
|
};
|
|
24003
24196
|
});
|
|
@@ -24014,32 +24207,22 @@ function useObserverRef(forwardedRef) {
|
|
|
24014
24207
|
});
|
|
24015
24208
|
}
|
|
24016
24209
|
function useRefEffect(ref, effect, deps) {
|
|
24017
|
-
var _a;
|
|
24018
24210
|
const effectRef = (0, react_4.useRef)();
|
|
24019
24211
|
const depsChangedRef = (0, react_4.useRef)();
|
|
24020
24212
|
useMemoOne(() => {
|
|
24021
|
-
if (depsChangedRef.current !== void 0)
|
|
24213
|
+
if (depsChangedRef.current !== void 0) {
|
|
24022
24214
|
depsChangedRef.current = true;
|
|
24215
|
+
}
|
|
24023
24216
|
}, deps ?? [{},]);
|
|
24024
24217
|
if (!ref)
|
|
24025
24218
|
return;
|
|
24026
24219
|
const depsChanged = depsChangedRef.current;
|
|
24027
|
-
if (depsChanged)
|
|
24028
|
-
depsChangedRef.current = false;
|
|
24029
|
-
if (!ref.cleanup(effectRef.current)) {
|
|
24030
|
-
(_a = effectRef.current) == null ? void 0 : _a.call(effectRef, null);
|
|
24031
|
-
}
|
|
24032
|
-
const value = ref.current;
|
|
24033
|
-
if (value)
|
|
24034
|
-
effect == null ? void 0 : effect(value);
|
|
24035
|
-
}
|
|
24036
|
-
if (effectRef.current === effect)
|
|
24220
|
+
if (depsChanged === false)
|
|
24037
24221
|
return;
|
|
24222
|
+
depsChangedRef.current = false;
|
|
24038
24223
|
ref.unobserve(effectRef.current);
|
|
24224
|
+
ref.observe(effect);
|
|
24039
24225
|
effectRef.current = effect;
|
|
24040
|
-
ref.observe(effect, depsChanged);
|
|
24041
|
-
if (depsChangedRef.current === void 0)
|
|
24042
|
-
depsChangedRef.current = false;
|
|
24043
24226
|
}
|
|
24044
24227
|
var SharedIntersectionObserver = class {
|
|
24045
24228
|
constructor(options) {
|
|
@@ -26818,7 +27001,7 @@ function collectBoxShadowsForProps(props, style2) {
|
|
|
26818
27001
|
return;
|
|
26819
27002
|
style2.boxShadow = boxShadow;
|
|
26820
27003
|
}
|
|
26821
|
-
function shadowForShape(boxShadows, rect, shapeId,
|
|
27004
|
+
function shadowForShape(boxShadows, rect, shapeId, fillEnabled, strokeEnabled, strokeWidth, strokeClipId, svgStrokeAttributes) {
|
|
26822
27005
|
const definition = [];
|
|
26823
27006
|
let outsetElement = null;
|
|
26824
27007
|
let insetElement = null;
|
|
@@ -26905,6 +27088,7 @@ function shadowForShape(boxShadows, rect, shapeId, strokeAlpha, strokeWidth, str
|
|
|
26905
27088
|
/* @__PURE__ */ (0, jsx_runtime_1.jsx)('use', {
|
|
26906
27089
|
href: shapeId.link,
|
|
26907
27090
|
fill: 'black',
|
|
27091
|
+
fillOpacity: fillEnabled ? void 0 : 0,
|
|
26908
27092
|
}),
|
|
26909
27093
|
],
|
|
26910
27094
|
});
|
|
@@ -26915,9 +27099,10 @@ function shadowForShape(boxShadows, rect, shapeId, strokeAlpha, strokeWidth, str
|
|
|
26915
27099
|
children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)('use', {
|
|
26916
27100
|
...svgStrokeAttributes,
|
|
26917
27101
|
fill: 'black',
|
|
27102
|
+
fillOpacity: fillEnabled ? void 0 : 0,
|
|
26918
27103
|
stroke: 'black',
|
|
26919
|
-
strokeOpacity:
|
|
26920
|
-
strokeWidth:
|
|
27104
|
+
strokeOpacity: strokeEnabled ? void 0 : 0,
|
|
27105
|
+
strokeWidth: strokeEnabled ? strokeWidth : 0,
|
|
26921
27106
|
xlinkHref: shapeId.link,
|
|
26922
27107
|
clipPath: strokeClipId.urlLink,
|
|
26923
27108
|
}),
|
|
@@ -31205,7 +31390,7 @@ function useParallax(options, ref, visibilityStyle) {
|
|
|
31205
31390
|
const visibility = useMotionValue(adjustPosition && originalPosition.current === null ? 'hidden' : visibilityStyle);
|
|
31206
31391
|
const defaultValue = useMotionValue(0);
|
|
31207
31392
|
useRefEffect(ref, (element) => {
|
|
31208
|
-
if (element === null)
|
|
31393
|
+
if (element === null || !parallaxTransformEnabled)
|
|
31209
31394
|
return;
|
|
31210
31395
|
frame.read(() => {
|
|
31211
31396
|
var _a;
|
|
@@ -31217,8 +31402,12 @@ function useParallax(options, ref, visibilityStyle) {
|
|
|
31217
31402
|
visibility.set(visibilityStyle ?? 'initial');
|
|
31218
31403
|
}
|
|
31219
31404
|
});
|
|
31220
|
-
}, [adjustPosition,]);
|
|
31221
|
-
useOnRouteChange(() =>
|
|
31405
|
+
}, [adjustPosition, parallaxTransformEnabled,]);
|
|
31406
|
+
useOnRouteChange(() => {
|
|
31407
|
+
if (!parallaxTransformEnabled)
|
|
31408
|
+
return;
|
|
31409
|
+
parallaxY.set(0);
|
|
31410
|
+
});
|
|
31222
31411
|
return {
|
|
31223
31412
|
values: {
|
|
31224
31413
|
y: shouldReduceMotion || !parallaxTransformEnabled ? defaultValue : parallaxY,
|
|
@@ -31816,8 +32005,13 @@ function extractFXOptions(props) {
|
|
|
31816
32005
|
},
|
|
31817
32006
|
loop: {},
|
|
31818
32007
|
forwardedProps: {},
|
|
32008
|
+
targetOpacityValue: props.__targetOpacity,
|
|
32009
|
+
withPerspective: props.__perspectiveFX,
|
|
32010
|
+
inSmartComponent: props.__smartComponentFX,
|
|
31819
32011
|
};
|
|
31820
32012
|
for (const key7 in props) {
|
|
32013
|
+
if (key7 === '__targetOpacity' || key7 === '__perspectiveFX' || key7 === '__smartComponentFX')
|
|
32014
|
+
continue;
|
|
31821
32015
|
const strippedKey = stripPrefixFromPrefixedKey(key7);
|
|
31822
32016
|
if (strippedKey) {
|
|
31823
32017
|
for (const group of groupValues) {
|
|
@@ -31876,9 +32070,7 @@ var withFX = (Component17) => react_11.default.forwardRef((props, forwardedRef)
|
|
|
31876
32070
|
ref: forwardedRef,
|
|
31877
32071
|
});
|
|
31878
32072
|
}
|
|
31879
|
-
const { parallax = {}, styleAppear = {}, styleTransform = {}, presence = {}, loop = {}, forwardedProps, } = extractFXOptions(props);
|
|
31880
|
-
const { __targetOpacity: targetOpacityValue, __perspectiveFX: withPerspective, __smartComponentFX: inSmartComponent = false, } = props;
|
|
31881
|
-
const targetOpacity = useMotionValue(targetOpacityValue ?? 1);
|
|
32073
|
+
const { parallax = {}, styleAppear = {}, styleTransform = {}, presence = {}, loop = {}, forwardedProps, targetOpacityValue, withPerspective, inSmartComponent = false, } = extractFXOptions(props);
|
|
31882
32074
|
const observerRef = useObserverRef(forwardedRef);
|
|
31883
32075
|
const { values: presenceEffectValues, style: presenceEffectStyle, } = usePresenceAnimation(presence, observerRef, inSmartComponent, props.style, props[optimizedAppearDataAttribute]);
|
|
31884
32076
|
const { values: parallaxValues, style: parallaxStyle, } = useParallax(parallax, observerRef, (_a = props.style) == null ? void 0 : _a.visibility);
|
|
@@ -31886,16 +32078,10 @@ var withFX = (Component17) => react_11.default.forwardRef((props, forwardedRef)
|
|
|
31886
32078
|
const { values: appearEffectValues, style: scrollAppearStyle, } = useStyleAppearEffect(styleAppear, observerRef);
|
|
31887
32079
|
const { values: loopValues, style: loopStyle, } = useLoop(loop, observerRef);
|
|
31888
32080
|
const fxValues = react_11.default.useMemo(() => {
|
|
32081
|
+
const layerOpacity = new MotionValue(targetOpacityValue ?? 1);
|
|
31889
32082
|
return {
|
|
31890
32083
|
scale: [appearEffectValues.scale, loopValues.scale, presenceEffectValues.scale, transformValues2.scale,],
|
|
31891
|
-
opacity: [
|
|
31892
|
-
appearEffectValues.opacity,
|
|
31893
|
-
loopValues.opacity,
|
|
31894
|
-
presenceEffectValues.opacity,
|
|
31895
|
-
// Ensure that the layers opacity is always represented.
|
|
31896
|
-
targetOpacity,
|
|
31897
|
-
transformValues2.opacity,
|
|
31898
|
-
],
|
|
32084
|
+
opacity: [appearEffectValues.opacity, loopValues.opacity, presenceEffectValues.opacity, layerOpacity, transformValues2.opacity,],
|
|
31899
32085
|
x: [appearEffectValues.x, loopValues.x, presenceEffectValues.x, transformValues2.x,],
|
|
31900
32086
|
y: [appearEffectValues.y, loopValues.y, parallaxValues.y, presenceEffectValues.y, transformValues2.y,],
|
|
31901
32087
|
rotate: [appearEffectValues.rotate, loopValues.rotate, presenceEffectValues.rotate, transformValues2.rotate,],
|
|
@@ -31909,7 +32095,7 @@ var withFX = (Component17) => react_11.default.forwardRef((props, forwardedRef)
|
|
|
31909
32095
|
// value here on purpose.
|
|
31910
32096
|
],
|
|
31911
32097
|
};
|
|
31912
|
-
}, [
|
|
32098
|
+
}, [targetOpacityValue, transformValues2, parallaxValues, appearEffectValues, loopValues, presenceEffectValues,]);
|
|
31913
32099
|
addMotionValueStyle(props.style, fxValues);
|
|
31914
32100
|
const scale2 = useTransform(fxValues.scale, multiply);
|
|
31915
32101
|
const opacity = useTransform(fxValues.opacity, multiply);
|
|
@@ -32986,7 +33172,7 @@ function motionOriginFromFloatingPosition(placement = 'bottom', alignment = 'cen
|
|
|
32986
33172
|
assertNever(placement);
|
|
32987
33173
|
}
|
|
32988
33174
|
}
|
|
32989
|
-
function
|
|
33175
|
+
function domReadGetAncestorInfo(anchorRef) {
|
|
32990
33176
|
var _a;
|
|
32991
33177
|
let el = anchorRef.current;
|
|
32992
33178
|
const info = {
|
|
@@ -33006,12 +33192,11 @@ function getAncestorInfo(anchorRef) {
|
|
|
33006
33192
|
}
|
|
33007
33193
|
return info;
|
|
33008
33194
|
}
|
|
33009
|
-
function
|
|
33010
|
-
|
|
33011
|
-
|
|
33012
|
-
return [startLoop, cancelLoop,];
|
|
33195
|
+
function domReadStartAnimationFrameLoop(onRead) {
|
|
33196
|
+
frame.read(onRead, true);
|
|
33197
|
+
return () => cancelFrame(onRead);
|
|
33013
33198
|
}
|
|
33014
|
-
function
|
|
33199
|
+
function domWriteCreateUpdateSafeArea(safeAreaRef) {
|
|
33015
33200
|
let x = 0;
|
|
33016
33201
|
let y = 0;
|
|
33017
33202
|
return (anchorRect, calculatedRect, placement, event) => {
|
|
@@ -33023,7 +33208,7 @@ function createUpdateSafeArea(safeAreaRef) {
|
|
|
33023
33208
|
Object.assign(safeAreaRef.current.style, floatingPositionSafeAreaStyle(x, y, placement, anchorRect, calculatedRect));
|
|
33024
33209
|
};
|
|
33025
33210
|
}
|
|
33026
|
-
function
|
|
33211
|
+
function domWriteUpdatePosition(floatingPositionRef, position, rect) {
|
|
33027
33212
|
if (!floatingPositionRef.current)
|
|
33028
33213
|
return;
|
|
33029
33214
|
Object.assign(floatingPositionRef.current.style, {
|
|
@@ -33034,7 +33219,11 @@ function updatePosition(floatingPositionRef, position, rect) {
|
|
|
33034
33219
|
top: ((rect == null ? void 0 : rect.y) ?? 0) + (position === 'fixed' ? 0 : safeWindow.scrollY) + 'px',
|
|
33035
33220
|
});
|
|
33036
33221
|
}
|
|
33037
|
-
var FloatingStackingContext = /* @__PURE__ */
|
|
33222
|
+
var FloatingStackingContext = /* @__PURE__ */ (() => {
|
|
33223
|
+
const Context2 = react_11.default.createContext(/* @__PURE__ */ new Set());
|
|
33224
|
+
Context2.displayName = 'FloatingStackingContext';
|
|
33225
|
+
return Context2;
|
|
33226
|
+
})();
|
|
33038
33227
|
function useDismissFloatingLayer(anchorRef, floatingPositionRef, safeAreaRef, { safeArea, onDismiss, }) {
|
|
33039
33228
|
const descendantStackingContext = useConstant2(() => /* @__PURE__ */ new Set());
|
|
33040
33229
|
const ancestorStackingContext = react_11.default.useContext(FloatingStackingContext);
|
|
@@ -33141,70 +33330,98 @@ function Floating({ alignment, placement, safeArea, offsetX, offsetY, anchorRef,
|
|
|
33141
33330
|
react_11.default.useLayoutEffect(() => {
|
|
33142
33331
|
if (!refHasValue(anchorRef) || !contentRef.current || !placement || !alignment)
|
|
33143
33332
|
return;
|
|
33144
|
-
const { position, scrolls, } = getAncestorInfo(anchorRef);
|
|
33145
|
-
const elementRect = contentRef.current.getBoundingClientRect();
|
|
33146
|
-
const initialAnchorRect = anchorRef.current.getBoundingClientRect();
|
|
33147
33333
|
const offset = {
|
|
33148
33334
|
x: offsetX ?? 0,
|
|
33149
33335
|
y: offsetY ?? 0,
|
|
33150
33336
|
};
|
|
33151
|
-
|
|
33152
|
-
|
|
33153
|
-
|
|
33154
|
-
|
|
33155
|
-
|
|
33156
|
-
|
|
33157
|
-
|
|
33158
|
-
height: safeWindow.innerHeight,
|
|
33159
|
-
}
|
|
33160
|
-
: void 0,
|
|
33161
|
-
collisionDetectionPadding,
|
|
33162
|
-
});
|
|
33163
|
-
const [initialSafePlacement, initialCalculatedRect,] = getSafePlacementRect(initialAnchorRect, elementRect);
|
|
33164
|
-
frame.update(() => {
|
|
33165
|
-
updateOrigin(initialSafePlacement);
|
|
33166
|
-
});
|
|
33167
|
-
frame.render(() => {
|
|
33168
|
-
if (!floatingPositionRef.current)
|
|
33169
|
-
return;
|
|
33170
|
-
updatePosition(floatingPositionRef, position, initialCalculatedRect);
|
|
33171
|
-
});
|
|
33172
|
-
const updateSafeArea = createUpdateSafeArea(safeAreaRef);
|
|
33173
|
-
let anchorRect = initialAnchorRect;
|
|
33337
|
+
let getSafePlacementRect;
|
|
33338
|
+
let position;
|
|
33339
|
+
let cleanup;
|
|
33340
|
+
let cleanupHasRun = false;
|
|
33341
|
+
let initialUpdateHasRun = false;
|
|
33342
|
+
let anchorRect;
|
|
33343
|
+
let elementRect;
|
|
33174
33344
|
let safePlacement;
|
|
33175
33345
|
let calculatedRect;
|
|
33346
|
+
let scrolls;
|
|
33176
33347
|
let latestEvent;
|
|
33177
|
-
|
|
33178
|
-
updateOrigin(safePlacement);
|
|
33179
|
-
};
|
|
33348
|
+
let updateSafeArea;
|
|
33180
33349
|
const onRender = () => {
|
|
33181
|
-
|
|
33350
|
+
if (cleanupHasRun)
|
|
33351
|
+
return;
|
|
33352
|
+
domWriteUpdatePosition(floatingPositionRef, position, calculatedRect);
|
|
33182
33353
|
if (safeArea)
|
|
33183
33354
|
updateSafeArea(anchorRect, calculatedRect, safePlacement, latestEvent);
|
|
33184
33355
|
latestEvent = void 0;
|
|
33185
33356
|
};
|
|
33186
|
-
const
|
|
33357
|
+
const initialRender = () => {
|
|
33358
|
+
updateSafeArea = domWriteCreateUpdateSafeArea(safeAreaRef);
|
|
33359
|
+
if (latestEvent) {
|
|
33360
|
+
onRender();
|
|
33361
|
+
}
|
|
33362
|
+
else {
|
|
33363
|
+
domWriteUpdatePosition(floatingPositionRef, position, calculatedRect);
|
|
33364
|
+
}
|
|
33365
|
+
initialUpdateHasRun = true;
|
|
33366
|
+
};
|
|
33367
|
+
const onUpdate = () => {
|
|
33368
|
+
if (cleanupHasRun)
|
|
33369
|
+
return;
|
|
33370
|
+
updateOrigin(safePlacement);
|
|
33371
|
+
};
|
|
33372
|
+
const domReadUpdateSafePlacementAndRect = () => {
|
|
33373
|
+
if (!getSafePlacementRect || cleanupHasRun)
|
|
33374
|
+
return;
|
|
33187
33375
|
anchorRect = anchorRef.current.getBoundingClientRect();
|
|
33188
33376
|
const safePlacementAndRect = getSafePlacementRect(anchorRect, elementRect);
|
|
33189
33377
|
safePlacement = safePlacementAndRect[0];
|
|
33190
33378
|
calculatedRect = safePlacementAndRect[1];
|
|
33191
|
-
frame.update(onUpdate);
|
|
33192
|
-
frame.render(onRender);
|
|
33193
33379
|
};
|
|
33194
|
-
|
|
33195
|
-
|
|
33196
|
-
|
|
33197
|
-
|
|
33198
|
-
|
|
33380
|
+
frame.read(() => {
|
|
33381
|
+
if (cleanupHasRun || !contentRef.current)
|
|
33382
|
+
return;
|
|
33383
|
+
const ancestorInfo = domReadGetAncestorInfo(anchorRef);
|
|
33384
|
+
position = ancestorInfo.position;
|
|
33385
|
+
elementRect = contentRef.current.getBoundingClientRect();
|
|
33386
|
+
getSafePlacementRect = makeGetSafePlacementFloatingPositionRect({
|
|
33387
|
+
placement,
|
|
33388
|
+
alignment,
|
|
33389
|
+
offset,
|
|
33390
|
+
collisionDetectionSize: collisionDetection
|
|
33391
|
+
? {
|
|
33392
|
+
width: safeWindow.innerWidth,
|
|
33393
|
+
height: safeWindow.innerHeight,
|
|
33394
|
+
}
|
|
33395
|
+
: void 0,
|
|
33396
|
+
collisionDetectionPadding,
|
|
33397
|
+
});
|
|
33398
|
+
domReadUpdateSafePlacementAndRect();
|
|
33399
|
+
frame.update(onUpdate);
|
|
33400
|
+
frame.render(initialRender);
|
|
33401
|
+
if (!ancestorInfo.scrolls)
|
|
33402
|
+
return;
|
|
33403
|
+
cleanup = domReadStartAnimationFrameLoop(domReadUpdateSafePlacementAndRect);
|
|
33404
|
+
});
|
|
33405
|
+
if (!safeArea) {
|
|
33406
|
+
return () => {
|
|
33407
|
+
cleanup == null ? void 0 : cleanup();
|
|
33408
|
+
cleanupHasRun = true;
|
|
33409
|
+
};
|
|
33410
|
+
}
|
|
33199
33411
|
const handleMouseMove = (event) => {
|
|
33200
33412
|
latestEvent = event;
|
|
33201
|
-
|
|
33413
|
+
if (!initialUpdateHasRun)
|
|
33414
|
+
return;
|
|
33415
|
+
frame.read(domReadUpdateSafePlacementAndRect);
|
|
33416
|
+
frame.update(onUpdate, false, true);
|
|
33417
|
+
frame.render(onRender, false, true);
|
|
33202
33418
|
};
|
|
33203
33419
|
const anchor = anchorRef.current;
|
|
33204
33420
|
anchor.addEventListener('mousemove', handleMouseMove);
|
|
33205
33421
|
return () => {
|
|
33206
|
-
cancelAnimationFrameLoop == null ? void 0 : cancelAnimationFrameLoop();
|
|
33207
33422
|
anchor.removeEventListener('mousemove', handleMouseMove);
|
|
33423
|
+
cleanup == null ? void 0 : cleanup();
|
|
33424
|
+
cleanupHasRun = true;
|
|
33208
33425
|
};
|
|
33209
33426
|
}, [safeArea, placement, alignment, offsetX, offsetY, anchorRef, collisionDetection, collisionDetectionPadding, updateOrigin,]);
|
|
33210
33427
|
const descendantContext = useDismissFloatingLayer(anchorRef, floatingPositionRef, safeAreaRef, {
|
|
@@ -33867,25 +34084,23 @@ var AnchorLinkTarget = /* @__PURE__ */ ((AnchorLinkTarget2) => {
|
|
|
33867
34084
|
return AnchorLinkTarget2;
|
|
33868
34085
|
})(AnchorLinkTarget || {});
|
|
33869
34086
|
exports.AnchorLinkTarget = AnchorLinkTarget;
|
|
33870
|
-
function propsForLink(href,
|
|
34087
|
+
function propsForLink(href, options) {
|
|
33871
34088
|
const isInternal = isInternalURL(href);
|
|
33872
|
-
const
|
|
33873
|
-
|
|
33874
|
-
|
|
33875
|
-
|
|
33876
|
-
|
|
33877
|
-
|
|
33878
|
-
|
|
33879
|
-
|
|
33880
|
-
|
|
33881
|
-
|
|
33882
|
-
|
|
33883
|
-
|
|
33884
|
-
: {
|
|
33885
|
-
href,
|
|
33886
|
-
target,
|
|
33887
|
-
rel,
|
|
34089
|
+
const props = {
|
|
34090
|
+
href: href === '' || isValidURL(href, isInternal) ? href : `https://${href}`,
|
|
34091
|
+
target: getTargetAttrValue(options == null ? void 0 : options.openInNewTab, isInternal),
|
|
34092
|
+
rel: !isInternal ? combineRels('noopener', options == null ? void 0 : options.rel) : void 0,
|
|
34093
|
+
};
|
|
34094
|
+
if (options == null ? void 0 : options.preserveParams) {
|
|
34095
|
+
props.href = forwardCurrentQueryParams(props.href ?? href);
|
|
34096
|
+
props['data-framer-preserve-params'] = true;
|
|
34097
|
+
}
|
|
34098
|
+
if (options == null ? void 0 : options.trackLinkClick) {
|
|
34099
|
+
props.onClick = () => {
|
|
34100
|
+
void options.trackLinkClick(href);
|
|
33888
34101
|
};
|
|
34102
|
+
}
|
|
34103
|
+
return props;
|
|
33889
34104
|
}
|
|
33890
34105
|
function getTargetAttrValue(openInNewTab, isInternal) {
|
|
33891
34106
|
if (openInNewTab !== void 0) {
|
|
@@ -33893,6 +34108,15 @@ function getTargetAttrValue(openInNewTab, isInternal) {
|
|
|
33893
34108
|
}
|
|
33894
34109
|
return isInternal ? void 0 : '_blank';
|
|
33895
34110
|
}
|
|
34111
|
+
function combineRels(rel, otherRel) {
|
|
34112
|
+
if (rel && !otherRel)
|
|
34113
|
+
return rel;
|
|
34114
|
+
if (!rel && otherRel)
|
|
34115
|
+
return otherRel;
|
|
34116
|
+
if (rel && otherRel)
|
|
34117
|
+
return `${rel} ${otherRel}`;
|
|
34118
|
+
return void 0;
|
|
34119
|
+
}
|
|
33896
34120
|
function linkInfoKey(link) {
|
|
33897
34121
|
var _a, _b;
|
|
33898
34122
|
return `${link.scopeId}:${link.nodeId}:${(_a = link.furthestExternalComponent) == null ? void 0 : _a.scopeId}:${(_b = link.furthestExternalComponent) == null ? void 0 : _b.nodeId}`;
|
|
@@ -34151,15 +34375,15 @@ function createOnClickLinkHandler(router, routeId, href, trackLinkClick, element
|
|
|
34151
34375
|
performNavigation(router, routeId, elementId, combinedPathVariables, smoothScroll, track);
|
|
34152
34376
|
};
|
|
34153
34377
|
}
|
|
34154
|
-
function propsForRoutePath(href,
|
|
34378
|
+
function propsForRoutePath(href, router, currentRoute, linkOptions, implicitPathVariables) {
|
|
34155
34379
|
if (!currentRoute)
|
|
34156
|
-
return propsForLink(href,
|
|
34380
|
+
return propsForLink(href, linkOptions);
|
|
34157
34381
|
const matchedRoute = findMatchingRouteAttributesForResolvedPath(router, href, implicitPathVariables);
|
|
34158
34382
|
if (!matchedRoute)
|
|
34159
|
-
return propsForLink(href,
|
|
34383
|
+
return propsForLink(href, linkOptions);
|
|
34160
34384
|
const { routeId, route, elementId, pathVariables, } = matchedRoute;
|
|
34161
34385
|
if (!route)
|
|
34162
|
-
return propsForLink(href,
|
|
34386
|
+
return propsForLink(href, linkOptions);
|
|
34163
34387
|
const path = getPathForRoute(route, {
|
|
34164
34388
|
// If the link is resolved, we trust that the slugs are resolved.
|
|
34165
34389
|
currentRoutePath: currentRoute.path,
|
|
@@ -34172,16 +34396,16 @@ function propsForRoutePath(href, openInNewTab, router, currentRoute, trackLinkCl
|
|
|
34172
34396
|
// don't preserve query params for bots
|
|
34173
34397
|
siteCanonicalURL: router.siteCanonicalURL,
|
|
34174
34398
|
});
|
|
34175
|
-
const anchorTarget = getTargetAttrValue(openInNewTab, true);
|
|
34399
|
+
const anchorTarget = getTargetAttrValue(linkOptions.openInNewTab, true);
|
|
34176
34400
|
return {
|
|
34177
34401
|
href: path,
|
|
34178
34402
|
target: anchorTarget,
|
|
34179
|
-
onClick: createOnClickLinkHandler(router, routeId, path, trackLinkClick, elementId, pathVariables, smoothScroll),
|
|
34180
|
-
navigate: () => performNavigation(router, routeId, elementId, pathVariables, smoothScroll),
|
|
34403
|
+
onClick: createOnClickLinkHandler(router, routeId, path, linkOptions.trackLinkClick, elementId, pathVariables, linkOptions.smoothScroll),
|
|
34404
|
+
navigate: () => performNavigation(router, routeId, elementId, pathVariables, linkOptions.smoothScroll),
|
|
34181
34405
|
'data-framer-page-link-current': !elementId && currentRoute.id === routeId || void 0,
|
|
34182
34406
|
};
|
|
34183
34407
|
}
|
|
34184
|
-
var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ (0, react_7.forwardRef)(function Link2({ children, href, openInNewTab, smoothScroll, clickTrackingId, nodeId, scopeId, motionChild, ...restProps }, forwardedRef) {
|
|
34408
|
+
var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ (0, react_7.forwardRef)(function Link2({ children, href, openInNewTab, smoothScroll, clickTrackingId, relValues, preserveParams, nodeId, scopeId, motionChild, ...restProps }, forwardedRef) {
|
|
34185
34409
|
const router = useRouter();
|
|
34186
34410
|
const currentRoute = useCurrentRoute();
|
|
34187
34411
|
const implicitPathVariables = useImplicitPathVariables();
|
|
@@ -34200,7 +34424,13 @@ var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ (0, react_7.fo
|
|
|
34200
34424
|
if (!pageLink)
|
|
34201
34425
|
return {};
|
|
34202
34426
|
if (isString(pageLink)) {
|
|
34203
|
-
return propsForRoutePath(pageLink,
|
|
34427
|
+
return propsForRoutePath(pageLink, router, currentRoute, {
|
|
34428
|
+
openInNewTab,
|
|
34429
|
+
trackLinkClick,
|
|
34430
|
+
rel: relValues == null ? void 0 : relValues.join(' '),
|
|
34431
|
+
preserveParams,
|
|
34432
|
+
smoothScroll,
|
|
34433
|
+
}, implicitPathVariables);
|
|
34204
34434
|
}
|
|
34205
34435
|
const { routeId, href: resolvedHref, elementId, pathVariables, } = findMatchingRouteAttributesForWebPageLinkWithSuspense(router, currentRoute, pageLink, activeLocale, implicitPathVariables);
|
|
34206
34436
|
const anchorTarget = getTargetAttrValue(openInNewTab, true);
|
|
@@ -34211,7 +34441,18 @@ var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ (0, react_7.fo
|
|
|
34211
34441
|
navigate: () => performNavigation(router, routeId, elementId, pathVariables, smoothScroll),
|
|
34212
34442
|
'data-framer-page-link-current': currentRoute && linkMatchesRoute(currentRoute, pageLink, implicitPathVariables) || void 0,
|
|
34213
34443
|
};
|
|
34214
|
-
}, [
|
|
34444
|
+
}, [
|
|
34445
|
+
href,
|
|
34446
|
+
router,
|
|
34447
|
+
activeLocale,
|
|
34448
|
+
implicitPathVariables,
|
|
34449
|
+
openInNewTab,
|
|
34450
|
+
currentRoute,
|
|
34451
|
+
smoothScroll,
|
|
34452
|
+
trackLinkClick,
|
|
34453
|
+
relValues,
|
|
34454
|
+
preserveParams,
|
|
34455
|
+
]);
|
|
34215
34456
|
const hasRef = (0, react_6.isValidElement)(children) && 'ref' in children;
|
|
34216
34457
|
const observerRef = useObserverRef(hasRef ? children.ref : void 0);
|
|
34217
34458
|
useRefEffect(observerRef, (node) => {
|
|
@@ -34796,6 +35037,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
34796
35037
|
const scheduleSideEffect = useScheduleRenderSideEffects(dep);
|
|
34797
35038
|
const startNavigation = useNavigationTransition();
|
|
34798
35039
|
const monitorNextPaintAfterRender = useMonitorNextPaintAfterRender('framer-route-change');
|
|
35040
|
+
const isInitialNavigationRef = (0, react_4.useRef)(true);
|
|
34799
35041
|
const currentRouteRef = (0, react_4.useRef)(initialRoute);
|
|
34800
35042
|
const currentPathVariablesRef = (0, react_4.useRef)(initialPathVariables);
|
|
34801
35043
|
const currentLocaleIdRef = (0, react_4.useRef)(initialLocaleId);
|
|
@@ -34849,6 +35091,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
34849
35091
|
return;
|
|
34850
35092
|
const currentStatePaginationInfo = isHistoryState(window.history.state) ? window.history.state.paginationInfo : void 0;
|
|
34851
35093
|
const currentPath = localeResult.path;
|
|
35094
|
+
isInitialNavigationRef.current = false;
|
|
34852
35095
|
currentPathVariablesRef.current = localeResult.pathVariables;
|
|
34853
35096
|
currentLocaleIdRef.current = nextLocale.id;
|
|
34854
35097
|
const updateURL = async (ignorePushStateWrapper = false) => {
|
|
@@ -34880,6 +35123,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
34880
35123
|
monitorNextPaintAfterRender,
|
|
34881
35124
|
]);
|
|
34882
35125
|
const setCurrentRouteId = (0, react_3.useCallback)((routeId, localeId, hash2, pathVariables, isHistoryTransition, nextRender, smoothScroll = false, updateURL) => {
|
|
35126
|
+
isInitialNavigationRef.current = false;
|
|
34883
35127
|
const currentRouteId2 = currentRouteRef.current;
|
|
34884
35128
|
currentRouteRef.current = routeId;
|
|
34885
35129
|
currentPathVariablesRef.current = pathVariables;
|
|
@@ -34977,6 +35221,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
34977
35221
|
const currentRoute = routes[currentRouteId];
|
|
34978
35222
|
const currentRoutePath = currentRoute == null ? void 0 : currentRoute.path;
|
|
34979
35223
|
const pageviewEventData = useSendPageView(currentRoute, currentRouteId, currentPathVariables, collectionUtils, activeLocale);
|
|
35224
|
+
const isInitialNavigation = isInitialNavigationRef.current;
|
|
34980
35225
|
const api = (0, react_4.useMemo)(() => ({
|
|
34981
35226
|
navigate,
|
|
34982
35227
|
getRoute,
|
|
@@ -34987,6 +35232,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
34987
35232
|
preserveQueryParams,
|
|
34988
35233
|
pageviewEventData,
|
|
34989
35234
|
siteCanonicalURL,
|
|
35235
|
+
isInitialNavigation,
|
|
34990
35236
|
}), [
|
|
34991
35237
|
navigate,
|
|
34992
35238
|
getRoute,
|
|
@@ -34997,6 +35243,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
34997
35243
|
preserveQueryParams,
|
|
34998
35244
|
siteCanonicalURL,
|
|
34999
35245
|
pageviewEventData,
|
|
35246
|
+
isInitialNavigation,
|
|
35000
35247
|
]);
|
|
35001
35248
|
if (!currentRoute) {
|
|
35002
35249
|
throw new Error(`Router cannot find route for ${currentRouteId}`);
|
|
@@ -35800,6 +36047,7 @@ var CompatibilityDatabaseCollection = class {
|
|
|
35800
36047
|
assert(definition.type !== 'unknown', 'Invalid definition type');
|
|
35801
36048
|
data2[key7] = {
|
|
35802
36049
|
type: definition.type,
|
|
36050
|
+
// biome-ignore lint/suspicious/noExplicitAny: Existing.
|
|
35803
36051
|
value,
|
|
35804
36052
|
};
|
|
35805
36053
|
}
|
|
@@ -36104,6 +36352,23 @@ function castRichText(value) {
|
|
|
36104
36352
|
}
|
|
36105
36353
|
return null;
|
|
36106
36354
|
}
|
|
36355
|
+
function compareVectorSetItem(left, right) {
|
|
36356
|
+
const leftValue = left.value;
|
|
36357
|
+
const rightValue = right.value;
|
|
36358
|
+
if (leftValue < rightValue)
|
|
36359
|
+
return -1;
|
|
36360
|
+
if (leftValue > rightValue)
|
|
36361
|
+
return 1;
|
|
36362
|
+
return 0;
|
|
36363
|
+
}
|
|
36364
|
+
function castVectorSetItem(value) {
|
|
36365
|
+
switch (value == null ? void 0 : value.type) {
|
|
36366
|
+
case 'vectorsetitem': {
|
|
36367
|
+
return value;
|
|
36368
|
+
}
|
|
36369
|
+
}
|
|
36370
|
+
return null;
|
|
36371
|
+
}
|
|
36107
36372
|
function compareString(left, right, collation11) {
|
|
36108
36373
|
let leftValue = left.value;
|
|
36109
36374
|
let rightValue = right.value;
|
|
@@ -36165,6 +36430,8 @@ var DatabaseValue = {
|
|
|
36165
36430
|
return castRichText(value);
|
|
36166
36431
|
case 'string':
|
|
36167
36432
|
return castString(value);
|
|
36433
|
+
case 'vectorsetitem':
|
|
36434
|
+
return castVectorSetItem(value);
|
|
36168
36435
|
case 'unknown':
|
|
36169
36436
|
return value;
|
|
36170
36437
|
default:
|
|
@@ -36346,6 +36613,8 @@ var DatabaseValue = {
|
|
|
36346
36613
|
return `'${value.value}' /* Date */`;
|
|
36347
36614
|
case 'richtext':
|
|
36348
36615
|
return 'RichText';
|
|
36616
|
+
case 'vectorsetitem':
|
|
36617
|
+
return 'VectorSetItem';
|
|
36349
36618
|
case 'responsiveimage':
|
|
36350
36619
|
return 'ResponsiveImage';
|
|
36351
36620
|
case 'file':
|
|
@@ -36409,6 +36678,10 @@ function compare(left, right, collation11) {
|
|
|
36409
36678
|
assert(left.type === right.type);
|
|
36410
36679
|
return compareRichText(left, right);
|
|
36411
36680
|
}
|
|
36681
|
+
case 'vectorsetitem': {
|
|
36682
|
+
assert(left.type === right.type);
|
|
36683
|
+
return compareVectorSetItem(left, right);
|
|
36684
|
+
}
|
|
36412
36685
|
case 'string': {
|
|
36413
36686
|
assert(left.type === right.type);
|
|
36414
36687
|
return compareString(left, right, collation11);
|
|
@@ -36649,7 +36922,7 @@ function calculateHash(name, ...values) {
|
|
|
36649
36922
|
});
|
|
36650
36923
|
return Hash(`${name}(${hashes.join(', ')})`);
|
|
36651
36924
|
}
|
|
36652
|
-
var
|
|
36925
|
+
var RichTextResolver = class {
|
|
36653
36926
|
constructor(data2, pointer) {
|
|
36654
36927
|
this.data = data2;
|
|
36655
36928
|
this.pointer = pointer;
|
|
@@ -36660,6 +36933,18 @@ var RichText = class {
|
|
|
36660
36933
|
return this.cached;
|
|
36661
36934
|
}
|
|
36662
36935
|
};
|
|
36936
|
+
var VectorSetItemResolver = class {
|
|
36937
|
+
constructor(data2, pointer) {
|
|
36938
|
+
this.data = data2;
|
|
36939
|
+
this.pointer = pointer;
|
|
36940
|
+
(0, chunk_A2PMVMFI_js_1.__publicField)(this, 'cached');
|
|
36941
|
+
}
|
|
36942
|
+
resolve() {
|
|
36943
|
+
assert(this.data.resolveVectorSetItem, 'Can\'t resolve vector set item.');
|
|
36944
|
+
this.cached ??= this.data.resolveVectorSetItem(this.pointer);
|
|
36945
|
+
return this.cached;
|
|
36946
|
+
}
|
|
36947
|
+
};
|
|
36663
36948
|
var VIRTUAL_INDEX_FIELD = 'index';
|
|
36664
36949
|
var Metadata = class extends Set {
|
|
36665
36950
|
merge(other) {
|
|
@@ -36754,7 +37039,14 @@ var FieldMetadata = class {
|
|
|
36754
37039
|
assert(this.collection, 'Rich text field must have a collection');
|
|
36755
37040
|
return {
|
|
36756
37041
|
type: 'richtext',
|
|
36757
|
-
value: new
|
|
37042
|
+
value: new RichTextResolver(this.collection.data, value.value),
|
|
37043
|
+
};
|
|
37044
|
+
}
|
|
37045
|
+
if ((value == null ? void 0 : value.type) === 'vectorsetitem') {
|
|
37046
|
+
assert(this.collection, 'Vector set item field must have a collection');
|
|
37047
|
+
return {
|
|
37048
|
+
type: 'vectorsetitem',
|
|
37049
|
+
value: new VectorSetItemResolver(this.collection.data, value.value),
|
|
36758
37050
|
};
|
|
36759
37051
|
}
|
|
36760
37052
|
return value ?? null;
|
|
@@ -39758,10 +40050,14 @@ var EnforcerResolve = class _EnforcerResolve extends EnforcerNode {
|
|
|
39758
40050
|
for (const tuple of input.tuples) {
|
|
39759
40051
|
for (const field of this.fields) {
|
|
39760
40052
|
const value = tuple.getValue(field);
|
|
39761
|
-
if ((value == null ? void 0 : value.type)
|
|
39762
|
-
|
|
39763
|
-
|
|
39764
|
-
|
|
40053
|
+
if ((value == null ? void 0 : value.type) === 'richtext') {
|
|
40054
|
+
assert(value.value instanceof RichTextResolver, 'Pointer must be wrapped');
|
|
40055
|
+
void value.value.resolve();
|
|
40056
|
+
}
|
|
40057
|
+
else if ((value == null ? void 0 : value.type) === 'vectorsetitem') {
|
|
40058
|
+
assert(value.value instanceof VectorSetItemResolver, 'Pointer must be wrapped');
|
|
40059
|
+
void value.value.resolve();
|
|
40060
|
+
}
|
|
39765
40061
|
}
|
|
39766
40062
|
}
|
|
39767
40063
|
const collectionItems = yield Promise.all(Array.from(collections).map(async (collection) => {
|
|
@@ -40094,7 +40390,11 @@ ${stringifyQuery(query)}`);
|
|
|
40094
40390
|
}
|
|
40095
40391
|
async resolveValue(value) {
|
|
40096
40392
|
if ((value == null ? void 0 : value.type) === 'richtext') {
|
|
40097
|
-
assert(value.value instanceof
|
|
40393
|
+
assert(value.value instanceof RichTextResolver, 'Pointer must be wrapped');
|
|
40394
|
+
return value.value.resolve();
|
|
40395
|
+
}
|
|
40396
|
+
if ((value == null ? void 0 : value.type) === 'vectorsetitem') {
|
|
40397
|
+
assert(value.value instanceof VectorSetItemResolver, 'Pointer must be wrapped');
|
|
40098
40398
|
return value.value.resolve();
|
|
40099
40399
|
}
|
|
40100
40400
|
if ((value == null ? void 0 : value.type) === 'array') {
|
|
@@ -41076,9 +41376,9 @@ function useRunCallbackIfElementIsInView() {
|
|
|
41076
41376
|
queuedMicrotask = true;
|
|
41077
41377
|
queueMicrotask(() => {
|
|
41078
41378
|
var _a;
|
|
41379
|
+
queuedMicrotask = false;
|
|
41079
41380
|
if (!isInViewRef.current)
|
|
41080
41381
|
return;
|
|
41081
|
-
queuedMicrotask = false;
|
|
41082
41382
|
(_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef);
|
|
41083
41383
|
});
|
|
41084
41384
|
};
|
|
@@ -41368,6 +41668,11 @@ function tryToApplyOverride(Component17, override) {
|
|
|
41368
41668
|
function valueWithMirroring(value, mirror) {
|
|
41369
41669
|
return mirror ? wrap(0, 2, value) : value;
|
|
41370
41670
|
}
|
|
41671
|
+
function singleFrame() {
|
|
41672
|
+
return new Promise((resolve) => {
|
|
41673
|
+
frame.postRender(() => resolve());
|
|
41674
|
+
});
|
|
41675
|
+
}
|
|
41371
41676
|
var withV1StrokeFX = (Component17) => (0, react_7.forwardRef)((props, forwardedRef) => {
|
|
41372
41677
|
const { strokeEffectLength, strokeEffectGap, strokeEffectOffset, strokeEffectLoop, strokeEffectTotalLength, strokeEffectLoopType, pathLengthTransition, ...restProps } = props;
|
|
41373
41678
|
const isCanvas = isStaticRenderer();
|
|
@@ -41385,11 +41690,11 @@ var withV1StrokeFX = (Component17) => (0, react_7.forwardRef)((props, forwardedR
|
|
|
41385
41690
|
while (true) {
|
|
41386
41691
|
if (signal.signal.aborted)
|
|
41387
41692
|
break;
|
|
41388
|
-
const mirror = strokeEffectLoopType === 'mirror';
|
|
41693
|
+
const mirror = strokeEffectLoop && strokeEffectLoopType === 'mirror';
|
|
41389
41694
|
const from = valueWithMirroring(index, mirror);
|
|
41390
41695
|
const to = valueWithMirroring(index + 1, mirror);
|
|
41391
|
-
await animate(offset, [from, to,], pathLengthTransition);
|
|
41392
|
-
if (!strokeEffectLoop
|
|
41696
|
+
await Promise.all([animate(offset, [from, to,], pathLengthTransition), singleFrame(),]);
|
|
41697
|
+
if (!strokeEffectLoop)
|
|
41393
41698
|
break;
|
|
41394
41699
|
if (strokeEffectLoop && strokeEffectLoopType === 'repeat')
|
|
41395
41700
|
continue;
|
|
@@ -42566,6 +42871,8 @@ var variantsNameToWeight = {
|
|
|
42566
42871
|
extrabold: 800,
|
|
42567
42872
|
'extrabold-italic': 800,
|
|
42568
42873
|
black: 900,
|
|
42874
|
+
extralight: 100,
|
|
42875
|
+
'extralight-italic': 100,
|
|
42569
42876
|
'black-italic': 900,
|
|
42570
42877
|
'extra-italic': 900,
|
|
42571
42878
|
'extra-italic-bold': 900,
|
|
@@ -42834,7 +43141,7 @@ async function loadFontsWithOpenType(source) {
|
|
|
42834
43141
|
return supportedFonts == null ? void 0 : supportedFonts.default;
|
|
42835
43142
|
}
|
|
42836
43143
|
case 'fontshare': {
|
|
42837
|
-
const supportedFonts = await import('./framer-chunks/fontshare-
|
|
43144
|
+
const supportedFonts = await import('./framer-chunks/fontshare-GSJIWLGZ-3DSFZVD7.js');
|
|
42838
43145
|
return supportedFonts == null ? void 0 : supportedFonts.default;
|
|
42839
43146
|
}
|
|
42840
43147
|
default:
|
|
@@ -42848,7 +43155,7 @@ async function loadFontToOpenTypeFeatures(source) {
|
|
|
42848
43155
|
return features == null ? void 0 : features.default;
|
|
42849
43156
|
}
|
|
42850
43157
|
case 'fontshare': {
|
|
42851
|
-
const features = await import('./framer-chunks/fontshare-
|
|
43158
|
+
const features = await import('./framer-chunks/fontshare-SSHBFVID-JIQZ2OLR.js');
|
|
42852
43159
|
return features == null ? void 0 : features.default;
|
|
42853
43160
|
}
|
|
42854
43161
|
case 'framer': {
|
|
@@ -43373,10 +43680,10 @@ function loadVariationAxes(source) {
|
|
|
43373
43680
|
const axes = (async () => {
|
|
43374
43681
|
switch (source) {
|
|
43375
43682
|
case 'google': {
|
|
43376
|
-
return (await import('./framer-chunks/google-
|
|
43683
|
+
return (await import('./framer-chunks/google-42BCYVR5-QT55MZO3.js')).default;
|
|
43377
43684
|
}
|
|
43378
43685
|
case 'fontshare': {
|
|
43379
|
-
return (await import('./framer-chunks/fontshare-
|
|
43686
|
+
return (await import('./framer-chunks/fontshare-X6MCIXW5-UOB5XTBQ.js')).default;
|
|
43380
43687
|
}
|
|
43381
43688
|
default:
|
|
43382
43689
|
assertNever(source);
|
|
@@ -43558,11 +43865,12 @@ var FontStore = class {
|
|
|
43558
43865
|
if (builtInFontLocator) {
|
|
43559
43866
|
const fontVariant = BuiltInFontSource.parseVariant(builtInFontLocator.variant);
|
|
43560
43867
|
if (isSuccessfullyParsedFontVariant(fontVariant)) {
|
|
43868
|
+
const family = builtInFontLocator.isVariable ? createVariableFontFamilyName(builtInFontLocator.name) : builtInFontLocator.name;
|
|
43561
43869
|
return {
|
|
43562
43870
|
style: fontVariant.style,
|
|
43563
43871
|
weight: fontVariant.weight,
|
|
43564
43872
|
variant: builtInFontLocator.variant,
|
|
43565
|
-
family
|
|
43873
|
+
family,
|
|
43566
43874
|
source: 'builtIn',
|
|
43567
43875
|
category: void 0,
|
|
43568
43876
|
};
|
|
@@ -44333,14 +44641,107 @@ var trimSlugRegExp = /^-+|-+$/gu;
|
|
|
44333
44641
|
function slugify(value) {
|
|
44334
44642
|
return value.toLowerCase().replace(nonSlugCharactersRegExp, '-').replace(trimSlugRegExp, '');
|
|
44335
44643
|
}
|
|
44336
|
-
var
|
|
44337
|
-
|
|
44338
|
-
|
|
44339
|
-
|
|
44340
|
-
|
|
44341
|
-
|
|
44342
|
-
|
|
44343
|
-
|
|
44644
|
+
var frameFromElement = (element) => {
|
|
44645
|
+
const frame2 = Rect.fromRect(element.getBoundingClientRect());
|
|
44646
|
+
frame2.x = frame2.x + safeWindow.scrollX;
|
|
44647
|
+
frame2.y = frame2.y + safeWindow.scrollY;
|
|
44648
|
+
return frame2;
|
|
44649
|
+
};
|
|
44650
|
+
exports.frameFromElement = frameFromElement;
|
|
44651
|
+
var frameFromElements = (elements) => {
|
|
44652
|
+
return Rect.merge(...elements.map(frameFromElement));
|
|
44653
|
+
};
|
|
44654
|
+
exports.frameFromElements = frameFromElements;
|
|
44655
|
+
var convertToPageFrame = (frame2, element) => {
|
|
44656
|
+
const point2 = convertToPagePoint(frame2, element);
|
|
44657
|
+
return {
|
|
44658
|
+
x: point2.x,
|
|
44659
|
+
y: point2.y,
|
|
44660
|
+
width: frame2.width,
|
|
44661
|
+
height: frame2.height,
|
|
44662
|
+
};
|
|
44663
|
+
};
|
|
44664
|
+
var convertFromPageFrame = (frame2, element) => {
|
|
44665
|
+
const point2 = convertFromPagePoint(frame2, element);
|
|
44666
|
+
return {
|
|
44667
|
+
x: point2.x,
|
|
44668
|
+
y: point2.y,
|
|
44669
|
+
width: frame2.width,
|
|
44670
|
+
height: frame2.height,
|
|
44671
|
+
};
|
|
44672
|
+
};
|
|
44673
|
+
var getPageFrame = (element) => {
|
|
44674
|
+
const rect = element.getBoundingClientRect();
|
|
44675
|
+
return {
|
|
44676
|
+
x: rect.left + safeWindow.scrollX,
|
|
44677
|
+
y: rect.top + safeWindow.scrollY,
|
|
44678
|
+
width: rect.width,
|
|
44679
|
+
height: rect.height,
|
|
44680
|
+
};
|
|
44681
|
+
};
|
|
44682
|
+
var fromEventForPage = (event) => {
|
|
44683
|
+
return {
|
|
44684
|
+
x: event.pageX,
|
|
44685
|
+
y: event.pageY,
|
|
44686
|
+
};
|
|
44687
|
+
};
|
|
44688
|
+
var fromEventForClient = (event) => {
|
|
44689
|
+
return {
|
|
44690
|
+
x: event.clientX,
|
|
44691
|
+
y: event.clientY,
|
|
44692
|
+
};
|
|
44693
|
+
};
|
|
44694
|
+
var convertToPagePoint = (point2, element) => {
|
|
44695
|
+
const frame2 = getPageFrame(element);
|
|
44696
|
+
return {
|
|
44697
|
+
x: point2.x + frame2.x,
|
|
44698
|
+
y: point2.y + frame2.y,
|
|
44699
|
+
};
|
|
44700
|
+
};
|
|
44701
|
+
var convertFromPagePoint = (point2, element) => {
|
|
44702
|
+
const frame2 = getPageFrame(element);
|
|
44703
|
+
return {
|
|
44704
|
+
x: point2.x - frame2.x,
|
|
44705
|
+
y: point2.y - frame2.y,
|
|
44706
|
+
};
|
|
44707
|
+
};
|
|
44708
|
+
var dispatchKeyDownEvent = (keyCode, options = {}) => {
|
|
44709
|
+
const keyboardEvent = new KeyboardEvent('keydown', {
|
|
44710
|
+
bubbles: true,
|
|
44711
|
+
keyCode,
|
|
44712
|
+
...options,
|
|
44713
|
+
});
|
|
44714
|
+
const activeElement = document.activeElement;
|
|
44715
|
+
if (activeElement) {
|
|
44716
|
+
activeElement.dispatchEvent(keyboardEvent);
|
|
44717
|
+
}
|
|
44718
|
+
};
|
|
44719
|
+
exports.dispatchKeyDownEvent = dispatchKeyDownEvent;
|
|
44720
|
+
var DOM = {
|
|
44721
|
+
frameFromElement,
|
|
44722
|
+
frameFromElements,
|
|
44723
|
+
convertToPageFrame,
|
|
44724
|
+
convertFromPageFrame,
|
|
44725
|
+
getPageFrame,
|
|
44726
|
+
fromEventForPage,
|
|
44727
|
+
fromEventForClient,
|
|
44728
|
+
convertToPagePoint,
|
|
44729
|
+
convertFromPagePoint,
|
|
44730
|
+
};
|
|
44731
|
+
exports.DOM = DOM;
|
|
44732
|
+
var parser;
|
|
44733
|
+
var supportsNativeParseHTML = /* @__PURE__ */ (() =>
|
|
44734
|
+
// Firefox has rare-random issues with the native parser: https://framer-team.slack.com/archives/C01B14R6E22/p1724159313153969
|
|
44735
|
+
!isFirefox() && typeof Document !== 'undefined' && typeof Document.parseHTMLUnsafe === 'function')();
|
|
44736
|
+
function domParser(html, type) {
|
|
44737
|
+
if (supportsNativeParseHTML && !type)
|
|
44738
|
+
return Document.parseHTMLUnsafe(html);
|
|
44739
|
+
parser ??= new DOMParser();
|
|
44740
|
+
return parser.parseFromString(html, type ?? 'text/html');
|
|
44741
|
+
}
|
|
44742
|
+
function escapeHTML(value) {
|
|
44743
|
+
return value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll('\'', ''');
|
|
44744
|
+
}
|
|
44344
44745
|
var regex = /(<([a-z]+)(?:\s+(?!href[\s=])[^=\s]+=(?:'[^']*'|"[^"]*"))*)(?:(\s+href\s*=)(?:'([^']*)'|"([^"]*)"))?((?:\s+[^=\s]+=(?:'[^']*'|"[^"]*"))*>)/gi;
|
|
44345
44746
|
function replaceFramerPageLinks(rawHTML, getRoute, currentRoute, implicitPathVariables) {
|
|
44346
44747
|
return rawHTML.replace(regex, (original, pre1, tag, pre2, value1, value2, post) => {
|
|
@@ -44385,18 +44786,6 @@ function replaceFramerPageLinks(rawHTML, getRoute, currentRoute, implicitPathVar
|
|
|
44385
44786
|
function isShallowEqualArray(a, b) {
|
|
44386
44787
|
return a.length === b.length && a.every((v, i) => v === b[i]);
|
|
44387
44788
|
}
|
|
44388
|
-
var htmlEscapes = {
|
|
44389
|
-
'&': '&',
|
|
44390
|
-
'<': '<',
|
|
44391
|
-
'>': '>',
|
|
44392
|
-
'"': '"',
|
|
44393
|
-
'\'': ''',
|
|
44394
|
-
};
|
|
44395
|
-
var reUnescapedHtml = /[&<>"']/gu;
|
|
44396
|
-
var reHasUnescapedHtml = /* @__PURE__ */ (() => new RegExp(reUnescapedHtml.source))();
|
|
44397
|
-
function escapeHTML2(str) {
|
|
44398
|
-
return str && reHasUnescapedHtml.test(str) ? str.replace(reUnescapedHtml, (chr) => htmlEscapes[chr] ?? '') : str || '';
|
|
44399
|
-
}
|
|
44400
44789
|
var deprecatedRichTextPlaceholder = '{{ text-placeholder }}';
|
|
44401
44790
|
var richTextWrapperClassName = 'rich-text-wrapper';
|
|
44402
44791
|
var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props, forwardedRef) {
|
|
@@ -44421,14 +44810,14 @@ var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props,
|
|
|
44421
44810
|
}
|
|
44422
44811
|
let innerHTML = '';
|
|
44423
44812
|
if (textOrOverride) {
|
|
44424
|
-
const escapedText =
|
|
44813
|
+
const escapedText = escapeHTML(textOrOverride);
|
|
44425
44814
|
innerHTML = __htmlStructure ? __htmlStructure.replace(deprecatedRichTextPlaceholder, escapedText) : `<p>${escapedText}</p>`;
|
|
44426
44815
|
}
|
|
44427
44816
|
else if (html) {
|
|
44428
44817
|
innerHTML = html;
|
|
44429
44818
|
}
|
|
44430
44819
|
else if (textFromDesign) {
|
|
44431
|
-
const escapedText =
|
|
44820
|
+
const escapedText = escapeHTML(textFromDesign);
|
|
44432
44821
|
innerHTML = __htmlStructure ? __htmlStructure.replace(deprecatedRichTextPlaceholder, escapedText) : `<p>${escapedText}</p>`;
|
|
44433
44822
|
}
|
|
44434
44823
|
else if (htmlFromDesign) {
|
|
@@ -44992,13 +45381,21 @@ function createLineGroups(elements) {
|
|
|
44992
45381
|
groups2.push(currentGroup);
|
|
44993
45382
|
return groups2;
|
|
44994
45383
|
}
|
|
44995
|
-
var
|
|
45384
|
+
var BaseSVG = /* @__PURE__ */ (0, react_7.forwardRef)(function BaseSVG2(props, forwardedRef) {
|
|
44996
45385
|
return (
|
|
44997
45386
|
// biome-ignore lint/a11y/noSvgWithoutTitle: FIXME: FitText might be inaccessible to screen readers because it’s wrapped in an svg
|
|
44998
45387
|
/* @__PURE__ */
|
|
44999
|
-
(0, jsx_runtime_1.jsx)(
|
|
45000
|
-
|
|
45388
|
+
(0, jsx_runtime_1.jsx)('svg', {
|
|
45389
|
+
...props,
|
|
45390
|
+
ref: forwardedRef,
|
|
45391
|
+
children: props.children,
|
|
45392
|
+
}));
|
|
45393
|
+
});
|
|
45394
|
+
var MotionSVG = /* @__PURE__ */ motion.create(BaseSVG);
|
|
45395
|
+
var FitText = /* @__PURE__ */ (0, react_7.forwardRef)(function FitText2({ viewBoxScale, viewBox, children, ...props }, forwardedRef) {
|
|
45396
|
+
return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(MotionSVG, {
|
|
45001
45397
|
...props,
|
|
45398
|
+
ref: forwardedRef,
|
|
45002
45399
|
viewBox,
|
|
45003
45400
|
children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(motion.foreignObject, {
|
|
45004
45401
|
width: '100%',
|
|
@@ -45011,16 +45408,18 @@ var FitText = /* @__PURE__ */ (0, react_7.forwardRef)(({ viewBoxScale, viewBox,
|
|
|
45011
45408
|
},
|
|
45012
45409
|
children,
|
|
45013
45410
|
}),
|
|
45014
|
-
})
|
|
45411
|
+
});
|
|
45015
45412
|
});
|
|
45016
|
-
var
|
|
45017
|
-
|
|
45413
|
+
var defaultFonts = [];
|
|
45414
|
+
var richTextContainerComponentType = 'RichTextContainer';
|
|
45415
|
+
var RichTextContainer = /* @__PURE__ */ (0, react_7.forwardRef)(function RichTextContainer2(props, forwardedRef) {
|
|
45416
|
+
const { __fromCanvasComponent = false, _forwardedOverrideId, _forwardedOverrides, _usesDOMRect, anchorLinkOffsetY, as: _as, bottom, center, children, environment: environment2 = RenderTarget.current, fonts = defaultFonts, height, isEditable = false, left, name, opacity, positionSticky, positionStickyBottom, positionStickyLeft, positionStickyRight, positionStickyTop, right, rotation = 0, style: style2, _initialStyle, stylesPresetsClassNames, text: plainText, top, verticalAlignment = 'top', visible = true, width, withExternalLayout = false, viewBox, viewBoxScale = 1, effect, ...rest } = props;
|
|
45018
45417
|
const parentSize = useParentSize();
|
|
45019
45418
|
const isOnCanvas = useIsOnFramerCanvas();
|
|
45020
45419
|
const inCodeComponent = (0, react_3.useContext)(ComponentContainerContext);
|
|
45021
45420
|
const layoutId = useLayoutId2(props);
|
|
45022
45421
|
const fallbackRef = (0, react_4.useRef)(null);
|
|
45023
|
-
const containerRef =
|
|
45422
|
+
const containerRef = forwardedRef ?? fallbackRef;
|
|
45024
45423
|
useMeasureLayout(props, containerRef);
|
|
45025
45424
|
useLoadFonts(fonts, __fromCanvasComponent, containerRef);
|
|
45026
45425
|
(0, react_5.useInsertionEffect)(() => {
|
|
@@ -45089,6 +45488,7 @@ var RichTextContainer = /* @__PURE__ */ (0, react_7.forwardRef)(function RichTex
|
|
|
45089
45488
|
rest.layout = 'preserve-aspect';
|
|
45090
45489
|
}
|
|
45091
45490
|
const Component17 = htmlElementAsMotionComponent(props.as);
|
|
45491
|
+
const dataFramerName = rest['data-framer-name'] ?? name;
|
|
45092
45492
|
if (isString(props.viewBox)) {
|
|
45093
45493
|
if (props.as !== void 0) {
|
|
45094
45494
|
return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component17, {
|
|
@@ -45097,8 +45497,8 @@ var RichTextContainer = /* @__PURE__ */ (0, react_7.forwardRef)(function RichTex
|
|
|
45097
45497
|
style: containerStyle,
|
|
45098
45498
|
layoutId,
|
|
45099
45499
|
transformTemplate: template,
|
|
45100
|
-
'data-framer-name':
|
|
45101
|
-
'data-framer-component-type':
|
|
45500
|
+
'data-framer-name': dataFramerName,
|
|
45501
|
+
'data-framer-component-type': richTextContainerComponentType,
|
|
45102
45502
|
children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(FitText, {
|
|
45103
45503
|
viewBox,
|
|
45104
45504
|
viewBoxScale,
|
|
@@ -45119,8 +45519,8 @@ var RichTextContainer = /* @__PURE__ */ (0, react_7.forwardRef)(function RichTex
|
|
|
45119
45519
|
viewBox,
|
|
45120
45520
|
viewBoxScale,
|
|
45121
45521
|
transformTemplate: template,
|
|
45122
|
-
'data-framer-name':
|
|
45123
|
-
'data-framer-component-type':
|
|
45522
|
+
'data-framer-name': dataFramerName,
|
|
45523
|
+
'data-framer-component-type': richTextContainerComponentType,
|
|
45124
45524
|
children: processedChildren,
|
|
45125
45525
|
});
|
|
45126
45526
|
}
|
|
@@ -45131,8 +45531,8 @@ var RichTextContainer = /* @__PURE__ */ (0, react_7.forwardRef)(function RichTex
|
|
|
45131
45531
|
style: containerStyle,
|
|
45132
45532
|
layoutId,
|
|
45133
45533
|
transformTemplate: template,
|
|
45134
|
-
'data-framer-name':
|
|
45135
|
-
'data-framer-component-type':
|
|
45534
|
+
'data-framer-name': dataFramerName,
|
|
45535
|
+
'data-framer-component-type': richTextContainerComponentType,
|
|
45136
45536
|
children: processedChildren,
|
|
45137
45537
|
});
|
|
45138
45538
|
});
|
|
@@ -45208,7 +45608,7 @@ function extractTextFromReactNode(node) {
|
|
|
45208
45608
|
}
|
|
45209
45609
|
return '';
|
|
45210
45610
|
}
|
|
45211
|
-
var
|
|
45611
|
+
var RichText = /* @__PURE__ */ (0, react_7.forwardRef)(function RichText2({ children, html, htmlFromDesign, ...props }, forwardedRef) {
|
|
45212
45612
|
const content = html || children || htmlFromDesign;
|
|
45213
45613
|
if (isString(content)) {
|
|
45214
45614
|
if (!props.stylesPresetsClassName && isObject2(props.stylesPresetsClassNames)) {
|
|
@@ -45221,7 +45621,7 @@ var RichText2 = /* @__PURE__ */ (0, react_7.forwardRef)(function RichText3({ chi
|
|
|
45221
45621
|
return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(DeprecatedRichText, {
|
|
45222
45622
|
...props,
|
|
45223
45623
|
...contentProp,
|
|
45224
|
-
ref,
|
|
45624
|
+
ref: forwardedRef,
|
|
45225
45625
|
});
|
|
45226
45626
|
}
|
|
45227
45627
|
if (!props.stylesPresetsClassNames && isString(props.stylesPresetsClassName)) {
|
|
@@ -45241,11 +45641,11 @@ var RichText2 = /* @__PURE__ */ (0, react_7.forwardRef)(function RichText3({ chi
|
|
|
45241
45641
|
}
|
|
45242
45642
|
return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(RichTextContainer, {
|
|
45243
45643
|
...props,
|
|
45244
|
-
ref,
|
|
45644
|
+
ref: forwardedRef,
|
|
45245
45645
|
children: (0, react_6.isValidElement)(content) ? content : void 0,
|
|
45246
45646
|
});
|
|
45247
45647
|
});
|
|
45248
|
-
exports.RichText =
|
|
45648
|
+
exports.RichText = RichText;
|
|
45249
45649
|
function linearGradientLine(angle) {
|
|
45250
45650
|
var _a, _b;
|
|
45251
45651
|
const rad = angle * Math.PI / 180;
|
|
@@ -45448,104 +45848,6 @@ var ImagePatternElement = ({ id: id3, path, transform: transform2, repeat, width
|
|
|
45448
45848
|
}, href),
|
|
45449
45849
|
});
|
|
45450
45850
|
};
|
|
45451
|
-
var frameFromElement = (element) => {
|
|
45452
|
-
const frame2 = Rect.fromRect(element.getBoundingClientRect());
|
|
45453
|
-
frame2.x = frame2.x + safeWindow.scrollX;
|
|
45454
|
-
frame2.y = frame2.y + safeWindow.scrollY;
|
|
45455
|
-
return frame2;
|
|
45456
|
-
};
|
|
45457
|
-
exports.frameFromElement = frameFromElement;
|
|
45458
|
-
var frameFromElements = (elements) => {
|
|
45459
|
-
return Rect.merge(...elements.map(frameFromElement));
|
|
45460
|
-
};
|
|
45461
|
-
exports.frameFromElements = frameFromElements;
|
|
45462
|
-
var convertToPageFrame = (frame2, element) => {
|
|
45463
|
-
const point2 = convertToPagePoint(frame2, element);
|
|
45464
|
-
return {
|
|
45465
|
-
x: point2.x,
|
|
45466
|
-
y: point2.y,
|
|
45467
|
-
width: frame2.width,
|
|
45468
|
-
height: frame2.height,
|
|
45469
|
-
};
|
|
45470
|
-
};
|
|
45471
|
-
var convertFromPageFrame = (frame2, element) => {
|
|
45472
|
-
const point2 = convertFromPagePoint(frame2, element);
|
|
45473
|
-
return {
|
|
45474
|
-
x: point2.x,
|
|
45475
|
-
y: point2.y,
|
|
45476
|
-
width: frame2.width,
|
|
45477
|
-
height: frame2.height,
|
|
45478
|
-
};
|
|
45479
|
-
};
|
|
45480
|
-
var getPageFrame = (element) => {
|
|
45481
|
-
const rect = element.getBoundingClientRect();
|
|
45482
|
-
return {
|
|
45483
|
-
x: rect.left + safeWindow.scrollX,
|
|
45484
|
-
y: rect.top + safeWindow.scrollY,
|
|
45485
|
-
width: rect.width,
|
|
45486
|
-
height: rect.height,
|
|
45487
|
-
};
|
|
45488
|
-
};
|
|
45489
|
-
var fromEventForPage = (event) => {
|
|
45490
|
-
return {
|
|
45491
|
-
x: event.pageX,
|
|
45492
|
-
y: event.pageY,
|
|
45493
|
-
};
|
|
45494
|
-
};
|
|
45495
|
-
var fromEventForClient = (event) => {
|
|
45496
|
-
return {
|
|
45497
|
-
x: event.clientX,
|
|
45498
|
-
y: event.clientY,
|
|
45499
|
-
};
|
|
45500
|
-
};
|
|
45501
|
-
var convertToPagePoint = (point2, element) => {
|
|
45502
|
-
const frame2 = getPageFrame(element);
|
|
45503
|
-
return {
|
|
45504
|
-
x: point2.x + frame2.x,
|
|
45505
|
-
y: point2.y + frame2.y,
|
|
45506
|
-
};
|
|
45507
|
-
};
|
|
45508
|
-
var convertFromPagePoint = (point2, element) => {
|
|
45509
|
-
const frame2 = getPageFrame(element);
|
|
45510
|
-
return {
|
|
45511
|
-
x: point2.x - frame2.x,
|
|
45512
|
-
y: point2.y - frame2.y,
|
|
45513
|
-
};
|
|
45514
|
-
};
|
|
45515
|
-
var dispatchKeyDownEvent = (keyCode, options = {}) => {
|
|
45516
|
-
const keyboardEvent = new KeyboardEvent('keydown', {
|
|
45517
|
-
bubbles: true,
|
|
45518
|
-
keyCode,
|
|
45519
|
-
...options,
|
|
45520
|
-
});
|
|
45521
|
-
const activeElement = document.activeElement;
|
|
45522
|
-
if (activeElement) {
|
|
45523
|
-
activeElement.dispatchEvent(keyboardEvent);
|
|
45524
|
-
}
|
|
45525
|
-
};
|
|
45526
|
-
exports.dispatchKeyDownEvent = dispatchKeyDownEvent;
|
|
45527
|
-
var DOM = {
|
|
45528
|
-
frameFromElement,
|
|
45529
|
-
frameFromElements,
|
|
45530
|
-
convertToPageFrame,
|
|
45531
|
-
convertFromPageFrame,
|
|
45532
|
-
getPageFrame,
|
|
45533
|
-
fromEventForPage,
|
|
45534
|
-
fromEventForClient,
|
|
45535
|
-
convertToPagePoint,
|
|
45536
|
-
convertFromPagePoint,
|
|
45537
|
-
};
|
|
45538
|
-
exports.DOM = DOM;
|
|
45539
|
-
var parser;
|
|
45540
|
-
var supportsNativeParseHTML = /* @__PURE__ */ (() =>
|
|
45541
|
-
// Firefox has rare-random issues with the native parser: https://framer-team.slack.com/archives/C01B14R6E22/p1724159313153969
|
|
45542
|
-
!isFirefox() && typeof Document !== 'undefined' && typeof Document.parseHTMLUnsafe === 'function')();
|
|
45543
|
-
function domParser(html, type) {
|
|
45544
|
-
if (supportsNativeParseHTML && !type)
|
|
45545
|
-
return Document.parseHTMLUnsafe(html);
|
|
45546
|
-
parser ??= new DOMParser();
|
|
45547
|
-
return parser.parseFromString(html, type ?? 'text/html');
|
|
45548
|
-
}
|
|
45549
45851
|
var useDOM = /* @__PURE__ */ isBrowser2();
|
|
45550
45852
|
var SharedSVGEntry = class {
|
|
45551
45853
|
constructor(id3, svg, innerHTML, viewBox, count = 0) {
|
|
@@ -46908,7 +47210,7 @@ var Vector = /* @__PURE__ */ (() => {
|
|
|
46908
47210
|
return _a = class extends Layer {
|
|
46909
47211
|
render() {
|
|
46910
47212
|
countNodeRender();
|
|
46911
|
-
const { opacity, calculatedPath, calculatedPathBoundingBox, d, insideStroke, strokeEnabled, strokeClipId, strokeWidth, idAttribute, shadows,
|
|
47213
|
+
const { opacity, calculatedPath, calculatedPathBoundingBox, d, insideStroke, strokeEnabled, strokeClipId, strokeWidth, idAttribute, shadows, name, includeTransform, isRootVectorNode, rotation, id: id3, lineCap, lineJoin, strokeColor, strokeMiterLimit, strokeDashArray, strokeDashOffset, fill, variants, transition, fillOpacity, visible, x, y, width, height, } = this.props;
|
|
46912
47214
|
if (!visible)
|
|
46913
47215
|
return null;
|
|
46914
47216
|
if (!id3 || !strokeClipId)
|
|
@@ -47007,7 +47309,7 @@ var Vector = /* @__PURE__ */ (() => {
|
|
|
47007
47309
|
// Shadow filter uses 'objectBoundingBox' as filter units, so calculations should be
|
|
47008
47310
|
// relative to the referenced object itself (path), instead of the node rect, which
|
|
47009
47311
|
// can be larger than the path bounding box.
|
|
47010
|
-
calculatedPathBoundingBox, internalShapeId,
|
|
47312
|
+
calculatedPathBoundingBox, internalShapeId, Boolean(fill), strokeEnabled, strokeWidth, internalStrokeClipId, svgStrokeAttributes);
|
|
47011
47313
|
const currentName = target === RenderTarget.preview ? name || void 0 : void 0;
|
|
47012
47314
|
if (shadow.insetElement !== null || shadow.outsetElement !== null || insideStroke) {
|
|
47013
47315
|
pathAttributes.id = internalShapeId.id;
|
|
@@ -47578,8 +47880,8 @@ var package_default = {
|
|
|
47578
47880
|
scripts: {
|
|
47579
47881
|
coverage: 'yarn :jest --coverage',
|
|
47580
47882
|
lint: 'yarn :eslint ./src --ext .ts,.tsx --format codeframe --quiet --cache',
|
|
47581
|
-
'lint:ci': 'yarn
|
|
47582
|
-
'lint:fix': 'yarn lint --fix
|
|
47883
|
+
'lint:ci': 'yarn lint --cache-strategy content --cache-location $HOME/.cache/eslint/framer-library',
|
|
47884
|
+
'lint:fix': 'yarn lint --fix',
|
|
47583
47885
|
test: 'yarn :jest',
|
|
47584
47886
|
watch: 'yarn :jest --watch',
|
|
47585
47887
|
postinstall: 'node postinstall.cjs',
|