@layers-app/shared 0.0.40 → 0.0.41

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.
@@ -8805,7 +8805,6 @@ const DesktopNavbar = (props) => {
8805
8805
  var _a, _b, _c;
8806
8806
  const { t } = useTranslation("appContainer");
8807
8807
  const { navbar, navbarTitle, displayType, onTitleChange } = props;
8808
- console.log("🚀 ~ DesktopNavbar ~ navbarTitle:", navbarTitle);
8809
8808
  const location2 = useLocation();
8810
8809
  const { isMobile: isMobile2 } = useMenu();
8811
8810
  const { setTourState } = useAppTour((s) => s);
@@ -8822,9 +8821,16 @@ const DesktopNavbar = (props) => {
8822
8821
  }, [tools, location2.pathname]);
8823
8822
  const entityTitle = navbarTitle || (selectedTool == null ? void 0 : selectedTool.entityName) || (selectedTool == null ? void 0 : selectedTool.name);
8824
8823
  const [lockNavbar, setLockNavbar] = useState(false);
8824
+ const onTitleChangeRef = useRef(onTitleChange);
8825
+ useEffect(() => {
8826
+ onTitleChangeRef.current = onTitleChange;
8827
+ }, [onTitleChange]);
8825
8828
  const titleField = useField({
8826
8829
  initialValue: entityTitle,
8827
- onValueChange: onTitleChange
8830
+ onValueChange: (value) => {
8831
+ var _a2;
8832
+ (_a2 = onTitleChangeRef.current) == null ? void 0 : _a2.call(onTitleChangeRef, value);
8833
+ }
8828
8834
  });
