@homebound/beam 3.107.0 → 3.108.1
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/index.cjs +49 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +79 -59
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -7562,6 +7562,7 @@ declare function AiLoader<X extends Only<Xss<Margin>, X>>(props: AiLoaderProps<X
|
|
|
7562
7562
|
type AiLoadingPanelProps = {
|
|
7563
7563
|
title?: string;
|
|
7564
7564
|
message?: ReactNode;
|
|
7565
|
+
omitBg?: boolean;
|
|
7565
7566
|
};
|
|
7566
7567
|
/**
|
|
7567
7568
|
* Tells the user AI work is running, and that they're free to go do something else.
|
|
@@ -7576,8 +7577,6 @@ type AiPanelProps = {
|
|
|
7576
7577
|
/** Background padding. `lg` = 24 all around; `sm` = 24 horizontal, 16 vertical. */
|
|
7577
7578
|
padding?: AiPanelPadding;
|
|
7578
7579
|
children?: ReactNode;
|
|
7579
|
-
} & AriaAttributes & {
|
|
7580
|
-
role?: AriaRole;
|
|
7581
7580
|
};
|
|
7582
7581
|
/**
|
|
7583
7582
|
* Escape hatch for one-off AI chrome — prefer a pre-composed component. See {@link AiBanner}, {@link AiLoadingPanel}, {@link AiSlimBanner}, or `aiMode` on {@link FormSectionLayout} / {@link StepperLayout} / {@link FocusedFormLayout} / {@link Modal}.
|
|
@@ -7590,6 +7589,8 @@ type AiCardProps = {
|
|
|
7590
7589
|
/** Logo height and logo-to-card gap. */
|
|
7591
7590
|
size?: AiCardSize;
|
|
7592
7591
|
children?: ReactNode;
|
|
7592
|
+
} & AriaAttributes & {
|
|
7593
|
+
role?: AriaRole;
|
|
7593
7594
|
};
|
|
7594
7595
|
/**
|
|
7595
7596
|
* Escape hatch for one-off AI chrome — prefer a pre-composed component. See {@link AiBanner}, {@link AiLoadingPanel}, {@link AiSlimBanner}, or `aiMode` on {@link FormSectionLayout} / {@link StepperLayout} / {@link FocusedFormLayout} / {@link Modal}.
|
|
@@ -7917,6 +7918,8 @@ type DnDGridProps = {
|
|
|
7917
7918
|
gridStyles?: GridStyles;
|
|
7918
7919
|
/** Defines the styling for the GridItem that is actively being moved */
|
|
7919
7920
|
activeItemStyles?: Properties;
|
|
7921
|
+
/** Restrict drag movement to one axis. Omit to allow free 2D movement. */
|
|
7922
|
+
lockAxis?: "x" | "y";
|
|
7920
7923
|
/** Returns the new order of the GridItems. */
|
|
7921
7924
|
onReorder: (items: string[]) => void;
|
|
7922
7925
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -7562,6 +7562,7 @@ declare function AiLoader<X extends Only<Xss<Margin>, X>>(props: AiLoaderProps<X
|
|
|
7562
7562
|
type AiLoadingPanelProps = {
|
|
7563
7563
|
title?: string;
|
|
7564
7564
|
message?: ReactNode;
|
|
7565
|
+
omitBg?: boolean;
|
|
7565
7566
|
};
|
|
7566
7567
|
/**
|
|
7567
7568
|
* Tells the user AI work is running, and that they're free to go do something else.
|
|
@@ -7576,8 +7577,6 @@ type AiPanelProps = {
|
|
|
7576
7577
|
/** Background padding. `lg` = 24 all around; `sm` = 24 horizontal, 16 vertical. */
|
|
7577
7578
|
padding?: AiPanelPadding;
|
|
7578
7579
|
children?: ReactNode;
|
|
7579
|
-
} & AriaAttributes & {
|
|
7580
|
-
role?: AriaRole;
|
|
7581
7580
|
};
|
|
7582
7581
|
/**
|
|
7583
7582
|
* Escape hatch for one-off AI chrome — prefer a pre-composed component. See {@link AiBanner}, {@link AiLoadingPanel}, {@link AiSlimBanner}, or `aiMode` on {@link FormSectionLayout} / {@link StepperLayout} / {@link FocusedFormLayout} / {@link Modal}.
|
|
@@ -7590,6 +7589,8 @@ type AiCardProps = {
|
|
|
7590
7589
|
/** Logo height and logo-to-card gap. */
|
|
7591
7590
|
size?: AiCardSize;
|
|
7592
7591
|
children?: ReactNode;
|
|
7592
|
+
} & AriaAttributes & {
|
|
7593
|
+
role?: AriaRole;
|
|
7593
7594
|
};
|
|
7594
7595
|
/**
|
|
7595
7596
|
* Escape hatch for one-off AI chrome — prefer a pre-composed component. See {@link AiBanner}, {@link AiLoadingPanel}, {@link AiSlimBanner}, or `aiMode` on {@link FormSectionLayout} / {@link StepperLayout} / {@link FocusedFormLayout} / {@link Modal}.
|
|
@@ -7917,6 +7918,8 @@ type DnDGridProps = {
|
|
|
7917
7918
|
gridStyles?: GridStyles;
|
|
7918
7919
|
/** Defines the styling for the GridItem that is actively being moved */
|
|
7919
7920
|
activeItemStyles?: Properties;
|
|
7921
|
+
/** Restrict drag movement to one axis. Omit to allow free 2D movement. */
|
|
7922
|
+
lockAxis?: "x" | "y";
|
|
7920
7923
|
/** Returns the new order of the GridItems. */
|
|
7921
7924
|
onReorder: (items: string[]) => void;
|
|
7922
7925
|
};
|
package/dist/index.js
CHANGED
|
@@ -19033,7 +19033,7 @@ function AiCard(props) {
|
|
|
19033
19033
|
"--backgroundColor": "var(--b-surface)"
|
|
19034
19034
|
}],
|
|
19035
19035
|
boxShadow: "bshBasic"
|
|
19036
|
-
}), ...tid.card, children })
|
|
19036
|
+
}), ...others, ...tid.card, children })
|
|
19037
19037
|
] });
|
|
19038
19038
|
}
|
|
19039
19039
|
var aiBackgroundPaddingCss = {
|
|
@@ -19219,13 +19219,14 @@ import { jsx as jsx113, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
|
19219
19219
|
function AiLoadingPanel(props) {
|
|
19220
19220
|
const {
|
|
19221
19221
|
title = "Importing Details...",
|
|
19222
|
-
message = defaultMessage
|
|
19222
|
+
message = defaultMessage,
|
|
19223
|
+
omitBg = false
|
|
19223
19224
|
} = props;
|
|
19224
19225
|
const tid = useTestIds(props, "aiLoadingPanel");
|
|
19225
|
-
|
|
19226
|
+
const card = (
|
|
19226
19227
|
// `status` rather than `alert` so assistive tech waits for a pause instead of interrupting, and
|
|
19227
19228
|
// `aria-busy` so it knows the surrounding content is still settling.
|
|
19228
|
-
/* @__PURE__ */ jsx113(
|
|
19229
|
+
/* @__PURE__ */ jsx113(AiCard, { role: "status", "aria-busy": true, size: "lg", ...tid, children: /* @__PURE__ */ jsxs62("div", { className: "df fdc aic gap1 w100 pt2 pb2 pl3 pr3", children: [
|
|
19229
19230
|
/* @__PURE__ */ jsx113(AiLoader, {}),
|
|
19230
19231
|
/* @__PURE__ */ jsx113("span", { className: "fw6 fz_18px lh_28px purple700 aiBoldBg bgcl_text WebkitBackgroundClip_text wktfc_transparent", ...tid.title, children: title }),
|
|
19231
19232
|
/* @__PURE__ */ jsx113("span", { ...trussProps77({
|
|
@@ -19237,8 +19238,9 @@ function AiLoadingPanel(props) {
|
|
|
19237
19238
|
}],
|
|
19238
19239
|
textAlign: "tac"
|
|
19239
19240
|
}), ...tid.message, children: message })
|
|
19240
|
-
] }) })
|
|
19241
|
+
] }) })
|
|
19241
19242
|
);
|
|
19243
|
+
return omitBg ? card : /* @__PURE__ */ jsx113(AiPanel, { padding: "lg", ...tid, children: card });
|
|
19242
19244
|
}
|
|
19243
19245
|
var defaultMessage = "This process can take a few minutes. Feel free to keep working in another tab. Once imported, you may edit or add to content before saving.";
|
|
19244
19246
|
|
|
@@ -20061,7 +20063,7 @@ function SuperDrawer() {
|
|
|
20061
20063
|
}
|
|
20062
20064
|
|
|
20063
20065
|
// src/components/Layout/FormPageLayout.tsx
|
|
20064
|
-
import React19, { createRef, useCallback as useCallback29, useEffect as
|
|
20066
|
+
import React19, { createRef, useCallback as useCallback29, useEffect as useEffect27, useMemo as useMemo37, useRef as useRef53, useState as useState44 } from "react";
|
|
20065
20067
|
import { useButton as useButton9, useFocusRing as useFocusRing14 } from "react-aria";
|
|
20066
20068
|
|
|
20067
20069
|
// src/forms/BoundCheckboxField.tsx
|
|
@@ -21245,7 +21247,7 @@ FormHeading.isFormHeading = true;
|
|
|
21245
21247
|
|
|
21246
21248
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
21247
21249
|
import equal2 from "fast-deep-equal";
|
|
21248
|
-
import { useCallback as useCallback27, useRef as useRef50 } from "react";
|
|
21250
|
+
import { useCallback as useCallback27, useEffect as useEffect26, useRef as useRef50 } from "react";
|
|
21249
21251
|
|
|
21250
21252
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
21251
21253
|
import { createContext as createContext9, useContext as useContext19 } from "react";
|
|
@@ -21266,7 +21268,8 @@ function DnDGrid(props) {
|
|
|
21266
21268
|
children,
|
|
21267
21269
|
gridStyles,
|
|
21268
21270
|
onReorder,
|
|
21269
|
-
activeItemStyles
|
|
21271
|
+
activeItemStyles,
|
|
21272
|
+
lockAxis
|
|
21270
21273
|
} = props;
|
|
21271
21274
|
const gridEl = useRef50(null);
|
|
21272
21275
|
const dragEl = useRef50();
|
|
@@ -21333,15 +21336,15 @@ function DnDGrid(props) {
|
|
|
21333
21336
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
21334
21337
|
const left = dragEl.current.style.left ? parseInt(dragEl.current.style.left) : 0;
|
|
21335
21338
|
const top = dragEl.current.style.top ? parseInt(dragEl.current.style.top) : 0;
|
|
21336
|
-
const x = clientX - transformFrom.current.x - left;
|
|
21337
|
-
const y = clientY - transformFrom.current.y - top;
|
|
21339
|
+
const x = lockAxis === "y" ? 0 : clientX - transformFrom.current.x - left;
|
|
21340
|
+
const y = lockAxis === "x" ? 0 : clientY - transformFrom.current.y - top;
|
|
21338
21341
|
dragEl.current.style.transform = `translate(${x}px, ${y}px)`;
|
|
21339
21342
|
const maybeTarget = "touches" in e ? document.elementFromPoint(clientX, clientY) : e.target;
|
|
21340
21343
|
const target = maybeTarget instanceof HTMLElement ? maybeTarget?.closest(`[${gridItemIdKey}]`) : void 0;
|
|
21341
21344
|
if (target instanceof HTMLElement && target !== cloneEl.current && target !== dragEl.current) {
|
|
21342
21345
|
const targetPos = target.getBoundingClientRect();
|
|
21343
21346
|
const clonePos = cloneEl.current.getBoundingClientRect();
|
|
21344
|
-
const useYAxis = Math.abs(targetPos.top - clonePos.top) >= Math.abs(targetPos.left - clonePos.left);
|
|
21347
|
+
const useYAxis = lockAxis === "y" ? true : lockAxis === "x" ? false : Math.abs(targetPos.top - clonePos.top) >= Math.abs(targetPos.left - clonePos.left);
|
|
21345
21348
|
const isHalfwayPassedTarget = useYAxis ? (clientY - targetPos.top) / (targetPos.bottom - targetPos.top) > 0.5 : (clientX - targetPos.left) / (targetPos.right - targetPos.left) > 0.5;
|
|
21346
21349
|
const shouldInsert = isHalfwayPassedTarget && target.nextSibling !== cloneEl.current || !isHalfwayPassedTarget && target.previousSibling !== cloneEl.current;
|
|
21347
21350
|
if (shouldInsert) {
|
|
@@ -21349,7 +21352,18 @@ function DnDGrid(props) {
|
|
|
21349
21352
|
}
|
|
21350
21353
|
}
|
|
21351
21354
|
}
|
|
21352
|
-
}, []);
|
|
21355
|
+
}, [lockAxis]);
|
|
21356
|
+
const onDragEnd = useCallback27((e) => {
|
|
21357
|
+
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
21358
|
+
e.preventDefault();
|
|
21359
|
+
cloneEl.current.replaceWith(dragEl.current);
|
|
21360
|
+
gridEl.current.querySelectorAll(`[${gridCloneKey}]`).forEach((el) => el.remove());
|
|
21361
|
+
gridEl.current.style.cursor = "auto";
|
|
21362
|
+
cloneEl.current = void 0;
|
|
21363
|
+
commitReorder();
|
|
21364
|
+
removePointerDragListeners(onMove, onDragEnd);
|
|
21365
|
+
}
|
|
21366
|
+
}, [commitReorder, onMove]);
|
|
21353
21367
|
const onDragStart = useCallback27((e) => {
|
|
21354
21368
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
21355
21369
|
const rect = dragEl.current.getBoundingClientRect();
|
|
@@ -21375,22 +21389,12 @@ function DnDGrid(props) {
|
|
|
21375
21389
|
dragEl.current.style.width = `${rect.width}px`;
|
|
21376
21390
|
dragEl.current.style.height = `${rect.height}px`;
|
|
21377
21391
|
gridEl.current.style.cursor = "grabbing";
|
|
21378
|
-
|
|
21379
|
-
gridEl.current.addEventListener("touchmove", onMove);
|
|
21380
|
-
}
|
|
21381
|
-
}, [initReorder, onMove]);
|
|
21382
|
-
const onDragEnd = useCallback27((e) => {
|
|
21383
|
-
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
21384
|
-
e.preventDefault();
|
|
21385
|
-
cloneEl.current.replaceWith(dragEl.current);
|
|
21386
|
-
gridEl.current.querySelectorAll(`[${gridCloneKey}]`).forEach((el) => el.remove());
|
|
21387
|
-
gridEl.current.style.cursor = "auto";
|
|
21388
|
-
cloneEl.current = void 0;
|
|
21389
|
-
commitReorder();
|
|
21390
|
-
gridEl.current.removeEventListener("mousemove", onMove);
|
|
21391
|
-
gridEl.current.removeEventListener("touchmove", onMove);
|
|
21392
|
+
addPointerDragListeners(onMove, onDragEnd);
|
|
21392
21393
|
}
|
|
21393
|
-
}, [
|
|
21394
|
+
}, [initReorder, onMove, onDragEnd]);
|
|
21395
|
+
useEffect26(() => {
|
|
21396
|
+
return () => removePointerDragListeners(onMove, onDragEnd);
|
|
21397
|
+
}, [onMove, onDragEnd]);
|
|
21394
21398
|
const onDragHandleKeyDown = useCallback27((e) => {
|
|
21395
21399
|
const moveHandle = e.target;
|
|
21396
21400
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
@@ -21424,8 +21428,8 @@ function DnDGrid(props) {
|
|
|
21424
21428
|
document.removeEventListener("pointerdown", cancelReorder);
|
|
21425
21429
|
return;
|
|
21426
21430
|
}
|
|
21427
|
-
const movingLeft =
|
|
21428
|
-
const movingRight =
|
|
21431
|
+
const movingLeft = lockAxis !== "x" && e.key === "ArrowUp" || lockAxis !== "y" && e.key === "ArrowLeft";
|
|
21432
|
+
const movingRight = lockAxis !== "x" && e.key === "ArrowDown" || lockAxis !== "y" && e.key === "ArrowRight";
|
|
21429
21433
|
if (movingLeft || movingRight) {
|
|
21430
21434
|
e.preventDefault();
|
|
21431
21435
|
const gridItems = getGridItems();
|
|
@@ -21438,7 +21442,7 @@ function DnDGrid(props) {
|
|
|
21438
21442
|
moveHandle.focus();
|
|
21439
21443
|
}
|
|
21440
21444
|
}
|
|
21441
|
-
}, [cancelReorder, commitReorder, initReorder, getGridItems]);
|
|
21445
|
+
}, [cancelReorder, commitReorder, initReorder, getGridItems, lockAxis]);
|
|
21442
21446
|
return /* @__PURE__ */ jsx147(DnDGridContext.Provider, { value: {
|
|
21443
21447
|
dragEl,
|
|
21444
21448
|
onDragHandleKeyDown
|
|
@@ -21452,6 +21456,22 @@ function DnDGrid(props) {
|
|
|
21452
21456
|
}
|
|
21453
21457
|
var gridItemIdKey = "dndgrid-itemid";
|
|
21454
21458
|
var gridCloneKey = "dndgrid-clone";
|
|
21459
|
+
function addPointerDragListeners(onMove, onEnd) {
|
|
21460
|
+
document.addEventListener("mousemove", onMove);
|
|
21461
|
+
document.addEventListener("touchmove", onMove);
|
|
21462
|
+
document.addEventListener("mouseup", onEnd);
|
|
21463
|
+
document.addEventListener("touchend", onEnd);
|
|
21464
|
+
document.addEventListener("pointercancel", onEnd);
|
|
21465
|
+
document.addEventListener("touchcancel", onEnd);
|
|
21466
|
+
}
|
|
21467
|
+
function removePointerDragListeners(onMove, onEnd) {
|
|
21468
|
+
document.removeEventListener("mousemove", onMove);
|
|
21469
|
+
document.removeEventListener("touchmove", onMove);
|
|
21470
|
+
document.removeEventListener("mouseup", onEnd);
|
|
21471
|
+
document.removeEventListener("touchend", onEnd);
|
|
21472
|
+
document.removeEventListener("pointercancel", onEnd);
|
|
21473
|
+
document.removeEventListener("touchcancel", onEnd);
|
|
21474
|
+
}
|
|
21455
21475
|
function applyActiveStyles(el, activeStyles3) {
|
|
21456
21476
|
const {
|
|
21457
21477
|
className,
|
|
@@ -21840,7 +21860,7 @@ function DraggableChildren(props) {
|
|
|
21840
21860
|
}
|
|
21841
21861
|
});
|
|
21842
21862
|
};
|
|
21843
|
-
return /* @__PURE__ */ jsx153(DnDGrid, { onReorder: handleReorder, gridStyles: {
|
|
21863
|
+
return /* @__PURE__ */ jsx153(DnDGrid, { onReorder: handleReorder, lockAxis: "y", gridStyles: {
|
|
21844
21864
|
gridTemplateColumns: "gtc_minmax_0_1fr",
|
|
21845
21865
|
gap: "gap3"
|
|
21846
21866
|
}, children: sorted.map((child) => /* @__PURE__ */ jsx153(FormSectionChild, { ...child, ...tid }, child.id)) });
|
|
@@ -22404,7 +22424,7 @@ function useActiveSection(sectionsWithRefs) {
|
|
|
22404
22424
|
}, 200, {
|
|
22405
22425
|
maxWait: 500
|
|
22406
22426
|
});
|
|
22407
|
-
|
|
22427
|
+
useEffect27(() => {
|
|
22408
22428
|
if (!("IntersectionObserver" in window)) return;
|
|
22409
22429
|
const observer3 = new IntersectionObserver((entries) => debouncedIntersectionCallback(entries), {
|
|
22410
22430
|
/**
|
|
@@ -22497,7 +22517,7 @@ function invertSpacing(value) {
|
|
|
22497
22517
|
|
|
22498
22518
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
22499
22519
|
import { useResizeObserver as useResizeObserver7 } from "@react-aria/utils";
|
|
22500
|
-
import React21, { useCallback as useCallback33, useEffect as
|
|
22520
|
+
import React21, { useCallback as useCallback33, useEffect as useEffect30, useLayoutEffect as useLayoutEffect9, useMemo as useMemo43, useRef as useRef55, useState as useState49 } from "react";
|
|
22501
22521
|
|
|
22502
22522
|
// src/components/Filters/utils.tsx
|
|
22503
22523
|
function getActiveFilterCount(filter) {
|
|
@@ -22523,7 +22543,7 @@ import { mergeProps as mergeProps27 } from "@homebound/truss/runtime";
|
|
|
22523
22543
|
|
|
22524
22544
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPane.tsx
|
|
22525
22545
|
import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
|
|
22526
|
-
import { useEffect as
|
|
22546
|
+
import { useEffect as useEffect28 } from "react";
|
|
22527
22547
|
import { usePreventScroll as usePreventScroll2 } from "react-aria";
|
|
22528
22548
|
import { createPortal as createPortal6 } from "react-dom";
|
|
22529
22549
|
|
|
@@ -22597,7 +22617,7 @@ function DocumentScrollRightPane({
|
|
|
22597
22617
|
usePreventScroll2({
|
|
22598
22618
|
isDisabled: !isMobileOverlay
|
|
22599
22619
|
});
|
|
22600
|
-
|
|
22620
|
+
useEffect28(() => closePane, [closePane]);
|
|
22601
22621
|
const slideX = sm ? "100%" : paneWidth;
|
|
22602
22622
|
const pane = /* @__PURE__ */ jsx163(AnimatePresence3, { children: isRightPaneOpen && /* @__PURE__ */ jsx163(motion3.div, { ...tid, ...mergeProps26(void 0, sm ? {
|
|
22603
22623
|
top: bannerHeightPx
|
|
@@ -23259,12 +23279,12 @@ function ConfirmCloseModal(props) {
|
|
|
23259
23279
|
}
|
|
23260
23280
|
|
|
23261
23281
|
// src/components/Modal/OpenModal.tsx
|
|
23262
|
-
import { useEffect as
|
|
23282
|
+
import { useEffect as useEffect29 } from "react";
|
|
23263
23283
|
import { jsx as jsx175 } from "react/jsx-runtime";
|
|
23264
23284
|
function OpenModal(props) {
|
|
23265
23285
|
const { openModal } = useModal();
|
|
23266
23286
|
const { size, children, keepOpen, aiMode } = props;
|
|
23267
|
-
|
|
23287
|
+
useEffect29(() => {
|
|
23268
23288
|
if (!keepOpen) {
|
|
23269
23289
|
openModal({ size, content: children, aiMode });
|
|
23270
23290
|
}
|
|
@@ -23886,7 +23906,7 @@ function GridTableLayoutComponent(props) {
|
|
|
23886
23906
|
const tableWrapperRef = useRef55(null);
|
|
23887
23907
|
useSetTableActionsHeight(tableWrapperRef, tableActionsRef, inDocumentScrollLayout && showTableActions);
|
|
23888
23908
|
const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
23889
|
-
|
|
23909
|
+
useEffect30(() => {
|
|
23890
23910
|
if (layoutState?.setVisibleColumnIds) {
|
|
23891
23911
|
layoutState.setVisibleColumnIds(visibleColumnIds);
|
|
23892
23912
|
}
|
|
@@ -24059,7 +24079,7 @@ function PreventBrowserScroll({
|
|
|
24059
24079
|
|
|
24060
24080
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
24061
24081
|
import { AnimatePresence as AnimatePresence4, motion as motion4 } from "framer-motion";
|
|
24062
|
-
import { useEffect as
|
|
24082
|
+
import { useEffect as useEffect31 } from "react";
|
|
24063
24083
|
import { trussProps as trussProps105, maybeCssVar as maybeCssVar52 } from "@homebound/truss/runtime";
|
|
24064
24084
|
import { Fragment as Fragment41, jsx as jsx188, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
24065
24085
|
var __maybeInc24 = (inc) => {
|
|
@@ -24078,7 +24098,7 @@ function RightPaneLayout(props) {
|
|
|
24078
24098
|
clearPane,
|
|
24079
24099
|
closePane
|
|
24080
24100
|
} = useRightPaneContext();
|
|
24081
|
-
|
|
24101
|
+
useEffect31(() => closePane, [closePane]);
|
|
24082
24102
|
return /* @__PURE__ */ jsx188("div", { className: "h100 df oxh", children: /* @__PURE__ */ jsxs92(Fragment41, { children: [
|
|
24083
24103
|
/* @__PURE__ */ jsx188("div", { ...trussProps105({
|
|
24084
24104
|
...{
|
|
@@ -24190,7 +24210,7 @@ function ScrollableFooter(props) {
|
|
|
24190
24210
|
|
|
24191
24211
|
// src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
|
|
24192
24212
|
import { AnimatePresence as AnimatePresence5, motion as motion5 } from "framer-motion";
|
|
24193
|
-
import { useEffect as
|
|
24213
|
+
import { useEffect as useEffect32, useState as useState50 } from "react";
|
|
24194
24214
|
|
|
24195
24215
|
// src/components/Layout/TableReviewLayout/SidePanel.tsx
|
|
24196
24216
|
import { jsx as jsx190, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
@@ -24231,7 +24251,7 @@ function TableReviewLayout(props) {
|
|
|
24231
24251
|
} = props;
|
|
24232
24252
|
const tid = useTestIds(props, "tableReviewLayout");
|
|
24233
24253
|
const [isPanelVisible, setIsPanelVisible] = useState50(!!panelContent);
|
|
24234
|
-
|
|
24254
|
+
useEffect32(() => {
|
|
24235
24255
|
setIsPanelVisible(!!panelContent);
|
|
24236
24256
|
}, [panelContent]);
|
|
24237
24257
|
function handleClosePanel() {
|
|
@@ -25316,7 +25336,7 @@ function useResponsiveGrid(props) {
|
|
|
25316
25336
|
}
|
|
25317
25337
|
|
|
25318
25338
|
// src/components/Grid/useResponsiveGridItem.ts
|
|
25319
|
-
import { useContext as useContext24, useEffect as
|
|
25339
|
+
import { useContext as useContext24, useEffect as useEffect33, useMemo as useMemo48 } from "react";
|
|
25320
25340
|
var injectedResponsiveGridClasses = /* @__PURE__ */ new Set();
|
|
25321
25341
|
var responsiveGridStyleEl;
|
|
25322
25342
|
function useResponsiveGridItem(props) {
|
|
@@ -25346,7 +25366,7 @@ function useResponsiveGridItem(props) {
|
|
|
25346
25366
|
};
|
|
25347
25367
|
}
|
|
25348
25368
|
function useResponsiveGridItemStyle(className, cssText) {
|
|
25349
|
-
|
|
25369
|
+
useEffect33(
|
|
25350
25370
|
function() {
|
|
25351
25371
|
if (!className || !cssText || typeof document === "undefined") return;
|
|
25352
25372
|
if (!responsiveGridStyleEl) {
|
|
@@ -25608,7 +25628,7 @@ var jumpLinkStyles = {
|
|
|
25608
25628
|
|
|
25609
25629
|
// src/components/MaxLines.tsx
|
|
25610
25630
|
import { useLayoutEffect as useLayoutEffect10, useResizeObserver as useResizeObserver9 } from "@react-aria/utils";
|
|
25611
|
-
import { useCallback as useCallback34, useEffect as
|
|
25631
|
+
import { useCallback as useCallback34, useEffect as useEffect34, useRef as useRef61, useState as useState53 } from "react";
|
|
25612
25632
|
import { trussProps as trussProps116, maybeCssVar as maybeCssVar57 } from "@homebound/truss/runtime";
|
|
25613
25633
|
import { jsx as jsx205, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
25614
25634
|
function MaxLines({
|
|
@@ -25622,7 +25642,7 @@ function MaxLines({
|
|
|
25622
25642
|
if (!elRef.current) return;
|
|
25623
25643
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
25624
25644
|
}, []);
|
|
25625
|
-
|
|
25645
|
+
useEffect34(() => {
|
|
25626
25646
|
setExpanded(false);
|
|
25627
25647
|
}, [children]);
|
|
25628
25648
|
const onResize = useCallback34(() => {
|
|
@@ -25655,7 +25675,7 @@ import { camelCase as camelCase6 } from "change-case";
|
|
|
25655
25675
|
// src/components/AppNav/AppNavGroup.tsx
|
|
25656
25676
|
import { useResizeObserver as useResizeObserver10 } from "@react-aria/utils";
|
|
25657
25677
|
import { camelCase as camelCase5, kebabCase } from "change-case";
|
|
25658
|
-
import { useCallback as useCallback36, useEffect as
|
|
25678
|
+
import { useCallback as useCallback36, useEffect as useEffect35, useMemo as useMemo51, useState as useState55 } from "react";
|
|
25659
25679
|
|
|
25660
25680
|
// src/components/AppNav/AppNavGroupTrigger.tsx
|
|
25661
25681
|
import { useMemo as useMemo50, useRef as useRef62 } from "react";
|
|
@@ -25895,7 +25915,7 @@ function AppNavGroupDisclosure(props) {
|
|
|
25895
25915
|
current: contentEl
|
|
25896
25916
|
}), [contentEl]);
|
|
25897
25917
|
const [contentHeight, setContentHeight] = useState55(expanded ? "auto" : "0");
|
|
25898
|
-
|
|
25918
|
+
useEffect35(() => {
|
|
25899
25919
|
setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
|
|
25900
25920
|
}, [expanded, contentEl]);
|
|
25901
25921
|
const onResize = useCallback36(() => {
|
|
@@ -26045,7 +26065,7 @@ function AppNavItems(props) {
|
|
|
26045
26065
|
|
|
26046
26066
|
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
26047
26067
|
import { AnimatePresence as AnimatePresence6, motion as motion6 } from "framer-motion";
|
|
26048
|
-
import { useEffect as
|
|
26068
|
+
import { useEffect as useEffect36, useState as useState57 } from "react";
|
|
26049
26069
|
import { FocusScope as FocusScope5, usePreventScroll as usePreventScroll3 } from "react-aria";
|
|
26050
26070
|
import { createPortal as createPortal8 } from "react-dom";
|
|
26051
26071
|
import { useLocation } from "react-router-dom";
|
|
@@ -26097,7 +26117,7 @@ function NavbarMobileMenu(props) {
|
|
|
26097
26117
|
isDisabled: !isOpen
|
|
26098
26118
|
});
|
|
26099
26119
|
const close = () => setIsOpen(false);
|
|
26100
|
-
|
|
26120
|
+
useEffect36(() => {
|
|
26101
26121
|
close();
|
|
26102
26122
|
}, [pathname, search]);
|
|
26103
26123
|
return /* @__PURE__ */ jsxs107(Fragment47, { children: [
|
|
@@ -26554,7 +26574,7 @@ import {
|
|
|
26554
26574
|
createContext as createContext15,
|
|
26555
26575
|
useCallback as useCallback38,
|
|
26556
26576
|
useContext as useContext27,
|
|
26557
|
-
useEffect as
|
|
26577
|
+
useEffect as useEffect37,
|
|
26558
26578
|
useMemo as useMemo54,
|
|
26559
26579
|
useRef as useRef64,
|
|
26560
26580
|
useState as useState59
|
|
@@ -26588,7 +26608,7 @@ function SideNavLayoutProvider(props) {
|
|
|
26588
26608
|
);
|
|
26589
26609
|
const bp = useBreakpoint();
|
|
26590
26610
|
const prevMdAndUp = useRef64(bp.mdAndUp);
|
|
26591
|
-
|
|
26611
|
+
useEffect37(() => {
|
|
26592
26612
|
if (prevMdAndUp.current && !bp.mdAndUp) {
|
|
26593
26613
|
setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
|
|
26594
26614
|
}
|
|
@@ -26675,7 +26695,7 @@ function SideNav(props) {
|
|
|
26675
26695
|
}
|
|
26676
26696
|
|
|
26677
26697
|
// src/components/Snackbar/useSnackbar.tsx
|
|
26678
|
-
import { useCallback as useCallback39, useEffect as
|
|
26698
|
+
import { useCallback as useCallback39, useEffect as useEffect38 } from "react";
|
|
26679
26699
|
function useSnackbar() {
|
|
26680
26700
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
26681
26701
|
const onClose = useCallback39(
|
|
@@ -26725,7 +26745,7 @@ function useSnackbar() {
|
|
|
26725
26745
|
[onClose, setNotices]
|
|
26726
26746
|
);
|
|
26727
26747
|
const closeNotice = useCallback39((id) => onClose(id), [onClose]);
|
|
26728
|
-
const useSnackbarOffset = ({ bottom }) =>
|
|
26748
|
+
const useSnackbarOffset = ({ bottom }) => useEffect38(() => {
|
|
26729
26749
|
setOffset({ bottom });
|
|
26730
26750
|
return () => setOffset({});
|
|
26731
26751
|
}, [bottom]);
|
|
@@ -27445,7 +27465,7 @@ function visit(rows, fn) {
|
|
|
27445
27465
|
|
|
27446
27466
|
// src/components/Tabs.tsx
|
|
27447
27467
|
import { camelCase as camelCase7 } from "change-case";
|
|
27448
|
-
import { useEffect as
|
|
27468
|
+
import { useEffect as useEffect39, useMemo as useMemo56, useRef as useRef67, useState as useState60 } from "react";
|
|
27449
27469
|
import { mergeProps as mergeProps35, useFocusRing as useFocusRing20, useHover as useHover23 } from "react-aria";
|
|
27450
27470
|
import { matchPath } from "react-router";
|
|
27451
27471
|
import { Link as Link7, useLocation as useLocation2 } from "react-router-dom";
|
|
@@ -27508,7 +27528,7 @@ function Tabs(props) {
|
|
|
27508
27528
|
const tid = useTestIds(others, "tabs");
|
|
27509
27529
|
const [active, setActive] = useState60(selected);
|
|
27510
27530
|
const ref = useRef67(null);
|
|
27511
|
-
|
|
27531
|
+
useEffect39(() => setActive(selected), [selected]);
|
|
27512
27532
|
function onKeyUp(e) {
|
|
27513
27533
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
27514
27534
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -28459,7 +28479,7 @@ function WorkflowHeader(props) {
|
|
|
28459
28479
|
}
|
|
28460
28480
|
|
|
28461
28481
|
// src/layouts/Workflow/useUnsavedChangesGuard.tsx
|
|
28462
|
-
import { useEffect as
|
|
28482
|
+
import { useEffect as useEffect40, useRef as useRef71 } from "react";
|
|
28463
28483
|
import { useBlocker } from "react-router-dom";
|
|
28464
28484
|
import { jsx as jsx237 } from "react/jsx-runtime";
|
|
28465
28485
|
function useUnsavedChangesGuard(options) {
|
|
@@ -28467,7 +28487,7 @@ function useUnsavedChangesGuard(options) {
|
|
|
28467
28487
|
const { openModal } = useModal();
|
|
28468
28488
|
const isDirtyRef = useRef71(isDirty);
|
|
28469
28489
|
isDirtyRef.current = isDirty;
|
|
28470
|
-
|
|
28490
|
+
useEffect40(() => {
|
|
28471
28491
|
const onBeforeUnload = (e) => {
|
|
28472
28492
|
if (isDirtyRef.current?.()) {
|
|
28473
28493
|
e.preventDefault();
|
|
@@ -28493,7 +28513,7 @@ function useUnsavedChangesGuard(options) {
|
|
|
28493
28513
|
function UnsavedChangesNavigationModal(props) {
|
|
28494
28514
|
const { proceed, cancelNavigation } = props;
|
|
28495
28515
|
const { openModal, closeModal } = useModal();
|
|
28496
|
-
|
|
28516
|
+
useEffect40(() => {
|
|
28497
28517
|
openModal({
|
|
28498
28518
|
allowClosing: false,
|
|
28499
28519
|
content: /* @__PURE__ */ jsx237(ConfirmCloseModal, { title: "Leave page?", onClose: proceed, onContinue: cancelNavigation })
|