@homebound/beam 3.97.0 → 3.99.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +209 -190
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -6
- package/dist/index.d.ts +10 -6
- package/dist/index.js +140 -121
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -20015,7 +20015,7 @@ function SuperDrawer() {
|
|
|
20015
20015
|
}
|
|
20016
20016
|
|
|
20017
20017
|
// src/components/Layout/FormPageLayout.tsx
|
|
20018
|
-
import React19, { createRef, useCallback as useCallback29, useEffect as useEffect26, useMemo as useMemo37, useRef as
|
|
20018
|
+
import React19, { createRef, useCallback as useCallback29, useEffect as useEffect26, useMemo as useMemo37, useRef as useRef53, useState as useState44 } from "react";
|
|
20019
20019
|
import { useButton as useButton9, useFocusRing as useFocusRing14 } from "react-aria";
|
|
20020
20020
|
|
|
20021
20021
|
// src/forms/BoundCheckboxField.tsx
|
|
@@ -21415,20 +21415,78 @@ function applyActiveStyles(el, activeStyles3) {
|
|
|
21415
21415
|
if (style) setInlineStyles(el, style);
|
|
21416
21416
|
}
|
|
21417
21417
|
|
|
21418
|
-
// src/components/
|
|
21418
|
+
// src/components/ButtonMenu.tsx
|
|
21419
|
+
import { useRef as useRef51 } from "react";
|
|
21420
|
+
import { useMenuTrigger as useMenuTrigger2 } from "react-aria";
|
|
21421
|
+
import { useMenuTriggerState as useMenuTriggerState2 } from "react-stately";
|
|
21419
21422
|
import { jsx as jsx148 } from "react/jsx-runtime";
|
|
21423
|
+
function ButtonMenu(props) {
|
|
21424
|
+
const { defaultOpen, disabled, items, persistentItems, trigger, searchable } = props;
|
|
21425
|
+
let selectedItem, onChange;
|
|
21426
|
+
if (isSelectionButtonMenuProps(props)) {
|
|
21427
|
+
selectedItem = props.selectedItem;
|
|
21428
|
+
onChange = props.onChange;
|
|
21429
|
+
}
|
|
21430
|
+
const state = useMenuTriggerState2({ isOpen: defaultOpen });
|
|
21431
|
+
const buttonRef = useRef51(null);
|
|
21432
|
+
const { menuTriggerProps, menuProps } = useMenuTrigger2({ isDisabled: !!disabled }, state, buttonRef);
|
|
21433
|
+
const tid = useTestIds(
|
|
21434
|
+
props,
|
|
21435
|
+
isTextButton(trigger) ? labelOr(trigger, "buttonMenu") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
21436
|
+
);
|
|
21437
|
+
return /* @__PURE__ */ jsx148(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ jsx148(
|
|
21438
|
+
Menu,
|
|
21439
|
+
{
|
|
21440
|
+
ariaMenuProps: menuProps,
|
|
21441
|
+
onClose: () => state.close(),
|
|
21442
|
+
items,
|
|
21443
|
+
persistentItems,
|
|
21444
|
+
searchable,
|
|
21445
|
+
selectedItem,
|
|
21446
|
+
onChange,
|
|
21447
|
+
...tid
|
|
21448
|
+
}
|
|
21449
|
+
) });
|
|
21450
|
+
}
|
|
21451
|
+
function isSelectionButtonMenuProps(props) {
|
|
21452
|
+
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
21453
|
+
}
|
|
21454
|
+
|
|
21455
|
+
// src/components/Headers/HeaderActions.tsx
|
|
21456
|
+
import { jsx as jsx149 } from "react/jsx-runtime";
|
|
21420
21457
|
function HeaderActions(props) {
|
|
21421
21458
|
const {
|
|
21422
21459
|
actions,
|
|
21423
21460
|
...otherProps
|
|
21424
21461
|
} = props;
|
|
21425
21462
|
const tid = useTestIds(otherProps, "headerActions");
|
|
21426
|
-
return /* @__PURE__ */
|
|
21463
|
+
return /* @__PURE__ */ jsx149("div", { className: "df aic gap1 fs0", ...tid, children: actions.map((action, i) => {
|
|
21464
|
+
const key = headerActionKey(action, i);
|
|
21465
|
+
if (action.kind === "icon") {
|
|
21466
|
+
return /* @__PURE__ */ jsx149(IconButton, { ...action, variant: "outline" }, key);
|
|
21467
|
+
}
|
|
21468
|
+
if (action.kind === "menu") {
|
|
21469
|
+
const {
|
|
21470
|
+
kind,
|
|
21471
|
+
...menuProps
|
|
21472
|
+
} = action;
|
|
21473
|
+
void kind;
|
|
21474
|
+
return /* @__PURE__ */ jsx149(ButtonMenu, { ...menuProps, trigger: {
|
|
21475
|
+
icon: "verticalDots"
|
|
21476
|
+
} }, key);
|
|
21477
|
+
}
|
|
21478
|
+
return /* @__PURE__ */ jsx149(Button, { ...action }, key);
|
|
21479
|
+
}) });
|
|
21480
|
+
}
|
|
21481
|
+
function headerActionKey(action, index) {
|
|
21482
|
+
if (action.kind === "icon") return `${action.icon}-${index}`;
|
|
21483
|
+
if (action.kind === "menu") return `menu-${index}`;
|
|
21484
|
+
return `${String(action.label)}-${index}`;
|
|
21427
21485
|
}
|
|
21428
21486
|
|
|
21429
21487
|
// src/components/Headers/ContentHeader.tsx
|
|
21430
21488
|
import { trussProps as trussProps89 } from "@homebound/truss/runtime";
|
|
21431
|
-
import { jsx as
|
|
21489
|
+
import { jsx as jsx150, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
21432
21490
|
function ContentHeader(props) {
|
|
21433
21491
|
const {
|
|
21434
21492
|
title,
|
|
@@ -21458,7 +21516,7 @@ function ContentHeader(props) {
|
|
|
21458
21516
|
if (!title && !description && !actions && !withAutoSave) {
|
|
21459
21517
|
return null;
|
|
21460
21518
|
}
|
|
21461
|
-
const descriptionEl = description && /* @__PURE__ */
|
|
21519
|
+
const descriptionEl = description && /* @__PURE__ */ jsx150("div", { ...trussProps89({
|
|
21462
21520
|
fontWeight: "fw4",
|
|
21463
21521
|
fontSize: "fz_14px",
|
|
21464
21522
|
lineHeight: "lh_20px",
|
|
@@ -21484,11 +21542,11 @@ function ContentHeader(props) {
|
|
|
21484
21542
|
/* @__PURE__ */ jsxs73("div", { className: "df aic jcsb mw0", children: [
|
|
21485
21543
|
title ? /* @__PURE__ */ jsxs73("div", { className: "df aic gap1 mw0", children: [
|
|
21486
21544
|
startAdornment,
|
|
21487
|
-
/* @__PURE__ */
|
|
21545
|
+
/* @__PURE__ */ jsx150(Heading, { ...trussProps89(titleCss), ...tid.title, children: title })
|
|
21488
21546
|
] }) : descriptionEl,
|
|
21489
21547
|
(withAutoSave || actions) && /* @__PURE__ */ jsxs73("div", { className: "df gap1 fs0", ...tid.actions, children: [
|
|
21490
|
-
withAutoSave && /* @__PURE__ */
|
|
21491
|
-
actions && /* @__PURE__ */
|
|
21548
|
+
withAutoSave && /* @__PURE__ */ jsx150(AutoSaveIndicator, {}),
|
|
21549
|
+
actions && /* @__PURE__ */ jsx150(HeaderActions, { actions })
|
|
21492
21550
|
] })
|
|
21493
21551
|
] }),
|
|
21494
21552
|
title && descriptionEl
|
|
@@ -21525,12 +21583,12 @@ var headingByLevel = {
|
|
|
21525
21583
|
import { trussProps as trussProps92, maybeCssVar as maybeCssVar44 } from "@homebound/truss/runtime";
|
|
21526
21584
|
|
|
21527
21585
|
// src/forms/FormSection/FormSectionChild.tsx
|
|
21528
|
-
import { useRef as
|
|
21586
|
+
import { useRef as useRef52 } from "react";
|
|
21529
21587
|
|
|
21530
21588
|
// src/components/DnDGrid/DnDGridItemHandle.tsx
|
|
21531
21589
|
import { mergeProps as mergeProps23, useFocusRing as useFocusRing13, useHover as useHover16 } from "react-aria";
|
|
21532
21590
|
import { trussProps as trussProps90 } from "@homebound/truss/runtime";
|
|
21533
|
-
import { jsx as
|
|
21591
|
+
import { jsx as jsx151 } from "react/jsx-runtime";
|
|
21534
21592
|
function DnDGridItemHandle(props) {
|
|
21535
21593
|
const {
|
|
21536
21594
|
dragHandleProps,
|
|
@@ -21559,7 +21617,7 @@ function DnDGridItemHandle(props) {
|
|
|
21559
21617
|
borderRadius: "br4",
|
|
21560
21618
|
borderWidth: "bw1"
|
|
21561
21619
|
};
|
|
21562
|
-
return /* @__PURE__ */
|
|
21620
|
+
return /* @__PURE__ */ jsx151("button", { ...trussProps90({
|
|
21563
21621
|
...compact ? iconButtonCompact : iconButtonNormal,
|
|
21564
21622
|
...{
|
|
21565
21623
|
cursor: "cursor_grab",
|
|
@@ -21578,7 +21636,7 @@ function DnDGridItemHandle(props) {
|
|
|
21578
21636
|
...isHovered && {
|
|
21579
21637
|
backgroundColor: "bgGray200"
|
|
21580
21638
|
}
|
|
21581
|
-
}), ...mergeProps23(dragHandleProps, focusProps, hoverProps), ...tid, children: /* @__PURE__ */
|
|
21639
|
+
}), ...mergeProps23(dragHandleProps, focusProps, hoverProps), ...tid, children: /* @__PURE__ */ jsx151(Icon, { icon, inc: compact ? 2 : void 0, color }) });
|
|
21582
21640
|
}
|
|
21583
21641
|
|
|
21584
21642
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
@@ -21609,7 +21667,7 @@ function useDnDGridItem(props) {
|
|
|
21609
21667
|
|
|
21610
21668
|
// src/forms/FormSection/FormSectionChild.tsx
|
|
21611
21669
|
import { trussProps as trussProps91 } from "@homebound/truss/runtime";
|
|
21612
|
-
import { jsx as
|
|
21670
|
+
import { jsx as jsx152, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
21613
21671
|
function FormSectionChild(props) {
|
|
21614
21672
|
const {
|
|
21615
21673
|
title,
|
|
@@ -21619,7 +21677,7 @@ function FormSectionChild(props) {
|
|
|
21619
21677
|
orderField
|
|
21620
21678
|
} = props;
|
|
21621
21679
|
const tid = useTestIds(props, "formSectionChild");
|
|
21622
|
-
const itemRef =
|
|
21680
|
+
const itemRef = useRef52(null);
|
|
21623
21681
|
const isDraggable = !!orderField;
|
|
21624
21682
|
const {
|
|
21625
21683
|
dragItemProps,
|
|
@@ -21647,13 +21705,13 @@ function FormSectionChild(props) {
|
|
|
21647
21705
|
borderStyle: "lot_bsn",
|
|
21648
21706
|
borderWidth: "lot_bw_0"
|
|
21649
21707
|
}), ...tid, children: [
|
|
21650
|
-
/* @__PURE__ */
|
|
21708
|
+
/* @__PURE__ */ jsx152(ContentHeader, { ...tid.header, title, description, actions, level: 4, startAdornment: isDraggable ? /* @__PURE__ */ jsx152(DnDGridItemHandle, { dragHandleProps, icon: "drag", compact: true }) : void 0 }),
|
|
21651
21709
|
fields
|
|
21652
21710
|
] });
|
|
21653
21711
|
}
|
|
21654
21712
|
|
|
21655
21713
|
// src/forms/FormSection/FormSection.tsx
|
|
21656
|
-
import { jsx as
|
|
21714
|
+
import { jsx as jsx153, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
21657
21715
|
function FormSection(props) {
|
|
21658
21716
|
const {
|
|
21659
21717
|
title,
|
|
@@ -21671,9 +21729,9 @@ function FormSection(props) {
|
|
|
21671
21729
|
"--scrollMarginTop": maybeCssVar44(stickyNavAndHeaderOffset())
|
|
21672
21730
|
}]
|
|
21673
21731
|
}), ...tid.section, children: [
|
|
21674
|
-
/* @__PURE__ */
|
|
21732
|
+
/* @__PURE__ */ jsx153(ContentHeader, { ...tid, title, description, actions, level: 3 }),
|
|
21675
21733
|
fields,
|
|
21676
|
-
childSections && (isReorderable(childSections) ? /* @__PURE__ */
|
|
21734
|
+
childSections && (isReorderable(childSections) ? /* @__PURE__ */ jsx153(DraggableChildren, { childSections, ...tid.childSection }) : /* @__PURE__ */ jsx153("div", { className: "df fdc gap3", children: childSections.map((child) => /* @__PURE__ */ jsx153(FormSectionChild, { ...child, ...tid.childSection }, child.id ?? child.title)) }))
|
|
21677
21735
|
] });
|
|
21678
21736
|
}
|
|
21679
21737
|
function isReorderable(childSections) {
|
|
@@ -21696,10 +21754,10 @@ function DraggableChildren(props) {
|
|
|
21696
21754
|
}
|
|
21697
21755
|
});
|
|
21698
21756
|
};
|
|
21699
|
-
return /* @__PURE__ */
|
|
21757
|
+
return /* @__PURE__ */ jsx153(DnDGrid, { onReorder: handleReorder, gridStyles: {
|
|
21700
21758
|
gridTemplateColumns: "gtc_minmax_0_1fr",
|
|
21701
21759
|
gap: "gap3"
|
|
21702
|
-
}, children: sorted.map((child) => /* @__PURE__ */
|
|
21760
|
+
}, children: sorted.map((child) => /* @__PURE__ */ jsx153(FormSectionChild, { ...child, ...tid }, child.id)) });
|
|
21703
21761
|
}
|
|
21704
21762
|
function sortByOrderField(childSections) {
|
|
21705
21763
|
return [...childSections].sort((a, b) => (a.orderField.value ?? 0) - (b.orderField.value ?? 0));
|
|
@@ -21708,7 +21766,7 @@ function sortByOrderField(childSections) {
|
|
|
21708
21766
|
// src/forms/StaticField.tsx
|
|
21709
21767
|
import { useId as useId3 } from "@react-aria/utils";
|
|
21710
21768
|
import { trussProps as trussProps93 } from "@homebound/truss/runtime";
|
|
21711
|
-
import { jsx as
|
|
21769
|
+
import { jsx as jsx154, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
21712
21770
|
function StaticField(props) {
|
|
21713
21771
|
const {
|
|
21714
21772
|
fieldProps
|
|
@@ -21728,7 +21786,7 @@ function StaticField(props) {
|
|
|
21728
21786
|
maxWidth: "maxw100"
|
|
21729
21787
|
} : {}
|
|
21730
21788
|
}), ...tid.container, children: [
|
|
21731
|
-
/* @__PURE__ */
|
|
21789
|
+
/* @__PURE__ */ jsx154("label", { ...trussProps93({
|
|
21732
21790
|
display: "db",
|
|
21733
21791
|
fontWeight: "fw4",
|
|
21734
21792
|
fontSize: "fz_14px",
|
|
@@ -21738,7 +21796,7 @@ function StaticField(props) {
|
|
|
21738
21796
|
}],
|
|
21739
21797
|
marginBottom: "mb_4px"
|
|
21740
21798
|
}), htmlFor: id, ...tid.label, children: label }),
|
|
21741
|
-
/* @__PURE__ */
|
|
21799
|
+
/* @__PURE__ */ jsx154("div", { id, ...trussProps93({
|
|
21742
21800
|
fontWeight: "fw4",
|
|
21743
21801
|
fontSize: "fz_14px",
|
|
21744
21802
|
lineHeight: "lh_20px",
|
|
@@ -21756,7 +21814,7 @@ function StaticField(props) {
|
|
|
21756
21814
|
|
|
21757
21815
|
// src/forms/SubmitButton.tsx
|
|
21758
21816
|
import { useLocalObservable } from "mobx-react";
|
|
21759
|
-
import { jsx as
|
|
21817
|
+
import { jsx as jsx155 } from "react/jsx-runtime";
|
|
21760
21818
|
function SubmitButton(props) {
|
|
21761
21819
|
const { form, disabled, onClick, label = "Submit", ...others } = props;
|
|
21762
21820
|
if (typeof onClick === "string") {
|
|
@@ -21766,7 +21824,7 @@ function SubmitButton(props) {
|
|
|
21766
21824
|
const canSubmit = useComputed(() => {
|
|
21767
21825
|
return form.isNewEntity && !state.clicked ? true : form.dirty && form.valid;
|
|
21768
21826
|
}, [form]);
|
|
21769
|
-
return /* @__PURE__ */
|
|
21827
|
+
return /* @__PURE__ */ jsx155(
|
|
21770
21828
|
Button,
|
|
21771
21829
|
{
|
|
21772
21830
|
label,
|
|
@@ -21789,7 +21847,7 @@ import { useDebouncedCallback as useDebouncedCallback5 } from "use-debounce";
|
|
|
21789
21847
|
import { AnimatePresence as AnimatePresence2, motion as motion2 } from "framer-motion";
|
|
21790
21848
|
import { useState as useState41 } from "react";
|
|
21791
21849
|
import { trussProps as trussProps94, maybeCssVar as maybeCssVar45 } from "@homebound/truss/runtime";
|
|
21792
|
-
import { Fragment as Fragment29, jsx as
|
|
21850
|
+
import { Fragment as Fragment29, jsx as jsx156, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
21793
21851
|
var __maybeInc20 = (inc) => {
|
|
21794
21852
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
21795
21853
|
};
|
|
@@ -21801,7 +21859,7 @@ function RightSidebar({
|
|
|
21801
21859
|
const [selectedIcon, setSelectedIcon] = useState41(void 0);
|
|
21802
21860
|
const tid = useTestIds({}, "rightSidebar");
|
|
21803
21861
|
return /* @__PURE__ */ jsxs77(Fragment29, { children: [
|
|
21804
|
-
/* @__PURE__ */
|
|
21862
|
+
/* @__PURE__ */ jsx156("div", { className: "df jcfe absolute right0 pr3", children: /* @__PURE__ */ jsx156(AnimatePresence2, { children: !selectedIcon && /* @__PURE__ */ jsx156(motion2.div, { className: "df fdc gap2 z1", initial: {
|
|
21805
21863
|
x: "100%",
|
|
21806
21864
|
opacity: 0
|
|
21807
21865
|
}, animate: {
|
|
@@ -21814,8 +21872,8 @@ function RightSidebar({
|
|
|
21814
21872
|
ease: [0.51, 0.92, 0.24, 1],
|
|
21815
21873
|
duration: 0.3,
|
|
21816
21874
|
delay: 0.2
|
|
21817
|
-
}, children: /* @__PURE__ */
|
|
21818
|
-
/* @__PURE__ */
|
|
21875
|
+
}, children: /* @__PURE__ */ jsx156(IconButtonList, { content, selectedIcon, onIconClick: setSelectedIcon }) }) }) }),
|
|
21876
|
+
/* @__PURE__ */ jsx156(AnimatePresence2, { children: selectedIcon && /* @__PURE__ */ jsx156(motion2.div, { initial: {
|
|
21819
21877
|
x: "100%",
|
|
21820
21878
|
opacity: 0
|
|
21821
21879
|
}, animate: {
|
|
@@ -21861,8 +21919,8 @@ function RightSidebar({
|
|
|
21861
21919
|
flexDirection: "fdc",
|
|
21862
21920
|
alignItems: "aic"
|
|
21863
21921
|
}), children: [
|
|
21864
|
-
/* @__PURE__ */
|
|
21865
|
-
/* @__PURE__ */
|
|
21922
|
+
/* @__PURE__ */ jsx156(IconButton, { bgColor: "--b-surface" /* Surface */, variant: "circle", onClick: () => setSelectedIcon(void 0), icon: "x", inc: 3.5 }),
|
|
21923
|
+
/* @__PURE__ */ jsx156("div", { ...trussProps94({
|
|
21866
21924
|
position: "absolute",
|
|
21867
21925
|
top: "top_48px",
|
|
21868
21926
|
height: "h_calc_100vh_168px",
|
|
@@ -21872,9 +21930,9 @@ function RightSidebar({
|
|
|
21872
21930
|
}]
|
|
21873
21931
|
}) })
|
|
21874
21932
|
] }),
|
|
21875
|
-
/* @__PURE__ */
|
|
21933
|
+
/* @__PURE__ */ jsx156("div", { className: "df aic jcfe gap2 mb3", children: /* @__PURE__ */ jsx156(IconButtonList, { content, selectedIcon, onIconClick: setSelectedIcon }) })
|
|
21876
21934
|
] }),
|
|
21877
|
-
selectedIcon && /* @__PURE__ */
|
|
21935
|
+
selectedIcon && /* @__PURE__ */ jsx156("div", { ...tid.content, className: "pl3", children: content.find((sidebar) => sidebar.icon === selectedIcon)?.render() })
|
|
21878
21936
|
] }) }, "rightSidebar") })
|
|
21879
21937
|
] });
|
|
21880
21938
|
}
|
|
@@ -21883,9 +21941,9 @@ function IconButtonList({
|
|
|
21883
21941
|
selectedIcon,
|
|
21884
21942
|
onIconClick
|
|
21885
21943
|
}) {
|
|
21886
|
-
return /* @__PURE__ */
|
|
21944
|
+
return /* @__PURE__ */ jsx156(Fragment29, { children: content.map(({
|
|
21887
21945
|
icon
|
|
21888
|
-
}) => /* @__PURE__ */
|
|
21946
|
+
}) => /* @__PURE__ */ jsx156(
|
|
21889
21947
|
IconButton,
|
|
21890
21948
|
{
|
|
21891
21949
|
variant: "circle",
|
|
@@ -21900,7 +21958,7 @@ function IconButtonList({
|
|
|
21900
21958
|
|
|
21901
21959
|
// src/components/Toast/ToastContext.tsx
|
|
21902
21960
|
import { createContext as createContext10, useCallback as useCallback28, useContext as useContext20, useMemo as useMemo35, useState as useState42 } from "react";
|
|
21903
|
-
import { jsx as
|
|
21961
|
+
import { jsx as jsx157 } from "react/jsx-runtime";
|
|
21904
21962
|
var ToastContext = createContext10({
|
|
21905
21963
|
setNotice: () => {
|
|
21906
21964
|
throw new Error("Missing ToastProvider");
|
|
@@ -21913,25 +21971,25 @@ function ToastProvider(props) {
|
|
|
21913
21971
|
const [notice, setNotice] = useState42();
|
|
21914
21972
|
const clear = useCallback28(() => setNotice(void 0), [setNotice]);
|
|
21915
21973
|
const contextValue = useMemo35(() => ({ setNotice, notice, clear }), [notice, clear]);
|
|
21916
|
-
return /* @__PURE__ */
|
|
21974
|
+
return /* @__PURE__ */ jsx157(ToastContext.Provider, { value: contextValue, children: props.children });
|
|
21917
21975
|
}
|
|
21918
21976
|
function useToastContext() {
|
|
21919
21977
|
return useContext20(ToastContext);
|
|
21920
21978
|
}
|
|
21921
21979
|
|
|
21922
21980
|
// src/components/Toast/Toast.tsx
|
|
21923
|
-
import { Fragment as Fragment30, jsx as
|
|
21981
|
+
import { Fragment as Fragment30, jsx as jsx158 } from "react/jsx-runtime";
|
|
21924
21982
|
function Toast() {
|
|
21925
21983
|
const { setNotice, notice } = useToastContext();
|
|
21926
21984
|
const tid = useTestIds({}, "toast");
|
|
21927
|
-
return /* @__PURE__ */
|
|
21985
|
+
return /* @__PURE__ */ jsx158(Fragment30, { children: notice && /* @__PURE__ */ jsx158(Banner, { ...notice, ...tid, onClose: () => setNotice(void 0) }) });
|
|
21928
21986
|
}
|
|
21929
21987
|
|
|
21930
21988
|
// src/components/Layout/PageHeaderBreadcrumbs.tsx
|
|
21931
21989
|
import { Fragment as Fragment31, useMemo as useMemo36, useState as useState43 } from "react";
|
|
21932
21990
|
import { Link as Link5 } from "react-router-dom";
|
|
21933
21991
|
import { trussProps as trussProps95, mergeProps as mergeProps24 } from "@homebound/truss/runtime";
|
|
21934
|
-
import { Fragment as Fragment32, jsx as
|
|
21992
|
+
import { Fragment as Fragment32, jsx as jsx159, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
21935
21993
|
function PageHeaderBreadcrumbs({
|
|
21936
21994
|
breadcrumb
|
|
21937
21995
|
}) {
|
|
@@ -21942,7 +22000,7 @@ function PageHeaderBreadcrumbs({
|
|
|
21942
22000
|
return (
|
|
21943
22001
|
// Adding index to key to prevent rendering issues when multiple items have the same label
|
|
21944
22002
|
/* @__PURE__ */ jsxs78(Fragment31, { children: [
|
|
21945
|
-
index > 0 && !hideDivisor && /* @__PURE__ */
|
|
22003
|
+
index > 0 && !hideDivisor && /* @__PURE__ */ jsx159("span", { ...trussProps95({
|
|
21946
22004
|
fontWeight: "fw6",
|
|
21947
22005
|
fontSize: "fz_14px",
|
|
21948
22006
|
lineHeight: "lh_20px",
|
|
@@ -21954,7 +22012,7 @@ function PageHeaderBreadcrumbs({
|
|
|
21954
22012
|
marginTop: "mt_2px",
|
|
21955
22013
|
marginBottom: "mb_2px"
|
|
21956
22014
|
}), children: "/" }),
|
|
21957
|
-
/* @__PURE__ */
|
|
22015
|
+
/* @__PURE__ */ jsx159(Link5, { to: bc.href, ...mergeProps24("navLink", void 0, {
|
|
21958
22016
|
fontWeight: "fw6",
|
|
21959
22017
|
fontSize: "fz_14px",
|
|
21960
22018
|
lineHeight: "lh_20px",
|
|
@@ -21967,9 +22025,9 @@ function PageHeaderBreadcrumbs({
|
|
|
21967
22025
|
] }, `${bc.label}-${index}`)
|
|
21968
22026
|
);
|
|
21969
22027
|
}
|
|
21970
|
-
return /* @__PURE__ */
|
|
22028
|
+
return /* @__PURE__ */ jsx159("div", { className: "df aic mb_4px", children: breadcrumbs.length > 3 && collapsed ? /* @__PURE__ */ jsxs78(Fragment32, { children: [
|
|
21971
22029
|
renderBreadcrumb(breadcrumbs[0], 0),
|
|
21972
|
-
/* @__PURE__ */
|
|
22030
|
+
/* @__PURE__ */ jsx159("button", { ...tids.expand, ...trussProps95({
|
|
21973
22031
|
color: ["color_var", {
|
|
21974
22032
|
"--color": "var(--b-on-surface-muted)"
|
|
21975
22033
|
}],
|
|
@@ -21983,7 +22041,7 @@ function PageHeaderBreadcrumbs({
|
|
|
21983
22041
|
|
|
21984
22042
|
// src/components/Layout/FormPageLayout.tsx
|
|
21985
22043
|
import { trussProps as trussProps96, maybeCssVar as maybeCssVar46 } from "@homebound/truss/runtime";
|
|
21986
|
-
import { jsx as
|
|
22044
|
+
import { jsx as jsx160, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
21987
22045
|
var headerHeightPx = 120;
|
|
21988
22046
|
var maxContentWidthPx = 1600;
|
|
21989
22047
|
function FormPageLayoutComponent(props) {
|
|
@@ -22005,7 +22063,7 @@ function FormPageLayoutComponent(props) {
|
|
|
22005
22063
|
// since this layout will be replacing most superdrawers/sidebars, we keep the listing mounted below to preserve the users's
|
|
22006
22064
|
// scroll position & filters
|
|
22007
22065
|
// Adding "align-items: start" allows "position: sticky" to work within a grid for the sidebars
|
|
22008
|
-
/* @__PURE__ */
|
|
22066
|
+
/* @__PURE__ */ jsx160("div", { ...trussProps96({
|
|
22009
22067
|
position: "fixed",
|
|
22010
22068
|
top: "top0",
|
|
22011
22069
|
bottom: "bottom0",
|
|
@@ -22034,17 +22092,17 @@ function FormPageLayoutComponent(props) {
|
|
|
22034
22092
|
columnGap: "cg3",
|
|
22035
22093
|
alignItems: "ais"
|
|
22036
22094
|
}), children: [
|
|
22037
|
-
/* @__PURE__ */
|
|
22038
|
-
/* @__PURE__ */
|
|
22039
|
-
/* @__PURE__ */
|
|
22040
|
-
rightSideBar && /* @__PURE__ */
|
|
22095
|
+
/* @__PURE__ */ jsx160(PageHeader, { ...props, ...tids.pageHeader }),
|
|
22096
|
+
/* @__PURE__ */ jsx160(LeftNav, { sectionsWithRefs, ...tids }),
|
|
22097
|
+
/* @__PURE__ */ jsx160(FormSections, { sectionsWithRefs, formState, ...tids }),
|
|
22098
|
+
rightSideBar && /* @__PURE__ */ jsx160("aside", { ...trussProps96({
|
|
22041
22099
|
gridRow: "gr_2",
|
|
22042
22100
|
gridColumn: "gc_3_4",
|
|
22043
22101
|
position: "sticky",
|
|
22044
22102
|
top: ["top_var", {
|
|
22045
22103
|
"--top": `${headerHeightPx}px`
|
|
22046
22104
|
}]
|
|
22047
|
-
}), children: /* @__PURE__ */
|
|
22105
|
+
}), children: /* @__PURE__ */ jsx160(RightSidebar, { content: rightSideBar, headerHeightPx }) })
|
|
22048
22106
|
] }) })
|
|
22049
22107
|
);
|
|
22050
22108
|
}
|
|
@@ -22079,16 +22137,16 @@ function PageHeader(props) {
|
|
|
22079
22137
|
}]
|
|
22080
22138
|
} : {}
|
|
22081
22139
|
}), ...tids, children: [
|
|
22082
|
-
/* @__PURE__ */
|
|
22140
|
+
/* @__PURE__ */ jsx160(Toast, {}),
|
|
22083
22141
|
/* @__PURE__ */ jsxs79("div", { className: "pt2 pb2 pl3 pr3 df jcsb aic", children: [
|
|
22084
22142
|
/* @__PURE__ */ jsxs79("div", { children: [
|
|
22085
|
-
breadCrumb && /* @__PURE__ */
|
|
22086
|
-
/* @__PURE__ */
|
|
22143
|
+
breadCrumb && /* @__PURE__ */ jsx160(PageHeaderBreadcrumbs, { breadcrumb: breadCrumb }),
|
|
22144
|
+
/* @__PURE__ */ jsx160("h1", { className: "fw6 fz_30px lh_36px", ...tids.pageTitle, children: pageTitle })
|
|
22087
22145
|
] }),
|
|
22088
22146
|
/* @__PURE__ */ jsxs79("div", { className: "df gap1", children: [
|
|
22089
|
-
tertiaryAction && /* @__PURE__ */
|
|
22090
|
-
cancelAction && /* @__PURE__ */
|
|
22091
|
-
/* @__PURE__ */
|
|
22147
|
+
tertiaryAction && /* @__PURE__ */ jsx160(Button, { label: tertiaryAction.label, onClick: tertiaryAction.onClick, variant: "tertiary", disabled: tertiaryAction.disabled, tooltip: tertiaryAction.tooltip }),
|
|
22148
|
+
cancelAction && /* @__PURE__ */ jsx160(Button, { label: cancelAction.label, onClick: cancelAction.onClick, variant: "quaternary", disabled: cancelAction.disabled, tooltip: cancelAction.tooltip }),
|
|
22149
|
+
/* @__PURE__ */ jsx160(SubmitButton, { form: formState, ...submitAction })
|
|
22092
22150
|
] })
|
|
22093
22151
|
] })
|
|
22094
22152
|
] });
|
|
@@ -22100,7 +22158,7 @@ function FormSections(props) {
|
|
|
22100
22158
|
} = props;
|
|
22101
22159
|
const tids = useTestIds(props);
|
|
22102
22160
|
const bottomPaddingPx = sectionsWithRefs.length > 1 ? 200 : 0;
|
|
22103
|
-
return /* @__PURE__ */
|
|
22161
|
+
return /* @__PURE__ */ jsx160("article", { ...trussProps96({
|
|
22104
22162
|
gridRow: "gr_2",
|
|
22105
22163
|
gridColumn: "gc_2_3",
|
|
22106
22164
|
paddingBottom: ["pb_var", {
|
|
@@ -22129,10 +22187,10 @@ function FormSections(props) {
|
|
|
22129
22187
|
}),
|
|
22130
22188
|
...tids.formSection,
|
|
22131
22189
|
children: [
|
|
22132
|
-
/* @__PURE__ */
|
|
22190
|
+
/* @__PURE__ */ jsx160("div", { className: "gc_1", children: section.icon && /* @__PURE__ */ jsx160(Icon, { icon: section.icon, inc: 3.5 }) }),
|
|
22133
22191
|
/* @__PURE__ */ jsxs79("div", { className: "gc_2", children: [
|
|
22134
|
-
section.title && /* @__PURE__ */
|
|
22135
|
-
/* @__PURE__ */
|
|
22192
|
+
section.title && /* @__PURE__ */ jsx160("h2", { className: "fw6 fz_20px lh_28px mb3", children: section.title }),
|
|
22193
|
+
/* @__PURE__ */ jsx160(BoundForm, { formState, rows: section.rows })
|
|
22136
22194
|
] })
|
|
22137
22195
|
]
|
|
22138
22196
|
},
|
|
@@ -22149,7 +22207,7 @@ function LeftNav(props) {
|
|
|
22149
22207
|
section
|
|
22150
22208
|
}) => !!section.title), [sectionsWithRefs]);
|
|
22151
22209
|
const activeSection = useActiveSection(sectionWithTitles);
|
|
22152
|
-
return /* @__PURE__ */
|
|
22210
|
+
return /* @__PURE__ */ jsx160("aside", { ...trussProps96({
|
|
22153
22211
|
gridRow: "gr_2",
|
|
22154
22212
|
gridColumn: "gc_1_2",
|
|
22155
22213
|
position: "sticky",
|
|
@@ -22161,7 +22219,7 @@ function LeftNav(props) {
|
|
|
22161
22219
|
display: "df",
|
|
22162
22220
|
flexDirection: "fdc",
|
|
22163
22221
|
gap: "gap1"
|
|
22164
|
-
}), ...tids.nav, children: sectionWithTitles.map((sectionWithRef) => /* @__PURE__ */
|
|
22222
|
+
}), ...tids.nav, children: sectionWithTitles.map((sectionWithRef) => /* @__PURE__ */ jsx160(SectionNavLink, { sectionWithRef, activeSection, ...tids }, `nav-${sectionWithRef.sectionKey}`)) });
|
|
22165
22223
|
}
|
|
22166
22224
|
var activeStyles = {
|
|
22167
22225
|
fontWeight: "fw6",
|
|
@@ -22203,7 +22261,7 @@ function SectionNavLink(props) {
|
|
|
22203
22261
|
});
|
|
22204
22262
|
}, [sectionRef]);
|
|
22205
22263
|
const tids = useTestIds(props);
|
|
22206
|
-
const buttonRef =
|
|
22264
|
+
const buttonRef = useRef53(null);
|
|
22207
22265
|
const {
|
|
22208
22266
|
buttonProps,
|
|
22209
22267
|
isPressed
|
|
@@ -22218,7 +22276,7 @@ function SectionNavLink(props) {
|
|
|
22218
22276
|
hoverProps,
|
|
22219
22277
|
isHovered
|
|
22220
22278
|
} = useHover2({});
|
|
22221
|
-
return /* @__PURE__ */
|
|
22279
|
+
return /* @__PURE__ */ jsx160("button", { ref: buttonRef, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps96({
|
|
22222
22280
|
...{
|
|
22223
22281
|
fontWeight: "fw6",
|
|
22224
22282
|
fontSize: "fz_14px",
|
|
@@ -22385,10 +22443,10 @@ import { createPortal as createPortal5 } from "react-dom";
|
|
|
22385
22443
|
|
|
22386
22444
|
// src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayoutHeightContext.tsx
|
|
22387
22445
|
import { createContext as createContext11, useContext as useContext21 } from "react";
|
|
22388
|
-
import { jsx as
|
|
22446
|
+
import { jsx as jsx161 } from "react/jsx-runtime";
|
|
22389
22447
|
var EnvironmentBannerLayoutHeightContext = createContext11(0);
|
|
22390
22448
|
function EnvironmentBannerLayoutHeightProvider({ value, children }) {
|
|
22391
|
-
return /* @__PURE__ */
|
|
22449
|
+
return /* @__PURE__ */ jsx161(EnvironmentBannerLayoutHeightContext.Provider, { value, children });
|
|
22392
22450
|
}
|
|
22393
22451
|
function useEnvironmentBannerLayoutHeight() {
|
|
22394
22452
|
return useContext21(EnvironmentBannerLayoutHeightContext);
|
|
@@ -22396,7 +22454,7 @@ function useEnvironmentBannerLayoutHeight() {
|
|
|
22396
22454
|
|
|
22397
22455
|
// src/components/Layout/RightPaneLayout/RightPaneContext.tsx
|
|
22398
22456
|
import React20, { useCallback as useCallback30, useContext as useContext22, useMemo as useMemo38, useState as useState45 } from "react";
|
|
22399
|
-
import { jsx as
|
|
22457
|
+
import { jsx as jsx162 } from "react/jsx-runtime";
|
|
22400
22458
|
var RightPaneContext = React20.createContext({
|
|
22401
22459
|
openInPane: () => {
|
|
22402
22460
|
},
|
|
@@ -22423,7 +22481,7 @@ function RightPaneProvider({ children }) {
|
|
|
22423
22481
|
() => ({ openInPane, closePane, clearPane, rightPaneContent, isRightPaneOpen }),
|
|
22424
22482
|
[openInPane, closePane, rightPaneContent, clearPane, isRightPaneOpen]
|
|
22425
22483
|
);
|
|
22426
|
-
return /* @__PURE__ */
|
|
22484
|
+
return /* @__PURE__ */ jsx162(RightPaneContext.Provider, { value: context, children });
|
|
22427
22485
|
}
|
|
22428
22486
|
function useRightPaneContext() {
|
|
22429
22487
|
return useContext22(RightPaneContext);
|
|
@@ -22431,7 +22489,7 @@ function useRightPaneContext() {
|
|
|
22431
22489
|
|
|
22432
22490
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPane.tsx
|
|
22433
22491
|
import { mergeProps as mergeProps26, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
|
|
22434
|
-
import { jsx as
|
|
22492
|
+
import { jsx as jsx163 } from "react/jsx-runtime";
|
|
22435
22493
|
var __maybeInc22 = (inc) => {
|
|
22436
22494
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
22437
22495
|
};
|
|
@@ -22455,7 +22513,7 @@ function DocumentScrollRightPane({
|
|
|
22455
22513
|
});
|
|
22456
22514
|
useEffect27(() => closePane, [closePane]);
|
|
22457
22515
|
const slideX = sm ? "100%" : paneWidth;
|
|
22458
|
-
const pane = /* @__PURE__ */
|
|
22516
|
+
const pane = /* @__PURE__ */ jsx163(AnimatePresence3, { children: isRightPaneOpen && /* @__PURE__ */ jsx163(motion3.div, { ...tid, ...mergeProps26(void 0, sm ? {
|
|
22459
22517
|
top: bannerHeightPx
|
|
22460
22518
|
} : void 0, sm ? {
|
|
22461
22519
|
position: "fixed",
|
|
@@ -22508,7 +22566,7 @@ function DocumentScrollRightPane({
|
|
|
22508
22566
|
}
|
|
22509
22567
|
|
|
22510
22568
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPaneLayout.tsx
|
|
22511
|
-
import { jsx as
|
|
22569
|
+
import { jsx as jsx164, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
22512
22570
|
var defaultDocumentScrollRightPaneWidth = 450;
|
|
22513
22571
|
function DocumentScrollRightPaneLayout(props) {
|
|
22514
22572
|
const {
|
|
@@ -22541,8 +22599,8 @@ function DocumentScrollRightPaneLayout(props) {
|
|
|
22541
22599
|
}, {
|
|
22542
22600
|
width: "w100"
|
|
22543
22601
|
}), ...tid, children: [
|
|
22544
|
-
/* @__PURE__ */
|
|
22545
|
-
/* @__PURE__ */
|
|
22602
|
+
/* @__PURE__ */ jsx164(DocumentScrollRightPaneSpacer, { paneWidth, isOpen: isSplitPaneOpen, children }),
|
|
22603
|
+
/* @__PURE__ */ jsx164(DocumentScrollRightPane, { paneWidth })
|
|
22546
22604
|
] });
|
|
22547
22605
|
}
|
|
22548
22606
|
function DocumentScrollRightPaneSpacer({
|
|
@@ -22558,13 +22616,13 @@ function DocumentScrollRightPaneSpacer({
|
|
|
22558
22616
|
display: "df",
|
|
22559
22617
|
minWidth: "mw100"
|
|
22560
22618
|
}), children: [
|
|
22561
|
-
/* @__PURE__ */
|
|
22619
|
+
/* @__PURE__ */ jsx164("div", { ...mergeProps27(void 0, {
|
|
22562
22620
|
width: `min(100%, ${documentScrollChromeWidth()})`
|
|
22563
22621
|
}, {
|
|
22564
22622
|
flexShrink: "fs0",
|
|
22565
22623
|
minWidth: "mw_fit_content"
|
|
22566
22624
|
}), children }),
|
|
22567
|
-
/* @__PURE__ */
|
|
22625
|
+
/* @__PURE__ */ jsx164("div", { "aria-hidden": true, ...mergeProps27(void 0, {
|
|
22568
22626
|
width: isOpen ? effectivePaneWidth : 0
|
|
22569
22627
|
}, {
|
|
22570
22628
|
flexShrink: "fs0",
|
|
@@ -22576,43 +22634,6 @@ function DocumentScrollRightPaneSpacer({
|
|
|
22576
22634
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
22577
22635
|
import { memo as memo2, useMemo as useMemo41, useState as useState47 } from "react";
|
|
22578
22636
|
|
|
22579
|
-
// src/components/ButtonMenu.tsx
|
|
22580
|
-
import { useRef as useRef53 } from "react";
|
|
22581
|
-
import { useMenuTrigger as useMenuTrigger2 } from "react-aria";
|
|
22582
|
-
import { useMenuTriggerState as useMenuTriggerState2 } from "react-stately";
|
|
22583
|
-
import { jsx as jsx164 } from "react/jsx-runtime";
|
|
22584
|
-
function ButtonMenu(props) {
|
|
22585
|
-
const { defaultOpen, disabled, items, persistentItems, trigger, searchable } = props;
|
|
22586
|
-
let selectedItem, onChange;
|
|
22587
|
-
if (isSelectionButtonMenuProps(props)) {
|
|
22588
|
-
selectedItem = props.selectedItem;
|
|
22589
|
-
onChange = props.onChange;
|
|
22590
|
-
}
|
|
22591
|
-
const state = useMenuTriggerState2({ isOpen: defaultOpen });
|
|
22592
|
-
const buttonRef = useRef53(null);
|
|
22593
|
-
const { menuTriggerProps, menuProps } = useMenuTrigger2({ isDisabled: !!disabled }, state, buttonRef);
|
|
22594
|
-
const tid = useTestIds(
|
|
22595
|
-
props,
|
|
22596
|
-
isTextButton(trigger) ? labelOr(trigger, "buttonMenu") : isNavLinkButton(trigger) ? defaultTestId(trigger.navLabel) : isIconButton(trigger) ? trigger.icon : trigger.name
|
|
22597
|
-
);
|
|
22598
|
-
return /* @__PURE__ */ jsx164(OverlayTrigger, { ...props, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ jsx164(
|
|
22599
|
-
Menu,
|
|
22600
|
-
{
|
|
22601
|
-
ariaMenuProps: menuProps,
|
|
22602
|
-
onClose: () => state.close(),
|
|
22603
|
-
items,
|
|
22604
|
-
persistentItems,
|
|
22605
|
-
searchable,
|
|
22606
|
-
selectedItem,
|
|
22607
|
-
onChange,
|
|
22608
|
-
...tid
|
|
22609
|
-
}
|
|
22610
|
-
) });
|
|
22611
|
-
}
|
|
22612
|
-
function isSelectionButtonMenuProps(props) {
|
|
22613
|
-
return typeof props === "object" && "selectedItem" in props && "onChange" in props;
|
|
22614
|
-
}
|
|
22615
|
-
|
|
22616
22637
|
// src/components/CountBadge.tsx
|
|
22617
22638
|
import { trussProps as trussProps97, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
|
|
22618
22639
|
import { jsx as jsx165 } from "react/jsx-runtime";
|
|
@@ -23545,7 +23566,7 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
23545
23566
|
setView,
|
|
23546
23567
|
clearFilters,
|
|
23547
23568
|
searchApi,
|
|
23548
|
-
|
|
23569
|
+
actions
|
|
23549
23570
|
} = props;
|
|
23550
23571
|
const testId = useTestIds(props, "gridTableLayoutActions");
|
|
23551
23572
|
const filterTid = useTestIds({}, filterTestIdPrefix);
|
|
@@ -23620,12 +23641,10 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
23620
23641
|
/* @__PURE__ */ jsx183(Icon, { icon: showFilters ? "chevronUp" : "chevronDown" })
|
|
23621
23642
|
] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton })
|
|
23622
23643
|
] }),
|
|
23623
|
-
(hasHideableColumns || withCardView ||
|
|
23644
|
+
(hasHideableColumns || withCardView || !!actions?.length) && /* @__PURE__ */ jsxs89("div", { className: "df aic gap_12px", children: [
|
|
23624
23645
|
hasHideableColumns && view === "list" && columns && api && /* @__PURE__ */ jsx183(EditColumnsButton, { columns, api, tooltip: "Display columns" }),
|
|
23625
23646
|
withCardView && view !== void 0 && setView && /* @__PURE__ */ jsx183(ViewToggleButton, { view, onChange: setView }),
|
|
23626
|
-
|
|
23627
|
-
icon: "verticalDots"
|
|
23628
|
-
} })
|
|
23647
|
+
!!actions?.length && /* @__PURE__ */ jsx183(HeaderActions, { actions, ...testId.actions })
|
|
23629
23648
|
] })
|
|
23630
23649
|
] }),
|
|
23631
23650
|
sm && showSearch && /* @__PURE__ */ jsx183("div", { ...trussProps102(pageContentPaddingX), children: searchTextField }),
|
|
@@ -23756,7 +23775,7 @@ function GridTableLayoutComponent(props) {
|
|
|
23756
23775
|
const {
|
|
23757
23776
|
tableProps,
|
|
23758
23777
|
layoutState,
|
|
23759
|
-
|
|
23778
|
+
actions,
|
|
23760
23779
|
hideEditColumns = false,
|
|
23761
23780
|
withCardView,
|
|
23762
23781
|
defaultView = "list",
|
|
@@ -23774,7 +23793,7 @@ function GridTableLayoutComponent(props) {
|
|
|
23774
23793
|
const api = useMemo43(() => tableProps.api ?? new GridTableApiImpl(), [tableProps.api]);
|
|
23775
23794
|
const [view, setView] = usePersistedTableView(defaultView, !!withCardView);
|
|
23776
23795
|
const clientSearch = layoutState?.search === "client" ? layoutState.searchString : void 0;
|
|
23777
|
-
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView ||
|
|
23796
|
+
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length);
|
|
23778
23797
|
const isVirtualized = tableProps.as === "virtual" || view === "card";
|
|
23779
23798
|
const inDocumentScrollLayout = useDocumentScrollLayout();
|
|
23780
23799
|
const tableActionsRef = useRef55(null);
|
|
@@ -23796,7 +23815,7 @@ function GridTableLayoutComponent(props) {
|
|
|
23796
23815
|
searchApiRef.current?.clear();
|
|
23797
23816
|
}, [layoutState]);
|
|
23798
23817
|
const emptyState = useMemo43(() => composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFilters), [layoutEmptyFallback, layoutState, tableProps, clearFilters]);
|
|
23799
|
-
const tableActionsEl = /* @__PURE__ */ jsx186(_GridTableLayoutActions, { filterDefs: layoutState?.filterDefs, filter: layoutState?.filter, setFilter: layoutState?.setFilter, groupBy: layoutState?.groupBy, searchProps: filterSearchProps, hasHideableColumns, columns, api, withCardView, view, setView, clearFilters, searchApi: searchApiRef,
|
|
23818
|
+
const tableActionsEl = /* @__PURE__ */ jsx186(_GridTableLayoutActions, { filterDefs: layoutState?.filterDefs, filter: layoutState?.filter, setFilter: layoutState?.setFilter, groupBy: layoutState?.groupBy, searchProps: filterSearchProps, hasHideableColumns, columns, api, withCardView, view, setView, clearFilters, searchApi: searchApiRef, actions });
|
|
23800
23819
|
const cardAs = view === "card" ? "card" : void 0;
|
|
23801
23820
|
const tableStyle = resolveGridTableLayoutStyle(tableProps.style, inDocumentScrollLayout);
|
|
23802
23821
|
const tableBody = /* @__PURE__ */ jsx186(Fragment40, { children: isGridTableProps(tableProps) ? /* @__PURE__ */ jsx186(GridTable, { ...tableProps, ...cardAs ? {
|