@helpwave/hightide 0.9.2 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6925,6 +6925,7 @@ __export(index_exports, {
6925
6925
  SimpleSearch: () => SimpleSearch,
6926
6926
  SimpleSearchWithMapping: () => SimpleSearchWithMapping,
6927
6927
  SingleSelectProperty: () => SingleSelectProperty,
6928
+ SortingList: () => SortingList,
6928
6929
  StepperBar: () => StepperBar,
6929
6930
  StorageListener: () => StorageListener,
6930
6931
  Switch: () => Switch,
@@ -8604,6 +8605,7 @@ var hightideTranslation = {
8604
8605
  "de-DE": {
8605
8606
  "add": `Hinzuf\xFCgen`,
8606
8607
  "addFilter": `Filter hinzuf\xFCgen`,
8608
+ "addSorting": `Sortierung hinzuf\xFCgen`,
8607
8609
  "addTime": `Uhrzeit hinzuf\xFCgen`,
8608
8610
  "after": `Nach`,
8609
8611
  "age": `Alter`,
@@ -8815,6 +8817,8 @@ var hightideTranslation = {
8815
8817
  "slideOf": ({ index, length }) => {
8816
8818
  return `Slide ${index} von ${length} slides`;
8817
8819
  },
8820
+ "sortAsc": `ASC`,
8821
+ "sortDesc": `DESC`,
8818
8822
  "sorting": `Sortierung`,
8819
8823
  "sSortingState": ({ sortDirection }) => {
8820
8824
  return import_internationalization.TranslationGen.resolveSelect(sortDirection, {
@@ -8971,6 +8975,7 @@ var hightideTranslation = {
8971
8975
  "en-US": {
8972
8976
  "add": `Add`,
8973
8977
  "addFilter": `Add filter`,
8978
+ "addSorting": `Add sorting`,
8974
8979
  "addTime": `Add Time`,
8975
8980
  "after": `After`,
8976
8981
  "age": `Age`,
@@ -9182,6 +9187,8 @@ var hightideTranslation = {
9182
9187
  "slideOf": ({ index, length }) => {
9183
9188
  return `Slide ${index} of ${length} slides`;
9184
9189
  },
9190
+ "sortAsc": `ASC`,
9191
+ "sortDesc": `DESC`,
9185
9192
  "sorting": `Sorting`,
9186
9193
  "sSortingState": ({ sortDirection }) => {
9187
9194
  return import_internationalization.TranslationGen.resolveSelect(sortDirection, {
@@ -14636,40 +14643,40 @@ function isParameterValidForOperator(dataType, operator, parameter) {
14636
14643
  }
14637
14644
  switch (dataType) {
14638
14645
  case "text": {
14639
- return typeof parameter.searchText === "string";
14646
+ return typeof parameter.stringValue === "string";
14640
14647
  }
14641
14648
  case "number": {
14642
14649
  if (operator === "between" || operator === "notBetween") {
14643
- const min = parameter.minNumber;
14644
- const max = parameter.maxNumber;
14650
+ const min = parameter.numberMin;
14651
+ const max = parameter.numberMax;
14645
14652
  return typeof min === "number" && !Number.isNaN(min) && typeof max === "number" && !Number.isNaN(max) && min <= max;
14646
14653
  }
14647
- const v = parameter.compareValue;
14654
+ const v = parameter.numberValue;
14648
14655
  return typeof v === "number" && !Number.isNaN(v);
14649
14656
  }
14650
14657
  case "date":
14651
14658
  case "dateTime": {
14652
14659
  if (operator === "between" || operator === "notBetween") {
14653
- const minDate = DateUtils.tryParseDate(parameter.minDate);
14654
- const maxDate = DateUtils.tryParseDate(parameter.maxDate);
14660
+ const minDate = DateUtils.tryParseDate(parameter.dateMin);
14661
+ const maxDate = DateUtils.tryParseDate(parameter.dateMax);
14655
14662
  if (!minDate || !maxDate) return false;
14656
14663
  const minNorm = dataType === "date" ? DateUtils.toOnlyDate(minDate).getTime() : DateUtils.toDateTimeOnly(minDate).getTime();
14657
14664
  const maxNorm = dataType === "date" ? DateUtils.toOnlyDate(maxDate).getTime() : DateUtils.toDateTimeOnly(maxDate).getTime();
14658
14665
  return minNorm <= maxNorm;
14659
14666
  }
14660
- return DateUtils.tryParseDate(parameter.compareDate) != null;
14667
+ return DateUtils.tryParseDate(parameter.dateValue) != null;
14661
14668
  }
14662
14669
  case "boolean":
14663
14670
  return true;
14664
14671
  case "multiTags": {
14665
- return Array.isArray(parameter.multiOptionSearch);
14672
+ return Array.isArray(parameter.uuidValues);
14666
14673
  }
14667
14674
  case "singleTag": {
14668
14675
  if (operator === "contains" || operator === "notContains") {
14669
- return Array.isArray(parameter.multiOptionSearch);
14676
+ return Array.isArray(parameter.uuidValues);
14670
14677
  }
14671
14678
  if (operator === "equals" || operator === "notEquals") {
14672
- return typeof parameter.singleOptionSearch === "string";
14679
+ return typeof parameter.uuidValue === "string";
14673
14680
  }
14674
14681
  return true;
14675
14682
  }
@@ -14691,9 +14698,8 @@ var FilterValueUtils = {
14691
14698
  isValid: isFilterValueValid
14692
14699
  };
14693
14700
  function filterText(value, operator, parameter) {
14694
- const isCaseSensitive = parameter.isCaseSensitive ?? false;
14695
- const searchText = isCaseSensitive ? parameter.searchText ?? "" : (parameter.searchText ?? "").toLowerCase();
14696
- const cellText = isCaseSensitive ? value?.toString() ?? "" : value?.toString().toLowerCase() ?? "";
14701
+ const searchText = parameter.stringValue ?? "";
14702
+ const cellText = value?.toString() ?? "";
14697
14703
  switch (operator) {
14698
14704
  case "equals":
14699
14705
  return cellText === searchText;
@@ -14727,21 +14733,21 @@ function filterNumber(value, operator, parameter) {
14727
14733
  }
14728
14734
  switch (operator) {
14729
14735
  case "equals":
14730
- return value === parameter.compareValue;
14736
+ return value === parameter.numberValue;
14731
14737
  case "notEquals":
14732
- return value !== parameter.compareValue;
14738
+ return value !== parameter.numberValue;
14733
14739
  case "greaterThan":
14734
- return value > (parameter.compareValue ?? 0);
14740
+ return value > (parameter.numberValue ?? 0);
14735
14741
  case "greaterThanOrEqual":
14736
- return value >= (parameter.compareValue ?? 0);
14742
+ return value >= (parameter.numberValue ?? 0);
14737
14743
  case "lessThan":
14738
- return value < (parameter.compareValue ?? 0);
14744
+ return value < (parameter.numberValue ?? 0);
14739
14745
  case "lessThanOrEqual":
14740
- return value <= (parameter.compareValue ?? 0);
14746
+ return value <= (parameter.numberValue ?? 0);
14741
14747
  case "between":
14742
- return value >= (parameter.minNumber ?? -Infinity) && value <= (parameter.maxNumber ?? Infinity);
14748
+ return value >= (parameter.numberMin ?? -Infinity) && value <= (parameter.numberMax ?? Infinity);
14743
14749
  case "notBetween":
14744
- return value < (parameter.minNumber ?? -Infinity) || value > (parameter.maxNumber ?? Infinity);
14750
+ return value < (parameter.numberMin ?? -Infinity) || value > (parameter.numberMax ?? Infinity);
14745
14751
  case "isUndefined":
14746
14752
  return value === void 0 || value === null;
14747
14753
  case "isNotUndefined":
@@ -14764,44 +14770,44 @@ function filterDate(value, operator, parameter) {
14764
14770
  const normalizedDate = DateUtils.toOnlyDate(date);
14765
14771
  switch (operator) {
14766
14772
  case "equals": {
14767
- const filterDate2 = DateUtils.tryParseDate(parameter.compareDate);
14773
+ const filterDate2 = DateUtils.tryParseDate(parameter.dateValue);
14768
14774
  if (!filterDate2) return false;
14769
14775
  return normalizedDate.getTime() === DateUtils.toOnlyDate(filterDate2).getTime();
14770
14776
  }
14771
14777
  case "notEquals": {
14772
- const filterDate2 = DateUtils.tryParseDate(parameter.compareDate);
14778
+ const filterDate2 = DateUtils.tryParseDate(parameter.dateValue);
14773
14779
  if (!filterDate2) return false;
14774
14780
  return normalizedDate.getTime() !== DateUtils.toOnlyDate(filterDate2).getTime();
14775
14781
  }
14776
14782
  case "greaterThan": {
14777
- const filterDate2 = DateUtils.tryParseDate(parameter.compareDate);
14783
+ const filterDate2 = DateUtils.tryParseDate(parameter.dateValue);
14778
14784
  if (!filterDate2) return false;
14779
14785
  return normalizedDate > DateUtils.toOnlyDate(filterDate2);
14780
14786
  }
14781
14787
  case "greaterThanOrEqual": {
14782
- const filterDate2 = DateUtils.tryParseDate(parameter.compareDate);
14788
+ const filterDate2 = DateUtils.tryParseDate(parameter.dateValue);
14783
14789
  if (!filterDate2) return false;
14784
14790
  return normalizedDate >= DateUtils.toOnlyDate(filterDate2);
14785
14791
  }
14786
14792
  case "lessThan": {
14787
- const filterDate2 = DateUtils.tryParseDate(parameter.compareDate);
14793
+ const filterDate2 = DateUtils.tryParseDate(parameter.dateValue);
14788
14794
  if (!filterDate2) return false;
14789
14795
  return normalizedDate < DateUtils.toOnlyDate(filterDate2);
14790
14796
  }
14791
14797
  case "lessThanOrEqual": {
14792
- const filterDate2 = DateUtils.tryParseDate(parameter.compareDate);
14798
+ const filterDate2 = DateUtils.tryParseDate(parameter.dateValue);
14793
14799
  if (!filterDate2) return false;
14794
14800
  return normalizedDate <= DateUtils.toOnlyDate(filterDate2);
14795
14801
  }
14796
14802
  case "between": {
14797
- const minDate = DateUtils.tryParseDate(parameter.minDate);
14798
- const maxDate = DateUtils.tryParseDate(parameter.maxDate);
14803
+ const minDate = DateUtils.tryParseDate(parameter.dateMin);
14804
+ const maxDate = DateUtils.tryParseDate(parameter.dateMax);
14799
14805
  if (!minDate || !maxDate) return false;
14800
14806
  return normalizedDate >= DateUtils.toOnlyDate(minDate) && normalizedDate <= DateUtils.toOnlyDate(maxDate);
14801
14807
  }
14802
14808
  case "notBetween": {
14803
- const minDate = DateUtils.tryParseDate(parameter.minDate);
14804
- const maxDate = DateUtils.tryParseDate(parameter.maxDate);
14809
+ const minDate = DateUtils.tryParseDate(parameter.dateMin);
14810
+ const maxDate = DateUtils.tryParseDate(parameter.dateMax);
14805
14811
  if (!minDate || !maxDate) return false;
14806
14812
  return normalizedDate < DateUtils.toOnlyDate(minDate) || normalizedDate > DateUtils.toOnlyDate(maxDate);
14807
14813
  }
@@ -14823,44 +14829,44 @@ function filterDateTime(value, operator, parameter) {
14823
14829
  const normalizedDatetime = DateUtils.toDateTimeOnly(dateTime);
14824
14830
  switch (operator) {
14825
14831
  case "equals": {
14826
- const filterDatetime = DateUtils.tryParseDate(parameter.compareDate);
14832
+ const filterDatetime = DateUtils.tryParseDate(parameter.dateValue);
14827
14833
  if (!filterDatetime) return false;
14828
14834
  return normalizedDatetime.getTime() === DateUtils.toDateTimeOnly(filterDatetime).getTime();
14829
14835
  }
14830
14836
  case "notEquals": {
14831
- const filterDatetime = DateUtils.tryParseDate(parameter.compareDate);
14837
+ const filterDatetime = DateUtils.tryParseDate(parameter.dateValue);
14832
14838
  if (!filterDatetime) return false;
14833
14839
  return normalizedDatetime.getTime() !== DateUtils.toDateTimeOnly(filterDatetime).getTime();
14834
14840
  }
14835
14841
  case "greaterThan": {
14836
- const filterDatetime = DateUtils.tryParseDate(parameter.compareDate);
14842
+ const filterDatetime = DateUtils.tryParseDate(parameter.dateValue);
14837
14843
  if (!filterDatetime) return false;
14838
14844
  return normalizedDatetime > DateUtils.toDateTimeOnly(filterDatetime);
14839
14845
  }
14840
14846
  case "greaterThanOrEqual": {
14841
- const filterDatetime = DateUtils.tryParseDate(parameter.compareDate);
14847
+ const filterDatetime = DateUtils.tryParseDate(parameter.dateValue);
14842
14848
  if (!filterDatetime) return false;
14843
14849
  return normalizedDatetime >= DateUtils.toDateTimeOnly(filterDatetime);
14844
14850
  }
14845
14851
  case "lessThan": {
14846
- const filterDatetime = DateUtils.tryParseDate(parameter.compareDate);
14852
+ const filterDatetime = DateUtils.tryParseDate(parameter.dateValue);
14847
14853
  if (!filterDatetime) return false;
14848
14854
  return normalizedDatetime < DateUtils.toDateTimeOnly(filterDatetime);
14849
14855
  }
14850
14856
  case "lessThanOrEqual": {
14851
- const filterDatetime = DateUtils.tryParseDate(parameter.compareDate);
14857
+ const filterDatetime = DateUtils.tryParseDate(parameter.dateValue);
14852
14858
  if (!filterDatetime) return false;
14853
14859
  return normalizedDatetime <= DateUtils.toDateTimeOnly(filterDatetime);
14854
14860
  }
14855
14861
  case "between": {
14856
- const minDatetime = DateUtils.tryParseDate(parameter.minDate);
14857
- const maxDatetime = DateUtils.tryParseDate(parameter.maxDate);
14862
+ const minDatetime = DateUtils.tryParseDate(parameter.dateMin);
14863
+ const maxDatetime = DateUtils.tryParseDate(parameter.dateMax);
14858
14864
  if (!minDatetime || !maxDatetime) return false;
14859
14865
  return normalizedDatetime >= DateUtils.toDateTimeOnly(minDatetime) && normalizedDatetime <= DateUtils.toDateTimeOnly(maxDatetime);
14860
14866
  }
14861
14867
  case "notBetween": {
14862
- const minDatetime = DateUtils.tryParseDate(parameter.minDate);
14863
- const maxDatetime = DateUtils.tryParseDate(parameter.maxDate);
14868
+ const minDatetime = DateUtils.tryParseDate(parameter.dateMin);
14869
+ const maxDatetime = DateUtils.tryParseDate(parameter.dateMax);
14864
14870
  if (!minDatetime || !maxDatetime) return false;
14865
14871
  return normalizedDatetime < DateUtils.toDateTimeOnly(minDatetime) || normalizedDatetime > DateUtils.toDateTimeOnly(maxDatetime);
14866
14872
  }
@@ -14885,28 +14891,28 @@ function filterBoolean(value, operator) {
14885
14891
  function filterMultiTags(value, operator, parameter) {
14886
14892
  switch (operator) {
14887
14893
  case "equals": {
14888
- if (!Array.isArray(value) || !Array.isArray(parameter.multiOptionSearch)) return false;
14889
- if (value.length !== parameter.multiOptionSearch.length) return false;
14894
+ if (!Array.isArray(value) || !Array.isArray(parameter.uuidValues)) return false;
14895
+ if (value.length !== parameter.uuidValues.length) return false;
14890
14896
  const valueSet = new Set(value);
14891
- const searchTagsSet = new Set(parameter.multiOptionSearch);
14897
+ const searchTagsSet = new Set(parameter.uuidValues);
14892
14898
  if (valueSet.size !== searchTagsSet.size) return false;
14893
14899
  return Array.from(valueSet).every((tag) => searchTagsSet.has(tag));
14894
14900
  }
14895
14901
  case "notEquals": {
14896
- if (!Array.isArray(value) || !Array.isArray(parameter.multiOptionSearch)) return true;
14897
- if (value.length !== parameter.multiOptionSearch.length) return true;
14902
+ if (!Array.isArray(value) || !Array.isArray(parameter.uuidValues)) return true;
14903
+ if (value.length !== parameter.uuidValues.length) return true;
14898
14904
  const valueSet = new Set(value);
14899
- const searchTagsSet = new Set(parameter.multiOptionSearch);
14905
+ const searchTagsSet = new Set(parameter.uuidValues);
14900
14906
  if (valueSet.size !== searchTagsSet.size) return true;
14901
14907
  return !Array.from(valueSet).every((tag) => searchTagsSet.has(tag));
14902
14908
  }
14903
14909
  case "contains": {
14904
- if (!Array.isArray(value) || !Array.isArray(parameter.multiOptionSearch)) return false;
14905
- return parameter.multiOptionSearch.every((tag) => value.includes(tag));
14910
+ if (!Array.isArray(value) || !Array.isArray(parameter.uuidValues)) return false;
14911
+ return parameter.uuidValues.every((tag) => value.includes(tag));
14906
14912
  }
14907
14913
  case "notContains": {
14908
- if (!Array.isArray(value) || !Array.isArray(parameter.multiOptionSearch)) return true;
14909
- return !parameter.multiOptionSearch.every((tag) => value.includes(tag));
14914
+ if (!Array.isArray(value) || !Array.isArray(parameter.uuidValues)) return true;
14915
+ return !parameter.uuidValues.every((tag) => value.includes(tag));
14910
14916
  }
14911
14917
  case "isUndefined":
14912
14918
  return value === void 0 || value === null;
@@ -14919,13 +14925,13 @@ function filterMultiTags(value, operator, parameter) {
14919
14925
  function filterSingleTag(value, operator, parameter) {
14920
14926
  switch (operator) {
14921
14927
  case "equals":
14922
- return value === parameter.singleOptionSearch;
14928
+ return value === parameter.uuidValue;
14923
14929
  case "notEquals":
14924
- return value !== parameter.singleOptionSearch;
14930
+ return value !== parameter.uuidValue;
14925
14931
  case "contains":
14926
- return parameter.multiOptionSearch?.includes(value) ?? false;
14932
+ return parameter.uuidValues?.includes(value) ?? false;
14927
14933
  case "notContains":
14928
- return !(parameter.multiOptionSearch?.includes(value) ?? false);
14934
+ return !(parameter.uuidValues?.includes(value) ?? false);
14929
14935
  case "isUndefined":
14930
14936
  return value === void 0 || value === null;
14931
14937
  case "isNotUndefined":
@@ -14973,81 +14979,81 @@ function useFilterValueTranslation() {
14973
14979
  switch (value.operator) {
14974
14980
  case "equals":
14975
14981
  if (value.dataType === "date" || value.dataType === "dateTime") {
14976
- return translation("rEquals", { value: formatDateParam(p.compareDate, locale, dateFormat) ?? "-" });
14982
+ return translation("rEquals", { value: formatDateParam(p.dateValue, locale, dateFormat) ?? "-" });
14977
14983
  }
14978
14984
  if (value.dataType === "singleTag") {
14979
- return translation("rEquals", { value: tagToLabel(tags, p.singleOptionSearch) });
14985
+ return translation("rEquals", { value: tagToLabel(tags, p.uuidValue) });
14980
14986
  }
14981
14987
  if (value.dataType === "multiTags") {
14982
- const valueStr = (p.multiOptionSearch ?? []).map((v) => tagToLabel(tags, v)).join(", ");
14988
+ const valueStr = (p.uuidValues ?? []).map((v) => tagToLabel(tags, v)).join(", ");
14983
14989
  return translation("rEquals", { value: valueStr });
14984
14990
  }
14985
- return translation("rEquals", { value: String(p.searchText ?? p.compareValue ?? "") });
14991
+ return translation("rEquals", { value: String(p.stringValue ?? p.numberValue ?? "") });
14986
14992
  case "notEquals":
14987
14993
  if (value.dataType === "date" || value.dataType === "dateTime") {
14988
- return translation("rNotEquals", { value: formatDateParam(p.compareDate, locale, dateFormat) });
14994
+ return translation("rNotEquals", { value: formatDateParam(p.dateValue, locale, dateFormat) });
14989
14995
  }
14990
14996
  if (value.dataType === "singleTag") {
14991
- return translation("rNotEquals", { value: tagToLabel(tags, p.singleOptionSearch) });
14997
+ return translation("rNotEquals", { value: tagToLabel(tags, p.uuidValue) });
14992
14998
  }
14993
14999
  if (value.dataType === "multiTags") {
14994
- const valueStr = (p.multiOptionSearch ?? []).map((v) => tagToLabel(tags, v)).join(", ");
15000
+ const valueStr = (p.uuidValues ?? []).map((v) => tagToLabel(tags, v)).join(", ");
14995
15001
  return translation("rNotEquals", { value: valueStr });
14996
15002
  }
14997
- return translation("rNotEquals", { value: String(p.searchText ?? p.compareValue ?? "") });
15003
+ return translation("rNotEquals", { value: String(p.stringValue ?? p.numberValue ?? "") });
14998
15004
  case "contains":
14999
15005
  if (value.dataType === "multiTags" || value.dataType === "singleTag") {
15000
- const valueStr = value.dataType === "singleTag" ? tagToLabel(tags, p.singleOptionSearch) : (p.multiOptionSearch ?? []).map((v) => tagToLabel(tags, v)).join(", ");
15006
+ const valueStr = value.dataType === "singleTag" ? tagToLabel(tags, p.uuidValue) : (p.uuidValues ?? []).map((v) => tagToLabel(tags, v)).join(", ");
15001
15007
  return translation("rContains", { value: valueStr });
15002
15008
  }
15003
- return translation("rContains", { value: String(p.searchText ?? "") });
15009
+ return translation("rContains", { value: String(p.stringValue ?? "") });
15004
15010
  case "notContains":
15005
15011
  if (value.dataType === "multiTags" || value.dataType === "singleTag") {
15006
- const valueStr = value.dataType === "singleTag" ? tagToLabel(tags, p.singleOptionSearch) : (p.multiOptionSearch ?? []).map((v) => tagToLabel(tags, v)).join(", ");
15012
+ const valueStr = value.dataType === "singleTag" ? tagToLabel(tags, p.uuidValue) : (p.uuidValues ?? []).map((v) => tagToLabel(tags, v)).join(", ");
15007
15013
  return translation("rNotContains", { value: valueStr });
15008
15014
  }
15009
- return translation("rNotContains", { value: `"${String(p.searchText ?? "")}"` });
15015
+ return translation("rNotContains", { value: `"${String(p.stringValue ?? "")}"` });
15010
15016
  case "startsWith":
15011
- return translation("rStartsWith", { value: `"${String(p.searchText ?? "")}"` });
15017
+ return translation("rStartsWith", { value: `"${String(p.stringValue ?? "")}"` });
15012
15018
  case "endsWith":
15013
- return translation("rEndsWith", { value: `"${String(p.searchText ?? "")}"` });
15019
+ return translation("rEndsWith", { value: `"${String(p.stringValue ?? "")}"` });
15014
15020
  case "greaterThan":
15015
15021
  return translation("rGreaterThan", {
15016
- value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.compareDate, locale, dateFormat) ?? "-" : String(p.compareValue ?? "-")
15022
+ value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.dateValue, locale, dateFormat) ?? "-" : String(p.numberValue ?? "-")
15017
15023
  });
15018
15024
  case "greaterThanOrEqual":
15019
15025
  return translation("rGreaterThanOrEqual", {
15020
- value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.compareDate, locale, dateFormat) ?? "-" : String(p.compareValue ?? "-")
15026
+ value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.dateValue, locale, dateFormat) ?? "-" : String(p.numberValue ?? "-")
15021
15027
  });
15022
15028
  case "lessThan":
15023
15029
  return translation("rLessThan", {
15024
- value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.compareDate, locale, dateFormat) ?? "-" : String(p.compareValue ?? "-")
15030
+ value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.dateValue, locale, dateFormat) ?? "-" : String(p.numberValue ?? "-")
15025
15031
  });
15026
15032
  case "lessThanOrEqual":
15027
15033
  return translation("rLessThanOrEqual", {
15028
- value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.compareDate, locale, dateFormat) ?? "-" : String(p.compareValue ?? "-")
15034
+ value: value.dataType === "date" || value.dataType === "dateTime" ? formatDateParam(p.dateValue, locale, dateFormat) ?? "-" : String(p.numberValue ?? "-")
15029
15035
  });
15030
15036
  case "between":
15031
15037
  if (value.dataType === "date" || value.dataType === "dateTime") {
15032
15038
  return translation("rBetween", {
15033
- value1: formatDateParam(p.minDate, locale, dateFormat) ?? "-",
15034
- value2: formatDateParam(p.maxDate, locale, dateFormat) ?? "-"
15039
+ value1: formatDateParam(p.dateMin, locale, dateFormat) ?? "-",
15040
+ value2: formatDateParam(p.dateMax, locale, dateFormat) ?? "-"
15035
15041
  });
15036
15042
  }
15037
15043
  return translation("rBetween", {
15038
- value1: String(p.minNumber ?? "-"),
15039
- value2: String(p.maxNumber ?? "-")
15044
+ value1: String(p.numberMin ?? "-"),
15045
+ value2: String(p.numberMax ?? "-")
15040
15046
  });
15041
15047
  case "notBetween":
15042
15048
  if (value.dataType === "date" || value.dataType === "dateTime") {
15043
15049
  return translation("rNotBetween", {
15044
- value1: formatDateParam(p.minDate, locale, dateFormat) ?? "-",
15045
- value2: formatDateParam(p.maxDate, locale, dateFormat) ?? "-"
15050
+ value1: formatDateParam(p.dateMin, locale, dateFormat) ?? "-",
15051
+ value2: formatDateParam(p.dateMax, locale, dateFormat) ?? "-"
15046
15052
  });
15047
15053
  }
15048
15054
  return translation("rNotBetween", {
15049
- value1: String(p.minNumber ?? "-"),
15050
- value2: String(p.maxNumber ?? "-")
15055
+ value1: String(p.numberMin ?? "-"),
15056
+ value2: String(p.numberMax ?? "-")
15051
15057
  });
15052
15058
  case "isTrue":
15053
15059
  return translation("isTrue");
@@ -15456,85 +15462,22 @@ var TableSortButton = ({
15456
15462
  };
15457
15463
 
15458
15464
  // src/components/layout/table/TableFilterButton.tsx
15459
- var import_lucide_react21 = require("lucide-react");
15460
- var import_react88 = require("react");
15461
- var import_react_table3 = require("@tanstack/react-table");
15462
-
15463
- // src/components/user-interaction/data/FilterPopUp.tsx
15464
15465
  var import_lucide_react20 = require("lucide-react");
15465
15466
  var import_react87 = require("react");
15467
+ var import_react_table3 = require("@tanstack/react-table");
15466
15468
 
15467
- // src/components/user-interaction/Checkbox.tsx
15468
- var import_lucide_react16 = require("lucide-react");
15469
- var import_react72 = require("react");
15470
- var import_jsx_runtime62 = require("react/jsx-runtime");
15471
- var Checkbox = ({
15472
- value: controlledValue,
15473
- initialValue = false,
15474
- indeterminate,
15475
- required = false,
15476
- invalid = false,
15477
- disabled = false,
15478
- readOnly = false,
15479
- onValueChange,
15480
- onEditComplete,
15481
- size = "md",
15482
- alwaysShowCheckIcon = false,
15483
- ...props
15484
- }) => {
15485
- const onEditCompleteStable = useEventCallbackStabilizer(onEditComplete);
15486
- const onValueChangeStable = useEventCallbackStabilizer(onValueChange);
15487
- const onChangeWrapper = (0, import_react72.useCallback)((value2) => {
15488
- onValueChangeStable(value2);
15489
- onEditCompleteStable(value2);
15490
- }, [onValueChangeStable, onEditCompleteStable]);
15491
- const [value, setValue] = useControlledState({
15492
- value: controlledValue,
15493
- onValueChange: onChangeWrapper,
15494
- defaultValue: initialValue
15495
- });
15496
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
15497
- "div",
15498
- {
15499
- ...props,
15500
- onClick: (event) => {
15501
- if (!disabled) {
15502
- setValue((prev) => !prev);
15503
- }
15504
- props.onClick?.(event);
15505
- },
15506
- onKeyDown: (event) => {
15507
- if (disabled) return;
15508
- if (event.key === " " || event.key === "Enter") {
15509
- event.preventDefault();
15510
- setValue((prev) => !prev);
15511
- }
15512
- props.onKeyDown?.(event);
15513
- },
15514
- "data-checked": !indeterminate ? value : "indeterminate",
15515
- "data-size": size ?? void 0,
15516
- ...PropsUtil.dataAttributes.interactionStates({ disabled, invalid, readOnly, required }),
15517
- role: "checkbox",
15518
- tabIndex: disabled ? -1 : 0,
15519
- "aria-checked": indeterminate ? "mixed" : value,
15520
- ...PropsUtil.aria.interactionStates({ disabled, invalid, readOnly, required }, props),
15521
- "data-name": props["data-name"] ?? "checkbox",
15522
- children: [
15523
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Visibility, { isVisible: indeterminate, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react16.Minus, { "data-name": "checkbox-indicator", className: "checkbox-indicator", "aria-hidden": true }) }),
15524
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Visibility, { isVisible: !indeterminate && (alwaysShowCheckIcon || value), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react16.Check, { "data-name": "checkbox-indicator", className: "checkbox-indicator", "aria-hidden": true }) })
15525
- ]
15526
- }
15527
- );
15528
- };
15469
+ // src/components/user-interaction/data/FilterPopUp.tsx
15470
+ var import_lucide_react19 = require("lucide-react");
15471
+ var import_react86 = require("react");
15529
15472
 
15530
15473
  // src/components/user-interaction/input/DateTimeInput.tsx
15531
- var import_react78 = require("react");
15532
- var import_lucide_react18 = require("lucide-react");
15474
+ var import_react77 = require("react");
15475
+ var import_lucide_react17 = require("lucide-react");
15533
15476
  var import_clsx24 = __toESM(require("clsx"));
15534
15477
 
15535
15478
  // src/components/user-interaction/date/TimePicker.tsx
15536
- var import_react73 = require("react");
15537
- var import_jsx_runtime63 = require("react/jsx-runtime");
15479
+ var import_react72 = require("react");
15480
+ var import_jsx_runtime62 = require("react/jsx-runtime");
15538
15481
  var TimePicker = ({
15539
15482
  value: controlledValue,
15540
15483
  initialValue = /* @__PURE__ */ new Date(),
@@ -15552,11 +15495,11 @@ var TimePicker = ({
15552
15495
  onValueChange,
15553
15496
  defaultValue: initialValue
15554
15497
  });
15555
- const minuteRef = (0, import_react73.useRef)(null);
15556
- const hourRef = (0, import_react73.useRef)(null);
15498
+ const minuteRef = (0, import_react72.useRef)(null);
15499
+ const hourRef = (0, import_react72.useRef)(null);
15557
15500
  const isPM = value.getHours() > 11;
15558
15501
  const hours = is24HourFormat ? range(24) : range(12);
15559
- const minutes = (0, import_react73.useMemo)(() => {
15502
+ const minutes = (0, import_react72.useMemo)(() => {
15560
15503
  const full = range(60);
15561
15504
  switch (minuteIncrement) {
15562
15505
  case "5min":
@@ -15569,7 +15512,7 @@ var TimePicker = ({
15569
15512
  return full.filter((value2) => value2 % 30 === 0);
15570
15513
  }
15571
15514
  }, [minuteIncrement]);
15572
- const seconds = (0, import_react73.useMemo)(() => {
15515
+ const seconds = (0, import_react72.useMemo)(() => {
15573
15516
  const full = range(60);
15574
15517
  switch (secondIncrement) {
15575
15518
  case "1s":
@@ -15584,7 +15527,7 @@ var TimePicker = ({
15584
15527
  return full.filter((value2) => value2 % 30 === 0);
15585
15528
  }
15586
15529
  }, [secondIncrement]);
15587
- const milliseconds = (0, import_react73.useMemo)(() => {
15530
+ const milliseconds = (0, import_react72.useMemo)(() => {
15588
15531
  const full = range(1e3);
15589
15532
  switch (millisecondIncrement) {
15590
15533
  case "1ms":
@@ -15605,17 +15548,17 @@ var TimePicker = ({
15605
15548
  return full.filter((value2) => value2 % 500 === 0);
15606
15549
  }
15607
15550
  }, [millisecondIncrement]);
15608
- const closestMinute = (0, import_react73.useMemo)(() => closestMatch(minutes, (item1, item2) => Math.abs(item1 - value.getMinutes()) < Math.abs(item2 - value.getMinutes())), [minutes, value]);
15609
- const closestSecond = (0, import_react73.useMemo)(() => closestMatch(seconds, (item1, item2) => Math.abs(item1 - value.getSeconds()) < Math.abs(item2 - value.getSeconds())), [seconds, value]);
15610
- const closestMillisecond = (0, import_react73.useMemo)(() => closestMatch(milliseconds, (item1, item2) => Math.abs(item1 - value.getMilliseconds()) < Math.abs(item2 - value.getMilliseconds())), [milliseconds, value]);
15551
+ const closestMinute = (0, import_react72.useMemo)(() => closestMatch(minutes, (item1, item2) => Math.abs(item1 - value.getMinutes()) < Math.abs(item2 - value.getMinutes())), [minutes, value]);
15552
+ const closestSecond = (0, import_react72.useMemo)(() => closestMatch(seconds, (item1, item2) => Math.abs(item1 - value.getSeconds()) < Math.abs(item2 - value.getSeconds())), [seconds, value]);
15553
+ const closestMillisecond = (0, import_react72.useMemo)(() => closestMatch(milliseconds, (item1, item2) => Math.abs(item1 - value.getMilliseconds()) < Math.abs(item2 - value.getMilliseconds())), [milliseconds, value]);
15611
15554
  const hour = value.getHours();
15612
- (0, import_react73.useEffect)(() => {
15555
+ (0, import_react72.useEffect)(() => {
15613
15556
  minuteRef.current?.scrollIntoView({
15614
15557
  behavior: "smooth",
15615
15558
  block: "nearest"
15616
15559
  });
15617
15560
  }, [closestMinute]);
15618
- (0, import_react73.useEffect)(() => {
15561
+ (0, import_react72.useEffect)(() => {
15619
15562
  hourRef.current?.scrollIntoView({
15620
15563
  behavior: "smooth",
15621
15564
  block: "nearest"
@@ -15627,10 +15570,10 @@ var TimePicker = ({
15627
15570
  setValue(newDate);
15628
15571
  onEditComplete?.(newDate);
15629
15572
  };
15630
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { "data-name": "time-picker-container", className, children: [
15631
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "time-picker-value-column", children: hours.map((hour2) => {
15573
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { "data-name": "time-picker-container", className, children: [
15574
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { "data-name": "time-picker-value-column", children: hours.map((hour2) => {
15632
15575
  const isSelected = hour2 === value.getHours() - (!is24HourFormat && isPM ? 12 : 0);
15633
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15576
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
15634
15577
  Button,
15635
15578
  {
15636
15579
  size: "sm",
@@ -15643,9 +15586,9 @@ var TimePicker = ({
15643
15586
  hour2
15644
15587
  );
15645
15588
  }) }),
15646
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "time-picker-value-column", children: minutes.map((minute) => {
15589
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { "data-name": "time-picker-value-column", children: minutes.map((minute) => {
15647
15590
  const isSelected = minute === closestMinute;
15648
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15591
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
15649
15592
  Button,
15650
15593
  {
15651
15594
  size: "sm",
@@ -15658,9 +15601,9 @@ var TimePicker = ({
15658
15601
  minute + minuteIncrement
15659
15602
  );
15660
15603
  }) }),
15661
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Visibility, { isVisible: precision === "second" || precision === "millisecond", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "time-picker-value-column", children: seconds.map((second) => {
15604
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Visibility, { isVisible: precision === "second" || precision === "millisecond", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { "data-name": "time-picker-value-column", children: seconds.map((second) => {
15662
15605
  const isSelected = second === closestSecond;
15663
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15606
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
15664
15607
  Button,
15665
15608
  {
15666
15609
  size: "sm",
@@ -15673,9 +15616,9 @@ var TimePicker = ({
15673
15616
  second + secondIncrement
15674
15617
  );
15675
15618
  }) }) }),
15676
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Visibility, { isVisible: precision === "millisecond", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "time-picker-value-column", children: milliseconds.map((millisecond) => {
15619
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Visibility, { isVisible: precision === "millisecond", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { "data-name": "time-picker-value-column", children: milliseconds.map((millisecond) => {
15677
15620
  const isSelected = millisecond === closestMillisecond;
15678
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15621
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
15679
15622
  Button,
15680
15623
  {
15681
15624
  size: "sm",
@@ -15688,8 +15631,8 @@ var TimePicker = ({
15688
15631
  millisecond + millisecondIncrement
15689
15632
  );
15690
15633
  }) }) }),
15691
- !is24HourFormat && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { "data-name": "time-picker-value-column", children: [
15692
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15634
+ !is24HourFormat && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { "data-name": "time-picker-value-column", children: [
15635
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
15693
15636
  Button,
15694
15637
  {
15695
15638
  size: "sm",
@@ -15699,7 +15642,7 @@ var TimePicker = ({
15699
15642
  children: "AM"
15700
15643
  }
15701
15644
  ),
15702
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15645
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
15703
15646
  Button,
15704
15647
  {
15705
15648
  size: "sm",
@@ -15714,13 +15657,13 @@ var TimePicker = ({
15714
15657
  };
15715
15658
 
15716
15659
  // src/components/user-interaction/date/DatePicker.tsx
15717
- var import_react76 = require("react");
15718
- var import_lucide_react17 = require("lucide-react");
15660
+ var import_react75 = require("react");
15661
+ var import_lucide_react16 = require("lucide-react");
15719
15662
  var import_clsx23 = __toESM(require("clsx"));
15720
15663
 
15721
15664
  // src/components/user-interaction/date/DayPicker.tsx
15722
- var import_react74 = require("react");
15723
- var import_jsx_runtime64 = require("react/jsx-runtime");
15665
+ var import_react73 = require("react");
15666
+ var import_jsx_runtime63 = require("react/jsx-runtime");
15724
15667
  var DayPicker = ({
15725
15668
  displayedMonth: controlledDisplayedMonth,
15726
15669
  initialDisplayedMonth,
@@ -15748,33 +15691,33 @@ var DayPicker = ({
15748
15691
  });
15749
15692
  const month = displayedMonth.getMonth();
15750
15693
  const weeks = DateUtils.weeksForCalenderMonth(displayedMonth, weekStart);
15751
- const selectedButtonRef = (0, import_react74.useRef)(null);
15752
- const isValueInDisplayedWeeks = (0, import_react74.useMemo)(
15694
+ const selectedButtonRef = (0, import_react73.useRef)(null);
15695
+ const isValueInDisplayedWeeks = (0, import_react73.useMemo)(
15753
15696
  () => !!value && weeks.some((week) => week.some((d) => DateUtils.equalDate(value, d))),
15754
15697
  [value, weeks]
15755
15698
  );
15756
- const firstDayOfMonth = (0, import_react74.useCallback)(
15699
+ const firstDayOfMonth = (0, import_react73.useCallback)(
15757
15700
  (date) => new Date(date.getFullYear(), date.getMonth(), 1),
15758
15701
  []
15759
15702
  );
15760
15703
  const focusTargetDate = value && isValueInDisplayedWeeks ? value : firstDayOfMonth(displayedMonth);
15761
- (0, import_react74.useEffect)(() => {
15704
+ (0, import_react73.useEffect)(() => {
15762
15705
  selectedButtonRef.current?.focus();
15763
15706
  }, [focusTargetDate]);
15764
- const end = (0, import_react74.useMemo)(() => {
15707
+ const end = (0, import_react73.useMemo)(() => {
15765
15708
  if (!providedEnd) return;
15766
15709
  return new Date(providedEnd.getFullYear(), providedEnd.getMonth(), providedEnd.getDate());
15767
15710
  }, [providedEnd]);
15768
- const start = (0, import_react74.useMemo)(() => {
15711
+ const start = (0, import_react73.useMemo)(() => {
15769
15712
  if (!providedStart) return;
15770
15713
  return new Date(providedStart.getFullYear(), providedStart.getMonth(), providedStart.getDate());
15771
15714
  }, [providedStart]);
15772
- const clampToRange = (0, import_react74.useCallback)((date) => {
15715
+ const clampToRange = (0, import_react73.useCallback)((date) => {
15773
15716
  if (start && date < start) return start;
15774
15717
  if (end && date > end) return end;
15775
15718
  return date;
15776
15719
  }, [start, end]);
15777
- const navigateTo = (0, import_react74.useCallback)((candidate) => {
15720
+ const navigateTo = (0, import_react73.useCallback)((candidate) => {
15778
15721
  const clamped = clampToRange(candidate);
15779
15722
  if (!DateUtils.between(clamped, start, end)) return;
15780
15723
  setValue(clamped);
@@ -15783,7 +15726,7 @@ var DayPicker = ({
15783
15726
  setDisplayedMonth(firstDayOfMonth(clamped));
15784
15727
  }
15785
15728
  }, [clampToRange, start, end, setValue, onEditComplete, displayedMonth, setDisplayedMonth, firstDayOfMonth]);
15786
- const onKeyDown = (0, import_react74.useCallback)(
15729
+ const onKeyDown = (0, import_react73.useCallback)(
15787
15730
  (event) => {
15788
15731
  PropsUtil.aria.navigate({
15789
15732
  left: () => focusTargetDate && navigateTo(DateUtils.subtractDuration(focusTargetDate, { days: 1 })),
@@ -15794,15 +15737,15 @@ var DayPicker = ({
15794
15737
  },
15795
15738
  [focusTargetDate, navigateTo]
15796
15739
  );
15797
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { "data-name": "day-picker-container", className, children: [
15798
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-name": "day-picker-header-row", children: weeks[0].map((weekDay, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-name": "day-picker-header-item", children: new Intl.DateTimeFormat(locale, { weekday: "long" }).format(weekDay).substring(0, 2) }, index)) }),
15799
- weeks.map((week, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-name": "day-picker-body-row", children: week.map((date) => {
15740
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { "data-name": "day-picker-container", className, children: [
15741
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "day-picker-header-row", children: weeks[0].map((weekDay, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "day-picker-header-item", children: new Intl.DateTimeFormat(locale, { weekday: "long" }).format(weekDay).substring(0, 2) }, index)) }),
15742
+ weeks.map((week, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-name": "day-picker-body-row", children: week.map((date) => {
15800
15743
  const isSelected = !!value && DateUtils.equalDate(value, date);
15801
15744
  const isFocused = !!focusTargetDate && DateUtils.equalDate(focusTargetDate, date);
15802
15745
  const isToday = DateUtils.equalDate(/* @__PURE__ */ new Date(), date);
15803
15746
  const isSameMonth = date.getMonth() === month;
15804
15747
  const isDayValid = DateUtils.between(date, start, end);
15805
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
15748
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
15806
15749
  "div",
15807
15750
  {
15808
15751
  ref: isFocused ? selectedButtonRef : void 0,
@@ -15840,10 +15783,10 @@ var DayPicker = ({
15840
15783
  };
15841
15784
 
15842
15785
  // src/components/user-interaction/date/YearMonthPicker.tsx
15843
- var import_react75 = require("react");
15786
+ var import_react74 = require("react");
15844
15787
  var import_clsx22 = __toESM(require("clsx"));
15845
- var import_jsx_runtime65 = require("react/jsx-runtime");
15846
- var YearRow = (0, import_react75.memo)(function YearRow2({
15788
+ var import_jsx_runtime64 = require("react/jsx-runtime");
15789
+ var YearRow = (0, import_react74.memo)(function YearRow2({
15847
15790
  year,
15848
15791
  selectedMonthIndex,
15849
15792
  minTimestamp,
@@ -15851,31 +15794,31 @@ var YearRow = (0, import_react75.memo)(function YearRow2({
15851
15794
  monthNames,
15852
15795
  onSelect
15853
15796
  }) {
15854
- const ref = (0, import_react75.useRef)(null);
15797
+ const ref = (0, import_react74.useRef)(null);
15855
15798
  const isSelectedYear = selectedMonthIndex !== void 0;
15856
- const [isExpanded, setIsExpanded] = (0, import_react75.useState)(false);
15857
- (0, import_react75.useEffect)(() => {
15799
+ const [isExpanded, setIsExpanded] = (0, import_react74.useState)(false);
15800
+ (0, import_react74.useEffect)(() => {
15858
15801
  if (isSelectedYear) {
15859
15802
  ref.current?.scrollIntoView({ behavior: "smooth", block: "nearest" });
15860
15803
  }
15861
15804
  }, [isSelectedYear]);
15862
- const monthGrid = (0, import_react75.useMemo)(() => equalSizeGroups([...DateUtils.monthsList], 3), []);
15863
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
15805
+ const monthGrid = (0, import_react74.useMemo)(() => equalSizeGroups([...DateUtils.monthsList], 3), []);
15806
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
15864
15807
  ExpandableRoot,
15865
15808
  {
15866
15809
  ref: isSelectedYear ? ref : void 0,
15867
15810
  isExpanded,
15868
15811
  onExpandedChange: setIsExpanded,
15869
15812
  children: [
15870
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ExpandableHeader, { className: (0, import_clsx22.default)("px-2", { "text-primary font-bold": isSelectedYear }), children: year }),
15871
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ExpandableContent, { className: "gap-y-1 px-2 expandable-content-h-43", children: isExpanded && monthGrid.map((group, groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex-row-1", children: group.map((month) => {
15813
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ExpandableHeader, { className: (0, import_clsx22.default)("px-2", { "text-primary font-bold": isSelectedYear }), children: year }),
15814
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ExpandableContent, { className: "gap-y-1 px-2 expandable-content-h-43", children: isExpanded && monthGrid.map((group, groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex-row-1", children: group.map((month) => {
15872
15815
  const monthIndex = DateUtils.monthsList.indexOf(month);
15873
15816
  const currentTimestamp = new Date(year, monthIndex).getTime();
15874
15817
  const isAfterStart = minTimestamp === void 0 || currentTimestamp >= minTimestamp;
15875
15818
  const isBeforeEnd = maxTimestamp === void 0 || currentTimestamp <= maxTimestamp;
15876
15819
  const isValid = isAfterStart && isBeforeEnd;
15877
15820
  const isSelectedMonth = monthIndex === selectedMonthIndex;
15878
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15821
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
15879
15822
  Button,
15880
15823
  {
15881
15824
  disabled: !isValid,
@@ -15914,27 +15857,27 @@ var YearMonthPicker = ({
15914
15857
  defaultValue: initialValue
15915
15858
  });
15916
15859
  const onEditCompleteStable = useEventCallbackStabilizer(onEditComplete);
15917
- const monthNames = (0, import_react75.useMemo)(() => {
15860
+ const monthNames = (0, import_react74.useMemo)(() => {
15918
15861
  const formatter = new Intl.DateTimeFormat(locale, { month: "short" });
15919
15862
  return Array.from({ length: 12 }, (_, i) => formatter.format(new Date(2e3, i, 1)));
15920
15863
  }, [locale]);
15921
- const years = (0, import_react75.useMemo)(
15864
+ const years = (0, import_react74.useMemo)(
15922
15865
  () => range([start.getFullYear(), end.getFullYear()], { exclusiveEnd: false }),
15923
15866
  [start, end]
15924
15867
  );
15925
- const minTimestamp = (0, import_react75.useMemo)(() => {
15868
+ const minTimestamp = (0, import_react74.useMemo)(() => {
15926
15869
  if (!start) return;
15927
15870
  return new Date(start.getFullYear(), start.getMonth(), 1).getTime();
15928
15871
  }, [start]);
15929
- const maxTimestamp = (0, import_react75.useMemo)(() => {
15872
+ const maxTimestamp = (0, import_react74.useMemo)(() => {
15930
15873
  if (!end) return;
15931
15874
  return new Date(end.getFullYear(), end.getMonth() + 1, 0).getTime();
15932
15875
  }, [end]);
15933
- const handleSelect = (0, import_react75.useCallback)((newDate) => {
15876
+ const handleSelect = (0, import_react74.useCallback)((newDate) => {
15934
15877
  setValue(newDate);
15935
15878
  onEditCompleteStable(newDate);
15936
15879
  }, [onEditCompleteStable, setValue]);
15937
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15880
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
15938
15881
  InfiniteScroll,
15939
15882
  {
15940
15883
  itemCount: years.length,
@@ -15944,7 +15887,7 @@ var YearMonthPicker = ({
15944
15887
  const year = years[index];
15945
15888
  const isSelectedYear = value.getFullYear() === year;
15946
15889
  const selectedMonthIndex = isSelectedYear ? value.getMonth() : void 0;
15947
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15890
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
15948
15891
  YearRow,
15949
15892
  {
15950
15893
  year,
@@ -15962,7 +15905,7 @@ var YearMonthPicker = ({
15962
15905
  };
15963
15906
 
15964
15907
  // src/components/user-interaction/date/DatePicker.tsx
15965
- var import_jsx_runtime66 = require("react/jsx-runtime");
15908
+ var import_jsx_runtime65 = require("react/jsx-runtime");
15966
15909
  var DatePicker = ({
15967
15910
  value: controlledValue,
15968
15911
  initialValue = /* @__PURE__ */ new Date(),
@@ -15983,11 +15926,11 @@ var DatePicker = ({
15983
15926
  onValueChange,
15984
15927
  defaultValue: initialValue
15985
15928
  });
15986
- const [displayedMonth, setDisplayedMonth] = (0, import_react76.useState)(new Date(value.getFullYear(), value.getMonth(), 1));
15987
- const [displayMode, setDisplayMode] = (0, import_react76.useState)(initialDisplay);
15988
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: (0, import_clsx23.default)("flex-col-3", className), children: [
15989
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex-row-2 items-center justify-between", children: [
15990
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
15929
+ const [displayedMonth, setDisplayedMonth] = (0, import_react75.useState)(new Date(value.getFullYear(), value.getMonth(), 1));
15930
+ const [displayMode, setDisplayMode] = (0, import_react75.useState)(initialDisplay);
15931
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: (0, import_clsx23.default)("flex-col-3", className), children: [
15932
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex-row-2 items-center justify-between", children: [
15933
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
15991
15934
  Button,
15992
15935
  {
15993
15936
  size: "sm",
@@ -15998,12 +15941,12 @@ var DatePicker = ({
15998
15941
  onClick: () => setDisplayMode(displayMode === "day" ? "yearMonth" : "day"),
15999
15942
  children: [
16000
15943
  `${new Intl.DateTimeFormat(LocalizationUtil.localToLanguage(locale), { month: "long" }).format(displayedMonth)} ${displayedMonth.getFullYear()}`,
16001
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react17.ChevronDown, { size: 16 })
15944
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react16.ChevronDown, { size: 16 })
16002
15945
  ]
16003
15946
  }
16004
15947
  ),
16005
- displayMode === "day" && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex-row-2 justify-end", children: [
16006
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15948
+ displayMode === "day" && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex-row-2 justify-end", children: [
15949
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
16007
15950
  IconButton,
16008
15951
  {
16009
15952
  tooltip: translation("time.today"),
@@ -16015,10 +15958,10 @@ var DatePicker = ({
16015
15958
  setValue(newDate);
16016
15959
  setDisplayedMonth(newDate);
16017
15960
  },
16018
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react17.Calendar, { className: "size-5" })
15961
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react16.Calendar, { className: "size-5" })
16019
15962
  }
16020
15963
  ),
16021
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15964
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
16022
15965
  IconButton,
16023
15966
  {
16024
15967
  tooltip: translation("time.previousMonth"),
@@ -16027,10 +15970,10 @@ var DatePicker = ({
16027
15970
  onClick: () => {
16028
15971
  setDisplayedMonth(DateUtils.subtractDuration(displayedMonth, { months: 1 }));
16029
15972
  },
16030
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react17.ArrowUp, { size: 20 })
15973
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react16.ArrowUp, { size: 20 })
16031
15974
  }
16032
15975
  ),
16033
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15976
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
16034
15977
  IconButton,
16035
15978
  {
16036
15979
  tooltip: translation("time.nextMonth"),
@@ -16039,12 +15982,12 @@ var DatePicker = ({
16039
15982
  onClick: () => {
16040
15983
  setDisplayedMonth(DateUtils.addDuration(displayedMonth, { months: 1 }));
16041
15984
  },
16042
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react17.ArrowDown, { size: 20 })
15985
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react16.ArrowDown, { size: 20 })
16043
15986
  }
16044
15987
  )
16045
15988
  ] })
16046
15989
  ] }),
16047
- displayMode === "yearMonth" ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15990
+ displayMode === "yearMonth" ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
16048
15991
  YearMonthPicker,
16049
15992
  {
16050
15993
  ...yearMonthPickerProps,
@@ -16061,7 +16004,7 @@ var DatePicker = ({
16061
16004
  },
16062
16005
  className: "h-60 max-h-60"
16063
16006
  }
16064
- ) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
16007
+ ) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
16065
16008
  DayPicker,
16066
16009
  {
16067
16010
  ...dayPickerProps,
@@ -16080,7 +16023,7 @@ var DatePicker = ({
16080
16023
  };
16081
16024
 
16082
16025
  // src/components/user-interaction/date/DateTimePicker.tsx
16083
- var import_jsx_runtime67 = require("react/jsx-runtime");
16026
+ var import_jsx_runtime66 = require("react/jsx-runtime");
16084
16027
  var DateTimePicker = ({
16085
16028
  value: controlledValue,
16086
16029
  initialValue = /* @__PURE__ */ new Date(),
@@ -16108,7 +16051,7 @@ var DateTimePicker = ({
16108
16051
  let dateDisplay;
16109
16052
  let timeDisplay;
16110
16053
  if (useDate) {
16111
- dateDisplay = /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16054
+ dateDisplay = /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
16112
16055
  DatePicker,
16113
16056
  {
16114
16057
  ...datePickerProps,
@@ -16124,7 +16067,7 @@ var DateTimePicker = ({
16124
16067
  );
16125
16068
  }
16126
16069
  if (useTime) {
16127
- timeDisplay = /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16070
+ timeDisplay = /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
16128
16071
  TimePicker,
16129
16072
  {
16130
16073
  ...timePickerProps,
@@ -16139,15 +16082,15 @@ var DateTimePicker = ({
16139
16082
  }
16140
16083
  );
16141
16084
  }
16142
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex-row-2 min-h-71 max-h-71", children: [
16085
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex-row-2 min-h-71 max-h-71", children: [
16143
16086
  dateDisplay,
16144
16087
  timeDisplay
16145
16088
  ] });
16146
16089
  };
16147
16090
 
16148
16091
  // src/components/user-interaction/date/DateTimePickerDialog.tsx
16149
- var import_react77 = require("react");
16150
- var import_jsx_runtime68 = require("react/jsx-runtime");
16092
+ var import_react76 = require("react");
16093
+ var import_jsx_runtime67 = require("react/jsx-runtime");
16151
16094
  var DateTimePickerDialog = ({
16152
16095
  initialValue = null,
16153
16096
  value,
@@ -16174,12 +16117,12 @@ var DateTimePickerDialog = ({
16174
16117
  onValueChange,
16175
16118
  defaultValue: initialValue
16176
16119
  });
16177
- const [pickerState, setPickerState] = (0, import_react77.useState)(state ?? /* @__PURE__ */ new Date());
16178
- (0, import_react77.useEffect)(() => {
16120
+ const [pickerState, setPickerState] = (0, import_react76.useState)(state ?? /* @__PURE__ */ new Date());
16121
+ (0, import_react76.useEffect)(() => {
16179
16122
  setPickerState(state ?? /* @__PURE__ */ new Date());
16180
16123
  }, [state]);
16181
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
16182
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "flex-row-2 justify-center w-full py-1", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16124
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
16125
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "flex-row-2 justify-center w-full py-1", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16183
16126
  "span",
16184
16127
  {
16185
16128
  id: labelId,
@@ -16187,7 +16130,7 @@ var DateTimePickerDialog = ({
16187
16130
  children: label ?? translation("sDateTimeSelect", { datetimeMode: mode })
16188
16131
  }
16189
16132
  ) }),
16190
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16133
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16191
16134
  DateTimePicker,
16192
16135
  {
16193
16136
  ...pickerProps,
@@ -16206,8 +16149,8 @@ var DateTimePickerDialog = ({
16206
16149
  precision
16207
16150
  }
16208
16151
  ),
16209
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex-row-2 justify-end", children: [
16210
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Visibility, { isVisible: allowRemove && !!state, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16152
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex-row-2 justify-end", children: [
16153
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Visibility, { isVisible: allowRemove && !!state, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16211
16154
  Button,
16212
16155
  {
16213
16156
  size: "md",
@@ -16220,7 +16163,7 @@ var DateTimePickerDialog = ({
16220
16163
  children: translation("clear")
16221
16164
  }
16222
16165
  ) }),
16223
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Visibility, { isVisible: !state, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16166
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Visibility, { isVisible: !state, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16224
16167
  Button,
16225
16168
  {
16226
16169
  size: "md",
@@ -16233,7 +16176,7 @@ var DateTimePickerDialog = ({
16233
16176
  children: translation("cancel")
16234
16177
  }
16235
16178
  ) }),
16236
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16179
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
16237
16180
  Button,
16238
16181
  {
16239
16182
  size: "md",
@@ -16249,8 +16192,8 @@ var DateTimePickerDialog = ({
16249
16192
  };
16250
16193
 
16251
16194
  // src/components/user-interaction/input/DateTimeInput.tsx
16252
- var import_jsx_runtime69 = require("react/jsx-runtime");
16253
- var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16195
+ var import_jsx_runtime68 = require("react/jsx-runtime");
16196
+ var DateTimeInput = (0, import_react77.forwardRef)(function DateTimeInput2({
16254
16197
  id: inputId,
16255
16198
  value,
16256
16199
  initialValue = null,
@@ -16279,37 +16222,35 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16279
16222
  ...props
16280
16223
  }, forwardedRef) {
16281
16224
  const translation = useHightideTranslation();
16282
- const [isOpen, setIsOpen] = (0, import_react78.useState)(false);
16225
+ const [isOpen, setIsOpen] = (0, import_react77.useState)(false);
16283
16226
  const [state, setState] = useControlledState({
16284
16227
  value,
16285
16228
  onValueChange,
16286
16229
  defaultValue: initialValue
16287
16230
  });
16288
- const [dialogValue, setDialogValue] = (0, import_react78.useState)(state);
16289
- const [stringInputState, setStringInputState] = (0, import_react78.useState)({
16231
+ const [dialogValue, setDialogValue] = (0, import_react77.useState)(state);
16232
+ const [stringInputState, setStringInputState] = (0, import_react77.useState)({
16290
16233
  state: state ? DateUtils.toInputString(state, mode, precision) : "",
16291
- date: void 0
16234
+ date: void 0,
16235
+ mode
16292
16236
  });
16293
- (0, import_react78.useEffect)(() => {
16294
- setDialogValue(state);
16295
- setStringInputState({
16296
- state: state ? DateUtils.toInputString(state, mode) : "",
16297
- date: void 0
16298
- });
16299
- }, [mode, state]);
16300
- const changeOpenWrapper = (0, import_react78.useCallback)((isOpen2) => {
16237
+ const safeInputString = (0, import_react77.useMemo)(() => {
16238
+ if (!state) return "";
16239
+ return stringInputState.mode !== mode ? DateUtils.toInputString(state, mode, precision) : stringInputState.state;
16240
+ }, [stringInputState.mode, stringInputState.state, mode, state, precision]);
16241
+ const changeOpenWrapper = (0, import_react77.useCallback)((isOpen2) => {
16301
16242
  onDialogOpeningChange?.(isOpen2);
16302
16243
  setIsOpen(isOpen2);
16303
16244
  }, [onDialogOpeningChange]);
16304
- const generatedId = (0, import_react78.useId)();
16305
- const ids = (0, import_react78.useMemo)(() => ({
16245
+ const generatedId = (0, import_react77.useId)();
16246
+ const ids = (0, import_react77.useMemo)(() => ({
16306
16247
  input: inputId ?? `date-time-input-${generatedId}`,
16307
16248
  popup: `date-time-input-popup-${generatedId}`,
16308
16249
  label: `date-time-input-label-${generatedId}`
16309
16250
  }), [generatedId, inputId]);
16310
- const innerRef = (0, import_react78.useRef)(null);
16311
- (0, import_react78.useImperativeHandle)(forwardedRef, () => innerRef.current);
16312
- (0, import_react78.useEffect)(() => {
16251
+ const innerRef = (0, import_react77.useRef)(null);
16252
+ (0, import_react77.useImperativeHandle)(forwardedRef, () => innerRef.current);
16253
+ (0, import_react77.useEffect)(() => {
16313
16254
  if (readOnly || disabled) {
16314
16255
  changeOpenWrapper(false);
16315
16256
  }
@@ -16318,21 +16259,26 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16318
16259
  restartTimer,
16319
16260
  clearTimer
16320
16261
  } = useDelay({ delay: 2e3, disabled: disabled || readOnly });
16321
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
16322
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { ...containerProps, className: (0, import_clsx24.default)("relative w-full", containerProps?.className), children: [
16323
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16262
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
16263
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { ...containerProps, className: (0, import_clsx24.default)("relative w-full", containerProps?.className), children: [
16264
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16324
16265
  "input",
16325
16266
  {
16326
16267
  ...props,
16327
16268
  ref: innerRef,
16328
16269
  id: ids.input,
16329
- value: stringInputState.state,
16270
+ value: safeInputString,
16330
16271
  onClick: (event) => {
16331
16272
  event.preventDefault();
16332
16273
  },
16333
16274
  onFocus: (event) => {
16334
16275
  event.preventDefault();
16335
16276
  },
16277
+ onKeyDown: (event) => {
16278
+ if (event.key === " ") {
16279
+ event.preventDefault();
16280
+ }
16281
+ },
16336
16282
  onChange: (event) => {
16337
16283
  const date = new Date(event.target.value ?? "");
16338
16284
  const isValid = !isNaN(date.getTime());
@@ -16347,7 +16293,8 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16347
16293
  }
16348
16294
  setStringInputState({
16349
16295
  state: event.target.value,
16350
- date: isValid ? date : void 0
16296
+ date: isValid ? date : void 0,
16297
+ mode
16351
16298
  });
16352
16299
  },
16353
16300
  onBlur: (event) => {
@@ -16362,7 +16309,8 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16362
16309
  }
16363
16310
  setStringInputState({
16364
16311
  state: state ? DateUtils.toInputString(state, mode) : "",
16365
- date: void 0
16312
+ date: void 0,
16313
+ mode
16366
16314
  });
16367
16315
  }
16368
16316
  },
@@ -16373,9 +16321,9 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16373
16321
  ...PropsUtil.aria.interactionStates({ disabled, readOnly, invalid, required }, props)
16374
16322
  }
16375
16323
  ),
16376
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "absolute right-1 top-1/2 -translate-y-1/2 flex-row-0", children: [
16324
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "absolute right-1 top-1/2 -translate-y-1/2 flex-row-0", children: [
16377
16325
  actions,
16378
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Visibility, { isVisible: !readOnly, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16326
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Visibility, { isVisible: !readOnly, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16379
16327
  IconButton,
16380
16328
  {
16381
16329
  tooltip: translation("sDateTimeSelect", { datetimeMode: mode }),
@@ -16389,12 +16337,12 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16389
16337
  "aria-haspopup": "dialog",
16390
16338
  "aria-expanded": isOpen,
16391
16339
  "aria-controls": isOpen ? ids.popup : void 0,
16392
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react18.CalendarIcon, { className: "size-5" })
16340
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react17.CalendarIcon, { className: "size-5" })
16393
16341
  }
16394
16342
  ) })
16395
16343
  ] })
16396
16344
  ] }),
16397
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16345
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16398
16346
  PopUp,
16399
16347
  {
16400
16348
  id: ids.popup,
@@ -16413,7 +16361,7 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16413
16361
  role: "dialog",
16414
16362
  "aria-labelledby": ids.label,
16415
16363
  className: "flex-col-2 p-2",
16416
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16364
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16417
16365
  DateTimePickerDialog,
16418
16366
  {
16419
16367
  value: dialogValue,
@@ -16443,25 +16391,25 @@ var DateTimeInput = (0, import_react78.forwardRef)(function DateTimeInput2({
16443
16391
  });
16444
16392
 
16445
16393
  // src/components/user-interaction/MultiSelect/MultiSelect.tsx
16446
- var import_react86 = require("react");
16394
+ var import_react85 = require("react");
16447
16395
 
16448
16396
  // src/components/user-interaction/MultiSelect/MultiSelectRoot.tsx
16449
- var import_react82 = require("react");
16397
+ var import_react81 = require("react");
16450
16398
 
16451
16399
  // src/components/user-interaction/MultiSelect/MultiSelectContext.tsx
16452
- var import_react79 = require("react");
16453
- var MultiSelectContext = (0, import_react79.createContext)(null);
16400
+ var import_react78 = require("react");
16401
+ var MultiSelectContext = (0, import_react78.createContext)(null);
16454
16402
  function useMultiSelectContext() {
16455
- const ctx = (0, import_react79.useContext)(MultiSelectContext);
16403
+ const ctx = (0, import_react78.useContext)(MultiSelectContext);
16456
16404
  if (!ctx) throw new Error("useMultiSelectContext must be used within MultiSelectRoot");
16457
16405
  return ctx;
16458
16406
  }
16459
16407
 
16460
16408
  // src/components/user-interaction/MultiSelect/useMultiSelect.ts
16461
- var import_react81 = require("react");
16409
+ var import_react80 = require("react");
16462
16410
 
16463
16411
  // src/hooks/useMultiSelection.ts
16464
- var import_react80 = require("react");
16412
+ var import_react79 = require("react");
16465
16413
  function useMultiSelection({
16466
16414
  options: optionsList,
16467
16415
  value,
@@ -16475,8 +16423,8 @@ function useMultiSelection({
16475
16423
  defaultValue: [...initialSelection],
16476
16424
  isControlled
16477
16425
  });
16478
- const isSelected = (0, import_react80.useCallback)((id) => selection.includes(id), [selection]);
16479
- const toggleSelection = (0, import_react80.useCallback)(
16426
+ const isSelected = (0, import_react79.useCallback)((id) => selection.includes(id), [selection]);
16427
+ const toggleSelection = (0, import_react79.useCallback)(
16480
16428
  (id) => {
16481
16429
  const option = optionsList.find((o) => o.id === id);
16482
16430
  if (!option || option.disabled) return;
@@ -16484,11 +16432,11 @@ function useMultiSelection({
16484
16432
  },
16485
16433
  [optionsList, setSelection]
16486
16434
  );
16487
- const setSelectionValue = (0, import_react80.useCallback)(
16435
+ const setSelectionValue = (0, import_react79.useCallback)(
16488
16436
  (next) => setSelection(Array.from(next)),
16489
16437
  [setSelection]
16490
16438
  );
16491
- return (0, import_react80.useMemo)(
16439
+ return (0, import_react79.useMemo)(
16492
16440
  () => ({
16493
16441
  selection,
16494
16442
  setSelection: setSelectionValue,
@@ -16510,9 +16458,9 @@ function useMultiSelect({
16510
16458
  initialIsOpen = false,
16511
16459
  typeAheadResetMs = 500
16512
16460
  }) {
16513
- const [isOpen, setIsOpen] = (0, import_react81.useState)(initialIsOpen);
16514
- const [searchQuery, setSearchQuery] = (0, import_react81.useState)("");
16515
- const selectionOptions = (0, import_react81.useMemo)(
16461
+ const [isOpen, setIsOpen] = (0, import_react80.useState)(initialIsOpen);
16462
+ const [searchQuery, setSearchQuery] = (0, import_react80.useState)("");
16463
+ const selectionOptions = (0, import_react80.useMemo)(
16516
16464
  () => options.map((o) => ({ id: o.id, disabled: o.disabled })),
16517
16465
  [options]
16518
16466
  );
@@ -16528,13 +16476,13 @@ function useMultiSelect({
16528
16476
  const { searchResult: visibleOptions } = useSearch({
16529
16477
  items: options,
16530
16478
  searchQuery,
16531
- toTags: (0, import_react81.useCallback)((o) => [o.label ?? ""], [])
16479
+ toTags: (0, import_react80.useCallback)((o) => [o.label ?? ""], [])
16532
16480
  });
16533
- const visibleOptionIds = (0, import_react81.useMemo)(
16481
+ const visibleOptionIds = (0, import_react80.useMemo)(
16534
16482
  () => visibleOptions.map((o) => o.id),
16535
16483
  [visibleOptions]
16536
16484
  );
16537
- const enabledOptions = (0, import_react81.useMemo)(
16485
+ const enabledOptions = (0, import_react80.useMemo)(
16538
16486
  () => visibleOptions.filter((o) => !o.disabled),
16539
16487
  [visibleOptions]
16540
16488
  );
@@ -16547,7 +16495,7 @@ function useMultiSelect({
16547
16495
  options: enabledOptions,
16548
16496
  resetTimer: typeAheadResetMs,
16549
16497
  toString: (o) => o.label ?? "",
16550
- onResultChange: (0, import_react81.useCallback)(
16498
+ onResultChange: (0, import_react80.useCallback)(
16551
16499
  (option) => {
16552
16500
  if (option) listNav.highlight(option.id);
16553
16501
  },
@@ -16555,14 +16503,14 @@ function useMultiSelect({
16555
16503
  )
16556
16504
  });
16557
16505
  const { reset: typeAheadReset, addToTypeAhead } = typeAhead;
16558
- (0, import_react81.useEffect)(() => {
16506
+ (0, import_react80.useEffect)(() => {
16559
16507
  if (!isOpen) typeAheadReset();
16560
16508
  }, [isOpen, typeAheadReset]);
16561
- const highlightItem = (0, import_react81.useCallback)((id) => {
16509
+ const highlightItem = (0, import_react80.useCallback)((id) => {
16562
16510
  if (!enabledOptions.some((o) => o.id === id)) return;
16563
16511
  listNavHighlight(id);
16564
16512
  }, [enabledOptions, listNavHighlight]);
16565
- const toggleSelectionValue = (0, import_react81.useCallback)((id, newIsSelected) => {
16513
+ const toggleSelectionValue = (0, import_react80.useCallback)((id, newIsSelected) => {
16566
16514
  const next = newIsSelected ?? !isSelected(id);
16567
16515
  if (next) {
16568
16516
  toggleSelection(id);
@@ -16571,7 +16519,7 @@ function useMultiSelect({
16571
16519
  }
16572
16520
  highlightItem(id);
16573
16521
  }, [toggleSelection, setSelection, highlightItem, isSelected, selection]);
16574
- const setIsOpenWrapper = (0, import_react81.useCallback)(
16522
+ const setIsOpenWrapper = (0, import_react80.useCallback)(
16575
16523
  (open, behavior) => {
16576
16524
  setIsOpen(open);
16577
16525
  behavior = behavior ?? "first";
@@ -16602,13 +16550,13 @@ function useMultiSelect({
16602
16550
  enabledOptions
16603
16551
  ]
16604
16552
  );
16605
- const toggleOpenWrapper = (0, import_react81.useCallback)(
16553
+ const toggleOpenWrapper = (0, import_react80.useCallback)(
16606
16554
  (behavior) => {
16607
16555
  setIsOpenWrapper(!isOpen, behavior);
16608
16556
  },
16609
16557
  [isOpen, setIsOpenWrapper]
16610
16558
  );
16611
- const state = (0, import_react81.useMemo)(
16559
+ const state = (0, import_react80.useMemo)(
16612
16560
  () => ({
16613
16561
  value: [...selection],
16614
16562
  highlightedId: listNav.highlightedId,
@@ -16624,11 +16572,11 @@ function useMultiSelect({
16624
16572
  options
16625
16573
  ]
16626
16574
  );
16627
- const computedState = (0, import_react81.useMemo)(
16575
+ const computedState = (0, import_react80.useMemo)(
16628
16576
  () => ({ visibleOptionIds }),
16629
16577
  [visibleOptionIds]
16630
16578
  );
16631
- const actions = (0, import_react81.useMemo)(
16579
+ const actions = (0, import_react80.useMemo)(
16632
16580
  () => ({
16633
16581
  setIsOpen: setIsOpenWrapper,
16634
16582
  toggleOpen: toggleOpenWrapper,
@@ -16657,7 +16605,7 @@ function useMultiSelect({
16657
16605
  addToTypeAhead
16658
16606
  ]
16659
16607
  );
16660
- return (0, import_react81.useMemo)(
16608
+ return (0, import_react80.useMemo)(
16661
16609
  () => ({
16662
16610
  ...state,
16663
16611
  ...computedState,
@@ -16668,7 +16616,7 @@ function useMultiSelect({
16668
16616
  }
16669
16617
 
16670
16618
  // src/components/user-interaction/MultiSelect/MultiSelectRoot.tsx
16671
- var import_jsx_runtime70 = require("react/jsx-runtime");
16619
+ var import_jsx_runtime69 = require("react/jsx-runtime");
16672
16620
  function MultiSelectRoot({
16673
16621
  children,
16674
16622
  value,
@@ -16685,16 +16633,16 @@ function MultiSelectRoot({
16685
16633
  readOnly = false,
16686
16634
  required = false
16687
16635
  }) {
16688
- const [triggerRef, setTriggerRef] = (0, import_react82.useState)(null);
16689
- const [options, setOptions] = (0, import_react82.useState)([]);
16690
- const generatedId = (0, import_react82.useId)();
16691
- const [ids, setIds] = (0, import_react82.useState)({
16636
+ const [triggerRef, setTriggerRef] = (0, import_react81.useState)(null);
16637
+ const [options, setOptions] = (0, import_react81.useState)([]);
16638
+ const generatedId = (0, import_react81.useId)();
16639
+ const [ids, setIds] = (0, import_react81.useState)({
16692
16640
  trigger: "multi-select-" + generatedId,
16693
16641
  content: "multi-select-content-" + generatedId,
16694
16642
  listbox: "multi-select-listbox-" + generatedId,
16695
16643
  searchInput: "multi-select-search-" + generatedId
16696
16644
  });
16697
- const registerOption = (0, import_react82.useCallback)((item) => {
16645
+ const registerOption = (0, import_react81.useCallback)((item) => {
16698
16646
  setOptions((prev) => {
16699
16647
  const next = prev.filter((o) => o.id !== item.id);
16700
16648
  next.push(item);
@@ -16703,12 +16651,12 @@ function MultiSelectRoot({
16703
16651
  });
16704
16652
  return () => setOptions((prev) => prev.filter((o) => o.id !== item.id));
16705
16653
  }, []);
16706
- const registerTrigger = (0, import_react82.useCallback)((ref) => {
16654
+ const registerTrigger = (0, import_react81.useCallback)((ref) => {
16707
16655
  setTriggerRef(ref);
16708
16656
  return () => setTriggerRef(null);
16709
16657
  }, []);
16710
- const compare = (0, import_react82.useMemo)(() => compareFunction ?? Object.is, [compareFunction]);
16711
- const idToOptionMap = (0, import_react82.useMemo)(
16658
+ const compare = (0, import_react81.useMemo)(() => compareFunction ?? Object.is, [compareFunction]);
16659
+ const idToOptionMap = (0, import_react81.useMemo)(
16712
16660
  () => options.reduce(
16713
16661
  (acc, o) => {
16714
16662
  acc[o.id] = o;
@@ -16718,22 +16666,22 @@ function MultiSelectRoot({
16718
16666
  ),
16719
16667
  [options]
16720
16668
  );
16721
- const mappedValueIds = (0, import_react82.useMemo)(() => {
16669
+ const mappedValueIds = (0, import_react81.useMemo)(() => {
16722
16670
  if (value == null) return void 0;
16723
16671
  return value.map((v) => options.find((o) => compare(o.value, v))?.id).filter((id) => id !== void 0);
16724
16672
  }, [options, value, compare]);
16725
- const mappedInitialValueIds = (0, import_react82.useMemo)(() => {
16673
+ const mappedInitialValueIds = (0, import_react81.useMemo)(() => {
16726
16674
  if (initialValue == null) return [];
16727
16675
  return initialValue.map((v) => options.find((o) => compare(o.value, v))?.id).filter((id) => id !== void 0);
16728
16676
  }, [options, initialValue, compare]);
16729
- const onValueChangeStable = (0, import_react82.useCallback)(
16677
+ const onValueChangeStable = (0, import_react81.useCallback)(
16730
16678
  (ids2) => {
16731
16679
  const values = ids2.map((id) => idToOptionMap[id]?.value).filter((v) => v != null);
16732
16680
  onValueChange?.(values);
16733
16681
  },
16734
16682
  [idToOptionMap, onValueChange]
16735
16683
  );
16736
- const onEditCompleteStable = (0, import_react82.useCallback)(
16684
+ const onEditCompleteStable = (0, import_react81.useCallback)(
16737
16685
  (ids2) => {
16738
16686
  const values = ids2.map((id) => idToOptionMap[id]?.value).filter((v) => v != null);
16739
16687
  onEditComplete?.(values);
@@ -16750,12 +16698,12 @@ function MultiSelectRoot({
16750
16698
  onClose
16751
16699
  });
16752
16700
  const { setSearchQuery } = state;
16753
- (0, import_react82.useEffect)(() => {
16701
+ (0, import_react81.useEffect)(() => {
16754
16702
  if (showSearch === false) {
16755
16703
  setSearchQuery("");
16756
16704
  }
16757
16705
  }, [showSearch, setSearchQuery]);
16758
- const contextValue = (0, import_react82.useMemo)(() => {
16706
+ const contextValue = (0, import_react81.useMemo)(() => {
16759
16707
  const valueT = state.value.map((id) => idToOptionMap[id]?.value).filter((v) => v != null);
16760
16708
  return {
16761
16709
  invalid,
@@ -16809,7 +16757,7 @@ function MultiSelectRoot({
16809
16757
  registerTrigger,
16810
16758
  showSearch
16811
16759
  ]);
16812
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(MultiSelectContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
16760
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(MultiSelectContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16813
16761
  PopUpContext.Provider,
16814
16762
  {
16815
16763
  value: {
@@ -16826,16 +16774,16 @@ function MultiSelectRoot({
16826
16774
  }
16827
16775
 
16828
16776
  // src/components/user-interaction/MultiSelect/MultiSelectButton.tsx
16829
- var import_react84 = require("react");
16777
+ var import_react83 = require("react");
16830
16778
 
16831
16779
  // src/components/user-interaction/MultiSelect/MultiSelectOption.tsx
16832
16780
  var import_clsx25 = __toESM(require("clsx"));
16833
- var import_lucide_react19 = require("lucide-react");
16834
- var import_react83 = require("react");
16835
- var import_jsx_runtime71 = require("react/jsx-runtime");
16836
- var MultiSelectOptionDisplayContext = (0, import_react83.createContext)(null);
16781
+ var import_lucide_react18 = require("lucide-react");
16782
+ var import_react82 = require("react");
16783
+ var import_jsx_runtime70 = require("react/jsx-runtime");
16784
+ var MultiSelectOptionDisplayContext = (0, import_react82.createContext)(null);
16837
16785
  function useMultiSelectOptionDisplayLocation() {
16838
- const context = (0, import_react83.useContext)(MultiSelectOptionDisplayContext);
16786
+ const context = (0, import_react82.useContext)(MultiSelectOptionDisplayContext);
16839
16787
  if (!context) {
16840
16788
  throw new Error(
16841
16789
  "useMultiSelectOptionDisplayLocation must be used within a MultiSelectOptionDisplayContext"
@@ -16843,7 +16791,7 @@ function useMultiSelectOptionDisplayLocation() {
16843
16791
  }
16844
16792
  return context;
16845
16793
  }
16846
- var MultiSelectOption = (0, import_react83.forwardRef)(function MultiSelectOption2({
16794
+ var MultiSelectOption = (0, import_react82.forwardRef)(function MultiSelectOption2({
16847
16795
  children,
16848
16796
  label,
16849
16797
  value,
@@ -16853,12 +16801,12 @@ var MultiSelectOption = (0, import_react83.forwardRef)(function MultiSelectOptio
16853
16801
  }, ref) {
16854
16802
  const context = useMultiSelectContext();
16855
16803
  const { registerOption } = context;
16856
- const itemRef = (0, import_react83.useRef)(null);
16804
+ const itemRef = (0, import_react82.useRef)(null);
16857
16805
  const display = children ?? label;
16858
16806
  const iconAppearanceResolved = iconAppearance ?? context.config.iconAppearance;
16859
- const generatedId = (0, import_react83.useId)();
16807
+ const generatedId = (0, import_react82.useId)();
16860
16808
  const optionId = props?.id ?? "multi-select-option-" + generatedId;
16861
- (0, import_react83.useEffect)(() => {
16809
+ (0, import_react82.useEffect)(() => {
16862
16810
  return registerOption({
16863
16811
  id: optionId,
16864
16812
  value,
@@ -16871,7 +16819,7 @@ var MultiSelectOption = (0, import_react83.forwardRef)(function MultiSelectOptio
16871
16819
  const isHighlighted = context.highlightedId === optionId;
16872
16820
  const isSelected = context.selectedIds.includes(optionId);
16873
16821
  const isVisible = context.visibleOptionIds.includes(optionId);
16874
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
16822
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
16875
16823
  "li",
16876
16824
  {
16877
16825
  ...props,
@@ -16904,16 +16852,16 @@ var MultiSelectOption = (0, import_react83.forwardRef)(function MultiSelectOptio
16904
16852
  }
16905
16853
  },
16906
16854
  children: [
16907
- iconAppearanceResolved === "left" && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
16908
- import_lucide_react19.CheckIcon,
16855
+ iconAppearanceResolved === "left" && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
16856
+ import_lucide_react18.CheckIcon,
16909
16857
  {
16910
16858
  className: (0, import_clsx25.default)("w-4 h-4", { "opacity-0": !isSelected || disabled }),
16911
16859
  "aria-hidden": true
16912
16860
  }
16913
16861
  ),
16914
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(MultiSelectOptionDisplayContext.Provider, { value: "list", children: display }),
16915
- iconAppearanceResolved === "right" && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
16916
- import_lucide_react19.CheckIcon,
16862
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(MultiSelectOptionDisplayContext.Provider, { value: "list", children: display }),
16863
+ iconAppearanceResolved === "right" && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
16864
+ import_lucide_react18.CheckIcon,
16917
16865
  {
16918
16866
  className: (0, import_clsx25.default)("w-4 h-4", { "opacity-0": !isSelected || disabled }),
16919
16867
  "aria-hidden": true
@@ -16925,8 +16873,8 @@ var MultiSelectOption = (0, import_react83.forwardRef)(function MultiSelectOptio
16925
16873
  });
16926
16874
 
16927
16875
  // src/components/user-interaction/MultiSelect/MultiSelectButton.tsx
16928
- var import_jsx_runtime72 = require("react/jsx-runtime");
16929
- var MultiSelectButton = (0, import_react84.forwardRef)(function MultiSelectButton2({
16876
+ var import_jsx_runtime71 = require("react/jsx-runtime");
16877
+ var MultiSelectButton = (0, import_react83.forwardRef)(function MultiSelectButton2({
16930
16878
  id,
16931
16879
  placeholder,
16932
16880
  disabled: disabledOverride,
@@ -16939,12 +16887,12 @@ var MultiSelectButton = (0, import_react84.forwardRef)(function MultiSelectButto
16939
16887
  const { config, layout } = context;
16940
16888
  const { setIds } = config;
16941
16889
  const { registerTrigger } = layout;
16942
- (0, import_react84.useEffect)(() => {
16890
+ (0, import_react83.useEffect)(() => {
16943
16891
  if (id) setIds((prev) => ({ ...prev, trigger: id }));
16944
16892
  }, [id, setIds]);
16945
- const innerRef = (0, import_react84.useRef)(null);
16946
- (0, import_react84.useImperativeHandle)(ref, () => innerRef.current);
16947
- (0, import_react84.useEffect)(() => {
16893
+ const innerRef = (0, import_react83.useRef)(null);
16894
+ (0, import_react83.useImperativeHandle)(ref, () => innerRef.current);
16895
+ (0, import_react83.useEffect)(() => {
16948
16896
  const unregister = registerTrigger(innerRef);
16949
16897
  return () => unregister();
16950
16898
  }, [registerTrigger]);
@@ -16952,7 +16900,7 @@ var MultiSelectButton = (0, import_react84.forwardRef)(function MultiSelectButto
16952
16900
  const invalid = context.invalid;
16953
16901
  const hasValue = context.value.length > 0;
16954
16902
  const selectedOptions = context.selectedIds.map((id2) => context.idToOptionMap[id2]).filter(Boolean);
16955
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
16903
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
16956
16904
  "div",
16957
16905
  {
16958
16906
  ...props,
@@ -16996,34 +16944,34 @@ var MultiSelectButton = (0, import_react84.forwardRef)(function MultiSelectButto
16996
16944
  "aria-expanded": context.isOpen,
16997
16945
  "aria-controls": context.isOpen ? context.config.ids.content : void 0,
16998
16946
  children: [
16999
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(MultiSelectOptionDisplayContext.Provider, { value: "trigger", children: hasValue ? selectedDisplay?.(context.value) ?? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex flex-wrap gap-x-1 gap-y-2", children: selectedOptions.map((opt, index) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("span", { children: [
16947
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(MultiSelectOptionDisplayContext.Provider, { value: "trigger", children: hasValue ? selectedDisplay?.(context.value) ?? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "flex flex-wrap gap-x-1 gap-y-2", children: selectedOptions.map((opt, index) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("span", { children: [
17000
16948
  opt.display,
17001
- index < selectedOptions.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { children: "," })
16949
+ index < selectedOptions.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { children: "," })
17002
16950
  ] }, opt.id)) }) : placeholder ?? translation("clickToSelect") }),
17003
- !hideExpansionIcon && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ExpansionIcon, { isExpanded: context.isOpen })
16951
+ !hideExpansionIcon && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ExpansionIcon, { isExpanded: context.isOpen })
17004
16952
  ]
17005
16953
  }
17006
16954
  );
17007
16955
  });
17008
16956
 
17009
16957
  // src/components/user-interaction/MultiSelect/MultiSelectContent.tsx
17010
- var import_react85 = require("react");
16958
+ var import_react84 = require("react");
17011
16959
  var import_clsx26 = __toESM(require("clsx"));
17012
- var import_jsx_runtime73 = require("react/jsx-runtime");
17013
- var MultiSelectContent = (0, import_react85.forwardRef)(function MultiSelectContent2({ id, options, showSearch: showSearchOverride, searchInputProps, ...props }, ref) {
16960
+ var import_jsx_runtime72 = require("react/jsx-runtime");
16961
+ var MultiSelectContent = (0, import_react84.forwardRef)(function MultiSelectContent2({ id, options, showSearch: showSearchOverride, searchInputProps, ...props }, ref) {
17014
16962
  const translation = useHightideTranslation();
17015
- const innerRef = (0, import_react85.useRef)(null);
17016
- const searchInputRef = (0, import_react85.useRef)(null);
17017
- (0, import_react85.useImperativeHandle)(ref, () => innerRef.current);
16963
+ const innerRef = (0, import_react84.useRef)(null);
16964
+ const searchInputRef = (0, import_react84.useRef)(null);
16965
+ (0, import_react84.useImperativeHandle)(ref, () => innerRef.current);
17018
16966
  const context = useMultiSelectContext();
17019
16967
  const { config, highlightNext, highlightPrevious, highlightFirst, highlightLast, highlightedId, handleTypeaheadKey, toggleSelection } = context;
17020
16968
  const { setIds } = config;
17021
- (0, import_react85.useEffect)(() => {
16969
+ (0, import_react84.useEffect)(() => {
17022
16970
  if (id) setIds((prev) => ({ ...prev, content: id }));
17023
16971
  }, [id, setIds]);
17024
16972
  const showSearch = showSearchOverride ?? context.search.hasSearch;
17025
16973
  const listboxAriaLabel = showSearch ? translation("searchResults") : void 0;
17026
- const keyHandler = (0, import_react85.useCallback)(
16974
+ const keyHandler = (0, import_react84.useCallback)(
17027
16975
  (event) => {
17028
16976
  switch (event.key) {
17029
16977
  case "ArrowDown":
@@ -17060,7 +17008,7 @@ var MultiSelectContent = (0, import_react85.forwardRef)(function MultiSelectCont
17060
17008
  },
17061
17009
  [showSearch, handleTypeaheadKey, toggleSelection, highlightedId, highlightNext, highlightPrevious, highlightFirst, highlightLast]
17062
17010
  );
17063
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
17011
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
17064
17012
  PopUp,
17065
17013
  {
17066
17014
  ...props,
@@ -17076,7 +17024,7 @@ var MultiSelectContent = (0, import_react85.forwardRef)(function MultiSelectCont
17076
17024
  "aria-labelledby": context.config.ids.trigger,
17077
17025
  className: (0, import_clsx26.default)("gap-y-1", props.className),
17078
17026
  children: [
17079
- showSearch && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
17027
+ showSearch && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
17080
17028
  Input,
17081
17029
  {
17082
17030
  ...searchInputProps,
@@ -17095,7 +17043,7 @@ var MultiSelectContent = (0, import_react85.forwardRef)(function MultiSelectCont
17095
17043
  className: (0, import_clsx26.default)("mx-2 mt-2 shrink-0", searchInputProps?.className)
17096
17044
  }
17097
17045
  ),
17098
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
17046
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
17099
17047
  "ul",
17100
17048
  {
17101
17049
  ref: innerRef,
@@ -17110,7 +17058,7 @@ var MultiSelectContent = (0, import_react85.forwardRef)(function MultiSelectCont
17110
17058
  className: (0, import_clsx26.default)("flex-col-1 p-2 overflow-auto"),
17111
17059
  children: [
17112
17060
  props.children,
17113
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Visibility, { isVisible: showSearch, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
17061
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Visibility, { isVisible: showSearch, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
17114
17062
  "li",
17115
17063
  {
17116
17064
  role: "option",
@@ -17136,12 +17084,12 @@ var MultiSelectContent = (0, import_react85.forwardRef)(function MultiSelectCont
17136
17084
  });
17137
17085
 
17138
17086
  // src/components/user-interaction/MultiSelect/MultiSelect.tsx
17139
- var import_jsx_runtime74 = require("react/jsx-runtime");
17140
- var MultiSelect = (0, import_react86.forwardRef)(
17087
+ var import_jsx_runtime73 = require("react/jsx-runtime");
17088
+ var MultiSelect = (0, import_react85.forwardRef)(
17141
17089
  function MultiSelect2({ children, contentPanelProps, buttonProps, ...props }, ref) {
17142
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(MultiSelectRoot, { ...props, children: [
17143
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MultiSelectButton, { ref, ...buttonProps }),
17144
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MultiSelectContent, { ...contentPanelProps, children })
17090
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(MultiSelectRoot, { ...props, children: [
17091
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(MultiSelectButton, { ref, ...buttonProps }),
17092
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(MultiSelectContent, { ...contentPanelProps, children })
17145
17093
  ] });
17146
17094
  }
17147
17095
  );
@@ -17150,41 +17098,51 @@ var MultiSelect = (0, import_react86.forwardRef)(
17150
17098
  var import_clsx27 = __toESM(require("clsx"));
17151
17099
 
17152
17100
  // src/components/user-interaction/data/FilterOperatorLabel.tsx
17153
- var import_jsx_runtime75 = require("react/jsx-runtime");
17101
+ var import_jsx_runtime74 = require("react/jsx-runtime");
17154
17102
  var FilterOperatorLabel = ({ operator }) => {
17155
17103
  const translation = useHightideTranslation();
17156
17104
  const { icon, translationKey } = FilterOperatorUtils.getInfo(operator);
17157
17105
  const label = typeof translationKey === "string" ? translation(translationKey) : translationKey;
17158
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-row-1 items-center gap-2", children: [
17106
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex-row-1 items-center gap-2", children: [
17159
17107
  icon,
17160
17108
  label
17161
17109
  ] });
17162
17110
  };
17163
17111
 
17164
17112
  // src/components/user-interaction/data/FilterPopUp.tsx
17165
- var import_jsx_runtime76 = require("react/jsx-runtime");
17166
- var FilterBasePopUp = (0, import_react87.forwardRef)(function FilterBasePopUp2({
17113
+ var import_jsx_runtime75 = require("react/jsx-runtime");
17114
+ var FilterBasePopUp = (0, import_react86.forwardRef)(function FilterBasePopUp2({
17167
17115
  children,
17168
17116
  name,
17169
17117
  operator,
17170
17118
  onOperatorChange,
17171
17119
  onRemove,
17172
17120
  allowedOperators,
17121
+ operatorOverrides,
17173
17122
  noParameterRequired = false,
17174
17123
  ...props
17175
17124
  }, ref) {
17176
17125
  const translation = useHightideTranslation();
17177
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17126
+ const operators = (0, import_react86.useMemo)(() => {
17127
+ if (!operatorOverrides || operatorOverrides.length === 0) return allowedOperators;
17128
+ return allowedOperators.filter((op) => operatorOverrides.includes(op));
17129
+ }, [allowedOperators, operatorOverrides]);
17130
+ (0, import_react86.useEffect)(() => {
17131
+ if (operators.length === 0) {
17132
+ onRemove();
17133
+ }
17134
+ }, [operators, onRemove]);
17135
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
17178
17136
  PopUp,
17179
17137
  {
17180
17138
  ref,
17181
17139
  ...props,
17182
17140
  className: (0, import_clsx27.default)("flex-col-3 p-3 relative min-w-64", props.className),
17183
17141
  children: [
17184
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-row-4 justify-between w-full", children: [
17185
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-row-0.5 items-center", children: [
17186
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "typography-label-sm text-description", children: name ?? translation("filter") }),
17187
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17142
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-row-4 justify-between w-full", children: [
17143
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-row-0.5 items-center", children: [
17144
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "typography-label-sm text-description", children: name ?? translation("filter") }),
17145
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17188
17146
  Select,
17189
17147
  {
17190
17148
  value: operator,
@@ -17195,12 +17153,12 @@ var FilterBasePopUp = (0, import_react87.forwardRef)(function FilterBasePopUp2({
17195
17153
  "selectedDisplay": (option) => option ? translation(FilterOperatorUtils.getInfo(option.value).translationKey) : ""
17196
17154
  },
17197
17155
  iconAppearance: "right",
17198
- children: allowedOperators.map((op) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(SelectOption, { value: op, label: translation(FilterOperatorUtils.getInfo(op).translationKey), children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(FilterOperatorLabel, { operator: op }) }, op))
17156
+ children: operators.map((op) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(SelectOption, { value: op, label: translation(FilterOperatorUtils.getInfo(op).translationKey), children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(FilterOperatorLabel, { operator: op }) }, op))
17199
17157
  }
17200
17158
  )
17201
17159
  ] }),
17202
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-row-0 items-center", children: [
17203
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17160
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-row-0 items-center", children: [
17161
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17204
17162
  IconButton,
17205
17163
  {
17206
17164
  tooltip: translation("removeFilter"),
@@ -17208,29 +17166,29 @@ var FilterBasePopUp = (0, import_react87.forwardRef)(function FilterBasePopUp2({
17208
17166
  color: "negative",
17209
17167
  coloringStyle: "text",
17210
17168
  size: "sm",
17211
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react20.TrashIcon, { className: "size-4" })
17169
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react19.TrashIcon, { className: "size-4" })
17212
17170
  }
17213
17171
  ),
17214
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17172
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17215
17173
  IconButton,
17216
17174
  {
17217
- tooltip: translation("close"),
17175
+ tooltip: translation("done"),
17218
17176
  onClick: props.onClose,
17219
17177
  color: "neutral",
17220
17178
  coloringStyle: "text",
17221
17179
  size: "sm",
17222
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react20.XIcon, { className: "size-4" })
17180
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react19.Check, { className: "size-4" })
17223
17181
  }
17224
17182
  )
17225
17183
  ] })
17226
17184
  ] }),
17227
17185
  children,
17228
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: noParameterRequired, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "flex-row-0 items-center text-sm text-description h-element-sm", children: translation("noParameterRequired") }) })
17186
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: noParameterRequired, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "flex-row-0 items-center text-sm text-description h-element-sm", children: translation("noParameterRequired") }) })
17229
17187
  ]
17230
17188
  }
17231
17189
  );
17232
17190
  });
17233
- var TextFilterPopUp = (0, import_react87.forwardRef)(function TextFilterPopUp2({
17191
+ var TextFilterPopUp = (0, import_react86.forwardRef)(function TextFilterPopUp2({
17234
17192
  name,
17235
17193
  value,
17236
17194
  onValueChange,
@@ -17238,12 +17196,12 @@ var TextFilterPopUp = (0, import_react87.forwardRef)(function TextFilterPopUp2({
17238
17196
  ...props
17239
17197
  }, ref) {
17240
17198
  const translation = useHightideTranslation();
17241
- const id = (0, import_react87.useId)();
17199
+ const id = (0, import_react86.useId)();
17242
17200
  const ids = {
17243
17201
  search: `text-filter-search-${id}`,
17244
17202
  caseSensitive: `text-filter-case-sensitive-${id}`
17245
17203
  };
17246
- const operator = (0, import_react87.useMemo)(() => {
17204
+ const operator = (0, import_react86.useMemo)(() => {
17247
17205
  const suggestion = value?.operator ?? "contains";
17248
17206
  if (!FilterOperatorUtils.typeCheck.text(suggestion)) {
17249
17207
  return "contains";
@@ -17252,7 +17210,7 @@ var TextFilterPopUp = (0, import_react87.forwardRef)(function TextFilterPopUp2({
17252
17210
  }, [value]);
17253
17211
  const parameter = value?.parameter ?? {};
17254
17212
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
17255
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17213
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17256
17214
  FilterBasePopUp,
17257
17215
  {
17258
17216
  ref,
@@ -17263,48 +17221,29 @@ var TextFilterPopUp = (0, import_react87.forwardRef)(function TextFilterPopUp2({
17263
17221
  onRemove,
17264
17222
  allowedOperators: FilterOperatorUtils.operatorsByCategory.text,
17265
17223
  noParameterRequired: !needsParameterInput,
17266
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Visibility, { isVisible: needsParameterInput, children: [
17267
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-col-1", children: [
17268
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.search, className: "typography-label-md", children: translation("search") }),
17269
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17270
- Input,
17271
- {
17272
- id: ids.search,
17273
- value: parameter.searchText ?? "",
17274
- placeholder: translation("value"),
17275
- onValueChange: (searchText) => {
17276
- onValueChange({
17277
- dataType: "text",
17278
- operator,
17279
- parameter: { ...parameter, searchText }
17280
- });
17281
- },
17282
- className: "min-w-64"
17283
- }
17284
- )
17285
- ] }),
17286
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-row-2 items-center mt-1", children: [
17287
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17288
- Checkbox,
17289
- {
17290
- id: ids.caseSensitive,
17291
- value: parameter.isCaseSensitive ?? false,
17292
- onValueChange: (isCaseSensitive) => {
17293
- onValueChange({
17294
- dataType: "text",
17295
- operator,
17296
- parameter: { ...parameter, isCaseSensitive }
17297
- });
17298
- }
17299
- }
17300
- ),
17301
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.caseSensitive, children: translation("caseSensitive") })
17302
- ] })
17303
- ] })
17224
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-col-1", children: [
17225
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.search, className: "typography-label-md", children: translation("search") }),
17226
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17227
+ Input,
17228
+ {
17229
+ id: ids.search,
17230
+ value: parameter.stringValue ?? "",
17231
+ placeholder: translation("value"),
17232
+ onValueChange: (searchText) => {
17233
+ onValueChange({
17234
+ dataType: "text",
17235
+ operator,
17236
+ parameter: { ...parameter, stringValue: searchText }
17237
+ });
17238
+ },
17239
+ className: "min-w-64"
17240
+ }
17241
+ )
17242
+ ] }) })
17304
17243
  }
17305
17244
  );
17306
17245
  });
17307
- var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopUp2({
17246
+ var NumberFilterPopUp = (0, import_react86.forwardRef)(function NumberFilterPopUp2({
17308
17247
  name,
17309
17248
  value,
17310
17249
  onValueChange,
@@ -17312,13 +17251,13 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17312
17251
  ...props
17313
17252
  }, ref) {
17314
17253
  const translation = useHightideTranslation();
17315
- const id = (0, import_react87.useId)();
17254
+ const id = (0, import_react86.useId)();
17316
17255
  const ids = {
17317
17256
  min: `number-filter-min-${id}`,
17318
17257
  max: `number-filter-max-${id}`,
17319
17258
  compareValue: `number-filter-compare-value-${id}`
17320
17259
  };
17321
- const operator = (0, import_react87.useMemo)(() => {
17260
+ const operator = (0, import_react86.useMemo)(() => {
17322
17261
  const suggestion = value?.operator ?? "between";
17323
17262
  if (!FilterOperatorUtils.typeCheck.number(suggestion)) {
17324
17263
  return "between";
@@ -17328,7 +17267,7 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17328
17267
  const parameter = value?.parameter ?? {};
17329
17268
  const needsRangeInput = operator === "between" || operator === "notBetween";
17330
17269
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
17331
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17270
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
17332
17271
  FilterBasePopUp,
17333
17272
  {
17334
17273
  ref,
@@ -17342,14 +17281,14 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17342
17281
  allowedOperators: FilterOperatorUtils.operatorsByCategory.number,
17343
17282
  noParameterRequired: !needsParameterInput,
17344
17283
  children: [
17345
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Visibility, { isVisible: needsRangeInput, children: [
17346
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-col-1", children: [
17347
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.min, className: "typography-label-md", children: translation("min") }),
17348
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17284
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Visibility, { isVisible: needsRangeInput, children: [
17285
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-col-1", children: [
17286
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.min, className: "typography-label-md", children: translation("min") }),
17287
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17349
17288
  Input,
17350
17289
  {
17351
17290
  id: ids.min,
17352
- value: parameter.minNumber?.toString() ?? "",
17291
+ value: parameter.numberMin?.toString() ?? "",
17353
17292
  type: "number",
17354
17293
  placeholder: "0",
17355
17294
  onValueChange: (text) => {
@@ -17357,20 +17296,20 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17357
17296
  onValueChange({
17358
17297
  dataType: "number",
17359
17298
  operator,
17360
- parameter: { ...parameter, minNumber: isNaN(num) ? void 0 : num }
17299
+ parameter: { ...parameter, numberMin: isNaN(num) ? void 0 : num }
17361
17300
  });
17362
17301
  },
17363
17302
  className: "min-w-64"
17364
17303
  }
17365
17304
  )
17366
17305
  ] }),
17367
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-col-1", children: [
17368
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.max, className: "typography-label-md", children: translation("max") }),
17369
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17306
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-col-1", children: [
17307
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.max, className: "typography-label-md", children: translation("max") }),
17308
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17370
17309
  Input,
17371
17310
  {
17372
17311
  id: ids.max,
17373
- value: parameter.maxNumber?.toString() ?? "",
17312
+ value: parameter.numberMax?.toString() ?? "",
17374
17313
  type: "number",
17375
17314
  placeholder: "1",
17376
17315
  onValueChange: (text) => {
@@ -17378,7 +17317,7 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17378
17317
  onValueChange({
17379
17318
  dataType: "number",
17380
17319
  operator,
17381
- parameter: { ...parameter, maxNumber: isNaN(num) ? void 0 : num }
17320
+ parameter: { ...parameter, numberMax: isNaN(num) ? void 0 : num }
17382
17321
  });
17383
17322
  },
17384
17323
  className: "min-w-64"
@@ -17386,10 +17325,10 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17386
17325
  )
17387
17326
  ] })
17388
17327
  ] }),
17389
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: !needsRangeInput && needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17328
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: !needsRangeInput && needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17390
17329
  Input,
17391
17330
  {
17392
- value: parameter.compareValue?.toString() ?? "",
17331
+ value: parameter.numberValue?.toString() ?? "",
17393
17332
  type: "number",
17394
17333
  placeholder: "0",
17395
17334
  onValueChange: (text) => {
@@ -17397,7 +17336,7 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17397
17336
  onValueChange({
17398
17337
  dataType: "number",
17399
17338
  operator,
17400
- parameter: { ...parameter, compareValue: isNaN(num) ? void 0 : num }
17339
+ parameter: { ...parameter, numberValue: isNaN(num) ? void 0 : num }
17401
17340
  });
17402
17341
  },
17403
17342
  className: "min-w-64"
@@ -17407,7 +17346,7 @@ var NumberFilterPopUp = (0, import_react87.forwardRef)(function NumberFilterPopU
17407
17346
  }
17408
17347
  );
17409
17348
  });
17410
- var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17349
+ var DateFilterPopUp = (0, import_react86.forwardRef)(function DateFilterPopUp2({
17411
17350
  name,
17412
17351
  value,
17413
17352
  onValueChange,
@@ -17415,13 +17354,13 @@ var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17415
17354
  ...props
17416
17355
  }, ref) {
17417
17356
  const translation = useHightideTranslation();
17418
- const id = (0, import_react87.useId)();
17357
+ const id = (0, import_react86.useId)();
17419
17358
  const ids = {
17420
17359
  startDate: `date-filter-start-date-${id}`,
17421
17360
  endDate: `date-filter-end-date-${id}`,
17422
17361
  compareDate: `date-filter-compare-date-${id}`
17423
17362
  };
17424
- const operator = (0, import_react87.useMemo)(() => {
17363
+ const operator = (0, import_react86.useMemo)(() => {
17425
17364
  const suggestion = value?.operator ?? "between";
17426
17365
  if (!FilterOperatorUtils.typeCheck.date(suggestion)) {
17427
17366
  return "between";
@@ -17429,11 +17368,11 @@ var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17429
17368
  return suggestion;
17430
17369
  }, [value]);
17431
17370
  const parameter = value?.parameter ?? {};
17432
- const [temporaryMinDateValue, setTemporaryMinDateValue] = (0, import_react87.useState)(null);
17433
- const [temporaryMaxDateValue, setTemporaryMaxDateValue] = (0, import_react87.useState)(null);
17371
+ const [temporaryMinDateValue, setTemporaryMinDateValue] = (0, import_react86.useState)(null);
17372
+ const [temporaryMaxDateValue, setTemporaryMaxDateValue] = (0, import_react86.useState)(null);
17434
17373
  const needsRangeInput = operator === "between" || operator === "notBetween";
17435
17374
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
17436
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17375
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
17437
17376
  FilterBasePopUp,
17438
17377
  {
17439
17378
  ref,
@@ -17445,36 +17384,36 @@ var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17445
17384
  allowedOperators: FilterOperatorUtils.operatorsByCategory.date,
17446
17385
  noParameterRequired: !needsParameterInput,
17447
17386
  children: [
17448
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Visibility, { isVisible: needsRangeInput, children: [
17449
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-col-1", children: [
17450
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.startDate, className: "typography-label-md", children: translation("startDate") }),
17451
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17387
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Visibility, { isVisible: needsRangeInput, children: [
17388
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-col-1", children: [
17389
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.startDate, className: "typography-label-md", children: translation("startDate") }),
17390
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17452
17391
  DateTimeInput,
17453
17392
  {
17454
17393
  id: ids.startDate,
17455
- value: temporaryMinDateValue ?? parameter.minDate ?? null,
17394
+ value: temporaryMinDateValue ?? parameter.dateMin ?? null,
17456
17395
  onValueChange: setTemporaryMinDateValue,
17457
17396
  onEditComplete: (dateValue) => {
17458
- if (dateValue && parameter.maxDate && dateValue > parameter.maxDate) {
17459
- if (!parameter.minDate) {
17397
+ if (dateValue && parameter.dateMax && dateValue > parameter.dateMax) {
17398
+ if (!parameter.dateMin) {
17460
17399
  onValueChange({
17461
17400
  dataType: "date",
17462
17401
  operator,
17463
- parameter: { ...parameter, minDate: parameter.maxDate, maxDate: dateValue }
17402
+ parameter: { ...parameter, dateMin: parameter.dateMax, dateMax: dateValue }
17464
17403
  });
17465
17404
  } else {
17466
- const diff = parameter.maxDate.getTime() - parameter.minDate.getTime();
17405
+ const diff = parameter.dateMax.getTime() - parameter.dateMin.getTime();
17467
17406
  onValueChange({
17468
17407
  dataType: "date",
17469
17408
  operator,
17470
- parameter: { ...parameter, minDate: dateValue, maxDate: new Date(dateValue.getTime() + diff) }
17409
+ parameter: { ...parameter, dateMin: dateValue, dateMax: new Date(dateValue.getTime() + diff) }
17471
17410
  });
17472
17411
  }
17473
17412
  } else {
17474
17413
  onValueChange({
17475
17414
  dataType: "date",
17476
17415
  operator,
17477
- parameter: { ...parameter, minDate: dateValue }
17416
+ parameter: { ...parameter, dateMin: dateValue }
17478
17417
  });
17479
17418
  }
17480
17419
  setTemporaryMinDateValue(null);
@@ -17485,35 +17424,35 @@ var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17485
17424
  }
17486
17425
  )
17487
17426
  ] }),
17488
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-col-1", children: [
17489
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.endDate, className: "typography-label-md", children: translation("endDate") }),
17490
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17427
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-col-1", children: [
17428
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.endDate, className: "typography-label-md", children: translation("endDate") }),
17429
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17491
17430
  DateTimeInput,
17492
17431
  {
17493
17432
  id: ids.endDate,
17494
- value: temporaryMaxDateValue ?? parameter.maxDate ?? null,
17433
+ value: temporaryMaxDateValue ?? parameter.dateMax ?? null,
17495
17434
  onValueChange: setTemporaryMaxDateValue,
17496
17435
  onEditComplete: (dateValue) => {
17497
- if (dateValue && parameter.minDate && dateValue < parameter.minDate) {
17498
- if (!parameter.maxDate) {
17436
+ if (dateValue && parameter.dateMin && dateValue < parameter.dateMin) {
17437
+ if (!parameter.dateMax) {
17499
17438
  onValueChange({
17500
17439
  dataType: "date",
17501
17440
  operator,
17502
- parameter: { ...parameter, minDate: dateValue, maxDate: parameter.minDate }
17441
+ parameter: { ...parameter, dateMin: dateValue, dateMax: parameter.dateMin }
17503
17442
  });
17504
17443
  } else {
17505
- const diff = parameter.maxDate.getTime() - parameter.minDate.getTime();
17444
+ const diff = parameter.dateMax.getTime() - parameter.dateMin.getTime();
17506
17445
  onValueChange({
17507
17446
  dataType: "date",
17508
17447
  operator,
17509
- parameter: { ...parameter, minDate: new Date(dateValue.getTime() - diff), maxDate: dateValue }
17448
+ parameter: { ...parameter, dateMin: new Date(dateValue.getTime() - diff), dateMax: dateValue }
17510
17449
  });
17511
17450
  }
17512
17451
  } else {
17513
17452
  onValueChange({
17514
17453
  dataType: "date",
17515
17454
  operator,
17516
- parameter: { ...parameter, maxDate: dateValue }
17455
+ parameter: { ...parameter, dateMax: dateValue }
17517
17456
  });
17518
17457
  }
17519
17458
  setTemporaryMaxDateValue(null);
@@ -17525,17 +17464,17 @@ var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17525
17464
  )
17526
17465
  ] })
17527
17466
  ] }),
17528
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Visibility, { isVisible: !needsRangeInput && needsParameterInput, children: [
17529
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.compareDate, className: "typography-label-md", children: translation("date") }),
17530
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17467
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Visibility, { isVisible: !needsRangeInput && needsParameterInput, children: [
17468
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.compareDate, className: "typography-label-md", children: translation("date") }),
17469
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17531
17470
  DateTimeInput,
17532
17471
  {
17533
17472
  id: ids.compareDate,
17534
- value: parameter.compareDate ?? null,
17473
+ value: parameter.dateValue ?? null,
17535
17474
  onValueChange: (compareDate) => {
17536
17475
  onValueChange({
17537
17476
  ...value,
17538
- parameter: { ...parameter, compareDate }
17477
+ parameter: { ...parameter, dateValue: compareDate }
17539
17478
  });
17540
17479
  },
17541
17480
  allowRemove: true,
@@ -17544,12 +17483,12 @@ var DateFilterPopUp = (0, import_react87.forwardRef)(function DateFilterPopUp2({
17544
17483
  }
17545
17484
  )
17546
17485
  ] }),
17547
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17486
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17548
17487
  ]
17549
17488
  }
17550
17489
  );
17551
17490
  });
17552
- var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilterPopUp2({
17491
+ var DatetimeFilterPopUp = (0, import_react86.forwardRef)(function DatetimeFilterPopUp2({
17553
17492
  name,
17554
17493
  value,
17555
17494
  onValueChange,
@@ -17557,13 +17496,13 @@ var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilter
17557
17496
  ...props
17558
17497
  }, ref) {
17559
17498
  const translation = useHightideTranslation();
17560
- const id = (0, import_react87.useId)();
17499
+ const id = (0, import_react86.useId)();
17561
17500
  const ids = {
17562
17501
  startDate: `datetime-filter-start-date-${id}`,
17563
17502
  endDate: `datetime-filter-end-date-${id}`,
17564
17503
  compareDate: `datetime-filter-compare-date-${id}`
17565
17504
  };
17566
- const operator = (0, import_react87.useMemo)(() => {
17505
+ const operator = (0, import_react86.useMemo)(() => {
17567
17506
  const suggestion = value?.operator ?? "between";
17568
17507
  if (!FilterOperatorUtils.typeCheck.datetime(suggestion)) {
17569
17508
  return "between";
@@ -17571,11 +17510,11 @@ var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilter
17571
17510
  return suggestion;
17572
17511
  }, [value]);
17573
17512
  const parameter = value?.parameter ?? {};
17574
- const [temporaryMinDateValue, setTemporaryMinDateValue] = (0, import_react87.useState)(null);
17575
- const [temporaryMaxDateValue, setTemporaryMaxDateValue] = (0, import_react87.useState)(null);
17513
+ const [temporaryMinDateValue, setTemporaryMinDateValue] = (0, import_react86.useState)(null);
17514
+ const [temporaryMaxDateValue, setTemporaryMaxDateValue] = (0, import_react86.useState)(null);
17576
17515
  const needsRangeInput = operator === "between" || operator === "notBetween";
17577
17516
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
17578
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17517
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
17579
17518
  FilterBasePopUp,
17580
17519
  {
17581
17520
  ref,
@@ -17586,37 +17525,37 @@ var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilter
17586
17525
  onRemove,
17587
17526
  allowedOperators: FilterOperatorUtils.operatorsByCategory.dateTime,
17588
17527
  children: [
17589
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "typography-label-lg font-semibold", children: translation("parameter") }),
17590
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: needsRangeInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "flex-col-2 gap-2", children: [
17591
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.startDate, className: "typography-label-md", children: translation("startDate") }),
17592
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17528
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "typography-label-lg font-semibold", children: translation("parameter") }),
17529
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: needsRangeInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex-col-2 gap-2", children: [
17530
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.startDate, className: "typography-label-md", children: translation("startDate") }),
17531
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17593
17532
  DateTimeInput,
17594
17533
  {
17595
17534
  id: ids.startDate,
17596
17535
  mode: "dateTime",
17597
- value: temporaryMinDateValue ?? parameter.minDate ?? null,
17536
+ value: temporaryMinDateValue ?? parameter.dateMin ?? null,
17598
17537
  onValueChange: setTemporaryMinDateValue,
17599
17538
  onEditComplete: (dateValue) => {
17600
- if (dateValue && parameter.maxDate && dateValue > parameter.maxDate) {
17601
- if (!parameter.minDate) {
17539
+ if (dateValue && parameter.dateMax && dateValue > parameter.dateMax) {
17540
+ if (!parameter.dateMin) {
17602
17541
  onValueChange({
17603
17542
  dataType: "dateTime",
17604
17543
  operator,
17605
- parameter: { ...parameter, minDate: parameter.maxDate, maxDate: dateValue }
17544
+ parameter: { ...parameter, dateMin: parameter.dateMax, dateMax: dateValue }
17606
17545
  });
17607
17546
  } else {
17608
- const diff = parameter.maxDate.getTime() - parameter.minDate.getTime();
17547
+ const diff = parameter.dateMax.getTime() - parameter.dateMin.getTime();
17609
17548
  onValueChange({
17610
17549
  dataType: "dateTime",
17611
17550
  operator,
17612
- parameter: { ...parameter, minDate: dateValue, maxDate: new Date(dateValue.getTime() + diff) }
17551
+ parameter: { ...parameter, dateMin: dateValue, dateMax: new Date(dateValue.getTime() + diff) }
17613
17552
  });
17614
17553
  }
17615
17554
  } else {
17616
17555
  onValueChange({
17617
17556
  dataType: "dateTime",
17618
17557
  operator,
17619
- parameter: { ...parameter, minDate: dateValue }
17558
+ parameter: { ...parameter, dateMin: dateValue }
17620
17559
  });
17621
17560
  }
17622
17561
  setTemporaryMinDateValue(null);
@@ -17626,35 +17565,35 @@ var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilter
17626
17565
  className: "min-w-64"
17627
17566
  }
17628
17567
  ),
17629
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.endDate, className: "typography-label-md", children: translation("endDate") }),
17630
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17568
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.endDate, className: "typography-label-md", children: translation("endDate") }),
17569
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17631
17570
  DateTimeInput,
17632
17571
  {
17633
17572
  id: ids.endDate,
17634
17573
  mode: "dateTime",
17635
- value: temporaryMaxDateValue ?? parameter.maxDate ?? null,
17574
+ value: temporaryMaxDateValue ?? parameter.dateMax ?? null,
17636
17575
  onValueChange: setTemporaryMaxDateValue,
17637
17576
  onEditComplete: (dateValue) => {
17638
- if (dateValue && parameter.minDate && dateValue < parameter.minDate) {
17639
- if (!parameter.maxDate) {
17577
+ if (dateValue && parameter.dateMin && dateValue < parameter.dateMin) {
17578
+ if (!parameter.dateMax) {
17640
17579
  onValueChange({
17641
17580
  dataType: "dateTime",
17642
17581
  operator,
17643
- parameter: { ...parameter, minDate: dateValue, maxDate: parameter.minDate }
17582
+ parameter: { ...parameter, dateMin: dateValue, dateMax: parameter.dateMin }
17644
17583
  });
17645
17584
  } else {
17646
- const diff = parameter.maxDate.getTime() - parameter.minDate.getTime();
17585
+ const diff = parameter.dateMax.getTime() - parameter.dateMin.getTime();
17647
17586
  onValueChange({
17648
17587
  dataType: "dateTime",
17649
17588
  operator,
17650
- parameter: { ...parameter, minDate: new Date(dateValue.getTime() - diff), maxDate: dateValue }
17589
+ parameter: { ...parameter, dateMin: new Date(dateValue.getTime() - diff), dateMax: dateValue }
17651
17590
  });
17652
17591
  }
17653
17592
  } else {
17654
17593
  onValueChange({
17655
17594
  dataType: "dateTime",
17656
17595
  operator,
17657
- parameter: { ...parameter, maxDate: dateValue }
17596
+ parameter: { ...parameter, dateMax: dateValue }
17658
17597
  });
17659
17598
  }
17660
17599
  setTemporaryMaxDateValue(null);
@@ -17665,19 +17604,19 @@ var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilter
17665
17604
  }
17666
17605
  )
17667
17606
  ] }) }),
17668
- /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(Visibility, { isVisible: !needsRangeInput && needsParameterInput, children: [
17669
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { htmlFor: ids.compareDate, className: "typography-label-md", children: translation("date") }),
17670
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17607
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Visibility, { isVisible: !needsRangeInput && needsParameterInput, children: [
17608
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("label", { htmlFor: ids.compareDate, className: "typography-label-md", children: translation("date") }),
17609
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17671
17610
  DateTimeInput,
17672
17611
  {
17673
17612
  id: ids.compareDate,
17674
17613
  mode: "dateTime",
17675
- value: parameter.compareDate ?? null,
17614
+ value: parameter.dateValue ?? null,
17676
17615
  onValueChange: (compareDate) => {
17677
17616
  onValueChange({
17678
17617
  dataType: "dateTime",
17679
17618
  operator,
17680
- parameter: { ...parameter, compareDate }
17619
+ parameter: { ...parameter, dateValue: compareDate }
17681
17620
  });
17682
17621
  },
17683
17622
  allowRemove: true,
@@ -17686,19 +17625,19 @@ var DatetimeFilterPopUp = (0, import_react87.forwardRef)(function DatetimeFilter
17686
17625
  }
17687
17626
  )
17688
17627
  ] }),
17689
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17628
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17690
17629
  ]
17691
17630
  }
17692
17631
  );
17693
17632
  });
17694
- var BooleanFilterPopUp = (0, import_react87.forwardRef)(function BooleanFilterPopUp2({
17633
+ var BooleanFilterPopUp = (0, import_react86.forwardRef)(function BooleanFilterPopUp2({
17695
17634
  name,
17696
17635
  value,
17697
17636
  onValueChange,
17698
17637
  onRemove,
17699
17638
  ...props
17700
17639
  }, ref) {
17701
- const operator = (0, import_react87.useMemo)(() => {
17640
+ const operator = (0, import_react86.useMemo)(() => {
17702
17641
  const suggestion = value?.operator ?? "isTrue";
17703
17642
  if (!FilterOperatorUtils.typeCheck.boolean(suggestion)) {
17704
17643
  return "isTrue";
@@ -17706,7 +17645,7 @@ var BooleanFilterPopUp = (0, import_react87.forwardRef)(function BooleanFilterPo
17706
17645
  return suggestion;
17707
17646
  }, [value]);
17708
17647
  const parameter = value?.parameter ?? {};
17709
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17648
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17710
17649
  FilterBasePopUp,
17711
17650
  {
17712
17651
  ref,
@@ -17719,7 +17658,7 @@ var BooleanFilterPopUp = (0, import_react87.forwardRef)(function BooleanFilterPo
17719
17658
  }
17720
17659
  );
17721
17660
  });
17722
- var TagsFilterPopUp = (0, import_react87.forwardRef)(function TagsFilterPopUp2({
17661
+ var TagsFilterPopUp = (0, import_react86.forwardRef)(function TagsFilterPopUp2({
17723
17662
  name,
17724
17663
  value,
17725
17664
  onValueChange,
@@ -17728,7 +17667,7 @@ var TagsFilterPopUp = (0, import_react87.forwardRef)(function TagsFilterPopUp2({
17728
17667
  ...props
17729
17668
  }, ref) {
17730
17669
  const translation = useHightideTranslation();
17731
- const operator = (0, import_react87.useMemo)(() => {
17670
+ const operator = (0, import_react86.useMemo)(() => {
17732
17671
  const suggestion = value?.operator ?? "contains";
17733
17672
  if (!FilterOperatorUtils.typeCheck.tags(suggestion)) {
17734
17673
  return "contains";
@@ -17736,12 +17675,12 @@ var TagsFilterPopUp = (0, import_react87.forwardRef)(function TagsFilterPopUp2({
17736
17675
  return suggestion;
17737
17676
  }, [value]);
17738
17677
  const parameter = value?.parameter ?? {};
17739
- const selectedTags = Array.isArray(parameter.multiOptionSearch) ? parameter.multiOptionSearch : [];
17678
+ const selectedTags = Array.isArray(parameter.uuidValues) ? parameter.uuidValues : [];
17740
17679
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
17741
17680
  if (availableTags.length === 0) {
17742
17681
  return null;
17743
17682
  }
17744
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17683
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
17745
17684
  FilterBasePopUp,
17746
17685
  {
17747
17686
  ref,
@@ -17752,8 +17691,8 @@ var TagsFilterPopUp = (0, import_react87.forwardRef)(function TagsFilterPopUp2({
17752
17691
  onRemove,
17753
17692
  allowedOperators: FilterOperatorUtils.operatorsByCategory.multiTags,
17754
17693
  children: [
17755
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "typography-label-lg font-semibold", children: translation("parameter") }),
17756
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17694
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "typography-label-lg font-semibold", children: translation("parameter") }),
17695
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17757
17696
  MultiSelect,
17758
17697
  {
17759
17698
  value: selectedTags,
@@ -17761,19 +17700,19 @@ var TagsFilterPopUp = (0, import_react87.forwardRef)(function TagsFilterPopUp2({
17761
17700
  onValueChange({
17762
17701
  dataType: "multiTags",
17763
17702
  operator,
17764
- parameter: { ...parameter, multiOptionSearch: selected.length > 0 ? selected : void 0 }
17703
+ parameter: { ...parameter, uuidValues: selected.length > 0 ? selected : void 0 }
17765
17704
  });
17766
17705
  },
17767
17706
  buttonProps: { className: "min-w-64" },
17768
- children: availableTags.map(({ tag, label }) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(MultiSelectOption, { value: tag, label, children: label }, tag))
17707
+ children: availableTags.map(({ tag, label }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(MultiSelectOption, { value: tag, label, children: label }, tag))
17769
17708
  }
17770
17709
  ) }),
17771
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17710
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17772
17711
  ]
17773
17712
  }
17774
17713
  );
17775
17714
  });
17776
- var TagsSingleFilterPopUp = (0, import_react87.forwardRef)(function TagsSingleFilterPopUp2({
17715
+ var TagsSingleFilterPopUp = (0, import_react86.forwardRef)(function TagsSingleFilterPopUp2({
17777
17716
  name,
17778
17717
  value,
17779
17718
  onValueChange,
@@ -17782,7 +17721,7 @@ var TagsSingleFilterPopUp = (0, import_react87.forwardRef)(function TagsSingleFi
17782
17721
  ...props
17783
17722
  }, ref) {
17784
17723
  const translation = useHightideTranslation();
17785
- const operator = (0, import_react87.useMemo)(() => {
17724
+ const operator = (0, import_react86.useMemo)(() => {
17786
17725
  const suggestion = value?.operator ?? "contains";
17787
17726
  if (!FilterOperatorUtils.typeCheck.tagsSingle(suggestion)) {
17788
17727
  return "contains";
@@ -17790,14 +17729,14 @@ var TagsSingleFilterPopUp = (0, import_react87.forwardRef)(function TagsSingleFi
17790
17729
  return suggestion;
17791
17730
  }, [value]);
17792
17731
  const parameter = value?.parameter ?? {};
17793
- const selectedTagsMulti = Array.isArray(parameter.multiOptionSearch) ? parameter.multiOptionSearch : [];
17794
- const selectedTagSingle = parameter.singleOptionSearch != null ? String(parameter.singleOptionSearch) : void 0;
17732
+ const selectedTagsMulti = Array.isArray(parameter.uuidValues) ? parameter.uuidValues : [];
17733
+ const selectedTagSingle = parameter.uuidValue != null ? String(parameter.uuidValue) : void 0;
17795
17734
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
17796
17735
  const needsMultiSelect = operator === "contains" || operator === "notContains";
17797
17736
  if (availableTags.length === 0) {
17798
17737
  return null;
17799
17738
  }
17800
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17739
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
17801
17740
  FilterBasePopUp,
17802
17741
  {
17803
17742
  ref,
@@ -17808,8 +17747,8 @@ var TagsSingleFilterPopUp = (0, import_react87.forwardRef)(function TagsSingleFi
17808
17747
  onRemove,
17809
17748
  allowedOperators: FilterOperatorUtils.operatorsByCategory.singleTag,
17810
17749
  children: [
17811
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "typography-label-lg font-semibold", children: translation("parameter") }),
17812
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: needsParameterInput && needsMultiSelect, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17750
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "typography-label-lg font-semibold", children: translation("parameter") }),
17751
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: needsParameterInput && needsMultiSelect, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17813
17752
  MultiSelect,
17814
17753
  {
17815
17754
  value: selectedTagsMulti,
@@ -17817,14 +17756,14 @@ var TagsSingleFilterPopUp = (0, import_react87.forwardRef)(function TagsSingleFi
17817
17756
  onValueChange({
17818
17757
  dataType: "singleTag",
17819
17758
  operator,
17820
- parameter: { ...parameter, multiOptionSearch: selected.length > 0 ? selected : void 0 }
17759
+ parameter: { ...parameter, uuidValues: selected.length > 0 ? selected : void 0 }
17821
17760
  });
17822
17761
  },
17823
17762
  buttonProps: { className: "min-w-64" },
17824
- children: availableTags.map(({ tag, label }) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(MultiSelectOption, { value: tag, label }, tag))
17763
+ children: availableTags.map(({ tag, label }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(MultiSelectOption, { value: tag, label }, tag))
17825
17764
  }
17826
17765
  ) }),
17827
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: needsParameterInput && !needsMultiSelect, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17766
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: needsParameterInput && !needsMultiSelect, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17828
17767
  Select,
17829
17768
  {
17830
17769
  value: selectedTagSingle,
@@ -17832,27 +17771,27 @@ var TagsSingleFilterPopUp = (0, import_react87.forwardRef)(function TagsSingleFi
17832
17771
  onValueChange({
17833
17772
  dataType: "singleTag",
17834
17773
  operator,
17835
- parameter: { ...parameter, singleOptionSearch: selectedTag ?? void 0 }
17774
+ parameter: { ...parameter, uuidValue: selectedTag ?? void 0 }
17836
17775
  });
17837
17776
  },
17838
17777
  buttonProps: { className: "min-w-64" },
17839
- children: availableTags.map(({ tag, label }) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(SelectOption, { value: tag, label }, tag))
17778
+ children: availableTags.map(({ tag, label }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(SelectOption, { value: tag, label }, tag))
17840
17779
  }
17841
17780
  ) }),
17842
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17781
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Visibility, { isVisible: !needsParameterInput, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-sm text-description h-10", children: translation("noParameterRequired") }) })
17843
17782
  ]
17844
17783
  }
17845
17784
  );
17846
17785
  });
17847
- var GenericFilterPopUp = (0, import_react87.forwardRef)(function GenericFilterPopUp2({ name, value, onValueChange, ...props }, ref) {
17848
- const operator = (0, import_react87.useMemo)(() => {
17786
+ var GenericFilterPopUp = (0, import_react86.forwardRef)(function GenericFilterPopUp2({ name, value, onValueChange, ...props }, ref) {
17787
+ const operator = (0, import_react86.useMemo)(() => {
17849
17788
  const suggestion = value?.operator ?? "isNotUndefined";
17850
17789
  if (!FilterOperatorUtils.typeCheck.unknownType(suggestion)) {
17851
17790
  return "isNotUndefined";
17852
17791
  }
17853
17792
  return suggestion;
17854
17793
  }, [value]);
17855
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17794
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17856
17795
  FilterBasePopUp,
17857
17796
  {
17858
17797
  ref,
@@ -17865,7 +17804,7 @@ var GenericFilterPopUp = (0, import_react87.forwardRef)(function GenericFilterPo
17865
17804
  }
17866
17805
  );
17867
17806
  });
17868
- var FilterPopUp = (0, import_react87.forwardRef)(function FilterPopUp2({
17807
+ var FilterPopUp = (0, import_react86.forwardRef)(function FilterPopUp2({
17869
17808
  name,
17870
17809
  value,
17871
17810
  onValueChange,
@@ -17875,26 +17814,26 @@ var FilterPopUp = (0, import_react87.forwardRef)(function FilterPopUp2({
17875
17814
  }, ref) {
17876
17815
  switch (dataType) {
17877
17816
  case "text":
17878
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(TextFilterPopUp, { ref, name, value, onValueChange, ...props });
17817
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(TextFilterPopUp, { ref, name, value, onValueChange, ...props });
17879
17818
  case "number":
17880
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(NumberFilterPopUp, { ref, name, value, onValueChange, ...props });
17819
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(NumberFilterPopUp, { ref, name, value, onValueChange, ...props });
17881
17820
  case "date":
17882
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(DateFilterPopUp, { ref, name, value, onValueChange, ...props });
17821
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(DateFilterPopUp, { ref, name, value, onValueChange, ...props });
17883
17822
  case "dateTime":
17884
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(DatetimeFilterPopUp, { ref, name, value, onValueChange, ...props });
17823
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(DatetimeFilterPopUp, { ref, name, value, onValueChange, ...props });
17885
17824
  case "boolean":
17886
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(BooleanFilterPopUp, { ref, name, value, onValueChange, ...props });
17825
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(BooleanFilterPopUp, { ref, name, value, onValueChange, ...props });
17887
17826
  case "multiTags":
17888
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(TagsFilterPopUp, { ref, name, value, onValueChange, tags, ...props });
17827
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(TagsFilterPopUp, { ref, name, value, onValueChange, tags, ...props });
17889
17828
  case "singleTag":
17890
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(TagsSingleFilterPopUp, { ref, name, value, onValueChange, tags, ...props });
17829
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(TagsSingleFilterPopUp, { ref, name, value, onValueChange, tags, ...props });
17891
17830
  case "unknownType":
17892
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(GenericFilterPopUp, { ref, name, value, onValueChange, ...props });
17831
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(GenericFilterPopUp, { ref, name, value, onValueChange, ...props });
17893
17832
  }
17894
17833
  });
17895
17834
 
17896
17835
  // src/components/layout/table/TableFilterButton.tsx
17897
- var import_jsx_runtime77 = require("react/jsx-runtime");
17836
+ var import_jsx_runtime76 = require("react/jsx-runtime");
17898
17837
  var TableFilterButton = ({
17899
17838
  filterType,
17900
17839
  header
@@ -17902,18 +17841,18 @@ var TableFilterButton = ({
17902
17841
  const translation = useHightideTranslation();
17903
17842
  const column = header.column;
17904
17843
  const columnFilterValue = column.getFilterValue();
17905
- const [filterValue, setFilterValue] = (0, import_react88.useState)(columnFilterValue);
17844
+ const [filterValue, setFilterValue] = (0, import_react87.useState)(columnFilterValue);
17906
17845
  const hasFilter = !!filterValue;
17907
- const anchorRef = (0, import_react88.useRef)(null);
17908
- const containerRef = (0, import_react88.useRef)(null);
17909
- const [isOpen, setIsOpen] = (0, import_react88.useState)(false);
17910
- const id = (0, import_react88.useId)();
17911
- const ids = (0, import_react88.useMemo)(() => ({
17846
+ const anchorRef = (0, import_react87.useRef)(null);
17847
+ const containerRef = (0, import_react87.useRef)(null);
17848
+ const [isOpen, setIsOpen] = (0, import_react87.useState)(false);
17849
+ const id = (0, import_react87.useId)();
17850
+ const ids = (0, import_react87.useMemo)(() => ({
17912
17851
  button: `table-filter-button-${id}`,
17913
17852
  popup: `table-filter-popup-${id}`,
17914
17853
  label: `table-filter-label-${id}`
17915
17854
  }), [id]);
17916
- (0, import_react88.useEffect)(() => {
17855
+ (0, import_react87.useEffect)(() => {
17917
17856
  setFilterValue(columnFilterValue);
17918
17857
  }, [columnFilterValue]);
17919
17858
  const isTagsFilter = filterType === "multiTags" || filterType === "singleTag";
@@ -17921,8 +17860,8 @@ var TableFilterButton = ({
17921
17860
  if (isTagsFilter && !hasTagsMetaData) {
17922
17861
  return null;
17923
17862
  }
17924
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment, { children: [
17925
- /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
17863
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
17864
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
17926
17865
  IconButton,
17927
17866
  {
17928
17867
  ref: anchorRef,
@@ -17938,12 +17877,12 @@ var TableFilterButton = ({
17938
17877
  "aria-labelledby": ids.label,
17939
17878
  className: "relative",
17940
17879
  children: [
17941
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.FilterIcon, { className: "size-4" }),
17942
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Visibility, { isVisible: hasFilter, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "absolute -top-1 -right-1 w-2 h-2 rounded-full bg-primary" }) })
17880
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_lucide_react20.FilterIcon, { className: "size-4" }),
17881
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Visibility, { isVisible: hasFilter, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "absolute -top-1 -right-1 w-2 h-2 rounded-full bg-primary" }) })
17943
17882
  ]
17944
17883
  }
17945
17884
  ),
17946
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
17885
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
17947
17886
  FilterPopUp,
17948
17887
  {
17949
17888
  ref: containerRef,
@@ -17974,11 +17913,11 @@ var TableFilterButton = ({
17974
17913
  };
17975
17914
 
17976
17915
  // src/components/layout/table/TableHeader.tsx
17977
- var import_react89 = require("react");
17916
+ var import_react88 = require("react");
17978
17917
 
17979
17918
  // src/components/user-interaction/data/data-types.tsx
17980
- var import_lucide_react22 = require("lucide-react");
17981
- var import_jsx_runtime78 = require("react/jsx-runtime");
17919
+ var import_lucide_react21 = require("lucide-react");
17920
+ var import_jsx_runtime77 = require("react/jsx-runtime");
17982
17921
  var dataTypes = [
17983
17922
  "text",
17984
17923
  "number",
@@ -18011,21 +17950,21 @@ var getDefaultValue = (type, selectOptions) => {
18011
17950
  function toIcon(type) {
18012
17951
  switch (type) {
18013
17952
  case "text":
18014
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.TextIcon, { className: "size-4" });
17953
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.TextIcon, { className: "size-4" });
18015
17954
  case "number":
18016
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.Binary, { className: "size-4" });
17955
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.Binary, { className: "size-4" });
18017
17956
  case "boolean":
18018
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.Check, { className: "size-4" });
17957
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.Check, { className: "size-4" });
18019
17958
  case "date":
18020
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.Calendar, { className: "size-4" });
17959
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.Calendar, { className: "size-4" });
18021
17960
  case "dateTime":
18022
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.CalendarClock, { className: "size-4" });
17961
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.CalendarClock, { className: "size-4" });
18023
17962
  case "singleTag":
18024
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.Tag, { className: "size-4" });
17963
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.Tag, { className: "size-4" });
18025
17964
  case "multiTags":
18026
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.Tags, { className: "size-4" });
17965
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.Tags, { className: "size-4" });
18027
17966
  case "unknownType":
18028
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react22.Database, { className: "size-4" });
17967
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react21.Database, { className: "size-4" });
18029
17968
  }
18030
17969
  }
18031
17970
  var DataTypeUtils = {
@@ -18035,10 +17974,10 @@ var DataTypeUtils = {
18035
17974
  };
18036
17975
 
18037
17976
  // src/components/layout/table/TableHeader.tsx
18038
- var import_jsx_runtime79 = require("react/jsx-runtime");
17977
+ var import_jsx_runtime78 = require("react/jsx-runtime");
18039
17978
  var TableHeader = ({ isSticky = false }) => {
18040
17979
  const { table } = useTableStateWithoutSizingContext();
18041
- const handleResizeMove = (0, import_react89.useCallback)((e) => {
17980
+ const handleResizeMove = (0, import_react88.useCallback)((e) => {
18042
17981
  if (!table.getState().columnSizingInfo.isResizingColumn) return;
18043
17982
  const currentX = "touches" in e ? e.touches[0].clientX : e.clientX;
18044
17983
  const deltaOffset = currentX - (table.getState().columnSizingInfo.startOffset ?? 0);
@@ -18054,7 +17993,7 @@ var TableHeader = ({ isSticky = false }) => {
18054
17993
  deltaOffset
18055
17994
  }));
18056
17995
  }, [table]);
18057
- const handleResizeEnd = (0, import_react89.useCallback)(() => {
17996
+ const handleResizeEnd = (0, import_react88.useCallback)(() => {
18058
17997
  if (!table.getState().columnSizingInfo.isResizingColumn) return;
18059
17998
  const newWidth = (table.getState().columnSizingInfo.startSize ?? 0) + (table.getState().columnSizingInfo.deltaOffset ?? 0);
18060
17999
  table.setColumnSizing((prev) => {
@@ -18072,7 +18011,7 @@ var TableHeader = ({ isSticky = false }) => {
18072
18011
  startSize: null
18073
18012
  });
18074
18013
  }, [table]);
18075
- (0, import_react89.useEffect)(() => {
18014
+ (0, import_react88.useEffect)(() => {
18076
18015
  window.addEventListener("pointermove", handleResizeMove);
18077
18016
  window.addEventListener("pointerup", handleResizeEnd);
18078
18017
  return () => {
@@ -18080,8 +18019,8 @@ var TableHeader = ({ isSticky = false }) => {
18080
18019
  window.removeEventListener("pointerup", handleResizeEnd);
18081
18020
  };
18082
18021
  }, [handleResizeEnd, handleResizeMove, table]);
18083
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_jsx_runtime79.Fragment, { children: [
18084
- table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TableStateContext.Consumer, { children: ({ sizeVars }) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("colgroup", { style: sizeVars, children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
18022
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
18023
+ table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TableStateContext.Consumer, { children: ({ sizeVars }) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("colgroup", { style: sizeVars, children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
18085
18024
  "col",
18086
18025
  {
18087
18026
  style: {
@@ -18092,8 +18031,8 @@ var TableHeader = ({ isSticky = false }) => {
18092
18031
  },
18093
18032
  header.id
18094
18033
  )) }) }, headerGroup.id)),
18095
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("thead", { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("tr", { "data-name": "table-header-row", className: (0, import_clsx28.default)(table.options.meta?.headerRowClassName), children: headerGroup.headers.map((header) => {
18096
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
18034
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("thead", { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("tr", { "data-name": "table-header-row", className: (0, import_clsx28.default)(table.options.meta?.headerRowClassName), children: headerGroup.headers.map((header) => {
18035
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
18097
18036
  "th",
18098
18037
  {
18099
18038
  colSpan: header.colSpan,
@@ -18101,8 +18040,8 @@ var TableHeader = ({ isSticky = false }) => {
18101
18040
  "data-name": "table-header-cell",
18102
18041
  className: (0, import_clsx28.default)("group/table-header-cell", header.column.columnDef.meta?.className),
18103
18042
  children: [
18104
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Visibility, { isVisible: !header.isPlaceholder, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex-row-1 items-center", children: [
18105
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Visibility, { isVisible: header.column.getCanSort(), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
18043
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Visibility, { isVisible: !header.isPlaceholder, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex-row-1 items-center truncate", children: [
18044
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Visibility, { isVisible: header.column.getCanSort(), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
18106
18045
  TableSortButton,
18107
18046
  {
18108
18047
  sortDirection: header.column.getIsSorted(),
@@ -18128,7 +18067,7 @@ var TableHeader = ({ isSticky = false }) => {
18128
18067
  }
18129
18068
  }
18130
18069
  ) }),
18131
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Visibility, { isVisible: header.column.getCanFilter() && DataTypeUtils.types.includes(header.column.columnDef.filterFn), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
18070
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Visibility, { isVisible: header.column.getCanFilter() && DataTypeUtils.types.includes(header.column.columnDef.filterFn), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
18132
18071
  TableFilterButton,
18133
18072
  {
18134
18073
  header,
@@ -18140,7 +18079,7 @@ var TableHeader = ({ isSticky = false }) => {
18140
18079
  header.getContext()
18141
18080
  )
18142
18081
  ] }) }),
18143
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Visibility, { isVisible: header.column.getCanResize(), children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
18082
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Visibility, { isVisible: header.column.getCanResize(), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
18144
18083
  "div",
18145
18084
  {
18146
18085
  onPointerDown: (e) => {
@@ -18171,7 +18110,7 @@ var TableHeader = ({ isSticky = false }) => {
18171
18110
  };
18172
18111
 
18173
18112
  // src/components/layout/table/TableDisplay.tsx
18174
- var import_jsx_runtime80 = require("react/jsx-runtime");
18113
+ var import_jsx_runtime79 = require("react/jsx-runtime");
18175
18114
  var TableDisplay = ({
18176
18115
  children,
18177
18116
  containerProps,
@@ -18180,7 +18119,7 @@ var TableDisplay = ({
18180
18119
  }) => {
18181
18120
  const { table } = useTableStateContext();
18182
18121
  const { containerRef } = useTableContainerContext();
18183
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { ...containerProps, ref: containerRef, "data-name": containerProps?.["data-name"] ?? "table-container", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
18122
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { ...containerProps, ref: containerRef, "data-name": containerProps?.["data-name"] ?? "table-container", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
18184
18123
  "table",
18185
18124
  {
18186
18125
  ...props,
@@ -18191,8 +18130,8 @@ var TableDisplay = ({
18191
18130
  },
18192
18131
  children: [
18193
18132
  children,
18194
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TableHeader, { ...tableHeaderProps }),
18195
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TableBody, {})
18133
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TableHeader, { ...tableHeaderProps }),
18134
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TableBody, {})
18196
18135
  ]
18197
18136
  }
18198
18137
  ) });
@@ -18200,10 +18139,10 @@ var TableDisplay = ({
18200
18139
 
18201
18140
  // src/components/layout/table/TablePagination.tsx
18202
18141
  var import_clsx29 = __toESM(require("clsx"));
18203
- var import_jsx_runtime81 = require("react/jsx-runtime");
18142
+ var import_jsx_runtime80 = require("react/jsx-runtime");
18204
18143
  var TablePaginationMenu = ({ ...props }) => {
18205
18144
  const { table } = useTableStateWithoutSizingContext();
18206
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
18145
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
18207
18146
  Pagination,
18208
18147
  {
18209
18148
  ...props,
@@ -18223,23 +18162,86 @@ var TablePageSizeSelect = ({
18223
18162
  }) => {
18224
18163
  const { table } = useTableStateWithoutSizingContext();
18225
18164
  const currentPageSize = table.getState().pagination.pageSize;
18226
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
18165
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
18227
18166
  Select,
18228
18167
  {
18229
18168
  ...props,
18230
18169
  value: currentPageSize.toString(),
18231
18170
  onValueChange: (value) => table.setPageSize(Number(value)),
18232
- children: pageSizeOptions.map((size) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SelectOption, { value: size.toString(), label: size.toString() }, size))
18171
+ children: pageSizeOptions.map((size) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(SelectOption, { value: size.toString(), label: size.toString() }, size))
18233
18172
  }
18234
18173
  );
18235
18174
  };
18236
18175
  var TablePagination = ({ allowChangingPageSize = true, pageSizeOptions, ...props }) => {
18237
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { ...props, className: (0, import_clsx29.default)("container flex-col-2 sm:flex-row-8 items-center justify-center", props.className), children: [
18238
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TablePaginationMenu, {}),
18239
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Visibility, { isVisible: allowChangingPageSize, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TablePageSizeSelect, { pageSizeOptions, buttonProps: { className: "h-10 min-w-24 max-w-24" } }) })
18176
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { ...props, className: (0, import_clsx29.default)("container flex-col-2 sm:flex-row-8 items-center justify-center", props.className), children: [
18177
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TablePaginationMenu, {}),
18178
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Visibility, { isVisible: allowChangingPageSize, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TablePageSizeSelect, { pageSizeOptions, buttonProps: { className: "h-10 min-w-24 max-w-24" } }) })
18240
18179
  ] });
18241
18180
  };
18242
18181
 
18182
+ // src/components/user-interaction/Checkbox.tsx
18183
+ var import_lucide_react22 = require("lucide-react");
18184
+ var import_react89 = require("react");
18185
+ var import_jsx_runtime81 = require("react/jsx-runtime");
18186
+ var Checkbox = ({
18187
+ value: controlledValue,
18188
+ initialValue = false,
18189
+ indeterminate,
18190
+ required = false,
18191
+ invalid = false,
18192
+ disabled = false,
18193
+ readOnly = false,
18194
+ onValueChange,
18195
+ onEditComplete,
18196
+ size = "md",
18197
+ alwaysShowCheckIcon = false,
18198
+ ...props
18199
+ }) => {
18200
+ const onEditCompleteStable = useEventCallbackStabilizer(onEditComplete);
18201
+ const onValueChangeStable = useEventCallbackStabilizer(onValueChange);
18202
+ const onChangeWrapper = (0, import_react89.useCallback)((value2) => {
18203
+ onValueChangeStable(value2);
18204
+ onEditCompleteStable(value2);
18205
+ }, [onValueChangeStable, onEditCompleteStable]);
18206
+ const [value, setValue] = useControlledState({
18207
+ value: controlledValue,
18208
+ onValueChange: onChangeWrapper,
18209
+ defaultValue: initialValue
18210
+ });
18211
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
18212
+ "div",
18213
+ {
18214
+ ...props,
18215
+ onClick: (event) => {
18216
+ if (!disabled) {
18217
+ setValue((prev) => !prev);
18218
+ }
18219
+ props.onClick?.(event);
18220
+ },
18221
+ onKeyDown: (event) => {
18222
+ if (disabled) return;
18223
+ if (event.key === " " || event.key === "Enter") {
18224
+ event.preventDefault();
18225
+ setValue((prev) => !prev);
18226
+ }
18227
+ props.onKeyDown?.(event);
18228
+ },
18229
+ "data-checked": !indeterminate ? value : "indeterminate",
18230
+ "data-size": size ?? void 0,
18231
+ ...PropsUtil.dataAttributes.interactionStates({ disabled, invalid, readOnly, required }),
18232
+ role: "checkbox",
18233
+ tabIndex: disabled ? -1 : 0,
18234
+ "aria-checked": indeterminate ? "mixed" : value,
18235
+ ...PropsUtil.aria.interactionStates({ disabled, invalid, readOnly, required }, props),
18236
+ "data-name": props["data-name"] ?? "checkbox",
18237
+ children: [
18238
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Visibility, { isVisible: indeterminate, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react22.Minus, { "data-name": "checkbox-indicator", className: "checkbox-indicator", "aria-hidden": true }) }),
18239
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Visibility, { isVisible: !indeterminate && (alwaysShowCheckIcon || value), children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react22.Check, { "data-name": "checkbox-indicator", className: "checkbox-indicator", "aria-hidden": true }) })
18240
+ ]
18241
+ }
18242
+ );
18243
+ };
18244
+
18243
18245
  // src/components/layout/table/TableWithSelectionProvider.tsx
18244
18246
  var import_react90 = require("react");
18245
18247
  var import_jsx_runtime82 = require("react/jsx-runtime");
@@ -18405,6 +18407,8 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
18405
18407
  popup: props.id ?? `table-column-picker-popup-${generatedId}`,
18406
18408
  label: `table-column-picker-label-${generatedId}`
18407
18409
  }), [generatedId, props.id]);
18410
+ const enableHiding = table.options.enableHiding !== false;
18411
+ const enableColumnPinning = table.options.enableColumnPinning !== false;
18408
18412
  const tableState = table.getState();
18409
18413
  const columnOrder = tableState.columnOrder;
18410
18414
  const columnPinning = tableState.columnPinning;
@@ -18609,7 +18613,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
18609
18613
  ] }) }),
18610
18614
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "flex-1 typography-label-lg", children: getColumnHeader(columnId) }),
18611
18615
  /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(import_jsx_runtime85.Fragment, { children: [
18612
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
18616
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Visibility, { isVisible: enableHiding, children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
18613
18617
  IconButton,
18614
18618
  {
18615
18619
  tooltip: translation("changeVisibility"),
@@ -18621,8 +18625,8 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
18621
18625
  "aria-label": isVisible ? translation("hideColumn") : translation("showColumn"),
18622
18626
  children: isVisible ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react23.Eye, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react23.EyeOff, { className: "size-4" })
18623
18627
  }
18624
- ),
18625
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
18628
+ ) }),
18629
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Visibility, { isVisible: enableColumnPinning, children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
18626
18630
  IconButton,
18627
18631
  {
18628
18632
  tooltip: translation("changePinning"),
@@ -18640,7 +18644,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
18640
18644
  "aria-label": isPinned ? translation("unpin") : translation("pinLeft"),
18641
18645
  children: !isPinned ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react23.PinOff, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react23.Pin, { className: "size-4" })
18642
18646
  }
18643
- )
18647
+ ) })
18644
18648
  ] })
18645
18649
  ] }, columnId);
18646
18650
  }) })
@@ -18658,7 +18662,7 @@ var TableColumnSwitcher = ({ buttonProps, ...props }) => {
18658
18662
  color: "neutral",
18659
18663
  tooltip: translation("changeColumnDisplay"),
18660
18664
  ...buttonProps,
18661
- children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react23.ArrowLeftRightIcon, { className: "size-4" })
18665
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react23.Columns3Cog, { className: "size-5" })
18662
18666
  }
18663
18667
  ) }),
18664
18668
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(TableColumnSwitcherPopUp, { ...props })
@@ -19667,9 +19671,9 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
19667
19671
  }
19668
19672
  return value;
19669
19673
  }, [value, editState]);
19670
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex-row-1 flex-wrap gap-y-1", children: [
19674
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex-row-2 flex-wrap gap-y-2", children: [
19671
19675
  /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(PopUpRoot, { children: [
19672
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(Button, { ...props, onClick: toggleOpen, color: "neutral", size: "md", children: [
19676
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(Button, { ...props, onClick: toggleOpen, color: "neutral", size: "sm", className: "min-w-36", children: [
19673
19677
  translation("addFilter"),
19674
19678
  /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react26.PlusIcon, { className: "size-4" })
19675
19679
  ] }) }),
@@ -19718,10 +19722,10 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
19718
19722
  }
19719
19723
  },
19720
19724
  children: [
19721
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(PopUpOpener, { children: ({ toggleOpen, props, isOpen }) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(Button, { ...props, onClick: toggleOpen, color: "primary", coloringStyle: "tonal-outline", size: "md", children: [
19722
- item.activeLabelBuilder ? item.activeLabelBuilder(columnFilter.value) : item.label + ": " + filterValueToLabel(columnFilter.value, { tags: item.tags }),
19723
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(ExpansionIcon, { isExpanded: isOpen })
19724
- ] }) }),
19725
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(Button, { ...props, onClick: toggleOpen, color: "primary", coloringStyle: "tonal-outline", size: "sm", children: item.activeLabelBuilder ? item.activeLabelBuilder(columnFilter.value) : /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(import_jsx_runtime97.Fragment, { children: [
19726
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "font-bold", children: item.label }),
19727
+ filterValueToLabel(columnFilter.value, { tags: item.tags })
19728
+ ] }) }) }),
19725
19729
  /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(PopUpContext.Consumer, { children: ({ isOpen, setIsOpen }) => item.popUpBuilder ? item.popUpBuilder({
19726
19730
  value: editState?.id === columnFilter.id ? editState.value : columnFilter.value,
19727
19731
  onValueChange: (value2) => setEditState({ ...columnFilter, value: value2 }),
@@ -19729,11 +19733,12 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
19729
19733
  onValueChange(value.filter((prevItem) => prevItem.id !== columnFilter.id));
19730
19734
  setEditState(void 0);
19731
19735
  },
19736
+ operatorOverrides: item.operatorOverrides,
19732
19737
  dataType: item.dataType,
19733
19738
  tags: item.tags,
19734
19739
  name: item.label,
19735
19740
  isOpen,
19736
- close: () => setIsOpen(false)
19741
+ onClose: () => setIsOpen(false)
19737
19742
  }) : /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
19738
19743
  FilterPopUp,
19739
19744
  {
@@ -19741,6 +19746,7 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
19741
19746
  value: editState?.id === columnFilter.id ? editState.value : columnFilter.value,
19742
19747
  dataType: item.dataType,
19743
19748
  tags: item.tags,
19749
+ operatorOverrides: item.operatorOverrides,
19744
19750
  onValueChange: (value2) => {
19745
19751
  setEditState({ ...columnFilter, value: value2 });
19746
19752
  },
@@ -19759,8 +19765,142 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
19759
19765
  ] });
19760
19766
  };
19761
19767
 
19762
- // src/components/user-interaction/date/TimeDisplay.tsx
19768
+ // src/components/user-interaction/data/SortingList.tsx
19769
+ var import_react107 = require("react");
19770
+ var import_lucide_react27 = require("lucide-react");
19771
+ var import_clsx37 = __toESM(require("clsx"));
19763
19772
  var import_jsx_runtime98 = require("react/jsx-runtime");
19773
+ var SortingList = ({ sorting, onSortingChange, availableItems }) => {
19774
+ const translation = useHightideTranslation();
19775
+ const activeIds = (0, import_react107.useMemo)(() => sorting.map((item) => item.id), [sorting]);
19776
+ const inactiveItems = (0, import_react107.useMemo)(
19777
+ () => availableItems.filter((item) => !activeIds.includes(item.id)).sort((a, b) => a.label.localeCompare(b.label)),
19778
+ [availableItems, activeIds]
19779
+ );
19780
+ const itemRecord = (0, import_react107.useMemo)(
19781
+ () => availableItems.reduce(
19782
+ (acc, item) => {
19783
+ acc[item.id] = item;
19784
+ return acc;
19785
+ },
19786
+ {}
19787
+ ),
19788
+ [availableItems]
19789
+ );
19790
+ const setSortDirection = (columnId, desc) => {
19791
+ onSortingChange(sorting.map((s) => s.id === columnId ? { ...s, desc } : s));
19792
+ };
19793
+ const removeSort = (columnId) => {
19794
+ onSortingChange(sorting.filter((s) => s.id !== columnId));
19795
+ };
19796
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex-row-2 flex-wrap gap-y-2", children: [
19797
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(PopUpRoot, { children: [
19798
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Button, { ...props, onClick: toggleOpen, color: "neutral", size: "sm", className: "min-w-36", children: [
19799
+ translation("addSorting"),
19800
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.PlusIcon, { className: "size-4" })
19801
+ ] }) }),
19802
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PopUp, { className: "flex-col-2 p-2", children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PopUpContext.Consumer, { children: ({ setIsOpen }) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
19803
+ Combobox,
19804
+ {
19805
+ onItemClick: (id) => {
19806
+ const item = itemRecord[id];
19807
+ if (!item) return;
19808
+ onSortingChange([...sorting, { id: item.id, desc: false }]);
19809
+ setIsOpen(false);
19810
+ },
19811
+ children: inactiveItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(ComboboxOption, { value: item.id, label: item.label, children: [
19812
+ DataTypeUtils.toIcon(item.dataType),
19813
+ item.label
19814
+ ] }, item.id))
19815
+ }
19816
+ ) }) })
19817
+ ] }),
19818
+ sorting.map((columnSort) => {
19819
+ const item = itemRecord[columnSort.id];
19820
+ if (!item) return null;
19821
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(PopUpRoot, { children: [
19822
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(Button, { ...props, onClick: toggleOpen, color: "secondary", coloringStyle: "tonal-outline", size: "sm", children: [
19823
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "font-bold", children: item.label }),
19824
+ columnSort.desc ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.ArrowDownWideNarrow, { className: "size-5" }) : /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.ArrowUpNarrowWide, { className: "size-5" })
19825
+ ] }) }),
19826
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PopUpContext.Consumer, { children: ({ setIsOpen }) => /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
19827
+ PopUp,
19828
+ {
19829
+ className: (0, import_clsx37.default)("flex-col-3 p-3 min-w-64"),
19830
+ onClose: () => setIsOpen(false),
19831
+ children: [
19832
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex-row-4 justify-between w-full items-center gap-2", children: [
19833
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "typography-title-sm font-semibold", children: item.label }),
19834
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex-row-0 shrink-0 items-center", children: [
19835
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
19836
+ IconButton,
19837
+ {
19838
+ tooltip: translation("removeFilter"),
19839
+ onClick: () => {
19840
+ removeSort(columnSort.id);
19841
+ setIsOpen(false);
19842
+ },
19843
+ color: "negative",
19844
+ coloringStyle: "text",
19845
+ size: "sm",
19846
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.TrashIcon, { className: "size-4" })
19847
+ }
19848
+ ),
19849
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
19850
+ IconButton,
19851
+ {
19852
+ tooltip: translation("close"),
19853
+ onClick: () => setIsOpen(false),
19854
+ color: "neutral",
19855
+ coloringStyle: "text",
19856
+ size: "sm",
19857
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.XIcon, { className: "size-4" })
19858
+ }
19859
+ )
19860
+ ] })
19861
+ ] }),
19862
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("div", { className: "flex-row-1 w-full gap-2", children: [
19863
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
19864
+ Button,
19865
+ {
19866
+ type: "button",
19867
+ className: "flex-1 flex-row-1 items-center justify-center gap-2",
19868
+ color: columnSort.desc ? "neutral" : "primary",
19869
+ coloringStyle: "solid",
19870
+ size: "md",
19871
+ onClick: () => setSortDirection(columnSort.id, false),
19872
+ children: [
19873
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.ArrowUpNarrowWide, { className: "size-4" }),
19874
+ translation("sortAsc")
19875
+ ]
19876
+ }
19877
+ ),
19878
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
19879
+ Button,
19880
+ {
19881
+ type: "button",
19882
+ className: "flex-1 flex-row-1 items-center justify-center gap-2",
19883
+ color: columnSort.desc ? "primary" : "neutral",
19884
+ coloringStyle: "solid",
19885
+ size: "md",
19886
+ onClick: () => setSortDirection(columnSort.id, true),
19887
+ children: [
19888
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_lucide_react27.ArrowDownWideNarrow, { className: "size-4" }),
19889
+ translation("sortDesc")
19890
+ ]
19891
+ }
19892
+ )
19893
+ ] })
19894
+ ]
19895
+ }
19896
+ ) })
19897
+ ] }, columnSort.id);
19898
+ })
19899
+ ] });
19900
+ };
19901
+
19902
+ // src/components/user-interaction/date/TimeDisplay.tsx
19903
+ var import_jsx_runtime99 = require("react/jsx-runtime");
19764
19904
  var TimeDisplay = ({
19765
19905
  date,
19766
19906
  mode = "daysFromToday"
@@ -19797,14 +19937,14 @@ var TimeDisplay = ({
19797
19937
  } else {
19798
19938
  fullString = `${date.getDate()}. ${monthToTranslation[date.getMonth()]} ${date.getFullYear()}`;
19799
19939
  }
19800
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { children: fullString });
19940
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { children: fullString });
19801
19941
  };
19802
19942
 
19803
19943
  // src/components/user-interaction/input/FlexibleDateTimeInput.tsx
19804
- var import_react107 = require("react");
19805
- var import_lucide_react27 = require("lucide-react");
19806
- var import_jsx_runtime99 = require("react/jsx-runtime");
19807
- var FlexibleDateTimeInput = (0, import_react107.forwardRef)(function FlexibleDateTimeInput2({
19944
+ var import_react108 = require("react");
19945
+ var import_lucide_react28 = require("lucide-react");
19946
+ var import_jsx_runtime100 = require("react/jsx-runtime");
19947
+ var FlexibleDateTimeInput = (0, import_react108.forwardRef)(function FlexibleDateTimeInput2({
19808
19948
  defaultMode = "date",
19809
19949
  value: controlledValue,
19810
19950
  initialValue,
@@ -19819,26 +19959,30 @@ var FlexibleDateTimeInput = (0, import_react107.forwardRef)(function FlexibleDat
19819
19959
  onValueChange,
19820
19960
  defaultValue: initialValue
19821
19961
  });
19822
- const fixedTime = (0, import_react107.useMemo)(() => fixedTimeOverride ?? new Date(23, 59, 59, 999), [fixedTimeOverride]);
19823
- const [preferredMode, setPreferredMode] = (0, import_react107.useState)(defaultMode);
19824
- const mode = (0, import_react107.useMemo)(() => {
19825
- if (!value) return preferredMode;
19962
+ const fixedTime = (0, import_react108.useMemo)(() => fixedTimeOverride ?? new Date(1970, 0, 1, 23, 59, 59, 999), [fixedTimeOverride]);
19963
+ const [preferredMode, setPreferredMode] = (0, import_react108.useState)(() => {
19964
+ if (!value) return defaultMode;
19826
19965
  if (DateUtils.sameTime(value, fixedTime, true, true)) {
19827
19966
  return "date";
19828
19967
  }
19829
19968
  return "dateTime";
19830
- }, [preferredMode, value, fixedTime]);
19831
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
19969
+ });
19970
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
19832
19971
  DateTimeInput,
19833
19972
  {
19834
19973
  ...props,
19835
19974
  ref: forwardedRef,
19836
- mode,
19975
+ mode: preferredMode,
19837
19976
  value,
19838
- onValueChange: setValue,
19977
+ onValueChange: (value2) => {
19978
+ if (preferredMode === "date")
19979
+ setValue(DateUtils.withTime(value2, fixedTime));
19980
+ else
19981
+ setValue(DateUtils.isLastMillisecondOfDay(value2) ? new Date(value2.getTime() - 1) : new Date(value2.getTime() + 1));
19982
+ },
19839
19983
  actions: [
19840
19984
  ...actions,
19841
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
19985
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
19842
19986
  IconButton,
19843
19987
  {
19844
19988
  size: "sm",
@@ -19847,7 +19991,6 @@ var FlexibleDateTimeInput = (0, import_react107.forwardRef)(function FlexibleDat
19847
19991
  tooltip: preferredMode === "date" ? translation("addTime") : translation("withoutTime"),
19848
19992
  onClick: () => {
19849
19993
  const newMode = preferredMode === "date" ? "dateTime" : "date";
19850
- setPreferredMode((prev) => prev === "date" ? "dateTime" : "date");
19851
19994
  if (value) {
19852
19995
  if (newMode === "date") {
19853
19996
  setValue(DateUtils.withTime(value, fixedTime));
@@ -19855,8 +19998,9 @@ var FlexibleDateTimeInput = (0, import_react107.forwardRef)(function FlexibleDat
19855
19998
  setValue(DateUtils.isLastMillisecondOfDay(value) ? new Date(value.getTime() - 1) : new Date(value.getTime() + 1));
19856
19999
  }
19857
20000
  }
20001
+ setPreferredMode(newMode);
19858
20002
  },
19859
- children: preferredMode === "date" ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react27.ClockPlus, { className: "size-5" }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_lucide_react27.ClockFading, { className: "size-5" })
20003
+ children: preferredMode === "date" ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react28.ClockPlus, { className: "size-5" }) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react28.ClockFading, { className: "size-5" })
19860
20004
  },
19861
20005
  "date-mode"
19862
20006
  )
@@ -19866,11 +20010,11 @@ var FlexibleDateTimeInput = (0, import_react107.forwardRef)(function FlexibleDat
19866
20010
  });
19867
20011
 
19868
20012
  // src/components/user-interaction/input/InsideLabelInput.tsx
19869
- var import_react108 = require("react");
19870
20013
  var import_react109 = require("react");
19871
- var import_clsx37 = __toESM(require("clsx"));
19872
- var import_jsx_runtime100 = require("react/jsx-runtime");
19873
- var InsideLabelInput = (0, import_react109.forwardRef)(function InsideLabelInput2({
20014
+ var import_react110 = require("react");
20015
+ var import_clsx38 = __toESM(require("clsx"));
20016
+ var import_jsx_runtime101 = require("react/jsx-runtime");
20017
+ var InsideLabelInput = (0, import_react110.forwardRef)(function InsideLabelInput2({
19874
20018
  id: customId,
19875
20019
  value: controlledValue,
19876
20020
  initialValue,
@@ -19883,11 +20027,11 @@ var InsideLabelInput = (0, import_react109.forwardRef)(function InsideLabelInput
19883
20027
  onValueChange,
19884
20028
  defaultValue: initialValue
19885
20029
  });
19886
- const [isFocused, setIsFocused] = (0, import_react109.useState)(false);
19887
- const generatedId = (0, import_react108.useId)();
20030
+ const [isFocused, setIsFocused] = (0, import_react110.useState)(false);
20031
+ const generatedId = (0, import_react109.useId)();
19888
20032
  const id = customId ?? generatedId;
19889
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("div", { className: (0, import_clsx37.default)("relative"), children: [
19890
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
20033
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { className: (0, import_clsx38.default)("relative"), children: [
20034
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
19891
20035
  Input,
19892
20036
  {
19893
20037
  ...props,
@@ -19904,16 +20048,16 @@ var InsideLabelInput = (0, import_react109.forwardRef)(function InsideLabelInput
19904
20048
  setIsFocused(false);
19905
20049
  },
19906
20050
  "aria-labelledby": id + "-label",
19907
- className: (0, import_clsx37.default)("h-14 px-4 pb-2 py-6.5", props.className)
20051
+ className: (0, import_clsx38.default)("h-14 px-4 pb-2 py-6.5", props.className)
19908
20052
  }
19909
20053
  ),
19910
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
20054
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
19911
20055
  "label",
19912
20056
  {
19913
20057
  id: id + "-label",
19914
20058
  "aria-hidden": true,
19915
20059
  "data-display": isFocused || !!value ? "small" : "full",
19916
- className: (0, import_clsx37.default)(
20060
+ className: (0, import_clsx38.default)(
19917
20061
  // margin left to account for the border which is ignored for absolute positions
19918
20062
  "absolute left-4 ml-0.5 top-2 transition-all delay-25 pointer-events-none touch-none",
19919
20063
  "data-[display=small]:top-2 data-[display=small]:h-force-4.5 data-[display=small]:typography-caption-sm data-[display=small]:overflow-y-hidden",
@@ -19926,9 +20070,9 @@ var InsideLabelInput = (0, import_react109.forwardRef)(function InsideLabelInput
19926
20070
  });
19927
20071
 
19928
20072
  // src/components/user-interaction/input/SearchBar.tsx
19929
- var import_lucide_react28 = require("lucide-react");
19930
- var import_clsx38 = require("clsx");
19931
- var import_jsx_runtime101 = require("react/jsx-runtime");
20073
+ var import_lucide_react29 = require("lucide-react");
20074
+ var import_clsx39 = require("clsx");
20075
+ var import_jsx_runtime102 = require("react/jsx-runtime");
19932
20076
  var SearchBar = ({
19933
20077
  value: controlledValue,
19934
20078
  initialValue,
@@ -19944,8 +20088,8 @@ var SearchBar = ({
19944
20088
  onValueChange,
19945
20089
  defaultValue: initialValue
19946
20090
  });
19947
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { ...containerProps, className: (0, import_clsx38.clsx)("relative", containerProps?.className), children: [
19948
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
20091
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { ...containerProps, className: (0, import_clsx39.clsx)("relative", containerProps?.className), children: [
20092
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
19949
20093
  Input,
19950
20094
  {
19951
20095
  ...inputProps,
@@ -19953,10 +20097,10 @@ var SearchBar = ({
19953
20097
  onValueChange: setValue,
19954
20098
  onEditComplete: onSearch,
19955
20099
  placeholder: inputProps.placeholder ?? translation("search"),
19956
- className: (0, import_clsx38.clsx)("pr-10 w-full", inputProps.className)
20100
+ className: (0, import_clsx39.clsx)("pr-10 w-full", inputProps.className)
19957
20101
  }
19958
20102
  ),
19959
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
20103
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
19960
20104
  IconButton,
19961
20105
  {
19962
20106
  ...searchButtonProps,
@@ -19965,19 +20109,19 @@ var SearchBar = ({
19965
20109
  color: "neutral",
19966
20110
  coloringStyle: "text",
19967
20111
  onClick: () => onSearch(value),
19968
- className: (0, import_clsx38.clsx)("absolute right-1.5 top-1/2 -translate-y-1/2", searchButtonProps?.className),
19969
- children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react28.Search, { className: "w-full h-full" })
20112
+ className: (0, import_clsx39.clsx)("absolute right-1.5 top-1/2 -translate-y-1/2", searchButtonProps?.className),
20113
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react29.Search, { className: "w-full h-full" })
19970
20114
  }
19971
20115
  )
19972
20116
  ] });
19973
20117
  };
19974
20118
 
19975
20119
  // src/components/user-interaction/input/ToggleableInput.tsx
19976
- var import_react110 = require("react");
19977
- var import_lucide_react29 = require("lucide-react");
19978
- var import_clsx39 = __toESM(require("clsx"));
19979
- var import_jsx_runtime102 = require("react/jsx-runtime");
19980
- var ToggleableInput = (0, import_react110.forwardRef)(function ToggleableInput2({
20120
+ var import_react111 = require("react");
20121
+ var import_lucide_react30 = require("lucide-react");
20122
+ var import_clsx40 = __toESM(require("clsx"));
20123
+ var import_jsx_runtime103 = require("react/jsx-runtime");
20124
+ var ToggleableInput = (0, import_react111.forwardRef)(function ToggleableInput2({
19981
20125
  value: controlledValue,
19982
20126
  initialValue,
19983
20127
  onValueChange,
@@ -19990,16 +20134,16 @@ var ToggleableInput = (0, import_react110.forwardRef)(function ToggleableInput2(
19990
20134
  onValueChange,
19991
20135
  defaultValue: initialValue
19992
20136
  });
19993
- const [isEditing, setIsEditing] = (0, import_react110.useState)(initialState !== "display");
19994
- const innerRef = (0, import_react110.useRef)(null);
19995
- (0, import_react110.useImperativeHandle)(forwardedRef, () => innerRef.current);
19996
- (0, import_react110.useEffect)(() => {
20137
+ const [isEditing, setIsEditing] = (0, import_react111.useState)(initialState !== "display");
20138
+ const innerRef = (0, import_react111.useRef)(null);
20139
+ (0, import_react111.useImperativeHandle)(forwardedRef, () => innerRef.current);
20140
+ (0, import_react111.useEffect)(() => {
19997
20141
  if (isEditing) {
19998
20142
  innerRef.current?.focus();
19999
20143
  }
20000
20144
  }, [isEditing]);
20001
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: (0, import_clsx39.default)("relative flex-row-2", { "flex-1": isEditing }), children: [
20002
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
20145
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: (0, import_clsx40.default)("relative flex-row-2", { "flex-1": isEditing }), children: [
20146
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
20003
20147
  Input,
20004
20148
  {
20005
20149
  ...props,
@@ -20023,20 +20167,20 @@ var ToggleableInput = (0, import_react110.forwardRef)(function ToggleableInput2(
20023
20167
  "data-name": props["data-name"] ?? "togglable-input"
20024
20168
  }
20025
20169
  ),
20026
- !isEditing && /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "absolute left-0 flex-row-2 items-center pointer-events-none touch-none w-full overflow-hidden", children: [
20027
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: (0, import_clsx39.default)(" truncate"), children: value }),
20028
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react29.Pencil, { className: (0, import_clsx39.default)(`size-force-4`, { "text-transparent": isEditing }) })
20170
+ !isEditing && /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: "absolute left-0 flex-row-2 items-center pointer-events-none touch-none w-full overflow-hidden", children: [
20171
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("span", { className: (0, import_clsx40.default)(" truncate"), children: value }),
20172
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react30.Pencil, { className: (0, import_clsx40.default)(`size-force-4`, { "text-transparent": isEditing }) })
20029
20173
  ] })
20030
20174
  ] });
20031
20175
  });
20032
20176
 
20033
20177
  // src/components/user-interaction/properties/CheckboxProperty.tsx
20034
- var import_lucide_react31 = require("lucide-react");
20178
+ var import_lucide_react32 = require("lucide-react");
20035
20179
 
20036
20180
  // src/components/user-interaction/properties/PropertyBase.tsx
20037
- var import_clsx40 = __toESM(require("clsx"));
20038
- var import_lucide_react30 = require("lucide-react");
20039
- var import_jsx_runtime103 = require("react/jsx-runtime");
20181
+ var import_clsx41 = __toESM(require("clsx"));
20182
+ var import_lucide_react31 = require("lucide-react");
20183
+ var import_jsx_runtime104 = require("react/jsx-runtime");
20040
20184
  var PropertyBase = ({
20041
20185
  name,
20042
20186
  children,
@@ -20055,36 +20199,36 @@ var PropertyBase = ({
20055
20199
  const isClearEnabled = allowClear && !readOnly;
20056
20200
  const isRemoveEnabled = allowRemove && !readOnly;
20057
20201
  const showActionsContainer = isClearEnabled || isRemoveEnabled;
20058
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
20202
+ return /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
20059
20203
  "div",
20060
20204
  {
20061
- className: (0, import_clsx40.default)("group/property", className),
20205
+ className: (0, import_clsx41.default)("group/property", className),
20062
20206
  "data-name": "property-root",
20063
20207
  "data-invalid": PropsUtil.dataAttributes.bool(invalid),
20064
20208
  children: [
20065
- /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
20209
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
20066
20210
  "div",
20067
20211
  {
20068
20212
  "data-name": "property-title",
20069
20213
  "data-invalid": PropsUtil.dataAttributes.bool(invalid),
20070
20214
  children: [
20071
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(Tooltip, { tooltip: name, containerClassName: "min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { className: "flex-row-1 items-center", children: [
20072
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { "data-name": "property-title-icon", children: icon }),
20073
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("span", { "data-name": "property-title-text", children: name })
20215
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(Tooltip, { tooltip: name, containerClassName: "min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)("div", { className: "flex-row-1 items-center", children: [
20216
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("div", { "data-name": "property-title-icon", children: icon }),
20217
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("span", { "data-name": "property-title-text", children: name })
20074
20218
  ] }) }),
20075
- invalid && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react30.AlertTriangle, { className: "size-force-6" })
20219
+ invalid && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_lucide_react31.AlertTriangle, { className: "size-force-6" })
20076
20220
  ]
20077
20221
  }
20078
20222
  ),
20079
- /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
20223
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
20080
20224
  "div",
20081
20225
  {
20082
20226
  "data-name": "property-content",
20083
20227
  "data-invalid": PropsUtil.dataAttributes.bool(invalid),
20084
20228
  children: [
20085
20229
  children({ required, hasValue, invalid }),
20086
- showActionsContainer && /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { "data-name": "property-actions", children: [
20087
- isClearEnabled && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
20230
+ showActionsContainer && /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)("div", { "data-name": "property-actions", children: [
20231
+ isClearEnabled && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
20088
20232
  IconButton,
20089
20233
  {
20090
20234
  tooltip: translation("clearValue"),
@@ -20093,10 +20237,10 @@ var PropertyBase = ({
20093
20237
  color: "negative",
20094
20238
  coloringStyle: "text",
20095
20239
  size: "sm",
20096
- children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react30.X, { className: "size-force-5" })
20240
+ children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_lucide_react31.X, { className: "size-force-5" })
20097
20241
  }
20098
20242
  ),
20099
- isRemoveEnabled && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
20243
+ isRemoveEnabled && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
20100
20244
  IconButton,
20101
20245
  {
20102
20246
  tooltip: translation("removeProperty"),
@@ -20104,7 +20248,7 @@ var PropertyBase = ({
20104
20248
  color: "negative",
20105
20249
  coloringStyle: "text",
20106
20250
  size: "sm",
20107
- children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react30.Trash, { className: "size-force-5" })
20251
+ children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_lucide_react31.Trash, { className: "size-force-5" })
20108
20252
  }
20109
20253
  )
20110
20254
  ] })
@@ -20117,7 +20261,7 @@ var PropertyBase = ({
20117
20261
  };
20118
20262
 
20119
20263
  // src/components/user-interaction/properties/CheckboxProperty.tsx
20120
- var import_jsx_runtime104 = require("react/jsx-runtime");
20264
+ var import_jsx_runtime105 = require("react/jsx-runtime");
20121
20265
  var CheckboxProperty = ({
20122
20266
  value,
20123
20267
  onValueChange,
@@ -20126,15 +20270,15 @@ var CheckboxProperty = ({
20126
20270
  ...baseProps
20127
20271
  }) => {
20128
20272
  const translation = useHightideTranslation();
20129
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
20273
+ return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
20130
20274
  PropertyBase,
20131
20275
  {
20132
20276
  ...baseProps,
20133
20277
  hasValue: value !== void 0,
20134
20278
  readOnly,
20135
- icon: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_lucide_react31.Check, { size: 24 }),
20136
- children: () => /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)("div", { className: "flex-row-2 items-center", children: [
20137
- /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
20279
+ icon: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react32.Check, { size: 24 }),
20280
+ children: () => /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)("div", { className: "flex-row-2 items-center", children: [
20281
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
20138
20282
  Button,
20139
20283
  {
20140
20284
  color: value ? "positive" : "neutral",
@@ -20147,7 +20291,7 @@ var CheckboxProperty = ({
20147
20291
  children: translation("yes")
20148
20292
  }
20149
20293
  ),
20150
- /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
20294
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
20151
20295
  Button,
20152
20296
  {
20153
20297
  color: !value && value !== void 0 ? "negative" : "neutral",
@@ -20166,8 +20310,8 @@ var CheckboxProperty = ({
20166
20310
  };
20167
20311
 
20168
20312
  // src/components/user-interaction/properties/DateProperty.tsx
20169
- var import_lucide_react32 = require("lucide-react");
20170
- var import_jsx_runtime105 = require("react/jsx-runtime");
20313
+ var import_lucide_react33 = require("lucide-react");
20314
+ var import_jsx_runtime106 = require("react/jsx-runtime");
20171
20315
  var DateProperty = ({
20172
20316
  value,
20173
20317
  onValueChange,
@@ -20177,13 +20321,13 @@ var DateProperty = ({
20177
20321
  ...baseProps
20178
20322
  }) => {
20179
20323
  const hasValue = !!value;
20180
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
20324
+ return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
20181
20325
  PropertyBase,
20182
20326
  {
20183
20327
  ...baseProps,
20184
20328
  hasValue,
20185
- icon: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react32.CalendarDays, { size: 24 }),
20186
- children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
20329
+ icon: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react33.CalendarDays, { size: 24 }),
20330
+ children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
20187
20331
  DateTimeInput,
20188
20332
  {
20189
20333
  value,
@@ -20200,8 +20344,8 @@ var DateProperty = ({
20200
20344
  };
20201
20345
 
20202
20346
  // src/components/user-interaction/properties/MultiSelectProperty.tsx
20203
- var import_lucide_react33 = require("lucide-react");
20204
- var import_jsx_runtime106 = require("react/jsx-runtime");
20347
+ var import_lucide_react34 = require("lucide-react");
20348
+ var import_jsx_runtime107 = require("react/jsx-runtime");
20205
20349
  var MultiSelectProperty = ({
20206
20350
  children,
20207
20351
  value,
@@ -20210,18 +20354,18 @@ var MultiSelectProperty = ({
20210
20354
  ...props
20211
20355
  }) => {
20212
20356
  const hasValue = value.length > 0;
20213
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
20357
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
20214
20358
  PropertyBase,
20215
20359
  {
20216
20360
  ...props,
20217
20361
  hasValue,
20218
- icon: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react33.List, { size: 24 }),
20219
- children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
20362
+ icon: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_lucide_react34.List, { size: 24 }),
20363
+ children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
20220
20364
  "div",
20221
20365
  {
20222
20366
  "data-name": "property-input-wrapper",
20223
20367
  "data-invalid": PropsUtil.dataAttributes.bool(invalid),
20224
- children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
20368
+ children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
20225
20369
  MultiSelectChipDisplay,
20226
20370
  {
20227
20371
  value,
@@ -20247,8 +20391,8 @@ var MultiSelectProperty = ({
20247
20391
  };
20248
20392
 
20249
20393
  // src/components/user-interaction/properties/NumberProperty.tsx
20250
- var import_lucide_react34 = require("lucide-react");
20251
- var import_jsx_runtime107 = require("react/jsx-runtime");
20394
+ var import_lucide_react35 = require("lucide-react");
20395
+ var import_jsx_runtime108 = require("react/jsx-runtime");
20252
20396
  var NumberProperty = ({
20253
20397
  value,
20254
20398
  onValueChange,
@@ -20260,20 +20404,20 @@ var NumberProperty = ({
20260
20404
  }) => {
20261
20405
  const translation = useHightideTranslation();
20262
20406
  const hasValue = value !== void 0;
20263
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
20407
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
20264
20408
  PropertyBase,
20265
20409
  {
20266
20410
  ...baseProps,
20267
20411
  onValueClear,
20268
20412
  hasValue,
20269
- icon: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_lucide_react34.Binary, { size: 24 }),
20270
- children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)(
20413
+ icon: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react35.Binary, { size: 24 }),
20414
+ children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
20271
20415
  "div",
20272
20416
  {
20273
20417
  "data-name": "property-input-wrapper",
20274
20418
  "data-invalid": PropsUtil.dataAttributes.bool(invalid),
20275
20419
  children: [
20276
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
20420
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
20277
20421
  Input,
20278
20422
  {
20279
20423
  "data-name": "property-input",
@@ -20301,7 +20445,7 @@ var NumberProperty = ({
20301
20445
  }
20302
20446
  }
20303
20447
  ),
20304
- suffix && /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
20448
+ suffix && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
20305
20449
  "span",
20306
20450
  {
20307
20451
  "data-name": "property-suffix",
@@ -20317,8 +20461,8 @@ var NumberProperty = ({
20317
20461
  };
20318
20462
 
20319
20463
  // src/components/user-interaction/properties/SelectProperty.tsx
20320
- var import_lucide_react35 = require("lucide-react");
20321
- var import_jsx_runtime108 = require("react/jsx-runtime");
20464
+ var import_lucide_react36 = require("lucide-react");
20465
+ var import_jsx_runtime109 = require("react/jsx-runtime");
20322
20466
  var SingleSelectProperty = ({
20323
20467
  children,
20324
20468
  value,
@@ -20327,18 +20471,18 @@ var SingleSelectProperty = ({
20327
20471
  ...props
20328
20472
  }) => {
20329
20473
  const hasValue = value !== void 0;
20330
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
20474
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
20331
20475
  PropertyBase,
20332
20476
  {
20333
20477
  ...props,
20334
20478
  hasValue,
20335
- icon: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react35.List, { size: 24 }),
20336
- children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
20479
+ icon: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_lucide_react36.List, { size: 24 }),
20480
+ children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
20337
20481
  "div",
20338
20482
  {
20339
20483
  "data-name": "property-input-wrapper",
20340
20484
  "data-invalid": PropsUtil.dataAttributes.bool(invalid),
20341
- children: /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
20485
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
20342
20486
  SelectRoot,
20343
20487
  {
20344
20488
  value,
@@ -20348,7 +20492,7 @@ var SingleSelectProperty = ({
20348
20492
  },
20349
20493
  disabled: props.readOnly,
20350
20494
  children: [
20351
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
20495
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
20352
20496
  SelectButton,
20353
20497
  {
20354
20498
  className: "flex-row-2 w-full items-center justify-between",
@@ -20356,7 +20500,7 @@ var SingleSelectProperty = ({
20356
20500
  "data-name": "property-input"
20357
20501
  }
20358
20502
  ),
20359
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SelectContent, { children })
20503
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SelectContent, { children })
20360
20504
  ]
20361
20505
  }
20362
20506
  )
@@ -20367,8 +20511,8 @@ var SingleSelectProperty = ({
20367
20511
  };
20368
20512
 
20369
20513
  // src/components/user-interaction/properties/TextProperty.tsx
20370
- var import_lucide_react36 = require("lucide-react");
20371
- var import_jsx_runtime109 = require("react/jsx-runtime");
20514
+ var import_lucide_react37 = require("lucide-react");
20515
+ var import_jsx_runtime110 = require("react/jsx-runtime");
20372
20516
  var TextProperty = ({
20373
20517
  value,
20374
20518
  readOnly,
@@ -20378,13 +20522,13 @@ var TextProperty = ({
20378
20522
  }) => {
20379
20523
  const translation = useHightideTranslation();
20380
20524
  const hasValue = value !== void 0;
20381
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
20525
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
20382
20526
  PropertyBase,
20383
20527
  {
20384
20528
  ...baseProps,
20385
20529
  hasValue,
20386
- icon: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_lucide_react36.Text, { size: 24 }),
20387
- children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
20530
+ icon: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react37.Text, { size: 24 }),
20531
+ children: ({ invalid }) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
20388
20532
  Textarea,
20389
20533
  {
20390
20534
  "data-name": "property-input",
@@ -20404,29 +20548,29 @@ var TextProperty = ({
20404
20548
 
20405
20549
  // src/components/utils/Polymorphic.tsx
20406
20550
  var import_react_slot = require("@radix-ui/react-slot");
20407
- var import_react111 = require("react");
20408
- var import_jsx_runtime110 = require("react/jsx-runtime");
20409
- var PolymorphicSlot = (0, import_react111.forwardRef)(function PolymorphicSlot2({
20551
+ var import_react112 = require("react");
20552
+ var import_jsx_runtime111 = require("react/jsx-runtime");
20553
+ var PolymorphicSlot = (0, import_react112.forwardRef)(function PolymorphicSlot2({
20410
20554
  children,
20411
20555
  asChild,
20412
20556
  defaultComponent = "div",
20413
20557
  ...props
20414
20558
  }, ref) {
20415
20559
  const Component = asChild ? import_react_slot.Slot : defaultComponent;
20416
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Component, { ...props, ref, children });
20560
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Component, { ...props, ref, children });
20417
20561
  });
20418
20562
 
20419
20563
  // src/components/utils/Transition.tsx
20420
- var import_react112 = require("react");
20564
+ var import_react113 = require("react");
20421
20565
  function Transition({
20422
20566
  children,
20423
20567
  show,
20424
20568
  includeAnimation = true
20425
20569
  }) {
20426
- const [isOpen, setIsOpen] = (0, import_react112.useState)(show);
20427
- const [isTransitioning, setIsTransitioning] = (0, import_react112.useState)(!isOpen);
20570
+ const [isOpen, setIsOpen] = (0, import_react113.useState)(show);
20571
+ const [isTransitioning, setIsTransitioning] = (0, import_react113.useState)(!isOpen);
20428
20572
  const isUsingReducedMotion = typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : true;
20429
- (0, import_react112.useEffect)(() => {
20573
+ (0, import_react113.useEffect)(() => {
20430
20574
  setIsOpen(show);
20431
20575
  setIsTransitioning(true);
20432
20576
  }, [show]);
@@ -20451,18 +20595,18 @@ function Transition({
20451
20595
  }
20452
20596
 
20453
20597
  // src/global-contexts/HightideProvider.tsx
20454
- var import_jsx_runtime111 = require("react/jsx-runtime");
20598
+ var import_jsx_runtime112 = require("react/jsx-runtime");
20455
20599
  var HightideProvider = ({
20456
20600
  children,
20457
20601
  theme,
20458
20602
  locale,
20459
20603
  config
20460
20604
  }) => {
20461
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(LocaleProvider, { ...locale, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ThemeProvider, { ...theme, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(HightideConfigProvider, { ...config, children }) }) });
20605
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(LocaleProvider, { ...locale, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(ThemeProvider, { ...theme, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(HightideConfigProvider, { ...config, children }) }) });
20462
20606
  };
20463
20607
 
20464
20608
  // src/hooks/focus/useFocusGuards.ts
20465
- var import_react113 = require("react");
20609
+ var import_react114 = require("react");
20466
20610
  var selectorName = "data-hw-focus-guard";
20467
20611
  function FocusGuard() {
20468
20612
  const element = document.createElement("div");
@@ -20500,7 +20644,7 @@ var FocusGuardsService = class _FocusGuardsService {
20500
20644
  }
20501
20645
  };
20502
20646
  var useFocusGuards = () => {
20503
- (0, import_react113.useEffect)(() => {
20647
+ (0, import_react114.useEffect)(() => {
20504
20648
  FocusGuardsService.getInstance().add();
20505
20649
  return () => {
20506
20650
  FocusGuardsService.getInstance().remove();
@@ -20509,10 +20653,10 @@ var useFocusGuards = () => {
20509
20653
  };
20510
20654
 
20511
20655
  // src/hooks/focus/useFocusOnceVisible.ts
20512
- var import_react114 = __toESM(require("react"));
20656
+ var import_react115 = __toESM(require("react"));
20513
20657
  var useFocusOnceVisible = (ref, disable = false) => {
20514
- const [hasUsedFocus, setHasUsedFocus] = import_react114.default.useState(false);
20515
- (0, import_react114.useEffect)(() => {
20658
+ const [hasUsedFocus, setHasUsedFocus] = import_react115.default.useState(false);
20659
+ (0, import_react115.useEffect)(() => {
20516
20660
  if (disable || hasUsedFocus) {
20517
20661
  return;
20518
20662
  }
@@ -20532,11 +20676,11 @@ var useFocusOnceVisible = (ref, disable = false) => {
20532
20676
  };
20533
20677
 
20534
20678
  // src/hooks/focus/useIsMounted.ts
20535
- var import_react115 = require("react");
20679
+ var import_react116 = require("react");
20536
20680
  var isClient = typeof window !== "undefined" && typeof document !== "undefined";
20537
- var useIsomorphicEffect = isClient ? import_react115.useLayoutEffect : import_react115.useEffect;
20681
+ var useIsomorphicEffect = isClient ? import_react116.useLayoutEffect : import_react116.useEffect;
20538
20682
  var useIsMounted = () => {
20539
- const [isMounted, setIsMounted] = (0, import_react115.useState)(false);
20683
+ const [isMounted, setIsMounted] = (0, import_react116.useState)(false);
20540
20684
  useIsomorphicEffect(() => {
20541
20685
  setIsMounted(true);
20542
20686
  return () => {
@@ -20547,10 +20691,10 @@ var useIsMounted = () => {
20547
20691
  };
20548
20692
 
20549
20693
  // src/hooks/useHandleRefs.ts
20550
- var import_react116 = require("react");
20694
+ var import_react117 = require("react");
20551
20695
  function useHandleRefs(handleRef) {
20552
- const refs = (0, import_react116.useRef)([]);
20553
- (0, import_react116.useEffect)(() => {
20696
+ const refs = (0, import_react117.useRef)([]);
20697
+ (0, import_react117.useEffect)(() => {
20554
20698
  refs.current = Object.keys(handleRef?.current ?? {}).map(
20555
20699
  () => ({ current: null })
20556
20700
  );
@@ -20563,10 +20707,10 @@ function useHandleRefs(handleRef) {
20563
20707
  }
20564
20708
 
20565
20709
  // src/hooks/useLogUnstableDependencies.ts
20566
- var import_react117 = __toESM(require("react"));
20710
+ var import_react118 = __toESM(require("react"));
20567
20711
  function useLogUnstableDependencies(name, value) {
20568
- const prev = import_react117.default.useRef(null);
20569
- import_react117.default.useEffect(() => {
20712
+ const prev = import_react118.default.useRef(null);
20713
+ import_react118.default.useEffect(() => {
20570
20714
  if (!prev.current) {
20571
20715
  prev.current = value;
20572
20716
  return;
@@ -20588,10 +20732,10 @@ function useLogUnstableDependencies(name, value) {
20588
20732
  }
20589
20733
 
20590
20734
  // src/hooks/useOverwritableState.ts
20591
- var import_react118 = require("react");
20735
+ var import_react119 = require("react");
20592
20736
  var useOverwritableState = (overwriteValue, onChange) => {
20593
- const [state, setState] = (0, import_react118.useState)(overwriteValue);
20594
- (0, import_react118.useEffect)(() => {
20737
+ const [state, setState] = (0, import_react119.useState)(overwriteValue);
20738
+ (0, import_react119.useEffect)(() => {
20595
20739
  setState(overwriteValue);
20596
20740
  }, [overwriteValue]);
20597
20741
  const onChangeWrapper = (action) => {
@@ -20603,29 +20747,29 @@ var useOverwritableState = (overwriteValue, onChange) => {
20603
20747
  };
20604
20748
 
20605
20749
  // src/hooks/useRerender.ts
20606
- var import_react119 = require("react");
20750
+ var import_react120 = require("react");
20607
20751
  var useRerender = () => {
20608
- return (0, import_react119.useReducer)(() => ({}), {})[1];
20752
+ return (0, import_react120.useReducer)(() => ({}), {})[1];
20609
20753
  };
20610
20754
 
20611
20755
  // src/hooks/useUpdatingDateString.ts
20612
- var import_react120 = require("react");
20756
+ var import_react121 = require("react");
20613
20757
  var useUpdatingDateString = ({ absoluteFormat = "dateTime", localeOverride, date }) => {
20614
20758
  const { locale: contextLocale } = useLocale();
20615
20759
  const locale = localeOverride ?? contextLocale;
20616
- const [dateAndTimeStrings, setDateAndTimeStrings] = (0, import_react120.useState)({
20760
+ const [dateAndTimeStrings, setDateAndTimeStrings] = (0, import_react121.useState)({
20617
20761
  compareDate: date,
20618
20762
  absolute: DateUtils.formatAbsolute(date, locale, absoluteFormat),
20619
20763
  relative: DateUtils.formatRelative(date, locale)
20620
20764
  });
20621
- (0, import_react120.useEffect)(() => {
20765
+ (0, import_react121.useEffect)(() => {
20622
20766
  setDateAndTimeStrings({
20623
20767
  compareDate: date,
20624
20768
  absolute: DateUtils.formatAbsolute(date, locale, absoluteFormat),
20625
20769
  relative: DateUtils.formatRelative(date, locale)
20626
20770
  });
20627
20771
  }, [date, absoluteFormat, locale]);
20628
- (0, import_react120.useEffect)(() => {
20772
+ (0, import_react121.useEffect)(() => {
20629
20773
  let timeoutId;
20630
20774
  const startTimer = () => {
20631
20775
  const now = /* @__PURE__ */ new Date();
@@ -20661,7 +20805,7 @@ var validateEmail = (email) => {
20661
20805
  };
20662
20806
 
20663
20807
  // src/hooks/useValidators.ts
20664
- var import_react121 = require("react");
20808
+ var import_react122 = require("react");
20665
20809
  var notEmpty = (value) => {
20666
20810
  if (!value) {
20667
20811
  return "notEmpty";
@@ -20711,7 +20855,7 @@ var UseValidators = {
20711
20855
  };
20712
20856
  var useTranslatedValidators = () => {
20713
20857
  const translation = useHightideTranslation();
20714
- return (0, import_react121.useMemo)(() => ({
20858
+ return (0, import_react122.useMemo)(() => ({
20715
20859
  notEmpty: (value) => {
20716
20860
  const result = notEmpty(value);
20717
20861
  if (result) {
@@ -21113,6 +21257,7 @@ var PromiseUtils = {
21113
21257
  SimpleSearch,
21114
21258
  SimpleSearchWithMapping,
21115
21259
  SingleSelectProperty,
21260
+ SortingList,
21116
21261
  StepperBar,
21117
21262
  StorageListener,
21118
21263
  Switch,