@uniformdev/design-system 19.119.0 → 19.122.1-alpha.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/esm/index.js CHANGED
@@ -639,7 +639,7 @@ var input = (whiteSpaceWrap) => css2`
639
639
  border-radius: var(--rounded-sm);
640
640
  color: var(--gray-700);
641
641
  padding: var(--input-padding);
642
- min-height: 46px;
642
+ min-height: 50px;
643
643
  width: 100%;
644
644
  position: relative;
645
645
  white-space: ${whiteSpaceWrap};
@@ -1232,6 +1232,9 @@ var IconColorAction = css8`
1232
1232
  var IconColorAccent = css8`
1233
1233
  color: var(--accent-alt-dark);
1234
1234
  `;
1235
+ var IconColorAccentDark = css8`
1236
+ color: var(--accent-dark);
1237
+ `;
1235
1238
  var IconColorAccentLight = css8`
1236
1239
  color: var(--accent-light);
1237
1240
  `;
@@ -1275,6 +1278,7 @@ var IconInner = ({ icon, iconColor = "default", size = "1.5rem", ...otherProps }
1275
1278
  red: IconColorRed,
1276
1279
  accent: IconColorAccent,
1277
1280
  currentColor: IconColorCurrent,
1281
+ "accent-dark": IconColorAccentDark,
1278
1282
  "accent-light": IconColorAccentLight
1279
1283
  };
