@homebound/beam 2.413.0-alpha.4 → 2.413.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 CHANGED
@@ -7575,7 +7575,7 @@ var nonKindGridColumnKeys = [
7575
7575
  "isAction",
7576
7576
  "id",
7577
7577
  "canHide",
7578
- "initVisible",
7578
+ "initHidden",
7579
7579
  "expandColumns",
7580
7580
  "initExpanded",
7581
7581
  "hideOnExpand",
@@ -8834,7 +8834,7 @@ function TextFieldBase(props) {
8834
8834
  const fieldStyles = {
8835
8835
  container: Css.df.fdc.w100.maxw(fieldMaxWidth).relative.if(labelStyle === "left").maxw100.fdr.gap2.jcsb.aic.$,
8836
8836
  inputWrapper: {
8837
- ...Css[typeScale].df.aic.br8.pxPx(textFieldBasePadding).w100.bgColor(bgColor).gray900.if(contrast && !inputStylePalette).white.if(labelStyle === "left").w(labelLeftFieldWidth).$,
8837
+ ...Css[typeScale].df.aic.br4.pxPx(textFieldBasePadding).w100.bgColor(bgColor).gray900.if(contrast && !inputStylePalette).white.if(labelStyle === "left").w(labelLeftFieldWidth).$,
8838
8838
  // When borderless then perceived vertical alignments are misaligned. As there is no longer a border, then the field looks oddly indented.
8839
8839
  // 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.
8840
8840
  // 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.
@@ -12855,13 +12855,13 @@ function SelectToggle({ id, disabled }) {
12855
12855
  // src/components/Table/utils/columns.tsx
12856
12856
  var import_jsx_runtime80 = require("@emotion/react/jsx-runtime");
12857
12857
  function column(columnDef) {
12858
- return { canHide: true, initVisible: true, ...columnDef };
12858
+ return { canHide: true, initHidden: false, ...columnDef };
12859
12859
  }
12860
12860
  function dateColumn(columnDef) {
12861
- return { canHide: true, initVisible: true, ...columnDef, align: "left" };
12861
+ return { canHide: true, initHidden: false, ...columnDef, align: "left" };
12862
12862
  }
12863
12863
  function numericColumn(columnDef) {
12864
- return { canHide: true, initVisible: true, ...columnDef, align: "right" };
12864
+ return { canHide: true, initHidden: false, ...columnDef, align: "right" };
12865
12865
  }
12866
12866
  function actionColumn(columnDef) {
12867
12867
  return { clientSideSort: false, ...columnDef, align: "center", isAction: true, wrapAction: false };
@@ -13057,7 +13057,7 @@ var ColumnState = class {
13057
13057
  constructor(states, storage, column2) {
13058
13058
  this.states = states;
13059
13059
  this.column = column2;
13060
- this.visible = storage.wasVisible(column2.id) ?? (column2.canHide ? column2.initVisible ?? false : true);
13060
+ this.visible = storage.wasVisible(column2.id) ?? (column2.canHide ? !(column2.initHidden ?? true) : true);
13061
13061
  if (this.visible && (storage.wasExpanded(column2.id) ?? column2.initExpanded)) {
13062
13062
  this.expanded = true;
13063
13063
  this.doExpand();
@@ -16247,14 +16247,27 @@ function Toast() {
16247
16247
  // src/components/Layout/PageHeaderBreadcrumbs.tsx
16248
16248
  var import_react90 = require("react");
16249
16249
  var import_react_router_dom4 = require("react-router-dom");
16250
- var import_jsx_runtime124 = require("@emotion/react/jsx-runtime");
16250
+ var import_jsx_runtime124 = (
16251
+ // Adding index to key to prevent rendering issues when multiple items have the same label
16252
+ require("@emotion/react/jsx-runtime")
16253
+ );
16251
16254
  function PageHeaderBreadcrumbs({ breadcrumb }) {
16252
16255
  const tids = useTestIds({}, "pageHeaderBreadcrumbs");
16253
- const breadcrumbs = Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb];
16254
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("div", { css: Css.df.aic.mbPx(4).$, ...tids, children: breadcrumbs.map((breadcrumb2, i) => /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_react90.Fragment, { children: [
16255
- i > 0 && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("span", { css: Css.smSb.gray700.mr1.ml1.$, children: "/" }),
16256
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_react_router_dom4.Link, { to: breadcrumb2.href, css: Css.smSb.gray700.onHover.gray900.$, className: "navLink", ...tids.navLink, children: breadcrumb2.label })
16257
- ] }, `bc-${breadcrumb2.label}`)) });
16256
+ const breadcrumbs = (0, import_react90.useMemo)(() => Array.isArray(breadcrumb) ? breadcrumb : [breadcrumb], [breadcrumb]);
16257
+ const [collapsed, setCollapsed] = (0, import_react90.useState)(true);
16258
+ function renderBreadcrumb(bc, index, hideDivisor) {
16259
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_react90.Fragment, { children: [
16260
+ index > 0 && !hideDivisor && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("span", { css: Css.smSb.gray700.mx1.myPx(2).$, children: "/" }),
16261
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_react_router_dom4.Link, { to: bc.href, css: Css.smSb.gray700.onHover.gray900.$, className: "navLink", ...tids.navLink, children: bc.label }),
16262
+ bc.right
16263
+ ] }, `${bc.label}-${index}`);
16264
+ }
16265
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("div", { css: Css.df.aic.mbPx(4).$, children: breadcrumbs.length > 3 && collapsed ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
16266
+ renderBreadcrumb(breadcrumbs[0], 0),
16267
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("button", { ...tids.expand, css: Css.gray700.pxPx(8).$, onClick: () => setCollapsed(false), children: "..." }),
16268
+ renderBreadcrumb(breadcrumbs[breadcrumbs.length - 2], breadcrumbs.length - 2, true),
16269
+ renderBreadcrumb(breadcrumbs[breadcrumbs.length - 1], breadcrumbs.length - 1)
16270
+ ] }) : breadcrumbs.map((bc, i) => renderBreadcrumb(bc, i)) });
16258
16271
  }
16259
16272
 
16260
16273
  // src/components/Layout/FormPageLayout.tsx
@@ -16567,6 +16580,7 @@ var DateFilter = class extends BaseFilter {
16567
16580
  /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16568
16581
  SelectField,
16569
16582
  {
16583
+ compact: true,
16570
16584
  sizeToContent: true,
16571
16585
  options: [
16572
16586
  // Always show the 'Any' option
@@ -16589,6 +16603,7 @@ var DateFilter = class extends BaseFilter {
16589
16603
  /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16590
16604
  DateField,
16591
16605
  {
16606
+ compact: true,
16592
16607
  labelStyle: "inline",
16593
16608
  value: value?.value ? new Date(value.value) : /* @__PURE__ */ new Date(),
16594
16609
  label: "Date",
@@ -16615,6 +16630,7 @@ var DateRangeFilter = class extends BaseFilter {
16615
16630
  /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16616
16631
  DateRangeField,
16617
16632
  {
16633
+ compact: true,
16618
16634
  labelStyle: "inline",
16619
16635
  isRangeFilterField: true,
16620
16636
  placeholder: placeholderText,
@@ -16668,6 +16684,7 @@ var MultiFilter = class extends BaseFilter {
16668
16684
  MultiSelectField,
16669
16685
  {
16670
16686
  ...props,
16687
+ compact: !vertical,
16671
16688
  label: this.label,
16672
16689
  values: value || [],
16673
16690
  labelStyle: inModal ? "hidden" : !inModal && !vertical ? "inline" : "above",
@@ -16732,6 +16749,7 @@ var NumberRangeFilter = class extends BaseFilter {
16732
16749
  /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
16733
16750
  NumberField,
16734
16751
  {
16752
+ compact: true,
16735
16753
  sizeToContent: !inModal,
16736
16754
  labelStyle: "inline",
16737
16755
  clearable: true,
@@ -16749,6 +16767,7 @@ var NumberRangeFilter = class extends BaseFilter {
16749
16767
  /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
16750
16768
  NumberField,
16751
16769
  {
16770
+ compact: true,
16752
16771
  sizeToContent: !inModal,
16753
16772
  labelStyle: "inline",
16754
16773
  clearable: true,
@@ -16793,6 +16812,7 @@ var SingleFilter = class extends BaseFilter {
16793
16812
  options,
16794
16813
  getOptionValue: (o) => o === allOption ? void 0 : getOptionValue(o),
16795
16814
  getOptionLabel: (o) => o === allOption ? nothingSelectedText ?? "All" : getOptionLabel(o),
16815
+ compact: !vertical,
16796
16816
  value,
16797
16817
  label: this.label,
16798
16818
  labelStyle: inModal ? "hidden" : !inModal && !vertical ? "inline" : "above",
@@ -16819,6 +16839,7 @@ var TreeFilter = class extends BaseFilter {
16819
16839
  ...props,
16820
16840
  label: this.label,
16821
16841
  values: value,
16842
+ compact: !vertical,
16822
16843
  labelStyle: inModal ? "hidden" : !inModal && !vertical ? "inline" : "above",
16823
16844
  sizeToContent: !inModal && !vertical,
16824
16845
  onSelect: (options) => {
@@ -16844,6 +16865,7 @@ var BooleanFilter = class extends BaseFilter {
16844
16865
  SelectField,
16845
16866
  {
16846
16867
  ...props,
16868
+ compact: !vertical,
16847
16869
  label: this.label,
16848
16870
  value: String(value),
16849
16871
  labelStyle: inModal ? "hidden" : !inModal && !vertical ? "inline" : "above",
@@ -16993,6 +17015,7 @@ function Filters(props) {
16993
17015
  SelectField,
16994
17016
  {
16995
17017
  label: "Group by",
17018
+ compact: !vertical,
16996
17019
  labelStyle: !vertical ? "inline" : "above",
16997
17020
  sizeToContent: !vertical,
16998
17021
  options: groupBy.options,
@@ -17016,7 +17039,6 @@ function Filters(props) {
17016
17039
  Button,
17017
17040
  {
17018
17041
  label: "More Filters",
17019
- size: "md",
17020
17042
  endAdornment: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(CountBadge, { count: numModalFilters, hideIfZero: true }),
17021
17043
  variant: "secondary",
17022
17044
  onClick: () => openModal({
@@ -17026,7 +17048,7 @@ function Filters(props) {
17026
17048
  ...testId.moreFiltersBtn
17027
17049
  }
17028
17050
  ),
17029
- Object.keys(filter).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Button, { label: "Clear", size: "md", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn }) })
17051
+ Object.keys(filter).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn }) })
17030
17052
  ]
17031
17053
  }
17032
17054
  );
@@ -17123,6 +17145,7 @@ function FilterDropdownMenu(props) {
17123
17145
  SelectField,
17124
17146
  {
17125
17147
  label: "Group by",
17148
+ compact: true,
17126
17149
  labelStyle: "inline",
17127
17150
  sizeToContent: true,
17128
17151
  options: groupBy.options,
@@ -17133,7 +17156,7 @@ function FilterDropdownMenu(props) {
17133
17156
  }
17134
17157
  ),
17135
17158
  renderFilters(),
17136
- activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Button, { label: "Clear", size: "md", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn })
17159
+ activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn })
17137
17160
  ] }),
17138
17161
  !isOpen && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
17139
17162
  FilterChips,
@@ -17185,7 +17208,7 @@ function FilterChips({
17185
17208
  if (chips.length === 0) return null;
17186
17209
  return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { css: Css.df.gap1.fww.aic.order(1).$, children: [
17187
17210
  chips,
17188
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Button, { label: "Clear", size: "md", variant: "tertiary", onClick: onClear, ...testId.clearBtn })
17211
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: onClear, ...testId.clearBtn })
17189
17212
  ] });
17190
17213
  }
17191
17214
  function buildFilterImpls(filterDefs) {