@homebound/beam 3.15.0 → 3.16.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
@@ -5341,7 +5341,7 @@ function IconButton(props) {
5341
5341
  openInNew,
5342
5342
  active = false,
5343
5343
  compact = false,
5344
- circle = false,
5344
+ variant = "default",
5345
5345
  download = false,
5346
5346
  forceFocusStyles = false,
5347
5347
  label,
@@ -5371,20 +5371,22 @@ function IconButton(props) {
5371
5371
  isHovered
5372
5372
  } = useHover(ariaProps);
5373
5373
  const testIds = useTestIds(props, icon);
5374
+ const isCircle = variant === "circle";
5375
+ const isOutline = variant === "outline";
5374
5376
  const styles = useMemo5(() => ({
5375
5377
  ...iconButtonStylesReset,
5376
- ...circle ? iconButtonCircle : compact ? iconButtonCompact : iconButtonNormal,
5377
- ...isHovered && (circle ? iconButtonCircleStylesHover : iconButtonTokenHover),
5378
- ...isFocusVisible || forceFocusStyles ? circle ? iconButtonCircleStylesFocus : iconButtonStylesFocus : {},
5379
- ...active && (circle ? activeStylesCircle : iconButtonTokenHover),
5378
+ ...isCircle ? iconButtonCircle : isOutline ? iconButtonOutline : compact ? iconButtonCompact : iconButtonNormal,
5379
+ ...isHovered && (isCircle || isOutline ? iconButtonCircleStylesHover : iconButtonTokenHover),
5380
+ ...isFocusVisible || forceFocusStyles ? isCircle ? iconButtonCircleStylesFocus : iconButtonStylesFocus : {},
5381
+ ...active && (isCircle || isOutline ? activeStylesCircle : iconButtonTokenHover),
5380
5382
  ...isDisabled && iconButtonStylesDisabled,
5381
5383
  ...bgColor && {
5382
5384
  backgroundColor: ["bgColor_var", {
5383
5385
  "--backgroundColor": maybeCssVar7(bgColor)
5384
5386
  }]
5385
5387
  }
5386
- }), [isHovered, isFocusVisible, isDisabled, compact, circle, active, bgColor, forceFocusStyles]);
5387
- const iconColor = circle ? circleIconColor : defaultIconColor;
5388
+ }), [isHovered, isFocusVisible, isDisabled, compact, isCircle, isOutline, active, bgColor, forceFocusStyles]);
5389
+ const iconColor = isCircle ? circleIconColor : defaultIconColor;
5388
5390
  const buttonAttrs = {
5389
5391
  ...testIds,
5390
5392
  ...buttonProps,
@@ -5394,7 +5396,7 @@ function IconButton(props) {
5394
5396
  ...mergeProps2(typeof onPress === "string" ? navLink : void 0, void 0, styles),
5395
5397
  "aria-label": label
5396
5398
  };
5397
- const buttonContent = /* @__PURE__ */ jsx11(Icon, { icon, color: color || (isDisabled ? "--b-text-disabled" /* TextDisabled */ : circle && (isHovered || active || isFocusVisible) ? defaultIconColor : iconColor), bgColor, inc: compact ? 2 : circle ? 2.5 : inc });
5399
+ const buttonContent = /* @__PURE__ */ jsx11(Icon, { icon, color: color || (isDisabled ? "--b-text-disabled" /* TextDisabled */ : isCircle && (isHovered || active || isFocusVisible) ? defaultIconColor : iconColor), bgColor, inc: compact ? 2 : isCircle ? 2.5 : inc });
5398
5400
  return maybeTooltip({
5399
5401
  title: resolveTooltip(disabled ?? (preventTooltip ? void 0 : label), tooltip),
5400
5402
  placement: "top",
@@ -5437,6 +5439,17 @@ var iconButtonCircle = {
5437
5439
  justifyContent: "jcc",
5438
5440
  alignItems: "aic"
5439
5441
  };
5442
+ var iconButtonOutline = {
5443
+ borderRadius: "br8",
5444
+ width: "w_48px",
5445
+ height: "h_40px",
5446
+ borderColor: "bcGray300",
5447
+ borderStyle: "bss",
5448
+ borderWidth: "bw1",
5449
+ display: "df",
5450
+ justifyContent: "jcc",
5451
+ alignItems: "aic"
5452
+ };
5440
5453
  var iconButtonTokenHover = {
5441
5454
  backgroundColor: ["bgColor_var", {
5442
5455
  "--backgroundColor": "var(--b-neutral-fill-hover-strong)"
@@ -13085,6 +13098,7 @@ function RadioGroupField(props) {
13085
13098
  onChange,
13086
13099
  options,
13087
13100
  disabled = false,
13101
+ required,
13088
13102
  errorMsg,
13089
13103
  helperText,
13090
13104
  layout = "vertical",
@@ -13099,12 +13113,14 @@ function RadioGroupField(props) {
13099
13113
  isReadOnly: false
13100
13114
  });
13101
13115
  const tid = useTestIds(props, defaultTestId(label));
13116
+ const labelSuffix = useLabelSuffix(required, false);
13102
13117
  const {
13103
13118
  labelProps,
13104
13119
  radioGroupProps
13105
13120
  } = useRadioGroup({
13106
13121
  label,
13107
- isDisabled: disabled
13122
+ isDisabled: disabled,
13123
+ isRequired: required
13108
13124
  }, state);
13109
13125
  return (
13110
13126
  // default styling to position `<Label />` above.
@@ -13119,7 +13135,7 @@ function RadioGroupField(props) {
13119
13135
  justifyContent: "jcsb"
13120
13136
  } : {}
13121
13137
  }), children: [
13122
- /* @__PURE__ */ jsx70(Label, { label, ...labelProps, ...tid.label, hidden: labelStyle === "hidden" }),
13138
+ /* @__PURE__ */ jsx70(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, hidden: labelStyle === "hidden" }),
13123
13139
  /* @__PURE__ */ jsxs43("div", { ...radioGroupProps, children: [
13124
13140
  /* @__PURE__ */ jsx70("div", { ...trussProps44({
13125
13141
  display: "df",
@@ -14445,17 +14461,26 @@ var ColumnStorage = class {
14445
14461
  }
14446
14462
  expandedIds;
14447
14463
  visibleIds;
14464
+ // `loadExpanded`/`loadVisible` can be called multiple times (i.e. when `props.columns`
14465
+ // change, which also changes the auto-derived storage key). Each call wires up a mobx
14466
+ // autorun/reaction that writes to its key, so we must dispose the previous one. Otherwise
14467
+ // a stale writer keeps firing against an old key and clobbers it with the current visible
14468
+ // set, e.g. a conditional column's key gets overwritten while that column isn't rendered.
14469
+ disposeExpanded;
14470
+ disposeVisible;
14448
14471
  loadExpanded(persistCollapse) {
14472
+ this.disposeExpanded?.();
14449
14473
  const key = `expandedColumn_${persistCollapse}`;
14450
14474
  this.expandedIds = loadArrayOrUndefined(key);
14451
- reaction2(
14475
+ this.disposeExpanded = reaction2(
14452
14476
  () => this.states.expandedColumns.map((cs) => cs.column.id),
14453
14477
  (columnIds) => sessionStorage.setItem(key, JSON.stringify(columnIds))
14454
14478
  );
14455
14479
  }
14456
14480
  loadVisible(storageKey) {
14481
+ this.disposeVisible?.();
14457
14482
  this.visibleIds = loadArrayOrUndefined(storageKey);
14458
- autorun2(() => {
14483
+ this.disposeVisible = autorun2(() => {
14459
14484
  const columnIds = this.states.allVisibleColumns("web").map((cs) => cs.column.id);
14460
14485
  sessionStorage.setItem(storageKey, JSON.stringify(columnIds));
14461
14486
  });
@@ -17386,6 +17411,7 @@ function BoundRadioGroupField(props) {
17386
17411
  RadioGroupField,
17387
17412
  {
17388
17413
  label,
17414
+ required: field.required,
17389
17415
  value: field.value || void 0,
17390
17416
  onChange: (value) => {
17391
17417
  onChange(value);
@@ -18194,7 +18220,7 @@ function RightSidebar({
18194
18220
  flexDirection: "fdc",
18195
18221
  alignItems: "aic"
18196
18222
  }), children: [
18197
- /* @__PURE__ */ jsx121(IconButton, { bgColor: "rgba(255, 255, 255, 1)" /* White */, circle: true, onClick: () => setSelectedIcon(void 0), icon: "x", inc: 3.5 }),
18223
+ /* @__PURE__ */ jsx121(IconButton, { bgColor: "rgba(255, 255, 255, 1)" /* White */, variant: "circle", onClick: () => setSelectedIcon(void 0), icon: "x", inc: 3.5 }),
18198
18224
  /* @__PURE__ */ jsx121("div", { className: "absolute top_48px h_calc_100vh_168px w_1px bgGray300" })
18199
18225
  ] }),
18200
18226
  /* @__PURE__ */ jsx121("div", { className: "df aic jcfe gap2 mb3", children: /* @__PURE__ */ jsx121(IconButtonList, { content, selectedIcon, onIconClick: setSelectedIcon }) })
@@ -18213,7 +18239,7 @@ function IconButtonList({
18213
18239
  }) => /* @__PURE__ */ jsx121(
18214
18240
  IconButton,
18215
18241
  {
18216
- circle: true,
18242
+ variant: "circle",
18217
18243
  active: icon === selectedIcon,
18218
18244
  onClick: () => onIconClick(icon),
18219
18245
  icon,
@@ -18651,7 +18677,7 @@ function invertSpacing(value) {
18651
18677
  }
18652
18678
 
18653
18679
  // src/components/Layout/GridTableLayout/GridTableLayout.tsx
18654
- import React17, { useEffect as useEffect27, useMemo as useMemo38, useState as useState43 } from "react";
18680
+ import React17, { useEffect as useEffect28, useMemo as useMemo38, useState as useState43 } from "react";
18655
18681
 
18656
18682
  // src/components/ButtonMenu.tsx
18657
18683
  import { useRef as useRef45 } from "react";
@@ -18691,7 +18717,7 @@ function isSelectionButtonMenuProps(props) {
18691
18717
  }
18692
18718
 
18693
18719
  // src/components/Filters/FilterDropdownMenu.tsx
18694
- import { memo as memo2, useMemo as useMemo35, useState as useState42 } from "react";
18720
+ import { memo as memo2, useEffect as useEffect27, useMemo as useMemo35, useState as useState42 } from "react";
18695
18721
 
18696
18722
  // src/components/CountBadge.tsx
18697
18723
  import { trussProps as trussProps66, maybeCssVar as maybeCssVar39 } from "@homebound/truss/runtime";
@@ -19297,35 +19323,109 @@ function updateFilter(currentFilter, key, value) {
19297
19323
  var filterTestIdPrefix = "filter";
19298
19324
 
19299
19325
  // src/components/Filters/FilterDropdownMenu.tsx
19326
+ import { useDebounce as useDebounce2 } from "use-debounce";
19327
+ import { StringParam as StringParam2, useQueryParams as useQueryParams3 } from "use-query-params";
19328
+ import { trussProps as trussProps69 } from "@homebound/truss/runtime";
19300
19329
  import { Fragment as Fragment32, jsx as jsx140, jsxs as jsxs70 } from "react/jsx-runtime";
19301
19330
  function FilterDropdownMenu(props) {
19302
19331
  const {
19303
19332
  filter,
19304
19333
  onChange,
19305
19334
  filterDefs,
19306
- groupBy
19335
+ groupBy,
19336
+ searchProps
19307
19337
  } = props;
19308
19338
  const testId = useTestIds(props, filterTestIdPrefix);
19339
+ const {
19340
+ sm
19341
+ } = useBreakpoint();
19309
19342
  const [isOpen, setIsOpen] = useState42(false);
19310
- const activeFilterCount = useMemo35(() => getActiveFilterCount(filter), [filter]);
19311
- const filterImpls = useMemo35(() => buildFilterImpls(filterDefs), [filterDefs]);
19343
+ const [searchIsOpen, setSearchIsOpen] = useState42(false);
19344
+ const [{
19345
+ search: initialValue
19346
+ }, setQueryParams] = useQueryParams3({
19347
+ search: StringParam2
19348
+ });
19349
+ const [searchValue, setSearchValue] = useState42(initialValue || "");
19350
+ const [debouncedSearch] = useDebounce2(searchValue, 300);
19351
+ useEffect27(() => {
19352
+ if (searchProps) {
19353
+ searchProps.onSearch(debouncedSearch);
19354
+ setQueryParams({
19355
+ search: debouncedSearch || void 0
19356
+ }, "replaceIn");
19357
+ }
19358
+ }, [debouncedSearch, searchProps, setQueryParams]);
19359
+ const hasSearch = !!searchProps;
19360
+ const hasFilters = !!filterDefs && Object.keys(filterDefs ?? {}).length > 0;
19361
+ const activeFilterCount = useMemo35(() => filter ? getActiveFilterCount(filter) : 0, [filter]);
19362
+ const filterImpls = useMemo35(() => filterDefs ? buildFilterImpls(filterDefs) : {}, [filterDefs]);
19312
19363
  const renderFilters = () => {
19364
+ if (!filter || !onChange) return null;
19313
19365
  const entries = safeEntries(filterImpls);
19314
19366
  const nonCheckbox = entries.filter(([_, f]) => !f.hideLabelInModal);
19315
19367
  const checkbox = entries.filter(([_, f]) => f.hideLabelInModal);
19316
19368
  return [...nonCheckbox, ...checkbox].map(([key, f]) => /* @__PURE__ */ jsx140("div", { children: f.render(filter[key], (value) => onChange(updateFilter(filter, key, value)), testId, false, false) }, key));
19317
19369
  };
19370
+ const searchTextField = /* @__PURE__ */ jsx140(TextField, { label: "Search", labelStyle: "hidden", value: searchValue, onChange: (v) => setSearchValue(v ?? ""), placeholder: "Search", clearable: true, startAdornment: /* @__PURE__ */ jsx140(Icon, { icon: "search", color: "rgba(100, 100, 100, 1)" /* Gray700 */ }) });
19318
19371
  return /* @__PURE__ */ jsxs70(Fragment32, { children: [
19319
- /* @__PURE__ */ jsx140(Button, { label: "Filter", icon: "filter", size: "md", endAdornment: /* @__PURE__ */ jsxs70("div", { className: "df aic gap1", children: [
19372
+ hasSearch && /* @__PURE__ */ jsx140("div", { ...trussProps69({
19373
+ width: "w_244px",
19374
+ ...sm ? {
19375
+ position: "absolute",
19376
+ overflow: "oh",
19377
+ clip: "cli_inset_50",
19378
+ clipPath: "clp_none",
19379
+ border: "bd_0",
19380
+ height: "h_1px",
19381
+ margin: "m_neg1px",
19382
+ width: "w_1px",
19383
+ padding: "p_0",
19384
+ whiteSpace: "wsnw",
19385
+ opacity: "o0"
19386
+ } : {}
19387
+ }), children: searchTextField }),
19388
+ sm && hasSearch && /* @__PURE__ */ jsx140(Button, { label: "", "aria-label": "Search", icon: "search", onClick: () => setSearchIsOpen(!searchIsOpen), active: searchIsOpen, variant: "secondaryBlack", ...testId.searchButton }),
19389
+ hasFilters && /* @__PURE__ */ jsx140(Button, { label: sm ? "" : "Filter", "aria-label": "Filter", icon: "filter", size: "md", endAdornment: /* @__PURE__ */ jsxs70("div", { className: "df aic gap1", children: [
19320
19390
  activeFilterCount > 0 && /* @__PURE__ */ jsx140(CountBadge, { count: activeFilterCount }),
19321
- /* @__PURE__ */ jsx140(Icon, { icon: isOpen ? "chevronUp" : "chevronDown" })
19391
+ /* @__PURE__ */ jsx140(Icon, { xss: {
19392
+ ...sm ? {
19393
+ position: "absolute",
19394
+ overflow: "oh",
19395
+ clip: "cli_inset_50",
19396
+ clipPath: "clp_none",
19397
+ border: "bd_0",
19398
+ height: "h_1px",
19399
+ margin: "m_neg1px",
19400
+ width: "w_1px",
19401
+ padding: "p_0",
19402
+ whiteSpace: "wsnw",
19403
+ opacity: "o0"
19404
+ } : {}
19405
+ }, icon: isOpen ? "chevronUp" : "chevronDown" })
19322
19406
  ] }), variant: "secondaryBlack", onClick: () => setIsOpen(!isOpen), active: isOpen, ...testId.button }),
19323
- isOpen && /* @__PURE__ */ jsxs70("div", { className: "df aic fww gap1 w100", children: [
19407
+ searchIsOpen && /* @__PURE__ */ jsx140("div", { ...trussProps69({
19408
+ width: "w100",
19409
+ ...!sm ? {
19410
+ position: "absolute",
19411
+ overflow: "oh",
19412
+ clip: "cli_inset_50",
19413
+ clipPath: "clp_none",
19414
+ border: "bd_0",
19415
+ height: "h_1px",
19416
+ margin: "m_neg1px",
19417
+ width: "w_1px",
19418
+ padding: "p_0",
19419
+ whiteSpace: "wsnw",
19420
+ opacity: "o0"
19421
+ } : {}
19422
+ }), children: searchTextField }),
19423
+ hasFilters && isOpen && /* @__PURE__ */ jsxs70("div", { className: "df aic fww gap1 w100", children: [
19324
19424
  groupBy && /* @__PURE__ */ jsx140(SelectField, { label: "Group by", labelStyle: "inline", sizeToContent: true, options: groupBy.options, getOptionValue: (o) => o.id, getOptionLabel: (o) => o.name, value: groupBy.value, onSelect: (g) => g && groupBy.setValue(g) }),
19325
19425
  renderFilters(),
19326
- activeFilterCount > 0 && /* @__PURE__ */ jsx140(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn })
19426
+ activeFilterCount > 0 && /* @__PURE__ */ jsx140(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange?.({}), ...testId.clearBtn })
19327
19427
  ] }),
19328
- !isOpen && /* @__PURE__ */ jsx140(FilterChips, { filter, filterImpls, onChange, onClear: () => onChange({}), testId })
19428
+ hasFilters && !isOpen && filter && onChange && /* @__PURE__ */ jsx140(FilterChips, { filter, filterImpls, onChange, onClear: () => onChange({}), testId })
19329
19429
  ] });
19330
19430
  }
19331
19431
  function FilterChips({
@@ -19459,6 +19559,9 @@ function EditColumnsButton(props) {
19459
19559
  isDisabled: !!disabled
19460
19560
  }, state, buttonRef);
19461
19561
  const tid = useTestIds(props, isTextButton(trigger) ? labelOr(trigger, "editColumnsButton") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name);
19562
+ const {
19563
+ sm
19564
+ } = useBreakpoint();
19462
19565
  const options = useMemo36(() => columns.filter((column2) => column2.canHide).filter((column2) => {
19463
19566
  if (!column2.name || column2.name.length === 0 || !column2.id || column2.id.length === 0) {
19464
19567
  console.warn("Column is missing 'name' and/or 'id' property required by the Edit Columns button", column2);
@@ -19474,7 +19577,7 @@ function EditColumnsButton(props) {
19474
19577
  api.resetColumnWidths();
19475
19578
  api.setVisibleColumns(columns.filter((column2) => column2.canHide ? ids.includes(column2.id) : true).map((c) => c.id));
19476
19579
  }, [columns, api]);
19477
- return /* @__PURE__ */ jsx142(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ jsxs72("div", { className: "dg gtc_1fr_auto gap2 bgWhite pt2 pb2 pr2 pl2 maxw_326px h_bshHover", children: [
19580
+ return /* @__PURE__ */ jsx142(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, hideEndAdornment: sm, ...tid, children: /* @__PURE__ */ jsxs72("div", { className: "dg gtc_1fr_auto gap2 bgWhite pt2 pb2 pr2 pl2 maxw_326px h_bshHover", children: [
19478
19581
  options.map((option) => /* @__PURE__ */ jsxs72(Fragment33, { children: [
19479
19582
  /* @__PURE__ */ jsx142("div", { className: "fw4 fz_14px lh_20px wsnw oh to_ellipsis pr1", children: option.label }),
19480
19583
  /* @__PURE__ */ jsx142(Switch, { compact: true, selected: selectedValues.includes(option.value), onChange: (value) => setSelectedValues(value ? [...selectedValues, option.value] : selectedValues.filter((v) => v !== option.value)), labelStyle: "hidden", label: option.label, ...tid[`option${option.value}`] })
@@ -19484,7 +19587,7 @@ function EditColumnsButton(props) {
19484
19587
  }
19485
19588
 
19486
19589
  // src/components/Table/TableActions.tsx
19487
- import { trussProps as trussProps69 } from "@homebound/truss/runtime";
19590
+ import { trussProps as trussProps70 } from "@homebound/truss/runtime";
19488
19591
  import { jsx as jsx143, jsxs as jsxs73 } from "react/jsx-runtime";
19489
19592
  function TableActions(props) {
19490
19593
  const {
@@ -19492,7 +19595,7 @@ function TableActions(props) {
19492
19595
  children,
19493
19596
  right
19494
19597
  } = props;
19495
- return /* @__PURE__ */ jsxs73("div", { ...trussProps69({
19598
+ return /* @__PURE__ */ jsxs73("div", { ...trussProps70({
19496
19599
  ...{
19497
19600
  display: "df",
19498
19601
  gap: "gap1",
@@ -19507,10 +19610,6 @@ function TableActions(props) {
19507
19610
  ] });
19508
19611
  }
19509
19612
 
19510
- // src/components/Layout/GridTableLayout/GridTableLayout.tsx
19511
- import { useDebounce as useDebounce2 } from "use-debounce";
19512
- import { StringParam as StringParam2, useQueryParams as useQueryParams3 } from "use-query-params";
19513
-
19514
19613
  // src/components/Layout/layoutTypes.ts
19515
19614
  function isGridTableProps(props) {
19516
19615
  return "rows" in props;
@@ -19520,7 +19619,7 @@ function isGridTableProps(props) {
19520
19619
  import { useMemo as useMemo37 } from "react";
19521
19620
 
19522
19621
  // src/components/LoadingSkeleton.tsx
19523
- import { trussProps as trussProps70, maybeCssVar as maybeCssVar40 } from "@homebound/truss/runtime";
19622
+ import { trussProps as trussProps71, maybeCssVar as maybeCssVar40 } from "@homebound/truss/runtime";
19524
19623
  import { jsx as jsx144 } from "react/jsx-runtime";
19525
19624
  function LoadingSkeleton({
19526
19625
  rows = 1,
@@ -19533,7 +19632,7 @@ function LoadingSkeleton({
19533
19632
  const rowHeight = sizeToPixels2[size];
19534
19633
  const rowCells = (rowNumber) => {
19535
19634
  const flexGrowForCell = randomizeWidths ? getRandomizedFlexBasisByRowIndex(rowNumber) : 1;
19536
- return cellArray.map((_, i) => /* @__PURE__ */ jsx144("div", { ...trussProps70({
19635
+ return cellArray.map((_, i) => /* @__PURE__ */ jsx144("div", { ...trussProps71({
19537
19636
  borderRadius: "br4",
19538
19637
  animation: "animation_pulse_2s_cubic_bezier_0_4_0_0_6_1_infinite",
19539
19638
  flexGrow: ["flexGrow_var", {
@@ -19544,7 +19643,7 @@ function LoadingSkeleton({
19544
19643
  }]
19545
19644
  }) }, `row-${rowNumber}-cell-${i}`));
19546
19645
  };
19547
- return /* @__PURE__ */ jsx144("div", { "aria-label": "Loading", children: rowArray.map((_, i) => /* @__PURE__ */ jsx144("div", { ...trussProps70({
19646
+ return /* @__PURE__ */ jsx144("div", { "aria-label": "Loading", children: rowArray.map((_, i) => /* @__PURE__ */ jsx144("div", { ...trussProps71({
19548
19647
  display: "df",
19549
19648
  gap: "gap1",
19550
19649
  marginBottom: "mb1",
@@ -19585,7 +19684,7 @@ function LoadingTable(props) {
19585
19684
  }
19586
19685
 
19587
19686
  // src/components/Layout/GridTableLayout/GridTableLayout.tsx
19588
- import { trussProps as trussProps71 } from "@homebound/truss/runtime";
19687
+ import { trussProps as trussProps72 } from "@homebound/truss/runtime";
19589
19688
  import { Fragment as Fragment35, jsx as jsx146, jsxs as jsxs75 } from "react/jsx-runtime";
19590
19689
  function GridTableLayoutComponent(props) {
19591
19690
  const {
@@ -19612,23 +19711,22 @@ function GridTableLayoutComponent(props) {
19612
19711
  const showTableActions = layoutState?.filterDefs || layoutState?.search || hasHideableColumns;
19613
19712
  const isVirtualized = tableProps.as === "virtual";
19614
19713
  const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
19615
- useEffect27(() => {
19714
+ useEffect28(() => {
19616
19715
  if (layoutState?.setVisibleColumnIds) {
19617
19716
  layoutState.setVisibleColumnIds(visibleColumnIds);
19618
19717
  }
19619
19718
  }, [visibleColumnIds, layoutState]);
19620
19719
  const visibleColumnsStorageKey = layoutState?.persistedColumnsStorageKey;
19621
19720
  return /* @__PURE__ */ jsxs75(Fragment35, { children: [
19622
- /* @__PURE__ */ jsx146(Header2, { pageTitle, breadCrumb, primaryAction, secondaryAction, tertiaryAction, actionMenu }),
19623
- showTableActions && /* @__PURE__ */ jsxs75(TableActions, { right: hasHideableColumns && /* @__PURE__ */ jsx146(EditColumnsButton, { columns, api, tooltip: "Display columns", trigger: {
19721
+ pageTitle && /* @__PURE__ */ jsx146(Header2, { pageTitle, breadCrumb, primaryAction, secondaryAction, tertiaryAction, actionMenu }),
19722
+ showTableActions && /* @__PURE__ */ jsx146(TableActions, { right: hasHideableColumns && /* @__PURE__ */ jsx146(EditColumnsButton, { columns, api, tooltip: "Display columns", trigger: {
19624
19723
  icon: "kanban",
19625
19724
  size: "md",
19626
19725
  label: "",
19627
19726
  variant: "secondaryBlack"
19628
- }, ...tid.editColumnsButton }), children: [
19629
- layoutState?.search && /* @__PURE__ */ jsx146(SearchBox, { onSearch: layoutState.setSearchString }),
19630
- layoutState?.filterDefs && /* @__PURE__ */ jsx146(_FilterDropdownMenu, { filterDefs: layoutState.filterDefs, filter: layoutState.filter, onChange: layoutState.setFilter, groupBy: layoutState.groupBy })
19631
- ] }),
19727
+ }, ...tid.editColumnsButton }), children: layoutState && (layoutState.filterDefs || layoutState.search) && /* @__PURE__ */ jsx146(_FilterDropdownMenu, { filterDefs: layoutState.filterDefs, filter: layoutState.filter, onChange: layoutState.setFilter, groupBy: layoutState.groupBy, searchProps: layoutState.search ? {
19728
+ onSearch: layoutState.setSearchString
19729
+ } : void 0 }) }),
19632
19730
  /* @__PURE__ */ jsxs75(ScrollableContent, { virtualized: isVirtualized, children: [
19633
19731
  isGridTableProps(tableProps) ? /* @__PURE__ */ jsx146(GridTable, { ...tableProps, api, filter: clientSearch, style: {
19634
19732
  allWhite: true
@@ -19679,7 +19777,7 @@ function useGridTableLayoutState({
19679
19777
  offset: 0,
19680
19778
  limit: persistedPageSize
19681
19779
  });
19682
- useEffect27(() => {
19780
+ useEffect28(() => {
19683
19781
  if (page.limit !== persistedPageSize) setPersistedPageSize(page.limit);
19684
19782
  setPage((prev) => prev.offset === 0 ? prev : {
19685
19783
  ...prev,
@@ -19716,7 +19814,7 @@ function Header2(props) {
19716
19814
  actionMenu
19717
19815
  } = props;
19718
19816
  const tids = useTestIds(props);
19719
- return /* @__PURE__ */ jsx146(FullBleed, { children: /* @__PURE__ */ jsxs75("header", { ...trussProps71({
19817
+ return /* @__PURE__ */ jsx146(FullBleed, { children: /* @__PURE__ */ jsxs75("header", { ...trussProps72({
19720
19818
  ...{
19721
19819
  paddingTop: "pt3",
19722
19820
  paddingBottom: "pb3",
@@ -19744,24 +19842,6 @@ function Header2(props) {
19744
19842
  ] })
19745
19843
  ] }) });
19746
19844
  }
19747
- function SearchBox({
19748
- onSearch
19749
- }) {
19750
- const [{
19751
- search: initialValue
19752
- }, setQueryParams] = useQueryParams3({
19753
- search: StringParam2
19754
- });
19755
- const [value, setValue] = useState43(initialValue || "");
19756
- const [debouncedSearch] = useDebounce2(value, 300);
19757
- useEffect27(() => {
19758
- onSearch(debouncedSearch);
19759
- setQueryParams({
19760
- search: debouncedSearch || void 0
19761
- }, "replaceIn");
19762
- }, [debouncedSearch, onSearch, setQueryParams]);
19763
- return /* @__PURE__ */ jsx146("div", { className: "w_244px", children: /* @__PURE__ */ jsx146(TextField, { label: "Search", labelStyle: "hidden", value, onChange: (v) => setValue(v ?? ""), placeholder: "Search", clearable: true, startAdornment: /* @__PURE__ */ jsx146(Icon, { icon: "search", color: "rgba(100, 100, 100, 1)" /* Gray700 */ }) }) });
19764
- }
19765
19845
 
19766
19846
  // src/components/Layout/PreventBrowserScroll.tsx
19767
19847
  import { jsx as jsx147 } from "react/jsx-runtime";
@@ -19813,8 +19893,8 @@ function useRightPaneContext() {
19813
19893
 
19814
19894
  // src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
19815
19895
  import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
19816
- import { useEffect as useEffect28 } from "react";
19817
- import { trussProps as trussProps72, maybeCssVar as maybeCssVar41 } from "@homebound/truss/runtime";
19896
+ import { useEffect as useEffect29 } from "react";
19897
+ import { trussProps as trussProps73, maybeCssVar as maybeCssVar41 } from "@homebound/truss/runtime";
19818
19898
  import { Fragment as Fragment36, jsx as jsx149, jsxs as jsxs76 } from "react/jsx-runtime";
19819
19899
  var __maybeInc11 = (inc) => {
19820
19900
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -19832,9 +19912,9 @@ function RightPaneLayout(props) {
19832
19912
  clearPane,
19833
19913
  closePane
19834
19914
  } = useRightPaneContext();
19835
- useEffect28(() => closePane, [closePane]);
19915
+ useEffect29(() => closePane, [closePane]);
19836
19916
  return /* @__PURE__ */ jsx149("div", { className: "h100 df oxh", children: /* @__PURE__ */ jsxs76(Fragment36, { children: [
19837
- /* @__PURE__ */ jsx149("div", { ...trussProps72({
19917
+ /* @__PURE__ */ jsx149("div", { ...trussProps73({
19838
19918
  ...{
19839
19919
  width: ["w_var", {
19840
19920
  "--width": maybeCssVar41(__maybeInc11(`calc(100% - ${paneWidth + 24}px)`))
@@ -19859,7 +19939,7 @@ function RightPaneLayout(props) {
19859
19939
  } : {}
19860
19940
  }
19861
19941
  }), children }),
19862
- /* @__PURE__ */ jsxs76("div", { ...trussProps72({
19942
+ /* @__PURE__ */ jsxs76("div", { ...trussProps73({
19863
19943
  position: "relative",
19864
19944
  ...!!defaultPaneContent ? {
19865
19945
  width: ["w_var", {
@@ -19867,7 +19947,7 @@ function RightPaneLayout(props) {
19867
19947
  }]
19868
19948
  } : {}
19869
19949
  }), children: [
19870
- defaultPaneContent && /* @__PURE__ */ jsx149("div", { ...trussProps72({
19950
+ defaultPaneContent && /* @__PURE__ */ jsx149("div", { ...trussProps73({
19871
19951
  height: "h100",
19872
19952
  width: ["w_var", {
19873
19953
  "--width": `${paneWidth}px`
@@ -19885,7 +19965,7 @@ function RightPaneLayout(props) {
19885
19965
  {
19886
19966
  layout: "position",
19887
19967
  "data-testid": "rightPaneContent",
19888
- ...trussProps72({
19968
+ ...trussProps73({
19889
19969
  backgroundColor: ["bgColor_var", {
19890
19970
  "--backgroundColor": maybeCssVar41(paneBgColor)
19891
19971
  }],
@@ -19944,7 +20024,7 @@ function ScrollableFooter(props) {
19944
20024
 
19945
20025
  // src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
19946
20026
  import { AnimatePresence as AnimatePresence4, motion as motion4 } from "framer-motion";
19947
- import { useEffect as useEffect29, useState as useState45 } from "react";
20027
+ import { useEffect as useEffect30, useState as useState45 } from "react";
19948
20028
 
19949
20029
  // src/components/Layout/TableReviewLayout/SidePanel.tsx
19950
20030
  import { jsx as jsx151, jsxs as jsxs77 } from "react/jsx-runtime";
@@ -19968,7 +20048,7 @@ function SidePanel(props) {
19968
20048
  }
19969
20049
 
19970
20050
  // src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
19971
- import { trussProps as trussProps73, maybeCssVar as maybeCssVar42 } from "@homebound/truss/runtime";
20051
+ import { trussProps as trussProps74, maybeCssVar as maybeCssVar42 } from "@homebound/truss/runtime";
19972
20052
  import { jsx as jsx152, jsxs as jsxs78 } from "react/jsx-runtime";
19973
20053
  var defaultRightPaneWidth = 450;
19974
20054
  function TableReviewLayout(props) {
@@ -19985,7 +20065,7 @@ function TableReviewLayout(props) {
19985
20065
  } = props;
19986
20066
  const tid = useTestIds(props, "tableReviewLayout");
19987
20067
  const [isPanelVisible, setIsPanelVisible] = useState45(!!panelContent);
19988
- useEffect29(() => {
20068
+ useEffect30(() => {
19989
20069
  setIsPanelVisible(!!panelContent);
19990
20070
  }, [panelContent]);
19991
20071
  function handleClosePanel() {
@@ -20010,7 +20090,7 @@ function TableReviewLayout(props) {
20010
20090
  bordered: true
20011
20091
  }, stickyHeader: true });
20012
20092
  }
20013
- return /* @__PURE__ */ jsxs78("div", { ...trussProps73({
20093
+ return /* @__PURE__ */ jsxs78("div", { ...trussProps74({
20014
20094
  position: "fixed",
20015
20095
  top: "top0",
20016
20096
  bottom: "bottom0",
@@ -20035,7 +20115,7 @@ function TableReviewLayout(props) {
20035
20115
  /* @__PURE__ */ jsx152("div", { className: "fw4 fz_14px lh_20px gray700 mt2", ...tid.description, children: description })
20036
20116
  ] }),
20037
20117
  /* @__PURE__ */ jsxs78("div", { className: "fg1 df mh0", ...tid.content, children: [
20038
- /* @__PURE__ */ jsx152("div", { ...trussProps73({
20118
+ /* @__PURE__ */ jsx152("div", { ...trussProps74({
20039
20119
  ...{
20040
20120
  flexGrow: "fg1",
20041
20121
  overflowY: "oya",
@@ -20058,7 +20138,7 @@ function TableReviewLayout(props) {
20058
20138
  ease: "linear",
20059
20139
  duration: 0.2
20060
20140
  }, className: "df fdc fs0 relative", children: [
20061
- /* @__PURE__ */ jsxs78("div", { ...trussProps73({
20141
+ /* @__PURE__ */ jsxs78("div", { ...trussProps74({
20062
20142
  position: "absolute",
20063
20143
  top: ["top_var", {
20064
20144
  "--top": `${-32}px`
@@ -20071,7 +20151,7 @@ function TableReviewLayout(props) {
20071
20151
  }],
20072
20152
  zIndex: "z1"
20073
20153
  }), children: [
20074
- /* @__PURE__ */ jsx152(IconButton, { bgColor: "rgba(255, 255, 255, 1)" /* White */, circle: true, icon: "x", inc: 3.5, onClick: handleClosePanel, ...tid.closePanelButton }),
20154
+ /* @__PURE__ */ jsx152(IconButton, { bgColor: "rgba(255, 255, 255, 1)" /* White */, variant: "circle", icon: "x", inc: 3.5, onClick: handleClosePanel, ...tid.closePanelButton }),
20075
20155
  /* @__PURE__ */ jsx152("div", { className: "w_1px bgGray300 vh100" })
20076
20156
  ] }),
20077
20157
  /* @__PURE__ */ jsx152("div", { className: "fg1 oh mh0", children: /* @__PURE__ */ jsx152(SidePanel, { ...panelContent }) })
@@ -20181,7 +20261,7 @@ function ButtonDatePicker(props) {
20181
20261
  // src/components/ButtonGroup.tsx
20182
20262
  import { useRef as useRef49 } from "react";
20183
20263
  import { useButton as useButton10, useFocusRing as useFocusRing12, useHover as useHover15 } from "react-aria";
20184
- import { trussProps as trussProps74 } from "@homebound/truss/runtime";
20264
+ import { trussProps as trussProps75 } from "@homebound/truss/runtime";
20185
20265
  import { jsx as jsx155, jsxs as jsxs80 } from "react/jsx-runtime";
20186
20266
  function ButtonGroup(props) {
20187
20267
  const {
@@ -20192,7 +20272,7 @@ function ButtonGroup(props) {
20192
20272
  const tid = useTestIds(props, "buttonGroup");
20193
20273
  return (
20194
20274
  // Adding `line-height: 0` prevent inheriting line-heights that might throw off sizing within the button group.
20195
- /* @__PURE__ */ jsx155("div", { ...tid, ...trussProps74({
20275
+ /* @__PURE__ */ jsx155("div", { ...tid, ...trussProps75({
20196
20276
  ...{
20197
20277
  display: "df",
20198
20278
  lineHeight: "lh_0"
@@ -20241,10 +20321,10 @@ function GroupButton(props) {
20241
20321
  isHovered
20242
20322
  } = useHover15(ariaProps);
20243
20323
  const tid = useTestIds(props);
20244
- return /* @__PURE__ */ jsx155("span", { ...trussProps74(getButtonStyles2(isFirst, isLast)), children: maybeTooltip({
20324
+ return /* @__PURE__ */ jsx155("span", { ...trussProps75(getButtonStyles2(isFirst, isLast)), children: maybeTooltip({
20245
20325
  title: resolveTooltip(disabled, tooltip),
20246
20326
  placement: "top",
20247
- children: /* @__PURE__ */ jsxs80("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps74({
20327
+ children: /* @__PURE__ */ jsxs80("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps75({
20248
20328
  ...{
20249
20329
  fontWeight: "fw6",
20250
20330
  fontSize: "fz_14px",
@@ -20351,7 +20431,7 @@ import { useHover as useHover16 } from "react-aria";
20351
20431
  // src/components/Tag.tsx
20352
20432
  import { useResizeObserver as useResizeObserver4 } from "@react-aria/utils";
20353
20433
  import { useRef as useRef50, useState as useState46 } from "react";
20354
- import { trussProps as trussProps75 } from "@homebound/truss/runtime";
20434
+ import { trussProps as trussProps76 } from "@homebound/truss/runtime";
20355
20435
  import { jsx as jsx156, jsxs as jsxs81 } from "react/jsx-runtime";
20356
20436
  function Tag(props) {
20357
20437
  const {
@@ -20375,7 +20455,7 @@ function Tag(props) {
20375
20455
  });
20376
20456
  return maybeTooltip({
20377
20457
  title: !preventTooltip && showTooltip ? text : void 0,
20378
- children: /* @__PURE__ */ jsxs81("span", { ...tid, ...trussProps75({
20458
+ children: /* @__PURE__ */ jsxs81("span", { ...tid, ...trussProps76({
20379
20459
  ...{
20380
20460
  display: "dif",
20381
20461
  fontWeight: "fw6",
@@ -20425,7 +20505,7 @@ function getStyles(type) {
20425
20505
  }
20426
20506
 
20427
20507
  // src/components/Card.tsx
20428
- import { trussProps as trussProps76, maybeCssVar as maybeCssVar43 } from "@homebound/truss/runtime";
20508
+ import { trussProps as trussProps77, maybeCssVar as maybeCssVar43 } from "@homebound/truss/runtime";
20429
20509
  import { jsx as jsx157, jsxs as jsxs82 } from "react/jsx-runtime";
20430
20510
  function Card(props) {
20431
20511
  const {
@@ -20456,8 +20536,8 @@ function Card(props) {
20456
20536
  ...isHovered && cardHoverStyles,
20457
20537
  ...isDisabled && disabledStyles3
20458
20538
  }), [isDisabled, isHovered, bordered, type, isList]);
20459
- return /* @__PURE__ */ jsxs82("div", { ...trussProps76(styles), ...hoverProps, ...tid, children: [
20460
- /* @__PURE__ */ jsx157("div", { ...trussProps76({
20539
+ return /* @__PURE__ */ jsxs82("div", { ...trussProps77(styles), ...hoverProps, ...tid, children: [
20540
+ /* @__PURE__ */ jsx157("div", { ...trussProps77({
20461
20541
  ...{
20462
20542
  height: ["h_var", {
20463
20543
  "--height": `${imgHeight}px`
@@ -20474,14 +20554,14 @@ function Card(props) {
20474
20554
  filter: "filter_brightness_1"
20475
20555
  },
20476
20556
  ...isHovered && !isList && imageHoverStyles
20477
- }), children: /* @__PURE__ */ jsx157("img", { ...trussProps76({
20557
+ }), children: /* @__PURE__ */ jsx157("img", { ...trussProps77({
20478
20558
  width: "w100",
20479
20559
  height: "h100",
20480
20560
  objectFit: ["objectFit_var", {
20481
20561
  "--objectFit": maybeCssVar43(imageFit)
20482
20562
  }]
20483
20563
  }), src: imgSrc, alt: title, ...tid.img }) }),
20484
- isHovered && buttonMenuItems && /* @__PURE__ */ jsx157("div", { ...trussProps76({
20564
+ isHovered && buttonMenuItems && /* @__PURE__ */ jsx157("div", { ...trussProps77({
20485
20565
  position: "absolute",
20486
20566
  right: "right1",
20487
20567
  top: "top1",
@@ -20497,7 +20577,7 @@ function Card(props) {
20497
20577
  /* @__PURE__ */ jsxs82("div", { className: "df fdc aifs gap1", children: [
20498
20578
  /* @__PURE__ */ jsxs82("div", { children: [
20499
20579
  /* @__PURE__ */ jsx157("div", { className: "fw6 fz_12px lh_16px gray700", ...tid.subtitle, children: subtitle }),
20500
- /* @__PURE__ */ jsx157("div", { ...trussProps76({
20580
+ /* @__PURE__ */ jsx157("div", { ...trussProps77({
20501
20581
  fontWeight: "fw6",
20502
20582
  fontSize: "fz_14px",
20503
20583
  lineHeight: "lh_20px",
@@ -20587,7 +20667,7 @@ function useDnDGridContext() {
20587
20667
  }
20588
20668
 
20589
20669
  // src/components/DnDGrid/DnDGrid.tsx
20590
- import { trussProps as trussProps77 } from "@homebound/truss/runtime";
20670
+ import { trussProps as trussProps78 } from "@homebound/truss/runtime";
20591
20671
  import { jsx as jsx159 } from "react/jsx-runtime";
20592
20672
  function DnDGrid(props) {
20593
20673
  const {
@@ -20770,7 +20850,7 @@ function DnDGrid(props) {
20770
20850
  return /* @__PURE__ */ jsx159(DnDGridContext.Provider, { value: {
20771
20851
  dragEl,
20772
20852
  onDragHandleKeyDown
20773
- }, children: /* @__PURE__ */ jsx159("div", { ref: gridEl, ...trussProps77({
20853
+ }, children: /* @__PURE__ */ jsx159("div", { ref: gridEl, ...trussProps78({
20774
20854
  ...{
20775
20855
  containerType: "ctis",
20776
20856
  display: "dg"
@@ -20783,7 +20863,7 @@ var gridCloneKey = "dndgrid-clone";
20783
20863
 
20784
20864
  // src/components/DnDGrid/DnDGridItemHandle.tsx
20785
20865
  import { mergeProps as mergeProps23, useFocusRing as useFocusRing13, useHover as useHover17 } from "react-aria";
20786
- import { trussProps as trussProps78 } from "@homebound/truss/runtime";
20866
+ import { trussProps as trussProps79 } from "@homebound/truss/runtime";
20787
20867
  import { jsx as jsx160 } from "react/jsx-runtime";
20788
20868
  function DnDGridItemHandle(props) {
20789
20869
  const {
@@ -20813,7 +20893,7 @@ function DnDGridItemHandle(props) {
20813
20893
  borderRadius: "br4",
20814
20894
  borderWidth: "bw1"
20815
20895
  };
20816
- return /* @__PURE__ */ jsx160("button", { ...trussProps78({
20896
+ return /* @__PURE__ */ jsx160("button", { ...trussProps79({
20817
20897
  ...compact ? iconButtonCompact2 : iconButtonNormal2,
20818
20898
  ...{
20819
20899
  cursor: "cursor_grab",
@@ -20875,7 +20955,7 @@ var gridItemDataAttribute = "data-grid-item-span";
20875
20955
  var ResponsiveGridContext = createContext10(void 0);
20876
20956
 
20877
20957
  // src/components/Grid/ResponsiveGrid.tsx
20878
- import { trussProps as trussProps79 } from "@homebound/truss/runtime";
20958
+ import { trussProps as trussProps80 } from "@homebound/truss/runtime";
20879
20959
  import { jsx as jsx161 } from "react/jsx-runtime";
20880
20960
  function ResponsiveGrid(props) {
20881
20961
  const {
@@ -20896,12 +20976,12 @@ function ResponsiveGrid(props) {
20896
20976
  gap,
20897
20977
  columns
20898
20978
  }), [minColumnWidth, gap, columns]);
20899
- return /* @__PURE__ */ jsx161(ResponsiveGridContext.Provider, { value: config, children: /* @__PURE__ */ jsx161("div", { ...trussProps79(gridStyles), children }) });
20979
+ return /* @__PURE__ */ jsx161(ResponsiveGridContext.Provider, { value: config, children: /* @__PURE__ */ jsx161("div", { ...trussProps80(gridStyles), children }) });
20900
20980
  }
20901
20981
 
20902
20982
  // src/components/Grid/ResponsiveGridItem.tsx
20903
20983
  import { mergeProps as mergeProps24 } from "react-aria";
20904
- import { trussProps as trussProps80 } from "@homebound/truss/runtime";
20984
+ import { trussProps as trussProps81 } from "@homebound/truss/runtime";
20905
20985
  import { jsx as jsx162 } from "react/jsx-runtime";
20906
20986
  function ResponsiveGridItem(props) {
20907
20987
  const {
@@ -20914,7 +20994,7 @@ function ResponsiveGridItem(props) {
20914
20994
  } = useResponsiveGridItem({
20915
20995
  colSpan
20916
20996
  });
20917
- return /* @__PURE__ */ jsx162("div", { ...mergeProps24(gridItemProps, trussProps80(gridItemStyles)), children });
20997
+ return /* @__PURE__ */ jsx162("div", { ...mergeProps24(gridItemProps, trussProps81(gridItemStyles)), children });
20918
20998
  }
20919
20999
 
20920
21000
  // src/components/Grid/useResponsiveGrid.ts
@@ -20952,7 +21032,7 @@ function useResponsiveGrid(props) {
20952
21032
  }
20953
21033
 
20954
21034
  // src/components/Grid/useResponsiveGridItem.ts
20955
- import { useContext as useContext20, useEffect as useEffect30, useMemo as useMemo45 } from "react";
21035
+ import { useContext as useContext20, useEffect as useEffect31, useMemo as useMemo45 } from "react";
20956
21036
  var injectedResponsiveGridClasses = /* @__PURE__ */ new Set();
20957
21037
  var responsiveGridStyleEl;
20958
21038
  function useResponsiveGridItem(props) {
@@ -20982,7 +21062,7 @@ function useResponsiveGridItem(props) {
20982
21062
  };
20983
21063
  }
20984
21064
  function useResponsiveGridItemStyle(className, cssText) {
20985
- useEffect30(
21065
+ useEffect31(
20986
21066
  function() {
20987
21067
  if (!className || !cssText || typeof document === "undefined") return;
20988
21068
  if (!responsiveGridStyleEl) {
@@ -21065,7 +21145,7 @@ function HbSpinnerProvider({
21065
21145
  }
21066
21146
 
21067
21147
  // src/components/HomeboundLogo.tsx
21068
- import { trussProps as trussProps81, maybeCssVar as maybeCssVar45 } from "@homebound/truss/runtime";
21148
+ import { trussProps as trussProps82, maybeCssVar as maybeCssVar45 } from "@homebound/truss/runtime";
21069
21149
  import { jsx as jsx164 } from "react/jsx-runtime";
21070
21150
  var __maybeInc13 = (inc) => {
21071
21151
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -21076,7 +21156,7 @@ function HomeboundLogo(props) {
21076
21156
  width: width2 = "auto",
21077
21157
  height = "auto"
21078
21158
  } = props;
21079
- return /* @__PURE__ */ jsx164("svg", { viewBox: "0 0 158.1 97.6", xmlns: "http://www.w3.org/2000/svg", ...trussProps81({
21159
+ return /* @__PURE__ */ jsx164("svg", { viewBox: "0 0 158.1 97.6", xmlns: "http://www.w3.org/2000/svg", ...trussProps82({
21080
21160
  fill: ["fill_var", {
21081
21161
  "--fill": maybeCssVar45(fill)
21082
21162
  }],
@@ -21091,8 +21171,8 @@ function HomeboundLogo(props) {
21091
21171
 
21092
21172
  // src/components/MaxLines.tsx
21093
21173
  import { useLayoutEffect as useLayoutEffect3, useResizeObserver as useResizeObserver5 } from "@react-aria/utils";
21094
- import { useCallback as useCallback26, useEffect as useEffect31, useRef as useRef52, useState as useState47 } from "react";
21095
- import { trussProps as trussProps82, maybeCssVar as maybeCssVar46 } from "@homebound/truss/runtime";
21174
+ import { useCallback as useCallback26, useEffect as useEffect32, useRef as useRef52, useState as useState47 } from "react";
21175
+ import { trussProps as trussProps83, maybeCssVar as maybeCssVar46 } from "@homebound/truss/runtime";
21096
21176
  import { jsx as jsx165, jsxs as jsxs84 } from "react/jsx-runtime";
21097
21177
  function MaxLines({
21098
21178
  maxLines,
@@ -21105,7 +21185,7 @@ function MaxLines({
21105
21185
  if (!elRef.current) return;
21106
21186
  setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
21107
21187
  }, []);
21108
- useEffect31(() => {
21188
+ useEffect32(() => {
21109
21189
  setExpanded(false);
21110
21190
  }, [children]);
21111
21191
  const onResize = useCallback26(() => {
@@ -21117,7 +21197,7 @@ function MaxLines({
21117
21197
  onResize
21118
21198
  });
21119
21199
  return /* @__PURE__ */ jsxs84("div", { children: [
21120
- /* @__PURE__ */ jsx165("div", { ref: elRef, ...trussProps82({
21200
+ /* @__PURE__ */ jsx165("div", { ref: elRef, ...trussProps83({
21121
21201
  ...!expanded ? {
21122
21202
  WebkitLineClamp: ["lineClamp_var", {
21123
21203
  "--WebkitLineClamp": maybeCssVar46(maxLines)
@@ -21138,12 +21218,12 @@ import { camelCase as camelCase6 } from "change-case";
21138
21218
  // src/components/AppNav/AppNavGroup.tsx
21139
21219
  import { useResizeObserver as useResizeObserver6 } from "@react-aria/utils";
21140
21220
  import { camelCase as camelCase5, kebabCase } from "change-case";
21141
- import { useCallback as useCallback28, useEffect as useEffect32, useMemo as useMemo48, useState as useState49 } from "react";
21221
+ import { useCallback as useCallback28, useEffect as useEffect33, useMemo as useMemo48, useState as useState49 } from "react";
21142
21222
 
21143
21223
  // src/components/AppNav/AppNavGroupTrigger.tsx
21144
21224
  import { useMemo as useMemo47, useRef as useRef53 } from "react";
21145
21225
  import { mergeProps as mergeProps25, useButton as useButton11, useFocusRing as useFocusRing14, useHover as useHover18 } from "react-aria";
21146
- import { trussProps as trussProps83, mergeProps as mergeProps_14 } from "@homebound/truss/runtime";
21226
+ import { trussProps as trussProps84, mergeProps as mergeProps_14 } from "@homebound/truss/runtime";
21147
21227
  import { jsx as jsx166, jsxs as jsxs85 } from "react/jsx-runtime";
21148
21228
  function AppNavGroupTrigger(props) {
21149
21229
  const {
@@ -21187,7 +21267,7 @@ function AppNavGroupTrigger(props) {
21187
21267
  })
21188
21268
  }), children: [
21189
21269
  label,
21190
- /* @__PURE__ */ jsx166("span", { ...trussProps83({
21270
+ /* @__PURE__ */ jsx166("span", { ...trussProps84({
21191
21271
  ...{
21192
21272
  display: "df",
21193
21273
  alignItems: "aic",
@@ -21340,7 +21420,7 @@ function useAppNavGroupExpanded(linkGroup) {
21340
21420
  }
21341
21421
 
21342
21422
  // src/components/AppNav/AppNavGroup.tsx
21343
- import { trussProps as trussProps84, maybeCssVar as maybeCssVar47 } from "@homebound/truss/runtime";
21423
+ import { trussProps as trussProps85, maybeCssVar as maybeCssVar47 } from "@homebound/truss/runtime";
21344
21424
  import { Fragment as Fragment38, jsx as jsx167, jsxs as jsxs86 } from "react/jsx-runtime";
21345
21425
  var __maybeInc14 = (inc) => {
21346
21426
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -21371,7 +21451,7 @@ function AppNavGroupDisclosure(props) {
21371
21451
  current: contentEl
21372
21452
  }), [contentEl]);
21373
21453
  const [contentHeight, setContentHeight] = useState49(expanded ? "auto" : "0");
21374
- useEffect32(() => {
21454
+ useEffect33(() => {
21375
21455
  setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
21376
21456
  }, [expanded, contentEl]);
21377
21457
  const onResize = useCallback28(() => {
@@ -21385,7 +21465,7 @@ function AppNavGroupDisclosure(props) {
21385
21465
  });
21386
21466
  return /* @__PURE__ */ jsxs86("div", { className: "df fdc", ...tid, children: [
21387
21467
  /* @__PURE__ */ jsx167(AppNavGroupTrigger, { label: linkGroup.label, navGroupId, expanded, onClick: onToggle, ...tid }),
21388
- /* @__PURE__ */ jsx167("div", { id: navGroupId, role: "region", "aria-hidden": !expanded, ...trussProps84({
21468
+ /* @__PURE__ */ jsx167("div", { id: navGroupId, role: "region", "aria-hidden": !expanded, ...trussProps85({
21389
21469
  overflow: "oh",
21390
21470
  transition: "transitionHeight",
21391
21471
  height: ["h_var", {
@@ -21417,7 +21497,7 @@ function AppNavGroupMenu({
21417
21497
  }
21418
21498
 
21419
21499
  // src/components/AppNav/AppNavSectionView.tsx
21420
- import { trussProps as trussProps85 } from "@homebound/truss/runtime";
21500
+ import { trussProps as trussProps86 } from "@homebound/truss/runtime";
21421
21501
  import { jsx as jsx169, jsxs as jsxs87 } from "react/jsx-runtime";
21422
21502
  function AppNavSectionView(props) {
21423
21503
  const {
@@ -21443,7 +21523,7 @@ function AppNavSectionView(props) {
21443
21523
  "--borderColor": "var(--b-surface-separator)"
21444
21524
  }]
21445
21525
  };
21446
- return /* @__PURE__ */ jsxs87("div", { ...trussProps85({
21526
+ return /* @__PURE__ */ jsxs87("div", { ...trussProps86({
21447
21527
  ...{
21448
21528
  display: "df",
21449
21529
  flexDirection: "fdc",
@@ -21451,7 +21531,7 @@ function AppNavSectionView(props) {
21451
21531
  },
21452
21532
  ...showDivider ? dividerStyles : {}
21453
21533
  }), ...tid, children: [
21454
- section.label && !panelCollapsed && variant !== "global" && /* @__PURE__ */ jsx169("div", { ...trussProps85({
21534
+ section.label && !panelCollapsed && variant !== "global" && /* @__PURE__ */ jsx169("div", { ...trussProps86({
21455
21535
  fontWeight: "fw6",
21456
21536
  fontSize: "fz_10px",
21457
21537
  lineHeight: "lh_14px",
@@ -21515,11 +21595,11 @@ function AppNavItems(props) {
21515
21595
 
21516
21596
  // src/components/Navbar/NavbarMobileMenu.tsx
21517
21597
  import { AnimatePresence as AnimatePresence5, motion as motion5 } from "framer-motion";
21518
- import { useEffect as useEffect33, useState as useState50 } from "react";
21598
+ import { useEffect as useEffect34, useState as useState50 } from "react";
21519
21599
  import { FocusScope as FocusScope5, usePreventScroll as usePreventScroll2 } from "react-aria";
21520
21600
  import { createPortal as createPortal6 } from "react-dom";
21521
21601
  import { useLocation } from "react-router-dom";
21522
- import { trussProps as trussProps86, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
21602
+ import { trussProps as trussProps87, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
21523
21603
  import { Fragment as Fragment40, jsx as jsx171, jsxs as jsxs88 } from "react/jsx-runtime";
21524
21604
  function NavbarMobileMenu(props) {
21525
21605
  const {
@@ -21534,7 +21614,7 @@ function NavbarMobileMenu(props) {
21534
21614
  usePreventScroll2({
21535
21615
  isDisabled: !isOpen
21536
21616
  });
21537
- useEffect33(() => {
21617
+ useEffect34(() => {
21538
21618
  setIsOpen(false);
21539
21619
  }, [pathname, search]);
21540
21620
  const close = () => setIsOpen(false);
@@ -21549,7 +21629,7 @@ function NavbarMobileDrawer({
21549
21629
  tid
21550
21630
  }) {
21551
21631
  return /* @__PURE__ */ jsxs88(Fragment40, { children: [
21552
- /* @__PURE__ */ jsx171(motion5.div, { ...trussProps86({
21632
+ /* @__PURE__ */ jsx171(motion5.div, { ...trussProps87({
21553
21633
  position: "fixed",
21554
21634
  top: "top0",
21555
21635
  right: "right0",
@@ -21569,7 +21649,7 @@ function NavbarMobileDrawer({
21569
21649
  ease: "linear",
21570
21650
  duration: 0.2
21571
21651
  }, onClick: onClose, ...tid.mobileMenuScrim }, "navbarMobileMenuScrim"),
21572
- /* @__PURE__ */ jsx171(FocusScope5, { autoFocus: true, contain: true, restoreFocus: true, children: /* @__PURE__ */ jsxs88(motion5.aside, { role: "dialog", "aria-modal": "true", "aria-label": "Navigation", ...trussProps86({
21652
+ /* @__PURE__ */ jsx171(FocusScope5, { autoFocus: true, contain: true, restoreFocus: true, children: /* @__PURE__ */ jsxs88(motion5.aside, { role: "dialog", "aria-modal": "true", "aria-label": "Navigation", ...trussProps87({
21573
21653
  position: "fixed",
21574
21654
  top: "top0",
21575
21655
  bottom: "bottom0",
@@ -21614,7 +21694,7 @@ function NavbarMobileDrawer({
21614
21694
  }
21615
21695
 
21616
21696
  // src/components/Navbar/Navbar.tsx
21617
- import { trussProps as trussProps87 } from "@homebound/truss/runtime";
21697
+ import { trussProps as trussProps88 } from "@homebound/truss/runtime";
21618
21698
  import { jsx as jsx172, jsxs as jsxs89 } from "react/jsx-runtime";
21619
21699
  function Navbar(props) {
21620
21700
  const {
@@ -21633,7 +21713,7 @@ function Navbar(props) {
21633
21713
  overflows
21634
21714
  } = useContentOverflow(!sm);
21635
21715
  const showMobile = sm || overflows;
21636
- return /* @__PURE__ */ jsx172(ContrastScope, { children: /* @__PURE__ */ jsxs89("nav", { ...trussProps87({
21716
+ return /* @__PURE__ */ jsx172(ContrastScope, { children: /* @__PURE__ */ jsxs89("nav", { ...trussProps88({
21637
21717
  backgroundColor: "bgGray800",
21638
21718
  flexShrink: "fs0",
21639
21719
  display: "df",
@@ -21657,7 +21737,7 @@ function Navbar(props) {
21657
21737
  ] }),
21658
21738
  !sm && // Stays mounted while overflowing (hidden) so the items remain measurable and the bar
21659
21739
  // can expand again as space frees up.
21660
- /* @__PURE__ */ jsx172("div", { ref: containerRef, ...trussProps87({
21740
+ /* @__PURE__ */ jsx172("div", { ref: containerRef, ...trussProps88({
21661
21741
  display: "df",
21662
21742
  alignItems: "aic",
21663
21743
  flexGrow: "fg1",
@@ -21688,11 +21768,11 @@ function NavbarUserMenu({
21688
21768
 
21689
21769
  // src/components/Tabs.tsx
21690
21770
  import { camelCase as camelCase7 } from "change-case";
21691
- import { useEffect as useEffect34, useMemo as useMemo49, useRef as useRef54, useState as useState51 } from "react";
21771
+ import { useEffect as useEffect35, useMemo as useMemo49, useRef as useRef54, useState as useState51 } from "react";
21692
21772
  import { mergeProps as mergeProps26, useFocusRing as useFocusRing15, useHover as useHover19 } from "react-aria";
21693
21773
  import { matchPath } from "react-router";
21694
21774
  import { Link as Link5, useLocation as useLocation2 } from "react-router-dom";
21695
- import { trussProps as trussProps88, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
21775
+ import { trussProps as trussProps89, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
21696
21776
  import { Fragment as Fragment41, jsx as jsx173, jsxs as jsxs90 } from "react/jsx-runtime";
21697
21777
  function TabsWithContent(props) {
21698
21778
  const styles = hideTabs(props) ? {} : {
@@ -21725,7 +21805,7 @@ function TabContent(props) {
21725
21805
  return (
21726
21806
  // Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
21727
21807
  // Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
21728
- /* @__PURE__ */ jsx173(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx173("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps88(contentXss), children: selectedTab.render() }) })
21808
+ /* @__PURE__ */ jsx173(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx173("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps89(contentXss), children: selectedTab.render() }) })
21729
21809
  );
21730
21810
  }
21731
21811
  function Tabs(props) {
@@ -21751,7 +21831,7 @@ function Tabs(props) {
21751
21831
  const tid = useTestIds(others, "tabs");
21752
21832
  const [active, setActive] = useState51(selected);
21753
21833
  const ref = useRef54(null);
21754
- useEffect34(() => setActive(selected), [selected]);
21834
+ useEffect35(() => setActive(selected), [selected]);
21755
21835
  function onKeyUp(e) {
21756
21836
  if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
21757
21837
  const nextTabValue = getNextTabValue(active, e.key, tabs);
@@ -21767,7 +21847,7 @@ function Tabs(props) {
21767
21847
  setActive(selected);
21768
21848
  }
21769
21849
  }
21770
- return /* @__PURE__ */ jsxs90("div", { ...trussProps88({
21850
+ return /* @__PURE__ */ jsxs90("div", { ...trussProps89({
21771
21851
  ...{
21772
21852
  display: "df",
21773
21853
  alignItems: "aic",
@@ -21831,7 +21911,7 @@ function TabImpl(props) {
21831
21911
  role: "tab",
21832
21912
  tabIndex: active ? 0 : -1,
21833
21913
  ...others,
21834
- ...trussProps88({
21914
+ ...trussProps89({
21835
21915
  ...baseStyles5,
21836
21916
  ...active && activeStyles3,
21837
21917
  ...isDisabled && disabledStyles4,
@@ -21952,7 +22032,7 @@ function hideTabs(props) {
21952
22032
  }
21953
22033
 
21954
22034
  // src/components/PageHeader.tsx
21955
- import { trussProps as trussProps89 } from "@homebound/truss/runtime";
22035
+ import { trussProps as trussProps90 } from "@homebound/truss/runtime";
21956
22036
  import { jsx as jsx174, jsxs as jsxs91 } from "react/jsx-runtime";
21957
22037
  function PageHeader2(props) {
21958
22038
  const {
@@ -21962,7 +22042,7 @@ function PageHeader2(props) {
21962
22042
  ...otherProps
21963
22043
  } = props;
21964
22044
  const tid = useTestIds(otherProps, "pageHeader");
21965
- return /* @__PURE__ */ jsxs91("header", { ...tid, ...trussProps89({
22045
+ return /* @__PURE__ */ jsxs91("header", { ...tid, ...trussProps90({
21966
22046
  display: "df",
21967
22047
  flexDirection: "fdc",
21968
22048
  paddingTop: "pt3",
@@ -21988,7 +22068,7 @@ function PageHeader2(props) {
21988
22068
  // src/components/ScrollShadows.tsx
21989
22069
  import { useResizeObserver as useResizeObserver7 } from "@react-aria/utils";
21990
22070
  import { useCallback as useCallback29, useMemo as useMemo50, useRef as useRef55, useState as useState52 } from "react";
21991
- import { trussProps as trussProps90, maybeCssVar as maybeCssVar50 } from "@homebound/truss/runtime";
22071
+ import { trussProps as trussProps91, maybeCssVar as maybeCssVar50 } from "@homebound/truss/runtime";
21992
22072
  import { jsx as jsx175, jsxs as jsxs92 } from "react/jsx-runtime";
21993
22073
  function ScrollShadows(props) {
21994
22074
  const {
@@ -22079,7 +22159,7 @@ function ScrollShadows(props) {
22079
22159
  ref: scrollRef,
22080
22160
  onResize
22081
22161
  });
22082
- return /* @__PURE__ */ jsxs92("div", { ...trussProps90({
22162
+ return /* @__PURE__ */ jsxs92("div", { ...trussProps91({
22083
22163
  display: "df",
22084
22164
  flexDirection: ["fd_var", {
22085
22165
  "--flexDirection": maybeCssVar50(!horizontal ? "column" : "row")
@@ -22095,7 +22175,7 @@ function ScrollShadows(props) {
22095
22175
  width: width2
22096
22176
  }
22097
22177
  }), ...tid, children: [
22098
- /* @__PURE__ */ jsx175("div", { ...trussProps90({
22178
+ /* @__PURE__ */ jsx175("div", { ...trussProps91({
22099
22179
  ...startShadowStyles,
22100
22180
  ...{
22101
22181
  opacity: ["o_var", {
@@ -22103,7 +22183,7 @@ function ScrollShadows(props) {
22103
22183
  }]
22104
22184
  }
22105
22185
  }), "data-chromatic": "ignore" }),
22106
- /* @__PURE__ */ jsx175("div", { ...trussProps90({
22186
+ /* @__PURE__ */ jsx175("div", { ...trussProps91({
22107
22187
  ...endShadowStyles,
22108
22188
  ...{
22109
22189
  opacity: ["o_var", {
@@ -22111,7 +22191,7 @@ function ScrollShadows(props) {
22111
22191
  }]
22112
22192
  }
22113
22193
  }), "data-chromatic": "ignore" }),
22114
- /* @__PURE__ */ jsx175("div", { ...trussProps90({
22194
+ /* @__PURE__ */ jsx175("div", { ...trussProps91({
22115
22195
  ...xss,
22116
22196
  ...{
22117
22197
  overflow: "oa",
@@ -22127,7 +22207,7 @@ import {
22127
22207
  createContext as createContext11,
22128
22208
  useCallback as useCallback30,
22129
22209
  useContext as useContext22,
22130
- useEffect as useEffect35,
22210
+ useEffect as useEffect36,
22131
22211
  useRef as useRef56,
22132
22212
  useState as useState53
22133
22213
  } from "react";
@@ -22160,7 +22240,7 @@ function SideNavLayoutProvider(props) {
22160
22240
  );
22161
22241
  const bp = useBreakpoint();
22162
22242
  const prevMdAndUp = useRef56(bp.mdAndUp);
22163
- useEffect35(() => {
22243
+ useEffect36(() => {
22164
22244
  if (prevMdAndUp.current && !bp.mdAndUp) {
22165
22245
  setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
22166
22246
  }
@@ -22189,7 +22269,7 @@ function useHasSideNavLayoutProvider() {
22189
22269
  }
22190
22270
 
22191
22271
  // src/components/SideNav/SideNav.tsx
22192
- import { trussProps as trussProps91 } from "@homebound/truss/runtime";
22272
+ import { trussProps as trussProps92 } from "@homebound/truss/runtime";
22193
22273
  import { jsx as jsx177, jsxs as jsxs93 } from "react/jsx-runtime";
22194
22274
  function SideNav(props) {
22195
22275
  const {
@@ -22204,7 +22284,7 @@ function SideNav(props) {
22204
22284
  const panelCollapsed = navState === "collapse";
22205
22285
  const hideOnCollapse = panelCollapsed && !allItemsHaveIcons(items);
22206
22286
  return /* @__PURE__ */ jsxs93("nav", { className: "df fdc h100 fs0", ...tid, children: [
22207
- top !== void 0 && /* @__PURE__ */ jsx177("div", { ...trussProps91({
22287
+ top !== void 0 && /* @__PURE__ */ jsx177("div", { ...trussProps92({
22208
22288
  flexShrink: "fs0",
22209
22289
  paddingLeft: "pl2",
22210
22290
  paddingRight: "pr2",
@@ -22215,7 +22295,7 @@ function SideNav(props) {
22215
22295
  paddingBottom: "pb4"
22216
22296
  } : {}
22217
22297
  }), ...tid.top, children: top }),
22218
- /* @__PURE__ */ jsx177("div", { ...trussProps91({
22298
+ /* @__PURE__ */ jsx177("div", { ...trussProps92({
22219
22299
  flexGrow: "fg1",
22220
22300
  overflowY: "oya",
22221
22301
  display: "df",
@@ -22228,7 +22308,7 @@ function SideNav(props) {
22228
22308
  paddingTop: "pt5"
22229
22309
  } : {}
22230
22310
  }), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ jsx177(AppNavItems, { items, panelCollapsed }) }),
22231
- footer !== void 0 && /* @__PURE__ */ jsx177("div", { ...trussProps91({
22311
+ footer !== void 0 && /* @__PURE__ */ jsx177("div", { ...trussProps92({
22232
22312
  flexShrink: "fs0",
22233
22313
  paddingLeft: "pl2",
22234
22314
  paddingRight: "pr2",
@@ -22244,7 +22324,7 @@ function SideNav(props) {
22244
22324
  }
22245
22325
 
22246
22326
  // src/components/Snackbar/useSnackbar.tsx
22247
- import { useCallback as useCallback31, useEffect as useEffect36 } from "react";
22327
+ import { useCallback as useCallback31, useEffect as useEffect37 } from "react";
22248
22328
  function useSnackbar() {
22249
22329
  const { setNotices, setOffset } = useSnackbarContext();
22250
22330
  const onClose = useCallback31(
@@ -22294,7 +22374,7 @@ function useSnackbar() {
22294
22374
  [onClose, setNotices]
22295
22375
  );
22296
22376
  const closeNotice = useCallback31((id) => onClose(id), [onClose]);
22297
- const useSnackbarOffset = ({ bottom }) => useEffect36(() => {
22377
+ const useSnackbarOffset = ({ bottom }) => useEffect37(() => {
22298
22378
  setOffset({ bottom });
22299
22379
  return () => setOffset({});
22300
22380
  }, [bottom]);
@@ -22305,7 +22385,7 @@ var snackbarId = 1;
22305
22385
  // src/components/Stepper.tsx
22306
22386
  import { useRef as useRef57 } from "react";
22307
22387
  import { useButton as useButton12, useFocusRing as useFocusRing16, useHover as useHover20 } from "react-aria";
22308
- import { trussProps as trussProps92, maybeCssVar as maybeCssVar51 } from "@homebound/truss/runtime";
22388
+ import { trussProps as trussProps93, maybeCssVar as maybeCssVar51 } from "@homebound/truss/runtime";
22309
22389
  import { jsx as jsx178, jsxs as jsxs94 } from "react/jsx-runtime";
22310
22390
  import { createElement as createElement4 } from "react";
22311
22391
  var __maybeInc15 = (inc) => {
@@ -22326,7 +22406,7 @@ function Stepper(props) {
22326
22406
  const minStepWidth = 100;
22327
22407
  const gap = 8;
22328
22408
  return /* @__PURE__ */ jsxs94("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
22329
- /* @__PURE__ */ jsx178("ol", { ...trussProps92({
22409
+ /* @__PURE__ */ jsx178("ol", { ...trussProps93({
22330
22410
  padding: "p_0",
22331
22411
  margin: "m_0",
22332
22412
  listStyle: "lis_none",
@@ -22336,7 +22416,7 @@ function Stepper(props) {
22336
22416
  }]
22337
22417
  }), children: steps.map((step) => {
22338
22418
  const isCurrent = currentStep === step.value;
22339
- return /* @__PURE__ */ createElement4("li", { ...trussProps92({
22419
+ return /* @__PURE__ */ createElement4("li", { ...trussProps93({
22340
22420
  display: "df",
22341
22421
  flexGrow: "fg1",
22342
22422
  flexDirection: "fdc",
@@ -22348,7 +22428,7 @@ function Stepper(props) {
22348
22428
  }]
22349
22429
  }), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ jsx178(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
22350
22430
  }) }),
22351
- /* @__PURE__ */ jsx178("div", { ...trussProps92({
22431
+ /* @__PURE__ */ jsx178("div", { ...trussProps93({
22352
22432
  marginTop: "mt1",
22353
22433
  backgroundColor: "bgGray300",
22354
22434
  height: "h_4px",
@@ -22359,7 +22439,7 @@ function Stepper(props) {
22359
22439
  "--minWidth": `${steps.length * minStepWidth + (steps.length - 1) * gap}px`
22360
22440
  }],
22361
22441
  width: "w100"
22362
- }), children: /* @__PURE__ */ jsx178("div", { ...trussProps92({
22442
+ }), children: /* @__PURE__ */ jsx178("div", { ...trussProps93({
22363
22443
  backgroundColor: "bgBlue600",
22364
22444
  transition: "transition_width_200ms",
22365
22445
  height: "h100",
@@ -22400,7 +22480,7 @@ function StepButton(props) {
22400
22480
  boxShadow: "bshFocus"
22401
22481
  };
22402
22482
  const tid = useTestIds(props, "stepButton");
22403
- return /* @__PURE__ */ jsxs94("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps92({
22483
+ return /* @__PURE__ */ jsxs94("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps93({
22404
22484
  ...{
22405
22485
  fontWeight: "fw6",
22406
22486
  fontSize: "fz_14px",
@@ -22468,7 +22548,7 @@ function StepIcon({
22468
22548
  if (state === "complete") {
22469
22549
  return /* @__PURE__ */ jsx178(Icon, { icon: "check" });
22470
22550
  }
22471
- return /* @__PURE__ */ jsx178("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx178("div", { ...trussProps92({
22551
+ return /* @__PURE__ */ jsx178("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx178("div", { ...trussProps93({
22472
22552
  width: "w_10px",
22473
22553
  height: "h_10px",
22474
22554
  borderStyle: "bss",
@@ -22483,7 +22563,7 @@ function StepIcon({
22483
22563
 
22484
22564
  // src/components/SuperDrawer/components/SuperDrawerHeader.tsx
22485
22565
  import { createPortal as createPortal7 } from "react-dom";
22486
- import { trussProps as trussProps93 } from "@homebound/truss/runtime";
22566
+ import { trussProps as trussProps94 } from "@homebound/truss/runtime";
22487
22567
  import { jsx as jsx179, jsxs as jsxs95 } from "react/jsx-runtime";
22488
22568
  function SuperDrawerHeader(props) {
22489
22569
  const {
@@ -22509,7 +22589,7 @@ function SuperDrawerHeader(props) {
22509
22589
  ] }),
22510
22590
  props.right && /* @__PURE__ */ jsx179("div", { className: "fs0", children: props.right })
22511
22591
  ] }) : /* @__PURE__ */ jsx179("div", { className: "fg1", children: props.children }),
22512
- !hideControls && /* @__PURE__ */ jsx179("div", { ...trussProps93({
22592
+ !hideControls && /* @__PURE__ */ jsx179("div", { ...trussProps94({
22513
22593
  flexShrink: "fs0",
22514
22594
  ...isDetail ? {
22515
22595
  visibility: "vh"
@@ -22782,7 +22862,7 @@ function useToast() {
22782
22862
  }
22783
22863
 
22784
22864
  // src/layouts/SideNavLayout/SideNavLayout.tsx
22785
- import { trussProps as trussProps94, maybeCssVar as maybeCssVar52 } from "@homebound/truss/runtime";
22865
+ import { trussProps as trussProps95, maybeCssVar as maybeCssVar52 } from "@homebound/truss/runtime";
22786
22866
  import { jsx as jsx183, jsxs as jsxs98 } from "react/jsx-runtime";
22787
22867
  function SideNavLayout(props) {
22788
22868
  const hasProvider = useHasSideNavLayoutProvider();
@@ -22807,7 +22887,7 @@ function SideNavLayoutContent(props) {
22807
22887
  const railCollapsedWidthPx = 56;
22808
22888
  const collapsed = navState === "collapse";
22809
22889
  const showRail = sideNav !== void 0 && navState !== "hidden";
22810
- const rail = showRail && /* @__PURE__ */ jsxs98("div", { ...trussProps94({
22890
+ const rail = showRail && /* @__PURE__ */ jsxs98("div", { ...trussProps95({
22811
22891
  ...{
22812
22892
  position: "absolute",
22813
22893
  top: "top0",