@homebound/beam 3.34.1 → 3.35.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
@@ -4882,7 +4882,21 @@ var Icons = {
4882
4882
  /* @__PURE__ */ jsx3("path", { d: "M1.28481 17.9291C1.68761 18.0252 1.93583 18.4306 1.83991 18.8335L1.68148 19.4996H2.36957C2.78374 19.4997 3.11896 19.836 3.11896 20.2501C3.11871 20.6641 2.78359 20.9995 2.36957 20.9995H1.68148C0.712759 20.9995 -0.00204962 20.095 0.222017 19.1527L0.381609 18.4854C0.47768 18.0826 0.881956 17.8332 1.28481 17.9291ZM6.49699 19.4996L6.64849 19.5146C6.99008 19.5847 7.24638 19.8878 7.24638 20.2501C7.24616 20.6122 6.98991 20.9144 6.64849 20.9845L6.49699 20.9995H5.1208C4.70687 20.9994 4.37166 20.664 4.37141 20.2501C4.37141 19.836 4.70672 19.4997 5.1208 19.4996H6.49699ZM10.6244 19.4996C11.0386 19.4996 11.3738 19.8359 11.3738 20.2501C11.3736 20.6641 11.0384 20.9995 10.6244 20.9995H9.24822C8.8343 20.9994 8.49909 20.664 8.49883 20.2501C8.49883 19.836 8.83415 19.4998 9.24822 19.4996H10.6244ZM14.7518 19.4996C15.166 19.4996 15.5012 19.8359 15.5012 20.2501C15.501 20.6641 15.1659 20.9995 14.7518 20.9995H13.3756C12.9617 20.9994 12.6265 20.664 12.6263 20.2501C12.6263 19.836 12.9616 19.4998 13.3756 19.4996H14.7518ZM18.8793 19.4996C19.2935 19.4996 19.6298 19.8359 19.6298 20.2501C19.6296 20.6641 19.2933 20.9995 18.8793 20.9995H17.5031C17.0892 20.9993 16.7539 20.664 16.7537 20.2501C16.7537 19.836 17.089 19.4998 17.5031 19.4996H18.8793ZM22.7765 17.9511C23.1826 17.8707 23.5771 18.1348 23.6578 18.5409L23.7896 19.2082C23.9734 20.1356 23.2641 20.9995 22.3186 20.9995H21.6305C21.2166 20.9993 20.8814 20.664 20.8811 20.2501C20.8811 19.836 21.2164 19.4998 21.6305 19.4996H22.3186L22.1868 18.8335L22.1717 18.682C22.1737 18.333 22.421 18.0216 22.7765 17.9511ZM23.1293 15.8741C23.2099 16.2803 22.9456 16.6757 22.5395 16.7565C22.1333 16.8371 21.7378 16.5728 21.6571 16.1667L21.3923 14.8333L22.1289 14.6875L22.8644 14.5407L23.1293 15.8741ZM2.47481 16.1667C2.37869 16.5694 1.97442 16.8177 1.57161 16.7218C1.16887 16.6257 0.920596 16.2214 1.01651 15.8186L2.47481 16.1667ZM2.23658 13.9301C2.63953 14.026 2.88878 14.4303 2.79284 14.8333L2.47481 16.1667L1.74508 15.992L1.01651 15.8186L1.33338 14.4852C1.42946 14.0824 1.83377 13.8342 2.23658 13.9301ZM21.9821 13.9509C22.3883 13.8703 22.7837 14.1345 22.8644 14.5407L21.3923 14.8333C21.3117 14.4271 21.576 14.0317 21.9821 13.9509ZM22.3348 11.8739C22.4154 12.2802 22.1513 12.6756 21.745 12.7562C21.3894 12.8266 21.0426 12.6329 20.9077 12.311L20.8638 12.1664L20.5989 10.833L21.3344 10.6873L22.0699 10.5405L22.3348 11.8739ZM3.18951 9.92985C3.59224 10.0259 3.84052 10.4302 3.74461 10.833L3.42774 12.1664L3.37801 12.3099C3.23088 12.626 2.87702 12.8065 2.52454 12.7227C2.12159 12.6268 1.87234 12.2213 1.96828 11.8184L2.28631 10.485C2.38252 10.0824 2.78676 9.83396 3.18951 9.92985ZM21.1887 9.95182C21.5948 9.87125 21.9891 10.1345 22.0699 10.5405L20.5989 10.833C20.5183 10.4268 20.7826 10.0325 21.1887 9.95182ZM19.9374 5.99902C20.6533 5.99902 21.2703 6.50534 21.4096 7.20753L21.5414 7.87481L21.5553 8.02515C21.5534 8.37415 21.3073 8.68547 20.9516 8.75604C20.5963 8.82651 20.2496 8.63336 20.1144 8.31195L20.0704 8.16624L19.9374 7.50011H19.0828C18.6686 7.50011 18.3323 7.16379 18.3323 6.74957C18.3323 6.33535 18.6686 5.99902 19.0828 5.99902H19.9374ZM5.39373 5.99902C5.80794 5.99902 6.14427 6.33535 6.14427 6.74957C6.14427 7.16379 5.80794 7.50011 5.39373 7.50011H4.5391L4.37951 8.16624C4.28352 8.56913 3.87923 8.81843 3.47631 8.7225C3.07363 8.62647 2.82552 8.22204 2.92121 7.8193L3.07964 7.15202C3.24058 6.47639 3.84455 5.99902 4.5391 5.99902H5.39373ZM10.5273 5.99902C10.9415 5.99904 11.2778 6.33536 11.2778 6.74957C11.2778 7.16378 10.9415 7.5001 10.5273 7.50011H8.81571C8.40174 7.49982 8.06632 7.16361 8.06632 6.74957C8.06632 6.33553 8.40174 5.99931 8.81571 5.99902H10.5273ZM15.6608 5.99902C16.0748 5.99932 16.4102 6.33554 16.4102 6.74957C16.4102 7.1636 16.0748 7.49982 15.6608 7.50011H13.9493C13.535 7.50011 13.1987 7.16378 13.1987 6.74957C13.1987 6.33536 13.535 5.99903 13.9493 5.99902H15.6608Z" }),
4883
4883
  /* @__PURE__ */ jsx3("path", { d: "M10.6309 14.7413V10.9913H13.6309V14.7413C13.6309 15.1538 13.9684 15.4913 14.3809 15.4913H16.6309C17.0434 15.4913 17.3809 15.1538 17.3809 14.7413V9.4913H18.6559C19.0009 9.4913 19.1659 9.0638 18.9034 8.8388L12.6334 3.19125C12.3484 2.93625 11.9134 2.93625 11.6284 3.19125L5.35831 8.8388C5.10331 9.0638 5.26081 9.4913 5.60581 9.4913H6.88082V14.7413C6.88082 15.1538 7.21833 15.4913 7.63083 15.4913H9.88085C10.2934 15.4913 10.6309 15.1538 10.6309 14.7413Z" })
4884
4884
  ] }),
4885
- houseFilled: /* @__PURE__ */ jsx3(Fragment2, { children: /* @__PURE__ */ jsx3("path", { d: "M9.82369 19.9192V14.5155H14.1715V19.9192C14.1715 20.5137 14.6606 21 15.2584 21H18.5193C19.1171 21 19.6062 20.5137 19.6062 19.9192V12.3539H21.454C21.954 12.3539 22.1932 11.7379 21.8127 11.4137L12.7258 3.27559C12.3128 2.90814 11.6824 2.90814 11.2693 3.27559L2.18245 11.4137C1.81288 11.7379 2.04114 12.3539 2.54114 12.3539H4.38895V19.9192C4.38895 20.5137 4.87808 21 5.4759 21H8.73674C9.33456 21 9.82369 20.5137 9.82369 19.9192Z" }) })
4885
+ houseFilled: /* @__PURE__ */ jsx3(Fragment2, { children: /* @__PURE__ */ jsx3("path", { d: "M9.82369 19.9192V14.5155H14.1715V19.9192C14.1715 20.5137 14.6606 21 15.2584 21H18.5193C19.1171 21 19.6062 20.5137 19.6062 19.9192V12.3539H21.454C21.954 12.3539 22.1932 11.7379 21.8127 11.4137L12.7258 3.27559C12.3128 2.90814 11.6824 2.90814 11.2693 3.27559L2.18245 11.4137C1.81288 11.7379 2.04114 12.3539 2.54114 12.3539H4.38895V19.9192C4.38895 20.5137 4.87808 21 5.4759 21H8.73674C9.33456 21 9.82369 20.5137 9.82369 19.9192Z" }) }),
4886
+ // Option Type / slot icons
4887
+ single: /* @__PURE__ */ jsxs2(Fragment2, { children: [
4888
+ /* @__PURE__ */ jsx3("path", { d: "M9 15V17H5V15H9ZM9 9H5V17C3.96435 17 3.113 16.2128 3.01074 15.2041L3 15V9C3 7.89543 3.89543 7 5 7H9L9.2041 7.01074C10.2128 7.113 11 7.96435 11 9V15C11 16.1046 10.1046 17 9 17V9Z" }),
4889
+ /* @__PURE__ */ jsx3("path", { d: "M19 15V17H15V15H19ZM19 9H15V17C13.9643 17 13.113 16.2128 13.0107 15.2041L13 15V9C13 7.89543 13.8954 7 15 7H19L19.2041 7.01074C20.2128 7.113 21 7.96435 21 9V15C21 16.1046 20.1046 17 19 17V9Z" })
4890
+ ] }),
4891
+ linked: /* @__PURE__ */ jsxs2(Fragment2, { children: [
4892
+ /* @__PURE__ */ jsx3("path", { d: "M9 15V17H5V15H9ZM19 15V17H15V15H19ZM19 9H15V17C13.8954 17 13 16.1046 13 15V9C13 7.89543 13.8954 7 15 7H19C20.1046 7 21 7.89543 21 9V15C21 16.1046 20.1046 17 19 17V9ZM9 9H5V17C3.89543 17 3 16.1046 3 15V9C3 7.89543 3.89543 7 5 7H9C10.1046 7 11 7.89543 11 9V15C11 16.1046 10.1046 17 9 17V9Z" }),
4893
+ /* @__PURE__ */ jsx3("path", { d: "M7 11H17V13H7V11Z" })
4894
+ ] }),
4895
+ package: /* @__PURE__ */ jsxs2(Fragment2, { children: [
4896
+ /* @__PURE__ */ jsx3("path", { d: "M9 15V17H5V15H9ZM9 9H5V17C3.96435 17 3.113 16.2128 3.01074 15.2041L3 15V9C3 7.89543 3.89543 7 5 7H9L9.2041 7.01074C10.2128 7.113 11 7.96435 11 9V15C11 16.1046 10.1046 17 9 17V9Z" }),
4897
+ /* @__PURE__ */ jsx3("path", { d: "M20 18V20H4V18H20ZM22 16V8C22 6.89543 21.1046 6 20 6H4C2.89543 6 2 6.89543 2 8V16C2 17.1046 2.89543 18 4 18V20C1.79086 20 0 18.2091 0 16V8C0 5.79086 1.79086 4 4 4H20L20.2061 4.00488C22.3194 4.11211 24 5.85996 24 8V16L23.9951 16.2061C23.8913 18.2512 22.2512 19.8913 20.2061 19.9951L20 20V18C21.1046 18 22 17.1046 22 16Z" }),
4898
+ /* @__PURE__ */ jsx3("path", { d: "M19 15V17H15V15H19ZM19 9H15V17C13.9643 17 13.113 16.2128 13.0107 15.2041L13 15V9C13 7.89543 13.8954 7 15 7H19L19.2041 7.01074C20.2128 7.113 21 7.96435 21 9V15C21 16.1046 20.1046 17 19 17V9Z" })
4899
+ ] })
4886
4900
  };
4887
4901
 
4888
4902
  // src/components/PresentationContext.tsx