1280
1284
  if (isIconName && isLoading) {
@@ -12215,7 +12219,7 @@ var ButtonWithMenu = ({
12215
12219
  };
12216
12220
 
12217
12221
  // src/components/Calendar/Calendar.tsx
12218
- import { parseDate, today } from "@internationalized/date";
12222
+ import { isToday, parseDate, today } from "@internationalized/date";
12219
12223
  import { useCallback, useState as useState3 } from "react";
12220
12224
  import {
12221
12225
  Button as AriaButton,
@@ -12228,6 +12232,7 @@ import {
12228
12232
  // src/components/Calendar/Calendar.styles.ts
12229
12233
  import { css as css28 } from "@emotion/react";
12230
12234
  var container = css28`
12235
+ --calendar-cell-size: 1.8rem;
12231
12236
  width: fit-content;
12232
12237
  max-width: 100%;
12233
12238
  `;
@@ -12252,13 +12257,13 @@ var headerNavButton = css28`
12252
12257
  }
12253
12258
  `;
12254
12259
  var cell = css28`
12255
- width: 2rem;
12256
- line-height: 2rem;
12260
+ width: var(--calendar-cell-size);
12261
+ line-height: var(--calendar-cell-size);
12257
12262
  text-align: center;
12258
12263
  border-radius: var(--rounded-sm);
12259
12264
  cursor: default;
12260
12265
  outline: none;
12261
- margin: 1px;
12266
+ margin: 1px 0;
12262
12267
  forced-color-adjust: none;
12263
12268
 
12264
12269
  &:hover {
@@ -12284,6 +12289,12 @@ var cell = css28`
12284
12289
  color: var(--white);
12285
12290
  }
12286
12291
  `;
12292
+ var cellIsOutsideRange = css28`
12293
+ color: var(--gray-400);
12294
+ `;
12295
+ var cellIsToday = css28`
12296
+ background: var(--gray-200);
12297
+ `;
12287
12298
  var actions = css28`
12288
12299
  display: flex;
12289
12300
  justify-content: end;
@@ -12312,6 +12323,9 @@ var Calendar = ({
12312
12323
  ...props
12313
12324
  }) => {
12314
12325
  const [focusedValue, setFocusedValue] = useState3(void 0);
12326
+ const today_date = today(timeZone);
12327
+ const minDate = tryParseDate(minValue);
12328
+ const maxDate = tryParseDate(maxValue);
12315
12329
  const handleChange = useCallback(
12316
12330
  (value2) => {
12317
12331
  onChange == null ? void 0 : onChange(value2.toString());
@@ -12319,10 +12333,9 @@ var Calendar = ({
12319
12333
  [onChange]
12320
12334
  );
12321
12335
  const gotoToday = useCallback(() => {
12322
- const date = today(timeZone);
12323
- onChange == null ? void 0 : onChange(date.toString());
12324
- setFocusedValue(date);
12325
- }, [onChange, timeZone]);
12336
+ onChange == null ? void 0 : onChange(today_date.toString());
12337
+ setFocusedValue(today_date);
12338
+ }, [onChange, today_date]);
12326
12339
  return /* @__PURE__ */ jsxs18("div", { ...props, children: [
12327
12340
  /* @__PURE__ */ jsxs18(
12328
12341
  AriaCalendar,
@@ -12330,8 +12343,8 @@ var Calendar = ({
12330
12343
  value: tryParseDate(value) || null,
12331
12344
  focusedValue,
12332
12345
  onFocusChange: setFocusedValue,
12333
- minValue: tryParseDate(minValue),
12334
- maxValue: tryParseDate(maxValue),
12346
+ minValue: minDate,
12347
+ maxValue: maxDate,
12335
12348
  onChange: handleChange,
12336
12349
  css: container,
12337
12350
  "aria-label": "Appointment date",
@@ -12358,7 +12371,18 @@ var Calendar = ({
12358
12371
  }
12359
12372
  )
12360
12373
  ] }),
12361
- /* @__PURE__ */ jsx29(CalendarGrid, { children: (date) => /* @__PURE__ */ jsx29(CalendarCell, { css: cell, date }) })
12374
+ /* @__PURE__ */ jsx29(CalendarGrid, { children: (date) => /* @__PURE__ */ jsx29(
12375
+ CalendarCell,
12376
+ {
12377
+ css: [
12378
+ cell,
12379
+ minDate && date.compare(minDate) < 0 ? cellIsOutsideRange : null,
12380
+ maxDate && date.compare(maxDate) > 0 ? cellIsOutsideRange : null,
12381
+ isToday(date, timeZone) ? cellIsToday : null
12382
+ ],
12383
+ date
12384
+ }
12385
+ ) })
12362
12386
  ]
12363
12387
  }
12364
12388
  ),
@@ -13375,7 +13399,7 @@ var DashedBox = ({
13375
13399
  };
13376
13400
 
13377
13401
  // src/components/DateTimePicker/DateTimePicker.tsx
13378
- import { getLocalTimeZone as getLocalTimeZone2, parseDate as parseDate2, parseTime as parseTime2 } from "@internationalized/date";
13402
+ import { getLocalTimeZone as getLocalTimeZone2, parseDate as parseDate2, parseTime as parseTime2, Time as Time3 } from "@internationalized/date";
13379
13403
  import { createContext as createContext2, useCallback as useCallback3, useContext as useContext3, useEffect as useEffect4, useMemo, useState as useState6 } from "react";
13380
13404
  import { Popover as Popover2, PopoverDisclosure, usePopoverState } from "reakit/Popover";
13381
13405
 
@@ -13817,6 +13841,12 @@ function InputComboBox(props) {
13817
13841
  boxShadow: "none",
13818
13842
  borderColor: "var(--accent-dark-hover)"
13819
13843
  },
13844
+ '&:has([aria-readonly="true"])': {
13845
+ background: "var(--gray-100)",
13846
+ "&:hover": {
13847
+ borderColor: "var(--gray-300)"
13848
+ }
13849
+ },
13820
13850
  ...(_b = (_a2 = props.styles) == null ? void 0 : _a2.control) == null ? void 0 : _b.call(_a2, base, state)
13821
13851
  };
13822
13852
  },
@@ -14482,7 +14512,7 @@ var popover = css52`
14482
14512
  padding: var(--spacing-md);
14483
14513
  max-width: none;
14484
14514
  gap: var(--spacing-md);
14485
- grid-template-columns: 1fr 0.9fr;
14515
+ grid-template-columns: 0.8fr 1fr;
14486
14516
  grid-template-rows: 1fr 1fr;
14487
14517
 
14488
14518
  [data-variant='date'] & {
@@ -14544,7 +14574,7 @@ import {
14544
14574
  function getTimeZoneLabel(tz) {
14545
14575
  var _a;
14546
14576
  const offset = (_a = Intl.DateTimeFormat("en", { timeZoneName: "shortOffset", timeZone: tz }).formatToParts().find((p) => p.type === "timeZoneName")) == null ? void 0 : _a.value;
14547
- return tz + (offset ? ` (${offset})` : "");
14577
+ return String(tz).replace(/_/g, " ") + (offset ? ` (${offset})` : "");
14548
14578
  }
14549
14579
  function tryParseAbsolute(isoDateTime, timeZone) {
14550
14580
  try {
@@ -14579,7 +14609,8 @@ var DateTimePickerVariant = /* @__PURE__ */ ((DateTimePickerVariant2) => {
14579
14609
 
14580
14610
  // src/components/DateTimePicker/DateTimePicker.tsx
14581
14611
  import { jsx as jsx61, jsxs as jsxs38 } from "@emotion/react/jsx-runtime";
14582
- var TIMEZONE_OPTIONS = Intl.supportedValuesOf("timeZone").map((v) => ({
14612
+ var timeZoneOptions = typeof Intl !== "undefined" && typeof Intl.supportedValuesOf === "function" ? Intl.supportedValuesOf("timeZone") : ["Etc/UTC"];
14613
+ var TIMEZONE_OPTIONS = timeZoneOptions.map((v) => ({
14583
14614
  label: getTimeZoneLabel(v),
14584
14615
  value: v
14585
14616
  }));
@@ -14629,9 +14660,10 @@ var DateTimePicker = ({
14629
14660
  return TIMEZONE_OPTIONS.find(({ value: value2 }) => value2 === timeZone);
14630
14661
  });
14631
14662
  useEffect4(() => {
14663
+ var _a;
14632
14664
  if (popover2.visible) {
14633
14665
  setDraftDate(tryToCalendarDate(parsedValue));
14634
- setDraftTime(tryToTime(parsedValue));
14666
+ setDraftTime((_a = tryToTime(parsedValue)) != null ? _a : new Time3(0, 0));
14635
14667
  }
14636
14668
  }, [parsedValue, popover2.visible]);
14637
14669
  const handleDateChange = useCallback3((isoDate) => {
@@ -20240,6 +20272,23 @@ var TEXTBOX_OPERATORS = [
20240
20272
  editorType: "empty"
20241
20273
  }
20242
20274
  ];
20275
+ var USER_OPERATORS = [
20276
+ {
20277
+ label: "is...",
20278
+ value: "eq",
20279
+ editorType: "text"
20280
+ },
20281
+ {
20282
+ label: "contains...",
20283
+ value: "match",
20284
+ editorType: "text"
20285
+ },
20286
+ {
20287
+ label: "is not...",
20288
+ value: "neq",
20289
+ editorType: "text"
20290
+ }
20291
+ ];
20243
20292
  var RICHTEXT_OPERATORS = [
20244
20293
  {
20245
20294
  label: "is empty...",
@@ -20295,16 +20344,16 @@ var SYSTEM_FIELD_OPERATORS = [
20295
20344
  // src/components/SearchAndFilter/styles/SearchAndFilter.styles.ts
20296
20345
  import { css as css92 } from "@emotion/react";
20297
20346
  var SearchAndFilterContainer = css92``;
20298
- var SearchAndFilterControlsWrapper = css92`
20347
+ var SearchAndFilterControlsWrapper = (gridColumns) => css92`
20299
20348
  align-items: stretch;
20300
20349
  display: grid;
20301
- grid-template-columns: auto auto 1fr 0.5fr;
20350
+ grid-template-columns: ${gridColumns};
20302
20351
  gap: var(--spacing-sm);
20303
20352
  `;
20304
- var SearchAndFilterOutterControlWrapper = css92`
20353
+ var SearchAndFilterOutterControlWrapper = (gridColumns) => css92`
20305
20354
  align-items: stretch;
20306
20355
  display: grid;
20307
- grid-template-columns: 1fr auto;
20356
+ grid-template-columns: ${gridColumns};
20308
20357
  gap: var(--spacing-sm);
20309
20358
  `;
20310
20359
  var ConditionalFilterRow = css92`
@@ -20337,7 +20386,7 @@ var ConditionalInputRow = css92`
20337
20386
  }
20338
20387
  ${cq("580px")} {
20339
20388
  display: grid;
20340
- grid-template-columns: 200px 160px repeat(2, minmax(160px, 240px)) 32px;
20389
+ grid-template-columns: 200px 160px 1fr 32px;
20341
20390
  }
20342
20391
  `;
20343
20392
  var SearchInput = css92`
@@ -20381,6 +20430,12 @@ var FilterButton = css92`
20381
20430
  opacity: var(--opacity-50);
20382
20431
  }
20383
20432
  `;
20433
+ var FilterButtonText = css92`
20434
+ overflow: hidden;
20435
+ text-overflow: ellipsis;
20436
+ white-space: nowrap;
20437
+ max-width: 14ch;
20438
+ `;
20384
20439
  var FilterButtonSelected = css92`
20385
20440
  background: var(--gray-100);
20386
20441
  border-color: var(--gray-300);
@@ -20472,7 +20527,7 @@ var SearchAndFilterOptionsContainer = css92`
20472
20527
  padding: var(--spacing-md) var(--spacing-md) var(--spacing-base);
20473
20528
  will-change: height;
20474
20529
  position: relative;
20475
- z-index: 1;
20530
+ z-index: 2;
20476
20531
  `;
20477
20532
  var SearchAndFilterOptionsInnerContainer = css92`
20478
20533
  display: flex;
@@ -20505,7 +20560,7 @@ var FilterButton2 = ({
20505
20560
  "data-testid": "filters-button",
20506
20561
  children: [
20507
20562
  /* @__PURE__ */ jsx117(Icon, { icon, iconColor: "currentColor", size: "1rem" }),
20508
- text,
20563
+ /* @__PURE__ */ jsx117("span", { css: FilterButtonText, children: text }),
20509
20564
  filterCount ? /* @__PURE__ */ jsx117(Counter, { count: filterCount, bgColor: "var(--white)" }) : null
20510
20565
  ]
20511
20566
  }
@@ -20556,6 +20611,7 @@ var SearchAndFilterProvider = ({
20556
20611
  filterOptions,
20557
20612
  sortOptions,
20558
20613
  defaultSortByValue,
20614
+ filterMode: filterMode3 = void 0,
20559
20615
  onSearchChange,
20560
20616
  onChange,
20561
20617
  onSortChange,
@@ -20564,12 +20620,12 @@ var SearchAndFilterProvider = ({
20564
20620
  }) => {
20565
20621
  const [searchTerm, setSearchTerm] = useState16("");
20566
20622
  const deferredSearchTerm = useDeferredValue2(searchTerm);
20567
- const [filterVisibility, setFilterVisibility] = useState16(void 0);
20623
+ const [filterVisibility, setFilterVisibility] = useState16(filterMode3);
20568
20624
  const [sortByValue, setSortByValue] = useState16(defaultSortByValue);
20569
20625
  const handleSearchTerm = useCallback10(
20570
20626
  (term) => {
20571
20627
  setSearchTerm(term);
20572
- onSearchChange(term);
20628
+ onSearchChange == null ? void 0 : onSearchChange(term);
20573
20629
  },
20574
20630
  [setSearchTerm, onSearchChange]
20575
20631
  );
@@ -20648,9 +20704,20 @@ var useSearchAndFilter = () => {
20648
20704
  // src/components/SearchAndFilter/FilterControls.tsx
20649
20705
  import { Fragment as Fragment19, jsx as jsx119, jsxs as jsxs80 } from "@emotion/react/jsx-runtime";
20650
20706
  var FilterControls = ({
20651
- children
20707
+ children,
20708
+ defaultSortByValue,
20709
+ hideSearchInput
20652
20710
  }) => {
20653
- const { setFilterVisibility, filterVisibility, setSearchTerm, validFilterQuery, searchTerm, sortByValue } = useSearchAndFilter();
20711
+ var _a, _b, _c;
20712
+ const {
20713
+ setFilterVisibility,
20714
+ filterVisibility,
20715
+ setSearchTerm,
20716
+ validFilterQuery,
20717
+ searchTerm,
20718
+ sortByValue,
20719
+ filterOptions
20720
+ } = useSearchAndFilter();
20654
20721
  const [localeSearchTerm, setLocaleSearchTerm] = useState17("");
20655
20722
  useDebounce2(
20656
20723
  () => {
@@ -20670,9 +20737,12 @@ var FilterControls = ({
20670
20737
  }
20671
20738
  return setFilterVisibility(mode);
20672
20739
  };
20673
- const sortByValues = sortByValue ? sortByValue == null ? void 0 : sortByValue.split("_") : "Sort";
20674
- const sortByValueLabel = Array.isArray(sortByValues) ? sortByValue == null ? void 0 : sortByValue.split("_")[0] : "Sort";
20675
- const sortByIcon = Array.isArray(sortByValues) ? sortByValues[1] === "ASC" ? "arrow-up" : "arrow-down" : "sort-az";
20740
+ const sortValue = (sortByValue != null ? sortByValue : defaultSortByValue).split("_");
20741
+ const sortDirection = sortValue == null ? void 0 : sortValue.pop();
20742
+ const sortField = sortValue == null ? void 0 : sortValue.join("_");
20743
+ const sortOn = sortField.startsWith("fields.") ? "contentTypeFields" : "metadata";
20744
+ const sortByValueLabel = (_c = (_b = (_a = filterOptions == null ? void 0 : filterOptions.find((op) => op.value === sortOn)) == null ? void 0 : _a.options) == null ? void 0 : _b.find((f) => f.value === sortField)) == null ? void 0 : _c.label;
20745
+ const sortByIcon = sortDirection === "ASC" ? "arrow-up" : "arrow-down";
20676
20746
  return /* @__PURE__ */ jsxs80(Fragment19, { children: [
20677
20747
  /* @__PURE__ */ jsx119(
20678
20748
  FilterButton2,
@@ -20699,7 +20769,7 @@ var FilterControls = ({
20699
20769
  "data-testid": "sort-by-dropdown"
20700
20770
  }
20701
20771
  ),
20702
- /* @__PURE__ */ jsx119(
20772
+ hideSearchInput ? null : /* @__PURE__ */ jsx119(
20703
20773
  InputKeywordSearch,
20704
20774
  {
20705
20775
  placeholder: "Search...",
@@ -20793,6 +20863,11 @@ var StatusUnknown = css93`
20793
20863
  background: var(--gray-800);
20794
20864
  }
20795
20865
  `;
20866
+ var StatusDeleted = css93`
20867
+ &:before {
20868
+ background: var(--error);
20869
+ }
20870
+ `;
20796
20871
 
20797
20872
  // src/components/Validation/StatusBullet.tsx
20798
20873
  import { jsx as jsx120 } from "@emotion/react/jsx-runtime";
@@ -20811,7 +20886,8 @@ var StatusBullet = ({
20811
20886
  Published: StatusPublished,
20812
20887
  Draft: StatusDraft,
20813
20888
  Previous: StatusDraft,
20814
- Unknown: StatusUnknown
20889
+ Unknown: StatusUnknown,
20890
+ Deleted: StatusDeleted
20815
20891
  };
20816
20892
  const statusSize = size === "base" ? StatusBulletBase : StatusBulletSmall;
20817
20893
  return /* @__PURE__ */ jsx120(
@@ -20827,13 +20903,20 @@ var StatusBullet = ({
20827
20903
  };
20828
20904
 
20829
20905
  // src/components/SearchAndFilter/FilterEditor.tsx
20830
- import { Fragment as Fragment20, jsx as jsx121, jsxs as jsxs81 } from "@emotion/react/jsx-runtime";
20906
+ import { jsx as jsx121, jsxs as jsxs81 } from "@emotion/react/jsx-runtime";
20907
+ var readOnlyAttributes = {
20908
+ isSearchable: false,
20909
+ menuIsOpen: false,
20910
+ isClearable: false
20911
+ };
20831
20912
  var FilterMultiChoiceEditor = ({
20832
20913
  value,
20833
20914
  options,
20834
20915
  isDisabled,
20916
+ readOnly,
20835
20917
  ...props
20836
20918
  }) => {
20919
+ const readOnlyProps = readOnly ? readOnlyAttributes : {};
20837
20920
  return /* @__PURE__ */ jsx121(
20838
20921
  InputComboBox,
20839
20922
  {
@@ -20847,7 +20930,9 @@ var FilterMultiChoiceEditor = ({
20847
20930
  var _a;
20848
20931
  return props.onChange((_a = e.map((item) => item.value)) != null ? _a : []);
20849
20932
  },
20850
- value
20933
+ value,
20934
+ "aria-readonly": readOnly,
20935
+ ...readOnlyProps
20851
20936
  }
20852
20937
  );
20853
20938
  };
@@ -20855,8 +20940,10 @@ var FilterSingleChoiceEditor = ({
20855
20940
  options,
20856
20941
  value,
20857
20942
  isDisabled,
20943
+ readOnly,
20858
20944
  onChange
20859
20945
  }) => {
20946
+ const readOnlyProps = readOnly ? readOnlyAttributes : {};
20860
20947
  return /* @__PURE__ */ jsx121(
20861
20948
  InputComboBox,
20862
20949
  {
@@ -20868,7 +20955,9 @@ var FilterSingleChoiceEditor = ({
20868
20955
  return onChange((_a = e == null ? void 0 : e.value) != null ? _a : "");
20869
20956
  },
20870
20957
  isDisabled,
20871
- value
20958
+ value,
20959
+ "aria-readonly": readOnly,
20960
+ ...readOnlyProps
20872
20961
  }
20873
20962
  );
20874
20963
  };
@@ -20879,8 +20968,10 @@ var StatusMultiEditor = ({
20879
20968
  options,
20880
20969
  value,
20881
20970
  isDisabled,
20971
+ readOnly,
20882
20972
  onChange
20883
20973
  }) => {
20974
+ const readOnlyProps = readOnly ? readOnlyAttributes : {};
20884
20975
  return /* @__PURE__ */ jsx121(
20885
20976
  InputComboBox,
20886
20977
  {
@@ -20892,7 +20983,8 @@ var StatusMultiEditor = ({
20892
20983
  },
20893
20984
  formatOptionLabel: CustomOptions,
20894
20985
  value,
20895
- isDisabled
20986
+ isDisabled,
20987
+ ...readOnlyProps
20896
20988
  }
20897
20989
  );
20898
20990
  };
@@ -20900,8 +20992,10 @@ var StatusSingleEditor = ({
20900
20992
  options,
20901
20993
  value,
20902
20994
  isDisabled,
20995
+ readOnly,
20903
20996
  onChange
20904
20997
  }) => {
20998
+ const readOnlyProps = readOnly ? readOnlyAttributes : {};
20905
20999
  return /* @__PURE__ */ jsx121(
20906
21000
  InputComboBox,
20907
21001
  {
@@ -20912,11 +21006,12 @@ var StatusSingleEditor = ({
20912
21006
  },
20913
21007
  formatOptionLabel: CustomOptions,
20914
21008
  value,
20915
- isDisabled
21009
+ isDisabled,
21010
+ ...readOnlyProps
20916
21011
  }
20917
21012
  );
20918
21013
  };
20919
- var TextEditor = ({ onChange, ariaLabel, value }) => {
21014
+ var TextEditor = ({ onChange, ariaLabel, value, readOnly }) => {
20920
21015
  useDebounce3(() => onChange, 500, [value]);
20921
21016
  return /* @__PURE__ */ jsx121(
20922
21017
  Input,
@@ -20925,11 +21020,12 @@ var TextEditor = ({ onChange, ariaLabel, value }) => {
20925
21020
  label: ariaLabel,
20926
21021
  onChange: (e) => onChange(e.currentTarget.value),
20927
21022
  placeholder: "Enter phrase to search\u2026",
20928
- value
21023
+ value,
21024
+ readOnly
20929
21025
  }
20930
21026
  );
20931
21027
  };
20932
- var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value }) => {
21028
+ var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value, readOnly }) => {
20933
21029
  const [minValue, setMinValue] = useState18("");
20934
21030
  const [maxValue, setMaxValue] = useState18("");
20935
21031
  const [error, setError] = useState18("");
@@ -20952,7 +21048,7 @@ var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value }) =>
20952
21048
  setError("");
20953
21049
  onChange([minValue, maxValue]);
20954
21050
  }, [maxValue, minValue, setError]);
20955
- return /* @__PURE__ */ jsxs81(Fragment20, { children: [
21051
+ return /* @__PURE__ */ jsxs81("div", { css: twoColumnGrid, children: [
20956
21052
  /* @__PURE__ */ jsx121(
20957
21053
  Input,
20958
21054
  {
@@ -20964,7 +21060,8 @@ var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value }) =>
20964
21060
  onChange: (e) => setMinValue(e.currentTarget.value),
20965
21061
  "aria-invalid": !error ? false : true,
20966
21062
  disabled: disabled2,
20967
- value: value ? value[0] : ""
21063
+ value: value ? value[0] : "",
21064
+ readOnly
20968
21065
  }
20969
21066
  ),
20970
21067
  /* @__PURE__ */ jsx121(
@@ -20978,13 +21075,14 @@ var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value }) =>
20978
21075
  onChange: (e) => setMaxValue(e.currentTarget.value),
20979
21076
  "aria-invalid": !error ? false : true,
20980
21077
  disabled: disabled2,
20981
- value: value ? value[1] : ""
21078
+ value: value ? value[1] : "",
21079
+ readOnly
20982
21080
  }
20983
21081
  ),
20984
21082
  /* @__PURE__ */ jsx121(ErrorContainer, { errorMessage: error })
20985
21083
  ] });
20986
21084
  };
20987
- var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value }) => {
21085
+ var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly }) => {
20988
21086
  return /* @__PURE__ */ jsx121(
20989
21087
  Input,
20990
21088
  {
@@ -20994,11 +21092,12 @@ var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value }) => {
20994
21092
  min: 0,
20995
21093
  onChange: (e) => onChange(e.currentTarget.value),
20996
21094
  disabled: disabled2,
20997
- value
21095
+ value,
21096
+ readOnly
20998
21097
  }
20999
21098
  );
21000
21099
  };
21001
- var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value }) => {
21100
+ var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value, readOnly }) => {
21002
21101
  return /* @__PURE__ */ jsx121(
21003
21102
  Input,
21004
21103
  {
@@ -21007,11 +21106,12 @@ var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value }) => {
21007
21106
  showLabel: false,
21008
21107
  onChange: (e) => onChange(e.currentTarget.value),
21009
21108
  disabled: disabled2,
21010
- value
21109
+ value,
21110
+ readOnly
21011
21111
  }
21012
21112
  );
21013
21113
  };
21014
- var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value }) => {
21114
+ var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly }) => {
21015
21115
  const [minDateValue, setMinDateValue] = useState18(value ? value[0] : "");
21016
21116
  const [maxDateValue, setMaxDateValue] = useState18(value ? value[1] : "");
21017
21117
  const [error, setError] = useState18("");
@@ -21046,7 +21146,7 @@ var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value }) => {
21046
21146
  setError("");
21047
21147
  onChange([minDateValue, maxDateValue]);
21048
21148
  }, [minDateValue, maxDateValue, setError]);
21049
- return /* @__PURE__ */ jsxs81(Fragment20, { children: [
21149
+ return /* @__PURE__ */ jsxs81("div", { css: twoColumnGrid, children: [
21050
21150
  /* @__PURE__ */ jsx121(
21051
21151
  Input,
21052
21152
  {
@@ -21056,7 +21156,8 @@ var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value }) => {
21056
21156
  value: minDateValue,
21057
21157
  onChange: (e) => setMinDateValue(e.currentTarget.value),
21058
21158
  "aria-invalid": !error ? false : true,
21059
- disabled: disabled2
21159
+ disabled: disabled2,
21160
+ readOnly
21060
21161
  }
21061
21162
  ),
21062
21163
  /* @__PURE__ */ jsx121(
@@ -21068,7 +21169,8 @@ var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value }) => {
21068
21169
  value: maxDateValue,
21069
21170
  onChange: (e) => setMaxDateValue(e.currentTarget.value),
21070
21171
  "aria-invalid": !error ? false : true,
21071
- disabled: disabled2
21172
+ disabled: disabled2,
21173
+ readOnly
21072
21174
  }
21073
21175
  ),
21074
21176
  /* @__PURE__ */ jsx121(ErrorContainer, { errorMessage: error })
@@ -21108,6 +21210,11 @@ var ErrorContainer = ({ errorMessage }) => {
21108
21210
  }
21109
21211
  );
21110
21212
  };
21213
+ var twoColumnGrid = {
21214
+ display: "grid",
21215
+ gridTemplateColumns: "1fr 1fr",
21216
+ gap: "var(--spacing-sm);"
21217
+ };
21111
21218
 
21112
21219
  // src/components/SearchAndFilter/FilterMenu.tsx
21113
21220
  import React24, { useEffect as useEffect20 } from "react";
@@ -21156,7 +21263,7 @@ var FilterMenu = ({ id, filterTitle = "Show records", menuControls, children })
21156
21263
  };
21157
21264
 
21158
21265
  // src/components/SearchAndFilter/FilterItem.tsx
21159
- import { Fragment as Fragment21, jsx as jsx123, jsxs as jsxs83 } from "@emotion/react/jsx-runtime";
21266
+ import { Fragment as Fragment20, jsx as jsx123, jsxs as jsxs83 } from "@emotion/react/jsx-runtime";
21160
21267
  var FilterItem = ({
21161
21268
  index,
21162
21269
  paramOptions,
@@ -21172,15 +21279,16 @@ var FilterItem = ({
21172
21279
  const operatorLabel = filters[index].operator !== "" ? `operator ${filters[index].operator}` : "unknown operator";
21173
21280
  const metaDataLabel = filters[index].value !== "" ? `value ${filters[index].value}` : "unknown value";
21174
21281
  const metaDataPossibleOptions = (_b = (_a = operatorOptions.find((op) => filters[index].operator === op.value)) == null ? void 0 : _a.editorType) != null ? _b : "singleChoice";
21175
- const { selectedFieldValue, selectedOperatorValue, selectedMetaValue } = useMemo7(() => {
21176
- var _a2, _b2;
21282
+ const { selectedFieldValue, selectedOperatorValue, selectedMetaValue, readOnly } = useMemo7(() => {
21283
+ var _a2;
21177
21284
  const currentSelectedFilter = filterOptions.find((item) => {
21178
21285
  var _a3;
21179
21286
  return (_a3 = item.options) == null ? void 0 : _a3.find((op) => op.value === filters[index].field);
21180
21287
  });
21181
- const selectedFieldValue2 = (_b2 = (_a2 = currentSelectedFilter == null ? void 0 : currentSelectedFilter.options) == null ? void 0 : _a2.find((item) => {
21288
+ const selectedFieldValue2 = (_a2 = currentSelectedFilter == null ? void 0 : currentSelectedFilter.options) == null ? void 0 : _a2.find((item) => {
21182
21289
  return filters[index].field === item.value;
21183
- })) != null ? _b2 : [];
21290
+ });
21291
+ const isCurrentFieldReadOnly = selectedFieldValue2 == null ? void 0 : selectedFieldValue2.readOnly;
21184
21292
  const selectedOperatorValue2 = operatorOptions == null ? void 0 : operatorOptions.find((item) => {
21185
21293
  return filters[index].operator === item.value;
21186
21294
  });
@@ -21193,9 +21301,16 @@ var FilterItem = ({
21193
21301
  return {
21194
21302
  selectedFieldValue: selectedFieldValue2,
21195
21303
  selectedOperatorValue: selectedOperatorValue2 != null ? selectedOperatorValue2 : void 0,
21196
- selectedMetaValue: selectedMetaValue2.length > 0 ? selectedMetaValue2 : filters[index].value
21304
+ selectedMetaValue: selectedMetaValue2.length > 0 ? selectedMetaValue2 : filters[index].value,
21305
+ readOnly: isCurrentFieldReadOnly
21197
21306
  };
21198
21307
  }, [filters, filterOptions, index, operatorOptions, valueOptions]);
21308
+ const readOnlyProps = readOnly ? {
21309
+ "aria-readonly": true,
21310
+ isSearchable: false,
21311
+ menuIsOpen: false,
21312
+ isClearable: false
21313
+ } : {};
21199
21314
  return /* @__PURE__ */ jsxs83("div", { css: ConditionalFilterRow, children: [
21200
21315
  /* @__PURE__ */ jsx123("span", { children: index === 0 ? "where" : "and" }),
21201
21316
  /* @__PURE__ */ jsxs83("div", { css: ConditionalInputRow, children: [
@@ -21208,7 +21323,8 @@ var FilterItem = ({
21208
21323
  var _a2;
21209
21324
  onParamChange((_a2 = e == null ? void 0 : e.value) != null ? _a2 : "");
21210
21325
  },
21211
- value: selectedFieldValue
21326
+ value: selectedFieldValue,
21327
+ ...readOnlyProps
21212
21328
  }
21213
21329
  ),
21214
21330
  /* @__PURE__ */ jsx123(
@@ -21221,7 +21337,8 @@ var FilterItem = ({
21221
21337
  return onOperatorChange((_a2 = e == null ? void 0 : e.value) != null ? _a2 : "");
21222
21338
  },
21223
21339
  isDisabled: !filters[index].field,
21224
- value: selectedOperatorValue
21340
+ value: selectedOperatorValue,
21341
+ ...readOnlyProps
21225
21342
  }
21226
21343
  ),
21227
21344
  /* @__PURE__ */ jsx123(
@@ -21231,6 +21348,7 @@ var FilterItem = ({
21231
21348
  editorType: metaDataPossibleOptions,
21232
21349
  options: valueOptions,
21233
21350
  onChange: (e) => onValueChange(e != null ? e : ""),
21351
+ readOnly,
21234
21352
  isDisabled: !filters[index].operator,
21235
21353
  value: selectedMetaValue
21236
21354
  }
@@ -21252,15 +21370,7 @@ var FilterItems = ({
21252
21370
  addButtonText = "add condition",
21253
21371
  resetButtonText = "reset filters"
21254
21372
  }) => {
21255
- const {
21256
- filterOptions,
21257
- filters,
21258
- setFilters,
21259
- handleAddFilter,
21260
- handleResetFilters,
21261
- setFilterVisibility,
21262
- validFilterQuery
21263
- } = useSearchAndFilter();
21373
+ const { filterOptions, filters, setFilters, handleAddFilter, handleResetFilters, setFilterVisibility } = useSearchAndFilter();
21264
21374
  const handleUpdateFilter = (index, prop, value) => {
21265
21375
  const next = [...filters];
21266
21376
  next[index] = { ...next[index], [prop]: value };
@@ -21283,21 +21393,12 @@ var FilterItems = ({
21283
21393
  FilterMenu,
21284
21394
  {
21285
21395
  id: "search-and-filter-options",
21286
- menuControls: /* @__PURE__ */ jsxs83(Fragment21, { children: [
21287
- /* @__PURE__ */ jsxs83(
21288
- "button",
21289
- {
21290
- type: "button",
21291
- css: AddConditionalBtn,
21292
- onClick: handleAddFilter,
21293
- disabled: !validFilterQuery,
21294
- children: [
21295
- /* @__PURE__ */ jsx123(Icon, { icon: "math-plus", iconColor: !validFilterQuery ? "currentColor" : "gray", size: "1rem" }),
21296
- addButtonText
21297
- ]
21298
- }
21299
- ),
21300
- (validFilterQuery == null ? void 0 : validFilterQuery.length) ? /* @__PURE__ */ jsx123(
21396
+ menuControls: /* @__PURE__ */ jsxs83(Fragment20, { children: [
21397
+ /* @__PURE__ */ jsxs83("button", { type: "button", css: AddConditionalBtn, onClick: handleAddFilter, children: [
21398
+ /* @__PURE__ */ jsx123(Icon, { icon: "math-plus", iconColor: "currentColor", size: "1rem" }),
21399
+ addButtonText
21400
+ ] }),
21401
+ (filters == null ? void 0 : filters.length) ? /* @__PURE__ */ jsx123(
21301
21402
  "button",
21302
21403
  {
21303
21404
  type: "button",
@@ -21592,26 +21693,54 @@ var FilterModeView = () => {
21592
21693
  };
21593
21694
 
21594
21695
  // src/components/SearchAndFilter/SearchAndFilterResultContainer.tsx
21595
- import { Fragment as Fragment22, jsx as jsx127, jsxs as jsxs86 } from "@emotion/react/jsx-runtime";
21696
+ import { Fragment as Fragment21, jsx as jsx127, jsxs as jsxs86 } from "@emotion/react/jsx-runtime";
21596
21697
  var SearchAndFilterResultContainer = ({
21597
- clearButtonLabel = "clear"
21698
+ buttonText,
21699
+ clearButtonLabel = "clear",
21700
+ calloutTitle: calloutTitle2,
21701
+ calloutText,
21702
+ onHandleClear
21598
21703
  }) => {
21599
- const { searchTerm, setSearchTerm, totalResults } = useSearchAndFilter();
21600
- return searchTerm ? /* @__PURE__ */ jsxs86(Fragment22, { children: [
21704
+ const { searchTerm, setSearchTerm, totalResults, setFilters, filters } = useSearchAndFilter();
21705
+ const automateCalloutTitle = () => {
21706
+ if (searchTerm && !filters.length) {
21707
+ return "No search results found";
21708
+ }
21709
+ if (filters.length && !searchTerm) {
21710
+ return "No results match the selected filters";
21711
+ }
21712
+ return "No matching results found";
21713
+ };
21714
+ const handleResetFilters = () => {
21715
+ if (searchTerm && !filters.length) {
21716
+ setSearchTerm("");
21717
+ return;
21718
+ } else if (!searchTerm && filters.length) {
21719
+ setFilters([{ field: "", operator: "", value: "" }]);
21720
+ return;
21721
+ } else {
21722
+ setSearchTerm("");
21723
+ setFilters([{ field: "", operator: "", value: "" }]);
21724
+ return;
21725
+ }
21726
+ };
21727
+ if (totalResults && totalResults > 0) {
21728
+ return null;
21729
+ }
21730
+ return /* @__PURE__ */ jsxs86(Fragment21, { children: [
21601
21731
  /* @__PURE__ */ jsxs86(HorizontalRhythm, { children: [
21602
21732
  /* @__PURE__ */ jsxs86("span", { children: [
21603
21733
  totalResults,
21604
- " results for ",
21605
- /* @__PURE__ */ jsxs86("strong", { children: [
21606
- '"',
21607
- searchTerm,
21608
- '"'
21609
- ] })
21734
+ " results ",
21735
+ searchTerm ? `for "${searchTerm}"` : null
21610
21736
  ] }),
21611
- /* @__PURE__ */ jsx127(Button, { buttonType: "ghostDestructive", size: "zero", onClick: () => setSearchTerm(""), children: clearButtonLabel })
21737
+ !searchTerm ? null : /* @__PURE__ */ jsx127(Button, { buttonType: "ghostDestructive", size: "zero", onClick: () => setSearchTerm(""), children: clearButtonLabel })
21612
21738
  ] }),
21613
- totalResults === 0 ? /* @__PURE__ */ jsx127(Callout, { title: "No search results found", type: "note", children: /* @__PURE__ */ jsx127(Button, { buttonType: "tertiaryOutline", size: "sm", onClick: () => setSearchTerm(""), children: "Clear search" }) }) : null
21614
- ] }) : null;
21739
+ totalResults === 0 ? /* @__PURE__ */ jsxs86(Callout, { title: calloutTitle2 != null ? calloutTitle2 : automateCalloutTitle(), type: "note", children: [
21740
+ calloutText ? /* @__PURE__ */ jsx127(Paragraph, { children: calloutText }) : null,
21741
+ /* @__PURE__ */ jsx127(Button, { buttonType: "tertiaryOutline", size: "xs", onClick: onHandleClear != null ? onHandleClear : handleResetFilters, children: buttonText != null ? buttonText : "Clear search" })
21742
+ ] }) : null
21743
+ ] });
21615
21744
  };
21616
21745
 
21617
21746
  // src/components/SearchAndFilter/SearchAndFilter.tsx
@@ -21619,10 +21748,12 @@ import { jsx as jsx128, jsxs as jsxs87 } from "@emotion/react/jsx-runtime";
21619
21748
  var SearchAndFilter = ({
21620
21749
  filters,
21621
21750
  filterOptions,
21751
+ filterMode: filterMode3,
21622
21752
  sortOptions,
21623
21753
  defaultSortByValue,
21624
- filterControls = /* @__PURE__ */ jsx128(FilterControls, {}),
21754
+ filterControls,
21625
21755
  viewSwitchControls,
21756
+ resultsContainerView = /* @__PURE__ */ jsx128(SearchAndFilterResultContainer, {}),
21626
21757
  children = /* @__PURE__ */ jsx128(FilterModeView, {}),
21627
21758
  onChange,
21628
21759
  onSearchChange,
@@ -21634,6 +21765,7 @@ var SearchAndFilter = ({
21634
21765
  {
21635
21766
  filters,
21636
21767
  filterOptions,
21768
+ filterMode: filterMode3,
21637
21769
  defaultSortByValue,
21638
21770
  sortOptions,
21639
21771
  onChange,
@@ -21641,17 +21773,66 @@ var SearchAndFilter = ({
21641
21773
  onSortChange,
21642
21774
  totalResults,
21643
21775
  children: /* @__PURE__ */ jsxs87(VerticalRhythm, { css: SearchAndFilterContainer, "data-testid": "search-and-filter", children: [
21644
- /* @__PURE__ */ jsxs87("div", { css: SearchAndFilterOutterControlWrapper, children: [
21645
- /* @__PURE__ */ jsx128("div", { css: SearchAndFilterControlsWrapper, children: filterControls }),
21776
+ /* @__PURE__ */ jsxs87("div", { css: SearchAndFilterOutterControlWrapper(viewSwitchControls ? "1fr auto" : "1fr"), children: [
21777
+ /* @__PURE__ */ jsx128(
21778
+ "div",
21779
+ {
21780
+ css: SearchAndFilterControlsWrapper(
21781
+ viewSwitchControls ? "auto auto 1fr 0.5fr" : "auto auto 1fr"
21782
+ ),
21783
+ children: !filterControls ? /* @__PURE__ */ jsx128(FilterControls, { hideSearchInput: !onSearchChange, defaultSortByValue }) : filterControls
21784
+ }
21785
+ ),
21646
21786
  viewSwitchControls
21647
21787
  ] }),
21648
21788
  children,
21649
- /* @__PURE__ */ jsx128(SearchAndFilterResultContainer, {})
21789
+ resultsContainerView
21650
21790
  ] })
21651
21791
  }
21652
21792
  );
21653
21793
  };
21654
21794
 
21795
+ // src/components/SearchAndFilter/SearchOnlyFilter.tsx
21796
+ import { createContext as createContext7, useState as useState19 } from "react";
21797
+ import { useDebounce as useDebounce4 } from "react-use";
21798
+ import { jsx as jsx129 } from "@emotion/react/jsx-runtime";
21799
+ var SearchOnlyContext = createContext7({
21800
+ searchTerm: "",
21801
+ setSearchTerm: () => {
21802
+ }
21803
+ });
21804
+ var SearchOnlyFilter = ({ onSearchChange, maxWidth }) => {
21805
+ const { searchTerm, setSearchTerm } = useSearchAndFilter();
21806
+ const [localeSearchTerm, setLocaleSearchTerm] = useState19("");
21807
+ useDebounce4(
21808
+ () => {
21809
+ setSearchTerm(localeSearchTerm);
21810
+ onSearchChange == null ? void 0 : onSearchChange(localeSearchTerm);
21811
+ },
21812
+ 300,
21813
+ [localeSearchTerm]
21814
+ );
21815
+ return /* @__PURE__ */ jsx129(
21816
+ SearchOnlyContext.Provider,
21817
+ {
21818
+ value: {
21819
+ searchTerm,
21820
+ setSearchTerm: setLocaleSearchTerm
21821
+ },
21822
+ children: /* @__PURE__ */ jsx129("div", { css: { maxWidth: maxWidth != null ? maxWidth : "712px" }, children: /* @__PURE__ */ jsx129(
21823
+ InputKeywordSearch,
21824
+ {
21825
+ placeholder: "Search...",
21826
+ onSearchTextChanged: (e) => setLocaleSearchTerm(e),
21827
+ value: localeSearchTerm,
21828
+ compact: true,
21829
+ rounded: true
21830
+ }
21831
+ ) })
21832
+ }
21833
+ );
21834
+ };
21835
+
21655
21836
  // src/components/Skeleton/Skeleton.styles.ts
21656
21837
  import { css as css96, keyframes as keyframes5 } from "@emotion/react";
21657
21838
  var lightFadingOut = keyframes5`
@@ -21664,7 +21845,7 @@ var skeletonStyles = css96`
21664
21845
  `;
21665
21846
 
21666
21847
  // src/components/Skeleton/Skeleton.tsx
21667
- import { jsx as jsx129 } from "@emotion/react/jsx-runtime";
21848
+ import { jsx as jsx130 } from "@emotion/react/jsx-runtime";
21668
21849
  var Skeleton = ({
21669
21850
  width = "100%",
21670
21851
  height = "1.25rem",
@@ -21672,7 +21853,7 @@ var Skeleton = ({
21672
21853
  circle = false,
21673
21854
  children,
21674
21855
  ...otherProps
21675
- }) => /* @__PURE__ */ jsx129(
21856
+ }) => /* @__PURE__ */ jsx130(
21676
21857
  "div",
21677
21858
  {
21678
21859
  css: [
@@ -21779,19 +21960,19 @@ var SwitchText = css97`
21779
21960
  `;
21780
21961
 
21781
21962
  // src/components/Switch/Switch.tsx
21782
- import { Fragment as Fragment23, jsx as jsx130, jsxs as jsxs88 } from "@emotion/react/jsx-runtime";
21963
+ import { Fragment as Fragment22, jsx as jsx131, jsxs as jsxs88 } from "@emotion/react/jsx-runtime";
21783
21964
  var Switch = React26.forwardRef(
21784
21965
  ({ label, infoText, toggleText, children, ...inputProps }, ref) => {
21785
21966
  let additionalText = infoText;
21786
21967
  if (infoText && toggleText) {
21787
21968
  additionalText = inputProps.checked ? toggleText : infoText;
21788
21969
  }
21789
- return /* @__PURE__ */ jsxs88(Fragment23, { children: [
21970
+ return /* @__PURE__ */ jsxs88(Fragment22, { children: [
21790
21971
  /* @__PURE__ */ jsxs88("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
21791
- /* @__PURE__ */ jsx130("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
21792
- /* @__PURE__ */ jsx130("span", { css: SwitchInputLabel, children: label })
21972
+ /* @__PURE__ */ jsx131("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
21973
+ /* @__PURE__ */ jsx131("span", { css: SwitchInputLabel, children: label })
21793
21974
  ] }),
21794
- additionalText ? /* @__PURE__ */ jsx130("p", { css: SwitchText, children: additionalText }) : null,
21975
+ additionalText ? /* @__PURE__ */ jsx131("p", { css: SwitchText, children: additionalText }) : null,
21795
21976
  children
21796
21977
  ] });
21797
21978
  }
@@ -21828,40 +22009,40 @@ var tableCellHead = css98`
21828
22009
  `;
21829
22010
 
21830
22011
  // src/components/Table/Table.tsx
21831
- import { jsx as jsx131 } from "@emotion/react/jsx-runtime";
22012
+ import { jsx as jsx132 } from "@emotion/react/jsx-runtime";
21832
22013
  var Table = React27.forwardRef(
21833
22014
  ({ children, cellPadding, ...otherProps }, ref) => {
21834
- return /* @__PURE__ */ jsx131("table", { ref, css: table({ cellPadding }), ...otherProps, children });
22015
+ return /* @__PURE__ */ jsx132("table", { ref, css: table({ cellPadding }), ...otherProps, children });
21835
22016
  }
21836
22017
  );
21837
22018
  var TableHead = React27.forwardRef(
21838
22019
  ({ children, ...otherProps }, ref) => {
21839
- return /* @__PURE__ */ jsx131("thead", { ref, css: tableHead, ...otherProps, children });
22020
+ return /* @__PURE__ */ jsx132("thead", { ref, css: tableHead, ...otherProps, children });
21840
22021
  }
21841
22022
  );
21842
22023
  var TableBody = React27.forwardRef(
21843
22024
  ({ children, ...otherProps }, ref) => {
21844
- return /* @__PURE__ */ jsx131("tbody", { ref, ...otherProps, children });
22025
+ return /* @__PURE__ */ jsx132("tbody", { ref, ...otherProps, children });
21845
22026
  }
21846
22027
  );
21847
22028
  var TableFoot = React27.forwardRef(
21848
22029
  ({ children, ...otherProps }, ref) => {
21849
- return /* @__PURE__ */ jsx131("tfoot", { ref, ...otherProps, children });
22030
+ return /* @__PURE__ */ jsx132("tfoot", { ref, ...otherProps, children });
21850
22031
  }
21851
22032
  );
21852
22033
  var TableRow = React27.forwardRef(
21853
22034
  ({ children, ...otherProps }, ref) => {
21854
- return /* @__PURE__ */ jsx131("tr", { ref, css: tableRow, ...otherProps, children });
22035
+ return /* @__PURE__ */ jsx132("tr", { ref, css: tableRow, ...otherProps, children });
21855
22036
  }
21856
22037
  );
21857
22038
  var TableCellHead = React27.forwardRef(
21858
22039
  ({ children, ...otherProps }, ref) => {
21859
- return /* @__PURE__ */ jsx131("th", { ref, css: tableCellHead, ...otherProps, children });
22040
+ return /* @__PURE__ */ jsx132("th", { ref, css: tableCellHead, ...otherProps, children });
21860
22041
  }
21861
22042
  );
21862
22043
  var TableCellData = React27.forwardRef(
21863
22044
  ({ children, ...otherProps }, ref) => {
21864
- return /* @__PURE__ */ jsx131("td", { ref, ...otherProps, children });
22045
+ return /* @__PURE__ */ jsx132("td", { ref, ...otherProps, children });
21865
22046
  }
21866
22047
  );
21867
22048
 
@@ -21901,7 +22082,7 @@ var tabButtonGroupStyles = css99`
21901
22082
  `;
21902
22083
 
21903
22084
  // src/components/Tabs/Tabs.tsx
21904
- import { jsx as jsx132 } from "@emotion/react/jsx-runtime";
22085
+ import { jsx as jsx133 } from "@emotion/react/jsx-runtime";
21905
22086
  var useCurrentTab = () => {
21906
22087
  const context = useAriakitTabStore();
21907
22088
  if (!context) {
@@ -21939,23 +22120,23 @@ var Tabs = ({
21939
22120
  tab.setSelectedId(selected);
21940
22121
  }
21941
22122
  }, [selected, tab]);
21942
- return /* @__PURE__ */ jsx132(AriakitTabProvider, { store: tab, setSelectedId: onTabSelect, children });
22123
+ return /* @__PURE__ */ jsx133(AriakitTabProvider, { store: tab, setSelectedId: onTabSelect, children });
21943
22124
  };
21944
22125
  var TabButtonGroup = ({ children, ...props }) => {
21945
- return /* @__PURE__ */ jsx132(AriakitTabList, { ...props, css: tabButtonGroupStyles, children });
22126
+ return /* @__PURE__ */ jsx133(AriakitTabList, { ...props, css: tabButtonGroupStyles, children });
21946
22127
  };
21947
22128
  var TabButton = ({
21948
22129
  children,
21949
22130
  id,
21950
22131
  ...props
21951
22132
  }) => {
21952
- return /* @__PURE__ */ jsx132(AriakitTab, { type: "button", id, ...props, css: tabButtonStyles, children });
22133
+ return /* @__PURE__ */ jsx133(AriakitTab, { type: "button", id, ...props, css: tabButtonStyles, children });
21953
22134
  };
21954
22135
  var TabContent = ({
21955
22136
  children,
21956
22137
  ...props
21957
22138
  }) => {
21958
- return /* @__PURE__ */ jsx132(AriakitTabPanel, { ...props, children });
22139
+ return /* @__PURE__ */ jsx133(AriakitTabPanel, { ...props, children });
21959
22140
  };
21960
22141
 
21961
22142
  // src/components/Toast/Toast.tsx
@@ -22186,9 +22367,9 @@ var toastContainerStyles = css100`
22186
22367
  `;
22187
22368
 
22188
22369
  // src/components/Toast/Toast.tsx
22189
- import { jsx as jsx133 } from "@emotion/react/jsx-runtime";
22370
+ import { jsx as jsx134 } from "@emotion/react/jsx-runtime";
22190
22371
  var ToastContainer = ({ limit = 4 }) => {
22191
- return /* @__PURE__ */ jsx133(
22372
+ return /* @__PURE__ */ jsx134(
22192
22373
  ToastifyContainer,
22193
22374
  {
22194
22375
  css: toastContainerStyles,
@@ -22333,6 +22514,8 @@ export {
22333
22514
  SearchAndFilterOptionsContainer2 as SearchAndFilterOptionsContainer,
22334
22515
  SearchAndFilterProvider,
22335
22516
  SearchAndFilterResultContainer,
22517
+ SearchOnlyContext,
22518
+ SearchOnlyFilter,
22336
22519
  SegmentedControl,
22337
22520
  ShortcutContext,
22338
22521
  ShortcutRevealer,
@@ -22362,6 +22545,7 @@ export {
22362
22545
  ToastContainer,
22363
22546
  Tooltip,
22364
22547
  TwoColumnLayout,
22548
+ USER_OPERATORS,
22365
22549
  UniformBadge,
22366
22550
  UniformLogo,
22367
22551
  UniformLogoLarge,