@helpwave/hightide 0.8.10 → 0.8.12

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.mjs CHANGED
@@ -14394,15 +14394,15 @@ var TableSortButton = ({
14394
14394
 
14395
14395
  // src/components/layout/table/TableFilterButton.tsx
14396
14396
  import { FilterIcon } from "lucide-react";
14397
- import { useEffect as useEffect39, useId as useId15, useMemo as useMemo28, useRef as useRef31, useState as useState34 } from "react";
14397
+ import { useEffect as useEffect40, useId as useId15, useMemo as useMemo29, useRef as useRef31, useState as useState35 } from "react";
14398
14398
 
14399
14399
  // src/components/user-interaction/input/DateTimeInput.tsx
14400
- import { forwardRef as forwardRef17, useCallback as useCallback26, useEffect as useEffect38, useId as useId13, useImperativeHandle as useImperativeHandle11, useMemo as useMemo26, useRef as useRef30, useState as useState32 } from "react";
14400
+ import { forwardRef as forwardRef17, useCallback as useCallback26, useEffect as useEffect39, useId as useId13, useImperativeHandle as useImperativeHandle11, useMemo as useMemo27, useRef as useRef30, useState as useState33 } from "react";
14401
14401
  import { CalendarIcon } from "lucide-react";
14402
14402
  import clsx24 from "clsx";
14403
14403
 
14404
14404
  // src/components/user-interaction/date/TimePicker.tsx
14405
- import { useEffect as useEffect28, useRef as useRef26 } from "react";
14405
+ import { useEffect as useEffect28, useMemo as useMemo22, useRef as useRef26 } from "react";
14406
14406
  import { jsx as jsx60, jsxs as jsxs30 } from "react/jsx-runtime";
14407
14407
  var TimePicker = ({
14408
14408
  value: controlledValue,
@@ -14411,6 +14411,9 @@ var TimePicker = ({
14411
14411
  onEditComplete,
14412
14412
  is24HourFormat = true,
14413
14413
  minuteIncrement = "5min",
14414
+ secondIncrement = "5s",
14415
+ millisecondIncrement = "100ms",
14416
+ precision = "minute",
14414
14417
  className
14415
14418
  }) => {
14416
14419
  const [value, setValue] = useControlledState({
@@ -14422,22 +14425,58 @@ var TimePicker = ({
14422
14425
  const hourRef = useRef26(null);
14423
14426
  const isPM = value.getHours() > 11;
14424
14427
  const hours = is24HourFormat ? range(24) : range(12);
14425
- let minutes = range(60);
14426
- switch (minuteIncrement) {
14427
- case "5min":
14428
- minutes = minutes.filter((value2) => value2 % 5 === 0);
14429
- break;
14430
- case "10min":
14431
- minutes = minutes.filter((value2) => value2 % 10 === 0);
14432
- break;
14433
- case "15min":
14434
- minutes = minutes.filter((value2) => value2 % 15 === 0);
14435
- break;
14436
- case "30min":
14437
- minutes = minutes.filter((value2) => value2 % 30 === 0);
14438
- break;
14439
- }
14440
- const closestMinute = closestMatch(minutes, (item1, item2) => Math.abs(item1 - value.getMinutes()) < Math.abs(item2 - value.getMinutes()));
14428
+ const minutes = useMemo22(() => {
14429
+ const full = range(60);
14430
+ switch (minuteIncrement) {
14431
+ case "5min":
14432
+ return full.filter((value2) => value2 % 5 === 0);
14433
+ case "10min":
14434
+ return full.filter((value2) => value2 % 10 === 0);
14435
+ case "15min":
14436
+ return full.filter((value2) => value2 % 15 === 0);
14437
+ case "30min":
14438
+ return full.filter((value2) => value2 % 30 === 0);
14439
+ }
14440
+ }, [minuteIncrement]);
14441
+ const seconds = useMemo22(() => {
14442
+ const full = range(60);
14443
+ switch (secondIncrement) {
14444
+ case "1s":
14445
+ return full.filter((value2) => value2 % 1 === 0);
14446
+ case "5s":
14447
+ return full.filter((value2) => value2 % 5 === 0);
14448
+ case "10s":
14449
+ return full.filter((value2) => value2 % 10 === 0);
14450
+ case "15s":
14451
+ return full.filter((value2) => value2 % 15 === 0);
14452
+ case "30s":
14453
+ return full.filter((value2) => value2 % 30 === 0);
14454
+ }
14455
+ }, [secondIncrement]);
14456
+ const milliseconds = useMemo22(() => {
14457
+ const full = range(1e3);
14458
+ switch (millisecondIncrement) {
14459
+ case "1ms":
14460
+ return full.filter((value2) => value2 % 1 === 0);
14461
+ case "5ms":
14462
+ return full.filter((value2) => value2 % 5 === 0);
14463
+ case "10ms":
14464
+ return full.filter((value2) => value2 % 10 === 0);
14465
+ case "25ms":
14466
+ return full.filter((value2) => value2 % 25 === 0);
14467
+ case "50ms":
14468
+ return full.filter((value2) => value2 % 50 === 0);
14469
+ case "100ms":
14470
+ return full.filter((value2) => value2 % 100 === 0);
14471
+ case "250ms":
14472
+ return full.filter((value2) => value2 % 250 === 0);
14473
+ case "500ms":
14474
+ return full.filter((value2) => value2 % 500 === 0);
14475
+ }
14476
+ }, [millisecondIncrement]);
14477
+ const closestMinute = useMemo22(() => closestMatch(minutes, (item1, item2) => Math.abs(item1 - value.getMinutes()) < Math.abs(item2 - value.getMinutes())), [minutes, value]);
14478
+ const closestSecond = useMemo22(() => closestMatch(seconds, (item1, item2) => Math.abs(item1 - value.getSeconds()) < Math.abs(item2 - value.getSeconds())), [seconds, value]);
14479
+ const closestMillisecond = useMemo22(() => closestMatch(milliseconds, (item1, item2) => Math.abs(item1 - value.getMilliseconds()) < Math.abs(item2 - value.getMilliseconds())), [milliseconds, value]);
14441
14480
  const hour = value.getHours();
14442
14481
  useEffect28(() => {
14443
14482
  minuteRef.current?.scrollIntoView({
@@ -14488,6 +14527,36 @@ var TimePicker = ({
14488
14527
  minute + minuteIncrement
14489
14528
  );
14490
14529
  }) }),
14530
+ /* @__PURE__ */ jsx60(Visibility, { isVisible: precision === "second" || precision === "millisecond", children: /* @__PURE__ */ jsx60("div", { "data-name": "time-picker-value-column", children: seconds.map((second) => {
14531
+ const isSelected = second === closestSecond;
14532
+ return /* @__PURE__ */ jsx60(
14533
+ Button,
14534
+ {
14535
+ size: "sm",
14536
+ color: isSelected ? "primary" : "neutral",
14537
+ ref: isSelected ? minuteRef : void 0,
14538
+ onClick: () => onChangeWrapper((newDate) => newDate.setSeconds(second)),
14539
+ className: "min-w-16",
14540
+ children: second.toString().padStart(2, "0")
14541
+ },
14542
+ second + secondIncrement
14543
+ );
14544
+ }) }) }),
14545
+ /* @__PURE__ */ jsx60(Visibility, { isVisible: precision === "millisecond", children: /* @__PURE__ */ jsx60("div", { "data-name": "time-picker-value-column", children: milliseconds.map((millisecond) => {
14546
+ const isSelected = millisecond === closestMillisecond;
14547
+ return /* @__PURE__ */ jsx60(
14548
+ Button,
14549
+ {
14550
+ size: "sm",
14551
+ color: isSelected ? "primary" : "neutral",
14552
+ ref: isSelected ? minuteRef : void 0,
14553
+ onClick: () => onChangeWrapper((newDate) => newDate.setMilliseconds(millisecond)),
14554
+ className: "min-w-16",
14555
+ children: millisecond.toString().padStart(2, "0")
14556
+ },
14557
+ millisecond + millisecondIncrement
14558
+ );
14559
+ }) }) }),
14491
14560
  !is24HourFormat && /* @__PURE__ */ jsxs30("div", { "data-name": "time-picker-value-column", children: [
14492
14561
  /* @__PURE__ */ jsx60(
14493
14562
  Button,
@@ -14658,14 +14727,40 @@ var formatRelative = (date, locale) => {
14658
14727
  if (Math.abs(diffInSeconds) < timesInSeconds.yearImprecise) return rtf.format(Math.round(diffInSeconds / timesInSeconds.monthImprecise), "month");
14659
14728
  return rtf.format(Math.round(diffInSeconds / timesInSeconds.yearImprecise), "year");
14660
14729
  };
14661
- var toInputString = (date, format) => {
14730
+ var toInputString = (date, format, precision = "minute", isLocalTime = true) => {
14731
+ const pad = (n, l = 2) => String(n).padStart(l, "0");
14732
+ const parts = isLocalTime ? {
14733
+ y: date.getFullYear(),
14734
+ m: date.getMonth() + 1,
14735
+ d: date.getDate(),
14736
+ h: date.getHours(),
14737
+ min: date.getMinutes(),
14738
+ s: date.getSeconds(),
14739
+ ms: date.getMilliseconds()
14740
+ } : {
14741
+ y: date.getUTCFullYear(),
14742
+ m: date.getUTCMonth() + 1,
14743
+ d: date.getUTCDate(),
14744
+ h: date.getUTCHours(),
14745
+ min: date.getUTCMinutes(),
14746
+ s: date.getUTCSeconds(),
14747
+ ms: date.getUTCMilliseconds()
14748
+ };
14749
+ const dateStr = `${pad(parts.y, 4)}-${pad(parts.m)}-${pad(parts.d)}`;
14750
+ let timeStr = `${pad(parts.h)}:${pad(parts.min)}`;
14751
+ if (precision === "second" || precision === "millisecond") {
14752
+ timeStr += `:${pad(parts.s)}`;
14753
+ }
14754
+ if (precision === "millisecond") {
14755
+ timeStr += `.${pad(parts.ms, 3)}`;
14756
+ }
14662
14757
  switch (format) {
14663
14758
  case "date":
14664
- return date.toISOString().split("T")[0];
14759
+ return dateStr;
14665
14760
  case "time":
14666
- return date.toISOString().split("T")[1].split("Z")[0];
14761
+ return timeStr;
14667
14762
  case "dateTime":
14668
- return date.toISOString().split("Z")[0];
14763
+ return `${dateStr}T${timeStr}`;
14669
14764
  }
14670
14765
  };
14671
14766
  var DateUtils = {
@@ -14686,7 +14781,7 @@ var DateUtils = {
14686
14781
  import clsx23 from "clsx";
14687
14782
 
14688
14783
  // src/components/user-interaction/date/DayPicker.tsx
14689
- import { useCallback as useCallback23, useEffect as useEffect29, useMemo as useMemo22, useRef as useRef27 } from "react";
14784
+ import { useCallback as useCallback23, useEffect as useEffect29, useMemo as useMemo23, useRef as useRef27 } from "react";
14690
14785
  import { jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
14691
14786
  var DayPicker = ({
14692
14787
  displayedMonth: controlledDisplayedMonth,
@@ -14716,7 +14811,7 @@ var DayPicker = ({
14716
14811
  const month = displayedMonth.getMonth();
14717
14812
  const weeks = DateUtils.weeksForCalenderMonth(displayedMonth, weekStart);
14718
14813
  const selectedButtonRef = useRef27(null);
14719
- const isValueInDisplayedWeeks = useMemo22(
14814
+ const isValueInDisplayedWeeks = useMemo23(
14720
14815
  () => !!value && weeks.some((week) => week.some((d) => DateUtils.equalDate(value, d))),
14721
14816
  [value, weeks]
14722
14817
  );
@@ -14728,11 +14823,11 @@ var DayPicker = ({
14728
14823
  useEffect29(() => {
14729
14824
  selectedButtonRef.current?.focus();
14730
14825
  }, [focusTargetDate]);
14731
- const end = useMemo22(() => {
14826
+ const end = useMemo23(() => {
14732
14827
  if (!providedEnd) return;
14733
14828
  return new Date(providedEnd.getFullYear(), providedEnd.getMonth(), providedEnd.getDate());
14734
14829
  }, [providedEnd]);
14735
- const start = useMemo22(() => {
14830
+ const start = useMemo23(() => {
14736
14831
  if (!providedStart) return;
14737
14832
  return new Date(providedStart.getFullYear(), providedStart.getMonth(), providedStart.getDate());
14738
14833
  }, [providedStart]);
@@ -14782,7 +14877,8 @@ var DayPicker = ({
14782
14877
  date.getDate(),
14783
14878
  value.getHours(),
14784
14879
  value.getMinutes(),
14785
- value.getSeconds()
14880
+ value.getSeconds(),
14881
+ value.getMilliseconds()
14786
14882
  );
14787
14883
  setValue(newDate);
14788
14884
  onEditComplete?.(newDate);
@@ -14806,7 +14902,7 @@ var DayPicker = ({
14806
14902
  };
14807
14903
 
14808
14904
  // src/components/user-interaction/date/YearMonthPicker.tsx
14809
- import { memo, useCallback as useCallback24, useEffect as useEffect30, useMemo as useMemo23, useRef as useRef28, useState as useState26 } from "react";
14905
+ import { memo, useCallback as useCallback24, useEffect as useEffect30, useMemo as useMemo24, useRef as useRef28, useState as useState26 } from "react";
14810
14906
  import clsx22 from "clsx";
14811
14907
  import { jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
14812
14908
  var YearRow = memo(function YearRow2({
@@ -14825,7 +14921,7 @@ var YearRow = memo(function YearRow2({
14825
14921
  ref.current?.scrollIntoView({ behavior: "smooth", block: "nearest" });
14826
14922
  }
14827
14923
  }, [isSelectedYear]);
14828
- const monthGrid = useMemo23(() => equalSizeGroups([...DateUtils.monthsList], 3), []);
14924
+ const monthGrid = useMemo24(() => equalSizeGroups([...DateUtils.monthsList], 3), []);
14829
14925
  return /* @__PURE__ */ jsxs32(
14830
14926
  ExpandableRoot,
14831
14927
  {
@@ -14880,19 +14976,19 @@ var YearMonthPicker = ({
14880
14976
  defaultValue: initialValue
14881
14977
  });
14882
14978
  const onEditCompleteStable = useEventCallbackStabilizer(onEditComplete);
14883
- const monthNames = useMemo23(() => {
14979
+ const monthNames = useMemo24(() => {
14884
14980
  const formatter = new Intl.DateTimeFormat(locale, { month: "short" });
14885
14981
  return Array.from({ length: 12 }, (_, i) => formatter.format(new Date(2e3, i, 1)));
14886
14982
  }, [locale]);
14887
- const years = useMemo23(
14983
+ const years = useMemo24(
14888
14984
  () => range([start.getFullYear(), end.getFullYear()], { exclusiveEnd: false }),
14889
14985
  [start, end]
14890
14986
  );
14891
- const minTimestamp = useMemo23(() => {
14987
+ const minTimestamp = useMemo24(() => {
14892
14988
  if (!start) return;
14893
14989
  return new Date(start.getFullYear(), start.getMonth(), 1).getTime();
14894
14990
  }, [start]);
14895
- const maxTimestamp = useMemo23(() => {
14991
+ const maxTimestamp = useMemo24(() => {
14896
14992
  if (!end) return;
14897
14993
  return new Date(end.getFullYear(), end.getMonth() + 1, 0).getTime();
14898
14994
  }, [end]);
@@ -15056,6 +15152,9 @@ var DateTimePicker = ({
15056
15152
  is24HourFormat,
15057
15153
  minuteIncrement,
15058
15154
  weekStart,
15155
+ secondIncrement,
15156
+ millisecondIncrement,
15157
+ precision,
15059
15158
  onValueChange,
15060
15159
  onEditComplete,
15061
15160
  timePickerProps,
@@ -15093,6 +15192,9 @@ var DateTimePicker = ({
15093
15192
  ...timePickerProps,
15094
15193
  is24HourFormat,
15095
15194
  minuteIncrement,
15195
+ secondIncrement,
15196
+ millisecondIncrement,
15197
+ precision,
15096
15198
  value,
15097
15199
  onValueChange: setValue,
15098
15200
  onEditComplete
@@ -15106,6 +15208,7 @@ var DateTimePicker = ({
15106
15208
  };
15107
15209
 
15108
15210
  // src/components/user-interaction/date/DateTimePickerDialog.tsx
15211
+ import { useEffect as useEffect31, useState as useState28 } from "react";
15109
15212
  import { Fragment as Fragment6, jsx as jsx65, jsxs as jsxs35 } from "react/jsx-runtime";
15110
15213
  var DateTimePickerDialog = ({
15111
15214
  initialValue = null,
@@ -15115,6 +15218,15 @@ var DateTimePickerDialog = ({
15115
15218
  onEditComplete,
15116
15219
  mode = "date",
15117
15220
  pickerProps,
15221
+ start,
15222
+ end,
15223
+ weekStart,
15224
+ markToday,
15225
+ is24HourFormat,
15226
+ minuteIncrement,
15227
+ secondIncrement,
15228
+ millisecondIncrement,
15229
+ precision,
15118
15230
  labelId,
15119
15231
  label
15120
15232
  }) => {
@@ -15124,6 +15236,10 @@ var DateTimePickerDialog = ({
15124
15236
  onValueChange,
15125
15237
  defaultValue: initialValue
15126
15238
  });
15239
+ const [pickerState, setPickerState] = useState28(state ?? /* @__PURE__ */ new Date());
15240
+ useEffect31(() => {
15241
+ setPickerState(state ?? /* @__PURE__ */ new Date());
15242
+ }, [state]);
15127
15243
  return /* @__PURE__ */ jsxs35(Fragment6, { children: [
15128
15244
  /* @__PURE__ */ jsx65("div", { className: "flex-row-2 justify-center w-full py-1", children: /* @__PURE__ */ jsx65(
15129
15245
  "span",
@@ -15138,13 +15254,22 @@ var DateTimePickerDialog = ({
15138
15254
  {
15139
15255
  ...pickerProps,
15140
15256
  mode,
15141
- value: state,
15142
- onValueChange: setState,
15143
- onEditComplete: setState
15257
+ value: pickerState,
15258
+ onValueChange: setPickerState,
15259
+ onEditComplete: setPickerState,
15260
+ start,
15261
+ end,
15262
+ weekStart,
15263
+ markToday,
15264
+ is24HourFormat,
15265
+ minuteIncrement,
15266
+ secondIncrement,
15267
+ millisecondIncrement,
15268
+ precision
15144
15269
  }
15145
15270
  ),
15146
15271
  /* @__PURE__ */ jsxs35("div", { className: "flex-row-2 justify-end", children: [
15147
- /* @__PURE__ */ jsx65(Visibility, { isVisible: allowRemove && !!initialValue, children: /* @__PURE__ */ jsx65(
15272
+ /* @__PURE__ */ jsx65(Visibility, { isVisible: allowRemove && !!state, children: /* @__PURE__ */ jsx65(
15148
15273
  Button,
15149
15274
  {
15150
15275
  size: "md",
@@ -15157,14 +15282,14 @@ var DateTimePickerDialog = ({
15157
15282
  children: translation("clear")
15158
15283
  }
15159
15284
  ) }),
15160
- /* @__PURE__ */ jsx65(Visibility, { isVisible: !initialValue, children: /* @__PURE__ */ jsx65(
15285
+ /* @__PURE__ */ jsx65(Visibility, { isVisible: !state, children: /* @__PURE__ */ jsx65(
15161
15286
  Button,
15162
15287
  {
15163
15288
  size: "md",
15164
15289
  color: "neutral",
15165
15290
  onClick: () => {
15166
- setState(initialValue);
15167
- onEditComplete?.(initialValue);
15291
+ setState(state);
15292
+ onEditComplete?.(state);
15168
15293
  },
15169
15294
  className: "min-w-26",
15170
15295
  children: translation("cancel")
@@ -15175,7 +15300,7 @@ var DateTimePickerDialog = ({
15175
15300
  {
15176
15301
  size: "md",
15177
15302
  onClick: () => {
15178
- onEditComplete?.(state);
15303
+ onEditComplete?.(pickerState);
15179
15304
  },
15180
15305
  className: "min-w-26",
15181
15306
  children: translation("done")
@@ -15186,7 +15311,7 @@ var DateTimePickerDialog = ({
15186
15311
  };
15187
15312
 
15188
15313
  // src/hooks/focus/useFocusGuards.ts
15189
- import { useEffect as useEffect31 } from "react";
15314
+ import { useEffect as useEffect32 } from "react";
15190
15315
  var selectorName = "data-hw-focus-guard";
15191
15316
  function FocusGuard() {
15192
15317
  const element = document.createElement("div");
@@ -15224,7 +15349,7 @@ var FocusGuardsService = class _FocusGuardsService {
15224
15349
  }
15225
15350
  };
15226
15351
  var useFocusGuards = () => {
15227
- useEffect31(() => {
15352
+ useEffect32(() => {
15228
15353
  FocusGuardsService.getInstance().add();
15229
15354
  return () => {
15230
15355
  FocusGuardsService.getInstance().remove();
@@ -15233,10 +15358,10 @@ var useFocusGuards = () => {
15233
15358
  };
15234
15359
 
15235
15360
  // src/hooks/focus/useFocusOnceVisible.ts
15236
- import React6, { useEffect as useEffect32 } from "react";
15361
+ import React6, { useEffect as useEffect33 } from "react";
15237
15362
  var useFocusOnceVisible = (ref, disable = false) => {
15238
15363
  const [hasUsedFocus, setHasUsedFocus] = React6.useState(false);
15239
- useEffect32(() => {
15364
+ useEffect33(() => {
15240
15365
  if (disable || hasUsedFocus) {
15241
15366
  return;
15242
15367
  }
@@ -15256,11 +15381,11 @@ var useFocusOnceVisible = (ref, disable = false) => {
15256
15381
  };
15257
15382
 
15258
15383
  // src/hooks/focus/useIsMounted.ts
15259
- import { useEffect as useEffect33, useLayoutEffect as useLayoutEffect7, useState as useState28 } from "react";
15384
+ import { useEffect as useEffect34, useLayoutEffect as useLayoutEffect7, useState as useState29 } from "react";
15260
15385
  var isClient = typeof window !== "undefined" && typeof document !== "undefined";
15261
- var useIsomorphicEffect = isClient ? useLayoutEffect7 : useEffect33;
15386
+ var useIsomorphicEffect = isClient ? useLayoutEffect7 : useEffect34;
15262
15387
  var useIsMounted = () => {
15263
- const [isMounted, setIsMounted] = useState28(false);
15388
+ const [isMounted, setIsMounted] = useState29(false);
15264
15389
  useIsomorphicEffect(() => {
15265
15390
  setIsMounted(true);
15266
15391
  return () => {
@@ -15271,10 +15396,10 @@ var useIsMounted = () => {
15271
15396
  };
15272
15397
 
15273
15398
  // src/hooks/useHandleRefs.ts
15274
- import { useEffect as useEffect34, useRef as useRef29 } from "react";
15399
+ import { useEffect as useEffect35, useRef as useRef29 } from "react";
15275
15400
  function useHandleRefs(handleRef) {
15276
15401
  const refs = useRef29([]);
15277
- useEffect34(() => {
15402
+ useEffect35(() => {
15278
15403
  refs.current = Object.keys(handleRef?.current ?? {}).map(
15279
15404
  () => ({ current: null })
15280
15405
  );
@@ -15312,10 +15437,10 @@ function useLogUnstableDependencies(name, value) {
15312
15437
  }
15313
15438
 
15314
15439
  // src/hooks/useOverwritableState.ts
15315
- import { useEffect as useEffect35, useState as useState29 } from "react";
15440
+ import { useEffect as useEffect36, useState as useState30 } from "react";
15316
15441
  var useOverwritableState = (overwriteValue, onChange) => {
15317
- const [state, setState] = useState29(overwriteValue);
15318
- useEffect35(() => {
15442
+ const [state, setState] = useState30(overwriteValue);
15443
+ useEffect36(() => {
15319
15444
  setState(overwriteValue);
15320
15445
  }, [overwriteValue]);
15321
15446
  const onChangeWrapper = (action) => {
@@ -15333,7 +15458,7 @@ var useRerender = () => {
15333
15458
  };
15334
15459
 
15335
15460
  // src/hooks/useSearch.ts
15336
- import { useCallback as useCallback25, useEffect as useEffect36, useMemo as useMemo24, useState as useState30 } from "react";
15461
+ import { useCallback as useCallback25, useEffect as useEffect37, useMemo as useMemo25, useState as useState31 } from "react";
15337
15462
 
15338
15463
  // src/utils/simpleSearch.ts
15339
15464
  var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
@@ -15372,9 +15497,9 @@ var useSearch = ({
15372
15497
  filter,
15373
15498
  disabled = false
15374
15499
  }) => {
15375
- const [search, setSearch] = useState30(initialSearch ?? "");
15376
- const [result, setResult] = useState30(list);
15377
- const searchTags = useMemo24(() => additionalSearchTags ?? [], [additionalSearchTags]);
15500
+ const [search, setSearch] = useState31(initialSearch ?? "");
15501
+ const [result, setResult] = useState31(list);
15502
+ const searchTags = useMemo25(() => additionalSearchTags ?? [], [additionalSearchTags]);
15378
15503
  const updateSearch = useCallback25((newSearch) => {
15379
15504
  const usedSearch = newSearch ?? search;
15380
15505
  if (newSearch) {
@@ -15382,24 +15507,24 @@ var useSearch = ({
15382
15507
  }
15383
15508
  setResult(MultiSubjectSearchWithMapping([usedSearch, ...searchTags], list, searchMapping));
15384
15509
  }, [searchTags, list, search, searchMapping]);
15385
- useEffect36(() => {
15510
+ useEffect37(() => {
15386
15511
  if (isSearchInstant) {
15387
15512
  setResult(MultiSubjectSearchWithMapping([search, ...searchTags], list, searchMapping));
15388
15513
  }
15389
15514
  }, [searchTags, isSearchInstant, list, search, searchMapping, additionalSearchTags]);
15390
- const filteredResult = useMemo24(() => {
15515
+ const filteredResult = useMemo25(() => {
15391
15516
  if (!filter) {
15392
15517
  return result;
15393
15518
  }
15394
15519
  return result.filter(filter);
15395
15520
  }, [result, filter]);
15396
- const sortedAndFilteredResult = useMemo24(() => {
15521
+ const sortedAndFilteredResult = useMemo25(() => {
15397
15522
  if (!sortingFunction) {
15398
15523
  return filteredResult;
15399
15524
  }
15400
15525
  return filteredResult.sort(sortingFunction);
15401
15526
  }, [filteredResult, sortingFunction]);
15402
- const usedResult = useMemo24(() => {
15527
+ const usedResult = useMemo25(() => {
15403
15528
  if (!disabled) {
15404
15529
  return sortedAndFilteredResult;
15405
15530
  }
@@ -15416,23 +15541,23 @@ var useSearch = ({
15416
15541
  };
15417
15542
 
15418
15543
  // src/hooks/useUpdatingDateString.ts
15419
- import { useEffect as useEffect37, useState as useState31 } from "react";
15544
+ import { useEffect as useEffect38, useState as useState32 } from "react";
15420
15545
  var useUpdatingDateString = ({ absoluteFormat = "dateTime", localeOverride, date }) => {
15421
15546
  const { locale: contextLocale } = useLocale();
15422
15547
  const locale = localeOverride ?? contextLocale;
15423
- const [dateAndTimeStrings, setDateAndTimeStrings] = useState31({
15548
+ const [dateAndTimeStrings, setDateAndTimeStrings] = useState32({
15424
15549
  compareDate: date,
15425
15550
  absolute: DateUtils.formatAbsolute(date, locale, absoluteFormat),
15426
15551
  relative: DateUtils.formatRelative(date, locale)
15427
15552
  });
15428
- useEffect37(() => {
15553
+ useEffect38(() => {
15429
15554
  setDateAndTimeStrings({
15430
15555
  compareDate: date,
15431
15556
  absolute: DateUtils.formatAbsolute(date, locale, absoluteFormat),
15432
15557
  relative: DateUtils.formatRelative(date, locale)
15433
15558
  });
15434
15559
  }, [date, absoluteFormat, locale]);
15435
- useEffect37(() => {
15560
+ useEffect38(() => {
15436
15561
  let timeoutId;
15437
15562
  const startTimer = () => {
15438
15563
  const now = /* @__PURE__ */ new Date();
@@ -15468,7 +15593,7 @@ var validateEmail = (email) => {
15468
15593
  };
15469
15594
 
15470
15595
  // src/hooks/useValidators.ts
15471
- import { useMemo as useMemo25 } from "react";
15596
+ import { useMemo as useMemo26 } from "react";
15472
15597
  var notEmpty = (value) => {
15473
15598
  if (!value) {
15474
15599
  return "notEmpty";
@@ -15518,7 +15643,7 @@ var UseValidators = {
15518
15643
  };
15519
15644
  var useTranslatedValidators = () => {
15520
15645
  const translation = useHightideTranslation();
15521
- return useMemo25(() => ({
15646
+ return useMemo26(() => ({
15522
15647
  notEmpty: (value) => {
15523
15648
  const result = notEmpty(value);
15524
15649
  if (result) {
@@ -15565,6 +15690,15 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15565
15690
  pickerProps,
15566
15691
  outsideClickCloses = true,
15567
15692
  onDialogOpeningChange,
15693
+ start,
15694
+ end,
15695
+ weekStart,
15696
+ markToday,
15697
+ is24HourFormat,
15698
+ minuteIncrement,
15699
+ secondIncrement,
15700
+ millisecondIncrement,
15701
+ precision,
15568
15702
  disabled = false,
15569
15703
  readOnly = false,
15570
15704
  invalid = false,
@@ -15572,19 +15706,19 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15572
15706
  ...props
15573
15707
  }, forwardedRef) {
15574
15708
  const translation = useHightideTranslation();
15575
- const [isOpen, setIsOpen] = useState32(false);
15709
+ const [isOpen, setIsOpen] = useState33(false);
15576
15710
  const [state, setState] = useControlledState({
15577
15711
  value,
15578
15712
  onValueChange,
15579
15713
  defaultValue: initialValue
15580
15714
  });
15581
- const [dialogValue, setDialogValue] = useState32(state ?? /* @__PURE__ */ new Date());
15582
- const [stringInputState, setStringInputState] = useState32({
15583
- state: state ? DateUtils.toInputString(state, mode) : "",
15715
+ const [dialogValue, setDialogValue] = useState33(state);
15716
+ const [stringInputState, setStringInputState] = useState33({
15717
+ state: state ? DateUtils.toInputString(state, mode, precision) : "",
15584
15718
  date: void 0
15585
15719
  });
15586
- useEffect38(() => {
15587
- setDialogValue(state ?? /* @__PURE__ */ new Date());
15720
+ useEffect39(() => {
15721
+ setDialogValue(state);
15588
15722
  setStringInputState({
15589
15723
  state: state ? DateUtils.toInputString(state, mode) : "",
15590
15724
  date: void 0
@@ -15595,14 +15729,14 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15595
15729
  setIsOpen(isOpen2);
15596
15730
  }, [onDialogOpeningChange]);
15597
15731
  const generatedId = useId13();
15598
- const ids = useMemo26(() => ({
15732
+ const ids = useMemo27(() => ({
15599
15733
  input: inputId ?? `date-time-input-${generatedId}`,
15600
15734
  popup: `date-time-input-popup-${generatedId}`,
15601
15735
  label: `date-time-input-label-${generatedId}`
15602
15736
  }), [generatedId, inputId]);
15603
15737
  const innerRef = useRef30(null);
15604
15738
  useImperativeHandle11(forwardedRef, () => innerRef.current);
15605
- useEffect38(() => {
15739
+ useEffect39(() => {
15606
15740
  if (readOnly || disabled) {
15607
15741
  changeOpenWrapper(false);
15608
15742
  }
@@ -15621,8 +15755,9 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15621
15755
  id: ids.input,
15622
15756
  value: stringInputState.state,
15623
15757
  onChange: (event) => {
15624
- const date = event.target.valueAsDate;
15625
- if (date) {
15758
+ const date = new Date(event.target.value ?? "");
15759
+ const isValid = !isNaN(date.getTime());
15760
+ if (isValid) {
15626
15761
  restartTimer(() => {
15627
15762
  innerRef.current?.blur();
15628
15763
  setState(date);
@@ -15633,7 +15768,7 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15633
15768
  }
15634
15769
  setStringInputState({
15635
15770
  state: event.target.value,
15636
- date: event.target.valueAsDate ?? void 0
15771
+ date: isValid ? date : void 0
15637
15772
  });
15638
15773
  },
15639
15774
  onBlur: (event) => {
@@ -15709,7 +15844,16 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15709
15844
  changeOpenWrapper(false);
15710
15845
  },
15711
15846
  pickerProps,
15712
- mode
15847
+ mode,
15848
+ start,
15849
+ end,
15850
+ weekStart,
15851
+ markToday,
15852
+ is24HourFormat,
15853
+ minuteIncrement,
15854
+ secondIncrement,
15855
+ millisecondIncrement,
15856
+ precision
15713
15857
  }
15714
15858
  )
15715
15859
  }
@@ -15718,7 +15862,7 @@ var DateTimeInput = forwardRef17(function DateTimeInput2({
15718
15862
  });
15719
15863
 
15720
15864
  // src/components/layout/table/TableFilterPopups.tsx
15721
- import { useId as useId14, useMemo as useMemo27, useState as useState33 } from "react";
15865
+ import { useId as useId14, useMemo as useMemo28, useState as useState34 } from "react";
15722
15866
 
15723
15867
  // src/components/user-interaction/select/MultiSelect.tsx
15724
15868
  import { forwardRef as forwardRef18 } from "react";
@@ -15995,7 +16139,7 @@ var TextFilter = ({ filterValue, onFilterValueChange }) => {
15995
16139
  const operator = filterValue?.operator ?? "textContains";
15996
16140
  const parameter = filterValue?.parameter ?? {};
15997
16141
  const id = useId14();
15998
- const availableOperators = useMemo27(() => [
16142
+ const availableOperators = useMemo28(() => [
15999
16143
  ...TableFilterOperator.text,
16000
16144
  ...TableFilterOperator.generic
16001
16145
  ], []);
@@ -16055,7 +16199,7 @@ var NumberFilter = ({ filterValue, onFilterValueChange }) => {
16055
16199
  const translation = useHightideTranslation();
16056
16200
  const operator = filterValue?.operator ?? "numberBetween";
16057
16201
  const parameter = filterValue?.parameter ?? {};
16058
- const availableOperators = useMemo27(() => [
16202
+ const availableOperators = useMemo28(() => [
16059
16203
  ...TableFilterOperator.number,
16060
16204
  ...TableFilterOperator.generic
16061
16205
  ], []);
@@ -16146,9 +16290,9 @@ var DateFilter = ({ filterValue, onFilterValueChange }) => {
16146
16290
  };
16147
16291
  const operator = filterValue?.operator ?? "dateBetween";
16148
16292
  const parameter = filterValue?.parameter ?? {};
16149
- const [temporaryMinDateValue, setTemporaryMinDateValue] = useState33(null);
16150
- const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState33(null);
16151
- const availableOperators = useMemo27(() => [
16293
+ const [temporaryMinDateValue, setTemporaryMinDateValue] = useState34(null);
16294
+ const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState34(null);
16295
+ const availableOperators = useMemo28(() => [
16152
16296
  ...TableFilterOperator.date,
16153
16297
  ...TableFilterOperator.generic
16154
16298
  ], []);
@@ -16271,9 +16415,9 @@ var DatetimeFilter = ({ filterValue, onFilterValueChange }) => {
16271
16415
  };
16272
16416
  const operator = filterValue?.operator ?? "dateTimeBetween";
16273
16417
  const parameter = filterValue?.parameter ?? {};
16274
- const [temporaryMinDateValue, setTemporaryMinDateValue] = useState33(null);
16275
- const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState33(null);
16276
- const availableOperators = useMemo27(() => [
16418
+ const [temporaryMinDateValue, setTemporaryMinDateValue] = useState34(null);
16419
+ const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState34(null);
16420
+ const availableOperators = useMemo28(() => [
16277
16421
  ...TableFilterOperator.dateTime,
16278
16422
  ...TableFilterOperator.generic
16279
16423
  ], []);
@@ -16390,7 +16534,7 @@ var DatetimeFilter = ({ filterValue, onFilterValueChange }) => {
16390
16534
  };
16391
16535
  var BooleanFilter = ({ filterValue, onFilterValueChange }) => {
16392
16536
  const operator = filterValue?.operator ?? "booleanIsTrue";
16393
- const availableOperators = useMemo27(() => [
16537
+ const availableOperators = useMemo28(() => [
16394
16538
  ...TableFilterOperator.boolean,
16395
16539
  ...TableFilterOperator.generic
16396
16540
  ], []);
@@ -16414,11 +16558,11 @@ var TagsFilter = ({ columnId, filterValue, onFilterValueChange }) => {
16414
16558
  const { table } = useTableStateWithoutSizingContext();
16415
16559
  const operator = filterValue?.operator ?? "tagsContains";
16416
16560
  const parameter = filterValue?.parameter ?? {};
16417
- const availableOperators = useMemo27(() => [
16561
+ const availableOperators = useMemo28(() => [
16418
16562
  ...TableFilterOperator.multiTags,
16419
16563
  ...TableFilterOperator.generic
16420
16564
  ], []);
16421
- const availableTags = useMemo27(() => {
16565
+ const availableTags = useMemo28(() => {
16422
16566
  const column = table.getColumn(columnId);
16423
16567
  if (!column) return [];
16424
16568
  return column.columnDef.meta?.filterData?.tags ?? [];
@@ -16465,11 +16609,11 @@ var TagsSingleFilter = ({ columnId, filterValue, onFilterValueChange }) => {
16465
16609
  const { table } = useTableStateWithoutSizingContext();
16466
16610
  const operator = filterValue?.operator ?? "tagsSingleContains";
16467
16611
  const parameter = filterValue?.parameter ?? {};
16468
- const availableOperators = useMemo27(() => [
16612
+ const availableOperators = useMemo28(() => [
16469
16613
  ...TableFilterOperator.singleTag,
16470
16614
  ...TableFilterOperator.generic
16471
16615
  ], []);
16472
- const availableTags = useMemo27(() => {
16616
+ const availableTags = useMemo28(() => {
16473
16617
  const column = table.getColumn(columnId);
16474
16618
  if (!column) return [];
16475
16619
  return column.columnDef.meta?.filterData?.tags ?? [];
@@ -16528,7 +16672,7 @@ var TagsSingleFilter = ({ columnId, filterValue, onFilterValueChange }) => {
16528
16672
  };
16529
16673
  var GenericFilter = ({ filterValue, onFilterValueChange }) => {
16530
16674
  const operator = filterValue?.operator ?? "notUndefined";
16531
- const availableOperators = useMemo27(() => [
16675
+ const availableOperators = useMemo28(() => [
16532
16676
  ...TableFilterOperator.generic
16533
16677
  ], []);
16534
16678
  return /* @__PURE__ */ jsx69("div", { className: "flex-col-2 gap-2", children: /* @__PURE__ */ jsx69(
@@ -16577,18 +16721,18 @@ var TableFilterButton = ({
16577
16721
  }) => {
16578
16722
  const translation = useHightideTranslation();
16579
16723
  const columnFilterValue = column.getFilterValue();
16580
- const [filterValue, setFilterValue] = useState34(columnFilterValue);
16724
+ const [filterValue, setFilterValue] = useState35(columnFilterValue);
16581
16725
  const hasFilter = !!filterValue;
16582
16726
  const anchorRef = useRef31(null);
16583
16727
  const containerRef = useRef31(null);
16584
- const [isOpen, setIsOpen] = useState34(false);
16728
+ const [isOpen, setIsOpen] = useState35(false);
16585
16729
  const id = useId15();
16586
- const ids = useMemo28(() => ({
16730
+ const ids = useMemo29(() => ({
16587
16731
  button: `table-filter-button-${id}`,
16588
16732
  popup: `table-filter-popup-${id}`,
16589
16733
  label: `table-filter-label-${id}`
16590
16734
  }), [id]);
16591
- useEffect39(() => {
16735
+ useEffect40(() => {
16592
16736
  setFilterValue(columnFilterValue);
16593
16737
  }, [columnFilterValue]);
16594
16738
  const isTagsFilter = filterType === "multiTags" || filterType === "singleTag";
@@ -16663,7 +16807,7 @@ var TableFilterButton = ({
16663
16807
  };
16664
16808
 
16665
16809
  // src/components/layout/table/TableHeader.tsx
16666
- import { useCallback as useCallback28, useEffect as useEffect40 } from "react";
16810
+ import { useCallback as useCallback28, useEffect as useEffect41 } from "react";
16667
16811
  import { Fragment as Fragment9, jsx as jsx71, jsxs as jsxs41 } from "react/jsx-runtime";
16668
16812
  var TableHeader = ({ isSticky = false }) => {
16669
16813
  const { table } = useTableStateWithoutSizingContext();
@@ -16701,7 +16845,7 @@ var TableHeader = ({ isSticky = false }) => {
16701
16845
  startSize: null
16702
16846
  });
16703
16847
  }, [table]);
16704
- useEffect40(() => {
16848
+ useEffect41(() => {
16705
16849
  window.addEventListener("pointermove", handleResizeMove);
16706
16850
  window.addEventListener("pointerup", handleResizeEnd);
16707
16851
  return () => {
@@ -16870,7 +17014,7 @@ var TablePagination = ({ allowChangingPageSize = true, pageSizeOptions, ...props
16870
17014
  };
16871
17015
 
16872
17016
  // src/components/layout/table/TableWithSelectionProvider.tsx
16873
- import { useCallback as useCallback29, useMemo as useMemo29 } from "react";
17017
+ import { useCallback as useCallback29, useMemo as useMemo30 } from "react";
16874
17018
  import { jsx as jsx74 } from "react/jsx-runtime";
16875
17019
  var TableWithSelectionProvider = ({
16876
17020
  children,
@@ -16883,7 +17027,7 @@ var TableWithSelectionProvider = ({
16883
17027
  ...props
16884
17028
  }) => {
16885
17029
  const translation = useHightideTranslation();
16886
- const columnDef = useMemo29(() => [
17030
+ const columnDef = useMemo30(() => [
16887
17031
  {
16888
17032
  id: selectionRowId,
16889
17033
  header: ({ table }) => {
@@ -16986,7 +17130,7 @@ var TableWithSelection = ({
16986
17130
  };
16987
17131
 
16988
17132
  // src/components/layout/table/TableColumn.tsx
16989
- import { memo as memo2, useEffect as useEffect41, useMemo as useMemo30, useState as useState35 } from "react";
17133
+ import { memo as memo2, useEffect as useEffect42, useMemo as useMemo31, useState as useState36 } from "react";
16990
17134
  import { jsx as jsx76 } from "react/jsx-runtime";
16991
17135
  var TableColumnComponent = ({
16992
17136
  filterType,
@@ -16998,11 +17142,11 @@ var TableColumnComponent = ({
16998
17142
  "TableColumn: For filterType === multiTags or singleTag, filterData.tags must be set.",
16999
17143
  (filterType === "multiTags" || filterType === "singleTag") && props.meta?.filterData?.tags === void 0
17000
17144
  );
17001
- const [column] = useState35({
17145
+ const [column] = useState36({
17002
17146
  ...props,
17003
17147
  filterFn
17004
17148
  });
17005
- useEffect41(() => {
17149
+ useEffect42(() => {
17006
17150
  const unsubscribe = registerColumn(column);
17007
17151
  return () => {
17008
17152
  unsubscribe();
@@ -17017,12 +17161,12 @@ var TableColumnFactory = () => memo2(
17017
17161
  }
17018
17162
  );
17019
17163
  var TableColumn = (props) => {
17020
- const TableColumnComponent2 = useMemo30(() => TableColumnFactory(), []);
17164
+ const TableColumnComponent2 = useMemo31(() => TableColumnFactory(), []);
17021
17165
  return /* @__PURE__ */ jsx76(TableColumnComponent2, { ...props });
17022
17166
  };
17023
17167
 
17024
17168
  // src/components/layout/table/TableColumnSwitcher.tsx
17025
- import { useMemo as useMemo31, useRef as useRef32, useId as useId16 } from "react";
17169
+ import { useMemo as useMemo32, useRef as useRef32, useId as useId16 } from "react";
17026
17170
  import { ChevronUp as ChevronUp3, ChevronDown as ChevronDown5, ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight5, Eye, EyeOff, Pin, PinOff, ArrowLeftRightIcon } from "lucide-react";
17027
17171
  import { Fragment as Fragment10, jsx as jsx77, jsxs as jsxs45 } from "react/jsx-runtime";
17028
17172
  var TableColumnSwitcherPopUp = ({ ...props }) => {
@@ -17030,14 +17174,14 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
17030
17174
  const translation = useHightideTranslation();
17031
17175
  const containerRef = useRef32(null);
17032
17176
  const generatedId = useId16();
17033
- const ids = useMemo31(() => ({
17177
+ const ids = useMemo32(() => ({
17034
17178
  popup: props.id ?? `table-column-picker-popup-${generatedId}`,
17035
17179
  label: `table-column-picker-label-${generatedId}`
17036
17180
  }), [generatedId, props.id]);
17037
17181
  const tableState = table.getState();
17038
17182
  const columnOrder = tableState.columnOrder;
17039
17183
  const columnPinning = tableState.columnPinning;
17040
- const columns = useMemo31(() => {
17184
+ const columns = useMemo32(() => {
17041
17185
  const allColumns = table.getAllColumns();
17042
17186
  const leftPinned = [];
17043
17187
  const unpinned = [];
@@ -17295,7 +17439,7 @@ var TableColumnSwitcher = ({ buttonProps, ...props }) => {
17295
17439
  };
17296
17440
 
17297
17441
  // src/components/user-interaction/CopyToClipboardWrapper.tsx
17298
- import { useState as useState36 } from "react";
17442
+ import { useState as useState37 } from "react";
17299
17443
  import { clsx as clsx28 } from "clsx";
17300
17444
 
17301
17445
  // src/utils/writeToClipboard.ts
@@ -17318,7 +17462,7 @@ var CopyToClipboardWrapper = ({
17318
17462
  ...props
17319
17463
  }) => {
17320
17464
  const translation = useHightideTranslation();
17321
- const [isShowingConfirmation, setIsShowingConfirmation] = useState36(false);
17465
+ const [isShowingConfirmation, setIsShowingConfirmation] = useState37(false);
17322
17466
  return /* @__PURE__ */ jsxs46(
17323
17467
  TooltipRoot,
17324
17468
  {
@@ -17367,7 +17511,7 @@ var CopyToClipboardWrapper = ({
17367
17511
  };
17368
17512
 
17369
17513
  // src/components/user-interaction/Menu.tsx
17370
- import { useCallback as useCallback30, useRef as useRef33, useState as useState37 } from "react";
17514
+ import { useCallback as useCallback30, useRef as useRef33, useState as useState38 } from "react";
17371
17515
  import clsx29 from "clsx";
17372
17516
  import { Fragment as Fragment11, jsx as jsx79, jsxs as jsxs47 } from "react/jsx-runtime";
17373
17517
  var MenuItem = ({
@@ -17394,7 +17538,7 @@ var Menu = ({
17394
17538
  ...props
17395
17539
  }) => {
17396
17540
  const triggerRef = useRef33(null);
17397
- const [isOpen, setIsOpen] = useState37(false);
17541
+ const [isOpen, setIsOpen] = useState38(false);
17398
17542
  const bag = {
17399
17543
  isOpen,
17400
17544
  close: () => setIsOpen(false),
@@ -17424,7 +17568,7 @@ var Menu = ({
17424
17568
  };
17425
17569
 
17426
17570
  // src/components/user-interaction/ScrollPicker.tsx
17427
- import { useCallback as useCallback31, useEffect as useEffect42, useState as useState38 } from "react";
17571
+ import { useCallback as useCallback31, useEffect as useEffect43, useState as useState39 } from "react";
17428
17572
  import clsx30 from "clsx";
17429
17573
  import { jsx as jsx80, jsxs as jsxs48 } from "react/jsx-runtime";
17430
17574
  var up = 1;
@@ -17445,7 +17589,7 @@ var ScrollPicker = ({
17445
17589
  transition,
17446
17590
  items,
17447
17591
  lastTimeStamp
17448
- }, setAnimation] = useState38({
17592
+ }, setAnimation] = useState39({
17449
17593
  targetIndex: selectedIndex,
17450
17594
  currentIndex: disabled ? selectedIndex : 0,
17451
17595
  velocity: 0,
@@ -17544,7 +17688,7 @@ var ScrollPicker = ({
17544
17688
  };
17545
17689
  });
17546
17690
  }, [disabled, getDirection, onChange]);
17547
- useEffect42(() => {
17691
+ useEffect43(() => {
17548
17692
  requestAnimationFrame((timestamp) => animate(timestamp, lastTimeStamp));
17549
17693
  });
17550
17694
  const opacity = (transition2, index, itemsCount) => {
@@ -17808,7 +17952,7 @@ var TimeDisplay = ({
17808
17952
 
17809
17953
  // src/components/user-interaction/input/InsideLabelInput.tsx
17810
17954
  import { useId as useId18 } from "react";
17811
- import { forwardRef as forwardRef20, useState as useState39 } from "react";
17955
+ import { forwardRef as forwardRef20, useState as useState40 } from "react";
17812
17956
  import clsx32 from "clsx";
17813
17957
  import { jsx as jsx84, jsxs as jsxs50 } from "react/jsx-runtime";
17814
17958
  var InsideLabelInput = forwardRef20(function InsideLabelInput2({
@@ -17824,7 +17968,7 @@ var InsideLabelInput = forwardRef20(function InsideLabelInput2({
17824
17968
  onValueChange,
17825
17969
  defaultValue: initialValue
17826
17970
  });
17827
- const [isFocused, setIsFocused] = useState39(false);
17971
+ const [isFocused, setIsFocused] = useState40(false);
17828
17972
  const generatedId = useId18();
17829
17973
  const id = customId ?? generatedId;
17830
17974
  return /* @__PURE__ */ jsxs50("div", { className: clsx32("relative"), children: [
@@ -17914,7 +18058,7 @@ var SearchBar = ({
17914
18058
  };
17915
18059
 
17916
18060
  // src/components/user-interaction/input/ToggleableInput.tsx
17917
- import { forwardRef as forwardRef21, useEffect as useEffect43, useImperativeHandle as useImperativeHandle12, useRef as useRef34, useState as useState40 } from "react";
18061
+ import { forwardRef as forwardRef21, useEffect as useEffect44, useImperativeHandle as useImperativeHandle12, useRef as useRef34, useState as useState41 } from "react";
17918
18062
  import { Pencil } from "lucide-react";
17919
18063
  import clsx34 from "clsx";
17920
18064
  import { jsx as jsx86, jsxs as jsxs52 } from "react/jsx-runtime";
@@ -17931,10 +18075,10 @@ var ToggleableInput = forwardRef21(function ToggleableInput2({
17931
18075
  onValueChange,
17932
18076
  defaultValue: initialValue
17933
18077
  });
17934
- const [isEditing, setIsEditing] = useState40(initialState !== "display");
18078
+ const [isEditing, setIsEditing] = useState41(initialState !== "display");
17935
18079
  const innerRef = useRef34(null);
17936
18080
  useImperativeHandle12(forwardedRef, () => innerRef.current);
17937
- useEffect43(() => {
18081
+ useEffect44(() => {
17938
18082
  if (isEditing) {
17939
18083
  innerRef.current?.focus();
17940
18084
  }
@@ -18144,7 +18288,7 @@ var DateProperty = ({
18144
18288
  import { List } from "lucide-react";
18145
18289
 
18146
18290
  // src/components/user-interaction/select/MultiSelectChipDisplay.tsx
18147
- import { forwardRef as forwardRef22, useEffect as useEffect44, useImperativeHandle as useImperativeHandle13, useRef as useRef35 } from "react";
18291
+ import { forwardRef as forwardRef22, useEffect as useEffect45, useImperativeHandle as useImperativeHandle13, useRef as useRef35 } from "react";
18148
18292
  import { XIcon as XIcon2, Plus } from "lucide-react";
18149
18293
  import { jsx as jsx90, jsxs as jsxs55 } from "react/jsx-runtime";
18150
18294
  var MultiSelectChipDisplayButton = forwardRef22(function MultiSelectChipDisplayButton2({
@@ -18154,7 +18298,7 @@ var MultiSelectChipDisplayButton = forwardRef22(function MultiSelectChipDisplayB
18154
18298
  const translation = useHightideTranslation();
18155
18299
  const { state, trigger, item, ids, setIds } = useSelectContext();
18156
18300
  const { register, unregister, toggleOpen } = trigger;
18157
- useEffect44(() => {
18301
+ useEffect45(() => {
18158
18302
  if (id) {
18159
18303
  setIds((prev) => ({
18160
18304
  ...prev,
@@ -18164,7 +18308,7 @@ var MultiSelectChipDisplayButton = forwardRef22(function MultiSelectChipDisplayB
18164
18308
  }, [id, setIds]);
18165
18309
  const innerRef = useRef35(null);
18166
18310
  useImperativeHandle13(ref, () => innerRef.current);
18167
- useEffect44(() => {
18311
+ useEffect45(() => {
18168
18312
  register(innerRef);
18169
18313
  return () => unregister();
18170
18314
  }, [register, unregister]);
@@ -18450,16 +18594,16 @@ var TextProperty = ({
18450
18594
  };
18451
18595
 
18452
18596
  // src/components/utils/Transition.tsx
18453
- import { useEffect as useEffect45, useState as useState41 } from "react";
18597
+ import { useEffect as useEffect46, useState as useState42 } from "react";
18454
18598
  function Transition({
18455
18599
  children,
18456
18600
  show,
18457
18601
  includeAnimation = true
18458
18602
  }) {
18459
- const [isOpen, setIsOpen] = useState41(show);
18460
- const [isTransitioning, setIsTransitioning] = useState41(!isOpen);
18603
+ const [isOpen, setIsOpen] = useState42(show);
18604
+ const [isTransitioning, setIsTransitioning] = useState42(!isOpen);
18461
18605
  const isUsingReducedMotion = typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : true;
18462
- useEffect45(() => {
18606
+ useEffect46(() => {
18463
18607
  setIsOpen(show);
18464
18608
  setIsTransitioning(true);
18465
18609
  }, [show]);