@homebound/beam 4.51.0 → 4.53.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.js CHANGED
@@ -16724,7 +16724,8 @@ function ButtonGroup(props) {
16724
16724
  const {
16725
16725
  buttons,
16726
16726
  disabled = false,
16727
- size = "sm"
16727
+ size = "sm",
16728
+ fullWidth = false
16728
16729
  } = props;
16729
16730
  const tid = useTestIds(props, "buttonGroup");
16730
16731
  return (
@@ -16732,7 +16733,10 @@ function ButtonGroup(props) {
16732
16733
  /* @__PURE__ */ jsx86("div", { ...tid, ...trussProps56({
16733
16734
  ...{
16734
16735
  display: "df",
16735
- lineHeight: "lh_0"
16736
+ lineHeight: "lh_0",
16737
+ ...fullWidth ? {
16738
+ width: "w100"
16739
+ } : {}
16736
16740
  },
16737
16741
  ...sizeStyles2[size]
16738
16742
  }), children: buttons.map(({
@@ -16740,7 +16744,7 @@ function ButtonGroup(props) {
16740
16744
  ...buttonProps
16741
16745
  }, i) => (
16742
16746
  // Disable the button if the ButtonGroup is disabled or if the current button is disabled.
16743
- /* @__PURE__ */ jsx86(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, isFirst: i === 0, isLast: i === buttons.length - 1, ...tid }, i)
16747
+ /* @__PURE__ */ jsx86(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, isFirst: i === 0, isLast: i === buttons.length - 1, fullWidth, ...tid }, i)
16744
16748
  )) })
16745
16749
  );
16746
16750
  }
@@ -16757,6 +16761,7 @@ function GroupButton(props) {
16757
16761
  tooltip,
16758
16762
  isFirst,
16759
16763
  isLast,
16764
+ fullWidth,
16760
16765
  ...otherProps
16761
16766
  } = props;
