@homebound/beam 4.34.0 → 4.36.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 +1217 -1079
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +35 -3
- package/dist/index.d.ts +35 -3
- package/dist/index.js +663 -526
- package/dist/index.js.map +1 -1
- package/dist/truss.css +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7982,6 +7982,12 @@ var RowState = class {
|
|
|
7982
7982
|
if (this.isParent) return this.selectedState === "checked";
|
|
7983
7983
|
return this.selected;
|
|
7984
7984
|
}
|
|
7985
|
+
/** This row's share of `TableState.selectedLeafRowCount`, see `GridDataRow.childrenCount`. */
|
|
7986
|
+
get selectedLeafRowCount() {
|
|
7987
|
+
if (this.isReservedKind || !this.selected) return 0;
|
|
7988
|
+
if (this.children?.some((c) => c.row.selectable !== false)) return 0;
|
|
7989
|
+
return this.row.childrenCount ?? 1;
|
|
7990
|
+
}
|
|
7985
7991
|
/** The UI state for checked/unchecked + "partially checked" for parents. */
|
|
7986
7992
|
get selectedState() {
|
|
7987
7993
|
if (this.isParent && this.hasSelectableChildren) {
|
|
@@ -8632,6 +8638,10 @@ var TableState = class {
|
|
|
8632
8638
|
get selectedRows() {
|
|
8633
8639
|
return this.rowStates.allStates.filter((rs) => rs.isSelected && !reservedRowKinds.includes(rs.row.kind));
|
|
8634
8640
|
}
|
|
8641
|
+
/** How many leaf rows are selected, for `GridTableLayout`'s selection summary; see `GridDataRow.childrenCount`. */
|
|
8642
|
+
get selectedLeafRowCount() {
|
|
8643
|
+
return this.rowStates.allStates.reduce((sum, rs) => sum + rs.selectedLeafRowCount, 0);
|
|
8644
|
+
}
|
|
8635
8645
|
/** Returns kept group row, with the latest kept children, if any. */
|
|
8636
8646
|
get keptRowGroup() {
|
|
8637
8647
|
return this.rowStates.get(KEPT_GROUP).row;
|
|
@@ -9535,6 +9545,9 @@ var GridTableApiImpl = class {
|
|
|
9535
9545
|
getSelectedRowsImpl(kind) {
|
|
9536
9546
|
return this.tableState.selectedRows.filter((rs) => !kind || rs.kind === kind).map((rs) => rs.row);
|
|
9537
9547
|
}
|
|
9548
|
+
getSelectedLeafRowCount() {
|
|
9549
|
+
return this.tableState.selectedLeafRowCount;
|
|
9550
|
+
}
|
|
9538
9551
|
// The `any` is not great, but getting the overload to handle the optional kind is annoying
|
|
9539
9552
|
getVisibleRows(kind) {
|
|
9540
9553
|
return this.getVisibleRowsImpl(kind ?? void 0);
|
|
@@ -11259,6 +11272,22 @@ function ProposedValue(props) {
|
|
|
11259
11272
|
}), ...tid.proposed, children: proposed })
|
|
11260
11273
|
] });
|
|
11261
11274
|
}
|
|
11275
|
+
function OriginalValue(props) {
|
|
11276
|
+
const {
|
|
11277
|
+
originalValue,
|
|
11278
|
+
...others
|
|
11279
|
+
} = props;
|
|
11280
|
+
return /* @__PURE__ */ jsx38("div", { ...trussProps23({
|
|
11281
|
+
color: ["color_var", {
|
|
11282
|
+
"--color": "var(--b-text-helper)"
|
|
11283
|
+
}],
|
|
11284
|
+
fontWeight: "fw4",
|
|
11285
|
+
fontSize: "fz_12px",
|
|
11286
|
+
lineHeight: "lh_16px",
|
|
11287
|
+
marginTop: "mt_4px",
|
|
11288
|
+
textDecoration: "tdlt"
|
|
11289
|
+
}), ...others, children: originalValue });
|
|
11290
|
+
}
|
|
11262
11291
|
|
|
11263
11292
|
// src/components/Table/components/Row.css.ts
|
|
11264
11293
|
var css = {
|
|
@@ -11285,9 +11314,8 @@ function getFieldWidth(fullWidth) {
|
|
|
11285
11314
|
return fullWidth ? "100%" : "550px";
|
|
11286
11315
|
}
|
|
11287
11316
|
|
|
11288
|
-
// src/inputs/
|
|
11289
|
-
import {
|
|
11290
|
-
import { Fragment as Fragment13, jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
11317
|
+
// src/inputs/fieldChrome.ts
|
|
11318
|
+
import { maybeCssVar as maybeCssVar17 } from "@homebound/truss/runtime";
|
|
11291
11319
|
var __maybeInc10 = (inc) => {
|
|
11292
11320
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
11293
11321
|
};
|
|
@@ -11348,6 +11376,221 @@ var __typography4 = {
|
|
|
11348
11376
|
lineHeight: "lh_32px"
|
|
11349
11377
|
}
|
|
11350
11378
|
};
|
|
11379
|
+
var fieldHeight = 40;
|
|
11380
|
+
var compactFieldHeight = 32;
|
|
11381
|
+
function getFieldChrome(options) {
|
|
11382
|
+
const {
|
|
11383
|
+
typeScale,
|
|
11384
|
+
labelStyle,
|
|
11385
|
+
labelLeftFieldWidth = "50%",
|
|
11386
|
+
compact,
|
|
11387
|
+
borderless,
|
|
11388
|
+
borderOnHover,
|
|
11389
|
+
fullWidth,
|
|
11390
|
+
visuallyDisabled,
|
|
11391
|
+
isHovered,
|
|
11392
|
+
compound = false,
|
|
11393
|
+
multiline = false,
|
|
11394
|
+
showProposal = false,
|
|
11395
|
+
inputStylePalette
|
|
11396
|
+
} = options;
|
|
11397
|
+
const maybeSmaller = compound ? 2 : 0;
|
|
11398
|
+
const [bgColor, hoverBgColor, disabledBgColor] = fieldBackgrounds({
|
|
11399
|
+
showProposal,
|
|
11400
|
+
inputStylePalette,
|
|
11401
|
+
borderOnHover,
|
|
11402
|
+
borderless,
|
|
11403
|
+
compound
|
|
11404
|
+
});
|
|
11405
|
+
const fixedHeight = {
|
|
11406
|
+
height: ["h_var", {
|
|
11407
|
+
"--height": `${fieldHeight - maybeSmaller}px`
|
|
11408
|
+
}],
|
|
11409
|
+
...compact ? {
|
|
11410
|
+
height: ["h_var", {
|
|
11411
|
+
"--height": `${compactFieldHeight - maybeSmaller}px`
|
|
11412
|
+
}]
|
|
11413
|
+
} : {}
|
|
11414
|
+
};
|
|
11415
|
+
const minHeight = {
|
|
11416
|
+
minHeight: ["mh_var", {
|
|
11417
|
+
"--minHeight": `${fieldHeight - maybeSmaller}px`
|
|
11418
|
+
}],
|
|
11419
|
+
...compact ? {
|
|
11420
|
+
minHeight: ["mh_var", {
|
|
11421
|
+
"--minHeight": `${compactFieldHeight - maybeSmaller}px`
|
|
11422
|
+
}]
|
|
11423
|
+
} : {}
|
|
11424
|
+
};
|
|
11425
|
+
return {
|
|
11426
|
+
container: {
|
|
11427
|
+
display: "df",
|
|
11428
|
+
flexDirection: "fdc",
|
|
11429
|
+
width: "w100",
|
|
11430
|
+
maxWidth: ["maxw_var", {
|
|
11431
|
+
"--maxWidth": maybeCssVar17(getFieldWidth(fullWidth))
|
|
11432
|
+
}],
|
|
11433
|
+
position: "relative",
|
|
11434
|
+
...labelStyle === "left" ? {
|
|
11435
|
+
maxWidth: "maxw100",
|
|
11436
|
+
flexDirection: "fdr",
|
|
11437
|
+
gap: "g_2",
|
|
11438
|
+
justifyContent: "jcsb",
|
|
11439
|
+
alignItems: "aic"
|
|
11440
|
+
} : {}
|
|
11441
|
+
},
|
|
11442
|
+
control: {
|
|
11443
|
+
...{
|
|
11444
|
+
...__typography4[typeScale] ?? {},
|
|
11445
|
+
display: "df",
|
|
11446
|
+
alignItems: "aic",
|
|
11447
|
+
borderRadius: "br8",
|
|
11448
|
+
paddingLeft: ["px_var", {
|
|
11449
|
+
"--paddingLeft": `${textFieldBasePadding}px`
|
|
11450
|
+
}],
|
|
11451
|
+
paddingRight: ["px_var", {
|
|
11452
|
+
"--paddingRight": `${textFieldBasePadding}px`
|
|
11453
|
+
}],
|
|
11454
|
+
width: "w100",
|
|
11455
|
+
backgroundColor: ["bgColor_var", {
|
|
11456
|
+
"--backgroundColor": maybeCssVar17(bgColor)
|
|
11457
|
+
}],
|
|
11458
|
+
color: ["color_var", {
|
|
11459
|
+
"--color": "var(--b-on-surface)"
|
|
11460
|
+
}],
|
|
11461
|
+
...labelStyle === "left" ? {
|
|
11462
|
+
width: ["w_var", {
|
|
11463
|
+
"--width": maybeCssVar17(__maybeInc10(labelLeftFieldWidth))
|
|
11464
|
+
}]
|
|
11465
|
+
} : {}
|
|
11466
|
+
},
|
|
11467
|
+
// Borderless fields sit next to plain text in tables. Grow by the horizontal padding and pull
|
|
11468
|
+
// back left so the text lines up. Compound fields own their own width.
|
|
11469
|
+
...borderless && !compound ? {
|
|
11470
|
+
borderColor: "bcTransparent",
|
|
11471
|
+
width: "w_calc_100_16px",
|
|
11472
|
+
marginLeft: "ml_neg1"
|
|
11473
|
+
} : {
|
|
11474
|
+
borderColor: ["bc_var", {
|
|
11475
|
+
"--borderColor": "var(--b-field-border-default)"
|
|
11476
|
+
}]
|
|
11477
|
+
},
|
|
11478
|
+
...!compound ? {
|
|
11479
|
+
borderStyle: "bss",
|
|
11480
|
+
borderWidth: "bw1"
|
|
11481
|
+
} : {},
|
|
11482
|
+
...borderOnHover ? {
|
|
11483
|
+
borderRadius: "br4",
|
|
11484
|
+
borderStyle: "bss",
|
|
11485
|
+
borderWidth: "bw1",
|
|
11486
|
+
borderColor: "bcTransparent",
|
|
11487
|
+
transition: "tsn_border_color_200ms"
|
|
11488
|
+
} : {},
|
|
11489
|
+
...borderOnHover && isHovered ? {
|
|
11490
|
+
backgroundColor: ["bgColor_var", {
|
|
11491
|
+
"--backgroundColor": maybeCssVar17(hoverBgColor)
|
|
11492
|
+
}],
|
|
11493
|
+
borderStyle: "bss",
|
|
11494
|
+
borderWidth: "bw1",
|
|
11495
|
+
borderColor: "bcBlue300"
|
|
11496
|
+
} : {},
|
|
11497
|
+
...multiline ? minHeight : fixedHeight
|
|
11498
|
+
},
|
|
11499
|
+
readOnly: {
|
|
11500
|
+
...{
|
|
11501
|
+
...__typography4[typeScale] ?? {},
|
|
11502
|
+
display: "df",
|
|
11503
|
+
alignItems: "aic",
|
|
11504
|
+
width: "w100",
|
|
11505
|
+
color: ["color_var", {
|
|
11506
|
+
"--color": "var(--b-on-surface)"
|
|
11507
|
+
}],
|
|
11508
|
+
...labelStyle === "left" ? {
|
|
11509
|
+
width: ["w_var", {
|
|
11510
|
+
"--width": maybeCssVar17(__maybeInc10(labelLeftFieldWidth))
|
|
11511
|
+
}]
|
|
11512
|
+
} : {}
|
|
11513
|
+
},
|
|
11514
|
+
// Hidden labels mean a table cell. Min-height matches an editable field so the row lines up.
|
|
11515
|
+
...labelStyle === "hidden" ? minHeight : {}
|
|
11516
|
+
},
|
|
11517
|
+
hover: {
|
|
11518
|
+
backgroundColor: ["bgColor_var", {
|
|
11519
|
+
"--backgroundColor": maybeCssVar17(hoverBgColor)
|
|
11520
|
+
}],
|
|
11521
|
+
borderColor: ["bc_var", {
|
|
11522
|
+
"--borderColor": "var(--b-field-border-hover)"
|
|
11523
|
+
}]
|
|
11524
|
+
},
|
|
11525
|
+
focus: {
|
|
11526
|
+
borderColor: ["bc_var", {
|
|
11527
|
+
"--borderColor": "var(--b-field-border-focus)"
|
|
11528
|
+
}],
|
|
11529
|
+
backgroundColor: ["bgColor_var", {
|
|
11530
|
+
"--backgroundColor": maybeCssVar17(hoverBgColor)
|
|
11531
|
+
}],
|
|
11532
|
+
...borderOnHover ? {
|
|
11533
|
+
borderColor: ["bc_var", {
|
|
11534
|
+
"--borderColor": "var(--b-field-border-focus)"
|
|
11535
|
+
}]
|
|
11536
|
+
} : {}
|
|
11537
|
+
},
|
|
11538
|
+
disabled: visuallyDisabled ? {
|
|
11539
|
+
cursor: "cur_not_allowed",
|
|
11540
|
+
color: ["color_var", {
|
|
11541
|
+
"--color": "var(--b-field-text-disabled)"
|
|
11542
|
+
}],
|
|
11543
|
+
backgroundColor: ["bgColor_var", {
|
|
11544
|
+
"--backgroundColor": maybeCssVar17(disabledBgColor)
|
|
11545
|
+
}]
|
|
11546
|
+
} : {
|
|
11547
|
+
cursor: "cur_not_allowed"
|
|
11548
|
+
},
|
|
11549
|
+
error: {
|
|
11550
|
+
borderColor: ["bc_var", {
|
|
11551
|
+
"--borderColor": "var(--b-field-border-error)"
|
|
11552
|
+
}]
|
|
11553
|
+
}
|
|
11554
|
+
};
|
|
11555
|
+
}
|
|
11556
|
+
function selectedValueCss(labelStyle, readOnly) {
|
|
11557
|
+
return labelStyle !== "inline" && !readOnly ? {
|
|
11558
|
+
fontWeight: "fw5"
|
|
11559
|
+
} : void 0;
|
|
11560
|
+
}
|
|
11561
|
+
var textFieldBasePadding = increment(1);
|
|
11562
|
+
function fieldBackgrounds(options) {
|
|
11563
|
+
const {
|
|
11564
|
+
showProposal,
|
|
11565
|
+
inputStylePalette,
|
|
11566
|
+
borderOnHover,
|
|
11567
|
+
borderless,
|
|
11568
|
+
compound
|
|
11569
|
+
} = options;
|
|
11570
|
+
if (showProposal) return ["--b-ai-field-bg" /* AiFieldBg */, "rgba(237, 233, 254, 1)" /* Purple100 */, "--b-field-bg-disabled" /* FieldBgDisabled */];
|
|
11571
|
+
if (inputStylePalette) return inputStylePaletteBackgrounds(inputStylePalette);
|
|
11572
|
+
if (borderOnHover) return ["rgba(0,0,0,0)" /* Transparent */, "rgba(219, 234, 254, 1)" /* Blue100 */, "rgba(247, 245, 245, 1)" /* Gray100 */];
|
|
11573
|
+
if (borderless && !compound) return ["rgba(247, 245, 245, 1)" /* Gray100 */, "rgba(236, 235, 235, 1)" /* Gray200 */, "rgba(236, 235, 235, 1)" /* Gray200 */];
|
|
11574
|
+
return ["--b-field-bg-default" /* FieldBgDefault */, "--b-field-bg-hover" /* FieldBgHover */, "--b-field-bg-disabled" /* FieldBgDisabled */];
|
|
11575
|
+
}
|
|
11576
|
+
function inputStylePaletteBackgrounds(inputStylePalette) {
|
|
11577
|
+
switch (inputStylePalette) {
|
|
11578
|
+
case "success":
|
|
11579
|
+
return ["rgba(236, 253, 245, 1)" /* Green50 */, "rgba(209, 250, 229, 1)" /* Green100 */, "rgba(236, 253, 245, 1)" /* Green50 */];
|
|
11580
|
+
case "caution":
|
|
11581
|
+
return ["rgba(254, 252, 232, 1)" /* Yellow50 */, "rgba(254, 249, 195, 1)" /* Yellow100 */, "rgba(254, 252, 232, 1)" /* Yellow50 */];
|
|
11582
|
+
case "warning":
|
|
11583
|
+
return ["rgba(254, 242, 242, 1)" /* Red50 */, "rgba(254, 226, 226, 1)" /* Red100 */, "rgba(254, 242, 242, 1)" /* Red50 */];
|
|
11584
|
+
case "info":
|
|
11585
|
+
return ["rgba(239, 246, 255, 1)" /* Blue50 */, "rgba(219, 234, 254, 1)" /* Blue100 */, "rgba(239, 246, 255, 1)" /* Blue50 */];
|
|
11586
|
+
default:
|
|
11587
|
+
return ["rgba(255, 255, 255, 1)" /* White */, "rgba(247, 245, 245, 1)" /* Gray100 */, "rgba(247, 245, 245, 1)" /* Gray100 */];
|
|
11588
|
+
}
|
|
11589
|
+
}
|
|
11590
|
+
|
|
11591
|
+
// src/inputs/TextFieldBase.tsx
|
|
11592
|
+
import { trussProps as trussProps24, mergeProps as mergeProps_13 } from "@homebound/truss/runtime";
|
|
11593
|
+
import { Fragment as Fragment13, jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
11351
11594
|
function TextFieldBase(props) {
|
|
11352
11595
|
const {
|
|
11353
11596
|
fieldProps,
|
|
@@ -11417,147 +11660,30 @@ function TextFieldBase(props) {
|
|
|
11417
11660
|
onFocusWithinChange: setIsFocused
|
|
11418
11661
|
});
|
|
11419
11662
|
const fieldRef = useGetRef(inputRef);
|
|
11420
|
-
const maybeSmaller = compound ? 2 : 0;
|
|
11421
|
-
const fieldHeight = 40;
|
|
11422
|
-
const compactFieldHeight = 32;
|
|
11423
11663
|
const showProposal = proposedValue !== void 0;
|
|
11424
11664
|
const showOriginal = originalValue !== void 0 && originalValue !== "";
|
|
11425
11665
|
const originalBelow = showOriginal && !inputProps.readOnly && !compound ? originalValue : void 0;
|
|
11426
11666
|
const showErrorAndHelper = alwaysShowHelperText || !compound && !inputProps.disabled && !inputProps.readOnly;
|
|
11427
|
-
const
|
|
11428
|
-
|
|
11429
|
-
|
|
11430
|
-
|
|
11431
|
-
|
|
11432
|
-
|
|
11433
|
-
|
|
11434
|
-
|
|
11435
|
-
|
|
11436
|
-
|
|
11437
|
-
|
|
11438
|
-
|
|
11439
|
-
|
|
11440
|
-
|
|
11441
|
-
|
|
11442
|
-
|
|
11443
|
-
|
|
11444
|
-
|
|
11445
|
-
|
|
11446
|
-
|
|
11447
|
-
alignItems: "aic"
|
|
11448
|
-
} : {}
|
|
11449
|
-
}
|
|
11450
|
-
},
|
|
11451
|
-
inputWrapper: {
|
|
11452
|
-
...{
|
|
11453
|
-
...__typography4[typeScale] ?? {},
|
|
11454
|
-
display: "df",
|
|
11455
|
-
alignItems: "aic",
|
|
11456
|
-
borderRadius: "br8",
|
|
11457
|
-
paddingLeft: ["px_var", {
|
|
11458
|
-
"--paddingLeft": `${textFieldBasePadding}px`
|
|
11459
|
-
}],
|
|
11460
|
-
paddingRight: ["px_var", {
|
|
11461
|
-
"--paddingRight": `${textFieldBasePadding}px`
|
|
11462
|
-
}],
|
|
11463
|
-
width: "w100",
|
|
11464
|
-
backgroundColor: ["bgColor_var", {
|
|
11465
|
-
"--backgroundColor": maybeCssVar17(bgColor)
|
|
11466
|
-
}],
|
|
11467
|
-
color: ["color_var", {
|
|
11468
|
-
"--color": "var(--b-on-surface)"
|
|
11469
|
-
}],
|
|
11470
|
-
...labelStyle === "left" ? {
|
|
11471
|
-
width: ["w_var", {
|
|
11472
|
-
"--width": maybeCssVar17(__maybeInc10(labelLeftFieldWidth))
|
|
11473
|
-
}]
|
|
11474
|
-
} : {}
|
|
11475
|
-
},
|
|
11476
|
-
// When borderless then perceived vertical alignments are misaligned. As there is no longer a border, then the field looks oddly indented.
|
|
11477
|
-
// This typically happens in tables when a column has a mix of static text (i.e. "roll up" rows and table headers) and input fields.
|
|
11478
|
-
// To remedy this perceived misalignment then we increase the width by the horizontal padding applied (16px), and set a negative margin left margin to re-center the field.
|
|
11479
|
-
// Note: Do not modify width and position of 'compound' fields.
|
|
11480
|
-
...borderless && !compound ? {
|
|
11481
|
-
borderColor: "bcTransparent",
|
|
11482
|
-
width: "w_calc_100_16px",
|
|
11483
|
-
marginLeft: "ml_neg1"
|
|
11484
|
-
} : {
|
|
11485
|
-
borderColor: ["bc_var", {
|
|
11486
|
-
"--borderColor": "var(--b-field-border-default)"
|
|
11487
|
-
}]
|
|
11488
|
-
},
|
|
11489
|
-
// Do not add borders to compound fields. A compound field is responsible for drawing its own borders
|
|
11490
|
-
...!compound ? {
|
|
11491
|
-
borderStyle: "bss",
|
|
11492
|
-
borderWidth: "bw1"
|
|
11493
|
-
} : {},
|
|
11494
|
-
...borderOnHover && {
|
|
11495
|
-
borderRadius: "br4",
|
|
11496
|
-
borderStyle: "bss",
|
|
11497
|
-
borderWidth: "bw1",
|
|
11498
|
-
borderColor: "bcTransparent",
|
|
11499
|
-
transition: "tsn_border_color_200ms"
|
|
11500
|
-
},
|
|
11501
|
-
...borderOnHover && {
|
|
11502
|
-
...isHovered ? {
|
|
11503
|
-
backgroundColor: ["bgColor_var", {
|
|
11504
|
-
"--backgroundColor": maybeCssVar17(hoverBgColor)
|
|
11505
|
-
}],
|
|
11506
|
-
borderStyle: "bss",
|
|
11507
|
-
borderWidth: "bw1",
|
|
11508
|
-
borderColor: "bcBlue300"
|
|
11509
|
-
} : {}
|
|
11510
|
-
},
|
|
11511
|
-
// When multiline is true, then we want to allow the field to grow to the height of the content, but not shrink below the minHeight
|
|
11512
|
-
// Otherwise, set fixed heights values accordingly.
|
|
11513
|
-
...multiline ? {
|
|
11514
|
-
minHeight: ["mh_var", {
|
|
11515
|
-
"--minHeight": `${fieldHeight - maybeSmaller}px`
|
|
11516
|
-
}],
|
|
11517
|
-
...compact ? {
|
|
11518
|
-
minHeight: ["mh_var", {
|
|
11519
|
-
"--minHeight": `${compactFieldHeight - maybeSmaller}px`
|
|
11520
|
-
}]
|
|
11521
|
-
} : {}
|
|
11522
|
-
} : {
|
|
11523
|
-
height: ["h_var", {
|
|
11524
|
-
"--height": `${fieldHeight - maybeSmaller}px`
|
|
11525
|
-
}],
|
|
11526
|
-
...compact ? {
|
|
11527
|
-
height: ["h_var", {
|
|
11528
|
-
"--height": `${compactFieldHeight - maybeSmaller}px`
|
|
11529
|
-
}]
|
|
11530
|
-
} : {}
|
|
11531
|
-
}
|
|
11532
|
-
},
|
|
11533
|
-
// Border-hover-on-row styling is handled by Row.css.ts (imported above as a side-effect)
|
|
11534
|
-
inputWrapperReadOnly: {
|
|
11535
|
-
...{
|
|
11536
|
-
...__typography4[typeScale] ?? {},
|
|
11537
|
-
display: "df",
|
|
11538
|
-
alignItems: "aic",
|
|
11539
|
-
width: "w100",
|
|
11540
|
-
color: ["color_var", {
|
|
11541
|
-
"--color": "var(--b-on-surface)"
|
|
11542
|
-
}],
|
|
11543
|
-
...labelStyle === "left" ? {
|
|
11544
|
-
width: ["w_var", {
|
|
11545
|
-
"--width": maybeCssVar17(__maybeInc10(labelLeftFieldWidth))
|
|
11546
|
-
}]
|
|
11547
|
-
} : {}
|
|
11548
|
-
},
|
|
11549
|
-
// If we are hiding the label, then we are typically in a table. Keep the `mh` in this case to ensure editable and non-editable fields in a single table row line up properly
|
|
11550
|
-
...labelStyle === "hidden" && {
|
|
11551
|
-
minHeight: ["mh_var", {
|
|
11552
|
-
"--minHeight": `${fieldHeight - maybeSmaller}px`
|
|
11553
|
-
}],
|
|
11554
|
-
...compact ? {
|
|
11555
|
-
minHeight: ["mh_var", {
|
|
11556
|
-
"--minHeight": `${compactFieldHeight - maybeSmaller}px`
|
|
11557
|
-
}]
|
|
11558
|
-
} : {}
|
|
11559
|
-
}
|
|
11560
|
-
},
|
|
11667
|
+
const fieldChrome = getFieldChrome({
|
|
11668
|
+
typeScale,
|
|
11669
|
+
labelStyle,
|
|
11670
|
+
labelLeftFieldWidth,
|
|
11671
|
+
compact,
|
|
11672
|
+
borderless,
|
|
11673
|
+
borderOnHover,
|
|
11674
|
+
fullWidth,
|
|
11675
|
+
visuallyDisabled,
|
|
11676
|
+
isHovered,
|
|
11677
|
+
compound,
|
|
11678
|
+
multiline,
|
|
11679
|
+
showProposal,
|
|
11680
|
+
inputStylePalette
|
|
11681
|
+
});
|
|
11682
|
+
const fieldStyles = {
|
|
11683
|
+
container: fieldChrome.container,
|
|
11684
|
+
inputWrapper: fieldChrome.control,
|
|
11685
|
+
// Border-hover-on-row styling is handled by Row.css.ts (imported above as a side-effect)
|
|
11686
|
+
inputWrapperReadOnly: fieldChrome.readOnly,
|
|
11561
11687
|
input: {
|
|
11562
11688
|
...{
|
|
11563
11689
|
width: "w100",
|
|
@@ -11593,43 +11719,10 @@ function TextFieldBase(props) {
|
|
|
11593
11719
|
}]
|
|
11594
11720
|
} : {}
|
|
11595
11721
|
},
|
|
11596
|
-
hover:
|
|
11597
|
-
|
|
11598
|
-
|
|
11599
|
-
|
|
11600
|
-
borderColor: ["bc_var", {
|
|
11601
|
-
"--borderColor": "var(--b-field-border-hover)"
|
|
11602
|
-
}]
|
|
11603
|
-
},
|
|
11604
|
-
focus: {
|
|
11605
|
-
borderColor: ["bc_var", {
|
|
11606
|
-
"--borderColor": "var(--b-field-border-focus)"
|
|
11607
|
-
}],
|
|
11608
|
-
backgroundColor: ["bgColor_var", {
|
|
11609
|
-
"--backgroundColor": maybeCssVar17(hoverBgColor)
|
|
11610
|
-
}],
|
|
11611
|
-
...borderOnHover ? {
|
|
11612
|
-
borderColor: ["bc_var", {
|
|
11613
|
-
"--borderColor": "var(--b-field-border-focus)"
|
|
11614
|
-
}]
|
|
11615
|
-
} : {}
|
|
11616
|
-
},
|
|
11617
|
-
disabled: visuallyDisabled ? {
|
|
11618
|
-
cursor: "cur_not_allowed",
|
|
11619
|
-
color: ["color_var", {
|
|
11620
|
-
"--color": "var(--b-field-text-disabled)"
|
|
11621
|
-
}],
|
|
11622
|
-
backgroundColor: ["bgColor_var", {
|
|
11623
|
-
"--backgroundColor": maybeCssVar17(disabledBgColor)
|
|
11624
|
-
}]
|
|
11625
|
-
} : {
|
|
11626
|
-
cursor: "cur_not_allowed"
|
|
11627
|
-
},
|
|
11628
|
-
error: {
|
|
11629
|
-
borderColor: ["bc_var", {
|
|
11630
|
-
"--borderColor": "var(--b-field-border-error)"
|
|
11631
|
-
}]
|
|
11632
|
-
}
|
|
11722
|
+
hover: fieldChrome.hover,
|
|
11723
|
+
focus: fieldChrome.focus,
|
|
11724
|
+
disabled: fieldChrome.disabled,
|
|
11725
|
+
error: fieldChrome.error
|
|
11633
11726
|
};
|
|
11634
11727
|
function onDomChange(e) {
|
|
11635
11728
|
maybeCall(onUserEdit);
|
|
@@ -11816,37 +11909,6 @@ function TextFieldBase(props) {
|
|
|
11816
11909
|
] })
|
|
11817
11910
|
] });
|
|
11818
11911
|
}
|
|
11819
|
-
function OriginalValue(props) {
|
|
11820
|
-
const {
|
|
11821
|
-
originalValue,
|
|
11822
|
-
...others
|
|
11823
|
-
} = props;
|
|
11824
|
-
return /* @__PURE__ */ jsx39("div", { ...trussProps24({
|
|
11825
|
-
color: ["color_var", {
|
|
11826
|
-
"--color": "var(--b-text-helper)"
|
|
11827
|
-
}],
|
|
11828
|
-
fontWeight: "fw4",
|
|
11829
|
-
fontSize: "fz_12px",
|
|
11830
|
-
lineHeight: "lh_16px",
|
|
11831
|
-
marginTop: "mt_4px",
|
|
11832
|
-
textDecoration: "tdlt"
|
|
11833
|
-
}), ...others, children: originalValue });
|
|
11834
|
-
}
|
|
11835
|
-
function getInputStylePalette(inputStylePalette) {
|
|
11836
|
-
switch (inputStylePalette) {
|
|
11837
|
-
case "success":
|
|
11838
|
-
return ["rgba(236, 253, 245, 1)" /* Green50 */, "rgba(209, 250, 229, 1)" /* Green100 */, "rgba(236, 253, 245, 1)" /* Green50 */];
|
|
11839
|
-
case "caution":
|
|
11840
|
-
return ["rgba(254, 252, 232, 1)" /* Yellow50 */, "rgba(254, 249, 195, 1)" /* Yellow100 */, "rgba(254, 252, 232, 1)" /* Yellow50 */];
|
|
11841
|
-
case "warning":
|
|
11842
|
-
return ["rgba(254, 242, 242, 1)" /* Red50 */, "rgba(254, 226, 226, 1)" /* Red100 */, "rgba(254, 242, 242, 1)" /* Red50 */];
|
|
11843
|
-
case "info":
|
|
11844
|
-
return ["rgba(239, 246, 255, 1)" /* Blue50 */, "rgba(219, 234, 254, 1)" /* Blue100 */, "rgba(239, 246, 255, 1)" /* Blue50 */];
|
|
11845
|
-
default:
|
|
11846
|
-
return ["rgba(255, 255, 255, 1)" /* White */, "rgba(247, 245, 245, 1)" /* Gray100 */, "rgba(247, 245, 245, 1)" /* Gray100 */];
|
|
11847
|
-
}
|
|
11848
|
-
}
|
|
11849
|
-
var textFieldBasePadding = increment(1);
|
|
11850
11912
|
var textFieldBaseMultilineTopPadding = 11;
|
|
11851
11913
|
|
|
11852
11914
|
// src/inputs/internal/MenuSearchField.tsx
|
|
@@ -12692,6 +12754,16 @@ var iconStyles = {
|
|
|
12692
12754
|
// src/components/internal/Popover.tsx
|
|
12693
12755
|
import "react";
|
|
12694
12756
|
import { DismissButton, OverlayContainer, useOverlay } from "react-aria";
|
|
12757
|
+
|
|
12758
|
+
// src/components/internal/shouldDismissOverlay.ts
|
|
12759
|
+
function shouldDismissOverlay(el, trigger) {
|
|
12760
|
+
if (el.closest(".tribute-container") || el.closest("[role='alert']")) return false;
|
|
12761
|
+
const dialog = el.closest("[role='dialog']");
|
|
12762
|
+
if (dialog && !dialog.contains(trigger)) return false;
|
|
12763
|
+
return true;
|
|
12764
|
+
}
|
|
12765
|
+
|
|
12766
|
+
// src/components/internal/Popover.tsx
|
|
12695
12767
|
import { jsx as jsx44, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
12696
12768
|
function Popover(props) {
|
|
12697
12769
|
const { triggerRef, popoverRef, positionProps, children, onClose, isOpen: isOpen2, ...others } = props;
|
|
@@ -12702,12 +12774,8 @@ function Popover(props) {
|
|
|
12702
12774
|
isOpen: isOpen2,
|
|
12703
12775
|
isDismissable: true,
|
|
12704
12776
|
shouldCloseOnInteractOutside: (e) => {
|
|
12705
|
-
if (triggerRef.current?.contains(e))
|
|
12706
|
-
|
|
12707
|
-
}
|
|
12708
|
-
const dialog = e.closest("[role='dialog']");
|
|
12709
|
-
const isDialogOnTop = !!dialog && !dialog.contains(triggerRef.current);
|
|
12710
|
-
return !(e.closest(".tribute-container") || isDialogOnTop || e.closest("[role='alert']"));
|
|
12777
|
+
if (triggerRef.current?.contains(e)) return true;
|
|
12778
|
+
return shouldDismissOverlay(e, triggerRef.current);
|
|
12711
12779
|
},
|
|
12712
12780
|
...others
|
|
12713
12781
|
},
|
|
@@ -17420,7 +17488,8 @@ function ConfirmCloseModal(props) {
|
|
|
17420
17488
|
title = "Are you sure you want to leave?",
|
|
17421
17489
|
message = "Any changes you've made so far will be lost.",
|
|
17422
17490
|
discardText = "Discard Changes",
|
|
17423
|
-
continueText = "Continue Editing"
|
|
17491
|
+
continueText = "Continue Editing",
|
|
17492
|
+
isDestructive = false
|
|
17424
17493
|
} = props;
|
|
17425
17494
|
const { modalState } = useBeamContext();
|
|
17426
17495
|
function closeModal() {
|
|
@@ -17445,6 +17514,7 @@ function ConfirmCloseModal(props) {
|
|
|
17445
17514
|
Button,
|
|
17446
17515
|
{
|
|
17447
17516
|
label: continueText,
|
|
17517
|
+
variant: isDestructive ? "danger" : "primary",
|
|
17448
17518
|
onClick: () => {
|
|
17449
17519
|
onContinue?.();
|
|
17450
17520
|
closeModal();
|
|
@@ -19767,9 +19837,7 @@ function ComboBoxInput(props) {
|
|
|
19767
19837
|
inputWrapRef,
|
|
19768
19838
|
value: inputProps.value
|
|
19769
19839
|
});
|
|
19770
|
-
return /* @__PURE__ */ jsx116(TextFieldBase, { ...otherProps, ...multilineProps, unfocusedPlaceholder: showChipSelection && /* @__PURE__ */ jsx116(Chips, { compact: otherProps.compact, values: chipLabels, wrap: allowWrap }), inputRef, inputWrapRef, errorMsg, xss: otherProps.labelStyle
|
|
19771
|
-
fontWeight: "fw5"
|
|
19772
|
-
} : void 0, startAdornment: showNumSelection && /* @__PURE__ */ jsx116(Tooltip, { title: /* @__PURE__ */ jsx116(SelectedOptionBullets, { labels: chipLabels }), children: /* @__PURE__ */ jsx116(CountBadge, { count: selectedChipCount, "data-testid": "selectedOptionsCount" }) }) || showFieldDecoration && fieldDecoration(selectedOptions[0]), endAdornment: !inputProps.readOnly && /* @__PURE__ */ jsx116("button", { ...buttonProps, disabled: inputProps.disabled, ref: buttonRef, ...trussProps75({
|
|
19840
|
+
return /* @__PURE__ */ jsx116(TextFieldBase, { ...otherProps, ...multilineProps, unfocusedPlaceholder: showChipSelection && /* @__PURE__ */ jsx116(Chips, { compact: otherProps.compact, values: chipLabels, wrap: allowWrap }), inputRef, inputWrapRef, errorMsg, xss: selectedValueCss(otherProps.labelStyle, inputProps.readOnly), startAdornment: showNumSelection && /* @__PURE__ */ jsx116(Tooltip, { title: /* @__PURE__ */ jsx116(SelectedOptionBullets, { labels: chipLabels }), children: /* @__PURE__ */ jsx116(CountBadge, { count: selectedChipCount, "data-testid": "selectedOptionsCount" }) }) || showFieldDecoration && fieldDecoration(selectedOptions[0]), endAdornment: !inputProps.readOnly && /* @__PURE__ */ jsx116("button", { ...buttonProps, disabled: inputProps.disabled, ref: buttonRef, ...trussProps75({
|
|
19773
19841
|
...{
|
|
19774
19842
|
borderRadius: "br4",
|
|
19775
19843
|
outline: "ol_0",
|
|
@@ -24897,12 +24965,82 @@ import React18, { useCallback as useCallback35, useEffect as useEffect28, useMem
|
|
|
24897
24965
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
24898
24966
|
import { memo as memo2, useMemo as useMemo43, useState as useState44 } from "react";
|
|
24899
24967
|
|
|
24968
|
+
// src/components/Pills/SelectionSummaryPill/SelectionSummaryPill.tsx
|
|
24969
|
+
import { useHover as useHover18 } from "react-aria";
|
|
24970
|
+
import { trussProps as trussProps104, maybeCssVar as maybeCssVar47 } from "@homebound/truss/runtime";
|
|
24971
|
+
import { Fragment as Fragment37, jsx as jsx178, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
24972
|
+
function SelectionSummaryPill(props) {
|
|
24973
|
+
const {
|
|
24974
|
+
text,
|
|
24975
|
+
count,
|
|
24976
|
+
onClick,
|
|
24977
|
+
disabled = false,
|
|
24978
|
+
numberOnly = false,
|
|
24979
|
+
__storyState
|
|
24980
|
+
} = props;
|
|
24981
|
+
const tid = useTestIds(props, "selectionSummaryPill");
|
|
24982
|
+
const {
|
|
24983
|
+
hoverProps,
|
|
24984
|
+
isHovered: isHoveredFromEvents
|
|
24985
|
+
} = useHover18({
|
|
24986
|
+
isDisabled: !!disabled
|
|
24987
|
+
});
|
|
24988
|
+
const isHovered = __storyState?.hovered ?? isHoveredFromEvents;
|
|
24989
|
+
return maybeTooltip({
|
|
24990
|
+
title: resolveTooltip(disabled),
|
|
24991
|
+
placement: "top",
|
|
24992
|
+
children: /* @__PURE__ */ jsx178("button", { type: "button", disabled: !!disabled, onClick, "aria-label": `Clear ${text}`, ...trussProps104(pillStyles(!!disabled, isHovered, numberOnly)), ...hoverProps, ...tid, children: numberOnly ? /* @__PURE__ */ jsxs92(Fragment37, { children: [
|
|
24993
|
+
/* @__PURE__ */ jsx178(CountBadge, { count, bgColor: disabled ? "rgba(201, 201, 201, 1)" /* Gray400 */ : "rgba(37, 99, 235, 1)" /* Blue600 */, ...tid.count }),
|
|
24994
|
+
/* @__PURE__ */ jsx178("span", { className: "df fs0", ...tid.clear, children: /* @__PURE__ */ jsx178(Icon, { icon: "x", color: disabled ? "--b-on-surface-active-disabled" /* OnSurfaceActiveDisabled */ : "rgba(36, 36, 36, 1)" /* Gray900 */ }) })
|
|
24995
|
+
] }) : /* @__PURE__ */ jsxs92(Fragment37, { children: [
|
|
24996
|
+
text,
|
|
24997
|
+
/* @__PURE__ */ jsx178("span", { ...trussProps104({
|
|
24998
|
+
color: ["color_var", {
|
|
24999
|
+
"--color": maybeCssVar47(disabled ? "--b-on-surface-active-disabled" /* OnSurfaceActiveDisabled */ : "--b-on-surface-active" /* OnSurfaceActive */)
|
|
25000
|
+
}]
|
|
25001
|
+
}), ...tid.clear, children: "Clear" })
|
|
25002
|
+
] }) })
|
|
25003
|
+
});
|
|
25004
|
+
}
|
|
25005
|
+
function pillStyles(disabled, hovered, numberOnly) {
|
|
25006
|
+
return {
|
|
25007
|
+
fontWeight: "fw6",
|
|
25008
|
+
fontSize: "fz_14px",
|
|
25009
|
+
lineHeight: "lh_20px",
|
|
25010
|
+
display: "dif",
|
|
25011
|
+
alignItems: "aic",
|
|
25012
|
+
gap: "g_1",
|
|
25013
|
+
whiteSpace: "wsnw",
|
|
25014
|
+
borderStyle: "bss",
|
|
25015
|
+
borderWidth: "bw1",
|
|
25016
|
+
borderRadius: "brPill",
|
|
25017
|
+
paddingLeft: ["pl_var", {
|
|
25018
|
+
"--paddingLeft": `${numberOnly ? 19 : 15}px`
|
|
25019
|
+
}],
|
|
25020
|
+
paddingRight: "pr_15px",
|
|
25021
|
+
paddingTop: "pt_7px",
|
|
25022
|
+
paddingBottom: "pb_7px",
|
|
25023
|
+
borderColor: ["bc_var", {
|
|
25024
|
+
"--borderColor": "var(--b-surface-active-border)"
|
|
25025
|
+
}],
|
|
25026
|
+
color: ["color_var", {
|
|
25027
|
+
"--color": maybeCssVar47(disabled ? "--b-on-surface-active-disabled" /* OnSurfaceActiveDisabled */ : "rgba(36, 36, 36, 1)" /* Gray900 */)
|
|
25028
|
+
}],
|
|
25029
|
+
backgroundColor: ["bgColor_var", {
|
|
25030
|
+
"--backgroundColor": maybeCssVar47(hovered ? "--b-surface-active-hover" /* SurfaceActiveHover */ : "--b-surface-active" /* SurfaceActive */)
|
|
25031
|
+
}],
|
|
25032
|
+
...disabled ? {
|
|
25033
|
+
cursor: "cur_not_allowed"
|
|
25034
|
+
} : {}
|
|
25035
|
+
};
|
|
25036
|
+
}
|
|
25037
|
+
|
|
24900
25038
|
// src/components/Table/components/EditColumnsButton.tsx
|
|
24901
|
-
import { Fragment as
|
|
25039
|
+
import { Fragment as Fragment38, useCallback as useCallback27, useMemo as useMemo42, useRef as useRef53 } from "react";
|
|
24902
25040
|
import { useMenuTrigger as useMenuTrigger4 } from "react-aria";
|
|
24903
25041
|
import { useMenuTriggerState as useMenuTriggerState4 } from "react-stately";
|
|
24904
|
-
import { trussProps as
|
|
24905
|
-
import { jsx as
|
|
25042
|
+
import { trussProps as trussProps105 } from "@homebound/truss/runtime";
|
|
25043
|
+
import { jsx as jsx179, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
24906
25044
|
function EditColumnsButton(props) {
|
|
24907
25045
|
const {
|
|
24908
25046
|
defaultOpen,
|
|
@@ -24943,7 +25081,7 @@ function EditColumnsButton(props) {
|
|
|
24943
25081
|
const selectableOptionValues = options.map((option) => option.value);
|
|
24944
25082
|
return selectableOptionValues.some((option) => !selectedValues.includes(option));
|
|
24945
25083
|
}, [options, selectedValues]);
|
|
24946
|
-
return /* @__PURE__ */
|
|
25084
|
+
return /* @__PURE__ */ jsx179(OverlayTrigger, { ...props, trigger: sm ? {
|
|
24947
25085
|
icon: hasHiddenColumn ? "columnsBadged" : "columns",
|
|
24948
25086
|
variant: "outline"
|
|
24949
25087
|
} : {
|
|
@@ -24951,7 +25089,7 @@ function EditColumnsButton(props) {
|
|
|
24951
25089
|
label: "",
|
|
24952
25090
|
size: "md",
|
|
24953
25091
|
variant: "secondaryBlack"
|
|
24954
|
-
}, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */
|
|
25092
|
+
}, menuTriggerProps, state, buttonRef, ...tid, children: /* @__PURE__ */ jsxs93("div", { ...trussProps105({
|
|
24955
25093
|
display: "df",
|
|
24956
25094
|
flexDirection: "fdc",
|
|
24957
25095
|
backgroundColor: ["bgColor_var", {
|
|
@@ -24964,14 +25102,14 @@ function EditColumnsButton(props) {
|
|
|
24964
25102
|
maxHeight: "maxh_512px",
|
|
24965
25103
|
boxShadow: "bshBasic h_bshHover"
|
|
24966
25104
|
}), children: [
|
|
24967
|
-
/* @__PURE__ */
|
|
24968
|
-
/* @__PURE__ */
|
|
24969
|
-
/* @__PURE__ */
|
|
24970
|
-
option.tooltip ? /* @__PURE__ */
|
|
25105
|
+
/* @__PURE__ */ jsx179("div", { className: "dg gtc_1fr_auto g_2 pt2 pb2 pr2 pl2 fg1 mh0 oya", children: options.map((option) => /* @__PURE__ */ jsxs93(Fragment38, { children: [
|
|
25106
|
+
/* @__PURE__ */ jsxs93("div", { className: "df aic g_4px mw0 pr1", children: [
|
|
25107
|
+
/* @__PURE__ */ jsx179("span", { className: "fw4 fz_14px lh_20px wsnw oh to_ellipsis mw0", children: option.label }),
|
|
25108
|
+
option.tooltip ? /* @__PURE__ */ jsx179(ColumnTooltipIcon, { ...tid[`tooltip_${option.value}`], tooltip: closeMenuOnClickTooltip(option.tooltip, state.close), color: "--b-text-link-default" /* TextLinkDefault */, label: option.label }) : null
|
|
24971
25109
|
] }),
|
|
24972
|
-
/* @__PURE__ */
|
|
25110
|
+
/* @__PURE__ */ jsx179(Switch, { compact: true, selected: selectedValues.includes(option.value), onChange: (value) => setSelectedValues(value ? [...selectedValues, option.value] : selectedValues.filter((v) => v !== option.value)), labelStyle: "hidden", label: option.label, ...tid[`option${option.value}`] })
|
|
24973
25111
|
] }, option.value)) }),
|
|
24974
|
-
/* @__PURE__ */
|
|
25112
|
+
/* @__PURE__ */ jsx179("div", { ...trussProps105({
|
|
24975
25113
|
display: "df",
|
|
24976
25114
|
justifyContent: "jcc",
|
|
24977
25115
|
paddingTop: "pt2",
|
|
@@ -24983,7 +25121,7 @@ function EditColumnsButton(props) {
|
|
|
24983
25121
|
borderColor: ["bc_var", {
|
|
24984
25122
|
"--borderColor": "var(--b-surface-separator)"
|
|
24985
25123
|
}]
|
|
24986
|
-
}), children: /* @__PURE__ */
|
|
25124
|
+
}), children: /* @__PURE__ */ jsx179(Button, { variant: "tertiary", label: "Reset Column Widths", onClick: () => api.resetColumnWidths() }) })
|
|
24987
25125
|
] }) });
|
|
24988
25126
|
}
|
|
24989
25127
|
function closeMenuOnClickTooltip(tooltip, closeMenu) {
|
|
@@ -24995,7 +25133,7 @@ function closeMenuOnClickTooltip(tooltip, closeMenu) {
|
|
|
24995
25133
|
}
|
|
24996
25134
|
|
|
24997
25135
|
// src/components/Table/components/ViewToggleButton.tsx
|
|
24998
|
-
import { jsx as
|
|
25136
|
+
import { jsx as jsx180 } from "react/jsx-runtime";
|
|
24999
25137
|
function ViewToggleButton({ view, onChange, defaultOpen }) {
|
|
25000
25138
|
const { sm } = useBreakpoint();
|
|
25001
25139
|
const tid = useTestIds({}, "viewToggleButton");
|
|
@@ -25004,7 +25142,7 @@ function ViewToggleButton({ view, onChange, defaultOpen }) {
|
|
|
25004
25142
|
{ label: "Card", icon: "tile", onClick: () => onChange("card") }
|
|
25005
25143
|
];
|
|
25006
25144
|
const icon = view === "list" ? "projects" : "tile";
|
|
25007
|
-
return /* @__PURE__ */
|
|
25145
|
+
return /* @__PURE__ */ jsx180(
|
|
25008
25146
|
ButtonMenu,
|
|
25009
25147
|
{
|
|
25010
25148
|
trigger: sm ? { icon, variant: "outline" } : { icon, label: "", size: "md", variant: "secondaryBlack" },
|
|
@@ -25020,9 +25158,9 @@ import { useDebouncedCallback as useDebouncedCallback6 } from "use-debounce";
|
|
|
25020
25158
|
import { StringParam, useQueryParams } from "use-query-params";
|
|
25021
25159
|
|
|
25022
25160
|
// src/components/Pills/FilterPill/FilterPill.tsx
|
|
25023
|
-
import { useHover as
|
|
25024
|
-
import { trussProps as
|
|
25025
|
-
import { jsx as
|
|
25161
|
+
import { useHover as useHover19 } from "react-aria";
|
|
25162
|
+
import { trussProps as trussProps106, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
|
|
25163
|
+
import { jsx as jsx181, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
25026
25164
|
function FilterPill(props) {
|
|
25027
25165
|
const {
|
|
25028
25166
|
text,
|
|
@@ -25035,7 +25173,7 @@ function FilterPill(props) {
|
|
|
25035
25173
|
const {
|
|
25036
25174
|
hoverProps,
|
|
25037
25175
|
isHovered: isHoveredFromEvents
|
|
25038
|
-
} =
|
|
25176
|
+
} = useHover19({
|
|
25039
25177
|
isDisabled
|
|
25040
25178
|
});
|
|
25041
25179
|
const isHovered = __storyState?.hovered ?? isHoveredFromEvents;
|
|
@@ -25043,13 +25181,13 @@ function FilterPill(props) {
|
|
|
25043
25181
|
return maybeTooltip({
|
|
25044
25182
|
title: resolveTooltip(disabled),
|
|
25045
25183
|
placement: "top",
|
|
25046
|
-
children: /* @__PURE__ */
|
|
25047
|
-
/* @__PURE__ */
|
|
25048
|
-
/* @__PURE__ */
|
|
25184
|
+
children: /* @__PURE__ */ jsxs94("button", { type: "button", disabled: isDisabled, onClick, ...trussProps106(pillStyles2(isDisabled, isHovered)), ...hoverProps, ...tid, children: [
|
|
25185
|
+
/* @__PURE__ */ jsx181("span", { className: "tal oh d_negwebkit_box wbo_vertical to_ellipsis wlc_1 wbba", title: text, children: text }),
|
|
25186
|
+
/* @__PURE__ */ jsx181("span", { className: "fs0", ...tid.x, children: /* @__PURE__ */ jsx181(Icon, { icon: "x", color: ink, inc: 2 }) })
|
|
25049
25187
|
] })
|
|
25050
25188
|
});
|
|
25051
25189
|
}
|
|
25052
|
-
function
|
|
25190
|
+
function pillStyles2(disabled, hovered) {
|
|
25053
25191
|
return {
|
|
25054
25192
|
fontWeight: "fw6",
|
|
25055
25193
|
fontSize: "fz_12px",
|
|
@@ -25064,10 +25202,10 @@ function pillStyles(disabled, hovered) {
|
|
|
25064
25202
|
paddingBottom: "pb_4px",
|
|
25065
25203
|
minHeight: "mh_24px",
|
|
25066
25204
|
color: ["color_var", {
|
|
25067
|
-
"--color":
|
|
25205
|
+
"--color": maybeCssVar48(disabled ? "--b-on-surface-active-disabled" /* OnSurfaceActiveDisabled */ : "rgba(36, 36, 36, 1)" /* Gray900 */)
|
|
25068
25206
|
}],
|
|
25069
25207
|
backgroundColor: ["bgColor_var", {
|
|
25070
|
-
"--backgroundColor":
|
|
25208
|
+
"--backgroundColor": maybeCssVar48(hovered ? "--b-surface-active-hover" /* SurfaceActiveHover */ : "--b-surface-active" /* SurfaceActive */)
|
|
25071
25209
|
}],
|
|
25072
25210
|
...disabled ? {
|
|
25073
25211
|
cursor: "cur_not_allowed"
|
|
@@ -25076,12 +25214,12 @@ function pillStyles(disabled, hovered) {
|
|
|
25076
25214
|
}
|
|
25077
25215
|
|
|
25078
25216
|
// src/components/Layout/GridTableLayout/FilterPanel.tsx
|
|
25079
|
-
import { trussProps as
|
|
25217
|
+
import { trussProps as trussProps107 } from "@homebound/truss/runtime";
|
|
25080
25218
|
|
|
25081
25219
|
// src/components/Layout/GridTableLayout/GroupByField.tsx
|
|
25082
|
-
import { jsx as
|
|
25220
|
+
import { jsx as jsx182 } from "react/jsx-runtime";
|
|
25083
25221
|
function GroupByField({ value, setValue, options }) {
|
|
25084
|
-
return /* @__PURE__ */
|
|
25222
|
+
return /* @__PURE__ */ jsx182(
|
|
25085
25223
|
SelectField,
|
|
25086
25224
|
{
|
|
25087
25225
|
label: "Group by",
|
|
@@ -25097,9 +25235,9 @@ function GroupByField({ value, setValue, options }) {
|
|
|
25097
25235
|
}
|
|
25098
25236
|
|
|
25099
25237
|
// src/components/Layout/GridTableLayout/FilterPanel.tsx
|
|
25100
|
-
import { jsx as
|
|
25238
|
+
import { jsx as jsx183, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
25101
25239
|
function FilterPanel(props) {
|
|
25102
|
-
return props.isOpen ? /* @__PURE__ */
|
|
25240
|
+
return props.isOpen ? /* @__PURE__ */ jsx183(FilterPanelOpen, { ...props }) : /* @__PURE__ */ jsx183(FilterPanelClosed, { ...props });
|
|
25103
25241
|
}
|
|
25104
25242
|
function FilterPanelOpen({
|
|
25105
25243
|
groupBy,
|
|
@@ -25114,7 +25252,7 @@ function FilterPanelOpen({
|
|
|
25114
25252
|
const withPagePadding = inDocumentScrollLayout && !insetHandled;
|
|
25115
25253
|
const activeFilterCount = getActiveFilterCount(filter ?? {});
|
|
25116
25254
|
const filterControls = filter && setFilter ? buildFilterControls(filterImpls, filter, setFilter, tid) : null;
|
|
25117
|
-
return /* @__PURE__ */
|
|
25255
|
+
return /* @__PURE__ */ jsxs95("div", { ...trussProps107({
|
|
25118
25256
|
...{
|
|
25119
25257
|
display: "df",
|
|
25120
25258
|
alignItems: "aic",
|
|
@@ -25130,9 +25268,9 @@ function FilterPanelOpen({
|
|
|
25130
25268
|
},
|
|
25131
25269
|
...withPagePadding ? pageContentPaddingX : void 0
|
|
25132
25270
|
}), children: [
|
|
25133
|
-
groupBy && /* @__PURE__ */
|
|
25271
|
+
groupBy && /* @__PURE__ */ jsx183("div", { children: /* @__PURE__ */ jsx183(GroupByField, { ...groupBy }) }),
|
|
25134
25272
|
filterControls,
|
|
25135
|
-
activeFilterCount > 0 && /* @__PURE__ */
|
|
25273
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsx183(Button, { label: "Clear", variant: "tertiary", onClick: () => maybeCall(onClear), ...tid.clearBtn })
|
|
25136
25274
|
] });
|
|
25137
25275
|
}
|
|
25138
25276
|
function FilterPanelClosed({
|
|
@@ -25148,7 +25286,7 @@ function FilterPanelClosed({
|
|
|
25148
25286
|
if (!filter || !setFilter) return null;
|
|
25149
25287
|
const pills = getFilterPills(filterImpls, filter);
|
|
25150
25288
|
if (pills.length === 0) return null;
|
|
25151
|
-
return /* @__PURE__ */
|
|
25289
|
+
return /* @__PURE__ */ jsxs95("div", { ...trussProps107({
|
|
25152
25290
|
...{
|
|
25153
25291
|
display: "df",
|
|
25154
25292
|
gap: "g_1",
|
|
@@ -25158,15 +25296,15 @@ function FilterPanelClosed({
|
|
|
25158
25296
|
},
|
|
25159
25297
|
...withPagePadding ? pageContentPaddingX : void 0
|
|
25160
25298
|
}), children: [
|
|
25161
|
-
pills.map((pill) => /* @__PURE__ */
|
|
25162
|
-
/* @__PURE__ */
|
|
25299
|
+
pills.map((pill) => /* @__PURE__ */ jsx183(FilterPill, { text: pill.label, onClick: () => setFilter(pill.nextFilter), ...tid[`pill_${pill.key}`] }, pill.key)),
|
|
25300
|
+
/* @__PURE__ */ jsx183(Button, { label: "Clear", variant: "tertiary", onClick: () => maybeCall(onClear), ...tid.clearBtn })
|
|
25163
25301
|
] });
|
|
25164
25302
|
}
|
|
25165
25303
|
function buildFilterControls(filterImpls, filter, setFilter, testId) {
|
|
25166
25304
|
const entries = safeEntries(filterImpls);
|
|
25167
25305
|
const nonCheckbox = entries.filter(([_, f]) => !f.hideLabelInModal);
|
|
25168
25306
|
const checkbox = entries.filter(([_, f]) => f.hideLabelInModal);
|
|
25169
|
-
return [...nonCheckbox, ...checkbox].map(([key, f]) => /* @__PURE__ */
|
|
25307
|
+
return [...nonCheckbox, ...checkbox].map(([key, f]) => /* @__PURE__ */ jsx183("div", { children: f.render(filter[key], (value) => setFilter(updateFilter(filter, key, value)), testId, false, false) }, key));
|
|
25170
25308
|
}
|
|
25171
25309
|
function buildFilterImpls(filterDefs) {
|
|
25172
25310
|
return Object.fromEntries(safeEntries(filterDefs).map(([key, fn]) => [key, fn(key)]));
|
|
@@ -25199,8 +25337,8 @@ function filterPillsForKey(key, f, filter) {
|
|
|
25199
25337
|
}
|
|
25200
25338
|
|
|
25201
25339
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
25202
|
-
import { trussProps as
|
|
25203
|
-
import { jsx as
|
|
25340
|
+
import { trussProps as trussProps108 } from "@homebound/truss/runtime";
|
|
25341
|
+
import { jsx as jsx184, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
25204
25342
|
function GridTableLayoutActionsComponent(props) {
|
|
25205
25343
|
const {
|
|
25206
25344
|
filter,
|
|
@@ -25216,7 +25354,8 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
25216
25354
|
setView,
|
|
25217
25355
|
clearFilters,
|
|
25218
25356
|
searchApi,
|
|
25219
|
-
actions
|
|
25357
|
+
actions,
|
|
25358
|
+
selectionSummary = false
|
|
25220
25359
|
} = props;
|
|
25221
25360
|
const testId = useTestIds(props, "gridTableLayoutActions");
|
|
25222
25361
|
const filterTid = useTestIds({}, filterTestIdPrefix);
|
|
@@ -25253,10 +25392,10 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
25253
25392
|
const showInlineControl = !inModal && !sm && controlCount === 1 && (hasGroupBy || !!(filter && setFilter));
|
|
25254
25393
|
const filterImpls = useMemo43(() => filterDefs ? buildFilterImpls(filterDefs) : {}, [filterDefs]);
|
|
25255
25394
|
const activeFilterCount = useMemo43(() => filter ? getFilterPills(filterImpls, filter).length : 0, [filter, filterImpls]);
|
|
25256
|
-
const searchTextField = /* @__PURE__ */
|
|
25395
|
+
const searchTextField = /* @__PURE__ */ jsx184(TextField, { label: "Search", labelStyle: "hidden", value: searchValue, onChange: (v) => {
|
|
25257
25396
|
setSearchValue(v ?? "");
|
|
25258
25397
|
handleSearchDebounced(v ?? "");
|
|
25259
|
-
}, placeholder: "Search", clearable: true, fullWidth: true, startAdornment: /* @__PURE__ */
|
|
25398
|
+
}, placeholder: "Search", clearable: true, fullWidth: true, startAdornment: /* @__PURE__ */ jsx184(Icon, { icon: "search", color: "--b-on-surface-muted" /* OnSurfaceMuted */ }) });
|
|
25260
25399
|
if (searchApi) {
|
|
25261
25400
|
searchApi.current = {
|
|
25262
25401
|
clear: () => {
|
|
@@ -25268,7 +25407,7 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
25268
25407
|
}
|
|
25269
25408
|
};
|
|
25270
25409
|
}
|
|
25271
|
-
return /* @__PURE__ */
|
|
25410
|
+
return /* @__PURE__ */ jsxs96("div", { ...trussProps108({
|
|
25272
25411
|
display: "df",
|
|
25273
25412
|
flexDirection: "fdc",
|
|
25274
25413
|
gap: "g_1",
|
|
@@ -25278,35 +25417,49 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
25278
25417
|
paddingBottom: "pb3"
|
|
25279
25418
|
} : {}
|
|
25280
25419
|
}), children: [
|
|
25281
|
-
/* @__PURE__ */
|
|
25420
|
+
/* @__PURE__ */ jsxs96("div", { ...trussProps108({
|
|
25421
|
+
// Holds the row at the 40px button height, so a pill alone in it doesn't shift the table when it appears
|
|
25282
25422
|
...{
|
|
25283
25423
|
display: "df",
|
|
25284
25424
|
gap: "g_1",
|
|
25285
|
-
justifyContent: "jcsb"
|
|
25425
|
+
justifyContent: "jcsb",
|
|
25426
|
+
...selectionSummary ? {
|
|
25427
|
+
minHeight: "mh_40px"
|
|
25428
|
+
} : {}
|
|
25286
25429
|
},
|
|
25287
25430
|
...withPagePadding ? pageContentPaddingX : void 0
|
|
25288
25431
|
}), ...testId.toolbar, children: [
|
|
25289
|
-
/* @__PURE__ */
|
|
25290
|
-
!sm && hasSearch && /* @__PURE__ */
|
|
25291
|
-
sm && hasSearch && /* @__PURE__ */
|
|
25292
|
-
sm && hasFilterControls && /* @__PURE__ */
|
|
25293
|
-
showInlineControl && (groupBy ? /* @__PURE__ */
|
|
25294
|
-
!sm && hasFilterControls && !showInlineControl && /* @__PURE__ */
|
|
25295
|
-
activeFilterCount > 0 && /* @__PURE__ */
|
|
25296
|
-
/* @__PURE__ */
|
|
25432
|
+
/* @__PURE__ */ jsxs96("div", { className: "df g_12px aic", children: [
|
|
25433
|
+
!sm && hasSearch && /* @__PURE__ */ jsx184("div", { className: "w_244px", children: searchTextField }),
|
|
25434
|
+
sm && hasSearch && /* @__PURE__ */ jsx184(IconButton, { variant: "outline", icon: searchValue ? "searchBadged" : "search", label: "Search", onClick: () => setShowSearch(!showSearch), active: showSearch, ...testId.searchButton }),
|
|
25435
|
+
sm && hasFilterControls && /* @__PURE__ */ jsx184(IconButton, { variant: "outline", icon: activeFilterCount > 0 ? "filterBadged" : "filter", label: "Filter", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterSmallButton }),
|
|
25436
|
+
showInlineControl && (groupBy ? /* @__PURE__ */ jsx184(GroupByField, { ...groupBy }) : filter && setFilter && buildFilterControls(filterImpls, filter, setFilter, filterTid)),
|
|
25437
|
+
!sm && hasFilterControls && !showInlineControl && /* @__PURE__ */ jsx184(Button, { label: "Filter", icon: "filter", size: "md", endAdornment: /* @__PURE__ */ jsxs96("div", { className: "df aic g_1", children: [
|
|
25438
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsx184(CountBadge, { count: activeFilterCount }),
|
|
25439
|
+
/* @__PURE__ */ jsx184(Icon, { icon: showFilters ? "chevronUp" : "chevronDown" })
|
|
25297
25440
|
] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton })
|
|
25298
25441
|
] }),
|
|
25299
|
-
(hasHideableColumns || withCardView || !!actions?.length) && /* @__PURE__ */
|
|
25300
|
-
|
|
25301
|
-
|
|
25302
|
-
|
|
25442
|
+
(hasHideableColumns || withCardView || !!actions?.length || selectionSummary) && /* @__PURE__ */ jsxs96("div", { className: "df aic g_12px", children: [
|
|
25443
|
+
selectionSummary && api && /* @__PURE__ */ jsx184(SelectionSummaryAction, { api, numberOnly: sm }),
|
|
25444
|
+
hasHideableColumns && view === "list" && columns && api && /* @__PURE__ */ jsx184(EditColumnsButton, { columns, api, tooltip: "Display columns" }),
|
|
25445
|
+
withCardView && view !== void 0 && setView && /* @__PURE__ */ jsx184(ViewToggleButton, { view, onChange: setView }),
|
|
25446
|
+
!!actions?.length && /* @__PURE__ */ jsx184(HeaderActions, { actions, ...testId.actions })
|
|
25303
25447
|
] })
|
|
25304
25448
|
] }),
|
|
25305
|
-
sm && showSearch && /* @__PURE__ */
|
|
25306
|
-
hasFilterControls && !showInlineControl && /* @__PURE__ */
|
|
25449
|
+
sm && showSearch && /* @__PURE__ */ jsx184("div", { ...trussProps108(withPagePadding ? pageContentPaddingX : void 0), children: searchTextField }),
|
|
25450
|
+
hasFilterControls && !showInlineControl && /* @__PURE__ */ jsx184(FilterPanel, { isOpen: showFilters, groupBy, filterImpls, filter, setFilter, onClear: clearFilters })
|
|
25307
25451
|
] });
|
|
25308
25452
|
}
|
|
25309
25453
|
var _GridTableLayoutActions = memo2(GridTableLayoutActionsComponent);
|
|
25454
|
+
function SelectionSummaryAction(props) {
|
|
25455
|
+
const {
|
|
25456
|
+
api,
|
|
25457
|
+
numberOnly
|
|
25458
|
+
} = props;
|
|
25459
|
+
const count = useComputed(() => api.getSelectedLeafRowCount(), [api]);
|
|
25460
|
+
if (count === 0) return null;
|
|
25461
|
+
return /* @__PURE__ */ jsx184(SelectionSummaryPill, { text: `${count} ${pluralize(count, "Row")} Selected`, count, onClick: () => api.clearSelections(), numberOnly });
|
|
25462
|
+
}
|
|
25310
25463
|
|
|
25311
25464
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
25312
25465
|
import { useResizeObserver as useResizeObserver8 } from "@react-aria/utils";
|
|
@@ -25324,10 +25477,10 @@ import { createPortal as createPortal6 } from "react-dom";
|
|
|
25324
25477
|
|
|
25325
25478
|
// src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayoutHeightContext.tsx
|
|
25326
25479
|
import { createContext as createContext12, useContext as useContext22 } from "react";
|
|
25327
|
-
import { jsx as
|
|
25480
|
+
import { jsx as jsx185 } from "react/jsx-runtime";
|
|
25328
25481
|
var EnvironmentBannerLayoutHeightContext = createContext12(0);
|
|
25329
25482
|
function EnvironmentBannerLayoutHeightProvider({ value, children }) {
|
|
25330
|
-
return /* @__PURE__ */
|
|
25483
|
+
return /* @__PURE__ */ jsx185(EnvironmentBannerLayoutHeightContext.Provider, { value, children });
|
|
25331
25484
|
}
|
|
25332
25485
|
function useEnvironmentBannerLayoutHeight() {
|
|
25333
25486
|
return useContext22(EnvironmentBannerLayoutHeightContext);
|
|
@@ -25476,8 +25629,8 @@ function waitForRightPaneExit(onComplete) {
|
|
|
25476
25629
|
}
|
|
25477
25630
|
|
|
25478
25631
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPane.tsx
|
|
25479
|
-
import { mergeProps as mergeProps28, maybeCssVar as
|
|
25480
|
-
import { jsx as
|
|
25632
|
+
import { mergeProps as mergeProps28, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
|
|
25633
|
+
import { jsx as jsx186 } from "react/jsx-runtime";
|
|
25481
25634
|
var __maybeInc20 = (inc) => {
|
|
25482
25635
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25483
25636
|
};
|
|
@@ -25530,7 +25683,7 @@ function DocumentScrollRightPane({
|
|
|
25530
25683
|
height: paneBounds.heightPx,
|
|
25531
25684
|
maxHeight: paneBounds.heightPx
|
|
25532
25685
|
} : void 0;
|
|
25533
|
-
const pane = /* @__PURE__ */
|
|
25686
|
+
const pane = /* @__PURE__ */ jsx186(AnimatePresence3, { children: isRightPaneOpen && /* @__PURE__ */ jsx186(
|
|
25534
25687
|
motion3.div,
|
|
25535
25688
|
{
|
|
25536
25689
|
ref: paneRef,
|
|
@@ -25548,20 +25701,20 @@ function DocumentScrollRightPane({
|
|
|
25548
25701
|
"--backgroundColor": "var(--b-surface)"
|
|
25549
25702
|
}],
|
|
25550
25703
|
zIndex: ["z_var", {
|
|
25551
|
-
"--zIndex":
|
|
25704
|
+
"--zIndex": maybeCssVar49(zIndices.rightPaneMobile)
|
|
25552
25705
|
}]
|
|
25553
25706
|
} : {
|
|
25554
25707
|
position: "fixed",
|
|
25555
25708
|
right: "r_0",
|
|
25556
25709
|
overflowY: "oya",
|
|
25557
25710
|
width: ["w_var", {
|
|
25558
|
-
"--width":
|
|
25711
|
+
"--width": maybeCssVar49(__maybeInc20(paneWidthCss))
|
|
25559
25712
|
}],
|
|
25560
25713
|
backgroundColor: ["bgColor_var", {
|
|
25561
25714
|
"--backgroundColor": "var(--b-surface)"
|
|
25562
25715
|
}],
|
|
25563
25716
|
zIndex: ["z_var", {
|
|
25564
|
-
"--zIndex":
|
|
25717
|
+
"--zIndex": maybeCssVar49(zIndices.rightPane)
|
|
25565
25718
|
}],
|
|
25566
25719
|
borderLeftStyle: "bls_solid",
|
|
25567
25720
|
borderLeftWidth: "blw_1px",
|
|
@@ -25598,7 +25751,7 @@ function DocumentScrollRightPane({
|
|
|
25598
25751
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPaneLayoutRoot.tsx
|
|
25599
25752
|
import { createContext as createContext13 } from "react";
|
|
25600
25753
|
import { mergeProps as mergeProps29 } from "@homebound/truss/runtime";
|
|
25601
|
-
import { jsx as
|
|
25754
|
+
import { jsx as jsx187 } from "react/jsx-runtime";
|
|
25602
25755
|
var NestedRightPaneLayoutContext = createContext13(false);
|
|
25603
25756
|
function DocumentScrollRightPaneLayoutRoot(props) {
|
|
25604
25757
|
const {
|
|
@@ -25609,7 +25762,7 @@ function DocumentScrollRightPaneLayoutRoot(props) {
|
|
|
25609
25762
|
const {
|
|
25610
25763
|
sm
|
|
25611
25764
|
} = useBreakpoint();
|
|
25612
|
-
return /* @__PURE__ */
|
|
25765
|
+
return /* @__PURE__ */ jsx187(NestedRightPaneLayoutContext.Provider, { value: true, children: /* @__PURE__ */ jsx187(
|
|
25613
25766
|
"div",
|
|
25614
25767
|
{
|
|
25615
25768
|
ref: anchorRef.setRef,
|
|
@@ -25660,7 +25813,7 @@ function resolveWithRightPaneOptions(withRightPane) {
|
|
|
25660
25813
|
}
|
|
25661
25814
|
|
|
25662
25815
|
// src/components/Layout/RightPaneLayout/DocumentScrollOverlayRightPaneLayout.tsx
|
|
25663
|
-
import { Fragment as
|
|
25816
|
+
import { Fragment as Fragment39, jsx as jsx188, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
25664
25817
|
function DocumentScrollOverlayRightPaneLayout({
|
|
25665
25818
|
children,
|
|
25666
25819
|
paneWidth = defaultDocumentScrollRightPaneWidth
|
|
@@ -25677,14 +25830,14 @@ function DocumentScrollOverlayRightPaneLayout({
|
|
|
25677
25830
|
console.warn("DocumentScrollOverlayRightPaneLayout is nested inside another document-scroll right-pane layout. Use a single layout (compose at the body; do not set withRightPane on both a parent and a nested layout).");
|
|
25678
25831
|
}
|
|
25679
25832
|
}, [nestedInLayout]);
|
|
25680
|
-
if (nestedInLayout) return /* @__PURE__ */
|
|
25681
|
-
return /* @__PURE__ */
|
|
25833
|
+
if (nestedInLayout) return /* @__PURE__ */ jsx188(Fragment39, { children });
|
|
25834
|
+
return /* @__PURE__ */ jsx188(DocumentScrollRightPaneLayoutRoot, { anchorRef, tid, children: sm ? /* @__PURE__ */ jsxs97(Fragment39, { children: [
|
|
25682
25835
|
children,
|
|
25683
|
-
/* @__PURE__ */
|
|
25684
|
-
] }) : /* @__PURE__ */
|
|
25685
|
-
/* @__PURE__ */
|
|
25686
|
-
/* @__PURE__ */
|
|
25687
|
-
/* @__PURE__ */
|
|
25836
|
+
/* @__PURE__ */ jsx188(DocumentScrollRightPane, { paneWidth, mobile: true })
|
|
25837
|
+
] }) : /* @__PURE__ */ jsxs97(Fragment39, { children: [
|
|
25838
|
+
/* @__PURE__ */ jsxs97("div", { className: "df aifs wfc mw100", children: [
|
|
25839
|
+
/* @__PURE__ */ jsx188("div", { className: "w100 mwfc", ...tid.main, children }),
|
|
25840
|
+
/* @__PURE__ */ jsx188("div", { ref: spacerRef, "aria-hidden": true, ...mergeProps30(void 0, {
|
|
25688
25841
|
width: 0
|
|
25689
25842
|
}, {
|
|
25690
25843
|
flexShrink: "fs0",
|
|
@@ -25693,7 +25846,7 @@ function DocumentScrollOverlayRightPaneLayout({
|
|
|
25693
25846
|
transition: "transitionWidth"
|
|
25694
25847
|
}), ...tid.spacer })
|
|
25695
25848
|
] }),
|
|
25696
|
-
/* @__PURE__ */
|
|
25849
|
+
/* @__PURE__ */ jsx188(DocumentScrollOverlayRightPaneHost, { anchorRef: anchorRef.ref, spacerRef, paneWidth })
|
|
25697
25850
|
] }) });
|
|
25698
25851
|
}
|
|
25699
25852
|
function DocumentScrollOverlayRightPaneHost(props) {
|
|
@@ -25733,7 +25886,7 @@ function DocumentScrollOverlayRightPaneHost(props) {
|
|
|
25733
25886
|
document.documentElement.style.setProperty(beamFloatingRightOffsetVar, "0px");
|
|
25734
25887
|
};
|
|
25735
25888
|
}, [anchorRef, keepOverlayChrome, paneWidthCss]);
|
|
25736
|
-
return /* @__PURE__ */
|
|
25889
|
+
return /* @__PURE__ */ jsx188(DocumentScrollRightPane, { paneWidth, mobile: false, anchorRef });
|
|
25737
25890
|
}
|
|
25738
25891
|
|
|
25739
25892
|
// src/components/Modal/ModalFullBleed.tsx
|
|
@@ -25761,8 +25914,8 @@ function ModalFullBleed({
|
|
|
25761
25914
|
}
|
|
25762
25915
|
|
|
25763
25916
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
25764
|
-
import { trussProps as
|
|
25765
|
-
import { jsx as
|
|
25917
|
+
import { trussProps as trussProps109, maybeCssVar as maybeCssVar50 } from "@homebound/truss/runtime";
|
|
25918
|
+
import { jsx as jsx189, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
25766
25919
|
var __maybeInc21 = (inc) => {
|
|
25767
25920
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
25768
25921
|
};
|
|
@@ -25786,9 +25939,9 @@ function GridTableLayoutHost(props) {
|
|
|
25786
25939
|
testIds,
|
|
25787
25940
|
children
|
|
25788
25941
|
};
|
|
25789
|
-
if (host.kind === "modal") return /* @__PURE__ */
|
|
25790
|
-
if (host.kind === "document-scroll") return /* @__PURE__ */
|
|
25791
|
-
return /* @__PURE__ */
|
|
25942
|
+
if (host.kind === "modal") return /* @__PURE__ */ jsx189(ModalHost, { ...shared, host });
|
|
25943
|
+
if (host.kind === "document-scroll") return /* @__PURE__ */ jsx189(DocumentScrollHost, { ...shared, rightPane });
|
|
25944
|
+
return /* @__PURE__ */ jsx189(ScrollableParentHost, { ...shared, isVirtualized });
|
|
25792
25945
|
}
|
|
25793
25946
|
function ModalHost(props) {
|
|
25794
25947
|
const {
|
|
@@ -25799,15 +25952,15 @@ function ModalHost(props) {
|
|
|
25799
25952
|
testIds,
|
|
25800
25953
|
children
|
|
25801
25954
|
} = props;
|
|
25802
|
-
return /* @__PURE__ */
|
|
25803
|
-
/* @__PURE__ */
|
|
25955
|
+
return /* @__PURE__ */ jsx189(ModalFullBleed, { omitPadding: true, children: /* @__PURE__ */ jsx189("div", { ref: tableWrapperRef, ...testIds.tableWrapper, children: /* @__PURE__ */ jsxs98("div", { className: "wmaxc mw100", children: [
|
|
25956
|
+
/* @__PURE__ */ jsx189(ActionsBar, { actionsRef: tableActionsRef, xss: {
|
|
25804
25957
|
...{
|
|
25805
25958
|
position: "sticky",
|
|
25806
25959
|
top: "top0",
|
|
25807
25960
|
left: "l_0",
|
|
25808
25961
|
width: "w_100cqw",
|
|
25809
25962
|
zIndex: ["z_var", {
|
|
25810
|
-
"--zIndex":
|
|
25963
|
+
"--zIndex": maybeCssVar50(zIndices.tableActions)
|
|
25811
25964
|
}],
|
|
25812
25965
|
backgroundColor: ["bgColor_var", {
|
|
25813
25966
|
"--backgroundColor": "var(--b-surface)"
|
|
@@ -25815,7 +25968,7 @@ function ModalHost(props) {
|
|
|
25815
25968
|
},
|
|
25816
25969
|
...modalBodyPaddingX
|
|
25817
25970
|
}, testIds, children: actions }),
|
|
25818
|
-
/* @__PURE__ */
|
|
25971
|
+
/* @__PURE__ */ jsx189(VirtualizedScrollParentProvider, { element: host.scrollEl, viewportWidth: host.scrollViewportWidth, children })
|
|
25819
25972
|
] }) }) });
|
|
25820
25973
|
}
|
|
25821
25974
|
function DocumentScrollHost(props) {
|
|
@@ -25827,26 +25980,26 @@ function DocumentScrollHost(props) {
|
|
|
25827
25980
|
testIds,
|
|
25828
25981
|
children
|
|
25829
25982
|
} = props;
|
|
25830
|
-
const tableBody = rightPane ? /* @__PURE__ */
|
|
25983
|
+
const tableBody = rightPane ? /* @__PURE__ */ jsx189(DocumentScrollOverlayRightPaneLayout, { paneWidth: rightPane.width, children: /* @__PURE__ */ jsx189("div", { ...trussProps109({
|
|
25831
25984
|
minWidth: ["mw_var", {
|
|
25832
|
-
"--minWidth":
|
|
25985
|
+
"--minWidth": maybeCssVar50(documentScrollRightPaneContentMinCss())
|
|
25833
25986
|
}]
|
|
25834
25987
|
}), children }) }) : children;
|
|
25835
|
-
return /* @__PURE__ */
|
|
25836
|
-
/* @__PURE__ */
|
|
25988
|
+
return /* @__PURE__ */ jsxs98("div", { ref: tableWrapperRef, className: "df fdc wfc mw100", ...actions !== void 0 ? selfTopSpaced : {}, ...testIds.tableWrapper, children: [
|
|
25989
|
+
/* @__PURE__ */ jsx189(ActionsBar, { actionsRef: tableActionsRef, xss: {
|
|
25837
25990
|
transition: "transitionTop",
|
|
25838
25991
|
position: "sticky",
|
|
25839
25992
|
top: ["top_var", {
|
|
25840
|
-
"--top":
|
|
25993
|
+
"--top": maybeCssVar50(__maybeInc21(stickyNavAndHeaderOffset()))
|
|
25841
25994
|
}],
|
|
25842
25995
|
left: ["left_var", {
|
|
25843
|
-
"--left":
|
|
25996
|
+
"--left": maybeCssVar50(__maybeInc21(documentScrollChromeLeft()))
|
|
25844
25997
|
}],
|
|
25845
25998
|
width: ["w_var", {
|
|
25846
|
-
"--width":
|
|
25999
|
+
"--width": maybeCssVar50(__maybeInc21(`min(100%, ${documentScrollChromeWidth()})`))
|
|
25847
26000
|
}],
|
|
25848
26001
|
zIndex: ["z_var", {
|
|
25849
|
-
"--zIndex":
|
|
26002
|
+
"--zIndex": maybeCssVar50(zIndices.tableActions)
|
|
25850
26003
|
}],
|
|
25851
26004
|
backgroundColor: ["bgColor_var", {
|
|
25852
26005
|
"--backgroundColor": "var(--b-surface)"
|
|
@@ -25864,9 +26017,9 @@ function ScrollableParentHost(props) {
|
|
|
25864
26017
|
testIds,
|
|
25865
26018
|
children
|
|
25866
26019
|
} = props;
|
|
25867
|
-
return /* @__PURE__ */
|
|
25868
|
-
/* @__PURE__ */
|
|
25869
|
-
/* @__PURE__ */
|
|
26020
|
+
return /* @__PURE__ */ jsxs98("div", { ref: tableWrapperRef, className: "df fdc", ...actions !== void 0 ? selfTopSpaced : {}, ...testIds.tableWrapper, children: [
|
|
26021
|
+
/* @__PURE__ */ jsx189(ActionsBar, { actionsRef: tableActionsRef, testIds, children: actions }),
|
|
26022
|
+
/* @__PURE__ */ jsx189(ScrollableContent, { virtualized: isVirtualized, children })
|
|
25870
26023
|
] });
|
|
25871
26024
|
}
|
|
25872
26025
|
function ActionsBar({
|
|
@@ -25876,7 +26029,7 @@ function ActionsBar({
|
|
|
25876
26029
|
children
|
|
25877
26030
|
}) {
|
|
25878
26031
|
if (children === void 0) return null;
|
|
25879
|
-
return /* @__PURE__ */
|
|
26032
|
+
return /* @__PURE__ */ jsx189("div", { ref: actionsRef, ...trussProps109(xss), ...testIds.stickyContent, children });
|
|
25880
26033
|
}
|
|
25881
26034
|
function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
25882
26035
|
const syncHeightVar = useCallback31(() => {
|
|
@@ -25908,7 +26061,7 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
25908
26061
|
|
|
25909
26062
|
// src/components/Layout/GridTableLayout/QueryTable.tsx
|
|
25910
26063
|
import { useMemo as useMemo44 } from "react";
|
|
25911
|
-
import { Fragment as
|
|
26064
|
+
import { Fragment as Fragment40, jsx as jsx190, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
25912
26065
|
function QueryTable(props) {
|
|
25913
26066
|
const { emptyFallback, query, createRows, columns, emptyState: emptyStateProp, ...others } = props;
|
|
25914
26067
|
const displayData = query.error ? void 0 : query.data ?? query.previousData;
|
|
@@ -25920,15 +26073,15 @@ function QueryTable(props) {
|
|
|
25920
26073
|
return { title: emptyFallback };
|
|
25921
26074
|
}, [emptyFallback, emptyStateProp, query.error, query.loading]);
|
|
25922
26075
|
if (query.loading && displayData === void 0) {
|
|
25923
|
-
return /* @__PURE__ */
|
|
26076
|
+
return /* @__PURE__ */ jsx190("div", { children: /* @__PURE__ */ jsx190(LoadingTable, { columns: columns.length }) });
|
|
25924
26077
|
}
|
|
25925
|
-
return /* @__PURE__ */
|
|
26078
|
+
return /* @__PURE__ */ jsx190(GridTable, { ...{ rows, columns, fallbackMessage, emptyState, ...others }, loading: query.loading });
|
|
25926
26079
|
}
|
|
25927
26080
|
function LoadingTable(props) {
|
|
25928
26081
|
const { columns } = props;
|
|
25929
|
-
return /* @__PURE__ */
|
|
25930
|
-
/* @__PURE__ */
|
|
25931
|
-
/* @__PURE__ */
|
|
26082
|
+
return /* @__PURE__ */ jsxs99(Fragment40, { children: [
|
|
26083
|
+
/* @__PURE__ */ jsx190(LoadingSkeleton, { rows: 1, columns: 1 }),
|
|
26084
|
+
/* @__PURE__ */ jsx190(LoadingSkeleton, { rows: 5, columns: columns ?? 5 })
|
|
25932
26085
|
] });
|
|
25933
26086
|
}
|
|
25934
26087
|
|
|
@@ -26159,12 +26312,13 @@ function useStableValue(value) {
|
|
|
26159
26312
|
}
|
|
26160
26313
|
|
|
26161
26314
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
26162
|
-
import { Fragment as
|
|
26315
|
+
import { Fragment as Fragment41, jsx as jsx191 } from "react/jsx-runtime";
|
|
26163
26316
|
function GridTableLayoutComponent(props) {
|
|
26164
26317
|
const {
|
|
26165
26318
|
tableProps,
|
|
26166
26319
|
layoutState,
|
|
26167
26320
|
actions,
|
|
26321
|
+
selectionSummary = false,
|
|
26168
26322
|
hideEditColumns = false,
|
|
26169
26323
|
withCardView,
|
|
26170
26324
|
defaultView = "list",
|
|
@@ -26187,7 +26341,8 @@ function GridTableLayoutComponent(props) {
|
|
|
26187
26341
|
);
|
|
26188
26342
|
const [view, setView] = usePersistedTableView(defaultView, !!withCardView);
|
|
26189
26343
|
const clientSearch = layoutState?.search === "client" ? layoutState.searchString : void 0;
|
|
26190
|
-
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length
|
|
26344
|
+
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length || // Rendered before anything's selected, so the pill doesn't shift the table
|
|
26345
|
+
selectionSummary);
|
|
26191
26346
|
const isVirtualized = tableProps.as === "virtual" || view === "card";
|
|
26192
26347
|
const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
26193
26348
|
useEffect28(() => {
|
|
@@ -26209,7 +26364,7 @@ function GridTableLayoutComponent(props) {
|
|
|
26209
26364
|
() => composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFilters),
|
|
26210
26365
|
[layoutEmptyFallback, layoutState, tableProps, clearFilters]
|
|
26211
26366
|
);
|
|
26212
|
-
const tableActionsEl = /* @__PURE__ */
|
|
26367
|
+
const tableActionsEl = /* @__PURE__ */ jsx191(
|
|
26213
26368
|
_GridTableLayoutActions,
|
|
26214
26369
|
{
|
|
26215
26370
|
filterDefs: layoutState?.filterDefs,
|
|
@@ -26225,12 +26380,13 @@ function GridTableLayoutComponent(props) {
|
|
|
26225
26380
|
setView,
|
|
26226
26381
|
clearFilters,
|
|
26227
26382
|
searchApi: searchApiRef,
|
|
26228
|
-
actions
|
|
26383
|
+
actions,
|
|
26384
|
+
selectionSummary
|
|
26229
26385
|
}
|
|
26230
26386
|
);
|
|
26231
26387
|
const cardAs = view === "card" ? "card" : void 0;
|
|
26232
26388
|
const tableStyle = useMemo47(() => getDefaultStyle(tableProps.style), [tableProps.style]);
|
|
26233
|
-
const tableBody = /* @__PURE__ */
|
|
26389
|
+
const tableBody = /* @__PURE__ */ jsx191(Fragment41, { children: isGridTableProps(tableProps) ? /* @__PURE__ */ jsx191(
|
|
26234
26390
|
GridTable,
|
|
26235
26391
|
{
|
|
26236
26392
|
...tableProps,
|
|
@@ -26244,7 +26400,7 @@ function GridTableLayoutComponent(props) {
|
|
|
26244
26400
|
visibleColumnsStorageKey,
|
|
26245
26401
|
columnGutter: includeColumnGutters
|
|
26246
26402
|
}
|
|
26247
|
-
) : /* @__PURE__ */
|
|
26403
|
+
) : /* @__PURE__ */ jsx191(
|
|
26248
26404
|
QueryTable,
|
|
26249
26405
|
{
|
|
26250
26406
|
...tableProps,
|
|
@@ -26259,7 +26415,7 @@ function GridTableLayoutComponent(props) {
|
|
|
26259
26415
|
columnGutter: includeColumnGutters
|
|
26260
26416
|
}
|
|
26261
26417
|
) });
|
|
26262
|
-
return /* @__PURE__ */
|
|
26418
|
+
return /* @__PURE__ */ jsx191(
|
|
26263
26419
|
GridTableLayoutHost,
|
|
26264
26420
|
{
|
|
26265
26421
|
host,
|
|
@@ -26327,12 +26483,12 @@ function composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFi
|
|
|
26327
26483
|
illustration: tableEmptyState?.illustration,
|
|
26328
26484
|
title: tableEmptyState?.title ?? tableEmptyFallback ?? layoutEmptyFallback,
|
|
26329
26485
|
description: tableEmptyState?.description ?? (filteringActive ? filterEmptyDescription : void 0),
|
|
26330
|
-
actions: tableEmptyState?.actions ?? (filteringActive && layoutState ? /* @__PURE__ */
|
|
26486
|
+
actions: tableEmptyState?.actions ?? (filteringActive && layoutState ? /* @__PURE__ */ jsx191(Button, { label: "Clear Filters", variant: "tertiary", onClick: clearFilters, "data-testid": "clearFilters" }) : void 0)
|
|
26331
26487
|
};
|
|
26332
26488
|
}
|
|
26333
26489
|
|
|
26334
26490
|
// src/components/Layout/PreventBrowserScroll.tsx
|
|
26335
|
-
import { jsx as
|
|
26491
|
+
import { jsx as jsx192 } from "react/jsx-runtime";
|
|
26336
26492
|
function PreventBrowserScroll({
|
|
26337
26493
|
children
|
|
26338
26494
|
}) {
|
|
@@ -26340,15 +26496,15 @@ function PreventBrowserScroll({
|
|
|
26340
26496
|
// Take over the full viewport and hide any overflown content.
|
|
26341
26497
|
// Using `-webkit-fill-available`, otherwise `height: 100vh` includes the app bars in mobile Safari. See https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/
|
|
26342
26498
|
// Setting the multiple "(min|max-)height" properties is necessary, as Truss will turn this into an object and there can only be one `height` property.
|
|
26343
|
-
/* @__PURE__ */
|
|
26499
|
+
/* @__PURE__ */ jsx192("div", { className: "oh vh100 mh_negwebkit_fill_available maxh_negwebkit_fill_available", children: /* @__PURE__ */ jsx192("div", { className: "h100 df fdc mh0 oa", children }) })
|
|
26344
26500
|
);
|
|
26345
26501
|
}
|
|
26346
26502
|
|
|
26347
26503
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
26348
26504
|
import { AnimatePresence as AnimatePresence4, motion as motion4 } from "framer-motion";
|
|
26349
26505
|
import { useEffect as useEffect29 } from "react";
|
|
26350
|
-
import { trussProps as
|
|
26351
|
-
import { Fragment as
|
|
26506
|
+
import { trussProps as trussProps110, maybeCssVar as maybeCssVar51 } from "@homebound/truss/runtime";
|
|
26507
|
+
import { Fragment as Fragment42, jsx as jsx193, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
26352
26508
|
var __maybeInc22 = (inc) => {
|
|
26353
26509
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
26354
26510
|
};
|
|
@@ -26366,11 +26522,11 @@ function RightPaneLayout(props) {
|
|
|
26366
26522
|
} = useRightPaneOpenState();
|
|
26367
26523
|
const rightPaneContent = useRightPaneContent();
|
|
26368
26524
|
useEffect29(() => closePane2, [closePane2]);
|
|
26369
|
-
return /* @__PURE__ */
|
|
26370
|
-
/* @__PURE__ */
|
|
26525
|
+
return /* @__PURE__ */ jsx193("div", { className: "h100 df oxh", children: /* @__PURE__ */ jsxs100(Fragment42, { children: [
|
|
26526
|
+
/* @__PURE__ */ jsx193("div", { ...trussProps110({
|
|
26371
26527
|
...{
|
|
26372
26528
|
width: ["w_var", {
|
|
26373
|
-
"--width":
|
|
26529
|
+
"--width": maybeCssVar51(__maybeInc22(`calc(100% - ${paneWidth + 24}px)`))
|
|
26374
26530
|
}],
|
|
26375
26531
|
transition: "transitionWidth",
|
|
26376
26532
|
height: "h100",
|
|
@@ -26386,13 +26542,13 @@ function RightPaneLayout(props) {
|
|
|
26386
26542
|
...{
|
|
26387
26543
|
...!!defaultPaneContent ? {
|
|
26388
26544
|
width: ["w_var", {
|
|
26389
|
-
"--width":
|
|
26545
|
+
"--width": maybeCssVar51(__maybeInc22(`calc(100% - ${paneWidth + 24}px)`))
|
|
26390
26546
|
}],
|
|
26391
26547
|
marginRight: "mr3"
|
|
26392
26548
|
} : {}
|
|
26393
26549
|
}
|
|
26394
26550
|
}), children }),
|
|
26395
|
-
/* @__PURE__ */
|
|
26551
|
+
/* @__PURE__ */ jsxs100("div", { ...trussProps110({
|
|
26396
26552
|
position: "relative",
|
|
26397
26553
|
...!!defaultPaneContent ? {
|
|
26398
26554
|
width: ["w_var", {
|
|
@@ -26400,7 +26556,7 @@ function RightPaneLayout(props) {
|
|
|
26400
26556
|
}]
|
|
26401
26557
|
} : {}
|
|
26402
26558
|
}), children: [
|
|
26403
|
-
defaultPaneContent && /* @__PURE__ */
|
|
26559
|
+
defaultPaneContent && /* @__PURE__ */ jsx193("div", { ...trussProps110({
|
|
26404
26560
|
height: "h100",
|
|
26405
26561
|
width: ["w_var", {
|
|
26406
26562
|
"--width": `${paneWidth}px`
|
|
@@ -26413,14 +26569,14 @@ function RightPaneLayout(props) {
|
|
|
26413
26569
|
left: "l_100"
|
|
26414
26570
|
} : {}
|
|
26415
26571
|
}), children: defaultPaneContent }),
|
|
26416
|
-
/* @__PURE__ */
|
|
26572
|
+
/* @__PURE__ */ jsx193(AnimatePresence4, { children: isRightPaneOpen && /* @__PURE__ */ jsx193(
|
|
26417
26573
|
motion4.div,
|
|
26418
26574
|
{
|
|
26419
26575
|
layout: "position",
|
|
26420
26576
|
"data-testid": "rightPaneContent",
|
|
26421
|
-
...
|
|
26577
|
+
...trussProps110({
|
|
26422
26578
|
backgroundColor: ["bgColor_var", {
|
|
26423
|
-
"--backgroundColor":
|
|
26579
|
+
"--backgroundColor": maybeCssVar51(paneBgColor)
|
|
26424
26580
|
}],
|
|
26425
26581
|
height: "h100",
|
|
26426
26582
|
width: ["w_var", {
|
|
@@ -26457,8 +26613,8 @@ function RightPaneLayout(props) {
|
|
|
26457
26613
|
// src/components/Layout/RightPaneLayout/internal/DeleteAction.tsx
|
|
26458
26614
|
import { useResizeObserver as useResizeObserver9 } from "@react-aria/utils";
|
|
26459
26615
|
import { useRef as useRef61, useState as useState52 } from "react";
|
|
26460
|
-
import { trussProps as
|
|
26461
|
-
import { jsx as
|
|
26616
|
+
import { trussProps as trussProps111 } from "@homebound/truss/runtime";
|
|
26617
|
+
import { jsx as jsx194, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
26462
26618
|
function MaybeDeleteAction(props) {
|
|
26463
26619
|
const {
|
|
26464
26620
|
count = 0,
|
|
@@ -26466,7 +26622,7 @@ function MaybeDeleteAction(props) {
|
|
|
26466
26622
|
...buttonProps
|
|
26467
26623
|
} = props;
|
|
26468
26624
|
if (!onClick) return null;
|
|
26469
|
-
return count > 1 ? /* @__PURE__ */
|
|
26625
|
+
return count > 1 ? /* @__PURE__ */ jsx194(BulkDeleteAction, { count, onClick, ...buttonProps }) : /* @__PURE__ */ jsx194(IconButton, { icon: "trash", label: "Delete", onClick, ...buttonProps });
|
|
26470
26626
|
}
|
|
26471
26627
|
function BulkDeleteAction(props) {
|
|
26472
26628
|
const {
|
|
@@ -26490,15 +26646,15 @@ function BulkDeleteAction(props) {
|
|
|
26490
26646
|
});
|
|
26491
26647
|
return (
|
|
26492
26648
|
// Offset the Button's padding so the trash aligns with the footer inset.
|
|
26493
|
-
/* @__PURE__ */
|
|
26494
|
-
/* @__PURE__ */
|
|
26495
|
-
/* @__PURE__ */
|
|
26649
|
+
/* @__PURE__ */ jsxs101("div", { ref: containerRef, className: "relative fg1 mw0 ml_neg16px", children: [
|
|
26650
|
+
/* @__PURE__ */ jsx194("div", { "aria-hidden": true, className: "absolute top0 l_0 w100 oh vh pen", children: /* @__PURE__ */ jsx194("div", { ref: contentRef, className: "wmaxc", children: /* @__PURE__ */ jsx194(Button, { variant: "quaternary", icon: "trash", label: `Delete (${count})`, onClick: noop }) }) }),
|
|
26651
|
+
/* @__PURE__ */ jsx194(
|
|
26496
26652
|
Button,
|
|
26497
26653
|
{
|
|
26498
26654
|
variant: "quaternary",
|
|
26499
26655
|
icon: "trash",
|
|
26500
|
-
label: /* @__PURE__ */
|
|
26501
|
-
/* @__PURE__ */
|
|
26656
|
+
label: /* @__PURE__ */ jsxs101("span", { children: [
|
|
26657
|
+
/* @__PURE__ */ jsx194("span", { ...trussProps111({
|
|
26502
26658
|
...overflows ? {
|
|
26503
26659
|
position: "absolute",
|
|
26504
26660
|
overflow: "oh",
|
|
@@ -26525,8 +26681,8 @@ function BulkDeleteAction(props) {
|
|
|
26525
26681
|
}
|
|
26526
26682
|
|
|
26527
26683
|
// src/components/Layout/RightPaneLayout/RightPanePanel.tsx
|
|
26528
|
-
import { trussProps as
|
|
26529
|
-
import { jsx as
|
|
26684
|
+
import { trussProps as trussProps112 } from "@homebound/truss/runtime";
|
|
26685
|
+
import { jsx as jsx195, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
26530
26686
|
function RightPanePanel(props) {
|
|
26531
26687
|
const {
|
|
26532
26688
|
title,
|
|
@@ -26540,8 +26696,8 @@ function RightPanePanel(props) {
|
|
|
26540
26696
|
const {
|
|
26541
26697
|
closeRightPane
|
|
26542
26698
|
} = useRightPaneActions();
|
|
26543
|
-
return /* @__PURE__ */
|
|
26544
|
-
/* @__PURE__ */
|
|
26699
|
+
return /* @__PURE__ */ jsxs102("div", { className: "relative df fdc h100", ...tid, children: [
|
|
26700
|
+
/* @__PURE__ */ jsxs102("div", { ...trussProps112({
|
|
26545
26701
|
display: "df",
|
|
26546
26702
|
alignItems: "aic",
|
|
26547
26703
|
justifyContent: "jcsb",
|
|
@@ -26557,11 +26713,11 @@ function RightPanePanel(props) {
|
|
|
26557
26713
|
}],
|
|
26558
26714
|
flexShrink: "fs0"
|
|
26559
26715
|
}), ...tid.header, children: [
|
|
26560
|
-
/* @__PURE__ */
|
|
26561
|
-
withClose && /* @__PURE__ */
|
|
26716
|
+
/* @__PURE__ */ jsx195("div", { className: "fw6 fz_16px lh_24px", children: title }),
|
|
26717
|
+
withClose && /* @__PURE__ */ jsx195(IconButton, { icon: "x", label: "Close", autoFocus: true, onClick: closeRightPane, ...tid.close })
|
|
26562
26718
|
] }),
|
|
26563
|
-
/* @__PURE__ */
|
|
26564
|
-
(deleteAction || secondaryAction || primaryAction) && /* @__PURE__ */
|
|
26719
|
+
/* @__PURE__ */ jsx195("div", { className: "fg1 mh0 oya pt3 pb3 pr3 pl3", ...tid.body, children }),
|
|
26720
|
+
(deleteAction || secondaryAction || primaryAction) && /* @__PURE__ */ jsxs102("div", { ...trussProps112({
|
|
26565
26721
|
display: "df",
|
|
26566
26722
|
alignItems: "aic",
|
|
26567
26723
|
gap: "g_2",
|
|
@@ -26576,10 +26732,10 @@ function RightPanePanel(props) {
|
|
|
26576
26732
|
}],
|
|
26577
26733
|
flexShrink: "fs0"
|
|
26578
26734
|
}), ...tid.footer, children: [
|
|
26579
|
-
/* @__PURE__ */
|
|
26580
|
-
/* @__PURE__ */
|
|
26581
|
-
secondaryAction && /* @__PURE__ */
|
|
26582
|
-
primaryAction && /* @__PURE__ */
|
|
26735
|
+
/* @__PURE__ */ jsx195(MaybeDeleteAction, { ...deleteAction, ...tid.delete }),
|
|
26736
|
+
/* @__PURE__ */ jsxs102("div", { className: "df aic g_1_5 fs0 mla", children: [
|
|
26737
|
+
secondaryAction && /* @__PURE__ */ jsx195(Button, { ...secondaryAction, variant: "secondary", ...tid.secondaryAction }),
|
|
26738
|
+
primaryAction && /* @__PURE__ */ jsx195(Button, { ...primaryAction, ...tid.primaryAction })
|
|
26583
26739
|
] })
|
|
26584
26740
|
] })
|
|
26585
26741
|
] });
|
|
@@ -26587,14 +26743,14 @@ function RightPanePanel(props) {
|
|
|
26587
26743
|
|
|
26588
26744
|
// src/components/Layout/ScrollableFooter.tsx
|
|
26589
26745
|
import { createPortal as createPortal7 } from "react-dom";
|
|
26590
|
-
import { Fragment as
|
|
26746
|
+
import { Fragment as Fragment43, jsx as jsx196 } from "react/jsx-runtime";
|
|
26591
26747
|
function ScrollableFooter(props) {
|
|
26592
26748
|
const { children } = props;
|
|
26593
26749
|
const { footerEl } = useScrollableParent();
|
|
26594
26750
|
if (!footerEl) {
|
|
26595
|
-
return /* @__PURE__ */
|
|
26751
|
+
return /* @__PURE__ */ jsx196(Fragment43, { children });
|
|
26596
26752
|
}
|
|
26597
|
-
return createPortal7(/* @__PURE__ */
|
|
26753
|
+
return createPortal7(/* @__PURE__ */ jsx196(Fragment43, { children }), footerEl);
|
|
26598
26754
|
}
|
|
26599
26755
|
|
|
26600
26756
|
// src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
|
|
@@ -26602,7 +26758,7 @@ import { AnimatePresence as AnimatePresence5, motion as motion5 } from "framer-m
|
|
|
26602
26758
|
import { useEffect as useEffect30, useState as useState53 } from "react";
|
|
26603
26759
|
|
|
26604
26760
|
// src/components/Layout/TableReviewLayout/SidePanel.tsx
|
|
26605
|
-
import { jsx as
|
|
26761
|
+
import { jsx as jsx197, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
26606
26762
|
function SidePanel(props) {
|
|
26607
26763
|
const {
|
|
26608
26764
|
title,
|
|
@@ -26612,19 +26768,19 @@ function SidePanel(props) {
|
|
|
26612
26768
|
} = props;
|
|
26613
26769
|
const tid = useTestIds(props, "sidePanel");
|
|
26614
26770
|
const hasFooter = primaryAction || secondaryAction;
|
|
26615
|
-
return /* @__PURE__ */
|
|
26616
|
-
/* @__PURE__ */
|
|
26617
|
-
/* @__PURE__ */
|
|
26618
|
-
hasFooter && /* @__PURE__ */
|
|
26619
|
-
secondaryAction && /* @__PURE__ */
|
|
26620
|
-
primaryAction && /* @__PURE__ */
|
|
26771
|
+
return /* @__PURE__ */ jsxs103("div", { className: "h100 df fdc oh", ...tid, children: [
|
|
26772
|
+
/* @__PURE__ */ jsx197("div", { className: "pt3 pb3 pr3 pl3 fs0", ...tid.header, children: /* @__PURE__ */ jsx197("h2", { className: "fw6 fz_20px lh_28px mt0 mb0", ...tid.title, children: title }) }),
|
|
26773
|
+
/* @__PURE__ */ jsx197("div", { className: "fg1 oya mh0", ...tid.body, children: content2 }),
|
|
26774
|
+
hasFooter && /* @__PURE__ */ jsxs103("div", { className: "df g_2 jcfe pt3 pb3 pr3 pl3 fs0", ...tid.footer, children: [
|
|
26775
|
+
secondaryAction && /* @__PURE__ */ jsx197(Button, { ...secondaryAction, variant: "secondaryBlack" }),
|
|
26776
|
+
primaryAction && /* @__PURE__ */ jsx197(Button, { ...primaryAction })
|
|
26621
26777
|
] })
|
|
26622
26778
|
] });
|
|
26623
26779
|
}
|
|
26624
26780
|
|
|
26625
26781
|
// src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
|
|
26626
|
-
import { trussProps as
|
|
26627
|
-
import { jsx as
|
|
26782
|
+
import { trussProps as trussProps113, maybeCssVar as maybeCssVar52 } from "@homebound/truss/runtime";
|
|
26783
|
+
import { jsx as jsx198, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
26628
26784
|
var defaultRightPaneWidth = 450;
|
|
26629
26785
|
function TableReviewLayout(props) {
|
|
26630
26786
|
const {
|
|
@@ -26650,29 +26806,29 @@ function TableReviewLayout(props) {
|
|
|
26650
26806
|
let tableContent;
|
|
26651
26807
|
if (isGridTableProps(tableProps)) {
|
|
26652
26808
|
if (emptyState && !tableProps.rows.some((r) => r.kind !== "header")) {
|
|
26653
|
-
tableContent = /* @__PURE__ */
|
|
26809
|
+
tableContent = /* @__PURE__ */ jsx198("div", { className: "h100 df fdc aic jcc", children: emptyState });
|
|
26654
26810
|
} else {
|
|
26655
|
-
tableContent = /* @__PURE__ */
|
|
26811
|
+
tableContent = /* @__PURE__ */ jsx198(GridTable, { ...tableProps, style: {
|
|
26656
26812
|
allWhite: true,
|
|
26657
26813
|
bordered: true
|
|
26658
26814
|
}, stickyHeader: true });
|
|
26659
26815
|
}
|
|
26660
26816
|
} else if (emptyState) {
|
|
26661
|
-
tableContent = /* @__PURE__ */
|
|
26817
|
+
tableContent = /* @__PURE__ */ jsx198("div", { className: "h100 df fdc aic jcc", children: emptyState });
|
|
26662
26818
|
} else {
|
|
26663
|
-
tableContent = /* @__PURE__ */
|
|
26819
|
+
tableContent = /* @__PURE__ */ jsx198(QueryTable, { ...tableProps, style: {
|
|
26664
26820
|
allWhite: true,
|
|
26665
26821
|
bordered: true
|
|
26666
26822
|
}, stickyHeader: true });
|
|
26667
26823
|
}
|
|
26668
|
-
return /* @__PURE__ */
|
|
26824
|
+
return /* @__PURE__ */ jsxs104("div", { ...trussProps113({
|
|
26669
26825
|
position: "fixed",
|
|
26670
26826
|
top: "top0",
|
|
26671
26827
|
bottom: "bot_0",
|
|
26672
26828
|
left: "l_0",
|
|
26673
26829
|
right: "r_0",
|
|
26674
26830
|
zIndex: ["z_var", {
|
|
26675
|
-
"--zIndex":
|
|
26831
|
+
"--zIndex": maybeCssVar52(zIndices.pageOverlay)
|
|
26676
26832
|
}],
|
|
26677
26833
|
backgroundColor: ["bgColor_var", {
|
|
26678
26834
|
"--backgroundColor": "var(--b-surface)"
|
|
@@ -26680,16 +26836,16 @@ function TableReviewLayout(props) {
|
|
|
26680
26836
|
display: "df",
|
|
26681
26837
|
flexDirection: "fdc"
|
|
26682
26838
|
}), ...tid, children: [
|
|
26683
|
-
/* @__PURE__ */
|
|
26684
|
-
/* @__PURE__ */
|
|
26685
|
-
/* @__PURE__ */
|
|
26686
|
-
/* @__PURE__ */
|
|
26687
|
-
breadCrumb && /* @__PURE__ */
|
|
26688
|
-
/* @__PURE__ */
|
|
26839
|
+
/* @__PURE__ */ jsxs104("header", { className: "pl3 pr3 pt3 pb2 fs0", ...tid.header, children: [
|
|
26840
|
+
/* @__PURE__ */ jsx198(Toast, {}),
|
|
26841
|
+
/* @__PURE__ */ jsxs104("div", { className: "df jcsb aic", children: [
|
|
26842
|
+
/* @__PURE__ */ jsxs104("div", { children: [
|
|
26843
|
+
breadCrumb && /* @__PURE__ */ jsx198(PageHeaderBreadcrumbs, { breadcrumb: breadCrumb }),
|
|
26844
|
+
/* @__PURE__ */ jsx198("h1", { className: "fw6 fz_24px lh_32px mt1 mb0", ...tid.pageTitle, children: pageTitle })
|
|
26689
26845
|
] }),
|
|
26690
|
-
/* @__PURE__ */
|
|
26846
|
+
/* @__PURE__ */ jsx198(Button, { label: "Close", onClick: closeAction, ...tid.closeButton })
|
|
26691
26847
|
] }),
|
|
26692
|
-
/* @__PURE__ */
|
|
26848
|
+
/* @__PURE__ */ jsx198("div", { ...trussProps113({
|
|
26693
26849
|
fontWeight: "fw4",
|
|
26694
26850
|
fontSize: "fz_14px",
|
|
26695
26851
|
lineHeight: "lh_20px",
|
|
@@ -26699,8 +26855,8 @@ function TableReviewLayout(props) {
|
|
|
26699
26855
|
marginTop: "mt2"
|
|
26700
26856
|
}), ...tid.description, children: description })
|
|
26701
26857
|
] }),
|
|
26702
|
-
/* @__PURE__ */
|
|
26703
|
-
/* @__PURE__ */
|
|
26858
|
+
/* @__PURE__ */ jsxs104("div", { className: "fg1 df mh0", ...tid.content, children: [
|
|
26859
|
+
/* @__PURE__ */ jsx198("div", { ...trussProps113({
|
|
26704
26860
|
...{
|
|
26705
26861
|
flexGrow: "fg1",
|
|
26706
26862
|
overflowY: "oya",
|
|
@@ -26713,7 +26869,7 @@ function TableReviewLayout(props) {
|
|
|
26713
26869
|
} : {}
|
|
26714
26870
|
}
|
|
26715
26871
|
}), children: tableContent }),
|
|
26716
|
-
/* @__PURE__ */
|
|
26872
|
+
/* @__PURE__ */ jsx198(AnimatePresence5, { children: isPanelVisible && panelContent && /* @__PURE__ */ jsxs104(motion5.div, { initial: {
|
|
26717
26873
|
width: 0
|
|
26718
26874
|
}, animate: {
|
|
26719
26875
|
width: rightPaneWidth
|
|
@@ -26723,9 +26879,9 @@ function TableReviewLayout(props) {
|
|
|
26723
26879
|
ease: "linear",
|
|
26724
26880
|
duration: 0.2
|
|
26725
26881
|
}, className: "df fdc fs0 relative", children: [
|
|
26726
|
-
/* @__PURE__ */
|
|
26727
|
-
/* @__PURE__ */
|
|
26728
|
-
/* @__PURE__ */
|
|
26882
|
+
/* @__PURE__ */ jsxs104("div", { className: "absolute tp_neg32px df fdc aic l_neg24px z1", children: [
|
|
26883
|
+
/* @__PURE__ */ jsx198(IconButton, { bgColor: "--b-surface" /* Surface */, variant: "circle", icon: "x", inc: 3.5, onClick: handleClosePanel, ...tid.closePanelButton }),
|
|
26884
|
+
/* @__PURE__ */ jsx198("div", { ...trussProps113({
|
|
26729
26885
|
width: "w_1px",
|
|
26730
26886
|
backgroundColor: ["bgColor_var", {
|
|
26731
26887
|
"--backgroundColor": "var(--b-field-border-default)"
|
|
@@ -26733,15 +26889,15 @@ function TableReviewLayout(props) {
|
|
|
26733
26889
|
height: "vh100"
|
|
26734
26890
|
}) })
|
|
26735
26891
|
] }),
|
|
26736
|
-
/* @__PURE__ */
|
|
26892
|
+
/* @__PURE__ */ jsx198("div", { className: "fg1 oh mh0", children: /* @__PURE__ */ jsx198(SidePanel, { ...panelContent }) })
|
|
26737
26893
|
] }, "panel") })
|
|
26738
26894
|
] })
|
|
26739
26895
|
] });
|
|
26740
26896
|
}
|
|
26741
26897
|
|
|
26742
26898
|
// src/components/Logos/BeamLogo.tsx
|
|
26743
|
-
import { trussProps as
|
|
26744
|
-
import { jsx as
|
|
26899
|
+
import { trussProps as trussProps114, maybeCssVar as maybeCssVar53 } from "@homebound/truss/runtime";
|
|
26900
|
+
import { jsx as jsx199, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
26745
26901
|
var __maybeInc23 = (inc) => {
|
|
26746
26902
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
26747
26903
|
};
|
|
@@ -26751,31 +26907,31 @@ function BeamLogo(props) {
|
|
|
26751
26907
|
width: width2 = "auto",
|
|
26752
26908
|
height = "auto"
|
|
26753
26909
|
} = props;
|
|
26754
|
-
return /* @__PURE__ */
|
|
26910
|
+
return /* @__PURE__ */ jsxs105("svg", { viewBox: "0 0 500 500", xmlns: "http://www.w3.org/2000/svg", ...trussProps114({
|
|
26755
26911
|
fill: ["fill_var", {
|
|
26756
|
-
"--fill":
|
|
26912
|
+
"--fill": maybeCssVar53(fill)
|
|
26757
26913
|
}],
|
|
26758
26914
|
width: ["w_var", {
|
|
26759
|
-
"--width":
|
|
26915
|
+
"--width": maybeCssVar53(__maybeInc23(width2))
|
|
26760
26916
|
}],
|
|
26761
26917
|
height: ["h_var", {
|
|
26762
|
-
"--height":
|
|
26918
|
+
"--height": maybeCssVar53(__maybeInc23(height))
|
|
26763
26919
|
}]
|
|
26764
26920
|
}), children: [
|
|
26765
|
-
/* @__PURE__ */
|
|
26766
|
-
/* @__PURE__ */
|
|
26767
|
-
/* @__PURE__ */
|
|
26768
|
-
/* @__PURE__ */
|
|
26769
|
-
/* @__PURE__ */
|
|
26770
|
-
/* @__PURE__ */
|
|
26771
|
-
/* @__PURE__ */
|
|
26772
|
-
/* @__PURE__ */
|
|
26921
|
+
/* @__PURE__ */ jsx199("rect", { x: "10", y: "90", width: "32", height: "320" }),
|
|
26922
|
+
/* @__PURE__ */ jsx199("rect", { x: "122", y: "172", width: "32", height: "158" }),
|
|
26923
|
+
/* @__PURE__ */ jsx199("rect", { x: "346", y: "172", width: "32", height: "158" }),
|
|
26924
|
+
/* @__PURE__ */ jsx199("rect", { x: "458", y: "90", width: "32", height: "320" }),
|
|
26925
|
+
/* @__PURE__ */ jsx199("rect", { x: "10", y: "90", width: "480", height: "32" }),
|
|
26926
|
+
/* @__PURE__ */ jsx199("rect", { x: "10", y: "378", width: "480", height: "32" }),
|
|
26927
|
+
/* @__PURE__ */ jsx199("rect", { x: "10", y: "172", width: "480", height: "32" }),
|
|
26928
|
+
/* @__PURE__ */ jsx199("rect", { x: "10", y: "298", width: "480", height: "32" })
|
|
26773
26929
|
] });
|
|
26774
26930
|
}
|
|
26775
26931
|
|
|
26776
26932
|
// src/components/Logos/HomeboundLogo.tsx
|
|
26777
|
-
import { trussProps as
|
|
26778
|
-
import { jsx as
|
|
26933
|
+
import { trussProps as trussProps115, maybeCssVar as maybeCssVar54 } from "@homebound/truss/runtime";
|
|
26934
|
+
import { jsx as jsx200 } from "react/jsx-runtime";
|
|
26779
26935
|
var __maybeInc24 = (inc) => {
|
|
26780
26936
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
26781
26937
|
};
|
|
@@ -26785,24 +26941,24 @@ function HomeboundLogo(props) {
|
|
|
26785
26941
|
width: width2 = "auto",
|
|
26786
26942
|
height = "auto"
|
|
26787
26943
|
} = props;
|
|
26788
|
-
return /* @__PURE__ */
|
|
26944
|
+
return /* @__PURE__ */ jsx200("svg", { viewBox: "0 0 158.1 97.6", xmlns: "http://www.w3.org/2000/svg", ...trussProps115({
|
|
26789
26945
|
fill: ["fill_var", {
|
|
26790
|
-
"--fill":
|
|
26946
|
+
"--fill": maybeCssVar54(fill)
|
|
26791
26947
|
}],
|
|
26792
26948
|
width: ["w_var", {
|
|
26793
|
-
"--width":
|
|
26949
|
+
"--width": maybeCssVar54(__maybeInc24(width2))
|
|
26794
26950
|
}],
|
|
26795
26951
|
height: ["h_var", {
|
|
26796
|
-
"--height":
|
|
26952
|
+
"--height": maybeCssVar54(__maybeInc24(height))
|
|
26797
26953
|
}]
|
|
26798
|
-
}), children: /* @__PURE__ */
|
|
26954
|
+
}), children: /* @__PURE__ */ jsx200("path", { d: "M158.1,97.6H0.2L0,39.7L76.8,0l68,38.7l-3.1,5.3l-65-37L6.2,43.4l0.2,48h151.7V97.6z" }) });
|
|
26799
26955
|
}
|
|
26800
26956
|
|
|
26801
26957
|
// src/components/MaxLines.tsx
|
|
26802
26958
|
import { useLayoutEffect as useLayoutEffect10, useResizeObserver as useResizeObserver10 } from "@react-aria/utils";
|
|
26803
26959
|
import { useCallback as useCallback36, useEffect as useEffect31, useRef as useRef62, useState as useState54 } from "react";
|
|
26804
|
-
import { trussProps as
|
|
26805
|
-
import { jsx as
|
|
26960
|
+
import { trussProps as trussProps116, maybeCssVar as maybeCssVar55 } from "@homebound/truss/runtime";
|
|
26961
|
+
import { jsx as jsx201, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
26806
26962
|
function MaxLines({
|
|
26807
26963
|
maxLines,
|
|
26808
26964
|
children
|
|
@@ -26825,11 +26981,11 @@ function MaxLines({
|
|
|
26825
26981
|
ref: elRef,
|
|
26826
26982
|
onResize
|
|
26827
26983
|
});
|
|
26828
|
-
return /* @__PURE__ */
|
|
26829
|
-
/* @__PURE__ */
|
|
26984
|
+
return /* @__PURE__ */ jsxs106("div", { children: [
|
|
26985
|
+
/* @__PURE__ */ jsx201("div", { ref: elRef, ...trussProps116({
|
|
26830
26986
|
...!expanded ? {
|
|
26831
26987
|
WebkitLineClamp: ["lineClamp_var", {
|
|
26832
|
-
"--WebkitLineClamp":
|
|
26988
|
+
"--WebkitLineClamp": maybeCssVar55(maxLines)
|
|
26833
26989
|
}],
|
|
26834
26990
|
overflow: "oh",
|
|
26835
26991
|
display: "d_negwebkit_box",
|
|
@@ -26837,13 +26993,13 @@ function MaxLines({
|
|
|
26837
26993
|
textOverflow: "to_ellipsis"
|
|
26838
26994
|
} : {}
|
|
26839
26995
|
}), children }),
|
|
26840
|
-
hasMore && /* @__PURE__ */
|
|
26996
|
+
hasMore && /* @__PURE__ */ jsx201("button", { className: "db fw4 fz_14px lh_20px", onClick: () => setExpanded((prev) => !prev), children: expanded ? "Show Less" : "Show More" })
|
|
26841
26997
|
] });
|
|
26842
26998
|
}
|
|
26843
26999
|
|
|
26844
27000
|
// src/components/Pagination.tsx
|
|
26845
|
-
import { trussProps as
|
|
26846
|
-
import { jsx as
|
|
27001
|
+
import { trussProps as trussProps117 } from "@homebound/truss/runtime";
|
|
27002
|
+
import { jsx as jsx202, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
26847
27003
|
var defaultPage = {
|
|
26848
27004
|
offset: 0,
|
|
26849
27005
|
limit: 100
|
|
@@ -26875,7 +27031,7 @@ function Pagination(props) {
|
|
|
26875
27031
|
}
|
|
26876
27032
|
}
|
|
26877
27033
|
const tid = useTestIds(props, "pagination");
|
|
26878
|
-
return /* @__PURE__ */
|
|
27034
|
+
return /* @__PURE__ */ jsxs107("div", { ...trussProps117({
|
|
26879
27035
|
display: "df",
|
|
26880
27036
|
borderColor: ["bc_var", {
|
|
26881
27037
|
"--borderColor": "var(--b-surface-separator)"
|
|
@@ -26892,24 +27048,24 @@ function Pagination(props) {
|
|
|
26892
27048
|
paddingRight: "pr2",
|
|
26893
27049
|
paddingTop: "pt2"
|
|
26894
27050
|
}), ...tid, children: [
|
|
26895
|
-
/* @__PURE__ */
|
|
26896
|
-
/* @__PURE__ */
|
|
27051
|
+
/* @__PURE__ */ jsx202("div", { className: "df mta mba mr2", ...tid.pageSizeLabel, children: "Page size:" }),
|
|
27052
|
+
/* @__PURE__ */ jsx202("div", { className: "w_78px", children: /* @__PURE__ */ jsx202(SelectField, { compact: true, label: "Page Size", labelStyle: "hidden", options: pageOptions, value: pageSize, onSelect: (val) => set({
|
|
26897
27053
|
pageNumber: 1,
|
|
26898
27054
|
pageSize: val
|
|
26899
27055
|
}), autoSort: false, ...tid.pageSize }) }),
|
|
26900
|
-
/* @__PURE__ */
|
|
26901
|
-
/* @__PURE__ */
|
|
27056
|
+
/* @__PURE__ */ jsxs107("div", { className: "mla mta mba df", children: [
|
|
27057
|
+
/* @__PURE__ */ jsxs107("div", { className: "df mta mba mr2", ...tid.pageInfoLabel, children: [
|
|
26902
27058
|
first,
|
|
26903
27059
|
" ",
|
|
26904
27060
|
showLast ? `- ${last}` : "",
|
|
26905
27061
|
" of ",
|
|
26906
27062
|
totalCount
|
|
26907
27063
|
] }),
|
|
26908
|
-
/* @__PURE__ */
|
|
27064
|
+
/* @__PURE__ */ jsx202(IconButton, { icon: "chevronLeft", color: hasPrevPage ? "--b-text-link-default" /* TextLinkDefault */ : "--b-surface-separator" /* SurfaceSeparator */, onClick: () => set({
|
|
26909
27065
|
pageNumber: pageNumber - 1,
|
|
26910
27066
|
pageSize
|
|
26911
27067
|
}), disabled: !hasPrevPage, ...tid.previousIcon }),
|
|
26912
|
-
/* @__PURE__ */
|
|
27068
|
+
/* @__PURE__ */ jsx202(IconButton, { icon: "chevronRight", color: hasNextPage ? "--b-text-link-default" /* TextLinkDefault */ : "--b-surface-separator" /* SurfaceSeparator */, onClick: () => set({
|
|
26913
27069
|
pageNumber: pageNumber + 1,
|
|
26914
27070
|
pageSize
|
|
26915
27071
|
}), disabled: !hasNextPage, ...tid.nextIcon })
|
|
@@ -26930,69 +27086,6 @@ function toPageNumberSize(page) {
|
|
|
26930
27086
|
};
|
|
26931
27087
|
}
|
|
26932
27088
|
|
|
26933
|
-
// src/components/Pills/SelectionSummaryPill/SelectionSummaryPill.tsx
|
|
26934
|
-
import { useHover as useHover19 } from "react-aria";
|
|
26935
|
-
import { trussProps as trussProps117, maybeCssVar as maybeCssVar55 } from "@homebound/truss/runtime";
|
|
26936
|
-
import { jsx as jsx202, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
26937
|
-
function SelectionSummaryPill(props) {
|
|
26938
|
-
const {
|
|
26939
|
-
text,
|
|
26940
|
-
onClick,
|
|
26941
|
-
disabled = false,
|
|
26942
|
-
__storyState
|
|
26943
|
-
} = props;
|
|
26944
|
-
const tid = useTestIds(props, "selectionSummaryPill");
|
|
26945
|
-
const {
|
|
26946
|
-
hoverProps,
|
|
26947
|
-
isHovered: isHoveredFromEvents
|
|
26948
|
-
} = useHover19({
|
|
26949
|
-
isDisabled: !!disabled
|
|
26950
|
-
});
|
|
26951
|
-
const isHovered = __storyState?.hovered ?? isHoveredFromEvents;
|
|
26952
|
-
return maybeTooltip({
|
|
26953
|
-
title: resolveTooltip(disabled),
|
|
26954
|
-
placement: "top",
|
|
26955
|
-
children: /* @__PURE__ */ jsxs107("button", { type: "button", disabled: !!disabled, onClick, "aria-label": `Clear ${text}`, ...trussProps117(pillStyles2(!!disabled, isHovered)), ...hoverProps, ...tid, children: [
|
|
26956
|
-
text,
|
|
26957
|
-
/* @__PURE__ */ jsx202("span", { ...trussProps117({
|
|
26958
|
-
color: ["color_var", {
|
|
26959
|
-
"--color": maybeCssVar55(disabled ? "--b-on-surface-active-disabled" /* OnSurfaceActiveDisabled */ : "--b-on-surface-active" /* OnSurfaceActive */)
|
|
26960
|
-
}]
|
|
26961
|
-
}), ...tid.clear, children: "Clear" })
|
|
26962
|
-
] })
|
|
26963
|
-
});
|
|
26964
|
-
}
|
|
26965
|
-
function pillStyles2(disabled, hovered) {
|
|
26966
|
-
return {
|
|
26967
|
-
fontWeight: "fw6",
|
|
26968
|
-
fontSize: "fz_14px",
|
|
26969
|
-
lineHeight: "lh_20px",
|
|
26970
|
-
display: "dif",
|
|
26971
|
-
alignItems: "aic",
|
|
26972
|
-
gap: "g_1",
|
|
26973
|
-
whiteSpace: "wsnw",
|
|
26974
|
-
borderStyle: "bss",
|
|
26975
|
-
borderWidth: "bw1",
|
|
26976
|
-
borderRadius: "brPill",
|
|
26977
|
-
paddingLeft: "pl_15px",
|
|
26978
|
-
paddingRight: "pr_15px",
|
|
26979
|
-
paddingTop: "pt_7px",
|
|
26980
|
-
paddingBottom: "pb_7px",
|
|
26981
|
-
borderColor: ["bc_var", {
|
|
26982
|
-
"--borderColor": "var(--b-surface-active-border)"
|
|
26983
|
-
}],
|
|
26984
|
-
color: ["color_var", {
|
|
26985
|
-
"--color": maybeCssVar55(disabled ? "--b-on-surface-active-disabled" /* OnSurfaceActiveDisabled */ : "rgba(36, 36, 36, 1)" /* Gray900 */)
|
|
26986
|
-
}],
|
|
26987
|
-
backgroundColor: ["bgColor_var", {
|
|
26988
|
-
"--backgroundColor": maybeCssVar55(hovered ? "--b-surface-active-hover" /* SurfaceActiveHover */ : "--b-surface-active" /* SurfaceActive */)
|
|
26989
|
-
}],
|
|
26990
|
-
...disabled ? {
|
|
26991
|
-
cursor: "cur_not_allowed"
|
|
26992
|
-
} : {}
|
|
26993
|
-
};
|
|
26994
|
-
}
|
|
26995
|
-
|
|
26996
27089
|
// src/components/ScrollShadows.tsx
|
|
26997
27090
|
import { useResizeObserver as useResizeObserver11 } from "@react-aria/utils";
|
|
26998
27091
|
import { useCallback as useCallback37, useMemo as useMemo48, useRef as useRef63, useState as useState55 } from "react";
|
|
@@ -27346,7 +27439,7 @@ function useAppNavGroupExpanded(linkGroup) {
|
|
|
27346
27439
|
|
|
27347
27440
|
// src/components/AppNav/AppNavGroup.tsx
|
|
27348
27441
|
import { trussProps as trussProps120, maybeCssVar as maybeCssVar57 } from "@homebound/truss/runtime";
|
|
27349
|
-
import { Fragment as
|
|
27442
|
+
import { Fragment as Fragment44, jsx as jsx205, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
27350
27443
|
var __maybeInc25 = (inc) => {
|
|
27351
27444
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
27352
27445
|
};
|
|
@@ -27357,7 +27450,7 @@ function AppNavGroupView(props) {
|
|
|
27357
27450
|
} = props;
|
|
27358
27451
|
const tid = useTestIds(props, "linkGroup");
|
|
27359
27452
|
if (panelCollapsed) {
|
|
27360
|
-
return /* @__PURE__ */ jsx205(
|
|
27453
|
+
return /* @__PURE__ */ jsx205(Fragment44, { children: appNavLinkGroupLinks(linkGroup).map((link) => /* @__PURE__ */ jsx205(NavLink, { variant: "side", ...link, iconOnly: !!link.icon, ...tid[`link_${camelCase6(link.label)}`] }, link.label)) });
|
|
27361
27454
|
}
|
|
27362
27455
|
return /* @__PURE__ */ jsx205(AppNavGroupDisclosure, { ...props });
|
|
27363
27456
|
}
|
|
@@ -27477,11 +27570,11 @@ function AppNavSectionView(props) {
|
|
|
27477
27570
|
}
|
|
27478
27571
|
|
|
27479
27572
|
// src/components/AppNav/AppNavItems.tsx
|
|
27480
|
-
import { Fragment as
|
|
27573
|
+
import { Fragment as Fragment45, jsx as jsx208 } from "react/jsx-runtime";
|
|
27481
27574
|
function AppNavItems(props) {
|
|
27482
27575
|
const { items, variant = "side", panelCollapsed = false, nested = false } = props;
|
|
27483
27576
|
const tid = useTestIds(props, "appNav");
|
|
27484
|
-
return /* @__PURE__ */ jsx208(
|
|
27577
|
+
return /* @__PURE__ */ jsx208(Fragment45, { children: items.map((item, idx) => {
|
|
27485
27578
|
if (isAppNavLink(item)) {
|
|
27486
27579
|
return /* @__PURE__ */ jsx208(
|
|
27487
27580
|
NavLink,
|
|
@@ -27845,7 +27938,7 @@ function StepIcon({
|
|
|
27845
27938
|
import { useRef as useRef67 } from "react";
|
|
27846
27939
|
import { mergeProps as mergeProps33, useButton as useButton13, useFocusRing as useFocusRing18, useHover as useHover22, VisuallyHidden as VisuallyHidden10 } from "react-aria";
|
|
27847
27940
|
import { trussProps as trussProps124 } from "@homebound/truss/runtime";
|
|
27848
|
-
import { Fragment as
|
|
27941
|
+
import { Fragment as Fragment46, jsx as jsx212, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
27849
27942
|
function StepperTab(props) {
|
|
27850
27943
|
const {
|
|
27851
27944
|
label,
|
|
@@ -27884,7 +27977,7 @@ function StepperTab(props) {
|
|
|
27884
27977
|
...disabled ? stepperTabStyles.disabledStyles : {},
|
|
27885
27978
|
...isFocusVisible ? stepperTabStyles.focusRingStyles : {}
|
|
27886
27979
|
}), ...tid[defaultTestId(value)], children: [
|
|
27887
|
-
!collapsed && /* @__PURE__ */ jsxs114(
|
|
27980
|
+
!collapsed && /* @__PURE__ */ jsxs114(Fragment46, { children: [
|
|
27888
27981
|
/* @__PURE__ */ jsxs114("span", { className: "dg jic mw0", children: [
|
|
27889
27982
|
/* @__PURE__ */ jsx212("span", { className: "fw6 fz_14px lh_20px vh ga_1_1 oh d_negwebkit_box wbo_vertical to_ellipsis wlc_1 wbba", "aria-hidden": true, children: label }),
|
|
27890
27983
|
/* @__PURE__ */ jsx212("span", { ...trussProps124({
|
|
@@ -28097,7 +28190,7 @@ function isStructuredProps(props) {
|
|
|
28097
28190
|
// src/components/SuperDrawer/SuperDrawerContent.tsx
|
|
28098
28191
|
import { motion as motion6 } from "framer-motion";
|
|
28099
28192
|
import { trussProps as trussProps127, mergeProps as mergeProps34 } from "@homebound/truss/runtime";
|
|
28100
|
-
import { Fragment as
|
|
28193
|
+
import { Fragment as Fragment47, jsx as jsx215, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
28101
28194
|
var SuperDrawerContent = ({
|
|
28102
28195
|
children,
|
|
28103
28196
|
banner,
|
|
@@ -28160,7 +28253,7 @@ var SuperDrawerContent = ({
|
|
|
28160
28253
|
}) }, "content");
|
|
28161
28254
|
}
|
|
28162
28255
|
}
|
|
28163
|
-
return /* @__PURE__ */ jsxs116(
|
|
28256
|
+
return /* @__PURE__ */ jsxs116(Fragment47, { children: [
|
|
28164
28257
|
wrapWithMotionAndMaybeBack(children),
|
|
28165
28258
|
actions && /* @__PURE__ */ jsx215("footer", { ...trussProps127({
|
|
28166
28259
|
borderTopStyle: "bts_solid",
|
|
@@ -28791,7 +28884,7 @@ var BaseFilter = class {
|
|
|
28791
28884
|
};
|
|
28792
28885
|
|
|
28793
28886
|
// src/components/Filters/DateFilter.tsx
|
|
28794
|
-
import { Fragment as
|
|
28887
|
+
import { Fragment as Fragment48, jsx as jsx221, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
28795
28888
|
function dateFilter(props) {
|
|
28796
28889
|
return (key) => new DateFilter(key, props);
|
|
28797
28890
|
}
|
|
@@ -28813,7 +28906,7 @@ var DateFilter = class extends BaseFilter {
|
|
|
28813
28906
|
}
|
|
28814
28907
|
render(value, setValue, tid, inModal, vertical) {
|
|
28815
28908
|
const { label, operations, getOperationValue, getOperationLabel, defaultValue } = this.props;
|
|
28816
|
-
return /* @__PURE__ */ jsxs120(
|
|
28909
|
+
return /* @__PURE__ */ jsxs120(Fragment48, { children: [
|
|
28817
28910
|
vertical && /* @__PURE__ */ jsx221(Label, { label }),
|
|
28818
28911
|
/* @__PURE__ */ jsxs120(CompoundField, { children: [
|
|
28819
28912
|
/* @__PURE__ */ jsx221(
|
|
@@ -28862,7 +28955,7 @@ function isDateFilterValue(value) {
|
|
|
28862
28955
|
}
|
|
28863
28956
|
|
|
28864
28957
|
// src/components/Filters/DateRangeFilter.tsx
|
|
28865
|
-
import { Fragment as
|
|
28958
|
+
import { Fragment as Fragment49, jsx as jsx222, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
28866
28959
|
function dateRangeFilter(props) {
|
|
28867
28960
|
return (key) => new DateRangeFilter(key, props);
|
|
28868
28961
|
}
|
|
@@ -28884,7 +28977,7 @@ var DateRangeFilter = class extends BaseFilter {
|
|
|
28884
28977
|
}
|
|
28885
28978
|
render(value, setValue, tid, inModal, vertical) {
|
|
28886
28979
|
const { label, placeholderText, disabledDays, testFieldLabel, defaultValue } = this.props;
|
|
28887
|
-
return /* @__PURE__ */ jsxs121(
|
|
28980
|
+
return /* @__PURE__ */ jsxs121(Fragment49, { children: [
|
|
28888
28981
|
vertical && /* @__PURE__ */ jsx222(Label, { label }),
|
|
28889
28982
|
/* @__PURE__ */ jsx222(
|
|
28890
28983
|
DateRangeField,
|
|
@@ -28999,7 +29092,7 @@ var MultiFilter = class extends BaseFilter {
|
|
|
28999
29092
|
};
|
|
29000
29093
|
|
|
29001
29094
|
// src/components/Filters/NumberRangeFilter.tsx
|
|
29002
|
-
import { Fragment as
|
|
29095
|
+
import { Fragment as Fragment50, jsx as jsx224, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
29003
29096
|
function numberRangeFilter(props) {
|
|
29004
29097
|
return (key) => new NumberRangeFilter(key, props);
|
|
29005
29098
|
}
|
|
@@ -29016,7 +29109,7 @@ var NumberRangeFilter = class extends BaseFilter {
|
|
|
29016
29109
|
} = this.props;
|
|
29017
29110
|
const min = value?.min ?? void 0;
|
|
29018
29111
|
const max = value?.max ?? void 0;
|
|
29019
|
-
return /* @__PURE__ */ jsxs122(
|
|
29112
|
+
return /* @__PURE__ */ jsxs122(Fragment50, { children: [
|
|
29020
29113
|
vertical && /* @__PURE__ */ jsxs122("div", { ...tid, children: [
|
|
29021
29114
|
/* @__PURE__ */ jsx224(Label, { label }),
|
|
29022
29115
|
/* @__PURE__ */ jsx224("div", { className: "pb1", children: /* @__PURE__ */ jsx224(NumberField, { labelStyle: "inline", clearable: true, label: "Min", value: min, type: numberFieldType, numberFormatOptions, onChange: (minVal) => {
|
|
@@ -29510,7 +29603,7 @@ function useRegisterMobileSubNav(content2) {
|
|
|
29510
29603
|
|
|
29511
29604
|
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
29512
29605
|
import { trussProps as trussProps134, mergeProps as mergeProps38, maybeCssVar as maybeCssVar62 } from "@homebound/truss/runtime";
|
|
29513
|
-
import { Fragment as
|
|
29606
|
+
import { Fragment as Fragment51, jsx as jsx235, jsxs as jsxs124 } from "react/jsx-runtime";
|
|
29514
29607
|
function NavbarMobileMenu(props) {
|
|
29515
29608
|
const {
|
|
29516
29609
|
items
|
|
@@ -29530,7 +29623,7 @@ function NavbarMobileMenu(props) {
|
|
|
29530
29623
|
useEffect37(() => {
|
|
29531
29624
|
close();
|
|
29532
29625
|
}, [pathname, search]);
|
|
29533
|
-
return /* @__PURE__ */ jsxs124(
|
|
29626
|
+
return /* @__PURE__ */ jsxs124(Fragment51, { children: [
|
|
29534
29627
|
/* @__PURE__ */ jsx235(IconButton, { icon: isOpen2 ? "menuClose" : "menu", color: "--b-on-surface-muted" /* OnSurfaceMuted */, label: isOpen2 ? "Close navigation" : "Open navigation", onClick: () => {
|
|
29535
29628
|
if (isOpen2) {
|
|
29536
29629
|
close();
|
|
@@ -29559,7 +29652,7 @@ function NavbarMobileDrawer({
|
|
|
29559
29652
|
top: bannerHeightPx
|
|
29560
29653
|
};
|
|
29561
29654
|
const showSubLevel = mobileSubNav != null && level === "sub";
|
|
29562
|
-
return /* @__PURE__ */ jsxs124(
|
|
29655
|
+
return /* @__PURE__ */ jsxs124(Fragment51, { children: [
|
|
29563
29656
|
/* @__PURE__ */ jsx235(motion7.div, { ...mergeProps38(void 0, overlayTopStyle, {
|
|
29564
29657
|
position: "fixed",
|
|
29565
29658
|
right: "r_0",
|
|
@@ -29880,13 +29973,13 @@ import { mergeProps as mergeProps39, useFocusRing as useFocusRing21, useHover as
|
|
|
29880
29973
|
import { matchPath } from "react-router";
|
|
29881
29974
|
import { Link as Link7, useLocation as useLocation2 } from "react-router-dom";
|
|
29882
29975
|
import { trussProps as trussProps136, maybeCssVar as maybeCssVar63 } from "@homebound/truss/runtime";
|
|
29883
|
-
import { Fragment as
|
|
29976
|
+
import { Fragment as Fragment52, jsx as jsx237, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
29884
29977
|
function TabsWithContent(props) {
|
|
29885
29978
|
const {
|
|
29886
29979
|
omitTopSpacing = false,
|
|
29887
29980
|
...tabProps
|
|
29888
29981
|
} = props;
|
|
29889
|
-
return /* @__PURE__ */ jsxs126(
|
|
29982
|
+
return /* @__PURE__ */ jsxs126(Fragment52, { children: [
|
|
29890
29983
|
/* @__PURE__ */ jsx237(Tabs, { ...tabProps }),
|
|
29891
29984
|
/* @__PURE__ */ jsx237(TabContent, { ...tabProps, omitTopSpacing: omitTopSpacing || hideTabs(props) })
|
|
29892
29985
|
] });
|
|
@@ -30063,7 +30156,7 @@ function TabImpl(props) {
|
|
|
30063
30156
|
}
|
|
30064
30157
|
});
|
|
30065
30158
|
const decoration = aiMode ? /* @__PURE__ */ jsx237(Tag, { text: "Tab has AI proposals ready for review", preventTooltip: true, icon: "aiStar", type: "ai", variant: "primary", iconOnly: true, ...tid.aiTag }) : icon ? /* @__PURE__ */ jsx237(Icon, { icon }) : endAdornment;
|
|
30066
|
-
const tabLabel = /* @__PURE__ */ jsxs126(
|
|
30159
|
+
const tabLabel = /* @__PURE__ */ jsxs126(Fragment52, { children: [
|
|
30067
30160
|
label,
|
|
30068
30161
|
decoration && /* @__PURE__ */ jsx237("span", { className: "ml1 df aic", children: decoration })
|
|
30069
30162
|
] });
|
|
@@ -30443,7 +30536,7 @@ import { trussProps as trussProps141, maybeCssVar as maybeCssVar66 } from "@home
|
|
|
30443
30536
|
import { useRef as useRef72 } from "react";
|
|
30444
30537
|
import { mergeProps as mergeProps43, useCheckboxGroupItem as useCheckboxGroupItem4, useFocusRing as useFocusRing22, useRadio as useRadio3, VisuallyHidden as VisuallyHidden11 } from "react-aria";
|
|
30445
30538
|
import { trussProps as trussProps140 } from "@homebound/truss/runtime";
|
|
30446
|
-
import { Fragment as
|
|
30539
|
+
import { Fragment as Fragment53, jsx as jsx242, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
30447
30540
|
function FormSectionChild(props) {
|
|
30448
30541
|
const {
|
|
30449
30542
|
title,
|
|
@@ -30486,7 +30579,7 @@ function FormSectionChild(props) {
|
|
|
30486
30579
|
borderStyle: "lot_bsn",
|
|
30487
30580
|
borderWidth: "lot_bw_0"
|
|
30488
30581
|
}), ...tid, children: [
|
|
30489
|
-
/* @__PURE__ */ jsx242(ContentHeader, { ...tid.header, title, description, actions, level: 4, rightSlotLead: tag && /* @__PURE__ */ jsx242(Tag, { ...tag, ...tid.tag }), startAdornment: isDraggable || control ? /* @__PURE__ */ jsxs130(
|
|
30582
|
+
/* @__PURE__ */ jsx242(ContentHeader, { ...tid.header, title, description, actions, level: 4, rightSlotLead: tag && /* @__PURE__ */ jsx242(Tag, { ...tag, ...tid.tag }), startAdornment: isDraggable || control ? /* @__PURE__ */ jsxs130(Fragment53, { children: [
|
|
30490
30583
|
isDraggable && /* @__PURE__ */ jsx242(DnDGridItemHandle, { dragHandleProps, icon: "drag", compact: true }),
|
|
30491
30584
|
control
|
|
30492
30585
|
] }) : void 0 }),
|
|
@@ -31139,7 +31232,7 @@ function BaseHeader(props) {
|
|
|
31139
31232
|
|
|
31140
31233
|
// src/components/Headers/PageHeader.tsx
|
|
31141
31234
|
import { trussProps as trussProps145 } from "@homebound/truss/runtime";
|
|
31142
|
-
import { Fragment as
|
|
31235
|
+
import { Fragment as Fragment54, jsx as jsx249, jsxs as jsxs135 } from "react/jsx-runtime";
|
|
31143
31236
|
function PageHeader2(props) {
|
|
31144
31237
|
const {
|
|
31145
31238
|
tabs,
|
|
@@ -31159,7 +31252,7 @@ function PageHeader2(props) {
|
|
|
31159
31252
|
/* @__PURE__ */ jsx249(AutoSaveIndicator, { hideOnIdle: true }),
|
|
31160
31253
|
rightSlotActions.length > 0 && /* @__PURE__ */ jsx249(HeaderActions, { actions: rightSlotActions, collapseOnSm: true }),
|
|
31161
31254
|
rightSlot
|
|
31162
|
-
] }), bottomSlot: (bottomSlotActions.length > 0 || tabs) && /* @__PURE__ */ jsxs135(
|
|
31255
|
+
] }), bottomSlot: (bottomSlotActions.length > 0 || tabs) && /* @__PURE__ */ jsxs135(Fragment54, { children: [
|
|
31163
31256
|
bottomSlotActions.length > 0 && /* @__PURE__ */ jsx249("div", { ...trussProps145({
|
|
31164
31257
|
...pageContentPaddingX,
|
|
31165
31258
|
...{
|
|
@@ -31392,7 +31485,7 @@ import { useEffect as useEffect41, useRef as useRef77 } from "react";
|
|
|
31392
31485
|
import { useBlocker } from "react-router-dom";
|
|
31393
31486
|
import { jsx as jsx255 } from "react/jsx-runtime";
|
|
31394
31487
|
function useUnsavedChangesGuard(options) {
|
|
31395
|
-
const { isDirty, allowNavigation, onCancel } = options;
|
|
31488
|
+
const { isDirty, allowNavigation, onCancel, destructiveAction } = options;
|
|
31396
31489
|
const { openModal } = useModal();
|
|
31397
31490
|
const isDirtyRef = useRef77(isDirty);
|
|
31398
31491
|
isDirtyRef.current = isDirty;
|
|
@@ -31429,8 +31522,39 @@ function useUnsavedChangesGuard(options) {
|
|
|
31429
31522
|
content: /* @__PURE__ */ jsx255(ConfirmCloseModal, { onClose: () => confirmCancel(e) })
|
|
31430
31523
|
});
|
|
31431
31524
|
};
|
|
31525
|
+
const onDestructiveActionClick = destructiveAction ? (e) => {
|
|
31526
|
+
const {
|
|
31527
|
+
label = "Remove",
|
|
31528
|
+
confirmTitle = "Are you sure?",
|
|
31529
|
+
confirmMessage = "This can't be undone.",
|
|
31530
|
+
onConfirm
|
|
31531
|
+
} = destructiveAction;
|
|
31532
|
+
openModal({
|
|
31533
|
+
allowClosing: false,
|
|
31534
|
+
content: /* @__PURE__ */ jsx255(
|
|
31535
|
+
ConfirmCloseModal,
|
|
31536
|
+
{
|
|
31537
|
+
title: confirmTitle,
|
|
31538
|
+
message: confirmMessage,
|
|
31539
|
+
discardText: "Cancel",
|
|
31540
|
+
onClose: () => {
|
|
31541
|
+
},
|
|
31542
|
+
continueText: label,
|
|
31543
|
+
isDestructive: true,
|
|
31544
|
+
onContinue: async () => {
|
|
31545
|
+
allowCancelNavigationRef.current = true;
|
|
31546
|
+
try {
|
|
31547
|
+
await onConfirm(e);
|
|
31548
|
+
} finally {
|
|
31549
|
+
allowCancelNavigationRef.current = false;
|
|
31550
|
+
}
|
|
31551
|
+
}
|
|
31552
|
+
}
|
|
31553
|
+
)
|
|
31554
|
+
});
|
|
31555
|
+
} : void 0;
|
|
31432
31556
|
const navigationBlocker = blocker.state === "blocked" ? { proceed: () => blocker.proceed?.(), cancelNavigation: () => blocker.reset?.() } : void 0;
|
|
31433
|
-
return { onCancelClick, navigationBlocker };
|
|
31557
|
+
return { onCancelClick, onDestructiveActionClick, navigationBlocker };
|
|
31434
31558
|
}
|
|
31435
31559
|
function UnsavedChangesNavigationModal(props) {
|
|
31436
31560
|
const { proceed, cancelNavigation } = props;
|
|
@@ -31451,6 +31575,7 @@ function WorkflowActions(props) {
|
|
|
31451
31575
|
const {
|
|
31452
31576
|
onCancel,
|
|
31453
31577
|
onSaveAndExit,
|
|
31578
|
+
destructiveAction,
|
|
31454
31579
|
completeLabel,
|
|
31455
31580
|
onComplete,
|
|
31456
31581
|
primaryDisabled,
|
|
@@ -31469,6 +31594,7 @@ function WorkflowActions(props) {
|
|
|
31469
31594
|
/* @__PURE__ */ jsxs137("div", { className: "df aic g_1", children: [
|
|
31470
31595
|
/* @__PURE__ */ jsx256(Button, { label: "Cancel", variant: "quaternary", onClick: onCancel }),
|
|
31471
31596
|
onSaveAndExit && /* @__PURE__ */ jsx256(Button, { label: "Save & Exit", variant: "secondary", onClick: onSaveAndExit }),
|
|
31597
|
+
destructiveAction && /* @__PURE__ */ jsx256(Button, { label: destructiveAction.label ?? "Remove", variant: "danger", onClick: destructiveAction.onConfirm }),
|
|
31472
31598
|
isLastStep ? /* @__PURE__ */ jsx256(Button, { label: completeLabel, variant: primaryVariant, onClick: onComplete, disabled: primaryDisabled }) : /* @__PURE__ */ jsx256(Button, { label: "Continue", variant: primaryVariant, onClick: async () => {
|
|
31473
31599
|
await onContinue?.();
|
|
31474
31600
|
}, disabled: primaryDisabled })
|
|
@@ -31494,6 +31620,7 @@ function WorkflowPageLayout(props) {
|
|
|
31494
31620
|
documentTitleSuffix,
|
|
31495
31621
|
breadcrumbs,
|
|
31496
31622
|
onCancel,
|
|
31623
|
+
destructiveAction,
|
|
31497
31624
|
rightPaneTriggers,
|
|
31498
31625
|
banner: bannerProp,
|
|
31499
31626
|
...actionProps
|
|
@@ -31508,13 +31635,18 @@ function WorkflowPageLayout(props) {
|
|
|
31508
31635
|
} = useBreakpoint();
|
|
31509
31636
|
const {
|
|
31510
31637
|
onCancelClick,
|
|
31638
|
+
onDestructiveActionClick,
|
|
31511
31639
|
navigationBlocker
|
|
31512
31640
|
} = useUnsavedChangesGuard({
|
|
31513
31641
|
isDirty,
|
|
31514
31642
|
allowNavigation,
|
|
31515
|
-
onCancel
|
|
31643
|
+
onCancel,
|
|
31644
|
+
destructiveAction
|
|
31516
31645
|
});
|
|
31517
|
-
const actions = /* @__PURE__ */ jsx257(WorkflowActions, { ...actionProps, aiMode, onCancel: onCancelClick
|
|
31646
|
+
const actions = /* @__PURE__ */ jsx257(WorkflowActions, { ...actionProps, aiMode, onCancel: onCancelClick, destructiveAction: destructiveAction && {
|
|
31647
|
+
...destructiveAction,
|
|
31648
|
+
onConfirm: onDestructiveActionClick
|
|
31649
|
+
} });
|
|
31518
31650
|
const triggers = rightPaneTriggers ?? [];
|
|
31519
31651
|
const pageTriggers = triggers.length > 0 ? /* @__PURE__ */ jsx257(WorkflowPageRightPaneTriggers, { triggers }) : void 0;
|
|
31520
31652
|
const headerMetricsRef = useRef78(null);
|
|
@@ -31632,6 +31764,7 @@ function FocusedFormLayout(props) {
|
|
|
31632
31764
|
completeLabel,
|
|
31633
31765
|
onComplete,
|
|
31634
31766
|
onSaveAndExit,
|
|
31767
|
+
destructiveAction,
|
|
31635
31768
|
primaryDisabled,
|
|
31636
31769
|
isDirty,
|
|
31637
31770
|
allowNavigation,
|
|
@@ -31653,6 +31786,7 @@ function FocusedFormLayout(props) {
|
|
|
31653
31786
|
allowNavigation,
|
|
31654
31787
|
onCancel,
|
|
31655
31788
|
onSaveAndExit,
|
|
31789
|
+
destructiveAction,
|
|
31656
31790
|
completeLabel,
|
|
31657
31791
|
onComplete,
|
|
31658
31792
|
primaryDisabled,
|
|
@@ -31673,6 +31807,7 @@ function StepperLayout(props) {
|
|
|
31673
31807
|
completeLabel,
|
|
31674
31808
|
onComplete,
|
|
31675
31809
|
onSaveAndExit,
|
|
31810
|
+
destructiveAction,
|
|
31676
31811
|
isDirty,
|
|
31677
31812
|
allowNavigation,
|
|
31678
31813
|
aiMode,
|
|
@@ -31710,6 +31845,7 @@ function StepperLayout(props) {
|
|
|
31710
31845
|
},
|
|
31711
31846
|
onCancel,
|
|
31712
31847
|
onSaveAndExit,
|
|
31848
|
+
destructiveAction,
|
|
31713
31849
|
completeLabel,
|
|
31714
31850
|
onComplete,
|
|
31715
31851
|
primaryDisabled: activeStep?.primaryDisabled,
|
|
@@ -31898,7 +32034,7 @@ function useFilter4({ filterDefs }) {
|
|
|
31898
32034
|
import { useCallback as useCallback49, useRef as useRef79 } from "react";
|
|
31899
32035
|
import { useComboBox as useComboBox3, useOverlayPosition as useOverlayPosition6 } from "react-aria";
|
|
31900
32036
|
import { Item as Item5, useComboBoxState as useComboBoxState3 } from "react-stately";
|
|
31901
|
-
import { Fragment as
|
|
32037
|
+
import { Fragment as Fragment55, jsx as jsx264, jsxs as jsxs141 } from "react/jsx-runtime";
|
|
31902
32038
|
function Autocomplete(props) {
|
|
31903
32039
|
const {
|
|
31904
32040
|
onSelect,
|
|
@@ -31969,7 +32105,7 @@ function Autocomplete(props) {
|
|
|
31969
32105
|
// Ensures the menu never gets too small.
|
|
31970
32106
|
minWidth: 200
|
|
31971
32107
|
};
|
|
31972
|
-
return /* @__PURE__ */ jsxs141(
|
|
32108
|
+
return /* @__PURE__ */ jsxs141(Fragment55, { children: [
|
|
31973
32109
|
/* @__PURE__ */ jsx264(
|
|
31974
32110
|
TextFieldBase,
|
|
31975
32111
|
{
|
|
@@ -32275,6 +32411,7 @@ export {
|
|
|
32275
32411
|
NavbarLayout,
|
|
32276
32412
|
NumberField,
|
|
32277
32413
|
OpenModal,
|
|
32414
|
+
OriginalValue,
|
|
32278
32415
|
PageBanner,
|
|
32279
32416
|
PageHeaderLayout,
|
|
32280
32417
|
Pagination,
|