@homebound/beam 3.80.0 → 3.81.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/index.cjs +330 -261
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +256 -187
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -25320,40 +25320,82 @@ function AppNavItems(props) {
|
|
|
25320
25320
|
|
|
25321
25321
|
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
25322
25322
|
var import_framer_motion6 = require("framer-motion");
|
|
25323
|
-
var
|
|
25323
|
+
var import_react142 = require("react");
|
|
25324
25324
|
var import_react_aria62 = require("react-aria");
|
|
25325
25325
|
var import_react_dom7 = require("react-dom");
|
|
25326
25326
|
var import_react_router_dom7 = require("react-router-dom");
|
|
25327
|
-
|
|
25327
|
+
|
|
25328
|
+
// src/layouts/NavbarLayout/MobileSubNavContext.tsx
|
|
25329
|
+
var import_react141 = require("react");
|
|
25328
25330
|
var import_jsx_runtime199 = require("react/jsx-runtime");
|
|
25331
|
+
var MobileSubNavContext = (0, import_react141.createContext)(void 0);
|
|
25332
|
+
function MobileSubNavProvider(props) {
|
|
25333
|
+
const [mobileSubNav, setMobileSubNav] = (0, import_react141.useState)(null);
|
|
25334
|
+
const value = (0, import_react141.useMemo)(() => ({ mobileSubNav, setMobileSubNav }), [mobileSubNav]);
|
|
25335
|
+
return /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(MobileSubNavContext.Provider, { value, children: props.children });
|
|
25336
|
+
}
|
|
25337
|
+
function useMobileSubNav() {
|
|
25338
|
+
return (0, import_react141.useContext)(MobileSubNavContext)?.mobileSubNav ?? null;
|
|
25339
|
+
}
|
|
25340
|
+
function useRegisterMobileSubNav(content) {
|
|
25341
|
+
const ctx = (0, import_react141.useContext)(MobileSubNavContext);
|
|
25342
|
+
const setMobileSubNav = ctx?.setMobileSubNav;
|
|
25343
|
+
const enabled = !useBreakpoint().mdAndUp;
|
|
25344
|
+
const { top, items, footer } = content;
|
|
25345
|
+
(0, import_react141.useLayoutEffect)(() => {
|
|
25346
|
+
if (!setMobileSubNav || !enabled) return;
|
|
25347
|
+
setMobileSubNav({ top, items, footer });
|
|
25348
|
+
}, [setMobileSubNav, enabled, top, items, footer]);
|
|
25349
|
+
(0, import_react141.useLayoutEffect)(() => {
|
|
25350
|
+
if (!setMobileSubNav || !enabled) return;
|
|
25351
|
+
return () => setMobileSubNav(null);
|
|
25352
|
+
}, [setMobileSubNav, enabled]);
|
|
25353
|
+
return ctx !== void 0 && enabled;
|
|
25354
|
+
}
|
|
25355
|
+
|
|
25356
|
+
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
25357
|
+
var import_runtime123 = require("@homebound/truss/runtime");
|
|
25358
|
+
var import_jsx_runtime200 = require("react/jsx-runtime");
|
|
25329
25359
|
function NavbarMobileMenu(props) {
|
|
25330
25360
|
const {
|
|
25331
25361
|
items
|
|
25332
25362
|
} = props;
|
|
25333
25363
|
const tid = useTestIds(props, "navbar");
|
|
25334
|
-
const [isOpen, setIsOpen] = (0,
|
|
25364
|
+
const [isOpen, setIsOpen] = (0, import_react142.useState)(false);
|
|
25365
|
+
const [level, setLevel] = (0, import_react142.useState)("sub");
|
|
25335
25366
|
const {
|
|
25336
25367
|
pathname,
|
|
25337
25368
|
search
|
|
25338
25369
|
} = (0, import_react_router_dom7.useLocation)();
|
|
25370
|
+
const mobileSubNav = useMobileSubNav();
|
|
25339
25371
|
(0, import_react_aria62.usePreventScroll)({
|
|
25340
25372
|
isDisabled: !isOpen
|
|
25341
25373
|
});
|
|
25342
|
-
(0, import_react141.useEffect)(() => {
|
|
25343
|
-
setIsOpen(false);
|
|
25344
|
-
}, [pathname, search]);
|
|
25345
25374
|
const close = () => setIsOpen(false);
|
|
25346
|
-
|
|
25347
|
-
|
|
25375
|
+
(0, import_react142.useEffect)(() => {
|
|
25376
|
+
close();
|
|
25377
|
+
}, [pathname, search]);
|
|
25378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_jsx_runtime200.Fragment, { children: [
|
|
25379
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(IconButton, { icon: isOpen ? "menuClose" : "menu", color: "--b-on-surface-muted" /* OnSurfaceMuted */, label: isOpen ? "Close navigation" : "Open navigation", onClick: () => {
|
|
25380
|
+
if (isOpen) {
|
|
25381
|
+
close();
|
|
25382
|
+
return;
|
|
25383
|
+
}
|
|
25384
|
+
setLevel("sub");
|
|
25385
|
+
setIsOpen(true);
|
|
25386
|
+
}, ...tid.mobileMenu }),
|
|
25348
25387
|
(0, import_react_dom7.createPortal)(
|
|
25349
25388
|
/* AnimatePresence keeps the drawer mounted through its slide/fade-out before unmounting.*/
|
|
25350
|
-
/* @__PURE__ */ (0,
|
|
25389
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_framer_motion6.AnimatePresence, { children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(NavbarMobileDrawer, { items, mobileSubNav, level, onLevelChange: setLevel, onClose: close, tid }) }),
|
|
25351
25390
|
document.body
|
|
25352
25391
|
)
|
|
25353
25392
|
] });
|
|
25354
25393
|
}
|
|
25355
25394
|
function NavbarMobileDrawer({
|
|
25356
25395
|
items,
|
|
25396
|
+
mobileSubNav,
|
|
25397
|
+
level,
|
|
25398
|
+
onLevelChange,
|
|
25357
25399
|
onClose,
|
|
25358
25400
|
tid
|
|
25359
25401
|
}) {
|
|
@@ -25361,8 +25403,9 @@ function NavbarMobileDrawer({
|
|
|
25361
25403
|
const overlayTopStyle = {
|
|
25362
25404
|
top: bannerHeightPx
|
|
25363
25405
|
};
|
|
25364
|
-
|
|
25365
|
-
|
|
25406
|
+
const showSubLevel = mobileSubNav != null && level === "sub";
|
|
25407
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_jsx_runtime200.Fragment, { children: [
|
|
25408
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_framer_motion6.motion.div, { ...(0, import_runtime123.mergeProps)(void 0, overlayTopStyle, {
|
|
25366
25409
|
position: "fixed",
|
|
25367
25410
|
right: "right0",
|
|
25368
25411
|
bottom: "bottom0",
|
|
@@ -25383,7 +25426,7 @@ function NavbarMobileDrawer({
|
|
|
25383
25426
|
ease: "linear",
|
|
25384
25427
|
duration: 0.2
|
|
25385
25428
|
}, onClick: onClose, ...tid.mobileMenuScrim }, "navbarMobileMenuScrim"),
|
|
25386
|
-
/* @__PURE__ */ (0,
|
|
25429
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_react_aria62.FocusScope, { autoFocus: true, contain: true, restoreFocus: true, children: /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_framer_motion6.motion.aside, { role: "dialog", "aria-modal": "true", "aria-label": "Navigation", ...(0, import_runtime123.mergeProps)(void 0, overlayTopStyle, {
|
|
25387
25430
|
position: "fixed",
|
|
25388
25431
|
bottom: "bottom0",
|
|
25389
25432
|
left: "left0",
|
|
@@ -25408,11 +25451,11 @@ function NavbarMobileDrawer({
|
|
|
25408
25451
|
ease: "linear",
|
|
25409
25452
|
duration: 0.2
|
|
25410
25453
|
}, onClick: (e) => e.stopPropagation(), ...tid.mobileMenuDrawer, children: [
|
|
25411
|
-
/* @__PURE__ */ (0,
|
|
25454
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { ...(0, import_runtime123.trussProps)({
|
|
25412
25455
|
...{
|
|
25413
25456
|
display: "df",
|
|
25414
25457
|
alignItems: "aic",
|
|
25415
|
-
justifyContent: "
|
|
25458
|
+
justifyContent: "jcsb",
|
|
25416
25459
|
paddingTop: "pt_12px",
|
|
25417
25460
|
paddingBottom: "pb_12px",
|
|
25418
25461
|
flexShrink: "fs0",
|
|
@@ -25423,38 +25466,63 @@ function NavbarMobileDrawer({
|
|
|
25423
25466
|
}]
|
|
25424
25467
|
},
|
|
25425
25468
|
...pageContentPaddingX
|
|
25426
|
-
}), children:
|
|
25427
|
-
|
|
25428
|
-
"
|
|
25469
|
+
}), children: [
|
|
25470
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)("div", { className: "mw0", children: showSubLevel && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Button, { label: "Main Menu", icon: "chevronLeft", variant: "quaternary", size: "sm", onClick: () => onLevelChange("global"), ...tid.mobileMenuMainMenu }) }),
|
|
25471
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(IconButton, { icon: "x", color: "--b-on-surface-muted" /* OnSurfaceMuted */, label: "Close navigation", onClick: onClose, ...tid.mobileMenuClose })
|
|
25472
|
+
] }),
|
|
25473
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)("div", { className: "fg1 mh0 oh relative", children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_framer_motion6.AnimatePresence, { initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(
|
|
25474
|
+
import_framer_motion6.motion.nav,
|
|
25429
25475
|
{
|
|
25430
25476
|
...(0, import_runtime123.trussProps)({
|
|
25431
25477
|
...{
|
|
25432
|
-
|
|
25478
|
+
position: "absolute",
|
|
25479
|
+
top: "top0",
|
|
25480
|
+
bottom: "bottom0",
|
|
25481
|
+
left: "left0",
|
|
25482
|
+
right: "right0",
|
|
25433
25483
|
overflowY: "oya",
|
|
25434
|
-
paddingBottom: "pb3",
|
|
25435
|
-
paddingTop: "pt2",
|
|
25436
25484
|
display: "df",
|
|
25437
25485
|
flexDirection: "fdc",
|
|
25438
|
-
gap: "gap_4px"
|
|
25486
|
+
gap: "gap_4px",
|
|
25487
|
+
paddingTop: "pt2",
|
|
25488
|
+
paddingBottom: "pb3"
|
|
25439
25489
|
},
|
|
25440
25490
|
...pageContentPaddingX
|
|
25441
25491
|
}),
|
|
25492
|
+
initial: {
|
|
25493
|
+
x: "-100%"
|
|
25494
|
+
},
|
|
25495
|
+
animate: {
|
|
25496
|
+
x: 0
|
|
25497
|
+
},
|
|
25498
|
+
exit: {
|
|
25499
|
+
x: "100%"
|
|
25500
|
+
},
|
|
25501
|
+
transition: {
|
|
25502
|
+
ease: "linear",
|
|
25503
|
+
duration: 0.2
|
|
25504
|
+
},
|
|
25442
25505
|
onClickCapture: (e) => {
|
|
25443
25506
|
if (e.target.closest("a")) {
|
|
25444
25507
|
onClose();
|
|
25445
25508
|
}
|
|
25446
25509
|
},
|
|
25447
25510
|
...tid.mobileMenuPanel,
|
|
25448
|
-
children:
|
|
25449
|
-
|
|
25450
|
-
|
|
25511
|
+
children: [
|
|
25512
|
+
showSubLevel && mobileSubNav?.top,
|
|
25513
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(AppNavItems, { items: showSubLevel && mobileSubNav ? mobileSubNav.items : items, panelCollapsed: false, ...tid }),
|
|
25514
|
+
showSubLevel && mobileSubNav?.footer
|
|
25515
|
+
]
|
|
25516
|
+
},
|
|
25517
|
+
showSubLevel ? "sub" : "global"
|
|
25518
|
+
) }) })
|
|
25451
25519
|
] }, "navbarMobileMenuDrawer") })
|
|
25452
25520
|
] });
|
|
25453
25521
|
}
|
|
25454
25522
|
|
|
25455
25523
|
// src/components/Navbar/Navbar.tsx
|
|
25456
25524
|
var import_runtime124 = require("@homebound/truss/runtime");
|
|
25457
|
-
var
|
|
25525
|
+
var import_jsx_runtime201 = require("react/jsx-runtime");
|
|
25458
25526
|
function Navbar(props) {
|
|
25459
25527
|
const {
|
|
25460
25528
|
brand,
|
|
@@ -25473,7 +25541,7 @@ function Navbar(props) {
|
|
|
25473
25541
|
overflows
|
|
25474
25542
|
} = useContentOverflow(!sm);
|
|
25475
25543
|
const showMobile = sm || overflows;
|
|
25476
|
-
return /* @__PURE__ */ (0,
|
|
25544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(ContrastScope, { children: /* @__PURE__ */ (0, import_jsx_runtime201.jsxs)("nav", { ...(0, import_runtime124.trussProps)({
|
|
25477
25545
|
...{
|
|
25478
25546
|
backgroundColor: ["bgColor_var", {
|
|
25479
25547
|
"--backgroundColor": "var(--b-surface-raised)"
|
|
@@ -25489,10 +25557,10 @@ function Navbar(props) {
|
|
|
25489
25557
|
},
|
|
25490
25558
|
...headerContentPaddingX(showMobile)
|
|
25491
25559
|
}), ...tid, children: [
|
|
25492
|
-
/* @__PURE__ */ (0,
|
|
25493
|
-
/* @__PURE__ */ (0,
|
|
25494
|
-
showMobile && /* @__PURE__ */ (0,
|
|
25495
|
-
/* @__PURE__ */ (0,
|
|
25560
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsxs)("div", { className: "df aic gap3 fg1 mw0", children: [
|
|
25561
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsxs)("div", { className: "df aic fs0 gap2", children: [
|
|
25562
|
+
showMobile && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(NavbarMobileMenu, { items, ...tid }),
|
|
25563
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { ...(0, import_runtime124.trussProps)({
|
|
25496
25564
|
flexShrink: "fs0",
|
|
25497
25565
|
...hideBrandOnMobile && showMobile ? {
|
|
25498
25566
|
display: "dn"
|
|
@@ -25501,7 +25569,7 @@ function Navbar(props) {
|
|
|
25501
25569
|
] }),
|
|
25502
25570
|
!sm && // Stays mounted while overflowing (hidden) so the items remain measurable and the bar
|
|
25503
25571
|
// can expand again as space frees up.
|
|
25504
|
-
/* @__PURE__ */ (0,
|
|
25572
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { ref: containerRef, ...(0, import_runtime124.trussProps)({
|
|
25505
25573
|
display: "df",
|
|
25506
25574
|
alignItems: "aic",
|
|
25507
25575
|
flexGrow: "fg1",
|
|
@@ -25510,11 +25578,11 @@ function Navbar(props) {
|
|
|
25510
25578
|
...overflows ? {
|
|
25511
25579
|
visibility: "visibility_hidden"
|
|
25512
25580
|
} : {}
|
|
25513
|
-
}), ...tid.items, children: /* @__PURE__ */ (0,
|
|
25581
|
+
}), ...tid.items, children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { ref: contentRef, className: "df aic gap2 width_max_content", children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(AppNavItems, { variant: "global", items, ...tid }) }) })
|
|
25514
25582
|
] }),
|
|
25515
|
-
/* @__PURE__ */ (0,
|
|
25516
|
-
rightSlot && /* @__PURE__ */ (0,
|
|
25517
|
-
user && /* @__PURE__ */ (0,
|
|
25583
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsxs)("div", { className: "df aic gap1", children: [
|
|
25584
|
+
rightSlot && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { className: "df aic gap1", ...tid.rightSlot, children: rightSlot }),
|
|
25585
|
+
user && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(NavbarUserMenu, { user, ...tid.userMenu })
|
|
25518
25586
|
] })
|
|
25519
25587
|
] }) });
|
|
25520
25588
|
}
|
|
@@ -25522,7 +25590,7 @@ function NavbarUserMenu({
|
|
|
25522
25590
|
user,
|
|
25523
25591
|
...tid
|
|
25524
25592
|
}) {
|
|
25525
|
-
return /* @__PURE__ */ (0,
|
|
25593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { className: "df aic fs0 ml1", children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(ButtonMenu, { items: user.menuItems, persistentItems: user.persistentItems, trigger: {
|
|
25526
25594
|
src: user.picture,
|
|
25527
25595
|
name: user.name,
|
|
25528
25596
|
size: "sm",
|
|
@@ -25532,7 +25600,7 @@ function NavbarUserMenu({
|
|
|
25532
25600
|
|
|
25533
25601
|
// src/components/Pagination.tsx
|
|
25534
25602
|
var import_runtime125 = require("@homebound/truss/runtime");
|
|
25535
|
-
var
|
|
25603
|
+
var import_jsx_runtime202 = require("react/jsx-runtime");
|
|
25536
25604
|
var defaultPage = {
|
|
25537
25605
|
offset: 0,
|
|
25538
25606
|
limit: 100
|
|
@@ -25564,7 +25632,7 @@ function Pagination(props) {
|
|
|
25564
25632
|
}
|
|
25565
25633
|
}
|
|
25566
25634
|
const tid = useTestIds(props, "pagination");
|
|
25567
|
-
return /* @__PURE__ */ (0,
|
|
25635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)("div", { ...(0, import_runtime125.trussProps)({
|
|
25568
25636
|
display: "df",
|
|
25569
25637
|
borderColor: ["bc_var", {
|
|
25570
25638
|
"--borderColor": "var(--b-surface-separator)"
|
|
@@ -25581,24 +25649,24 @@ function Pagination(props) {
|
|
|
25581
25649
|
paddingRight: "pr2",
|
|
25582
25650
|
paddingTop: "pt2"
|
|
25583
25651
|
}), ...tid, children: [
|
|
25584
|
-
/* @__PURE__ */ (0,
|
|
25585
|
-
/* @__PURE__ */ (0,
|
|
25652
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsx)("div", { className: "df mta mba mr2", ...tid.pageSizeLabel, children: "Page size:" }),
|
|
25653
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsx)("div", { className: "w_78px", children: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(SelectField, { compact: true, label: "Page Size", labelStyle: "hidden", options: pageOptions, value: pageSize, onSelect: (val) => set({
|
|
25586
25654
|
pageNumber: 1,
|
|
25587
25655
|
pageSize: val
|
|
25588
25656
|
}), autoSort: false, ...tid.pageSize }) }),
|
|
25589
|
-
/* @__PURE__ */ (0,
|
|
25590
|
-
/* @__PURE__ */ (0,
|
|
25657
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsxs)("div", { className: "mla mta mba df", children: [
|
|
25658
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsxs)("div", { className: "df mta mba mr2", ...tid.pageInfoLabel, children: [
|
|
25591
25659
|
first,
|
|
25592
25660
|
" ",
|
|
25593
25661
|
showLast ? `- ${last}` : "",
|
|
25594
25662
|
" of ",
|
|
25595
25663
|
totalCount
|
|
25596
25664
|
] }),
|
|
25597
|
-
/* @__PURE__ */ (0,
|
|
25665
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsx)(IconButton, { icon: "chevronLeft", color: hasPrevPage ? "--b-text-link-default" /* TextLinkDefault */ : "--b-surface-separator" /* SurfaceSeparator */, onClick: () => set({
|
|
25598
25666
|
pageNumber: pageNumber - 1,
|
|
25599
25667
|
pageSize
|
|
25600
25668
|
}), disabled: !hasPrevPage, ...tid.previousIcon }),
|
|
25601
|
-
/* @__PURE__ */ (0,
|
|
25669
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsx)(IconButton, { icon: "chevronRight", color: hasNextPage ? "--b-text-link-default" /* TextLinkDefault */ : "--b-surface-separator" /* SurfaceSeparator */, onClick: () => set({
|
|
25602
25670
|
pageNumber: pageNumber + 1,
|
|
25603
25671
|
pageSize
|
|
25604
25672
|
}), disabled: !hasNextPage, ...tid.nextIcon })
|
|
@@ -25621,9 +25689,9 @@ function toPageNumberSize(page) {
|
|
|
25621
25689
|
|
|
25622
25690
|
// src/components/ScrollShadows.tsx
|
|
25623
25691
|
var import_utils166 = require("@react-aria/utils");
|
|
25624
|
-
var
|
|
25692
|
+
var import_react143 = require("react");
|
|
25625
25693
|
var import_runtime126 = require("@homebound/truss/runtime");
|
|
25626
|
-
var
|
|
25694
|
+
var import_jsx_runtime203 = require("react/jsx-runtime");
|
|
25627
25695
|
function ScrollShadows(props) {
|
|
25628
25696
|
const {
|
|
25629
25697
|
children,
|
|
@@ -25639,10 +25707,10 @@ function ScrollShadows(props) {
|
|
|
25639
25707
|
if (!bgColor.includes("rgba")) {
|
|
25640
25708
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
25641
25709
|
}
|
|
25642
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
25643
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
25644
|
-
const scrollRef = (0,
|
|
25645
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
25710
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react143.useState)(false);
|
|
25711
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react143.useState)(false);
|
|
25712
|
+
const scrollRef = (0, import_react143.useRef)(null);
|
|
25713
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react143.useMemo)(() => {
|
|
25646
25714
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
25647
25715
|
const commonStyles = {
|
|
25648
25716
|
position: "absolute",
|
|
@@ -25693,7 +25761,7 @@ function ScrollShadows(props) {
|
|
|
25693
25761
|
}
|
|
25694
25762
|
}];
|
|
25695
25763
|
}, [horizontal, bgColor]);
|
|
25696
|
-
const updateScrollProps = (0,
|
|
25764
|
+
const updateScrollProps = (0, import_react143.useCallback)((el) => {
|
|
25697
25765
|
const {
|
|
25698
25766
|
scrollTop,
|
|
25699
25767
|
scrollHeight,
|
|
@@ -25708,12 +25776,12 @@ function ScrollShadows(props) {
|
|
|
25708
25776
|
setShowStartShadow(start > 0);
|
|
25709
25777
|
setShowEndShadow(start + boxSize < end);
|
|
25710
25778
|
}, [horizontal]);
|
|
25711
|
-
const onResize = (0,
|
|
25779
|
+
const onResize = (0, import_react143.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
25712
25780
|
(0, import_utils166.useResizeObserver)({
|
|
25713
25781
|
ref: scrollRef,
|
|
25714
25782
|
onResize
|
|
25715
25783
|
});
|
|
25716
|
-
return /* @__PURE__ */ (0,
|
|
25784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime203.jsxs)("div", { ...(0, import_runtime126.trussProps)({
|
|
25717
25785
|
display: "df",
|
|
25718
25786
|
flexDirection: ["fd_var", {
|
|
25719
25787
|
"--flexDirection": (0, import_runtime126.maybeCssVar)(!horizontal ? "column" : "row")
|
|
@@ -25729,7 +25797,7 @@ function ScrollShadows(props) {
|
|
|
25729
25797
|
width: width2
|
|
25730
25798
|
}
|
|
25731
25799
|
}), ...tid, children: [
|
|
25732
|
-
/* @__PURE__ */ (0,
|
|
25800
|
+
/* @__PURE__ */ (0, import_jsx_runtime203.jsx)("div", { ...(0, import_runtime126.trussProps)({
|
|
25733
25801
|
...startShadowStyles,
|
|
25734
25802
|
...{
|
|
25735
25803
|
opacity: ["o_var", {
|
|
@@ -25737,7 +25805,7 @@ function ScrollShadows(props) {
|
|
|
25737
25805
|
}]
|
|
25738
25806
|
}
|
|
25739
25807
|
}), "data-chromatic": "ignore" }),
|
|
25740
|
-
/* @__PURE__ */ (0,
|
|
25808
|
+
/* @__PURE__ */ (0, import_jsx_runtime203.jsx)("div", { ...(0, import_runtime126.trussProps)({
|
|
25741
25809
|
...endShadowStyles,
|
|
25742
25810
|
...{
|
|
25743
25811
|
opacity: ["o_var", {
|
|
@@ -25745,7 +25813,7 @@ function ScrollShadows(props) {
|
|
|
25745
25813
|
}]
|
|
25746
25814
|
}
|
|
25747
25815
|
}), "data-chromatic": "ignore" }),
|
|
25748
|
-
/* @__PURE__ */ (0,
|
|
25816
|
+
/* @__PURE__ */ (0, import_jsx_runtime203.jsx)("div", { ...(0, import_runtime126.trussProps)({
|
|
25749
25817
|
...xss,
|
|
25750
25818
|
...{
|
|
25751
25819
|
overflow: "oa",
|
|
@@ -25757,8 +25825,8 @@ function ScrollShadows(props) {
|
|
|
25757
25825
|
}
|
|
25758
25826
|
|
|
25759
25827
|
// src/layouts/SideNavLayout/SideNavLayoutContext.tsx
|
|
25760
|
-
var
|
|
25761
|
-
var
|
|
25828
|
+
var import_react144 = require("react");
|
|
25829
|
+
var import_jsx_runtime204 = require("react/jsx-runtime");
|
|
25762
25830
|
var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
|
|
25763
25831
|
function loadStoredNavState() {
|
|
25764
25832
|
try {
|
|
@@ -25780,20 +25848,20 @@ function resolveInitialNavState(defaultNavState) {
|
|
|
25780
25848
|
}
|
|
25781
25849
|
return loadStoredNavState() ?? defaultNavState ?? "expanded";
|
|
25782
25850
|
}
|
|
25783
|
-
var SideNavLayoutContext = (0,
|
|
25851
|
+
var SideNavLayoutContext = (0, import_react144.createContext)(void 0);
|
|
25784
25852
|
function SideNavLayoutProvider(props) {
|
|
25785
|
-
const [navState, setNavStateInternal] = (0,
|
|
25853
|
+
const [navState, setNavStateInternal] = (0, import_react144.useState)(
|
|
25786
25854
|
() => resolveInitialNavState(props.defaultNavState)
|
|
25787
25855
|
);
|
|
25788
25856
|
const bp = useBreakpoint();
|
|
25789
|
-
const prevMdAndUp = (0,
|
|
25790
|
-
(0,
|
|
25857
|
+
const prevMdAndUp = (0, import_react144.useRef)(bp.mdAndUp);
|
|
25858
|
+
(0, import_react144.useEffect)(() => {
|
|
25791
25859
|
if (prevMdAndUp.current && !bp.mdAndUp) {
|
|
25792
25860
|
setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
|
|
25793
25861
|
}
|
|
25794
25862
|
prevMdAndUp.current = bp.mdAndUp;
|
|
25795
25863
|
}, [bp.mdAndUp]);
|
|
25796
|
-
const setNavState = (0,
|
|
25864
|
+
const setNavState = (0, import_react144.useCallback)((value2) => {
|
|
25797
25865
|
setNavStateInternal((prev) => {
|
|
25798
25866
|
const next = typeof value2 === "function" ? value2(prev) : value2;
|
|
25799
25867
|
if (next === "expanded" || next === "collapse") {
|
|
@@ -25805,20 +25873,20 @@ function SideNavLayoutProvider(props) {
|
|
|
25805
25873
|
return next;
|
|
25806
25874
|
});
|
|
25807
25875
|
}, []);
|
|
25808
|
-
const value = (0,
|
|
25809
|
-
return /* @__PURE__ */ (0,
|
|
25876
|
+
const value = (0, import_react144.useMemo)(() => ({ navState, setNavState }), [navState, setNavState]);
|
|
25877
|
+
return /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(SideNavLayoutContext.Provider, { value, children: props.children });
|
|
25810
25878
|
}
|
|
25811
25879
|
function useSideNavLayoutContext() {
|
|
25812
|
-
return (0,
|
|
25880
|
+
return (0, import_react144.useContext)(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
|
|
25813
25881
|
} };
|
|
25814
25882
|
}
|
|
25815
25883
|
function useHasSideNavLayoutProvider() {
|
|
25816
|
-
return (0,
|
|
25884
|
+
return (0, import_react144.useContext)(SideNavLayoutContext) !== void 0;
|
|
25817
25885
|
}
|
|
25818
25886
|
|
|
25819
25887
|
// src/components/SideNav/SideNav.tsx
|
|
25820
25888
|
var import_runtime127 = require("@homebound/truss/runtime");
|
|
25821
|
-
var
|
|
25889
|
+
var import_jsx_runtime205 = require("react/jsx-runtime");
|
|
25822
25890
|
function SideNav(props) {
|
|
25823
25891
|
const {
|
|
25824
25892
|
top,
|
|
@@ -25831,8 +25899,8 @@ function SideNav(props) {
|
|
|
25831
25899
|
const tid = useTestIds(props, "sideNav");
|
|
25832
25900
|
const panelCollapsed = navState === "collapse";
|
|
25833
25901
|
const hideOnCollapse = panelCollapsed && !allItemsHaveIcons(items);
|
|
25834
|
-
return /* @__PURE__ */ (0,
|
|
25835
|
-
top !== void 0 && /* @__PURE__ */ (0,
|
|
25902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime205.jsxs)("nav", { className: "df fdc h100 fs0", ...tid, children: [
|
|
25903
|
+
top !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime205.jsx)("div", { ...(0, import_runtime127.trussProps)({
|
|
25836
25904
|
flexShrink: "fs0",
|
|
25837
25905
|
paddingLeft: "pl2",
|
|
25838
25906
|
paddingRight: "pr2",
|
|
@@ -25843,7 +25911,7 @@ function SideNav(props) {
|
|
|
25843
25911
|
paddingBottom: "pb4"
|
|
25844
25912
|
} : {}
|
|
25845
25913
|
}), ...tid.top, children: top }),
|
|
25846
|
-
/* @__PURE__ */ (0,
|
|
25914
|
+
/* @__PURE__ */ (0, import_jsx_runtime205.jsx)("div", { ...(0, import_runtime127.trussProps)({
|
|
25847
25915
|
flexGrow: "fg1",
|
|
25848
25916
|
overflowY: "oya",
|
|
25849
25917
|
display: "df",
|
|
@@ -25855,8 +25923,8 @@ function SideNav(props) {
|
|
|
25855
25923
|
...top === void 0 ? {
|
|
25856
25924
|
paddingTop: "pt5"
|
|
25857
25925
|
} : {}
|
|
25858
|
-
}), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ (0,
|
|
25859
|
-
footer !== void 0 && /* @__PURE__ */ (0,
|
|
25926
|
+
}), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(AppNavItems, { items, panelCollapsed }) }),
|
|
25927
|
+
footer !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime205.jsx)("div", { ...(0, import_runtime127.trussProps)({
|
|
25860
25928
|
flexShrink: "fs0",
|
|
25861
25929
|
paddingLeft: "pl2",
|
|
25862
25930
|
paddingRight: "pr2",
|
|
@@ -25872,10 +25940,10 @@ function SideNav(props) {
|
|
|
25872
25940
|
}
|
|
25873
25941
|
|
|
25874
25942
|
// src/components/Snackbar/useSnackbar.tsx
|
|
25875
|
-
var
|
|
25943
|
+
var import_react145 = require("react");
|
|
25876
25944
|
function useSnackbar() {
|
|
25877
25945
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
25878
|
-
const onClose = (0,
|
|
25946
|
+
const onClose = (0, import_react145.useCallback)(
|
|
25879
25947
|
(noticeId) => {
|
|
25880
25948
|
setNotices((prev) => {
|
|
25881
25949
|
let returnValue = prev;
|
|
@@ -25892,7 +25960,7 @@ function useSnackbar() {
|
|
|
25892
25960
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25893
25961
|
[]
|
|
25894
25962
|
);
|
|
25895
|
-
const triggerNotice = (0,
|
|
25963
|
+
const triggerNotice = (0, import_react145.useCallback)(
|
|
25896
25964
|
(props) => {
|
|
25897
25965
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
25898
25966
|
let maybeTimeout;
|
|
@@ -25921,8 +25989,8 @@ function useSnackbar() {
|
|
|
25921
25989
|
},
|
|
25922
25990
|
[onClose, setNotices]
|
|
25923
25991
|
);
|
|
25924
|
-
const closeNotice = (0,
|
|
25925
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
25992
|
+
const closeNotice = (0, import_react145.useCallback)((id) => onClose(id), [onClose]);
|
|
25993
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react145.useEffect)(() => {
|
|
25926
25994
|
setOffset({ bottom });
|
|
25927
25995
|
return () => setOffset({});
|
|
25928
25996
|
}, [bottom]);
|
|
@@ -25931,11 +25999,11 @@ function useSnackbar() {
|
|
|
25931
25999
|
var snackbarId = 1;
|
|
25932
26000
|
|
|
25933
26001
|
// src/components/Stepper.tsx
|
|
25934
|
-
var
|
|
26002
|
+
var import_react146 = require("react");
|
|
25935
26003
|
var import_react_aria63 = require("react-aria");
|
|
25936
26004
|
var import_runtime128 = require("@homebound/truss/runtime");
|
|
25937
|
-
var
|
|
25938
|
-
var
|
|
26005
|
+
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
26006
|
+
var import_react147 = require("react");
|
|
25939
26007
|
var __maybeInc25 = (inc) => {
|
|
25940
26008
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25941
26009
|
};
|
|
@@ -25953,8 +26021,8 @@ function Stepper(props) {
|
|
|
25953
26021
|
const maxStepWidth = 200;
|
|
25954
26022
|
const minStepWidth = 100;
|
|
25955
26023
|
const gap = 8;
|
|
25956
|
-
return /* @__PURE__ */ (0,
|
|
25957
|
-
/* @__PURE__ */ (0,
|
|
26024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
|
|
26025
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)("ol", { ...(0, import_runtime128.trussProps)({
|
|
25958
26026
|
padding: "p_0",
|
|
25959
26027
|
margin: "m_0",
|
|
25960
26028
|
listStyle: "lis_none",
|
|
@@ -25964,7 +26032,7 @@ function Stepper(props) {
|
|
|
25964
26032
|
}]
|
|
25965
26033
|
}), children: steps.map((step) => {
|
|
25966
26034
|
const isCurrent = currentStep === step.value;
|
|
25967
|
-
return /* @__PURE__ */ (0,
|
|
26035
|
+
return /* @__PURE__ */ (0, import_react147.createElement)("li", { ...(0, import_runtime128.trussProps)({
|
|
25968
26036
|
display: "df",
|
|
25969
26037
|
flexGrow: "fg1",
|
|
25970
26038
|
flexDirection: "fdc",
|
|
@@ -25974,9 +26042,9 @@ function Stepper(props) {
|
|
|
25974
26042
|
minWidth: ["mw_var", {
|
|
25975
26043
|
"--minWidth": `${minStepWidth}px`
|
|
25976
26044
|
}]
|
|
25977
|
-
}), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0,
|
|
26045
|
+
}), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
|
|
25978
26046
|
}) }),
|
|
25979
|
-
/* @__PURE__ */ (0,
|
|
26047
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ...(0, import_runtime128.trussProps)({
|
|
25980
26048
|
marginTop: "mt1",
|
|
25981
26049
|
backgroundColor: ["bgColor_var", {
|
|
25982
26050
|
"--backgroundColor": "var(--b-field-border-default)"
|
|
@@ -25989,7 +26057,7 @@ function Stepper(props) {
|
|
|
25989
26057
|
"--minWidth": `${steps.length * minStepWidth + (steps.length - 1) * gap}px`
|
|
25990
26058
|
}],
|
|
25991
26059
|
width: "w100"
|
|
25992
|
-
}), children: /* @__PURE__ */ (0,
|
|
26060
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ...(0, import_runtime128.trussProps)({
|
|
25993
26061
|
backgroundColor: ["bgColor_var", {
|
|
25994
26062
|
"--backgroundColor": "var(--b-primary)"
|
|
25995
26063
|
}],
|
|
@@ -26013,7 +26081,7 @@ function StepButton(props) {
|
|
|
26013
26081
|
onPress: onClick,
|
|
26014
26082
|
isDisabled: disabled
|
|
26015
26083
|
};
|
|
26016
|
-
const ref = (0,
|
|
26084
|
+
const ref = (0, import_react146.useRef)(null);
|
|
26017
26085
|
const {
|
|
26018
26086
|
buttonProps,
|
|
26019
26087
|
isPressed
|
|
@@ -26032,7 +26100,7 @@ function StepButton(props) {
|
|
|
26032
26100
|
boxShadow: "bshFocus"
|
|
26033
26101
|
};
|
|
26034
26102
|
const tid = useTestIds(props, "stepButton");
|
|
26035
|
-
return /* @__PURE__ */ (0,
|
|
26103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...(0, import_runtime128.trussProps)({
|
|
26036
26104
|
...{
|
|
26037
26105
|
fontWeight: "fw6",
|
|
26038
26106
|
fontSize: "fz_14px",
|
|
@@ -26093,7 +26161,7 @@ function StepButton(props) {
|
|
|
26093
26161
|
} : {},
|
|
26094
26162
|
...isFocusVisible ? focusRingStyles2 : {}
|
|
26095
26163
|
}), ...tid[defaultTestId(label)], children: [
|
|
26096
|
-
/* @__PURE__ */ (0,
|
|
26164
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)("span", { className: "fs0 mr_4px", children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
26097
26165
|
label
|
|
26098
26166
|
] });
|
|
26099
26167
|
}
|
|
@@ -26104,12 +26172,12 @@ function StepIcon({
|
|
|
26104
26172
|
isCurrent = false
|
|
26105
26173
|
}) {
|
|
26106
26174
|
if (state === "error") {
|
|
26107
|
-
return /* @__PURE__ */ (0,
|
|
26175
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(Icon, { icon: "errorCircle" });
|
|
26108
26176
|
}
|
|
26109
26177
|
if (state === "complete") {
|
|
26110
|
-
return /* @__PURE__ */ (0,
|
|
26178
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(Icon, { icon: "check" });
|
|
26111
26179
|
}
|
|
26112
|
-
return /* @__PURE__ */ (0,
|
|
26180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ...(0, import_runtime128.trussProps)({
|
|
26113
26181
|
width: "w_10px",
|
|
26114
26182
|
height: "h_10px",
|
|
26115
26183
|
borderStyle: "bss",
|
|
@@ -26123,10 +26191,10 @@ function StepIcon({
|
|
|
26123
26191
|
}
|
|
26124
26192
|
|
|
26125
26193
|
// src/components/StepperTabs/StepperTab.tsx
|
|
26126
|
-
var
|
|
26194
|
+
var import_react148 = require("react");
|
|
26127
26195
|
var import_react_aria64 = require("react-aria");
|
|
26128
26196
|
var import_runtime129 = require("@homebound/truss/runtime");
|
|
26129
|
-
var
|
|
26197
|
+
var import_jsx_runtime207 = require("react/jsx-runtime");
|
|
26130
26198
|
function StepperTab(props) {
|
|
26131
26199
|
const {
|
|
26132
26200
|
label,
|
|
@@ -26142,7 +26210,7 @@ function StepperTab(props) {
|
|
|
26142
26210
|
onPress: () => onClick(value),
|
|
26143
26211
|
isDisabled: disabled || collapsed
|
|
26144
26212
|
};
|
|
26145
|
-
const ref = (0,
|
|
26213
|
+
const ref = (0, import_react148.useRef)(null);
|
|
26146
26214
|
const {
|
|
26147
26215
|
buttonProps
|
|
26148
26216
|
} = (0, import_react_aria64.useButton)(ariaProps, ref);
|
|
@@ -26157,7 +26225,7 @@ function StepperTab(props) {
|
|
|
26157
26225
|
const isHovered = __storyState?.hovered ?? isHoveredFromEvents;
|
|
26158
26226
|
const isFocusVisible = __storyState?.focusVisible ?? isFocusVisibleFromEvents;
|
|
26159
26227
|
const tid = useTestIds(props, "stepperTab");
|
|
26160
|
-
return /* @__PURE__ */ (0,
|
|
26228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)("button", { ref, ...(0, import_react_aria64.mergeProps)(buttonProps, focusProps, hoverProps), "aria-label": label, ...(0, import_runtime129.trussProps)({
|
|
26161
26229
|
...stepperTabStyles.baseStyles,
|
|
26162
26230
|
...getStateStyles(active, completed),
|
|
26163
26231
|
...isHovered && !disabled ? stepperTabStyles.hoverStyles : {},
|
|
@@ -26165,10 +26233,10 @@ function StepperTab(props) {
|
|
|
26165
26233
|
...disabled ? stepperTabStyles.disabledStyles : {},
|
|
26166
26234
|
...isFocusVisible ? stepperTabStyles.focusRingStyles : {}
|
|
26167
26235
|
}), ...tid[defaultTestId(value)], children: [
|
|
26168
|
-
!collapsed && /* @__PURE__ */ (0,
|
|
26169
|
-
/* @__PURE__ */ (0,
|
|
26170
|
-
/* @__PURE__ */ (0,
|
|
26171
|
-
/* @__PURE__ */ (0,
|
|
26236
|
+
!collapsed && /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)(import_jsx_runtime207.Fragment, { children: [
|
|
26237
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsxs)("span", { className: "dg jic mw0", children: [
|
|
26238
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)("span", { className: "fw6 fz_14px lh_20px visibility_hidden gridArea_1_1 oh d_negwebkit_box wbo_vertical to_ellipsis wlc_1 wordBreak_break_all", "aria-hidden": true, children: label }),
|
|
26239
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)("span", { ...(0, import_runtime129.trussProps)({
|
|
26172
26240
|
gridArea: "gridArea_1_1",
|
|
26173
26241
|
overflow: "oh",
|
|
26174
26242
|
display: "d_negwebkit_box",
|
|
@@ -26183,7 +26251,7 @@ function StepperTab(props) {
|
|
|
26183
26251
|
} : {}
|
|
26184
26252
|
}), children: label })
|
|
26185
26253
|
] }),
|
|
26186
|
-
/* @__PURE__ */ (0,
|
|
26254
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)("span", { ...(0, import_runtime129.trussProps)({
|
|
26187
26255
|
flexShrink: "fs0",
|
|
26188
26256
|
marginLeft: "ml1",
|
|
26189
26257
|
transition: "transitionAll",
|
|
@@ -26193,10 +26261,10 @@ function StepperTab(props) {
|
|
|
26193
26261
|
opacity: "o100",
|
|
26194
26262
|
transform: "transform_scale_1_translateY_0"
|
|
26195
26263
|
} : {}
|
|
26196
|
-
}), children: /* @__PURE__ */ (0,
|
|
26264
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(Icon, { icon: "check", inc: 2.5, ...tid.check }) })
|
|
26197
26265
|
] }),
|
|
26198
|
-
/* @__PURE__ */ (0,
|
|
26199
|
-
/* @__PURE__ */ (0,
|
|
26266
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)("span", { "aria-hidden": true, ...(0, import_runtime129.trussProps)(getIndicatorStyles(active, completed, disabled)), ...tid.indicator }),
|
|
26267
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)(import_react_aria64.VisuallyHidden, { children: completed ? "Complete" : "Not Complete" })
|
|
26200
26268
|
] });
|
|
26201
26269
|
}
|
|
26202
26270
|
function getStateStyles(active, completed) {
|
|
@@ -26278,8 +26346,8 @@ var stepperTabStyles = {
|
|
|
26278
26346
|
|
|
26279
26347
|
// src/components/StepperTabs/StepperTabs.tsx
|
|
26280
26348
|
var import_runtime130 = require("@homebound/truss/runtime");
|
|
26281
|
-
var
|
|
26282
|
-
var
|
|
26349
|
+
var import_jsx_runtime208 = require("react/jsx-runtime");
|
|
26350
|
+
var import_react149 = require("react");
|
|
26283
26351
|
function StepperTabs(props) {
|
|
26284
26352
|
const {
|
|
26285
26353
|
steps,
|
|
@@ -26294,7 +26362,7 @@ function StepperTabs(props) {
|
|
|
26294
26362
|
const collapsed = isMobile || !!forceCollapsed;
|
|
26295
26363
|
const capWidth = steps.length <= 3;
|
|
26296
26364
|
const currentStepIndex = Math.max(0, steps.findIndex((step) => step.value === currentStep));
|
|
26297
|
-
return /* @__PURE__ */ (0,
|
|
26365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime208.jsx)("nav", { "aria-label": "steps", className: "w100", ...tid, children: /* @__PURE__ */ (0, import_jsx_runtime208.jsx)("ol", { ...(0, import_runtime130.trussProps)({
|
|
26298
26366
|
padding: "p_0",
|
|
26299
26367
|
margin: "m_0",
|
|
26300
26368
|
listStyle: "lis_none",
|
|
@@ -26309,7 +26377,7 @@ function StepperTabs(props) {
|
|
|
26309
26377
|
}), children: steps.map((step, idx) => {
|
|
26310
26378
|
const isCurrent = idx === currentStepIndex;
|
|
26311
26379
|
const isCompleted = idx < currentStepIndex;
|
|
26312
|
-
return /* @__PURE__ */ (0,
|
|
26380
|
+
return /* @__PURE__ */ (0, import_react149.createElement)("li", { ...(0, import_runtime130.trussProps)({
|
|
26313
26381
|
display: "df",
|
|
26314
26382
|
flexGrow: "fg1",
|
|
26315
26383
|
flexBasis: "fb_0",
|
|
@@ -26321,7 +26389,7 @@ function StepperTabs(props) {
|
|
|
26321
26389
|
"--maxWidth": `${maxStepWidthPx}px`
|
|
26322
26390
|
}]
|
|
26323
26391
|
} : {}
|
|
26324
|
-
}), key: step.value, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0,
|
|
26392
|
+
}), key: step.value, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(StepperTab, { label: step.label, value: step.value, active: isCurrent, completed: isCompleted, disabled: step.disabled, collapsed, onClick: onChange, ...tid.tab }));
|
|
26325
26393
|
}) }) });
|
|
26326
26394
|
}
|
|
26327
26395
|
var maxStepWidthPx = 280;
|
|
@@ -26330,7 +26398,7 @@ var gapPx = 6;
|
|
|
26330
26398
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
26331
26399
|
var import_react_dom8 = require("react-dom");
|
|
26332
26400
|
var import_runtime131 = require("@homebound/truss/runtime");
|
|
26333
|
-
var
|
|
26401
|
+
var import_jsx_runtime209 = require("react/jsx-runtime");
|
|
26334
26402
|
function SuperDrawerHeader(props) {
|
|
26335
26403
|
const {
|
|
26336
26404
|
hideControls
|
|
@@ -26347,20 +26415,20 @@ function SuperDrawerHeader(props) {
|
|
|
26347
26415
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
26348
26416
|
const isDetail = currentContent !== firstContent;
|
|
26349
26417
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
26350
|
-
return (0, import_react_dom8.createPortal)(/* @__PURE__ */ (0,
|
|
26351
|
-
isStructuredProps(props) ? /* @__PURE__ */ (0,
|
|
26352
|
-
/* @__PURE__ */ (0,
|
|
26353
|
-
/* @__PURE__ */ (0,
|
|
26418
|
+
return (0, import_react_dom8.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime209.jsxs)("div", { className: "df aic jcsb gap3", ...tid, children: [
|
|
26419
|
+
isStructuredProps(props) ? /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)("div", { className: "df jcsb aic gap2 fg1", children: [
|
|
26420
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsxs)("div", { className: "fg1 df aic gap2", children: [
|
|
26421
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)("h1", { className: "fw6 fz_30px lh_36px", children: props.title }),
|
|
26354
26422
|
props.left
|
|
26355
26423
|
] }),
|
|
26356
|
-
props.right && /* @__PURE__ */ (0,
|
|
26357
|
-
] }) : /* @__PURE__ */ (0,
|
|
26358
|
-
!hideControls && /* @__PURE__ */ (0,
|
|
26424
|
+
props.right && /* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { className: "fs0", children: props.right })
|
|
26425
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { className: "fg1", children: props.children }),
|
|
26426
|
+
!hideControls && /* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { ...(0, import_runtime131.trussProps)({
|
|
26359
26427
|
flexShrink: "fs0",
|
|
26360
26428
|
...isDetail ? {
|
|
26361
26429
|
visibility: "vh"
|
|
26362
26430
|
} : {}
|
|
26363
|
-
}), children: /* @__PURE__ */ (0,
|
|
26431
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(ButtonGroup, { buttons: [{
|
|
26364
26432
|
icon: "chevronLeft",
|
|
26365
26433
|
onClick: () => onPrevClick && onPrevClick(),
|
|
26366
26434
|
disabled: !onPrevClick
|
|
@@ -26379,8 +26447,8 @@ function isStructuredProps(props) {
|
|
|
26379
26447
|
var import_framer_motion7 = require("framer-motion");
|
|
26380
26448
|
|
|
26381
26449
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
26382
|
-
var
|
|
26383
|
-
var
|
|
26450
|
+
var import_react150 = require("react");
|
|
26451
|
+
var import_jsx_runtime210 = require("react/jsx-runtime");
|
|
26384
26452
|
function useSuperDrawer() {
|
|
26385
26453
|
const {
|
|
26386
26454
|
drawerContentStack: contentStack,
|
|
@@ -26392,7 +26460,7 @@ function useSuperDrawer() {
|
|
|
26392
26460
|
function canCloseDrawerDetails(i, doChange) {
|
|
26393
26461
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
26394
26462
|
if (!canClose(canCloseDrawerDetail)) {
|
|
26395
|
-
openModal({ content: /* @__PURE__ */ (0,
|
|
26463
|
+
openModal({ content: /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
26396
26464
|
return false;
|
|
26397
26465
|
}
|
|
26398
26466
|
}
|
|
@@ -26412,14 +26480,14 @@ function useSuperDrawer() {
|
|
|
26412
26480
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
26413
26481
|
if (!canClose(canCloseDrawer)) {
|
|
26414
26482
|
openModal({
|
|
26415
|
-
content: /* @__PURE__ */ (0,
|
|
26483
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
26416
26484
|
});
|
|
26417
26485
|
return;
|
|
26418
26486
|
}
|
|
26419
26487
|
}
|
|
26420
26488
|
doChange();
|
|
26421
26489
|
}
|
|
26422
|
-
const closeActions = (0,
|
|
26490
|
+
const closeActions = (0, import_react150.useMemo)(
|
|
26423
26491
|
() => {
|
|
26424
26492
|
return {
|
|
26425
26493
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -26454,7 +26522,7 @@ function useSuperDrawer() {
|
|
|
26454
26522
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26455
26523
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
26456
26524
|
);
|
|
26457
|
-
const actions = (0,
|
|
26525
|
+
const actions = (0, import_react150.useMemo)(
|
|
26458
26526
|
() => {
|
|
26459
26527
|
return {
|
|
26460
26528
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -26508,7 +26576,7 @@ function canClose(canCloseCheck) {
|
|
|
26508
26576
|
|
|
26509
26577
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
26510
26578
|
var import_runtime132 = require("@homebound/truss/runtime");
|
|
26511
|
-
var
|
|
26579
|
+
var import_jsx_runtime211 = require("react/jsx-runtime");
|
|
26512
26580
|
var SuperDrawerContent = ({
|
|
26513
26581
|
children,
|
|
26514
26582
|
actions
|
|
@@ -26528,17 +26596,17 @@ var SuperDrawerContent = ({
|
|
|
26528
26596
|
} = firstContent ?? {};
|
|
26529
26597
|
function wrapWithMotionAndMaybeBack(children2) {
|
|
26530
26598
|
if (kind === "open") {
|
|
26531
|
-
return /* @__PURE__ */ (0,
|
|
26599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_framer_motion7.motion.div, { className: "pt3 pb3 pr3 pl3 fg1 oa", children: children2 }, "content");
|
|
26532
26600
|
} else if (kind === "detail") {
|
|
26533
|
-
return /* @__PURE__ */ (0,
|
|
26601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime211.jsxs)(import_framer_motion7.motion.div, { className: "pl3 pr3 pt2 pb3 fg1", animate: {
|
|
26534
26602
|
overflow: "auto"
|
|
26535
26603
|
}, transition: {
|
|
26536
26604
|
overflow: {
|
|
26537
26605
|
delay: 0.3
|
|
26538
26606
|
}
|
|
26539
26607
|
}, children: [
|
|
26540
|
-
/* @__PURE__ */ (0,
|
|
26541
|
-
/* @__PURE__ */ (0,
|
|
26608
|
+
/* @__PURE__ */ (0, import_jsx_runtime211.jsx)(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
26609
|
+
/* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_framer_motion7.motion.div, { initial: {
|
|
26542
26610
|
x: width2,
|
|
26543
26611
|
opacity: 0
|
|
26544
26612
|
}, animate: {
|
|
@@ -26556,7 +26624,7 @@ var SuperDrawerContent = ({
|
|
|
26556
26624
|
}, className: "pt2", children: children2 })
|
|
26557
26625
|
] }, "content");
|
|
26558
26626
|
} else {
|
|
26559
|
-
return /* @__PURE__ */ (0,
|
|
26627
|
+
return /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_framer_motion7.motion.div, { ...(0, import_runtime132.mergeProps)(void 0, {
|
|
26560
26628
|
overflow: "auto"
|
|
26561
26629
|
}, {
|
|
26562
26630
|
paddingTop: "pt3",
|
|
@@ -26567,9 +26635,9 @@ var SuperDrawerContent = ({
|
|
|
26567
26635
|
}) }, "content");
|
|
26568
26636
|
}
|
|
26569
26637
|
}
|
|
26570
|
-
return /* @__PURE__ */ (0,
|
|
26638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime211.jsxs)(import_jsx_runtime211.Fragment, { children: [
|
|
26571
26639
|
wrapWithMotionAndMaybeBack(children),
|
|
26572
|
-
actions && /* @__PURE__ */ (0,
|
|
26640
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime211.jsx)("footer", { ...(0, import_runtime132.trussProps)({
|
|
26573
26641
|
borderTopStyle: "bts_solid",
|
|
26574
26642
|
borderTopWidth: "btw_1px",
|
|
26575
26643
|
borderColor: ["bc_var", {
|
|
@@ -26582,7 +26650,7 @@ var SuperDrawerContent = ({
|
|
|
26582
26650
|
display: "df",
|
|
26583
26651
|
alignItems: "aic",
|
|
26584
26652
|
justifyContent: "jcfe"
|
|
26585
|
-
}), children: /* @__PURE__ */ (0,
|
|
26653
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime211.jsx)("div", { className: "df gap1", children: actions.map((buttonProps, i) => /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(Button, { ...buttonProps }, i)) }) })
|
|
26586
26654
|
] });
|
|
26587
26655
|
};
|
|
26588
26656
|
|
|
@@ -26626,19 +26694,19 @@ function visit(rows, fn) {
|
|
|
26626
26694
|
|
|
26627
26695
|
// src/components/Tabs.tsx
|
|
26628
26696
|
var import_change_case9 = require("change-case");
|
|
26629
|
-
var
|
|
26697
|
+
var import_react151 = require("react");
|
|
26630
26698
|
var import_react_aria65 = require("react-aria");
|
|
26631
26699
|
var import_react_router = require("react-router");
|
|
26632
26700
|
var import_react_router_dom8 = require("react-router-dom");
|
|
26633
26701
|
var import_runtime133 = require("@homebound/truss/runtime");
|
|
26634
|
-
var
|
|
26702
|
+
var import_jsx_runtime212 = require("react/jsx-runtime");
|
|
26635
26703
|
function TabsWithContent(props) {
|
|
26636
26704
|
const styles = hideTabs(props) ? {} : {
|
|
26637
26705
|
paddingTop: "pt3"
|
|
26638
26706
|
};
|
|
26639
|
-
return /* @__PURE__ */ (0,
|
|
26640
|
-
/* @__PURE__ */ (0,
|
|
26641
|
-
/* @__PURE__ */ (0,
|
|
26707
|
+
return /* @__PURE__ */ (0, import_jsx_runtime212.jsxs)(import_jsx_runtime212.Fragment, { children: [
|
|
26708
|
+
/* @__PURE__ */ (0, import_jsx_runtime212.jsx)(Tabs, { ...props }),
|
|
26709
|
+
/* @__PURE__ */ (0, import_jsx_runtime212.jsx)(TabContent, { ...props, contentXss: {
|
|
26642
26710
|
...styles,
|
|
26643
26711
|
...props.contentXss
|
|
26644
26712
|
} })
|
|
@@ -26663,7 +26731,7 @@ function TabContent(props) {
|
|
|
26663
26731
|
return (
|
|
26664
26732
|
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
26665
26733
|
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
26666
|
-
/* @__PURE__ */ (0,
|
|
26734
|
+
/* @__PURE__ */ (0, import_jsx_runtime212.jsx)(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ (0, import_jsx_runtime212.jsx)("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...(0, import_runtime133.trussProps)(contentXss), children: selectedTab.render() }) })
|
|
26667
26735
|
);
|
|
26668
26736
|
}
|
|
26669
26737
|
function Tabs(props) {
|
|
@@ -26687,9 +26755,9 @@ function Tabs(props) {
|
|
|
26687
26755
|
focusProps
|
|
26688
26756
|
} = (0, import_react_aria65.useFocusRing)();
|
|
26689
26757
|
const tid = useTestIds(others, "tabs");
|
|
26690
|
-
const [active, setActive] = (0,
|
|
26691
|
-
const ref = (0,
|
|
26692
|
-
(0,
|
|
26758
|
+
const [active, setActive] = (0, import_react151.useState)(selected);
|
|
26759
|
+
const ref = (0, import_react151.useRef)(null);
|
|
26760
|
+
(0, import_react151.useEffect)(() => setActive(selected), [selected]);
|
|
26693
26761
|
function onKeyUp(e) {
|
|
26694
26762
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
26695
26763
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -26705,7 +26773,7 @@ function Tabs(props) {
|
|
|
26705
26773
|
setActive(selected);
|
|
26706
26774
|
}
|
|
26707
26775
|
}
|
|
26708
|
-
return /* @__PURE__ */ (0,
|
|
26776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime212.jsxs)("div", { ...(0, import_runtime133.trussProps)({
|
|
26709
26777
|
...{
|
|
26710
26778
|
display: "df",
|
|
26711
26779
|
alignItems: "aic",
|
|
@@ -26723,11 +26791,11 @@ function Tabs(props) {
|
|
|
26723
26791
|
}
|
|
26724
26792
|
} : {}
|
|
26725
26793
|
}), children: [
|
|
26726
|
-
!hideTabs(props) && /* @__PURE__ */ (0,
|
|
26794
|
+
!hideTabs(props) && /* @__PURE__ */ (0, import_jsx_runtime212.jsx)("div", { ref, className: "dif gap1 asfe", "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
26727
26795
|
const uniqueValue = uniqueTabValue(tab);
|
|
26728
|
-
return /* @__PURE__ */ (0,
|
|
26796
|
+
return /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(TabImpl, { active: active === uniqueValue, focusProps, isFocusVisible, onClick, onKeyUp, onBlur, tab, ...tid[defaultTestId(uniqueValue)] }, uniqueValue);
|
|
26729
26797
|
}) }),
|
|
26730
|
-
right && /* @__PURE__ */ (0,
|
|
26798
|
+
right && /* @__PURE__ */ (0, import_jsx_runtime212.jsx)("div", { className: "mla df aic gap1 pb1", children: right })
|
|
26731
26799
|
] });
|
|
26732
26800
|
}
|
|
26733
26801
|
function TabImpl(props) {
|
|
@@ -26761,7 +26829,7 @@ function TabImpl(props) {
|
|
|
26761
26829
|
hoverStyles: hoverStyles4,
|
|
26762
26830
|
disabledStyles: disabledStyles3,
|
|
26763
26831
|
activeHoverStyles
|
|
26764
|
-
} = (0,
|
|
26832
|
+
} = (0, import_react151.useMemo)(() => getTabStyles(), []);
|
|
26765
26833
|
const uniqueValue = uniqueTabValue(tab);
|
|
26766
26834
|
const tabProps = {
|
|
26767
26835
|
"aria-controls": `${uniqueValue}-tabPanel`,
|
|
@@ -26787,17 +26855,17 @@ function TabImpl(props) {
|
|
|
26787
26855
|
onClick: () => onClick(tab.value)
|
|
26788
26856
|
}
|
|
26789
26857
|
});
|
|
26790
|
-
const tabLabel = /* @__PURE__ */ (0,
|
|
26858
|
+
const tabLabel = /* @__PURE__ */ (0, import_jsx_runtime212.jsxs)(import_jsx_runtime212.Fragment, { children: [
|
|
26791
26859
|
label,
|
|
26792
|
-
(icon || endAdornment) && /* @__PURE__ */ (0,
|
|
26860
|
+
(icon || endAdornment) && /* @__PURE__ */ (0, import_jsx_runtime212.jsx)("span", { className: "ml1", children: icon ? /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(Icon, { icon }) : endAdornment })
|
|
26793
26861
|
] });
|
|
26794
26862
|
return isDisabled ? maybeTooltip({
|
|
26795
26863
|
title: resolveTooltip(disabled),
|
|
26796
26864
|
placement: "top",
|
|
26797
|
-
children: /* @__PURE__ */ (0,
|
|
26798
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */ (0,
|
|
26865
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime212.jsx)("div", { ...tabProps, children: tabLabel })
|
|
26866
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(import_react_router_dom8.Link, { ...(0, import_react_aria65.mergeProps)(tabProps, interactiveProps, {
|
|
26799
26867
|
className: "navLink"
|
|
26800
|
-
}), to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0,
|
|
26868
|
+
}), to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0, import_jsx_runtime212.jsx)("button", { ...{
|
|
26801
26869
|
...tabProps,
|
|
26802
26870
|
...interactiveProps
|
|
26803
26871
|
}, children: tabLabel });
|
|
@@ -26905,7 +26973,7 @@ function hideTabs(props) {
|
|
|
26905
26973
|
}
|
|
26906
26974
|
|
|
26907
26975
|
// src/components/TagGroup.tsx
|
|
26908
|
-
var
|
|
26976
|
+
var import_jsx_runtime213 = require("react/jsx-runtime");
|
|
26909
26977
|
function TagGroup(props) {
|
|
26910
26978
|
const {
|
|
26911
26979
|
tags,
|
|
@@ -26913,30 +26981,30 @@ function TagGroup(props) {
|
|
|
26913
26981
|
...otherProps
|
|
26914
26982
|
} = props;
|
|
26915
26983
|
const tid = useTestIds(otherProps, "tagGroup");
|
|
26916
|
-
return /* @__PURE__ */ (0,
|
|
26917
|
-
tags.map((tag) => /* @__PURE__ */ (0,
|
|
26918
|
-
onEdit && /* @__PURE__ */ (0,
|
|
26984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime213.jsxs)("div", { ...tid, className: "df aic fww gap1", children: [
|
|
26985
|
+
tags.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(Tag, { ...tag, variant: "secondary" }, tag.text)),
|
|
26986
|
+
onEdit && /* @__PURE__ */ (0, import_jsx_runtime213.jsx)("span", { className: "ml1 fw4 fz_14px lh_20px", children: /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(Button, { label: "Edit", variant: "text", onClick: onEdit, ...tid.edit }) })
|
|
26919
26987
|
] });
|
|
26920
26988
|
}
|
|
26921
26989
|
|
|
26922
26990
|
// src/components/Toast/useToast.tsx
|
|
26923
|
-
var
|
|
26991
|
+
var import_react152 = require("react");
|
|
26924
26992
|
function useToast() {
|
|
26925
26993
|
const { setNotice, clear } = useToastContext();
|
|
26926
|
-
const showToast = (0,
|
|
26994
|
+
const showToast = (0, import_react152.useCallback)((props) => setNotice(props), [setNotice]);
|
|
26927
26995
|
return { showToast, clear };
|
|
26928
26996
|
}
|
|
26929
26997
|
|
|
26930
26998
|
// src/layouts/SideNavLayout/SideNavLayout.tsx
|
|
26931
26999
|
var import_runtime134 = require("@homebound/truss/runtime");
|
|
26932
|
-
var
|
|
27000
|
+
var import_jsx_runtime214 = require("react/jsx-runtime");
|
|
26933
27001
|
var __maybeInc26 = (inc) => {
|
|
26934
27002
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
26935
27003
|
};
|
|
26936
27004
|
function SideNavLayout(props) {
|
|
26937
27005
|
const hasProvider = useHasSideNavLayoutProvider();
|
|
26938
|
-
if (hasProvider) return /* @__PURE__ */ (0,
|
|
26939
|
-
return /* @__PURE__ */ (0,
|
|
27006
|
+
if (hasProvider) return /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(SideNavLayoutContent, { ...props });
|
|
27007
|
+
return /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(SideNavLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(SideNavLayoutContent, { ...props }) });
|
|
26940
27008
|
}
|
|
26941
27009
|
function SideNavLayoutContent(props) {
|
|
26942
27010
|
const {
|
|
@@ -26953,12 +27021,13 @@ function SideNavLayoutContent(props) {
|
|
|
26953
27021
|
const bp = useBreakpoint();
|
|
26954
27022
|
const tid = useTestIds(props, "sideNavLayout");
|
|
26955
27023
|
const railCollapsedWidthPx = 56;
|
|
27024
|
+
const showMobileSubNav = useRegisterMobileSubNav(sideNav);
|
|
26956
27025
|
const collapsed = navState === "collapse";
|
|
26957
|
-
const showRail = navState !== "hidden";
|
|
27026
|
+
const showRail = navState !== "hidden" && !showMobileSubNav;
|
|
26958
27027
|
const railOffsetPx = !showRail ? 0 : !bp.mdAndUp || collapsed ? railCollapsedWidthPx : railWidthPx;
|
|
26959
27028
|
const navTop = bannerAndNavbarChromeTop();
|
|
26960
27029
|
const railViewportHeight = `calc(var(${beamLayoutViewportHeightVar}, 100vh) - var(${beamEnvironmentBannerLayoutHeightVar}, 0px) - var(${beamNavbarLayoutHeightVar}, 0px))`;
|
|
26961
|
-
const rail = showRail && /* @__PURE__ */ (0,
|
|
27030
|
+
const rail = showRail && /* @__PURE__ */ (0, import_jsx_runtime214.jsxs)("div", { ...(0, import_runtime134.trussProps)({
|
|
26962
27031
|
...{
|
|
26963
27032
|
display: "df",
|
|
26964
27033
|
flexDirection: "fdc",
|
|
@@ -27015,18 +27084,18 @@ function SideNavLayoutContent(props) {
|
|
|
27015
27084
|
}
|
|
27016
27085
|
}
|
|
27017
27086
|
}), ...tid.sideNav, children: [
|
|
27018
|
-
showCollapseToggle && /* @__PURE__ */ (0,
|
|
27019
|
-
/* @__PURE__ */ (0,
|
|
27087
|
+
showCollapseToggle && /* @__PURE__ */ (0, import_jsx_runtime214.jsx)("div", { className: "absolute right2 top2 z2", children: /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
|
|
27088
|
+
/* @__PURE__ */ (0, import_jsx_runtime214.jsx)("div", { className: "fg1 mh0 df fdc", ...tid.sideNavContent, children: /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(SideNav, { ...sideNav }) })
|
|
27020
27089
|
] });
|
|
27021
|
-
return /* @__PURE__ */ (0,
|
|
27090
|
+
return /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime214.jsxs)("div", { ...(0, import_runtime134.mergeProps)(void 0, {
|
|
27022
27091
|
[beamSideNavLayoutWidthVar]: `${railOffsetPx}px`
|
|
27023
27092
|
}, {
|
|
27024
27093
|
display: "df",
|
|
27025
27094
|
flexDirection: "fdr",
|
|
27026
27095
|
width: "w100"
|
|
27027
27096
|
}), ...tid, children: [
|
|
27028
|
-
contrastRail ? /* @__PURE__ */ (0,
|
|
27029
|
-
/* @__PURE__ */ (0,
|
|
27097
|
+
contrastRail ? /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(ContrastScope, { children: rail }) : rail,
|
|
27098
|
+
/* @__PURE__ */ (0, import_jsx_runtime214.jsx)("div", { ...(0, import_runtime134.trussProps)({
|
|
27030
27099
|
display: "df",
|
|
27031
27100
|
flexDirection: "fdc",
|
|
27032
27101
|
flexGrow: "fg1",
|
|
@@ -27043,7 +27112,7 @@ function SideNavLayoutContent(props) {
|
|
|
27043
27112
|
|
|
27044
27113
|
// src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayout.tsx
|
|
27045
27114
|
var import_runtime135 = require("@homebound/truss/runtime");
|
|
27046
|
-
var
|
|
27115
|
+
var import_jsx_runtime215 = require("react/jsx-runtime");
|
|
27047
27116
|
var __maybeInc27 = (inc) => {
|
|
27048
27117
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
27049
27118
|
};
|
|
@@ -27059,18 +27128,18 @@ function EnvironmentBannerLayout(props) {
|
|
|
27059
27128
|
[beamEnvironmentBannerLayoutHeightVar]: `${bannerHeightPx}px`
|
|
27060
27129
|
};
|
|
27061
27130
|
const innerWidth = `var(${beamLayoutViewportWidthVar}, 100vw)`;
|
|
27062
|
-
return /* @__PURE__ */ (0,
|
|
27131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime215.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime215.jsx)(EnvironmentBannerLayoutHeightProvider, { value: bannerHeightPx, children: /* @__PURE__ */ (0, import_jsx_runtime215.jsxs)("div", { ...(0, import_runtime135.mergeProps)(void 0, style, {
|
|
27063
27132
|
display: "df",
|
|
27064
27133
|
flexDirection: "fdc",
|
|
27065
27134
|
width: "wfc",
|
|
27066
27135
|
minWidth: "mw100"
|
|
27067
27136
|
}), ...tid, children: [
|
|
27068
|
-
showBanner && environmentBanner && /* @__PURE__ */ (0,
|
|
27137
|
+
showBanner && environmentBanner && /* @__PURE__ */ (0, import_jsx_runtime215.jsx)("div", { ...(0, import_runtime135.mergeProps)(void 0, {
|
|
27069
27138
|
height: environmentBannerSizePx
|
|
27070
27139
|
}, {
|
|
27071
27140
|
flexShrink: "fs0",
|
|
27072
27141
|
width: "w100"
|
|
27073
|
-
}), children: /* @__PURE__ */ (0,
|
|
27142
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime215.jsx)("div", { ...(0, import_runtime135.trussProps)({
|
|
27074
27143
|
position: "fixed",
|
|
27075
27144
|
top: "top0",
|
|
27076
27145
|
left: "left0",
|
|
@@ -27080,14 +27149,14 @@ function EnvironmentBannerLayout(props) {
|
|
|
27080
27149
|
width: ["w_var", {
|
|
27081
27150
|
"--width": (0, import_runtime135.maybeCssVar)(__maybeInc27(innerWidth))
|
|
27082
27151
|
}]
|
|
27083
|
-
}), ...tid.bannerSticky, children: /* @__PURE__ */ (0,
|
|
27152
|
+
}), ...tid.bannerSticky, children: /* @__PURE__ */ (0, import_jsx_runtime215.jsx)(EnvironmentBanner, { ...environmentBanner, ...tid.environmentBanner }) }) }),
|
|
27084
27153
|
children
|
|
27085
27154
|
] }) }) });
|
|
27086
27155
|
}
|
|
27087
27156
|
|
|
27088
27157
|
// src/layouts/FormSectionLayout/FormSectionLayout.tsx
|
|
27089
27158
|
var import_runtime136 = require("@homebound/truss/runtime");
|
|
27090
|
-
var
|
|
27159
|
+
var import_jsx_runtime216 = require("react/jsx-runtime");
|
|
27091
27160
|
function FormSectionLayout(props) {
|
|
27092
27161
|
const {
|
|
27093
27162
|
title,
|
|
@@ -27097,14 +27166,14 @@ function FormSectionLayout(props) {
|
|
|
27097
27166
|
sections
|
|
27098
27167
|
} = props;
|
|
27099
27168
|
const tid = useTestIds(props, "formSectionLayout");
|
|
27100
|
-
return /* @__PURE__ */ (0,
|
|
27101
|
-
/* @__PURE__ */ (0,
|
|
27102
|
-
/* @__PURE__ */ (0,
|
|
27103
|
-
/* @__PURE__ */ (0,
|
|
27104
|
-
/* @__PURE__ */ (0,
|
|
27105
|
-
actions && /* @__PURE__ */ (0,
|
|
27169
|
+
return /* @__PURE__ */ (0, import_jsx_runtime216.jsxs)("div", { className: "df fdc gap8 w100 pt4 maxw_720px mla mra sm_pl2 sm_pr2", ...tid, children: [
|
|
27170
|
+
/* @__PURE__ */ (0, import_jsx_runtime216.jsxs)("div", { className: "df fdc gap3", children: [
|
|
27171
|
+
/* @__PURE__ */ (0, import_jsx_runtime216.jsxs)("div", { className: "df fdc jcsb gap_12px", children: [
|
|
27172
|
+
/* @__PURE__ */ (0, import_jsx_runtime216.jsxs)("div", { className: "df jcsb aic", children: [
|
|
27173
|
+
/* @__PURE__ */ (0, import_jsx_runtime216.jsx)("h1", { className: "fw6 fz_20px lh_28px", ...tid.title, children: title }),
|
|
27174
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime216.jsx)("div", { className: "df gap1 fs0", ...tid.actions, children: actions.map((action) => action.kind === "icon" ? /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(IconButton, { ...action, variant: "outline" }, action.icon) : /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(Button, { ...action }, `${action.label}`)) })
|
|
27106
27175
|
] }),
|
|
27107
|
-
description && /* @__PURE__ */ (0,
|
|
27176
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime216.jsx)("div", { ...(0, import_runtime136.trussProps)({
|
|
27108
27177
|
fontWeight: "fw4",
|
|
27109
27178
|
fontSize: "fz_14px",
|
|
27110
27179
|
lineHeight: "lh_20px",
|
|
@@ -27115,16 +27184,16 @@ function FormSectionLayout(props) {
|
|
|
27115
27184
|
] }),
|
|
27116
27185
|
initialFields
|
|
27117
27186
|
] }),
|
|
27118
|
-
sections && /* @__PURE__ */ (0,
|
|
27187
|
+
sections && /* @__PURE__ */ (0, import_jsx_runtime216.jsx)("div", { className: "df fdc gap8", children: sections.map((section, i) => /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(FormSection, { ...section }, defaultTestId(section.title) || i)) })
|
|
27119
27188
|
] });
|
|
27120
27189
|
}
|
|
27121
27190
|
|
|
27122
27191
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
27123
|
-
var
|
|
27192
|
+
var import_react156 = require("react");
|
|
27124
27193
|
var import_runtime137 = require("@homebound/truss/runtime");
|
|
27125
27194
|
|
|
27126
27195
|
// src/layouts/useAutoHideOnScroll.ts
|
|
27127
|
-
var
|
|
27196
|
+
var import_react153 = require("react");
|
|
27128
27197
|
var THRESHOLD = 80;
|
|
27129
27198
|
function getInitialAutoHideState() {
|
|
27130
27199
|
if (typeof window === "undefined" || window.scrollY <= 0) {
|
|
@@ -27134,15 +27203,15 @@ function getInitialAutoHideState() {
|
|
|
27134
27203
|
}
|
|
27135
27204
|
function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
27136
27205
|
const initial = getInitialAutoHideState();
|
|
27137
|
-
const [state, setState] = (0,
|
|
27138
|
-
const stateRef = (0,
|
|
27139
|
-
const [atTop, setAtTop] = (0,
|
|
27140
|
-
const atTopRef = (0,
|
|
27141
|
-
const getTopOffsetRef = (0,
|
|
27206
|
+
const [state, setState] = (0, import_react153.useState)(initial.state);
|
|
27207
|
+
const stateRef = (0, import_react153.useRef)(initial.state);
|
|
27208
|
+
const [atTop, setAtTop] = (0, import_react153.useState)(initial.atTop);
|
|
27209
|
+
const atTopRef = (0, import_react153.useRef)(initial.atTop);
|
|
27210
|
+
const getTopOffsetRef = (0, import_react153.useRef)(getTopOffset);
|
|
27142
27211
|
getTopOffsetRef.current = getTopOffset;
|
|
27143
|
-
const lastScrollY = (0,
|
|
27144
|
-
const lastScrollHeight = (0,
|
|
27145
|
-
(0,
|
|
27212
|
+
const lastScrollY = (0, import_react153.useRef)(Number.POSITIVE_INFINITY);
|
|
27213
|
+
const lastScrollHeight = (0, import_react153.useRef)(0);
|
|
27214
|
+
(0, import_react153.useLayoutEffect)(() => {
|
|
27146
27215
|
if (!enabled) {
|
|
27147
27216
|
stateRef.current = "static";
|
|
27148
27217
|
atTopRef.current = true;
|
|
@@ -27215,34 +27284,34 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
|
27215
27284
|
|
|
27216
27285
|
// src/layouts/useMeasuredHeight.ts
|
|
27217
27286
|
var import_utils179 = require("@react-aria/utils");
|
|
27218
|
-
var
|
|
27287
|
+
var import_react154 = require("react");
|
|
27219
27288
|
function useMeasuredHeight(ref, enabled) {
|
|
27220
|
-
const [height, setHeight] = (0,
|
|
27221
|
-
const syncElementHeight = (0,
|
|
27289
|
+
const [height, setHeight] = (0, import_react154.useState)(0);
|
|
27290
|
+
const syncElementHeight = (0, import_react154.useCallback)(() => {
|
|
27222
27291
|
const el = ref.current;
|
|
27223
27292
|
const next = el ? Math.round(el.getBoundingClientRect().height) : 0;
|
|
27224
27293
|
setHeight((prev) => prev === next ? prev : next);
|
|
27225
27294
|
}, [ref]);
|
|
27226
27295
|
(0, import_utils179.useResizeObserver)({ ref, onResize: syncElementHeight });
|
|
27227
|
-
(0,
|
|
27296
|
+
(0, import_react154.useLayoutEffect)(() => {
|
|
27228
27297
|
syncElementHeight();
|
|
27229
27298
|
}, [enabled, syncElementHeight]);
|
|
27230
27299
|
return height;
|
|
27231
27300
|
}
|
|
27232
27301
|
|
|
27233
27302
|
// src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
|
|
27234
|
-
var
|
|
27235
|
-
var
|
|
27236
|
-
var NavbarLayoutHeightContext = (0,
|
|
27303
|
+
var import_react155 = require("react");
|
|
27304
|
+
var import_jsx_runtime217 = require("react/jsx-runtime");
|
|
27305
|
+
var NavbarLayoutHeightContext = (0, import_react155.createContext)(0);
|
|
27237
27306
|
function NavbarLayoutHeightProvider({ value, children }) {
|
|
27238
|
-
return /* @__PURE__ */ (0,
|
|
27307
|
+
return /* @__PURE__ */ (0, import_jsx_runtime217.jsx)(NavbarLayoutHeightContext.Provider, { value, children });
|
|
27239
27308
|
}
|
|
27240
27309
|
function useNavbarLayoutHeight() {
|
|
27241
|
-
return (0,
|
|
27310
|
+
return (0, import_react155.useContext)(NavbarLayoutHeightContext);
|
|
27242
27311
|
}
|
|
27243
27312
|
|
|
27244
27313
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
27245
|
-
var
|
|
27314
|
+
var import_jsx_runtime218 = require("react/jsx-runtime");
|
|
27246
27315
|
var __maybeInc28 = (inc) => {
|
|
27247
27316
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
27248
27317
|
};
|
|
@@ -27252,8 +27321,8 @@ function NavbarLayout(props) {
|
|
|
27252
27321
|
children
|
|
27253
27322
|
} = props;
|
|
27254
27323
|
const tid = useTestIds(props, "navbarLayout");
|
|
27255
|
-
const navMetricsRef = (0,
|
|
27256
|
-
const spacerRef = (0,
|
|
27324
|
+
const navMetricsRef = (0, import_react156.useRef)(null);
|
|
27325
|
+
const spacerRef = (0, import_react156.useRef)(null);
|
|
27257
27326
|
const navHeight = useMeasuredHeight(navMetricsRef, true);
|
|
27258
27327
|
const {
|
|
27259
27328
|
state: autoHideState,
|
|
@@ -27295,29 +27364,29 @@ function NavbarLayout(props) {
|
|
|
27295
27364
|
const innerStyle = autoHideState !== "static" ? {
|
|
27296
27365
|
top: autoHideState === "revealed" ? bannerTop : `calc(${bannerTop} - ${navHeight}px)`
|
|
27297
27366
|
} : void 0;
|
|
27298
|
-
const navbarEl = (0,
|
|
27299
|
-
return /* @__PURE__ */ (0,
|
|
27367
|
+
const navbarEl = (0, import_react156.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(Navbar, { ...navbar }), [navbar]);
|
|
27368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(MobileSubNavProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime218.jsxs)("div", { ...(0, import_runtime137.mergeProps)(void 0, cssVars, {
|
|
27300
27369
|
display: "df",
|
|
27301
27370
|
flexDirection: "fdc",
|
|
27302
27371
|
width: "wfc",
|
|
27303
27372
|
minWidth: "mw100"
|
|
27304
27373
|
}), ...tid, children: [
|
|
27305
|
-
/* @__PURE__ */ (0,
|
|
27374
|
+
/* @__PURE__ */ (0, import_jsx_runtime218.jsx)("div", { ref: spacerRef, ...(0, import_runtime137.mergeProps)(void 0, {
|
|
27306
27375
|
height: navHeight
|
|
27307
27376
|
}, {
|
|
27308
27377
|
flexShrink: "fs0",
|
|
27309
27378
|
width: "w100"
|
|
27310
|
-
}), children: /* @__PURE__ */ (0,
|
|
27311
|
-
/* @__PURE__ */ (0,
|
|
27312
|
-
] }) }) });
|
|
27379
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime218.jsx)("div", { ref: navMetricsRef, ...(0, import_runtime137.mergeProps)(void 0, innerStyle, innerCss), ...tid.navbar, children: navbarEl }) }),
|
|
27380
|
+
/* @__PURE__ */ (0, import_jsx_runtime218.jsx)("div", { className: "df fdc mh0 mw100 w100", ...tid.body, children })
|
|
27381
|
+
] }) }) }) });
|
|
27313
27382
|
}
|
|
27314
27383
|
|
|
27315
27384
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
27316
|
-
var
|
|
27385
|
+
var import_react157 = require("react");
|
|
27317
27386
|
|
|
27318
27387
|
// src/components/Headers/BaseHeader.tsx
|
|
27319
27388
|
var import_runtime138 = require("@homebound/truss/runtime");
|
|
27320
|
-
var
|
|
27389
|
+
var import_jsx_runtime219 = require("react/jsx-runtime");
|
|
27321
27390
|
function BaseHeader(props) {
|
|
27322
27391
|
const {
|
|
27323
27392
|
title,
|
|
@@ -27329,7 +27398,7 @@ function BaseHeader(props) {
|
|
|
27329
27398
|
} = props;
|
|
27330
27399
|
const tid = useTestIds(otherProps, "header");
|
|
27331
27400
|
useDocumentTitle(title, documentTitleSuffix);
|
|
27332
|
-
return /* @__PURE__ */ (0,
|
|
27401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime219.jsxs)("header", { ...tid, ...(0, import_runtime138.trussProps)({
|
|
27333
27402
|
display: "df",
|
|
27334
27403
|
flexDirection: "fdc",
|
|
27335
27404
|
paddingTop: "pt3",
|
|
@@ -27343,7 +27412,7 @@ function BaseHeader(props) {
|
|
|
27343
27412
|
"--backgroundColor": "var(--b-surface)"
|
|
27344
27413
|
}]
|
|
27345
27414
|
}), children: [
|
|
27346
|
-
/* @__PURE__ */ (0,
|
|
27415
|
+
/* @__PURE__ */ (0, import_jsx_runtime219.jsxs)("div", { ...(0, import_runtime138.trussProps)({
|
|
27347
27416
|
...{
|
|
27348
27417
|
display: "df",
|
|
27349
27418
|
justifyContent: "jcsb",
|
|
@@ -27357,9 +27426,9 @@ function BaseHeader(props) {
|
|
|
27357
27426
|
} : {}
|
|
27358
27427
|
}
|
|
27359
27428
|
}), children: [
|
|
27360
|
-
/* @__PURE__ */ (0,
|
|
27361
|
-
breadcrumbs && /* @__PURE__ */ (0,
|
|
27362
|
-
/* @__PURE__ */ (0,
|
|
27429
|
+
/* @__PURE__ */ (0, import_jsx_runtime219.jsxs)("div", { className: "mw0", children: [
|
|
27430
|
+
breadcrumbs && /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(Breadcrumbs, { ...breadcrumbs }),
|
|
27431
|
+
/* @__PURE__ */ (0, import_jsx_runtime219.jsx)("h1", { ...tid.title, ...(0, import_runtime138.trussProps)({
|
|
27363
27432
|
fontWeight: "fw6",
|
|
27364
27433
|
fontSize: "fz_20px",
|
|
27365
27434
|
lineHeight: "lh_28px",
|
|
@@ -27368,7 +27437,7 @@ function BaseHeader(props) {
|
|
|
27368
27437
|
}]
|
|
27369
27438
|
}), children: title })
|
|
27370
27439
|
] }),
|
|
27371
|
-
/* @__PURE__ */ (0,
|
|
27440
|
+
/* @__PURE__ */ (0, import_jsx_runtime219.jsx)("div", { className: "fs0", children: rightSlot })
|
|
27372
27441
|
] }),
|
|
27373
27442
|
bottomSlot
|
|
27374
27443
|
] });
|
|
@@ -27376,14 +27445,14 @@ function BaseHeader(props) {
|
|
|
27376
27445
|
|
|
27377
27446
|
// src/components/Headers/PageHeader.tsx
|
|
27378
27447
|
var import_runtime139 = require("@homebound/truss/runtime");
|
|
27379
|
-
var
|
|
27448
|
+
var import_jsx_runtime220 = require("react/jsx-runtime");
|
|
27380
27449
|
function PageHeader2(props) {
|
|
27381
27450
|
const {
|
|
27382
27451
|
tabs,
|
|
27383
27452
|
...otherProps
|
|
27384
27453
|
} = props;
|
|
27385
27454
|
const tid = useTestIds(otherProps, "header");
|
|
27386
|
-
return /* @__PURE__ */ (0,
|
|
27455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime220.jsx)(BaseHeader, { ...otherProps, bottomSlot: tabs && /* @__PURE__ */ (0, import_jsx_runtime220.jsx)("div", { ...(0, import_runtime139.trussProps)(pageContentPaddingX), children: /* @__PURE__ */ (0, import_jsx_runtime220.jsx)(Tabs, { ...tabs, ...tid.tabs }) }) });
|
|
27387
27456
|
}
|
|
27388
27457
|
|
|
27389
27458
|
// src/layouts/useBannerAndNavbarHeight.ts
|
|
@@ -27393,7 +27462,7 @@ function useBannerAndNavbarHeight() {
|
|
|
27393
27462
|
|
|
27394
27463
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
27395
27464
|
var import_runtime140 = require("@homebound/truss/runtime");
|
|
27396
|
-
var
|
|
27465
|
+
var import_jsx_runtime221 = require("react/jsx-runtime");
|
|
27397
27466
|
var __maybeInc29 = (inc) => {
|
|
27398
27467
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
27399
27468
|
};
|
|
@@ -27404,11 +27473,11 @@ function PageHeaderLayout(props) {
|
|
|
27404
27473
|
} = props;
|
|
27405
27474
|
const tid = useTestIds(props, "pageHeaderLayout");
|
|
27406
27475
|
const bannerAndNavbarHeight = useBannerAndNavbarHeight();
|
|
27407
|
-
const bannerAndNavbarHeightRef = (0,
|
|
27476
|
+
const bannerAndNavbarHeightRef = (0, import_react157.useRef)(bannerAndNavbarHeight);
|
|
27408
27477
|
bannerAndNavbarHeightRef.current = bannerAndNavbarHeight;
|
|
27409
|
-
const getBannerAndNavbarHeight = (0,
|
|
27410
|
-
const headerMetricsRef = (0,
|
|
27411
|
-
const spacerRef = (0,
|
|
27478
|
+
const getBannerAndNavbarHeight = (0, import_react157.useCallback)(() => bannerAndNavbarHeightRef.current, []);
|
|
27479
|
+
const headerMetricsRef = (0, import_react157.useRef)(null);
|
|
27480
|
+
const spacerRef = (0, import_react157.useRef)(null);
|
|
27412
27481
|
const headerHeight = useMeasuredHeight(headerMetricsRef, true);
|
|
27413
27482
|
const {
|
|
27414
27483
|
state: autoHideState,
|
|
@@ -27448,43 +27517,43 @@ function PageHeaderLayout(props) {
|
|
|
27448
27517
|
const innerStyle = autoHideState !== "static" ? {
|
|
27449
27518
|
top: autoHideState === "revealed" ? outerTop : `calc(${outerTop} - ${headerHeight}px)`
|
|
27450
27519
|
} : void 0;
|
|
27451
|
-
const pageHeaderEl = (0,
|
|
27452
|
-
return /* @__PURE__ */ (0,
|
|
27520
|
+
const pageHeaderEl = (0, import_react157.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(PageHeader2, { ...pageHeader }), [pageHeader]);
|
|
27521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)("div", { ...(0, import_runtime140.mergeProps)(void 0, cssVars, {
|
|
27453
27522
|
display: "df",
|
|
27454
27523
|
flexDirection: "fdc",
|
|
27455
27524
|
width: "w100"
|
|
27456
27525
|
}), ...tid, children: [
|
|
27457
|
-
/* @__PURE__ */ (0,
|
|
27526
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)("div", { ref: spacerRef, ...(0, import_runtime140.mergeProps)(void 0, {
|
|
27458
27527
|
height: headerHeight
|
|
27459
27528
|
}, {
|
|
27460
27529
|
flexShrink: "fs0",
|
|
27461
27530
|
width: "w100"
|
|
27462
|
-
}), children: /* @__PURE__ */ (0,
|
|
27463
|
-
/* @__PURE__ */ (0,
|
|
27531
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime221.jsx)("div", { ref: headerMetricsRef, ...(0, import_runtime140.mergeProps)(void 0, innerStyle, innerCss), ...tid.pageHeader, children: pageHeaderEl }) }),
|
|
27532
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)("div", { className: "df fdc fg1 mh0 w100", ...tid.body, children })
|
|
27464
27533
|
] }) });
|
|
27465
27534
|
}
|
|
27466
27535
|
|
|
27467
27536
|
// src/layouts/WorkflowLayout/WorkflowLayout.tsx
|
|
27468
|
-
var
|
|
27537
|
+
var import_react159 = require("react");
|
|
27469
27538
|
|
|
27470
27539
|
// src/components/Headers/WorkflowHeader.tsx
|
|
27471
|
-
var
|
|
27540
|
+
var import_jsx_runtime222 = require("react/jsx-runtime");
|
|
27472
27541
|
function WorkflowHeader(props) {
|
|
27473
27542
|
const { stepperTabs, ...otherProps } = props;
|
|
27474
27543
|
const tid = useTestIds(otherProps, "header");
|
|
27475
|
-
return /* @__PURE__ */ (0,
|
|
27544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(BaseHeader, { ...otherProps, bottomSlot: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(StepperTabs, { ...stepperTabs, ...tid.stepperTabs }) });
|
|
27476
27545
|
}
|
|
27477
27546
|
|
|
27478
27547
|
// src/layouts/WorkflowLayout/useUnsavedChangesGuard.tsx
|
|
27479
|
-
var
|
|
27548
|
+
var import_react158 = require("react");
|
|
27480
27549
|
var import_react_router_dom9 = require("react-router-dom");
|
|
27481
|
-
var
|
|
27550
|
+
var import_jsx_runtime223 = require("react/jsx-runtime");
|
|
27482
27551
|
function useUnsavedChangesGuard(options) {
|
|
27483
27552
|
const { isDirty, onCancel } = options;
|
|
27484
27553
|
const { openModal } = useModal();
|
|
27485
|
-
const isDirtyRef = (0,
|
|
27554
|
+
const isDirtyRef = (0, import_react158.useRef)(isDirty);
|
|
27486
27555
|
isDirtyRef.current = isDirty;
|
|
27487
|
-
(0,
|
|
27556
|
+
(0, import_react158.useEffect)(() => {
|
|
27488
27557
|
const onBeforeUnload = (e) => {
|
|
27489
27558
|
if (isDirtyRef.current?.()) {
|
|
27490
27559
|
e.preventDefault();
|
|
@@ -27501,7 +27570,7 @@ function useUnsavedChangesGuard(options) {
|
|
|
27501
27570
|
}
|
|
27502
27571
|
openModal({
|
|
27503
27572
|
allowClosing: false,
|
|
27504
|
-
content: /* @__PURE__ */ (0,
|
|
27573
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(ConfirmCloseModal, { onClose: () => onCancel(e) })
|
|
27505
27574
|
});
|
|
27506
27575
|
};
|
|
27507
27576
|
const navigationBlocker = blocker.state === "blocked" ? { proceed: () => blocker.proceed?.(), cancelNavigation: () => blocker.reset?.() } : void 0;
|
|
@@ -27510,10 +27579,10 @@ function useUnsavedChangesGuard(options) {
|
|
|
27510
27579
|
function UnsavedChangesNavigationModal(props) {
|
|
27511
27580
|
const { proceed, cancelNavigation } = props;
|
|
27512
27581
|
const { openModal, closeModal } = useModal();
|
|
27513
|
-
(0,
|
|
27582
|
+
(0, import_react158.useEffect)(() => {
|
|
27514
27583
|
openModal({
|
|
27515
27584
|
allowClosing: false,
|
|
27516
|
-
content: /* @__PURE__ */ (0,
|
|
27585
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(ConfirmCloseModal, { title: "Leave page?", onClose: proceed, onContinue: cancelNavigation })
|
|
27517
27586
|
});
|
|
27518
27587
|
return () => closeModal();
|
|
27519
27588
|
}, []);
|
|
@@ -27521,7 +27590,7 @@ function UnsavedChangesNavigationModal(props) {
|
|
|
27521
27590
|
}
|
|
27522
27591
|
|
|
27523
27592
|
// src/layouts/WorkflowLayout/WorkflowActions.tsx
|
|
27524
|
-
var
|
|
27593
|
+
var import_jsx_runtime224 = require("react/jsx-runtime");
|
|
27525
27594
|
function WorkflowActions(props) {
|
|
27526
27595
|
const {
|
|
27527
27596
|
isFirstStep,
|
|
@@ -27535,19 +27604,19 @@ function WorkflowActions(props) {
|
|
|
27535
27604
|
onContinue,
|
|
27536
27605
|
primaryDisabled
|
|
27537
27606
|
} = props;
|
|
27538
|
-
return /* @__PURE__ */ (0,
|
|
27539
|
-
/* @__PURE__ */ (0,
|
|
27540
|
-
/* @__PURE__ */ (0,
|
|
27541
|
-
/* @__PURE__ */ (0,
|
|
27542
|
-
onSaveAndExit && /* @__PURE__ */ (0,
|
|
27543
|
-
isLastStep ? /* @__PURE__ */ (0,
|
|
27607
|
+
return /* @__PURE__ */ (0, import_jsx_runtime224.jsxs)("div", { className: "df aic jcsb sm_w100", children: [
|
|
27608
|
+
/* @__PURE__ */ (0, import_jsx_runtime224.jsx)("div", { className: "df aic", children: !isFirstStep && isMobile && /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(IconButton, { icon: "arrowBack", label: "Back", onClick: onBack }) }),
|
|
27609
|
+
/* @__PURE__ */ (0, import_jsx_runtime224.jsxs)("div", { className: "df aic gap1", children: [
|
|
27610
|
+
/* @__PURE__ */ (0, import_jsx_runtime224.jsx)(Button, { label: "Cancel", variant: "quaternary", onClick: onCancel }),
|
|
27611
|
+
onSaveAndExit && /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(Button, { label: "Save & Exit", variant: "secondary", onClick: onSaveAndExit }),
|
|
27612
|
+
isLastStep ? /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(Button, { label: completeLabel, variant: "primary", onClick: onComplete, disabled: primaryDisabled }) : /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(Button, { label: "Continue", variant: "primary", onClick: onContinue, disabled: primaryDisabled })
|
|
27544
27613
|
] })
|
|
27545
27614
|
] });
|
|
27546
27615
|
}
|
|
27547
27616
|
|
|
27548
27617
|
// src/layouts/WorkflowLayout/WorkflowLayout.tsx
|
|
27549
27618
|
var import_runtime141 = require("@homebound/truss/runtime");
|
|
27550
|
-
var
|
|
27619
|
+
var import_jsx_runtime225 = require("react/jsx-runtime");
|
|
27551
27620
|
var __maybeInc30 = (inc) => {
|
|
27552
27621
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
27553
27622
|
};
|
|
@@ -27566,7 +27635,7 @@ function WorkflowLayout(props) {
|
|
|
27566
27635
|
...step,
|
|
27567
27636
|
value: defaultTestId(step.label)
|
|
27568
27637
|
}));
|
|
27569
|
-
const [currentStep, setCurrentStep] = (0,
|
|
27638
|
+
const [currentStep, setCurrentStep] = (0, import_react159.useState)(() => getInitialStep(stepTabs, defaultStep));
|
|
27570
27639
|
const tid = useTestIds(props, "workflowLayout");
|
|
27571
27640
|
const {
|
|
27572
27641
|
sm: isMobile
|
|
@@ -27578,7 +27647,7 @@ function WorkflowLayout(props) {
|
|
|
27578
27647
|
isDirty,
|
|
27579
27648
|
onCancel
|
|
27580
27649
|
});
|
|
27581
|
-
const headerMetricsRef = (0,
|
|
27650
|
+
const headerMetricsRef = (0, import_react159.useRef)(null);
|
|
27582
27651
|
const headerHeight = useMeasuredHeight(headerMetricsRef, true);
|
|
27583
27652
|
const headerWidth = documentScrollChromeWidth();
|
|
27584
27653
|
const outerTop = bannerAndNavbarChromeTop();
|
|
@@ -27589,7 +27658,7 @@ function WorkflowLayout(props) {
|
|
|
27589
27658
|
const isFirstStep = currentIndex <= 0;
|
|
27590
27659
|
const isLastStep = currentIndex === stepTabs.length - 1;
|
|
27591
27660
|
const activeStep = stepTabs[currentIndex];
|
|
27592
|
-
const buttons = /* @__PURE__ */ (0,
|
|
27661
|
+
const buttons = /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(WorkflowActions, { isFirstStep, isLastStep, isMobile, onBack: () => setCurrentStep(stepTabs[currentIndex - 1].value), onCancel: onCancelClick, onSaveAndExit, completeLabel, onComplete, primaryDisabled: !activeStep?.isValid, onContinue: async () => {
|
|
27593
27662
|
const onContinue = activeStep?.onContinue;
|
|
27594
27663
|
if (onContinue) {
|
|
27595
27664
|
const allowed = await onContinue();
|
|
@@ -27598,7 +27667,7 @@ function WorkflowLayout(props) {
|
|
|
27598
27667
|
setCurrentStep(stepTabs[currentIndex + 1].value);
|
|
27599
27668
|
} });
|
|
27600
27669
|
const showFooter = isMobile;
|
|
27601
|
-
(0,
|
|
27670
|
+
(0, import_react159.useLayoutEffect)(() => {
|
|
27602
27671
|
const root = document.documentElement;
|
|
27603
27672
|
const previous = root.style.getPropertyValue(beamWorkflowLayoutFooterHeightVar);
|
|
27604
27673
|
root.style.setProperty(beamWorkflowLayoutFooterHeightVar, showFooter ? `${mobileFooterHeightPx}px` : "0px");
|
|
@@ -27610,7 +27679,7 @@ function WorkflowLayout(props) {
|
|
|
27610
27679
|
}
|
|
27611
27680
|
};
|
|
27612
27681
|
}, [showFooter]);
|
|
27613
|
-
const headerEl = /* @__PURE__ */ (0,
|
|
27682
|
+
const headerEl = /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(
|
|
27614
27683
|
WorkflowHeader,
|
|
27615
27684
|
{
|
|
27616
27685
|
...headerProps,
|
|
@@ -27623,13 +27692,13 @@ function WorkflowLayout(props) {
|
|
|
27623
27692
|
}
|
|
27624
27693
|
}
|
|
27625
27694
|
);
|
|
27626
|
-
return /* @__PURE__ */ (0,
|
|
27627
|
-
/* @__PURE__ */ (0,
|
|
27695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime225.jsxs)(DocumentScrollLayoutProvider, { children: [
|
|
27696
|
+
/* @__PURE__ */ (0, import_jsx_runtime225.jsxs)("div", { ...(0, import_runtime141.mergeProps)(void 0, cssVars, {
|
|
27628
27697
|
display: "df",
|
|
27629
27698
|
flexDirection: "fdc",
|
|
27630
27699
|
width: "w100"
|
|
27631
27700
|
}), ...tid, children: [
|
|
27632
|
-
/* @__PURE__ */ (0,
|
|
27701
|
+
/* @__PURE__ */ (0, import_jsx_runtime225.jsx)("div", { ref: headerMetricsRef, ...(0, import_runtime141.trussProps)({
|
|
27633
27702
|
position: "sticky",
|
|
27634
27703
|
left: "left0",
|
|
27635
27704
|
width: ["w_var", {
|
|
@@ -27642,14 +27711,14 @@ function WorkflowLayout(props) {
|
|
|
27642
27711
|
"--top": (0, import_runtime141.maybeCssVar)(__maybeInc30(outerTop))
|
|
27643
27712
|
}]
|
|
27644
27713
|
}), ...tid.header, children: headerEl }),
|
|
27645
|
-
/* @__PURE__ */ (0,
|
|
27646
|
-
showFooter && /* @__PURE__ */ (0,
|
|
27714
|
+
/* @__PURE__ */ (0, import_jsx_runtime225.jsx)("div", { className: "df fdc fg1 mh0 w100", ...tid.body, children: activeStep?.content }),
|
|
27715
|
+
showFooter && /* @__PURE__ */ (0, import_jsx_runtime225.jsx)("div", { ...(0, import_runtime141.trussProps)({
|
|
27647
27716
|
flexShrink: "fs0",
|
|
27648
27717
|
width: "w100",
|
|
27649
27718
|
height: ["h_var", {
|
|
27650
27719
|
"--height": `${mobileFooterHeightPx}px`
|
|
27651
27720
|
}]
|
|
27652
|
-
}), children: /* @__PURE__ */ (0,
|
|
27721
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime225.jsx)("div", { ...(0, import_runtime141.trussProps)({
|
|
27653
27722
|
...{
|
|
27654
27723
|
position: "fixed",
|
|
27655
27724
|
bottom: "bottom0",
|
|
@@ -27678,7 +27747,7 @@ function WorkflowLayout(props) {
|
|
|
27678
27747
|
...pageContentPaddingX
|
|
27679
27748
|
}), ...tid.footer, children: buttons }) })
|
|
27680
27749
|
] }),
|
|
27681
|
-
navigationBlocker && /* @__PURE__ */ (0,
|
|
27750
|
+
navigationBlocker && /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(UnsavedChangesNavigationModal, { ...navigationBlocker })
|
|
27682
27751
|
] });
|
|
27683
27752
|
}
|
|
27684
27753
|
var mobileFooterHeightPx = 80;
|