@@ -5042,7 +5056,7 @@ function Chips(props) {
5042
5056
  // src/components/Table/GridTable.tsx
5043
5057
  import memoizeOne from "memoize-one";
5044
5058
  import { runInAction } from "mobx";
5045
- import React13, { useEffect as useEffect20, useMemo as useMemo26, useRef as useRef41, useState as useState32 } from "react";
5059
+ import React13, { useEffect as useEffect20, useMemo as useMemo27, useRef as useRef41, useState as useState33 } from "react";
5046
5060
  import { Virtuoso as Virtuoso2, VirtuosoGrid } from "react-virtuoso";
5047
5061
 
5048
5062
  // src/components/Layout/ScrollableContent.tsx
@@ -5233,7 +5247,7 @@ var sizeToPixels = {
5233
5247
  // src/components/Table/GridTableApi.ts
5234
5248
  import { comparer } from "mobx";
5235
5249
  import { computedFn } from "mobx-utils";
5236
- import { useMemo as useMemo23 } from "react";
5250
+ import { useMemo as useMemo24 } from "react";
5237
5251
 
5238
5252
  // src/components/Table/types.ts
5239
5253
  var nonKindGridColumnKeys = [
@@ -9932,7 +9946,7 @@ function Button(props) {
9932
9946
  } = useHover5(ariaProps);
9933
9947
  const {
9934
9948
  baseStyles: baseStyles5,
9935
- hoverStyles: hoverStyles4,
9949
+ hoverStyles: hoverStyles5,
9936
9950
  disabledStyles: disabledStyles4,
9937
9951
  pressedStyles: pressedStyles2,
9938
9952
  focusStyles: focusStyles2
@@ -9961,7 +9975,7 @@ function Button(props) {
9961
9975
  textTransform: "tt_inherit"
9962
9976
  },
9963
9977
  ...baseStyles5,
9964
- ...isHovered && !isPressed && !active ? hoverStyles4 : {},
9978
+ ...isHovered && !isPressed && !active ? hoverStyles5 : {},
9965
9979
  ...isPressed || active ? pressedStyles2 : {},
9966
9980
  ...isDisabled || asyncInProgress ? {
9967
9981
  ...disabledStyles4,
@@ -10364,7 +10378,7 @@ function NavLink(props) {
10364
10378
  baseStyles: baseStyles5,
10365
10379
  activeStyles: activeStyles3,
10366
10380
  focusRingStyles: focusRingStyles2,
10367
- hoverStyles: hoverStyles4,
10381
+ hoverStyles: hoverStyles5,
10368
10382
  disabledStyles: disabledStyles4,
10369
10383
  pressedStyles: pressedStyles2
10370
10384
  } = useMemo13(() => getNavLinkStyles(variant), [variant]);
@@ -10384,7 +10398,7 @@ function NavLink(props) {
10384
10398
  ...active && activeStyles3,
10385
10399
  ...isDisabled && disabledStyles4,
10386
10400
  ...isFocusVisible && focusRingStyles2,
10387
- ...isHovered && hoverStyles4,
10401
+ ...isHovered && hoverStyles5,
10388
10402
  ...isPressed && pressedStyles2
10389
10403
  })
10390
10404
  };
@@ -13525,102 +13539,10 @@ function DateRangeField(props) {
13525
13539
  return /* @__PURE__ */ jsx67(DateFieldBase, { ...props, mode: "range" });
13526
13540
  }
13527
13541
 
13528
- // src/inputs/IconCard.tsx
13529
- import { useMemo as useMemo18 } from "react";
13530
- import { useCheckbox as useCheckbox2, useHover as useHover11, VisuallyHidden as VisuallyHidden4 } from "react-aria";
13531
- import { useToggleState as useToggleState2 } from "react-stately";
13532
- import { trussProps as trussProps42 } from "@homebound/truss/runtime";
13533
- import { jsx as jsx68, jsxs as jsxs41 } from "react/jsx-runtime";
13534
- function IconCard(props) {
13535
- const {
13536
- selected: isSelected = false,
13537
- disabled: isDisabled = false,
13538
- icon,
13539
- cardRef,
13540
- label,
13541
- tooltip,
13542
- ...otherProps
13543
- } = props;
13544
- const ref = useGetRef(cardRef);
13545
- const ariaProps = {
13546
- isSelected,
13547
- isDisabled,
13548
- ...otherProps
13549
- };
13550
- const checkboxProps = {
13551
- ...ariaProps,
13552
- "aria-label": label
13553
- };
13554
- const {
13555
- hoverProps,
13556
- isHovered
13557
- } = useHover11({
13558
- isDisabled
13559
- });
13560
- const toggleState = useToggleState2(ariaProps);
13561
- const {
13562
- inputProps
13563
- } = useCheckbox2(checkboxProps, toggleState, ref);
13564
- const styles = useMemo18(() => ({
13565
- ...baseStyles3,
13566
- ...isHovered && iconCardStylesHover,
13567
- ...isSelected && selectedStyles,
13568
- ...isDisabled && disabledStyles2
13569
- }), [isDisabled, isHovered, isSelected]);
13570
- const tid = useTestIds(props, defaultTestId(label));
13571
- return maybeTooltip({
13572
- title: resolveTooltip(isDisabled, tooltip),
13573
- placement: "top",
13574
- children: /* @__PURE__ */ jsxs41("button", { ...trussProps42(styles), ...hoverProps, onClick: toggleState.toggle, disabled: isDisabled, ...tid, children: [
13575
- /* @__PURE__ */ jsx68(VisuallyHidden4, { children: /* @__PURE__ */ jsx68("input", { ref, ...inputProps, ...tid.value }) }),
13576
- /* @__PURE__ */ jsx68(Icon, { icon, inc: 4, color: isDisabled ? "rgba(221, 220, 220, 1)" /* Gray300 */ : "rgba(36, 36, 36, 1)" /* Gray900 */ }),
13577
- /* @__PURE__ */ jsx68("span", { ...trussProps42({
13578
- fontWeight: "fw4",
13579
- fontSize: "fz_12px",
13580
- lineHeight: "lh_16px",
13581
- ...isDisabled ? {
13582
- color: "gray300"
13583
- } : {}
13584
- }), children: label })
13585
- ] })
13586
- });
13587
- }
13588
- var baseStyles3 = {
13589
- display: "df",
13590
- flexDirection: "fdc",
13591
- alignItems: "aic",
13592
- justifyContent: "jcc",
13593
- width: "w_130px",
13594
- height: "h_114px",
13595
- borderStyle: "bss",
13596
- borderWidth: "bw1",
13597
- borderRadius: "br8",
13598
- borderColor: "bcGray300",
13599
- backgroundColor: "bgWhite",
13600
- gap: "gap_12px",
13601
- paddingTop: "pt2",
13602
- paddingBottom: "pb2",
13603
- paddingRight: "pr2",
13604
- paddingLeft: "pl2",
13605
- textAlign: "tac"
13606
- };
13607
- var selectedStyles = {
13608
- borderWidth: "bw2",
13609
- borderColor: "bcBlue500",
13610
- backgroundColor: "bgBlue50"
13611
- };
13612
- var disabledStyles2 = {
13613
- borderColor: "bcGray200",
13614
- backgroundColor: "bgGray50"
13615
- };
13616
- var iconCardStylesHover = {
13617
- backgroundColor: "bgGray100"
13618
- };
13619
-
13620
13542
  // src/inputs/MultiLineSelectField.tsx
13621
13543
  import { useState as useState23 } from "react";
13622
- import { trussProps as trussProps43 } from "@homebound/truss/runtime";
13623
- import { jsx as jsx69, jsxs as jsxs42 } from "react/jsx-runtime";
13544
+ import { trussProps as trussProps42 } from "@homebound/truss/runtime";
13545
+ import { jsx as jsx68, jsxs as jsxs41 } from "react/jsx-runtime";
13624
13546
  function MultiLineSelectField(props) {
13625
13547
  const {
13626
13548
  options,
@@ -13634,27 +13556,27 @@ function MultiLineSelectField(props) {
13634
13556
  const tid = useTestIds(props, "");
13635
13557
  const [isDisplayed, setIsDisplayed] = useState23(true);
13636
13558
  const currentOptions = options.filter((o) => !values.includes(getOptionValue(o)));
13637
- return /* @__PURE__ */ jsxs42("div", { ...trussProps43({
13559
+ return /* @__PURE__ */ jsxs41("div", { ...trussProps42({
13638
13560
  marginTop: "mt1",
13639
13561
  ...labelStyle === "left" ? {
13640
13562
  display: "df"
13641
13563
  } : {}
13642
13564
  }), children: [
13643
- labelStyle !== "hidden" && /* @__PURE__ */ jsx69("div", { ...trussProps43({
13565
+ labelStyle !== "hidden" && /* @__PURE__ */ jsx68("div", { ...trussProps42({
13644
13566
  ...labelStyle === "left" ? {
13645
13567
  width: "w50"
13646
13568
  } : {}
13647
- }), children: /* @__PURE__ */ jsx69(Label, { ...tid.label, label: props.label }) }),
13648
- /* @__PURE__ */ jsxs42("div", { ...trussProps43({
13569
+ }), children: /* @__PURE__ */ jsx68(Label, { ...tid.label, label: props.label }) }),
13570
+ /* @__PURE__ */ jsxs41("div", { ...trussProps42({
13649
13571
  ...labelStyle === "left" ? {
13650
13572
  width: "w50"
13651
13573
  } : {}
13652
13574
  }), children: [
13653
13575
  values.map((value, index) => {
13654
- return /* @__PURE__ */ jsxs42("div", { className: "mb1 pl1 df", children: [
13655
- /* @__PURE__ */ jsx69("div", { className: "wsnw oh to_ellipsis w100", children: /* @__PURE__ */ jsx69(SelectField, { ...otherProps, ...tid.selectField, labelStyle: "hidden", value, onSelect: () => {
13576
+ return /* @__PURE__ */ jsxs41("div", { className: "mb1 pl1 df", children: [
13577
+ /* @__PURE__ */ jsx68("div", { className: "wsnw oh to_ellipsis w100", children: /* @__PURE__ */ jsx68(SelectField, { ...otherProps, ...tid.selectField, labelStyle: "hidden", value, onSelect: () => {
13656
13578
  }, options, getOptionValue, getOptionLabel, compact: true, readOnly: true }) }),
13657
- /* @__PURE__ */ jsx69(Button, { ...tid.deleteSelected, variant: "tertiary", label: "", "aria-label": `Delete selected ${otherProps.label}`, icon: "x", onClick: () => {
13579
+ /* @__PURE__ */ jsx68(Button, { ...tid.deleteSelected, variant: "tertiary", label: "", "aria-label": `Delete selected ${otherProps.label}`, icon: "x", onClick: () => {
13658
13580
  const selectedOptions = options.filter((o) => values.includes(getOptionValue(o)) && getOptionValue(o) !== value);
13659
13581
  const selectedValues = selectedOptions.map((o) => getOptionValue(o));
13660
13582
  onSelect(selectedValues, selectedOptions);
@@ -13662,17 +13584,17 @@ function MultiLineSelectField(props) {
13662
13584
  } })
13663
13585
  ] }, index);
13664
13586
  }),
13665
- isDisplayed && /* @__PURE__ */ jsx69("div", { className: "mb1", children: /* @__PURE__ */ jsx69(SelectField, { ...tid.selectField, label: otherProps.label, labelStyle: "hidden", getOptionValue, getOptionLabel, value: "", onSelect: (value) => {
13587
+ isDisplayed && /* @__PURE__ */ jsx68("div", { className: "mb1", children: /* @__PURE__ */ jsx68(SelectField, { ...tid.selectField, label: otherProps.label, labelStyle: "hidden", getOptionValue, getOptionLabel, value: "", onSelect: (value) => {
13666
13588
  onSelect([...values, value], options);
13667
13589
  setIsDisplayed(false);
13668
13590
  }, options: currentOptions, disabled: otherProps.disabled }) }),
13669
- /* @__PURE__ */ jsx69(Button, { ...tid.addAnother, label: "Add Another", variant: "tertiary", onClick: () => setIsDisplayed(true), disabled: isDisplayed || currentOptions.length === 0 })
13591
+ /* @__PURE__ */ jsx68(Button, { ...tid.addAnother, label: "Add Another", variant: "tertiary", onClick: () => setIsDisplayed(true), disabled: isDisplayed || currentOptions.length === 0 })
13670
13592
  ] })
13671
13593
  ] });
13672
13594
  }
13673
13595
 
13674
13596
  // src/inputs/MultiSelectField.tsx
13675
- import { jsx as jsx70 } from "react/jsx-runtime";
13597
+ import { jsx as jsx69 } from "react/jsx-runtime";
13676
13598
  function MultiSelectField(props) {
13677
13599
  const {
13678
13600
  getOptionValue = (opt) => opt.id,
@@ -13681,15 +13603,15 @@ function MultiSelectField(props) {
13681
13603
  // if unset, assume O implements HasName
13682
13604
  ...otherProps
13683
13605
  } = props;
13684
- return /* @__PURE__ */ jsx70(ComboBoxBase, { multiselect: true, getOptionLabel, getOptionValue, ...otherProps });
13606
+ return /* @__PURE__ */ jsx69(ComboBoxBase, { multiselect: true, getOptionLabel, getOptionValue, ...otherProps });
13685
13607
  }
13686
13608
 
13687
13609
  // src/inputs/NumberField.tsx
13688
13610
  import { NumberParser } from "@internationalized/number";
13689
- import { useMemo as useMemo19, useRef as useRef29, useState as useState24 } from "react";
13611
+ import { useMemo as useMemo18, useRef as useRef29, useState as useState24 } from "react";
13690
13612
  import { mergeProps as mergeProps15, useLocale, useNumberField } from "react-aria";
13691
13613
  import { useNumberFieldState } from "react-stately";
13692
- import { jsx as jsx71 } from "react/jsx-runtime";
13614
+ import { jsx as jsx70 } from "react/jsx-runtime";
13693
13615
  function NumberField(props) {
13694
13616
  const {
13695
13617
  fieldProps
@@ -13729,7 +13651,7 @@ function NumberField(props) {
13729
13651
  const isReadOnly = !!readOnly;
13730
13652
  const factor = type === "percent" ? 100 : type === "cents" ? 100 : type === "mills" ? 1e3 : type === "basisPoints" ? 1e4 : 1;
13731
13653
  const signDisplay = displayDirection ? "always" : "auto";
13732
- const defaultFormatOptions = useMemo19(() => ({
13654
+ const defaultFormatOptions = useMemo18(() => ({
13733
13655
  [truncate ? "maximumFractionDigits" : "minimumFractionDigits"]: numFractionDigits,
13734
13656
  ...numIntegerDigits !== void 0 && {
13735
13657
  minimumIntegerDigits: numIntegerDigits
@@ -13740,7 +13662,7 @@ function NumberField(props) {
13740
13662
  const {
13741
13663
  locale
13742
13664
  } = useLocale();
13743
- const formatOptions = useMemo19(() => {
13665
+ const formatOptions = useMemo18(() => {
13744
13666
  if (numberFormatOptions !== void 0) {
13745
13667
  return numberFormatOptions;
13746
13668
  }
@@ -13772,7 +13694,7 @@ function NumberField(props) {
13772
13694
  ...typeFormat
13773
13695
  };
13774
13696
  }, [type, numberFormatOptions, defaultFormatOptions, numFractionDigits]);
13775
- const numberParser = useMemo19(() => new NumberParser(locale, formatOptions), [locale, formatOptions]);
13697
+ const numberParser = useMemo18(() => new NumberParser(locale, formatOptions), [locale, formatOptions]);
13776
13698
  const valueRef = useRef29({
13777
13699
  wip: false
13778
13700
  });
@@ -13834,7 +13756,7 @@ function NumberField(props) {
13834
13756
  if (readOnly && !inputRef.current) {
13835
13757
  inputRef.current = document.createElement("input");
13836
13758
  }
13837
- return /* @__PURE__ */ jsx71(
13759
+ return /* @__PURE__ */ jsx70(
13838
13760
  TextFieldBase,
13839
13761
  {
13840
13762
  xss: {
@@ -13877,11 +13799,11 @@ function formatValue(value, factor, numFractionDigits, numIntegerDigits, positiv
13877
13799
  }
13878
13800
 
13879
13801
  // src/inputs/RadioGroupField.tsx
13880
- import { Fragment as Fragment19, useMemo as useMemo20, useRef as useRef30 } from "react";
13881
- import { useFocusRing as useFocusRing6, useHover as useHover12, useRadio, useRadioGroup } from "react-aria";
13802
+ import { Fragment as Fragment19, useMemo as useMemo19, useRef as useRef30 } from "react";
13803
+ import { useFocusRing as useFocusRing6, useHover as useHover11, useRadio, useRadioGroup } from "react-aria";
13882
13804
  import { useRadioGroupState } from "react-stately";
13883
- import { trussProps as trussProps44, maybeCssVar as maybeCssVar26 } from "@homebound/truss/runtime";
13884
- import { jsx as jsx72, jsxs as jsxs43 } from "react/jsx-runtime";
13805
+ import { trussProps as trussProps43, maybeCssVar as maybeCssVar26 } from "@homebound/truss/runtime";
13806
+ import { jsx as jsx71, jsxs as jsxs42 } from "react/jsx-runtime";
13885
13807
  var nextNameId = 0;
13886
13808
  function RadioGroupField(props) {
13887
13809
  const {
@@ -13897,7 +13819,7 @@ function RadioGroupField(props) {
13897
13819
  layout = "vertical",
13898
13820
  ...otherProps
13899
13821
  } = props;
13900
- const name = useMemo20(() => `radio-group-${++nextNameId}`, []);
13822
+ const name = useMemo19(() => `radio-group-${++nextNameId}`, []);
13901
13823
  const state = useRadioGroupState({
13902
13824
  name,
13903
13825
  value,
@@ -13917,7 +13839,7 @@ function RadioGroupField(props) {
13917
13839
  }, state);
13918
13840
  return (
13919
13841
  // default styling to position `<Label />` above.
13920
- /* @__PURE__ */ jsxs43("div", { ...trussProps44({
13842
+ /* @__PURE__ */ jsxs42("div", { ...trussProps43({
13921
13843
  display: "df",
13922
13844
  flexDirection: "fdc",
13923
13845
  gap: "gap1",
@@ -13928,9 +13850,9 @@ function RadioGroupField(props) {
13928
13850
  justifyContent: "jcsb"
13929
13851
  } : {}
13930
13852
  }), children: [
13931
- /* @__PURE__ */ jsx72(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, hidden: labelStyle === "hidden" }),
13932
- /* @__PURE__ */ jsxs43("div", { ...radioGroupProps, children: [
13933
- /* @__PURE__ */ jsx72("div", { ...trussProps44({
13853
+ /* @__PURE__ */ jsx71(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, hidden: labelStyle === "hidden" }),
13854
+ /* @__PURE__ */ jsxs42("div", { ...radioGroupProps, children: [
13855
+ /* @__PURE__ */ jsx71("div", { ...trussProps43({
13934
13856
  display: "df",
13935
13857
  ...layout === "horizontal" ? {
13936
13858
  flexDirection: "fdr",
@@ -13941,14 +13863,14 @@ function RadioGroupField(props) {
13941
13863
  gap: "gap1"
13942
13864
  }
13943
13865
  }), children: options.map((option) => {
13944
- return /* @__PURE__ */ jsx72(Fragment19, { children: maybeTooltip({
13866
+ return /* @__PURE__ */ jsx71(Fragment19, { children: maybeTooltip({
13945
13867
  title: resolveTooltip(option.disabled),
13946
13868
  placement: "bottom",
13947
- children: /* @__PURE__ */ jsx72(Radio, { parentId: name, option, state, isOptionDisabled: !!option.disabled, ...otherProps, ...tid[option.value] })
13869
+ children: /* @__PURE__ */ jsx71(Radio, { parentId: name, option, state, isOptionDisabled: !!option.disabled, ...otherProps, ...tid[option.value] })
13948
13870
  }) }, option.value);
13949
13871
  }) }),
13950
- errorMsg && /* @__PURE__ */ jsx72(ErrorMessage, { errorMsg, ...tid.errorMsg }),
13951
- helperText && /* @__PURE__ */ jsx72(HelperText, { helperText })
13872
+ errorMsg && /* @__PURE__ */ jsx71(ErrorMessage, { errorMsg, ...tid.errorMsg }),
13873
+ helperText && /* @__PURE__ */ jsx71(HelperText, { helperText })
13952
13874
  ] })
13953
13875
  ] })
13954
13876
  );
@@ -13984,22 +13906,22 @@ function Radio(props) {
13984
13906
  const {
13985
13907
  hoverProps,
13986
13908
  isHovered
13987
- } = useHover12({
13909
+ } = useHover11({
13988
13910
  isDisabled: disabled
13989
13911
  });
13990
- return /* @__PURE__ */ jsxs43("label", { ...trussProps44({
13912
+ return /* @__PURE__ */ jsxs42("label", { ...trussProps43({
13991
13913
  display: "df",
13992
13914
  cursor: "cursorPointer",
13993
13915
  ...disabled ? {
13994
13916
  cursor: "cursor_initial"
13995
13917
  } : {}
13996
13918
  }), ...hoverProps, children: [
13997
- /* @__PURE__ */ jsx72(
13919
+ /* @__PURE__ */ jsx71(
13998
13920
  "input",
13999
13921
  {
14000
13922
  type: "radio",
14001
13923
  ref,
14002
- ...trussProps44({
13924
+ ...trussProps43({
14003
13925
  ...radioReset,
14004
13926
  ...radioDefault,
14005
13927
  ...!disabled && state.selectedValue === value ? radioChecked : radioUnchecked,
@@ -14019,8 +13941,8 @@ function Radio(props) {
14019
13941
  ...others
14020
13942
  }
14021
13943
  ),
14022
- /* @__PURE__ */ jsxs43("div", { children: [
14023
- /* @__PURE__ */ jsx72("div", { id: labelId, ...trussProps44({
13944
+ /* @__PURE__ */ jsxs42("div", { children: [
13945
+ /* @__PURE__ */ jsx71("div", { id: labelId, ...trussProps43({
14024
13946
  fontWeight: "fw4",
14025
13947
  fontSize: "fz_14px",
14026
13948
  lineHeight: "lh_20px",
@@ -14031,7 +13953,7 @@ function Radio(props) {
14031
13953
  }), ...description ? {
14032
13954
  "aria-describedby": descriptionId
14033
13955
  } : {}, children: label }),
14034
- description && /* @__PURE__ */ jsx72("div", { id: descriptionId, ...trussProps44({
13956
+ description && /* @__PURE__ */ jsx71("div", { id: descriptionId, ...trussProps43({
14035
13957
  fontWeight: "fw4",
14036
13958
  fontSize: "fz_14px",
14037
13959
  lineHeight: "lh_20px",
@@ -14136,19 +14058,19 @@ var radioDisabled = {
14136
14058
 
14137
14059
  // src/inputs/RichTextField.tsx
14138
14060
  import DOMPurify from "dompurify";
14139
- import { createElement, useEffect as useEffect16, useMemo as useMemo21, useRef as useRef31, useState as useState26 } from "react";
14061
+ import { createElement, useEffect as useEffect16, useMemo as useMemo20, useRef as useRef31, useState as useState26 } from "react";
14140
14062
 
14141
14063
  // src/inputs/RichTextField.mock.tsx
14142
14064
  import { camelCase as camelCase4 } from "change-case";
14143
14065
  import { useState as useState25 } from "react";
14144
- import { jsx as jsx73 } from "react/jsx-runtime";
14066
+ import { jsx as jsx72 } from "react/jsx-runtime";
14145
14067
  function RichTextFieldMock(props) {
14146
14068
  const { onBlur = () => {
14147
14069
  }, onFocus = () => {
14148
14070
  }, readOnly } = props;
14149
14071
  const [value, setValue] = useState25(props.value || "");
14150
14072
  const tid = useTestIds(props, defaultTestId2(props.label || "richTextField"));
14151
- return /* @__PURE__ */ jsx73(
14073
+ return /* @__PURE__ */ jsx72(
14152
14074
  "input",
14153
14075
  {
14154
14076
  type: "text",
@@ -14174,8 +14096,8 @@ import Tribute from "tributejs";
14174
14096
  import "tributejs/dist/tribute.css";
14175
14097
  import "trix/dist/trix";
14176
14098
  import "trix/dist/trix.css";
14177
- import { trussProps as trussProps45 } from "@homebound/truss/runtime";
14178
- import { jsx as jsx74, jsxs as jsxs44 } from "react/jsx-runtime";
14099
+ import { trussProps as trussProps44 } from "@homebound/truss/runtime";
14100
+ import { jsx as jsx73, jsxs as jsxs43 } from "react/jsx-runtime";
14179
14101
  var RichTextField = withTestMock(RichTextFieldImpl, RichTextFieldMock);
14180
14102
  function RichTextFieldImpl(props) {
14181
14103
  const {
@@ -14200,7 +14122,7 @@ function RichTextFieldImpl(props) {
14200
14122
  onBlurRef.current = onBlur;
14201
14123
  const onFocusRef = useRef31(onFocus);
14202
14124
  onFocusRef.current = onFocus;
14203
- const id = useMemo21(() => {
14125
+ const id = useMemo20(() => {
14204
14126
  if (readOnly) return;
14205
14127
  const id2 = `trix-editor-${trixId}`;
14206
14128
  trixId++;
@@ -14254,15 +14176,15 @@ function RichTextFieldImpl(props) {
14254
14176
  autoFocus
14255
14177
  } = props;
14256
14178
  if (!readOnly) {
14257
- return /* @__PURE__ */ jsxs44("div", { ...trussProps45({
14179
+ return /* @__PURE__ */ jsxs43("div", { ...trussProps44({
14258
14180
  width: "w100",
14259
14181
  ...!fullWidth ? {
14260
14182
  maxWidth: "maxw_550px"
14261
14183
  } : {}
14262
14184
  }), children: [
14263
- label && /* @__PURE__ */ jsx74(Label, { labelProps: {}, label }),
14264
- /* @__PURE__ */ jsxs44("div", { className: "beam-trix-editor", children: [
14265
- /* @__PURE__ */ jsx74("input", { type: "hidden", id: `input-${id}`, value }),
14185
+ label && /* @__PURE__ */ jsx73(Label, { labelProps: {}, label }),
14186
+ /* @__PURE__ */ jsxs43("div", { className: "beam-trix-editor", children: [
14187
+ /* @__PURE__ */ jsx73("input", { type: "hidden", id: `input-${id}`, value }),
14266
14188
  createElement("trix-editor", {
14267
14189
  id,
14268
14190
  input: `input-${id}`,
@@ -14277,14 +14199,14 @@ function RichTextFieldImpl(props) {
14277
14199
  ] })
14278
14200
  ] });
14279
14201
  } else {
14280
- return /* @__PURE__ */ jsxs44("div", { ...trussProps45({
14202
+ return /* @__PURE__ */ jsxs43("div", { ...trussProps44({
14281
14203
  width: "w100",
14282
14204
  ...!fullWidth ? {
14283
14205
  maxWidth: "maxw_550px"
14284
14206
  } : {}
14285
14207
  }), children: [
14286
- label && /* @__PURE__ */ jsx74(Label, { label }),
14287
- /* @__PURE__ */ jsx74("div", { className: "mh_120px bgWhite fw4 fz_14px lh_20px gray900 bss bw1 pt1 pb1 pr1 pl1 br4 bcGray300", dangerouslySetInnerHTML: {
14208
+ label && /* @__PURE__ */ jsx73(Label, { label }),
14209
+ /* @__PURE__ */ jsx73("div", { className: "mh_120px bgWhite fw4 fz_14px lh_20px gray900 bss bw1 pt1 pb1 pr1 pl1 br4 bcGray300", dangerouslySetInnerHTML: {
14288
14210
  __html: DOMPurify.sanitize(value) || placeholder || ""
14289
14211
  }, "data-readonly": "true" })
14290
14212
  ] });
@@ -14317,9 +14239,222 @@ function extractIdsFromMentions(mergeTags, content) {
14317
14239
  }
14318
14240
  var trixId = 1;
14319
14241
 
14242
+ // src/inputs/SelectCard.tsx
14243
+ import { useMemo as useMemo21 } from "react";
14244
+ import { useCheckbox as useCheckbox2, useHover as useHover12, VisuallyHidden as VisuallyHidden4 } from "react-aria";
14245
+ import { useToggleState as useToggleState2 } from "react-stately";
14246
+ import { trussProps as trussProps45 } from "@homebound/truss/runtime";
14247
+ import { jsx as jsx74, jsxs as jsxs44 } from "react/jsx-runtime";
14248
+ function SelectCard(props) {
14249
+ const {
14250
+ selected: isSelected = false,
14251
+ disabled: isDisabled = false,
14252
+ icon,
14253
+ cardRef,
14254
+ label,
14255
+ description,
14256
+ tooltip,
14257
+ xss,
14258
+ ...otherProps
14259
+ } = props;
14260
+ const ref = useGetRef(cardRef);
14261
+ const ariaProps = {
14262
+ isSelected,
14263
+ isDisabled,
14264
+ ...otherProps
14265
+ };
14266
+ const checkboxProps = {
14267
+ ...ariaProps,
14268
+ "aria-label": label
14269
+ };
14270
+ const {
14271
+ hoverProps,
14272
+ isHovered
14273
+ } = useHover12({
14274
+ isDisabled
14275
+ });
14276
+ const toggleState = useToggleState2(ariaProps);
14277
+ const {
14278
+ inputProps
14279
+ } = useCheckbox2(checkboxProps, toggleState, ref);
14280
+ const styles = useMemo21(() => ({
14281
+ ...baseStyles3,
14282
+ // A label-only card is a fixed compact box; a description card fills the row and stretches.
14283
+ ...description ? fillRowStyles : fixedSizeStyles,
14284
+ // Description cards top-align so multi-line copy lines up; label-only cards center.
14285
+ ...description ? {
14286
+ justifyContent: "jcfs"
14287
+ } : {
14288
+ justifyContent: "jcc"
14289
+ },
14290
+ ...isHovered && !isDisabled && hoverStyles2,
14291
+ ...isSelected && !isDisabled && selectedStyles,
14292
+ ...isDisabled && (isSelected ? disabledSelectedStyles : disabledStyles2),
14293
+ // Spread last so a parent can override sizing (see `SelectCardGroup`).
14294
+ ...xss
14295
+ }), [description, isDisabled, isHovered, isSelected, xss]);
14296
+ const tid = useTestIds(props, defaultTestId(label));
14297
+ return maybeTooltip({
14298
+ title: resolveTooltip(isDisabled, tooltip),
14299
+ placement: "top",
14300
+ children: /* @__PURE__ */ jsxs44("button", { ...trussProps45(styles), ...hoverProps, onClick: toggleState.toggle, disabled: isDisabled, ...tid, children: [
14301
+ /* @__PURE__ */ jsx74(VisuallyHidden4, { children: /* @__PURE__ */ jsx74("input", { ref, ...inputProps, ...tid.value }) }),
14302
+ /* @__PURE__ */ jsx74(Icon, { icon, inc: 4, color: isDisabled ? "rgba(100, 100, 100, 1)" /* Gray700 */ : "rgba(36, 36, 36, 1)" /* Gray900 */ }),
14303
+ /* @__PURE__ */ jsxs44("span", { ...trussProps45(copyStyles), children: [
14304
+ /* @__PURE__ */ jsx74("span", { ...trussProps45({
14305
+ fontWeight: "fw6",
14306
+ fontSize: "fz_14px",
14307
+ lineHeight: "lh_20px",
14308
+ ...isDisabled ? {
14309
+ color: "gray700"
14310
+ } : {}
14311
+ }), children: label }),
14312
+ description && /* @__PURE__ */ jsx74("span", { className: "fw4 fz_12px lh_16px gray700", children: description })
14313
+ ] })
14314
+ ] })
14315
+ });
14316
+ }
14317
+ var baseStyles3 = {
14318
+ display: "df",
14319
+ flexDirection: "fdc",
14320
+ alignItems: "aic",
14321
+ borderStyle: "bss",
14322
+ borderWidth: "bw1",
14323
+ borderRadius: "br12",
14324
+ backgroundColor: "bgWhite",
14325
+ borderColor: "bcGray300",
14326
+ gap: "gap1",
14327
+ paddingLeft: "pl2",
14328
+ paddingRight: "pr2",
14329
+ paddingTop: "pt3",
14330
+ paddingBottom: "pb3",
14331
+ textAlign: "tac"
14332
+ };
14333
+ var fixedSizeStyles = {
14334
+ width: "w_130px",
14335
+ height: "h_114px"
14336
+ };
14337
+ var fillRowStyles = {
14338
+ flexBasis: "fb_0",
14339
+ flexGrow: "fg1",
14340
+ flexShrink: "fs0",
14341
+ alignSelf: "asStretch",
14342
+ minWidth: "mw_187px",
14343
+ width: "wa",
14344
+ height: "ha"
14345
+ };
14346
+ var copyStyles = {
14347
+ display: "df",
14348
+ flexDirection: "fdc",
14349
+ alignItems: "aic",
14350
+ gap: "gap_4px",
14351
+ width: "w100"
14352
+ };
14353
+ var hoverStyles2 = {
14354
+ borderColor: "bcBlue600"
14355
+ };
14356
+ var selectedStyles = {
14357
+ borderColor: "bcBlue600",
14358
+ backgroundColor: "bgBlue50"
14359
+ };
14360
+ var disabledStyles2 = {
14361
+ backgroundColor: "bgGray50",
14362
+ borderColor: "bcGray300"
14363
+ };
14364
+ var disabledSelectedStyles = {
14365
+ backgroundColor: "bgGray100",
14366
+ borderColor: "bcGray300"
14367
+ };
14368
+
14369
+ // src/inputs/SelectCardGroup.tsx
14370
+ import { useCallback as useCallback13, useMemo as useMemo22, useState as useState27 } from "react";
14371
+ import { mergeProps as mergeProps16, useField } from "react-aria";
14372
+ import { trussProps as trussProps46 } from "@homebound/truss/runtime";
14373
+ import { jsx as jsx75, jsxs as jsxs45 } from "react/jsx-runtime";
14374
+ function SelectCardGroup(props) {
14375
+ const {
14376
+ fieldProps
14377
+ } = usePresentationContext();
14378
+ const {
14379
+ options,
14380
+ label,
14381
+ labelStyle = fieldProps?.labelStyle ?? "above",
14382
+ values,
14383
+ errorMsg,
14384
+ helperText,
14385
+ disabled: isDisabled = false,
14386
+ onChange
14387
+ } = props;
14388
+ const [selected, setSelected] = useState27(values);
14389
+ const exclusiveOptions = useMemo22(() => options.filter((o) => o.exclusive), [options]);
14390
+ const hasDescription = useMemo22(() => options.some((o) => o.description), [options]);
14391
+ const toggleValue = useCallback13((value) => {
14392
+ if (isDisabled) return;
14393
+ const option = options.find((o) => o.value === value);
14394
+ if (!option) return;
14395
+ let newSelected = [];
14396
+ if (selected.includes(value)) {
14397
+ newSelected = selected.filter((v) => v !== value);
14398
+ } else {
14399
+ if (option.exclusive) {
14400
+ newSelected = [value];
14401
+ } else {
14402
+ newSelected = [...selected, value];
14403
+ newSelected = newSelected.filter((v) => !exclusiveOptions.some((o) => o.value === v));
14404
+ }
14405
+ }
14406
+ setSelected(newSelected);
14407
+ onChange(newSelected);
14408
+ }, [exclusiveOptions, isDisabled, onChange, options, selected]);
14409
+ const tid = useTestIds(props);
14410
+ const {
14411
+ labelProps,
14412
+ fieldProps: fieldPropsAria
14413
+ } = useField(props);
14414
+ const groupProps = mergeProps16(tid, {
14415
+ role: "group",
14416
+ "aria-disabled": isDisabled || void 0,
14417
+ ...fieldPropsAria
14418
+ });
14419
+ return /* @__PURE__ */ jsxs45("div", { ...groupProps, children: [
14420
+ labelStyle !== "hidden" && /* @__PURE__ */ jsx75("div", { ...trussProps46({
14421
+ ...labelStyle === "left" ? {
14422
+ width: "w50"
14423
+ } : {}
14424
+ }), children: /* @__PURE__ */ jsx75(Label, { label, ...labelProps, ...tid.label }) }),
14425
+ /* @__PURE__ */ jsx75("div", { className: "df gap2 flexWrap_wrap", children: options.map((option) => {
14426
+ const {
14427
+ icon,
14428
+ label: label2,
14429
+ description,
14430
+ disabled,
14431
+ tooltip
14432
+ } = option;
14433
+ const isSelected = selected.includes(option.value);
14434
+ return /* @__PURE__ */ jsx75(
14435
+ SelectCard,
14436
+ {
14437
+ icon,
14438
+ label: label2,
14439
+ description,
14440
+ xss: hasDescription ? fillRowStyles : void 0,
14441
+ selected: isSelected,
14442
+ disabled,
14443
+ tooltip,
14444
+ onChange: () => toggleValue(option.value),
14445
+ ...tid[option.label]
14446
+ },
14447
+ option.label
14448
+ );
14449
+ }) }),
14450
+ errorMsg && /* @__PURE__ */ jsx75(ErrorMessage, { errorMsg, ...tid.errorMsg }),
14451
+ helperText && /* @__PURE__ */ jsx75(HelperText, { helperText, ...tid.helperText })
14452
+ ] });
14453
+ }
14454
+
14320
14455
  // src/inputs/SelectField.tsx
14321
- import { useMemo as useMemo22 } from "react";
14322
- import { jsx as jsx75 } from "react/jsx-runtime";
14456
+ import { useMemo as useMemo23 } from "react";
14457
+ import { jsx as jsx76 } from "react/jsx-runtime";
14323
14458
  function SelectField(props) {
14324
14459
  const {
14325
14460
  getOptionValue = defaultOptionValue,
@@ -14329,8 +14464,8 @@ function SelectField(props) {
14329
14464
  value,
14330
14465
  ...otherProps
14331
14466
  } = props;
14332
- const values = useMemo22(() => [value], [value]);
14333
- return /* @__PURE__ */ jsx75(
14467
+ const values = useMemo23(() => [value], [value]);
14468
+ return /* @__PURE__ */ jsx76(
14334
14469
  ComboBoxBase,
14335
14470
  {
14336
14471
  ...otherProps,
@@ -14351,8 +14486,8 @@ function SelectField(props) {
14351
14486
  // src/inputs/Switch.tsx
14352
14487
  import { useRef as useRef32 } from "react";
14353
14488
  import { useFocusRing as useFocusRing7, useHover as useHover13, useSwitch, VisuallyHidden as VisuallyHidden5 } from "react-aria";
14354
- import { trussProps as trussProps46, maybeCssVar as maybeCssVar27 } from "@homebound/truss/runtime";
14355
- import { jsx as jsx76, jsxs as jsxs45 } from "react/jsx-runtime";
14489
+ import { trussProps as trussProps47, maybeCssVar as maybeCssVar27 } from "@homebound/truss/runtime";
14490
+ import { jsx as jsx77, jsxs as jsxs46 } from "react/jsx-runtime";
14356
14491
  var __maybeInc8 = (inc) => {
14357
14492
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
14358
14493
  };
@@ -14401,7 +14536,7 @@ function Switch(props) {
14401
14536
  const isHovered = __storyState?.hovered ?? isHoveredFromEvents;
14402
14537
  const tooltip = resolveTooltip(disabled, props.tooltip);
14403
14538
  const tid = useTestIds(otherProps, label);
14404
- return /* @__PURE__ */ jsxs45("label", { ...hoverProps, ...trussProps46({
14539
+ return /* @__PURE__ */ jsxs46("label", { ...hoverProps, ...trussProps47({
14405
14540
  ...{
14406
14541
  position: "relative",
14407
14542
  cursor: "cursorPointer",
@@ -14439,18 +14574,18 @@ function Switch(props) {
14439
14574
  color: "gray400"
14440
14575
  }
14441
14576
  }), children: [
14442
- labelStyle !== "inline" && labelStyle !== "hidden" && /* @__PURE__ */ jsx76("div", { children: /* @__PURE__ */ jsx76(Label, { label, tooltip, xss: {
14577
+ labelStyle !== "inline" && labelStyle !== "hidden" && /* @__PURE__ */ jsx77("div", { children: /* @__PURE__ */ jsx77(Label, { label, tooltip, xss: {
14443
14578
  ...labelStyle === "filter" ? {
14444
14579
  color: "gray900"
14445
14580
  } : {}
14446
14581
  }, inline: labelStyle === "left" || labelStyle === "filter" }) }),
14447
- /* @__PURE__ */ jsx76("div", { ...trussProps46({
14582
+ /* @__PURE__ */ jsx77("div", { ...trussProps47({
14448
14583
  ...labelStyle === "left" ? {
14449
14584
  width: ["w_var", {
14450
14585
  "--width": maybeCssVar27(__maybeInc8(labelLeftFieldWidth))
14451
14586
  }]
14452
14587
  } : {}
14453
- }), children: /* @__PURE__ */ jsx76("div", { "aria-hidden": "true", ...trussProps46({
14588
+ }), children: /* @__PURE__ */ jsx77("div", { "aria-hidden": "true", ...trussProps47({
14454
14589
  ...{
14455
14590
  width: ["w_var", {
14456
14591
  "--width": `${toggleWidth(compact)}px`
@@ -14472,14 +14607,14 @@ function Switch(props) {
14472
14607
  backgroundColor: "bgBlue700"
14473
14608
  },
14474
14609
  ...isSelected && isHovered && switchSelectedHoverStyles
14475
- }), children: /* @__PURE__ */ jsx76("div", { ...trussProps46({
14610
+ }), children: /* @__PURE__ */ jsx77("div", { ...trussProps47({
14476
14611
  ...switchCircleDefaultStyles(compact),
14477
14612
  ...isDisabled && {
14478
14613
  backgroundColor: "bgGray100"
14479
14614
  },
14480
14615
  ...isSelected && switchCircleSelectedStyles(compact)
14481
- }), children: withIcon && /* @__PURE__ */ jsx76(Icon, { icon: isSelected ? "check" : "x", color: isSelected ? "rgba(29, 78, 216, 1)" /* Blue700 */ : "rgba(201, 201, 201, 1)" /* Gray400 */, inc: toggleHeight(compact) / 16 }) }) }) }),
14482
- labelStyle === "inline" && /* @__PURE__ */ jsx76(Label, { label, tooltip, inline: true, xss: {
14616
+ }), children: withIcon && /* @__PURE__ */ jsx77(Icon, { icon: isSelected ? "check" : "x", color: isSelected ? "rgba(29, 78, 216, 1)" /* Blue700 */ : "rgba(201, 201, 201, 1)" /* Gray400 */, inc: toggleHeight(compact) / 16 }) }) }) }),
14617
+ labelStyle === "inline" && /* @__PURE__ */ jsx77(Label, { label, tooltip, inline: true, xss: {
14483
14618
  fontWeight: "fw4",
14484
14619
  fontSize: "fz_14px",
14485
14620
  lineHeight: "lh_20px",
@@ -14488,7 +14623,7 @@ function Switch(props) {
14488
14623
  lineHeight: "lineHeight_1"
14489
14624
  } : {}
14490
14625
  } }),
14491
- /* @__PURE__ */ jsx76(VisuallyHidden5, { children: /* @__PURE__ */ jsx76("input", { ref, ...inputProps, ...focusProps, ...tid }) })
14626
+ /* @__PURE__ */ jsx77(VisuallyHidden5, { children: /* @__PURE__ */ jsx77("input", { ref, ...inputProps, ...focusProps, ...tid }) })
14492
14627
  ] });
14493
14628
  }
14494
14629
  var toggleHeight = (isCompact) => isCompact ? 16 : 24;
@@ -14535,8 +14670,8 @@ function switchCircleSelectedStyles(isCompact) {
14535
14670
 
14536
14671
  // src/inputs/TextAreaField.tsx
14537
14672
  import { useRef as useRef33 } from "react";
14538
- import { mergeProps as mergeProps16, useTextField as useTextField3 } from "react-aria";
14539
- import { jsx as jsx77 } from "react/jsx-runtime";
14673
+ import { mergeProps as mergeProps17, useTextField as useTextField3 } from "react-aria";
14674
+ import { jsx as jsx78 } from "react/jsx-runtime";
14540
14675
  function TextAreaField(props) {
14541
14676
  const {
14542
14677
  value = "",
@@ -14575,10 +14710,10 @@ function TextAreaField(props) {
14575
14710
  },
14576
14711
  inputRef
14577
14712
  );
14578
- return /* @__PURE__ */ jsx77(
14713
+ return /* @__PURE__ */ jsx78(
14579
14714
  TextFieldBase,
14580
14715
  {
14581
- ...mergeProps16(otherProps, { onBlur, onFocus }),
14716
+ ...mergeProps17(otherProps, { onBlur, onFocus }),
14582
14717
  multiline: true,
14583
14718
  labelProps,
14584
14719
  inputProps,
@@ -14592,8 +14727,8 @@ function TextAreaField(props) {
14592
14727
 
14593
14728
  // src/inputs/TextField.tsx
14594
14729
  import { useRef as useRef34 } from "react";
14595
- import { mergeProps as mergeProps17, useTextField as useTextField4 } from "react-aria";
14596
- import { jsx as jsx78 } from "react/jsx-runtime";
14730
+ import { mergeProps as mergeProps18, useTextField as useTextField4 } from "react-aria";
14731
+ import { jsx as jsx79 } from "react/jsx-runtime";
14597
14732
  function TextField(props) {
14598
14733
  const {
14599
14734
  disabled = false,
@@ -14639,10 +14774,10 @@ function TextField(props) {
14639
14774
  focus: () => inputRef.current && inputRef.current.focus()
14640
14775
  };
14641
14776
  }
14642
- return /* @__PURE__ */ jsx78(
14777
+ return /* @__PURE__ */ jsx79(
14643
14778
  TextFieldBase,
14644
14779
  {
14645
- ...mergeProps17(textFieldProps, { onBlur, onFocus }),
14780
+ ...mergeProps18(textFieldProps, { onBlur, onFocus }),
14646
14781
  errorMsg,
14647
14782
  required,
14648
14783
  labelProps,
@@ -14655,11 +14790,11 @@ function TextField(props) {
14655
14790
  }
14656
14791
 
14657
14792
  // src/inputs/ToggleButton.tsx
14658
- import { useRef as useRef35, useState as useState27 } from "react";
14793
+ import { useRef as useRef35, useState as useState28 } from "react";
14659
14794
  import { useFocusRing as useFocusRing8, useHover as useHover14, usePress, useSwitch as useSwitch2, VisuallyHidden as VisuallyHidden6 } from "react-aria";
14660
14795
  import { useToggleState as useToggleState3 } from "react-stately";
14661
- import { trussProps as trussProps47 } from "@homebound/truss/runtime";
14662
- import { jsx as jsx79, jsxs as jsxs46 } from "react/jsx-runtime";
14796
+ import { trussProps as trussProps48 } from "@homebound/truss/runtime";
14797
+ import { jsx as jsx80, jsxs as jsxs47 } from "react/jsx-runtime";
14663
14798
  function ToggleButton(props) {
14664
14799
  const {
14665
14800
  selected: isSelected = false,
@@ -14670,7 +14805,7 @@ function ToggleButton(props) {
14670
14805
  __storyState,
14671
14806
  ...otherProps
14672
14807
  } = props;
14673
- const [asyncInProgress, setAsyncInProgress] = useState27(false);
14808
+ const [asyncInProgress, setAsyncInProgress] = useState28(false);
14674
14809
  const isDisabled = !!disabled || asyncInProgress;
14675
14810
  const ariaProps = {
14676
14811
  "aria-label": label,
@@ -14723,7 +14858,7 @@ function ToggleButton(props) {
14723
14858
  ...focusProps,
14724
14859
  ...hoverProps,
14725
14860
  ...pressProps,
14726
- ...trussProps47({
14861
+ ...trussProps48({
14727
14862
  ...{
14728
14863
  borderRadius: "br4",
14729
14864
  display: "dif",
@@ -14758,10 +14893,10 @@ function ToggleButton(props) {
14758
14893
  return maybeTooltip({
14759
14894
  title: tooltip,
14760
14895
  placement: "top",
14761
- children: /* @__PURE__ */ jsxs46("label", { ...labelAttrs, children: [
14762
- icon && /* @__PURE__ */ jsx79(Icon, { icon }),
14896
+ children: /* @__PURE__ */ jsxs47("label", { ...labelAttrs, children: [
14897
+ icon && /* @__PURE__ */ jsx80(Icon, { icon }),
14763
14898
  label,
14764
- /* @__PURE__ */ jsx79(VisuallyHidden6, { children: /* @__PURE__ */ jsx79("input", { ref, ...inputProps, ...tid.value }) })
14899
+ /* @__PURE__ */ jsx80(VisuallyHidden6, { children: /* @__PURE__ */ jsx80("input", { ref, ...inputProps, ...tid.value }) })
14765
14900
  ] })
14766
14901
  });
14767
14902
  }
@@ -14779,8 +14914,8 @@ var togglePressStyles = {
14779
14914
  import { useRef as useRef36 } from "react";
14780
14915
  import { useCheckboxGroup as useCheckboxGroup2, useCheckboxGroupItem as useCheckboxGroupItem2, useFocusRing as useFocusRing9, VisuallyHidden as VisuallyHidden7 } from "react-aria";
14781
14916
  import { useCheckboxGroupState as useCheckboxGroupState2 } from "react-stately";
14782
- import { trussProps as trussProps48, maybeCssVar as maybeCssVar28 } from "@homebound/truss/runtime";
14783
- import { jsx as jsx80, jsxs as jsxs47 } from "react/jsx-runtime";
14917
+ import { trussProps as trussProps49, maybeCssVar as maybeCssVar28 } from "@homebound/truss/runtime";
14918
+ import { jsx as jsx81, jsxs as jsxs48 } from "react/jsx-runtime";
14784
14919
  var __maybeInc9 = (inc) => {
14785
14920
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
14786
14921
  };
@@ -14811,7 +14946,7 @@ function ToggleChipGroup(props) {
14811
14946
  } = useCheckboxGroup2(props, state);
14812
14947
  const tid = useTestIds(props, "toggleChip");
14813
14948
  const labelSuffix = useLabelSuffix(required, false);
14814
- return /* @__PURE__ */ jsxs47("div", { ...groupProps, ...trussProps48({
14949
+ return /* @__PURE__ */ jsxs48("div", { ...groupProps, ...trussProps49({
14815
14950
  position: "relative",
14816
14951
  display: "df",
14817
14952
  flexDirection: "fdc",
@@ -14822,8 +14957,8 @@ function ToggleChipGroup(props) {
14822
14957
  justifyContent: "jcsb"
14823
14958
  } : {}
14824
14959
  }), children: [
14825
- /* @__PURE__ */ jsx80(Label, { label, ...labelProps, hidden: labelStyle === "hidden", inline: labelStyle !== "above", suffix: labelSuffix }),
14826
- /* @__PURE__ */ jsx80("div", { ...trussProps48({
14960
+ /* @__PURE__ */ jsx81(Label, { label, ...labelProps, hidden: labelStyle === "hidden", inline: labelStyle !== "above", suffix: labelSuffix }),
14961
+ /* @__PURE__ */ jsx81("div", { ...trussProps49({
14827
14962
  display: "df",
14828
14963
  gap: "gap1",
14829
14964
  flexWrap: "flexWrap_wrap",
@@ -14832,7 +14967,7 @@ function ToggleChipGroup(props) {
14832
14967
  "--width": maybeCssVar28(__maybeInc9(labelLeftFieldWidth))
14833
14968
  }]
14834
14969
  } : {}
14835
- }), children: options.map((o) => /* @__PURE__ */ jsx80(ToggleChip2, { value: o.value, groupState: state, selected: state.value.includes(o.value), label: o.label, disabled: o.disabled, readonly: o.readonly, startAdornment: o.startAdornment, xss, ...tid[o.value] }, o.value)) })
14970
+ }), children: options.map((o) => /* @__PURE__ */ jsx81(ToggleChip2, { value: o.value, groupState: state, selected: state.value.includes(o.value), label: o.label, disabled: o.disabled, readonly: o.readonly, startAdornment: o.startAdornment, xss, ...tid[o.value] }, o.value)) })
14836
14971
  ] });
14837
14972
  }
14838
14973
  function ToggleChip2(props) {
@@ -14888,7 +15023,7 @@ function ToggleChip2(props) {
14888
15023
  return maybeTooltip({
14889
15024
  title: tooltip,
14890
15025
  placement: "top",
14891
- children: /* @__PURE__ */ jsxs47("label", { ...trussProps48({
15026
+ children: /* @__PURE__ */ jsxs48("label", { ...trussProps49({
14892
15027
  ...{
14893
15028
  position: "relative",
14894
15029
  display: "dif",
@@ -14909,7 +15044,7 @@ function ToggleChip2(props) {
14909
15044
  boxShadow: "bshFocus"
14910
15045
  } : {}
14911
15046
  }), "data-selected": isSelected, "data-disabled": isDisabled, "aria-disabled": isDisabled, ...others, children: [
14912
- /* @__PURE__ */ jsx80(VisuallyHidden7, { children: /* @__PURE__ */ jsx80("input", { ...inputProps, ...focusProps }) }),
15047
+ /* @__PURE__ */ jsx81(VisuallyHidden7, { children: /* @__PURE__ */ jsx81("input", { ...inputProps, ...focusProps }) }),
14913
15048
  startAdornment,
14914
15049
  label
14915
15050
  ] })
@@ -14917,12 +15052,12 @@ function ToggleChip2(props) {
14917
15052
  }
14918
15053
 
14919
15054
  // src/components/Table/components/SelectToggle.tsx
14920
- import { jsx as jsx81 } from "react/jsx-runtime";
15055
+ import { jsx as jsx82 } from "react/jsx-runtime";
14921
15056
  function SelectToggle({ id, disabled }) {
14922
15057
  const { tableState } = useContext15(TableStateContext);
14923
15058
  const state = useComputed(() => tableState.getSelected(id), [tableState]);
14924
15059
  const selected = state === "checked" ? true : state === "unchecked" ? false : "indeterminate";
14925
- return /* @__PURE__ */ jsx81(
15060
+ return /* @__PURE__ */ jsx82(
14926
15061
  Checkbox,
14927
15062
  {
14928
15063
  checkboxOnly: true,
@@ -14935,7 +15070,7 @@ function SelectToggle({ id, disabled }) {
14935
15070
  }
14936
15071
 
14937
15072
  // src/components/Table/utils/columns.tsx
14938
- import { jsx as jsx82 } from "react/jsx-runtime";
15073
+ import { jsx as jsx83 } from "react/jsx-runtime";
14939
15074
  function column(columnDef) {
14940
15075
  return {
14941
15076
  canHide: true,
@@ -14988,7 +15123,7 @@ function selectColumn(columnDef) {
14988
15123
  return (data, {
14989
15124
  row
14990
15125
  }) => ({
14991
- content: /* @__PURE__ */ jsx82(SelectToggle, { id: row.id, disabled: row.selectable === false })
15126
+ content: /* @__PURE__ */ jsx83(SelectToggle, { id: row.id, disabled: row.selectable === false })
14992
15127
  });
14993
15128
  });
14994
15129
  }
@@ -15012,7 +15147,7 @@ function collapseColumn(columnDef) {
15012
15147
  row,
15013
15148
  level
15014
15149
  }) => ({
15015
- content: /* @__PURE__ */ jsx82(CollapseToggle, { row, compact: level > 0 })
15150
+ content: /* @__PURE__ */ jsx83(CollapseToggle, { row, compact: level > 0 })
15016
15151
  });
15017
15152
  });
15018
15153
  }
@@ -15036,7 +15171,7 @@ function pinColumn(columnDef) {
15036
15171
  return (data, {
15037
15172
  row
15038
15173
  }) => ({
15039
- content: /* @__PURE__ */ jsx82(PinToggle, { rowId: row.id })
15174
+ content: /* @__PURE__ */ jsx83(PinToggle, { rowId: row.id })
15040
15175
  });
15041
15176
  });
15042
15177
  }
@@ -15294,10 +15429,10 @@ function dragHandleColumn(columnDef) {
15294
15429
  onDragOver
15295
15430
  } = dragData;
15296
15431
  return {
15297
- content: row.draggable ? /* @__PURE__ */ jsx82("div", { draggable: row.draggable, onDragStart: (evt) => {
15432
+ content: row.draggable ? /* @__PURE__ */ jsx83("div", { draggable: row.draggable, onDragStart: (evt) => {
15298
15433
  ref.current && evt.dataTransfer.setDragImage(ref.current, 0, 0);
15299
15434
  return onDragStart?.(row, evt);
15300
- }, onDragEnd: (evt) => onDragEnd?.(row, evt), onDrop: (evt) => onDrop?.(row, evt), onDragEnter: (evt) => onDragEnter?.(row, evt), onDragOver: (evt) => onDragOver?.(row, evt), className: "mta mba mra mla cursorPointer", children: /* @__PURE__ */ jsx82(Icon, { icon: "drag" }) }) : void 0
15435
+ }, onDragEnd: (evt) => onDragEnd?.(row, evt), onDrop: (evt) => onDrop?.(row, evt), onDragEnter: (evt) => onDragEnter?.(row, evt), onDragOver: (evt) => onDragOver?.(row, evt), className: "mta mba mra mla cursorPointer", children: /* @__PURE__ */ jsx83(Icon, { icon: "drag" }) }) : void 0
15301
15436
  };
15302
15437
  };
15303
15438
  });
@@ -15361,7 +15496,7 @@ function shouldSkipScrollTo(index, virtuosoRangeRef) {
15361
15496
 
15362
15497
  // src/components/Table/GridTableApi.ts
15363
15498
  function useGridTableApi() {
15364
- return useMemo23(() => new GridTableApiImpl(), []);
15499
+ return useMemo24(() => new GridTableApiImpl(), []);
15365
15500
  }
15366
15501
  var GridTableApiImpl = class {
15367
15502
  // This is public to GridTable but not exported outside of Beam
@@ -15534,10 +15669,10 @@ function maybeApply(maybeFn) {
15534
15669
  }
15535
15670
 
15536
15671
  // src/components/Table/hooks/useColumnResizeHandlers.ts
15537
- import { useCallback as useCallback13, useRef as useRef37 } from "react";
15672
+ import { useCallback as useCallback14, useRef as useRef37 } from "react";
15538
15673
  function useColumnResizeHandlers(columns, columnSizes, tableWidth, setResizedWidth, setResizedWidths) {
15539
15674
  const hasLockedColumnsRef = useRef37(false);
15540
- const distributeAdjustment = useCallback13(
15675
+ const distributeAdjustment = useCallback14(
15541
15676
  (rightColumns, totalRightWidth, adjustment) => {
15542
15677
  const updates = {};
15543
15678
  let remainingAdjustment = adjustment;
@@ -15552,7 +15687,7 @@ function useColumnResizeHandlers(columns, columnSizes, tableWidth, setResizedWid
15552
15687
  },
15553
15688
  []
15554
15689
  );
15555
- const calculateResizeUpdates = useCallback13(
15690
+ const calculateResizeUpdates = useCallback14(
15556
15691
  (columnId, newWidth, columnIndex) => {
15557
15692
  if (!tableWidth || !columnSizes || columnSizes.length === 0) {
15558
15693
  return null;
@@ -15598,7 +15733,7 @@ function useColumnResizeHandlers(columns, columnSizes, tableWidth, setResizedWid
15598
15733
  },
15599
15734
  [tableWidth, columnSizes, columns, distributeAdjustment]
15600
15735
  );
15601
- const calculatePreviewWidth = useCallback13(
15736
+ const calculatePreviewWidth = useCallback14(
15602
15737
  (columnId, newWidth, columnIndex) => {
15603
15738
  const result = calculateResizeUpdates(columnId, newWidth, columnIndex);
15604
15739
  if (!result) {
@@ -15608,7 +15743,7 @@ function useColumnResizeHandlers(columns, columnSizes, tableWidth, setResizedWid
15608
15743
  },
15609
15744
  [calculateResizeUpdates]
15610
15745
  );
15611
- const handleColumnResize = useCallback13(
15746
+ const handleColumnResize = useCallback14(
15612
15747
  (columnId, newWidth, columnIndex) => {
15613
15748
  const result = calculateResizeUpdates(columnId, newWidth, columnIndex);
15614
15749
  if (!result) {
@@ -15645,10 +15780,10 @@ function useColumnResizeHandlers(columns, columnSizes, tableWidth, setResizedWid
15645
15780
  }
15646
15781
 
15647
15782
  // src/components/Table/hooks/useScrollStorage.ts
15648
- import { useMemo as useMemo24 } from "react";
15783
+ import { useMemo as useMemo25 } from "react";
15649
15784
  function useScrollStorage(tableId, enabled = true) {
15650
15785
  const storageKey = `scrollPosition_${window.location.pathname}${window.location.search}_${tableId}`;
15651
- return useMemo24(
15786
+ return useMemo25(
15652
15787
  () => ({
15653
15788
  getScrollIndex: () => {
15654
15789
  if (!enabled) return void 0;
@@ -15665,13 +15800,13 @@ function useScrollStorage(tableId, enabled = true) {
15665
15800
 
15666
15801
  // src/components/Table/hooks/useSetupColumnSizes.ts
15667
15802
  import { useResizeObserver } from "@react-aria/utils";
15668
- import { useCallback as useCallback15, useEffect as useEffect18, useRef as useRef38, useState as useState29 } from "react";
15803
+ import { useCallback as useCallback16, useEffect as useEffect18, useRef as useRef38, useState as useState30 } from "react";
15669
15804
 
15670
15805
  // src/components/Table/hooks/useColumnResizing.ts
15671
- import { useCallback as useCallback14, useEffect as useEffect17, useState as useState28 } from "react";
15806
+ import { useCallback as useCallback15, useEffect as useEffect17, useState as useState29 } from "react";
15672
15807
  import { useDebouncedCallback as useDebouncedCallback3 } from "use-debounce";
15673
15808
  function useColumnResizing(storageKey) {
15674
- const [resizedWidths, setResizedWidths] = useState28(() => {
15809
+ const [resizedWidths, setResizedWidths] = useState29(() => {
15675
15810
  if (!storageKey) return {};
15676
15811
  try {
15677
15812
  const stored = sessionStorage.getItem(`columnWidths_${storageKey}`);
@@ -15691,13 +15826,13 @@ function useColumnResizing(storageKey) {
15691
15826
  useEffect17(() => {
15692
15827
  persistToStorage(resizedWidths);
15693
15828
  }, [resizedWidths, persistToStorage]);
15694
- const setResizedWidth = useCallback14((columnId, width2) => {
15829
+ const setResizedWidth = useCallback15((columnId, width2) => {
15695
15830
  setResizedWidths((prev) => ({
15696
15831
  ...prev,
15697
15832
  [columnId]: width2
15698
15833
  }));
15699
15834
  }, []);
15700
- const batchSetResizedWidths = useCallback14((widths2) => {
15835
+ const batchSetResizedWidths = useCallback15((widths2) => {
15701
15836
  if (typeof widths2 === "function") {
15702
15837
  setResizedWidths(widths2);
15703
15838
  } else {
@@ -15707,7 +15842,7 @@ function useColumnResizing(storageKey) {
15707
15842
  }));
15708
15843
  }
15709
15844
  }, []);
15710
- const resetColumnWidths = useCallback14(() => {
15845
+ const resetColumnWidths = useCallback15(() => {
15711
15846
  setResizedWidths({});
15712
15847
  }, []);
15713
15848
  return {
@@ -15725,13 +15860,13 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds, visib
15725
15860
  disableColumnResizing ? void 0 : visibleColumnsStorageKey
15726
15861
  );
15727
15862
  const calculateImmediately = useRef38(true);
15728
- const [tableWidth, setTableWidth] = useState29();
15729
- const [contentWidth, setContentWidth] = useState29();
15730
- const [columnSizes, setColumnSizes] = useState29(
15863
+ const [tableWidth, setTableWidth] = useState30();
15864
+ const [contentWidth, setContentWidth] = useState30();
15865
+ const [columnSizes, setColumnSizes] = useState30(
15731
15866
  () => calcColumnLayout(columns, void 0, style.minWidthPx, expandedColumnIds, resizedWidths, inDocumentScrollLayout).columnSizes
15732
15867
  );
15733
15868
  const prevTableWidthRef = useRef38(tableWidth);
15734
- const applyColumnLayout = useCallback15(
15869
+ const applyColumnLayout = useCallback16(
15735
15870
  (probeWidth) => {
15736
15871
  const layout = calcColumnLayout(
15737
15872
  columns,
@@ -15782,7 +15917,7 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds, visib
15782
15917
  [columns, resizedWidths, applyColumnLayout]
15783
15918
  );
15784
15919
  const applyColumnLayoutDebounced = useDebouncedCallback4(applyColumnLayout, 100);
15785
- const onResize = useCallback15(
15920
+ const onResize = useCallback16(
15786
15921
  () => {
15787
15922
  const target = resizeRef.current;
15788
15923
  if (target && target.clientWidth !== tableWidth) {
@@ -15811,10 +15946,10 @@ function useSetupColumnSizes(style, columns, resizeRef, expandedColumnIds, visib
15811
15946
  }
15812
15947
 
15813
15948
  // src/hooks/useRenderCount.ts
15814
- import { useCallback as useCallback16, useRef as useRef39 } from "react";
15949
+ import { useCallback as useCallback17, useRef as useRef39 } from "react";
15815
15950
  function useRenderCount() {
15816
15951
  const ref = useRef39(/* @__PURE__ */ new Map());
15817
- const getCount = useCallback16((id) => {
15952
+ const getCount = useCallback17((id) => {
15818
15953
  const count = ref.current.get(id) || 1;
15819
15954
  ref.current.set(id, count + 1);
15820
15955
  return { "data-render": count };
@@ -15824,20 +15959,20 @@ function useRenderCount() {
15824
15959
 
15825
15960
  // src/layouts/DocumentScrollLayoutContext.tsx
15826
15961
  import { useResizeObserver as useResizeObserver2 } from "@react-aria/utils";
15827
- import { createContext as createContext6, useCallback as useCallback18, useContext as useContext16, useLayoutEffect as useLayoutEffect4, useRef as useRef40, useState as useState31 } from "react";
15828
- import { mergeProps as mergeProps18 } from "@homebound/truss/runtime";
15962
+ import { createContext as createContext6, useCallback as useCallback19, useContext as useContext16, useLayoutEffect as useLayoutEffect4, useRef as useRef40, useState as useState32 } from "react";
15963
+ import { mergeProps as mergeProps19 } from "@homebound/truss/runtime";
15829
15964
 
15830
15965
  // src/layouts/DocumentScrollToTopButton.tsx
15831
- import { useCallback as useCallback17, useEffect as useEffect19, useState as useState30 } from "react";
15832
- import { trussProps as trussProps49, maybeCssVar as maybeCssVar29 } from "@homebound/truss/runtime";
15833
- import { jsx as jsx83 } from "react/jsx-runtime";
15966
+ import { useCallback as useCallback18, useEffect as useEffect19, useState as useState31 } from "react";
15967
+ import { trussProps as trussProps50, maybeCssVar as maybeCssVar29 } from "@homebound/truss/runtime";
15968
+ import { jsx as jsx84 } from "react/jsx-runtime";
15834
15969
  function DocumentScrollToTopButton({
15835
15970
  viewportHeight
15836
15971
  }) {
15837
- const [visible, setVisible] = useState30(false);
15972
+ const [visible, setVisible] = useState31(false);
15838
15973
  const tid = useTestIds({}, "documentScrollToTop");
15839
15974
  const scrollToTopOffsetPx = 20;
15840
- const syncVisibility = useCallback17(() => {
15975
+ const syncVisibility = useCallback18(() => {
15841
15976
  if (viewportHeight <= 0) return;
15842
15977
  setVisible(window.scrollY > viewportHeight);
15843
15978
  }, [viewportHeight]);
@@ -15848,14 +15983,14 @@ function DocumentScrollToTopButton({
15848
15983
  });
15849
15984
  return () => window.removeEventListener("scroll", syncVisibility);
15850
15985
  }, [syncVisibility]);
15851
- const scrollToTop = useCallback17(() => {
15986
+ const scrollToTop = useCallback18(() => {
15852
15987
  window.scrollTo({
15853
15988
  top: 0
15854
15989
  });
15855
15990
  }, []);
15856
- return /* @__PURE__ */ jsx83("div", { ...tid.wrapper, "aria-hidden": !visible, ...!visible ? {
15991
+ return /* @__PURE__ */ jsx84("div", { ...tid.wrapper, "aria-hidden": !visible, ...!visible ? {
15857
15992
  inert: ""
15858
- } : {}, ...trussProps49({
15993
+ } : {}, ...trussProps50({
15859
15994
  ...{
15860
15995
  position: "fixed",
15861
15996
  bottom: ["bottom_var", {
@@ -15879,18 +16014,18 @@ function DocumentScrollToTopButton({
15879
16014
  }],
15880
16015
  pointerEvents: "pointerEvents_none"
15881
16016
  }
15882
- }), children: /* @__PURE__ */ jsx83(ContrastScope, { children: /* @__PURE__ */ jsx83(IconButton, { icon: "arrowUp", disabled: !visible, variant: "outline", label: "Scroll to top", onClick: scrollToTop, ...tid }) }) });
16017
+ }), children: /* @__PURE__ */ jsx84(ContrastScope, { children: /* @__PURE__ */ jsx84(IconButton, { icon: "arrowUp", disabled: !visible, variant: "outline", label: "Scroll to top", onClick: scrollToTop, ...tid }) }) });
15883
16018
  }
15884
16019
 
15885
16020
  // src/layouts/DocumentScrollLayoutContext.tsx
15886
- import { Fragment as Fragment20, jsx as jsx84, jsxs as jsxs48 } from "react/jsx-runtime";
16021
+ import { Fragment as Fragment20, jsx as jsx85, jsxs as jsxs49 } from "react/jsx-runtime";
15887
16022
  var DocumentScrollLayoutContext = createContext6(false);
15888
16023
  function DocumentScrollLayoutProvider({
15889
16024
  children
15890
16025
  }) {
15891
16026
  const inDocumentScrollLayout = useContext16(DocumentScrollLayoutContext);
15892
- if (inDocumentScrollLayout) return /* @__PURE__ */ jsx84(Fragment20, { children });
15893
- return /* @__PURE__ */ jsx84(DocumentScrollLayoutContext.Provider, { value: true, children: /* @__PURE__ */ jsx84(DocumentScrollLayoutViewportRoot, { children }) });
16027
+ if (inDocumentScrollLayout) return /* @__PURE__ */ jsx85(Fragment20, { children });
16028
+ return /* @__PURE__ */ jsx85(DocumentScrollLayoutContext.Provider, { value: true, children: /* @__PURE__ */ jsx85(DocumentScrollLayoutViewportRoot, { children }) });
15894
16029
  }
15895
16030
  function useDocumentScrollLayout() {
15896
16031
  return useContext16(DocumentScrollLayoutContext);
@@ -15899,11 +16034,11 @@ function DocumentScrollLayoutViewportRoot({
15899
16034
  children
15900
16035
  }) {
15901
16036
  const docElementRef = useRef40(typeof document !== "undefined" ? document.documentElement : null);
15902
- const [viewportSize, setViewportSize] = useState31({
16037
+ const [viewportSize, setViewportSize] = useState32({
15903
16038
  width: 0,
15904
16039
  height: 0
15905
16040
  });
15906
- const syncViewportSize = useCallback18(() => {
16041
+ const syncViewportSize = useCallback19(() => {
15907
16042
  const el = docElementRef.current;
15908
16043
  if (!el) return;
15909
16044
  const width2 = el.clientWidth;
@@ -15929,20 +16064,20 @@ function DocumentScrollLayoutViewportRoot({
15929
16064
  }
15930
16065
  return (
15931
16066
  // `display: contents` keeps vars inheritable without adding a layout box.
15932
- /* @__PURE__ */ jsxs48("div", { ...mergeProps18(void 0, Object.keys(style).length > 0 ? style : void 0, {
16067
+ /* @__PURE__ */ jsxs49("div", { ...mergeProps19(void 0, Object.keys(style).length > 0 ? style : void 0, {
15933
16068
  display: "display_contents"
15934
16069
  }), children: [
15935
16070
  children,
15936
- /* @__PURE__ */ jsx84(DocumentScrollToTopButton, { viewportHeight: viewportSize.height })
16071
+ /* @__PURE__ */ jsx85(DocumentScrollToTopButton, { viewportHeight: viewportSize.height })
15937
16072
  ] })
15938
16073
  );
15939
16074
  }
15940
16075
 
15941
16076
  // src/components/Table/components/TableCard.tsx
15942
- import { useMemo as useMemo25 } from "react";
16077
+ import { useMemo as useMemo26 } from "react";
15943
16078
  import { Link as Link4 } from "react-router-dom";
15944
- import { trussProps as trussProps50, mergeProps as mergeProps19, maybeCssVar as maybeCssVar30 } from "@homebound/truss/runtime";
15945
- import { jsx as jsx85, jsxs as jsxs49 } from "react/jsx-runtime";
16079
+ import { trussProps as trussProps51, mergeProps as mergeProps20, maybeCssVar as maybeCssVar30 } from "@homebound/truss/runtime";
16080
+ import { jsx as jsx86, jsxs as jsxs50 } from "react/jsx-runtime";
15946
16081
  var __maybeInc10 = (inc) => {
15947
16082
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
15948
16083
  };
@@ -15990,16 +16125,16 @@ function TableCard(props) {
15990
16125
  }
15991
16126
  }
15992
16127
  if (!title) return null;
15993
- const card = /* @__PURE__ */ jsx85(TableCardView, { ...tid, imgSrc: rs.row.imgSrc ?? "", title, eyebrow, badge, status, data: dataBlocks, progress });
16128
+ const card = /* @__PURE__ */ jsx86(TableCardView, { ...tid, imgSrc: rs.row.imgSrc ?? "", title, eyebrow, badge, status, data: dataBlocks, progress });
15994
16129
  const to = rowStyle?.rowLink?.(rs.row);
15995
16130
  if (to) {
15996
- return /* @__PURE__ */ jsx85(Link4, { to, ...mergeProps19(navLink, void 0, {
16131
+ return /* @__PURE__ */ jsx86(Link4, { to, ...mergeProps20(navLink, void 0, {
15997
16132
  textDecoration: "tdn",
15998
16133
  color: "color_unset"
15999
16134
  }), children: card });
16000
16135
  }
16001
16136
  if (rowStyle?.onClick) {
16002
- return /* @__PURE__ */ jsx85("button", { onClick: () => rowStyle.onClick(rs.row, api), className: "cursorPointer", children: card });
16137
+ return /* @__PURE__ */ jsx86("button", { onClick: () => rowStyle.onClick(rs.row, api), className: "cursorPointer", children: card });
16003
16138
  }
16004
16139
  return card;
16005
16140
  }
@@ -16014,8 +16149,8 @@ function TableCardView(props) {
16014
16149
  progress
16015
16150
  } = props;
16016
16151
  const tid = useTestIds(props, "tableCardView");
16017
- const progressValue = useMemo25(() => progress !== void 0 ? clampProgress(progress) : 0, [progress]);
16018
- return /* @__PURE__ */ jsxs49("div", { ...trussProps50({
16152
+ const progressValue = useMemo26(() => progress !== void 0 ? clampProgress(progress) : 0, [progress]);
16153
+ return /* @__PURE__ */ jsxs50("div", { ...trussProps51({
16019
16154
  paddingTop: "pt3",
16020
16155
  paddingBottom: "pb3",
16021
16156
  paddingRight: "pr3",
@@ -16030,36 +16165,36 @@ function TableCardView(props) {
16030
16165
  flexDirection: "fdc",
16031
16166
  gap: "gap2"
16032
16167
  }), ...tid, children: [
16033
- /* @__PURE__ */ jsxs49("div", { className: "relative", children: [
16034
- /* @__PURE__ */ jsx85("img", { className: "h_184px w100 objectFit_cover", src: imgSrc, alt: title, ...tid.image }),
16035
- status && /* @__PURE__ */ jsx85("div", { className: "absolute top1 left1", ...tid.status, children: /* @__PURE__ */ jsx85(Tag, { ...status }) })
16168
+ /* @__PURE__ */ jsxs50("div", { className: "relative", children: [
16169
+ /* @__PURE__ */ jsx86("img", { className: "h_184px w100 objectFit_cover", src: imgSrc, alt: title, ...tid.image }),
16170
+ status && /* @__PURE__ */ jsx86("div", { className: "absolute top1 left1", ...tid.status, children: /* @__PURE__ */ jsx86(Tag, { ...status }) })
16036
16171
  ] }),
16037
- /* @__PURE__ */ jsxs49("div", { className: "df fdc gap2", children: [
16038
- /* @__PURE__ */ jsxs49("div", { children: [
16039
- eyebrow && /* @__PURE__ */ jsx85("p", { className: "fw4 fz_14px lh_20px", ...tid.eyebrow, children: eyebrow }),
16040
- title && /* @__PURE__ */ jsxs49("div", { className: "dif w100 jcsb aic", children: [
16041
- /* @__PURE__ */ jsxs49("h4", { className: "fwb fz_20px lh_28px", ...tid.title, children: [
16172
+ /* @__PURE__ */ jsxs50("div", { className: "df fdc gap2", children: [
16173
+ /* @__PURE__ */ jsxs50("div", { children: [
16174
+ eyebrow && /* @__PURE__ */ jsx86("p", { className: "fw4 fz_14px lh_20px", ...tid.eyebrow, children: eyebrow }),
16175
+ title && /* @__PURE__ */ jsxs50("div", { className: "dif w100 jcsb aic", children: [
16176
+ /* @__PURE__ */ jsxs50("h4", { className: "fwb fz_20px lh_28px", ...tid.title, children: [
16042
16177
  title,
16043
16178
  " "
16044
16179
  ] }),
16045
- badge && /* @__PURE__ */ jsx85("span", { className: "fw4 fz_14px lh_20px wsnw", ...tid.badge, children: badge })
16180
+ badge && /* @__PURE__ */ jsx86("span", { className: "fw4 fz_14px lh_20px wsnw", ...tid.badge, children: badge })
16046
16181
  ] })
16047
16182
  ] }),
16048
- data && data?.length > 0 && /* @__PURE__ */ jsx85("dl", { className: "dg gtc_repeat_2_minmax_0_1fr fw4 fz_14px lh_20px", children: data.map((d, idx) => /* @__PURE__ */ jsxs49("div", { ...trussProps50({
16183
+ data && data?.length > 0 && /* @__PURE__ */ jsx86("dl", { className: "dg gtc_repeat_2_minmax_0_1fr fw4 fz_14px lh_20px", children: data.map((d, idx) => /* @__PURE__ */ jsxs50("div", { ...trussProps51({
16049
16184
  display: "df",
16050
16185
  gap: "gap_4px",
16051
16186
  gridColumn: ["gc_var", {
16052
16187
  "--gridColumn": maybeCssVar30(idx % 2 + 1)
16053
16188
  }]
16054
16189
  }), ...tid[defaultTestId(d.label)], children: [
16055
- /* @__PURE__ */ jsxs49("dt", { children: [
16190
+ /* @__PURE__ */ jsxs50("dt", { children: [
16056
16191
  d.label,
16057
16192
  ":"
16058
16193
  ] }),
16059
- /* @__PURE__ */ jsx85("dd", { children: d.value })
16194
+ /* @__PURE__ */ jsx86("dd", { children: d.value })
16060
16195
  ] }, d.label)) }),
16061
- progress !== void 0 && /* @__PURE__ */ jsx85("div", { className: "df fdc gap1", children: /* @__PURE__ */ jsxs49("div", { className: "df aic gap1 fs_10px lh_14px", children: [
16062
- /* @__PURE__ */ jsx85("div", { className: "w25 h_8px br4 bgGray200", children: /* @__PURE__ */ jsx85("div", { ...trussProps50({
16196
+ progress !== void 0 && /* @__PURE__ */ jsx86("div", { className: "df fdc gap1", children: /* @__PURE__ */ jsxs50("div", { className: "df aic gap1 fs_10px lh_14px", children: [
16197
+ /* @__PURE__ */ jsx86("div", { className: "w25 h_8px br4 bgGray200", children: /* @__PURE__ */ jsx86("div", { ...trussProps51({
16063
16198
  height: "h100",
16064
16199
  borderRadius: "br4",
16065
16200
  backgroundColor: "bgBlue500",
@@ -16067,7 +16202,7 @@ function TableCardView(props) {
16067
16202
  "--width": maybeCssVar30(__maybeInc10(`${progressValue}%`))
16068
16203
  }]
16069
16204
  }) }) }),
16070
- /* @__PURE__ */ jsxs49("span", { ...tid.progressValue, children: [
16205
+ /* @__PURE__ */ jsxs50("span", { ...tid.progressValue, children: [
16071
16206
  progressValue,
16072
16207
  "%"
16073
16208
  ] })
@@ -16083,8 +16218,8 @@ function clampProgress(value) {
16083
16218
  }
16084
16219
 
16085
16220
  // src/components/Table/GridTable.tsx
16086
- import { trussProps as trussProps51, mergeProps as mergeProps20, maybeCssVar as maybeCssVar31 } from "@homebound/truss/runtime";
16087
- import { jsx as jsx86, jsxs as jsxs50 } from "react/jsx-runtime";
16221
+ import { trussProps as trussProps52, mergeProps as mergeProps21, maybeCssVar as maybeCssVar31 } from "@homebound/truss/runtime";
16222
+ import { jsx as jsx87, jsxs as jsxs51 } from "react/jsx-runtime";
16088
16223
  import { createElement as createElement2 } from "react";
16089
16224
  var __maybeInc11 = (inc) => {
16090
16225
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -16135,7 +16270,7 @@ function GridTable(props) {
16135
16270
  columnGutter = false
16136
16271
  } = props;
16137
16272
  const inDocumentScrollLayout = useDocumentScrollLayout();
16138
- const columnsWithIds = useMemo26(() => {
16273
+ const columnsWithIds = useMemo27(() => {
16139
16274
  const columns2 = columnGutter && inDocumentScrollLayout ? withColumnGutters(_columns) : _columns;
16140
16275
  return assignDefaultColumnIds(columns2);
16141
16276
  }, [_columns, columnGutter, inDocumentScrollLayout]);
@@ -16143,7 +16278,7 @@ function GridTable(props) {
16143
16278
  const virtuosoRangeRef = useRef41(null);
16144
16279
  const resizeRef = useRef41(null);
16145
16280
  const tableContainerRef = useRef41(null);
16146
- const api = useMemo26(
16281
+ const api = useMemo27(
16147
16282
  () => {
16148
16283
  const api2 = props.api ?? new GridTableApiImpl();
16149
16284
  api2.init(persistCollapse, virtuosoRef, virtuosoRangeRef);
@@ -16156,7 +16291,7 @@ function GridTable(props) {
16156
16291
  // eslint-disable-next-line react-hooks/exhaustive-deps
16157
16292
  [props.api]
16158
16293
  );
16159
- const [draggedRow, _setDraggedRow] = useState32(void 0);
16294
+ const [draggedRow, _setDraggedRow] = useState33(void 0);
16160
16295
  const draggedRowRef = useRef41(draggedRow);
16161
16296
  const setDraggedRow = (row) => {
16162
16297
  draggedRowRef.current = row;
@@ -16275,7 +16410,7 @@ function GridTable(props) {
16275
16410
  };
16276
16411
  const [tableHeadRows, visibleDataRows, keptSelectedRows, pinnedRows, tooManyClientSideRows] = useComputed(() => {
16277
16412
  if (as === "card") {
16278
- const cardElements = tableState.visibleRows.filter((rs) => ![HEADER, EXPANDABLE_HEADER, TOTALS, KEPT_GROUP].includes(rs.kind)).map((rs) => /* @__PURE__ */ jsx86(TableCard, { rs, columns, rowStyle: rowStyles?.[rs.row.kind], api: tableState.api }, rs.key));
16413
+ const cardElements = tableState.visibleRows.filter((rs) => ![HEADER, EXPANDABLE_HEADER, TOTALS, KEPT_GROUP].includes(rs.kind)).map((rs) => /* @__PURE__ */ jsx87(TableCard, { rs, columns, rowStyle: rowStyles?.[rs.row.kind], api: tableState.api }, rs.key));
16279
16414
  return [[], cardElements, [], [], false];
16280
16415
  }
16281
16416
  const headerRows = [];
@@ -16287,7 +16422,7 @@ function GridTable(props) {
16287
16422
  const pinnedIds = new Set(pinnedRowStates.map((rs) => rs.row.id));
16288
16423
  const visibleRows = tableState.visibleRows.filter((rs) => !pinnedIds.has(rs.row.id));
16289
16424
  const hasExpandableHeader = visibleRows.some((rs) => rs.row.id === EXPANDABLE_HEADER);
16290
- const makeRow = (rs, isFirstHeadRow, isFirstBodyRow, isLastBodyRow) => /* @__PURE__ */ jsx86(Row, { onDragStart, onDragOver, onDragEnd, onDrop, onDragEnter, ...{
16425
+ const makeRow = (rs, isFirstHeadRow, isFirstBodyRow, isLastBodyRow) => /* @__PURE__ */ jsx87(Row, { onDragStart, onDragOver, onDragEnd, onDrop, onDragEnter, ...{
16291
16426
  as,
16292
16427
  rs,
16293
16428
  style,
@@ -16349,7 +16484,7 @@ function GridTable(props) {
16349
16484
  const borderless = style?.presentationSettings?.borderless;
16350
16485
  const typeScale = style?.presentationSettings?.typeScale;
16351
16486
  const borderOnHover = style?.presentationSettings?.borderOnHover;
16352
- const fieldProps = useMemo26(() => ({
16487
+ const fieldProps = useMemo27(() => ({
16353
16488
  labelStyle: "hidden",
16354
16489
  numberAlignment: "right",
16355
16490
  compact: true,
@@ -16366,11 +16501,11 @@ function GridTable(props) {
16366
16501
  } : {}
16367
16502
  }), [borderOnHover, borderless, typeScale]);
16368
16503
  const _as = as === "virtual" && runningInJest ? "div" : as;
16369
- const rowStateContext = useMemo26(() => ({
16504
+ const rowStateContext = useMemo27(() => ({
16370
16505
  tableState,
16371
16506
  tableContainerRef
16372
16507
  }), [tableState, tableContainerRef]);
16373
- const tableStyle = useMemo26(() => {
16508
+ const tableStyle = useMemo27(() => {
16374
16509
  if (!inDocumentScrollLayout || contentWidth === void 0 || tableWidth === void 0) return style;
16375
16510
  const minWidthPx = Math.max(style.minWidthPx ?? 0, contentWidth);
16376
16511
  if (minWidthPx === style.minWidthPx) return style;
@@ -16379,9 +16514,9 @@ function GridTable(props) {
16379
16514
  minWidthPx
16380
16515
  };
16381
16516
  }, [contentWidth, inDocumentScrollLayout, style, tableWidth]);
16382
- return /* @__PURE__ */ jsx86(TableStateContext.Provider, { value: rowStateContext, children: /* @__PURE__ */ jsxs50(PresentationProvider, { fieldProps, wrap: style?.presentationSettings?.wrap, children: [
16383
- /* @__PURE__ */ jsx86("div", { ref: resizeRef, ...trussProps51(getTableRefWidthStyles(as === "virtual", inDocumentScrollLayout)) }),
16384
- as === "card" ? /* @__PURE__ */ jsx86(CardView, { cardRows: visibleDataRows, id, virtuosoRangeRef, infiniteScroll, persistScrollPosition }) : renders[_as](tableStyle, id, columns, visibleDataRows, keptSelectedRows, pinnedRows, firstRowMessage, stickyHeader, xss, virtuosoRef, virtuosoRangeRef, tableHeadRows, stickyOffset, infiniteScroll, tableContainerRef, persistScrollPosition)
16517
+ return /* @__PURE__ */ jsx87(TableStateContext.Provider, { value: rowStateContext, children: /* @__PURE__ */ jsxs51(PresentationProvider, { fieldProps, wrap: style?.presentationSettings?.wrap, children: [
16518
+ /* @__PURE__ */ jsx87("div", { ref: resizeRef, ...trussProps52(getTableRefWidthStyles(as === "virtual", inDocumentScrollLayout)) }),
16519
+ as === "card" ? /* @__PURE__ */ jsx87(CardView, { cardRows: visibleDataRows, id, virtuosoRangeRef, infiniteScroll, persistScrollPosition }) : renders[_as](tableStyle, id, columns, visibleDataRows, keptSelectedRows, pinnedRows, firstRowMessage, stickyHeader, xss, virtuosoRef, virtuosoRangeRef, tableHeadRows, stickyOffset, infiniteScroll, tableContainerRef, persistScrollPosition)
16385
16520
  ] }) });
16386
16521
  }
16387
16522
  var renders = {
@@ -16390,7 +16525,7 @@ var renders = {
16390
16525
  virtual: renderVirtual
16391
16526
  };
16392
16527
  function renderDiv(style, id, columns, visibleDataRows, keptSelectedRows, pinnedRows, firstRowMessage, stickyHeader, xss, _virtuosoRef, _virtuosoRangeRef, tableHeadRows, stickyOffset, _infiniteScroll, tableContainerRef, _persistScrollPosition) {
16393
- return /* @__PURE__ */ jsxs50("div", { ref: tableContainerRef, ...trussProps51({
16528
+ return /* @__PURE__ */ jsxs51("div", { ref: tableContainerRef, ...trussProps52({
16394
16529
  // Use `fit-content` to ensure the width of the table takes up the full width of its content.
16395
16530
  // Otherwise, the table's width would be that of its container, which may not be as wide as the table itself.
16396
16531
  // In cases where we have sticky columns on a very wide table, then the container which the columns "stick" to (which is the table),
@@ -16406,7 +16541,7 @@ function renderDiv(style, id, columns, visibleDataRows, keptSelectedRows, pinned
16406
16541
  } : {},
16407
16542
  ...xss
16408
16543
  }), "data-testid": id, children: [
16409
- /* @__PURE__ */ jsxs50("div", { ...trussProps51({
16544
+ /* @__PURE__ */ jsxs51("div", { ...trussProps52({
16410
16545
  ...stickyHeader || pinnedRows.length > 0 ? {
16411
16546
  position: "sticky",
16412
16547
  transition: "transitionTop",
@@ -16421,9 +16556,9 @@ function renderDiv(style, id, columns, visibleDataRows, keptSelectedRows, pinned
16421
16556
  tableHeadRows,
16422
16557
  pinnedRows
16423
16558
  ] }),
16424
- /* @__PURE__ */ jsxs50("div", { children: [
16559
+ /* @__PURE__ */ jsxs51("div", { children: [
16425
16560
  keptSelectedRows,
16426
- firstRowMessage && /* @__PURE__ */ jsx86("div", { ...trussProps51({
16561
+ firstRowMessage && /* @__PURE__ */ jsx87("div", { ...trussProps52({
16427
16562
  ...keptSelectedRows.length === 0 && style.firstBodyRowCss,
16428
16563
  ...style.firstRowMessageCss,
16429
16564
  ...visibleDataRows.length === 0 && style.lastRowCss,
@@ -16436,7 +16571,7 @@ function renderDiv(style, id, columns, visibleDataRows, keptSelectedRows, pinned
16436
16571
  ] });
16437
16572
  }
16438
16573
  function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, pinnedRows, firstRowMessage, stickyHeader, xss, _virtuosoRef, _virtuosoRangeRef, tableHeadRows, stickyOffset, _infiniteScroll, tableContainerRef, _persistScrollPosition) {
16439
- return /* @__PURE__ */ jsxs50("table", { ref: tableContainerRef, ...trussProps51({
16574
+ return /* @__PURE__ */ jsxs51("table", { ref: tableContainerRef, ...trussProps52({
16440
16575
  ...{
16441
16576
  width: "w100",
16442
16577
  borderCollapse: "borderCollapse_separate",
@@ -16450,7 +16585,7 @@ function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, pinn
16450
16585
  } : {},
16451
16586
  ...xss
16452
16587
  }), "data-testid": id, children: [
16453
- /* @__PURE__ */ jsxs50("thead", { ...trussProps51({
16588
+ /* @__PURE__ */ jsxs51("thead", { ...trussProps52({
16454
16589
  ...stickyHeader || pinnedRows.length > 0 ? {
16455
16590
  position: "sticky",
16456
16591
  transition: "transitionTop",
@@ -16465,13 +16600,13 @@ function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, pinn
16465
16600
  tableHeadRows,
16466
16601
  pinnedRows
16467
16602
  ] }),
16468
- /* @__PURE__ */ jsxs50("tbody", { children: [
16603
+ /* @__PURE__ */ jsxs51("tbody", { children: [
16469
16604
  keptSelectedRows,
16470
- firstRowMessage && /* @__PURE__ */ jsx86("tr", { ...trussProps51({
16605
+ firstRowMessage && /* @__PURE__ */ jsx87("tr", { ...trussProps52({
16471
16606
  ...tableRowPrintBreakCss,
16472
16607
  ...keptSelectedRows.length === 0 && style.firstBodyRowCss,
16473
16608
  ...visibleDataRows.length === 0 && style.lastRowCss
16474
- }), children: /* @__PURE__ */ jsx86("td", { colSpan: columns.length, ...trussProps51({
16609
+ }), children: /* @__PURE__ */ jsx87("td", { colSpan: columns.length, ...trussProps52({
16475
16610
  ...style.betweenRowsCss,
16476
16611
  ...style.firstRowMessageCss,
16477
16612
  ...visibleDataRows.length === 0 && style.lastRowCellCss,
@@ -16485,7 +16620,7 @@ function renderTable(style, id, columns, visibleDataRows, keptSelectedRows, pinn
16485
16620
  function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, pinnedRows, firstRowMessage, stickyHeader, xss, virtuosoRef, virtuosoRangeRef, tableHeadRows, stickyOffset, infiniteScroll, _tableContainerRef, persistScrollPosition = infiniteScroll === void 0) {
16486
16621
  const customScrollParent = useVirtualizedScrollParent();
16487
16622
  const inDocumentScrollLayout = useDocumentScrollLayout();
16488
- const [fetchMoreInProgress, setFetchMoreInProgress] = useState32(false);
16623
+ const [fetchMoreInProgress, setFetchMoreInProgress] = useState33(false);
16489
16624
  const {
16490
16625
  getScrollIndex,
16491
16626
  setScrollIndex
@@ -16494,7 +16629,7 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, pi
16494
16629
  const topItemCount = (stickyHeader || pinnedRows.length > 0 ? tableHeadRows.length : 0) + pinnedRows.length;
16495
16630
  const validatedScrollIndex = savedScrollIndex !== void 0 && savedScrollIndex > 0 && savedScrollIndex < visibleDataRows.length ? savedScrollIndex + topItemCount : void 0;
16496
16631
  const virtuosoKey = !!validatedScrollIndex && visibleDataRows.length > 0 ? "with-data" : "virtuoso";
16497
- return /* @__PURE__ */ jsx86(
16632
+ return /* @__PURE__ */ jsx87(
16498
16633
  Virtuoso2,
16499
16634
  {
16500
16635
  useWindowScroll: inDocumentScrollLayout && !customScrollParent,
@@ -16509,7 +16644,7 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, pi
16509
16644
  components: {
16510
16645
  // zIndex keeps the pinned head above sticky columns; `top` matches the offsets used by
16511
16646
  // the div/table render paths so virtualized tables pin below the global nav + page header.
16512
- TopItemList: React13.forwardRef((props, ref) => /* @__PURE__ */ jsx86("div", { ...props, ref, ...mergeProps20(void 0, {
16647
+ TopItemList: React13.forwardRef((props, ref) => /* @__PURE__ */ jsx87("div", { ...props, ref, ...mergeProps21(void 0, {
16513
16648
  ...props.style,
16514
16649
  ...style.minWidthPx !== void 0 ? {
16515
16650
  minWidth: style.minWidthPx
@@ -16521,13 +16656,13 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, pi
16521
16656
  }) })),
16522
16657
  List: VirtualRoot(style, columns, id, xss),
16523
16658
  Footer: () => {
16524
- return /* @__PURE__ */ jsx86("div", { ...trussProps51({
16659
+ return /* @__PURE__ */ jsx87("div", { ...trussProps52({
16525
16660
  ...style.virtualFooterPaddingBottomPx !== void 0 ? {
16526
16661
  paddingBottom: ["pb_var", {
16527
16662
  "--paddingBottom": `${style.virtualFooterPaddingBottomPx ?? 0}px`
16528
16663
  }]
16529
16664
  } : {}
16530
- }), children: fetchMoreInProgress && /* @__PURE__ */ jsx86("div", { className: "h5 df aic jcc", children: /* @__PURE__ */ jsx86(Loader, { size: "xs" }) }) });
16665
+ }), children: fetchMoreInProgress && /* @__PURE__ */ jsx87("div", { className: "h5 df aic jcc", children: /* @__PURE__ */ jsx87(Loader, { size: "xs" }) }) });
16531
16666
  }
16532
16667
  },
16533
16668
  topItemCount,
@@ -16548,11 +16683,11 @@ function renderVirtual(style, id, columns, visibleDataRows, keptSelectedRows, pi
16548
16683
  if (index === 0) {
16549
16684
  return (
16550
16685
  // Ensure the fallback message is the same width as the table
16551
- /* @__PURE__ */ jsx86("div", { ...trussProps51({
16686
+ /* @__PURE__ */ jsx87("div", { ...trussProps52({
16552
16687
  ...getTableRefWidthStyles(true, inDocumentScrollLayout),
16553
16688
  ...keptSelectedRows.length === 0 && style.firstBodyRowCss,
16554
16689
  ...visibleDataRows.length === 0 && style.lastRowCss
16555
- }), children: /* @__PURE__ */ jsx86("div", { ...trussProps51({
16690
+ }), children: /* @__PURE__ */ jsx87("div", { ...trussProps52({
16556
16691
  ...style.firstRowMessageCss,
16557
16692
  ...visibleDataRows.length === 0 && style.lastRowCellCss,
16558
16693
  ...visibleDataRows.length === 0 && style.lastRowFirstCellCss,
@@ -16601,7 +16736,7 @@ function CardView({
16601
16736
  }) {
16602
16737
  const customScrollParent = useVirtualizedScrollParent();
16603
16738
  const inDocumentScrollLayout = useDocumentScrollLayout();
16604
- const [fetchMoreInProgress, setFetchMoreInProgress] = useState32(false);
16739
+ const [fetchMoreInProgress, setFetchMoreInProgress] = useState33(false);
16605
16740
  const {
16606
16741
  getScrollIndex,
16607
16742
  setScrollIndex
@@ -16610,9 +16745,9 @@ function CardView({
16610
16745
  const validatedScrollIndex = savedScrollIndex !== void 0 && savedScrollIndex > 0 && savedScrollIndex < cardRows.length ? savedScrollIndex : void 0;
16611
16746
  const virtuosoKey = !!validatedScrollIndex && cardRows.length > 0 ? "with-data" : "virtuoso";
16612
16747
  if (runningInJest) {
16613
- return /* @__PURE__ */ jsx86("div", { className: "pt2 pb2", children: /* @__PURE__ */ jsx86("div", { className: "dg gtc_repeat_auto_fill_330px jcc gap3 pt3 pb3 pr3 pl3", children: cardRows }) });
16748
+ return /* @__PURE__ */ jsx87("div", { className: "pt2 pb2", children: /* @__PURE__ */ jsx87("div", { className: "dg gtc_repeat_auto_fill_330px jcc gap3 pt3 pb3 pr3 pl3", children: cardRows }) });
16614
16749
  }
16615
- return /* @__PURE__ */ jsx86("div", { className: "pt2 pb2 h100", children: /* @__PURE__ */ createElement2(VirtuosoGrid, { useWindowScroll: inDocumentScrollLayout && !customScrollParent, ...customScrollParent ? {
16750
+ return /* @__PURE__ */ jsx87("div", { className: "pt2 pb2 h100", children: /* @__PURE__ */ createElement2(VirtuosoGrid, { useWindowScroll: inDocumentScrollLayout && !customScrollParent, ...customScrollParent ? {
16616
16751
  customScrollParent
16617
16752
  } : {}, ...validatedScrollIndex !== void 0 ? {
16618
16753
  initialTopMostItemIndex: validatedScrollIndex
@@ -16621,7 +16756,7 @@ function CardView({
16621
16756
  style,
16622
16757
  children
16623
16758
  }, ref) {
16624
- return /* @__PURE__ */ jsx86("div", { ref, ...mergeProps20(void 0, style, {
16759
+ return /* @__PURE__ */ jsx87("div", { ref, ...mergeProps21(void 0, style, {
16625
16760
  display: "dg",
16626
16761
  gridTemplateColumns: "gtc_repeat_auto_fill_330px",
16627
16762
  justifyContent: "jcc",
@@ -16632,7 +16767,7 @@ function CardView({
16632
16767
  paddingLeft: "pl3"
16633
16768
  }), children });
16634
16769
  }),
16635
- Footer: () => /* @__PURE__ */ jsx86("div", { children: fetchMoreInProgress && /* @__PURE__ */ jsx86("div", { className: "h5 df aic jcc", children: /* @__PURE__ */ jsx86(Loader, { size: "xs" }) }) })
16770
+ Footer: () => /* @__PURE__ */ jsx87("div", { children: fetchMoreInProgress && /* @__PURE__ */ jsx87("div", { className: "h5 df aic jcc", children: /* @__PURE__ */ jsx87(Loader, { size: "xs" }) }) })
16636
16771
  }, rangeChanged: (newRange) => {
16637
16772
  virtuosoRangeRef.current = newRange;
16638
16773
  if (!infiniteScroll && cardRows.length > 0) {
@@ -16658,7 +16793,7 @@ var VirtualRoot = memoizeOne((gs, _columns, id, xss) => {
16658
16793
  style,
16659
16794
  children
16660
16795
  }, ref) {
16661
- return /* @__PURE__ */ jsx86("div", { ref, ...mergeProps20(void 0, style, {
16796
+ return /* @__PURE__ */ jsx87("div", { ref, ...mergeProps21(void 0, style, {
16662
16797
  ...gs.rootCss,
16663
16798
  ...gs.minWidthPx ? {
16664
16799
  minWidth: ["mw_var", {
@@ -16674,8 +16809,8 @@ var VirtualRoot = memoizeOne((gs, _columns, id, xss) => {
16674
16809
  });
16675
16810
 
16676
16811
  // src/components/ToggleChip.tsx
16677
- import { trussProps as trussProps52 } from "@homebound/truss/runtime";
16678
- import { jsx as jsx87, jsxs as jsxs51 } from "react/jsx-runtime";
16812
+ import { trussProps as trussProps53 } from "@homebound/truss/runtime";
16813
+ import { jsx as jsx88, jsxs as jsxs52 } from "react/jsx-runtime";
16679
16814
  function ToggleChip(props) {
16680
16815
  const {
16681
16816
  text,
@@ -16693,7 +16828,7 @@ function ToggleChip(props) {
16693
16828
  } = useHover2({});
16694
16829
  const compact = fieldProps?.compact;
16695
16830
  const tid = useTestIds(props, "chip");
16696
- return /* @__PURE__ */ jsxs51("button", { type: "button", ...trussProps52({
16831
+ return /* @__PURE__ */ jsxs52("button", { type: "button", ...trussProps53({
16697
16832
  ...chipBaseStyles(compact),
16698
16833
  ...isHovered && !disabled && chipHoverStyles,
16699
16834
  // Use a lower right-padding to get closer to the `X` circle when clearable, i.e. not disabled
@@ -16708,8 +16843,8 @@ function ToggleChip(props) {
16708
16843
  },
16709
16844
  ...xss
16710
16845
  }), disabled, onClick, ...hoverProps, ...tid, children: [
16711
- icon && /* @__PURE__ */ jsx87("span", { className: "fs0", ...tid.icon, children: /* @__PURE__ */ jsx87(Icon, { icon, color: "rgba(36, 36, 36, 1)" /* Gray900 */, inc: 2 }) }),
16712
- /* @__PURE__ */ jsx87("span", { ...trussProps52({
16846
+ icon && /* @__PURE__ */ jsx88("span", { className: "fs0", ...tid.icon, children: /* @__PURE__ */ jsx88(Icon, { icon, color: "rgba(36, 36, 36, 1)" /* Gray900 */, inc: 2 }) }),
16847
+ /* @__PURE__ */ jsx88("span", { ...trussProps53({
16713
16848
  textAlign: "tal",
16714
16849
  overflow: "oh",
16715
16850
  display: "d_negwebkit_box",
@@ -16721,14 +16856,14 @@ function ToggleChip(props) {
16721
16856
  paddingRight: "pr0"
16722
16857
  } : {}
16723
16858
  }), title: text, children: text }),
16724
- !disabled && /* @__PURE__ */ jsx87("span", { ...trussProps52({
16859
+ !disabled && /* @__PURE__ */ jsx88("span", { ...trussProps53({
16725
16860
  ...{
16726
16861
  flexShrink: "fs0",
16727
16862
  borderRadius: "br16",
16728
16863
  backgroundColor: "bgGray200"
16729
16864
  },
16730
16865
  ...isHovered && chipHoverStyles
16731
- }), ...tid.x, children: /* @__PURE__ */ jsx87(Icon, { icon: "x", color: "rgba(141, 141, 141, 1)" /* Gray600 */, inc: 2 }) })
16866
+ }), ...tid.x, children: /* @__PURE__ */ jsx88(Icon, { icon: "x", color: "rgba(141, 141, 141, 1)" /* Gray600 */, inc: 2 }) })
16732
16867
  ] });
16733
16868
  }
16734
16869
  var chipHoverStyles = {
@@ -16743,8 +16878,8 @@ var chipDisabledStyles = {
16743
16878
  };
16744
16879
 
16745
16880
  // src/components/ToggleChips.tsx
16746
- import { trussProps as trussProps53 } from "@homebound/truss/runtime";
16747
- import { jsx as jsx88 } from "react/jsx-runtime";
16881
+ import { trussProps as trussProps54 } from "@homebound/truss/runtime";
16882
+ import { jsx as jsx89 } from "react/jsx-runtime";
16748
16883
  function ToggleChips(props) {
16749
16884
  const {
16750
16885
  values,
@@ -16753,22 +16888,22 @@ function ToggleChips(props) {
16753
16888
  xss
16754
16889
  } = props;
16755
16890
  const tid = useTestIds(props, "toggleChips");
16756
- return /* @__PURE__ */ jsx88("div", { ...trussProps53({
16891
+ return /* @__PURE__ */ jsx89("div", { ...trussProps54({
16757
16892
  ...{
16758
16893
  display: "df",
16759
16894
  flexWrap: "flexWrap_wrap",
16760
16895
  gap: "gap1"
16761
16896
  },
16762
16897
  ...xss
16763
- }), ...tid, children: values.map((value) => /* @__PURE__ */ jsx88(ToggleChip, { text: getLabel(value), onClick: () => onRemove(value), ...tid.chip }, getLabel(value))) });
16898
+ }), ...tid, children: values.map((value) => /* @__PURE__ */ jsx89(ToggleChip, { text: getLabel(value), onClick: () => onRemove(value), ...tid.chip }, getLabel(value))) });
16764
16899
  }
16765
16900
 
16766
16901
  // src/components/Accordion.tsx
16767
16902
  import { useId, useResizeObserver as useResizeObserver3 } from "@react-aria/utils";
16768
- import { useCallback as useCallback19, useEffect as useEffect21, useMemo as useMemo27, useState as useState33 } from "react";
16903
+ import { useCallback as useCallback20, useEffect as useEffect21, useMemo as useMemo28, useState as useState34 } from "react";
16769
16904
  import { useFocusRing as useFocusRing10 } from "react-aria";
16770
- import { trussProps as trussProps54, maybeCssVar as maybeCssVar32 } from "@homebound/truss/runtime";
16771
- import { jsx as jsx89, jsxs as jsxs52 } from "react/jsx-runtime";
16905
+ import { trussProps as trussProps55, maybeCssVar as maybeCssVar32 } from "@homebound/truss/runtime";
16906
+ import { jsx as jsx90, jsxs as jsxs53 } from "react/jsx-runtime";
16772
16907
  var __maybeInc12 = (inc) => {
16773
16908
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
16774
16909
  };
@@ -16791,23 +16926,23 @@ function Accordion(props) {
16791
16926
  } = props;
16792
16927
  const tid = useTestIds(props, "accordion");
16793
16928
  const id = useId();
16794
- const [expanded, setExpanded] = useState33(defaultExpanded && !disabled);
16929
+ const [expanded, setExpanded] = useState34(defaultExpanded && !disabled);
16795
16930
  const {
16796
16931
  isFocusVisible,
16797
16932
  focusProps
16798
16933
  } = useFocusRing10();
16799
- const [contentEl, setContentEl] = useState33(null);
16800
- const contentRef = useMemo27(() => ({
16934
+ const [contentEl, setContentEl] = useState34(null);
16935
+ const contentRef = useMemo28(() => ({
16801
16936
  current: contentEl
16802
16937
  }), [contentEl]);
16803
- const [contentHeight, setContentHeight] = useState33(expanded ? "auto" : "0");
16938
+ const [contentHeight, setContentHeight] = useState34(expanded ? "auto" : "0");
16804
16939
  useEffect21(() => {
16805
16940
  setExpanded(defaultExpanded && !disabled);
16806
16941
  }, [defaultExpanded, disabled]);
16807
16942
  useEffect21(() => {
16808
16943
  setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
16809
16944
  }, [expanded, contentEl]);
16810
- const onResize = useCallback19(() => {
16945
+ const onResize = useCallback20(() => {
16811
16946
  if (contentEl && expanded) {
16812
16947
  setContentHeight(`${contentEl.scrollHeight}px`);
16813
16948
  }
@@ -16816,12 +16951,12 @@ function Accordion(props) {
16816
16951
  ref: contentRef,
16817
16952
  onResize
16818
16953
  });
16819
- const toggle = useCallback19(() => {
16954
+ const toggle = useCallback20(() => {
16820
16955
  setExpanded((prev) => !prev);
16821
16956
  if (setExpandedIndex) setExpandedIndex(index);
16822
16957
  if (onToggle) onToggle();
16823
16958
  }, [index, setExpandedIndex, onToggle]);
16824
- const touchableStyle = useMemo27(() => ({
16959
+ const touchableStyle = useMemo28(() => ({
16825
16960
  ...{
16826
16961
  display: "df",
16827
16962
  justifyContent: "jcsb",
@@ -16867,7 +17002,7 @@ function Accordion(props) {
16867
17002
  },
16868
17003
  ...xss
16869
17004
  }), [compact, disabled, isFocusVisible, titleOnClick, xss]);
16870
- return /* @__PURE__ */ jsxs52("div", { ...tid.container, ...trussProps54({
17005
+ return /* @__PURE__ */ jsxs53("div", { ...tid.container, ...trussProps55({
16871
17006
  ...{
16872
17007
  borderColor: "bcGray300",
16873
17008
  ...topBorder ? {
@@ -16885,14 +17020,14 @@ function Accordion(props) {
16885
17020
  }]
16886
17021
  } : {}
16887
17022
  }), children: [
16888
- titleOnClick ? /* @__PURE__ */ jsxs52("div", { ...focusProps, "aria-controls": id, "aria-expanded": expanded, className: "df", children: [
16889
- /* @__PURE__ */ jsx89("button", { ...tid.title, disabled, ...trussProps54({
17023
+ titleOnClick ? /* @__PURE__ */ jsxs53("div", { ...focusProps, "aria-controls": id, "aria-expanded": expanded, className: "df", children: [
17024
+ /* @__PURE__ */ jsx90("button", { ...tid.title, disabled, ...trussProps55({
16890
17025
  ...touchableStyle,
16891
17026
  ...{
16892
17027
  flexGrow: "fg1"
16893
17028
  }
16894
17029
  }), onClick: titleOnClick, children: title }),
16895
- /* @__PURE__ */ jsx89("button", { ...tid.toggle, disabled, ...trussProps54({
17030
+ /* @__PURE__ */ jsx90("button", { ...tid.toggle, disabled, ...trussProps55({
16896
17031
  ...touchableStyle,
16897
17032
  ...{
16898
17033
  paddingLeft: "pl2",
@@ -16903,23 +17038,23 @@ function Accordion(props) {
16903
17038
  paddingRight: "pr_10px"
16904
17039
  } : {}
16905
17040
  }
16906
- }), onClick: toggle, children: /* @__PURE__ */ jsx89(RotatingChevronIcon, { expanded }) })
16907
- ] }) : /* @__PURE__ */ jsxs52("button", { ...tid.title, ...focusProps, "aria-controls": id, "aria-expanded": expanded, disabled, ...trussProps54({
17041
+ }), onClick: toggle, children: /* @__PURE__ */ jsx90(RotatingChevronIcon, { expanded }) })
17042
+ ] }) : /* @__PURE__ */ jsxs53("button", { ...tid.title, ...focusProps, "aria-controls": id, "aria-expanded": expanded, disabled, ...trussProps55({
16908
17043
  ...{
16909
17044
  width: "w100"
16910
17045
  },
16911
17046
  ...touchableStyle
16912
17047
  }), onClick: toggle, children: [
16913
- /* @__PURE__ */ jsx89("span", { className: "fg1 tal", children: title }),
16914
- /* @__PURE__ */ jsx89(RotatingChevronIcon, { expanded })
17048
+ /* @__PURE__ */ jsx90("span", { className: "fg1 tal", children: title }),
17049
+ /* @__PURE__ */ jsx90(RotatingChevronIcon, { expanded })
16915
17050
  ] }),
16916
- /* @__PURE__ */ jsx89("div", { ...tid.details, id, "aria-hidden": !expanded, ...trussProps54({
17051
+ /* @__PURE__ */ jsx90("div", { ...tid.details, id, "aria-hidden": !expanded, ...trussProps55({
16917
17052
  overflow: "oh",
16918
17053
  height: ["h_var", {
16919
17054
  "--height": maybeCssVar32(__maybeInc12(contentHeight))
16920
17055
  }],
16921
17056
  transition: "transition_height_250ms_ease_in_out"
16922
- }), children: expanded && /* @__PURE__ */ jsx89("div", { ...trussProps54({
17057
+ }), children: expanded && /* @__PURE__ */ jsx90("div", { ...trussProps55({
16923
17058
  paddingLeft: "pl2",
16924
17059
  paddingRight: "pr2",
16925
17060
  paddingBottom: "pb2",
@@ -16934,13 +17069,13 @@ function Accordion(props) {
16934
17069
  ] });
16935
17070
  }
16936
17071
  function RotatingChevronIcon(props) {
16937
- return /* @__PURE__ */ jsx89("span", { ...trussProps54({
17072
+ return /* @__PURE__ */ jsx90("span", { ...trussProps55({
16938
17073
  flexShrink: "fs0",
16939
17074
  transition: "transition_transform_250ms_linear",
16940
17075
  transform: ["transform_var", {
16941
17076
  "--transform": maybeCssVar32(props.expanded ? "rotate(180deg)" : "rotate(0deg)")
16942
17077
  }]
16943
- }), children: /* @__PURE__ */ jsx89(Icon, { icon: "chevronDown" }) });
17078
+ }), children: /* @__PURE__ */ jsx90(Icon, { icon: "chevronDown" }) });
16944
17079
  }
16945
17080
  var accordionSizes = {
16946
17081
  xs: 240,
@@ -16950,15 +17085,15 @@ var accordionSizes = {
16950
17085
  };
16951
17086
 
16952
17087
  // src/components/AccordionList.tsx
16953
- import { useState as useState34 } from "react";
16954
- import { Fragment as Fragment21, jsx as jsx90 } from "react/jsx-runtime";
17088
+ import { useState as useState35 } from "react";
17089
+ import { Fragment as Fragment21, jsx as jsx91 } from "react/jsx-runtime";
16955
17090
  function AccordionList(props) {
16956
17091
  const { accordions, size, allowMultipleExpanded = true, compact = false } = props;
16957
- const [expandedIndex, setExpandedIndex] = useState34(
17092
+ const [expandedIndex, setExpandedIndex] = useState35(
16958
17093
  accordions.findIndex((a) => a.defaultExpanded)
16959
17094
  );
16960
17095
  const tid = useTestIds(props, "accordionList");
16961
- return /* @__PURE__ */ jsx90(Fragment21, { children: accordions.map((accordionProps, index, arr) => /* @__PURE__ */ jsx90(
17096
+ return /* @__PURE__ */ jsx91(Fragment21, { children: accordions.map((accordionProps, index, arr) => /* @__PURE__ */ jsx91(
16962
17097
  Accordion,
16963
17098
  {
16964
17099
  ...accordionProps,
@@ -16983,7 +17118,7 @@ function assertNever(x) {
16983
17118
  }
16984
17119
 
16985
17120
  // src/components/AutoSaveIndicator.tsx
16986
- import { jsx as jsx91, jsxs as jsxs53 } from "react/jsx-runtime";
17121
+ import { jsx as jsx92, jsxs as jsxs54 } from "react/jsx-runtime";
16987
17122
  function AutoSaveIndicator({
16988
17123
  hideOnIdle,
16989
17124
  doNotReset
@@ -17004,11 +17139,11 @@ function AutoSaveIndicator({
17004
17139
  );
17005
17140
  switch (status) {
17006
17141
  case "idle" /* IDLE */:
17007
- return hideOnIdle ? null : /* @__PURE__ */ jsx91(Indicator, { icon: "cloudSave" });
17142
+ return hideOnIdle ? null : /* @__PURE__ */ jsx92(Indicator, { icon: "cloudSave" });
17008
17143
  case "saving" /* SAVING */:
17009
- return /* @__PURE__ */ jsx91(Indicator, { icon: "refresh", text: "Saving..." });
17144
+ return /* @__PURE__ */ jsx92(Indicator, { icon: "refresh", text: "Saving..." });
17010
17145
  case "done" /* DONE */:
17011
- return /* @__PURE__ */ jsx91(Indicator, { icon: "cloudSave", text: "Saved" });
17146
+ return /* @__PURE__ */ jsx92(Indicator, { icon: "cloudSave", text: "Saved" });
17012
17147
  case "error" /* ERROR */:
17013
17148
  return (
17014
17149
  /**
@@ -17016,7 +17151,7 @@ function AutoSaveIndicator({
17016
17151
  * rendering it far away from the Icon/Text. Wrap it with a div to constrain
17017
17152
  * it.
17018
17153
  */
17019
- /* @__PURE__ */ jsx91("div", { className: "dif", children: /* @__PURE__ */ jsx91(Tooltip, { title: String(errors), placement: "bottom", children: /* @__PURE__ */ jsx91(Indicator, { icon: "error", color: "rgba(239, 68, 68, 1)" /* Red500 */, text: "Error saving" }) }) })
17154
+ /* @__PURE__ */ jsx92("div", { className: "dif", children: /* @__PURE__ */ jsx92(Tooltip, { title: String(errors), placement: "bottom", children: /* @__PURE__ */ jsx92(Indicator, { icon: "error", color: "rgba(239, 68, 68, 1)" /* Red500 */, text: "Error saving" }) }) })
17020
17155
  );
17021
17156
  default:
17022
17157
  assertNever(status);
@@ -17027,15 +17162,15 @@ function Indicator({
17027
17162
  icon,
17028
17163
  color
17029
17164
  }) {
17030
- return /* @__PURE__ */ jsxs53("div", { "data-testid": "autoSave", className: "df gap1 aic gray700 fw6 fz_14px lh_20px", children: [
17031
- /* @__PURE__ */ jsx91(Icon, { icon, color }),
17165
+ return /* @__PURE__ */ jsxs54("div", { "data-testid": "autoSave", className: "df gap1 aic gray700 fw6 fz_14px lh_20px", children: [
17166
+ /* @__PURE__ */ jsx92(Icon, { icon, color }),
17032
17167
  text
17033
17168
  ] });
17034
17169
  }
17035
17170
 
17036
17171
  // src/components/Banner.tsx
17037
- import { trussProps as trussProps55 } from "@homebound/truss/runtime";
17038
- import { jsx as jsx92, jsxs as jsxs54 } from "react/jsx-runtime";
17172
+ import { trussProps as trussProps56 } from "@homebound/truss/runtime";
17173
+ import { jsx as jsx93, jsxs as jsxs55 } from "react/jsx-runtime";
17039
17174
  function Banner(props) {
17040
17175
  const {
17041
17176
  type,
@@ -17045,7 +17180,7 @@ function Banner(props) {
17045
17180
  ...others
17046
17181
  } = props;
17047
17182
  const tid = useTestIds(others, "banner");
17048
- return /* @__PURE__ */ jsxs54("div", { ...trussProps55({
17183
+ return /* @__PURE__ */ jsxs55("div", { ...trussProps56({
17049
17184
  ...variantStyles3[type],
17050
17185
  ...{
17051
17186
  display: "df",
@@ -17063,9 +17198,9 @@ function Banner(props) {
17063
17198
  boxShadow: "bshBasic"
17064
17199
  }
17065
17200
  }), ...tid, role: "alert", children: [
17066
- showIcon && /* @__PURE__ */ jsx92("span", { className: "fs0", children: /* @__PURE__ */ jsx92(Icon, { icon: typeToIcon[type], ...tid.type, color: "rgba(36, 36, 36, 1)" /* Gray900 */ }) }),
17067
- /* @__PURE__ */ jsx92("span", { className: "fg1", ...tid.message, children: message }),
17068
- onClose && /* @__PURE__ */ jsx92("span", { className: "lh_0", children: /* @__PURE__ */ jsx92(IconButton, { icon: "x", onClick: onClose, ...tid.close, color: "rgba(36, 36, 36, 1)" /* Gray900 */ }) })
17201
+ showIcon && /* @__PURE__ */ jsx93("span", { className: "fs0", children: /* @__PURE__ */ jsx93(Icon, { icon: typeToIcon[type], ...tid.type, color: "rgba(36, 36, 36, 1)" /* Gray900 */ }) }),
17202
+ /* @__PURE__ */ jsx93("span", { className: "fg1", ...tid.message, children: message }),
17203
+ onClose && /* @__PURE__ */ jsx93("span", { className: "lh_0", children: /* @__PURE__ */ jsx93(IconButton, { icon: "x", onClick: onClose, ...tid.close, color: "rgba(36, 36, 36, 1)" /* Gray900 */ }) })
17069
17204
  ] });
17070
17205
  }
17071
17206
  var typeToIcon = {
@@ -17104,20 +17239,20 @@ import { OverlayProvider } from "react-aria";
17104
17239
 
17105
17240
  // src/components/Modal/Modal.tsx
17106
17241
  import { useResizeObserver as useResizeObserver4 } from "@react-aria/utils";
17107
- import { useCallback as useCallback20, useEffect as useEffect24, useRef as useRef43, useState as useState35 } from "react";
17242
+ import { useCallback as useCallback21, useEffect as useEffect24, useRef as useRef43, useState as useState36 } from "react";
17108
17243
  import { FocusScope as FocusScope4, OverlayContainer as OverlayContainer2, useDialog, useModal as useModal2, useOverlay as useOverlay2, usePreventScroll } from "react-aria";
17109
17244
  import { createPortal as createPortal3 } from "react-dom";
17110
17245
 
17111
17246
  // src/components/Modal/useModal.tsx
17112
- import { useEffect as useEffect23, useMemo as useMemo29, useRef as useRef42 } from "react";
17247
+ import { useEffect as useEffect23, useMemo as useMemo30, useRef as useRef42 } from "react";
17113
17248
 
17114
17249
  // src/components/Modal/ModalContext.tsx
17115
- import { createContext as createContext7, useContext as useContext17, useMemo as useMemo28 } from "react";
17116
- import { jsx as jsx93 } from "react/jsx-runtime";
17250
+ import { createContext as createContext7, useContext as useContext17, useMemo as useMemo29 } from "react";
17251
+ import { jsx as jsx94 } from "react/jsx-runtime";
17117
17252
  var ModalContext = createContext7({ inModal: false });
17118
17253
  function ModalProvider({ children }) {
17119
- const value = useMemo28(() => ({ inModal: true }), []);
17120
- return /* @__PURE__ */ jsx93(ModalContext.Provider, { value, children });
17254
+ const value = useMemo29(() => ({ inModal: true }), []);
17255
+ return /* @__PURE__ */ jsx94(ModalContext.Provider, { value, children });
17121
17256
  }
17122
17257
  function useModalContext() {
17123
17258
  return useContext17(ModalContext);
@@ -17134,7 +17269,7 @@ function useModal() {
17134
17269
  modalCanCloseChecks.current = modalCanCloseChecks.current.filter((c) => c !== lastCanClose.current);
17135
17270
  };
17136
17271
  }, [modalCanCloseChecks]);
17137
- return useMemo29(
17272
+ return useMemo30(
17138
17273
  () => ({
17139
17274
  openModal(props) {
17140
17275
  modalState.current = { ...props, api };
@@ -17169,8 +17304,8 @@ function useModal() {
17169
17304
  }
17170
17305
 
17171
17306
  // src/components/Modal/Modal.tsx
17172
- import { trussProps as trussProps56, maybeCssVar as maybeCssVar33 } from "@homebound/truss/runtime";
17173
- import { Fragment as Fragment22, jsx as jsx94, jsxs as jsxs55 } from "react/jsx-runtime";
17307
+ import { trussProps as trussProps57, maybeCssVar as maybeCssVar33 } from "@homebound/truss/runtime";
17308
+ import { Fragment as Fragment22, jsx as jsx95, jsxs as jsxs56 } from "react/jsx-runtime";
17174
17309
  function Modal(props) {
17175
17310
  const {
17176
17311
  size = "md",
@@ -17211,7 +17346,7 @@ function Modal(props) {
17211
17346
  } = useDialog({
17212
17347
  role: "dialog"
17213
17348
  }, ref);
17214
- const [[width2, height], setSize] = useState35(getSize(size));
17349
+ const [[width2, height], setSize] = useState36(getSize(size));
17215
17350
  const modalBodyRef = useRef43(null);
17216
17351
  const modalFooterRef = useRef43(null);
17217
17352
  const modalHeaderRef = useRef43(null);
@@ -17225,10 +17360,10 @@ function Modal(props) {
17225
17360
  setSize: (size2 = "md") => setSize(getSize(size2))
17226
17361
  };
17227
17362
  }
17228
- const [hasScroll, setHasScroll] = useState35(forceScrolling ?? false);
17363
+ const [hasScroll, setHasScroll] = useState36(forceScrolling ?? false);
17229
17364
  useResizeObserver4({
17230
17365
  ref: modalBodyRef,
17231
- onResize: useCallback20(
17366
+ onResize: useCallback21(
17232
17367
  () => {
17233
17368
  const target = modalBodyRef.current;
17234
17369
  if (forceScrolling === void 0 && !isFixedHeight) {
@@ -17250,7 +17385,7 @@ function Modal(props) {
17250
17385
  // eslint-disable-next-line react-hooks/exhaustive-deps
17251
17386
  [modalBodyRef, modalFooterRef, modalHeaderRef]
17252
17387
  );
17253
- return /* @__PURE__ */ jsx94(ModalProvider, { children: /* @__PURE__ */ jsx94(OverlayContainer2, { children: /* @__PURE__ */ jsx94(AutoSaveStatusProvider, { children: /* @__PURE__ */ jsx94("div", { ...trussProps56({
17388
+ return /* @__PURE__ */ jsx95(ModalProvider, { children: /* @__PURE__ */ jsx95(OverlayContainer2, { children: /* @__PURE__ */ jsx95(AutoSaveStatusProvider, { children: /* @__PURE__ */ jsx95("div", { ...trussProps57({
17254
17389
  position: "fixed",
17255
17390
  top: "tp_0",
17256
17391
  bottom: "bot_0",
@@ -17263,7 +17398,7 @@ function Modal(props) {
17263
17398
  zIndex: ["z_var", {
17264
17399
  "--zIndex": maybeCssVar33(zIndices.modalUnderlay)
17265
17400
  }]
17266
- }), ...underlayProps, ...testId.underlay, children: /* @__PURE__ */ jsx94(FocusScope4, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ jsxs55("div", { ...trussProps56({
17401
+ }), ...underlayProps, ...testId.underlay, children: /* @__PURE__ */ jsx95(FocusScope4, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ jsxs56("div", { ...trussProps57({
17267
17402
  borderRadius: "br24",
17268
17403
  backgroundColor: "bgWhite",
17269
17404
  boxShadow: "bshModal",
@@ -17289,7 +17424,7 @@ function Modal(props) {
17289
17424
  borderRadius: "br0"
17290
17425
  } : {}
17291
17426
  }), ref, ...overlayProps, ...dialogProps, ...modalProps, ...testId, children: [
17292
- /* @__PURE__ */ jsxs55("header", { ...trussProps56({
17427
+ /* @__PURE__ */ jsxs56("header", { ...trussProps57({
17293
17428
  display: "df",
17294
17429
  flexDirection: "fdrr",
17295
17430
  paddingTop: "pt3",
@@ -17303,10 +17438,10 @@ function Modal(props) {
17303
17438
  borderColor: "bcGray200"
17304
17439
  } : {}
17305
17440
  }), children: [
17306
- /* @__PURE__ */ jsx94("span", { className: "fs0 pl1", children: allowClosing && /* @__PURE__ */ jsx94(IconButton, { icon: "x", onClick: closeModal, ...testId.titleClose }) }),
17307
- /* @__PURE__ */ jsx94("h1", { className: "fg1 fw6 fz_30px lh_36px gray900", ref: modalHeaderRef, ...titleProps, ...testId.title })
17441
+ /* @__PURE__ */ jsx95("span", { className: "fs0 pl1", children: allowClosing && /* @__PURE__ */ jsx95(IconButton, { icon: "x", onClick: closeModal, ...testId.titleClose }) }),
17442
+ /* @__PURE__ */ jsx95("h1", { className: "fg1 fw6 fz_30px lh_36px gray900", ref: modalHeaderRef, ...titleProps, ...testId.title })
17308
17443
  ] }),
17309
- /* @__PURE__ */ jsx94("main", { ref: modalBodyRef, ...trussProps56({
17444
+ /* @__PURE__ */ jsx95("main", { ref: modalBodyRef, ...trussProps57({
17310
17445
  flexGrow: "fg1",
17311
17446
  overflowY: "oya",
17312
17447
  ...hasScroll ? {
@@ -17318,7 +17453,7 @@ function Modal(props) {
17318
17453
  overflowY: "oys"
17319
17454
  } : {}
17320
17455
  }), children: content }),
17321
- /* @__PURE__ */ jsx94("footer", { className: "fs0", children: /* @__PURE__ */ jsx94("div", { ref: modalFooterRef }) })
17456
+ /* @__PURE__ */ jsx95("footer", { className: "fs0", children: /* @__PURE__ */ jsx95("div", { ref: modalFooterRef }) })
17322
17457
  ] }) }) }) }) }) });
17323
17458
  }
17324
17459
  function ModalHeader({
@@ -17327,7 +17462,7 @@ function ModalHeader({
17327
17462
  const {
17328
17463
  modalHeaderDiv
17329
17464
  } = useBeamContext();
17330
- return createPortal3(/* @__PURE__ */ jsx94(Fragment22, { children }), modalHeaderDiv);
17465
+ return createPortal3(/* @__PURE__ */ jsx95(Fragment22, { children }), modalHeaderDiv);
17331
17466
  }
17332
17467
  function ModalBody({
17333
17468
  children,
@@ -17339,7 +17474,7 @@ function ModalBody({
17339
17474
  const testId = useTestIds({}, testIdPrefix);
17340
17475
  return createPortal3(
17341
17476
  // If `virtualized`, then we are expecting the `children` will handle their own scrollbar, so have the overflow hidden and adjust padding
17342
- /* @__PURE__ */ jsx94("div", { ...trussProps56({
17477
+ /* @__PURE__ */ jsx95("div", { ...trussProps57({
17343
17478
  height: "h100",
17344
17479
  ...virtualized ? {
17345
17480
  overflow: "oh",
@@ -17360,7 +17495,7 @@ function ModalFooter({
17360
17495
  modalFooterDiv
17361
17496
  } = useBeamContext();
17362
17497
  const testId = useTestIds({}, testIdPrefix);
17363
- return createPortal3(/* @__PURE__ */ jsx94("div", { ...trussProps56({
17498
+ return createPortal3(/* @__PURE__ */ jsx95("div", { ...trussProps57({
17364
17499
  ...{
17365
17500
  paddingTop: "pt3",
17366
17501
  paddingBottom: "pb3",
@@ -17392,11 +17527,11 @@ function getSize(size) {
17392
17527
  }
17393
17528
 
17394
17529
  // src/components/Snackbar/SnackbarContext.tsx
17395
- import { createContext as createContext8, useContext as useContext18, useMemo as useMemo30, useState as useState36 } from "react";
17530
+ import { createContext as createContext8, useContext as useContext18, useMemo as useMemo31, useState as useState37 } from "react";
17396
17531
 
17397
17532
  // src/components/Snackbar/SnackbarNotice.tsx
17398
- import { trussProps as trussProps57 } from "@homebound/truss/runtime";
17399
- import { jsx as jsx95, jsxs as jsxs56 } from "react/jsx-runtime";
17533
+ import { trussProps as trussProps58 } from "@homebound/truss/runtime";
17534
+ import { jsx as jsx96, jsxs as jsxs57 } from "react/jsx-runtime";
17400
17535
  function SnackbarNotice(props) {
17401
17536
  const {
17402
17537
  icon,
@@ -17408,12 +17543,12 @@ function SnackbarNotice(props) {
17408
17543
  } = props;
17409
17544
  const tid = useTestIds(props, "snackbar");
17410
17545
  const reallyHideClose = hideCloseButton && !persistent;
17411
- return /* @__PURE__ */ jsxs56("div", { className: "white bgGray800 br4 fw4 fz_16px lh_24px df aic maxw_420px", "data-theme": contrastDataTheme, ...tid, role: "alert", children: [
17412
- icon && /* @__PURE__ */ jsx95("span", { className: "fs0 pl_12px", children: /* @__PURE__ */ jsx95(Icon, { ...typeToIcon2[icon], ...tid.icon }) }),
17413
- /* @__PURE__ */ jsx95(
17546
+ return /* @__PURE__ */ jsxs57("div", { className: "white bgGray800 br4 fw4 fz_16px lh_24px df aic maxw_420px", "data-theme": contrastDataTheme, ...tid, role: "alert", children: [
17547
+ icon && /* @__PURE__ */ jsx96("span", { className: "fs0 pl_12px", children: /* @__PURE__ */ jsx96(Icon, { ...typeToIcon2[icon], ...tid.icon }) }),
17548
+ /* @__PURE__ */ jsx96(
17414
17549
  "span",
17415
17550
  {
17416
- ...trussProps57({
17551
+ ...trussProps58({
17417
17552
  overflow: "oh",
17418
17553
  display: "d_negwebkit_box",
17419
17554
  WebkitBoxOrient: "wbo_vertical",
@@ -17433,8 +17568,8 @@ function SnackbarNotice(props) {
17433
17568
  children: message
17434
17569
  }
17435
17570
  ),
17436
- (action || !reallyHideClose) && /* @__PURE__ */ jsxs56("span", { className: "fs0 df aic", children: [
17437
- action && /* @__PURE__ */ jsx95("span", { ...trussProps57({
17571
+ (action || !reallyHideClose) && /* @__PURE__ */ jsxs57("span", { className: "fs0 df aic", children: [
17572
+ action && /* @__PURE__ */ jsx96("span", { ...trussProps58({
17438
17573
  textTransform: "ttu",
17439
17574
  fontWeight: "fw4",
17440
17575
  fontSize: "fz_14px",
@@ -17442,8 +17577,8 @@ function SnackbarNotice(props) {
17442
17577
  paddingRight: ["pr_var", {
17443
17578
  "--paddingRight": `${!reallyHideClose && action.variant !== "text" ? 4 : 8}px`
17444
17579
  }]
17445
- }), children: /* @__PURE__ */ jsx95(Button, { ...action, ...tid.action }) }),
17446
- !reallyHideClose && /* @__PURE__ */ jsx95("span", { className: "pr1 lineHeight_0", children: /* @__PURE__ */ jsx95(IconButton, { icon: "x", onClick: onClose, ...tid.close }) })
17580
+ }), children: /* @__PURE__ */ jsx96(Button, { ...action, ...tid.action }) }),
17581
+ !reallyHideClose && /* @__PURE__ */ jsx96("span", { className: "pr1 lineHeight_0", children: /* @__PURE__ */ jsx96(IconButton, { icon: "x", onClick: onClose, ...tid.close }) })
17447
17582
  ] })
17448
17583
  ] });
17449
17584
  }
@@ -17472,14 +17607,14 @@ var typeToIcon2 = {
17472
17607
  };
17473
17608
 
17474
17609
  // src/components/Snackbar/Snackbar.tsx
17475
- import { trussProps as trussProps58, maybeCssVar as maybeCssVar34 } from "@homebound/truss/runtime";
17476
- import { jsx as jsx96 } from "react/jsx-runtime";
17610
+ import { trussProps as trussProps59, maybeCssVar as maybeCssVar34 } from "@homebound/truss/runtime";
17611
+ import { jsx as jsx97 } from "react/jsx-runtime";
17477
17612
  function Snackbar({
17478
17613
  notices,
17479
17614
  offset
17480
17615
  }) {
17481
17616
  const tid = useTestIds({});
17482
- return /* @__PURE__ */ jsx96("div", { ...tid.snackbarWrapper, ...trussProps58({
17617
+ return /* @__PURE__ */ jsx97("div", { ...tid.snackbarWrapper, ...trussProps59({
17483
17618
  position: "fixed",
17484
17619
  zIndex: ["z_var", {
17485
17620
  "--zIndex": maybeCssVar34(zIndices.snackbar)
@@ -17492,24 +17627,24 @@ function Snackbar({
17492
17627
  flexDirection: "fdc",
17493
17628
  alignItems: "aifs",
17494
17629
  gap: "gap_12px"
17495
- }), children: notices.map((data) => /* @__PURE__ */ jsx96(SnackbarNotice, { ...data }, data.id)) });
17630
+ }), children: notices.map((data) => /* @__PURE__ */ jsx97(SnackbarNotice, { ...data }, data.id)) });
17496
17631
  }
17497
17632
  var defaultOffset = {
17498
17633
  bottom: 24
17499
17634
  };
17500
17635
 
17501
17636
  // src/components/Snackbar/SnackbarContext.tsx
17502
- import { jsx as jsx97, jsxs as jsxs57 } from "react/jsx-runtime";
17637
+ import { jsx as jsx98, jsxs as jsxs58 } from "react/jsx-runtime";
17503
17638
  var SnackbarContext = createContext8({ setNotices: () => {
17504
17639
  }, setOffset: () => {
17505
17640
  } });
17506
17641
  function SnackbarProvider(props) {
17507
- const [notices, setNotices] = useState36([]);
17508
- const [offset, setOffset] = useState36({});
17509
- const contextValue = useMemo30(() => ({ setNotices, setOffset }), []);
17510
- return /* @__PURE__ */ jsxs57(SnackbarContext.Provider, { value: contextValue, children: [
17642
+ const [notices, setNotices] = useState37([]);
17643
+ const [offset, setOffset] = useState37({});
17644
+ const contextValue = useMemo31(() => ({ setNotices, setOffset }), []);
17645
+ return /* @__PURE__ */ jsxs58(SnackbarContext.Provider, { value: contextValue, children: [
17511
17646
  props.children,
17512
- /* @__PURE__ */ jsx97(Snackbar, { notices, offset })
17647
+ /* @__PURE__ */ jsx98(Snackbar, { notices, offset })
17513
17648
  ] });
17514
17649
  }
17515
17650
  function useSnackbarContext() {
@@ -17529,8 +17664,8 @@ var SuperDrawerWidth = /* @__PURE__ */ ((SuperDrawerWidth2) => {
17529
17664
  })(SuperDrawerWidth || {});
17530
17665
 
17531
17666
  // src/components/SuperDrawer/SuperDrawer.tsx
17532
- import { trussProps as trussProps59, maybeCssVar as maybeCssVar35 } from "@homebound/truss/runtime";
17533
- import { Fragment as Fragment23, jsx as jsx98, jsxs as jsxs58 } from "react/jsx-runtime";
17667
+ import { trussProps as trussProps60, maybeCssVar as maybeCssVar35 } from "@homebound/truss/runtime";
17668
+ import { Fragment as Fragment23, jsx as jsx99, jsxs as jsxs59 } from "react/jsx-runtime";
17534
17669
  import { createElement as createElement3 } from "react";
17535
17670
  function SuperDrawer() {
17536
17671
  const {
@@ -17568,12 +17703,12 @@ function SuperDrawer() {
17568
17703
  // eslint-disable-next-line react-hooks/exhaustive-deps
17569
17704
  [headerRef, content]
17570
17705
  );
17571
- return createPortal4(/* @__PURE__ */ jsx98(AnimatePresence, { children: content && /* @__PURE__ */ jsx98(Fragment23, { children: /* @__PURE__ */ createElement3(
17706
+ return createPortal4(/* @__PURE__ */ jsx99(AnimatePresence, { children: content && /* @__PURE__ */ jsx99(Fragment23, { children: /* @__PURE__ */ createElement3(
17572
17707
  motion.div,
17573
17708
  {
17574
17709
  ...testId,
17575
17710
  key: "superDrawer",
17576
- ...trussProps59({
17711
+ ...trussProps60({
17577
17712
  position: "fixed",
17578
17713
  display: "df",
17579
17714
  justifyContent: "jcfe",
@@ -17600,10 +17735,10 @@ function SuperDrawer() {
17600
17735
  },
17601
17736
  onClick: closeDrawer
17602
17737
  },
17603
- /* @__PURE__ */ jsx98(
17738
+ /* @__PURE__ */ jsx99(
17604
17739
  motion.aside,
17605
17740
  {
17606
- ...trussProps59({
17741
+ ...trussProps60({
17607
17742
  backgroundColor: "bgWhite",
17608
17743
  height: "h100",
17609
17744
  maxWidth: ["maxw_var", {
@@ -17633,10 +17768,10 @@ function SuperDrawer() {
17633
17768
  x: width2
17634
17769
  },
17635
17770
  onClick: (e) => e.stopPropagation(),
17636
- children: /* @__PURE__ */ jsxs58(AutoSaveStatusProvider, { children: [
17637
- /* @__PURE__ */ jsxs58("header", { className: "pt3 pb3 pr3 pl3 bbs_solid bbw_1px bcGray200 df aic jcsb gap3", children: [
17638
- /* @__PURE__ */ jsx98("div", { ref: headerRef, className: "gray900 fg1" }),
17639
- /* @__PURE__ */ jsx98(IconButton, { icon: "x", onClick: closeDrawer, ...testId.close })
17771
+ children: /* @__PURE__ */ jsxs59(AutoSaveStatusProvider, { children: [
17772
+ /* @__PURE__ */ jsxs59("header", { className: "pt3 pb3 pr3 pl3 bbs_solid bbw_1px bcGray200 df aic jcsb gap3", children: [
17773
+ /* @__PURE__ */ jsx99("div", { ref: headerRef, className: "gray900 fg1" }),
17774
+ /* @__PURE__ */ jsx99(IconButton, { icon: "x", onClick: closeDrawer, ...testId.close })
17640
17775
  ] }),
17641
17776
  content
17642
17777
  ] })
@@ -17660,7 +17795,7 @@ function defaultLabel(id) {
17660
17795
  }
17661
17796
 
17662
17797
  // src/forms/BoundCheckboxField.tsx
17663
- import { jsx as jsx99 } from "react/jsx-runtime";
17798
+ import { jsx as jsx100 } from "react/jsx-runtime";
17664
17799
  function BoundCheckboxField(props) {
17665
17800
  const {
17666
17801
  field,
@@ -17672,7 +17807,7 @@ function BoundCheckboxField(props) {
17672
17807
  ...others
17673
17808
  } = props;
17674
17809
  const testId = useTestIds(props, field.key);
17675
- return /* @__PURE__ */ jsx99(Observer, { children: () => /* @__PURE__ */ jsx99(
17810
+ return /* @__PURE__ */ jsx100(Observer, { children: () => /* @__PURE__ */ jsx100(
17676
17811
  Checkbox,
17677
17812
  {
17678
17813
  label,
@@ -17699,7 +17834,7 @@ function BoundCheckboxField(props) {
17699
17834
 
17700
17835
  // src/forms/BoundCheckboxGroupField.tsx
17701
17836
  import { Observer as Observer2 } from "mobx-react";
17702
- import { jsx as jsx100 } from "react/jsx-runtime";
17837
+ import { jsx as jsx101 } from "react/jsx-runtime";
17703
17838
  function BoundCheckboxGroupField(props) {
17704
17839
  const {
17705
17840
  field,
@@ -17710,7 +17845,7 @@ function BoundCheckboxGroupField(props) {
17710
17845
  ...others
17711
17846
  } = props;
17712
17847
  const testId = useTestIds(props, field.key);
17713
- return /* @__PURE__ */ jsx100(Observer2, { children: () => /* @__PURE__ */ jsx100(
17848
+ return /* @__PURE__ */ jsx101(Observer2, { children: () => /* @__PURE__ */ jsx101(
17714
17849
  CheckboxGroup,
17715
17850
  {
17716
17851
  label,
@@ -17737,7 +17872,7 @@ function BoundCheckboxGroupField(props) {
17737
17872
 
17738
17873
  // src/forms/BoundChipSelectField.tsx
17739
17874
  import { Observer as Observer3 } from "mobx-react";
17740
- import { jsx as jsx101 } from "react/jsx-runtime";
17875
+ import { jsx as jsx102 } from "react/jsx-runtime";
17741
17876
  function BoundChipSelectField(props) {
17742
17877
  const {
17743
17878
  field,
@@ -17753,7 +17888,7 @@ function BoundChipSelectField(props) {
17753
17888
  ...others
17754
17889
  } = props;
17755
17890
  const testId = useTestIds(props, field.key);
17756
- return /* @__PURE__ */ jsx101(Observer3, { children: () => /* @__PURE__ */ jsx101(
17891
+ return /* @__PURE__ */ jsx102(Observer3, { children: () => /* @__PURE__ */ jsx102(
17757
17892
  ChipSelectField,
17758
17893
  {
17759
17894
  label,
@@ -17784,7 +17919,7 @@ function BoundChipSelectField(props) {
17784
17919
 
17785
17920
  // src/forms/BoundDateField.tsx
17786
17921
  import { Observer as Observer4 } from "mobx-react";
17787
- import { jsx as jsx102 } from "react/jsx-runtime";
17922
+ import { jsx as jsx103 } from "react/jsx-runtime";
17788
17923
  function BoundDateField(props) {
17789
17924
  const {
17790
17925
  field,
@@ -17797,7 +17932,7 @@ function BoundDateField(props) {
17797
17932
  ...others
17798
17933
  } = props;
17799
17934
  const testId = useTestIds(props, field.key);
17800
- return /* @__PURE__ */ jsx102(Observer4, { children: () => /* @__PURE__ */ jsx102(
17935
+ return /* @__PURE__ */ jsx103(Observer4, { children: () => /* @__PURE__ */ jsx103(
17801
17936
  DateField,
17802
17937
  {
17803
17938
  label,
@@ -17829,7 +17964,7 @@ function BoundDateField(props) {
17829
17964
 
17830
17965
  // src/forms/BoundDateRangeField.tsx
17831
17966
  import { Observer as Observer5 } from "mobx-react";
17832
- import { jsx as jsx103 } from "react/jsx-runtime";
17967
+ import { jsx as jsx104 } from "react/jsx-runtime";
17833
17968
  function BoundDateRangeField(props) {
17834
17969
  const {
17835
17970
  field,
@@ -17842,7 +17977,7 @@ function BoundDateRangeField(props) {
17842
17977
  ...others
17843
17978
  } = props;
17844
17979
  const testId = useTestIds(props, field.key);
17845
- return /* @__PURE__ */ jsx103(Observer5, { children: () => /* @__PURE__ */ jsx103(
17980
+ return /* @__PURE__ */ jsx104(Observer5, { children: () => /* @__PURE__ */ jsx104(
17846
17981
  DateRangeField,
17847
17982
  {
17848
17983
  label,
@@ -17875,125 +18010,9 @@ function BoundDateRangeField(props) {
17875
18010
  // src/forms/BoundForm.tsx
17876
18011
  import { useCallback as useCallback22, useMemo as useMemo32 } from "react";
17877
18012
 
17878
- // src/forms/BoundIconCardField.tsx
17879
- import { Observer as Observer6 } from "mobx-react";
17880
- import { jsx as jsx104 } from "react/jsx-runtime";
17881
- function BoundIconCardField(props) {
17882
- const { icon, field, onChange = (value) => field.set(value), label = defaultLabel(field.key), ...others } = props;
17883
- const testId = useTestIds(props, field.key);
17884
- return /* @__PURE__ */ jsx104(Observer6, { children: () => /* @__PURE__ */ jsx104(
17885
- IconCard,
17886
- {
17887
- icon,
17888
- label,
17889
- selected: field.value ?? false,
17890
- onChange: (selected) => {
17891
- onChange(selected);
17892
- field.maybeAutoSave();
17893
- },
17894
- disabled: field.readOnly,
17895
- ...testId,
17896
- ...others
17897
- }
17898
- ) });
17899
- }
17900
-
17901
- // src/forms/BoundIconCardGroupField.tsx
17902
- import { Observer as Observer7 } from "mobx-react";
17903
-
17904
- // src/inputs/IconCardGroup.tsx
17905
- import { useCallback as useCallback21, useMemo as useMemo31, useState as useState37 } from "react";
17906
- import { mergeProps as mergeProps21, useField } from "react-aria";
17907
- import { trussProps as trussProps60 } from "@homebound/truss/runtime";
17908
- import { jsx as jsx105, jsxs as jsxs59 } from "react/jsx-runtime";
17909
- function IconCardGroup(props) {
17910
- const {
17911
- fieldProps
17912
- } = usePresentationContext();
17913
- const {
17914
- options,
17915
- label,
17916
- labelStyle = fieldProps?.labelStyle ?? "above",
17917
- values,
17918
- errorMsg,
17919
- helperText,
17920
- disabled: isDisabled = false,
17921
- onChange
17922
- } = props;
17923
- const [selected, setSelected] = useState37(values);
17924
- const exclusiveOptions = useMemo31(() => options.filter((o) => o.exclusive), [options]);
17925
- const toggleValue = useCallback21((value) => {
17926
- if (isDisabled) return;
17927
- const option = options.find((o) => o.value === value);
17928
- if (!option) return;
17929
- let newSelected = [];
17930
- if (selected.includes(value)) {
17931
- newSelected = selected.filter((v) => v !== value);
17932
- } else {
17933
- if (option.exclusive) {
17934
- newSelected = [value];
17935
- } else {
17936
- newSelected = [...selected, value];
17937
- newSelected = newSelected.filter((v) => !exclusiveOptions.some((o) => o.value === v));
17938
- }
17939
- }
17940
- setSelected(newSelected);
17941
- onChange(newSelected);
17942
- }, [exclusiveOptions, isDisabled, onChange, options, selected]);
17943
- const tid = useTestIds(props);
17944
- const {
17945
- labelProps,
17946
- fieldProps: fieldPropsAria
17947
- } = useField(props);
17948
- const groupProps = mergeProps21(tid, {
17949
- role: "group",
17950
- "aria-disabled": isDisabled || void 0,
17951
- ...fieldPropsAria
17952
- });
17953
- return /* @__PURE__ */ jsxs59("div", { ...groupProps, children: [
17954
- labelStyle !== "hidden" && /* @__PURE__ */ jsx105("div", { ...trussProps60({
17955
- ...labelStyle === "left" ? {
17956
- width: "w50"
17957
- } : {}
17958
- }), children: /* @__PURE__ */ jsx105(Label, { label, ...labelProps, ...tid.label }) }),
17959
- /* @__PURE__ */ jsx105("div", { className: "df gap2 flexWrap_wrap", children: options.map((option) => {
17960
- const {
17961
- icon,
17962
- label: label2,
17963
- disabled
17964
- } = option;
17965
- const isSelected = selected.includes(option.value);
17966
- return /* @__PURE__ */ jsx105(IconCard, { icon, label: label2, selected: isSelected, disabled, onChange: () => toggleValue(option.value), ...tid[option.label] }, option.label);
17967
- }) }),
17968
- errorMsg && /* @__PURE__ */ jsx105(ErrorMessage, { errorMsg, ...tid.errorMsg }),
17969
- helperText && /* @__PURE__ */ jsx105(HelperText, { helperText, ...tid.helperText })
17970
- ] });
17971
- }
17972
-
17973
- // src/forms/BoundIconCardGroupField.tsx
17974
- import { jsx as jsx106 } from "react/jsx-runtime";
17975
- function BoundIconCardGroupField(props) {
17976
- const { field, onChange = (value) => field.set(value), label = defaultLabel(field.key), ...others } = props;
17977
- const testId = useTestIds(props, field.key);
17978
- return /* @__PURE__ */ jsx106(Observer7, { children: () => /* @__PURE__ */ jsx106(
17979
- IconCardGroup,
17980
- {
17981
- label,
17982
- values: field.value || [],
17983
- onChange: (values) => {
17984
- onChange(values);
17985
- field.maybeAutoSave();
17986
- },
17987
- disabled: field.readOnly,
17988
- ...testId,
17989
- ...others
17990
- }
17991
- ) });
17992
- }
17993
-
17994
18013
  // src/forms/BoundListField.tsx
17995
- import { Observer as Observer8 } from "mobx-react";
17996
- import { Fragment as Fragment24, jsx as jsx107, jsxs as jsxs60 } from "react/jsx-runtime";
18014
+ import { Observer as Observer6 } from "mobx-react";
18015
+ import { Fragment as Fragment24, jsx as jsx105, jsxs as jsxs60 } from "react/jsx-runtime";
17997
18016
  function ListField({
17998
18017
  row,
17999
18018
  formState
@@ -18010,9 +18029,9 @@ function ListField({
18010
18029
  const tid = useTestIds({}, "listField");
18011
18030
  const filteredRows = useComputed(() => filterDeleted ? listFieldObjectState.rows.filter((rowState) => filterDeleted(rowState)) : listFieldObjectState.rows, [filterDeleted]);
18012
18031
  const listIsValid = useComputed(() => listFieldObjectState.valid, [filteredRows]);
18013
- return /* @__PURE__ */ jsx107(Observer8, { children: () => /* @__PURE__ */ jsxs60("div", { className: "df fdc gap3", ...tid, children: [
18014
- filteredRows.map((rowState, index) => /* @__PURE__ */ jsx107(ListFieldRowInputs, { rowState, rowNumber: index + 1, listFieldConfig, formState, listFieldKey }, `listFieldRowInputs-${listFieldKey}-${index}`)),
18015
- /* @__PURE__ */ jsx107("div", { children: /* @__PURE__ */ jsx107(Button, { icon: "plus", label: `Add ${listFieldConfig.name}`, onClick: () => onNew(listFieldObjectState), variant: "secondary", disabled: !listIsValid }) })
18032
+ return /* @__PURE__ */ jsx105(Observer6, { children: () => /* @__PURE__ */ jsxs60("div", { className: "df fdc gap3", ...tid, children: [
18033
+ filteredRows.map((rowState, index) => /* @__PURE__ */ jsx105(ListFieldRowInputs, { rowState, rowNumber: index + 1, listFieldConfig, formState, listFieldKey }, `listFieldRowInputs-${listFieldKey}-${index}`)),
18034
+ /* @__PURE__ */ jsx105("div", { children: /* @__PURE__ */ jsx105(Button, { icon: "plus", label: `Add ${listFieldConfig.name}`, onClick: () => onNew(listFieldObjectState), variant: "secondary", disabled: !listIsValid }) })
18016
18035
  ] }) });
18017
18036
  }
18018
18037
  function ListFieldRowInputs({
@@ -18033,14 +18052,14 @@ function ListFieldRowInputs({
18033
18052
  " ",
18034
18053
  rowNumber
18035
18054
  ] }),
18036
- onDelete && /* @__PURE__ */ jsx107(ButtonMenu, { trigger: {
18055
+ onDelete && /* @__PURE__ */ jsx105(ButtonMenu, { trigger: {
18037
18056
  icon: "verticalDots"
18038
18057
  }, items: [{
18039
18058
  label: "Delete",
18040
18059
  onClick: () => onDelete(formState[listFieldKey], rowState)
18041
18060
  }], ...tid.menu })
18042
18061
  ] }),
18043
- listFieldConfig.rows.map((row, rowIndex) => /* @__PURE__ */ jsx107(FormRow, { row, formState: rowState }, `listField-${listFieldKey}-row-${rowIndex}`))
18062
+ listFieldConfig.rows.map((row, rowIndex) => /* @__PURE__ */ jsx105(FormRow, { row, formState: rowState }, `listField-${listFieldKey}-row-${rowIndex}`))
18044
18063
  ] });
18045
18064
  }
18046
18065
  function isListFieldKey(key) {
@@ -18057,8 +18076,8 @@ function isListFieldRow(row) {
18057
18076
  }
18058
18077
 
18059
18078
  // src/forms/BoundMultiLineSelectField.tsx
18060
- import { Observer as Observer9 } from "mobx-react";
18061
- import { jsx as jsx108 } from "react/jsx-runtime";
18079
+ import { Observer as Observer7 } from "mobx-react";
18080
+ import { jsx as jsx106 } from "react/jsx-runtime";
18062
18081
  function BoundMultiLineSelectField(props) {
18063
18082
  const {
18064
18083
  field,
@@ -18075,7 +18094,7 @@ function BoundMultiLineSelectField(props) {
18075
18094
  ...others
18076
18095
  } = props;
18077
18096
  const testId = useTestIds(props, field.key);
18078
- return /* @__PURE__ */ jsx108(Observer9, { children: () => /* @__PURE__ */ jsx108(
18097
+ return /* @__PURE__ */ jsx106(Observer7, { children: () => /* @__PURE__ */ jsx106(
18079
18098
  MultiLineSelectField,
18080
18099
  {
18081
18100
  label,
@@ -18105,8 +18124,8 @@ function BoundMultiLineSelectField(props) {
18105
18124
  }
18106
18125
 
18107
18126
  // src/forms/BoundMultiSelectField.tsx
18108
- import { Observer as Observer10 } from "mobx-react";
18109
- import { jsx as jsx109 } from "react/jsx-runtime";
18127
+ import { Observer as Observer8 } from "mobx-react";
18128
+ import { jsx as jsx107 } from "react/jsx-runtime";
18110
18129
  function BoundMultiSelectField(props) {
18111
18130
  const {
18112
18131
  field,
@@ -18123,7 +18142,7 @@ function BoundMultiSelectField(props) {
18123
18142
  ...others
18124
18143
  } = props;
18125
18144
  const testId = useTestIds(props, field.key);
18126
- return /* @__PURE__ */ jsx109(Observer10, { children: () => /* @__PURE__ */ jsx109(
18145
+ return /* @__PURE__ */ jsx107(Observer8, { children: () => /* @__PURE__ */ jsx107(
18127
18146
  MultiSelectField,
18128
18147
  {
18129
18148
  label,
@@ -18153,8 +18172,8 @@ function BoundMultiSelectField(props) {
18153
18172
  }
18154
18173
 
18155
18174
  // src/forms/BoundNumberField.tsx
18156
- import { Observer as Observer11 } from "mobx-react";
18157
- import { jsx as jsx110 } from "react/jsx-runtime";
18175
+ import { Observer as Observer9 } from "mobx-react";
18176
+ import { jsx as jsx108 } from "react/jsx-runtime";
18158
18177
  function BoundNumberField(props) {
18159
18178
  const {
18160
18179
  field,
@@ -18168,7 +18187,7 @@ function BoundNumberField(props) {
18168
18187
  ...others
18169
18188
  } = props;
18170
18189
  const testId = useTestIds(props, label || field.key);
18171
- return /* @__PURE__ */ jsx110(Observer11, { children: () => /* @__PURE__ */ jsx110(
18190
+ return /* @__PURE__ */ jsx108(Observer9, { children: () => /* @__PURE__ */ jsx108(
18172
18191
  NumberField,
18173
18192
  {
18174
18193
  label,
@@ -18197,8 +18216,8 @@ function BoundNumberField(props) {
18197
18216
  }
18198
18217
 
18199
18218
  // src/forms/BoundRadioGroupField.tsx
18200
- import { Observer as Observer12 } from "mobx-react";
18201
- import { jsx as jsx111 } from "react/jsx-runtime";
18219
+ import { Observer as Observer10 } from "mobx-react";
18220
+ import { jsx as jsx109 } from "react/jsx-runtime";
18202
18221
  function BoundRadioGroupField(props) {
18203
18222
  const {
18204
18223
  field,
@@ -18209,7 +18228,7 @@ function BoundRadioGroupField(props) {
18209
18228
  ...others
18210
18229
  } = props;
18211
18230
  const testId = useTestIds(props, field.key);
18212
- return /* @__PURE__ */ jsx111(Observer12, { children: () => /* @__PURE__ */ jsx111(
18231
+ return /* @__PURE__ */ jsx109(Observer10, { children: () => /* @__PURE__ */ jsx109(
18213
18232
  RadioGroupField,
18214
18233
  {
18215
18234
  label,
@@ -18235,8 +18254,8 @@ function BoundRadioGroupField(props) {
18235
18254
  }
18236
18255
 
18237
18256
  // src/forms/BoundRichTextField.tsx
18238
- import { Observer as Observer13 } from "mobx-react";
18239
- import { jsx as jsx112 } from "react/jsx-runtime";
18257
+ import { Observer as Observer11 } from "mobx-react";
18258
+ import { jsx as jsx110 } from "react/jsx-runtime";
18240
18259
  function BoundRichTextField(props) {
18241
18260
  const {
18242
18261
  field,
@@ -18248,7 +18267,7 @@ function BoundRichTextField(props) {
18248
18267
  ...others
18249
18268
  } = props;
18250
18269
  const testId = useTestIds(props, field.key);
18251
- return /* @__PURE__ */ jsx112(Observer13, { children: () => /* @__PURE__ */ jsx112(
18270
+ return /* @__PURE__ */ jsx110(Observer11, { children: () => /* @__PURE__ */ jsx110(
18252
18271
  RichTextField,
18253
18272
  {
18254
18273
  label,
@@ -18269,6 +18288,51 @@ function BoundRichTextField(props) {
18269
18288
  ) });
18270
18289
  }
18271
18290
 
18291
+ // src/forms/BoundSelectCardField.tsx
18292
+ import { Observer as Observer12 } from "mobx-react";
18293
+ import { jsx as jsx111 } from "react/jsx-runtime";
18294
+ function BoundSelectCardField(props) {
18295
+ const { icon, field, onChange = (value) => field.set(value), label = defaultLabel(field.key), ...others } = props;
18296
+ const testId = useTestIds(props, field.key);
18297
+ return /* @__PURE__ */ jsx111(Observer12, { children: () => /* @__PURE__ */ jsx111(
18298
+ SelectCard,
18299
+ {
18300
+ icon,
18301
+ label,
18302
+ selected: field.value ?? false,
18303
+ onChange: (selected) => {
18304
+ onChange(selected);
18305
+ field.maybeAutoSave();
18306
+ },
18307
+ disabled: field.readOnly,
18308
+ ...testId,
18309
+ ...others
18310
+ }
18311
+ ) });
18312
+ }
18313
+
18314
+ // src/forms/BoundSelectCardGroupField.tsx
18315
+ import { Observer as Observer13 } from "mobx-react";
18316
+ import { jsx as jsx112 } from "react/jsx-runtime";
18317
+ function BoundSelectCardGroupField(props) {
18318
+ const { field, onChange = (value) => field.set(value), label = defaultLabel(field.key), ...others } = props;
18319
+ const testId = useTestIds(props, field.key);
18320
+ return /* @__PURE__ */ jsx112(Observer13, { children: () => /* @__PURE__ */ jsx112(
18321
+ SelectCardGroup,
18322
+ {
18323
+ label,
18324
+ values: field.value || [],
18325
+ onChange: (values) => {
18326
+ onChange(values);
18327
+ field.maybeAutoSave();
18328
+ },
18329
+ disabled: field.readOnly,
18330
+ ...testId,
18331
+ ...others
18332
+ }
18333
+ ) });
18334
+ }
18335
+
18272
18336
  // src/forms/BoundSelectField.tsx
18273
18337
  import { Observer as Observer14 } from "mobx-react";
18274
18338
  import { jsx as jsx113 } from "react/jsx-runtime";
@@ -18714,15 +18778,15 @@ function boundCheckboxGroupField(props) {
18714
18778
  minWidth: "200px"
18715
18779
  });
18716
18780
  }
18717
- function boundIconCardField(props) {
18781
+ function boundSelectCardField(props) {
18718
18782
  return (field) => ({
18719
- component: /* @__PURE__ */ jsx120(BoundIconCardField, { field, ...props }),
18783
+ component: /* @__PURE__ */ jsx120(BoundSelectCardField, { field, ...props }),
18720
18784
  minWidth: "150px"
18721
18785
  });
18722
18786
  }
18723
- function boundIconCardGroupField(props) {
18787
+ function boundSelectCardGroupField(props) {
18724
18788
  return (field) => ({
18725
- component: /* @__PURE__ */ jsx120(BoundIconCardGroupField, { field, ...props }),
18789
+ component: /* @__PURE__ */ jsx120(BoundSelectCardGroupField, { field, ...props }),
18726
18790
  minWidth: "100%"
18727
18791
  });
18728
18792
  }
@@ -19300,7 +19364,7 @@ var activeStyles = {
19300
19364
  "--boxShadow": maybeCssVar39(`inset 3px 0px 0 0px ${"rgba(37, 99, 235, 1)" /* Blue600 */}`)
19301
19365
  }]
19302
19366
  };
19303
- var hoverStyles2 = {
19367
+ var hoverStyles3 = {
19304
19368
  backgroundColor: "bgBlue50",
19305
19369
  fontWeight: "fw6",
19306
19370
  fontSize: "fz_14px",
@@ -19368,7 +19432,7 @@ function SectionNavLink(props) {
19368
19432
  },
19369
19433
  ...isFocusVisible ? defaultFocusRingStyles : {},
19370
19434
  ...active ? activeStyles : {},
19371
- ...isPressed ? activeStyles : isHovered ? hoverStyles2 : {}
19435
+ ...isPressed ? activeStyles : isHovered ? hoverStyles3 : {}
19372
19436
  }), ...tids.sectionNavLink, children: section.title });
19373
19437
  }
19374
19438
  function useActiveSection(sectionsWithRefs) {
@@ -21242,7 +21306,7 @@ function GroupButton(props) {
21242
21306
  },
21243
21307
  ...isFocusVisible ? defaultFocusRingStyles2 : {},
21244
21308
  ...active ? activeStyles2 : {},
21245
- ...isPressed ? pressedStyles : isHovered ? hoverStyles3 : {},
21309
+ ...isPressed ? pressedStyles : isHovered ? hoverStyles4 : {},
21246
21310
  ...icon ? iconStyles2[size] : {}
21247
21311
  }), ...tid[defaultTestId(typeof text === "string" && text || icon || "button")], children: [
21248
21312
  icon && /* @__PURE__ */ jsx160(Icon, { xss: {
@@ -21260,7 +21324,7 @@ var pressedStyles = {
21260
21324
  var activeStyles2 = {
21261
21325
  backgroundColor: "bgGray300"
21262
21326
  };
21263
- var hoverStyles3 = {
21327
+ var hoverStyles4 = {
21264
21328
  backgroundColor: "bgGray100"
21265
21329
  };
21266
21330
  var defaultFocusRingStyles2 = {
@@ -22350,7 +22414,7 @@ function AppNavGroupTrigger(props) {
22350
22414
  const {
22351
22415
  baseStyles: baseStyles5,
22352
22416
  focusRingStyles: focusRingStyles2,
22353
- hoverStyles: hoverStyles4,
22417
+ hoverStyles: hoverStyles5,
22354
22418
  pressedStyles: pressedStyles2
22355
22419
  } = useMemo49(() => getNavLinkStyles("side"), []);
22356
22420
  return /* @__PURE__ */ jsxs87("button", { type: "button", ...mergeProps27(buttonProps, focusProps, hoverProps, tid.trigger, {
@@ -22360,7 +22424,7 @@ function AppNavGroupTrigger(props) {
22360
22424
  ...mergeProps_14(navLink, void 0, {
22361
22425
  ...baseStyles5,
22362
22426
  ...isFocusVisible && focusRingStyles2,
22363
- ...isHovered && hoverStyles4,
22427
+ ...isHovered && hoverStyles5,
22364
22428
  ...isPressed && pressedStyles2
22365
22429
  })
22366
22430
  }), children: [
@@ -23017,7 +23081,7 @@ function TabImpl(props) {
23017
23081
  baseStyles: baseStyles5,
23018
23082
  activeStyles: activeStyles3,
23019
23083
  focusRingStyles: focusRingStyles2,
23020
- hoverStyles: hoverStyles4,
23084
+ hoverStyles: hoverStyles5,
23021
23085
  disabledStyles: disabledStyles4,
23022
23086
  activeHoverStyles
23023
23087
  } = useMemo51(() => getTabStyles(), []);
@@ -23034,7 +23098,7 @@ function TabImpl(props) {
23034
23098
  ...baseStyles5,
23035
23099
  ...active && activeStyles3,
23036
23100
  ...isDisabled && disabledStyles4,
23037
- ...isHovered && hoverStyles4,
23101
+ ...isHovered && hoverStyles5,
23038
23102
  ...isHovered && active && activeHoverStyles,
23039
23103
  ...isFocusVisible && active && focusRingStyles2
23040
23104
  })
@@ -24528,14 +24592,14 @@ export {
24528
24592
  BoundDateField,
24529
24593
  BoundDateRangeField,
24530
24594
  BoundForm,
24531
- BoundIconCardField,
24532
- BoundIconCardGroupField,
24533
24595
  BoundMultiLineSelectField,
24534
24596
  BoundMultiSelectField,
24535
24597
  BoundNumberField,
24536
24598
  BoundRadioGroupField,
24537
24599
  BoundRichTextField,
24538
24600
  BoundSelectAndTextField,
24601
+ BoundSelectCardField,
24602
+ BoundSelectCardGroupField,
24539
24603
  BoundSelectField,
24540
24604
  BoundSwitchField,
24541
24605
  BoundTextAreaField,
@@ -24595,7 +24659,6 @@ export {
24595
24659
  HomeboundLogo,
24596
24660
  Icon,
24597
24661
  IconButton,
24598
- IconCard,
24599
24662
  Icons,
24600
24663
  KEPT_GROUP,
24601
24664
  Loader,
@@ -24637,6 +24700,8 @@ export {
24637
24700
  ScrollableContent,
24638
24701
  ScrollableFooter,
24639
24702
  ScrollableParent,
24703
+ SelectCard,
24704
+ SelectCardGroup,
24640
24705
  SelectField,
24641
24706
  SelectToggle,
24642
24707
  SideNav,
@@ -24685,13 +24750,13 @@ export {
24685
24750
  boundCheckboxGroupField,
24686
24751
  boundDateField,
24687
24752
  boundDateRangeField,
24688
- boundIconCardField,
24689
- boundIconCardGroupField,
24690
24753
  boundMultiSelectField,
24691
24754
  boundMultilineSelectField,
24692
24755
  boundNumberField,
24693
24756
  boundRadioGroupField,
24694
24757
  boundRichTextField,
24758
+ boundSelectCardField,
24759
+ boundSelectCardGroupField,
24695
24760
  boundSelectField,
24696
24761
  boundSwitchField,
24697
24762
  boundTextAreaField,
@@ -24731,6 +24796,7 @@ export {
24731
24796
  emptyCell,
24732
24797
  ensureClientSideSortValueIsSortable,
24733
24798
  environmentBannerSizePx,
24799
+ fillRowStyles,
24734
24800
  filterTestIdPrefix,
24735
24801
  formatDate,
24736
24802
  formatDateRange,
@@ -24747,7 +24813,6 @@ export {
24747
24813
  getTableStyles,
24748
24814
  headerRenderFn,
24749
24815
  hoverStyles,
24750
- iconCardStylesHover,
24751
24816
  increment,
24752
24817
  insertAtIndex,
24753
24818
  isContentColumn,
@@ -24789,7 +24854,6 @@ export {
24789
24854
  rowClickRenderFn,
24790
24855
  rowLinkRenderFn,
24791
24856
  selectColumn,
24792
- selectedStyles,
24793
24857
  setDefaultStyle,
24794
24858
  setEnvironmentFavicon,
24795
24859
  setGridTableDefaults,