@uniformdev/design-system 19.121.0 → 19.123.1-alpha.9

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
@@ -17561,6 +17561,16 @@ var toggleInput2 = css79`
17561
17561
  color: var(--white);
17562
17562
  }
17563
17563
 
17564
+ &:indeterminate,
17565
+ &:indeterminate:hover,
17566
+ &:indeterminate:focus {
17567
+ background: var(--accent-dark-active)
17568
+ url('data:image/svg+xml;base64,PHN2ZwogIHdpZHRoPSIxNiIKICBoZWlnaHQ9IjE2IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKPgogIDxwYXRoCiAgICBkPSJNNCAxMkM0IDExLjQ0NzcgNC40NDc3MiAxMSA1IDExSDE5QzE5LjU1MjMgMTEgMjAgMTEuNDQ3NyAyMCAxMkMyMCAxMi41NTIzIDE5LjU1MjMgMTMgMTkgMTNINUM0LjQ0NzcyIDEzIDQgMTIuNTUyMyA0IDEyWiIKICAgIGZpbGw9IndoaXRlIgogIC8+Cjwvc3ZnPg==')
17569
+ no-repeat center center;
17570
+ border-color: var(--accent-dark-active);
17571
+ color: var(--white);
17572
+ }
17573
+
17564
17574
  &:hover {
17565
17575
  border-color: var(--accent-dark-hover);
17566
17576
  }
@@ -20272,6 +20282,60 @@ var TEXTBOX_OPERATORS = [
20272
20282
  editorType: "empty"
20273
20283
  }
20274
20284
  ];
20285
+ var USER_OPERATORS = [
20286
+ {
20287
+ label: "is...",
20288
+ value: "eq",
20289
+ editorType: "text"
20290
+ },
20291
+ {
20292
+ label: "contains...",
20293
+ value: "match",
20294
+ editorType: "text"
20295
+ },
20296
+ {
20297
+ label: "is not...",
20298
+ value: "neq",
20299
+ editorType: "text"
20300
+ }
20301
+ ];
20302
+ var SYSTEM_DATE_OPERATORS = [
20303
+ {
20304
+ label: "is...",
20305
+ value: "eq",
20306
+ editorType: "date"
20307
+ },
20308
+ {
20309
+ label: "is between...",
20310
+ value: "between",
20311
+ editorType: "dateRange"
20312
+ },
20313
+ {
20314
+ label: "is before...",
20315
+ value: "lt",
20316
+ editorType: "date"
20317
+ },
20318
+ {
20319
+ label: "is after...",
20320
+ value: "gt",
20321
+ editorType: "date"
20322
+ },
20323
+ {
20324
+ label: "is on or before...",
20325
+ value: "lte",
20326
+ editorType: "date"
20327
+ },
20328
+ {
20329
+ label: "is on or after...",
20330
+ value: "gte",
20331
+ editorType: "date"
20332
+ },
20333
+ {
20334
+ label: "is not...",
20335
+ value: "neq",
20336
+ editorType: "date"
20337
+ }
20338
+ ];
20275
20339
  var RICHTEXT_OPERATORS = [
20276
20340
  {
20277
20341
  label: "is empty...",
@@ -20413,6 +20477,12 @@ var FilterButton = css92`
20413
20477
  opacity: var(--opacity-50);
20414
20478
  }
20415
20479
  `;
20480
+ var FilterButtonText = css92`
20481
+ overflow: hidden;
20482
+ text-overflow: ellipsis;
20483
+ white-space: nowrap;
20484
+ max-width: 14ch;
20485
+ `;
20416
20486
  var FilterButtonSelected = css92`
20417
20487
  background: var(--gray-100);
20418
20488
  border-color: var(--gray-300);
