@homebound/beam 3.0.0 → 3.0.2

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
@@ -3868,6 +3868,10 @@ var CssBuilder = class _CssBuilder {
3868
3868
  }
3869
3869
  return new _CssBuilder({ ...this.opts, enabled: !this.enabled, elseApplied: true });
3870
3870
  }
3871
+ /** Reset active conditional modifiers for subsequent styles. */
3872
+ get end() {
3873
+ return this.newCss({ selector: void 0, elseApplied: false });
3874
+ }
3871
3875
  add(propOrStyles, value) {
3872
3876
  if (!this.enabled) {
3873
3877
  return this;
@@ -3885,6 +3889,11 @@ var CssBuilder = class _CssBuilder {
3885
3889
  void className;
3886
3890
  return this.unsupportedRuntime("className() cannot be used in RuntimeStyle css expressions.");
3887
3891
  }
3892
+ /** Marker for the build-time transform to append raw inline styles. */
3893
+ style(inlineStyle) {
3894
+ void inlineStyle;
3895
+ return this.unsupportedRuntime("style() cannot be used in RuntimeStyle css expressions.");
3896
+ }
3888
3897
  /** Convert a style hash into `{ className, style }` props for manual spreading into non-`css=` contexts. */
3889
3898
  props(styles) {
3890
3899
  return trussProps(styles);
@@ -4876,7 +4885,7 @@ function Chips(props) {
4876
4885
  // src/components/Table/GridTable.tsx
4877
4886
  import memoizeOne from "memoize-one";
4878
4887
  import { runInAction } from "mobx";
4879
- import React13, { useEffect as useEffect19, useMemo as useMemo24, useRef as useRef38, useState as useState28 } from "react";
4888
+ import React13, { useEffect as useEffect19, useMemo as useMemo24, useRef as useRef38, useState as useState29 } from "react";
4880
4889
  import { Virtuoso as Virtuoso2 } from "react-virtuoso";
4881
4890
 
4882
4891
  // src/components/Layout/ScrollableContent.tsx
@@ -12467,7 +12476,7 @@ function MultiSelectField(props) {
12467
12476
 
12468
12477
  // src/inputs/NumberField.tsx
12469
12478
  import { NumberParser } from "@internationalized/number";
12470
- import { useMemo as useMemo18, useRef as useRef27 } from "react";
12479
+ import { useMemo as useMemo18, useRef as useRef27, useState as useState23 } from "react";
12471
12480
  import { mergeProps as mergeProps15, useLocale, useNumberField } from "react-aria";
12472
12481
  import { useNumberFieldState } from "react-stately";
12473
12482
  import { jsx as jsx68 } from "react/jsx-runtime";
@@ -12558,6 +12567,7 @@ function NumberField(props) {
12558
12567
  wip: false
12559
12568
  });
12560
12569
  const lastSentRef = useRef27(void 0);
12570
+ const [, forceRender] = useState23(0);
12561
12571
  const propValue = value === void 0 ? Number.NaN : value / factor;
12562
12572
  if (valueRef.current.wip && !Object.is(valueRef.current.value, propValue)) {
12563
12573
  const lastSentInternal = lastSentRef.current === void 0 ? Number.NaN : lastSentRef.current / factor;
@@ -12571,7 +12581,9 @@ function NumberField(props) {
12571
12581
  value: valueRef.current.wip ? valueRef.current.value : value === void 0 ? Number.NaN : value / factor,
12572
12582
  // // This is called on blur with the final/committed value.
12573
12583
  onChange: (value2) => {
12574
- onChange(formatValue(value2, factor, numFractionDigits, numIntegerDigits, positiveOnly));
12584
+ const formatted = formatValue(value2, factor, numFractionDigits, numIntegerDigits, positiveOnly);
12585
+ if (formatted !== lastSentRef.current) return;
12586
+ onChange(formatted);
12575
12587
  },
12576
12588
  onFocus: () => {
12577
12589
  valueRef.current = {
@@ -12585,6 +12597,7 @@ function NumberField(props) {
12585
12597
  wip: false
12586
12598
  };
12587
12599
  lastSentRef.current = void 0;
12600
+ forceRender((c) => c + 1);
12588
12601
  },
12589
12602
  onKeyDown: (e) => {
12590
12603
  if (e.key === "Enter") {
@@ -12898,17 +12911,17 @@ var radioDisabled = {
12898
12911
 
12899
12912
  // src/inputs/RichTextField.tsx
12900
12913
  import DOMPurify from "dompurify";
12901
- import { createElement, useEffect as useEffect16, useMemo as useMemo20, useRef as useRef29, useState as useState24 } from "react";
12914
+ import { createElement, useEffect as useEffect16, useMemo as useMemo20, useRef as useRef29, useState as useState25 } from "react";
12902
12915
 
12903
12916
  // src/inputs/RichTextField.mock.tsx
12904
12917
  import { camelCase as camelCase3 } from "change-case";
12905
- import { useState as useState23 } from "react";
12918
+ import { useState as useState24 } from "react";
12906
12919
  import { jsx as jsx70 } from "react/jsx-runtime";
12907
12920
  function RichTextFieldMock(props) {
12908
12921
  const { onBlur = () => {
12909
12922
  }, onFocus = () => {
12910
12923
  }, readOnly } = props;
12911
- const [value, setValue] = useState23(props.value || "");
12924
+ const [value, setValue] = useState24(props.value || "");
12912
12925
  const tid = useTestIds(props, defaultTestId2(props.label || "richTextField"));
12913
12926
  return /* @__PURE__ */ jsx70(
12914
12927
  "input",
@@ -12953,7 +12966,7 @@ function RichTextFieldImpl(props) {
12953
12966
  readOnly,
12954
12967
  fullWidth = fieldProps?.fullWidth ?? false
12955
12968
  } = props;
12956
- const [editor, setEditor] = useState24();
12969
+ const [editor, setEditor] = useState25();
12957
12970
  const editorElement = useRef29();
12958
12971
  const currentHtml = useRef29(void 0);
12959
12972
  const onChangeRef = useRef29(onChange);
@@ -13417,7 +13430,7 @@ function TextField(props) {
13417
13430
  }
13418
13431
 
13419
13432
  // src/inputs/ToggleButton.tsx
13420
- import { useRef as useRef33, useState as useState25 } from "react";
13433
+ import { useRef as useRef33, useState as useState26 } from "react";
13421
13434
  import { useFocusRing as useFocusRing8, useHover as useHover14, usePress, useSwitch as useSwitch2, VisuallyHidden as VisuallyHidden6 } from "react-aria";
13422
13435
  import { useToggleState as useToggleState3 } from "react-stately";
13423
13436
  import { trussProps as trussProps47 } from "@homebound/truss/runtime";
@@ -13432,7 +13445,7 @@ function ToggleButton(props) {
13432
13445
  __storyState,
13433
13446
  ...otherProps
13434
13447
  } = props;
13435
- const [asyncInProgress, setAsyncInProgress] = useState25(false);
13448
+ const [asyncInProgress, setAsyncInProgress] = useState26(false);
13436
13449
  const isDisabled = !!disabled || asyncInProgress;
13437
13450
  const ariaProps = {
13438
13451
  "aria-label": label,
@@ -14792,13 +14805,13 @@ function useScrollStorage(tableId, enabled = true) {
14792
14805
 
14793
14806
  // src/components/Table/hooks/useSetupColumnSizes.ts
14794
14807
  import { useResizeObserver } from "@react-aria/utils";
14795
- import { useCallback as useCallback14, useEffect as useEffect18, useRef as useRef36, useState as useState27 } from "react";
14808
+ import { useCallback as useCallback14, useEffect as useEffect18, useRef as useRef36, useState as useState28 } from "react";
14796
14809
 
14797
14810
  // src/components/Table/hooks/useColumnResizing.ts
14798
- import { useCallback as useCallback13, useEffect as useEffect17, useState as useState26 } from "react";
14811
+ import { useCallback as useCallback13, useEffect as useEffect17, useState as useState27 } from "react";
14799
14812
  import { useDebouncedCallback as useDebouncedCallback3 } from "use-debounce";
14800
14813
  function useColumnResizing(storageKey) {
14801
- const [resizedWidths, setResizedWidths] = useState26(() => {
14814
+ const [resizedWidths, setResizedWidths] = useState27(() => {
14802
14815
  if (!storageKey) return {};
14803
14816
  try {
14804
14817
  const stored = sessionStorage.getItem(`columnWidths_${storageKey}`);
@@ -14852,9 +14865,9 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds, visib
14852
14865
  disableColumnResizing ? void 0 : visibleColumnsStorageKey
14853
14866
  );
14854
14867
  const calculateImmediately = useRef36(true);
14855
- const [tableWidth, setTableWidth] = useState27();
14868
+ const [tableWidth, setTableWidth] = useState28();
14856
14869
  const prevTableWidthRef = useRef36(tableWidth);
14857
- const [columnSizes, setColumnSizes] = useState27(
14870
+ const [columnSizes, setColumnSizes] = useState28(
14858
14871
  calcColumnSizes(columns, tableWidth, style.minWidthPx, expandedColumnIds, resizedWidths)
14859
14872
  );
14860
14873
  const setTableAndColumnWidths = useCallback14(
@@ -14996,7 +15009,7 @@ function GridTable(props) {
14996
15009
  // eslint-disable-next-line react-hooks/exhaustive-deps
14997
15010
  [props.api]
14998
15011
  );
14999
- const [draggedRow, _setDraggedRow] = useState28(void 0);
15012
+ const [draggedRow, _setDraggedRow] = useState29(void 0);
15000
15013
  const draggedRowRef = useRef38(draggedRow);
15001
15014
  const setDraggedRow = (row) => {
15002
15015
  draggedRowRef.current = row;
@@ -15300,7 +15313,7 @@ function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, firs
15300
15313
  }
15301
15314
  function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, firstRowMessage, stickyHeader, xss, virtuosoRef, virtuosoRangeRef, tableHeadRows, _stickyOffset, infiniteScroll, _tableContainerRef, persistScrollPosition = infiniteScroll === void 0) {
15302
15315
  const customScrollParent = useVirtualizedScrollParent();
15303
- const [fetchMoreInProgress, setFetchMoreInProgress] = useState28(false);
15316
+ const [fetchMoreInProgress, setFetchMoreInProgress] = useState29(false);
15304
15317
  const {
15305
15318
  getScrollIndex,
15306
15319
  setScrollIndex
@@ -15509,7 +15522,7 @@ function ToggleChips(props) {
15509
15522
 
15510
15523
  // src/components/Accordion.tsx
15511
15524
  import { useId, useResizeObserver as useResizeObserver2 } from "@react-aria/utils";
15512
- import { useCallback as useCallback16, useEffect as useEffect20, useMemo as useMemo25, useState as useState29 } from "react";
15525
+ import { useCallback as useCallback16, useEffect as useEffect20, useMemo as useMemo25, useState as useState30 } from "react";
15513
15526
  import { useFocusRing as useFocusRing10 } from "react-aria";
15514
15527
  import { trussProps as trussProps52 } from "@homebound/truss/runtime";
15515
15528
  import { jsx as jsx83, jsxs as jsxs50 } from "react/jsx-runtime";
@@ -15535,16 +15548,16 @@ function Accordion(props) {
15535
15548
  } = props;
15536
15549
  const tid = useTestIds(props, "accordion");
15537
15550
  const id = useId();
15538
- const [expanded, setExpanded] = useState29(defaultExpanded && !disabled);
15551
+ const [expanded, setExpanded] = useState30(defaultExpanded && !disabled);
15539
15552
  const {
15540
15553
  isFocusVisible,
15541
15554
  focusProps
15542
15555
  } = useFocusRing10();
15543
- const [contentEl, setContentEl] = useState29(null);
15556
+ const [contentEl, setContentEl] = useState30(null);
15544
15557
  const contentRef = useMemo25(() => ({
15545
15558
  current: contentEl
15546
15559
  }), [contentEl]);
15547
- const [contentHeight, setContentHeight] = useState29(expanded ? "auto" : "0");
15560
+ const [contentHeight, setContentHeight] = useState30(expanded ? "auto" : "0");
15548
15561
  useEffect20(() => {
15549
15562
  setExpanded(defaultExpanded && !disabled);
15550
15563
  }, [defaultExpanded, disabled]);
@@ -15694,11 +15707,11 @@ var accordionSizes = {
15694
15707
  };
15695
15708
 
15696
15709
  // src/components/AccordionList.tsx
15697
- import { useState as useState30 } from "react";
15710
+ import { useState as useState31 } from "react";
15698
15711
  import { Fragment as Fragment20, jsx as jsx84 } from "react/jsx-runtime";
15699
15712
  function AccordionList(props) {
15700
15713
  const { accordions, size, allowMultipleExpanded = true, compact = false } = props;
15701
- const [expandedIndex, setExpandedIndex] = useState30(
15714
+ const [expandedIndex, setExpandedIndex] = useState31(
15702
15715
  accordions.findIndex((a) => a.defaultExpanded)
15703
15716
  );
15704
15717
  const tid = useTestIds(props, "accordionList");
@@ -15848,7 +15861,7 @@ import { OverlayProvider } from "react-aria";
15848
15861
 
15849
15862
  // src/components/Modal/Modal.tsx
15850
15863
  import { useResizeObserver as useResizeObserver3 } from "@react-aria/utils";
15851
- import { useCallback as useCallback17, useEffect as useEffect23, useRef as useRef40, useState as useState31 } from "react";
15864
+ import { useCallback as useCallback17, useEffect as useEffect23, useRef as useRef40, useState as useState32 } from "react";
15852
15865
  import { FocusScope as FocusScope4, OverlayContainer as OverlayContainer2, useDialog, useModal as useModal2, useOverlay as useOverlay2, usePreventScroll } from "react-aria";
15853
15866
  import { createPortal as createPortal3 } from "react-dom";
15854
15867
 
@@ -15955,7 +15968,7 @@ function Modal(props) {
15955
15968
  } = useDialog({
15956
15969
  role: "dialog"
15957
15970
  }, ref);
15958
- const [[width2, height], setSize] = useState31(getSize(size));
15971
+ const [[width2, height], setSize] = useState32(getSize(size));
15959
15972
  const modalBodyRef = useRef40(null);
15960
15973
  const modalFooterRef = useRef40(null);
15961
15974
  const modalHeaderRef = useRef40(null);
@@ -15969,7 +15982,7 @@ function Modal(props) {
15969
15982
  setSize: (size2 = "md") => setSize(getSize(size2))
15970
15983
  };
15971
15984
  }
15972
- const [hasScroll, setHasScroll] = useState31(forceScrolling ?? false);
15985
+ const [hasScroll, setHasScroll] = useState32(forceScrolling ?? false);
15973
15986
  useResizeObserver3({
15974
15987
  ref: modalBodyRef,
15975
15988
  onResize: useCallback17(
@@ -16123,7 +16136,7 @@ function getSize(size) {
16123
16136
  }
16124
16137
 
16125
16138
  // src/components/Snackbar/SnackbarContext.tsx
16126
- import { createContext as createContext5, useContext as useContext14, useMemo as useMemo28, useState as useState32 } from "react";
16139
+ import { createContext as createContext5, useContext as useContext14, useMemo as useMemo28, useState as useState33 } from "react";
16127
16140
 
16128
16141
  // src/components/Snackbar/SnackbarNotice.tsx
16129
16142
  import { trussProps as trussProps55 } from "@homebound/truss/runtime";
@@ -16240,8 +16253,8 @@ var SnackbarContext = createContext5({ setNotices: () => {
16240
16253
  }, setOffset: () => {
16241
16254
  } });
16242
16255
  function SnackbarProvider(props) {
16243
- const [notices, setNotices] = useState32([]);
16244
- const [offset, setOffset] = useState32({});
16256
+ const [notices, setNotices] = useState33([]);
16257
+ const [offset, setOffset] = useState33({});
16245
16258
  const contextValue = useMemo28(() => ({ setNotices, setOffset }), []);
16246
16259
  return /* @__PURE__ */ jsxs55(SnackbarContext.Provider, { value: contextValue, children: [
16247
16260
  props.children,
@@ -16371,7 +16384,7 @@ function SuperDrawer() {
16371
16384
  }
16372
16385
 
16373
16386
  // src/components/Layout/FormPageLayout.tsx
16374
- import React16, { createRef, useCallback as useCallback21, useEffect as useEffect25, useMemo as useMemo33, useRef as useRef42, useState as useState38 } from "react";
16387
+ import React16, { createRef, useCallback as useCallback21, useEffect as useEffect25, useMemo as useMemo33, useRef as useRef42, useState as useState39 } from "react";
16375
16388
  import { useButton as useButton9, useFocusRing as useFocusRing11 } from "react-aria";
16376
16389
 
16377
16390
  // src/forms/BoundCheckboxField.tsx
@@ -16626,7 +16639,7 @@ function BoundIconCardField(props) {
16626
16639
  import { Observer as Observer7 } from "mobx-react";
16627
16640
 
16628
16641
  // src/inputs/IconCardGroup.tsx
16629
- import { useCallback as useCallback18, useMemo as useMemo29, useState as useState33 } from "react";
16642
+ import { useCallback as useCallback18, useMemo as useMemo29, useState as useState34 } from "react";
16630
16643
  import { mergeProps as mergeProps19, useField } from "react-aria";
16631
16644
  import { trussProps as trussProps58 } from "@homebound/truss/runtime";
16632
16645
  import { jsx as jsx99, jsxs as jsxs57 } from "react/jsx-runtime";
@@ -16644,7 +16657,7 @@ function IconCardGroup(props) {
16644
16657
  disabled: isDisabled = false,
16645
16658
  onChange
16646
16659
  } = props;
16647
- const [selected, setSelected] = useState33(values);
16660
+ const [selected, setSelected] = useState34(values);
16648
16661
  const exclusiveOptions = useMemo29(() => options.filter((o) => o.exclusive), [options]);
16649
16662
  const toggleValue = useCallback18((value) => {
16650
16663
  if (isDisabled) return;
@@ -17481,7 +17494,7 @@ function boundTreeSelectField(props) {
17481
17494
  }
17482
17495
 
17483
17496
  // src/components/internal/CompoundField.tsx
17484
- import { cloneElement as cloneElement2, useState as useState34 } from "react";
17497
+ import { cloneElement as cloneElement2, useState as useState35 } from "react";
17485
17498
  import { trussProps as trussProps61 } from "@homebound/truss/runtime";
17486
17499
  import { jsx as jsx115, jsxs as jsxs59 } from "react/jsx-runtime";
17487
17500
  function CompoundField({
@@ -17504,7 +17517,7 @@ function CompoundField({
17504
17517
  const internalProps = {
17505
17518
  compound: true
17506
17519
  };
17507
- const [hasFocusWithin, setHasFocusWithin] = useState34(false);
17520
+ const [hasFocusWithin, setHasFocusWithin] = useState35(false);
17508
17521
  function onFocusCapture() {
17509
17522
  setHasFocusWithin(true);
17510
17523
  }
@@ -17680,7 +17693,7 @@ import { useDebouncedCallback as useDebouncedCallback5 } from "use-debounce";
17680
17693
 
17681
17694
  // src/components/RightSidebar.tsx
17682
17695
  import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-motion";
17683
- import { useState as useState35 } from "react";
17696
+ import { useState as useState36 } from "react";
17684
17697
  import { trussProps as trussProps64 } from "@homebound/truss/runtime";
17685
17698
  import { Fragment as Fragment24, jsx as jsx120, jsxs as jsxs62 } from "react/jsx-runtime";
17686
17699
  var RIGHT_SIDEBAR_MIN_WIDTH = "250px";
@@ -17688,7 +17701,7 @@ function RightSidebar({
17688
17701
  content,
17689
17702
  headerHeightPx: headerHeightPx2
17690
17703
  }) {
17691
- const [selectedIcon, setSelectedIcon] = useState35(void 0);
17704
+ const [selectedIcon, setSelectedIcon] = useState36(void 0);
17692
17705
  const tid = useTestIds({}, "rightSidebar");
17693
17706
  return /* @__PURE__ */ jsxs62(Fragment24, { children: [
17694
17707
  /* @__PURE__ */ jsx120("div", { className: "df jcfe absolute right0 pr3", children: /* @__PURE__ */ jsx120(AnimatePresence2, { children: !selectedIcon && /* @__PURE__ */ jsx120(motion2.div, { className: "df fdc gap2 z1", initial: {
@@ -17775,7 +17788,7 @@ function IconButtonList({
17775
17788
  }
17776
17789
 
17777
17790
  // src/components/Toast/ToastContext.tsx
17778
- import { createContext as createContext6, useCallback as useCallback20, useContext as useContext15, useMemo as useMemo31, useState as useState36 } from "react";
17791
+ import { createContext as createContext6, useCallback as useCallback20, useContext as useContext15, useMemo as useMemo31, useState as useState37 } from "react";
17779
17792
  import { jsx as jsx121 } from "react/jsx-runtime";
17780
17793
  var ToastContext = createContext6({
17781
17794
  setNotice: () => {
@@ -17786,7 +17799,7 @@ var ToastContext = createContext6({
17786
17799
  notice: void 0
17787
17800
  });
17788
17801
  function ToastProvider(props) {
17789
- const [notice, setNotice] = useState36();
17802
+ const [notice, setNotice] = useState37();
17790
17803
  const clear = useCallback20(() => setNotice(void 0), [setNotice]);
17791
17804
  const contextValue = useMemo31(() => ({ setNotice, notice, clear }), [notice, clear]);
17792
17805
  return /* @__PURE__ */ jsx121(ToastContext.Provider, { value: contextValue, children: props.children });
@@ -17804,7 +17817,7 @@ function Toast() {
17804
17817
  }
17805
17818
 
17806
17819
  // src/components/Layout/PageHeaderBreadcrumbs.tsx
17807
- import { Fragment as Fragment26, useMemo as useMemo32, useState as useState37 } from "react";
17820
+ import { Fragment as Fragment26, useMemo as useMemo32, useState as useState38 } from "react";
17808
17821
  import { Link as Link4 } from "react-router-dom";
17809
17822
  import { mergeProps as mergeProps20 } from "@homebound/truss/runtime";
17810
17823
  import { Fragment as Fragment27, jsx as jsx123, jsxs as jsxs63 } from "react/jsx-runtime";
@@ -17813,7 +17826,7 @@ function PageHeaderBreadcrumbs({
17813
17826
  }) {
17814
17827
  const tids = useTestIds({}, "pageHeaderBreadcrumbs");
17815
17828
  const breadcrumbs = useMemo32(() => Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb], [breadcrumb]);
17816
- const [collapsed, setCollapsed] = useState37(true);
17829
+ const [collapsed, setCollapsed] = useState38(true);
17817
17830
  function renderBreadcrumb(bc, index, hideDivisor) {
17818
17831
  return (
17819
17832
  // Adding index to key to prevent rendering issues when multiple items have the same label
@@ -18079,7 +18092,7 @@ function SectionNavLink(props) {
18079
18092
  }), ...tids.sectionNavLink, children: section.title });
18080
18093
  }
18081
18094
  function useActiveSection(sectionsWithRefs) {
18082
- const [activeSection, setActiveSection] = useState38(null);
18095
+ const [activeSection, setActiveSection] = useState39(null);
18083
18096
  const debouncedIntersectionCallback = useDebouncedCallback5((entries) => {
18084
18097
  const sectionsInView = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio > 0.2).sort((a, b) => {
18085
18098
  const ratioDiff = b.intersectionRatio - a.intersectionRatio;
@@ -18186,7 +18199,7 @@ function invertSpacing(value) {
18186
18199
  }
18187
18200
 
18188
18201
  // src/components/Layout/GridTableLayout/GridTableLayout.tsx
18189
- import React17, { useEffect as useEffect27, useMemo as useMemo38, useState as useState41 } from "react";
18202
+ import React17, { useEffect as useEffect27, useMemo as useMemo38, useState as useState42 } from "react";
18190
18203
 
18191
18204
  // src/components/ButtonMenu.tsx
18192
18205
  import { useRef as useRef43 } from "react";
@@ -18238,7 +18251,7 @@ function isSelectionButtonMenuProps(props) {
18238
18251
  }
18239
18252
 
18240
18253
  // src/components/Filters/FilterDropdownMenu.tsx
18241
- import { memo as memo2, useMemo as useMemo35, useState as useState40 } from "react";
18254
+ import { memo as memo2, useMemo as useMemo35, useState as useState41 } from "react";
18242
18255
 
18243
18256
  // src/components/CountBadge.tsx
18244
18257
  import { trussProps as trussProps66 } from "@homebound/truss/runtime";
@@ -18633,7 +18646,7 @@ var CheckboxFilter = class extends BaseFilter {
18633
18646
  };
18634
18647
 
18635
18648
  // src/components/Filters/FilterModal.tsx
18636
- import { useState as useState39 } from "react";
18649
+ import { useState as useState40 } from "react";
18637
18650
 
18638
18651
  // src/components/Modal/OpenModal.tsx
18639
18652
  import { useEffect as useEffect26 } from "react";
@@ -18666,7 +18679,7 @@ function FilterModal(props) {
18666
18679
  const {
18667
18680
  closeModal
18668
18681
  } = useModal();
18669
- const [modalFilter, setModalFilter] = useState39(filter);
18682
+ const [modalFilter, setModalFilter] = useState40(filter);
18670
18683
  return /* @__PURE__ */ jsxs68(Fragment31, { children: [
18671
18684
  /* @__PURE__ */ jsx136(ModalHeader, { children: "More Filters" }),
18672
18685
  /* @__PURE__ */ jsx136(ModalBody, { children: /* @__PURE__ */ jsx136("div", { className: "df fdc", children: safeEntries(filters).map(([key, f]) => /* @__PURE__ */ jsx136(ModalFilterItem, { label: f.hideLabelInModal ? void 0 : f.label, children: f.render(modalFilter[key], (value) => setModalFilter(updateFilter(modalFilter, key, value)), testId, true, false) }, key)) }) }),
@@ -18807,7 +18820,7 @@ function FilterDropdownMenu(props) {
18807
18820
  groupBy
18808
18821
  } = props;
18809
18822
  const testId = useTestIds(props, filterTestIdPrefix);
18810
- const [isOpen, setIsOpen] = useState40(false);
18823
+ const [isOpen, setIsOpen] = useState41(false);
18811
18824
  const activeFilterCount = useMemo35(() => getActiveFilterCount(filter), [filter]);
18812
18825
  const filterImpls = useMemo35(() => buildFilterImpls(filterDefs), [filterDefs]);
18813
18826
  const renderFilters = () => {
@@ -19166,7 +19179,7 @@ function useGridTableLayoutState({
19166
19179
  const groupBy = useGroupBy(maybeGroupBy ?? {
19167
19180
  none: "none"
19168
19181
  });
19169
- const [searchString, setSearchString] = useState41("");
19182
+ const [searchString, setSearchString] = useState42("");
19170
19183
  const columnsFallback = "unset-columns";
19171
19184
  const [visibleColumnIds, setVisibleColumnIds] = useSessionStorage(persistedColumns?.storageKey ?? columnsFallback, void 0);
19172
19185
  const paginationFallbackKey = "unset-pagination";
@@ -19176,7 +19189,7 @@ function useGridTableLayoutState({
19176
19189
  100
19177
19190
  // default page size
19178
19191
  );
19179
- const [page, setPage] = useState41({
19192
+ const [page, setPage] = useState42({
19180
19193
  offset: 0,
19181
19194
  limit: persistedPageSize
19182
19195
  });
@@ -19253,7 +19266,7 @@ function SearchBox({
19253
19266
  }, setQueryParams] = useQueryParams3({
19254
19267
  search: StringParam2
19255
19268
  });
19256
- const [value, setValue] = useState41(initialValue || "");
19269
+ const [value, setValue] = useState42(initialValue || "");
19257
19270
  const [debouncedSearch] = useDebounce2(value, 300);
19258
19271
  useEffect27(() => {
19259
19272
  onSearch(debouncedSearch);
@@ -19278,7 +19291,7 @@ function PreventBrowserScroll({
19278
19291
  }
19279
19292
 
19280
19293
  // src/components/Layout/RightPaneLayout/RightPaneContext.tsx
19281
- import React18, { useCallback as useCallback23, useContext as useContext16, useMemo as useMemo39, useState as useState42 } from "react";
19294
+ import React18, { useCallback as useCallback23, useContext as useContext16, useMemo as useMemo39, useState as useState43 } from "react";
19282
19295
  import { jsx as jsx147 } from "react/jsx-runtime";
19283
19296
  var RightPaneContext = React18.createContext({
19284
19297
  openInPane: () => {
@@ -19291,8 +19304,8 @@ var RightPaneContext = React18.createContext({
19291
19304
  rightPaneContent: null
19292
19305
  });
19293
19306
  function RightPaneProvider({ children }) {
19294
- const [rightPaneContent, setRightPaneContent] = useState42(void 0);
19295
- const [isRightPaneOpen, setIsRightPaneOpen] = useState42(false);
19307
+ const [rightPaneContent, setRightPaneContent] = useState43(void 0);
19308
+ const [isRightPaneOpen, setIsRightPaneOpen] = useState43(false);
19296
19309
  const openInPane = useCallback23(
19297
19310
  (opts) => {
19298
19311
  setRightPaneContent(opts?.content);
@@ -19701,7 +19714,7 @@ import { useHover as useHover16 } from "react-aria";
19701
19714
 
19702
19715
  // src/components/Tag.tsx
19703
19716
  import { useResizeObserver as useResizeObserver4 } from "@react-aria/utils";
19704
- import { useRef as useRef48, useState as useState43 } from "react";
19717
+ import { useRef as useRef48, useState as useState44 } from "react";
19705
19718
  import { trussProps as trussProps74 } from "@homebound/truss/runtime";
19706
19719
  import { jsx as jsx152, jsxs as jsxs79 } from "react/jsx-runtime";
19707
19720
  function Tag(props) {
@@ -19714,7 +19727,7 @@ function Tag(props) {
19714
19727
  } = props;
19715
19728
  const typeStyles2 = getStyles(type);
19716
19729
  const tid = useTestIds(otherProps);
19717
- const [showTooltip, setShowTooltip] = useState43(false);
19730
+ const [showTooltip, setShowTooltip] = useState44(false);
19718
19731
  const ref = useRef48(null);
19719
19732
  useResizeObserver4({
19720
19733
  ref,
@@ -20414,7 +20427,7 @@ function HbSpinnerProvider({
20414
20427
 
20415
20428
  // src/components/MaxLines.tsx
20416
20429
  import { useLayoutEffect as useLayoutEffect2, useResizeObserver as useResizeObserver5 } from "@react-aria/utils";
20417
- import { useCallback as useCallback25, useEffect as useEffect30, useRef as useRef50, useState as useState44 } from "react";
20430
+ import { useCallback as useCallback25, useEffect as useEffect30, useRef as useRef50, useState as useState45 } from "react";
20418
20431
  import { trussProps as trussProps80 } from "@homebound/truss/runtime";
20419
20432
  import { jsx as jsx160, jsxs as jsxs82 } from "react/jsx-runtime";
20420
20433
  function MaxLines({
@@ -20422,8 +20435,8 @@ function MaxLines({
20422
20435
  children
20423
20436
  }) {
20424
20437
  const elRef = useRef50(null);
20425
- const [hasMore, setHasMore] = useState44(false);
20426
- const [expanded, setExpanded] = useState44(false);
20438
+ const [hasMore, setHasMore] = useState45(false);
20439
+ const [expanded, setExpanded] = useState45(false);
20427
20440
  useLayoutEffect2(() => {
20428
20441
  if (!elRef.current) return;
20429
20442
  setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
@@ -20457,7 +20470,7 @@ function MaxLines({
20457
20470
 
20458
20471
  // src/components/ScrollShadows.tsx
20459
20472
  import { useResizeObserver as useResizeObserver6 } from "@react-aria/utils";
20460
- import { useCallback as useCallback26, useMemo as useMemo47, useRef as useRef51, useState as useState45 } from "react";
20473
+ import { useCallback as useCallback26, useMemo as useMemo47, useRef as useRef51, useState as useState46 } from "react";
20461
20474
  import { trussProps as trussProps81 } from "@homebound/truss/runtime";
20462
20475
  import { jsx as jsx161, jsxs as jsxs83 } from "react/jsx-runtime";
20463
20476
  function ScrollShadows(props) {
@@ -20475,8 +20488,8 @@ function ScrollShadows(props) {
20475
20488
  if (!bgColor.includes("rgba")) {
20476
20489
  throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
20477
20490
  }
20478
- const [showStartShadow, setShowStartShadow] = useState45(false);
20479
- const [showEndShadow, setShowEndShadow] = useState45(false);
20491
+ const [showStartShadow, setShowStartShadow] = useState46(false);
20492
+ const [showEndShadow, setShowEndShadow] = useState46(false);
20480
20493
  const scrollRef = useRef51(null);
20481
20494
  const [startShadowStyles, endShadowStyles] = useMemo47(() => {
20482
20495
  const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
@@ -21122,7 +21135,7 @@ function visit(rows, fn) {
21122
21135
 
21123
21136
  // src/components/Tabs.tsx
21124
21137
  import { camelCase as camelCase5 } from "change-case";
21125
- import { useEffect as useEffect32, useMemo as useMemo49, useRef as useRef53, useState as useState46 } from "react";
21138
+ import { useEffect as useEffect32, useMemo as useMemo49, useRef as useRef53, useState as useState47 } from "react";
21126
21139
  import { mergeProps as mergeProps26, useFocusRing as useFocusRing15, useHover as useHover19 } from "react-aria";
21127
21140
  import { matchPath, Route } from "react-router";
21128
21141
  import { Link as Link5, useLocation } from "react-router-dom";
@@ -21180,7 +21193,7 @@ function Tabs(props) {
21180
21193
  focusProps
21181
21194
  } = useFocusRing15();
21182
21195
  const tid = useTestIds(others, "tabs");
21183
- const [active, setActive] = useState46(selected);
21196
+ const [active, setActive] = useState47(selected);
21184
21197
  const ref = useRef53(null);
21185
21198
  useEffect32(() => setActive(selected), [selected]);
21186
21199
  function onKeyUp(e) {