16762
16767
  const ariaProps = {
@@ -16778,7 +16783,15 @@ function GroupButton(props) {
16778
16783
  isHovered
16779
16784
  } = useHover9(ariaProps);
16780
16785
  const tid = useTestIds(props);
16781
- return /* @__PURE__ */ jsx86("span", { ...trussProps56(getButtonStyles2(isFirst, isLast)), children: maybeTooltip({
16786
+ return /* @__PURE__ */ jsx86("span", { ...trussProps56({
16787
+ ...getButtonStyles2(isFirst, isLast),
16788
+ ...{
16789
+ ...fullWidth ? {
16790
+ flexGrow: "fg1",
16791
+ flexBasis: "fb0"
16792
+ } : {}
16793
+ }
16794
+ }), children: maybeTooltip({
16782
16795
  title: resolveTooltip(disabled, tooltip),
16783
16796
  placement: "top",
16784
16797
  children: /* @__PURE__ */ jsxs54("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps56({
@@ -16795,6 +16808,10 @@ function GroupButton(props) {
16795
16808
  paddingLeft: "pl2",
16796
16809
  paddingRight: "pr2",
16797
16810
  height: "h100",
16811
+ ...fullWidth ? {
16812
+ width: "w100",
16813
+ justifyContent: "jcc"
16814
+ } : {},
16798
16815
  color: ["d_color_var", {
16799
16816
  "--d_color": "var(--b-text-disabled)"
16800
16817
  }],
@@ -27145,10 +27162,10 @@ function invertSpacing(value) {
27145
27162
  }
27146
27163
 
27147
27164
  // src/components/Layout/GridTableLayout/GridTableLayout.tsx
27148
- import React17, { useCallback as useCallback36, useEffect as useEffect29, useMemo as useMemo50, useRef as useRef65, useState as useState54 } from "react";
27165
+ import React17, { useCallback as useCallback37, useEffect as useEffect29, useMemo as useMemo50, useRef as useRef66, useState as useState55 } from "react";
27149
27166
 
27150
27167
  // src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
27151
- import { memo as memo2, useMemo as useMemo46, useState as useState47 } from "react";
27168
+ import { memo as memo2, useMemo as useMemo46, useState as useState48 } from "react";
27152
27169
 
27153
27170
  // src/components/Pills/SelectionSummaryPill/SelectionSummaryPill.tsx
27154
27171
  import { useHover as useHover21 } from "react-aria";
@@ -27232,7 +27249,14 @@ function EditColumnsButton(props) {
27232
27249
  disabled,
27233
27250
  columns,
27234
27251
  api,
27235
- shareColumnVisibility = false
27252
+ shareColumnVisibility = false,
27253
+ viewToggle
27254
+ } = props;
27255
+ const {
27256
+ sm
27257
+ } = useBreakpoint();
27258
+ const {
27259
+ compact = sm
27236
27260
  } = props;
27237
27261
  const state = useMenuTriggerState4({
27238
27262
  defaultOpen
@@ -27244,9 +27268,6 @@ function EditColumnsButton(props) {
27244
27268
  isDisabled: !!disabled
27245
27269
  }, state, buttonRef);
27246
27270
  const tid = useTestIds(props, "columns");
27247
- const {
27248
- sm
27249
- } = useBreakpoint();
27250
27271
  const options = useMemo45(() => buildColumnOptions(columns, shareColumnVisibility), [columns, shareColumnVisibility]);
27251
27272
  const selectedValues = useComputed(() => api.getVisibleColumnIds(), [api]);
27252
27273
  const setSelectedValues = useCallback28((ids) => {
@@ -27254,7 +27275,7 @@ function EditColumnsButton(props) {
27254
27275
  api.setVisibleColumns(columns.filter((column2) => column2.canHide ? ids.includes(column2.id) : true).map((c) => c.id));
27255
27276
  }, [columns, api]);
27256
27277
  const hasHiddenColumn = useMemo45(() => options.some((option) => option.ids.some((id) => !selectedValues.includes(id))), [options, selectedValues]);
27257
- return /* @__PURE__ */ jsx196(OverlayTrigger, { ...props, trigger: sm ? {
27278
+ return /* @__PURE__ */ jsx196(OverlayTrigger, { ...props, trigger: compact ? {
27258
27279
  icon: hasHiddenColumn ? "columnsBadged" : "columns",
27259
27280
  variant: "outline"
27260
27281
  } : {
@@ -27276,6 +27297,7 @@ function EditColumnsButton(props) {
27276
27297
  maxHeight: "maxh_512px",
27277
27298
  boxShadow: "bshBasic h_bshHover"
27278
27299
  }), children: [
27300
+ viewToggle && /* @__PURE__ */ jsx196("div", { className: "pt2 pb0 pr2 pl2", children: /* @__PURE__ */ jsx196(ButtonGroup, { ...viewToggle, size: "md", fullWidth: true, ...tid.header }) }),
27279
27301
  /* @__PURE__ */ jsx196("div", { className: "dg gtc_1fr_auto g_2 pt2 pb2 pr2 pl2 fg1 mh0 oya", children: options.map((option) => /* @__PURE__ */ jsxs103(Fragment41, { children: [
27280
27302
  /* @__PURE__ */ jsxs103("div", { className: "df aic g_4px mw0 pr1", children: [
27281
27303
  /* @__PURE__ */ jsx196("span", { className: "fw4 fz_14px lh_20px mw0", children: option.label }),
@@ -27356,8 +27378,9 @@ function closeMenuOnClickTooltip(tooltip, closeMenu) {
27356
27378
 
27357
27379
  // src/components/Table/components/ViewToggleButton.tsx
27358
27380
  import { jsx as jsx197 } from "react/jsx-runtime";
27359
- function ViewToggleButton({ view, onChange, defaultOpen }) {
27381
+ function ViewToggleButton({ view, onChange, defaultOpen, ...props }) {
27360
27382
  const { sm } = useBreakpoint();
27383
+ const { compact = sm } = props;
27361
27384
  const tid = useTestIds({}, "viewToggleButton");
27362
27385
  const menuItems = [
27363
27386
  { label: "List", icon: "projects", onClick: () => onChange("list") },
@@ -27367,7 +27390,7 @@ function ViewToggleButton({ view, onChange, defaultOpen }) {
27367
27390
  return /* @__PURE__ */ jsx197(
27368
27391
  ButtonMenu,
27369
27392
  {
27370
- trigger: sm ? { icon, variant: "outline" } : { icon, label: "", size: "md", variant: "secondaryBlack" },
27393
+ trigger: compact ? { icon, variant: "outline" } : { icon, label: "", size: "md", variant: "secondaryBlack" },
27371
27394
  items: menuItems,
27372
27395
  defaultOpen,
27373
27396
  ...tid
@@ -27502,6 +27525,37 @@ function filterPillsForKey(key, f, filter) {
27502
27525
  }];
27503
27526
  }
27504
27527
 
27528
+ // src/components/Layout/GridTableLayout/useToolbarCompact.ts
27529
+ import { useResizeObserver as useResizeObserver9 } from "@react-aria/utils";
27530
+ import { useCallback as useCallback29, useLayoutEffect as useLayoutEffect10, useRef as useRef59, useState as useState47 } from "react";
27531
+ function useToolbarCompact(enabled) {
27532
+ const rowRef = useRef59(null);
27533
+ const leftRef = useRef59(null);
27534
+ const rightRef = useRef59(null);
27535
+ const [compact, setCompact] = useState47(false);
27536
+ const fullSlotsWidth = useRef59(0);
27537
+ const measure = useCallback29(() => {
27538
+ const row = rowRef.current;
27539
+ const left = leftRef.current;
27540
+ const right = rightRef.current;
27541
+ if (!enabled || !row || !left || !right || row.clientWidth === 0) {
27542
+ setCompact(false);
27543
+ return;
27544
+ }
27545
+ if (!compact) {
27546
+ const gap = right.getBoundingClientRect().left - left.getBoundingClientRect().right;
27547
+ fullSlotsWidth.current = row.clientWidth - gap;
27548
+ }
27549
+ setCompact(row.clientWidth - fullSlotsWidth.current < toolbarMinSlotGapPx);
27550
+ }, [enabled, compact]);
27551
+ useLayoutEffect10(measure, [measure]);
27552
+ useResizeObserver9({ ref: rowRef, onResize: measure });
27553
+ useResizeObserver9({ ref: leftRef, onResize: measure });
27554
+ useResizeObserver9({ ref: rightRef, onResize: measure });
27555
+ return { rowRef, leftRef, rightRef, compact };
27556
+ }
27557
+ var toolbarMinSlotGapPx = 40;
27558
+
27505
27559
  // src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
27506
27560
  import { trussProps as trussProps116 } from "@homebound/truss/runtime";
27507
27561
  import { jsx as jsx200, jsxs as jsxs105 } from "react/jsx-runtime";
@@ -27522,27 +27576,37 @@ function GridTableLayoutActionsComponent(props) {
27522
27576
  clearFilters,
27523
27577
  searchApi,
27524
27578
  actions,
27579
+ viewModeToggle,
27525
27580
  selectionSummary = false
27526
27581
  } = props;
27527
27582
  const testId = useTestIds(props, "gridTableLayoutActions");
27528
27583
  const filterTid = useTestIds({}, filterTestIdPrefix);
27584
+ const showEditColumns = !!(hasHideableColumns && view === "list" && columns && api);
27585
+ const hasRightItems = selectionSummary && !!api || !!viewModeToggle?.length || showEditColumns || !!withCardView && view !== void 0 && !!setView || !!actions?.length;
27529
27586
  const {
27530
- sm
27587
+ sm: smBreakpoint
27531
27588
  } = useBreakpoint();
27589
+ const {
27590
+ rowRef,
27591
+ leftRef,
27592
+ rightRef,
27593
+ compact
27594
+ } = useToolbarCompact(!smBreakpoint && hasRightItems);
27595
+ const sm = smBreakpoint || compact;
27532
27596
  const {
27533
27597
  inModal
27534
27598
  } = useModalContext();
27535
27599
  const inDocumentScrollLayout = useDocumentScrollLayout();
27536
27600
  const insetHandled = useContentInsetHandled();
27537
27601
  const withPagePadding = inDocumentScrollLayout && !insetHandled;
27538
- const [showSearch, setShowSearch] = useState47(false);
27539
- const [showFilters, setShowFilters] = useState47(false);
27602
+ const [showSearch, setShowSearch] = useState48(false);
27603
+ const [showFilters, setShowFilters] = useState48(false);
27540
27604
  const [{
27541
27605
  search: initialValue
27542
27606
  }, setQueryParams] = useQueryParams({
27543
27607
  search: StringParam
27544
27608
  });
27545
- const [searchValue, setSearchValue] = useState47(inModal ? "" : initialValue || "");
27609
+ const [searchValue, setSearchValue] = useState48(inModal ? "" : initialValue || "");
27546
27610
  const handleSearchDebounced = useDebouncedCallback6((value) => {
27547
27611
  if (searchProps) {
27548
27612
  searchProps.onSearch(value);
@@ -27556,9 +27620,13 @@ function GridTableLayoutActionsComponent(props) {
27556
27620
  const hasGroupBy = !!groupBy;
27557
27621
  const controlCount = filterCount + (hasGroupBy ? 1 : 0);
27558
27622
  const hasFilterControls = controlCount > 0;
27559
- const showInlineControl = !inModal && !sm && controlCount === 1 && (hasGroupBy || !!(filter && setFilter));
27623
+ const canInline = !inModal && !sm;
27624
+ const groupByInline = canInline && hasGroupBy;
27625
+ const filtersInline = canInline && filterCount > 0 && controlCount <= 2 && !!(filter && setFilter);
27626
+ const showFilterPanel = filterCount > 0 && !filtersInline || hasGroupBy && !groupByInline;
27560
27627
  const filterImpls = useMemo46(() => filterDefs ? buildFilterImpls(filterDefs) : {}, [filterDefs]);
27561
27628
  const activeFilterCount = useMemo46(() => filter ? getFilterPills(filterImpls, filter).length : 0, [filter, filterImpls]);
27629
+ const viewModeToggleInColumnsMenu = !!viewModeToggle?.length && sm && showEditColumns;
27562
27630
  const searchTextField = /* @__PURE__ */ jsx200(TextField, { label: "Search", labelStyle: "hidden", value: searchValue, onChange: (v) => {
27563
27631
  setSearchValue(v ?? "");
27564
27632
  handleSearchDebounced(v ?? "");
@@ -27584,7 +27652,7 @@ function GridTableLayoutActionsComponent(props) {
27584
27652
  paddingBottom: "pb3"
27585
27653
  } : {}
27586
27654
  }), children: [
27587
- /* @__PURE__ */ jsxs105("div", { ...trussProps116({
27655
+ /* @__PURE__ */ jsxs105("div", { ref: rowRef, ...trussProps116({
27588
27656
  // Holds the row at the 40px button height, so a pill alone in it doesn't shift the table when it appears
27589
27657
  ...{
27590
27658
  display: "df",
@@ -27596,25 +27664,30 @@ function GridTableLayoutActionsComponent(props) {
27596
27664
  },
27597
27665
  ...withPagePadding ? pageContentPaddingX : void 0
27598
27666
  }), ...testId.toolbar, children: [
27599
- /* @__PURE__ */ jsxs105("div", { className: "df g_12px aic", children: [
27667
+ /* @__PURE__ */ jsxs105("div", { ref: leftRef, className: "df fs0 g_12px aic", children: [
27600
27668
  !sm && hasSearch && /* @__PURE__ */ jsx200("div", { className: "w_244px", children: searchTextField }),
27601
27669
  sm && hasSearch && /* @__PURE__ */ jsx200(IconButton, { variant: "outline", icon: searchValue ? "searchBadged" : "search", label: "Search", onClick: () => setShowSearch(!showSearch), active: showSearch, ...testId.searchButton }),
27602
27670
  sm && hasFilterControls && /* @__PURE__ */ jsx200(IconButton, { variant: "outline", icon: activeFilterCount > 0 ? "filterBadged" : "filter", label: "Filter", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterSmallButton }),
27603
- showInlineControl && (groupBy ? /* @__PURE__ */ jsx200(GroupByField, { ...groupBy }) : filter && setFilter && buildFilterControls(filterImpls, filter, setFilter, filterTid)),
27604
- !sm && hasFilterControls && !showInlineControl && /* @__PURE__ */ jsx200(Button, { label: "Filter", icon: "filter", size: "md", endAdornment: /* @__PURE__ */ jsxs105("div", { className: "df aic g_1", children: [
27671
+ filtersInline && filter && setFilter && buildFilterControls(filterImpls, filter, setFilter, filterTid),
27672
+ !sm && showFilterPanel && /* @__PURE__ */ jsx200(Button, { label: "Filter", icon: "filter", size: "md", endAdornment: /* @__PURE__ */ jsxs105("div", { className: "df aic g_1", children: [
27605
27673
  activeFilterCount > 0 && /* @__PURE__ */ jsx200(CountBadge, { count: activeFilterCount }),
27606
27674
  /* @__PURE__ */ jsx200(Icon, { icon: showFilters ? "chevronUp" : "chevronDown" })
27607
- ] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton })
27675
+ ] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton }),
27676
+ groupByInline && groupBy && /* @__PURE__ */ jsx200(GroupByField, { ...groupBy }),
27677
+ filtersInline && activeFilterCount > 0 && /* @__PURE__ */ jsx200(Button, { label: "Clear", variant: "tertiary", onClick: () => maybeCall(clearFilters), ...filterTid.clearBtn })
27608
27678
  ] }),
27609
- (hasHideableColumns || withCardView || !!actions?.length || selectionSummary) && /* @__PURE__ */ jsxs105("div", { className: "df aic g_12px", children: [
27679
+ hasRightItems && /* @__PURE__ */ jsxs105("div", { ref: rightRef, className: "df fs0 aic g_12px", children: [
27610
27680
  selectionSummary && api && /* @__PURE__ */ jsx200(SelectionSummaryAction, { api, numberOnly: sm }),
27611
- hasHideableColumns && view === "list" && columns && api && /* @__PURE__ */ jsx200(EditColumnsButton, { columns, api, shareColumnVisibility, tooltip: "Display columns" }),
27612
- withCardView && view !== void 0 && setView && /* @__PURE__ */ jsx200(ViewToggleButton, { view, onChange: setView }),
27681
+ !!viewModeToggle?.length && !viewModeToggleInColumnsMenu && /* @__PURE__ */ jsx200(ButtonGroup, { size: "md", buttons: viewModeToggle, ...testId.viewModeToggle }),
27682
+ showEditColumns && columns && api && /* @__PURE__ */ jsx200(EditColumnsButton, { columns, api, shareColumnVisibility, tooltip: "Display columns", compact: sm, viewToggle: viewModeToggleInColumnsMenu ? {
27683
+ buttons: viewModeToggle
27684
+ } : void 0 }),
27685
+ withCardView && view !== void 0 && setView && /* @__PURE__ */ jsx200(ViewToggleButton, { view, onChange: setView, compact: sm }),
27613
27686
  !!actions?.length && /* @__PURE__ */ jsx200(HeaderActions, { actions, ...testId.actions })
27614
27687
  ] })
27615
27688
  ] }),
27616
27689
  sm && showSearch && /* @__PURE__ */ jsx200("div", { ...trussProps116(withPagePadding ? pageContentPaddingX : void 0), children: searchTextField }),
27617
- hasFilterControls && !showInlineControl && /* @__PURE__ */ jsx200(FilterPanel, { isOpen: showFilters, groupBy, filterImpls, filter, setFilter, onClear: clearFilters })
27690
+ showFilterPanel && /* @__PURE__ */ jsx200(FilterPanel, { isOpen: showFilters, groupBy: groupByInline ? void 0 : groupBy, filterImpls, filter, setFilter, onClear: clearFilters })
27618
27691
  ] });
27619
27692
  }
27620
27693
  var _GridTableLayoutActions = memo2(GridTableLayoutActionsComponent);
@@ -27629,16 +27702,16 @@ function SelectionSummaryAction(props) {
27629
27702
  }
27630
27703
 
27631
27704
  // src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
27632
- import { useResizeObserver as useResizeObserver9 } from "@react-aria/utils";
27633
- import { useCallback as useCallback32, useLayoutEffect as useLayoutEffect13, useRef as useRef63 } from "react";
27705
+ import { useResizeObserver as useResizeObserver10 } from "@react-aria/utils";
27706
+ import { useCallback as useCallback33, useLayoutEffect as useLayoutEffect14, useRef as useRef64 } from "react";
27634
27707
 
27635
27708
  // src/components/Layout/RightPaneLayout/DocumentScrollOverlayRightPaneLayout.tsx
27636
- import { useContext as useContext23, useEffect as useEffect27, useLayoutEffect as useLayoutEffect12, useRef as useRef62, useState as useState50 } from "react";
27709
+ import { useContext as useContext23, useEffect as useEffect27, useLayoutEffect as useLayoutEffect13, useRef as useRef63, useState as useState51 } from "react";
27637
27710
  import { mergeProps as mergeProps33 } from "@homebound/truss/runtime";
27638
27711
 
27639
27712
  // src/components/Layout/RightPaneLayout/DocumentScrollRightPane.tsx
27640
27713
  import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
27641
- import { useCallback as useCallback30, useLayoutEffect as useLayoutEffect11, useRef as useRef60, useState as useState49 } from "react";
27714
+ import { useCallback as useCallback31, useLayoutEffect as useLayoutEffect12, useRef as useRef61, useState as useState50 } from "react";
27642
27715
  import { usePreventScroll as usePreventScroll3 } from "react-aria";
27643
27716
  import { createPortal as createPortal7 } from "react-dom";
27644
27717
 
@@ -27654,11 +27727,11 @@ function useEnvironmentBannerLayoutHeight() {
27654
27727
  }
27655
27728
 
27656
27729
  // src/layouts/useScrollPinnedViewportBounds.ts
27657
- import { useCallback as useCallback29, useLayoutEffect as useLayoutEffect10, useRef as useRef59, useState as useState48 } from "react";
27730
+ import { useCallback as useCallback30, useLayoutEffect as useLayoutEffect11, useRef as useRef60, useState as useState49 } from "react";
27658
27731
  function useScrollPinnedViewportBounds(anchorRef, enabled, getPinTopPx) {
27659
- const [bounds, setBounds] = useState48();
27660
- const getPinTopPxRef = useRef59(getPinTopPx);
27661
- const syncBounds = useCallback29(() => {
27732
+ const [bounds, setBounds] = useState49();
27733
+ const getPinTopPxRef = useRef60(getPinTopPx);
27734
+ const syncBounds = useCallback30(() => {
27662
27735
  const el = anchorRef.current;
27663
27736
  if (!el) return;
27664
27737
  const rect = el.getBoundingClientRect();
@@ -27667,10 +27740,10 @@ function useScrollPinnedViewportBounds(anchorRef, enabled, getPinTopPx) {
27667
27740
  const topPx = isPinned ? pinTopPx : Math.round(rect.top);
27668
27741
  setBounds((prev) => prev?.topPx === topPx && prev?.isPinned === isPinned ? prev : { topPx, isPinned });
27669
27742
  }, [anchorRef]);
27670
- useLayoutEffect10(() => {
27743
+ useLayoutEffect11(() => {
27671
27744
  getPinTopPxRef.current = getPinTopPx;
27672
27745
  }, [getPinTopPx]);
27673
- useLayoutEffect10(() => {
27746
+ useLayoutEffect11(() => {
27674
27747
  if (!enabled) {
27675
27748
  setBounds(void 0);
27676
27749
  return;
@@ -27851,25 +27924,25 @@ function DocumentScrollRightPane({
27851
27924
  } = useRightPaneOpenState();
27852
27925
  const rightPaneContent = useRightPaneContent();
27853
27926
  const tid = useTestIds({}, "rightPaneContent");
27854
- const paneRef = useRef60(null);
27855
- const [keepPaneLayout, setKeepPaneLayout] = useState49(false);
27856
- const exitReleasedRef = useRef60(false);
27927
+ const paneRef = useRef61(null);
27928
+ const [keepPaneLayout, setKeepPaneLayout] = useState50(false);
27929
+ const exitReleasedRef = useRef61(false);
27857
27930
  const bannerHeightPx = useEnvironmentBannerLayoutHeight();
27858
27931
  const isFixedOverlay = !mobile;
27859
- useLayoutEffect11(() => {
27932
+ useLayoutEffect12(() => {
27860
27933
  if (isRightPaneOpen) {
27861
27934
  setKeepPaneLayout(true);
27862
27935
  exitReleasedRef.current = false;
27863
27936
  }
27864
27937
  }, [isRightPaneOpen]);
27865
27938
  const paneLayoutActive = isRightPaneOpen || keepPaneLayout;
27866
- const releaseAfterExit = useCallback30(() => {
27939
+ const releaseAfterExit = useCallback31(() => {
27867
27940
  if (exitReleasedRef.current) return;
27868
27941
  exitReleasedRef.current = true;
27869
27942
  clearPane2();
27870
27943
  setKeepPaneLayout(false);
27871
27944
  }, [clearPane2]);
27872
- useLayoutEffect11(() => {
27945
+ useLayoutEffect12(() => {
27873
27946
  if (isRightPaneOpen || !keepPaneLayout) return;
27874
27947
  return waitForRightPaneExit(releaseAfterExit);
27875
27948
  }, [isRightPaneOpen, keepPaneLayout, releaseAfterExit]);
@@ -27987,10 +28060,10 @@ function DocumentScrollRightPaneLayoutRoot(props) {
27987
28060
  }
27988
28061
 
27989
28062
  // src/components/Layout/RightPaneLayout/useDocumentScrollRightPaneAnchorRef.ts
27990
- import { useCallback as useCallback31, useRef as useRef61 } from "react";
28063
+ import { useCallback as useCallback32, useRef as useRef62 } from "react";
27991
28064
  function useDocumentScrollRightPaneAnchorRef() {
27992
- const ref = useRef61(null);
27993
- const setRef = useCallback31((node) => {
28065
+ const ref = useRef62(null);
28066
+ const setRef = useCallback32((node) => {
27994
28067
  if (!node && ref.current) {
27995
28068
  hideRightPane();
27996
28069
  }
@@ -28025,7 +28098,7 @@ function DocumentScrollOverlayRightPaneLayout({
28025
28098
  } = useBreakpoint();
28026
28099
  const tid = useTestIds({}, "documentScrollRightPaneLayout");
28027
28100
  const anchorRef = useDocumentScrollRightPaneAnchorRef();
28028
- const spacerRef = useRef62(null);
28101
+ const spacerRef = useRef63(null);
28029
28102
  useEffect27(() => {
28030
28103
  if (nestedInLayout && process.env.NODE_ENV !== "production") {
28031
28104
  console.warn("DocumentScrollOverlayRightPaneLayout is nested inside another document-scroll right-pane layout. Use a single layout (compose at the body; do not set withRightPane on both a parent and a nested layout).");
@@ -28060,20 +28133,20 @@ function DocumentScrollOverlayRightPaneHost(props) {
28060
28133
  isRightPaneOpen
28061
28134
  } = useRightPaneOpenState();
28062
28135
  const paneWidthCss = documentScrollRightPaneWidthCss(paneWidth);
28063
- const [keepOverlayChrome, setKeepOverlayChrome] = useState50(isRightPaneOpen);
28064
- useLayoutEffect12(() => {
28136
+ const [keepOverlayChrome, setKeepOverlayChrome] = useState51(isRightPaneOpen);
28137
+ useLayoutEffect13(() => {
28065
28138
  if (isRightPaneOpen) {
28066
28139
  setKeepOverlayChrome(true);
28067
28140
  return;
28068
28141
  }
28069
28142
  return waitForRightPaneExit(() => setKeepOverlayChrome(false));
28070
28143
  }, [isRightPaneOpen]);
28071
- useLayoutEffect12(() => {
28144
+ useLayoutEffect13(() => {
28072
28145
  const spacer = spacerRef.current;
28073
28146
  if (!spacer) return;
28074
28147
  spacer.style.width = isRightPaneOpen ? paneWidthCss : "0px";
28075
28148
  }, [isRightPaneOpen, paneWidthCss, spacerRef]);
28076
- useLayoutEffect12(() => {
28149
+ useLayoutEffect13(() => {
28077
28150
  const layoutRoot = anchorRef.current;
28078
28151
  if (!layoutRoot) return;
28079
28152
  const openPaneWidth = keepOverlayChrome ? paneWidthCss : "0px";
@@ -28129,8 +28202,8 @@ function GridTableLayoutHost(props) {
28129
28202
  testIds,
28130
28203
  children
28131
28204
  } = props;
28132
- const tableWrapperRef = useRef63(null);
28133
- const tableActionsRef = useRef63(null);
28205
+ const tableWrapperRef = useRef64(null);
28206
+ const tableActionsRef = useRef64(null);
28134
28207
  const hasActions = actions !== void 0;
28135
28208
  useSetTableActionsHeight(tableWrapperRef, tableActionsRef, host.kind !== "scrollable-parent" && hasActions);
28136
28209
  const shared = {
@@ -28233,7 +28306,7 @@ function ActionsBar({
28233
28306
  return /* @__PURE__ */ jsx205("div", { ref: actionsRef, ...trussProps117(xss), ...testIds.stickyContent, children });
28234
28307
  }
28235
28308
  function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
28236
- const syncHeightVar = useCallback32(() => {
28309
+ const syncHeightVar = useCallback33(() => {
28237
28310
  const tableWrapper = tableWrapperRef.current;
28238
28311
  if (!tableWrapper) return;
28239
28312
  if (!enabled) {
@@ -28247,11 +28320,11 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
28247
28320
  tableWrapper.style.removeProperty(beamTableActionsHeightVar);
28248
28321
  }
28249
28322
  }, [enabled, tableActionsRef, tableWrapperRef]);
28250
- useResizeObserver9({
28323
+ useResizeObserver10({
28251
28324
  ref: tableActionsRef,
28252
28325
  onResize: enabled ? syncHeightVar : noop
28253
28326
  });
28254
- useLayoutEffect13(() => {
28327
+ useLayoutEffect14(() => {
28255
28328
  syncHeightVar();
28256
28329
  const tableWrapper = tableWrapperRef.current;
28257
28330
  return () => {
@@ -28297,10 +28370,10 @@ function useGridTableLayoutHost() {
28297
28370
  }
28298
28371
 
28299
28372
  // src/components/Layout/GridTableLayout/usePersistedTableView.ts
28300
- import { useCallback as useCallback33, useState as useState51 } from "react";
28373
+ import { useCallback as useCallback34, useState as useState52 } from "react";
28301
28374
  function usePersistedTableView(defaultView, persist) {
28302
28375
  const storageKey = persist ? getGridTableViewStorageKey(window.location.pathname) : void 0;
28303
- const [view, setView] = useState51(() => {
28376
+ const [view, setView] = useState52(() => {
28304
28377
  if (!storageKey) return defaultView;
28305
28378
  try {
28306
28379
  return parseStoredTableView(localStorage.getItem(storageKey)) ?? defaultView;
@@ -28308,7 +28381,7 @@ function usePersistedTableView(defaultView, persist) {
28308
28381
  return defaultView;
28309
28382
  }
28310
28383
  });
28311
- const setViewAndPersist = useCallback33(
28384
+ const setViewAndPersist = useCallback34(
28312
28385
  (next) => {
28313
28386
  setView(next);
28314
28387
  if (storageKey) {
@@ -28335,15 +28408,15 @@ function isGridTableProps(props) {
28335
28408
  }
28336
28409
 
28337
28410
  // src/hooks/useGroupBy.ts
28338
- import { useMemo as useMemo48, useState as useState52 } from "react";
28411
+ import { useMemo as useMemo48, useState as useState53 } from "react";
28339
28412
 
28340
28413
  // src/hooks/useQueryState.ts
28341
- import { useCallback as useCallback34 } from "react";
28414
+ import { useCallback as useCallback35 } from "react";
28342
28415
  import { StringParam as StringParam2, useQueryParams as useQueryParams2 } from "use-query-params";
28343
28416
  function useQueryState(name, initialValue) {
28344
28417
  const [params, setParams] = useQueryParams2({ [name]: StringParam2 });
28345
28418
  const value = params[name] || initialValue;
28346
- const setValue = useCallback34((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
28419
+ const setValue = useCallback35((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
28347
28420
  return [value, setValue];
28348
28421
  }
28349
28422
 
@@ -28356,7 +28429,7 @@ function useGroupBy(opts) {
28356
28429
  []
28357
28430
  );
28358
28431
  const [queryValue, setQueryValue] = useQueryState("groupBy", options[0].id);
28359
- const [localValue, setLocalValue] = useState52(options[0].id);
28432
+ const [localValue, setLocalValue] = useState53(options[0].id);
28360
28433
  return {
28361
28434
  value: inModal ? localValue : queryValue,
28362
28435
  setValue: inModal ? setLocalValue : setQueryValue,
@@ -28365,17 +28438,17 @@ function useGroupBy(opts) {
28365
28438
  }
28366
28439
 
28367
28440
  // src/hooks/usePersistedFilter.ts
28368
- import { useEffect as useEffect28, useMemo as useMemo49, useRef as useRef64 } from "react";
28441
+ import { useEffect as useEffect28, useMemo as useMemo49, useRef as useRef65 } from "react";
28369
28442
 
28370
28443
  // src/hooks/useSessionStorage.ts
28371
- import { useCallback as useCallback35, useState as useState53 } from "react";
28444
+ import { useCallback as useCallback36, useState as useState54 } from "react";
28372
28445
  function useSessionStorage(key, defaultValue) {
28373
28446
  let hasSessionStorage = false;
28374
28447
  try {
28375
28448
  hasSessionStorage = !!window.sessionStorage;
28376
28449
  } catch (e) {
28377
28450
  }
28378
- const [state, setState] = useState53(() => {
28451
+ const [state, setState] = useState54(() => {
28379
28452
  if (!hasSessionStorage) {
28380
28453
  return defaultValue;
28381
28454
  }
@@ -28386,7 +28459,7 @@ function useSessionStorage(key, defaultValue) {
28386
28459
  sessionStorage.setItem(key, JSON.stringify(defaultValue));
28387
28460
  return defaultValue;
28388
28461
  });
28389
- const setAndSave = useCallback35(
28462
+ const setAndSave = useCallback36(
28390
28463
  (value) => {
28391
28464
  if (hasSessionStorage && value) {
28392
28465
  sessionStorage.setItem(key, JSON.stringify(value));
@@ -28502,8 +28575,8 @@ function parseSerializedValue(value) {
28502
28575
  return value === void 0 ? void 0 : JSON.parse(value);
28503
28576
  }
28504
28577
  function useStableValue(value) {
28505
- const stableValue = useRef64(value);
28506
- const stableKey = useRef64(JSON.stringify(value));
28578
+ const stableValue = useRef65(value);
28579
+ const stableKey = useRef65(JSON.stringify(value));
28507
28580
  const nextKey = JSON.stringify(value);
28508
28581
  if (stableKey.current !== nextKey) {
28509
28582
  stableValue.current = value;
@@ -28519,6 +28592,7 @@ function GridTableLayoutComponent(props) {
28519
28592
  tableProps,
28520
28593
  layoutState,
28521
28594
  actions,
28595
+ viewModeToggle,
28522
28596
  selectionSummary = false,
28523
28597
  hideEditColumns = false,
28524
28598
  shareColumnVisibility = false,
@@ -28544,7 +28618,7 @@ function GridTableLayoutComponent(props) {
28544
28618
  );
28545
28619
  const [view, setView] = usePersistedTableView(defaultView, !!withCardView);
28546
28620
  const clientSearch = layoutState?.search === "client" ? layoutState.searchString : void 0;
28547
- const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length || // Rendered before anything's selected, so the pill doesn't shift the table
28621
+ const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length || viewModeToggle?.length || // Rendered before anything's selected, so the pill doesn't shift the table
28548
28622
  selectionSummary);
28549
28623
  const isVirtualized = tableProps.as === "virtual" || view === "card";
28550
28624
  const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
@@ -28558,8 +28632,8 @@ function GridTableLayoutComponent(props) {
28558
28632
  () => layoutState?.search ? { onSearch: layoutState.setSearchString } : void 0,
28559
28633
  [layoutState?.search, layoutState?.setSearchString]
28560
28634
  );
28561
- const searchApiRef = useRef65(void 0);
28562
- const clearFilters = useCallback36(() => {
28635
+ const searchApiRef = useRef66(void 0);
28636
+ const clearFilters = useCallback37(() => {
28563
28637
  layoutState?.clearFilters();
28564
28638
  searchApiRef.current?.clear();
28565
28639
  }, [layoutState]);
@@ -28585,6 +28659,7 @@ function GridTableLayoutComponent(props) {
28585
28659
  clearFilters,
28586
28660
  searchApi: searchApiRef,
28587
28661
  actions,
28662
+ viewModeToggle,
28588
28663
  selectionSummary
28589
28664
  }
28590
28665
  );
@@ -28652,14 +28727,14 @@ function useGridTableLayoutState({
28652
28727
  const filterFallback = { filterDefs: {}, storageKey: "unset-filter" };
28653
28728
  const { filter, setFilter } = usePersistedFilter(persistedFilter ?? filterFallback);
28654
28729
  const groupBy = useGroupBy(maybeGroupBy ?? { none: "none" });
28655
- const [searchString, setSearchString] = useState54("");
28730
+ const [searchString, setSearchString] = useState55("");
28656
28731
  const columnsFallback = "unset-columns";
28657
28732
  const [visibleColumnIds, setVisibleColumnIds] = useSessionStorage(
28658
28733
  persistedColumns?.storageKey ?? columnsFallback,
28659
28734
  void 0
28660
28735
  );
28661
28736
  const filteringActive = getActiveFilterCount(filter) > 0 || !!searchString;
28662
- const clearFilters = useCallback36(() => {
28737
+ const clearFilters = useCallback37(() => {
28663
28738
  setFilter({});
28664
28739
  setSearchString("");
28665
28740
  }, [setFilter]);
@@ -28814,12 +28889,12 @@ function RightPaneLayout(props) {
28814
28889
  }
28815
28890
 
28816
28891
  // src/components/Layout/RightPaneLayout/RightPanePanel.tsx
28817
- import { createContext as createContext14, useContext as useContext24, useEffect as useEffect31, useState as useState56 } from "react";
28892
+ import { createContext as createContext14, useContext as useContext24, useEffect as useEffect31, useState as useState57 } from "react";
28818
28893
  import { createPortal as createPortal8 } from "react-dom";
28819
28894
 
28820
28895
  // src/components/Layout/RightPaneLayout/internal/DeleteAction.tsx
28821
- import { useResizeObserver as useResizeObserver10 } from "@react-aria/utils";
28822
- import { useRef as useRef66, useState as useState55 } from "react";
28896
+ import { useResizeObserver as useResizeObserver11 } from "@react-aria/utils";
28897
+ import { useRef as useRef67, useState as useState56 } from "react";
28823
28898
  import { trussProps as trussProps119 } from "@homebound/truss/runtime";
28824
28899
  import { jsx as jsx210, jsxs as jsxs110 } from "react/jsx-runtime";
28825
28900
  function MaybeDeleteAction(props) {
@@ -28836,18 +28911,18 @@ function BulkDeleteAction(props) {
28836
28911
  count,
28837
28912
  ...buttonProps
28838
28913
  } = props;
28839
- const containerRef = useRef66(null);
28840
- const contentRef = useRef66(null);
28841
- const [overflows, setOverflows] = useState55(false);
28914
+ const containerRef = useRef67(null);
28915
+ const contentRef = useRef67(null);
28916
+ const [overflows, setOverflows] = useState56(false);
28842
28917
  const onResize = () => {
28843
28918
  if (!containerRef.current || !contentRef.current) return;
28844
28919
  setOverflows(contentRef.current.offsetWidth > containerRef.current.clientWidth);
28845
28920
  };
28846
- useResizeObserver10({
28921
+ useResizeObserver11({
28847
28922
  ref: containerRef,
28848
28923
  onResize
28849
28924
  });
28850
- useResizeObserver10({
28925
+ useResizeObserver11({
28851
28926
  ref: contentRef,
28852
28927
  onResize
28853
28928
  });
@@ -28905,7 +28980,7 @@ function RightPanePanel(props) {
28905
28980
  const {
28906
28981
  closeRightPane
28907
28982
  } = useRightPaneActions();
28908
- const [bannerSlot, setBannerSlot] = useState56(null);
28983
+ const [bannerSlot, setBannerSlot] = useState57(null);
28909
28984
  const {
28910
28985
  openModal
28911
28986
  } = useModal();
@@ -28992,7 +29067,7 @@ function ScrollableFooter(props) {
28992
29067
 
28993
29068
  // src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
28994
29069
  import { AnimatePresence as AnimatePresence5, motion as motion5 } from "framer-motion";
28995
- import { useEffect as useEffect32, useState as useState57 } from "react";
29070
+ import { useEffect as useEffect32, useState as useState58 } from "react";
28996
29071
 
28997
29072
  // src/components/Layout/TableReviewLayout/SidePanel.tsx
28998
29073
  import { jsx as jsx213, jsxs as jsxs112 } from "react/jsx-runtime";
@@ -29032,7 +29107,7 @@ function TableReviewLayout(props) {
29032
29107
  rightPaneWidth = defaultRightPaneWidth
29033
29108
  } = props;
29034
29109
  const tid = useTestIds(props, "tableReviewLayout");
29035
- const [isPanelVisible, setIsPanelVisible] = useState57(!!panelContent);
29110
+ const [isPanelVisible, setIsPanelVisible] = useState58(!!panelContent);
29036
29111
  useEffect32(() => {
29037
29112
  setIsPanelVisible(!!panelContent);
29038
29113
  }, [panelContent]);
@@ -29192,29 +29267,29 @@ function HomeboundLogo(props) {
29192
29267
  }
29193
29268
 
29194
29269
  // src/components/MaxLines.tsx
29195
- import { useLayoutEffect as useLayoutEffect14, useResizeObserver as useResizeObserver11 } from "@react-aria/utils";
29196
- import { useCallback as useCallback37, useEffect as useEffect33, useRef as useRef67, useState as useState58 } from "react";
29270
+ import { useLayoutEffect as useLayoutEffect15, useResizeObserver as useResizeObserver12 } from "@react-aria/utils";
29271
+ import { useCallback as useCallback38, useEffect as useEffect33, useRef as useRef68, useState as useState59 } from "react";
29197
29272
  import { trussProps as trussProps124, maybeCssVar as maybeCssVar59 } from "@homebound/truss/runtime";
29198
29273
  import { jsx as jsx217, jsxs as jsxs115 } from "react/jsx-runtime";
29199
29274
  function MaxLines({
29200
29275
  maxLines,
29201
29276
  children
29202
29277
  }) {
29203
- const elRef = useRef67(null);
29204
- const [hasMore, setHasMore] = useState58(false);
29205
- const [expanded, setExpanded] = useState58(false);
29206
- useLayoutEffect14(() => {
29278
+ const elRef = useRef68(null);
29279
+ const [hasMore, setHasMore] = useState59(false);
29280
+ const [expanded, setExpanded] = useState59(false);
29281
+ useLayoutEffect15(() => {
29207
29282
  if (!elRef.current) return;
29208
29283
  setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
29209
29284
  }, []);
29210
29285
  useEffect33(() => {
29211
29286
  setExpanded(false);
29212
29287
  }, [children]);
29213
- const onResize = useCallback37(() => {
29288
+ const onResize = useCallback38(() => {
29214
29289
  if (!elRef.current) return;
29215
29290
  !expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
29216
29291
  }, [expanded]);
29217
- useResizeObserver11({
29292
+ useResizeObserver12({
29218
29293
  ref: elRef,
29219
29294
  onResize
29220
29295
  });
@@ -29324,8 +29399,8 @@ function toPageNumberSize(page) {
29324
29399
  }
29325
29400
 
29326
29401
  // src/components/ScrollShadows.tsx
29327
- import { useResizeObserver as useResizeObserver12 } from "@react-aria/utils";
29328
- import { useCallback as useCallback38, useMemo as useMemo51, useRef as useRef68, useState as useState59 } from "react";
29402
+ import { useResizeObserver as useResizeObserver13 } from "@react-aria/utils";
29403
+ import { useCallback as useCallback39, useMemo as useMemo51, useRef as useRef69, useState as useState60 } from "react";
29329
29404
  import { trussProps as trussProps126, maybeCssVar as maybeCssVar60 } from "@homebound/truss/runtime";
29330
29405
  import { jsx as jsx219, jsxs as jsxs117 } from "react/jsx-runtime";
29331
29406
  function ScrollShadows(props) {
@@ -29343,9 +29418,9 @@ function ScrollShadows(props) {
29343
29418
  if (!bgColor.includes("rgba")) {
29344
29419
  throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
29345
29420
  }
29346
- const [showStartShadow, setShowStartShadow] = useState59(false);
29347
- const [showEndShadow, setShowEndShadow] = useState59(false);
29348
- const scrollRef = useRef68(null);
29421
+ const [showStartShadow, setShowStartShadow] = useState60(false);
29422
+ const [showEndShadow, setShowEndShadow] = useState60(false);
29423
+ const scrollRef = useRef69(null);
29349
29424
  const [startShadowStyles, endShadowStyles] = useMemo51(() => {
29350
29425
  const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
29351
29426
  const commonStyles = {
@@ -29397,7 +29472,7 @@ function ScrollShadows(props) {
29397
29472
  }
29398
29473
  }];
29399
29474
  }, [horizontal, bgColor]);
29400
- const updateScrollProps = useCallback38((el) => {
29475
+ const updateScrollProps = useCallback39((el) => {
29401
29476
  const {
29402
29477
  scrollTop,
29403
29478
  scrollHeight,
@@ -29412,8 +29487,8 @@ function ScrollShadows(props) {
29412
29487
  setShowStartShadow(start > 0);
29413
29488
  setShowEndShadow(start + boxSize < end);
29414
29489
  }, [horizontal]);
29415
- const onResize = useCallback38(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
29416
- useResizeObserver12({
29490
+ const onResize = useCallback39(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
29491
+ useResizeObserver13({
29417
29492
  ref: scrollRef,
29418
29493
  onResize
29419
29494
  });
@@ -29464,12 +29539,12 @@ function ScrollShadows(props) {
29464
29539
  import { camelCase as camelCase7 } from "change-case";
29465
29540
 
29466
29541
  // src/components/AppNav/AppNavGroup.tsx
29467
- import { useResizeObserver as useResizeObserver13 } from "@react-aria/utils";
29542
+ import { useResizeObserver as useResizeObserver14 } from "@react-aria/utils";
29468
29543
  import { camelCase as camelCase6, kebabCase } from "change-case";
29469
- import { useCallback as useCallback40, useEffect as useEffect34, useMemo as useMemo53, useState as useState61 } from "react";
29544
+ import { useCallback as useCallback41, useEffect as useEffect34, useMemo as useMemo53, useState as useState62 } from "react";
29470
29545
 
29471
29546
  // src/components/AppNav/AppNavGroupTrigger.tsx
29472
- import { useMemo as useMemo52, useRef as useRef69 } from "react";
29547
+ import { useMemo as useMemo52, useRef as useRef70 } from "react";
29473
29548
  import { mergeProps as mergeProps35, useButton as useButton11, useFocusRing as useFocusRing17, useHover as useHover22 } from "react-aria";
29474
29549
  import { trussProps as trussProps127, mergeProps as mergeProps_15 } from "@homebound/truss/runtime";
29475
29550
  import { jsx as jsx220, jsxs as jsxs118 } from "react/jsx-runtime";
@@ -29482,7 +29557,7 @@ function AppNavGroupTrigger(props) {
29482
29557
  active = false
29483
29558
  } = props;
29484
29559
  const tid = useTestIds(props, "trigger");
29485
- const ref = useRef69(null);
29560
+ const ref = useRef70(null);
29486
29561
  const {
29487
29562
  buttonProps,
29488
29563
  isPressed
@@ -29641,7 +29716,7 @@ function entryHasIcons(item) {
29641
29716
  }
29642
29717
 
29643
29718
  // src/components/AppNav/useAppNavGroupExpanded.ts
29644
- import { useCallback as useCallback39, useState as useState60 } from "react";
29719
+ import { useCallback as useCallback40, useState as useState61 } from "react";
29645
29720
  var APP_NAV_EXPANDED_LINK_GROUPS_STORAGE_KEY = "beam.appNav.expandedLinkGroups";
29646
29721
  function loadStored() {
29647
29722
  try {
@@ -29660,13 +29735,13 @@ function persistLabel(label, expanded) {
29660
29735
  }
29661
29736
  function useAppNavGroupExpanded(linkGroup) {
29662
29737
  const { label } = linkGroup;
29663
- const [userExpanded, setUserExpanded] = useState60(() => {
29738
+ const [userExpanded, setUserExpanded] = useState61(() => {
29664
29739
  const stored = loadStored();
29665
29740
  return label in stored ? stored[label] : null;
29666
29741
  });
29667
29742
  const hasActiveLink = appNavLinkGroupLinks(linkGroup).some((l) => l.active);
29668
29743
  const expanded = userExpanded !== null ? userExpanded : hasActiveLink ? true : linkGroup.defaultExpanded ?? false;
29669
- const onToggle = useCallback39(() => {
29744
+ const onToggle = useCallback40(() => {
29670
29745
  const next = !expanded;
29671
29746
  setUserExpanded(next);
29672
29747
  persistLabel(label, next);
@@ -29701,20 +29776,20 @@ function AppNavGroupDisclosure(props) {
29701
29776
  } = useAppNavGroupExpanded(linkGroup);
29702
29777
  const tid = useTestIds(props, "linkGroup");
29703
29778
  const navGroupId = `nav-group-${kebabCase(linkGroup.label)}`;
29704
- const [contentEl, setContentEl] = useState61(null);
29779
+ const [contentEl, setContentEl] = useState62(null);
29705
29780
  const contentRef = useMemo53(() => ({
29706
29781
  current: contentEl
29707
29782
  }), [contentEl]);
29708
- const [contentHeight, setContentHeight] = useState61(expanded ? "auto" : "0");
29783
+ const [contentHeight, setContentHeight] = useState62(expanded ? "auto" : "0");
29709
29784
  useEffect34(() => {
29710
29785
  setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
29711
29786
  }, [expanded, contentEl]);
29712
- const onResize = useCallback40(() => {
29787
+ const onResize = useCallback41(() => {
29713
29788
  if (contentEl && expanded) {
29714
29789
  setContentHeight(`${contentEl.scrollHeight}px`);
29715
29790
  }
29716
29791
  }, [expanded, contentEl]);
29717
- useResizeObserver13({
29792
+ useResizeObserver14({
29718
29793
  ref: contentRef,
29719
29794
  onResize
29720
29795
  });
@@ -29857,12 +29932,12 @@ function AppNavItems(props) {
29857
29932
  // src/layouts/SideNavLayout/SideNavLayoutContext.tsx
29858
29933
  import {
29859
29934
  createContext as createContext15,
29860
- useCallback as useCallback41,
29935
+ useCallback as useCallback42,
29861
29936
  useContext as useContext25,
29862
29937
  useEffect as useEffect35,
29863
29938
  useMemo as useMemo54,
29864
- useRef as useRef70,
29865
- useState as useState62
29939
+ useRef as useRef71,
29940
+ useState as useState63
29866
29941
  } from "react";
29867
29942
  import { jsx as jsx225 } from "react/jsx-runtime";
29868
29943
  var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
@@ -29888,18 +29963,18 @@ function resolveInitialNavState(defaultNavState) {
29888
29963
  }
29889
29964
  var SideNavLayoutContext = createContext15(void 0);
29890
29965
  function SideNavLayoutProvider(props) {
29891
- const [navState, setNavStateInternal] = useState62(
29966
+ const [navState, setNavStateInternal] = useState63(
29892
29967
  () => resolveInitialNavState(props.defaultNavState)
29893
29968
  );
29894
29969
  const bp = useBreakpoint();
29895
- const prevMdAndUp = useRef70(bp.mdAndUp);
29970
+ const prevMdAndUp = useRef71(bp.mdAndUp);
29896
29971
  useEffect35(() => {
29897
29972
  if (prevMdAndUp.current && !bp.mdAndUp) {
29898
29973
  setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
29899
29974
  }
29900
29975
  prevMdAndUp.current = bp.mdAndUp;
29901
29976
  }, [bp.mdAndUp]);
29902
- const setNavState = useCallback41((value2) => {
29977
+ const setNavState = useCallback42((value2) => {
29903
29978
  setNavStateInternal((prev) => {
29904
29979
  const next = typeof value2 === "function" ? value2(prev) : value2;
29905
29980
  if (next === "expanded" || next === "collapse") {
@@ -29980,7 +30055,7 @@ function SideNav(props) {
29980
30055
  }
29981
30056
 
29982
30057
  // src/components/Stepper.tsx
29983
- import { useRef as useRef71 } from "react";
30058
+ import { useRef as useRef72 } from "react";
29984
30059
  import { useButton as useButton12, useFocusRing as useFocusRing18, useHover as useHover23 } from "react-aria";
29985
30060
  import { trussProps as trussProps131, maybeCssVar as maybeCssVar62 } from "@homebound/truss/runtime";
29986
30061
  import { jsx as jsx227, jsxs as jsxs122 } from "react/jsx-runtime";
@@ -30062,7 +30137,7 @@ function StepButton(props) {
30062
30137
  onPress: onClick,
30063
30138
  isDisabled: disabled
30064
30139
  };
30065
- const ref = useRef71(null);
30140
+ const ref = useRef72(null);
30066
30141
  const {
30067
30142
  buttonProps,
30068
30143
  isPressed
@@ -30172,7 +30247,7 @@ function StepIcon({
30172
30247
  }
30173
30248
 
30174
30249
  // src/components/StepperTabs/StepperTab.tsx
30175
- import { useRef as useRef72 } from "react";
30250
+ import { useRef as useRef73 } from "react";
30176
30251
  import { mergeProps as mergeProps36, useButton as useButton13, useFocusRing as useFocusRing19, useHover as useHover24, VisuallyHidden as VisuallyHidden10 } from "react-aria";
30177
30252
  import { trussProps as trussProps132 } from "@homebound/truss/runtime";
30178
30253
  import { Fragment as Fragment49, jsx as jsx228, jsxs as jsxs123 } from "react/jsx-runtime";
@@ -30191,7 +30266,7 @@ function StepperTab(props) {
30191
30266
  onPress: () => onClick(value),
30192
30267
  isDisabled: disabled || collapsed
30193
30268
  };
30194
- const ref = useRef72(null);
30269
+ const ref = useRef73(null);
30195
30270
  const {
30196
30271
  buttonProps
30197
30272
  } = useButton13(ariaProps, ref);
@@ -30592,7 +30667,7 @@ function segmentWidth(count, total) {
30592
30667
  }
30593
30668
 
30594
30669
  // src/components/TableSummary/TableSummary.tsx
30595
- import { useRef as useRef73 } from "react";
30670
+ import { useRef as useRef74 } from "react";
30596
30671
  import { mergeProps as mergeProps38, useButton as useButton14, useFocusRing as useFocusRing20, useHover as useHover25 } from "react-aria";
30597
30672
  import { trussProps as trussProps137, maybeCssVar as maybeCssVar64 } from "@homebound/truss/runtime";
30598
30673
  import { jsx as jsx234, jsxs as jsxs128 } from "react/jsx-runtime";
@@ -30652,7 +30727,7 @@ function MetricButton(props) {
30652
30727
  metric,
30653
30728
  divider
30654
30729
  } = props;
30655
- const ref = useRef73(null);
30730
+ const ref = useRef74(null);
30656
30731
  const {
30657
30732
  buttonProps
30658
30733
  } = useButton14({
@@ -30729,7 +30804,7 @@ function MetricButton(props) {
30729
30804
 
30730
30805
  // src/components/DnDGrid/DnDGrid.tsx
30731
30806
  import equal2 from "fast-deep-equal";
30732
- import { useCallback as useCallback42, useEffect as useEffect36, useRef as useRef74 } from "react";
30807
+ import { useCallback as useCallback43, useEffect as useEffect36, useRef as useRef75 } from "react";
30733
30808
 
30734
30809
  // src/utils/inlineStyles.ts
30735
30810
  function isInlineStyleValue(value) {
@@ -30779,13 +30854,13 @@ function DnDGrid(props) {
30779
30854
  activeItemStyles,
30780
30855
  lockAxis
30781
30856
  } = props;
30782
- const gridEl = useRef74(null);
30783
- const dragEl = useRef74(void 0);
30784
- const cloneEl = useRef74(void 0);
30785
- const initialOrder = useRef74(void 0);
30786
- const styleSnapshot = useRef74(void 0);
30787
- const reorderViaKeyboard = useRef74(false);
30788
- const transformFrom = useRef74({
30857
+ const gridEl = useRef75(null);
30858
+ const dragEl = useRef75(void 0);
30859
+ const cloneEl = useRef75(void 0);
30860
+ const initialOrder = useRef75(void 0);
30861
+ const styleSnapshot = useRef75(void 0);
30862
+ const reorderViaKeyboard = useRef75(false);
30863
+ const transformFrom = useRef75({
30789
30864
  x: 0,
30790
30865
  y: 0
30791
30866
  });
@@ -30793,20 +30868,20 @@ function DnDGrid(props) {
30793
30868
  const activeStyles3 = activeItemStyles ?? {
30794
30869
  boxShadow: "bshModal"
30795
30870
  };
30796
- const getGridItems = useCallback42(() => {
30871
+ const getGridItems = useCallback43(() => {
30797
30872
  return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
30798
30873
  }, []);
30799
- const getGridItemIdOrder = useCallback42(() => {
30874
+ const getGridItemIdOrder = useCallback43(() => {
30800
30875
  return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
30801
30876
  }, [getGridItems]);
30802
- const initReorder = useCallback42(() => {
30877
+ const initReorder = useCallback43(() => {
30803
30878
  if (gridEl.current && dragEl.current) {
30804
30879
  initialOrder.current = getGridItemIdOrder();
30805
30880
  styleSnapshot.current = snapshotElementStyle(dragEl.current);
30806
30881
  applyActiveStyles(dragEl.current, activeStyles3);
30807
30882
  }
30808
30883
  }, [getGridItemIdOrder, activeStyles3]);
30809
- const commitReorder = useCallback42(() => {
30884
+ const commitReorder = useCallback43(() => {
30810
30885
  if (gridEl.current && dragEl.current) {
30811
30886
  const currentOrder = getGridItemIdOrder();
30812
30887
  if (!equal2(currentOrder, initialOrder.current)) onReorder(currentOrder);
@@ -30816,7 +30891,7 @@ function DnDGrid(props) {
30816
30891
  initialOrder.current = currentOrder;
30817
30892
  }
30818
30893
  }, [onReorder, getGridItemIdOrder]);
30819
- const cancelReorder = useCallback42(() => {
30894
+ const cancelReorder = useCallback43(() => {
30820
30895
  if (gridEl.current && dragEl.current && initialOrder.current) {
30821
30896
  const currentOrder = getGridItemIdOrder();
30822
30897
  if (!equal2(currentOrder, initialOrder.current)) {
@@ -30838,7 +30913,7 @@ function DnDGrid(props) {
30838
30913
  reorderViaKeyboard.current = false;
30839
30914
  }
30840
30915
  }, [getGridItemIdOrder, getGridItems]);
30841
- const onMove = useCallback42((e) => {
30916
+ const onMove = useCallback43((e) => {
30842
30917
  if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
30843
30918
  const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
30844
30919
  const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
@@ -30861,7 +30936,7 @@ function DnDGrid(props) {
30861
30936
  }
30862
30937
  }
30863
30938
  }, [lockAxis]);
30864
- const onDragEnd = useCallback42((e) => {
30939
+ const onDragEnd = useCallback43((e) => {
30865
30940
  if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
30866
30941
  e.preventDefault();
30867
30942
  cloneEl.current.replaceWith(dragEl.current);
@@ -30872,7 +30947,7 @@ function DnDGrid(props) {
30872
30947
  removePointerDragListeners(onMove, onDragEnd);
30873
30948
  }
30874
30949
  }, [commitReorder, onMove]);
30875
- const onDragStart = useCallback42((e) => {
30950
+ const onDragStart = useCallback43((e) => {
30876
30951
  if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
30877
30952
  const rect = dragEl.current.getBoundingClientRect();
30878
30953
  const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
@@ -30903,7 +30978,7 @@ function DnDGrid(props) {
30903
30978
  useEffect36(() => {
30904
30979
  return () => removePointerDragListeners(onMove, onDragEnd);
30905
30980
  }, [onMove, onDragEnd]);
30906
- const onDragHandleKeyDown = useCallback42((e) => {
30981
+ const onDragHandleKeyDown = useCallback43((e) => {
30907
30982
  const moveHandle = e.target;
30908
30983
  if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
30909
30984
  const isSpaceKey = e.key === " ";
@@ -31805,17 +31880,17 @@ function OpenModal(props) {
31805
31880
 
31806
31881
  // src/components/Navbar/NavbarMobileMenu.tsx
31807
31882
  import { AnimatePresence as AnimatePresence6, motion as motion7 } from "framer-motion";
31808
- import { useEffect as useEffect39, useState as useState64 } from "react";
31883
+ import { useEffect as useEffect39, useState as useState65 } from "react";
31809
31884
  import { FocusScope as FocusScope7, usePreventScroll as usePreventScroll4 } from "react-aria";
31810
31885
  import { createPortal as createPortal11 } from "react-dom";
31811
31886
  import { useLocation } from "react-router-dom";
31812
31887
 
31813
31888
  // src/layouts/NavbarLayout/MobileSubNavContext.tsx
31814
- import { createContext as createContext18, useContext as useContext29, useLayoutEffect as useLayoutEffect15, useMemo as useMemo60, useState as useState63 } from "react";
31889
+ import { createContext as createContext18, useContext as useContext29, useLayoutEffect as useLayoutEffect16, useMemo as useMemo60, useState as useState64 } from "react";
31815
31890
  import { jsx as jsx250 } from "react/jsx-runtime";
31816
31891
  var MobileSubNavContext = createContext18(void 0);
31817
31892
  function MobileSubNavProvider(props) {
31818
- const [mobileSubNav, setMobileSubNav] = useState63(null);
31893
+ const [mobileSubNav, setMobileSubNav] = useState64(null);
31819
31894
  const value = useMemo60(() => ({ mobileSubNav, setMobileSubNav }), [mobileSubNav]);
31820
31895
  return /* @__PURE__ */ jsx250(MobileSubNavContext.Provider, { value, children: props.children });
31821
31896
  }
@@ -31827,11 +31902,11 @@ function useRegisterMobileSubNav(content2) {
31827
31902
  const setMobileSubNav = ctx?.setMobileSubNav;
31828
31903
  const enabled = !useBreakpoint().mdAndUp;
31829
31904
  const { top, items, footer } = content2;
31830
- useLayoutEffect15(() => {
31905
+ useLayoutEffect16(() => {
31831
31906
  if (!setMobileSubNav || !enabled) return;
31832
31907
  setMobileSubNav({ top, items, footer });
31833
31908
  }, [setMobileSubNav, enabled, top, items, footer]);
31834
- useLayoutEffect15(() => {
31909
+ useLayoutEffect16(() => {
31835
31910
  if (!setMobileSubNav || !enabled) return;
31836
31911
  return () => setMobileSubNav(null);
31837
31912
  }, [setMobileSubNav, enabled]);
@@ -31846,8 +31921,8 @@ function NavbarMobileMenu(props) {
31846
31921
  items
31847
31922
  } = props;
31848
31923
  const tid = useTestIds(props, "navbar");
31849
- const [isOpen2, setIsOpen] = useState64(false);
31850
- const [level, setLevel] = useState64("sub");
31924
+ const [isOpen2, setIsOpen] = useState65(false);
31925
+ const [level, setLevel] = useState65("sub");
31851
31926
  const {
31852
31927
  pathname,
31853
31928
  search
@@ -32006,12 +32081,12 @@ function NavbarMobileDrawer({
32006
32081
  }
32007
32082
 
32008
32083
  // src/hooks/useContentOverflow.ts
32009
- import { useCallback as useCallback43, useLayoutEffect as useLayoutEffect16, useRef as useRef75, useState as useState65 } from "react";
32084
+ import { useCallback as useCallback44, useLayoutEffect as useLayoutEffect17, useRef as useRef76, useState as useState66 } from "react";
32010
32085
  function useContentOverflow(enabled = true) {
32011
- const containerRef = useRef75(null);
32012
- const contentRef = useRef75(null);
32013
- const [overflows, setOverflows] = useState65(false);
32014
- const checkContentOverflow = useCallback43(() => {
32086
+ const containerRef = useRef76(null);
32087
+ const contentRef = useRef76(null);
32088
+ const [overflows, setOverflows] = useState66(false);
32089
+ const checkContentOverflow = useCallback44(() => {
32015
32090
  const container = containerRef.current;
32016
32091
  const content2 = contentRef.current;
32017
32092
  if (!enabled || !container || !content2) {
@@ -32020,7 +32095,7 @@ function useContentOverflow(enabled = true) {
32020
32095
  }
32021
32096
  setOverflows(content2.offsetWidth > container.clientWidth);
32022
32097
  }, [enabled]);
32023
- useLayoutEffect16(() => {
32098
+ useLayoutEffect17(() => {
32024
32099
  checkContentOverflow();
32025
32100
  window.addEventListener("resize", checkContentOverflow);
32026
32101
  return () => window.removeEventListener("resize", checkContentOverflow);
@@ -32107,10 +32182,10 @@ function NavbarUserMenu({
32107
32182
  }
32108
32183
 
32109
32184
  // src/components/Snackbar/useSnackbar.tsx
32110
- import { useCallback as useCallback44, useEffect as useEffect40 } from "react";
32185
+ import { useCallback as useCallback45, useEffect as useEffect40 } from "react";
32111
32186
  function useSnackbar() {
32112
32187
  const { setNotices, setOffset } = useSnackbarContext();
32113
- const onClose = useCallback44(
32188
+ const onClose = useCallback45(
32114
32189
  (noticeId) => {
32115
32190
  setNotices((prev) => {
32116
32191
  let returnValue = prev;
@@ -32127,7 +32202,7 @@ function useSnackbar() {
32127
32202
  // eslint-disable-next-line react-hooks/exhaustive-deps
32128
32203
  []
32129
32204
  );
32130
- const triggerNotice = useCallback44(
32205
+ const triggerNotice = useCallback45(
32131
32206
  (props) => {
32132
32207
  const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
32133
32208
  let maybeTimeout;
@@ -32156,7 +32231,7 @@ function useSnackbar() {
32156
32231
  },
32157
32232
  [onClose, setNotices]
32158
32233
  );
32159
- const closeNotice = useCallback44((id) => onClose(id), [onClose]);
32234
+ const closeNotice = useCallback45((id) => onClose(id), [onClose]);
32160
32235
  const useSnackbarOffset = ({ bottom }) => useEffect40(() => {
32161
32236
  setOffset({ bottom });
32162
32237
  return () => setOffset({});
@@ -32206,7 +32281,7 @@ function simpleDataRows(data = []) {
32206
32281
 
32207
32282
  // src/components/Tabs.tsx
32208
32283
  import { camelCase as camelCase8 } from "change-case";
32209
- import { useEffect as useEffect41, useMemo as useMemo61, useRef as useRef76, useState as useState66 } from "react";
32284
+ import { useEffect as useEffect41, useMemo as useMemo61, useRef as useRef77, useState as useState67 } from "react";
32210
32285
  import { mergeProps as mergeProps42, useFocusRing as useFocusRing22, useHover as useHover27 } from "react-aria";
32211
32286
  import { matchPath } from "react-router";
32212
32287
  import { Link as Link7, useLocation as useLocation2 } from "react-router-dom";
@@ -32286,8 +32361,8 @@ function Tabs(props) {
32286
32361
  focusProps
32287
32362
  } = useFocusRing22();
32288
32363
  const tid = useTestIds(others, "tabs");
32289
- const [active, setActive] = useState66(selected);
32290
- const ref = useRef76(null);
32364
+ const [active, setActive] = useState67(selected);
32365
+ const ref = useRef77(null);
32291
32366
  useEffect41(() => setActive(selected), [selected]);
32292
32367
  function onKeyUp(e) {
32293
32368
  if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
@@ -32523,51 +32598,79 @@ function hideTabs(props) {
32523
32598
  }
32524
32599
 
32525
32600
  // src/components/Toast/useToast.tsx
32526
- import { useCallback as useCallback45 } from "react";
32601
+ import { useCallback as useCallback46 } from "react";
32527
32602
  function useToast() {
32528
32603
  const { setNotice, clear } = useToastContext();
32529
- const showToast = useCallback45((props) => setNotice(props), [setNotice]);
32604
+ const showToast = useCallback46((props) => setNotice(props), [setNotice]);
32530
32605
  return { showToast, clear };
32531
32606
  }
32532
32607
 
32533
- // src/illustrations/DocumentUploadIllustration.tsx
32608
+ // src/illustrations/AiTableIllustration.tsx
32534
32609
  import { trussProps as trussProps145 } from "@homebound/truss/runtime";
32535
32610
  import { jsx as jsx254, jsxs as jsxs136 } from "react/jsx-runtime";
32611
+ function AiTableIllustration(props) {
32612
+ const {
32613
+ width: width2 = 349
32614
+ } = props;
32615
+ return /* @__PURE__ */ jsxs136("svg", { viewBox: "0 0 349 197", xmlns: "http://www.w3.org/2000/svg", fill: "none", "aria-hidden": true, role: "presentation", ...trussProps145({
32616
+ width: ["w_var", {
32617
+ "--width": `${width2}px`
32618
+ }],
32619
+ maxWidth: "maxw100",
32620
+ height: "ha"
32621
+ }), children: [
32622
+ /* @__PURE__ */ jsx254("rect", { x: "136.78", y: "22.45", width: "128.37", height: "126.07", rx: "7.38", stroke: "#C1B2F9", strokeWidth: "2.54", strokeLinecap: "round", strokeDasharray: "3.8 7.72", strokeDashoffset: "3.8" }),
32623
+ /* @__PURE__ */ jsx254("rect", { x: "96.22", y: "41.46", width: "144.5", height: "129.41", rx: "7.95", fill: "white" }),
32624
+ /* @__PURE__ */ jsx254("path", { d: "M96.22 64.17V49.42A7.95 7.95 0 0 1 104.17 41.46H232.77A7.95 7.95 0 0 1 240.72 49.42V64.17Z", fill: "#E2DFF5" }),
32625
+ /* @__PURE__ */ jsx254("circle", { cx: "115.97", cy: "78.34", r: "4.91", fill: "#B6B2E1" }),
32626
+ /* @__PURE__ */ jsx254("circle", { cx: "115.97", cy: "104.77", r: "4.91", fill: "#B6B2E1" }),
32627
+ /* @__PURE__ */ jsx254("circle", { cx: "115.97", cy: "131.19", r: "4.91", fill: "#B6B2E1" }),
32628
+ /* @__PURE__ */ jsx254("path", { d: "M96.22 64.17H240.72M135.63 64.17V170.87M195.78 41.46V170.87M96.22 91.48H240.72M96.22 117.87H240.72M96.22 144.37H240.72", stroke: "#7A7FA8", strokeWidth: "2.54" }),
32629
+ /* @__PURE__ */ jsx254("rect", { x: "96.22", y: "41.46", width: "144.5", height: "129.41", rx: "7.95", stroke: "#7A7FA8", strokeWidth: "2.54" }),
32630
+ /* @__PURE__ */ jsx254("path", { d: "M66.17 20.23L68.14 11.26A1.4 1.4 0 0 1 70.87 11.26L72.85 20.23L81.32 22.16A1.41 1.41 0 0 1 81.32 24.91L72.85 26.84L70.87 35.81A1.4 1.4 0 0 1 68.14 35.81L66.17 26.84L57.69 24.91A1.41 1.41 0 0 1 57.69 22.16Z", fill: "#9357FD" }),
32631
+ /* @__PURE__ */ jsx254("path", { d: "M70.85 70.65L72.08 65.07A0.86 0.86 0 0 1 73.76 65.07L74.99 70.65L80.19 71.84A0.87 0.87 0 0 1 80.19 73.54L74.99 74.74L73.76 80.31A0.86 0.86 0 0 1 72.08 80.31L70.85 74.74L65.64 73.54A0.87 0.87 0 0 1 65.64 71.84Z", fill: "#A475FD" }),
32632
+ /* @__PURE__ */ jsx254("path", { d: "M287.22 122.98L288.89 115.34A1.16 1.16 0 0 1 291.15 115.34L292.82 122.98L299.71 124.58A1.18 1.18 0 0 1 299.71 126.87L292.82 128.47L291.15 136.1A1.16 1.16 0 0 1 288.89 136.1L287.22 128.47L280.33 126.87A1.18 1.18 0 0 1 280.33 124.58Z", fill: "#955BFD" })
32633
+ ] });
32634
+ }
32635
+
32636
+ // src/illustrations/DocumentUploadIllustration.tsx
32637
+ import { trussProps as trussProps146 } from "@homebound/truss/runtime";
32638
+ import { jsx as jsx255, jsxs as jsxs137 } from "react/jsx-runtime";
32536
32639
  function DocumentUploadIllustration(props) {
32537
32640
  const {
32538
32641
  width: width2 = 338
32539
32642
  } = props;
32540
- return /* @__PURE__ */ jsxs136("svg", { viewBox: "0 0 338.25 270.6", xmlns: "http://www.w3.org/2000/svg", fill: "none", "aria-hidden": true, role: "presentation", ...trussProps145({
32643
+ return /* @__PURE__ */ jsxs137("svg", { viewBox: "0 0 338.25 270.6", xmlns: "http://www.w3.org/2000/svg", fill: "none", "aria-hidden": true, role: "presentation", ...trussProps146({
32541
32644
  width: ["w_var", {
32542
32645
  "--width": `${width2}px`
32543
32646
  }],
32544
32647
  maxWidth: "maxw100",
32545
32648
  height: "ha"
32546
32649
  }), children: [
32547
- /* @__PURE__ */ jsx254("path", { d: "M256.146 107.294C256.146 107.294 267.377 64.7481 227.738 51.0067C188.1 37.2653 159.572 58.7309 145.026 75.3184C129.963 92.4952 127.849 132.662 96.9308 140.326C66.0126 147.989 59.4329 170.861 62.313 186.571C65.2199 202.426 72.3548 210.618 107.501 210.618H231.174C231.174 210.618 270.548 216.961 278.476 197.406C286.404 177.85 276.362 168.337 259.978 154.596C243.594 140.854 243.594 131.077 249.143 122.356C254.693 113.636 256.146 107.294 256.146 107.294Z", fill: "#F1F4F9" }),
32548
- /* @__PURE__ */ jsx254("path", { d: "M198.269 73.0502H132.422C125.722 73.0502 120.291 80.558 120.291 89.8194V194.831C120.291 204.092 125.722 211.6 132.422 211.6H211.249C217.949 211.6 223.38 204.092 223.38 194.831V100.978L198.269 73.0502Z", fill: "white" }),
32549
- /* @__PURE__ */ jsx254("path", { d: "M201.273 78.2404C200.767 78.2404 200.262 78.0337 199.897 77.6275L197.444 74.8999H193.776C192.754 74.8999 191.926 74.0718 191.926 73.0501C191.926 72.0284 192.754 71.2003 193.776 71.2003H198.268C198.793 71.2003 199.293 71.4232 199.644 71.8132L202.648 75.1537C203.331 75.9135 203.269 77.083 202.509 77.7661C202.156 78.0839 201.714 78.2404 201.273 78.2404Z", fill: "#798295" }),
32550
- /* @__PURE__ */ jsx254("path", { d: "M211.249 213.45H211.111C210.09 213.45 209.261 212.622 209.261 211.6C209.261 210.578 210.09 209.75 211.111 209.75H211.249C214.146 209.75 216.274 208.026 217.55 206.579C218.225 205.813 219.394 205.739 220.161 206.415C220.927 207.091 221.001 208.26 220.325 209.026C217.809 211.879 214.586 213.45 211.249 213.45ZM203.446 213.45H194.459C193.437 213.45 192.609 212.622 192.609 211.6C192.609 210.578 193.437 209.75 194.459 209.75H203.446C204.467 209.75 205.296 210.578 205.296 211.6C205.296 212.622 204.467 213.45 203.446 213.45ZM186.793 213.45H177.806C176.784 213.45 175.956 212.622 175.956 211.6C175.956 210.578 176.784 209.75 177.806 209.75H186.793C187.815 209.75 188.643 210.578 188.643 211.6C188.643 212.622 187.815 213.45 186.793 213.45ZM170.14 213.45H161.153C160.131 213.45 159.303 212.622 159.303 211.6C159.303 210.578 160.131 209.75 161.153 209.75H170.14C171.162 209.75 171.99 210.578 171.99 211.6C171.99 212.622 171.162 213.45 170.14 213.45ZM153.488 213.45H144.5C143.479 213.45 142.651 212.622 142.651 211.6C142.651 210.578 143.479 209.75 144.5 209.75H153.488C154.509 209.75 155.337 210.578 155.337 211.6C155.337 212.622 154.509 213.45 153.488 213.45ZM136.835 213.45H132.422C130.603 213.45 128.835 212.997 127.167 212.104C126.267 211.621 125.928 210.5 126.41 209.599C126.893 208.699 128.014 208.359 128.914 208.842C130.039 209.445 131.219 209.75 132.422 209.75H136.835C137.857 209.75 138.685 210.578 138.685 211.6C138.685 212.622 137.857 213.45 136.835 213.45ZM122.794 206.881C122.144 206.881 121.513 206.538 121.175 205.929C119.662 203.203 118.738 199.971 118.502 196.584C118.431 195.565 119.2 194.681 120.219 194.61C121.236 194.544 122.122 195.308 122.193 196.328C122.391 199.178 123.158 201.877 124.41 204.133C124.905 205.027 124.583 206.153 123.69 206.648C123.406 206.806 123.098 206.881 122.794 206.881ZM222.508 202.938C222.337 202.938 222.163 202.914 221.99 202.864C221.009 202.578 220.445 201.552 220.731 200.571C221.261 198.75 221.53 196.819 221.53 194.831V192.183C221.53 191.161 222.358 190.333 223.38 190.333C224.402 190.333 225.23 191.161 225.23 192.183V194.831C225.229 197.169 224.911 199.448 224.283 201.605C224.048 202.413 223.309 202.938 222.508 202.938ZM120.291 190.641C119.27 190.641 118.441 189.813 118.441 188.792V179.804C118.441 178.783 119.27 177.955 120.291 177.955C121.313 177.955 122.141 178.783 122.141 179.804V188.792C122.141 189.813 121.313 190.641 120.291 190.641ZM223.38 186.367C222.358 186.367 221.53 185.539 221.53 184.517V175.53C221.53 174.508 222.358 173.68 223.38 173.68C224.402 173.68 225.23 174.508 225.23 175.53V184.517C225.23 185.539 224.402 186.367 223.38 186.367ZM120.291 173.989C119.27 173.989 118.441 173.161 118.441 172.139V163.152C118.441 162.13 119.27 161.302 120.291 161.302C121.313 161.302 122.141 162.13 122.141 163.152V172.139C122.141 173.161 121.313 173.989 120.291 173.989ZM223.38 169.714C222.358 169.714 221.53 168.886 221.53 167.864V158.877C221.53 157.855 222.358 157.027 223.38 157.027C224.402 157.027 225.23 157.855 225.23 158.877V167.864C225.23 168.886 224.402 169.714 223.38 169.714ZM120.291 157.336C119.27 157.336 118.441 156.508 118.441 155.486V146.499C118.441 145.477 119.27 144.649 120.291 144.649C121.313 144.649 122.141 145.477 122.141 146.499V155.486C122.141 156.508 121.313 157.336 120.291 157.336ZM223.38 153.061C222.358 153.061 221.53 152.233 221.53 151.211V142.224C221.53 141.203 222.358 140.375 223.38 140.375C224.402 140.375 225.23 141.203 225.23 142.224V151.211C225.23 152.233 224.402 153.061 223.38 153.061ZM120.291 140.683C119.27 140.683 118.441 139.855 118.441 138.833V129.846C118.441 128.825 119.27 127.997 120.291 127.997C121.313 127.997 122.141 128.825 122.141 129.846V138.833C122.141 139.855 121.313 140.683 120.291 140.683ZM223.38 136.409C222.358 136.409 221.53 135.581 221.53 134.559V125.572C221.53 124.55 222.358 123.722 223.38 123.722C224.402 123.722 225.23 124.55 225.23 125.572V134.559C225.23 135.581 224.402 136.409 223.38 136.409ZM120.291 124.031C119.27 124.031 118.441 123.202 118.441 122.181V113.194C118.441 112.172 119.27 111.344 120.291 111.344C121.313 111.344 122.141 112.172 122.141 113.194V122.181C122.141 123.202 121.313 124.031 120.291 124.031ZM223.38 119.756C222.358 119.756 221.53 118.928 221.53 117.906V108.919C221.53 107.897 222.358 107.069 223.38 107.069C224.402 107.069 225.23 107.897 225.23 108.919V117.906C225.23 118.928 224.402 119.756 223.38 119.756ZM120.291 107.378C119.27 107.378 118.441 106.55 118.441 105.528V96.5409C118.441 95.5193 119.27 94.6911 120.291 94.6911C121.313 94.6911 122.141 95.5193 122.141 96.5409V105.528C122.141 106.55 121.313 107.378 120.291 107.378ZM223.38 103.103C222.537 103.103 221.825 102.539 221.603 101.768L216.18 95.7367C215.497 94.9771 215.559 93.8075 216.318 93.1244C217.078 92.4415 218.248 92.5033 218.931 93.2631L224.755 99.7411C225.061 100.081 225.23 100.521 225.23 100.978V101.253C225.23 102.275 224.402 103.103 223.38 103.103ZM120.312 90.7253C120.287 90.7253 120.262 90.7248 120.236 90.7239C119.215 90.683 118.421 89.8222 118.462 88.8015C118.597 85.4287 119.413 82.1733 120.823 79.3874C121.284 78.4757 122.396 78.1104 123.308 78.5715C124.22 79.0327 124.585 80.1455 124.124 81.0571C122.952 83.3736 122.273 86.1027 122.159 88.9496C122.119 89.9452 121.299 90.7253 120.312 90.7253ZM212.43 90.6496C211.924 90.6496 211.42 90.4429 211.054 90.0366L205.045 83.3536C204.362 82.594 204.425 81.4244 205.184 80.7413C205.944 80.0585 207.113 80.12 207.796 80.88L213.805 87.563C214.489 88.3226 214.426 89.4923 213.667 90.1753C213.313 90.4931 212.871 90.6496 212.43 90.6496ZM127.452 76.3686C126.834 76.3686 126.23 76.0589 125.88 75.4953C125.34 74.6277 125.606 73.487 126.474 72.9477C128.338 71.7883 130.34 71.2004 132.422 71.2004H136.152C137.174 71.2004 138.002 72.0286 138.002 73.0502C138.002 74.0719 137.174 74.9 136.152 74.9H132.422C131.041 74.9 129.697 75.3002 128.427 76.0893C128.123 76.2784 127.786 76.3686 127.452 76.3686ZM186.111 74.9H177.123C176.102 74.9 175.274 74.0719 175.274 73.0502C175.274 72.0286 176.102 71.2004 177.123 71.2004H186.111C187.132 71.2004 187.96 72.0286 187.96 73.0502C187.96 74.0719 187.132 74.9 186.111 74.9ZM169.458 74.9H160.471C159.449 74.9 158.621 74.0719 158.621 73.0502C158.621 72.0286 159.449 71.2004 160.471 71.2004H169.458C170.48 71.2004 171.308 72.0286 171.308 73.0502C171.308 74.0719 170.48 74.9 169.458 74.9ZM152.805 74.9H143.818C142.796 74.9 141.968 74.0719 141.968 73.0502C141.968 72.0286 142.796 71.2004 143.818 71.2004H152.805C153.827 71.2004 154.655 72.0286 154.655 73.0502C154.655 74.0719 153.827 74.9 152.805 74.9Z", fill: "#798295" }),
32551
- /* @__PURE__ */ jsx254("path", { d: "M192.785 83.3351V99.2582C192.785 102.885 195.726 105.826 199.353 105.826H215.482", fill: "white" }),
32552
- /* @__PURE__ */ jsx254("path", { d: "M215.39 107.676H206.406C205.384 107.676 204.556 106.848 204.556 105.826C204.556 104.804 205.384 103.976 206.406 103.976H215.39C216.412 103.976 217.24 104.804 217.24 105.826C217.24 106.848 216.412 107.676 215.39 107.676ZM198.745 107.648C198.689 107.648 198.632 107.645 198.574 107.64C194.611 107.275 191.419 104.139 190.986 100.183C190.874 99.1675 191.608 98.2541 192.623 98.1428C193.636 98.0331 194.552 98.7646 194.663 99.7801C194.906 101.996 196.693 103.752 198.913 103.956C199.93 104.049 200.679 104.95 200.585 105.967C200.497 106.927 199.691 107.648 198.745 107.648ZM192.785 94.1696C191.764 94.1696 190.936 93.3415 190.936 92.3198V83.335C190.936 82.3134 191.764 81.4852 192.785 81.4852C193.807 81.4852 194.635 82.3134 194.635 83.335V92.3198C194.635 93.3415 193.807 94.1696 192.785 94.1696Z", fill: "#798295" }),
32553
- /* @__PURE__ */ jsx254("path", { d: "M189.911 178.207H154.776C153.609 178.207 152.662 177.261 152.662 176.093C152.662 174.926 153.609 173.979 154.776 173.979H189.911C191.078 173.979 192.025 174.926 192.025 176.093C192.025 177.261 191.078 178.207 189.911 178.207Z", fill: "#798295" }),
32554
- /* @__PURE__ */ jsx254("path", { d: "M171.711 166.32C170.544 166.32 169.597 165.373 169.597 164.206V124.131C169.597 122.963 170.544 122.017 171.711 122.017C172.878 122.017 173.825 122.963 173.825 124.131V164.206C173.825 165.373 172.878 166.32 171.711 166.32Z", fill: "#798295" }),
32555
- /* @__PURE__ */ jsx254("path", { d: "M191.126 144.439C190.608 144.439 190.089 144.25 189.681 143.868L171.72 127.037L154 143.858C153.154 144.662 151.815 144.628 151.012 143.781C150.208 142.934 150.243 141.596 151.089 140.792L170.256 122.597C171.068 121.827 172.34 121.823 173.157 122.588L192.572 140.783C193.424 141.581 193.467 142.919 192.669 143.771C192.253 144.215 191.69 144.439 191.126 144.439Z", fill: "#798295" }),
32556
- /* @__PURE__ */ jsx254("path", { d: "M264.954 212.204H230.865C229.989 212.204 229.279 211.494 229.279 210.618C229.279 209.743 229.989 209.033 230.865 209.033H264.954C265.83 209.033 266.54 209.743 266.54 210.618C266.54 211.494 265.83 212.204 264.954 212.204Z", fill: "#798295" }),
32557
- /* @__PURE__ */ jsx254("path", { d: "M112.806 212.204H80.0384C79.1628 212.204 78.4529 211.494 78.4529 210.618C78.4529 209.743 79.1628 209.033 80.0384 209.033H112.806C113.682 209.033 114.392 209.743 114.392 210.618C114.392 211.494 113.682 212.204 112.806 212.204Z", fill: "#798295" })
32650
+ /* @__PURE__ */ jsx255("path", { d: "M256.146 107.294C256.146 107.294 267.377 64.7481 227.738 51.0067C188.1 37.2653 159.572 58.7309 145.026 75.3184C129.963 92.4952 127.849 132.662 96.9308 140.326C66.0126 147.989 59.4329 170.861 62.313 186.571C65.2199 202.426 72.3548 210.618 107.501 210.618H231.174C231.174 210.618 270.548 216.961 278.476 197.406C286.404 177.85 276.362 168.337 259.978 154.596C243.594 140.854 243.594 131.077 249.143 122.356C254.693 113.636 256.146 107.294 256.146 107.294Z", fill: "#F1F4F9" }),
32651
+ /* @__PURE__ */ jsx255("path", { d: "M198.269 73.0502H132.422C125.722 73.0502 120.291 80.558 120.291 89.8194V194.831C120.291 204.092 125.722 211.6 132.422 211.6H211.249C217.949 211.6 223.38 204.092 223.38 194.831V100.978L198.269 73.0502Z", fill: "white" }),
32652
+ /* @__PURE__ */ jsx255("path", { d: "M201.273 78.2404C200.767 78.2404 200.262 78.0337 199.897 77.6275L197.444 74.8999H193.776C192.754 74.8999 191.926 74.0718 191.926 73.0501C191.926 72.0284 192.754 71.2003 193.776 71.2003H198.268C198.793 71.2003 199.293 71.4232 199.644 71.8132L202.648 75.1537C203.331 75.9135 203.269 77.083 202.509 77.7661C202.156 78.0839 201.714 78.2404 201.273 78.2404Z", fill: "#798295" }),
32653
+ /* @__PURE__ */ jsx255("path", { d: "M211.249 213.45H211.111C210.09 213.45 209.261 212.622 209.261 211.6C209.261 210.578 210.09 209.75 211.111 209.75H211.249C214.146 209.75 216.274 208.026 217.55 206.579C218.225 205.813 219.394 205.739 220.161 206.415C220.927 207.091 221.001 208.26 220.325 209.026C217.809 211.879 214.586 213.45 211.249 213.45ZM203.446 213.45H194.459C193.437 213.45 192.609 212.622 192.609 211.6C192.609 210.578 193.437 209.75 194.459 209.75H203.446C204.467 209.75 205.296 210.578 205.296 211.6C205.296 212.622 204.467 213.45 203.446 213.45ZM186.793 213.45H177.806C176.784 213.45 175.956 212.622 175.956 211.6C175.956 210.578 176.784 209.75 177.806 209.75H186.793C187.815 209.75 188.643 210.578 188.643 211.6C188.643 212.622 187.815 213.45 186.793 213.45ZM170.14 213.45H161.153C160.131 213.45 159.303 212.622 159.303 211.6C159.303 210.578 160.131 209.75 161.153 209.75H170.14C171.162 209.75 171.99 210.578 171.99 211.6C171.99 212.622 171.162 213.45 170.14 213.45ZM153.488 213.45H144.5C143.479 213.45 142.651 212.622 142.651 211.6C142.651 210.578 143.479 209.75 144.5 209.75H153.488C154.509 209.75 155.337 210.578 155.337 211.6C155.337 212.622 154.509 213.45 153.488 213.45ZM136.835 213.45H132.422C130.603 213.45 128.835 212.997 127.167 212.104C126.267 211.621 125.928 210.5 126.41 209.599C126.893 208.699 128.014 208.359 128.914 208.842C130.039 209.445 131.219 209.75 132.422 209.75H136.835C137.857 209.75 138.685 210.578 138.685 211.6C138.685 212.622 137.857 213.45 136.835 213.45ZM122.794 206.881C122.144 206.881 121.513 206.538 121.175 205.929C119.662 203.203 118.738 199.971 118.502 196.584C118.431 195.565 119.2 194.681 120.219 194.61C121.236 194.544 122.122 195.308 122.193 196.328C122.391 199.178 123.158 201.877 124.41 204.133C124.905 205.027 124.583 206.153 123.69 206.648C123.406 206.806 123.098 206.881 122.794 206.881ZM222.508 202.938C222.337 202.938 222.163 202.914 221.99 202.864C221.009 202.578 220.445 201.552 220.731 200.571C221.261 198.75 221.53 196.819 221.53 194.831V192.183C221.53 191.161 222.358 190.333 223.38 190.333C224.402 190.333 225.23 191.161 225.23 192.183V194.831C225.229 197.169 224.911 199.448 224.283 201.605C224.048 202.413 223.309 202.938 222.508 202.938ZM120.291 190.641C119.27 190.641 118.441 189.813 118.441 188.792V179.804C118.441 178.783 119.27 177.955 120.291 177.955C121.313 177.955 122.141 178.783 122.141 179.804V188.792C122.141 189.813 121.313 190.641 120.291 190.641ZM223.38 186.367C222.358 186.367 221.53 185.539 221.53 184.517V175.53C221.53 174.508 222.358 173.68 223.38 173.68C224.402 173.68 225.23 174.508 225.23 175.53V184.517C225.23 185.539 224.402 186.367 223.38 186.367ZM120.291 173.989C119.27 173.989 118.441 173.161 118.441 172.139V163.152C118.441 162.13 119.27 161.302 120.291 161.302C121.313 161.302 122.141 162.13 122.141 163.152V172.139C122.141 173.161 121.313 173.989 120.291 173.989ZM223.38 169.714C222.358 169.714 221.53 168.886 221.53 167.864V158.877C221.53 157.855 222.358 157.027 223.38 157.027C224.402 157.027 225.23 157.855 225.23 158.877V167.864C225.23 168.886 224.402 169.714 223.38 169.714ZM120.291 157.336C119.27 157.336 118.441 156.508 118.441 155.486V146.499C118.441 145.477 119.27 144.649 120.291 144.649C121.313 144.649 122.141 145.477 122.141 146.499V155.486C122.141 156.508 121.313 157.336 120.291 157.336ZM223.38 153.061C222.358 153.061 221.53 152.233 221.53 151.211V142.224C221.53 141.203 222.358 140.375 223.38 140.375C224.402 140.375 225.23 141.203 225.23 142.224V151.211C225.23 152.233 224.402 153.061 223.38 153.061ZM120.291 140.683C119.27 140.683 118.441 139.855 118.441 138.833V129.846C118.441 128.825 119.27 127.997 120.291 127.997C121.313 127.997 122.141 128.825 122.141 129.846V138.833C122.141 139.855 121.313 140.683 120.291 140.683ZM223.38 136.409C222.358 136.409 221.53 135.581 221.53 134.559V125.572C221.53 124.55 222.358 123.722 223.38 123.722C224.402 123.722 225.23 124.55 225.23 125.572V134.559C225.23 135.581 224.402 136.409 223.38 136.409ZM120.291 124.031C119.27 124.031 118.441 123.202 118.441 122.181V113.194C118.441 112.172 119.27 111.344 120.291 111.344C121.313 111.344 122.141 112.172 122.141 113.194V122.181C122.141 123.202 121.313 124.031 120.291 124.031ZM223.38 119.756C222.358 119.756 221.53 118.928 221.53 117.906V108.919C221.53 107.897 222.358 107.069 223.38 107.069C224.402 107.069 225.23 107.897 225.23 108.919V117.906C225.23 118.928 224.402 119.756 223.38 119.756ZM120.291 107.378C119.27 107.378 118.441 106.55 118.441 105.528V96.5409C118.441 95.5193 119.27 94.6911 120.291 94.6911C121.313 94.6911 122.141 95.5193 122.141 96.5409V105.528C122.141 106.55 121.313 107.378 120.291 107.378ZM223.38 103.103C222.537 103.103 221.825 102.539 221.603 101.768L216.18 95.7367C215.497 94.9771 215.559 93.8075 216.318 93.1244C217.078 92.4415 218.248 92.5033 218.931 93.2631L224.755 99.7411C225.061 100.081 225.23 100.521 225.23 100.978V101.253C225.23 102.275 224.402 103.103 223.38 103.103ZM120.312 90.7253C120.287 90.7253 120.262 90.7248 120.236 90.7239C119.215 90.683 118.421 89.8222 118.462 88.8015C118.597 85.4287 119.413 82.1733 120.823 79.3874C121.284 78.4757 122.396 78.1104 123.308 78.5715C124.22 79.0327 124.585 80.1455 124.124 81.0571C122.952 83.3736 122.273 86.1027 122.159 88.9496C122.119 89.9452 121.299 90.7253 120.312 90.7253ZM212.43 90.6496C211.924 90.6496 211.42 90.4429 211.054 90.0366L205.045 83.3536C204.362 82.594 204.425 81.4244 205.184 80.7413C205.944 80.0585 207.113 80.12 207.796 80.88L213.805 87.563C214.489 88.3226 214.426 89.4923 213.667 90.1753C213.313 90.4931 212.871 90.6496 212.43 90.6496ZM127.452 76.3686C126.834 76.3686 126.23 76.0589 125.88 75.4953C125.34 74.6277 125.606 73.487 126.474 72.9477C128.338 71.7883 130.34 71.2004 132.422 71.2004H136.152C137.174 71.2004 138.002 72.0286 138.002 73.0502C138.002 74.0719 137.174 74.9 136.152 74.9H132.422C131.041 74.9 129.697 75.3002 128.427 76.0893C128.123 76.2784 127.786 76.3686 127.452 76.3686ZM186.111 74.9H177.123C176.102 74.9 175.274 74.0719 175.274 73.0502C175.274 72.0286 176.102 71.2004 177.123 71.2004H186.111C187.132 71.2004 187.96 72.0286 187.96 73.0502C187.96 74.0719 187.132 74.9 186.111 74.9ZM169.458 74.9H160.471C159.449 74.9 158.621 74.0719 158.621 73.0502C158.621 72.0286 159.449 71.2004 160.471 71.2004H169.458C170.48 71.2004 171.308 72.0286 171.308 73.0502C171.308 74.0719 170.48 74.9 169.458 74.9ZM152.805 74.9H143.818C142.796 74.9 141.968 74.0719 141.968 73.0502C141.968 72.0286 142.796 71.2004 143.818 71.2004H152.805C153.827 71.2004 154.655 72.0286 154.655 73.0502C154.655 74.0719 153.827 74.9 152.805 74.9Z", fill: "#798295" }),
32654
+ /* @__PURE__ */ jsx255("path", { d: "M192.785 83.3351V99.2582C192.785 102.885 195.726 105.826 199.353 105.826H215.482", fill: "white" }),
32655
+ /* @__PURE__ */ jsx255("path", { d: "M215.39 107.676H206.406C205.384 107.676 204.556 106.848 204.556 105.826C204.556 104.804 205.384 103.976 206.406 103.976H215.39C216.412 103.976 217.24 104.804 217.24 105.826C217.24 106.848 216.412 107.676 215.39 107.676ZM198.745 107.648C198.689 107.648 198.632 107.645 198.574 107.64C194.611 107.275 191.419 104.139 190.986 100.183C190.874 99.1675 191.608 98.2541 192.623 98.1428C193.636 98.0331 194.552 98.7646 194.663 99.7801C194.906 101.996 196.693 103.752 198.913 103.956C199.93 104.049 200.679 104.95 200.585 105.967C200.497 106.927 199.691 107.648 198.745 107.648ZM192.785 94.1696C191.764 94.1696 190.936 93.3415 190.936 92.3198V83.335C190.936 82.3134 191.764 81.4852 192.785 81.4852C193.807 81.4852 194.635 82.3134 194.635 83.335V92.3198C194.635 93.3415 193.807 94.1696 192.785 94.1696Z", fill: "#798295" }),
32656
+ /* @__PURE__ */ jsx255("path", { d: "M189.911 178.207H154.776C153.609 178.207 152.662 177.261 152.662 176.093C152.662 174.926 153.609 173.979 154.776 173.979H189.911C191.078 173.979 192.025 174.926 192.025 176.093C192.025 177.261 191.078 178.207 189.911 178.207Z", fill: "#798295" }),
32657
+ /* @__PURE__ */ jsx255("path", { d: "M171.711 166.32C170.544 166.32 169.597 165.373 169.597 164.206V124.131C169.597 122.963 170.544 122.017 171.711 122.017C172.878 122.017 173.825 122.963 173.825 124.131V164.206C173.825 165.373 172.878 166.32 171.711 166.32Z", fill: "#798295" }),
32658
+ /* @__PURE__ */ jsx255("path", { d: "M191.126 144.439C190.608 144.439 190.089 144.25 189.681 143.868L171.72 127.037L154 143.858C153.154 144.662 151.815 144.628 151.012 143.781C150.208 142.934 150.243 141.596 151.089 140.792L170.256 122.597C171.068 121.827 172.34 121.823 173.157 122.588L192.572 140.783C193.424 141.581 193.467 142.919 192.669 143.771C192.253 144.215 191.69 144.439 191.126 144.439Z", fill: "#798295" }),
32659
+ /* @__PURE__ */ jsx255("path", { d: "M264.954 212.204H230.865C229.989 212.204 229.279 211.494 229.279 210.618C229.279 209.743 229.989 209.033 230.865 209.033H264.954C265.83 209.033 266.54 209.743 266.54 210.618C266.54 211.494 265.83 212.204 264.954 212.204Z", fill: "#798295" }),
32660
+ /* @__PURE__ */ jsx255("path", { d: "M112.806 212.204H80.0384C79.1628 212.204 78.4529 211.494 78.4529 210.618C78.4529 209.743 79.1628 209.033 80.0384 209.033H112.806C113.682 209.033 114.392 209.743 114.392 210.618C114.392 211.494 113.682 212.204 112.806 212.204Z", fill: "#798295" })
32558
32661
  ] });
32559
32662
  }
32560
32663
 
32561
32664
  // src/layouts/SideNavLayout/SideNavLayout.tsx
32562
- import { trussProps as trussProps146, mergeProps as mergeProps43, maybeCssVar as maybeCssVar68 } from "@homebound/truss/runtime";
32563
- import { jsx as jsx255, jsxs as jsxs137 } from "react/jsx-runtime";
32665
+ import { trussProps as trussProps147, mergeProps as mergeProps43, maybeCssVar as maybeCssVar68 } from "@homebound/truss/runtime";
32666
+ import { jsx as jsx256, jsxs as jsxs138 } from "react/jsx-runtime";
32564
32667
  var __maybeInc29 = (inc) => {
32565
32668
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
32566
32669
  };
32567
32670
  function SideNavLayout(props) {
32568
32671
  const hasProvider = useHasSideNavLayoutProvider();
32569
- if (hasProvider) return /* @__PURE__ */ jsx255(SideNavLayoutContent, { ...props });
32570
- return /* @__PURE__ */ jsx255(SideNavLayoutProvider, { children: /* @__PURE__ */ jsx255(SideNavLayoutContent, { ...props }) });
32672
+ if (hasProvider) return /* @__PURE__ */ jsx256(SideNavLayoutContent, { ...props });
32673
+ return /* @__PURE__ */ jsx256(SideNavLayoutProvider, { children: /* @__PURE__ */ jsx256(SideNavLayoutContent, { ...props }) });
32571
32674
  }
32572
32675
  function SideNavLayoutContent(props) {
32573
32676
  const {
@@ -32590,7 +32693,7 @@ function SideNavLayoutContent(props) {
32590
32693
  const railOffsetPx = !showRail ? 0 : !bp.mdAndUp || collapsed ? railCollapsedWidthPx : railWidthPx;
32591
32694
  const navTop = belowNavbarOffset();
32592
32695
  const railViewportHeight = `calc(var(${beamLayoutViewportHeightVar}, 100vh) - var(${beamEnvironmentBannerLayoutHeightVar}, 0px) - var(${beamNavbarLayoutHeightVar}, 0px))`;
32593
- const rail = showRail && /* @__PURE__ */ jsxs137("div", { ...trussProps146({
32696
+ const rail = showRail && /* @__PURE__ */ jsxs138("div", { ...trussProps147({
32594
32697
  ...{
32595
32698
  display: "df",
32596
32699
  flexDirection: "fdc",
@@ -32647,18 +32750,18 @@ function SideNavLayoutContent(props) {
32647
32750
  }
32648
32751
  }
32649
32752
  }), ...tid.sideNav, children: [
32650
- showCollapseToggle && /* @__PURE__ */ jsx255("div", { className: "absolute r_2 top2 z2", children: /* @__PURE__ */ jsx255(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
32651
- /* @__PURE__ */ jsx255("div", { className: "fg1 mh0 df fdc", ...tid.sideNavContent, children: /* @__PURE__ */ jsx255(SideNav, { ...sideNav }) })
32753
+ showCollapseToggle && /* @__PURE__ */ jsx256("div", { className: "absolute r_2 top2 z2", children: /* @__PURE__ */ jsx256(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
32754
+ /* @__PURE__ */ jsx256("div", { className: "fg1 mh0 df fdc", ...tid.sideNavContent, children: /* @__PURE__ */ jsx256(SideNav, { ...sideNav }) })
32652
32755
  ] });
32653
- return /* @__PURE__ */ jsx255(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsxs137("div", { ...mergeProps43(void 0, {
32756
+ return /* @__PURE__ */ jsx256(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsxs138("div", { ...mergeProps43(void 0, {
32654
32757
  [beamSideNavLayoutWidthVar]: `${railOffsetPx}px`
32655
32758
  }, {
32656
32759
  display: "df",
32657
32760
  flexDirection: "fdr",
32658
32761
  width: "w100"
32659
32762
  }), ...tid, children: [
32660
- contrastRail ? /* @__PURE__ */ jsx255(ContrastScope, { children: rail }) : rail,
32661
- /* @__PURE__ */ jsx255("div", { ...trussProps146({
32763
+ contrastRail ? /* @__PURE__ */ jsx256(ContrastScope, { children: rail }) : rail,
32764
+ /* @__PURE__ */ jsx256("div", { ...trussProps147({
32662
32765
  display: "df",
32663
32766
  flexDirection: "fdc",
32664
32767
  flexGrow: "fg1",
@@ -32675,7 +32778,7 @@ function SideNavLayoutContent(props) {
32675
32778
 
32676
32779
  // src/layouts/CenteredLayout/CenteredLayout.tsx
32677
32780
  import { mergeProps as mergeProps44 } from "@homebound/truss/runtime";
32678
- import { jsx as jsx256 } from "react/jsx-runtime";
32781
+ import { jsx as jsx257 } from "react/jsx-runtime";
32679
32782
  function CenteredLayout(props) {
32680
32783
  const {
32681
32784
  size,
@@ -32687,7 +32790,7 @@ function CenteredLayout(props) {
32687
32790
  mdAndUp
32688
32791
  } = useBreakpoint();
32689
32792
  const rightPane = resolveWithRightPaneOptions(withRightPane);
32690
- const shell = /* @__PURE__ */ jsx256(ContentInsetProvider, { children: /* @__PURE__ */ jsx256("div", { ...mergeProps44(void 0, {
32793
+ const shell = /* @__PURE__ */ jsx257(ContentInsetProvider, { children: /* @__PURE__ */ jsx257("div", { ...mergeProps44(void 0, {
32691
32794
  // layoutContainer descendants (e.g. ContentHeader) read this to inset sticky horizontal chrome within the shell padding.
32692
32795
  [beamLayoutContentPaddingXVar]: mdAndUp ? pageContentPaddingXValue : smPageContentPaddingXValue,
32693
32796
  // Floor while an ancestor overlay pane is open (`0px` when closed). `md+` only — phones must not get a dummy scrollbar.
@@ -32706,7 +32809,7 @@ function CenteredLayout(props) {
32706
32809
  ...pageContentPaddingX
32707
32810
  }), ...tid, children }) });
32708
32811
  if (!rightPane) return shell;
32709
- return /* @__PURE__ */ jsx256(DocumentScrollOverlayRightPaneLayout, { paneWidth: rightPane.width, children: shell });
32812
+ return /* @__PURE__ */ jsx257(DocumentScrollOverlayRightPaneLayout, { paneWidth: rightPane.width, children: shell });
32710
32813
  }
32711
32814
  var centeredContentMaxPx = {
32712
32815
  sm: 720,
@@ -32719,8 +32822,8 @@ var centeredShellMaxPx = {
32719
32822
  };
32720
32823
 
32721
32824
  // src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayout.tsx
32722
- import { trussProps as trussProps147, mergeProps as mergeProps45, maybeCssVar as maybeCssVar69 } from "@homebound/truss/runtime";
32723
- import { jsx as jsx257, jsxs as jsxs138 } from "react/jsx-runtime";
32825
+ import { trussProps as trussProps148, mergeProps as mergeProps45, maybeCssVar as maybeCssVar69 } from "@homebound/truss/runtime";
32826
+ import { jsx as jsx258, jsxs as jsxs139 } from "react/jsx-runtime";
32724
32827
  var __maybeInc30 = (inc) => {
32725
32828
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
32726
32829
  };
@@ -32736,18 +32839,18 @@ function EnvironmentBannerLayout(props) {
32736
32839
  [beamEnvironmentBannerLayoutHeightVar]: `${bannerHeightPx}px`
32737
32840
  };
32738
32841
  const innerWidth = `var(${beamLayoutViewportWidthVar}, 100vw)`;
32739
- return /* @__PURE__ */ jsx257(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsx257(EnvironmentBannerLayoutHeightProvider, { value: bannerHeightPx, children: /* @__PURE__ */ jsxs138("div", { ...mergeProps45(void 0, style, {
32842
+ return /* @__PURE__ */ jsx258(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsx258(EnvironmentBannerLayoutHeightProvider, { value: bannerHeightPx, children: /* @__PURE__ */ jsxs139("div", { ...mergeProps45(void 0, style, {
32740
32843
  display: "df",
32741
32844
  flexDirection: "fdc",
32742
32845
  width: "wfc",
32743
32846
  minWidth: "mw100"
32744
32847
  }), ...tid, children: [
32745
- showBanner && environmentBanner && /* @__PURE__ */ jsx257("div", { ...mergeProps45(void 0, {
32848
+ showBanner && environmentBanner && /* @__PURE__ */ jsx258("div", { ...mergeProps45(void 0, {
32746
32849
  height: environmentBannerSizePx
32747
32850
  }, {
32748
32851
  flexShrink: "fs0",
32749
32852
  width: "w100"
32750
- }), children: /* @__PURE__ */ jsx257("div", { ...trussProps147({
32853
+ }), children: /* @__PURE__ */ jsx258("div", { ...trussProps148({
32751
32854
  position: "fixed",
32752
32855
  top: "top0",
32753
32856
  left: "l_0",
@@ -32757,24 +32860,24 @@ function EnvironmentBannerLayout(props) {
32757
32860
  width: ["w_var", {
32758
32861
  "--width": maybeCssVar69(__maybeInc30(innerWidth))
32759
32862
  }]
32760
- }), ...tid.bannerSticky, children: /* @__PURE__ */ jsx257(EnvironmentBanner, { ...environmentBanner, ...tid.environmentBanner }) }) }),
32863
+ }), ...tid.bannerSticky, children: /* @__PURE__ */ jsx258(EnvironmentBanner, { ...environmentBanner, ...tid.environmentBanner }) }) }),
32761
32864
  children
32762
32865
  ] }) }) });
32763
32866
  }
32764
32867
 
32765
32868
  // src/layouts/FormSectionLayout/FormSectionLayout.tsx
32766
- import { trussProps as trussProps151, maybeCssVar as maybeCssVar72 } from "@homebound/truss/runtime";
32869
+ import { trussProps as trussProps152, maybeCssVar as maybeCssVar72 } from "@homebound/truss/runtime";
32767
32870
 
32768
32871
  // src/forms/FormSection/FormSection.tsx
32769
32872
  import { useCheckboxGroup as useCheckboxGroup4, useRadioGroup as useRadioGroup3 } from "react-aria";
32770
32873
  import { useCheckboxGroupState as useCheckboxGroupState4, useRadioGroupState as useRadioGroupState3 } from "react-stately";
32771
- import { trussProps as trussProps149, maybeCssVar as maybeCssVar70 } from "@homebound/truss/runtime";
32874
+ import { trussProps as trussProps150, maybeCssVar as maybeCssVar70 } from "@homebound/truss/runtime";
32772
32875
 
32773
32876
  // src/forms/FormSection/FormSectionChild.tsx
32774
- import { useRef as useRef77 } from "react";
32877
+ import { useRef as useRef78 } from "react";
32775
32878
  import { mergeProps as mergeProps46, useCheckboxGroupItem as useCheckboxGroupItem4, useFocusRing as useFocusRing23, useRadio as useRadio3, VisuallyHidden as VisuallyHidden11 } from "react-aria";
32776
- import { trussProps as trussProps148 } from "@homebound/truss/runtime";
32777
- import { Fragment as Fragment56, jsx as jsx258, jsxs as jsxs139 } from "react/jsx-runtime";
32879
+ import { trussProps as trussProps149 } from "@homebound/truss/runtime";
32880
+ import { Fragment as Fragment56, jsx as jsx259, jsxs as jsxs140 } from "react/jsx-runtime";
32778
32881
  function FormSectionChild(props) {
32779
32882
  const {
32780
32883
  title,
@@ -32788,7 +32891,7 @@ function FormSectionChild(props) {
32788
32891
  group
32789
32892
  } = props;
32790
32893
  const tid = useTestIds(props, "formSectionChild");
32791
- const itemRef = useRef77(null);
32894
+ const itemRef = useRef78(null);
32792
32895
  const isDraggable = !!orderField;
32793
32896
  const {
32794
32897
  dragItemProps,
@@ -32797,11 +32900,11 @@ function FormSectionChild(props) {
32797
32900
  id: props.id ?? title,
32798
32901
  itemRef
32799
32902
  });
32800
- const control = group?.mode === "single" ? /* @__PURE__ */ jsx258(FormSectionChildRadio, { state: group.state, value, label: title, ...tid.radio }) : group?.mode === "multiple" ? /* @__PURE__ */ jsx258(FormSectionChildCheckbox, { state: group.state, value, label: title, ...tid.checkbox }) : selection ? /* @__PURE__ */ jsx258(BoundCheckboxField, { field: selection.field, label: title, checkboxOnly: true, ...tid.checkbox }) : void 0;
32801
- return /* @__PURE__ */ jsxs139("div", { ...isDraggable ? {
32903
+ const control = group?.mode === "single" ? /* @__PURE__ */ jsx259(FormSectionChildRadio, { state: group.state, value, label: title, ...tid.radio }) : group?.mode === "multiple" ? /* @__PURE__ */ jsx259(FormSectionChildCheckbox, { state: group.state, value, label: title, ...tid.checkbox }) : selection ? /* @__PURE__ */ jsx259(BoundCheckboxField, { field: selection.field, label: title, checkboxOnly: true, ...tid.checkbox }) : void 0;
32904
+ return /* @__PURE__ */ jsxs140("div", { ...isDraggable ? {
32802
32905
  ...dragItemProps,
32803
32906
  ref: itemRef
32804
- } : {}, ...trussProps148({
32907
+ } : {}, ...trussProps149({
32805
32908
  display: "df",
32806
32909
  flexDirection: "fdc",
32807
32910
  gap: "g_2",
@@ -32817,8 +32920,8 @@ function FormSectionChild(props) {
32817
32920
  borderStyle: "lot_bsn",
32818
32921
  borderWidth: "lot_bw_0"
32819
32922
  }), ...tid, children: [
32820
- /* @__PURE__ */ jsx258(ContentHeader, { ...tid.header, title, description, actions, level: 4, rightSlotLead: tag && /* @__PURE__ */ jsx258(Tag, { ...tag, ...tid.tag }), startAdornment: isDraggable || control ? /* @__PURE__ */ jsxs139(Fragment56, { children: [
32821
- isDraggable && /* @__PURE__ */ jsx258(DnDGridItemHandle, { dragHandleProps, icon: "drag", compact: true }),
32923
+ /* @__PURE__ */ jsx259(ContentHeader, { ...tid.header, title, description, actions, level: 4, rightSlotLead: tag && /* @__PURE__ */ jsx259(Tag, { ...tag, ...tid.tag }), startAdornment: isDraggable || control ? /* @__PURE__ */ jsxs140(Fragment56, { children: [
32924
+ isDraggable && /* @__PURE__ */ jsx259(DnDGridItemHandle, { dragHandleProps, icon: "drag", compact: true }),
32822
32925
  control
32823
32926
  ] }) : void 0 }),
32824
32927
  fields
@@ -32830,7 +32933,7 @@ function FormSectionChildRadio(props) {
32830
32933
  value,
32831
32934
  label
32832
32935
  } = props;
32833
- const ref = useRef77(null);
32936
+ const ref = useRef78(null);
32834
32937
  const {
32835
32938
  inputProps,
32836
32939
  isDisabled,
@@ -32844,7 +32947,7 @@ function FormSectionChildRadio(props) {
32844
32947
  isFocusVisible
32845
32948
  } = useFocusRing23();
32846
32949
  const tid = useTestIds(props);
32847
- return /* @__PURE__ */ jsx258(StyledRadio, { isDisabled, isSelected, isFocusVisible, inputProps: {
32950
+ return /* @__PURE__ */ jsx259(StyledRadio, { isDisabled, isSelected, isFocusVisible, inputProps: {
32848
32951
  ...mergeProps46(inputProps, focusProps),
32849
32952
  ref,
32850
32953
  ...tid
@@ -32856,7 +32959,7 @@ function FormSectionChildCheckbox(props) {
32856
32959
  value,
32857
32960
  label
32858
32961
  } = props;
32859
- const ref = useRef77(null);
32962
+ const ref = useRef78(null);
32860
32963
  const {
32861
32964
  inputProps,
32862
32965
  isDisabled,
@@ -32872,21 +32975,21 @@ function FormSectionChildCheckbox(props) {
32872
32975
  const tid = useTestIds(props);
32873
32976
  return (
32874
32977
  // `StyledCheckbox` is just the visual box, so the label makes clicking it toggle the hidden input
32875
- /* @__PURE__ */ jsxs139("label", { ...trussProps148({
32978
+ /* @__PURE__ */ jsxs140("label", { ...trussProps149({
32876
32979
  display: "df",
32877
32980
  cursor: "cur_pointer",
32878
32981
  ...isDisabled ? {
32879
32982
  cursor: "cur_not_allowed"
32880
32983
  } : {}
32881
32984
  }), children: [
32882
- /* @__PURE__ */ jsx258(VisuallyHidden11, { children: /* @__PURE__ */ jsx258("input", { ref, ...mergeProps46(inputProps, focusProps), ...tid }) }),
32883
- /* @__PURE__ */ jsx258(StyledCheckbox, { isDisabled, isSelected, isFocusVisible })
32985
+ /* @__PURE__ */ jsx259(VisuallyHidden11, { children: /* @__PURE__ */ jsx259("input", { ref, ...mergeProps46(inputProps, focusProps), ...tid }) }),
32986
+ /* @__PURE__ */ jsx259(StyledCheckbox, { isDisabled, isSelected, isFocusVisible })
32884
32987
  ] })
32885
32988
  );
32886
32989
  }
32887
32990
 
32888
32991
  // src/forms/FormSection/FormSection.tsx
32889
- import { jsx as jsx259, jsxs as jsxs140 } from "react/jsx-runtime";
32992
+ import { jsx as jsx260, jsxs as jsxs141 } from "react/jsx-runtime";
32890
32993
  function FormSection(props) {
32891
32994
  const {
32892
32995
  title,
@@ -32897,7 +33000,7 @@ function FormSection(props) {
32897
33000
  selection
32898
33001
  } = props;
32899
33002
  const tid = useTestIds(props, "formSection");
32900
- return /* @__PURE__ */ jsxs140("div", { id: defaultTestId(title), ...trussProps149({
33003
+ return /* @__PURE__ */ jsxs141("div", { id: defaultTestId(title), ...trussProps150({
32901
33004
  display: "df",
32902
33005
  flexDirection: "fdc",
32903
33006
  gap: "g_2",
@@ -32905,9 +33008,9 @@ function FormSection(props) {
32905
33008
  "--scrollMarginTop": maybeCssVar70(stickyNavAndHeaderOffset())
32906
33009
  }]
32907
33010
  }), ...tid.section, children: [
32908
- /* @__PURE__ */ jsx259(ContentHeader, { ...tid, title, description, actions, level: 3 }),
33011
+ /* @__PURE__ */ jsx260(ContentHeader, { ...tid, title, description, actions, level: 3 }),
32909
33012
  fields,
32910
- childSections && (selection?.mode === "single" ? /* @__PURE__ */ jsx259(FormSectionRadioGroup, { field: selection.field, label: title, childSections, ...tid }) : selection?.mode === "multiple" ? /* @__PURE__ */ jsx259(FormSectionCheckboxGroup, { field: selection.field, label: title, childSections, ...tid }) : /* @__PURE__ */ jsx259(ChildSectionList, { childSections, ...tid.childSection }))
33013
+ childSections && (selection?.mode === "single" ? /* @__PURE__ */ jsx260(FormSectionRadioGroup, { field: selection.field, label: title, childSections, ...tid }) : selection?.mode === "multiple" ? /* @__PURE__ */ jsx260(FormSectionCheckboxGroup, { field: selection.field, label: title, childSections, ...tid }) : /* @__PURE__ */ jsx260(ChildSectionList, { childSections, ...tid.childSection }))
32911
33014
  ] });
32912
33015
  }
32913
33016
  function FormSectionRadioGroup(props) {
@@ -32940,7 +33043,7 @@ function FormSectionRadioGroup(props) {
32940
33043
  onFocus: () => field.focus(),
32941
33044
  onBlur: () => field.blur()
32942
33045
  }, state);
32943
- return /* @__PURE__ */ jsx259("div", { ...radioGroupProps, ...tid.childGroup, children: /* @__PURE__ */ jsx259(ChildSectionList, { childSections, group: {
33046
+ return /* @__PURE__ */ jsx260("div", { ...radioGroupProps, ...tid.childGroup, children: /* @__PURE__ */ jsx260(ChildSectionList, { childSections, group: {
32944
33047
  mode: "single",
32945
33048
  state
32946
33049
  }, ...tid.childSection }) });
@@ -32975,7 +33078,7 @@ function FormSectionCheckboxGroup(props) {
32975
33078
  onFocus: () => field.focus(),
32976
33079
  onBlur: () => field.blur()
32977
33080
  }, state);
32978
- return /* @__PURE__ */ jsx259("div", { ...groupProps, ...tid.childGroup, children: /* @__PURE__ */ jsx259(ChildSectionList, { childSections, group: {
33081
+ return /* @__PURE__ */ jsx260("div", { ...groupProps, ...tid.childGroup, children: /* @__PURE__ */ jsx260(ChildSectionList, { childSections, group: {
32979
33082
  mode: "multiple",
32980
33083
  state
32981
33084
  }, ...tid.childSection }) });
@@ -32986,7 +33089,7 @@ function ChildSectionList(props) {
32986
33089
  group,
32987
33090
  ...tid
32988
33091
  } = props;
32989
- return isReorderable(childSections) ? /* @__PURE__ */ jsx259(DraggableChildren, { childSections, group, ...tid }) : /* @__PURE__ */ jsx259("div", { className: "df fdc g_3", children: childSections.map((child) => /* @__PURE__ */ jsx259(FormSectionChild, { ...child, group, ...tid }, child.id ?? child.title)) });
33092
+ return isReorderable(childSections) ? /* @__PURE__ */ jsx260(DraggableChildren, { childSections, group, ...tid }) : /* @__PURE__ */ jsx260("div", { className: "df fdc g_3", children: childSections.map((child) => /* @__PURE__ */ jsx260(FormSectionChild, { ...child, group, ...tid }, child.id ?? child.title)) });
32990
33093
  }
32991
33094
  function isReorderable(childSections) {
32992
33095
  return childSections.length > 0 && childSections.every((c) => !!c.orderField);
@@ -33009,18 +33112,18 @@ function DraggableChildren(props) {
33009
33112
  }
33010
33113
  });
33011
33114
  };
33012
- return /* @__PURE__ */ jsx259(DnDGrid, { onReorder: handleReorder, lockAxis: "y", gridStyles: {
33115
+ return /* @__PURE__ */ jsx260(DnDGrid, { onReorder: handleReorder, lockAxis: "y", gridStyles: {
33013
33116
  gridTemplateColumns: "gtc_minmax_0_1fr",
33014
33117
  gap: "g_3"
33015
- }, children: sorted.map((child) => /* @__PURE__ */ jsx259(FormSectionChild, { ...child, group, ...tid }, child.id)) });
33118
+ }, children: sorted.map((child) => /* @__PURE__ */ jsx260(FormSectionChild, { ...child, group, ...tid }, child.id)) });
33016
33119
  }
33017
33120
  function sortByOrderField(childSections) {
33018
33121
  return [...childSections].sort((a, b) => (a.orderField.value ?? 0) - (b.orderField.value ?? 0));
33019
33122
  }
33020
33123
 
33021
33124
  // src/layouts/FormSectionLayout/JumpLinksRail.tsx
33022
- import { trussProps as trussProps150, maybeCssVar as maybeCssVar71 } from "@homebound/truss/runtime";
33023
- import { jsx as jsx260 } from "react/jsx-runtime";
33125
+ import { trussProps as trussProps151, maybeCssVar as maybeCssVar71 } from "@homebound/truss/runtime";
33126
+ import { jsx as jsx261 } from "react/jsx-runtime";
33024
33127
  var __maybeInc31 = (inc) => {
33025
33128
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33026
33129
  };
@@ -33030,7 +33133,7 @@ function JumpLinksRail(props) {
33030
33133
  activeId
33031
33134
  } = props;
33032
33135
  const tid = useTestIds(props, "jumpLinks");
33033
- return /* @__PURE__ */ jsx260("nav", { ...trussProps150({
33136
+ return /* @__PURE__ */ jsx261("nav", { ...trussProps151({
33034
33137
  display: "df",
33035
33138
  flexDirection: "fdc",
33036
33139
  flexShrink: "fs0",
@@ -33042,19 +33145,19 @@ function JumpLinksRail(props) {
33042
33145
  top: ["top_var", {
33043
33146
  "--top": maybeCssVar71(__maybeInc31(stickyNavAndHeaderOffset()))
33044
33147
  }]
33045
- }), ...tid, children: links.map((link) => /* @__PURE__ */ jsx260(JumpLink, { label: link.label, href: `#${link.id}`, active: link.id === activeId, ...tid.link }, link.id)) });
33148
+ }), ...tid, children: links.map((link) => /* @__PURE__ */ jsx261(JumpLink, { label: link.label, href: `#${link.id}`, active: link.id === activeId, ...tid.link }, link.id)) });
33046
33149
  }
33047
33150
  var jumpLinksRailWidthPx = 192;
33048
33151
  var railAndShellPx = centeredShellMaxPx.sm + jumpLinksRailWidthPx;
33049
33152
  var jumpLinksRailReservation = `clamp(0px, 100% - ${railAndShellPx}px, ${jumpLinksRailWidthPx}px)`;
33050
33153
 
33051
33154
  // src/layouts/FormSectionLayout/useActiveJumpLink.ts
33052
- import { useLayoutEffect as useLayoutEffect17, useState as useState67 } from "react";
33155
+ import { useLayoutEffect as useLayoutEffect18, useState as useState68 } from "react";
33053
33156
  var activationLeadPx = 120;
33054
33157
  function useActiveJumpLink(sectionIds) {
33055
33158
  const idsKey = sectionIds.join("\0");
33056
- const [activeId, setActiveId] = useState67(sectionIds[0]);
33057
- useLayoutEffect17(() => {
33159
+ const [activeId, setActiveId] = useState68(sectionIds[0]);
33160
+ useLayoutEffect18(() => {
33058
33161
  const ids = idsKey.length === 0 ? [] : idsKey.split("\0");
33059
33162
  if (ids.length === 0) return;
33060
33163
  const update = () => {
@@ -33078,7 +33181,7 @@ function useActiveJumpLink(sectionIds) {
33078
33181
  }
33079
33182
 
33080
33183
  // src/layouts/FormSectionLayout/FormSectionLayout.tsx
33081
- import { jsx as jsx261, jsxs as jsxs141 } from "react/jsx-runtime";
33184
+ import { jsx as jsx262, jsxs as jsxs142 } from "react/jsx-runtime";
33082
33185
  var __maybeInc32 = (inc) => {
33083
33186
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33084
33187
  };
@@ -33115,7 +33218,7 @@ function FormSectionLayout(props) {
33115
33218
  }] : [], ...sectionLinks];
33116
33219
  const showRail = withJumpLinks && jumpLinks.length >= 2 && !isMobile;
33117
33220
  const activeId = useActiveJumpLink(showRail ? jumpLinks.map((link) => link.id) : []);
33118
- const content2 = /* @__PURE__ */ jsxs141("div", { ...trussProps151({
33221
+ const content2 = /* @__PURE__ */ jsxs142("div", { ...trussProps152({
33119
33222
  display: "df",
33120
33223
  flexDirection: "fdc",
33121
33224
  gap: "g_8",
@@ -33126,7 +33229,7 @@ function FormSectionLayout(props) {
33126
33229
  paddingLeft: "pl3"
33127
33230
  } : {}
33128
33231
  }), children: [
33129
- /* @__PURE__ */ jsxs141("div", { id: titleAnchor ? formSectionLayoutTitleId : void 0, ...trussProps151({
33232
+ /* @__PURE__ */ jsxs142("div", { id: titleAnchor ? formSectionLayoutTitleId : void 0, ...trussProps152({
33130
33233
  display: "df",
33131
33234
  flexDirection: "fdc",
33132
33235
  gap: "g_3",
@@ -33136,27 +33239,27 @@ function FormSectionLayout(props) {
33136
33239
  }]
33137
33240
  } : {}
33138
33241
  }), children: [
33139
- /* @__PURE__ */ jsx261(ContentHeader, { ...tid, title, description, actions, withAutoSave, level: 2, aiMode }),
33242
+ /* @__PURE__ */ jsx262(ContentHeader, { ...tid, title, description, actions, withAutoSave, level: 2, aiMode }),
33140
33243
  initialFields
33141
33244
  ] }),
33142
- sections && /* @__PURE__ */ jsx261("div", { className: "df fdc g_8", children: sections.map((section, i) => /* @__PURE__ */ jsx261(FormSection, { ...section }, defaultTestId(section.title) || i)) })
33245
+ sections && /* @__PURE__ */ jsx262("div", { className: "df fdc g_8", children: sections.map((section, i) => /* @__PURE__ */ jsx262(FormSection, { ...section }, defaultTestId(section.title) || i)) })
33143
33246
  ] });
33144
- const form = /* @__PURE__ */ jsx261(CenteredLayout, { size: "sm", children: aiMode ? /* @__PURE__ */ jsx261(AiCard, { size: "lg", ...tid, children: content2 }) : content2 });
33145
- const body = showRail ? /* @__PURE__ */ jsxs141("div", { className: "df w100 mb4", children: [
33146
- /* @__PURE__ */ jsx261(JumpLinksRail, { links: jumpLinks, activeId, ...tid.jumpLinks }),
33147
- /* @__PURE__ */ jsx261("div", { ...trussProps151({
33247
+ const form = /* @__PURE__ */ jsx262(CenteredLayout, { size: "sm", children: aiMode ? /* @__PURE__ */ jsx262(AiCard, { size: "lg", ...tid, children: content2 }) : content2 });
33248
+ const body = showRail ? /* @__PURE__ */ jsxs142("div", { className: "df w100 mb4", children: [
33249
+ /* @__PURE__ */ jsx262(JumpLinksRail, { links: jumpLinks, activeId, ...tid.jumpLinks }),
33250
+ /* @__PURE__ */ jsx262("div", { ...trussProps152({
33148
33251
  flexGrow: "fg1",
33149
33252
  marginRight: ["mr_var", {
33150
33253
  "--marginRight": maybeCssVar72(__maybeInc32(jumpLinksRailReservation))
33151
33254
  }]
33152
33255
  }), ...tid.column, children: form })
33153
- ] }) : /* @__PURE__ */ jsx261("div", { className: "mb4", children: form });
33256
+ ] }) : /* @__PURE__ */ jsx262("div", { className: "mb4", children: form });
33154
33257
  if (!rightPane) return body;
33155
- return /* @__PURE__ */ jsx261(DocumentScrollOverlayRightPaneLayout, { paneWidth: rightPane.width, children: body });
33258
+ return /* @__PURE__ */ jsx262(DocumentScrollOverlayRightPaneLayout, { paneWidth: rightPane.width, children: body });
33156
33259
  }
33157
33260
 
33158
33261
  // src/layouts/PageBanner/usePageBanner.tsx
33159
- import { useEffect as useEffect42, useId as useId5, useLayoutEffect as useLayoutEffect18 } from "react";
33262
+ import { useEffect as useEffect42, useId as useId5, useLayoutEffect as useLayoutEffect19 } from "react";
33160
33263
 
33161
33264
  // src/layouts/PageBanner/pageBannerStore.ts
33162
33265
  var current;
@@ -33194,7 +33297,7 @@ function clearPageBanner(id) {
33194
33297
  // src/layouts/PageBanner/usePageBanner.tsx
33195
33298
  function usePageBanner(banner) {
33196
33299
  const id = useId5();
33197
- useLayoutEffect18(() => {
33300
+ useLayoutEffect19(() => {
33198
33301
  if (!banner) return;
33199
33302
  setPageBanner(id, banner);
33200
33303
  return () => clearPageBanner(id);
@@ -33210,11 +33313,11 @@ function PageBanner(props) {
33210
33313
  }
33211
33314
 
33212
33315
  // src/layouts/NavbarLayout/NavbarLayout.tsx
33213
- import { useMemo as useMemo62, useRef as useRef79 } from "react";
33316
+ import { useMemo as useMemo62, useRef as useRef80 } from "react";
33214
33317
  import { mergeProps as mergeProps47, maybeCssVar as maybeCssVar73 } from "@homebound/truss/runtime";
33215
33318
 
33216
33319
  // src/layouts/useAutoHideOnScroll.ts
33217
- import { useLayoutEffect as useLayoutEffect19, useRef as useRef78, useState as useState68 } from "react";
33320
+ import { useLayoutEffect as useLayoutEffect20, useRef as useRef79, useState as useState69 } from "react";
33218
33321
  var THRESHOLD = 80;
33219
33322
  function getInitialAutoHideState() {
33220
33323
  if (typeof window === "undefined" || window.scrollY <= 0) {
@@ -33224,13 +33327,13 @@ function getInitialAutoHideState() {
33224
33327
  }
33225
33328
  function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
33226
33329
  const initial = getInitialAutoHideState();
33227
- const [state, setState] = useState68(initial);
33228
- const stateRef = useRef78(initial);
33229
- const getTopOffsetRef = useRef78(getTopOffset);
33330
+ const [state, setState] = useState69(initial);
33331
+ const stateRef = useRef79(initial);
33332
+ const getTopOffsetRef = useRef79(getTopOffset);
33230
33333
  getTopOffsetRef.current = getTopOffset;
33231
- const lastScrollY = useRef78(Number.POSITIVE_INFINITY);
33232
- const lastScrollHeight = useRef78(0);
33233
- useLayoutEffect19(() => {
33334
+ const lastScrollY = useRef79(Number.POSITIVE_INFINITY);
33335
+ const lastScrollHeight = useRef79(0);
33336
+ useLayoutEffect20(() => {
33234
33337
  if (!enabled) {
33235
33338
  stateRef.current = "resting";
33236
33339
  lastScrollY.current = Number.POSITIVE_INFINITY;
@@ -33295,26 +33398,26 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
33295
33398
  }
33296
33399
 
33297
33400
  // src/layouts/useMeasuredHeight.ts
33298
- import { useResizeObserver as useResizeObserver14 } from "@react-aria/utils";
33299
- import { useCallback as useCallback46, useLayoutEffect as useLayoutEffect20, useState as useState69 } from "react";
33401
+ import { useResizeObserver as useResizeObserver15 } from "@react-aria/utils";
33402
+ import { useCallback as useCallback47, useLayoutEffect as useLayoutEffect21, useState as useState70 } from "react";
33300
33403
  function useMeasuredHeight(ref, enabled) {
33301
- const [height, setHeight] = useState69(0);
33302
- const syncElementHeight = useCallback46(() => {
33404
+ const [height, setHeight] = useState70(0);
33405
+ const syncElementHeight = useCallback47(() => {
33303
33406
  const el = ref.current;
33304
33407
  const next = el ? Math.round(el.getBoundingClientRect().height) : 0;
33305
33408
  setHeight((prev) => prev === next ? prev : next);
33306
33409
  }, [ref]);
33307
- useResizeObserver14({ ref, onResize: syncElementHeight });
33308
- useLayoutEffect20(() => {
33410
+ useResizeObserver15({ ref, onResize: syncElementHeight });
33411
+ useLayoutEffect21(() => {
33309
33412
  syncElementHeight();
33310
33413
  }, [enabled, syncElementHeight]);
33311
33414
  return height;
33312
33415
  }
33313
33416
 
33314
33417
  // src/layouts/useTransitionAfterPaint.ts
33315
- import { useLayoutEffect as useLayoutEffect21 } from "react";
33418
+ import { useLayoutEffect as useLayoutEffect22 } from "react";
33316
33419
  function useTransitionAfterPaint(ref, transition) {
33317
- useLayoutEffect21(() => {
33420
+ useLayoutEffect22(() => {
33318
33421
  const el = ref.current;
33319
33422
  if (!el) return;
33320
33423
  const id = requestAnimationFrame(() => {
@@ -33326,17 +33429,17 @@ function useTransitionAfterPaint(ref, transition) {
33326
33429
 
33327
33430
  // src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
33328
33431
  import { createContext as createContext19, useContext as useContext30 } from "react";
33329
- import { jsx as jsx262 } from "react/jsx-runtime";
33432
+ import { jsx as jsx263 } from "react/jsx-runtime";
33330
33433
  var NavbarLayoutHeightContext = createContext19(0);
33331
33434
  function NavbarLayoutHeightProvider({ value, children }) {
33332
- return /* @__PURE__ */ jsx262(NavbarLayoutHeightContext.Provider, { value, children });
33435
+ return /* @__PURE__ */ jsx263(NavbarLayoutHeightContext.Provider, { value, children });
33333
33436
  }
33334
33437
  function useNavbarLayoutHeight() {
33335
33438
  return useContext30(NavbarLayoutHeightContext);
33336
33439
  }
33337
33440
 
33338
33441
  // src/layouts/NavbarLayout/NavbarLayout.tsx
33339
- import { jsx as jsx263, jsxs as jsxs142 } from "react/jsx-runtime";
33442
+ import { jsx as jsx264, jsxs as jsxs143 } from "react/jsx-runtime";
33340
33443
  var __maybeInc33 = (inc) => {
33341
33444
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33342
33445
  };
@@ -33346,8 +33449,8 @@ function NavbarLayout(props) {
33346
33449
  children
33347
33450
  } = props;
33348
33451
  const tid = useTestIds(props, "navbarLayout");
33349
- const navMetricsRef = useRef79(null);
33350
- const spacerRef = useRef79(null);
33452
+ const navMetricsRef = useRef80(null);
33453
+ const spacerRef = useRef80(null);
33351
33454
  const navHeight = useMeasuredHeight(navMetricsRef, true);
33352
33455
  const {
33353
33456
  state: autoHideState
@@ -33373,32 +33476,32 @@ function NavbarLayout(props) {
33373
33476
  const innerStyle = {
33374
33477
  top: autoHideState === "hidden" ? `calc(${bannerTop} - ${navHeight}px)` : bannerTop
33375
33478
  };
33376
- const navbarEl = useMemo62(() => /* @__PURE__ */ jsx263(Navbar, { ...navbar }), [navbar]);
33377
- return /* @__PURE__ */ jsx263(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsx263(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ jsx263(MobileSubNavProvider, { children: /* @__PURE__ */ jsxs142("div", { ...mergeProps47(void 0, cssVars, {
33479
+ const navbarEl = useMemo62(() => /* @__PURE__ */ jsx264(Navbar, { ...navbar }), [navbar]);
33480
+ return /* @__PURE__ */ jsx264(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsx264(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ jsx264(MobileSubNavProvider, { children: /* @__PURE__ */ jsxs143("div", { ...mergeProps47(void 0, cssVars, {
33378
33481
  display: "df",
33379
33482
  flexDirection: "fdc",
33380
33483
  width: "wfc",
33381
33484
  minWidth: "mw100"
33382
33485
  }), ...tid, children: [
33383
- /* @__PURE__ */ jsx263("div", { ref: spacerRef, ...mergeProps47(void 0, {
33486
+ /* @__PURE__ */ jsx264("div", { ref: spacerRef, ...mergeProps47(void 0, {
33384
33487
  height: navHeight
33385
33488
  }, {
33386
33489
  flexShrink: "fs0",
33387
33490
  width: "w100"
33388
- }), children: /* @__PURE__ */ jsx263("div", { ref: navMetricsRef, ...mergeProps47(void 0, innerStyle, innerCss), ...tid.navbar, children: navbarEl }) }),
33389
- /* @__PURE__ */ jsx263("div", { className: "df fdc mh0 mw100 w100", ...tid.body, children })
33491
+ }), children: /* @__PURE__ */ jsx264("div", { ref: navMetricsRef, ...mergeProps47(void 0, innerStyle, innerCss), ...tid.navbar, children: navbarEl }) }),
33492
+ /* @__PURE__ */ jsx264("div", { className: "df fdc mh0 mw100 w100", ...tid.body, children })
33390
33493
  ] }) }) }) });
33391
33494
  }
33392
33495
 
33393
33496
  // src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
33394
- import { useCallback as useCallback48, useMemo as useMemo63, useRef as useRef81 } from "react";
33497
+ import { useCallback as useCallback49, useMemo as useMemo63, useRef as useRef82 } from "react";
33395
33498
 
33396
33499
  // src/hooks/useDocumentTitle.tsx
33397
- import { useLayoutEffect as useLayoutEffect22 } from "react";
33500
+ import { useLayoutEffect as useLayoutEffect23 } from "react";
33398
33501
  function useDocumentTitle(...titleSegments) {
33399
33502
  const config = useDocumentTitleConfig();
33400
33503
  const pageTitle = joinDocumentTitleSegments(...titleSegments);
33401
- useLayoutEffect22(() => {
33504
+ useLayoutEffect23(() => {
33402
33505
  if (!config || !pageTitle || typeof document === "undefined") {
33403
33506
  return;
33404
33507
  }
@@ -33410,8 +33513,8 @@ function useDocumentTitle(...titleSegments) {
33410
33513
  }
33411
33514
 
33412
33515
  // src/components/Headers/BaseHeader.tsx
33413
- import { trussProps as trussProps152 } from "@homebound/truss/runtime";
33414
- import { jsx as jsx264, jsxs as jsxs143 } from "react/jsx-runtime";
33516
+ import { trussProps as trussProps153 } from "@homebound/truss/runtime";
33517
+ import { jsx as jsx265, jsxs as jsxs144 } from "react/jsx-runtime";
33415
33518
  function BaseHeader(props) {
33416
33519
  const {
33417
33520
  title,
@@ -33423,7 +33526,7 @@ function BaseHeader(props) {
33423
33526
  } = props;
33424
33527
  const tid = useTestIds(otherProps, "header");
33425
33528
  useDocumentTitle(title, documentTitleSuffix);
33426
- return /* @__PURE__ */ jsxs143("header", { ...tid, ...trussProps152({
33529
+ return /* @__PURE__ */ jsxs144("header", { ...tid, ...trussProps153({
33427
33530
  display: "df",
33428
33531
  flexDirection: "fdc",
33429
33532
  paddingTop: "pt3",
@@ -33437,7 +33540,7 @@ function BaseHeader(props) {
33437
33540
  "--backgroundColor": "var(--b-surface)"
33438
33541
  }]
33439
33542
  }), children: [
33440
- /* @__PURE__ */ jsxs143("div", { ...trussProps152({
33543
+ /* @__PURE__ */ jsxs144("div", { ...trussProps153({
33441
33544
  ...{
33442
33545
  display: "df",
33443
33546
  justifyContent: "jcsb",
@@ -33451,9 +33554,9 @@ function BaseHeader(props) {
33451
33554
  } : {}
33452
33555
  }
33453
33556
  }), children: [
33454
- /* @__PURE__ */ jsxs143("div", { className: "mw0", children: [
33455
- breadcrumbs && /* @__PURE__ */ jsx264(Breadcrumbs, { ...breadcrumbs }),
33456
- /* @__PURE__ */ jsx264("h1", { ...tid.title, ...trussProps152({
33557
+ /* @__PURE__ */ jsxs144("div", { className: "mw0", children: [
33558
+ breadcrumbs && /* @__PURE__ */ jsx265(Breadcrumbs, { ...breadcrumbs }),
33559
+ /* @__PURE__ */ jsx265("h1", { ...tid.title, ...trussProps153({
33457
33560
  fontWeight: "fw6",
33458
33561
  fontSize: "fz_20px",
33459
33562
  lineHeight: "lh_28px",
@@ -33462,15 +33565,15 @@ function BaseHeader(props) {
33462
33565
  }]
33463
33566
  }), children: title })
33464
33567
  ] }),
33465
- /* @__PURE__ */ jsx264("div", { className: "fs0", children: rightSlot })
33568
+ /* @__PURE__ */ jsx265("div", { className: "fs0", children: rightSlot })
33466
33569
  ] }),
33467
33570
  bottomSlot
33468
33571
  ] });
33469
33572
  }
33470
33573
 
33471
33574
  // src/components/Headers/PageHeader.tsx
33472
- import { trussProps as trussProps153 } from "@homebound/truss/runtime";
33473
- import { Fragment as Fragment57, jsx as jsx265, jsxs as jsxs144 } from "react/jsx-runtime";
33575
+ import { trussProps as trussProps154 } from "@homebound/truss/runtime";
33576
+ import { Fragment as Fragment57, jsx as jsx266, jsxs as jsxs145 } from "react/jsx-runtime";
33474
33577
  function PageHeader2(props) {
33475
33578
  const {
33476
33579
  tabs,
@@ -33486,29 +33589,29 @@ function PageHeader2(props) {
33486
33589
  bottomSlotActions,
33487
33590
  rightSlotActions
33488
33591
  } = splitHeaderActionsOnSm(actions, sm);
33489
- return /* @__PURE__ */ jsx265(BaseHeader, { ...otherProps, rightSlot: /* @__PURE__ */ jsxs144("div", { className: "df g_2 fs0", ...tid.actions, children: [
33490
- /* @__PURE__ */ jsx265(AutoSaveIndicator, { hideOnIdle: true }),
33491
- rightSlotActions.length > 0 && /* @__PURE__ */ jsx265(HeaderActions, { actions: rightSlotActions, collapseOnSm: true }),
33592
+ return /* @__PURE__ */ jsx266(BaseHeader, { ...otherProps, rightSlot: /* @__PURE__ */ jsxs145("div", { className: "df g_2 fs0", ...tid.actions, children: [
33593
+ /* @__PURE__ */ jsx266(AutoSaveIndicator, { hideOnIdle: true }),
33594
+ rightSlotActions.length > 0 && /* @__PURE__ */ jsx266(HeaderActions, { actions: rightSlotActions, collapseOnSm: true }),
33492
33595
  rightSlot
33493
- ] }), bottomSlot: (bottomSlotActions.length > 0 || tabs) && /* @__PURE__ */ jsxs144(Fragment57, { children: [
33494
- bottomSlotActions.length > 0 && /* @__PURE__ */ jsx265("div", { ...trussProps153({
33596
+ ] }), bottomSlot: (bottomSlotActions.length > 0 || tabs) && /* @__PURE__ */ jsxs145(Fragment57, { children: [
33597
+ bottomSlotActions.length > 0 && /* @__PURE__ */ jsx266("div", { ...trussProps154({
33495
33598
  ...pageContentPaddingX,
33496
33599
  ...{
33497
33600
  ...!tabs ? {
33498
33601
  marginBottom: "mb2"
33499
33602
  } : {}
33500
33603
  }
33501
- }), ...tid.bottomSlot, children: /* @__PURE__ */ jsx265(HeaderActions, { actions: bottomSlotActions }) }),
33502
- tabs && /* @__PURE__ */ jsx265("div", { ...trussProps153(pageContentPaddingX), children: /* @__PURE__ */ jsx265(Tabs, { ...tabs, ...tid.tabs }) })
33604
+ }), ...tid.bottomSlot, children: /* @__PURE__ */ jsx266(HeaderActions, { actions: bottomSlotActions }) }),
33605
+ tabs && /* @__PURE__ */ jsx266("div", { ...trussProps154(pageContentPaddingX), children: /* @__PURE__ */ jsx266(Tabs, { ...tabs, ...tid.tabs }) })
33503
33606
  ] }) });
33504
33607
  }
33505
33608
 
33506
33609
  // src/layouts/PageBanner/internal/usePageBannerSlot.tsx
33507
- import { useCallback as useCallback47, useLayoutEffect as useLayoutEffect23, useRef as useRef80, useState as useState70 } from "react";
33610
+ import { useCallback as useCallback48, useLayoutEffect as useLayoutEffect24, useRef as useRef81, useState as useState71 } from "react";
33508
33611
 
33509
33612
  // src/layouts/PageBanner/internal/PageBannerSlot.tsx
33510
- import { trussProps as trussProps154, maybeCssVar as maybeCssVar74 } from "@homebound/truss/runtime";
33511
- import { jsx as jsx266 } from "react/jsx-runtime";
33613
+ import { trussProps as trussProps155, maybeCssVar as maybeCssVar74 } from "@homebound/truss/runtime";
33614
+ import { jsx as jsx267 } from "react/jsx-runtime";
33512
33615
  var __maybeInc34 = (inc) => {
33513
33616
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33514
33617
  };
@@ -33518,7 +33621,7 @@ function PageBannerSlot(props) {
33518
33621
  metricsRef
33519
33622
  } = props;
33520
33623
  const tid = useTestIds(props, "pageBannerSlot");
33521
- return /* @__PURE__ */ jsx266("div", { ref: metricsRef, ...trussProps154({
33624
+ return /* @__PURE__ */ jsx267("div", { ref: metricsRef, ...trussProps155({
33522
33625
  flexShrink: "fs0",
33523
33626
  width: ["w_var", {
33524
33627
  "--width": maybeCssVar74(__maybeInc34(`min(100%, ${documentScrollChromeWidth()})`))
@@ -33534,26 +33637,26 @@ function PageBannerSlot(props) {
33534
33637
  zIndex: ["z_var", {
33535
33638
  "--zIndex": maybeCssVar74(zIndices.pageBanner)
33536
33639
  }]
33537
- }), ...tid.bannerSticky, children: /* @__PURE__ */ jsx266(StatusBanner, { ...banner, sticky: true, ...tid.banner }) });
33640
+ }), ...tid.bannerSticky, children: /* @__PURE__ */ jsx267(StatusBanner, { ...banner, sticky: true, ...tid.banner }) });
33538
33641
  }
33539
33642
 
33540
33643
  // src/layouts/PageBanner/internal/usePageBannerSlot.tsx
33541
- import { jsx as jsx267 } from "react/jsx-runtime";
33644
+ import { jsx as jsx268 } from "react/jsx-runtime";
33542
33645
  function usePageBannerSlot(bannerProp, testIds) {
33543
33646
  const publishedBanner = usePublishedPageBanner();
33544
33647
  const banner = publishedBanner ?? bannerProp;
33545
- const metricsRef = useRef80(null);
33648
+ const metricsRef = useRef81(null);
33546
33649
  const height = useMeasuredHeight(metricsRef, banner != null);
33547
- const slot = banner ? /* @__PURE__ */ jsx267(PageBannerSlot, { ...testIds, banner, metricsRef }) : null;
33650
+ const slot = banner ? /* @__PURE__ */ jsx268(PageBannerSlot, { ...testIds, banner, metricsRef }) : null;
33548
33651
  return { slot, height };
33549
33652
  }
33550
33653
  function usePublishedPageBanner() {
33551
- const [banner, setBanner] = useState70(pageBannerStore.getSnapshot);
33552
- const sync = useCallback47(() => {
33654
+ const [banner, setBanner] = useState71(pageBannerStore.getSnapshot);
33655
+ const sync = useCallback48(() => {
33553
33656
  const next = pageBannerStore.getSnapshot();
33554
33657
  setBanner((prev) => prev === next ? prev : next);
33555
33658
  }, []);
33556
- useLayoutEffect23(() => {
33659
+ useLayoutEffect24(() => {
33557
33660
  sync();
33558
33661
  return pageBannerStore.subscribe(sync);
33559
33662
  }, [sync]);
@@ -33567,7 +33670,7 @@ function useBannerAndNavbarHeight() {
33567
33670
 
33568
33671
  // src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
33569
33672
  import { mergeProps as mergeProps48, maybeCssVar as maybeCssVar75 } from "@homebound/truss/runtime";
33570
- import { jsx as jsx268, jsxs as jsxs145 } from "react/jsx-runtime";
33673
+ import { jsx as jsx269, jsxs as jsxs146 } from "react/jsx-runtime";
33571
33674
  var __maybeInc35 = (inc) => {
33572
33675
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33573
33676
  };
@@ -33583,11 +33686,11 @@ function PageHeaderLayout(props) {
33583
33686
  height: bannerHeight
33584
33687
  } = usePageBannerSlot(bannerProp, tid);
33585
33688
  const bannerAndNavbarHeight = useBannerAndNavbarHeight();
33586
- const bannerAndNavbarHeightRef = useRef81(bannerAndNavbarHeight);
33689
+ const bannerAndNavbarHeightRef = useRef82(bannerAndNavbarHeight);
33587
33690
  bannerAndNavbarHeightRef.current = bannerAndNavbarHeight;
33588
- const getBannerAndNavbarHeight = useCallback48(() => bannerAndNavbarHeightRef.current, []);
33589
- const headerMetricsRef = useRef81(null);
33590
- const spacerRef = useRef81(null);
33691
+ const getBannerAndNavbarHeight = useCallback49(() => bannerAndNavbarHeightRef.current, []);
33692
+ const headerMetricsRef = useRef82(null);
33693
+ const spacerRef = useRef82(null);
33591
33694
  const headerHeight = useMeasuredHeight(headerMetricsRef, true);
33592
33695
  const {
33593
33696
  state: autoHideState
@@ -33620,44 +33723,44 @@ function PageHeaderLayout(props) {
33620
33723
  const innerStyle = {
33621
33724
  top: autoHideState === "hidden" ? `calc(${outerTop} - ${headerHeight}px)` : outerTop
33622
33725
  };
33623
- const pageHeaderEl = useMemo63(() => /* @__PURE__ */ jsx268(PageHeader2, { ...pageHeader }), [pageHeader]);
33624
- return /* @__PURE__ */ jsx268(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsxs145("div", { ...mergeProps48(void 0, style, {
33726
+ const pageHeaderEl = useMemo63(() => /* @__PURE__ */ jsx269(PageHeader2, { ...pageHeader }), [pageHeader]);
33727
+ return /* @__PURE__ */ jsx269(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ jsxs146("div", { ...mergeProps48(void 0, style, {
33625
33728
  display: "df",
33626
33729
  flexDirection: "fdc",
33627
33730
  width: "w100"
33628
33731
  }), ...tid, children: [
33629
- /* @__PURE__ */ jsx268("div", { ref: spacerRef, ...mergeProps48(void 0, {
33732
+ /* @__PURE__ */ jsx269("div", { ref: spacerRef, ...mergeProps48(void 0, {
33630
33733
  height: headerHeight
33631
33734
  }, {
33632
33735
  flexShrink: "fs0",
33633
33736
  width: "w100"
33634
- }), children: /* @__PURE__ */ jsx268("div", { ref: headerMetricsRef, ...mergeProps48(void 0, innerStyle, innerCss), ...tid.pageHeader, children: pageHeaderEl }) }),
33737
+ }), children: /* @__PURE__ */ jsx269("div", { ref: headerMetricsRef, ...mergeProps48(void 0, innerStyle, innerCss), ...tid.pageHeader, children: pageHeaderEl }) }),
33635
33738
  bannerSlot,
33636
- /* @__PURE__ */ jsx268("div", { className: "df fdc fg1 mh0 w100 n_has_data_self_top_spaced_first_child_pt3", ...tid.body, children })
33739
+ /* @__PURE__ */ jsx269("div", { className: "df fdc fg1 mh0 w100 n_has_data_self_top_spaced_first_child_pt3", ...tid.body, children })
33637
33740
  ] }) });
33638
33741
  }
33639
33742
 
33640
33743
  // src/layouts/Workflow/WorkflowPageLayout.tsx
33641
- import { useLayoutEffect as useLayoutEffect24, useRef as useRef83 } from "react";
33744
+ import { useLayoutEffect as useLayoutEffect25, useRef as useRef84 } from "react";
33642
33745
 
33643
33746
  // src/components/Headers/WorkflowHeader.tsx
33644
- import { jsx as jsx269 } from "react/jsx-runtime";
33747
+ import { jsx as jsx270 } from "react/jsx-runtime";
33645
33748
  function WorkflowHeader(props) {
33646
33749
  const { stepperTabs, ...otherProps } = props;
33647
33750
  const tid = useTestIds(otherProps, "header");
33648
- return /* @__PURE__ */ jsx269(
33751
+ return /* @__PURE__ */ jsx270(
33649
33752
  BaseHeader,
33650
33753
  {
33651
33754
  ...otherProps,
33652
- bottomSlot: stepperTabs ? /* @__PURE__ */ jsx269(StepperTabs, { ...stepperTabs, ...tid.stepperTabs }) : void 0
33755
+ bottomSlot: stepperTabs ? /* @__PURE__ */ jsx270(StepperTabs, { ...stepperTabs, ...tid.stepperTabs }) : void 0
33653
33756
  }
33654
33757
  );
33655
33758
  }
33656
33759
 
33657
33760
  // src/layouts/Workflow/RightPaneTriggers.tsx
33658
- import { useCallback as useCallback49 } from "react";
33659
- import { trussProps as trussProps155, maybeCssVar as maybeCssVar76 } from "@homebound/truss/runtime";
33660
- import { jsx as jsx270 } from "react/jsx-runtime";
33761
+ import { useCallback as useCallback50 } from "react";
33762
+ import { trussProps as trussProps156, maybeCssVar as maybeCssVar76 } from "@homebound/truss/runtime";
33763
+ import { jsx as jsx271 } from "react/jsx-runtime";
33661
33764
  var __maybeInc36 = (inc) => {
33662
33765
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33663
33766
  };
@@ -33676,14 +33779,14 @@ function WorkflowPageRightPaneTriggers(props) {
33676
33779
  } = useRightPaneActions();
33677
33780
  const tid = useTestIds(props, "rightPaneTriggers");
33678
33781
  const pageTriggerInsetPx = 24;
33679
- const onClick = useCallback49((trigger) => {
33782
+ const onClick = useCallback50((trigger) => {
33680
33783
  openRightPane({
33681
- content: /* @__PURE__ */ jsx270(RightPanePanel, { title: trigger.label, children: trigger.content })
33784
+ content: /* @__PURE__ */ jsx271(RightPanePanel, { title: trigger.label, children: trigger.content })
33682
33785
  });
33683
33786
  }, [openRightPane]);
33684
- return /* @__PURE__ */ jsx270("div", { ...tid, "aria-hidden": isRightPaneOpen, ...isRightPaneOpen ? {
33787
+ return /* @__PURE__ */ jsx271("div", { ...tid, "aria-hidden": isRightPaneOpen, ...isRightPaneOpen ? {
33685
33788
  inert: true
33686
- } : {}, ...trussProps155({
33789
+ } : {}, ...trussProps156({
33687
33790
  ...{
33688
33791
  display: "df",
33689
33792
  alignItems: "aic",
@@ -33715,21 +33818,21 @@ function WorkflowPageRightPaneTriggers(props) {
33715
33818
  } : {
33716
33819
  transform: "tf_translateX_0"
33717
33820
  })
33718
- }), children: triggers.map((trigger) => /* @__PURE__ */ jsx270(IconButton, { icon: trigger.icon, label: trigger.label, variant: "circle", compact: isMobile, onClick: () => onClick(trigger), ...tid[trigger.icon] }, trigger.label)) });
33821
+ }), children: triggers.map((trigger) => /* @__PURE__ */ jsx271(IconButton, { icon: trigger.icon, label: trigger.label, variant: "circle", compact: isMobile, onClick: () => onClick(trigger), ...tid[trigger.icon] }, trigger.label)) });
33719
33822
  }
33720
33823
 
33721
33824
  // src/layouts/Workflow/useUnsavedChangesGuard.tsx
33722
- import { useEffect as useEffect43, useRef as useRef82 } from "react";
33825
+ import { useEffect as useEffect43, useRef as useRef83 } from "react";
33723
33826
  import { useBlocker } from "react-router-dom";
33724
- import { jsx as jsx271 } from "react/jsx-runtime";
33827
+ import { jsx as jsx272 } from "react/jsx-runtime";
33725
33828
  function useUnsavedChangesGuard(options) {
33726
33829
  const { isDirty, allowNavigation, onCancel, destructiveAction } = options;
33727
33830
  const { openModal } = useModal();
33728
- const isDirtyRef = useRef82(isDirty);
33831
+ const isDirtyRef = useRef83(isDirty);
33729
33832
  isDirtyRef.current = isDirty;
33730
- const allowNavigationRef = useRef82(allowNavigation);
33833
+ const allowNavigationRef = useRef83(allowNavigation);
33731
33834
  allowNavigationRef.current = allowNavigation;
33732
- const allowCancelNavigationRef = useRef82(false);
33835
+ const allowCancelNavigationRef = useRef83(false);
33733
33836
  useEffect43(() => {
33734
33837
  const onBeforeUnload = (e) => {
33735
33838
  if (isDirtyRef.current?.()) {
@@ -33757,7 +33860,7 @@ function useUnsavedChangesGuard(options) {
33757
33860
  }
33758
33861
  openModal({
33759
33862
  allowClosing: false,
33760
- content: /* @__PURE__ */ jsx271(ConfirmCloseModal, { onClose: () => confirmCancel(e) })
33863
+ content: /* @__PURE__ */ jsx272(ConfirmCloseModal, { onClose: () => confirmCancel(e) })
33761
33864
  });
33762
33865
  };
33763
33866
  const onDestructiveActionClick = destructiveAction ? (e) => {
@@ -33769,7 +33872,7 @@ function useUnsavedChangesGuard(options) {
33769
33872
  } = destructiveAction;
33770
33873
  openModal({
33771
33874
  allowClosing: false,
33772
- content: /* @__PURE__ */ jsx271(
33875
+ content: /* @__PURE__ */ jsx272(
33773
33876
  ConfirmCloseModal,
33774
33877
  {
33775
33878
  title: confirmTitle,
@@ -33800,7 +33903,7 @@ function UnsavedChangesNavigationModal(props) {
33800
33903
  useEffect43(() => {
33801
33904
  openModal({
33802
33905
  allowClosing: false,
33803
- content: /* @__PURE__ */ jsx271(ConfirmCloseModal, { title: "Leave page?", onClose: proceed, onContinue: cancelNavigation })
33906
+ content: /* @__PURE__ */ jsx272(ConfirmCloseModal, { title: "Leave page?", onClose: proceed, onContinue: cancelNavigation })
33804
33907
  });
33805
33908
  return () => closeModal();
33806
33909
  }, []);
@@ -33808,7 +33911,7 @@ function UnsavedChangesNavigationModal(props) {
33808
33911
  }
33809
33912
 
33810
33913
  // src/layouts/Workflow/WorkflowActions.tsx
33811
- import { jsx as jsx272, jsxs as jsxs146 } from "react/jsx-runtime";
33914
+ import { jsx as jsx273, jsxs as jsxs147 } from "react/jsx-runtime";
33812
33915
  function WorkflowActions(props) {
33813
33916
  const {
33814
33917
  onCancel,
@@ -33827,13 +33930,13 @@ function WorkflowActions(props) {
33827
33930
  sm: isMobile
33828
33931
  } = useBreakpoint();
33829
33932
  const primaryVariant = aiMode ? "ai" : "primary";
33830
- return /* @__PURE__ */ jsxs146("div", { className: "df aic jcsb sm_w100", children: [
33831
- /* @__PURE__ */ jsx272("div", { className: "df aic", children: !isFirstStep && isMobile && onBack && /* @__PURE__ */ jsx272(IconButton, { icon: "arrowBack", label: "Back", onClick: onBack }) }),
33832
- /* @__PURE__ */ jsxs146("div", { className: "df aic g_1", children: [
33833
- /* @__PURE__ */ jsx272(Button, { label: "Cancel", variant: "quaternary", onClick: onCancel }),
33834
- onSaveAndExit && /* @__PURE__ */ jsx272(Button, { label: "Save & Exit", variant: "secondary", onClick: onSaveAndExit }),
33835
- destructiveAction && /* @__PURE__ */ jsx272(Button, { label: destructiveAction.label ?? "Remove", variant: "danger", onClick: destructiveAction.onConfirm }),
33836
- isLastStep ? /* @__PURE__ */ jsx272(Button, { label: completeLabel, variant: primaryVariant, onClick: onComplete, disabled: primaryDisabled }) : /* @__PURE__ */ jsx272(Button, { label: "Continue", variant: primaryVariant, onClick: async () => {
33933
+ return /* @__PURE__ */ jsxs147("div", { className: "df aic jcsb sm_w100", children: [
33934
+ /* @__PURE__ */ jsx273("div", { className: "df aic", children: !isFirstStep && isMobile && onBack && /* @__PURE__ */ jsx273(IconButton, { icon: "arrowBack", label: "Back", onClick: onBack }) }),
33935
+ /* @__PURE__ */ jsxs147("div", { className: "df aic g_1", children: [
33936
+ /* @__PURE__ */ jsx273(Button, { label: "Cancel", variant: "quaternary", onClick: onCancel }),
33937
+ onSaveAndExit && /* @__PURE__ */ jsx273(Button, { label: "Save & Exit", variant: "secondary", onClick: onSaveAndExit }),
33938
+ destructiveAction && /* @__PURE__ */ jsx273(Button, { label: destructiveAction.label ?? "Remove", variant: "danger", onClick: destructiveAction.onConfirm }),
33939
+ isLastStep ? /* @__PURE__ */ jsx273(Button, { label: completeLabel, variant: primaryVariant, onClick: onComplete, disabled: primaryDisabled }) : /* @__PURE__ */ jsx273(Button, { label: "Continue", variant: primaryVariant, onClick: async () => {
33837
33940
  await onContinue?.();
33838
33941
  }, disabled: primaryDisabled })
33839
33942
  ] })
@@ -33841,8 +33944,8 @@ function WorkflowActions(props) {
33841
33944
  }
33842
33945
 
33843
33946
  // src/layouts/Workflow/WorkflowPageLayout.tsx
33844
- import { trussProps as trussProps156, mergeProps as mergeProps49, maybeCssVar as maybeCssVar77 } from "@homebound/truss/runtime";
33845
- import { jsx as jsx273, jsxs as jsxs147 } from "react/jsx-runtime";
33947
+ import { trussProps as trussProps157, mergeProps as mergeProps49, maybeCssVar as maybeCssVar77 } from "@homebound/truss/runtime";
33948
+ import { jsx as jsx274, jsxs as jsxs148 } from "react/jsx-runtime";
33846
33949
  var __maybeInc37 = (inc) => {
33847
33950
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
33848
33951
  };
@@ -33881,13 +33984,13 @@ function WorkflowPageLayout(props) {
33881
33984
  onCancel,
33882
33985
  destructiveAction
33883
33986
  });
33884
- const actions = /* @__PURE__ */ jsx273(WorkflowActions, { ...actionProps, aiMode, onCancel: onCancelClick, destructiveAction: destructiveAction && {
33987
+ const actions = /* @__PURE__ */ jsx274(WorkflowActions, { ...actionProps, aiMode, onCancel: onCancelClick, destructiveAction: destructiveAction && {
33885
33988
  ...destructiveAction,
33886
33989
  onConfirm: onDestructiveActionClick
33887
33990
  } });
33888
33991
  const triggers = rightPaneTriggers ?? [];
33889
- const pageTriggers = triggers.length > 0 ? /* @__PURE__ */ jsx273(WorkflowPageRightPaneTriggers, { triggers }) : void 0;
33890
- const headerMetricsRef = useRef83(null);
33992
+ const pageTriggers = triggers.length > 0 ? /* @__PURE__ */ jsx274(WorkflowPageRightPaneTriggers, { triggers }) : void 0;
33993
+ const headerMetricsRef = useRef84(null);
33891
33994
  const headerHeight = useMeasuredHeight(headerMetricsRef, true);
33892
33995
  const headerWidth = documentScrollChromeWidth();
33893
33996
  const outerTop = belowNavbarOffset();
@@ -33900,7 +34003,7 @@ function WorkflowPageLayout(props) {
33900
34003
  }
33901
34004
  const style = Object.keys(cssVars).length > 0 ? cssVars : void 0;
33902
34005
  const showFooter = isMobile;
33903
- useLayoutEffect24(() => {
34006
+ useLayoutEffect25(() => {
33904
34007
  const root = document.documentElement;
33905
34008
  const previous = root.style.getPropertyValue(beamWorkflowLayoutFooterHeightVar);
33906
34009
  root.style.setProperty(beamWorkflowLayoutFooterHeightVar, showFooter ? `${mobileFooterHeightPx}px` : "0px");
@@ -33913,8 +34016,8 @@ function WorkflowPageLayout(props) {
33913
34016
  };
33914
34017
  }, [showFooter]);
33915
34018
  const currentStep = stepperTabs?.currentStep;
33916
- const prevStepRef = useRef83(currentStep);
33917
- useLayoutEffect24(() => {
34019
+ const prevStepRef = useRef84(currentStep);
34020
+ useLayoutEffect25(() => {
33918
34021
  if (prevStepRef.current === currentStep) return;
33919
34022
  prevStepRef.current = currentStep;
33920
34023
  window.scrollTo({
@@ -33922,18 +34025,18 @@ function WorkflowPageLayout(props) {
33922
34025
  left: 0
33923
34026
  });
33924
34027
  }, [currentStep]);
33925
- return /* @__PURE__ */ jsxs147(DocumentScrollLayoutProvider, { children: [
33926
- /* @__PURE__ */ jsxs147("div", { ...mergeProps49(void 0, style, {
34028
+ return /* @__PURE__ */ jsxs148(DocumentScrollLayoutProvider, { children: [
34029
+ /* @__PURE__ */ jsxs148("div", { ...mergeProps49(void 0, style, {
33927
34030
  display: "df",
33928
34031
  flexDirection: "fdc",
33929
34032
  width: "w100"
33930
34033
  }), ...tid, children: [
33931
- /* @__PURE__ */ jsx273("div", { ...mergeProps49(void 0, {
34034
+ /* @__PURE__ */ jsx274("div", { ...mergeProps49(void 0, {
33932
34035
  height: headerHeight
33933
34036
  }, {
33934
34037
  flexShrink: "fs0",
33935
34038
  width: "w100"
33936
- }), children: /* @__PURE__ */ jsx273("div", { ref: headerMetricsRef, ...trussProps156({
34039
+ }), children: /* @__PURE__ */ jsx274("div", { ref: headerMetricsRef, ...trussProps157({
33937
34040
  position: "fixed",
33938
34041
  left: "l_0",
33939
34042
  width: ["w_var", {
@@ -33946,9 +34049,9 @@ function WorkflowPageLayout(props) {
33946
34049
  "--top": maybeCssVar77(__maybeInc37(outerTop))
33947
34050
  }],
33948
34051
  transition: "transitionAll"
33949
- }), ...tid.header, children: /* @__PURE__ */ jsx273(WorkflowHeader, { title, documentTitleSuffix, breadcrumbs, rightSlot: isMobile ? pageTriggers : actions, stepperTabs }) }) }),
34052
+ }), ...tid.header, children: /* @__PURE__ */ jsx274(WorkflowHeader, { title, documentTitleSuffix, breadcrumbs, rightSlot: isMobile ? pageTriggers : actions, stepperTabs }) }) }),
33950
34053
  bannerSlot,
33951
- /* @__PURE__ */ jsx273("div", { ...trussProps156({
34054
+ /* @__PURE__ */ jsx274("div", { ...trussProps157({
33952
34055
  ...{
33953
34056
  display: "df",
33954
34057
  flexDirection: "fdc",
@@ -33963,15 +34066,15 @@ function WorkflowPageLayout(props) {
33963
34066
  "--minHeight": maybeCssVar77(documentScrollBodyMinHeight())
33964
34067
  }]
33965
34068
  }
33966
- }), ...tid.body, children: triggers.length > 0 ? /* @__PURE__ */ jsx273(DocumentScrollOverlayRightPaneLayout, { children }) : children }),
34069
+ }), ...tid.body, children: triggers.length > 0 ? /* @__PURE__ */ jsx274(DocumentScrollOverlayRightPaneLayout, { children }) : children }),
33967
34070
  !isMobile && pageTriggers,
33968
- showFooter && /* @__PURE__ */ jsx273("div", { ...trussProps156({
34071
+ showFooter && /* @__PURE__ */ jsx274("div", { ...trussProps157({
33969
34072
  flexShrink: "fs0",
33970
34073
  width: "w100",
33971
34074
  height: ["h_var", {
33972
34075
  "--height": `${mobileFooterHeightPx}px`
33973
34076
  }]
33974
- }), children: /* @__PURE__ */ jsx273("div", { ...trussProps156({
34077
+ }), children: /* @__PURE__ */ jsx274("div", { ...trussProps157({
33975
34078
  ...{
33976
34079
  position: "fixed",
33977
34080
  bottom: "bot_0",
@@ -34000,12 +34103,12 @@ function WorkflowPageLayout(props) {
34000
34103
  ...pageContentPaddingX
34001
34104
  }), ...tid.footer, children: actions }) })
34002
34105
  ] }),
34003
- navigationBlocker && /* @__PURE__ */ jsx273(UnsavedChangesNavigationModal, { ...navigationBlocker })
34106
+ navigationBlocker && /* @__PURE__ */ jsx274(UnsavedChangesNavigationModal, { ...navigationBlocker })
34004
34107
  ] });
34005
34108
  }
34006
34109
 
34007
34110
  // src/layouts/Workflow/FocusedFormLayout.tsx
34008
- import { jsx as jsx274 } from "react/jsx-runtime";
34111
+ import { jsx as jsx275 } from "react/jsx-runtime";
34009
34112
  function FocusedFormLayout(props) {
34010
34113
  const {
34011
34114
  onCancel,
@@ -34023,7 +34126,7 @@ function FocusedFormLayout(props) {
34023
34126
  ...headerProps
34024
34127
  } = props;
34025
34128
  const tid = useTestIds(props, "focusedFormLayout");
34026
- return /* @__PURE__ */ jsx274(
34129
+ return /* @__PURE__ */ jsx275(
34027
34130
  WorkflowPageLayout,
34028
34131
  {
34029
34132
  ...tid,
@@ -34045,8 +34148,8 @@ function FocusedFormLayout(props) {
34045
34148
  }
34046
34149
 
34047
34150
  // src/layouts/Workflow/StepperLayout.tsx
34048
- import { useState as useState71 } from "react";
34049
- import { jsx as jsx275 } from "react/jsx-runtime";
34151
+ import { useState as useState72 } from "react";
34152
+ import { jsx as jsx276 } from "react/jsx-runtime";
34050
34153
  function StepperLayout(props) {
34051
34154
  const {
34052
34155
  steps,
@@ -34063,7 +34166,7 @@ function StepperLayout(props) {
34063
34166
  ...headerProps
34064
34167
  } = props;
34065
34168
  const stepTabs = steps.map((step) => ({ ...step, value: defaultTestId(step.label) }));
34066
- const [currentStep, setCurrentStep] = useState71(() => getInitialStep(stepTabs, defaultStep));
34169
+ const [currentStep, setCurrentStep] = useState72(() => getInitialStep(stepTabs, defaultStep));
34067
34170
  const tid = useTestIds(props, "stepperLayout");
34068
34171
  const currentIndex = hasStep(stepTabs, currentStep) ? stepTabs.findIndex((step) => step.value === currentStep) : 0;
34069
34172
  const isFirstStep = currentIndex <= 0;
@@ -34073,7 +34176,7 @@ function StepperLayout(props) {
34073
34176
  if (value === currentStep) return;
34074
34177
  closeRightPaneThen(() => setCurrentStep(value));
34075
34178
  }
34076
- return /* @__PURE__ */ jsx275(
34179
+ return /* @__PURE__ */ jsx276(
34077
34180
  WorkflowPageLayout,
34078
34181
  {
34079
34182
  ...tid,
@@ -34118,7 +34221,7 @@ function getInitialStep(steps, defaultStep) {
34118
34221
 
34119
34222
  // src/forms/BoundChipSelectField.tsx
34120
34223
  import { Observer as Observer22 } from "mobx-react";
34121
- import { jsx as jsx276 } from "react/jsx-runtime";
34224
+ import { jsx as jsx277 } from "react/jsx-runtime";
34122
34225
  function BoundChipSelectField(props) {
34123
34226
  const {
34124
34227
  field,
@@ -34134,7 +34237,7 @@ function BoundChipSelectField(props) {
34134
34237
  ...others
34135
34238
  } = props;
34136
34239
  const testId = useTestIds(props, field.key);
34137
- return /* @__PURE__ */ jsx276(Observer22, { children: () => /* @__PURE__ */ jsx276(
34240
+ return /* @__PURE__ */ jsx277(Observer22, { children: () => /* @__PURE__ */ jsx277(
34138
34241
  ChipSelectField,
34139
34242
  {
34140
34243
  label,
@@ -34164,12 +34267,12 @@ function BoundChipSelectField(props) {
34164
34267
  }
34165
34268
 
34166
34269
  // src/forms/BoundSelectAndTextField.tsx
34167
- import { jsx as jsx277, jsxs as jsxs148 } from "react/jsx-runtime";
34270
+ import { jsx as jsx278, jsxs as jsxs149 } from "react/jsx-runtime";
34168
34271
  function BoundSelectAndTextField(props) {
34169
34272
  const { selectFieldProps, textFieldProps, compact = true } = props;
34170
34273
  const tid = useTestIds(props);
34171
- return /* @__PURE__ */ jsxs148(CompoundField, { children: [
34172
- /* @__PURE__ */ jsx277(
34274
+ return /* @__PURE__ */ jsxs149(CompoundField, { children: [
34275
+ /* @__PURE__ */ jsx278(
34173
34276
  BoundSelectField,
34174
34277
  {
34175
34278
  ...tid[defaultTestId(selectFieldProps.label ?? selectFieldProps.field.key)],
@@ -34178,7 +34281,7 @@ function BoundSelectAndTextField(props) {
34178
34281
  compact
34179
34282
  }
34180
34283
  ),
34181
- /* @__PURE__ */ jsx277(
34284
+ /* @__PURE__ */ jsx278(
34182
34285
  BoundTextField,
34183
34286
  {
34184
34287
  ...tid[defaultTestId(textFieldProps.label ?? textFieldProps.field.key)],
@@ -34190,8 +34293,8 @@ function BoundSelectAndTextField(props) {
34190
34293
  }
34191
34294
 
34192
34295
  // src/forms/FormHeading.tsx
34193
- import { trussProps as trussProps157 } from "@homebound/truss/runtime";
34194
- import { jsx as jsx278 } from "react/jsx-runtime";
34296
+ import { trussProps as trussProps158 } from "@homebound/truss/runtime";
34297
+ import { jsx as jsx279 } from "react/jsx-runtime";
34195
34298
  function FormHeading(props) {
34196
34299
  const {
34197
34300
  title,
@@ -34201,7 +34304,7 @@ function FormHeading(props) {
34201
34304
  } = props;
34202
34305
  return (
34203
34306
  // Add space before the heading, but only if it's not first.
34204
- /* @__PURE__ */ jsx278("h3", { ...trussProps157({
34307
+ /* @__PURE__ */ jsx279("h3", { ...trussProps158({
34205
34308
  ...{
34206
34309
  fontWeight: "fw4",
34207
34310
  fontSize: "fz_16px",
@@ -34218,8 +34321,8 @@ FormHeading.isFormHeading = true;
34218
34321
 
34219
34322
  // src/forms/StaticField.tsx
34220
34323
  import { useId as useId6 } from "@react-aria/utils";
34221
- import { trussProps as trussProps158 } from "@homebound/truss/runtime";
34222
- import { jsx as jsx279, jsxs as jsxs149 } from "react/jsx-runtime";
34324
+ import { trussProps as trussProps159 } from "@homebound/truss/runtime";
34325
+ import { jsx as jsx280, jsxs as jsxs150 } from "react/jsx-runtime";
34223
34326
  function StaticField(props) {
34224
34327
  const {
34225
34328
  fieldProps
@@ -34232,14 +34335,14 @@ function StaticField(props) {
34232
34335
  } = props;
34233
34336
  const tid = useTestIds(props, typeof label === "string" ? defaultTestId(label) : "staticField");
34234
34337
  const id = useId6();
34235
- return /* @__PURE__ */ jsxs149("div", { ...trussProps158({
34338
+ return /* @__PURE__ */ jsxs150("div", { ...trussProps159({
34236
34339
  ...labelStyle === "left" ? {
34237
34340
  display: "df",
34238
34341
  justifyContent: "jcsb",
34239
34342
  maxWidth: "maxw100"
34240
34343
  } : {}
34241
34344
  }), ...tid.container, children: [
34242
- /* @__PURE__ */ jsx279("label", { ...trussProps158({
34345
+ /* @__PURE__ */ jsx280("label", { ...trussProps159({
34243
34346
  display: "db",
34244
34347
  fontWeight: "fw4",
34245
34348
  fontSize: "fz_14px",
@@ -34249,7 +34352,7 @@ function StaticField(props) {
34249
34352
  }],
34250
34353
  marginBottom: "mb_4px"
34251
34354
  }), htmlFor: id, ...tid.label, children: label }),
34252
- /* @__PURE__ */ jsx279("div", { id, ...trussProps158({
34355
+ /* @__PURE__ */ jsx280("div", { id, ...trussProps159({
34253
34356
  fontWeight: "fw4",
34254
34357
  fontSize: "fz_14px",
34255
34358
  lineHeight: "lh_20px",
@@ -34266,9 +34369,9 @@ function StaticField(props) {
34266
34369
  }
34267
34370
 
34268
34371
  // src/hooks/useFilter.ts
34269
- import { useState as useState72 } from "react";
34372
+ import { useState as useState73 } from "react";
34270
34373
  function useFilter5({ filterDefs }) {
34271
- const [filter, setFilter] = useState72(
34374
+ const [filter, setFilter] = useState73(
34272
34375
  Object.fromEntries(
34273
34376
  safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
34274
34377
  )
@@ -34277,10 +34380,10 @@ function useFilter5({ filterDefs }) {
34277
34380
  }
34278
34381
 
34279
34382
  // src/inputs/Autocomplete.tsx
34280
- import { useCallback as useCallback50, useRef as useRef84 } from "react";
34383
+ import { useCallback as useCallback51, useRef as useRef85 } from "react";
34281
34384
  import { useComboBox as useComboBox3, useOverlayPosition as useOverlayPosition7 } from "react-aria";
34282
34385
  import { Item as Item6, useComboBoxState as useComboBoxState3 } from "react-stately";
34283
- import { Fragment as Fragment58, jsx as jsx280, jsxs as jsxs150 } from "react/jsx-runtime";
34386
+ import { Fragment as Fragment58, jsx as jsx281, jsxs as jsxs151 } from "react/jsx-runtime";
34284
34387
  function Autocomplete(props) {
34285
34388
  const {
34286
34389
  onSelect,
@@ -34297,8 +34400,8 @@ function Autocomplete(props) {
34297
34400
  } = props;
34298
34401
  const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
34299
34402
  const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
34300
- const comboBoxChildren = useCallback50(
34301
- (item) => /* @__PURE__ */ jsx280(Item6, { textValue: getOptionLabel(item), children: getOptionMenuLabel ? getOptionMenuLabel(item) : getOptionLabel(item) }, getOptionValue(item)),
34403
+ const comboBoxChildren = useCallback51(
34404
+ (item) => /* @__PURE__ */ jsx281(Item6, { textValue: getOptionLabel(item), children: getOptionMenuLabel ? getOptionMenuLabel(item) : getOptionLabel(item) }, getOptionValue(item)),
34302
34405
  [getOptionValue, getOptionLabel, getOptionMenuLabel]
34303
34406
  );
34304
34407
  const comboBoxProps = {
@@ -34322,10 +34425,10 @@ function Autocomplete(props) {
34322
34425
  ...others
34323
34426
  };
34324
34427
  const state = useComboBoxState3(comboBoxProps);
34325
- const inputWrapRef = useRef84(null);
34326
- const inputRef = useRef84(null);
34327
- const listBoxRef = useRef84(null);
34328
- const popoverRef = useRef84(null);
34428
+ const inputWrapRef = useRef85(null);
34429
+ const inputRef = useRef85(null);
34430
+ const listBoxRef = useRef85(null);
34431
+ const popoverRef = useRef85(null);
34329
34432
  const { inputProps, listBoxProps, labelProps } = useComboBox3(
34330
34433
  {
34331
34434
  ...comboBoxProps,
@@ -34351,8 +34454,8 @@ function Autocomplete(props) {
34351
34454
  // Ensures the menu never gets too small.
34352
34455
  minWidth: 200
34353
34456
  };
34354
- return /* @__PURE__ */ jsxs150(Fragment58, { children: [
34355
- /* @__PURE__ */ jsx280(
34457
+ return /* @__PURE__ */ jsxs151(Fragment58, { children: [
34458
+ /* @__PURE__ */ jsx281(
34356
34459
  TextFieldBase,
34357
34460
  {
34358
34461
  inputRef,
@@ -34362,11 +34465,11 @@ function Autocomplete(props) {
34362
34465
  onChange: onInputChange,
34363
34466
  ...proposalProps,
34364
34467
  clearable: true,
34365
- startAdornment: "startAdornment" in props ? props.startAdornment : /* @__PURE__ */ jsx280(Icon, { icon: "search" }),
34468
+ startAdornment: "startAdornment" in props ? props.startAdornment : /* @__PURE__ */ jsx281(Icon, { icon: "search" }),
34366
34469
  ...others
34367
34470
  }
34368
34471
  ),
34369
- state.isOpen && /* @__PURE__ */ jsx280(
34472
+ state.isOpen && /* @__PURE__ */ jsx281(
34370
34473
  Popover,
34371
34474
  {
34372
34475
  triggerRef: inputRef,
@@ -34375,7 +34478,7 @@ function Autocomplete(props) {
34375
34478
  onClose: () => state.close(),
34376
34479
  isOpen: state.isOpen,
34377
34480
  minWidth: 200,
34378
- children: /* @__PURE__ */ jsx280(
34481
+ children: /* @__PURE__ */ jsx281(
34379
34482
  ListBox,
34380
34483
  {
34381
34484
  ...listBoxProps,
@@ -34393,11 +34496,11 @@ function Autocomplete(props) {
34393
34496
  }
34394
34497
 
34395
34498
  // src/inputs/ToggleButton.tsx
34396
- import { useRef as useRef85, useState as useState73 } from "react";
34499
+ import { useRef as useRef86, useState as useState74 } from "react";
34397
34500
  import { useFocusRing as useFocusRing24, useHover as useHover28, usePress as usePress3, useSwitch as useSwitch2, VisuallyHidden as VisuallyHidden12 } from "react-aria";
34398
34501
  import { useToggleState as useToggleState2 } from "react-stately";
34399
- import { trussProps as trussProps159 } from "@homebound/truss/runtime";
34400
- import { jsx as jsx281, jsxs as jsxs151 } from "react/jsx-runtime";
34502
+ import { trussProps as trussProps160 } from "@homebound/truss/runtime";
34503
+ import { jsx as jsx282, jsxs as jsxs152 } from "react/jsx-runtime";
34401
34504
  function ToggleButton(props) {
34402
34505
  const {
34403
34506
  selected: isSelected = false,
@@ -34408,7 +34511,7 @@ function ToggleButton(props) {
34408
34511
  __storyState,
34409
34512
  ...otherProps
34410
34513
  } = props;
34411
- const [asyncInProgress, setAsyncInProgress] = useState73(false);
34514
+ const [asyncInProgress, setAsyncInProgress] = useState74(false);
34412
34515
  const isDisabled = !!disabled || asyncInProgress;
34413
34516
  const ariaProps = {
34414
34517
  "aria-label": label,
@@ -34427,8 +34530,8 @@ function ToggleButton(props) {
34427
34530
  return result;
34428
34531
  }
34429
34532
  });
34430
- const labelRef = useRef85(null);
34431
- const ref = useRef85(null);
34533
+ const labelRef = useRef86(null);
34534
+ const ref = useRef86(null);
34432
34535
  const tid = useTestIds(otherProps, label);
34433
34536
  const {
34434
34537
  isPressed: isPressedFromEvents,
@@ -34461,7 +34564,7 @@ function ToggleButton(props) {
34461
34564
  ...focusProps,
34462
34565
  ...hoverProps,
34463
34566
  ...pressProps,
34464
- ...trussProps159({
34567
+ ...trussProps160({
34465
34568
  // Gray500 off-state has no semantic match — keep palette (OnSurfaceMuted is Gray700).
34466
34569
  ...{
34467
34570
  borderRadius: "br4",
@@ -34501,10 +34604,10 @@ function ToggleButton(props) {
34501
34604
  return maybeTooltip({
34502
34605
  title: tooltip,
34503
34606
  placement: "top",
34504
- children: /* @__PURE__ */ jsxs151("label", { ...labelAttrs, children: [
34505
- icon && /* @__PURE__ */ jsx281(Icon, { icon }),
34607
+ children: /* @__PURE__ */ jsxs152("label", { ...labelAttrs, children: [
34608
+ icon && /* @__PURE__ */ jsx282(Icon, { icon }),
34506
34609
  label,
34507
- /* @__PURE__ */ jsx281(VisuallyHidden12, { children: /* @__PURE__ */ jsx281("input", { ref, ...inputProps, ...tid.value }) })
34610
+ /* @__PURE__ */ jsx282(VisuallyHidden12, { children: /* @__PURE__ */ jsx282("input", { ref, ...inputProps, ...tid.value }) })
34508
34611
  ] })
34509
34612
  });
34510
34613
  }
@@ -34532,6 +34635,7 @@ export {
34532
34635
  AiLoadingPanel,
34533
34636
  AiPanel,
34534
34637
  AiSlimBanner,
34638
+ AiTableIllustration,
34535
34639
  AutoSaveIndicator,
34536
34640
  AutoSaveStatus,
34537
34641
  AutoSaveStatusContext,