@homebound/beam 3.52.0 → 3.54.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 +666 -695
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +69 -70
- package/dist/index.d.ts +69 -70
- package/dist/index.js +580 -608
- package/dist/index.js.map +1 -1
- package/dist/truss.css +0 -4
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -136,7 +136,6 @@ __export(index_exports, {
|
|
|
136
136
|
NavbarLayout: () => NavbarLayout,
|
|
137
137
|
NumberField: () => NumberField,
|
|
138
138
|
OpenModal: () => OpenModal,
|
|
139
|
-
PageHeader: () => PageHeader2,
|
|
140
139
|
PageHeaderLayout: () => PageHeaderLayout,
|
|
141
140
|
Pagination: () => Pagination,
|
|
142
141
|
Palette: () => Palette,
|
|
@@ -20415,6 +20414,27 @@ function invertSpacing(value) {
|
|
|
20415
20414
|
var import_utils131 = require("@react-aria/utils");
|
|
20416
20415
|
var import_react113 = __toESM(require("react"), 1);
|
|
20417
20416
|
|
|
20417
|
+
// src/components/Filters/utils.tsx
|
|
20418
|
+
function getActiveFilterCount(filter) {
|
|
20419
|
+
return safeKeys(filter).filter((key) => isDefined(filter[key])).length;
|
|
20420
|
+
}
|
|
20421
|
+
function updateFilter(currentFilter, key, value) {
|
|
20422
|
+
if (value === void 0) {
|
|
20423
|
+
return omitKey(key, currentFilter);
|
|
20424
|
+
} else {
|
|
20425
|
+
return { ...currentFilter, [key]: value };
|
|
20426
|
+
}
|
|
20427
|
+
}
|
|
20428
|
+
var filterTestIdPrefix = "filter";
|
|
20429
|
+
|
|
20430
|
+
// src/components/Layout/layoutTypes.ts
|
|
20431
|
+
function isGridTableProps(props) {
|
|
20432
|
+
return "rows" in props;
|
|
20433
|
+
}
|
|
20434
|
+
|
|
20435
|
+
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
20436
|
+
var import_react110 = require("react");
|
|
20437
|
+
|
|
20418
20438
|
// src/components/ButtonMenu.tsx
|
|
20419
20439
|
var import_react105 = require("react");
|
|
20420
20440
|
var import_react_aria51 = require("react-aria");
|
|
@@ -20452,27 +20472,6 @@ function isSelectionButtonMenuProps(props) {
|
|
|
20452
20472
|
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
20453
20473
|
}
|
|
20454
20474
|
|
|
20455
|
-
// src/components/Filters/utils.tsx
|
|
20456
|
-
function getActiveFilterCount(filter) {
|
|
20457
|
-
return safeKeys(filter).filter((key) => isDefined(filter[key])).length;
|
|
20458
|
-
}
|
|
20459
|
-
function updateFilter(currentFilter, key, value) {
|
|
20460
|
-
if (value === void 0) {
|
|
20461
|
-
return omitKey(key, currentFilter);
|
|
20462
|
-
} else {
|
|
20463
|
-
return { ...currentFilter, [key]: value };
|
|
20464
|
-
}
|
|
20465
|
-
}
|
|
20466
|
-
var filterTestIdPrefix = "filter";
|
|
20467
|
-
|
|
20468
|
-
// src/components/Layout/layoutTypes.ts
|
|
20469
|
-
function isGridTableProps(props) {
|
|
20470
|
-
return "rows" in props;
|
|
20471
|
-
}
|
|
20472
|
-
|
|
20473
|
-
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
20474
|
-
var import_react110 = require("react");
|
|
20475
|
-
|
|
20476
20475
|
// src/components/CountBadge.tsx
|
|
20477
20476
|
var import_runtime81 = require("@homebound/truss/runtime");
|
|
20478
20477
|
var import_jsx_runtime140 = require("react/jsx-runtime");
|
|
@@ -21342,7 +21341,8 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
21342
21341
|
view,
|
|
21343
21342
|
setView,
|
|
21344
21343
|
clearFilters,
|
|
21345
|
-
searchApi
|
|
21344
|
+
searchApi,
|
|
21345
|
+
actionMenu
|
|
21346
21346
|
} = props;
|
|
21347
21347
|
const testId = useTestIds(props, "gridTableLayoutActions");
|
|
21348
21348
|
const {
|
|
@@ -21412,9 +21412,12 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
21412
21412
|
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon, { icon: showFilters ? "chevronUp" : "chevronDown" })
|
|
21413
21413
|
] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton })
|
|
21414
21414
|
] }),
|
|
21415
|
-
(hasHideableColumns || withCardView) && /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "df gap_12px", children: [
|
|
21415
|
+
(hasHideableColumns || withCardView || actionMenu) && /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "df aic gap_12px", children: [
|
|
21416
21416
|
hasHideableColumns && view === "list" && columns && api && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(EditColumnsButton, { columns, api, tooltip: "Display columns" }),
|
|
21417
|
-
withCardView && view !== void 0 && setView && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(ViewToggleButton, { view, onChange: setView })
|
|
21417
|
+
withCardView && view !== void 0 && setView && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(ViewToggleButton, { view, onChange: setView }),
|
|
21418
|
+
actionMenu && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(ButtonMenu, { ...actionMenu, trigger: {
|
|
21419
|
+
icon: "verticalDots"
|
|
21420
|
+
} })
|
|
21418
21421
|
] })
|
|
21419
21422
|
] }),
|
|
21420
21423
|
sm && showSearch && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "pl3 pr3", children: searchTextField }),
|
|
@@ -21543,13 +21546,8 @@ var __maybeInc15 = (inc) => {
|
|
|
21543
21546
|
};
|
|
21544
21547
|
function GridTableLayoutComponent(props) {
|
|
21545
21548
|
const {
|
|
21546
|
-
pageTitle,
|
|
21547
|
-
breadCrumb,
|
|
21548
21549
|
tableProps,
|
|
21549
21550
|
layoutState,
|
|
21550
|
-
primaryAction,
|
|
21551
|
-
secondaryAction,
|
|
21552
|
-
tertiaryAction,
|
|
21553
21551
|
actionMenu,
|
|
21554
21552
|
hideEditColumns = false,
|
|
21555
21553
|
withCardView,
|
|
@@ -21566,7 +21564,7 @@ function GridTableLayoutComponent(props) {
|
|
|
21566
21564
|
const api = (0, import_react113.useMemo)(() => tableProps.api ?? new GridTableApiImpl(), [tableProps.api]);
|
|
21567
21565
|
const [view, setView] = usePersistedTableView(defaultView, !!withCardView);
|
|
21568
21566
|
const clientSearch = layoutState?.search === "client" ? layoutState.searchString : void 0;
|
|
21569
|
-
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView);
|
|
21567
|
+
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actionMenu);
|
|
21570
21568
|
const isVirtualized = tableProps.as === "virtual" || !!withCardView && view === "card";
|
|
21571
21569
|
const inDocumentScrollLayout = useDocumentScrollLayout();
|
|
21572
21570
|
const tableActionsRef = (0, import_react113.useRef)(null);
|
|
@@ -21588,7 +21586,7 @@ function GridTableLayoutComponent(props) {
|
|
|
21588
21586
|
searchApiRef.current?.clear();
|
|
21589
21587
|
}, [layoutState]);
|
|
21590
21588
|
const emptyState = (0, import_react113.useMemo)(() => composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFilters), [layoutEmptyFallback, layoutState, tableProps, clearFilters]);
|
|
21591
|
-
const tableActionsEl = /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(_GridTableLayoutActions, { filterDefs: layoutState?.filterDefs, filter: layoutState?.filter, setFilter: layoutState?.setFilter, groupBy: layoutState?.groupBy, searchProps: filterSearchProps, hasHideableColumns, columns, api, withCardView, view, setView, clearFilters, searchApi: searchApiRef });
|
|
21589
|
+
const tableActionsEl = /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(_GridTableLayoutActions, { filterDefs: layoutState?.filterDefs, filter: layoutState?.filter, setFilter: layoutState?.setFilter, groupBy: layoutState?.groupBy, searchProps: filterSearchProps, hasHideableColumns, columns, api, withCardView, view, setView, clearFilters, searchApi: searchApiRef, actionMenu });
|
|
21592
21590
|
const cardAs = withCardView && view === "card" ? "card" : void 0;
|
|
21593
21591
|
const tableStyle = resolveGridTableLayoutStyle(tableProps.style, inDocumentScrollLayout);
|
|
21594
21592
|
const tableBody = /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(import_jsx_runtime159.Fragment, { children: isGridTableProps(tableProps) ? /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(GridTable, { ...tableProps, ...cardAs ? {
|
|
@@ -21620,10 +21618,10 @@ function GridTableLayoutComponent(props) {
|
|
|
21620
21618
|
}), ...tid.stickyContent, children: tableActionsEl }),
|
|
21621
21619
|
inDocumentScrollLayout ? tableBody : /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ScrollableContent, { virtualized: isVirtualized, children: tableBody })
|
|
21622
21620
|
] });
|
|
21623
|
-
return
|
|
21624
|
-
|
|
21621
|
+
return (
|
|
21622
|
+
/* Wrapper sets --beam-table-actions-height so GridTable's sticky header can read it. */
|
|
21625
21623
|
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)("div", { ref: tableWrapperRef, className: "display_contents", ...tid.tableWrapper, children: tableScrollContent })
|
|
21626
|
-
|
|
21624
|
+
);
|
|
21627
21625
|
}
|
|
21628
21626
|
var GridTableLayout = import_react113.default.memo(GridTableLayoutComponent);
|
|
21629
21627
|
function validateColumns(columns) {
|
|
@@ -21711,43 +21709,6 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
21711
21709
|
};
|
|
21712
21710
|
}, [tableWrapperRef, syncHeightVar]);
|
|
21713
21711
|
}
|
|
21714
|
-
function Header2(props) {
|
|
21715
|
-
const {
|
|
21716
|
-
pageTitle,
|
|
21717
|
-
breadCrumb,
|
|
21718
|
-
primaryAction,
|
|
21719
|
-
secondaryAction,
|
|
21720
|
-
tertiaryAction,
|
|
21721
|
-
actionMenu
|
|
21722
|
-
} = props;
|
|
21723
|
-
const tids = useTestIds(props);
|
|
21724
|
-
return /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(FullBleed, { children: /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("header", { ...(0, import_runtime88.trussProps)({
|
|
21725
|
-
...{
|
|
21726
|
-
paddingTop: "pt3",
|
|
21727
|
-
paddingBottom: "pb3",
|
|
21728
|
-
paddingRight: "pr3",
|
|
21729
|
-
paddingLeft: "pl3",
|
|
21730
|
-
minHeight: "mh_50px",
|
|
21731
|
-
backgroundColor: "bgWhite",
|
|
21732
|
-
display: "df",
|
|
21733
|
-
justifyContent: "jcsb",
|
|
21734
|
-
alignItems: "aic"
|
|
21735
|
-
}
|
|
21736
|
-
}), ...tids.header, children: [
|
|
21737
|
-
/* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("div", { children: [
|
|
21738
|
-
breadCrumb && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(PageHeaderBreadcrumbs, { breadcrumb: breadCrumb }),
|
|
21739
|
-
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)("h1", { className: "fw6 fz_30px lh_36px mt1", ...tids.pageTitle, children: pageTitle })
|
|
21740
|
-
] }),
|
|
21741
|
-
/* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("div", { className: "df fwr jcfe gap1 aic", children: [
|
|
21742
|
-
tertiaryAction && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(Button, { ...tertiaryAction, variant: "tertiary" }),
|
|
21743
|
-
secondaryAction && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(Button, { ...secondaryAction, variant: "secondary" }),
|
|
21744
|
-
primaryAction && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(Button, { ...primaryAction }),
|
|
21745
|
-
actionMenu && /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ButtonMenu, { ...actionMenu, trigger: {
|
|
21746
|
-
icon: "verticalDots"
|
|
21747
|
-
} })
|
|
21748
|
-
] })
|
|
21749
|
-
] }) });
|
|
21750
|
-
}
|
|
21751
21712
|
function resolveGridTableLayoutStyle(userStyle, inDocumentScrollLayout) {
|
|
21752
21713
|
const layoutDefaults = {
|
|
21753
21714
|
allWhite: true,
|
|
@@ -24130,409 +24091,91 @@ function NavbarUserMenu({
|
|
|
24130
24091
|
}, placement: "right", ...tid }) });
|
|
24131
24092
|
}
|
|
24132
24093
|
|
|
24133
|
-
// src/components/
|
|
24134
|
-
var import_change_case9 = require("change-case");
|
|
24135
|
-
var import_react138 = require("react");
|
|
24136
|
-
var import_react_aria62 = require("react-aria");
|
|
24137
|
-
var import_react_router = require("react-router");
|
|
24138
|
-
var import_react_router_dom8 = require("react-router-dom");
|
|
24139
|
-
var import_runtime110 = require("@homebound/truss/runtime");
|
|
24094
|
+
// src/components/Pagination.tsx
|
|
24140
24095
|
var import_jsx_runtime190 = require("react/jsx-runtime");
|
|
24141
|
-
|
|
24142
|
-
|
|
24143
|
-
|
|
24144
|
-
|
|
24145
|
-
|
|
24146
|
-
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)(Tabs, { ...props }),
|
|
24147
|
-
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)(TabContent, { ...props, contentXss: {
|
|
24148
|
-
...styles,
|
|
24149
|
-
...props.contentXss
|
|
24150
|
-
} })
|
|
24151
|
-
] });
|
|
24152
|
-
}
|
|
24153
|
-
function TabContent(props) {
|
|
24154
|
-
const tid = useTestIds(props, "tab");
|
|
24155
|
-
const {
|
|
24156
|
-
tabs,
|
|
24157
|
-
contentXss = {},
|
|
24158
|
-
omitFullBleedPadding = false
|
|
24159
|
-
} = props;
|
|
24160
|
-
const location = (0, import_react_router_dom8.useLocation)();
|
|
24161
|
-
const selectedTab = isRouteTabs(props) ? props.tabs.find((t) => {
|
|
24162
|
-
const paths = Array.isArray(t.path) ? t.path : [t.path];
|
|
24163
|
-
return paths.some((p) => !!(0, import_react_router.matchPath)({
|
|
24164
|
-
path: p,
|
|
24165
|
-
end: true
|
|
24166
|
-
}, location.pathname));
|
|
24167
|
-
}) || tabs[0] : props.tabs.find((tab) => tab.value === props.selected) || tabs[0];
|
|
24168
|
-
const uniqueValue = uniqueTabValue(selectedTab);
|
|
24169
|
-
return (
|
|
24170
|
-
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
24171
|
-
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
24172
|
-
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...(0, import_runtime110.trussProps)(contentXss), children: selectedTab.render() }) })
|
|
24173
|
-
);
|
|
24174
|
-
}
|
|
24175
|
-
function Tabs(props) {
|
|
24096
|
+
var defaultPage = {
|
|
24097
|
+
offset: 0,
|
|
24098
|
+
limit: 100
|
|
24099
|
+
};
|
|
24100
|
+
function Pagination(props) {
|
|
24176
24101
|
const {
|
|
24177
|
-
|
|
24178
|
-
|
|
24179
|
-
includeBottomBorder,
|
|
24180
|
-
right,
|
|
24181
|
-
...others
|
|
24102
|
+
totalCount,
|
|
24103
|
+
pageSizes = [100, 500, 1e3]
|
|
24182
24104
|
} = props;
|
|
24183
|
-
const
|
|
24184
|
-
const selected = isRouteTabs(props) ? uniqueTabValue(props.tabs.find((t) => {
|
|
24185
|
-
const paths = Array.isArray(t.path) ? t.path : [t.path];
|
|
24186
|
-
return paths.some((p) => !!(0, import_react_router.matchPath)({
|
|
24187
|
-
path: p,
|
|
24188
|
-
end: true
|
|
24189
|
-
}, location.pathname));
|
|
24190
|
-
}) || props.tabs[0]) : props.selected;
|
|
24105
|
+
const [page, setPage] = props.page;
|
|
24191
24106
|
const {
|
|
24192
|
-
|
|
24193
|
-
|
|
24194
|
-
} = (
|
|
24195
|
-
const
|
|
24196
|
-
|
|
24197
|
-
|
|
24198
|
-
|
|
24199
|
-
|
|
24200
|
-
|
|
24201
|
-
|
|
24202
|
-
|
|
24203
|
-
|
|
24204
|
-
|
|
24205
|
-
|
|
24206
|
-
|
|
24207
|
-
|
|
24208
|
-
|
|
24209
|
-
function onBlur(e) {
|
|
24210
|
-
if (!(ref.current && ref.current.contains(e.relatedTarget))) {
|
|
24211
|
-
setActive(selected);
|
|
24107
|
+
pageSize,
|
|
24108
|
+
pageNumber
|
|
24109
|
+
} = toPageNumberSize(page);
|
|
24110
|
+
const pageOptions = pageSizes.map((size) => ({
|
|
24111
|
+
id: size,
|
|
24112
|
+
name: String(size)
|
|
24113
|
+
}));
|
|
24114
|
+
const hasPrevPage = pageNumber > 1;
|
|
24115
|
+
const hasNextPage = pageNumber < totalCount / pageSize;
|
|
24116
|
+
const first = pageSize * (pageNumber - 1) + (totalCount ? 1 : 0);
|
|
24117
|
+
const last = Math.min(pageSize * pageNumber, totalCount);
|
|
24118
|
+
const showLast = totalCount > 0;
|
|
24119
|
+
function set(newPage) {
|
|
24120
|
+
if ("pageNumber" in props.page[0]) {
|
|
24121
|
+
setPage(newPage);
|
|
24122
|
+
} else {
|
|
24123
|
+
setPage(toLimitAndOffset(newPage));
|
|
24212
24124
|
}
|
|
24213
24125
|
}
|
|
24214
|
-
|
|
24215
|
-
|
|
24216
|
-
|
|
24217
|
-
|
|
24218
|
-
|
|
24219
|
-
|
|
24220
|
-
|
|
24221
|
-
|
|
24222
|
-
|
|
24223
|
-
|
|
24224
|
-
|
|
24225
|
-
|
|
24226
|
-
|
|
24227
|
-
|
|
24228
|
-
|
|
24229
|
-
|
|
24230
|
-
|
|
24231
|
-
|
|
24232
|
-
|
|
24233
|
-
|
|
24234
|
-
|
|
24126
|
+
const tid = useTestIds(props, "pagination");
|
|
24127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime190.jsxs)("div", { className: "df bcGray200 bts_solid btw_1px fw4 fz_12px lh_16px gray500 pl2 pr2 pt2", ...tid, children: [
|
|
24128
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)("div", { className: "df mta mba mr2", ...tid.pageSizeLabel, children: "Page size:" }),
|
|
24129
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)("div", { className: "w_78px", children: /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(SelectField, { compact: true, label: "Page Size", labelStyle: "hidden", options: pageOptions, value: pageSize, onSelect: (val) => set({
|
|
24130
|
+
pageNumber: 1,
|
|
24131
|
+
pageSize: val
|
|
24132
|
+
}), autoSort: false, ...tid.pageSize }) }),
|
|
24133
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsxs)("div", { className: "mla mta mba df", children: [
|
|
24134
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsxs)("div", { className: "df mta mba mr2", ...tid.pageInfoLabel, children: [
|
|
24135
|
+
first,
|
|
24136
|
+
" ",
|
|
24137
|
+
showLast ? `- ${last}` : "",
|
|
24138
|
+
" of ",
|
|
24139
|
+
totalCount
|
|
24140
|
+
] }),
|
|
24141
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)(IconButton, { icon: "chevronLeft", color: hasPrevPage ? "rgba(29, 78, 216, 1)" /* Blue700 */ : "rgba(236, 235, 235, 1)" /* Gray200 */, onClick: () => set({
|
|
24142
|
+
pageNumber: pageNumber - 1,
|
|
24143
|
+
pageSize
|
|
24144
|
+
}), disabled: !hasPrevPage, ...tid.previousIcon }),
|
|
24145
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)(IconButton, { icon: "chevronRight", color: hasNextPage ? "rgba(29, 78, 216, 1)" /* Blue700 */ : "rgba(236, 235, 235, 1)" /* Gray200 */, onClick: () => set({
|
|
24146
|
+
pageNumber: pageNumber + 1,
|
|
24147
|
+
pageSize
|
|
24148
|
+
}), disabled: !hasNextPage, ...tid.nextIcon })
|
|
24149
|
+
] })
|
|
24235
24150
|
] });
|
|
24236
24151
|
}
|
|
24237
|
-
function
|
|
24152
|
+
function toLimitAndOffset(page) {
|
|
24153
|
+
return "limit" in page ? page : {
|
|
24154
|
+
// E.g. on first page the offset is 0, second page the offset is 100, then 200, etc.
|
|
24155
|
+
offset: (page.pageNumber - 1) * page.pageSize,
|
|
24156
|
+
limit: page.pageSize
|
|
24157
|
+
};
|
|
24158
|
+
}
|
|
24159
|
+
function toPageNumberSize(page) {
|
|
24160
|
+
return "pageNumber" in page ? page : {
|
|
24161
|
+
pageNumber: Math.floor(page.offset / page.limit) + 1,
|
|
24162
|
+
pageSize: page.limit
|
|
24163
|
+
};
|
|
24164
|
+
}
|
|
24165
|
+
|
|
24166
|
+
// src/components/ScrollShadows.tsx
|
|
24167
|
+
var import_utils158 = require("@react-aria/utils");
|
|
24168
|
+
var import_react138 = require("react");
|
|
24169
|
+
var import_runtime110 = require("@homebound/truss/runtime");
|
|
24170
|
+
var import_jsx_runtime191 = require("react/jsx-runtime");
|
|
24171
|
+
function ScrollShadows(props) {
|
|
24238
24172
|
const {
|
|
24239
|
-
|
|
24240
|
-
|
|
24241
|
-
|
|
24242
|
-
|
|
24243
|
-
onBlur,
|
|
24244
|
-
focusProps,
|
|
24245
|
-
isFocusVisible = false,
|
|
24246
|
-
...others
|
|
24173
|
+
children,
|
|
24174
|
+
xss,
|
|
24175
|
+
horizontal = false,
|
|
24176
|
+
bgColor = "rgba(255, 255, 255, 1)" /* White */
|
|
24247
24177
|
} = props;
|
|
24248
|
-
const
|
|
24249
|
-
disabled = false,
|
|
24250
|
-
name: label,
|
|
24251
|
-
icon,
|
|
24252
|
-
endAdornment
|
|
24253
|
-
} = tab;
|
|
24254
|
-
const isDisabled = !!disabled;
|
|
24255
|
-
const {
|
|
24256
|
-
hoverProps,
|
|
24257
|
-
isHovered
|
|
24258
|
-
} = (0, import_react_aria62.useHover)({
|
|
24259
|
-
isDisabled
|
|
24260
|
-
});
|
|
24261
|
-
const {
|
|
24262
|
-
baseStyles: baseStyles4,
|
|
24263
|
-
activeStyles: activeStyles3,
|
|
24264
|
-
focusRingStyles: focusRingStyles2,
|
|
24265
|
-
hoverStyles: hoverStyles4,
|
|
24266
|
-
disabledStyles: disabledStyles3,
|
|
24267
|
-
activeHoverStyles
|
|
24268
|
-
} = (0, import_react138.useMemo)(() => getTabStyles(), []);
|
|
24269
|
-
const uniqueValue = uniqueTabValue(tab);
|
|
24270
|
-
const tabProps = {
|
|
24271
|
-
"aria-controls": `${uniqueValue}-tabPanel`,
|
|
24272
|
-
"aria-selected": active,
|
|
24273
|
-
"aria-disabled": isDisabled || void 0,
|
|
24274
|
-
id: `${uniqueValue}-tab`,
|
|
24275
|
-
role: "tab",
|
|
24276
|
-
tabIndex: active ? 0 : -1,
|
|
24277
|
-
...others,
|
|
24278
|
-
...(0, import_runtime110.trussProps)({
|
|
24279
|
-
...baseStyles4,
|
|
24280
|
-
...active && activeStyles3,
|
|
24281
|
-
...isDisabled && disabledStyles3,
|
|
24282
|
-
...isHovered && hoverStyles4,
|
|
24283
|
-
...isHovered && active && activeHoverStyles,
|
|
24284
|
-
...isFocusVisible && active && focusRingStyles2
|
|
24285
|
-
})
|
|
24286
|
-
};
|
|
24287
|
-
const interactiveProps = (0, import_react_aria62.mergeProps)(focusProps, hoverProps, {
|
|
24288
|
-
onKeyUp,
|
|
24289
|
-
onBlur,
|
|
24290
|
-
...isRouteTab(tab) ? {} : {
|
|
24291
|
-
onClick: () => onClick(tab.value)
|
|
24292
|
-
}
|
|
24293
|
-
});
|
|
24294
|
-
const tabLabel = /* @__PURE__ */ (0, import_jsx_runtime190.jsxs)(import_jsx_runtime190.Fragment, { children: [
|
|
24295
|
-
label,
|
|
24296
|
-
(icon || endAdornment) && /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("span", { className: "ml1", children: icon ? /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(Icon, { icon }) : endAdornment })
|
|
24297
|
-
] });
|
|
24298
|
-
return isDisabled ? maybeTooltip({
|
|
24299
|
-
title: resolveTooltip(disabled),
|
|
24300
|
-
placement: "top",
|
|
24301
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("div", { ...tabProps, children: tabLabel })
|
|
24302
|
-
}) : isRouteTab(tab) ? /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(import_react_router_dom8.Link, { ...(0, import_react_aria62.mergeProps)(tabProps, interactiveProps, {
|
|
24303
|
-
className: "navLink"
|
|
24304
|
-
}), to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("button", { ...{
|
|
24305
|
-
...tabProps,
|
|
24306
|
-
...interactiveProps
|
|
24307
|
-
}, children: tabLabel });
|
|
24308
|
-
}
|
|
24309
|
-
function getTabStyles() {
|
|
24310
|
-
const borderBottomWidthPx = 4;
|
|
24311
|
-
const verticalPaddingPx = 6;
|
|
24312
|
-
const borderBottomStyles = {
|
|
24313
|
-
borderBottomStyle: "bbs_solid",
|
|
24314
|
-
borderBottomWidth: ["borderBottomWidth_var", {
|
|
24315
|
-
"--borderBottomWidth": (0, import_runtime110.maybeCssVar)(`${borderBottomWidthPx}px`)
|
|
24316
|
-
}],
|
|
24317
|
-
paddingBottom: ["pb_var", {
|
|
24318
|
-
"--paddingBottom": `${verticalPaddingPx - borderBottomWidthPx}px`
|
|
24319
|
-
}]
|
|
24320
|
-
};
|
|
24321
|
-
return {
|
|
24322
|
-
baseStyles: {
|
|
24323
|
-
display: "df",
|
|
24324
|
-
alignItems: "aic",
|
|
24325
|
-
height: "h_32px",
|
|
24326
|
-
paddingTop: ["py_var", {
|
|
24327
|
-
"--paddingTop": `${verticalPaddingPx}px`
|
|
24328
|
-
}],
|
|
24329
|
-
paddingBottom: ["py_var", {
|
|
24330
|
-
"--paddingBottom": `${verticalPaddingPx}px`
|
|
24331
|
-
}],
|
|
24332
|
-
paddingLeft: "pl1",
|
|
24333
|
-
paddingRight: "pr1",
|
|
24334
|
-
outline: "outline0",
|
|
24335
|
-
color: "gray700",
|
|
24336
|
-
width: "width_fit_content",
|
|
24337
|
-
cursor: "cursorPointer",
|
|
24338
|
-
fontWeight: "fw4",
|
|
24339
|
-
fontSize: "fz_14px",
|
|
24340
|
-
lineHeight: "lh_20px"
|
|
24341
|
-
},
|
|
24342
|
-
activeStyles: {
|
|
24343
|
-
...{
|
|
24344
|
-
borderColor: "bcBlue700",
|
|
24345
|
-
fontWeight: "fw6",
|
|
24346
|
-
fontSize: "fz_14px",
|
|
24347
|
-
lineHeight: "lh_20px",
|
|
24348
|
-
color: "gray900"
|
|
24349
|
-
},
|
|
24350
|
-
...borderBottomStyles
|
|
24351
|
-
},
|
|
24352
|
-
disabledStyles: {
|
|
24353
|
-
color: "gray400",
|
|
24354
|
-
cursor: "cursorNotAllowed"
|
|
24355
|
-
},
|
|
24356
|
-
focusRingStyles: {
|
|
24357
|
-
backgroundColor: "bgBlue50",
|
|
24358
|
-
boxShadow: "bshFocus"
|
|
24359
|
-
},
|
|
24360
|
-
hoverStyles: {
|
|
24361
|
-
...{
|
|
24362
|
-
borderColor: "bcGray400"
|
|
24363
|
-
},
|
|
24364
|
-
...borderBottomStyles
|
|
24365
|
-
},
|
|
24366
|
-
activeHoverStyles: {
|
|
24367
|
-
...{
|
|
24368
|
-
backgroundColor: "bgBlue50",
|
|
24369
|
-
borderColor: "bcBlue700"
|
|
24370
|
-
},
|
|
24371
|
-
...borderBottomStyles
|
|
24372
|
-
}
|
|
24373
|
-
};
|
|
24374
|
-
}
|
|
24375
|
-
function getNextTabValue(selected, key, tabs) {
|
|
24376
|
-
const enabledTabs = tabs.filter((tab) => tab.disabled !== true);
|
|
24377
|
-
const tabsToScan = key === "ArrowRight" ? enabledTabs : enabledTabs.reverse();
|
|
24378
|
-
const currentIndex = tabsToScan.findIndex((tab) => uniqueTabValue(tab) === selected);
|
|
24379
|
-
const nextIndex = currentIndex === tabsToScan.length - 1 ? 0 : currentIndex + 1;
|
|
24380
|
-
return uniqueTabValue(tabsToScan[nextIndex]);
|
|
24381
|
-
}
|
|
24382
|
-
function isRouteTabs(props) {
|
|
24383
|
-
const {
|
|
24384
|
-
tabs
|
|
24385
|
-
} = props;
|
|
24386
|
-
return tabs.length > 0 && isRouteTab(tabs[0]);
|
|
24387
|
-
}
|
|
24388
|
-
function isRouteTab(tab) {
|
|
24389
|
-
return "path" in tab;
|
|
24390
|
-
}
|
|
24391
|
-
function uniqueTabValue(tab) {
|
|
24392
|
-
return isRouteTab(tab) ? (0, import_change_case9.camelCase)(tab.name) : tab.value;
|
|
24393
|
-
}
|
|
24394
|
-
function hideTabs(props) {
|
|
24395
|
-
return props.alwaysShowAllTabs ? false : props.tabs.filter((t) => !t.disabled).length === 1;
|
|
24396
|
-
}
|
|
24397
|
-
|
|
24398
|
-
// src/components/PageHeader.tsx
|
|
24399
|
-
var import_runtime111 = require("@homebound/truss/runtime");
|
|
24400
|
-
var import_jsx_runtime191 = require("react/jsx-runtime");
|
|
24401
|
-
function PageHeader2(props) {
|
|
24402
|
-
const {
|
|
24403
|
-
title,
|
|
24404
|
-
documentTitleSuffix,
|
|
24405
|
-
rightSlot,
|
|
24406
|
-
tabs,
|
|
24407
|
-
breadcrumbs,
|
|
24408
|
-
...otherProps
|
|
24409
|
-
} = props;
|
|
24410
|
-
const tid = useTestIds(otherProps, "pageHeader");
|
|
24411
|
-
useDocumentTitle(title, documentTitleSuffix);
|
|
24412
|
-
return /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)("header", { ...tid, ...(0, import_runtime111.trussProps)({
|
|
24413
|
-
display: "df",
|
|
24414
|
-
flexDirection: "fdc",
|
|
24415
|
-
paddingTop: "pt3",
|
|
24416
|
-
paddingLeft: "pl3",
|
|
24417
|
-
paddingRight: "pr3",
|
|
24418
|
-
borderBottomStyle: "bbs_solid",
|
|
24419
|
-
borderBottomWidth: "bbw_1px",
|
|
24420
|
-
gap: "gap2",
|
|
24421
|
-
borderColor: ["bc_var", {
|
|
24422
|
-
"--borderColor": "var(--b-surface-separator)"
|
|
24423
|
-
}],
|
|
24424
|
-
backgroundColor: ["bgColor_var", {
|
|
24425
|
-
"--backgroundColor": "var(--b-surface)"
|
|
24426
|
-
}]
|
|
24427
|
-
}), children: [
|
|
24428
|
-
/* @__PURE__ */ (0, import_jsx_runtime191.jsxs)("div", { ...(0, import_runtime111.trussProps)({
|
|
24429
|
-
...{
|
|
24430
|
-
display: "df",
|
|
24431
|
-
justifyContent: "jcsb",
|
|
24432
|
-
width: "w100",
|
|
24433
|
-
gap: "gap1"
|
|
24434
|
-
},
|
|
24435
|
-
...{
|
|
24436
|
-
...!tabs ? {
|
|
24437
|
-
marginBottom: "mb2"
|
|
24438
|
-
} : {}
|
|
24439
|
-
}
|
|
24440
|
-
}), children: [
|
|
24441
|
-
/* @__PURE__ */ (0, import_jsx_runtime191.jsxs)("div", { className: "mw0", children: [
|
|
24442
|
-
breadcrumbs && /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(Breadcrumbs, { ...breadcrumbs }),
|
|
24443
|
-
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)("h1", { ...tid.title, className: "fw6 fz_20px lh_28px", children: title })
|
|
24444
|
-
] }),
|
|
24445
|
-
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)("div", { className: "fs0", children: rightSlot })
|
|
24446
|
-
] }),
|
|
24447
|
-
tabs && /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(Tabs, { ...tabs })
|
|
24448
|
-
] });
|
|
24449
|
-
}
|
|
24450
|
-
|
|
24451
|
-
// src/components/Pagination.tsx
|
|
24452
|
-
var import_jsx_runtime192 = require("react/jsx-runtime");
|
|
24453
|
-
var defaultPage = {
|
|
24454
|
-
offset: 0,
|
|
24455
|
-
limit: 100
|
|
24456
|
-
};
|
|
24457
|
-
function Pagination(props) {
|
|
24458
|
-
const {
|
|
24459
|
-
totalCount,
|
|
24460
|
-
pageSizes = [100, 500, 1e3]
|
|
24461
|
-
} = props;
|
|
24462
|
-
const [page, setPage] = props.page;
|
|
24463
|
-
const {
|
|
24464
|
-
pageSize,
|
|
24465
|
-
pageNumber
|
|
24466
|
-
} = toPageNumberSize(page);
|
|
24467
|
-
const pageOptions = pageSizes.map((size) => ({
|
|
24468
|
-
id: size,
|
|
24469
|
-
name: String(size)
|
|
24470
|
-
}));
|
|
24471
|
-
const hasPrevPage = pageNumber > 1;
|
|
24472
|
-
const hasNextPage = pageNumber < totalCount / pageSize;
|
|
24473
|
-
const first = pageSize * (pageNumber - 1) + (totalCount ? 1 : 0);
|
|
24474
|
-
const last = Math.min(pageSize * pageNumber, totalCount);
|
|
24475
|
-
const showLast = totalCount > 0;
|
|
24476
|
-
function set(newPage) {
|
|
24477
|
-
if ("pageNumber" in props.page[0]) {
|
|
24478
|
-
setPage(newPage);
|
|
24479
|
-
} else {
|
|
24480
|
-
setPage(toLimitAndOffset(newPage));
|
|
24481
|
-
}
|
|
24482
|
-
}
|
|
24483
|
-
const tid = useTestIds(props, "pagination");
|
|
24484
|
-
return /* @__PURE__ */ (0, import_jsx_runtime192.jsxs)("div", { className: "df bcGray200 bts_solid btw_1px fw4 fz_12px lh_16px gray500 pl2 pr2 pt2", ...tid, children: [
|
|
24485
|
-
/* @__PURE__ */ (0, import_jsx_runtime192.jsx)("div", { className: "df mta mba mr2", ...tid.pageSizeLabel, children: "Page size:" }),
|
|
24486
|
-
/* @__PURE__ */ (0, import_jsx_runtime192.jsx)("div", { className: "w_78px", children: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(SelectField, { compact: true, label: "Page Size", labelStyle: "hidden", options: pageOptions, value: pageSize, onSelect: (val) => set({
|
|
24487
|
-
pageNumber: 1,
|
|
24488
|
-
pageSize: val
|
|
24489
|
-
}), autoSort: false, ...tid.pageSize }) }),
|
|
24490
|
-
/* @__PURE__ */ (0, import_jsx_runtime192.jsxs)("div", { className: "mla mta mba df", children: [
|
|
24491
|
-
/* @__PURE__ */ (0, import_jsx_runtime192.jsxs)("div", { className: "df mta mba mr2", ...tid.pageInfoLabel, children: [
|
|
24492
|
-
first,
|
|
24493
|
-
" ",
|
|
24494
|
-
showLast ? `- ${last}` : "",
|
|
24495
|
-
" of ",
|
|
24496
|
-
totalCount
|
|
24497
|
-
] }),
|
|
24498
|
-
/* @__PURE__ */ (0, import_jsx_runtime192.jsx)(IconButton, { icon: "chevronLeft", color: hasPrevPage ? "rgba(29, 78, 216, 1)" /* Blue700 */ : "rgba(236, 235, 235, 1)" /* Gray200 */, onClick: () => set({
|
|
24499
|
-
pageNumber: pageNumber - 1,
|
|
24500
|
-
pageSize
|
|
24501
|
-
}), disabled: !hasPrevPage, ...tid.previousIcon }),
|
|
24502
|
-
/* @__PURE__ */ (0, import_jsx_runtime192.jsx)(IconButton, { icon: "chevronRight", color: hasNextPage ? "rgba(29, 78, 216, 1)" /* Blue700 */ : "rgba(236, 235, 235, 1)" /* Gray200 */, onClick: () => set({
|
|
24503
|
-
pageNumber: pageNumber + 1,
|
|
24504
|
-
pageSize
|
|
24505
|
-
}), disabled: !hasNextPage, ...tid.nextIcon })
|
|
24506
|
-
] })
|
|
24507
|
-
] });
|
|
24508
|
-
}
|
|
24509
|
-
function toLimitAndOffset(page) {
|
|
24510
|
-
return "limit" in page ? page : {
|
|
24511
|
-
// E.g. on first page the offset is 0, second page the offset is 100, then 200, etc.
|
|
24512
|
-
offset: (page.pageNumber - 1) * page.pageSize,
|
|
24513
|
-
limit: page.pageSize
|
|
24514
|
-
};
|
|
24515
|
-
}
|
|
24516
|
-
function toPageNumberSize(page) {
|
|
24517
|
-
return "pageNumber" in page ? page : {
|
|
24518
|
-
pageNumber: Math.floor(page.offset / page.limit) + 1,
|
|
24519
|
-
pageSize: page.limit
|
|
24520
|
-
};
|
|
24521
|
-
}
|
|
24522
|
-
|
|
24523
|
-
// src/components/ScrollShadows.tsx
|
|
24524
|
-
var import_utils160 = require("@react-aria/utils");
|
|
24525
|
-
var import_react139 = require("react");
|
|
24526
|
-
var import_runtime112 = require("@homebound/truss/runtime");
|
|
24527
|
-
var import_jsx_runtime193 = require("react/jsx-runtime");
|
|
24528
|
-
function ScrollShadows(props) {
|
|
24529
|
-
const {
|
|
24530
|
-
children,
|
|
24531
|
-
xss,
|
|
24532
|
-
horizontal = false,
|
|
24533
|
-
bgColor = "rgba(255, 255, 255, 1)" /* White */
|
|
24534
|
-
} = props;
|
|
24535
|
-
const tid = useTestIds(props);
|
|
24178
|
+
const tid = useTestIds(props);
|
|
24536
24179
|
const {
|
|
24537
24180
|
height,
|
|
24538
24181
|
width: width2
|
|
@@ -24540,15 +24183,15 @@ function ScrollShadows(props) {
|
|
|
24540
24183
|
if (!bgColor.includes("rgba")) {
|
|
24541
24184
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
24542
24185
|
}
|
|
24543
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
24544
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
24545
|
-
const scrollRef = (0,
|
|
24546
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
24186
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react138.useState)(false);
|
|
24187
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react138.useState)(false);
|
|
24188
|
+
const scrollRef = (0, import_react138.useRef)(null);
|
|
24189
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react138.useMemo)(() => {
|
|
24547
24190
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
24548
24191
|
const commonStyles = {
|
|
24549
24192
|
position: "absolute",
|
|
24550
24193
|
zIndex: ["z_var", {
|
|
24551
|
-
"--zIndex": (0,
|
|
24194
|
+
"--zIndex": (0, import_runtime110.maybeCssVar)(zIndices.scrollShadow)
|
|
24552
24195
|
}],
|
|
24553
24196
|
pointerEvents: "pointerEvents_none"
|
|
24554
24197
|
};
|
|
@@ -24581,7 +24224,7 @@ function ScrollShadows(props) {
|
|
|
24581
24224
|
...startShadowStyles2,
|
|
24582
24225
|
...{
|
|
24583
24226
|
background: ["background_var", {
|
|
24584
|
-
"--background": (0,
|
|
24227
|
+
"--background": (0, import_runtime110.maybeCssVar)(startGradient)
|
|
24585
24228
|
}]
|
|
24586
24229
|
}
|
|
24587
24230
|
}, {
|
|
@@ -24589,12 +24232,12 @@ function ScrollShadows(props) {
|
|
|
24589
24232
|
...endShadowStyles2,
|
|
24590
24233
|
...{
|
|
24591
24234
|
background: ["background_var", {
|
|
24592
|
-
"--background": (0,
|
|
24235
|
+
"--background": (0, import_runtime110.maybeCssVar)(endGradient)
|
|
24593
24236
|
}]
|
|
24594
24237
|
}
|
|
24595
24238
|
}];
|
|
24596
24239
|
}, [horizontal, bgColor]);
|
|
24597
|
-
const updateScrollProps = (0,
|
|
24240
|
+
const updateScrollProps = (0, import_react138.useCallback)((el) => {
|
|
24598
24241
|
const {
|
|
24599
24242
|
scrollTop,
|
|
24600
24243
|
scrollHeight,
|
|
@@ -24609,15 +24252,15 @@ function ScrollShadows(props) {
|
|
|
24609
24252
|
setShowStartShadow(start > 0);
|
|
24610
24253
|
setShowEndShadow(start + boxSize < end);
|
|
24611
24254
|
}, [horizontal]);
|
|
24612
|
-
const onResize = (0,
|
|
24613
|
-
(0,
|
|
24255
|
+
const onResize = (0, import_react138.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
24256
|
+
(0, import_utils158.useResizeObserver)({
|
|
24614
24257
|
ref: scrollRef,
|
|
24615
24258
|
onResize
|
|
24616
24259
|
});
|
|
24617
|
-
return /* @__PURE__ */ (0,
|
|
24260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)("div", { ...(0, import_runtime110.trussProps)({
|
|
24618
24261
|
display: "df",
|
|
24619
24262
|
flexDirection: ["fd_var", {
|
|
24620
|
-
"--flexDirection": (0,
|
|
24263
|
+
"--flexDirection": (0, import_runtime110.maybeCssVar)(!horizontal ? "column" : "row")
|
|
24621
24264
|
}],
|
|
24622
24265
|
position: "relative",
|
|
24623
24266
|
overflow: "oh",
|
|
@@ -24630,23 +24273,23 @@ function ScrollShadows(props) {
|
|
|
24630
24273
|
width: width2
|
|
24631
24274
|
}
|
|
24632
24275
|
}), ...tid, children: [
|
|
24633
|
-
/* @__PURE__ */ (0,
|
|
24276
|
+
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)("div", { ...(0, import_runtime110.trussProps)({
|
|
24634
24277
|
...startShadowStyles,
|
|
24635
24278
|
...{
|
|
24636
24279
|
opacity: ["o_var", {
|
|
24637
|
-
"--opacity": (0,
|
|
24280
|
+
"--opacity": (0, import_runtime110.maybeCssVar)(showStartShadow ? 1 : 0)
|
|
24638
24281
|
}]
|
|
24639
24282
|
}
|
|
24640
24283
|
}), "data-chromatic": "ignore" }),
|
|
24641
|
-
/* @__PURE__ */ (0,
|
|
24284
|
+
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)("div", { ...(0, import_runtime110.trussProps)({
|
|
24642
24285
|
...endShadowStyles,
|
|
24643
24286
|
...{
|
|
24644
24287
|
opacity: ["o_var", {
|
|
24645
|
-
"--opacity": (0,
|
|
24288
|
+
"--opacity": (0, import_runtime110.maybeCssVar)(showEndShadow ? 1 : 0)
|
|
24646
24289
|
}]
|
|
24647
24290
|
}
|
|
24648
24291
|
}), "data-chromatic": "ignore" }),
|
|
24649
|
-
/* @__PURE__ */ (0,
|
|
24292
|
+
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)("div", { ...(0, import_runtime110.trussProps)({
|
|
24650
24293
|
...xss,
|
|
24651
24294
|
...{
|
|
24652
24295
|
overflow: "oa",
|
|
@@ -24658,8 +24301,8 @@ function ScrollShadows(props) {
|
|
|
24658
24301
|
}
|
|
24659
24302
|
|
|
24660
24303
|
// src/layouts/SideNavLayout/SideNavLayoutContext.tsx
|
|
24661
|
-
var
|
|
24662
|
-
var
|
|
24304
|
+
var import_react139 = require("react");
|
|
24305
|
+
var import_jsx_runtime192 = require("react/jsx-runtime");
|
|
24663
24306
|
var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
|
|
24664
24307
|
function loadStoredNavState() {
|
|
24665
24308
|
try {
|
|
@@ -24681,20 +24324,20 @@ function resolveInitialNavState(defaultNavState) {
|
|
|
24681
24324
|
}
|
|
24682
24325
|
return loadStoredNavState() ?? defaultNavState ?? "expanded";
|
|
24683
24326
|
}
|
|
24684
|
-
var SideNavLayoutContext = (0,
|
|
24327
|
+
var SideNavLayoutContext = (0, import_react139.createContext)(void 0);
|
|
24685
24328
|
function SideNavLayoutProvider(props) {
|
|
24686
|
-
const [navState, setNavStateInternal] = (0,
|
|
24329
|
+
const [navState, setNavStateInternal] = (0, import_react139.useState)(
|
|
24687
24330
|
() => resolveInitialNavState(props.defaultNavState)
|
|
24688
24331
|
);
|
|
24689
24332
|
const bp = useBreakpoint();
|
|
24690
|
-
const prevMdAndUp = (0,
|
|
24691
|
-
(0,
|
|
24333
|
+
const prevMdAndUp = (0, import_react139.useRef)(bp.mdAndUp);
|
|
24334
|
+
(0, import_react139.useEffect)(() => {
|
|
24692
24335
|
if (prevMdAndUp.current && !bp.mdAndUp) {
|
|
24693
24336
|
setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
|
|
24694
24337
|
}
|
|
24695
24338
|
prevMdAndUp.current = bp.mdAndUp;
|
|
24696
24339
|
}, [bp.mdAndUp]);
|
|
24697
|
-
const setNavState = (0,
|
|
24340
|
+
const setNavState = (0, import_react139.useCallback)((value2) => {
|
|
24698
24341
|
setNavStateInternal((prev) => {
|
|
24699
24342
|
const next = typeof value2 === "function" ? value2(prev) : value2;
|
|
24700
24343
|
if (next === "expanded" || next === "collapse") {
|
|
@@ -24706,20 +24349,20 @@ function SideNavLayoutProvider(props) {
|
|
|
24706
24349
|
return next;
|
|
24707
24350
|
});
|
|
24708
24351
|
}, []);
|
|
24709
|
-
const value = (0,
|
|
24710
|
-
return /* @__PURE__ */ (0,
|
|
24352
|
+
const value = (0, import_react139.useMemo)(() => ({ navState, setNavState }), [navState, setNavState]);
|
|
24353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(SideNavLayoutContext.Provider, { value, children: props.children });
|
|
24711
24354
|
}
|
|
24712
24355
|
function useSideNavLayoutContext() {
|
|
24713
|
-
return (0,
|
|
24356
|
+
return (0, import_react139.useContext)(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
|
|
24714
24357
|
} };
|
|
24715
24358
|
}
|
|
24716
24359
|
function useHasSideNavLayoutProvider() {
|
|
24717
|
-
return (0,
|
|
24360
|
+
return (0, import_react139.useContext)(SideNavLayoutContext) !== void 0;
|
|
24718
24361
|
}
|
|
24719
24362
|
|
|
24720
24363
|
// src/components/SideNav/SideNav.tsx
|
|
24721
|
-
var
|
|
24722
|
-
var
|
|
24364
|
+
var import_runtime111 = require("@homebound/truss/runtime");
|
|
24365
|
+
var import_jsx_runtime193 = require("react/jsx-runtime");
|
|
24723
24366
|
function SideNav(props) {
|
|
24724
24367
|
const {
|
|
24725
24368
|
top,
|
|
@@ -24732,8 +24375,8 @@ function SideNav(props) {
|
|
|
24732
24375
|
const tid = useTestIds(props, "sideNav");
|
|
24733
24376
|
const panelCollapsed = navState === "collapse";
|
|
24734
24377
|
const hideOnCollapse = panelCollapsed && !allItemsHaveIcons(items);
|
|
24735
|
-
return /* @__PURE__ */ (0,
|
|
24736
|
-
top !== void 0 && /* @__PURE__ */ (0,
|
|
24378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime193.jsxs)("nav", { className: "df fdc h100 fs0", ...tid, children: [
|
|
24379
|
+
top !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime193.jsx)("div", { ...(0, import_runtime111.trussProps)({
|
|
24737
24380
|
flexShrink: "fs0",
|
|
24738
24381
|
paddingLeft: "pl2",
|
|
24739
24382
|
paddingRight: "pr2",
|
|
@@ -24744,7 +24387,7 @@ function SideNav(props) {
|
|
|
24744
24387
|
paddingBottom: "pb4"
|
|
24745
24388
|
} : {}
|
|
24746
24389
|
}), ...tid.top, children: top }),
|
|
24747
|
-
/* @__PURE__ */ (0,
|
|
24390
|
+
/* @__PURE__ */ (0, import_jsx_runtime193.jsx)("div", { ...(0, import_runtime111.trussProps)({
|
|
24748
24391
|
flexGrow: "fg1",
|
|
24749
24392
|
overflowY: "oya",
|
|
24750
24393
|
display: "df",
|
|
@@ -24756,8 +24399,8 @@ function SideNav(props) {
|
|
|
24756
24399
|
...top === void 0 ? {
|
|
24757
24400
|
paddingTop: "pt5"
|
|
24758
24401
|
} : {}
|
|
24759
|
-
}), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ (0,
|
|
24760
|
-
footer !== void 0 && /* @__PURE__ */ (0,
|
|
24402
|
+
}), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(AppNavItems, { items, panelCollapsed }) }),
|
|
24403
|
+
footer !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime193.jsx)("div", { ...(0, import_runtime111.trussProps)({
|
|
24761
24404
|
flexShrink: "fs0",
|
|
24762
24405
|
paddingLeft: "pl2",
|
|
24763
24406
|
paddingRight: "pr2",
|
|
@@ -24773,10 +24416,10 @@ function SideNav(props) {
|
|
|
24773
24416
|
}
|
|
24774
24417
|
|
|
24775
24418
|
// src/components/Snackbar/useSnackbar.tsx
|
|
24776
|
-
var
|
|
24419
|
+
var import_react140 = require("react");
|
|
24777
24420
|
function useSnackbar() {
|
|
24778
24421
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
24779
|
-
const onClose = (0,
|
|
24422
|
+
const onClose = (0, import_react140.useCallback)(
|
|
24780
24423
|
(noticeId) => {
|
|
24781
24424
|
setNotices((prev) => {
|
|
24782
24425
|
let returnValue = prev;
|
|
@@ -24793,7 +24436,7 @@ function useSnackbar() {
|
|
|
24793
24436
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24794
24437
|
[]
|
|
24795
24438
|
);
|
|
24796
|
-
const triggerNotice = (0,
|
|
24439
|
+
const triggerNotice = (0, import_react140.useCallback)(
|
|
24797
24440
|
(props) => {
|
|
24798
24441
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
24799
24442
|
let maybeTimeout;
|
|
@@ -24822,8 +24465,8 @@ function useSnackbar() {
|
|
|
24822
24465
|
},
|
|
24823
24466
|
[onClose, setNotices]
|
|
24824
24467
|
);
|
|
24825
|
-
const closeNotice = (0,
|
|
24826
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
24468
|
+
const closeNotice = (0, import_react140.useCallback)((id) => onClose(id), [onClose]);
|
|
24469
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react140.useEffect)(() => {
|
|
24827
24470
|
setOffset({ bottom });
|
|
24828
24471
|
return () => setOffset({});
|
|
24829
24472
|
}, [bottom]);
|
|
@@ -24832,11 +24475,11 @@ function useSnackbar() {
|
|
|
24832
24475
|
var snackbarId = 1;
|
|
24833
24476
|
|
|
24834
24477
|
// src/components/Stepper.tsx
|
|
24478
|
+
var import_react141 = require("react");
|
|
24479
|
+
var import_react_aria62 = require("react-aria");
|
|
24480
|
+
var import_runtime112 = require("@homebound/truss/runtime");
|
|
24481
|
+
var import_jsx_runtime194 = require("react/jsx-runtime");
|
|
24835
24482
|
var import_react142 = require("react");
|
|
24836
|
-
var import_react_aria63 = require("react-aria");
|
|
24837
|
-
var import_runtime114 = require("@homebound/truss/runtime");
|
|
24838
|
-
var import_jsx_runtime196 = require("react/jsx-runtime");
|
|
24839
|
-
var import_react143 = require("react");
|
|
24840
24483
|
var __maybeInc20 = (inc) => {
|
|
24841
24484
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
24842
24485
|
};
|
|
@@ -24854,8 +24497,8 @@ function Stepper(props) {
|
|
|
24854
24497
|
const maxStepWidth = 200;
|
|
24855
24498
|
const minStepWidth = 100;
|
|
24856
24499
|
const gap = 8;
|
|
24857
|
-
return /* @__PURE__ */ (0,
|
|
24858
|
-
/* @__PURE__ */ (0,
|
|
24500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime194.jsxs)("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
|
|
24501
|
+
/* @__PURE__ */ (0, import_jsx_runtime194.jsx)("ol", { ...(0, import_runtime112.trussProps)({
|
|
24859
24502
|
padding: "p_0",
|
|
24860
24503
|
margin: "m_0",
|
|
24861
24504
|
listStyle: "lis_none",
|
|
@@ -24865,7 +24508,7 @@ function Stepper(props) {
|
|
|
24865
24508
|
}]
|
|
24866
24509
|
}), children: steps.map((step) => {
|
|
24867
24510
|
const isCurrent = currentStep === step.value;
|
|
24868
|
-
return /* @__PURE__ */ (0,
|
|
24511
|
+
return /* @__PURE__ */ (0, import_react142.createElement)("li", { ...(0, import_runtime112.trussProps)({
|
|
24869
24512
|
display: "df",
|
|
24870
24513
|
flexGrow: "fg1",
|
|
24871
24514
|
flexDirection: "fdc",
|
|
@@ -24875,9 +24518,9 @@ function Stepper(props) {
|
|
|
24875
24518
|
minWidth: ["mw_var", {
|
|
24876
24519
|
"--minWidth": `${minStepWidth}px`
|
|
24877
24520
|
}]
|
|
24878
|
-
}), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0,
|
|
24521
|
+
}), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
|
|
24879
24522
|
}) }),
|
|
24880
|
-
/* @__PURE__ */ (0,
|
|
24523
|
+
/* @__PURE__ */ (0, import_jsx_runtime194.jsx)("div", { ...(0, import_runtime112.trussProps)({
|
|
24881
24524
|
marginTop: "mt1",
|
|
24882
24525
|
backgroundColor: "bgGray300",
|
|
24883
24526
|
height: "h_4px",
|
|
@@ -24888,12 +24531,12 @@ function Stepper(props) {
|
|
|
24888
24531
|
"--minWidth": `${steps.length * minStepWidth + (steps.length - 1) * gap}px`
|
|
24889
24532
|
}],
|
|
24890
24533
|
width: "w100"
|
|
24891
|
-
}), children: /* @__PURE__ */ (0,
|
|
24534
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)("div", { ...(0, import_runtime112.trussProps)({
|
|
24892
24535
|
backgroundColor: "bgBlue600",
|
|
24893
24536
|
transition: "transition_width_200ms",
|
|
24894
24537
|
height: "h100",
|
|
24895
24538
|
width: ["w_var", {
|
|
24896
|
-
"--width": (0,
|
|
24539
|
+
"--width": (0, import_runtime112.maybeCssVar)(__maybeInc20(`${(lastCompletedStep + 1) / steps.length * 100}%`))
|
|
24897
24540
|
}]
|
|
24898
24541
|
}) }) })
|
|
24899
24542
|
] });
|
|
@@ -24910,26 +24553,26 @@ function StepButton(props) {
|
|
|
24910
24553
|
onPress: onClick,
|
|
24911
24554
|
isDisabled: disabled
|
|
24912
24555
|
};
|
|
24913
|
-
const ref = (0,
|
|
24556
|
+
const ref = (0, import_react141.useRef)(null);
|
|
24914
24557
|
const {
|
|
24915
24558
|
buttonProps,
|
|
24916
24559
|
isPressed
|
|
24917
|
-
} = (0,
|
|
24560
|
+
} = (0, import_react_aria62.useButton)(ariaProps, ref);
|
|
24918
24561
|
const {
|
|
24919
24562
|
isFocusVisible,
|
|
24920
24563
|
focusProps
|
|
24921
|
-
} = (0,
|
|
24564
|
+
} = (0, import_react_aria62.useFocusRing)();
|
|
24922
24565
|
const {
|
|
24923
24566
|
hoverProps,
|
|
24924
24567
|
isHovered
|
|
24925
|
-
} = (0,
|
|
24568
|
+
} = (0, import_react_aria62.useHover)(ariaProps);
|
|
24926
24569
|
const focusRingStyles2 = state === "error" ? {
|
|
24927
24570
|
boxShadow: "bshDanger"
|
|
24928
24571
|
} : {
|
|
24929
24572
|
boxShadow: "bshFocus"
|
|
24930
24573
|
};
|
|
24931
24574
|
const tid = useTestIds(props, "stepButton");
|
|
24932
|
-
return /* @__PURE__ */ (0,
|
|
24575
|
+
return /* @__PURE__ */ (0, import_jsx_runtime194.jsxs)("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...(0, import_runtime112.trussProps)({
|
|
24933
24576
|
...{
|
|
24934
24577
|
fontWeight: "fw6",
|
|
24935
24578
|
fontSize: "fz_14px",
|
|
@@ -24981,7 +24624,7 @@ function StepButton(props) {
|
|
|
24981
24624
|
} : {},
|
|
24982
24625
|
...isFocusVisible ? focusRingStyles2 : {}
|
|
24983
24626
|
}), ...tid[defaultTestId(label)], children: [
|
|
24984
|
-
/* @__PURE__ */ (0,
|
|
24627
|
+
/* @__PURE__ */ (0, import_jsx_runtime194.jsx)("span", { className: "fs0 mr_4px", children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
|
|
24985
24628
|
label
|
|
24986
24629
|
] });
|
|
24987
24630
|
}
|
|
@@ -24992,12 +24635,12 @@ function StepIcon({
|
|
|
24992
24635
|
isCurrent = false
|
|
24993
24636
|
}) {
|
|
24994
24637
|
if (state === "error") {
|
|
24995
|
-
return /* @__PURE__ */ (0,
|
|
24638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(Icon, { icon: "errorCircle" });
|
|
24996
24639
|
}
|
|
24997
24640
|
if (state === "complete") {
|
|
24998
|
-
return /* @__PURE__ */ (0,
|
|
24641
|
+
return /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(Icon, { icon: "check" });
|
|
24999
24642
|
}
|
|
25000
|
-
return /* @__PURE__ */ (0,
|
|
24643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime194.jsx)("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)("div", { ...(0, import_runtime112.trussProps)({
|
|
25001
24644
|
width: "w_10px",
|
|
25002
24645
|
height: "h_10px",
|
|
25003
24646
|
borderStyle: "bss",
|
|
@@ -25011,10 +24654,10 @@ function StepIcon({
|
|
|
25011
24654
|
}
|
|
25012
24655
|
|
|
25013
24656
|
// src/components/StepperTabs/StepperTab.tsx
|
|
25014
|
-
var
|
|
25015
|
-
var
|
|
25016
|
-
var
|
|
25017
|
-
var
|
|
24657
|
+
var import_react143 = require("react");
|
|
24658
|
+
var import_react_aria63 = require("react-aria");
|
|
24659
|
+
var import_runtime113 = require("@homebound/truss/runtime");
|
|
24660
|
+
var import_jsx_runtime195 = require("react/jsx-runtime");
|
|
25018
24661
|
function StepperTab(props) {
|
|
25019
24662
|
const {
|
|
25020
24663
|
label,
|
|
@@ -25029,20 +24672,20 @@ function StepperTab(props) {
|
|
|
25029
24672
|
onPress: () => onClick(value),
|
|
25030
24673
|
isDisabled: disabled || collapsed
|
|
25031
24674
|
};
|
|
25032
|
-
const ref = (0,
|
|
24675
|
+
const ref = (0, import_react143.useRef)(null);
|
|
25033
24676
|
const {
|
|
25034
24677
|
buttonProps
|
|
25035
|
-
} = (0,
|
|
24678
|
+
} = (0, import_react_aria63.useButton)(ariaProps, ref);
|
|
25036
24679
|
const {
|
|
25037
24680
|
isFocusVisible,
|
|
25038
24681
|
focusProps
|
|
25039
|
-
} = (0,
|
|
24682
|
+
} = (0, import_react_aria63.useFocusRing)();
|
|
25040
24683
|
const {
|
|
25041
24684
|
hoverProps,
|
|
25042
24685
|
isHovered
|
|
25043
|
-
} = (0,
|
|
24686
|
+
} = (0, import_react_aria63.useHover)(ariaProps);
|
|
25044
24687
|
const tid = useTestIds(props, "stepperTab");
|
|
25045
|
-
return /* @__PURE__ */ (0,
|
|
24688
|
+
return /* @__PURE__ */ (0, import_jsx_runtime195.jsxs)("button", { ref, ...(0, import_react_aria63.mergeProps)(buttonProps, focusProps, hoverProps), "aria-label": label, ...(0, import_runtime113.trussProps)({
|
|
25046
24689
|
...stepperTabStyles.baseStyles,
|
|
25047
24690
|
...getStateStyles(active, completed),
|
|
25048
24691
|
...isHovered && !disabled ? stepperTabStyles.hoverStyles : {},
|
|
@@ -25050,9 +24693,9 @@ function StepperTab(props) {
|
|
|
25050
24693
|
...disabled ? stepperTabStyles.disabledStyles : {},
|
|
25051
24694
|
...isFocusVisible ? stepperTabStyles.focusRingStyles : {}
|
|
25052
24695
|
}), ...tid[defaultTestId(value)], children: [
|
|
25053
|
-
/* @__PURE__ */ (0,
|
|
25054
|
-
completed && /* @__PURE__ */ (0,
|
|
25055
|
-
/* @__PURE__ */ (0,
|
|
24696
|
+
/* @__PURE__ */ (0, import_jsx_runtime195.jsx)("span", { className: "oh d_negwebkit_box wbo_vertical to_ellipsis wlc_1", children: label }),
|
|
24697
|
+
completed && /* @__PURE__ */ (0, import_jsx_runtime195.jsx)("span", { className: "fs0 ml1", children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(Icon, { icon: "check", inc: 2.5, ...tid.check }) }),
|
|
24698
|
+
/* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_react_aria63.VisuallyHidden, { children: completed ? "Complete" : "Not Complete" })
|
|
25056
24699
|
] });
|
|
25057
24700
|
}
|
|
25058
24701
|
function withBorderBottom(color) {
|
|
@@ -25060,7 +24703,7 @@ function withBorderBottom(color) {
|
|
|
25060
24703
|
...{
|
|
25061
24704
|
borderBottomStyle: "bbs_solid",
|
|
25062
24705
|
borderBottomWidth: ["borderBottomWidth_var", {
|
|
25063
|
-
"--borderBottomWidth": (0,
|
|
24706
|
+
"--borderBottomWidth": (0, import_runtime113.maybeCssVar)(`3px`)
|
|
25064
24707
|
}]
|
|
25065
24708
|
},
|
|
25066
24709
|
...color
|
|
@@ -25132,9 +24775,9 @@ var stepperTabStyles = {
|
|
|
25132
24775
|
};
|
|
25133
24776
|
|
|
25134
24777
|
// src/components/StepperTabs/StepperTabs.tsx
|
|
25135
|
-
var
|
|
25136
|
-
var
|
|
25137
|
-
var
|
|
24778
|
+
var import_runtime114 = require("@homebound/truss/runtime");
|
|
24779
|
+
var import_jsx_runtime196 = require("react/jsx-runtime");
|
|
24780
|
+
var import_react144 = require("react");
|
|
25138
24781
|
function StepperTabs(props) {
|
|
25139
24782
|
const {
|
|
25140
24783
|
steps,
|
|
@@ -25146,7 +24789,7 @@ function StepperTabs(props) {
|
|
|
25146
24789
|
sm: collapsed
|
|
25147
24790
|
} = useBreakpoint();
|
|
25148
24791
|
const capWidth = steps.length <= 3;
|
|
25149
|
-
return /* @__PURE__ */ (0,
|
|
24792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)("nav", { "aria-label": "steps", className: "w100", ...tid, children: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)("ol", { ...(0, import_runtime114.trussProps)({
|
|
25150
24793
|
padding: "p_0",
|
|
25151
24794
|
margin: "m_0",
|
|
25152
24795
|
listStyle: "lis_none",
|
|
@@ -25160,7 +24803,7 @@ function StepperTabs(props) {
|
|
|
25160
24803
|
borderColor: "bcGray400"
|
|
25161
24804
|
}), children: steps.map((step) => {
|
|
25162
24805
|
const isCurrent = step.value === currentStep;
|
|
25163
|
-
return /* @__PURE__ */ (0,
|
|
24806
|
+
return /* @__PURE__ */ (0, import_react144.createElement)("li", { ...(0, import_runtime114.trussProps)({
|
|
25164
24807
|
display: "df",
|
|
25165
24808
|
flexGrow: "fg1",
|
|
25166
24809
|
flexBasis: "fb_0",
|
|
@@ -25172,7 +24815,7 @@ function StepperTabs(props) {
|
|
|
25172
24815
|
"--maxWidth": `${maxStepWidthPx}px`
|
|
25173
24816
|
}]
|
|
25174
24817
|
} : {}
|
|
25175
|
-
}), key: step.value, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0,
|
|
24818
|
+
}), key: step.value, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(StepperTab, { label: step.label, value: step.value, active: isCurrent, completed: step.completed, disabled: step.disabled, collapsed, onClick: onChange, ...tid.tab }));
|
|
25176
24819
|
}) }) });
|
|
25177
24820
|
}
|
|
25178
24821
|
var maxStepWidthPx = 280;
|
|
@@ -25180,8 +24823,8 @@ var gapPx = 6;
|
|
|
25180
24823
|
|
|
25181
24824
|
// src/components/SuperDrawer/components/SuperDrawerHeader.tsx
|
|
25182
24825
|
var import_react_dom7 = require("react-dom");
|
|
25183
|
-
var
|
|
25184
|
-
var
|
|
24826
|
+
var import_runtime115 = require("@homebound/truss/runtime");
|
|
24827
|
+
var import_jsx_runtime197 = require("react/jsx-runtime");
|
|
25185
24828
|
function SuperDrawerHeader(props) {
|
|
25186
24829
|
const {
|
|
25187
24830
|
hideControls
|
|
@@ -25198,20 +24841,20 @@ function SuperDrawerHeader(props) {
|
|
|
25198
24841
|
const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
|
|
25199
24842
|
const isDetail = currentContent !== firstContent;
|
|
25200
24843
|
const tid = useTestIds({}, "superDrawerHeader");
|
|
25201
|
-
return (0, import_react_dom7.createPortal)(/* @__PURE__ */ (0,
|
|
25202
|
-
isStructuredProps(props) ? /* @__PURE__ */ (0,
|
|
25203
|
-
/* @__PURE__ */ (0,
|
|
25204
|
-
/* @__PURE__ */ (0,
|
|
24844
|
+
return (0, import_react_dom7.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime197.jsxs)("div", { className: "df aic jcsb gap3", ...tid, children: [
|
|
24845
|
+
isStructuredProps(props) ? /* @__PURE__ */ (0, import_jsx_runtime197.jsxs)("div", { className: "df jcsb aic gap2 fg1", children: [
|
|
24846
|
+
/* @__PURE__ */ (0, import_jsx_runtime197.jsxs)("div", { className: "fg1 df aic gap2", children: [
|
|
24847
|
+
/* @__PURE__ */ (0, import_jsx_runtime197.jsx)("h1", { className: "fw6 fz_30px lh_36px", children: props.title }),
|
|
25205
24848
|
props.left
|
|
25206
24849
|
] }),
|
|
25207
|
-
props.right && /* @__PURE__ */ (0,
|
|
25208
|
-
] }) : /* @__PURE__ */ (0,
|
|
25209
|
-
!hideControls && /* @__PURE__ */ (0,
|
|
24850
|
+
props.right && /* @__PURE__ */ (0, import_jsx_runtime197.jsx)("div", { className: "fs0", children: props.right })
|
|
24851
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime197.jsx)("div", { className: "fg1", children: props.children }),
|
|
24852
|
+
!hideControls && /* @__PURE__ */ (0, import_jsx_runtime197.jsx)("div", { ...(0, import_runtime115.trussProps)({
|
|
25210
24853
|
flexShrink: "fs0",
|
|
25211
24854
|
...isDetail ? {
|
|
25212
24855
|
visibility: "vh"
|
|
25213
24856
|
} : {}
|
|
25214
|
-
}), children: /* @__PURE__ */ (0,
|
|
24857
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(ButtonGroup, { buttons: [{
|
|
25215
24858
|
icon: "chevronLeft",
|
|
25216
24859
|
onClick: () => onPrevClick && onPrevClick(),
|
|
25217
24860
|
disabled: !onPrevClick
|
|
@@ -25227,18 +24870,18 @@ function isStructuredProps(props) {
|
|
|
25227
24870
|
}
|
|
25228
24871
|
|
|
25229
24872
|
// src/components/SuperDrawer/ConfirmCloseModal.tsx
|
|
25230
|
-
var
|
|
24873
|
+
var import_jsx_runtime198 = require("react/jsx-runtime");
|
|
25231
24874
|
function ConfirmCloseModal(props) {
|
|
25232
24875
|
const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
|
|
25233
24876
|
const { modalState } = useBeamContext();
|
|
25234
24877
|
function closeModal() {
|
|
25235
24878
|
modalState.current = void 0;
|
|
25236
24879
|
}
|
|
25237
|
-
return /* @__PURE__ */ (0,
|
|
25238
|
-
/* @__PURE__ */ (0,
|
|
25239
|
-
/* @__PURE__ */ (0,
|
|
25240
|
-
/* @__PURE__ */ (0,
|
|
25241
|
-
/* @__PURE__ */ (0,
|
|
24880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime198.jsxs)(import_jsx_runtime198.Fragment, { children: [
|
|
24881
|
+
/* @__PURE__ */ (0, import_jsx_runtime198.jsx)(ModalHeader, { children: "Are you sure you want to cancel?" }),
|
|
24882
|
+
/* @__PURE__ */ (0, import_jsx_runtime198.jsx)(ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)("p", { children: "Any changes you've made so far will be lost." }) }),
|
|
24883
|
+
/* @__PURE__ */ (0, import_jsx_runtime198.jsxs)(ModalFooter, { children: [
|
|
24884
|
+
/* @__PURE__ */ (0, import_jsx_runtime198.jsx)(
|
|
25242
24885
|
Button,
|
|
25243
24886
|
{
|
|
25244
24887
|
variant: "quaternary",
|
|
@@ -25249,7 +24892,7 @@ function ConfirmCloseModal(props) {
|
|
|
25249
24892
|
}
|
|
25250
24893
|
}
|
|
25251
24894
|
),
|
|
25252
|
-
/* @__PURE__ */ (0,
|
|
24895
|
+
/* @__PURE__ */ (0, import_jsx_runtime198.jsx)(Button, { label: continueText, onClick: closeModal })
|
|
25253
24896
|
] })
|
|
25254
24897
|
] });
|
|
25255
24898
|
}
|
|
@@ -25258,8 +24901,8 @@ function ConfirmCloseModal(props) {
|
|
|
25258
24901
|
var import_framer_motion6 = require("framer-motion");
|
|
25259
24902
|
|
|
25260
24903
|
// src/components/SuperDrawer/useSuperDrawer.tsx
|
|
25261
|
-
var
|
|
25262
|
-
var
|
|
24904
|
+
var import_react145 = require("react");
|
|
24905
|
+
var import_jsx_runtime199 = require("react/jsx-runtime");
|
|
25263
24906
|
function useSuperDrawer() {
|
|
25264
24907
|
const {
|
|
25265
24908
|
drawerContentStack: contentStack,
|
|
@@ -25271,7 +24914,7 @@ function useSuperDrawer() {
|
|
|
25271
24914
|
function canCloseDrawerDetails(i, doChange) {
|
|
25272
24915
|
for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
|
|
25273
24916
|
if (!canClose(canCloseDrawerDetail)) {
|
|
25274
|
-
openModal({ content: /* @__PURE__ */ (0,
|
|
24917
|
+
openModal({ content: /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
|
|
25275
24918
|
return false;
|
|
25276
24919
|
}
|
|
25277
24920
|
}
|
|
@@ -25291,14 +24934,14 @@ function useSuperDrawer() {
|
|
|
25291
24934
|
for (const canCloseDrawer of canCloseChecks.current) {
|
|
25292
24935
|
if (!canClose(canCloseDrawer)) {
|
|
25293
24936
|
openModal({
|
|
25294
|
-
content: /* @__PURE__ */ (0,
|
|
24937
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
|
|
25295
24938
|
});
|
|
25296
24939
|
return;
|
|
25297
24940
|
}
|
|
25298
24941
|
}
|
|
25299
24942
|
doChange();
|
|
25300
24943
|
}
|
|
25301
|
-
const closeActions = (0,
|
|
24944
|
+
const closeActions = (0, import_react145.useMemo)(
|
|
25302
24945
|
() => {
|
|
25303
24946
|
return {
|
|
25304
24947
|
/** Attempts to close the drawer. If any checks fail, a confirmation modal will appear */
|
|
@@ -25333,7 +24976,7 @@ function useSuperDrawer() {
|
|
|
25333
24976
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25334
24977
|
[canCloseChecks, canCloseDetailsChecks, contentStack, modalState, openModal]
|
|
25335
24978
|
);
|
|
25336
|
-
const actions = (0,
|
|
24979
|
+
const actions = (0, import_react145.useMemo)(
|
|
25337
24980
|
() => {
|
|
25338
24981
|
return {
|
|
25339
24982
|
// TODO: Maybe we should rename to openDrawer as a breaking change (to match openDrawerDetail)
|
|
@@ -25386,8 +25029,8 @@ function canClose(canCloseCheck) {
|
|
|
25386
25029
|
}
|
|
25387
25030
|
|
|
25388
25031
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
25389
|
-
var
|
|
25390
|
-
var
|
|
25032
|
+
var import_runtime116 = require("@homebound/truss/runtime");
|
|
25033
|
+
var import_jsx_runtime200 = require("react/jsx-runtime");
|
|
25391
25034
|
var SuperDrawerContent = ({
|
|
25392
25035
|
children,
|
|
25393
25036
|
actions
|
|
@@ -25403,95 +25046,360 @@ var SuperDrawerContent = ({
|
|
|
25403
25046
|
} = contentStack.current[contentStack.current.length - 1] ?? {};
|
|
25404
25047
|
const firstContent = contentStack.current[0]?.opts;
|
|
25405
25048
|
const {
|
|
25406
|
-
width: width2 = 1040 /* Normal */
|
|
25407
|
-
} = firstContent ?? {};
|
|
25408
|
-
function wrapWithMotionAndMaybeBack(children2) {
|
|
25409
|
-
if (kind === "open") {
|
|
25410
|
-
return /* @__PURE__ */ (0,
|
|
25411
|
-
} else if (kind === "detail") {
|
|
25412
|
-
return /* @__PURE__ */ (0,
|
|
25413
|
-
overflow: "auto"
|
|
25414
|
-
}, transition: {
|
|
25415
|
-
overflow: {
|
|
25416
|
-
delay: 0.3
|
|
25417
|
-
}
|
|
25418
|
-
}, children: [
|
|
25419
|
-
/* @__PURE__ */ (0,
|
|
25420
|
-
/* @__PURE__ */ (0,
|
|
25421
|
-
x: width2,
|
|
25422
|
-
opacity: 0
|
|
25423
|
-
}, animate: {
|
|
25424
|
-
x: 0,
|
|
25425
|
-
opacity: 1
|
|
25426
|
-
}, transition: {
|
|
25427
|
-
ease: "linear",
|
|
25428
|
-
duration: 0.3,
|
|
25429
|
-
opacity: {
|
|
25430
|
-
delay: 0.15
|
|
25431
|
-
}
|
|
25432
|
-
}, exit: {
|
|
25433
|
-
x: width2,
|
|
25434
|
-
opacity: 0
|
|
25435
|
-
}, className: "pt2", children: children2 })
|
|
25436
|
-
] }, "content");
|
|
25437
|
-
} else {
|
|
25438
|
-
return /* @__PURE__ */ (0,
|
|
25439
|
-
overflow: "auto"
|
|
25440
|
-
}, {
|
|
25441
|
-
paddingTop: "pt3",
|
|
25442
|
-
paddingBottom: "pb3",
|
|
25443
|
-
paddingRight: "pr3",
|
|
25444
|
-
paddingLeft: "pl3",
|
|
25445
|
-
flexGrow: "fg1"
|
|
25446
|
-
}) }, "content");
|
|
25049
|
+
width: width2 = 1040 /* Normal */
|
|
25050
|
+
} = firstContent ?? {};
|
|
25051
|
+
function wrapWithMotionAndMaybeBack(children2) {
|
|
25052
|
+
if (kind === "open") {
|
|
25053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_framer_motion6.motion.div, { className: "pt3 pb3 pr3 pl3 fg1 oa", children: children2 }, "content");
|
|
25054
|
+
} else if (kind === "detail") {
|
|
25055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_framer_motion6.motion.div, { className: "pl3 pr3 pt2 pb3 fg1", animate: {
|
|
25056
|
+
overflow: "auto"
|
|
25057
|
+
}, transition: {
|
|
25058
|
+
overflow: {
|
|
25059
|
+
delay: 0.3
|
|
25060
|
+
}
|
|
25061
|
+
}, children: [
|
|
25062
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
|
|
25063
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_framer_motion6.motion.div, { initial: {
|
|
25064
|
+
x: width2,
|
|
25065
|
+
opacity: 0
|
|
25066
|
+
}, animate: {
|
|
25067
|
+
x: 0,
|
|
25068
|
+
opacity: 1
|
|
25069
|
+
}, transition: {
|
|
25070
|
+
ease: "linear",
|
|
25071
|
+
duration: 0.3,
|
|
25072
|
+
opacity: {
|
|
25073
|
+
delay: 0.15
|
|
25074
|
+
}
|
|
25075
|
+
}, exit: {
|
|
25076
|
+
x: width2,
|
|
25077
|
+
opacity: 0
|
|
25078
|
+
}, className: "pt2", children: children2 })
|
|
25079
|
+
] }, "content");
|
|
25080
|
+
} else {
|
|
25081
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_framer_motion6.motion.div, { ...(0, import_runtime116.mergeProps)(void 0, {
|
|
25082
|
+
overflow: "auto"
|
|
25083
|
+
}, {
|
|
25084
|
+
paddingTop: "pt3",
|
|
25085
|
+
paddingBottom: "pb3",
|
|
25086
|
+
paddingRight: "pr3",
|
|
25087
|
+
paddingLeft: "pl3",
|
|
25088
|
+
flexGrow: "fg1"
|
|
25089
|
+
}) }, "content");
|
|
25090
|
+
}
|
|
25091
|
+
}
|
|
25092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_jsx_runtime200.Fragment, { children: [
|
|
25093
|
+
wrapWithMotionAndMaybeBack(children),
|
|
25094
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)("footer", { className: "bts_solid btw_1px bcGray200 pt3 pb3 pr3 pl3 df aic jcfe", children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)("div", { className: "df gap1", children: actions.map((buttonProps, i) => /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Button, { ...buttonProps }, i)) }) })
|
|
25095
|
+
] });
|
|
25096
|
+
};
|
|
25097
|
+
|
|
25098
|
+
// src/components/Table/cardSlots.ts
|
|
25099
|
+
function cardTitleSlot(text) {
|
|
25100
|
+
return { kind: "title", text };
|
|
25101
|
+
}
|
|
25102
|
+
function cardEyebrowSlot(text) {
|
|
25103
|
+
return { kind: "eyebrow", text };
|
|
25104
|
+
}
|
|
25105
|
+
function cardBadgeSlot(text, tags) {
|
|
25106
|
+
return { kind: "badge", text, tags };
|
|
25107
|
+
}
|
|
25108
|
+
function cardStatusSlot(tag) {
|
|
25109
|
+
return { kind: "status", tag };
|
|
25110
|
+
}
|
|
25111
|
+
function cardDataBlockSlot(props) {
|
|
25112
|
+
return { kind: "dataBlock", ...props };
|
|
25113
|
+
}
|
|
25114
|
+
function cardProgressSlot(value) {
|
|
25115
|
+
return { kind: "progress", value };
|
|
25116
|
+
}
|
|
25117
|
+
|
|
25118
|
+
// src/components/Table/utils/simpleHelpers.ts
|
|
25119
|
+
var simpleHeader = { kind: "header", id: "header", data: void 0 };
|
|
25120
|
+
function simpleDataRows(data = []) {
|
|
25121
|
+
return [simpleHeader, ...data.map((data2) => ({ kind: "data", data: data2, id: data2.id }))];
|
|
25122
|
+
}
|
|
25123
|
+
|
|
25124
|
+
// src/components/Table/utils/visitor.ts
|
|
25125
|
+
function visit(rows, fn) {
|
|
25126
|
+
const todo = [...rows];
|
|
25127
|
+
while (todo.length > 0) {
|
|
25128
|
+
const row = todo.pop();
|
|
25129
|
+
fn(row);
|
|
25130
|
+
if (row.children) {
|
|
25131
|
+
todo.push(...row.children);
|
|
25132
|
+
}
|
|
25133
|
+
}
|
|
25134
|
+
}
|
|
25135
|
+
|
|
25136
|
+
// src/components/Tabs.tsx
|
|
25137
|
+
var import_change_case9 = require("change-case");
|
|
25138
|
+
var import_react146 = require("react");
|
|
25139
|
+
var import_react_aria64 = require("react-aria");
|
|
25140
|
+
var import_react_router = require("react-router");
|
|
25141
|
+
var import_react_router_dom8 = require("react-router-dom");
|
|
25142
|
+
var import_runtime117 = require("@homebound/truss/runtime");
|
|
25143
|
+
var import_jsx_runtime201 = require("react/jsx-runtime");
|
|
25144
|
+
function TabsWithContent(props) {
|
|
25145
|
+
const styles = hideTabs(props) ? {} : {
|
|
25146
|
+
paddingTop: "pt3"
|
|
25147
|
+
};
|
|
25148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime201.jsxs)(import_jsx_runtime201.Fragment, { children: [
|
|
25149
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsx)(Tabs, { ...props }),
|
|
25150
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsx)(TabContent, { ...props, contentXss: {
|
|
25151
|
+
...styles,
|
|
25152
|
+
...props.contentXss
|
|
25153
|
+
} })
|
|
25154
|
+
] });
|
|
25155
|
+
}
|
|
25156
|
+
function TabContent(props) {
|
|
25157
|
+
const tid = useTestIds(props, "tab");
|
|
25158
|
+
const {
|
|
25159
|
+
tabs,
|
|
25160
|
+
contentXss = {},
|
|
25161
|
+
omitFullBleedPadding = false
|
|
25162
|
+
} = props;
|
|
25163
|
+
const location = (0, import_react_router_dom8.useLocation)();
|
|
25164
|
+
const selectedTab = isRouteTabs(props) ? props.tabs.find((t) => {
|
|
25165
|
+
const paths = Array.isArray(t.path) ? t.path : [t.path];
|
|
25166
|
+
return paths.some((p) => !!(0, import_react_router.matchPath)({
|
|
25167
|
+
path: p,
|
|
25168
|
+
end: true
|
|
25169
|
+
}, location.pathname));
|
|
25170
|
+
}) || tabs[0] : props.tabs.find((tab) => tab.value === props.selected) || tabs[0];
|
|
25171
|
+
const uniqueValue = uniqueTabValue(selectedTab);
|
|
25172
|
+
return (
|
|
25173
|
+
// Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
|
|
25174
|
+
// Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
|
|
25175
|
+
/* @__PURE__ */ (0, import_jsx_runtime201.jsx)(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...(0, import_runtime117.trussProps)(contentXss), children: selectedTab.render() }) })
|
|
25176
|
+
);
|
|
25177
|
+
}
|
|
25178
|
+
function Tabs(props) {
|
|
25179
|
+
const {
|
|
25180
|
+
ariaLabel,
|
|
25181
|
+
tabs,
|
|
25182
|
+
includeBottomBorder,
|
|
25183
|
+
right,
|
|
25184
|
+
...others
|
|
25185
|
+
} = props;
|
|
25186
|
+
const location = (0, import_react_router_dom8.useLocation)();
|
|
25187
|
+
const selected = isRouteTabs(props) ? uniqueTabValue(props.tabs.find((t) => {
|
|
25188
|
+
const paths = Array.isArray(t.path) ? t.path : [t.path];
|
|
25189
|
+
return paths.some((p) => !!(0, import_react_router.matchPath)({
|
|
25190
|
+
path: p,
|
|
25191
|
+
end: true
|
|
25192
|
+
}, location.pathname));
|
|
25193
|
+
}) || props.tabs[0]) : props.selected;
|
|
25194
|
+
const {
|
|
25195
|
+
isFocusVisible,
|
|
25196
|
+
focusProps
|
|
25197
|
+
} = (0, import_react_aria64.useFocusRing)();
|
|
25198
|
+
const tid = useTestIds(others, "tabs");
|
|
25199
|
+
const [active, setActive] = (0, import_react146.useState)(selected);
|
|
25200
|
+
const ref = (0, import_react146.useRef)(null);
|
|
25201
|
+
(0, import_react146.useEffect)(() => setActive(selected), [selected]);
|
|
25202
|
+
function onKeyUp(e) {
|
|
25203
|
+
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
25204
|
+
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
25205
|
+
setActive(nextTabValue);
|
|
25206
|
+
document.getElementById(`${nextTabValue}-tab`)?.focus();
|
|
25207
|
+
}
|
|
25208
|
+
}
|
|
25209
|
+
function onClick(value) {
|
|
25210
|
+
!isRouteTabs(props) && props.onChange(value);
|
|
25211
|
+
}
|
|
25212
|
+
function onBlur(e) {
|
|
25213
|
+
if (!(ref.current && ref.current.contains(e.relatedTarget))) {
|
|
25214
|
+
setActive(selected);
|
|
25215
|
+
}
|
|
25216
|
+
}
|
|
25217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime201.jsxs)("div", { ...(0, import_runtime117.trussProps)({
|
|
25218
|
+
...{
|
|
25219
|
+
display: "df",
|
|
25220
|
+
alignItems: "aic",
|
|
25221
|
+
overflow: "oa",
|
|
25222
|
+
whiteSpace: "wsnw",
|
|
25223
|
+
gap: "gap1"
|
|
25224
|
+
},
|
|
25225
|
+
...includeBottomBorder ? {
|
|
25226
|
+
...{
|
|
25227
|
+
borderBottomStyle: "bbs_solid",
|
|
25228
|
+
borderBottomWidth: "bbw_1px",
|
|
25229
|
+
borderColor: "bcGray200"
|
|
25230
|
+
}
|
|
25231
|
+
} : {}
|
|
25232
|
+
}), children: [
|
|
25233
|
+
!hideTabs(props) && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { ref, className: "dif gap1 asfe", "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
|
|
25234
|
+
const uniqueValue = uniqueTabValue(tab);
|
|
25235
|
+
return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(TabImpl, { active: active === uniqueValue, focusProps, isFocusVisible, onClick, onKeyUp, onBlur, tab, ...tid[defaultTestId(uniqueValue)] }, uniqueValue);
|
|
25236
|
+
}) }),
|
|
25237
|
+
right && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { className: "mla df aic gap1 pb1", children: right })
|
|
25238
|
+
] });
|
|
25239
|
+
}
|
|
25240
|
+
function TabImpl(props) {
|
|
25241
|
+
const {
|
|
25242
|
+
tab,
|
|
25243
|
+
onClick,
|
|
25244
|
+
active,
|
|
25245
|
+
onKeyUp,
|
|
25246
|
+
onBlur,
|
|
25247
|
+
focusProps,
|
|
25248
|
+
isFocusVisible = false,
|
|
25249
|
+
...others
|
|
25250
|
+
} = props;
|
|
25251
|
+
const {
|
|
25252
|
+
disabled = false,
|
|
25253
|
+
name: label,
|
|
25254
|
+
icon,
|
|
25255
|
+
endAdornment
|
|
25256
|
+
} = tab;
|
|
25257
|
+
const isDisabled = !!disabled;
|
|
25258
|
+
const {
|
|
25259
|
+
hoverProps,
|
|
25260
|
+
isHovered
|
|
25261
|
+
} = (0, import_react_aria64.useHover)({
|
|
25262
|
+
isDisabled
|
|
25263
|
+
});
|
|
25264
|
+
const {
|
|
25265
|
+
baseStyles: baseStyles4,
|
|
25266
|
+
activeStyles: activeStyles3,
|
|
25267
|
+
focusRingStyles: focusRingStyles2,
|
|
25268
|
+
hoverStyles: hoverStyles4,
|
|
25269
|
+
disabledStyles: disabledStyles3,
|
|
25270
|
+
activeHoverStyles
|
|
25271
|
+
} = (0, import_react146.useMemo)(() => getTabStyles(), []);
|
|
25272
|
+
const uniqueValue = uniqueTabValue(tab);
|
|
25273
|
+
const tabProps = {
|
|
25274
|
+
"aria-controls": `${uniqueValue}-tabPanel`,
|
|
25275
|
+
"aria-selected": active,
|
|
25276
|
+
"aria-disabled": isDisabled || void 0,
|
|
25277
|
+
id: `${uniqueValue}-tab`,
|
|
25278
|
+
role: "tab",
|
|
25279
|
+
tabIndex: active ? 0 : -1,
|
|
25280
|
+
...others,
|
|
25281
|
+
...(0, import_runtime117.trussProps)({
|
|
25282
|
+
...baseStyles4,
|
|
25283
|
+
...active && activeStyles3,
|
|
25284
|
+
...isDisabled && disabledStyles3,
|
|
25285
|
+
...isHovered && hoverStyles4,
|
|
25286
|
+
...isHovered && active && activeHoverStyles,
|
|
25287
|
+
...isFocusVisible && active && focusRingStyles2
|
|
25288
|
+
})
|
|
25289
|
+
};
|
|
25290
|
+
const interactiveProps = (0, import_react_aria64.mergeProps)(focusProps, hoverProps, {
|
|
25291
|
+
onKeyUp,
|
|
25292
|
+
onBlur,
|
|
25293
|
+
...isRouteTab(tab) ? {} : {
|
|
25294
|
+
onClick: () => onClick(tab.value)
|
|
25447
25295
|
}
|
|
25448
|
-
}
|
|
25449
|
-
|
|
25450
|
-
|
|
25451
|
-
|
|
25296
|
+
});
|
|
25297
|
+
const tabLabel = /* @__PURE__ */ (0, import_jsx_runtime201.jsxs)(import_jsx_runtime201.Fragment, { children: [
|
|
25298
|
+
label,
|
|
25299
|
+
(icon || endAdornment) && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("span", { className: "ml1", children: icon ? /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(Icon, { icon }) : endAdornment })
|
|
25452
25300
|
] });
|
|
25453
|
-
|
|
25454
|
-
|
|
25455
|
-
|
|
25456
|
-
|
|
25457
|
-
|
|
25458
|
-
|
|
25459
|
-
|
|
25460
|
-
|
|
25301
|
+
return isDisabled ? maybeTooltip({
|
|
25302
|
+
title: resolveTooltip(disabled),
|
|
25303
|
+
placement: "top",
|
|
25304
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("div", { ...tabProps, children: tabLabel })
|
|
25305
|
+
}) : isRouteTab(tab) ? /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(import_react_router_dom8.Link, { ...(0, import_react_aria64.mergeProps)(tabProps, interactiveProps, {
|
|
25306
|
+
className: "navLink"
|
|
25307
|
+
}), to: tab.href, children: tabLabel }) : /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("button", { ...{
|
|
25308
|
+
...tabProps,
|
|
25309
|
+
...interactiveProps
|
|
25310
|
+
}, children: tabLabel });
|
|
25461
25311
|
}
|
|
25462
|
-
function
|
|
25463
|
-
|
|
25312
|
+
function getTabStyles() {
|
|
25313
|
+
const borderBottomWidthPx = 4;
|
|
25314
|
+
const verticalPaddingPx = 6;
|
|
25315
|
+
const borderBottomStyles = {
|
|
25316
|
+
borderBottomStyle: "bbs_solid",
|
|
25317
|
+
borderBottomWidth: ["borderBottomWidth_var", {
|
|
25318
|
+
"--borderBottomWidth": (0, import_runtime117.maybeCssVar)(`${borderBottomWidthPx}px`)
|
|
25319
|
+
}],
|
|
25320
|
+
paddingBottom: ["pb_var", {
|
|
25321
|
+
"--paddingBottom": `${verticalPaddingPx - borderBottomWidthPx}px`
|
|
25322
|
+
}]
|
|
25323
|
+
};
|
|
25324
|
+
return {
|
|
25325
|
+
baseStyles: {
|
|
25326
|
+
display: "df",
|
|
25327
|
+
alignItems: "aic",
|
|
25328
|
+
height: "h_32px",
|
|
25329
|
+
paddingTop: ["py_var", {
|
|
25330
|
+
"--paddingTop": `${verticalPaddingPx}px`
|
|
25331
|
+
}],
|
|
25332
|
+
paddingBottom: ["py_var", {
|
|
25333
|
+
"--paddingBottom": `${verticalPaddingPx}px`
|
|
25334
|
+
}],
|
|
25335
|
+
paddingLeft: "pl1",
|
|
25336
|
+
paddingRight: "pr1",
|
|
25337
|
+
outline: "outline0",
|
|
25338
|
+
color: "gray700",
|
|
25339
|
+
width: "width_fit_content",
|
|
25340
|
+
cursor: "cursorPointer",
|
|
25341
|
+
fontWeight: "fw4",
|
|
25342
|
+
fontSize: "fz_14px",
|
|
25343
|
+
lineHeight: "lh_20px"
|
|
25344
|
+
},
|
|
25345
|
+
activeStyles: {
|
|
25346
|
+
...{
|
|
25347
|
+
borderColor: "bcBlue700",
|
|
25348
|
+
fontWeight: "fw6",
|
|
25349
|
+
fontSize: "fz_14px",
|
|
25350
|
+
lineHeight: "lh_20px",
|
|
25351
|
+
color: "gray900"
|
|
25352
|
+
},
|
|
25353
|
+
...borderBottomStyles
|
|
25354
|
+
},
|
|
25355
|
+
disabledStyles: {
|
|
25356
|
+
color: "gray400",
|
|
25357
|
+
cursor: "cursorNotAllowed"
|
|
25358
|
+
},
|
|
25359
|
+
focusRingStyles: {
|
|
25360
|
+
backgroundColor: "bgBlue50",
|
|
25361
|
+
boxShadow: "bshFocus"
|
|
25362
|
+
},
|
|
25363
|
+
hoverStyles: {
|
|
25364
|
+
...{
|
|
25365
|
+
borderColor: "bcGray400"
|
|
25366
|
+
},
|
|
25367
|
+
...borderBottomStyles
|
|
25368
|
+
},
|
|
25369
|
+
activeHoverStyles: {
|
|
25370
|
+
...{
|
|
25371
|
+
backgroundColor: "bgBlue50",
|
|
25372
|
+
borderColor: "bcBlue700"
|
|
25373
|
+
},
|
|
25374
|
+
...borderBottomStyles
|
|
25375
|
+
}
|
|
25376
|
+
};
|
|
25464
25377
|
}
|
|
25465
|
-
function
|
|
25466
|
-
|
|
25378
|
+
function getNextTabValue(selected, key, tabs) {
|
|
25379
|
+
const enabledTabs = tabs.filter((tab) => tab.disabled !== true);
|
|
25380
|
+
const tabsToScan = key === "ArrowRight" ? enabledTabs : enabledTabs.reverse();
|
|
25381
|
+
const currentIndex = tabsToScan.findIndex((tab) => uniqueTabValue(tab) === selected);
|
|
25382
|
+
const nextIndex = currentIndex === tabsToScan.length - 1 ? 0 : currentIndex + 1;
|
|
25383
|
+
return uniqueTabValue(tabsToScan[nextIndex]);
|
|
25467
25384
|
}
|
|
25468
|
-
function
|
|
25469
|
-
|
|
25385
|
+
function isRouteTabs(props) {
|
|
25386
|
+
const {
|
|
25387
|
+
tabs
|
|
25388
|
+
} = props;
|
|
25389
|
+
return tabs.length > 0 && isRouteTab(tabs[0]);
|
|
25470
25390
|
}
|
|
25471
|
-
function
|
|
25472
|
-
return
|
|
25391
|
+
function isRouteTab(tab) {
|
|
25392
|
+
return "path" in tab;
|
|
25473
25393
|
}
|
|
25474
|
-
|
|
25475
|
-
|
|
25476
|
-
var simpleHeader = { kind: "header", id: "header", data: void 0 };
|
|
25477
|
-
function simpleDataRows(data = []) {
|
|
25478
|
-
return [simpleHeader, ...data.map((data2) => ({ kind: "data", data: data2, id: data2.id }))];
|
|
25394
|
+
function uniqueTabValue(tab) {
|
|
25395
|
+
return isRouteTab(tab) ? (0, import_change_case9.camelCase)(tab.name) : tab.value;
|
|
25479
25396
|
}
|
|
25480
|
-
|
|
25481
|
-
|
|
25482
|
-
function visit(rows, fn) {
|
|
25483
|
-
const todo = [...rows];
|
|
25484
|
-
while (todo.length > 0) {
|
|
25485
|
-
const row = todo.pop();
|
|
25486
|
-
fn(row);
|
|
25487
|
-
if (row.children) {
|
|
25488
|
-
todo.push(...row.children);
|
|
25489
|
-
}
|
|
25490
|
-
}
|
|
25397
|
+
function hideTabs(props) {
|
|
25398
|
+
return props.alwaysShowAllTabs ? false : props.tabs.filter((t) => !t.disabled).length === 1;
|
|
25491
25399
|
}
|
|
25492
25400
|
|
|
25493
25401
|
// src/components/TagGroup.tsx
|
|
25494
|
-
var
|
|
25402
|
+
var import_jsx_runtime202 = require("react/jsx-runtime");
|
|
25495
25403
|
function TagGroup(props) {
|
|
25496
25404
|
const {
|
|
25497
25405
|
tags,
|
|
@@ -25499,9 +25407,9 @@ function TagGroup(props) {
|
|
|
25499
25407
|
...otherProps
|
|
25500
25408
|
} = props;
|
|
25501
25409
|
const tid = useTestIds(otherProps, "tagGroup");
|
|
25502
|
-
return /* @__PURE__ */ (0,
|
|
25503
|
-
tags.map((tag) => /* @__PURE__ */ (0,
|
|
25504
|
-
onEdit && /* @__PURE__ */ (0,
|
|
25410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)("div", { ...tid, className: "df aic fww gap1", children: [
|
|
25411
|
+
tags.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(Tag, { ...tag, variant: "secondary" }, tag.text)),
|
|
25412
|
+
onEdit && /* @__PURE__ */ (0, import_jsx_runtime202.jsx)("span", { className: "ml1 fw4 fz_14px lh_20px", children: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(Button, { label: "Edit", variant: "text", onClick: onEdit, ...tid.edit }) })
|
|
25505
25413
|
] });
|
|
25506
25414
|
}
|
|
25507
25415
|
|
|
@@ -25514,15 +25422,15 @@ function useToast() {
|
|
|
25514
25422
|
}
|
|
25515
25423
|
|
|
25516
25424
|
// src/layouts/SideNavLayout/SideNavLayout.tsx
|
|
25517
|
-
var
|
|
25518
|
-
var
|
|
25425
|
+
var import_runtime118 = require("@homebound/truss/runtime");
|
|
25426
|
+
var import_jsx_runtime203 = require("react/jsx-runtime");
|
|
25519
25427
|
var __maybeInc21 = (inc) => {
|
|
25520
25428
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25521
25429
|
};
|
|
25522
25430
|
function SideNavLayout(props) {
|
|
25523
25431
|
const hasProvider = useHasSideNavLayoutProvider();
|
|
25524
|
-
if (hasProvider) return /* @__PURE__ */ (0,
|
|
25525
|
-
return /* @__PURE__ */ (0,
|
|
25432
|
+
if (hasProvider) return /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(SideNavLayoutContent, { ...props });
|
|
25433
|
+
return /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(SideNavLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(SideNavLayoutContent, { ...props }) });
|
|
25526
25434
|
}
|
|
25527
25435
|
function SideNavLayoutContent(props) {
|
|
25528
25436
|
const {
|
|
@@ -25544,7 +25452,7 @@ function SideNavLayoutContent(props) {
|
|
|
25544
25452
|
const railOffsetPx = !showRail ? 0 : !bp.mdAndUp || collapsed ? railCollapsedWidthPx : railWidthPx;
|
|
25545
25453
|
const navTop = bannerAndNavbarChromeTop();
|
|
25546
25454
|
const railViewportHeight = `calc(var(${beamLayoutViewportHeightVar}, 100vh) - var(${beamEnvironmentBannerLayoutHeightVar}, 0px) - var(${beamNavbarLayoutHeightVar}, 0px))`;
|
|
25547
|
-
const rail = showRail && /* @__PURE__ */ (0,
|
|
25455
|
+
const rail = showRail && /* @__PURE__ */ (0, import_jsx_runtime203.jsxs)("div", { ...(0, import_runtime118.trussProps)({
|
|
25548
25456
|
...{
|
|
25549
25457
|
display: "df",
|
|
25550
25458
|
flexDirection: "fdc",
|
|
@@ -25568,14 +25476,14 @@ function SideNavLayoutContent(props) {
|
|
|
25568
25476
|
position: "sticky",
|
|
25569
25477
|
left: "left0",
|
|
25570
25478
|
zIndex: ["z_var", {
|
|
25571
|
-
"--zIndex": (0,
|
|
25479
|
+
"--zIndex": (0, import_runtime118.maybeCssVar)(zIndices.sideNav)
|
|
25572
25480
|
}],
|
|
25573
25481
|
top: ["top_var", {
|
|
25574
|
-
"--top": (0,
|
|
25482
|
+
"--top": (0, import_runtime118.maybeCssVar)(__maybeInc21(navTop))
|
|
25575
25483
|
}],
|
|
25576
25484
|
alignSelf: "asfs",
|
|
25577
25485
|
height: ["h_var", {
|
|
25578
|
-
"--height": (0,
|
|
25486
|
+
"--height": (0, import_runtime118.maybeCssVar)(__maybeInc21(railViewportHeight))
|
|
25579
25487
|
}],
|
|
25580
25488
|
width: ["w_var", {
|
|
25581
25489
|
"--width": `${collapsed ? railCollapsedWidthPx : railWidthPx}px`
|
|
@@ -25585,11 +25493,11 @@ function SideNavLayoutContent(props) {
|
|
|
25585
25493
|
position: "fixed",
|
|
25586
25494
|
left: "left0",
|
|
25587
25495
|
top: ["top_var", {
|
|
25588
|
-
"--top": (0,
|
|
25496
|
+
"--top": (0, import_runtime118.maybeCssVar)(__maybeInc21(navTop))
|
|
25589
25497
|
}],
|
|
25590
25498
|
bottom: "bottom0",
|
|
25591
25499
|
zIndex: ["z_var", {
|
|
25592
|
-
"--zIndex": (0,
|
|
25500
|
+
"--zIndex": (0, import_runtime118.maybeCssVar)(zIndices.sideNav)
|
|
25593
25501
|
}]
|
|
25594
25502
|
},
|
|
25595
25503
|
...collapsed ? {
|
|
@@ -25601,18 +25509,18 @@ function SideNavLayoutContent(props) {
|
|
|
25601
25509
|
}
|
|
25602
25510
|
}
|
|
25603
25511
|
}), ...tid.sideNav, children: [
|
|
25604
|
-
showCollapseToggle && /* @__PURE__ */ (0,
|
|
25605
|
-
/* @__PURE__ */ (0,
|
|
25512
|
+
showCollapseToggle && /* @__PURE__ */ (0, import_jsx_runtime203.jsx)("div", { className: "absolute right2 top2 z2", children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
|
|
25513
|
+
/* @__PURE__ */ (0, import_jsx_runtime203.jsx)("div", { className: "fg1 mh0 df fdc", ...tid.sideNavContent, children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(SideNav, { ...sideNav }) })
|
|
25606
25514
|
] });
|
|
25607
|
-
return /* @__PURE__ */ (0,
|
|
25515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime203.jsxs)("div", { ...(0, import_runtime118.mergeProps)(void 0, {
|
|
25608
25516
|
[beamSideNavLayoutWidthVar]: `${railOffsetPx}px`
|
|
25609
25517
|
}, {
|
|
25610
25518
|
display: "df",
|
|
25611
25519
|
flexDirection: "fdr",
|
|
25612
25520
|
width: "w100"
|
|
25613
25521
|
}), ...tid, children: [
|
|
25614
|
-
contrastRail ? /* @__PURE__ */ (0,
|
|
25615
|
-
/* @__PURE__ */ (0,
|
|
25522
|
+
contrastRail ? /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(ContrastScope, { children: rail }) : rail,
|
|
25523
|
+
/* @__PURE__ */ (0, import_jsx_runtime203.jsx)("div", { ...(0, import_runtime118.trussProps)({
|
|
25616
25524
|
display: "df",
|
|
25617
25525
|
flexDirection: "fdc",
|
|
25618
25526
|
flexGrow: "fg1",
|
|
@@ -25628,8 +25536,8 @@ function SideNavLayoutContent(props) {
|
|
|
25628
25536
|
}
|
|
25629
25537
|
|
|
25630
25538
|
// src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayout.tsx
|
|
25631
|
-
var
|
|
25632
|
-
var
|
|
25539
|
+
var import_runtime119 = require("@homebound/truss/runtime");
|
|
25540
|
+
var import_jsx_runtime204 = require("react/jsx-runtime");
|
|
25633
25541
|
var __maybeInc22 = (inc) => {
|
|
25634
25542
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25635
25543
|
};
|
|
@@ -25645,35 +25553,35 @@ function EnvironmentBannerLayout(props) {
|
|
|
25645
25553
|
[beamEnvironmentBannerLayoutHeightVar]: `${bannerHeightPx}px`
|
|
25646
25554
|
};
|
|
25647
25555
|
const innerWidth = `var(${beamLayoutViewportWidthVar}, 100vw)`;
|
|
25648
|
-
return /* @__PURE__ */ (0,
|
|
25556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(EnvironmentBannerLayoutHeightProvider, { value: bannerHeightPx, children: /* @__PURE__ */ (0, import_jsx_runtime204.jsxs)("div", { ...(0, import_runtime119.mergeProps)(void 0, style, {
|
|
25649
25557
|
display: "df",
|
|
25650
25558
|
flexDirection: "fdc",
|
|
25651
25559
|
width: "wfc",
|
|
25652
25560
|
minWidth: "mw100"
|
|
25653
25561
|
}), ...tid, children: [
|
|
25654
|
-
showBanner && environmentBanner && /* @__PURE__ */ (0,
|
|
25562
|
+
showBanner && environmentBanner && /* @__PURE__ */ (0, import_jsx_runtime204.jsx)("div", { ...(0, import_runtime119.mergeProps)(void 0, {
|
|
25655
25563
|
height: environmentBannerSizePx
|
|
25656
25564
|
}, {
|
|
25657
25565
|
flexShrink: "fs0",
|
|
25658
25566
|
width: "w100"
|
|
25659
|
-
}), children: /* @__PURE__ */ (0,
|
|
25567
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)("div", { ...(0, import_runtime119.trussProps)({
|
|
25660
25568
|
position: "fixed",
|
|
25661
25569
|
top: "top0",
|
|
25662
25570
|
left: "left0",
|
|
25663
25571
|
zIndex: ["z_var", {
|
|
25664
|
-
"--zIndex": (0,
|
|
25572
|
+
"--zIndex": (0, import_runtime119.maybeCssVar)(zIndices.environmentBanner)
|
|
25665
25573
|
}],
|
|
25666
25574
|
width: ["w_var", {
|
|
25667
|
-
"--width": (0,
|
|
25575
|
+
"--width": (0, import_runtime119.maybeCssVar)(__maybeInc22(innerWidth))
|
|
25668
25576
|
}]
|
|
25669
|
-
}), ...tid.bannerSticky, children: /* @__PURE__ */ (0,
|
|
25577
|
+
}), ...tid.bannerSticky, children: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(EnvironmentBanner, { ...environmentBanner, ...tid.environmentBanner }) }) }),
|
|
25670
25578
|
children
|
|
25671
25579
|
] }) }) });
|
|
25672
25580
|
}
|
|
25673
25581
|
|
|
25674
25582
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
25675
25583
|
var import_react151 = require("react");
|
|
25676
|
-
var
|
|
25584
|
+
var import_runtime120 = require("@homebound/truss/runtime");
|
|
25677
25585
|
|
|
25678
25586
|
// src/layouts/useAutoHideOnScroll.ts
|
|
25679
25587
|
var import_react148 = require("react");
|
|
@@ -25766,7 +25674,7 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
|
25766
25674
|
}
|
|
25767
25675
|
|
|
25768
25676
|
// src/layouts/useMeasuredHeight.ts
|
|
25769
|
-
var
|
|
25677
|
+
var import_utils170 = require("@react-aria/utils");
|
|
25770
25678
|
var import_react149 = require("react");
|
|
25771
25679
|
function useMeasuredHeight(ref, enabled) {
|
|
25772
25680
|
const [height, setHeight] = (0, import_react149.useState)(0);
|
|
@@ -25775,7 +25683,7 @@ function useMeasuredHeight(ref, enabled) {
|
|
|
25775
25683
|
const next = el ? Math.round(el.getBoundingClientRect().height) : 0;
|
|
25776
25684
|
setHeight((prev) => prev === next ? prev : next);
|
|
25777
25685
|
}, [ref]);
|
|
25778
|
-
(0,
|
|
25686
|
+
(0, import_utils170.useResizeObserver)({ ref, onResize: syncElementHeight });
|
|
25779
25687
|
(0, import_react149.useLayoutEffect)(() => {
|
|
25780
25688
|
syncElementHeight();
|
|
25781
25689
|
}, [enabled, syncElementHeight]);
|
|
@@ -25784,17 +25692,17 @@ function useMeasuredHeight(ref, enabled) {
|
|
|
25784
25692
|
|
|
25785
25693
|
// src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
|
|
25786
25694
|
var import_react150 = require("react");
|
|
25787
|
-
var
|
|
25695
|
+
var import_jsx_runtime205 = require("react/jsx-runtime");
|
|
25788
25696
|
var NavbarLayoutHeightContext = (0, import_react150.createContext)(0);
|
|
25789
25697
|
function NavbarLayoutHeightProvider({ value, children }) {
|
|
25790
|
-
return /* @__PURE__ */ (0,
|
|
25698
|
+
return /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(NavbarLayoutHeightContext.Provider, { value, children });
|
|
25791
25699
|
}
|
|
25792
25700
|
function useNavbarLayoutHeight() {
|
|
25793
25701
|
return (0, import_react150.useContext)(NavbarLayoutHeightContext);
|
|
25794
25702
|
}
|
|
25795
25703
|
|
|
25796
25704
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
25797
|
-
var
|
|
25705
|
+
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
25798
25706
|
var __maybeInc23 = (inc) => {
|
|
25799
25707
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25800
25708
|
};
|
|
@@ -25823,10 +25731,10 @@ function NavbarLayout(props) {
|
|
|
25823
25731
|
position: "sticky",
|
|
25824
25732
|
left: "left0",
|
|
25825
25733
|
zIndex: ["z_var", {
|
|
25826
|
-
"--zIndex": (0,
|
|
25734
|
+
"--zIndex": (0, import_runtime120.maybeCssVar)(zIndices.navbar)
|
|
25827
25735
|
}],
|
|
25828
25736
|
width: ["w_var", {
|
|
25829
|
-
"--width": (0,
|
|
25737
|
+
"--width": (0, import_runtime120.maybeCssVar)(__maybeInc23(innerWidth))
|
|
25830
25738
|
}]
|
|
25831
25739
|
}
|
|
25832
25740
|
) : (
|
|
@@ -25835,10 +25743,10 @@ function NavbarLayout(props) {
|
|
|
25835
25743
|
position: "fixed",
|
|
25836
25744
|
left: "left0",
|
|
25837
25745
|
zIndex: ["z_var", {
|
|
25838
|
-
"--zIndex": (0,
|
|
25746
|
+
"--zIndex": (0, import_runtime120.maybeCssVar)(zIndices.navbar)
|
|
25839
25747
|
}],
|
|
25840
25748
|
width: ["w_var", {
|
|
25841
|
-
"--width": (0,
|
|
25749
|
+
"--width": (0, import_runtime120.maybeCssVar)(__maybeInc23(innerWidth))
|
|
25842
25750
|
}],
|
|
25843
25751
|
transition: "transitionTop"
|
|
25844
25752
|
}
|
|
@@ -25847,26 +25755,90 @@ function NavbarLayout(props) {
|
|
|
25847
25755
|
const innerStyle = autoHideState !== "static" ? {
|
|
25848
25756
|
top: autoHideState === "revealed" ? bannerTop : `calc(${bannerTop} - ${navHeight}px)`
|
|
25849
25757
|
} : void 0;
|
|
25850
|
-
const navbarEl = (0, import_react151.useMemo)(() => /* @__PURE__ */ (0,
|
|
25851
|
-
return /* @__PURE__ */ (0,
|
|
25758
|
+
const navbarEl = (0, import_react151.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(Navbar, { ...navbar }), [navbar]);
|
|
25759
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)("div", { ...(0, import_runtime120.mergeProps)(void 0, cssVars, {
|
|
25852
25760
|
display: "df",
|
|
25853
25761
|
flexDirection: "fdc",
|
|
25854
25762
|
width: "wfc",
|
|
25855
25763
|
minWidth: "mw100"
|
|
25856
25764
|
}), ...tid, children: [
|
|
25857
|
-
/* @__PURE__ */ (0,
|
|
25765
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ref: spacerRef, ...(0, import_runtime120.mergeProps)(void 0, {
|
|
25858
25766
|
height: navHeight
|
|
25859
25767
|
}, {
|
|
25860
25768
|
flexShrink: "fs0",
|
|
25861
25769
|
width: "w100"
|
|
25862
|
-
}), children: /* @__PURE__ */ (0,
|
|
25863
|
-
/* @__PURE__ */ (0,
|
|
25770
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ref: navMetricsRef, ...(0, import_runtime120.mergeProps)(void 0, innerStyle, innerCss), ...tid.navbar, children: navbarEl }) }),
|
|
25771
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { className: "df fdc mh0 mw100 w100", ...tid.body, children })
|
|
25864
25772
|
] }) }) });
|
|
25865
25773
|
}
|
|
25866
25774
|
|
|
25867
25775
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
25868
25776
|
var import_react152 = require("react");
|
|
25869
25777
|
|
|
25778
|
+
// src/components/Headers/BaseHeader.tsx
|
|
25779
|
+
var import_runtime121 = require("@homebound/truss/runtime");
|
|
25780
|
+
var import_jsx_runtime207 = require("react/jsx-runtime");
|
|
25781
|
+
function BaseHeader(props) {
|
|
25782
|
+
const {
|
|
25783
|
+
title,
|
|
25784
|
+
documentTitleSuffix,
|
|
25785
|
+
rightSlot,
|
|
25786
|
+
breadcrumbs,
|
|
25787
|
+
bottomSlot,
|
|
25788
|
+
...otherProps
|
|
25789
|
+
} = props;
|
|
25790
|
+
const tid = useTestIds(otherProps, "header");
|
|
25791
|
+
useDocumentTitle(title, documentTitleSuffix);
|
|
25792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)("header", { ...tid, ...(0, import_runtime121.trussProps)({
|
|
25793
|
+
display: "df",
|
|
25794
|
+
flexDirection: "fdc",
|
|
25795
|
+
paddingTop: "pt3",
|
|
25796
|
+
borderBottomStyle: "bbs_solid",
|
|
25797
|
+
borderBottomWidth: "bbw_1px",
|
|
25798
|
+
gap: "gap2",
|
|
25799
|
+
borderColor: ["bc_var", {
|
|
25800
|
+
"--borderColor": "var(--b-surface-separator)"
|
|
25801
|
+
}],
|
|
25802
|
+
backgroundColor: ["bgColor_var", {
|
|
25803
|
+
"--backgroundColor": "var(--b-surface)"
|
|
25804
|
+
}]
|
|
25805
|
+
}), children: [
|
|
25806
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsxs)("div", { ...(0, import_runtime121.trussProps)({
|
|
25807
|
+
...{
|
|
25808
|
+
display: "df",
|
|
25809
|
+
justifyContent: "jcsb",
|
|
25810
|
+
width: "w100",
|
|
25811
|
+
gap: "gap1",
|
|
25812
|
+
paddingLeft: "pl3",
|
|
25813
|
+
paddingRight: "pr3"
|
|
25814
|
+
},
|
|
25815
|
+
...{
|
|
25816
|
+
...!bottomSlot ? {
|
|
25817
|
+
marginBottom: "mb2"
|
|
25818
|
+
} : {}
|
|
25819
|
+
}
|
|
25820
|
+
}), children: [
|
|
25821
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsxs)("div", { className: "mw0", children: [
|
|
25822
|
+
breadcrumbs && /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(Breadcrumbs, { ...breadcrumbs }),
|
|
25823
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)("h1", { ...tid.title, className: "fw6 fz_20px lh_28px", children: title })
|
|
25824
|
+
] }),
|
|
25825
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)("div", { className: "fs0", children: rightSlot })
|
|
25826
|
+
] }),
|
|
25827
|
+
bottomSlot
|
|
25828
|
+
] });
|
|
25829
|
+
}
|
|
25830
|
+
|
|
25831
|
+
// src/components/Headers/PageHeader.tsx
|
|
25832
|
+
var import_jsx_runtime208 = require("react/jsx-runtime");
|
|
25833
|
+
function PageHeader2(props) {
|
|
25834
|
+
const {
|
|
25835
|
+
tabs,
|
|
25836
|
+
...otherProps
|
|
25837
|
+
} = props;
|
|
25838
|
+
const tid = useTestIds(otherProps, "header");
|
|
25839
|
+
return /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(BaseHeader, { ...otherProps, bottomSlot: tabs && /* @__PURE__ */ (0, import_jsx_runtime208.jsx)("div", { className: "pl3 pr3", children: /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(Tabs, { ...tabs, ...tid.tabs }) }) });
|
|
25840
|
+
}
|
|
25841
|
+
|
|
25870
25842
|
// src/layouts/useBannerAndNavbarHeight.ts
|
|
25871
25843
|
function useBannerAndNavbarHeight() {
|
|
25872
25844
|
return useEnvironmentBannerLayoutHeight() + useNavbarLayoutHeight();
|
|
@@ -25874,7 +25846,7 @@ function useBannerAndNavbarHeight() {
|
|
|
25874
25846
|
|
|
25875
25847
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
25876
25848
|
var import_runtime122 = require("@homebound/truss/runtime");
|
|
25877
|
-
var
|
|
25849
|
+
var import_jsx_runtime209 = require("react/jsx-runtime");
|
|
25878
25850
|
var __maybeInc24 = (inc) => {
|
|
25879
25851
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25880
25852
|
};
|
|
@@ -25929,19 +25901,19 @@ function PageHeaderLayout(props) {
|
|
|
25929
25901
|
const innerStyle = autoHideState !== "static" ? {
|
|
25930
25902
|
top: autoHideState === "revealed" ? outerTop : `calc(${outerTop} - ${headerHeight}px)`
|
|
25931
25903
|
} : void 0;
|
|
25932
|
-
const pageHeaderEl = (0, import_react152.useMemo)(() => /* @__PURE__ */ (0,
|
|
25933
|
-
return /* @__PURE__ */ (0,
|
|
25904
|
+
const pageHeaderEl = (0, import_react152.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(PageHeader2, { ...pageHeader }), [pageHeader]);
|
|
25905
|
+
return /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)("div", { ...(0, import_runtime122.mergeProps)(void 0, cssVars, {
|
|
25934
25906
|
display: "df",
|
|
25935
25907
|
flexDirection: "fdc",
|
|
25936
25908
|
width: "w100"
|
|
25937
25909
|
}), ...tid, children: [
|
|
25938
|
-
/* @__PURE__ */ (0,
|
|
25910
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { ref: spacerRef, ...(0, import_runtime122.mergeProps)(void 0, {
|
|
25939
25911
|
height: headerHeight
|
|
25940
25912
|
}, {
|
|
25941
25913
|
flexShrink: "fs0",
|
|
25942
25914
|
width: "w100"
|
|
25943
|
-
}), children: /* @__PURE__ */ (0,
|
|
25944
|
-
/* @__PURE__ */ (0,
|
|
25915
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { ref: headerMetricsRef, ...(0, import_runtime122.mergeProps)(void 0, innerStyle, innerCss), ...tid.pageHeader, children: pageHeaderEl }) }),
|
|
25916
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { className: "df fdc fg1 mh0 w100", ...tid.body, children })
|
|
25945
25917
|
] }) });
|
|
25946
25918
|
}
|
|
25947
25919
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -26052,7 +26024,6 @@ function PageHeaderLayout(props) {
|
|
|
26052
26024
|
NavbarLayout,
|
|
26053
26025
|
NumberField,
|
|
26054
26026
|
OpenModal,
|
|
26055
|
-
PageHeader,
|
|
26056
26027
|
PageHeaderLayout,
|
|
26057
26028
|
Pagination,
|
|
26058
26029
|
Palette,
|