@homebound/beam 3.11.0 → 3.12.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 +166 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +153 -106
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4298,17 +4298,33 @@ function Popper(props) {
|
|
|
4298
4298
|
styles,
|
|
4299
4299
|
attributes
|
|
4300
4300
|
} = usePopper(targetElement, popperRef.current, {
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4301
|
+
// Use `fixed` positioning so the portaled tooltip is positioned relative to the viewport.
|
|
4302
|
+
// With the default `absolute` strategy the tooltip is appended to `document.body` and counts
|
|
4303
|
+
// toward the document's scroll size, so a trigger near an edge pushes the tooltip past the
|
|
4304
|
+
// document bounds and introduces scrollbars / renders off-screen. `fixed` elements don't
|
|
4305
|
+
// contribute to document scroll size, so they can be kept within the viewport instead.
|
|
4306
|
+
strategy: "fixed",
|
|
4307
|
+
modifiers: [
|
|
4308
|
+
{
|
|
4309
|
+
name: "arrow",
|
|
4310
|
+
options: {
|
|
4311
|
+
element: arrowRef
|
|
4312
|
+
}
|
|
4313
|
+
},
|
|
4314
|
+
{
|
|
4315
|
+
name: "offset",
|
|
4316
|
+
options: {
|
|
4317
|
+
offset: [0, 5]
|
|
4318
|
+
}
|
|
4319
|
+
},
|
|
4320
|
+
// Keep the tooltip inside the viewport (with a small gutter) rather than overflowing it.
|
|
4321
|
+
{
|
|
4322
|
+
name: "preventOverflow",
|
|
4323
|
+
options: {
|
|
4324
|
+
padding: 8
|
|
4325
|
+
}
|
|
4310
4326
|
}
|
|
4311
|
-
|
|
4327
|
+
],
|
|
4312
4328
|
placement
|
|
4313
4329
|
});
|
|
4314
4330
|
return createPortal(/* @__PURE__ */ jsxs("div", { ref: popperRef, ...attributes.popper, ...ariaProps, onMouseEnter, onMouseLeave, ...mergeProps_1(void 0, styles.popper, {
|
|
@@ -21142,11 +21158,41 @@ function MaxLines({
|
|
|
21142
21158
|
] });
|
|
21143
21159
|
}
|
|
21144
21160
|
|
|
21161
|
+
// src/components/PageHeader.tsx
|
|
21162
|
+
import { trussProps as trussProps84 } from "@homebound/truss/runtime";
|
|
21163
|
+
import { jsx as jsx167, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
21164
|
+
function PageHeader2(props) {
|
|
21165
|
+
const {
|
|
21166
|
+
title,
|
|
21167
|
+
rightSlot,
|
|
21168
|
+
...otherProps
|
|
21169
|
+
} = props;
|
|
21170
|
+
const tid = useTestIds(otherProps, "pageHeader");
|
|
21171
|
+
return /* @__PURE__ */ jsx167("header", { ...tid, ...trussProps84({
|
|
21172
|
+
display: "df",
|
|
21173
|
+
flexDirection: "fdc",
|
|
21174
|
+
paddingTop: "pt3",
|
|
21175
|
+
paddingRight: "pr3",
|
|
21176
|
+
paddingLeft: "pl3",
|
|
21177
|
+
borderBottomStyle: "bbs_solid",
|
|
21178
|
+
borderBottomWidth: "bbw_1px",
|
|
21179
|
+
borderColor: ["bc_var", {
|
|
21180
|
+
"--borderColor": "var(--b-surface-separator)"
|
|
21181
|
+
}],
|
|
21182
|
+
backgroundColor: ["bgColor_var", {
|
|
21183
|
+
"--backgroundColor": "var(--b-surface)"
|
|
21184
|
+
}]
|
|
21185
|
+
}), children: /* @__PURE__ */ jsxs87("div", { className: "df jcsb mb2 w100 gap1", children: [
|
|
21186
|
+
/* @__PURE__ */ jsx167("div", { children: /* @__PURE__ */ jsx167("h1", { ...tid.title, className: "fw6 fz_20px lh_28px", children: title }) }),
|
|
21187
|
+
/* @__PURE__ */ jsx167("div", { children: rightSlot })
|
|
21188
|
+
] }) });
|
|
21189
|
+
}
|
|
21190
|
+
|
|
21145
21191
|
// src/components/ScrollShadows.tsx
|
|
21146
21192
|
import { useResizeObserver as useResizeObserver7 } from "@react-aria/utils";
|
|
21147
21193
|
import { useCallback as useCallback27, useMemo as useMemo49, useRef as useRef53, useState as useState48 } from "react";
|
|
21148
|
-
import { trussProps as
|
|
21149
|
-
import { jsx as
|
|
21194
|
+
import { trussProps as trussProps85, maybeCssVar as maybeCssVar46 } from "@homebound/truss/runtime";
|
|
21195
|
+
import { jsx as jsx168, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
21150
21196
|
function ScrollShadows(props) {
|
|
21151
21197
|
const {
|
|
21152
21198
|
children,
|
|
@@ -21236,7 +21282,7 @@ function ScrollShadows(props) {
|
|
|
21236
21282
|
ref: scrollRef,
|
|
21237
21283
|
onResize
|
|
21238
21284
|
});
|
|
21239
|
-
return /* @__PURE__ */
|
|
21285
|
+
return /* @__PURE__ */ jsxs88("div", { ...trussProps85({
|
|
21240
21286
|
display: "df",
|
|
21241
21287
|
flexDirection: ["fd_var", {
|
|
21242
21288
|
"--flexDirection": maybeCssVar46(!horizontal ? "column" : "row")
|
|
@@ -21252,7 +21298,7 @@ function ScrollShadows(props) {
|
|
|
21252
21298
|
width: width2
|
|
21253
21299
|
}
|
|
21254
21300
|
}), ...tid, children: [
|
|
21255
|
-
/* @__PURE__ */
|
|
21301
|
+
/* @__PURE__ */ jsx168("div", { ...trussProps85({
|
|
21256
21302
|
...startShadowStyles,
|
|
21257
21303
|
...{
|
|
21258
21304
|
opacity: ["o_var", {
|
|
@@ -21260,7 +21306,7 @@ function ScrollShadows(props) {
|
|
|
21260
21306
|
}]
|
|
21261
21307
|
}
|
|
21262
21308
|
}), "data-chromatic": "ignore" }),
|
|
21263
|
-
/* @__PURE__ */
|
|
21309
|
+
/* @__PURE__ */ jsx168("div", { ...trussProps85({
|
|
21264
21310
|
...endShadowStyles,
|
|
21265
21311
|
...{
|
|
21266
21312
|
opacity: ["o_var", {
|
|
@@ -21268,7 +21314,7 @@ function ScrollShadows(props) {
|
|
|
21268
21314
|
}]
|
|
21269
21315
|
}
|
|
21270
21316
|
}), "data-chromatic": "ignore" }),
|
|
21271
|
-
/* @__PURE__ */
|
|
21317
|
+
/* @__PURE__ */ jsx168("div", { ...trussProps85({
|
|
21272
21318
|
...xss,
|
|
21273
21319
|
...{
|
|
21274
21320
|
overflow: "oa",
|
|
@@ -21314,25 +21360,25 @@ function useSideNavLinkGroupExpanded(linkGroup) {
|
|
|
21314
21360
|
}
|
|
21315
21361
|
|
|
21316
21362
|
// src/components/SideNav/SideNavLinkGroup.tsx
|
|
21317
|
-
import { Fragment as Fragment38, jsx as
|
|
21363
|
+
import { Fragment as Fragment38, jsx as jsx169 } from "react/jsx-runtime";
|
|
21318
21364
|
function SideNavLinkGroupView(props) {
|
|
21319
21365
|
const { linkGroup, panelCollapsed } = props;
|
|
21320
21366
|
const tid = useTestIds(props, "linkGroup");
|
|
21321
21367
|
if (panelCollapsed) {
|
|
21322
|
-
return /* @__PURE__ */
|
|
21368
|
+
return /* @__PURE__ */ jsx169(Fragment38, { children: linkGroup.links.map((link) => /* @__PURE__ */ jsx169(NavLink, { variant: "side", ...link, iconOnly: !!link.icon, ...tid.link }, link.label)) });
|
|
21323
21369
|
}
|
|
21324
|
-
return /* @__PURE__ */
|
|
21370
|
+
return /* @__PURE__ */ jsx169(SideNavLinkGroupDisclosure, { ...props });
|
|
21325
21371
|
}
|
|
21326
21372
|
function SideNavLinkGroupDisclosure(props) {
|
|
21327
21373
|
const { linkGroup } = props;
|
|
21328
21374
|
const { expanded, onToggle } = useSideNavLinkGroupExpanded(linkGroup);
|
|
21329
21375
|
const tid = useTestIds(props, "linkGroup");
|
|
21330
|
-
return /* @__PURE__ */
|
|
21376
|
+
return /* @__PURE__ */ jsx169(NavGroup, { label: linkGroup.label, links: linkGroup.links, expanded, onClick: onToggle, ...tid });
|
|
21331
21377
|
}
|
|
21332
21378
|
|
|
21333
21379
|
// src/components/SideNav/SideNavSectionView.tsx
|
|
21334
|
-
import { trussProps as
|
|
21335
|
-
import { jsx as
|
|
21380
|
+
import { trussProps as trussProps86 } from "@homebound/truss/runtime";
|
|
21381
|
+
import { jsx as jsx170, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
21336
21382
|
function SideNavSectionView(props) {
|
|
21337
21383
|
const {
|
|
21338
21384
|
section,
|
|
@@ -21341,7 +21387,7 @@ function SideNavSectionView(props) {
|
|
|
21341
21387
|
...scopeProps
|
|
21342
21388
|
} = props;
|
|
21343
21389
|
const tid = useTestIds(scopeProps);
|
|
21344
|
-
return /* @__PURE__ */
|
|
21390
|
+
return /* @__PURE__ */ jsxs89("div", { ...trussProps86({
|
|
21345
21391
|
display: "df",
|
|
21346
21392
|
flexDirection: "fdc",
|
|
21347
21393
|
paddingTop: "pt2",
|
|
@@ -21354,7 +21400,7 @@ function SideNavSectionView(props) {
|
|
|
21354
21400
|
paddingBottom: "pb2"
|
|
21355
21401
|
} : {}
|
|
21356
21402
|
}), ...tid, children: [
|
|
21357
|
-
section.label && !panelCollapsed && /* @__PURE__ */
|
|
21403
|
+
section.label && !panelCollapsed && /* @__PURE__ */ jsx170("div", { ...trussProps86({
|
|
21358
21404
|
fontWeight: "fw6",
|
|
21359
21405
|
fontSize: "fz_10px",
|
|
21360
21406
|
lineHeight: "lh_14px",
|
|
@@ -21366,7 +21412,7 @@ function SideNavSectionView(props) {
|
|
|
21366
21412
|
paddingBottom: "pb1",
|
|
21367
21413
|
textTransform: "ttu"
|
|
21368
21414
|
}), ...tid.label, children: section.label }),
|
|
21369
|
-
/* @__PURE__ */
|
|
21415
|
+
/* @__PURE__ */ jsx170(SideNavItems, { ...scopeProps, items: section.items, panelCollapsed })
|
|
21370
21416
|
] });
|
|
21371
21417
|
}
|
|
21372
21418
|
|
|
@@ -21393,13 +21439,13 @@ function entryHasIcons(item) {
|
|
|
21393
21439
|
}
|
|
21394
21440
|
|
|
21395
21441
|
// src/components/SideNav/SideNavItems.tsx
|
|
21396
|
-
import { Fragment as Fragment39, jsx as
|
|
21442
|
+
import { Fragment as Fragment39, jsx as jsx171 } from "react/jsx-runtime";
|
|
21397
21443
|
function SideNavItems(props) {
|
|
21398
21444
|
const { items, panelCollapsed } = props;
|
|
21399
21445
|
const tid = useTestIds(props, "sideNav");
|
|
21400
|
-
return /* @__PURE__ */
|
|
21446
|
+
return /* @__PURE__ */ jsx171(Fragment39, { children: items.map((item, idx) => {
|
|
21401
21447
|
if (isSideNavLink(item)) {
|
|
21402
|
-
return /* @__PURE__ */
|
|
21448
|
+
return /* @__PURE__ */ jsx171(
|
|
21403
21449
|
NavLink,
|
|
21404
21450
|
{
|
|
21405
21451
|
variant: "side",
|
|
@@ -21411,7 +21457,7 @@ function SideNavItems(props) {
|
|
|
21411
21457
|
);
|
|
21412
21458
|
}
|
|
21413
21459
|
if (isSideNavLinkGroup(item)) {
|
|
21414
|
-
return /* @__PURE__ */
|
|
21460
|
+
return /* @__PURE__ */ jsx171(
|
|
21415
21461
|
SideNavLinkGroupView,
|
|
21416
21462
|
{
|
|
21417
21463
|
linkGroup: item,
|
|
@@ -21421,7 +21467,7 @@ function SideNavItems(props) {
|
|
|
21421
21467
|
sideNavItemKey(item)
|
|
21422
21468
|
);
|
|
21423
21469
|
}
|
|
21424
|
-
return /* @__PURE__ */
|
|
21470
|
+
return /* @__PURE__ */ jsx171(
|
|
21425
21471
|
SideNavSectionView,
|
|
21426
21472
|
{
|
|
21427
21473
|
section: item,
|
|
@@ -21443,7 +21489,7 @@ import {
|
|
|
21443
21489
|
useRef as useRef54,
|
|
21444
21490
|
useState as useState50
|
|
21445
21491
|
} from "react";
|
|
21446
|
-
import { jsx as
|
|
21492
|
+
import { jsx as jsx172 } from "react/jsx-runtime";
|
|
21447
21493
|
var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
|
|
21448
21494
|
function loadStoredNavState() {
|
|
21449
21495
|
try {
|
|
@@ -21490,7 +21536,7 @@ function SideNavLayoutProvider(props) {
|
|
|
21490
21536
|
return next;
|
|
21491
21537
|
});
|
|
21492
21538
|
}, []);
|
|
21493
|
-
return /* @__PURE__ */
|
|
21539
|
+
return /* @__PURE__ */ jsx172(SideNavLayoutContext.Provider, { value: { navState, setNavState }, children: props.children });
|
|
21494
21540
|
}
|
|
21495
21541
|
function useSideNavLayoutContext() {
|
|
21496
21542
|
return useContext22(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
|
|
@@ -21501,8 +21547,8 @@ function useHasSideNavLayoutProvider() {
|
|
|
21501
21547
|
}
|
|
21502
21548
|
|
|
21503
21549
|
// src/components/SideNav/SideNav.tsx
|
|
21504
|
-
import { trussProps as
|
|
21505
|
-
import { jsx as
|
|
21550
|
+
import { trussProps as trussProps87 } from "@homebound/truss/runtime";
|
|
21551
|
+
import { jsx as jsx173, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
21506
21552
|
function SideNav(props) {
|
|
21507
21553
|
const {
|
|
21508
21554
|
top,
|
|
@@ -21515,8 +21561,8 @@ function SideNav(props) {
|
|
|
21515
21561
|
const tid = useTestIds(props, "sideNav");
|
|
21516
21562
|
const panelCollapsed = navState === "collapse";
|
|
21517
21563
|
const hideOnCollapse = panelCollapsed && !allItemsHaveIcons(items);
|
|
21518
|
-
return /* @__PURE__ */
|
|
21519
|
-
top !== void 0 && /* @__PURE__ */
|
|
21564
|
+
return /* @__PURE__ */ jsxs90("nav", { className: "df fdc h100 fs0", ...tid, children: [
|
|
21565
|
+
top !== void 0 && /* @__PURE__ */ jsx173("div", { ...trussProps87({
|
|
21520
21566
|
flexShrink: "fs0",
|
|
21521
21567
|
paddingLeft: "pl2",
|
|
21522
21568
|
paddingRight: "pr2",
|
|
@@ -21527,7 +21573,7 @@ function SideNav(props) {
|
|
|
21527
21573
|
paddingBottom: "pb4"
|
|
21528
21574
|
} : {}
|
|
21529
21575
|
}), ...tid.top, children: top }),
|
|
21530
|
-
/* @__PURE__ */
|
|
21576
|
+
/* @__PURE__ */ jsx173("div", { ...trussProps87({
|
|
21531
21577
|
flexGrow: "fg1",
|
|
21532
21578
|
overflowY: "oya",
|
|
21533
21579
|
display: "df",
|
|
@@ -21539,8 +21585,8 @@ function SideNav(props) {
|
|
|
21539
21585
|
...top === void 0 ? {
|
|
21540
21586
|
paddingTop: "pt5"
|
|
21541
21587
|
} : {}
|
|
21542
|
-
}), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */
|
|
21543
|
-
footer !== void 0 && /* @__PURE__ */
|
|
21588
|
+
}), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ jsx173(SideNavItems, { items, panelCollapsed }) }),
|
|
21589
|
+
footer !== void 0 && /* @__PURE__ */ jsx173("div", { ...trussProps87({
|
|
21544
21590
|
flexShrink: "fs0",
|
|
21545
21591
|
paddingLeft: "pl2",
|
|
21546
21592
|
paddingRight: "pr2",
|
|
@@ -21617,8 +21663,8 @@ var snackbarId = 1;
|
|
|
21617
21663
|
// src/components/Stepper.tsx
|
|
21618
21664
|
import { useRef as useRef55 } from "react";
|
|
21619
21665
|
import { useButton as useButton12, useFocusRing as useFocusRing15, useHover as useHover19 } from "react-aria";
|
|
21620
|
-
import { trussProps as
|
|
21621
|
-
import { jsx as
|
|
21666
|
+
import { trussProps as trussProps88, maybeCssVar as maybeCssVar47 } from "@homebound/truss/runtime";
|
|
21667
|
+
import { jsx as jsx174, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
21622
21668
|
import { createElement as createElement4 } from "react";
|
|
21623
21669
|
var __maybeInc14 = (inc) => {
|
|
21624
21670
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
@@ -21637,8 +21683,8 @@ function Stepper(props) {
|
|
|
21637
21683
|
const maxStepWidth = 200;
|
|
21638
21684
|
const minStepWidth = 100;
|
|
21639
21685
|
const gap = 8;
|
|
21640
|
-
return /* @__PURE__ */
|
|
21641
|
-
/* @__PURE__ */
|
|
21686
|
+
return /* @__PURE__ */ jsxs91("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
|
|
21687
|
+
/* @__PURE__ */ jsx174("ol", { ...trussProps88({
|
|
21642
21688
|
padding: "p_0",
|
|
21643
21689
|
margin: "m_0",
|
|
21644
21690
|
listStyle: "lis_none",
|
|
@@ -21648,7 +21694,7 @@ function Stepper(props) {
|
|
|
21648
21694
|
}]
|
|
21649
21695
|
}), children: steps.map((step) => {
|
|
21650
21696
|
const isCurrent = currentStep === step.value;
|
|
21651
|
-
return /* @__PURE__ */ createElement4("li", { ...
|
|
21697
|
+
return /* @__PURE__ */ createElement4("li", { ...trussProps88({
|
|
21652
21698
|
display: "df",
|
|
21653
21699
|
flexGrow: "fg1",
|
|
21654
21700
|
flexDirection: "fdc",
|
|
@@ -21658,9 +21704,9 @@ function Stepper(props) {
|
|
|
21658
21704
|
minWidth: ["mw_var", {
|
|
21659
21705
|
"--minWidth": `${minStepWidth}px`
|
|
21660
21706
|
}]
|
|
21661
|
-
}), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */
|
|
21707
|
+
}), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ jsx174(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
|
|
21662
21708
|
}) }),
|
|
21663
|
-
/* @__PURE__ */
|
|
21709
|
+
/* @__PURE__ */ jsx174("div", { ...trussProps88({
|
|
21664
21710
|
marginTop: "mt1",
|
|
21665
21711
|
backgroundColor: "bgGray300",
|
|
21666
21712
|
height: "h_4px",
|
|
@@ -21671,7 +21717,7 @@ function Stepper(props) {
|
|
|
21671
21717
|
"--minWidth": `${steps.length * minStepWidth + (steps.length - 1) * gap}px`
|
|
21672
21718
|
}],
|
|
21673
21719
|
width: "w100"
|
|
21674
|
-
}), children: /* @__PURE__ */
|
|
21720
|
+
}), children: /* @__PURE__ */ jsx174("div", { ...trussProps88({
|
|
21675
21721
|
backgroundColor: "bgBlue600",
|
|
21676
21722
|
transition: "transition_width_200ms",
|
|
21677
21723
|
height: "h100",
|
|
@@ -21712,7 +21758,7 @@ function StepButton(props) {
|
|
|
21712
21758
|
boxShadow: "bshFocus"
|
|
21713
21759
|
};
|
|
21714
21760
|
const tid = useTestIds(props, "stepButton");
|
|
21715
|
-
return /* @__PURE__ */
|
|
21761
|
+
return /* @__PURE__ */ jsxs91("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps88({
|
|
21716
21762
|
...{
|
|
21717
21763
|
fontWeight: "fw6",
|
|
21718
21764
|
fontSize: "fz_14px",
|
|
@@ -21764,7 +21810,7 @@ function StepButton(props) {
|
|
|
21764
21810
|
} : {},
|
|
21765
21811
|
...isFocusVisible ? focusRingStyles2 : {}
|
|
21766
21812
|
}), ...tid[defaultTestId(label)], children: [
|
|
21767
|
-
/* @__PURE__ */
|
|
21813
|
+
/* @__PURE__ */ jsx174("span", { className: "fs0 mr_4px", children: /* @__PURE__ */ jsx174(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
21768
21814
|
label
|
|
21769
21815
|
] });
|
|
21770
21816
|
}
|
|
@@ -21775,12 +21821,12 @@ function StepIcon({
|
|
|
21775
21821
|
isCurrent = false
|
|
21776
21822
|
}) {
|
|
21777
21823
|
if (state === "error") {
|
|
21778
|
-
return /* @__PURE__ */
|
|
21824
|
+
return /* @__PURE__ */ jsx174(Icon, { icon: "errorCircle" });
|
|
21779
21825
|
}
|
|
21780
21826
|
if (state === "complete") {
|
|
21781
|
-
return /* @__PURE__ */
|
|
21827
|
+
return /* @__PURE__ */ jsx174(Icon, { icon: "check" });
|
|
21782
21828
|
}
|
|
21783
|
-
return /* @__PURE__ */
|
|
21829
|
+
return /* @__PURE__ */ jsx174("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx174("div", { ...trussProps88({
|
|
21784
21830
|
width: "w_10px",
|
|
21785
21831
|
height: "h_10px",
|
|
21786
21832
|
borderStyle: "bss",
|
|
@@ -21795,8 +21841,8 @@ function StepIcon({
|
|
|
21795
21841
|
|
|
21796
21842
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
21797
21843
|
import { createPortal as createPortal6 } from "react-dom";
|
|
21798
|
-
import { trussProps as
|
|
21799
|
-
import { jsx as
|
|
21844
|
+
import { trussProps as trussProps89 } from "@homebound/truss/runtime";
|
|
21845
|
+
import { jsx as jsx175, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
21800
21846
|
function SuperDrawerHeader(props) {
|
|
21801
21847
|
const {
|
|
21802
21848
|
hideControls
|
|
@@ -21813,20 +21859,20 @@ function SuperDrawerHeader(props) {
|
|
|
21813
21859
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
21814
21860
|
const isDetail = currentContent !== firstContent;
|
|
21815
21861
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
21816
|
-
return createPortal6(/* @__PURE__ */
|
|
21817
|
-
isStructuredProps(props) ? /* @__PURE__ */
|
|
21818
|
-
/* @__PURE__ */
|
|
21819
|
-
/* @__PURE__ */
|
|
21862
|
+
return createPortal6(/* @__PURE__ */ jsxs92("div", { className: "df aic jcsb gap3", ...tid, children: [
|
|
21863
|
+
isStructuredProps(props) ? /* @__PURE__ */ jsxs92("div", { className: "df jcsb aic gap2 fg1", children: [
|
|
21864
|
+
/* @__PURE__ */ jsxs92("div", { className: "fg1 df aic gap2", children: [
|
|
21865
|
+
/* @__PURE__ */ jsx175("h1", { className: "fw6 fz_30px lh_36px", children: props.title }),
|
|
21820
21866
|
props.left
|
|
21821
21867
|
] }),
|
|
21822
|
-
props.right && /* @__PURE__ */
|
|
21823
|
-
] }) : /* @__PURE__ */
|
|
21824
|
-
!hideControls && /* @__PURE__ */
|
|
21868
|
+
props.right && /* @__PURE__ */ jsx175("div", { className: "fs0", children: props.right })
|
|
21869
|
+
] }) : /* @__PURE__ */ jsx175("div", { className: "fg1", children: props.children }),
|
|
21870
|
+
!hideControls && /* @__PURE__ */ jsx175("div", { ...trussProps89({
|
|
21825
21871
|
flexShrink: "fs0",
|
|
21826
21872
|
...isDetail ? {
|
|
21827
21873
|
visibility: "vh"
|
|
21828
21874
|
} : {}
|
|
21829
|
-
}), children: /* @__PURE__ */
|
|
21875
|
+
}), children: /* @__PURE__ */ jsx175(ButtonGroup, { buttons: [{
|
|
21830
21876
|
icon: "chevronLeft",
|
|
21831
21877
|
onClick: () => onPrevClick && onPrevClick(),
|
|
21832
21878
|
disabled: !onPrevClick
|
|
@@ -21842,18 +21888,18 @@ function isStructuredProps(props) {
|
|
|
21842
21888
|
}
|
|
21843
21889
|
|
|
21844
21890
|
// src/components/SuperDrawer/ConfirmCloseModal.tsx
|
|
21845
|
-
import { Fragment as Fragment40, jsx as
|
|
21891
|
+
import { Fragment as Fragment40, jsx as jsx176, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
21846
21892
|
function ConfirmCloseModal(props) {
|
|
21847
21893
|
const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
|
|
21848
21894
|
const { modalState } = useBeamContext();
|
|
21849
21895
|
function closeModal() {
|
|
21850
21896
|
modalState.current = void 0;
|
|
21851
21897
|
}
|
|
21852
|
-
return /* @__PURE__ */
|
|
21853
|
-
/* @__PURE__ */
|
|
21854
|
-
/* @__PURE__ */
|
|
21855
|
-
/* @__PURE__ */
|
|
21856
|
-
/* @__PURE__ */
|
|
21898
|
+
return /* @__PURE__ */ jsxs93(Fragment40, { children: [
|
|
21899
|
+
/* @__PURE__ */ jsx176(ModalHeader, { children: "Are you sure you want to cancel?" }),
|
|
21900
|
+
/* @__PURE__ */ jsx176(ModalBody, { children: /* @__PURE__ */ jsx176("p", { children: "Any changes you've made so far will be lost." }) }),
|
|
21901
|
+
/* @__PURE__ */ jsxs93(ModalFooter, { children: [
|
|
21902
|
+
/* @__PURE__ */ jsx176(
|
|
21857
21903
|
Button,
|
|
21858
21904
|
{
|
|
21859
21905
|
variant: "quaternary",
|
|
@@ -21864,7 +21910,7 @@ function ConfirmCloseModal(props) {
|
|
|
21864
21910
|
}
|
|
21865
21911
|
}
|
|
21866
21912
|
),
|
|
21867
|
-
/* @__PURE__ */
|
|
21913
|
+
/* @__PURE__ */ jsx176(Button, { label: continueText, onClick: closeModal })
|
|
21868
21914
|
] })
|
|
21869
21915
|
] });
|
|
21870
21916
|
}
|
|
@@ -21874,7 +21920,7 @@ import { motion as motion5 } from "framer-motion";
|
|
|
21874
21920
|
|
|
21875
21921
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
21876
21922
|
import { useMemo as useMemo50 } from "react";
|
|
21877
|
-
import { jsx as
|
|
21923
|
+
import { jsx as jsx177 } from "react/jsx-runtime";
|
|
21878
21924
|
function useSuperDrawer() {
|
|
21879
21925
|
const {
|
|
21880
21926
|
drawerContentStack: contentStack,
|
|
@@ -21886,7 +21932,7 @@ function useSuperDrawer() {
|
|
|
21886
21932
|
function canCloseDrawerDetails(i, doChange) {
|
|
21887
21933
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
21888
21934
|
if (!canClose(canCloseDrawerDetail)) {
|
|
21889
|
-
openModal({ content: /* @__PURE__ */
|
|
21935
|
+
openModal({ content: /* @__PURE__ */ jsx177(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
21890
21936
|
return false;
|
|
21891
21937
|
}
|
|
21892
21938
|
}
|
|
@@ -21906,7 +21952,7 @@ function useSuperDrawer() {
|
|
|
21906
21952
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
21907
21953
|
if (!canClose(canCloseDrawer)) {
|
|
21908
21954
|
openModal({
|
|
21909
|
-
content: /* @__PURE__ */
|
|
21955
|
+
content: /* @__PURE__ */ jsx177(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
21910
21956
|
});
|
|
21911
21957
|
return;
|
|
21912
21958
|
}
|
|
@@ -22002,7 +22048,7 @@ function canClose(canCloseCheck) {
|
|
|
22002
22048
|
|
|
22003
22049
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
22004
22050
|
import { mergeProps as mergeProps26 } from "@homebound/truss/runtime";
|
|
22005
|
-
import { Fragment as Fragment41, jsx as
|
|
22051
|
+
import { Fragment as Fragment41, jsx as jsx178, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
22006
22052
|
var SuperDrawerContent = ({
|
|
22007
22053
|
children,
|
|
22008
22054
|
actions
|
|
@@ -22022,17 +22068,17 @@ var SuperDrawerContent = ({
|
|
|
22022
22068
|
} = firstContent ?? {};
|
|
22023
22069
|
function wrapWithMotionAndMaybeBack(children2) {
|
|
22024
22070
|
if (kind === "open") {
|
|
22025
|
-
return /* @__PURE__ */
|
|
22071
|
+
return /* @__PURE__ */ jsx178(motion5.div, { className: "pt3 pb3 pr3 pl3 fg1 oa", children: children2 }, "content");
|
|
22026
22072
|
} else if (kind === "detail") {
|
|
22027
|
-
return /* @__PURE__ */
|
|
22073
|
+
return /* @__PURE__ */ jsxs94(motion5.div, { className: "pl3 pr3 pt2 pb3 fg1", animate: {
|
|
22028
22074
|
overflow: "auto"
|
|
22029
22075
|
}, transition: {
|
|
22030
22076
|
overflow: {
|
|
22031
22077
|
delay: 0.3
|
|
22032
22078
|
}
|
|
22033
22079
|
}, children: [
|
|
22034
|
-
/* @__PURE__ */
|
|
22035
|
-
/* @__PURE__ */
|
|
22080
|
+
/* @__PURE__ */ jsx178(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
22081
|
+
/* @__PURE__ */ jsx178(motion5.div, { initial: {
|
|
22036
22082
|
x: width2,
|
|
22037
22083
|
opacity: 0
|
|
22038
22084
|
}, animate: {
|
|
@@ -22050,7 +22096,7 @@ var SuperDrawerContent = ({
|
|
|
22050
22096
|
}, className: "pt2", children: children2 })
|
|
22051
22097
|
] }, "content");
|
|
22052
22098
|
} else {
|
|
22053
|
-
return /* @__PURE__ */
|
|
22099
|
+
return /* @__PURE__ */ jsx178(motion5.div, { ...mergeProps26(void 0, {
|
|
22054
22100
|
overflow: "auto"
|
|
22055
22101
|
}, {
|
|
22056
22102
|
paddingTop: "pt3",
|
|
@@ -22061,9 +22107,9 @@ var SuperDrawerContent = ({
|
|
|
22061
22107
|
}) }, "content");
|
|
22062
22108
|
}
|
|
22063
22109
|
}
|
|
22064
|
-
return /* @__PURE__ */
|
|
22110
|
+
return /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
22065
22111
|
wrapWithMotionAndMaybeBack(children),
|
|
22066
|
-
actions && /* @__PURE__ */
|
|
22112
|
+
actions && /* @__PURE__ */ jsx178("footer", { className: "bts_solid btw_1px bcGray200 pt3 pb3 pr3 pl3 df aic jcfe", children: /* @__PURE__ */ jsx178("div", { className: "df gap1", children: actions.map((buttonProps, i) => /* @__PURE__ */ jsx178(Button, { ...buttonProps }, i)) }) })
|
|
22067
22113
|
] });
|
|
22068
22114
|
};
|
|
22069
22115
|
|
|
@@ -22091,15 +22137,15 @@ import { useEffect as useEffect35, useMemo as useMemo51, useRef as useRef56, use
|
|
|
22091
22137
|
import { mergeProps as mergeProps27, useFocusRing as useFocusRing16, useHover as useHover20 } from "react-aria";
|
|
22092
22138
|
import { matchPath } from "react-router";
|
|
22093
22139
|
import { Link as Link5, useLocation } from "react-router-dom";
|
|
22094
|
-
import { trussProps as
|
|
22095
|
-
import { Fragment as Fragment42, jsx as
|
|
22140
|
+
import { trussProps as trussProps90, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
|
|
22141
|
+
import { Fragment as Fragment42, jsx as jsx179, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
22096
22142
|
function TabsWithContent(props) {
|
|
22097
22143
|
const styles = hideTabs(props) ? {} : {
|
|
22098
22144
|
paddingTop: "pt3"
|
|
22099
22145
|
};
|
|
22100
|
-
return /* @__PURE__ */
|
|
22101
|
-
/* @__PURE__ */
|
|
22102
|
-
/* @__PURE__ */
|
|
22146
|
+
return /* @__PURE__ */ jsxs95(Fragment42, { children: [
|
|
22147
|
+
/* @__PURE__ */ jsx179(Tabs, { ...props }),
|
|
22148
|
+
/* @__PURE__ */ jsx179(TabContent, { ...props, contentXss: {
|
|
22103
22149
|
...styles,
|
|
22104
22150
|
...props.contentXss
|
|
22105
22151
|
} })
|
|
@@ -22124,7 +22170,7 @@ function TabContent(props) {
|
|
|
22124
22170
|
return (
|
|
22125
22171
|
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
22126
22172
|
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
22127
|
-
/* @__PURE__ */
|
|
22173
|
+
/* @__PURE__ */ jsx179(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx179("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps90(contentXss), children: selectedTab.render() }) })
|
|
22128
22174
|
);
|
|
22129
22175
|
}
|
|
22130
22176
|
function Tabs(props) {
|
|
@@ -22166,7 +22212,7 @@ function Tabs(props) {
|
|
|
22166
22212
|
setActive(selected);
|
|
22167
22213
|
}
|
|
22168
22214
|
}
|
|
22169
|
-
return /* @__PURE__ */
|
|
22215
|
+
return /* @__PURE__ */ jsxs95("div", { ...trussProps90({
|
|
22170
22216
|
...{
|
|
22171
22217
|
display: "df",
|
|
22172
22218
|
alignItems: "aic",
|
|
@@ -22182,11 +22228,11 @@ function Tabs(props) {
|
|
|
22182
22228
|
}
|
|
22183
22229
|
} : {}
|
|
22184
22230
|
}), children: [
|
|
22185
|
-
!hideTabs(props) && /* @__PURE__ */
|
|
22231
|
+
!hideTabs(props) && /* @__PURE__ */ jsx179("div", { ref, className: "dif gap1 asfe", "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
22186
22232
|
const uniqueValue = uniqueTabValue(tab);
|
|
22187
|
-
return /* @__PURE__ */
|
|
22233
|
+
return /* @__PURE__ */ jsx179(TabImpl, { active: active === uniqueValue, focusProps, isFocusVisible, onClick, onKeyUp, onBlur, tab, ...tid[defaultTestId(uniqueValue)] }, uniqueValue);
|
|
22188
22234
|
}) }),
|
|
22189
|
-
right && /* @__PURE__ */
|
|
22235
|
+
right && /* @__PURE__ */ jsx179("div", { className: "mla df aic gap1 pb1", children: right })
|
|
22190
22236
|
] });
|
|
22191
22237
|
}
|
|
22192
22238
|
function TabImpl(props) {
|
|
@@ -22230,7 +22276,7 @@ function TabImpl(props) {
|
|
|
22230
22276
|
role: "tab",
|
|
22231
22277
|
tabIndex: active ? 0 : -1,
|
|
22232
22278
|
...others,
|
|
22233
|
-
...
|
|
22279
|
+
...trussProps90({
|
|
22234
22280
|
...baseStyles5,
|
|
22235
22281
|
...active && activeStyles3,
|
|
22236
22282
|
...isDisabled && disabledStyles4,
|
|
@@ -22246,17 +22292,17 @@ function TabImpl(props) {
|
|
|
22246
22292
|
onClick: () => onClick(tab.value)
|
|
22247
22293
|
}
|
|
22248
22294
|
});
|
|
22249
|
-
const tabLabel = /* @__PURE__ */
|
|
22295
|
+
const tabLabel = /* @__PURE__ */ jsxs95(Fragment42, { children: [
|
|
22250
22296
|
label,
|
|
22251
|
-
(icon || endAdornment) && /* @__PURE__ */
|
|
22297
|
+
(icon || endAdornment) && /* @__PURE__ */ jsx179("span", { className: "ml1", children: icon ? /* @__PURE__ */ jsx179(Icon, { icon }) : endAdornment })
|
|
22252
22298
|
] });
|
|
22253
22299
|
return isDisabled ? maybeTooltip({
|
|
22254
22300
|
title: resolveTooltip(disabled),
|
|
22255
22301
|
placement: "top",
|
|
22256
|
-
children: /* @__PURE__ */
|
|
22257
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */
|
|
22302
|
+
children: /* @__PURE__ */ jsx179("div", { ...tabProps, children: tabLabel })
|
|
22303
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ jsx179(Link5, { ...mergeProps27(tabProps, interactiveProps, {
|
|
22258
22304
|
className: "navLink"
|
|
22259
|
-
}), to: tab.href, children: tabLabel }) : /* @__PURE__ */
|
|
22305
|
+
}), to: tab.href, children: tabLabel }) : /* @__PURE__ */ jsx179("button", { ...{
|
|
22260
22306
|
...tabProps,
|
|
22261
22307
|
...interactiveProps
|
|
22262
22308
|
}, children: tabLabel });
|
|
@@ -22359,12 +22405,12 @@ function useToast() {
|
|
|
22359
22405
|
}
|
|
22360
22406
|
|
|
22361
22407
|
// src/layouts/SideNavLayout/SideNavLayout.tsx
|
|
22362
|
-
import { trussProps as
|
|
22363
|
-
import { jsx as
|
|
22408
|
+
import { trussProps as trussProps91, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
|
|
22409
|
+
import { jsx as jsx180, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
22364
22410
|
function SideNavLayout(props) {
|
|
22365
22411
|
const hasProvider = useHasSideNavLayoutProvider();
|
|
22366
|
-
if (hasProvider) return /* @__PURE__ */
|
|
22367
|
-
return /* @__PURE__ */
|
|
22412
|
+
if (hasProvider) return /* @__PURE__ */ jsx180(SideNavLayoutContent, { ...props });
|
|
22413
|
+
return /* @__PURE__ */ jsx180(SideNavLayoutProvider, { children: /* @__PURE__ */ jsx180(SideNavLayoutContent, { ...props }) });
|
|
22368
22414
|
}
|
|
22369
22415
|
function SideNavLayoutContent(props) {
|
|
22370
22416
|
const {
|
|
@@ -22384,7 +22430,7 @@ function SideNavLayoutContent(props) {
|
|
|
22384
22430
|
const railCollapsedWidthPx = 56;
|
|
22385
22431
|
const collapsed = navState === "collapse";
|
|
22386
22432
|
const showRail = sideNav !== void 0 && navState !== "hidden";
|
|
22387
|
-
const rail = showRail && /* @__PURE__ */
|
|
22433
|
+
const rail = showRail && /* @__PURE__ */ jsxs96("div", { ...trussProps91({
|
|
22388
22434
|
...{
|
|
22389
22435
|
position: "absolute",
|
|
22390
22436
|
top: "top0",
|
|
@@ -22430,12 +22476,12 @@ function SideNavLayoutContent(props) {
|
|
|
22430
22476
|
}
|
|
22431
22477
|
} : {}
|
|
22432
22478
|
}), ...tid.sideNav, children: [
|
|
22433
|
-
showCollapseToggle && /* @__PURE__ */
|
|
22434
|
-
/* @__PURE__ */
|
|
22479
|
+
showCollapseToggle && /* @__PURE__ */ jsx180("div", { className: "absolute right2 top2", children: /* @__PURE__ */ jsx180(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
|
|
22480
|
+
/* @__PURE__ */ jsx180("div", { className: "fg1 oya", ...tid.sideNavContent, children: sideNav })
|
|
22435
22481
|
] });
|
|
22436
|
-
return /* @__PURE__ */
|
|
22437
|
-
contrastRail ? /* @__PURE__ */
|
|
22438
|
-
/* @__PURE__ */
|
|
22482
|
+
return /* @__PURE__ */ jsxs96("div", { className: "relative df oh fg1", ...tid, children: [
|
|
22483
|
+
contrastRail ? /* @__PURE__ */ jsx180(ContrastScope, { children: rail }) : rail,
|
|
22484
|
+
/* @__PURE__ */ jsx180(ScrollableParent, { px: contentPx, xss: {
|
|
22439
22485
|
marginLeft: ["ml_var", {
|
|
22440
22486
|
"--marginLeft": `${railCollapsedWidthPx}px`
|
|
22441
22487
|
}],
|
|
@@ -22545,6 +22591,7 @@ export {
|
|
|
22545
22591
|
NavLink,
|
|
22546
22592
|
NumberField,
|
|
22547
22593
|
OpenModal,
|
|
22594
|
+
PageHeader2 as PageHeader,
|
|
22548
22595
|
Pagination,
|
|
22549
22596
|
Palette,
|
|
22550
22597
|
PresentationProvider,
|