@@ -20537,7 +20607,7 @@ var FilterButton2 = ({
20537
20607
  "data-testid": "filters-button",
20538
20608
  children: [
20539
20609
  /* @__PURE__ */ jsx117(Icon, { icon, iconColor: "currentColor", size: "1rem" }),
20540
- text,
20610
+ /* @__PURE__ */ jsx117("span", { css: FilterButtonText, children: text }),
20541
20611
  filterCount ? /* @__PURE__ */ jsx117(Counter, { count: filterCount, bgColor: "var(--white)" }) : null
20542
20612
  ]
20543
20613
  }
@@ -20682,9 +20752,19 @@ var useSearchAndFilter = () => {
20682
20752
  import { Fragment as Fragment19, jsx as jsx119, jsxs as jsxs80 } from "@emotion/react/jsx-runtime";
20683
20753
  var FilterControls = ({
20684
20754
  children,
20755
+ defaultSortByValue,
20685
20756
  hideSearchInput
20686
20757
  }) => {
20687
- const { setFilterVisibility, filterVisibility, setSearchTerm, validFilterQuery, searchTerm, sortByValue } = useSearchAndFilter();
20758
+ var _a, _b, _c;
20759
+ const {
20760
+ setFilterVisibility,
20761
+ filterVisibility,
20762
+ setSearchTerm,
20763
+ validFilterQuery,
20764
+ searchTerm,
20765
+ sortByValue,
20766
+ filterOptions
20767
+ } = useSearchAndFilter();
20688
20768
  const [localeSearchTerm, setLocaleSearchTerm] = useState17("");
20689
20769
  useDebounce2(
20690
20770
  () => {
@@ -20704,9 +20784,12 @@ var FilterControls = ({
20704
20784
  }
20705
20785
  return setFilterVisibility(mode);
20706
20786
  };
20707
- const sortByValues = sortByValue ? sortByValue == null ? void 0 : sortByValue.split("_") : "Sort";
20708
- const sortByValueLabel = Array.isArray(sortByValues) ? sortByValue == null ? void 0 : sortByValue.split("_")[0] : "Sort";
20709
- const sortByIcon = Array.isArray(sortByValues) ? sortByValues[1] === "ASC" ? "arrow-up" : "arrow-down" : "sort-az";
20787
+ const sortValue = (sortByValue != null ? sortByValue : defaultSortByValue).split("_");
20788
+ const sortDirection = sortValue == null ? void 0 : sortValue.pop();
20789
+ const sortField = sortValue == null ? void 0 : sortValue.join("_");
20790
+ const sortOn = sortField.startsWith("fields.") ? "contentTypeFields" : "metadata";
20791
+ 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;
20792
+ const sortByIcon = sortDirection === "ASC" ? "arrow-up" : "arrow-down";
20710
20793
  return /* @__PURE__ */ jsxs80(Fragment19, { children: [
20711
20794
  /* @__PURE__ */ jsx119(
20712
20795
  FilterButton2,
@@ -20867,7 +20950,7 @@ var StatusBullet = ({
20867
20950
  };
20868
20951
 
20869
20952
  // src/components/SearchAndFilter/FilterEditor.tsx
20870
- import { jsx as jsx121, jsxs as jsxs81 } from "@emotion/react/jsx-runtime";
20953
+ import { Fragment as Fragment20, jsx as jsx121, jsxs as jsxs81 } from "@emotion/react/jsx-runtime";
20871
20954
  var readOnlyAttributes = {
20872
20955
  isSearchable: false,
20873
20956
  menuIsOpen: false,
@@ -20878,10 +20961,11 @@ var FilterMultiChoiceEditor = ({
20878
20961
  options,
20879
20962
  isDisabled,
20880
20963
  readOnly,
20964
+ valueTestId,
20881
20965
  ...props
20882
20966
  }) => {
20883
20967
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
20884
- return /* @__PURE__ */ jsx121(
20968
+ return /* @__PURE__ */ jsx121("div", { "data-testid": valueTestId, children: /* @__PURE__ */ jsx121(
20885
20969
  InputComboBox,
20886
20970
  {
20887
20971
  ...props,
@@ -20898,17 +20982,18 @@ var FilterMultiChoiceEditor = ({
20898
20982
  "aria-readonly": readOnly,
20899
20983
  ...readOnlyProps
20900
20984
  }
20901
- );
20985
+ ) });
20902
20986
  };
20903
20987
  var FilterSingleChoiceEditor = ({
20904
20988
  options,
20905
20989
  value,
20906
20990
  isDisabled,
20907
20991
  readOnly,
20908
- onChange
20992
+ onChange,
20993
+ valueTestId
20909
20994
  }) => {
20910
20995
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
20911
- return /* @__PURE__ */ jsx121(
20996
+ return /* @__PURE__ */ jsx121("div", { "data-testid": valueTestId, children: /* @__PURE__ */ jsx121(
20912
20997
  InputComboBox,
20913
20998
  {
20914
20999
  placeholder: "Type to search...",
@@ -20923,7 +21008,7 @@ var FilterSingleChoiceEditor = ({
20923
21008
  "aria-readonly": readOnly,
20924
21009
  ...readOnlyProps
20925
21010
  }
20926
- );
21011
+ ) });
20927
21012
  };
20928
21013
  var CustomOptions = ({ label, value }) => {
20929
21014
  return /* @__PURE__ */ jsx121(StatusBullet, { status: label, message: value });
@@ -20933,10 +21018,11 @@ var StatusMultiEditor = ({
20933
21018
  value,
20934
21019
  isDisabled,
20935
21020
  readOnly,
20936
- onChange
21021
+ onChange,
21022
+ valueTestId
20937
21023
  }) => {
20938
21024
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
20939
- return /* @__PURE__ */ jsx121(
21025
+ return /* @__PURE__ */ jsx121("div", { "data-testid": valueTestId, children: /* @__PURE__ */ jsx121(
20940
21026
  InputComboBox,
20941
21027
  {
20942
21028
  options,
@@ -20950,17 +21036,18 @@ var StatusMultiEditor = ({
20950
21036
  isDisabled,
20951
21037
  ...readOnlyProps
20952
21038
  }
20953
- );
21039
+ ) });
20954
21040
  };
20955
21041
  var StatusSingleEditor = ({
20956
21042
  options,
20957
21043
  value,
20958
21044
  isDisabled,
20959
21045
  readOnly,
20960
- onChange
21046
+ onChange,
21047
+ valueTestId
20961
21048
  }) => {
20962
21049
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
20963
- return /* @__PURE__ */ jsx121(
21050
+ return /* @__PURE__ */ jsx121("div", { "data-testid": valueTestId, children: /* @__PURE__ */ jsx121(
20964
21051
  InputComboBox,
20965
21052
  {
20966
21053
  options,
@@ -20973,9 +21060,9 @@ var StatusSingleEditor = ({
20973
21060
  isDisabled,
20974
21061
  ...readOnlyProps
20975
21062
  }
20976
- );
21063
+ ) });
20977
21064
  };
20978
- var TextEditor = ({ onChange, ariaLabel, value, readOnly }) => {
21065
+ var TextEditor = ({ onChange, ariaLabel, value, readOnly, valueTestId }) => {
20979
21066
  useDebounce3(() => onChange, 500, [value]);
20980
21067
  return /* @__PURE__ */ jsx121(
20981
21068
  Input,
@@ -20985,11 +21072,19 @@ var TextEditor = ({ onChange, ariaLabel, value, readOnly }) => {
20985
21072
  onChange: (e) => onChange(e.currentTarget.value),
20986
21073
  placeholder: "Enter phrase to search\u2026",
20987
21074
  value,
20988
- readOnly
21075
+ readOnly,
21076
+ "data-testid": valueTestId
20989
21077
  }
20990
21078
  );
20991
21079
  };
20992
- var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value, readOnly }) => {
21080
+ var NumberRangeEditor = ({
21081
+ onChange,
21082
+ disabled: disabled2,
21083
+ ariaLabel,
21084
+ value,
21085
+ readOnly,
21086
+ valueTestId
21087
+ }) => {
20993
21088
  const [minValue, setMinValue] = useState18("");
20994
21089
  const [maxValue, setMaxValue] = useState18("");
20995
21090
  const [error, setError] = useState18("");
@@ -21012,41 +21107,50 @@ var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value, read
21012
21107
  setError("");
21013
21108
  onChange([minValue, maxValue]);
21014
21109
  }, [maxValue, minValue, setError]);
21015
- return /* @__PURE__ */ jsxs81("div", { css: twoColumnGrid, children: [
21016
- /* @__PURE__ */ jsx121(
21017
- Input,
21018
- {
21019
- label: `${ariaLabel}-min`,
21020
- type: "number",
21021
- showLabel: false,
21022
- min: 0,
21023
- placeholder: "Low",
21024
- onChange: (e) => setMinValue(e.currentTarget.value),
21025
- "aria-invalid": !error ? false : true,
21026
- disabled: disabled2,
21027
- value: value ? value[0] : "",
21028
- readOnly
21029
- }
21030
- ),
21031
- /* @__PURE__ */ jsx121(
21032
- Input,
21033
- {
21034
- type: "number",
21035
- label: `${ariaLabel}-max`,
21036
- showLabel: false,
21037
- min: 0,
21038
- placeholder: "High",
21039
- onChange: (e) => setMaxValue(e.currentTarget.value),
21040
- "aria-invalid": !error ? false : true,
21041
- disabled: disabled2,
21042
- value: value ? value[1] : "",
21043
- readOnly
21044
- }
21045
- ),
21110
+ return /* @__PURE__ */ jsxs81(Fragment20, { children: [
21111
+ /* @__PURE__ */ jsxs81("div", { css: twoColumnGrid, "data-testid": valueTestId, children: [
21112
+ /* @__PURE__ */ jsx121(
21113
+ Input,
21114
+ {
21115
+ label: `${ariaLabel}-min`,
21116
+ type: "number",
21117
+ showLabel: false,
21118
+ min: 0,
21119
+ placeholder: "Low",
21120
+ onChange: (e) => setMinValue(e.currentTarget.value),
21121
+ "aria-invalid": !error ? false : true,
21122
+ disabled: disabled2,
21123
+ value: value ? value[0] : "",
21124
+ readOnly
21125
+ }
21126
+ ),
21127
+ /* @__PURE__ */ jsx121(
21128
+ Input,
21129
+ {
21130
+ type: "number",
21131
+ label: `${ariaLabel}-max`,
21132
+ showLabel: false,
21133
+ min: 0,
21134
+ placeholder: "High",
21135
+ onChange: (e) => setMaxValue(e.currentTarget.value),
21136
+ "aria-invalid": !error ? false : true,
21137
+ disabled: disabled2,
21138
+ value: value ? value[1] : "",
21139
+ readOnly
21140
+ }
21141
+ )
21142
+ ] }),
21046
21143
  /* @__PURE__ */ jsx121(ErrorContainer, { errorMessage: error })
21047
21144
  ] });
21048
21145
  };
21049
- var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly }) => {
21146
+ var NumberEditor = ({
21147
+ ariaLabel,
21148
+ onChange,
21149
+ disabled: disabled2,
21150
+ value,
21151
+ readOnly,
21152
+ valueTestId
21153
+ }) => {
21050
21154
  return /* @__PURE__ */ jsx121(
21051
21155
  Input,
21052
21156
  {
@@ -21057,11 +21161,19 @@ var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly
21057
21161
  onChange: (e) => onChange(e.currentTarget.value),
21058
21162
  disabled: disabled2,
21059
21163
  value,
21060
- readOnly
21164
+ readOnly,
21165
+ "data-testid": valueTestId
21061
21166
  }
21062
21167
  );
21063
21168
  };
21064
- var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value, readOnly }) => {
21169
+ var DateEditor = ({
21170
+ onChange,
21171
+ ariaLabel,
21172
+ disabled: disabled2,
21173
+ value,
21174
+ readOnly,
21175
+ valueTestId
21176
+ }) => {
21065
21177
  return /* @__PURE__ */ jsx121(
21066
21178
  Input,
21067
21179
  {
@@ -21071,11 +21183,19 @@ var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value, readOnly })
21071
21183
  onChange: (e) => onChange(e.currentTarget.value),
21072
21184
  disabled: disabled2,
21073
21185
  value,
21074
- readOnly
21186
+ readOnly,
21187
+ "data-testid": valueTestId
21075
21188
  }
21076
21189
  );
21077
21190
  };
21078
- var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly }) => {
21191
+ var DateRangeEditor = ({
21192
+ ariaLabel,
21193
+ onChange,
21194
+ disabled: disabled2,
21195
+ value,
21196
+ readOnly,
21197
+ valueTestId
21198
+ }) => {
21079
21199
  const [minDateValue, setMinDateValue] = useState18(value ? value[0] : "");
21080
21200
  const [maxDateValue, setMaxDateValue] = useState18(value ? value[1] : "");
21081
21201
  const [error, setError] = useState18("");
@@ -21110,33 +21230,35 @@ var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOn
21110
21230
  setError("");
21111
21231
  onChange([minDateValue, maxDateValue]);
21112
21232
  }, [minDateValue, maxDateValue, setError]);
21113
- return /* @__PURE__ */ jsxs81("div", { css: twoColumnGrid, children: [
21114
- /* @__PURE__ */ jsx121(
21115
- Input,
21116
- {
21117
- label: `${ariaLabel}-min-date`,
21118
- type: "date",
21119
- showLabel: false,
21120
- value: minDateValue,
21121
- onChange: (e) => setMinDateValue(e.currentTarget.value),
21122
- "aria-invalid": !error ? false : true,
21123
- disabled: disabled2,
21124
- readOnly
21125
- }
21126
- ),
21127
- /* @__PURE__ */ jsx121(
21128
- Input,
21129
- {
21130
- label: `${ariaLabel}-max-date`,
21131
- type: "date",
21132
- showLabel: false,
21133
- value: maxDateValue,
21134
- onChange: (e) => setMaxDateValue(e.currentTarget.value),
21135
- "aria-invalid": !error ? false : true,
21136
- disabled: disabled2,
21137
- readOnly
21138
- }
21139
- ),
21233
+ return /* @__PURE__ */ jsxs81(Fragment20, { children: [
21234
+ /* @__PURE__ */ jsxs81("div", { css: twoColumnGrid, "data-testid": valueTestId, children: [
21235
+ /* @__PURE__ */ jsx121(
21236
+ Input,
21237
+ {
21238
+ label: `${ariaLabel}-min-date`,
21239
+ type: "date",
21240
+ showLabel: false,
21241
+ value: minDateValue,
21242
+ onChange: (e) => setMinDateValue(e.currentTarget.value),
21243
+ "aria-invalid": !error ? false : true,
21244
+ disabled: disabled2,
21245
+ readOnly
21246
+ }
21247
+ ),
21248
+ /* @__PURE__ */ jsx121(
21249
+ Input,
21250
+ {
21251
+ label: `${ariaLabel}-max-date`,
21252
+ type: "date",
21253
+ showLabel: false,
21254
+ value: maxDateValue,
21255
+ onChange: (e) => setMaxDateValue(e.currentTarget.value),
21256
+ "aria-invalid": !error ? false : true,
21257
+ disabled: disabled2,
21258
+ readOnly
21259
+ }
21260
+ )
21261
+ ] }),
21140
21262
  /* @__PURE__ */ jsx121(ErrorContainer, { errorMessage: error })
21141
21263
  ] });
21142
21264
  };
@@ -21227,7 +21349,7 @@ var FilterMenu = ({ id, filterTitle = "Show records", menuControls, children })
21227
21349
  };
21228
21350
 
21229
21351
  // src/components/SearchAndFilter/FilterItem.tsx
21230
- import { Fragment as Fragment20, jsx as jsx123, jsxs as jsxs83 } from "@emotion/react/jsx-runtime";
21352
+ import { Fragment as Fragment21, jsx as jsx123, jsxs as jsxs83 } from "@emotion/react/jsx-runtime";
21231
21353
  var FilterItem = ({
21232
21354
  index,
21233
21355
  paramOptions,
@@ -21275,7 +21397,7 @@ var FilterItem = ({
21275
21397
  menuIsOpen: false,
21276
21398
  isClearable: false
21277
21399
  } : {};
21278
- return /* @__PURE__ */ jsxs83("div", { css: ConditionalFilterRow, children: [
21400
+ return /* @__PURE__ */ jsxs83("div", { css: ConditionalFilterRow, "data-testid": "filter-item", children: [
21279
21401
  /* @__PURE__ */ jsx123("span", { children: index === 0 ? "where" : "and" }),
21280
21402
  /* @__PURE__ */ jsxs83("div", { css: ConditionalInputRow, children: [
21281
21403
  /* @__PURE__ */ jsx123(
@@ -21288,7 +21410,8 @@ var FilterItem = ({
21288
21410
  onParamChange((_a2 = e == null ? void 0 : e.value) != null ? _a2 : "");
21289
21411
  },
21290
21412
  value: selectedFieldValue,
21291
- ...readOnlyProps
21413
+ ...readOnlyProps,
21414
+ id: "filter-field"
21292
21415
  }
21293
21416
  ),
21294
21417
  /* @__PURE__ */ jsx123(
@@ -21302,7 +21425,8 @@ var FilterItem = ({
21302
21425
  },
21303
21426
  isDisabled: !filters[index].field,
21304
21427
  value: selectedOperatorValue,
21305
- ...readOnlyProps
21428
+ ...readOnlyProps,
21429
+ id: "filter-operator"
21306
21430
  }
21307
21431
  ),
21308
21432
  /* @__PURE__ */ jsx123(
@@ -21314,7 +21438,8 @@ var FilterItem = ({
21314
21438
  onChange: (e) => onValueChange(e != null ? e : ""),
21315
21439
  readOnly,
21316
21440
  isDisabled: !filters[index].operator,
21317
- value: selectedMetaValue
21441
+ value: selectedMetaValue,
21442
+ valueTestId: "filter-value"
21318
21443
  }
21319
21444
  ),
21320
21445
  /* @__PURE__ */ jsx123(
@@ -21324,6 +21449,7 @@ var FilterItem = ({
21324
21449
  onClick: () => handleDeleteFilter(index),
21325
21450
  "aria-label": "delete filter",
21326
21451
  css: IconBtn,
21452
+ "data-testid": "delete-filter",
21327
21453
  children: /* @__PURE__ */ jsx123(Icon, { icon: "trash", iconColor: "red", size: "1rem" })
21328
21454
  }
21329
21455
  )
@@ -21357,11 +21483,20 @@ var FilterItems = ({
21357
21483
  FilterMenu,
21358
21484
  {
21359
21485
  id: "search-and-filter-options",
21360
- menuControls: /* @__PURE__ */ jsxs83(Fragment20, { children: [
21361
- /* @__PURE__ */ jsxs83("button", { type: "button", css: AddConditionalBtn, onClick: handleAddFilter, children: [
21362
- /* @__PURE__ */ jsx123(Icon, { icon: "math-plus", iconColor: "currentColor", size: "1rem" }),
21363
- addButtonText
21364
- ] }),
21486
+ menuControls: /* @__PURE__ */ jsxs83(Fragment21, { children: [
21487
+ /* @__PURE__ */ jsxs83(
21488
+ "button",
21489
+ {
21490
+ type: "button",
21491
+ css: AddConditionalBtn,
21492
+ onClick: handleAddFilter,
21493
+ "data-testid": "add-filter",
21494
+ children: [
21495
+ /* @__PURE__ */ jsx123(Icon, { icon: "math-plus", iconColor: "currentColor", size: "1rem" }),
21496
+ addButtonText
21497
+ ]
21498
+ }
21499
+ ),
21365
21500
  (filters == null ? void 0 : filters.length) ? /* @__PURE__ */ jsx123(
21366
21501
  "button",
21367
21502
  {
@@ -21371,6 +21506,7 @@ var FilterItems = ({
21371
21506
  handleResetFilters();
21372
21507
  setFilterVisibility(void 0);
21373
21508
  },
21509
+ "data-testid": "reset-filters",
21374
21510
  children: resetButtonText
21375
21511
  }
21376
21512
  ) : null
@@ -21657,7 +21793,7 @@ var FilterModeView = () => {
21657
21793
  };
21658
21794
 
21659
21795
  // src/components/SearchAndFilter/SearchAndFilterResultContainer.tsx
21660
- import { Fragment as Fragment21, jsx as jsx127, jsxs as jsxs86 } from "@emotion/react/jsx-runtime";
21796
+ import { Fragment as Fragment22, jsx as jsx127, jsxs as jsxs86 } from "@emotion/react/jsx-runtime";
21661
21797
  var SearchAndFilterResultContainer = ({
21662
21798
  buttonText,
21663
21799
  clearButtonLabel = "clear",
@@ -21691,7 +21827,7 @@ var SearchAndFilterResultContainer = ({
21691
21827
  if (totalResults && totalResults > 0) {
21692
21828
  return null;
21693
21829
  }
21694
- return /* @__PURE__ */ jsxs86(Fragment21, { children: [
21830
+ return /* @__PURE__ */ jsxs86(Fragment22, { children: [
21695
21831
  /* @__PURE__ */ jsxs86(HorizontalRhythm, { children: [
21696
21832
  /* @__PURE__ */ jsxs86("span", { children: [
21697
21833
  totalResults,
@@ -21744,7 +21880,7 @@ var SearchAndFilter = ({
21744
21880
  css: SearchAndFilterControlsWrapper(
21745
21881
  viewSwitchControls ? "auto auto 1fr 0.5fr" : "auto auto 1fr"
21746
21882
  ),
21747
- children: !filterControls ? /* @__PURE__ */ jsx128(FilterControls, { hideSearchInput: !onSearchChange }) : filterControls
21883
+ children: !filterControls ? /* @__PURE__ */ jsx128(FilterControls, { hideSearchInput: !onSearchChange, defaultSortByValue }) : filterControls
21748
21884
  }
21749
21885
  ),
21750
21886
  viewSwitchControls
@@ -21924,14 +22060,14 @@ var SwitchText = css97`
21924
22060
  `;
21925
22061
 
21926
22062
  // src/components/Switch/Switch.tsx
21927
- import { Fragment as Fragment22, jsx as jsx131, jsxs as jsxs88 } from "@emotion/react/jsx-runtime";
22063
+ import { Fragment as Fragment23, jsx as jsx131, jsxs as jsxs88 } from "@emotion/react/jsx-runtime";
21928
22064
  var Switch = React26.forwardRef(
21929
22065
  ({ label, infoText, toggleText, children, ...inputProps }, ref) => {
21930
22066
  let additionalText = infoText;
21931
22067
  if (infoText && toggleText) {
21932
22068
  additionalText = inputProps.checked ? toggleText : infoText;
21933
22069
  }
21934
- return /* @__PURE__ */ jsxs88(Fragment22, { children: [
22070
+ return /* @__PURE__ */ jsxs88(Fragment23, { children: [
21935
22071
  /* @__PURE__ */ jsxs88("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
21936
22072
  /* @__PURE__ */ jsx131("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
21937
22073
  /* @__PURE__ */ jsx131("span", { css: SwitchInputLabel, children: label })
@@ -22469,6 +22605,7 @@ export {
22469
22605
  RICHTEXT_OPERATORS,
22470
22606
  ResolveIcon,
22471
22607
  RichTextToolbarIcon,
22608
+ SYSTEM_DATE_OPERATORS,
22472
22609
  SYSTEM_FIELD_OPERATORS,
22473
22610
  ScrollableList,
22474
22611
  ScrollableListInputItem,
@@ -22509,6 +22646,7 @@ export {
22509
22646
  ToastContainer,
22510
22647
  Tooltip,
22511
22648
  TwoColumnLayout,
22649
+ USER_OPERATORS,
22512
22650
  UniformBadge,
22513
22651
  UniformLogo,
22514
22652
  UniformLogoLarge,
package/dist/index.d.mts CHANGED
@@ -23052,6 +23052,10 @@ declare const NUMBER_OPERATORS: OperatorType;
23052
23052
  declare const DATE_OPERATORS: OperatorType;
23053
23053
  /** @deprecated beta - uniform textbox operators */
23054
23054
  declare const TEXTBOX_OPERATORS: OperatorType;
23055
+ /** @deprecated beta - uniform user operators */
23056
+ declare const USER_OPERATORS: OperatorType;
23057
+ /** @deprecated beta - uniform system date operators */
23058
+ declare const SYSTEM_DATE_OPERATORS: OperatorType;
23055
23059
  /** @deprecated beta - uniform rich text operators */
23056
23060
  declare const RICHTEXT_OPERATORS: OperatorType;
23057
23061
  /** @deprecated beta - uniform checkbox operators */
@@ -23084,11 +23088,13 @@ declare const FilterButton: ({ text, icon, filterCount, hasSelectedValue, ...pro
23084
23088
  * @deprecated beta - Default filter controls for search and filter
23085
23089
  * @example <FilterControls />
23086
23090
  */
23087
- declare const FilterControls: ({ children, hideSearchInput, }: {
23091
+ declare const FilterControls: ({ children, defaultSortByValue, hideSearchInput, }: {
23088
23092
  /** optional param to allow you to add your own controls */
23089
23093
  children?: ReactNode;
23090
23094
  /** optional param to hide the search input */
23091
23095
  hideSearchInput?: boolean | undefined;
23096
+ /** The default sort by value */
23097
+ defaultSortByValue: string;
23092
23098
  }) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
23093
23099
 
23094
23100
  type FilterRowProps = {
@@ -23774,4 +23780,4 @@ type StatusBulletProps = React$1.HTMLAttributes<HTMLSpanElement> & {
23774
23780
  };
23775
23781
  declare const StatusBullet: ({ status, hideText, size, message, ...props }: StatusBulletProps) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
23776
23782
 
23777
- export { type ActionButtonsProps, AddButton, type AddButtonProps, AddListButton, type AddListButtonProps, type AddListButtonThemeProps, AnimationFile, type AnimationFileProps, type ArrowPositionProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, type BadgeSizeProps, type BadgeThemeProps, type BadgeThemeStyleProps, Banner, type BannerProps, type BannerType, type BoxHeightProps, type BreakpointSize, type BreakpointsMap, Button, type ButtonProps, type ButtonSizeProps$1 as ButtonSizeProps, type ButtonThemeProps$1 as ButtonThemeProps, ButtonWithMenu, type ButtonWithMenuProps, CHECKBOX_OPERATORS, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutType, Caption, type CaptionProps, Card, CardContainer, type CardContainerBgColorProps, type CardContainerProps, type CardProps, CardTitle, type CardTitleProps, CheckboxWithInfo, type CheckboxWithInforProps, type ChildFunction, Chip, type ChipProps, type ChipTheme, type ComboBoxGroupBase, ConnectToDataElementButton, type ConnectToDataElementButtonProps, Container, type ContainerProps, Counter, type CounterProps, CreateTeamIntegrationTile, type CreateTeamIntegrationTileProps, CurrentDrawerContext, DATE_OPERATORS, DashedBox, type DashedBoxProps, DateTimePicker, type DateTimePickerProps, type DateTimePickerValue, DateTimePickerVariant, DebouncedInputKeywordSearch, type DebouncedInputKeywordSearchProps, DescriptionList, type DescriptionListProps, Details, type DetailsProps, DismissibleChipAction, Drawer, DrawerContent, type DrawerContentProps, type DrawerContextValue, type DrawerItem, type DrawerProps, DrawerProvider, DrawerRenderer, type DrawerRendererItemProps, type DrawerRendererProps, type DrawersRegistryRecord, EditTeamIntegrationTile, type EditTeamIntegrationTileProps, ErrorMessage, type ErrorMessageProps, Fieldset, type FieldsetProps, type Filter, FilterButton, type FilterButtonProps, FilterControls, type FilterEditor, FilterItem, FilterItems, type FilterItemsProps, FilterMenu, type FilterOption, type FilterRowProps, type FiltersProps, Heading, type HeadingProps, HexModalBackground, HorizontalRhythm, Icon, IconButton, type IconButtonProps, type IconColor, type IconName, type IconProps, type IconType, IconsProvider, Image, ImageBroken, type ImageProps, InfoMessage, type InfoMessageProps, InlineAlert, type InlineAlertProps, Input, InputComboBox, type InputComboBoxOption, type InputComboBoxProps, InputInlineSelect, type InputInlineSelectOption, type InputInlineSelectProps, InputKeywordSearch, type InputKeywordSearchProps, type InputOption, type InputProps, InputSelect, type InputSelectProps, InputTime, type InputTimeProps, InputToggle, type InputToggleProps, IntegrationComingSoon, type IntegrationComingSoonProps, IntegrationHeaderSection, type IntegrationHeaderSectionProps, IntegrationLoadingTile, type IntegrationLoadingTileProps, IntegrationModalHeader, type IntegrationModalHeaderProps, IntegrationModalIcon, type IntegrationModalIconProps, IntegrationTile, type IntegrationTileProps, type IsoDateString, type IsoDateTimeString, type IsoTimeString, JsonEditor, type JsonEditorProps, Label, LabelLeadingIcon, type LabelProps, Legend, type LegendProps, type LevelProps, LimitsBar, type LimitsBarProps, Link, type LinkColorProps, LinkList, type LinkListProps, type LinkManagerWithRefType, LinkNode, type LinkProps, LinkWithRef, LoadingCardSkeleton, LoadingIcon, type LoadingIconProps, LoadingIndicator, LoadingOverlay, type LoadingOverlayProps, MediaCard, type MediaCardProps, Menu, MenuGroup, type MenuGroupProps, MenuItem, MenuItemInner, type MenuItemProps, MenuItemSeparator, type MenuItemTextThemeProps, type MenuProps, Modal, type ModalProps, MultilineChip, type MultilineChipProps, NUMBER_OPERATORS, type Operator, type OperatorType, type OperatorValue, type OperatorValueType, PageHeaderSection, type PageHeaderSectionProps, Pagination, Paragraph, type ParagraphProps, type ParameterDataConnectButtonProps, ParameterDataResource, ParameterDrawerHeader, type ParameterDrawerHeaderProps, ParameterGroup, type ParameterGroupProps, ParameterImage, ParameterImageInner, ParameterImagePreview, type ParameterImageProps, ParameterInput, ParameterInputInner, type ParameterInputProps, ParameterLabel, type ParameterLabelProps, ParameterLink, ParameterLinkInner, type ParameterLinkProps, ParameterMenuButton, type ParameterMenuButtonProps, ParameterNameAndPublicIdInput, type ParameterNameAndPublicIdInputProps, ParameterOverrideMarker, ParameterRichText, ParameterRichTextInner, type ParameterRichTextInnerProps, type ParameterRichTextProps, ParameterSelect, ParameterSelectInner, type ParameterSelectProps, ParameterShell, ParameterShellContext, ParameterShellPlaceholder, type ParameterShellProps, ParameterTextarea, ParameterTextareaInner, type ParameterTextareaProps, ParameterToggle, ParameterToggleInner, type ParameterToggleProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, ProgressList, ProgressListItem, type ProgressListItemProps, type ProgressListProps, RICHTEXT_OPERATORS, type RegisterDrawerProps, ResolveIcon, type ResolveIconProps, type RhythmProps, type RichTextParamValue, RichTextToolbarIcon, SYSTEM_FIELD_OPERATORS, type ScrollableItemProps, ScrollableList, type ScrollableListContainerProps, ScrollableListInputItem, ScrollableListItem, type ScrollableListItemProps, type ScrollableListProps, SearchAndFilter, SearchAndFilterContext, type SearchAndFilterContextProps, SearchAndFilterOptionsContainer, type SearchAndFilterOptionsContainerProps, type SearchAndFilterProps, SearchAndFilterProvider, type SearchAndFilterProviderProps, SearchAndFilterResultContainer, type SearchAndFilterResultContainerProps, SearchOnlyContext, SearchOnlyFilter, type SearchOnlyProviderProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, type SerializedLinkNode, ShortcutContext, ShortcutRevealer, Skeleton, type SkeletonProps, StatusBullet, type StatusBulletProps, type StatusTypeProps, SuccessMessage, type SuccessMessageProps, Switch, type SwitchProps, TAKEOVER_STACK_ID, TEXTBOX_OPERATORS, TabButton, TabButtonGroup, type TabButtonProps, TabContent, type TabContentProps, Table, TableBody, type TableBodyProps, TableCellData, type TableCellDataProps, TableCellHead, type TableCellHeadProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, TakeoverDrawerRenderer, type TextAlignProps, Textarea, type TextareaProps, Theme, type ThemeProps, Tile, TileContainer, type TileContainerProps, type TileProps, TileText, type TileTitleProps, ToastContainer, type ToastContainerProps, Tooltip, type TooltipProps, TwoColumnLayout, type TwoColumnLayoutProps, UniformBadge, UniformLogo, UniformLogoLarge, type UniformLogoProps, type UseShortcutOptions, VerticalRhythm, WarningMessage, type WarningMessageProps, accessibleHidden, addPathSegmentToPathname, borderTopIcon, breakpoints, button, buttonAccentAltDark, buttonAccentAltDarkOutline, buttonDestructive, buttonGhost, buttonGhostDestructive, buttonGhostUnimportant, buttonPrimary, buttonPrimaryInvert, buttonRippleEffect, buttonSecondary, buttonSecondaryInvert, buttonTertiary, buttonTertiaryOutline, buttonUnimportant, canvasAlertIcon, cardIcon, cq, customIcons, extractParameterProps, fadeIn, fadeInBottom, fadeInLtr, fadeInRtl, fadeInTop, fadeOutBottom, type filterMode, fullWidthScreenIcon, getDrawerAttributes, getParentPath, getPathSegment, growSubtle, imageTextIcon, infoFilledIcon, input, inputError, inputSelect, isMacLike, isSecureURL, isValidUrl, jsonIcon, labelText, loader as loaderAnimationData, macifyShortcut, mq, numberInput, queryStringIcon, rectangleRoundedIcon, replaceUnderscoreInString, richTextToolbarButton, richTextToolbarButtonActive, ripple, scrollbarStyles, settings, settingsIcon, skeletonLoading, slideInTtb, spinner as spinnerAnimationData, structurePanelIcon, supports, textInput, useBreakpoint, useCloseCurrentDrawer, useCurrentDrawer, useCurrentTab, useDateTimePickerContext, useDrawer, useIconContext, useOutsideClick, useParameterShell, useSearchAndFilter, useShortcut, warningIcon, yesNoIcon };
23783
+ export { type ActionButtonsProps, AddButton, type AddButtonProps, AddListButton, type AddListButtonProps, type AddListButtonThemeProps, AnimationFile, type AnimationFileProps, type ArrowPositionProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, type BadgeSizeProps, type BadgeThemeProps, type BadgeThemeStyleProps, Banner, type BannerProps, type BannerType, type BoxHeightProps, type BreakpointSize, type BreakpointsMap, Button, type ButtonProps, type ButtonSizeProps$1 as ButtonSizeProps, type ButtonThemeProps$1 as ButtonThemeProps, ButtonWithMenu, type ButtonWithMenuProps, CHECKBOX_OPERATORS, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutType, Caption, type CaptionProps, Card, CardContainer, type CardContainerBgColorProps, type CardContainerProps, type CardProps, CardTitle, type CardTitleProps, CheckboxWithInfo, type CheckboxWithInforProps, type ChildFunction, Chip, type ChipProps, type ChipTheme, type ComboBoxGroupBase, ConnectToDataElementButton, type ConnectToDataElementButtonProps, Container, type ContainerProps, Counter, type CounterProps, CreateTeamIntegrationTile, type CreateTeamIntegrationTileProps, CurrentDrawerContext, DATE_OPERATORS, DashedBox, type DashedBoxProps, DateTimePicker, type DateTimePickerProps, type DateTimePickerValue, DateTimePickerVariant, DebouncedInputKeywordSearch, type DebouncedInputKeywordSearchProps, DescriptionList, type DescriptionListProps, Details, type DetailsProps, DismissibleChipAction, Drawer, DrawerContent, type DrawerContentProps, type DrawerContextValue, type DrawerItem, type DrawerProps, DrawerProvider, DrawerRenderer, type DrawerRendererItemProps, type DrawerRendererProps, type DrawersRegistryRecord, EditTeamIntegrationTile, type EditTeamIntegrationTileProps, ErrorMessage, type ErrorMessageProps, Fieldset, type FieldsetProps, type Filter, FilterButton, type FilterButtonProps, FilterControls, type FilterEditor, FilterItem, FilterItems, type FilterItemsProps, FilterMenu, type FilterOption, type FilterRowProps, type FiltersProps, Heading, type HeadingProps, HexModalBackground, HorizontalRhythm, Icon, IconButton, type IconButtonProps, type IconColor, type IconName, type IconProps, type IconType, IconsProvider, Image, ImageBroken, type ImageProps, InfoMessage, type InfoMessageProps, InlineAlert, type InlineAlertProps, Input, InputComboBox, type InputComboBoxOption, type InputComboBoxProps, InputInlineSelect, type InputInlineSelectOption, type InputInlineSelectProps, InputKeywordSearch, type InputKeywordSearchProps, type InputOption, type InputProps, InputSelect, type InputSelectProps, InputTime, type InputTimeProps, InputToggle, type InputToggleProps, IntegrationComingSoon, type IntegrationComingSoonProps, IntegrationHeaderSection, type IntegrationHeaderSectionProps, IntegrationLoadingTile, type IntegrationLoadingTileProps, IntegrationModalHeader, type IntegrationModalHeaderProps, IntegrationModalIcon, type IntegrationModalIconProps, IntegrationTile, type IntegrationTileProps, type IsoDateString, type IsoDateTimeString, type IsoTimeString, JsonEditor, type JsonEditorProps, Label, LabelLeadingIcon, type LabelProps, Legend, type LegendProps, type LevelProps, LimitsBar, type LimitsBarProps, Link, type LinkColorProps, LinkList, type LinkListProps, type LinkManagerWithRefType, LinkNode, type LinkProps, LinkWithRef, LoadingCardSkeleton, LoadingIcon, type LoadingIconProps, LoadingIndicator, LoadingOverlay, type LoadingOverlayProps, MediaCard, type MediaCardProps, Menu, MenuGroup, type MenuGroupProps, MenuItem, MenuItemInner, type MenuItemProps, MenuItemSeparator, type MenuItemTextThemeProps, type MenuProps, Modal, type ModalProps, MultilineChip, type MultilineChipProps, NUMBER_OPERATORS, type Operator, type OperatorType, type OperatorValue, type OperatorValueType, PageHeaderSection, type PageHeaderSectionProps, Pagination, Paragraph, type ParagraphProps, type ParameterDataConnectButtonProps, ParameterDataResource, ParameterDrawerHeader, type ParameterDrawerHeaderProps, ParameterGroup, type ParameterGroupProps, ParameterImage, ParameterImageInner, ParameterImagePreview, type ParameterImageProps, ParameterInput, ParameterInputInner, type ParameterInputProps, ParameterLabel, type ParameterLabelProps, ParameterLink, ParameterLinkInner, type ParameterLinkProps, ParameterMenuButton, type ParameterMenuButtonProps, ParameterNameAndPublicIdInput, type ParameterNameAndPublicIdInputProps, ParameterOverrideMarker, ParameterRichText, ParameterRichTextInner, type ParameterRichTextInnerProps, type ParameterRichTextProps, ParameterSelect, ParameterSelectInner, type ParameterSelectProps, ParameterShell, ParameterShellContext, ParameterShellPlaceholder, type ParameterShellProps, ParameterTextarea, ParameterTextareaInner, type ParameterTextareaProps, ParameterToggle, ParameterToggleInner, type ParameterToggleProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, ProgressList, ProgressListItem, type ProgressListItemProps, type ProgressListProps, RICHTEXT_OPERATORS, type RegisterDrawerProps, ResolveIcon, type ResolveIconProps, type RhythmProps, type RichTextParamValue, RichTextToolbarIcon, SYSTEM_DATE_OPERATORS, SYSTEM_FIELD_OPERATORS, type ScrollableItemProps, ScrollableList, type ScrollableListContainerProps, ScrollableListInputItem, ScrollableListItem, type ScrollableListItemProps, type ScrollableListProps, SearchAndFilter, SearchAndFilterContext, type SearchAndFilterContextProps, SearchAndFilterOptionsContainer, type SearchAndFilterOptionsContainerProps, type SearchAndFilterProps, SearchAndFilterProvider, type SearchAndFilterProviderProps, SearchAndFilterResultContainer, type SearchAndFilterResultContainerProps, SearchOnlyContext, SearchOnlyFilter, type SearchOnlyProviderProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, type SerializedLinkNode, ShortcutContext, ShortcutRevealer, Skeleton, type SkeletonProps, StatusBullet, type StatusBulletProps, type StatusTypeProps, SuccessMessage, type SuccessMessageProps, Switch, type SwitchProps, TAKEOVER_STACK_ID, TEXTBOX_OPERATORS, TabButton, TabButtonGroup, type TabButtonProps, TabContent, type TabContentProps, Table, TableBody, type TableBodyProps, TableCellData, type TableCellDataProps, TableCellHead, type TableCellHeadProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, TakeoverDrawerRenderer, type TextAlignProps, Textarea, type TextareaProps, Theme, type ThemeProps, Tile, TileContainer, type TileContainerProps, type TileProps, TileText, type TileTitleProps, ToastContainer, type ToastContainerProps, Tooltip, type TooltipProps, TwoColumnLayout, type TwoColumnLayoutProps, USER_OPERATORS, UniformBadge, UniformLogo, UniformLogoLarge, type UniformLogoProps, type UseShortcutOptions, VerticalRhythm, WarningMessage, type WarningMessageProps, accessibleHidden, addPathSegmentToPathname, borderTopIcon, breakpoints, button, buttonAccentAltDark, buttonAccentAltDarkOutline, buttonDestructive, buttonGhost, buttonGhostDestructive, buttonGhostUnimportant, buttonPrimary, buttonPrimaryInvert, buttonRippleEffect, buttonSecondary, buttonSecondaryInvert, buttonTertiary, buttonTertiaryOutline, buttonUnimportant, canvasAlertIcon, cardIcon, cq, customIcons, extractParameterProps, fadeIn, fadeInBottom, fadeInLtr, fadeInRtl, fadeInTop, fadeOutBottom, type filterMode, fullWidthScreenIcon, getDrawerAttributes, getParentPath, getPathSegment, growSubtle, imageTextIcon, infoFilledIcon, input, inputError, inputSelect, isMacLike, isSecureURL, isValidUrl, jsonIcon, labelText, loader as loaderAnimationData, macifyShortcut, mq, numberInput, queryStringIcon, rectangleRoundedIcon, replaceUnderscoreInString, richTextToolbarButton, richTextToolbarButtonActive, ripple, scrollbarStyles, settings, settingsIcon, skeletonLoading, slideInTtb, spinner as spinnerAnimationData, structurePanelIcon, supports, textInput, useBreakpoint, useCloseCurrentDrawer, useCurrentDrawer, useCurrentTab, useDateTimePickerContext, useDrawer, useIconContext, useOutsideClick, useParameterShell, useSearchAndFilter, useShortcut, warningIcon, yesNoIcon };
package/dist/index.d.ts CHANGED
@@ -23052,6 +23052,10 @@ declare const NUMBER_OPERATORS: OperatorType;
23052
23052
  declare const DATE_OPERATORS: OperatorType;
23053
23053
  /** @deprecated beta - uniform textbox operators */
23054
23054
  declare const TEXTBOX_OPERATORS: OperatorType;
23055
+ /** @deprecated beta - uniform user operators */
23056
+ declare const USER_OPERATORS: OperatorType;
23057
+ /** @deprecated beta - uniform system date operators */
23058
+ declare const SYSTEM_DATE_OPERATORS: OperatorType;
23055
23059
  /** @deprecated beta - uniform rich text operators */
23056
23060
  declare const RICHTEXT_OPERATORS: OperatorType;
23057
23061
  /** @deprecated beta - uniform checkbox operators */
@@ -23084,11 +23088,13 @@ declare const FilterButton: ({ text, icon, filterCount, hasSelectedValue, ...pro
23084
23088
  * @deprecated beta - Default filter controls for search and filter
23085
23089
  * @example <FilterControls />
23086
23090
  */
23087
- declare const FilterControls: ({ children, hideSearchInput, }: {
23091
+ declare const FilterControls: ({ children, defaultSortByValue, hideSearchInput, }: {
23088
23092
  /** optional param to allow you to add your own controls */
23089
23093
  children?: ReactNode;
23090
23094
  /** optional param to hide the search input */
23091
23095
  hideSearchInput?: boolean | undefined;
23096
+ /** The default sort by value */
23097
+ defaultSortByValue: string;
23092
23098
  }) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
23093
23099
 
23094
23100
  type FilterRowProps = {
@@ -23774,4 +23780,4 @@ type StatusBulletProps = React$1.HTMLAttributes<HTMLSpanElement> & {
23774
23780
  };
23775
23781
  declare const StatusBullet: ({ status, hideText, size, message, ...props }: StatusBulletProps) => _emotion_react_types_jsx_namespace.EmotionJSX.Element;
23776
23782
 
23777
- export { type ActionButtonsProps, AddButton, type AddButtonProps, AddListButton, type AddListButtonProps, type AddListButtonThemeProps, AnimationFile, type AnimationFileProps, type ArrowPositionProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, type BadgeSizeProps, type BadgeThemeProps, type BadgeThemeStyleProps, Banner, type BannerProps, type BannerType, type BoxHeightProps, type BreakpointSize, type BreakpointsMap, Button, type ButtonProps, type ButtonSizeProps$1 as ButtonSizeProps, type ButtonThemeProps$1 as ButtonThemeProps, ButtonWithMenu, type ButtonWithMenuProps, CHECKBOX_OPERATORS, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutType, Caption, type CaptionProps, Card, CardContainer, type CardContainerBgColorProps, type CardContainerProps, type CardProps, CardTitle, type CardTitleProps, CheckboxWithInfo, type CheckboxWithInforProps, type ChildFunction, Chip, type ChipProps, type ChipTheme, type ComboBoxGroupBase, ConnectToDataElementButton, type ConnectToDataElementButtonProps, Container, type ContainerProps, Counter, type CounterProps, CreateTeamIntegrationTile, type CreateTeamIntegrationTileProps, CurrentDrawerContext, DATE_OPERATORS, DashedBox, type DashedBoxProps, DateTimePicker, type DateTimePickerProps, type DateTimePickerValue, DateTimePickerVariant, DebouncedInputKeywordSearch, type DebouncedInputKeywordSearchProps, DescriptionList, type DescriptionListProps, Details, type DetailsProps, DismissibleChipAction, Drawer, DrawerContent, type DrawerContentProps, type DrawerContextValue, type DrawerItem, type DrawerProps, DrawerProvider, DrawerRenderer, type DrawerRendererItemProps, type DrawerRendererProps, type DrawersRegistryRecord, EditTeamIntegrationTile, type EditTeamIntegrationTileProps, ErrorMessage, type ErrorMessageProps, Fieldset, type FieldsetProps, type Filter, FilterButton, type FilterButtonProps, FilterControls, type FilterEditor, FilterItem, FilterItems, type FilterItemsProps, FilterMenu, type FilterOption, type FilterRowProps, type FiltersProps, Heading, type HeadingProps, HexModalBackground, HorizontalRhythm, Icon, IconButton, type IconButtonProps, type IconColor, type IconName, type IconProps, type IconType, IconsProvider, Image, ImageBroken, type ImageProps, InfoMessage, type InfoMessageProps, InlineAlert, type InlineAlertProps, Input, InputComboBox, type InputComboBoxOption, type InputComboBoxProps, InputInlineSelect, type InputInlineSelectOption, type InputInlineSelectProps, InputKeywordSearch, type InputKeywordSearchProps, type InputOption, type InputProps, InputSelect, type InputSelectProps, InputTime, type InputTimeProps, InputToggle, type InputToggleProps, IntegrationComingSoon, type IntegrationComingSoonProps, IntegrationHeaderSection, type IntegrationHeaderSectionProps, IntegrationLoadingTile, type IntegrationLoadingTileProps, IntegrationModalHeader, type IntegrationModalHeaderProps, IntegrationModalIcon, type IntegrationModalIconProps, IntegrationTile, type IntegrationTileProps, type IsoDateString, type IsoDateTimeString, type IsoTimeString, JsonEditor, type JsonEditorProps, Label, LabelLeadingIcon, type LabelProps, Legend, type LegendProps, type LevelProps, LimitsBar, type LimitsBarProps, Link, type LinkColorProps, LinkList, type LinkListProps, type LinkManagerWithRefType, LinkNode, type LinkProps, LinkWithRef, LoadingCardSkeleton, LoadingIcon, type LoadingIconProps, LoadingIndicator, LoadingOverlay, type LoadingOverlayProps, MediaCard, type MediaCardProps, Menu, MenuGroup, type MenuGroupProps, MenuItem, MenuItemInner, type MenuItemProps, MenuItemSeparator, type MenuItemTextThemeProps, type MenuProps, Modal, type ModalProps, MultilineChip, type MultilineChipProps, NUMBER_OPERATORS, type Operator, type OperatorType, type OperatorValue, type OperatorValueType, PageHeaderSection, type PageHeaderSectionProps, Pagination, Paragraph, type ParagraphProps, type ParameterDataConnectButtonProps, ParameterDataResource, ParameterDrawerHeader, type ParameterDrawerHeaderProps, ParameterGroup, type ParameterGroupProps, ParameterImage, ParameterImageInner, ParameterImagePreview, type ParameterImageProps, ParameterInput, ParameterInputInner, type ParameterInputProps, ParameterLabel, type ParameterLabelProps, ParameterLink, ParameterLinkInner, type ParameterLinkProps, ParameterMenuButton, type ParameterMenuButtonProps, ParameterNameAndPublicIdInput, type ParameterNameAndPublicIdInputProps, ParameterOverrideMarker, ParameterRichText, ParameterRichTextInner, type ParameterRichTextInnerProps, type ParameterRichTextProps, ParameterSelect, ParameterSelectInner, type ParameterSelectProps, ParameterShell, ParameterShellContext, ParameterShellPlaceholder, type ParameterShellProps, ParameterTextarea, ParameterTextareaInner, type ParameterTextareaProps, ParameterToggle, ParameterToggleInner, type ParameterToggleProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, ProgressList, ProgressListItem, type ProgressListItemProps, type ProgressListProps, RICHTEXT_OPERATORS, type RegisterDrawerProps, ResolveIcon, type ResolveIconProps, type RhythmProps, type RichTextParamValue, RichTextToolbarIcon, SYSTEM_FIELD_OPERATORS, type ScrollableItemProps, ScrollableList, type ScrollableListContainerProps, ScrollableListInputItem, ScrollableListItem, type ScrollableListItemProps, type ScrollableListProps, SearchAndFilter, SearchAndFilterContext, type SearchAndFilterContextProps, SearchAndFilterOptionsContainer, type SearchAndFilterOptionsContainerProps, type SearchAndFilterProps, SearchAndFilterProvider, type SearchAndFilterProviderProps, SearchAndFilterResultContainer, type SearchAndFilterResultContainerProps, SearchOnlyContext, SearchOnlyFilter, type SearchOnlyProviderProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, type SerializedLinkNode, ShortcutContext, ShortcutRevealer, Skeleton, type SkeletonProps, StatusBullet, type StatusBulletProps, type StatusTypeProps, SuccessMessage, type SuccessMessageProps, Switch, type SwitchProps, TAKEOVER_STACK_ID, TEXTBOX_OPERATORS, TabButton, TabButtonGroup, type TabButtonProps, TabContent, type TabContentProps, Table, TableBody, type TableBodyProps, TableCellData, type TableCellDataProps, TableCellHead, type TableCellHeadProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, TakeoverDrawerRenderer, type TextAlignProps, Textarea, type TextareaProps, Theme, type ThemeProps, Tile, TileContainer, type TileContainerProps, type TileProps, TileText, type TileTitleProps, ToastContainer, type ToastContainerProps, Tooltip, type TooltipProps, TwoColumnLayout, type TwoColumnLayoutProps, UniformBadge, UniformLogo, UniformLogoLarge, type UniformLogoProps, type UseShortcutOptions, VerticalRhythm, WarningMessage, type WarningMessageProps, accessibleHidden, addPathSegmentToPathname, borderTopIcon, breakpoints, button, buttonAccentAltDark, buttonAccentAltDarkOutline, buttonDestructive, buttonGhost, buttonGhostDestructive, buttonGhostUnimportant, buttonPrimary, buttonPrimaryInvert, buttonRippleEffect, buttonSecondary, buttonSecondaryInvert, buttonTertiary, buttonTertiaryOutline, buttonUnimportant, canvasAlertIcon, cardIcon, cq, customIcons, extractParameterProps, fadeIn, fadeInBottom, fadeInLtr, fadeInRtl, fadeInTop, fadeOutBottom, type filterMode, fullWidthScreenIcon, getDrawerAttributes, getParentPath, getPathSegment, growSubtle, imageTextIcon, infoFilledIcon, input, inputError, inputSelect, isMacLike, isSecureURL, isValidUrl, jsonIcon, labelText, loader as loaderAnimationData, macifyShortcut, mq, numberInput, queryStringIcon, rectangleRoundedIcon, replaceUnderscoreInString, richTextToolbarButton, richTextToolbarButtonActive, ripple, scrollbarStyles, settings, settingsIcon, skeletonLoading, slideInTtb, spinner as spinnerAnimationData, structurePanelIcon, supports, textInput, useBreakpoint, useCloseCurrentDrawer, useCurrentDrawer, useCurrentTab, useDateTimePickerContext, useDrawer, useIconContext, useOutsideClick, useParameterShell, useSearchAndFilter, useShortcut, warningIcon, yesNoIcon };
23783
+ export { type ActionButtonsProps, AddButton, type AddButtonProps, AddListButton, type AddListButtonProps, type AddListButtonThemeProps, AnimationFile, type AnimationFileProps, type ArrowPositionProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, type BadgeSizeProps, type BadgeThemeProps, type BadgeThemeStyleProps, Banner, type BannerProps, type BannerType, type BoxHeightProps, type BreakpointSize, type BreakpointsMap, Button, type ButtonProps, type ButtonSizeProps$1 as ButtonSizeProps, type ButtonThemeProps$1 as ButtonThemeProps, ButtonWithMenu, type ButtonWithMenuProps, CHECKBOX_OPERATORS, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutType, Caption, type CaptionProps, Card, CardContainer, type CardContainerBgColorProps, type CardContainerProps, type CardProps, CardTitle, type CardTitleProps, CheckboxWithInfo, type CheckboxWithInforProps, type ChildFunction, Chip, type ChipProps, type ChipTheme, type ComboBoxGroupBase, ConnectToDataElementButton, type ConnectToDataElementButtonProps, Container, type ContainerProps, Counter, type CounterProps, CreateTeamIntegrationTile, type CreateTeamIntegrationTileProps, CurrentDrawerContext, DATE_OPERATORS, DashedBox, type DashedBoxProps, DateTimePicker, type DateTimePickerProps, type DateTimePickerValue, DateTimePickerVariant, DebouncedInputKeywordSearch, type DebouncedInputKeywordSearchProps, DescriptionList, type DescriptionListProps, Details, type DetailsProps, DismissibleChipAction, Drawer, DrawerContent, type DrawerContentProps, type DrawerContextValue, type DrawerItem, type DrawerProps, DrawerProvider, DrawerRenderer, type DrawerRendererItemProps, type DrawerRendererProps, type DrawersRegistryRecord, EditTeamIntegrationTile, type EditTeamIntegrationTileProps, ErrorMessage, type ErrorMessageProps, Fieldset, type FieldsetProps, type Filter, FilterButton, type FilterButtonProps, FilterControls, type FilterEditor, FilterItem, FilterItems, type FilterItemsProps, FilterMenu, type FilterOption, type FilterRowProps, type FiltersProps, Heading, type HeadingProps, HexModalBackground, HorizontalRhythm, Icon, IconButton, type IconButtonProps, type IconColor, type IconName, type IconProps, type IconType, IconsProvider, Image, ImageBroken, type ImageProps, InfoMessage, type InfoMessageProps, InlineAlert, type InlineAlertProps, Input, InputComboBox, type InputComboBoxOption, type InputComboBoxProps, InputInlineSelect, type InputInlineSelectOption, type InputInlineSelectProps, InputKeywordSearch, type InputKeywordSearchProps, type InputOption, type InputProps, InputSelect, type InputSelectProps, InputTime, type InputTimeProps, InputToggle, type InputToggleProps, IntegrationComingSoon, type IntegrationComingSoonProps, IntegrationHeaderSection, type IntegrationHeaderSectionProps, IntegrationLoadingTile, type IntegrationLoadingTileProps, IntegrationModalHeader, type IntegrationModalHeaderProps, IntegrationModalIcon, type IntegrationModalIconProps, IntegrationTile, type IntegrationTileProps, type IsoDateString, type IsoDateTimeString, type IsoTimeString, JsonEditor, type JsonEditorProps, Label, LabelLeadingIcon, type LabelProps, Legend, type LegendProps, type LevelProps, LimitsBar, type LimitsBarProps, Link, type LinkColorProps, LinkList, type LinkListProps, type LinkManagerWithRefType, LinkNode, type LinkProps, LinkWithRef, LoadingCardSkeleton, LoadingIcon, type LoadingIconProps, LoadingIndicator, LoadingOverlay, type LoadingOverlayProps, MediaCard, type MediaCardProps, Menu, MenuGroup, type MenuGroupProps, MenuItem, MenuItemInner, type MenuItemProps, MenuItemSeparator, type MenuItemTextThemeProps, type MenuProps, Modal, type ModalProps, MultilineChip, type MultilineChipProps, NUMBER_OPERATORS, type Operator, type OperatorType, type OperatorValue, type OperatorValueType, PageHeaderSection, type PageHeaderSectionProps, Pagination, Paragraph, type ParagraphProps, type ParameterDataConnectButtonProps, ParameterDataResource, ParameterDrawerHeader, type ParameterDrawerHeaderProps, ParameterGroup, type ParameterGroupProps, ParameterImage, ParameterImageInner, ParameterImagePreview, type ParameterImageProps, ParameterInput, ParameterInputInner, type ParameterInputProps, ParameterLabel, type ParameterLabelProps, ParameterLink, ParameterLinkInner, type ParameterLinkProps, ParameterMenuButton, type ParameterMenuButtonProps, ParameterNameAndPublicIdInput, type ParameterNameAndPublicIdInputProps, ParameterOverrideMarker, ParameterRichText, ParameterRichTextInner, type ParameterRichTextInnerProps, type ParameterRichTextProps, ParameterSelect, ParameterSelectInner, type ParameterSelectProps, ParameterShell, ParameterShellContext, ParameterShellPlaceholder, type ParameterShellProps, ParameterTextarea, ParameterTextareaInner, type ParameterTextareaProps, ParameterToggle, ParameterToggleInner, type ParameterToggleProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, ProgressList, ProgressListItem, type ProgressListItemProps, type ProgressListProps, RICHTEXT_OPERATORS, type RegisterDrawerProps, ResolveIcon, type ResolveIconProps, type RhythmProps, type RichTextParamValue, RichTextToolbarIcon, SYSTEM_DATE_OPERATORS, SYSTEM_FIELD_OPERATORS, type ScrollableItemProps, ScrollableList, type ScrollableListContainerProps, ScrollableListInputItem, ScrollableListItem, type ScrollableListItemProps, type ScrollableListProps, SearchAndFilter, SearchAndFilterContext, type SearchAndFilterContextProps, SearchAndFilterOptionsContainer, type SearchAndFilterOptionsContainerProps, type SearchAndFilterProps, SearchAndFilterProvider, type SearchAndFilterProviderProps, SearchAndFilterResultContainer, type SearchAndFilterResultContainerProps, SearchOnlyContext, SearchOnlyFilter, type SearchOnlyProviderProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, type SerializedLinkNode, ShortcutContext, ShortcutRevealer, Skeleton, type SkeletonProps, StatusBullet, type StatusBulletProps, type StatusTypeProps, SuccessMessage, type SuccessMessageProps, Switch, type SwitchProps, TAKEOVER_STACK_ID, TEXTBOX_OPERATORS, TabButton, TabButtonGroup, type TabButtonProps, TabContent, type TabContentProps, Table, TableBody, type TableBodyProps, TableCellData, type TableCellDataProps, TableCellHead, type TableCellHeadProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, TakeoverDrawerRenderer, type TextAlignProps, Textarea, type TextareaProps, Theme, type ThemeProps, Tile, TileContainer, type TileContainerProps, type TileProps, TileText, type TileTitleProps, ToastContainer, type ToastContainerProps, Tooltip, type TooltipProps, TwoColumnLayout, type TwoColumnLayoutProps, USER_OPERATORS, UniformBadge, UniformLogo, UniformLogoLarge, type UniformLogoProps, type UseShortcutOptions, VerticalRhythm, WarningMessage, type WarningMessageProps, accessibleHidden, addPathSegmentToPathname, borderTopIcon, breakpoints, button, buttonAccentAltDark, buttonAccentAltDarkOutline, buttonDestructive, buttonGhost, buttonGhostDestructive, buttonGhostUnimportant, buttonPrimary, buttonPrimaryInvert, buttonRippleEffect, buttonSecondary, buttonSecondaryInvert, buttonTertiary, buttonTertiaryOutline, buttonUnimportant, canvasAlertIcon, cardIcon, cq, customIcons, extractParameterProps, fadeIn, fadeInBottom, fadeInLtr, fadeInRtl, fadeInTop, fadeOutBottom, type filterMode, fullWidthScreenIcon, getDrawerAttributes, getParentPath, getPathSegment, growSubtle, imageTextIcon, infoFilledIcon, input, inputError, inputSelect, isMacLike, isSecureURL, isValidUrl, jsonIcon, labelText, loader as loaderAnimationData, macifyShortcut, mq, numberInput, queryStringIcon, rectangleRoundedIcon, replaceUnderscoreInString, richTextToolbarButton, richTextToolbarButtonActive, ripple, scrollbarStyles, settings, settingsIcon, skeletonLoading, slideInTtb, spinner as spinnerAnimationData, structurePanelIcon, supports, textInput, useBreakpoint, useCloseCurrentDrawer, useCurrentDrawer, useCurrentTab, useDateTimePickerContext, useDrawer, useIconContext, useOutsideClick, useParameterShell, useSearchAndFilter, useShortcut, warningIcon, yesNoIcon };
package/dist/index.js CHANGED
@@ -1467,6 +1467,7 @@ __export(src_exports, {
1467
1467
  RICHTEXT_OPERATORS: () => RICHTEXT_OPERATORS,
1468
1468
  ResolveIcon: () => ResolveIcon,
1469
1469
  RichTextToolbarIcon: () => RichTextToolbarIcon,
1470
+ SYSTEM_DATE_OPERATORS: () => SYSTEM_DATE_OPERATORS,
1470
1471
  SYSTEM_FIELD_OPERATORS: () => SYSTEM_FIELD_OPERATORS,
1471
1472
  ScrollableList: () => ScrollableList,
1472
1473
  ScrollableListInputItem: () => ScrollableListInputItem,
@@ -1507,6 +1508,7 @@ __export(src_exports, {
1507
1508
  ToastContainer: () => ToastContainer,
1508
1509
  Tooltip: () => Tooltip,
1509
1510
  TwoColumnLayout: () => TwoColumnLayout,
1511
+ USER_OPERATORS: () => USER_OPERATORS,
1510
1512
  UniformBadge: () => UniformBadge,
1511
1513
  UniformLogo: () => UniformLogo,
1512
1514
  UniformLogoLarge: () => UniformLogoLarge,
@@ -19389,6 +19391,16 @@ var toggleInput2 = import_react110.css`
19389
19391
  color: var(--white);
19390
19392
  }
19391
19393
 
19394
+ &:indeterminate,
19395
+ &:indeterminate:hover,
19396
+ &:indeterminate:focus {
19397
+ background: var(--accent-dark-active)
19398
+ url('data:image/svg+xml;base64,PHN2ZwogIHdpZHRoPSIxNiIKICBoZWlnaHQ9IjE2IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKPgogIDxwYXRoCiAgICBkPSJNNCAxMkM0IDExLjQ0NzcgNC40NDc3MiAxMSA1IDExSDE5QzE5LjU1MjMgMTEgMjAgMTEuNDQ3NyAyMCAxMkMyMCAxMi41NTIzIDE5LjU1MjMgMTMgMTkgMTNINUM0LjQ0NzcyIDEzIDQgMTIuNTUyMyA0IDEyWiIKICAgIGZpbGw9IndoaXRlIgogIC8+Cjwvc3ZnPg==')
19399
+ no-repeat center center;
19400
+ border-color: var(--accent-dark-active);
19401
+ color: var(--white);
19402
+ }
19403
+
19392
19404
  &:hover {
19393
19405
  border-color: var(--accent-dark-hover);
19394
19406
  }
@@ -22098,6 +22110,60 @@ var TEXTBOX_OPERATORS = [
22098
22110
  editorType: "empty"
22099
22111
  }
22100
22112
  ];
22113
+ var USER_OPERATORS = [
22114
+ {
22115
+ label: "is...",
22116
+ value: "eq",
22117
+ editorType: "text"
22118
+ },
22119
+ {
22120
+ label: "contains...",
22121
+ value: "match",
22122
+ editorType: "text"
22123
+ },
22124
+ {
22125
+ label: "is not...",
22126
+ value: "neq",
22127
+ editorType: "text"
22128
+ }
22129
+ ];
22130
+ var SYSTEM_DATE_OPERATORS = [
22131
+ {
22132
+ label: "is...",
22133
+ value: "eq",
22134
+ editorType: "date"
22135
+ },
22136
+ {
22137
+ label: "is between...",
22138
+ value: "between",
22139
+ editorType: "dateRange"
22140
+ },
22141
+ {
22142
+ label: "is before...",
22143
+ value: "lt",
22144
+ editorType: "date"
22145
+ },
22146
+ {
22147
+ label: "is after...",
22148
+ value: "gt",
22149
+ editorType: "date"
22150
+ },
22151
+ {
22152
+ label: "is on or before...",
22153
+ value: "lte",
22154
+ editorType: "date"
22155
+ },
22156
+ {
22157
+ label: "is on or after...",
22158
+ value: "gte",
22159
+ editorType: "date"
22160
+ },
22161
+ {
22162
+ label: "is not...",
22163
+ value: "neq",
22164
+ editorType: "date"
22165
+ }
22166
+ ];
22101
22167
  var RICHTEXT_OPERATORS = [
22102
22168
  {
22103
22169
  label: "is empty...",
@@ -22243,6 +22309,12 @@ var FilterButton = import_react138.css`
22243
22309
  opacity: var(--opacity-50);
22244
22310
  }
22245
22311
  `;
22312
+ var FilterButtonText = import_react138.css`
22313
+ overflow: hidden;
22314
+ text-overflow: ellipsis;
22315
+ white-space: nowrap;
22316
+ max-width: 14ch;
22317
+ `;
22246
22318
  var FilterButtonSelected = import_react138.css`
22247
22319
  background: var(--gray-100);
22248
22320
  border-color: var(--gray-300);
@@ -22367,7 +22439,7 @@ var FilterButton2 = ({
22367
22439
  "data-testid": "filters-button",
22368
22440
  children: [
22369
22441
  /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Icon, { icon, iconColor: "currentColor", size: "1rem" }),
22370
- text,
22442
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("span", { css: FilterButtonText, children: text }),
22371
22443
  filterCount ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Counter, { count: filterCount, bgColor: "var(--white)" }) : null
22372
22444
  ]
22373
22445
  }
@@ -22506,9 +22578,19 @@ var useSearchAndFilter = () => {
22506
22578
  var import_jsx_runtime119 = require("@emotion/react/jsx-runtime");
22507
22579
  var FilterControls = ({
22508
22580
  children,
22581
+ defaultSortByValue,
22509
22582
  hideSearchInput
22510
22583
  }) => {
22511
- const { setFilterVisibility, filterVisibility, setSearchTerm, validFilterQuery, searchTerm, sortByValue } = useSearchAndFilter();
22584
+ var _a, _b, _c;
22585
+ const {
22586
+ setFilterVisibility,
22587
+ filterVisibility,
22588
+ setSearchTerm,
22589
+ validFilterQuery,
22590
+ searchTerm,
22591
+ sortByValue,
22592
+ filterOptions
22593
+ } = useSearchAndFilter();
22512
22594
  const [localeSearchTerm, setLocaleSearchTerm] = (0, import_react140.useState)("");
22513
22595
  (0, import_react_use3.useDebounce)(
22514
22596
  () => {
@@ -22528,9 +22610,12 @@ var FilterControls = ({
22528
22610
  }
22529
22611
  return setFilterVisibility(mode);
22530
22612
  };
22531
- const sortByValues = sortByValue ? sortByValue == null ? void 0 : sortByValue.split("_") : "Sort";
22532
- const sortByValueLabel = Array.isArray(sortByValues) ? sortByValue == null ? void 0 : sortByValue.split("_")[0] : "Sort";
22533
- const sortByIcon = Array.isArray(sortByValues) ? sortByValues[1] === "ASC" ? "arrow-up" : "arrow-down" : "sort-az";
22613
+ const sortValue = (sortByValue != null ? sortByValue : defaultSortByValue).split("_");
22614
+ const sortDirection = sortValue == null ? void 0 : sortValue.pop();
22615
+ const sortField = sortValue == null ? void 0 : sortValue.join("_");
22616
+ const sortOn = sortField.startsWith("fields.") ? "contentTypeFields" : "metadata";
22617
+ 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;
22618
+ const sortByIcon = sortDirection === "ASC" ? "arrow-up" : "arrow-down";
22534
22619
  return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
22535
22620
  /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
22536
22621
  FilterButton2,
@@ -22708,10 +22793,11 @@ var FilterMultiChoiceEditor = ({
22708
22793
  options,
22709
22794
  isDisabled,
22710
22795
  readOnly,
22796
+ valueTestId,
22711
22797
  ...props
22712
22798
  }) => {
22713
22799
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
22714
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22800
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { "data-testid": valueTestId, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22715
22801
  InputComboBox,
22716
22802
  {
22717
22803
  ...props,
@@ -22728,17 +22814,18 @@ var FilterMultiChoiceEditor = ({
22728
22814
  "aria-readonly": readOnly,
22729
22815
  ...readOnlyProps
22730
22816
  }
22731
- );
22817
+ ) });
22732
22818
  };
22733
22819
  var FilterSingleChoiceEditor = ({
22734
22820
  options,
22735
22821
  value,
22736
22822
  isDisabled,
22737
22823
  readOnly,
22738
- onChange
22824
+ onChange,
22825
+ valueTestId
22739
22826
  }) => {
22740
22827
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
22741
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22828
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { "data-testid": valueTestId, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22742
22829
  InputComboBox,
22743
22830
  {
22744
22831
  placeholder: "Type to search...",
@@ -22753,7 +22840,7 @@ var FilterSingleChoiceEditor = ({
22753
22840
  "aria-readonly": readOnly,
22754
22841
  ...readOnlyProps
22755
22842
  }
22756
- );
22843
+ ) });
22757
22844
  };
22758
22845
  var CustomOptions = ({ label, value }) => {
22759
22846
  return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(StatusBullet, { status: label, message: value });
@@ -22763,10 +22850,11 @@ var StatusMultiEditor = ({
22763
22850
  value,
22764
22851
  isDisabled,
22765
22852
  readOnly,
22766
- onChange
22853
+ onChange,
22854
+ valueTestId
22767
22855
  }) => {
22768
22856
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
22769
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22857
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { "data-testid": valueTestId, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22770
22858
  InputComboBox,
22771
22859
  {
22772
22860
  options,
@@ -22780,17 +22868,18 @@ var StatusMultiEditor = ({
22780
22868
  isDisabled,
22781
22869
  ...readOnlyProps
22782
22870
  }
22783
- );
22871
+ ) });
22784
22872
  };
22785
22873
  var StatusSingleEditor = ({
22786
22874
  options,
22787
22875
  value,
22788
22876
  isDisabled,
22789
22877
  readOnly,
22790
- onChange
22878
+ onChange,
22879
+ valueTestId
22791
22880
  }) => {
22792
22881
  const readOnlyProps = readOnly ? readOnlyAttributes : {};
22793
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22882
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { "data-testid": valueTestId, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22794
22883
  InputComboBox,
22795
22884
  {
22796
22885
  options,
@@ -22803,9 +22892,9 @@ var StatusSingleEditor = ({
22803
22892
  isDisabled,
22804
22893
  ...readOnlyProps
22805
22894
  }
22806
- );
22895
+ ) });
22807
22896
  };
22808
- var TextEditor = ({ onChange, ariaLabel, value, readOnly }) => {
22897
+ var TextEditor = ({ onChange, ariaLabel, value, readOnly, valueTestId }) => {
22809
22898
  (0, import_react_use4.useDebounce)(() => onChange, 500, [value]);
22810
22899
  return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22811
22900
  Input,
@@ -22815,11 +22904,19 @@ var TextEditor = ({ onChange, ariaLabel, value, readOnly }) => {
22815
22904
  onChange: (e) => onChange(e.currentTarget.value),
22816
22905
  placeholder: "Enter phrase to search\u2026",
22817
22906
  value,
22818
- readOnly
22907
+ readOnly,
22908
+ "data-testid": valueTestId
22819
22909
  }
22820
22910
  );
22821
22911
  };
22822
- var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value, readOnly }) => {
22912
+ var NumberRangeEditor = ({
22913
+ onChange,
22914
+ disabled: disabled2,
22915
+ ariaLabel,
22916
+ value,
22917
+ readOnly,
22918
+ valueTestId
22919
+ }) => {
22823
22920
  const [minValue, setMinValue] = (0, import_react142.useState)("");
22824
22921
  const [maxValue, setMaxValue] = (0, import_react142.useState)("");
22825
22922
  const [error, setError] = (0, import_react142.useState)("");
@@ -22842,41 +22939,50 @@ var NumberRangeEditor = ({ onChange, disabled: disabled2, ariaLabel, value, read
22842
22939
  setError("");
22843
22940
  onChange([minValue, maxValue]);
22844
22941
  }, [maxValue, minValue, setError]);
22845
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: twoColumnGrid, children: [
22846
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22847
- Input,
22848
- {
22849
- label: `${ariaLabel}-min`,
22850
- type: "number",
22851
- showLabel: false,
22852
- min: 0,
22853
- placeholder: "Low",
22854
- onChange: (e) => setMinValue(e.currentTarget.value),
22855
- "aria-invalid": !error ? false : true,
22856
- disabled: disabled2,
22857
- value: value ? value[0] : "",
22858
- readOnly
22859
- }
22860
- ),
22861
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22862
- Input,
22863
- {
22864
- type: "number",
22865
- label: `${ariaLabel}-max`,
22866
- showLabel: false,
22867
- min: 0,
22868
- placeholder: "High",
22869
- onChange: (e) => setMaxValue(e.currentTarget.value),
22870
- "aria-invalid": !error ? false : true,
22871
- disabled: disabled2,
22872
- value: value ? value[1] : "",
22873
- readOnly
22874
- }
22875
- ),
22942
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
22943
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: twoColumnGrid, "data-testid": valueTestId, children: [
22944
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22945
+ Input,
22946
+ {
22947
+ label: `${ariaLabel}-min`,
22948
+ type: "number",
22949
+ showLabel: false,
22950
+ min: 0,
22951
+ placeholder: "Low",
22952
+ onChange: (e) => setMinValue(e.currentTarget.value),
22953
+ "aria-invalid": !error ? false : true,
22954
+ disabled: disabled2,
22955
+ value: value ? value[0] : "",
22956
+ readOnly
22957
+ }
22958
+ ),
22959
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22960
+ Input,
22961
+ {
22962
+ type: "number",
22963
+ label: `${ariaLabel}-max`,
22964
+ showLabel: false,
22965
+ min: 0,
22966
+ placeholder: "High",
22967
+ onChange: (e) => setMaxValue(e.currentTarget.value),
22968
+ "aria-invalid": !error ? false : true,
22969
+ disabled: disabled2,
22970
+ value: value ? value[1] : "",
22971
+ readOnly
22972
+ }
22973
+ )
22974
+ ] }),
22876
22975
  /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(ErrorContainer, { errorMessage: error })
22877
22976
  ] });
22878
22977
  };
22879
- var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly }) => {
22978
+ var NumberEditor = ({
22979
+ ariaLabel,
22980
+ onChange,
22981
+ disabled: disabled2,
22982
+ value,
22983
+ readOnly,
22984
+ valueTestId
22985
+ }) => {
22880
22986
  return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22881
22987
  Input,
22882
22988
  {
@@ -22887,11 +22993,19 @@ var NumberEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly
22887
22993
  onChange: (e) => onChange(e.currentTarget.value),
22888
22994
  disabled: disabled2,
22889
22995
  value,
22890
- readOnly
22996
+ readOnly,
22997
+ "data-testid": valueTestId
22891
22998
  }
22892
22999
  );
22893
23000
  };
22894
- var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value, readOnly }) => {
23001
+ var DateEditor = ({
23002
+ onChange,
23003
+ ariaLabel,
23004
+ disabled: disabled2,
23005
+ value,
23006
+ readOnly,
23007
+ valueTestId
23008
+ }) => {
22895
23009
  return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22896
23010
  Input,
22897
23011
  {
@@ -22901,11 +23015,19 @@ var DateEditor = ({ onChange, ariaLabel, disabled: disabled2, value, readOnly })
22901
23015
  onChange: (e) => onChange(e.currentTarget.value),
22902
23016
  disabled: disabled2,
22903
23017
  value,
22904
- readOnly
23018
+ readOnly,
23019
+ "data-testid": valueTestId
22905
23020
  }
22906
23021
  );
22907
23022
  };
22908
- var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOnly }) => {
23023
+ var DateRangeEditor = ({
23024
+ ariaLabel,
23025
+ onChange,
23026
+ disabled: disabled2,
23027
+ value,
23028
+ readOnly,
23029
+ valueTestId
23030
+ }) => {
22909
23031
  const [minDateValue, setMinDateValue] = (0, import_react142.useState)(value ? value[0] : "");
22910
23032
  const [maxDateValue, setMaxDateValue] = (0, import_react142.useState)(value ? value[1] : "");
22911
23033
  const [error, setError] = (0, import_react142.useState)("");
@@ -22940,33 +23062,35 @@ var DateRangeEditor = ({ ariaLabel, onChange, disabled: disabled2, value, readOn
22940
23062
  setError("");
22941
23063
  onChange([minDateValue, maxDateValue]);
22942
23064
  }, [minDateValue, maxDateValue, setError]);
22943
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: twoColumnGrid, children: [
22944
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22945
- Input,
22946
- {
22947
- label: `${ariaLabel}-min-date`,
22948
- type: "date",
22949
- showLabel: false,
22950
- value: minDateValue,
22951
- onChange: (e) => setMinDateValue(e.currentTarget.value),
22952
- "aria-invalid": !error ? false : true,
22953
- disabled: disabled2,
22954
- readOnly
22955
- }
22956
- ),
22957
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
22958
- Input,
22959
- {
22960
- label: `${ariaLabel}-max-date`,
22961
- type: "date",
22962
- showLabel: false,
22963
- value: maxDateValue,
22964
- onChange: (e) => setMaxDateValue(e.currentTarget.value),
22965
- "aria-invalid": !error ? false : true,
22966
- disabled: disabled2,
22967
- readOnly
22968
- }
22969
- ),
23065
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
23066
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { css: twoColumnGrid, "data-testid": valueTestId, children: [
23067
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
23068
+ Input,
23069
+ {
23070
+ label: `${ariaLabel}-min-date`,
23071
+ type: "date",
23072
+ showLabel: false,
23073
+ value: minDateValue,
23074
+ onChange: (e) => setMinDateValue(e.currentTarget.value),
23075
+ "aria-invalid": !error ? false : true,
23076
+ disabled: disabled2,
23077
+ readOnly
23078
+ }
23079
+ ),
23080
+ /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
23081
+ Input,
23082
+ {
23083
+ label: `${ariaLabel}-max-date`,
23084
+ type: "date",
23085
+ showLabel: false,
23086
+ value: maxDateValue,
23087
+ onChange: (e) => setMaxDateValue(e.currentTarget.value),
23088
+ "aria-invalid": !error ? false : true,
23089
+ disabled: disabled2,
23090
+ readOnly
23091
+ }
23092
+ )
23093
+ ] }),
22970
23094
  /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(ErrorContainer, { errorMessage: error })
22971
23095
  ] });
22972
23096
  };
@@ -23106,7 +23230,7 @@ var FilterItem = ({
23106
23230
  menuIsOpen: false,
23107
23231
  isClearable: false
23108
23232
  } : {};
23109
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { css: ConditionalFilterRow, children: [
23233
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { css: ConditionalFilterRow, "data-testid": "filter-item", children: [
23110
23234
  /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { children: index === 0 ? "where" : "and" }),
23111
23235
  /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { css: ConditionalInputRow, children: [
23112
23236
  /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
@@ -23119,7 +23243,8 @@ var FilterItem = ({
23119
23243
  onParamChange((_a2 = e == null ? void 0 : e.value) != null ? _a2 : "");
23120
23244
  },
23121
23245
  value: selectedFieldValue,
23122
- ...readOnlyProps
23246
+ ...readOnlyProps,
23247
+ id: "filter-field"
23123
23248
  }
23124
23249
  ),
23125
23250
  /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
@@ -23133,7 +23258,8 @@ var FilterItem = ({
23133
23258
  },
23134
23259
  isDisabled: !filters[index].field,
23135
23260
  value: selectedOperatorValue,
23136
- ...readOnlyProps
23261
+ ...readOnlyProps,
23262
+ id: "filter-operator"
23137
23263
  }
23138
23264
  ),
23139
23265
  /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
@@ -23145,7 +23271,8 @@ var FilterItem = ({
23145
23271
  onChange: (e) => onValueChange(e != null ? e : ""),
23146
23272
  readOnly,
23147
23273
  isDisabled: !filters[index].operator,
23148
- value: selectedMetaValue
23274
+ value: selectedMetaValue,
23275
+ valueTestId: "filter-value"
23149
23276
  }
23150
23277
  ),
23151
23278
  /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
@@ -23155,6 +23282,7 @@ var FilterItem = ({
23155
23282
  onClick: () => handleDeleteFilter(index),
23156
23283
  "aria-label": "delete filter",
23157
23284
  css: IconBtn,
23285
+ "data-testid": "delete-filter",
23158
23286
  children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Icon, { icon: "trash", iconColor: "red", size: "1rem" })
23159
23287
  }
23160
23288
  )
@@ -23189,10 +23317,19 @@ var FilterItems = ({
23189
23317
  {
23190
23318
  id: "search-and-filter-options",
23191
23319
  menuControls: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_jsx_runtime123.Fragment, { children: [
23192
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("button", { type: "button", css: AddConditionalBtn, onClick: handleAddFilter, children: [
23193
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Icon, { icon: "math-plus", iconColor: "currentColor", size: "1rem" }),
23194
- addButtonText
23195
- ] }),
23320
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
23321
+ "button",
23322
+ {
23323
+ type: "button",
23324
+ css: AddConditionalBtn,
23325
+ onClick: handleAddFilter,
23326
+ "data-testid": "add-filter",
23327
+ children: [
23328
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Icon, { icon: "math-plus", iconColor: "currentColor", size: "1rem" }),
23329
+ addButtonText
23330
+ ]
23331
+ }
23332
+ ),
23196
23333
  (filters == null ? void 0 : filters.length) ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
23197
23334
  "button",
23198
23335
  {
@@ -23202,6 +23339,7 @@ var FilterItems = ({
23202
23339
  handleResetFilters();
23203
23340
  setFilterVisibility(void 0);
23204
23341
  },
23342
+ "data-testid": "reset-filters",
23205
23343
  children: resetButtonText
23206
23344
  }
23207
23345
  ) : null
@@ -23587,7 +23725,7 @@ var SearchAndFilter = ({
23587
23725
  css: SearchAndFilterControlsWrapper(
23588
23726
  viewSwitchControls ? "auto auto 1fr 0.5fr" : "auto auto 1fr"
23589
23727
  ),
23590
- children: !filterControls ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(FilterControls, { hideSearchInput: !onSearchChange }) : filterControls
23728
+ children: !filterControls ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(FilterControls, { hideSearchInput: !onSearchChange, defaultSortByValue }) : filterControls
23591
23729
  }
23592
23730
  ),
23593
23731
  viewSwitchControls
@@ -24320,6 +24458,7 @@ var ToastContainer = ({ limit = 4 }) => {
24320
24458
  RICHTEXT_OPERATORS,
24321
24459
  ResolveIcon,
24322
24460
  RichTextToolbarIcon,
24461
+ SYSTEM_DATE_OPERATORS,
24323
24462
  SYSTEM_FIELD_OPERATORS,
24324
24463
  ScrollableList,
24325
24464
  ScrollableListInputItem,
@@ -24360,6 +24499,7 @@ var ToastContainer = ({ limit = 4 }) => {
24360
24499
  ToastContainer,
24361
24500
  Tooltip,
24362
24501
  TwoColumnLayout,
24502
+ USER_OPERATORS,
24363
24503
  UniformBadge,
24364
24504
  UniformLogo,
24365
24505
  UniformLogoLarge,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/design-system",
3
- "version": "19.121.0",
3
+ "version": "19.123.1-alpha.9+0f8fa37358",
4
4
  "description": "Uniform design system components",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
@@ -23,8 +23,8 @@
23
23
  "@storybook/react": "6.5.16",
24
24
  "@types/react": "18.2.40",
25
25
  "@types/react-dom": "18.2.17",
26
- "@uniformdev/canvas": "^19.121.0",
27
- "@uniformdev/richtext": "^19.121.0",
26
+ "@uniformdev/canvas": "^19.123.1-alpha.9+0f8fa37358",
27
+ "@uniformdev/richtext": "^19.123.1-alpha.9+0f8fa37358",
28
28
  "autoprefixer": "10.4.16",
29
29
  "hygen": "6.2.11",
30
30
  "postcss": "8.4.32",
@@ -71,5 +71,5 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "gitHead": "4bab305415aa38c7d473a08c15bcd78fcb7d8d88"
74
+ "gitHead": "0f8fa37358fa0d8bc2e77e00b09d456c7053ee63"
75
75
  }