8829
8835
  useEffect(() => {
8830
8836
  titleField.setValue(navbarTitle);
@@ -9054,6 +9060,8 @@ const DesktopNavbar = (props) => {
9054
9060
  {
9055
9061
  ...titleField.getInputProps(),
9056
9062
  placeholder: t("noName"),
9063
+ maxLength: 50,
9064
+ minLength: 1,
9057
9065
  unstyled: true,
9058
9066
  classNames: {
9059
9067
  input: styles$i.toolTitleInput
@@ -9583,26 +9591,34 @@ function isDraftable(value) {
9583
9591
  return isPlainObject$1(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!((_a = value.constructor) == null ? void 0 : _a[DRAFTABLE]) || isMap(value) || isSet(value);
9584
9592
  }
9585
9593
  var objectCtorString = Object.prototype.constructor.toString();
9594
+ var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
9586
9595
  function isPlainObject$1(value) {
9587
9596
  if (!value || typeof value !== "object")
9588
9597
  return false;
9589
- const proto = getPrototypeOf(value);
9590
- if (proto === null) {
9598
+ const proto = Object.getPrototypeOf(value);
9599
+ if (proto === null || proto === Object.prototype)
9591
9600
  return true;
9592
- }
9593
9601
  const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
9594
9602
  if (Ctor === Object)
9595
9603
  return true;
9596
- return typeof Ctor == "function" && Function.toString.call(Ctor) === objectCtorString;
9604
+ if (typeof Ctor !== "function")
9605
+ return false;
9606
+ let ctorString = cachedCtorStrings.get(Ctor);
9607
+ if (ctorString === void 0) {
9608
+ ctorString = Function.toString.call(Ctor);
9609
+ cachedCtorStrings.set(Ctor, ctorString);
9610
+ }
9611
+ return ctorString === objectCtorString;
9597
9612
  }
9598
9613
  function original(value) {
9599
9614
  if (!isDraft(value))
9600
9615
  die(15, value);
9601
9616
  return value[DRAFT_STATE].base_;
9602
9617
  }
9603
- function each$1(obj, iter) {
9618
+ function each$1(obj, iter, strict = true) {
9604
9619
  if (getArchtype(obj) === 0) {
9605
- Reflect.ownKeys(obj).forEach((key) => {
9620
+ const keys2 = strict ? Reflect.ownKeys(obj) : Object.keys(obj);
9621
+ keys2.forEach((key) => {
9606
9622
  iter(key, obj[key], obj);
9607
9623
  });
9608
9624
  } else {
@@ -9689,10 +9705,10 @@ function freeze(obj, deep = false) {
9689
9705
  return obj;
9690
9706
  if (getArchtype(obj) > 1) {
9691
9707
  Object.defineProperties(obj, {
9692
- set: { value: dontMutateFrozenCollections },
9693
- add: { value: dontMutateFrozenCollections },
9694
- clear: { value: dontMutateFrozenCollections },
9695
- delete: { value: dontMutateFrozenCollections }
9708
+ set: dontMutateMethodOverride,
9709
+ add: dontMutateMethodOverride,
9710
+ clear: dontMutateMethodOverride,
9711
+ delete: dontMutateMethodOverride
9696
9712
  });
9697
9713
  }
9698
9714
  Object.freeze(obj);
@@ -9703,7 +9719,12 @@ function freeze(obj, deep = false) {
9703
9719
  function dontMutateFrozenCollections() {
9704
9720
  die(2);
9705
9721
  }
9722
+ var dontMutateMethodOverride = {
9723
+ value: dontMutateFrozenCollections
9724
+ };
9706
9725
  function isFrozen(obj) {
9726
+ if (obj === null || typeof obj !== "object")
9727
+ return true;
9707
9728
  return Object.isFrozen(obj);
9708
9729
  }
9709
9730
  var plugins = {};
@@ -9795,11 +9816,13 @@ function processResult(result, scope) {
9795
9816
  function finalize(rootScope, value, path) {
9796
9817
  if (isFrozen(value))
9797
9818
  return value;
9819
+ const useStrictIteration = rootScope.immer_.shouldUseStrictIteration();
9798
9820
  const state = value[DRAFT_STATE];
9799
9821
  if (!state) {
9800
9822
  each$1(
9801
9823
  value,
9802
- (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)
9824
+ (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),
9825
+ useStrictIteration
9803
9826
  );
9804
9827
  return value;
9805
9828
  }
@@ -9822,7 +9845,16 @@ function finalize(rootScope, value, path) {
9822
9845
  }
9823
9846
  each$1(
9824
9847
  resultEach,
9825
- (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)
9848
+ (key, childValue) => finalizeProperty(
9849
+ rootScope,
9850
+ state,
9851
+ result,
9852
+ key,
9853
+ childValue,
9854
+ path,
9855
+ isSet2
9856
+ ),
9857
+ useStrictIteration
9826
9858
  );
9827
9859
  maybeFreeze(rootScope, result, false);
9828
9860
  if (path && rootScope.patches_) {
@@ -9837,6 +9869,16 @@ function finalize(rootScope, value, path) {
9837
9869
  return state.copy_;
9838
9870
  }
9839
9871
  function finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {
9872
+ if (childValue == null) {
9873
+ return;
9874
+ }
9875
+ if (typeof childValue !== "object" && !targetIsSet) {
9876
+ return;
9877
+ }
9878
+ const childIsFrozen = isFrozen(childValue);
9879
+ if (childIsFrozen && !targetIsSet) {
9880
+ return;
9881
+ }
9840
9882
  if (process.env.NODE_ENV !== "production" && childValue === targetObject)
9841
9883
  die(5);
9842
9884
  if (isDraft(childValue)) {
@@ -9851,10 +9893,13 @@ function finalizeProperty(rootScope, parentState, targetObject, prop, childValue
9851
9893
  } else if (targetIsSet) {
9852
9894
  targetObject.add(childValue);
9853
9895
  }
9854
- if (isDraftable(childValue) && !isFrozen(childValue)) {
9896
+ if (isDraftable(childValue) && !childIsFrozen) {
9855
9897
  if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {
9856
9898
  return;
9857
9899
  }
9900
+ if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) {
9901
+ return;
9902
+ }
9858
9903
  finalize(rootScope, childValue);
9859
9904
  if ((!parentState || !parentState.scope_.parent_) && typeof prop !== "symbol" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))
9860
9905
  maybeFreeze(rootScope, childValue);
@@ -10052,6 +10097,7 @@ var Immer2 = class {
10052
10097
  constructor(config) {
10053
10098
  this.autoFreeze_ = true;
10054
10099
  this.useStrictShallowCopy_ = false;
10100
+ this.useStrictIteration_ = true;
10055
10101
  this.produce = (base2, recipe, patchListener) => {
10056
10102
  if (typeof base2 === "function" && typeof recipe !== "function") {
10057
10103
  const defaultBase = recipe;
@@ -10114,6 +10160,8 @@ var Immer2 = class {
10114
10160
  this.setAutoFreeze(config.autoFreeze);
10115
10161
  if (typeof (config == null ? void 0 : config.useStrictShallowCopy) === "boolean")
10116
10162
  this.setUseStrictShallowCopy(config.useStrictShallowCopy);
10163
+ if (typeof (config == null ? void 0 : config.useStrictIteration) === "boolean")
10164
+ this.setUseStrictIteration(config.useStrictIteration);
10117
10165
  }
10118
10166
  createDraft(base2) {
10119
10167
  if (!isDraftable(base2))
@@ -10150,6 +10198,18 @@ var Immer2 = class {
10150
10198
  setUseStrictShallowCopy(value) {
10151
10199
  this.useStrictShallowCopy_ = value;
10152
10200
  }
10201
+ /**
10202
+ * Pass false to use faster iteration that skips non-enumerable properties
10203
+ * but still handles symbols for compatibility.
10204
+ *
10205
+ * By default, strict iteration is enabled (includes all own properties).
10206
+ */
10207
+ setUseStrictIteration(value) {
10208
+ this.useStrictIteration_ = value;
10209
+ }
10210
+ shouldUseStrictIteration() {
10211
+ return this.useStrictIteration_;
10212
+ }
10153
10213
  applyPatches(base2, patches) {
10154
10214
  let i;
10155
10215
  for (i = patches.length - 1; i >= 0; i--) {
@@ -10188,17 +10248,23 @@ function currentImpl(value) {
10188
10248
  return value;
10189
10249
  const state = value[DRAFT_STATE];
10190
10250
  let copy2;
10251
+ let strict = true;
10191
10252
  if (state) {
10192
10253
  if (!state.modified_)
10193
10254
  return state.base_;
10194
10255
  state.finalized_ = true;
10195
10256
  copy2 = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);
10257
+ strict = state.scope_.immer_.shouldUseStrictIteration();
10196
10258
  } else {
10197
10259
  copy2 = shallowCopy(value, true);
10198
10260
  }
10199
- each$1(copy2, (key, childValue) => {
10200
- set(copy2, key, currentImpl(childValue));
10201
- });
10261
+ each$1(
10262
+ copy2,
10263
+ (key, childValue) => {
10264
+ set(copy2, key, currentImpl(childValue));
10265
+ },
10266
+ strict
10267
+ );
10202
10268
  if (state) {
10203
10269
  state.finalized_ = false;
10204
10270
  }
@@ -11520,13 +11586,6 @@ function copyWithStructuralSharing(oldObj, newObj) {
11520
11586
  }
11521
11587
  return isSameObject ? oldObj : mergeObj;
11522
11588
  }
11523
- function countObjectKeys(obj) {
11524
- let count = 0;
11525
- for (const _key in obj) {
11526
- count++;
11527
- }
11528
- return count;
11529
- }
11530
11589
  var flatten = (arr) => [].concat(...arr);
11531
11590
  function isDocumentVisible() {
11532
11591
  if (typeof document === "undefined") {
@@ -11537,13 +11596,12 @@ function isDocumentVisible() {
11537
11596
  function isNotNullish(v2) {
11538
11597
  return v2 != null;
11539
11598
  }
11599
+ function filterNullishValues(map2) {
11600
+ return [...(map2 == null ? void 0 : map2.values()) ?? []].filter(isNotNullish);
11601
+ }
11540
11602
  function isOnline() {
11541
11603
  return typeof navigator === "undefined" ? true : navigator.onLine === void 0 ? true : navigator.onLine;
11542
11604
  }
11543
- function getOrInsert(map2, key, value) {
11544
- if (map2.has(key)) return map2.get(key);
11545
- return map2.set(key, value).get(key);
11546
- }
11547
11605
  function getOrInsertComputed(map2, key, compute) {
11548
11606
  if (map2.has(key)) return map2.get(key);
11549
11607
  return map2.set(key, compute(key)).get(key);
@@ -11600,12 +11658,16 @@ function buildInitiate({
11600
11658
  mutationThunk,
11601
11659
  api,
11602
11660
  context,
11603
- internalState
11661
+ getInternalState
11604
11662
  }) {
11605
- const {
11606
- runningQueries,
11607
- runningMutations
11608
- } = internalState;
11663
+ const getRunningQueries = (dispatch) => {
11664
+ var _a;
11665
+ return (_a = getInternalState(dispatch)) == null ? void 0 : _a.runningQueries;
11666
+ };
11667
+ const getRunningMutations = (dispatch) => {
11668
+ var _a;
11669
+ return (_a = getInternalState(dispatch)) == null ? void 0 : _a.runningMutations;
11670
+ };
11609
11671
  const {
11610
11672
  unsubscribeQueryResult,
11611
11673
  removeMutationResult,
@@ -11629,20 +11691,20 @@ function buildInitiate({
11629
11691
  endpointDefinition,
11630
11692
  endpointName
11631
11693
  });
11632
- return (_a = runningQueries.get(dispatch)) == null ? void 0 : _a[queryCacheKey];
11694
+ return (_a = getRunningQueries(dispatch)) == null ? void 0 : _a.get(queryCacheKey);
11633
11695
  };
11634
11696
  }
11635
11697
  function getRunningMutationThunk(_endpointName, fixedCacheKeyOrRequestId) {
11636
11698
  return (dispatch) => {
11637
11699
  var _a;
11638
- return (_a = runningMutations.get(dispatch)) == null ? void 0 : _a[fixedCacheKeyOrRequestId];
11700
+ return (_a = getRunningMutations(dispatch)) == null ? void 0 : _a.get(fixedCacheKeyOrRequestId);
11639
11701
  };
11640
11702
  }
11641
11703
  function getRunningQueriesThunk() {
11642
- return (dispatch) => Object.values(runningQueries.get(dispatch) || {}).filter(isNotNullish);
11704
+ return (dispatch) => filterNullishValues(getRunningQueries(dispatch));
11643
11705
  }
11644
11706
  function getRunningMutationsThunk() {
11645
- return (dispatch) => Object.values(runningMutations.get(dispatch) || {}).filter(isNotNullish);
11707
+ return (dispatch) => filterNullishValues(getRunningMutations(dispatch));
11646
11708
  }
11647
11709
  function middlewareWarning(dispatch) {
11648
11710
  if (process.env.NODE_ENV !== "production") {
@@ -11705,7 +11767,7 @@ You must add the middleware for RTK-Query to function correctly!`);
11705
11767
  abort
11706
11768
  } = thunkResult;
11707
11769
  const skippedSynchronously = stateAfter.requestId !== requestId;
11708
- const runningQuery = (_a = runningQueries.get(dispatch)) == null ? void 0 : _a[queryCacheKey];
11770
+ const runningQuery = (_a = getRunningQueries(dispatch)) == null ? void 0 : _a.get(queryCacheKey);
11709
11771
  const selectFromState = () => selector(getState());
11710
11772
  const statePromise = Object.assign(forceQueryFn ? (
11711
11773
  // a query has been forced (upsertQueryData)
@@ -11753,13 +11815,10 @@ You must add the middleware for RTK-Query to function correctly!`);
11753
11815
  }
11754
11816
  });
11755
11817
  if (!runningQuery && !skippedSynchronously && !forceQueryFn) {
11756
- const running = getOrInsert(runningQueries, dispatch, {});
11757
- running[queryCacheKey] = statePromise;
11818
+ const runningQueries = getRunningQueries(dispatch);
11819
+ runningQueries.set(queryCacheKey, statePromise);
11758
11820
  statePromise.then(() => {
11759
- delete running[queryCacheKey];
11760
- if (!countObjectKeys(running)) {
11761
- runningQueries.delete(dispatch);
11762
- }
11821
+ runningQueries.delete(queryCacheKey);
11763
11822
  });
11764
11823
  }
11765
11824
  return statePromise;
@@ -11811,23 +11870,16 @@ You must add the middleware for RTK-Query to function correctly!`);
11811
11870
  unwrap,
11812
11871
  reset: reset2
11813
11872
  });
11814
- const running = runningMutations.get(dispatch) || {};
11815
- runningMutations.set(dispatch, running);
11816
- running[requestId] = ret;
11873
+ const runningMutations = getRunningMutations(dispatch);
11874
+ runningMutations.set(requestId, ret);
11817
11875
  ret.then(() => {
11818
- delete running[requestId];
11819
- if (!countObjectKeys(running)) {
11820
- runningMutations.delete(dispatch);
11821
- }
11876
+ runningMutations.delete(requestId);
11822
11877
  });
11823
11878
  if (fixedCacheKey) {
11824
- running[fixedCacheKey] = ret;
11879
+ runningMutations.set(fixedCacheKey, ret);
11825
11880
  ret.then(() => {
11826
- if (running[fixedCacheKey] === ret) {
11827
- delete running[fixedCacheKey];
11828
- if (!countObjectKeys(running)) {
11829
- runningMutations.delete(dispatch);
11830
- }
11881
+ if (runningMutations.get(fixedCacheKey) === ret) {
11882
+ runningMutations.delete(fixedCacheKey);
11831
11883
  }
11832
11884
  });
11833
11885
  }
@@ -12261,13 +12313,13 @@ In the case of an unhandled error, no tags will be "provided" or "invalidated".`
12261
12313
  });
12262
12314
  const hasTheForce = (options) => "force" in options;
12263
12315
  const hasMaxAge = (options) => "ifOlderThan" in options;
12264
- const prefetch = (endpointName, arg, options) => (dispatch, getState) => {
12316
+ const prefetch = (endpointName, arg, options = {}) => (dispatch, getState) => {
12265
12317
  const force = hasTheForce(options) && options.force;
12266
12318
  const maxAge = hasMaxAge(options) && options.ifOlderThan;
12267
12319
  const queryAction = (force2 = true) => {
12268
12320
  const options2 = {
12269
12321
  forceRefetch: force2,
12270
- isPrefetch: true
12322
+ subscribe: false
12271
12323
  };
12272
12324
  return api.endpoints[endpointName].initiate(arg, options2);
12273
12325
  };
@@ -13273,7 +13325,6 @@ var buildCacheCollectionHandler = ({
13273
13325
  unsubscribeQueryResult,
13274
13326
  cacheEntriesUpserted
13275
13327
  } = api.internalActions;
13276
- const runningQueries = internalState.runningQueries.get(mwApi.dispatch);
13277
13328
  const canTriggerUnsubscribe = isAnyOf(unsubscribeQueryResult.match, queryThunk.fulfilled, queryThunk.rejected, cacheEntriesUpserted.match);
13278
13329
  function anySubscriptionsRemainingForKey(queryCacheKey) {
13279
13330
  const subscriptions = internalState.currentSubscriptions.get(queryCacheKey);
@@ -13281,11 +13332,16 @@ var buildCacheCollectionHandler = ({
13281
13332
  return false;
13282
13333
  }
13283
13334
  const hasSubscriptions = subscriptions.size > 0;
13284
- const isRunning = (runningQueries == null ? void 0 : runningQueries[queryCacheKey]) !== void 0;
13285
- return hasSubscriptions || isRunning;
13335
+ return hasSubscriptions;
13286
13336
  }
13287
13337
  const currentRemovalTimeouts = {};
13288
- const handler = (action, mwApi2, internalState2) => {
13338
+ function abortAllPromises(promiseMap) {
13339
+ var _a;
13340
+ for (const promise of promiseMap.values()) {
13341
+ (_a = promise == null ? void 0 : promise.abort) == null ? void 0 : _a.call(promise);
13342
+ }
13343
+ }
13344
+ const handler = (action, mwApi2) => {
13289
13345
  const state = mwApi2.getState();
13290
13346
  const config = selectConfig(state);
13291
13347
  if (canTriggerUnsubscribe(action)) {
@@ -13305,6 +13361,8 @@ var buildCacheCollectionHandler = ({
13305
13361
  if (timeout) clearTimeout(timeout);
13306
13362
  delete currentRemovalTimeouts[key];
13307
13363
  }
13364
+ abortAllPromises(internalState.runningQueries);
13365
+ abortAllPromises(internalState.runningMutations);
13308
13366
  }
13309
13367
  if (context.hasRehydrationInfo(action)) {
13310
13368
  const {
@@ -13814,7 +13872,7 @@ function buildMiddleware(input2) {
13814
13872
  queryThunk,
13815
13873
  api,
13816
13874
  context,
13817
- internalState
13875
+ getInternalState
13818
13876
  } = input2;
13819
13877
  const {
13820
13878
  apiUid
@@ -13826,6 +13884,7 @@ function buildMiddleware(input2) {
13826
13884
  const handlerBuilders = [buildDevCheckHandler, buildCacheCollectionHandler, buildInvalidationByTagsHandler, buildPollingHandler, buildCacheLifecycleHandler, buildQueryLifecycleHandler];
13827
13885
  const middleware2 = (mwApi) => {
13828
13886
  let initialized2 = false;
13887
+ const internalState = getInternalState(mwApi.dispatch);
13829
13888
  const builderArgs = {
13830
13889
  ...input2,
13831
13890
  internalState,
@@ -13984,11 +14043,15 @@ var coreModule = ({
13984
14043
  upsertQueryEntries: sliceActions.cacheEntriesUpserted
13985
14044
  });
13986
14045
  safeAssign(api.internalActions, sliceActions);
13987
- const internalState = {
13988
- currentSubscriptions: /* @__PURE__ */ new Map(),
13989
- currentPolls: /* @__PURE__ */ new Map(),
13990
- runningQueries: /* @__PURE__ */ new Map(),
13991
- runningMutations: /* @__PURE__ */ new Map()
14046
+ const internalStateMap = /* @__PURE__ */ new WeakMap();
14047
+ const getInternalState = (dispatch) => {
14048
+ const state = getOrInsertComputed(internalStateMap, dispatch, () => ({
14049
+ currentSubscriptions: /* @__PURE__ */ new Map(),
14050
+ currentPolls: /* @__PURE__ */ new Map(),
14051
+ runningQueries: /* @__PURE__ */ new Map(),
14052
+ runningMutations: /* @__PURE__ */ new Map()
14053
+ }));
14054
+ return state;
13992
14055
  };
13993
14056
  const {
13994
14057
  buildInitiateQuery,
@@ -14005,7 +14068,7 @@ var coreModule = ({
14005
14068
  api,
14006
14069
  serializeQueryArgs,
14007
14070
  context,
14008
- internalState
14071
+ getInternalState
14009
14072
  });
14010
14073
  safeAssign(api.util, {
14011
14074
  getRunningMutationThunk,
@@ -14026,7 +14089,7 @@ var coreModule = ({
14026
14089
  assertTagType,
14027
14090
  selectors,
14028
14091
  getRunningQueryThunk,
14029
- internalState
14092
+ getInternalState
14030
14093
  });
14031
14094
  safeAssign(api.util, middlewareActions);
14032
14095
  safeAssign(api, {
@@ -16813,7 +16876,7 @@ function toDate(argument, options = {}) {
16813
16876
  }
16814
16877
  const dateStrings = splitDateString(argument);
16815
16878
  const { year, restDateString } = parseYear(dateStrings.date, additionalDigits);
16816
- const date = parseDate(restDateString, year);
16879
+ const date = parseDate$1(restDateString, year);
16817
16880
  if (date === null || isNaN(date.getTime())) {
16818
16881
  return /* @__PURE__ */ new Date(NaN);
16819
16882
  }
@@ -16894,7 +16957,7 @@ function parseYear(dateString, additionalDigits) {
16894
16957
  year: null
16895
16958
  };
16896
16959
  }
16897
- function parseDate(dateString, year) {
16960
+ function parseDate$1(dateString, year) {
16898
16961
  if (year === null) {
16899
16962
  return null;
16900
16963
  }
@@ -17288,8 +17351,8 @@ function getDefaultExportFromCjs$1(x2) {
17288
17351
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
17289
17352
  }
17290
17353
  var propTypes = { exports: {} };
17291
- var reactIs = { exports: {} };
17292
- var reactIs_production_min = {};
17354
+ var reactIs$1 = { exports: {} };
17355
+ var reactIs_production_min$1 = {};
17293
17356
  /** @license React v16.13.1
17294
17357
  * react-is.production.min.js
17295
17358
  *
@@ -17298,10 +17361,10 @@ var reactIs_production_min = {};
17298
17361
  * This source code is licensed under the MIT license found in the
17299
17362
  * LICENSE file in the root directory of this source tree.
17300
17363
  */
17301
- var hasRequiredReactIs_production_min;
17302
- function requireReactIs_production_min() {
17303
- if (hasRequiredReactIs_production_min) return reactIs_production_min;
17304
- hasRequiredReactIs_production_min = 1;
17364
+ var hasRequiredReactIs_production_min$1;
17365
+ function requireReactIs_production_min$1() {
17366
+ if (hasRequiredReactIs_production_min$1) return reactIs_production_min$1;
17367
+ hasRequiredReactIs_production_min$1 = 1;
17305
17368
  var b = "function" === typeof Symbol && Symbol.for, c = b ? Symbol.for("react.element") : 60103, d = b ? Symbol.for("react.portal") : 60106, e = b ? Symbol.for("react.fragment") : 60107, f2 = b ? Symbol.for("react.strict_mode") : 60108, g2 = b ? Symbol.for("react.profiler") : 60114, h = b ? Symbol.for("react.provider") : 60109, k2 = b ? Symbol.for("react.context") : 60110, l = b ? Symbol.for("react.async_mode") : 60111, m2 = b ? Symbol.for("react.concurrent_mode") : 60111, n = b ? Symbol.for("react.forward_ref") : 60112, p = b ? Symbol.for("react.suspense") : 60113, q2 = b ? Symbol.for("react.suspense_list") : 60120, r2 = b ? Symbol.for("react.memo") : 60115, t = b ? Symbol.for("react.lazy") : 60116, v2 = b ? Symbol.for("react.block") : 60121, w2 = b ? Symbol.for("react.fundamental") : 60117, x2 = b ? Symbol.for("react.responder") : 60118, y2 = b ? Symbol.for("react.scope") : 60119;
17306
17369
  function z2(a) {
17307
17370
  if ("object" === typeof a && null !== a) {
@@ -17336,63 +17399,63 @@ function requireReactIs_production_min() {
17336
17399
  function A2(a) {
17337
17400
  return z2(a) === m2;
17338
17401
  }
17339
- reactIs_production_min.AsyncMode = l;
17340
- reactIs_production_min.ConcurrentMode = m2;
17341
- reactIs_production_min.ContextConsumer = k2;
17342
- reactIs_production_min.ContextProvider = h;
17343
- reactIs_production_min.Element = c;
17344
- reactIs_production_min.ForwardRef = n;
17345
- reactIs_production_min.Fragment = e;
17346
- reactIs_production_min.Lazy = t;
17347
- reactIs_production_min.Memo = r2;
17348
- reactIs_production_min.Portal = d;
17349
- reactIs_production_min.Profiler = g2;
17350
- reactIs_production_min.StrictMode = f2;
17351
- reactIs_production_min.Suspense = p;
17352
- reactIs_production_min.isAsyncMode = function(a) {
17402
+ reactIs_production_min$1.AsyncMode = l;
17403
+ reactIs_production_min$1.ConcurrentMode = m2;
17404
+ reactIs_production_min$1.ContextConsumer = k2;
17405
+ reactIs_production_min$1.ContextProvider = h;
17406
+ reactIs_production_min$1.Element = c;
17407
+ reactIs_production_min$1.ForwardRef = n;
17408
+ reactIs_production_min$1.Fragment = e;
17409
+ reactIs_production_min$1.Lazy = t;
17410
+ reactIs_production_min$1.Memo = r2;
17411
+ reactIs_production_min$1.Portal = d;
17412
+ reactIs_production_min$1.Profiler = g2;
17413
+ reactIs_production_min$1.StrictMode = f2;
17414
+ reactIs_production_min$1.Suspense = p;
17415
+ reactIs_production_min$1.isAsyncMode = function(a) {
17353
17416
  return A2(a) || z2(a) === l;
17354
17417
  };
17355
- reactIs_production_min.isConcurrentMode = A2;
17356
- reactIs_production_min.isContextConsumer = function(a) {
17418
+ reactIs_production_min$1.isConcurrentMode = A2;
17419
+ reactIs_production_min$1.isContextConsumer = function(a) {
17357
17420
  return z2(a) === k2;
17358
17421
  };
17359
- reactIs_production_min.isContextProvider = function(a) {
17422
+ reactIs_production_min$1.isContextProvider = function(a) {
17360
17423
  return z2(a) === h;
17361
17424
  };
17362
- reactIs_production_min.isElement = function(a) {
17425
+ reactIs_production_min$1.isElement = function(a) {
17363
17426
  return "object" === typeof a && null !== a && a.$$typeof === c;
17364
17427
  };
17365
- reactIs_production_min.isForwardRef = function(a) {
17428
+ reactIs_production_min$1.isForwardRef = function(a) {
17366
17429
  return z2(a) === n;
17367
17430
  };
17368
- reactIs_production_min.isFragment = function(a) {
17431
+ reactIs_production_min$1.isFragment = function(a) {
17369
17432
  return z2(a) === e;
17370
17433
  };
17371
- reactIs_production_min.isLazy = function(a) {
17434
+ reactIs_production_min$1.isLazy = function(a) {
17372
17435
  return z2(a) === t;
17373
17436
  };
17374
- reactIs_production_min.isMemo = function(a) {
17437
+ reactIs_production_min$1.isMemo = function(a) {
17375
17438
  return z2(a) === r2;
17376
17439
  };
17377
- reactIs_production_min.isPortal = function(a) {
17440
+ reactIs_production_min$1.isPortal = function(a) {
17378
17441
  return z2(a) === d;
17379
17442
  };
17380
- reactIs_production_min.isProfiler = function(a) {
17443
+ reactIs_production_min$1.isProfiler = function(a) {
17381
17444
  return z2(a) === g2;
17382
17445
  };
17383
- reactIs_production_min.isStrictMode = function(a) {
17446
+ reactIs_production_min$1.isStrictMode = function(a) {
17384
17447
  return z2(a) === f2;
17385
17448
  };
17386
- reactIs_production_min.isSuspense = function(a) {
17449
+ reactIs_production_min$1.isSuspense = function(a) {
17387
17450
  return z2(a) === p;
17388
17451
  };
17389
- reactIs_production_min.isValidElementType = function(a) {
17452
+ reactIs_production_min$1.isValidElementType = function(a) {
17390
17453
  return "string" === typeof a || "function" === typeof a || a === e || a === m2 || a === g2 || a === f2 || a === p || a === q2 || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r2 || a.$$typeof === h || a.$$typeof === k2 || a.$$typeof === n || a.$$typeof === w2 || a.$$typeof === x2 || a.$$typeof === y2 || a.$$typeof === v2);
17391
17454
  };
17392
- reactIs_production_min.typeOf = z2;
17393
- return reactIs_production_min;
17455
+ reactIs_production_min$1.typeOf = z2;
17456
+ return reactIs_production_min$1;
17394
17457
  }
17395
- var reactIs_development = {};
17458
+ var reactIs_development$1 = {};
17396
17459
  /** @license React v16.13.1
17397
17460
  * react-is.development.js
17398
17461
  *
@@ -17401,10 +17464,10 @@ var reactIs_development = {};
17401
17464
  * This source code is licensed under the MIT license found in the
17402
17465
  * LICENSE file in the root directory of this source tree.
17403
17466
  */
17404
- var hasRequiredReactIs_development;
17405
- function requireReactIs_development() {
17406
- if (hasRequiredReactIs_development) return reactIs_development;
17407
- hasRequiredReactIs_development = 1;
17467
+ var hasRequiredReactIs_development$1;
17468
+ function requireReactIs_development$1() {
17469
+ if (hasRequiredReactIs_development$1) return reactIs_development$1;
17470
+ hasRequiredReactIs_development$1 = 1;
17408
17471
  if (process.env.NODE_ENV !== "production") {
17409
17472
  (function() {
17410
17473
  var hasSymbol = typeof Symbol === "function" && Symbol.for;
@@ -17522,48 +17585,48 @@ function requireReactIs_development() {
17522
17585
  function isSuspense(object) {
17523
17586
  return typeOf(object) === REACT_SUSPENSE_TYPE;
17524
17587
  }
17525
- reactIs_development.AsyncMode = AsyncMode;
17526
- reactIs_development.ConcurrentMode = ConcurrentMode;
17527
- reactIs_development.ContextConsumer = ContextConsumer;
17528
- reactIs_development.ContextProvider = ContextProvider;
17529
- reactIs_development.Element = Element2;
17530
- reactIs_development.ForwardRef = ForwardRef;
17531
- reactIs_development.Fragment = Fragment2;
17532
- reactIs_development.Lazy = Lazy;
17533
- reactIs_development.Memo = Memo;
17534
- reactIs_development.Portal = Portal;
17535
- reactIs_development.Profiler = Profiler;
17536
- reactIs_development.StrictMode = StrictMode;
17537
- reactIs_development.Suspense = Suspense2;
17538
- reactIs_development.isAsyncMode = isAsyncMode;
17539
- reactIs_development.isConcurrentMode = isConcurrentMode;
17540
- reactIs_development.isContextConsumer = isContextConsumer;
17541
- reactIs_development.isContextProvider = isContextProvider;
17542
- reactIs_development.isElement = isElement;
17543
- reactIs_development.isForwardRef = isForwardRef;
17544
- reactIs_development.isFragment = isFragment2;
17545
- reactIs_development.isLazy = isLazy;
17546
- reactIs_development.isMemo = isMemo;
17547
- reactIs_development.isPortal = isPortal;
17548
- reactIs_development.isProfiler = isProfiler;
17549
- reactIs_development.isStrictMode = isStrictMode;
17550
- reactIs_development.isSuspense = isSuspense;
17551
- reactIs_development.isValidElementType = isValidElementType;
17552
- reactIs_development.typeOf = typeOf;
17588
+ reactIs_development$1.AsyncMode = AsyncMode;
17589
+ reactIs_development$1.ConcurrentMode = ConcurrentMode;
17590
+ reactIs_development$1.ContextConsumer = ContextConsumer;
17591
+ reactIs_development$1.ContextProvider = ContextProvider;
17592
+ reactIs_development$1.Element = Element2;
17593
+ reactIs_development$1.ForwardRef = ForwardRef;
17594
+ reactIs_development$1.Fragment = Fragment2;
17595
+ reactIs_development$1.Lazy = Lazy;
17596
+ reactIs_development$1.Memo = Memo;
17597
+ reactIs_development$1.Portal = Portal;
17598
+ reactIs_development$1.Profiler = Profiler;
17599
+ reactIs_development$1.StrictMode = StrictMode;
17600
+ reactIs_development$1.Suspense = Suspense2;
17601
+ reactIs_development$1.isAsyncMode = isAsyncMode;
17602
+ reactIs_development$1.isConcurrentMode = isConcurrentMode;
17603
+ reactIs_development$1.isContextConsumer = isContextConsumer;
17604
+ reactIs_development$1.isContextProvider = isContextProvider;
17605
+ reactIs_development$1.isElement = isElement;
17606
+ reactIs_development$1.isForwardRef = isForwardRef;
17607
+ reactIs_development$1.isFragment = isFragment2;
17608
+ reactIs_development$1.isLazy = isLazy;
17609
+ reactIs_development$1.isMemo = isMemo;
17610
+ reactIs_development$1.isPortal = isPortal;
17611
+ reactIs_development$1.isProfiler = isProfiler;
17612
+ reactIs_development$1.isStrictMode = isStrictMode;
17613
+ reactIs_development$1.isSuspense = isSuspense;
17614
+ reactIs_development$1.isValidElementType = isValidElementType;
17615
+ reactIs_development$1.typeOf = typeOf;
17553
17616
  })();
17554
17617
  }
17555
- return reactIs_development;
17618
+ return reactIs_development$1;
17556
17619
  }
17557
- var hasRequiredReactIs;
17558
- function requireReactIs() {
17559
- if (hasRequiredReactIs) return reactIs.exports;
17560
- hasRequiredReactIs = 1;
17620
+ var hasRequiredReactIs$1;
17621
+ function requireReactIs$1() {
17622
+ if (hasRequiredReactIs$1) return reactIs$1.exports;
17623
+ hasRequiredReactIs$1 = 1;
17561
17624
  if (process.env.NODE_ENV === "production") {
17562
- reactIs.exports = requireReactIs_production_min();
17625
+ reactIs$1.exports = requireReactIs_production_min$1();
17563
17626
  } else {
17564
- reactIs.exports = requireReactIs_development();
17627
+ reactIs$1.exports = requireReactIs_development$1();
17565
17628
  }
17566
- return reactIs.exports;
17629
+ return reactIs$1.exports;
17567
17630
  }
17568
17631
  /*
17569
17632
  object-assign
@@ -17725,7 +17788,7 @@ var hasRequiredFactoryWithTypeCheckers;
17725
17788
  function requireFactoryWithTypeCheckers() {
17726
17789
  if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
17727
17790
  hasRequiredFactoryWithTypeCheckers = 1;
17728
- var ReactIs = requireReactIs();
17791
+ var ReactIs = requireReactIs$1();
17729
17792
  var assign2 = requireObjectAssign();
17730
17793
  var ReactPropTypesSecret = /* @__PURE__ */ requireReactPropTypesSecret();
17731
17794
  var has2 = /* @__PURE__ */ requireHas();
@@ -18222,7 +18285,7 @@ function requirePropTypes() {
18222
18285
  if (hasRequiredPropTypes) return propTypes.exports;
18223
18286
  hasRequiredPropTypes = 1;
18224
18287
  if (process.env.NODE_ENV !== "production") {
18225
- var ReactIs = requireReactIs();
18288
+ var ReactIs = requireReactIs$1();
18226
18289
  var throwOnDirectAccess = true;
18227
18290
  propTypes.exports = /* @__PURE__ */ requireFactoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);
18228
18291
  } else {
@@ -22068,6 +22131,7 @@ class ParseContext {
22068
22131
  addTextNode(dom, marks) {
22069
22132
  let value = dom.nodeValue;
22070
22133
  let top = this.top, preserveWS = top.options & OPT_PRESERVE_WS_FULL ? "full" : this.localPreserveWS || (top.options & OPT_PRESERVE_WS) > 0;
22134
+ let { schema } = this.parser;
22071
22135
  if (preserveWS === "full" || top.inlineContext(dom) || /[^ \t\r\n\u000c]/.test(value)) {
22072
22136
  if (!preserveWS) {
22073
22137
  value = value.replace(/[ \t\r\n\u000c]+/g, " ");
@@ -22077,13 +22141,22 @@ class ParseContext {
22077
22141
  if (!nodeBefore || domNodeBefore && domNodeBefore.nodeName == "BR" || nodeBefore.isText && /[ \t\r\n\u000c]$/.test(nodeBefore.text))
22078
22142
  value = value.slice(1);
22079
22143
  }
22080
- } else if (preserveWS !== "full") {
22081
- value = value.replace(/\r?\n|\r/g, " ");
22082
- } else {
22144
+ } else if (preserveWS === "full") {
22083
22145
  value = value.replace(/\r\n?/g, "\n");
22146
+ } else if (schema.linebreakReplacement && /[\r\n]/.test(value) && this.top.findWrapping(schema.linebreakReplacement.create())) {
22147
+ let lines = value.split(/\r?\n|\r/);
22148
+ for (let i = 0; i < lines.length; i++) {
22149
+ if (i)
22150
+ this.insertNode(schema.linebreakReplacement.create(), marks, true);
22151
+ if (lines[i])
22152
+ this.insertNode(schema.text(lines[i]), marks, !/\S/.test(lines[i]));
22153
+ }
22154
+ value = "";
22155
+ } else {
22156
+ value = value.replace(/\r?\n|\r/g, " ");
22084
22157
  }
22085
22158
  if (value)
22086
- this.insertNode(this.parser.schema.text(value), marks, !/\S/.test(value));
22159
+ this.insertNode(schema.text(value), marks, !/\S/.test(value));
22087
22160
  this.findInText(dom);
22088
22161
  } else {
22089
22162
  this.findInside(dom);
@@ -25051,7 +25124,6 @@ class Transaction extends Transform {
25051
25124
  } else {
25052
25125
  if (to == null)
25053
25126
  to = from3;
25054
- to = to == null ? from3 : to;
25055
25127
  if (!text)
25056
25128
  return this.deleteRange(from3, to);
25057
25129
  let marks = this.storedMarks;
@@ -25060,7 +25132,7 @@ class Transaction extends Transform {
25060
25132
  marks = to == from3 ? $from.marks() : $from.marksAcross(this.doc.resolve(to));
25061
25133
  }
25062
25134
  this.replaceRangeWith(from3, to, schema.text(text, marks));
25063
- if (!this.selection.empty)
25135
+ if (!this.selection.empty && this.selection.to == from3 + text.length)
25064
25136
  this.setSelection(Selection.near(this.selection.$to));
25065
25137
  return this;
25066
25138
  }
@@ -25252,7 +25324,7 @@ class EditorState {
25252
25324
  return newInstance;
25253
25325
  }
25254
25326
  /**
25255
- Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.
25327
+ Accessor that constructs and returns a new [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.
25256
25328
  */
25257
25329
  get tr() {
25258
25330
  return new Transaction(this);
@@ -29882,8 +29954,7 @@ function readDOMChange(view, from3, to, typeOver, addedNodes) {
29882
29954
  let $to = parse2.doc.resolveNoCache(change.endB - parse2.from);
29883
29955
  let $fromA = doc2.resolve(change.start);
29884
29956
  let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;
29885
- let nextSel;
29886
- if ((ios && view.input.lastIOSEnter > Date.now() - 225 && (!inlineChange || addedNodes.some((n) => n.nodeName == "DIV" || n.nodeName == "P")) || !inlineChange && $from.pos < parse2.doc.content.size && (!$from.sameParent($to) || !$from.parent.inlineContent) && !/\S/.test(parse2.doc.textBetween($from.pos, $to.pos, "", "")) && (nextSel = Selection.findFrom(parse2.doc.resolve($from.pos + 1), 1, true)) && nextSel.head > $from.pos) && view.someProp("handleKeyDown", (f2) => f2(view, keyEvent(13, "Enter")))) {
29957
+ if ((ios && view.input.lastIOSEnter > Date.now() - 225 && (!inlineChange || addedNodes.some((n) => n.nodeName == "DIV" || n.nodeName == "P")) || !inlineChange && $from.pos < parse2.doc.content.size && (!$from.sameParent($to) || !$from.parent.inlineContent) && $from.pos < $to.pos && !/\S/.test(parse2.doc.textBetween($from.pos, $to.pos, "", ""))) && view.someProp("handleKeyDown", (f2) => f2(view, keyEvent(13, "Enter")))) {
29887
29958
  view.input.lastIOSEnter = 0;
29888
29959
  return;
29889
29960
  }
@@ -29942,6 +30013,8 @@ function readDOMChange(view, from3, to, typeOver, addedNodes) {
29942
30013
  let deflt = () => mkTr(view.state.tr.insertText(text, chFrom, chTo));
29943
30014
  if (!view.someProp("handleTextInput", (f2) => f2(view, chFrom, chTo, text, deflt)))
29944
30015
  view.dispatch(deflt());
30016
+ } else {
30017
+ view.dispatch(mkTr());
29945
30018
  }
29946
30019
  } else {
29947
30020
  view.dispatch(mkTr());
@@ -38790,6 +38863,9 @@ class GapBookmark {
38790
38863
  return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);
38791
38864
  }
38792
38865
  }
38866
+ function needsGap(type2) {
38867
+ return type2.isAtom || type2.spec.isolating || type2.spec.createGapCursor;
38868
+ }
38793
38869
  function closedBefore($pos) {
38794
38870
  for (let d = $pos.depth; d >= 0; d--) {
38795
38871
  let index2 = $pos.index(d), parent = $pos.node(d);
@@ -38799,7 +38875,7 @@ function closedBefore($pos) {
38799
38875
  continue;
38800
38876
  }
38801
38877
  for (let before = parent.child(index2 - 1); ; before = before.lastChild) {
38802
- if (before.childCount == 0 && !before.inlineContent || before.isAtom || before.type.spec.isolating)
38878
+ if (before.childCount == 0 && !before.inlineContent || needsGap(before.type))
38803
38879
  return true;
38804
38880
  if (before.inlineContent)
38805
38881
  return false;
@@ -38816,7 +38892,7 @@ function closedAfter($pos) {
38816
38892
  continue;
38817
38893
  }
38818
38894
  for (let after = parent.child(index2); ; after = after.firstChild) {
38819
- if (after.childCount == 0 && !after.inlineContent || after.isAtom || after.type.spec.isolating)
38895
+ if (after.childCount == 0 && !after.inlineContent || needsGap(after.type))
38820
38896
  return true;
38821
38897
  if (after.inlineContent)
38822
38898
  return false;
@@ -47451,7 +47527,7 @@ const StatusesListBoard = () => {
47451
47527
  }
47452
47528
  ) });
47453
47529
  };
47454
- const KanbanLayout = lazy(() => import("./KanbanLayout-Cgno2syU.js"));
47530
+ const KanbanLayout = lazy(() => import("./KanbanLayout-BUnjGOO7.js"));
47455
47531
  const DifferentLayoutsBoard = () => {
47456
47532
  const { layoutView } = useOnboardingState();
47457
47533
  switch (layoutView) {
@@ -49482,7 +49558,7 @@ const styles$e = {
49482
49558
  filterPill,
49483
49559
  filterPillLabel
49484
49560
  };
49485
- const Date$1 = ({ setSelectedFilter, selectedFilter }) => {
49561
+ const DateFilter = ({ setSelectedFilter, selectedFilter }) => {
49486
49562
  const { t, i18n } = useTranslation("searchPage");
49487
49563
  const [dateValue, setDateValue] = useState([
49488
49564
  null,
@@ -49517,15 +49593,19 @@ const Date$1 = ({ setSelectedFilter, selectedFilter }) => {
49517
49593
  }
49518
49594
  };
49519
49595
  const handlePickRange = (range) => {
49520
- setDateValue(range);
49596
+ const dateRange = [
49597
+ parseDate(range[0]),
49598
+ parseDate(range[1])
49599
+ ];
49600
+ setDateValue(dateRange);
49521
49601
  setSelectedFilter(
49522
49602
  (prev2) => {
49523
49603
  var _a, _b;
49524
49604
  return {
49525
49605
  ...prev2,
49526
49606
  range: {
49527
- createdAtFrom: ((_a = range[0]) == null ? void 0 : _a.getTime()) || 0,
49528
- createdAtTo: ((_b = range[1]) == null ? void 0 : _b.getTime()) || 0
49607
+ createdAtFrom: ((_a = dateRange[0]) == null ? void 0 : _a.getTime()) || 0,
49608
+ createdAtTo: ((_b = dateRange[1]) == null ? void 0 : _b.getTime()) || 0
49529
49609
  }
49530
49610
  };
49531
49611
  }
@@ -49928,7 +50008,7 @@ const SearchFilters = ({
49928
50008
  }
49929
50009
  ),
49930
50010
  allowedFilters.includes("range") && /* @__PURE__ */ jsx$1(
49931
- Date$1,
50011
+ DateFilter,
49932
50012
  {
49933
50013
  selectedFilter,
49934
50014
  setSelectedFilter
@@ -71635,7 +71715,7 @@ const AttachImage = ({
71635
71715
  zIndex: 99
71636
71716
  },
71637
71717
  children: [
71638
- /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 12, miw: 0, children: [
71718
+ attachment.originalFileName ? /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 12, miw: 0, children: [
71639
71719
  /* @__PURE__ */ jsx$1(
71640
71720
  Flex,
71641
71721
  {
@@ -71654,14 +71734,14 @@ const AttachImage = ({
71654
71734
  }
71655
71735
  ),
71656
71736
  /* @__PURE__ */ jsxs(Stack, { gap: 0, miw: 0, children: [
71657
- attachment.originalFileName && /* @__PURE__ */ jsx$1(Text$2, { size: "md", c: "white", truncate: "end", children: attachment.originalFileName }),
71737
+ /* @__PURE__ */ jsx$1(Text$2, { size: "md", c: "white", truncate: "end", children: attachment.originalFileName }),
71658
71738
  attachment.fileSize ? /* @__PURE__ */ jsxs(Text$2, { size: "sm", c: "dark.1", truncate: "end", children: [
71659
71739
  attachment.contentType,
71660
71740
  " / ",
71661
71741
  formatBytes(attachment.fileSize)
71662
71742
  ] }) : null
71663
71743
  ] })
71664
- ] }),
71744
+ ] }) : /* @__PURE__ */ jsx$1("div", {}),
71665
71745
  /* @__PURE__ */ jsxs(Flex, { gap: 4, children: [
71666
71746
  /* @__PURE__ */ jsx$1(
71667
71747
  Tooltip,
@@ -71777,7 +71857,7 @@ const AttachmentsGalleryModal = memo$1(
71777
71857
  }
71778
71858
  },
71779
71859
  children: [
71780
- showAttach && /* @__PURE__ */ jsx$1(Fragment$1, { children: /* @__PURE__ */ jsx$1(
71860
+ showAttach && /* @__PURE__ */ jsx$1(
71781
71861
  AttachImage,
71782
71862
  {
71783
71863
  attachment: showAttach,
@@ -71785,7 +71865,7 @@ const AttachmentsGalleryModal = memo$1(
71785
71865
  onClose: () => onOpenChange(false),
71786
71866
  translation
71787
71867
  }
71788
- ) }),
71868
+ ),
71789
71869
  !isFirst && !isVideo && /* @__PURE__ */ jsx$1(
71790
71870
  ActionIcon,
71791
71871
  {
@@ -75436,6 +75516,283 @@ function _extends() {
75436
75516
  return n;
75437
75517
  }, _extends.apply(null, arguments);
75438
75518
  }
75519
+ var reactIs = { exports: {} };
75520
+ var reactIs_production_min = {};
75521
+ /** @license React v16.13.1
75522
+ * react-is.production.min.js
75523
+ *
75524
+ * Copyright (c) Facebook, Inc. and its affiliates.
75525
+ *
75526
+ * This source code is licensed under the MIT license found in the
75527
+ * LICENSE file in the root directory of this source tree.
75528
+ */
75529
+ var hasRequiredReactIs_production_min;
75530
+ function requireReactIs_production_min() {
75531
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
75532
+ hasRequiredReactIs_production_min = 1;
75533
+ var b = "function" === typeof Symbol && Symbol.for, c = b ? Symbol.for("react.element") : 60103, d = b ? Symbol.for("react.portal") : 60106, e = b ? Symbol.for("react.fragment") : 60107, f2 = b ? Symbol.for("react.strict_mode") : 60108, g2 = b ? Symbol.for("react.profiler") : 60114, h = b ? Symbol.for("react.provider") : 60109, k2 = b ? Symbol.for("react.context") : 60110, l = b ? Symbol.for("react.async_mode") : 60111, m2 = b ? Symbol.for("react.concurrent_mode") : 60111, n = b ? Symbol.for("react.forward_ref") : 60112, p = b ? Symbol.for("react.suspense") : 60113, q2 = b ? Symbol.for("react.suspense_list") : 60120, r2 = b ? Symbol.for("react.memo") : 60115, t = b ? Symbol.for("react.lazy") : 60116, v2 = b ? Symbol.for("react.block") : 60121, w2 = b ? Symbol.for("react.fundamental") : 60117, x2 = b ? Symbol.for("react.responder") : 60118, y2 = b ? Symbol.for("react.scope") : 60119;
75534
+ function z2(a) {
75535
+ if ("object" === typeof a && null !== a) {
75536
+ var u = a.$$typeof;
75537
+ switch (u) {
75538
+ case c:
75539
+ switch (a = a.type, a) {
75540
+ case l:
75541
+ case m2:
75542
+ case e:
75543
+ case g2:
75544
+ case f2:
75545
+ case p:
75546
+ return a;
75547
+ default:
75548
+ switch (a = a && a.$$typeof, a) {
75549
+ case k2:
75550
+ case n:
75551
+ case t:
75552
+ case r2:
75553
+ case h:
75554
+ return a;
75555
+ default:
75556
+ return u;
75557
+ }
75558
+ }
75559
+ case d:
75560
+ return u;
75561
+ }
75562
+ }
75563
+ }
75564
+ function A2(a) {
75565
+ return z2(a) === m2;
75566
+ }
75567
+ reactIs_production_min.AsyncMode = l;
75568
+ reactIs_production_min.ConcurrentMode = m2;
75569
+ reactIs_production_min.ContextConsumer = k2;
75570
+ reactIs_production_min.ContextProvider = h;
75571
+ reactIs_production_min.Element = c;
75572
+ reactIs_production_min.ForwardRef = n;
75573
+ reactIs_production_min.Fragment = e;
75574
+ reactIs_production_min.Lazy = t;
75575
+ reactIs_production_min.Memo = r2;
75576
+ reactIs_production_min.Portal = d;
75577
+ reactIs_production_min.Profiler = g2;
75578
+ reactIs_production_min.StrictMode = f2;
75579
+ reactIs_production_min.Suspense = p;
75580
+ reactIs_production_min.isAsyncMode = function(a) {
75581
+ return A2(a) || z2(a) === l;
75582
+ };
75583
+ reactIs_production_min.isConcurrentMode = A2;
75584
+ reactIs_production_min.isContextConsumer = function(a) {
75585
+ return z2(a) === k2;
75586
+ };
75587
+ reactIs_production_min.isContextProvider = function(a) {
75588
+ return z2(a) === h;
75589
+ };
75590
+ reactIs_production_min.isElement = function(a) {
75591
+ return "object" === typeof a && null !== a && a.$$typeof === c;
75592
+ };
75593
+ reactIs_production_min.isForwardRef = function(a) {
75594
+ return z2(a) === n;
75595
+ };
75596
+ reactIs_production_min.isFragment = function(a) {
75597
+ return z2(a) === e;
75598
+ };
75599
+ reactIs_production_min.isLazy = function(a) {
75600
+ return z2(a) === t;
75601
+ };
75602
+ reactIs_production_min.isMemo = function(a) {
75603
+ return z2(a) === r2;
75604
+ };
75605
+ reactIs_production_min.isPortal = function(a) {
75606
+ return z2(a) === d;
75607
+ };
75608
+ reactIs_production_min.isProfiler = function(a) {
75609
+ return z2(a) === g2;
75610
+ };
75611
+ reactIs_production_min.isStrictMode = function(a) {
75612
+ return z2(a) === f2;
75613
+ };
75614
+ reactIs_production_min.isSuspense = function(a) {
75615
+ return z2(a) === p;
75616
+ };
75617
+ reactIs_production_min.isValidElementType = function(a) {
75618
+ return "string" === typeof a || "function" === typeof a || a === e || a === m2 || a === g2 || a === f2 || a === p || a === q2 || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r2 || a.$$typeof === h || a.$$typeof === k2 || a.$$typeof === n || a.$$typeof === w2 || a.$$typeof === x2 || a.$$typeof === y2 || a.$$typeof === v2);
75619
+ };
75620
+ reactIs_production_min.typeOf = z2;
75621
+ return reactIs_production_min;
75622
+ }
75623
+ var reactIs_development = {};
75624
+ /** @license React v16.13.1
75625
+ * react-is.development.js
75626
+ *
75627
+ * Copyright (c) Facebook, Inc. and its affiliates.
75628
+ *
75629
+ * This source code is licensed under the MIT license found in the
75630
+ * LICENSE file in the root directory of this source tree.
75631
+ */
75632
+ var hasRequiredReactIs_development;
75633
+ function requireReactIs_development() {
75634
+ if (hasRequiredReactIs_development) return reactIs_development;
75635
+ hasRequiredReactIs_development = 1;
75636
+ if (process.env.NODE_ENV !== "production") {
75637
+ (function() {
75638
+ var hasSymbol = typeof Symbol === "function" && Symbol.for;
75639
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for("react.element") : 60103;
75640
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for("react.portal") : 60106;
75641
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for("react.fragment") : 60107;
75642
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for("react.strict_mode") : 60108;
75643
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for("react.profiler") : 60114;
75644
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for("react.provider") : 60109;
75645
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for("react.context") : 60110;
75646
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for("react.async_mode") : 60111;
75647
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for("react.concurrent_mode") : 60111;
75648
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for("react.forward_ref") : 60112;
75649
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for("react.suspense") : 60113;
75650
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for("react.suspense_list") : 60120;
75651
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for("react.memo") : 60115;
75652
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for("react.lazy") : 60116;
75653
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for("react.block") : 60121;
75654
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for("react.fundamental") : 60117;
75655
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for("react.responder") : 60118;
75656
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for("react.scope") : 60119;
75657
+ function isValidElementType(type2) {
75658
+ return typeof type2 === "string" || typeof type2 === "function" || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
75659
+ type2 === REACT_FRAGMENT_TYPE || type2 === REACT_CONCURRENT_MODE_TYPE || type2 === REACT_PROFILER_TYPE || type2 === REACT_STRICT_MODE_TYPE || type2 === REACT_SUSPENSE_TYPE || type2 === REACT_SUSPENSE_LIST_TYPE || typeof type2 === "object" && type2 !== null && (type2.$$typeof === REACT_LAZY_TYPE || type2.$$typeof === REACT_MEMO_TYPE || type2.$$typeof === REACT_PROVIDER_TYPE || type2.$$typeof === REACT_CONTEXT_TYPE || type2.$$typeof === REACT_FORWARD_REF_TYPE || type2.$$typeof === REACT_FUNDAMENTAL_TYPE || type2.$$typeof === REACT_RESPONDER_TYPE || type2.$$typeof === REACT_SCOPE_TYPE || type2.$$typeof === REACT_BLOCK_TYPE);
75660
+ }
75661
+ function typeOf(object) {
75662
+ if (typeof object === "object" && object !== null) {
75663
+ var $$typeof = object.$$typeof;
75664
+ switch ($$typeof) {
75665
+ case REACT_ELEMENT_TYPE:
75666
+ var type2 = object.type;
75667
+ switch (type2) {
75668
+ case REACT_ASYNC_MODE_TYPE:
75669
+ case REACT_CONCURRENT_MODE_TYPE:
75670
+ case REACT_FRAGMENT_TYPE:
75671
+ case REACT_PROFILER_TYPE:
75672
+ case REACT_STRICT_MODE_TYPE:
75673
+ case REACT_SUSPENSE_TYPE:
75674
+ return type2;
75675
+ default:
75676
+ var $$typeofType = type2 && type2.$$typeof;
75677
+ switch ($$typeofType) {
75678
+ case REACT_CONTEXT_TYPE:
75679
+ case REACT_FORWARD_REF_TYPE:
75680
+ case REACT_LAZY_TYPE:
75681
+ case REACT_MEMO_TYPE:
75682
+ case REACT_PROVIDER_TYPE:
75683
+ return $$typeofType;
75684
+ default:
75685
+ return $$typeof;
75686
+ }
75687
+ }
75688
+ case REACT_PORTAL_TYPE:
75689
+ return $$typeof;
75690
+ }
75691
+ }
75692
+ return void 0;
75693
+ }
75694
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
75695
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
75696
+ var ContextConsumer = REACT_CONTEXT_TYPE;
75697
+ var ContextProvider = REACT_PROVIDER_TYPE;
75698
+ var Element2 = REACT_ELEMENT_TYPE;
75699
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
75700
+ var Fragment2 = REACT_FRAGMENT_TYPE;
75701
+ var Lazy = REACT_LAZY_TYPE;
75702
+ var Memo = REACT_MEMO_TYPE;
75703
+ var Portal = REACT_PORTAL_TYPE;
75704
+ var Profiler = REACT_PROFILER_TYPE;
75705
+ var StrictMode = REACT_STRICT_MODE_TYPE;
75706
+ var Suspense2 = REACT_SUSPENSE_TYPE;
75707
+ var hasWarnedAboutDeprecatedIsAsyncMode = false;
75708
+ function isAsyncMode(object) {
75709
+ {
75710
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
75711
+ hasWarnedAboutDeprecatedIsAsyncMode = true;
75712
+ console["warn"]("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.");
75713
+ }
75714
+ }
75715
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
75716
+ }
75717
+ function isConcurrentMode(object) {
75718
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
75719
+ }
75720
+ function isContextConsumer(object) {
75721
+ return typeOf(object) === REACT_CONTEXT_TYPE;
75722
+ }
75723
+ function isContextProvider(object) {
75724
+ return typeOf(object) === REACT_PROVIDER_TYPE;
75725
+ }
75726
+ function isElement(object) {
75727
+ return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
75728
+ }
75729
+ function isForwardRef(object) {
75730
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
75731
+ }
75732
+ function isFragment2(object) {
75733
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
75734
+ }
75735
+ function isLazy(object) {
75736
+ return typeOf(object) === REACT_LAZY_TYPE;
75737
+ }
75738
+ function isMemo(object) {
75739
+ return typeOf(object) === REACT_MEMO_TYPE;
75740
+ }
75741
+ function isPortal(object) {
75742
+ return typeOf(object) === REACT_PORTAL_TYPE;
75743
+ }
75744
+ function isProfiler(object) {
75745
+ return typeOf(object) === REACT_PROFILER_TYPE;
75746
+ }
75747
+ function isStrictMode(object) {
75748
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
75749
+ }
75750
+ function isSuspense(object) {
75751
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
75752
+ }
75753
+ reactIs_development.AsyncMode = AsyncMode;
75754
+ reactIs_development.ConcurrentMode = ConcurrentMode;
75755
+ reactIs_development.ContextConsumer = ContextConsumer;
75756
+ reactIs_development.ContextProvider = ContextProvider;
75757
+ reactIs_development.Element = Element2;
75758
+ reactIs_development.ForwardRef = ForwardRef;
75759
+ reactIs_development.Fragment = Fragment2;
75760
+ reactIs_development.Lazy = Lazy;
75761
+ reactIs_development.Memo = Memo;
75762
+ reactIs_development.Portal = Portal;
75763
+ reactIs_development.Profiler = Profiler;
75764
+ reactIs_development.StrictMode = StrictMode;
75765
+ reactIs_development.Suspense = Suspense2;
75766
+ reactIs_development.isAsyncMode = isAsyncMode;
75767
+ reactIs_development.isConcurrentMode = isConcurrentMode;
75768
+ reactIs_development.isContextConsumer = isContextConsumer;
75769
+ reactIs_development.isContextProvider = isContextProvider;
75770
+ reactIs_development.isElement = isElement;
75771
+ reactIs_development.isForwardRef = isForwardRef;
75772
+ reactIs_development.isFragment = isFragment2;
75773
+ reactIs_development.isLazy = isLazy;
75774
+ reactIs_development.isMemo = isMemo;
75775
+ reactIs_development.isPortal = isPortal;
75776
+ reactIs_development.isProfiler = isProfiler;
75777
+ reactIs_development.isStrictMode = isStrictMode;
75778
+ reactIs_development.isSuspense = isSuspense;
75779
+ reactIs_development.isValidElementType = isValidElementType;
75780
+ reactIs_development.typeOf = typeOf;
75781
+ })();
75782
+ }
75783
+ return reactIs_development;
75784
+ }
75785
+ var hasRequiredReactIs;
75786
+ function requireReactIs() {
75787
+ if (hasRequiredReactIs) return reactIs.exports;
75788
+ hasRequiredReactIs = 1;
75789
+ if (process.env.NODE_ENV === "production") {
75790
+ reactIs.exports = requireReactIs_production_min();
75791
+ } else {
75792
+ reactIs.exports = requireReactIs_development();
75793
+ }
75794
+ return reactIs.exports;
75795
+ }
75439
75796
  var hoistNonReactStatics_cjs;
75440
75797
  var hasRequiredHoistNonReactStatics_cjs;
75441
75798
  function requireHoistNonReactStatics_cjs() {
@@ -77442,7 +77799,7 @@ const Container$3 = styled.div`
77442
77799
  function memo(getDeps, fn, opts) {
77443
77800
  let deps = opts.initialDeps ?? [];
77444
77801
  let result;
77445
- return () => {
77802
+ function memoizedFunction() {
77446
77803
  var _a, _b, _c, _d;
77447
77804
  let depTime;
77448
77805
  if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();
@@ -77480,7 +77837,11 @@ function memo(getDeps, fn, opts) {
77480
77837
  }
77481
77838
  (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);
77482
77839
  return result;
77840
+ }
77841
+ memoizedFunction.updateDeps = (newDeps) => {
77842
+ deps = newDeps;
77483
77843
  };
77844
+ return memoizedFunction;
77484
77845
  }
77485
77846
  function notUndefined(value, msg) {
77486
77847
  if (value === void 0) {
@@ -77489,7 +77850,7 @@ function notUndefined(value, msg) {
77489
77850
  return value;
77490
77851
  }
77491
77852
  }
77492
- const approxEqual = (a, b) => Math.abs(a - b) < 1;
77853
+ const approxEqual = (a, b) => Math.abs(a - b) < 1.01;
77493
77854
  const debounce = (targetWindow, fn, ms) => {
77494
77855
  let timeoutId;
77495
77856
  return function(...args) {
@@ -77497,6 +77858,10 @@ const debounce = (targetWindow, fn, ms) => {
77497
77858
  timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);
77498
77859
  };
77499
77860
  };
77861
+ const getRect = (element) => {
77862
+ const { offsetWidth, offsetHeight } = element;
77863
+ return { width: offsetWidth, height: offsetHeight };
77864
+ };
77500
77865
  const defaultKeyExtractor = (index2) => index2;
77501
77866
  const defaultRangeExtractor = (range) => {
77502
77867
  const start = Math.max(range.startIndex - range.overscan, 0);
@@ -77520,21 +77885,24 @@ const observeElementRect = (instance, cb) => {
77520
77885
  const { width, height } = rect;
77521
77886
  cb({ width: Math.round(width), height: Math.round(height) });
77522
77887
  };
77523
- handler(element.getBoundingClientRect());
77888
+ handler(getRect(element));
77524
77889
  if (!targetWindow.ResizeObserver) {
77525
77890
  return () => {
77526
77891
  };
77527
77892
  }
77528
77893
  const observer = new targetWindow.ResizeObserver((entries) => {
77529
- const entry = entries[0];
77530
- if (entry == null ? void 0 : entry.borderBoxSize) {
77531
- const box = entry.borderBoxSize[0];
77532
- if (box) {
77533
- handler({ width: box.inlineSize, height: box.blockSize });
77534
- return;
77894
+ const run2 = () => {
77895
+ const entry = entries[0];
77896
+ if (entry == null ? void 0 : entry.borderBoxSize) {
77897
+ const box = entry.borderBoxSize[0];
77898
+ if (box) {
77899
+ handler({ width: box.inlineSize, height: box.blockSize });
77900
+ return;
77901
+ }
77535
77902
  }
77536
- }
77537
- handler(element.getBoundingClientRect());
77903
+ handler(getRect(element));
77904
+ };
77905
+ instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run2) : run2();
77538
77906
  });
77539
77907
  observer.observe(element, { box: "border-box" });
77540
77908
  return () => {
@@ -77572,10 +77940,15 @@ const observeElementOffset = (instance, cb) => {
77572
77940
  const endHandler = createHandler(false);
77573
77941
  endHandler();
77574
77942
  element.addEventListener("scroll", handler, addEventListenerOptions);
77575
- element.addEventListener("scrollend", endHandler, addEventListenerOptions);
77943
+ const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
77944
+ if (registerScrollendEvent) {
77945
+ element.addEventListener("scrollend", endHandler, addEventListenerOptions);
77946
+ }
77576
77947
  return () => {
77577
77948
  element.removeEventListener("scroll", handler);
77578
- element.removeEventListener("scrollend", endHandler);
77949
+ if (registerScrollendEvent) {
77950
+ element.removeEventListener("scrollend", endHandler);
77951
+ }
77579
77952
  };
77580
77953
  };
77581
77954
  const measureElement = (element, entry, instance) => {
@@ -77588,9 +77961,7 @@ const measureElement = (element, entry, instance) => {
77588
77961
  return size;
77589
77962
  }
77590
77963
  }
77591
- return Math.round(
77592
- element.getBoundingClientRect()[instance.options.horizontal ? "width" : "height"]
77593
- );
77964
+ return element[instance.options.horizontal ? "offsetWidth" : "offsetHeight"];
77594
77965
  };
77595
77966
  const elementScroll = (offset2, {
77596
77967
  adjustments = 0,
@@ -77609,7 +77980,6 @@ class Virtualizer {
77609
77980
  this.scrollElement = null;
77610
77981
  this.targetWindow = null;
77611
77982
  this.isScrolling = false;
77612
- this.scrollToIndexTimeoutId = null;
77613
77983
  this.measurementsCache = [];
77614
77984
  this.itemSizeCache = /* @__PURE__ */ new Map();
77615
77985
  this.pendingMeasuredCacheIndexes = [];
@@ -77629,7 +77999,10 @@ class Virtualizer {
77629
77999
  }
77630
78000
  return _ro = new this.targetWindow.ResizeObserver((entries) => {
77631
78001
  entries.forEach((entry) => {
77632
- this._measureElement(entry.target, entry);
78002
+ const run2 = () => {
78003
+ this._measureElement(entry.target, entry);
78004
+ };
78005
+ this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run2) : run2();
77633
78006
  });
77634
78007
  });
77635
78008
  };
@@ -77677,7 +78050,8 @@ class Virtualizer {
77677
78050
  isScrollingResetDelay: 150,
77678
78051
  enabled: true,
77679
78052
  isRtl: false,
77680
- useScrollendEvent: true,
78053
+ useScrollendEvent: false,
78054
+ useAnimationFrameWithResizeObserver: false,
77681
78055
  ...opts2
77682
78056
  };
77683
78057
  };
@@ -77866,12 +78240,18 @@ class Virtualizer {
77866
78240
  }
77867
78241
  );
77868
78242
  this.calculateRange = memo(
77869
- () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
77870
- (measurements, outerSize, scrollOffset) => {
78243
+ () => [
78244
+ this.getMeasurements(),
78245
+ this.getSize(),
78246
+ this.getScrollOffset(),
78247
+ this.options.lanes
78248
+ ],
78249
+ (measurements, outerSize, scrollOffset, lanes) => {
77871
78250
  return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
77872
78251
  measurements,
77873
78252
  outerSize,
77874
- scrollOffset
78253
+ scrollOffset,
78254
+ lanes
77875
78255
  }) : null;
77876
78256
  },
77877
78257
  {
@@ -77879,23 +78259,34 @@ class Virtualizer {
77879
78259
  debug: () => this.options.debug
77880
78260
  }
77881
78261
  );
77882
- this.getIndexes = memo(
77883
- () => [
77884
- this.options.rangeExtractor,
77885
- this.calculateRange(),
77886
- this.options.overscan,
77887
- this.options.count
77888
- ],
77889
- (rangeExtractor, range, overscan, count) => {
77890
- return range === null ? [] : rangeExtractor({
77891
- startIndex: range.startIndex,
77892
- endIndex: range.endIndex,
78262
+ this.getVirtualIndexes = memo(
78263
+ () => {
78264
+ let startIndex = null;
78265
+ let endIndex = null;
78266
+ const range = this.calculateRange();
78267
+ if (range) {
78268
+ startIndex = range.startIndex;
78269
+ endIndex = range.endIndex;
78270
+ }
78271
+ this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);
78272
+ return [
78273
+ this.options.rangeExtractor,
78274
+ this.options.overscan,
78275
+ this.options.count,
78276
+ startIndex,
78277
+ endIndex
78278
+ ];
78279
+ },
78280
+ (rangeExtractor, overscan, count, startIndex, endIndex) => {
78281
+ return startIndex === null || endIndex === null ? [] : rangeExtractor({
78282
+ startIndex,
78283
+ endIndex,
77893
78284
  overscan,
77894
78285
  count
77895
78286
  });
77896
78287
  },
77897
78288
  {
77898
- key: process.env.NODE_ENV !== "production" && "getIndexes",
78289
+ key: process.env.NODE_ENV !== "production" && "getVirtualIndexes",
77899
78290
  debug: () => this.options.debug
77900
78291
  }
77901
78292
  );
@@ -77964,7 +78355,7 @@ class Virtualizer {
77964
78355
  this._measureElement(node2, void 0);
77965
78356
  };
77966
78357
  this.getVirtualItems = memo(
77967
- () => [this.getIndexes(), this.getMeasurements()],
78358
+ () => [this.getVirtualIndexes(), this.getMeasurements()],
77968
78359
  (indexes, measurements) => {
77969
78360
  const virtualItems = [];
77970
78361
  for (let k2 = 0, len = indexes.length; k2 < len; k2++) {
@@ -77993,20 +78384,18 @@ class Virtualizer {
77993
78384
  )]
77994
78385
  );
77995
78386
  };
77996
- this.getOffsetForAlignment = (toOffset, align) => {
78387
+ this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {
77997
78388
  const size = this.getSize();
77998
78389
  const scrollOffset = this.getScrollOffset();
77999
78390
  if (align === "auto") {
78000
- if (toOffset >= scrollOffset + size) {
78001
- align = "end";
78002
- }
78391
+ align = toOffset >= scrollOffset + size ? "end" : "start";
78003
78392
  }
78004
- if (align === "end") {
78393
+ if (align === "center") {
78394
+ toOffset += (itemSize - size) / 2;
78395
+ } else if (align === "end") {
78005
78396
  toOffset -= size;
78006
78397
  }
78007
- const scrollSizeProp = this.options.horizontal ? "scrollWidth" : "scrollHeight";
78008
- const scrollSize = this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;
78009
- const maxOffset = scrollSize - size;
78398
+ const maxOffset = this.getTotalSize() + this.options.scrollMargin - size;
78010
78399
  return Math.max(Math.min(maxOffset, toOffset), 0);
78011
78400
  };
78012
78401
  this.getOffsetForIndex = (index2, align = "auto") => {
@@ -78026,37 +78415,14 @@ class Virtualizer {
78026
78415
  return [scrollOffset, align];
78027
78416
  }
78028
78417
  }
78029
- const centerOffset = item2.start - this.options.scrollPaddingStart + (item2.size - size) / 2;
78030
- switch (align) {
78031
- case "center":
78032
- return [this.getOffsetForAlignment(centerOffset, align), align];
78033
- case "end":
78034
- return [
78035
- this.getOffsetForAlignment(
78036
- item2.end + this.options.scrollPaddingEnd,
78037
- align
78038
- ),
78039
- align
78040
- ];
78041
- default:
78042
- return [
78043
- this.getOffsetForAlignment(
78044
- item2.start - this.options.scrollPaddingStart,
78045
- align
78046
- ),
78047
- align
78048
- ];
78049
- }
78418
+ const toOffset = align === "end" ? item2.end + this.options.scrollPaddingEnd : item2.start - this.options.scrollPaddingStart;
78419
+ return [
78420
+ this.getOffsetForAlignment(toOffset, align, item2.size),
78421
+ align
78422
+ ];
78050
78423
  };
78051
78424
  this.isDynamicMode = () => this.elementsCache.size > 0;
78052
- this.cancelScrollToIndex = () => {
78053
- if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {
78054
- this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);
78055
- this.scrollToIndexTimeoutId = null;
78056
- }
78057
- };
78058
78425
  this.scrollToOffset = (toOffset, { align = "start", behavior } = {}) => {
78059
- this.cancelScrollToIndex();
78060
78426
  if (behavior === "smooth" && this.isDynamicMode()) {
78061
78427
  console.warn(
78062
78428
  "The `smooth` scroll behavior is not fully supported with dynamic size."
@@ -78068,38 +78434,52 @@ class Virtualizer {
78068
78434
  });
78069
78435
  };
78070
78436
  this.scrollToIndex = (index2, { align: initialAlign = "auto", behavior } = {}) => {
78071
- index2 = Math.max(0, Math.min(index2, this.options.count - 1));
78072
- this.cancelScrollToIndex();
78073
78437
  if (behavior === "smooth" && this.isDynamicMode()) {
78074
78438
  console.warn(
78075
78439
  "The `smooth` scroll behavior is not fully supported with dynamic size."
78076
78440
  );
78077
78441
  }
78078
- const offsetAndAlign = this.getOffsetForIndex(index2, initialAlign);
78079
- if (!offsetAndAlign) return;
78080
- const [offset2, align] = offsetAndAlign;
78081
- this._scrollToOffset(offset2, { adjustments: void 0, behavior });
78082
- if (behavior !== "smooth" && this.isDynamicMode() && this.targetWindow) {
78083
- this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
78084
- this.scrollToIndexTimeoutId = null;
78085
- const elementInDOM = this.elementsCache.has(
78086
- this.options.getItemKey(index2)
78087
- );
78088
- if (elementInDOM) {
78089
- const [latestOffset] = notUndefined(
78090
- this.getOffsetForIndex(index2, align)
78091
- );
78092
- if (!approxEqual(latestOffset, this.getScrollOffset())) {
78093
- this.scrollToIndex(index2, { align, behavior });
78094
- }
78095
- } else {
78096
- this.scrollToIndex(index2, { align, behavior });
78442
+ index2 = Math.max(0, Math.min(index2, this.options.count - 1));
78443
+ let attempts = 0;
78444
+ const maxAttempts = 10;
78445
+ const tryScroll = (currentAlign) => {
78446
+ if (!this.targetWindow) return;
78447
+ const offsetInfo = this.getOffsetForIndex(index2, currentAlign);
78448
+ if (!offsetInfo) {
78449
+ console.warn("Failed to get offset for index:", index2);
78450
+ return;
78451
+ }
78452
+ const [offset2, align] = offsetInfo;
78453
+ this._scrollToOffset(offset2, { adjustments: void 0, behavior });
78454
+ this.targetWindow.requestAnimationFrame(() => {
78455
+ const currentOffset = this.getScrollOffset();
78456
+ const afterInfo = this.getOffsetForIndex(index2, align);
78457
+ if (!afterInfo) {
78458
+ console.warn("Failed to get offset for index:", index2);
78459
+ return;
78460
+ }
78461
+ if (!approxEqual(afterInfo[0], currentOffset)) {
78462
+ scheduleRetry(align);
78097
78463
  }
78098
78464
  });
78099
- }
78465
+ };
78466
+ const scheduleRetry = (align) => {
78467
+ if (!this.targetWindow) return;
78468
+ attempts++;
78469
+ if (attempts < maxAttempts) {
78470
+ if (process.env.NODE_ENV !== "production" && this.options.debug) {
78471
+ console.info("Schedule retry", attempts, maxAttempts);
78472
+ }
78473
+ this.targetWindow.requestAnimationFrame(() => tryScroll(align));
78474
+ } else {
78475
+ console.warn(
78476
+ `Failed to scroll to index ${index2} after ${maxAttempts} attempts.`
78477
+ );
78478
+ }
78479
+ };
78480
+ tryScroll(initialAlign);
78100
78481
  };
78101
78482
  this.scrollBy = (delta, { behavior } = {}) => {
78102
- this.cancelScrollToIndex();
78103
78483
  if (behavior === "smooth" && this.isDynamicMode()) {
78104
78484
  console.warn(
78105
78485
  "The `smooth` scroll behavior is not fully supported with dynamic size."
@@ -78116,10 +78496,19 @@ class Virtualizer {
78116
78496
  let end;
78117
78497
  if (measurements.length === 0) {
78118
78498
  end = this.options.paddingStart;
78499
+ } else if (this.options.lanes === 1) {
78500
+ end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;
78119
78501
  } else {
78120
- end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(
78121
- ...measurements.slice(-this.options.lanes).map((m2) => m2.end)
78122
- );
78502
+ const endByLane = Array(this.options.lanes).fill(null);
78503
+ let endIndex = measurements.length - 1;
78504
+ while (endIndex >= 0 && endByLane.some((val) => val === null)) {
78505
+ const item2 = measurements[endIndex];
78506
+ if (endByLane[item2.lane] === null) {
78507
+ endByLane[item2.lane] = item2.end;
78508
+ }
78509
+ endIndex--;
78510
+ }
78511
+ end = Math.max(...endByLane.filter((val) => val !== null));
78123
78512
  }
78124
78513
  return Math.max(
78125
78514
  end - this.options.scrollMargin + this.options.paddingEnd,
@@ -78160,14 +78549,43 @@ const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
78160
78549
  function calculateRange({
78161
78550
  measurements,
78162
78551
  outerSize,
78163
- scrollOffset
78552
+ scrollOffset,
78553
+ lanes
78164
78554
  }) {
78165
- const count = measurements.length - 1;
78555
+ const lastIndex = measurements.length - 1;
78166
78556
  const getOffset = (index2) => measurements[index2].start;
78167
- const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);
78557
+ if (measurements.length <= lanes) {
78558
+ return {
78559
+ startIndex: 0,
78560
+ endIndex: lastIndex
78561
+ };
78562
+ }
78563
+ let startIndex = findNearestBinarySearch(
78564
+ 0,
78565
+ lastIndex,
78566
+ getOffset,
78567
+ scrollOffset
78568
+ );
78168
78569
  let endIndex = startIndex;
78169
- while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {
78170
- endIndex++;
78570
+ if (lanes === 1) {
78571
+ while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {
78572
+ endIndex++;
78573
+ }
78574
+ } else if (lanes > 1) {
78575
+ const endPerLane = Array(lanes).fill(0);
78576
+ while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {
78577
+ const item2 = measurements[endIndex];
78578
+ endPerLane[item2.lane] = item2.end;
78579
+ endIndex++;
78580
+ }
78581
+ const startPerLane = Array(lanes).fill(scrollOffset + outerSize);
78582
+ while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {
78583
+ const item2 = measurements[startIndex];
78584
+ startPerLane[item2.lane] = item2.start;
78585
+ startIndex--;
78586
+ }
78587
+ startIndex = Math.max(0, startIndex - startIndex % lanes);
78588
+ endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));
78171
78589
  }
78172
78590
  return { startIndex, endIndex };
78173
78591
  }
@@ -114436,6 +114854,20 @@ const CommentFilterMenu = ({
114436
114854
  }
114437
114855
  );
114438
114856
  };
114857
+ const parseDate = (date) => {
114858
+ if (typeof date === "string") {
114859
+ const d = new Date(date);
114860
+ if (!isValid$1(d)) return null;
114861
+ return d;
114862
+ }
114863
+ if (typeof date === "number") {
114864
+ const d = new Date(date);
114865
+ if (!isValid$1(d)) return null;
114866
+ return d;
114867
+ }
114868
+ if (isDate(date) && isValid$1(date)) return date;
114869
+ return null;
114870
+ };
114439
114871
  export {
114440
114872
  HelloModal as $,
114441
114873
  AppContainer as A,
@@ -114675,6 +115107,7 @@ export {
114675
115107
  CommentFilterMenu as db,
114676
115108
  openRemoveConfirmModal as dc,
114677
115109
  isAppMode as dd,
115110
+ parseDate as de,
114678
115111
  showSuccessNotification as e,
114679
115112
  showErrorNotification as f,
114680
115113
  useIsDarkTheme as g,