@helpwave/hightide 0.12.5 → 0.12.7

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
@@ -6998,6 +6998,125 @@ function Visibility({ children, isVisible }) {
6998
6998
  return /* @__PURE__ */ jsx3(Fragment, { children: isVisible && children });
6999
6999
  }
7000
7000
 
7001
+ // src/components/display-and-visualization/Avatar.tsx
7002
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
7003
+ import { createElement } from "react";
7004
+ var Avatar = ({
7005
+ image: initialImage,
7006
+ name,
7007
+ size = "md",
7008
+ ...props
7009
+ }) => {
7010
+ const [hasError, setHasError] = useState(false);
7011
+ const [hasLoaded, setHasLoaded] = useState(false);
7012
+ const [image, setImage] = useState(initialImage);
7013
+ const displayName = useMemo(() => {
7014
+ const maxLetters = size === "sm" ? 1 : 2;
7015
+ return (name ?? "").split(" ").filter((_, index) => index < maxLetters).map((value) => value[0]).join("").toUpperCase();
7016
+ }, [name, size]);
7017
+ const isShowingImage = !!image && (!hasError || !hasLoaded);
7018
+ useEffect(() => {
7019
+ if (initialImage?.avatarUrl !== image?.avatarUrl) {
7020
+ setHasError(false);
7021
+ setHasLoaded(false);
7022
+ }
7023
+ setImage(initialImage);
7024
+ }, [image?.avatarUrl, initialImage]);
7025
+ return /* @__PURE__ */ jsxs3(
7026
+ "div",
7027
+ {
7028
+ ...props,
7029
+ "data-name": "avatar",
7030
+ "data-size": size ?? void 0,
7031
+ children: [
7032
+ /* @__PURE__ */ jsx4(Visibility, { isVisible: isShowingImage, children: /* @__PURE__ */ jsx4(
7033
+ "img",
7034
+ {
7035
+ src: image?.avatarUrl,
7036
+ alt: image?.alt,
7037
+ "data-name": "avatar-image",
7038
+ onLoad: () => setHasLoaded(true),
7039
+ onError: () => setHasError(true),
7040
+ "data-error": hasError ? "" : void 0,
7041
+ "data-loaded": hasLoaded ? "" : void 0
7042
+ },
7043
+ image?.avatarUrl
7044
+ ) }),
7045
+ name ? displayName : /* @__PURE__ */ jsx4(UserIcon, {})
7046
+ ]
7047
+ }
7048
+ );
7049
+ };
7050
+ var AvatarGroup = ({
7051
+ avatars,
7052
+ showTotalNumber = true,
7053
+ size = "md",
7054
+ ...props
7055
+ }) => {
7056
+ const maxShownProfiles = 5;
7057
+ const displayedProfiles = avatars.length < maxShownProfiles ? avatars : avatars.slice(0, maxShownProfiles);
7058
+ const notDisplayedProfiles = avatars.length - maxShownProfiles;
7059
+ const group = /* @__PURE__ */ jsx4("div", { className: "avatar-group-container", children: displayedProfiles.map((avatar, index) => /* @__PURE__ */ createElement(
7060
+ Avatar,
7061
+ {
7062
+ ...avatar,
7063
+ key: index,
7064
+ size,
7065
+ "data-group": ""
7066
+ }
7067
+ )) });
7068
+ return /* @__PURE__ */ jsxs3(
7069
+ "div",
7070
+ {
7071
+ ...props,
7072
+ "data-name": props["data-name"] ?? "avatar-group",
7073
+ "data-size": size ?? void 0,
7074
+ children: [
7075
+ group,
7076
+ showTotalNumber && notDisplayedProfiles > 0 && /* @__PURE__ */ jsx4(
7077
+ "span",
7078
+ {
7079
+ "data-name": "avatar-group-more",
7080
+ "data-size": size,
7081
+ children: `+ ${notDisplayedProfiles}`
7082
+ }
7083
+ )
7084
+ ]
7085
+ }
7086
+ );
7087
+ };
7088
+ var AvatarWithStatus = ({
7089
+ status = "unknown",
7090
+ className,
7091
+ size = "md",
7092
+ ...avatarProps
7093
+ }) => {
7094
+ return /* @__PURE__ */ jsxs3(
7095
+ "div",
7096
+ {
7097
+ className: clsx3(className),
7098
+ "data-name": "avatar-with-status",
7099
+ "data-size": size ?? void 0,
7100
+ children: [
7101
+ /* @__PURE__ */ jsx4(Avatar, { ...avatarProps, size }),
7102
+ /* @__PURE__ */ jsx4(
7103
+ "div",
7104
+ {
7105
+ "data-name": "avatar-with-status-dot",
7106
+ "data-size": size ?? void 0,
7107
+ "data-status": status
7108
+ }
7109
+ )
7110
+ ]
7111
+ }
7112
+ );
7113
+ };
7114
+
7115
+ // src/components/display-and-visualization/Card.tsx
7116
+ import { forwardRef, useCallback } from "react";
7117
+ import clsx4 from "clsx";
7118
+ import { ChevronRight, ExternalLink } from "lucide-react";
7119
+
7001
7120
  // src/utils/array.ts
7002
7121
  var equalSizeGroups = (array, groupSize) => {
7003
7122
  if (groupSize <= 0) {
@@ -7263,130 +7382,24 @@ var PropsUtil = {
7263
7382
  mergeProps
7264
7383
  };
7265
7384
 
7266
- // src/components/display-and-visualization/Avatar.tsx
7267
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
7268
- import { createElement } from "react";
7269
- var Avatar = ({
7270
- image: initialImage,
7271
- name,
7272
- size = "md",
7273
- ...props
7274
- }) => {
7275
- const [hasError, setHasError] = useState(false);
7276
- const [hasLoaded, setHasLoaded] = useState(false);
7277
- const [image, setImage] = useState(initialImage);
7278
- const displayName = useMemo(() => {
7279
- const maxLetters = size === "sm" ? 1 : 2;
7280
- return (name ?? "").split(" ").filter((_, index) => index < maxLetters).map((value) => value[0]).join("").toUpperCase();
7281
- }, [name, size]);
7282
- const isShowingImage = !!image && (!hasError || !hasLoaded);
7283
- useEffect(() => {
7284
- if (initialImage?.avatarUrl !== image?.avatarUrl) {
7285
- setHasError(false);
7286
- setHasLoaded(false);
7287
- }
7288
- setImage(initialImage);
7289
- }, [image?.avatarUrl, initialImage]);
7290
- return /* @__PURE__ */ jsxs3(
7291
- "div",
7292
- {
7293
- ...props,
7294
- "data-name": props["data-name"] ?? "avatar",
7295
- "data-size": props["data-size"] ?? size ?? void 0,
7296
- children: [
7297
- /* @__PURE__ */ jsx4(Visibility, { isVisible: isShowingImage, children: /* @__PURE__ */ jsx4(
7298
- "img",
7299
- {
7300
- src: image?.avatarUrl,
7301
- alt: image?.alt,
7302
- "data-name": "avatar-image",
7303
- onLoad: () => setHasLoaded(true),
7304
- onError: () => setHasError(true),
7305
- "data-error": hasError ? "" : void 0,
7306
- "data-loaded": hasLoaded ? "" : void 0
7307
- },
7308
- image?.avatarUrl
7309
- ) }),
7310
- name ? displayName : /* @__PURE__ */ jsx4(UserIcon, {})
7311
- ]
7312
- }
7313
- );
7314
- };
7315
- var AvatarGroup = ({
7316
- avatars,
7317
- showTotalNumber = true,
7318
- size = "md",
7319
- ...props
7320
- }) => {
7321
- const maxShownProfiles = 5;
7322
- const displayedProfiles = avatars.length < maxShownProfiles ? avatars : avatars.slice(0, maxShownProfiles);
7323
- const notDisplayedProfiles = avatars.length - maxShownProfiles;
7324
- const group = /* @__PURE__ */ jsx4("div", { className: "avatar-group-container", children: displayedProfiles.map((avatar, index) => /* @__PURE__ */ createElement(
7325
- Avatar,
7326
- {
7327
- ...avatar,
7328
- key: index,
7329
- size,
7330
- "data-group": ""
7331
- }
7332
- )) });
7333
- return /* @__PURE__ */ jsxs3(
7334
- "div",
7335
- {
7336
- ...props,
7337
- "data-name": props["data-name"] ?? "avatar-group",
7338
- "data-size": size ?? void 0,
7339
- children: [
7340
- group,
7341
- showTotalNumber && notDisplayedProfiles > 0 && /* @__PURE__ */ jsx4(
7342
- "span",
7343
- {
7344
- "data-name": "avatar-group-more",
7345
- "data-size": size,
7346
- children: `+ ${notDisplayedProfiles}`
7347
- }
7348
- )
7349
- ]
7350
- }
7351
- );
7352
- };
7353
- var AvatarWithStatus = ({
7354
- isOnline,
7355
- className,
7356
- size = "md",
7357
- ...avatarProps
7358
- }) => {
7359
- return /* @__PURE__ */ jsxs3(
7360
- "div",
7361
- {
7362
- className: clsx3(className),
7363
- "data-name": "avatar-with-status",
7364
- "data-size": size ?? void 0,
7365
- children: [
7366
- /* @__PURE__ */ jsx4(Avatar, { ...avatarProps, size }),
7367
- /* @__PURE__ */ jsx4(
7368
- "div",
7369
- {
7370
- "data-name": "avatar-with-status-dot",
7371
- "data-size": size ?? void 0,
7372
- "data-online": PropsUtil.dataAttributes.bool(isOnline),
7373
- "aria-label": isOnline ? "Online" : "Offline"
7374
- }
7375
- )
7376
- ]
7377
- }
7378
- );
7379
- };
7380
-
7381
7385
  // src/components/display-and-visualization/Card.tsx
7382
- import { forwardRef, useCallback } from "react";
7383
- import clsx4 from "clsx";
7384
- import { ChevronRight, ExternalLink } from "lucide-react";
7385
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
7386
+ import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
7387
+ function CardHeaderContent({ title, description, leading, trailing }) {
7388
+ return /* @__PURE__ */ jsxs4(Fragment2, { children: [
7389
+ leading != null && /* @__PURE__ */ jsx5("span", { "data-name": "card-leading", children: leading }),
7390
+ /* @__PURE__ */ jsxs4("div", { "data-name": "card-content", children: [
7391
+ /* @__PURE__ */ jsx5("span", { "data-name": "card-title", children: title }),
7392
+ /* @__PURE__ */ jsx5(Visibility, { isVisible: !!description, children: /* @__PURE__ */ jsx5("span", { "data-name": "card-description", children: description }) })
7393
+ ] }),
7394
+ trailing != null && /* @__PURE__ */ jsx5("span", { "data-name": "card-trailing", children: trailing })
7395
+ ] });
7396
+ }
7386
7397
  var Card = ({
7387
7398
  title,
7388
7399
  description,
7389
7400
  size = "md",
7401
+ leading,
7402
+ trailing,
7390
7403
  children,
7391
7404
  className,
7392
7405
  ...props
@@ -7399,8 +7412,15 @@ var Card = ({
7399
7412
  "data-name": props["data-name"] ?? "card",
7400
7413
  "data-size": size,
7401
7414
  children: [
7402
- /* @__PURE__ */ jsx5("span", { "data-name": "card-title", children: title }),
7403
- /* @__PURE__ */ jsx5(Visibility, { isVisible: !!description, children: /* @__PURE__ */ jsx5("span", { "data-name": "card-description", children: description }) }),
7415
+ /* @__PURE__ */ jsx5("div", { "data-name": "card-header", children: /* @__PURE__ */ jsx5(
7416
+ CardHeaderContent,
7417
+ {
7418
+ title,
7419
+ description,
7420
+ leading,
7421
+ trailing
7422
+ }
7423
+ ) }),
7404
7424
  children
7405
7425
  ]
7406
7426
  }
@@ -7410,7 +7430,8 @@ var ActionCard = forwardRef(function ActionCard2({
7410
7430
  title,
7411
7431
  description,
7412
7432
  size = "md",
7413
- action,
7433
+ leading,
7434
+ trailing,
7414
7435
  disabled = false,
7415
7436
  children,
7416
7437
  className,
@@ -7446,13 +7467,15 @@ var ActionCard = forwardRef(function ActionCard2({
7446
7467
  role: onClick ? "button" : void 0,
7447
7468
  tabIndex: onClick && !disabled ? 0 : void 0,
7448
7469
  children: [
7449
- /* @__PURE__ */ jsxs4("div", { "data-name": "card-header", children: [
7450
- /* @__PURE__ */ jsxs4("div", { "data-name": "card-content", children: [
7451
- /* @__PURE__ */ jsx5("span", { "data-name": "card-title", children: title }),
7452
- /* @__PURE__ */ jsx5(Visibility, { isVisible: !!description, children: /* @__PURE__ */ jsx5("span", { "data-name": "card-description", children: description }) })
7453
- ] }),
7454
- action != null && /* @__PURE__ */ jsx5("div", { "data-name": "card-action", children: action })
7455
- ] }),
7470
+ /* @__PURE__ */ jsx5("div", { "data-name": "card-header", children: /* @__PURE__ */ jsx5(
7471
+ CardHeaderContent,
7472
+ {
7473
+ title,
7474
+ description,
7475
+ leading,
7476
+ trailing
7477
+ }
7478
+ ) }),
7456
7479
  children
7457
7480
  ]
7458
7481
  }
@@ -7462,6 +7485,7 @@ var NavigationCard = forwardRef(function NavigationCard2({
7462
7485
  title,
7463
7486
  description,
7464
7487
  size = "md",
7488
+ leading,
7465
7489
  href,
7466
7490
  isExternal = false,
7467
7491
  children,
@@ -7507,10 +7531,14 @@ var NavigationCard = forwardRef(function NavigationCard2({
7507
7531
  tabIndex: 0,
7508
7532
  children: [
7509
7533
  /* @__PURE__ */ jsxs4("div", { "data-name": "card-header", children: [
7510
- /* @__PURE__ */ jsxs4("div", { "data-name": "card-content", children: [
7511
- /* @__PURE__ */ jsx5("span", { "data-name": "card-title", children: title }),
7512
- /* @__PURE__ */ jsx5(Visibility, { isVisible: !!description, children: /* @__PURE__ */ jsx5("span", { "data-name": "card-description", children: description }) })
7513
- ] }),
7534
+ /* @__PURE__ */ jsx5(
7535
+ CardHeaderContent,
7536
+ {
7537
+ title,
7538
+ description,
7539
+ leading
7540
+ }
7541
+ ),
7514
7542
  /* @__PURE__ */ jsx5(
7515
7543
  "a",
7516
7544
  {
@@ -8126,7 +8154,7 @@ var ProcessModelTerminalNode = ({
8126
8154
  };
8127
8155
 
8128
8156
  // src/components/display-and-visualization/process-model/ProcessModelCanvas.tsx
8129
- import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
8157
+ import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
8130
8158
  function defaultRenderActivityIcon(node) {
8131
8159
  if (node.activityIcon === "check") {
8132
8160
  return /* @__PURE__ */ jsx13(Check, { size: 15, strokeWidth: 2, className: "process-model-activity-node-icon-svg" });
@@ -8186,7 +8214,7 @@ var ProcessModelCanvas = ({
8186
8214
  "data-base-sw": String(sw)
8187
8215
  }
8188
8216
  ),
8189
- edge.label ? /* @__PURE__ */ jsxs8(Fragment2, { children: [
8217
+ edge.label ? /* @__PURE__ */ jsxs8(Fragment3, { children: [
8190
8218
  /* @__PURE__ */ jsx13(
8191
8219
  "rect",
8192
8220
  {
@@ -12944,7 +12972,7 @@ var IconButton = forwardRef13(function IconButton2({
12944
12972
  });
12945
12973
 
12946
12974
  // src/components/layout/Carousel.tsx
12947
- import { Fragment as Fragment3, jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
12975
+ import { Fragment as Fragment4, jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
12948
12976
  var CarouselContext = createContext8(null);
12949
12977
  var useCarouselContext = () => {
12950
12978
  const context = useContext9(CarouselContext);
@@ -13249,7 +13277,7 @@ var Carousel = ({
13249
13277
  children: children[currentIndex]
13250
13278
  }
13251
13279
  ),
13252
- arrows && /* @__PURE__ */ jsxs17(Fragment3, { children: [
13280
+ arrows && /* @__PURE__ */ jsxs17(Fragment4, { children: [
13253
13281
  /* @__PURE__ */ jsx31(
13254
13282
  IconButton,
13255
13283
  {
@@ -13567,7 +13595,7 @@ function InfiniteScroll({
13567
13595
  }
13568
13596
 
13569
13597
  // src/components/layout/MarkdownInterpreter.tsx
13570
- import { Fragment as Fragment4, jsx as jsx36 } from "react/jsx-runtime";
13598
+ import { Fragment as Fragment5, jsx as jsx36 } from "react/jsx-runtime";
13571
13599
  var astNodeInserterType = ["helpwave", "newline"];
13572
13600
  var ASTNodeInterpreter = ({
13573
13601
  node,
@@ -13588,7 +13616,7 @@ var ASTNodeInterpreter = ({
13588
13616
  node: value
13589
13617
  },
13590
13618
  index
13591
- )) }) : /* @__PURE__ */ jsx36(Fragment4, { children: node.children.map((value, index) => /* @__PURE__ */ jsx36(ASTNodeInterpreter, { node: value }, index)) });
13619
+ )) }) : /* @__PURE__ */ jsx36(Fragment5, { children: node.children.map((value, index) => /* @__PURE__ */ jsx36(ASTNodeInterpreter, { node: value }, index)) });
13592
13620
  case "bold":
13593
13621
  return /* @__PURE__ */ jsx36("b", { children: node.children.map((value, index) => /* @__PURE__ */ jsx36(ASTNodeInterpreter, { node: value }, index)) });
13594
13622
  case "italic":
@@ -14113,11 +14141,11 @@ var VerticalDivider = ({
14113
14141
 
14114
14142
  // src/components/layout/app/AppPage.tsx
14115
14143
  import clsx15 from "clsx";
14116
- import { useCallback as useCallback28, useMemo as useMemo22, useRef as useRef25, useState as useState22 } from "react";
14144
+ import { useCallback as useCallback28, useMemo as useMemo22, useRef as useRef25, useState as useState23 } from "react";
14117
14145
  import { MenuIcon, X } from "lucide-react";
14118
14146
 
14119
14147
  // src/components/layout/navigation/navigation-menus/NavigationContext.tsx
14120
- import { createContext as createContext11, useCallback as useCallback26, useContext as useContext12, useEffect as useEffect28, useMemo as useMemo21, useRef as useRef23 } from "react";
14148
+ import { createContext as createContext11, useCallback as useCallback26, useContext as useContext12, useEffect as useEffect28, useMemo as useMemo21, useRef as useRef23, useState as useState22 } from "react";
14121
14149
 
14122
14150
  // src/hooks/useTreeNavigation.ts
14123
14151
  import { useCallback as useCallback25, useEffect as useEffect27, useMemo as useMemo20, useState as useState21 } from "react";
@@ -14139,6 +14167,22 @@ function buildTreeIndex(nodes) {
14139
14167
  roots: [...nodes]
14140
14168
  };
14141
14169
  }
14170
+ function resolveTreeNodePath(nodes, id) {
14171
+ if (id == null) return null;
14172
+ const entry = buildTreeIndex(nodes).byId.get(id);
14173
+ return entry?.path ?? null;
14174
+ }
14175
+ function flattenAllItems(nodes, expandedIds, path = []) {
14176
+ const result = [];
14177
+ for (const node of nodes) {
14178
+ const currentPath = [...path, node.id];
14179
+ const hasChildren = node.items.length > 0;
14180
+ const expanded = hasChildren && expandedIds.has(node.id);
14181
+ result.push({ id: node.id, path: currentPath, expanded });
14182
+ result.push(...flattenAllItems(node.items, expandedIds, currentPath));
14183
+ }
14184
+ return result;
14185
+ }
14142
14186
  function flattenVisibleItems(nodes, expandedIds, path = []) {
14143
14187
  const result = [];
14144
14188
  for (const node of nodes) {
@@ -14175,11 +14219,11 @@ function isAncestorOf(ancestorId, descendantPath) {
14175
14219
  const index = descendantPath.indexOf(ancestorId);
14176
14220
  return index >= 0 && index < descendantPath.length - 1;
14177
14221
  }
14178
- function pruneExpandedIds(expandedIds, activePath, onlyOneExpandedTree, index) {
14179
- if (!onlyOneExpandedTree || activePath == null) {
14222
+ function pruneExpandedIds(expandedIds, focusedPath, onlyOneExpandedTree, index) {
14223
+ if (!onlyOneExpandedTree || focusedPath == null) {
14180
14224
  return new Set(expandedIds);
14181
14225
  }
14182
- const pathSet = new Set(activePath);
14226
+ const pathSet = new Set(focusedPath);
14183
14227
  const pruned = /* @__PURE__ */ new Set();
14184
14228
  for (const id of expandedIds) {
14185
14229
  if (!pathSet.has(id)) continue;
@@ -14190,77 +14234,80 @@ function pruneExpandedIds(expandedIds, activePath, onlyOneExpandedTree, index) {
14190
14234
  }
14191
14235
  return pruned;
14192
14236
  }
14193
- function syncExpansionForActive(expandedIds, activePath, onlyOneExpandedTree, index) {
14237
+ function syncExpansionForFocused(expandedIds, focusedPath, onlyOneExpandedTree, index) {
14194
14238
  const next = new Set(expandedIds);
14195
- for (const id of getExpandableAncestorIds(activePath, index)) {
14239
+ for (const id of getExpandableAncestorIds(focusedPath, index)) {
14196
14240
  next.add(id);
14197
14241
  }
14198
- return pruneExpandedIds(next, activePath, onlyOneExpandedTree, index);
14242
+ return pruneExpandedIds(next, focusedPath, onlyOneExpandedTree, index);
14199
14243
  }
14200
14244
  function useTreeNavigation({
14201
14245
  nodes,
14202
- activeId: controlledActiveId,
14203
- onActiveIdChange,
14204
- initialActiveId,
14246
+ focusedId: controlledFocusedId,
14247
+ onFocusedIdChange,
14248
+ initialFocusedId,
14205
14249
  onlyOneExpandedTree = false
14206
14250
  }) {
14207
14251
  const index = useMemo20(() => buildTreeIndex(nodes), [nodes]);
14208
- const [activeId, setActiveId] = useControlledState({
14209
- value: controlledActiveId,
14210
- onValueChange: onActiveIdChange,
14211
- defaultValue: initialActiveId ?? null
14252
+ const [focusedId, setFocusedId] = useControlledState({
14253
+ value: controlledFocusedId,
14254
+ onValueChange: onFocusedIdChange,
14255
+ defaultValue: initialFocusedId ?? null
14212
14256
  });
14213
- const resolvedActiveId = useMemo20(() => {
14214
- if (activeId == null) return null;
14215
- if (index.byId.has(activeId)) return activeId;
14257
+ const resolvedFocusedId = useMemo20(() => {
14258
+ if (focusedId == null) return null;
14259
+ if (index.byId.has(focusedId)) return focusedId;
14216
14260
  return null;
14217
- }, [activeId, index]);
14261
+ }, [focusedId, index]);
14218
14262
  const [expandedIds, setExpandedIds] = useState21(() => /* @__PURE__ */ new Set());
14219
14263
  useEffect27(() => {
14220
- if (resolvedActiveId == null) return;
14221
- const entry = index.byId.get(resolvedActiveId);
14264
+ if (resolvedFocusedId == null) return;
14265
+ const entry = index.byId.get(resolvedFocusedId);
14222
14266
  if (entry == null) return;
14223
- setExpandedIds((prev) => syncExpansionForActive(prev, entry.path, onlyOneExpandedTree, index));
14224
- }, [resolvedActiveId, onlyOneExpandedTree, index]);
14225
- const items = useMemo20(() => {
14267
+ setExpandedIds((prev) => syncExpansionForFocused(prev, entry.path, onlyOneExpandedTree, index));
14268
+ }, [resolvedFocusedId, onlyOneExpandedTree, index]);
14269
+ const visibleItems = useMemo20(() => {
14226
14270
  return flattenVisibleItems(nodes, expandedIds);
14227
14271
  }, [nodes, expandedIds]);
14228
- const activeItem = useMemo20(() => {
14229
- if (resolvedActiveId == null) return null;
14230
- return items.find((item) => item.id === resolvedActiveId) ?? null;
14231
- }, [items, resolvedActiveId]);
14272
+ const allItems = useMemo20(() => {
14273
+ return flattenAllItems(nodes, expandedIds);
14274
+ }, [nodes, expandedIds]);
14275
+ const focusedItem = useMemo20(() => {
14276
+ if (resolvedFocusedId == null) return null;
14277
+ return allItems.find((item) => item.id === resolvedFocusedId) ?? null;
14278
+ }, [allItems, resolvedFocusedId]);
14232
14279
  const navigateTo = useCallback25((id) => {
14233
14280
  const entry = index.byId.get(id);
14234
14281
  if (entry == null) {
14235
14282
  console.warn(`Attempted to navigate to node ${id} that does not exist`);
14236
14283
  return;
14237
14284
  }
14238
- setActiveId(id);
14285
+ setFocusedId(id);
14239
14286
  setExpandedIds((prev) => {
14240
- const next2 = syncExpansionForActive(prev, entry.path, onlyOneExpandedTree, index);
14287
+ const next2 = syncExpansionForFocused(prev, entry.path, onlyOneExpandedTree, index);
14241
14288
  return next2;
14242
14289
  });
14243
- }, [index, onlyOneExpandedTree, setActiveId]);
14290
+ }, [index, onlyOneExpandedTree, setFocusedId]);
14244
14291
  const expand = useCallback25((id, options) => {
14245
14292
  const entry = index.byId.get(id);
14246
14293
  if (entry == null || entry.node.items.length === 0) return;
14247
14294
  if (options?.isFocusing) {
14248
- setActiveId(id);
14295
+ setFocusedId(id);
14249
14296
  }
14250
14297
  setExpandedIds((prev) => {
14251
14298
  const next2 = new Set(prev);
14252
14299
  next2.add(id);
14253
- const activePath = options?.isFocusing ? entry.path : resolvedActiveId != null ? index.byId.get(resolvedActiveId)?.path ?? null : null;
14254
- return pruneExpandedIds(next2, activePath, onlyOneExpandedTree, index);
14300
+ const focusedPath = options?.isFocusing ? entry.path : resolvedFocusedId != null ? index.byId.get(resolvedFocusedId)?.path ?? null : null;
14301
+ return pruneExpandedIds(next2, focusedPath, onlyOneExpandedTree, index);
14255
14302
  });
14256
- }, [index, onlyOneExpandedTree, resolvedActiveId, setActiveId]);
14303
+ }, [index, onlyOneExpandedTree, resolvedFocusedId, setFocusedId]);
14257
14304
  const collapse = useCallback25((id, options) => {
14258
- if (!options?.isFocusing && resolvedActiveId != null) {
14259
- const activeEntry = index.byId.get(resolvedActiveId);
14260
- if (activeEntry != null && isAncestorOf(id, activeEntry.path)) return;
14305
+ if (!options?.isFocusing && resolvedFocusedId != null) {
14306
+ const focusedEntry = index.byId.get(resolvedFocusedId);
14307
+ if (focusedEntry != null && isAncestorOf(id, focusedEntry.path)) return;
14261
14308
  }
14262
14309
  if (options?.isFocusing) {
14263
- setActiveId(id);
14310
+ setFocusedId(id);
14264
14311
  }
14265
14312
  const descendantIds = getDescendantIds(index, id);
14266
14313
  setExpandedIds((prev) => {
@@ -14271,12 +14318,12 @@ function useTreeNavigation({
14271
14318
  }
14272
14319
  return next2;
14273
14320
  });
14274
- }, [index, resolvedActiveId, setActiveId]);
14321
+ }, [index, resolvedFocusedId, setFocusedId]);
14275
14322
  const toggleExpansion = useCallback25((id, options) => {
14276
14323
  const entry = index.byId.get(id);
14277
14324
  if (entry == null || entry.node.items.length === 0) return;
14278
14325
  if (options?.isFocusing) {
14279
- setActiveId(id);
14326
+ setFocusedId(id);
14280
14327
  setExpandedIds((prev) => {
14281
14328
  if (prev.has(id)) {
14282
14329
  const next3 = new Set(prev);
@@ -14301,44 +14348,45 @@ function useTreeNavigation({
14301
14348
  } else {
14302
14349
  expand(id);
14303
14350
  }
14304
- }, [index, expandedIds, expand, collapse, onlyOneExpandedTree, setActiveId]);
14351
+ }, [index, expandedIds, expand, collapse, onlyOneExpandedTree, setFocusedId]);
14305
14352
  const next = useCallback25(() => {
14306
- if (items.length === 0) return;
14307
- if (resolvedActiveId == null) {
14308
- navigateTo(items[0].id);
14353
+ if (visibleItems.length === 0) return;
14354
+ if (resolvedFocusedId == null) {
14355
+ navigateTo(visibleItems[0].id);
14309
14356
  return;
14310
14357
  }
14311
- const currentIndex = items.findIndex((item) => item.id === resolvedActiveId);
14358
+ const currentIndex = visibleItems.findIndex((item) => item.id === resolvedFocusedId);
14312
14359
  const startIndex = currentIndex < 0 ? 0 : currentIndex;
14313
- if (startIndex < items.length - 1) {
14314
- navigateTo(items[startIndex + 1].id);
14360
+ if (startIndex < visibleItems.length - 1) {
14361
+ navigateTo(visibleItems[startIndex + 1].id);
14315
14362
  return;
14316
14363
  }
14317
- }, [items, resolvedActiveId, navigateTo]);
14364
+ }, [visibleItems, resolvedFocusedId, navigateTo]);
14318
14365
  const previous = useCallback25(() => {
14319
- if (items.length === 0) return;
14320
- if (resolvedActiveId == null) {
14321
- navigateTo(items[items.length - 1].id);
14366
+ if (visibleItems.length === 0) return;
14367
+ if (resolvedFocusedId == null) {
14368
+ navigateTo(visibleItems[visibleItems.length - 1].id);
14322
14369
  return;
14323
14370
  }
14324
- const currentIndex = items.findIndex((item) => item.id === resolvedActiveId);
14325
- const startIndex = currentIndex < 0 ? items.length - 1 : currentIndex;
14371
+ const currentIndex = visibleItems.findIndex((item) => item.id === resolvedFocusedId);
14372
+ const startIndex = currentIndex < 0 ? visibleItems.length - 1 : currentIndex;
14326
14373
  if (startIndex > 0) {
14327
- navigateTo(items[startIndex - 1].id);
14374
+ navigateTo(visibleItems[startIndex - 1].id);
14328
14375
  return;
14329
14376
  }
14330
- }, [items, resolvedActiveId, navigateTo]);
14377
+ }, [visibleItems, resolvedFocusedId, navigateTo]);
14331
14378
  const first = useCallback25(() => {
14332
- if (items.length === 0) return;
14333
- navigateTo(items[0].id);
14334
- }, [items, navigateTo]);
14379
+ if (visibleItems.length === 0) return;
14380
+ navigateTo(visibleItems[0].id);
14381
+ }, [visibleItems, navigateTo]);
14335
14382
  const last = useCallback25(() => {
14336
- if (items.length === 0) return;
14337
- navigateTo(items[items.length - 1].id);
14338
- }, [items, navigateTo]);
14383
+ if (visibleItems.length === 0) return;
14384
+ navigateTo(visibleItems[visibleItems.length - 1].id);
14385
+ }, [visibleItems, navigateTo]);
14339
14386
  return useMemo20(() => ({
14340
- items,
14341
- activeItem,
14387
+ visibleItems,
14388
+ allItems,
14389
+ focusedItem,
14342
14390
  navigateTo,
14343
14391
  expand,
14344
14392
  collapse,
@@ -14347,7 +14395,7 @@ function useTreeNavigation({
14347
14395
  previous,
14348
14396
  first,
14349
14397
  last
14350
- }), [items, activeItem, navigateTo, expand, collapse, toggleExpansion, next, previous, first, last]);
14398
+ }), [visibleItems, allItems, focusedItem, navigateTo, expand, collapse, toggleExpansion, next, previous, first, last]);
14351
14399
  }
14352
14400
 
14353
14401
  // src/components/layout/navigation/navigation-menus/NavigationContext.tsx
@@ -14355,22 +14403,41 @@ import { jsx as jsx40 } from "react/jsx-runtime";
14355
14403
  var NavigationContext = createContext11(null);
14356
14404
  function NavigationProvider({
14357
14405
  children,
14358
- ...options
14406
+ activeId = null,
14407
+ ...treeOptions
14359
14408
  }) {
14360
- const navigation = useTreeNavigation(options);
14409
+ const navigation = useTreeNavigation({
14410
+ ...treeOptions,
14411
+ initialFocusedId: treeOptions.initialFocusedId ?? activeId ?? treeOptions.nodes[0]?.id ?? null
14412
+ });
14361
14413
  const itemRefs = useRef23(/* @__PURE__ */ new Map());
14362
- const focusedId = navigation.activeItem?.id ?? navigation.items[0]?.id ?? null;
14414
+ const [hasNavigatedToActiveId, setHasNavigatedToActiveId] = useState22(false);
14415
+ useEffect28(() => {
14416
+ if (activeId == null || hasNavigatedToActiveId) return;
14417
+ const navigationItem = navigation.allItems.find((item) => item.id === activeId);
14418
+ if (navigationItem == null) return;
14419
+ navigation.navigateTo(activeId);
14420
+ setHasNavigatedToActiveId(true);
14421
+ }, [activeId, navigation, navigation.navigateTo, navigation.allItems, hasNavigatedToActiveId]);
14422
+ const focusedId = useMemo21(() => {
14423
+ return navigation.focusedItem?.id ?? navigation.visibleItems[0]?.id ?? null;
14424
+ }, [navigation.focusedItem, navigation.visibleItems]);
14425
+ const activePath = useMemo21(() => {
14426
+ return resolveTreeNodePath(treeOptions.nodes, activeId);
14427
+ }, [treeOptions.nodes, activeId]);
14363
14428
  const itemStateById = useMemo21(() => {
14364
14429
  const map = /* @__PURE__ */ new Map();
14365
- for (const item of navigation.items) {
14430
+ for (const item of navigation.allItems) {
14366
14431
  map.set(item.id, {
14367
14432
  expanded: item.expanded,
14368
14433
  isFocused: focusedId === item.id,
14434
+ isActive: activeId === item.id,
14435
+ isOnActivePath: activePath?.includes(item.id) ?? false,
14369
14436
  path: item.path
14370
14437
  });
14371
14438
  }
14372
14439
  return map;
14373
- }, [navigation.items, focusedId]);
14440
+ }, [navigation.allItems, focusedId, activeId, activePath]);
14374
14441
  const getItemState = useCallback26((id) => {
14375
14442
  return itemStateById.get(id) ?? null;
14376
14443
  }, [itemStateById]);
@@ -14386,9 +14453,12 @@ function NavigationProvider({
14386
14453
  itemRefs.current.get(focusedId)?.focus();
14387
14454
  }, [focusedId]);
14388
14455
  const value = useMemo21(() => ({
14389
- activeItem: navigation.activeItem,
14456
+ focusedItem: navigation.focusedItem,
14390
14457
  focusedId,
14391
- items: navigation.items,
14458
+ activeId,
14459
+ activePath,
14460
+ visibleItems: navigation.visibleItems,
14461
+ allItems: navigation.allItems,
14392
14462
  getItemState,
14393
14463
  navigateTo: navigation.navigateTo,
14394
14464
  expand: navigation.expand,
@@ -14400,8 +14470,9 @@ function NavigationProvider({
14400
14470
  toggleExpansion: navigation.toggleExpansion,
14401
14471
  registerItemRef
14402
14472
  }), [
14403
- navigation.activeItem,
14404
- navigation.items,
14473
+ navigation.focusedItem,
14474
+ navigation.visibleItems,
14475
+ navigation.allItems,
14405
14476
  navigation.navigateTo,
14406
14477
  navigation.expand,
14407
14478
  navigation.collapse,
@@ -14411,6 +14482,8 @@ function NavigationProvider({
14411
14482
  navigation.last,
14412
14483
  navigation.toggleExpansion,
14413
14484
  focusedId,
14485
+ activeId,
14486
+ activePath,
14414
14487
  getItemState,
14415
14488
  registerItemRef
14416
14489
  ]);
@@ -14543,32 +14616,19 @@ function VerticalNavigationItem({
14543
14616
  const handleHeaderActivate = useCallback27(() => {
14544
14617
  toggleExpansion(id, { isFocusing: true });
14545
14618
  }, [id, toggleExpansion]);
14546
- const handleLeafActivate = useCallback27((event) => {
14547
- if (event.target.closest('[data-name="vertical-navigation-item-link"]')) return;
14619
+ const handleLeafActivate = useCallback27(() => {
14548
14620
  navigateTo(id);
14549
- }, [id, navigateTo]);
14550
- const labelContent = url == null ? label : external ? /* @__PURE__ */ jsxs23(
14551
- "a",
14552
- {
14553
- href: url,
14554
- target: "_blank",
14555
- rel: "noopener noreferrer",
14556
- "data-name": "vertical-navigation-item-link",
14557
- tabIndex: -1,
14558
- children: [
14559
- label,
14560
- /* @__PURE__ */ jsx41(ExternalLink2, { className: "vertical-navigation-item-link-external-icon" })
14561
- ]
14562
- }
14563
- ) : /* @__PURE__ */ jsx41(
14564
- "a",
14565
- {
14566
- href: url,
14567
- "data-name": "vertical-navigation-item-link",
14568
- tabIndex: -1,
14569
- children: label
14621
+ if (url == null) return;
14622
+ if (external) {
14623
+ window.open(url, "_blank", "noopener,noreferrer");
14624
+ return;
14570
14625
  }
14571
- );
14626
+ window.location.assign(url);
14627
+ }, [external, id, navigateTo, url]);
14628
+ const labelContent = url == null ? label : external ? /* @__PURE__ */ jsxs23("span", { "data-name": "vertical-navigation-item-link", children: [
14629
+ label,
14630
+ /* @__PURE__ */ jsx41(ExternalLink2, { className: "vertical-navigation-item-link-external-icon" })
14631
+ ] }) : /* @__PURE__ */ jsx41("span", { "data-name": "vertical-navigation-item-link", children: label });
14572
14632
  if (!hasChildren) {
14573
14633
  return /* @__PURE__ */ jsx41(
14574
14634
  "li",
@@ -14646,12 +14706,12 @@ function VerticalNavigationTree({
14646
14706
  }
14647
14707
 
14648
14708
  // src/components/layout/app/AppPage.tsx
14649
- import { Fragment as Fragment5, jsx as jsx43, jsxs as jsxs24 } from "react/jsx-runtime";
14709
+ import { Fragment as Fragment6, jsx as jsx43, jsxs as jsxs24 } from "react/jsx-runtime";
14650
14710
  var AppSidebar = ({ isOpen = false, onClose, children, ...props }) => {
14651
14711
  const translation = useHightideTranslation();
14652
14712
  const { zIndex } = useOverlayRegistry({ isActive: isOpen });
14653
14713
  const ref = useRef25(null);
14654
- return /* @__PURE__ */ jsxs24(Fragment5, { children: [
14714
+ return /* @__PURE__ */ jsxs24(Fragment6, { children: [
14655
14715
  isOpen && /* @__PURE__ */ jsx43(
14656
14716
  "div",
14657
14717
  {
@@ -14706,22 +14766,49 @@ var AppPageSidebarWithNavigation = ({
14706
14766
  footer,
14707
14767
  navigationItems,
14708
14768
  contentOverwrite,
14709
- initialActiveId,
14769
+ initialFocusedId,
14770
+ focusedId,
14771
+ onFocusedIdChange,
14772
+ activeId,
14710
14773
  ...props
14711
14774
  }) => {
14712
14775
  return /* @__PURE__ */ jsx43(AppSidebar, { ...props, children: /* @__PURE__ */ jsxs24("div", { className: "app-page-sidebar-with-navigation", children: [
14713
14776
  header && /* @__PURE__ */ jsx43("div", { className: "app-page-sidebar-with-navigation-header", children: header }),
14714
- navigationItems && !contentOverwrite && /* @__PURE__ */ jsx43("div", { className: "app-page-sidebar-with-navigation-scroll", children: /* @__PURE__ */ jsx43(VerticalNavigationTree, { items: navigationItems, initialActiveId }) }),
14777
+ navigationItems && !contentOverwrite && /* @__PURE__ */ jsx43("div", { className: "app-page-sidebar-with-navigation-scroll", children: /* @__PURE__ */ jsx43(
14778
+ VerticalNavigationTree,
14779
+ {
14780
+ items: navigationItems,
14781
+ initialFocusedId,
14782
+ focusedId,
14783
+ onFocusedIdChange,
14784
+ activeId
14785
+ }
14786
+ ) }),
14715
14787
  contentOverwrite && /* @__PURE__ */ jsx43("div", { className: "app-page-sidebar-with-navigation-scroll", children: contentOverwrite }),
14716
14788
  footer && /* @__PURE__ */ jsx43("div", { className: "app-page-sidebar-with-navigation-footer", children: footer })
14717
14789
  ] }) });
14718
14790
  };
14791
+ function findActiveIdByUrl(items, activeUrl) {
14792
+ for (const item of items) {
14793
+ if (item.url === activeUrl) return item.id;
14794
+ if (item.items != null) {
14795
+ const found = findActiveIdByUrl(item.items, activeUrl);
14796
+ if (found != null) return found;
14797
+ }
14798
+ }
14799
+ return null;
14800
+ }
14719
14801
  var AppPage = ({ children, headerActions, sidebarProps, ...props }) => {
14720
14802
  const translation = useHightideTranslation();
14721
- const [isSidebarOpen, setIsSidebarOpen] = useState22(false);
14803
+ const [isSidebarOpen, setIsSidebarOpen] = useState23(false);
14804
+ const resolvedActiveId = useMemo22(() => {
14805
+ if (sidebarProps.activeId !== void 0) return sidebarProps.activeId;
14806
+ if (sidebarProps.activeUrl == null || sidebarProps.items == null) return null;
14807
+ return findActiveIdByUrl(sidebarProps.items, sidebarProps.activeUrl);
14808
+ }, [sidebarProps.activeId, sidebarProps.activeUrl, sidebarProps.items]);
14722
14809
  const toNavigationItems = useCallback28((items) => {
14723
14810
  return items?.map((item) => {
14724
- const isActive = sidebarProps.activeUrl === item.url && !!sidebarProps.activeUrl || item.id === sidebarProps.initialActiveId;
14811
+ const isActive = item.id === resolvedActiveId;
14725
14812
  return {
14726
14813
  id: item.id,
14727
14814
  label: /* @__PURE__ */ jsxs24("span", { className: "app-page-navigation-item-label", "data-active-page": isActive ? "" : void 0, children: [
@@ -14733,25 +14820,10 @@ var AppPage = ({ children, headerActions, sidebarProps, ...props }) => {
14733
14820
  items: toNavigationItems(item.items)
14734
14821
  };
14735
14822
  }) ?? void 0;
14736
- }, [sidebarProps.activeUrl, sidebarProps.initialActiveId]);
14823
+ }, [resolvedActiveId]);
14737
14824
  const navigationItems = useMemo22(() => toNavigationItems(
14738
14825
  sidebarProps.items
14739
14826
  ), [sidebarProps.items, toNavigationItems]);
14740
- const initialActiveId = useMemo22(() => {
14741
- if (sidebarProps.initialActiveId) return sidebarProps.initialActiveId;
14742
- if (!navigationItems) return void 0;
14743
- const findActiveId = (items) => {
14744
- for (const item of items) {
14745
- if (item.url === sidebarProps.activeUrl) return item.id;
14746
- if (item.items) {
14747
- const found = findActiveId(item.items);
14748
- if (found) return found;
14749
- }
14750
- }
14751
- return void 0;
14752
- };
14753
- return findActiveId(navigationItems);
14754
- }, [navigationItems, sidebarProps.activeUrl, sidebarProps.initialActiveId]);
14755
14827
  return /* @__PURE__ */ jsxs24(
14756
14828
  "div",
14757
14829
  {
@@ -14768,7 +14840,10 @@ var AppPage = ({ children, headerActions, sidebarProps, ...props }) => {
14768
14840
  footer: sidebarProps.footer,
14769
14841
  navigationItems,
14770
14842
  contentOverwrite: sidebarProps.contentOverwrite,
14771
- initialActiveId
14843
+ initialFocusedId: sidebarProps.initialFocusedId,
14844
+ focusedId: sidebarProps.focusedId,
14845
+ onFocusedIdChange: sidebarProps.onFocusedIdChange,
14846
+ activeId: resolvedActiveId
14772
14847
  }
14773
14848
  ),
14774
14849
  /* @__PURE__ */ jsxs24("div", { "data-name": "app-page-content", children: [
@@ -15107,7 +15182,7 @@ import { MonitorCog, MoonIcon, SunIcon } from "lucide-react";
15107
15182
  import clsx18 from "clsx";
15108
15183
 
15109
15184
  // src/global-contexts/ThemeContext.tsx
15110
- import { createContext as createContext13, useCallback as useCallback30, useContext as useContext15, useEffect as useEffect29, useMemo as useMemo25, useState as useState23 } from "react";
15185
+ import { createContext as createContext13, useCallback as useCallback30, useContext as useContext15, useEffect as useEffect29, useMemo as useMemo25, useState as useState24 } from "react";
15111
15186
  import { jsx as jsx50 } from "react/jsx-runtime";
15112
15187
  var themes = ["light", "dark", "system"];
15113
15188
  var ThemeUtil = {
@@ -15121,7 +15196,7 @@ var ThemeProvider = ({ children, theme, initialTheme }) => {
15121
15196
  deleteValue: deleteStoredTheme
15122
15197
  } = useStorage({ key: "theme", defaultValue: "system" });
15123
15198
  const { config } = useHightideConfig();
15124
- const [themePreference, setThemePreference] = useState23("system");
15199
+ const [themePreference, setThemePreference] = useState24("system");
15125
15200
  const resolvedTheme = useMemo25(() => {
15126
15201
  if (theme && theme !== "system") {
15127
15202
  return theme;
@@ -15213,7 +15288,6 @@ var ThemeSelect = ({ ...props }) => {
15213
15288
  {
15214
15289
  value: theme,
15215
15290
  onEditComplete: (value) => {
15216
- console.log("onEditComplete", value);
15217
15291
  props.onEditComplete?.(value);
15218
15292
  setTheme(value);
15219
15293
  },
@@ -15459,7 +15533,7 @@ var ErrorComponent = ({
15459
15533
  };
15460
15534
 
15461
15535
  // src/components/layout/loading/LoadingAndErrorComponent.tsx
15462
- import { useState as useState24 } from "react";
15536
+ import { useState as useState25 } from "react";
15463
15537
 
15464
15538
  // src/components/layout/loading/LoadingContainer.tsx
15465
15539
  import { clsx as clsx20 } from "clsx";
@@ -15470,7 +15544,7 @@ var LoadingContainer = ({ className }) => {
15470
15544
 
15471
15545
  // src/components/layout/loading/LoadingAndErrorComponent.tsx
15472
15546
  import { clsx as clsx21 } from "clsx";
15473
- import { Fragment as Fragment6, jsx as jsx58 } from "react/jsx-runtime";
15547
+ import { Fragment as Fragment7, jsx as jsx58 } from "react/jsx-runtime";
15474
15548
  var LoadingAndErrorComponent = ({
15475
15549
  children,
15476
15550
  isLoading = false,
@@ -15480,8 +15554,8 @@ var LoadingAndErrorComponent = ({
15480
15554
  minimumLoadingDuration = 200,
15481
15555
  className
15482
15556
  }) => {
15483
- const [isInMinimumLoading, setIsInMinimumLoading] = useState24(false);
15484
- const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState24(false);
15557
+ const [isInMinimumLoading, setIsInMinimumLoading] = useState25(false);
15558
+ const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState25(false);
15485
15559
  if (minimumLoadingDuration && !isInMinimumLoading && !hasUsedMinimumLoading) {
15486
15560
  setIsInMinimumLoading(true);
15487
15561
  setTimeout(() => {
@@ -15490,12 +15564,12 @@ var LoadingAndErrorComponent = ({
15490
15564
  }, minimumLoadingDuration);
15491
15565
  }
15492
15566
  if (isLoading || minimumLoadingDuration && isInMinimumLoading) {
15493
- return /* @__PURE__ */ jsx58(Fragment6, { children: loadingComponent ?? /* @__PURE__ */ jsx58(LoadingContainer, { className }) });
15567
+ return /* @__PURE__ */ jsx58(Fragment7, { children: loadingComponent ?? /* @__PURE__ */ jsx58(LoadingContainer, { className }) });
15494
15568
  }
15495
15569
  if (hasError) {
15496
- return /* @__PURE__ */ jsx58(Fragment6, { children: errorComponent ?? /* @__PURE__ */ jsx58(LoadingContainer, { className: clsx21("bg-negative", className) }) });
15570
+ return /* @__PURE__ */ jsx58(Fragment7, { children: errorComponent ?? /* @__PURE__ */ jsx58(LoadingContainer, { className: clsx21("bg-negative", className) }) });
15497
15571
  }
15498
- return /* @__PURE__ */ jsx58(Fragment6, { children });
15572
+ return /* @__PURE__ */ jsx58(Fragment7, { children });
15499
15573
  };
15500
15574
 
15501
15575
  // src/components/layout/loading/LoadingAnimation.tsx
@@ -15546,9 +15620,9 @@ var BreadCrumbs = ({ crumbs }) => {
15546
15620
  var import_link2 = __toESM(require_link2());
15547
15621
  import { Menu as MenuIcon2, XIcon } from "lucide-react";
15548
15622
  import { useEffect as useEffect30 } from "react";
15549
- import { useCallback as useCallback31, useId as useId14, useRef as useRef28, useState as useState25 } from "react";
15623
+ import { useCallback as useCallback31, useId as useId14, useRef as useRef28, useState as useState26 } from "react";
15550
15624
  import clsx23 from "clsx";
15551
- import { Fragment as Fragment7, jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
15625
+ import { Fragment as Fragment8, jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
15552
15626
  function isSubItem(item) {
15553
15627
  return "items" in item && Array.isArray(item.items);
15554
15628
  }
@@ -15558,7 +15632,7 @@ var NavigationItemWithSubItem = ({
15558
15632
  horizontalAlignment = "center",
15559
15633
  ...options
15560
15634
  }) => {
15561
- const [isOpen, setOpen] = useState25(false);
15635
+ const [isOpen, setOpen] = useState26(false);
15562
15636
  const containerRef = useRef28(null);
15563
15637
  const triggerRef = useRef28(null);
15564
15638
  const id = useId14();
@@ -15576,7 +15650,7 @@ var NavigationItemWithSubItem = ({
15576
15650
  }
15577
15651
  }, []);
15578
15652
  const { zIndex } = useOverlayRegistry();
15579
- return /* @__PURE__ */ jsxs34(Fragment7, { children: [
15653
+ return /* @__PURE__ */ jsxs34(Fragment8, { children: [
15580
15654
  /* @__PURE__ */ jsxs34(
15581
15655
  "button",
15582
15656
  {
@@ -15635,7 +15709,7 @@ var NavigationItemList = ({ items, ...restProps }) => {
15635
15709
  };
15636
15710
  var Navigation = ({ ...props }) => {
15637
15711
  const translation = useHightideTranslation();
15638
- const [isMobileOpen, setIsMobileOpen] = useState25(false);
15712
+ const [isMobileOpen, setIsMobileOpen] = useState26(false);
15639
15713
  const id = useId14();
15640
15714
  const menuRef = useRef28(null);
15641
15715
  useEffect30(() => {
@@ -15653,7 +15727,7 @@ var Navigation = ({ ...props }) => {
15653
15727
  /* @__PURE__ */ jsx61(
15654
15728
  IconButton,
15655
15729
  {
15656
- tooltip: translation("openNavigation"),
15730
+ tooltip: translation("menu"),
15657
15731
  coloringStyle: "text",
15658
15732
  color: "neutral",
15659
15733
  onClick: () => setIsMobileOpen(true),
@@ -15706,7 +15780,7 @@ var Navigation = ({ ...props }) => {
15706
15780
  // src/components/layout/navigation/Pagination.tsx
15707
15781
  import { ChevronFirst, ChevronLast, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight3 } from "lucide-react";
15708
15782
  import clsx24 from "clsx";
15709
- import { useEffect as useEffect31, useState as useState26 } from "react";
15783
+ import { useEffect as useEffect31, useState as useState27 } from "react";
15710
15784
  import { jsx as jsx62, jsxs as jsxs35 } from "react/jsx-runtime";
15711
15785
  var Pagination = ({
15712
15786
  pageIndex,
@@ -15715,7 +15789,7 @@ var Pagination = ({
15715
15789
  ...props
15716
15790
  }) => {
15717
15791
  const translation = useHightideTranslation();
15718
- const [value, setValue] = useState26((pageIndex + 1).toString());
15792
+ const [value, setValue] = useState27((pageIndex + 1).toString());
15719
15793
  const noPages = pageCount === 0;
15720
15794
  const onFirstPage = pageIndex === 0 && !noPages;
15721
15795
  const onLastPage = pageIndex === pageCount - 1;
@@ -15942,7 +16016,7 @@ function PopUpOpener({ children }) {
15942
16016
  }
15943
16017
 
15944
16018
  // src/components/layout/popup/PopUpRoot.tsx
15945
- import { useId as useId15, useMemo as useMemo28, useState as useState27 } from "react";
16019
+ import { useId as useId15, useMemo as useMemo28, useState as useState28 } from "react";
15946
16020
  import { jsx as jsx64 } from "react/jsx-runtime";
15947
16021
  function PopUpRoot({
15948
16022
  children,
@@ -15959,7 +16033,7 @@ function PopUpRoot({
15959
16033
  onValueChange: onIsOpenChange,
15960
16034
  defaultValue: initialIsOpen
15961
16035
  });
15962
- const [triggerRef, setTriggerRef] = useState27(null);
16036
+ const [triggerRef, setTriggerRef] = useState28(null);
15963
16037
  const popUpId = useMemo28(() => popUpIdOverwrite ?? `pop-up-${generatedPopUpId}`, [popUpIdOverwrite, generatedPopUpId]);
15964
16038
  const triggerId = useMemo28(() => triggerIdOverwrite ?? `pop-up-trigger-${generatedTriggerId}`, [triggerIdOverwrite, generatedTriggerId]);
15965
16039
  const contextValue = useMemo28(() => ({
@@ -16149,7 +16223,7 @@ var FillerCell = ({ ...props }) => {
16149
16223
  };
16150
16224
 
16151
16225
  // src/components/layout/table/TableProvider.tsx
16152
- import { useCallback as useCallback33, useEffect as useEffect33, useLayoutEffect as useLayoutEffect6, useMemo as useMemo29, useRef as useRef30, useState as useState28 } from "react";
16226
+ import { useCallback as useCallback33, useEffect as useEffect33, useLayoutEffect as useLayoutEffect6, useMemo as useMemo29, useRef as useRef30, useState as useState29 } from "react";
16153
16227
 
16154
16228
  // src/components/layout/table/TableContext.tsx
16155
16229
  import { createContext as createContext15, useContext as useContext17 } from "react";
@@ -17236,9 +17310,9 @@ var TableProvider = ({
17236
17310
  }) => {
17237
17311
  const onRowClickStable = useEventCallbackStabilizer(onRowClick);
17238
17312
  const onFillerRowClickStable = useEventCallbackStabilizer(onFillerRowClick);
17239
- const [registeredColumns, setRegisteredColumns] = useState28([]);
17313
+ const [registeredColumns, setRegisteredColumns] = useState29([]);
17240
17314
  const containerRef = useRef30(null);
17241
- const [, setTableState] = useState28({
17315
+ const [, setTableState] = useState29({
17242
17316
  columnSizing: {},
17243
17317
  columnOrder: [],
17244
17318
  columnFilters: [],
@@ -17263,7 +17337,7 @@ var TableProvider = ({
17263
17337
  pageSize: 10
17264
17338
  }
17265
17339
  });
17266
- const [targetWidth, setTargetWidth] = useState28(void 0);
17340
+ const [targetWidth, setTargetWidth] = useState29(void 0);
17267
17341
  useLayoutEffect6(() => {
17268
17342
  const width = containerRef.current?.getBoundingClientRect().width;
17269
17343
  setTargetWidth(width !== void 0 ? Math.floor(width) : void 0);
@@ -17525,15 +17599,15 @@ var TableSortButton = ({
17525
17599
 
17526
17600
  // src/components/layout/table/TableFilterButton.tsx
17527
17601
  import { FilterIcon } from "lucide-react";
17528
- import { useEffect as useEffect46, useId as useId20, useMemo as useMemo39, useRef as useRef39, useState as useState37 } from "react";
17602
+ import { useEffect as useEffect46, useId as useId20, useMemo as useMemo39, useRef as useRef39, useState as useState38 } from "react";
17529
17603
  import { flexRender as flexRender2 } from "@tanstack/react-table";
17530
17604
 
17531
17605
  // src/components/user-interaction/data/FilterPopUp.tsx
17532
17606
  import { Check as Check3, TrashIcon } from "lucide-react";
17533
- import { forwardRef as forwardRef25, useEffect as useEffect45, useId as useId19, useMemo as useMemo38, useState as useState36 } from "react";
17607
+ import { forwardRef as forwardRef25, useEffect as useEffect45, useId as useId19, useMemo as useMemo38, useState as useState37 } from "react";
17534
17608
 
17535
17609
  // src/components/user-interaction/input/DateTimeInput.tsx
17536
- import { forwardRef as forwardRef20, useCallback as useCallback36, useEffect as useEffect39, useId as useId16, useImperativeHandle as useImperativeHandle11, useMemo as useMemo34, useRef as useRef35, useState as useState33 } from "react";
17610
+ import { forwardRef as forwardRef20, useCallback as useCallback36, useEffect as useEffect39, useId as useId16, useImperativeHandle as useImperativeHandle11, useMemo as useMemo34, useRef as useRef35, useState as useState34 } from "react";
17537
17611
  import { CalendarIcon, X as X4 } from "lucide-react";
17538
17612
  import clsx31 from "clsx";
17539
17613
 
@@ -17721,7 +17795,7 @@ var TimePicker = ({
17721
17795
  };
17722
17796
 
17723
17797
  // src/components/user-interaction/date/DatePicker.tsx
17724
- import { useState as useState30 } from "react";
17798
+ import { useState as useState31 } from "react";
17725
17799
  import { ArrowDown, ArrowUp, Calendar, ChevronDown as ChevronDown4 } from "lucide-react";
17726
17800
  import clsx29 from "clsx";
17727
17801
 
@@ -17847,7 +17921,7 @@ var DayPicker = ({
17847
17921
  };
17848
17922
 
17849
17923
  // src/components/user-interaction/date/YearMonthPicker.tsx
17850
- import { memo, useCallback as useCallback35, useEffect as useEffect36, useMemo as useMemo32, useRef as useRef33, useState as useState29 } from "react";
17924
+ import { memo, useCallback as useCallback35, useEffect as useEffect36, useMemo as useMemo32, useRef as useRef33, useState as useState30 } from "react";
17851
17925
  import clsx28 from "clsx";
17852
17926
  import { jsx as jsx73, jsxs as jsxs42 } from "react/jsx-runtime";
17853
17927
  var YearRow = memo(function YearRow2({
@@ -17860,7 +17934,7 @@ var YearRow = memo(function YearRow2({
17860
17934
  }) {
17861
17935
  const ref = useRef33(null);
17862
17936
  const isSelectedYear = selectedMonthIndex !== void 0;
17863
- const [isExpanded, setIsExpanded] = useState29(false);
17937
+ const [isExpanded, setIsExpanded] = useState30(false);
17864
17938
  useEffect36(() => {
17865
17939
  if (isSelectedYear) {
17866
17940
  ref.current?.scrollIntoView({ behavior: "smooth", block: "nearest" });
@@ -17990,15 +18064,15 @@ var DatePicker = ({
17990
18064
  onValueChange,
17991
18065
  defaultValue: initialValue
17992
18066
  });
17993
- const [displayedMonth, setDisplayedMonth] = useState30(new Date(value.getFullYear(), value.getMonth(), 1));
17994
- const [displayMode, setDisplayMode] = useState30(initialDisplay);
18067
+ const [displayedMonth, setDisplayedMonth] = useState31(new Date(value.getFullYear(), value.getMonth(), 1));
18068
+ const [displayMode, setDisplayMode] = useState31(initialDisplay);
17995
18069
  return /* @__PURE__ */ jsxs43("div", { className: clsx29("flex-col-3", className), children: [
17996
18070
  /* @__PURE__ */ jsxs43("div", { className: "flex-row-2 items-center justify-between", children: [
17997
18071
  /* @__PURE__ */ jsxs43(
17998
18072
  Button,
17999
18073
  {
18000
18074
  size: "sm",
18001
- coloringStyle: "text",
18075
+ color: "neutral",
18002
18076
  className: clsx29("flex-row-1 items-center cursor-pointer select-none", {
18003
18077
  "text-disabled": displayMode !== "day"
18004
18078
  }),
@@ -18153,8 +18227,8 @@ var DateTimePicker = ({
18153
18227
  };
18154
18228
 
18155
18229
  // src/components/user-interaction/date/DateTimePickerDialog.tsx
18156
- import { useEffect as useEffect37, useState as useState31 } from "react";
18157
- import { Fragment as Fragment8, jsx as jsx76, jsxs as jsxs45 } from "react/jsx-runtime";
18230
+ import { useEffect as useEffect37, useState as useState32 } from "react";
18231
+ import { Fragment as Fragment9, jsx as jsx76, jsxs as jsxs45 } from "react/jsx-runtime";
18158
18232
  var DateTimePickerDialog = ({
18159
18233
  initialValue = null,
18160
18234
  value,
@@ -18181,11 +18255,11 @@ var DateTimePickerDialog = ({
18181
18255
  onValueChange,
18182
18256
  defaultValue: initialValue
18183
18257
  });
18184
- const [pickerState, setPickerState] = useState31(state ?? /* @__PURE__ */ new Date());
18258
+ const [pickerState, setPickerState] = useState32(state ?? /* @__PURE__ */ new Date());
18185
18259
  useEffect37(() => {
18186
18260
  setPickerState(state ?? /* @__PURE__ */ new Date());
18187
18261
  }, [state]);
18188
- return /* @__PURE__ */ jsxs45(Fragment8, { children: [
18262
+ return /* @__PURE__ */ jsxs45(Fragment9, { children: [
18189
18263
  /* @__PURE__ */ jsx76("div", { className: "flex-row-2 justify-center w-full py-1", children: /* @__PURE__ */ jsx76(
18190
18264
  "span",
18191
18265
  {
@@ -18256,7 +18330,7 @@ var DateTimePickerDialog = ({
18256
18330
  };
18257
18331
 
18258
18332
  // src/components/user-interaction/input/DateTimeField.tsx
18259
- import { forwardRef as forwardRef19, useEffect as useEffect38, useLayoutEffect as useLayoutEffect7, useMemo as useMemo33, useRef as useRef34, useState as useState32 } from "react";
18333
+ import { forwardRef as forwardRef19, useEffect as useEffect38, useLayoutEffect as useLayoutEffect7, useMemo as useMemo33, useRef as useRef34, useState as useState33 } from "react";
18260
18334
  import clsx30 from "clsx";
18261
18335
 
18262
18336
  // src/components/user-interaction/input/dateTimeSegments.ts
@@ -18563,11 +18637,11 @@ var DateTimeField = forwardRef19(function DateTimeField2({
18563
18637
  [locale, mode, precision, is24Hour]
18564
18638
  );
18565
18639
  const editableTypes = useMemo33(() => editableTypesOf(layout), [layout]);
18566
- const [editState, setEditState] = useState32(() => ({
18640
+ const [editState, setEditState] = useState33(() => ({
18567
18641
  values: value ? decomposeDate(value, layout, is24Hour) : {},
18568
18642
  buffer: null
18569
18643
  }));
18570
- const [focusedType, setFocusedType] = useState32(null);
18644
+ const [focusedType, setFocusedType] = useState33(null);
18571
18645
  const editStateRef = useRef34(editState);
18572
18646
  editStateRef.current = editState;
18573
18647
  const segmentRefs = useRef34(/* @__PURE__ */ new Map());
@@ -18813,13 +18887,13 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18813
18887
  const translation = useHightideTranslation();
18814
18888
  const { timeZone: contextTimeZone } = useLocale();
18815
18889
  const timeZone = timeZoneOverride ?? contextTimeZone;
18816
- const [isOpen, setIsOpen] = useState33(false);
18890
+ const [isOpen, setIsOpen] = useState34(false);
18817
18891
  const [state, setState] = useControlledState({
18818
18892
  value,
18819
18893
  onValueChange,
18820
18894
  defaultValue: initialValue
18821
18895
  });
18822
- const [dialogValue, setDialogValue] = useState33(state);
18896
+ const [dialogValue, setDialogValue] = useState34(state);
18823
18897
  const changeOpenWrapper = useCallback36((isOpen2) => {
18824
18898
  onDialogOpeningChange?.(isOpen2);
18825
18899
  setIsOpen(isOpen2);
@@ -18848,6 +18922,9 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18848
18922
  const focusField = () => {
18849
18923
  fieldRef.current?.querySelector('[data-name="date-time-segment"]')?.focus();
18850
18924
  };
18925
+ const hasClear = !required && allowClear && !readOnly && !disabled && state !== null;
18926
+ const hasTimePicker = !readOnly;
18927
+ const hasActions = hasClear || hasTimePicker || actions.length > 0;
18851
18928
  return /* @__PURE__ */ jsxs46("div", { ...containerProps, className: clsx31("relative w-full", containerProps?.className), children: [
18852
18929
  /* @__PURE__ */ jsxs46(
18853
18930
  "div",
@@ -18865,6 +18942,7 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18865
18942
  className: clsx31("cursor-text", props.className),
18866
18943
  "data-name": props["data-name"] ?? "date-time-input",
18867
18944
  "data-value": PropsUtil.dataAttributes.bool(!!state),
18945
+ "data-has-actions": PropsUtil.dataAttributes.bool(hasActions),
18868
18946
  ...PropsUtil.dataAttributes.interactionStates({ disabled, readOnly, invalid, required }),
18869
18947
  ...PropsUtil.aria.interactionStates({ disabled, readOnly, invalid, required }, props),
18870
18948
  children: [
@@ -18883,13 +18961,12 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18883
18961
  onValueChange: (next) => setState(fromZoned(next)),
18884
18962
  onEditComplete: (next) => onEditComplete?.(fromZoned(next)),
18885
18963
  "aria-labelledby": props["aria-labelledby"],
18886
- "aria-describedby": props["aria-describedby"],
18887
- className: "grow"
18964
+ "aria-describedby": props["aria-describedby"]
18888
18965
  }
18889
18966
  ),
18890
18967
  /* @__PURE__ */ jsxs46("div", { className: "flex-row-1 items-center", children: [
18891
18968
  actions,
18892
- /* @__PURE__ */ jsx78(Visibility, { isVisible: !required && allowClear && !readOnly && !disabled && state !== null, children: /* @__PURE__ */ jsx78(
18969
+ /* @__PURE__ */ jsx78(Visibility, { isVisible: hasClear, children: /* @__PURE__ */ jsx78(
18893
18970
  IconButton,
18894
18971
  {
18895
18972
  tooltip: translation("clearValue"),
@@ -18903,7 +18980,7 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18903
18980
  children: /* @__PURE__ */ jsx78(X4, { className: "size-5" })
18904
18981
  }
18905
18982
  ) }),
18906
- /* @__PURE__ */ jsx78(Visibility, { isVisible: !readOnly, children: /* @__PURE__ */ jsx78(
18983
+ /* @__PURE__ */ jsx78(Visibility, { isVisible: hasTimePicker, children: /* @__PURE__ */ jsx78(
18907
18984
  IconButton,
18908
18985
  {
18909
18986
  tooltip: translation("sDateTimeSelect", { datetimeMode: mode }),
@@ -18977,7 +19054,7 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18977
19054
  import { forwardRef as forwardRef24 } from "react";
18978
19055
 
18979
19056
  // src/components/user-interaction/MultiSelect/MultiSelectRoot.tsx
18980
- import { useCallback as useCallback39, useEffect as useEffect41, useId as useId17, useMemo as useMemo37, useState as useState35 } from "react";
19057
+ import { useCallback as useCallback39, useEffect as useEffect41, useId as useId17, useMemo as useMemo37, useState as useState36 } from "react";
18981
19058
 
18982
19059
  // src/components/user-interaction/MultiSelect/MultiSelectContext.tsx
18983
19060
  import { createContext as createContext16, useContext as useContext18 } from "react";
@@ -18993,7 +19070,7 @@ import {
18993
19070
  useCallback as useCallback38,
18994
19071
  useEffect as useEffect40,
18995
19072
  useMemo as useMemo36,
18996
- useState as useState34
19073
+ useState as useState35
18997
19074
  } from "react";
18998
19075
 
18999
19076
  // src/hooks/useMultiSelection.ts
@@ -19046,8 +19123,8 @@ function useMultiSelect({
19046
19123
  initialIsOpen = false,
19047
19124
  typeAheadResetMs = 500
19048
19125
  }) {
19049
- const [isOpen, setIsOpen] = useState34(initialIsOpen);
19050
- const [searchQuery, setSearchQuery] = useState34("");
19126
+ const [isOpen, setIsOpen] = useState35(initialIsOpen);
19127
+ const [searchQuery, setSearchQuery] = useState35("");
19051
19128
  const selectionOptions = useMemo36(
19052
19129
  () => options.map((o) => ({ id: o.id, disabled: o.disabled })),
19053
19130
  [options]
@@ -19221,10 +19298,10 @@ function MultiSelectRoot({
19221
19298
  readOnly = false,
19222
19299
  required = false
19223
19300
  }) {
19224
- const [triggerRef, setTriggerRef] = useState35(null);
19225
- const [options, setOptions] = useState35([]);
19301
+ const [triggerRef, setTriggerRef] = useState36(null);
19302
+ const [options, setOptions] = useState36([]);
19226
19303
  const generatedId = useId17();
19227
- const [ids, setIds] = useState35({
19304
+ const [ids, setIds] = useState36({
19228
19305
  trigger: "multi-select-" + generatedId,
19229
19306
  content: "multi-select-content-" + generatedId,
19230
19307
  listbox: "multi-select-listbox-" + generatedId,
@@ -19961,8 +20038,8 @@ var DateFilterPopUp = forwardRef25(function DateFilterPopUp2({
19961
20038
  return suggestion;
19962
20039
  }, [value]);
19963
20040
  const parameter = value?.parameter ?? {};
19964
- const [temporaryMinDateValue, setTemporaryMinDateValue] = useState36(null);
19965
- const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState36(null);
20041
+ const [temporaryMinDateValue, setTemporaryMinDateValue] = useState37(null);
20042
+ const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState37(null);
19966
20043
  const needsRangeInput = operator === "between" || operator === "notBetween";
19967
20044
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
19968
20045
  return /* @__PURE__ */ jsxs52(
@@ -20103,8 +20180,8 @@ var DatetimeFilterPopUp = forwardRef25(function DatetimeFilterPopUp2({
20103
20180
  return suggestion;
20104
20181
  }, [value]);
20105
20182
  const parameter = value?.parameter ?? {};
20106
- const [temporaryMinDateValue, setTemporaryMinDateValue] = useState36(null);
20107
- const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState36(null);
20183
+ const [temporaryMinDateValue, setTemporaryMinDateValue] = useState37(null);
20184
+ const [temporaryMaxDateValue, setTemporaryMaxDateValue] = useState37(null);
20108
20185
  const needsRangeInput = operator === "between" || operator === "notBetween";
20109
20186
  const needsParameterInput = operator !== "isUndefined" && operator !== "isNotUndefined";
20110
20187
  return /* @__PURE__ */ jsxs52(
@@ -20426,7 +20503,7 @@ var FilterPopUp = forwardRef25(function FilterPopUp2({
20426
20503
  });
20427
20504
 
20428
20505
  // src/components/layout/table/TableFilterButton.tsx
20429
- import { Fragment as Fragment9, jsx as jsx85, jsxs as jsxs53 } from "react/jsx-runtime";
20506
+ import { Fragment as Fragment10, jsx as jsx85, jsxs as jsxs53 } from "react/jsx-runtime";
20430
20507
  var TableFilterButton = ({
20431
20508
  filterType,
20432
20509
  header
@@ -20434,11 +20511,11 @@ var TableFilterButton = ({
20434
20511
  const translation = useHightideTranslation();
20435
20512
  const column = header.column;
20436
20513
  const columnFilterValue = column.getFilterValue();
20437
- const [filterValue, setFilterValue] = useState37(columnFilterValue);
20514
+ const [filterValue, setFilterValue] = useState38(columnFilterValue);
20438
20515
  const hasFilter = !!filterValue;
20439
20516
  const anchorRef = useRef39(null);
20440
20517
  const containerRef = useRef39(null);
20441
- const [isOpen, setIsOpen] = useState37(false);
20518
+ const [isOpen, setIsOpen] = useState38(false);
20442
20519
  const id = useId20();
20443
20520
  const ids = useMemo39(() => ({
20444
20521
  button: `table-filter-button-${id}`,
@@ -20453,7 +20530,7 @@ var TableFilterButton = ({
20453
20530
  if (isTagsFilter && !hasTagsMetaData) {
20454
20531
  return null;
20455
20532
  }
20456
- return /* @__PURE__ */ jsxs53(Fragment9, { children: [
20533
+ return /* @__PURE__ */ jsxs53(Fragment10, { children: [
20457
20534
  /* @__PURE__ */ jsxs53(
20458
20535
  IconButton,
20459
20536
  {
@@ -20567,7 +20644,7 @@ var DataTypeUtils = {
20567
20644
  };
20568
20645
 
20569
20646
  // src/components/layout/table/TableHeader.tsx
20570
- import { Fragment as Fragment10, jsx as jsx87, jsxs as jsxs54 } from "react/jsx-runtime";
20647
+ import { Fragment as Fragment11, jsx as jsx87, jsxs as jsxs54 } from "react/jsx-runtime";
20571
20648
  var TableHeader = ({ isSticky = false }) => {
20572
20649
  const { table } = useTableStateWithoutSizingContext();
20573
20650
  const handleResizeMove = useCallback41((e) => {
@@ -20612,7 +20689,7 @@ var TableHeader = ({ isSticky = false }) => {
20612
20689
  window.removeEventListener("pointerup", handleResizeEnd);
20613
20690
  };
20614
20691
  }, [handleResizeEnd, handleResizeMove, table]);
20615
- return /* @__PURE__ */ jsxs54(Fragment10, { children: [
20692
+ return /* @__PURE__ */ jsxs54(Fragment11, { children: [
20616
20693
  table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx87(TableStateContext.Consumer, { children: ({ sizeVars }) => /* @__PURE__ */ jsx87("colgroup", { style: sizeVars, children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx87(
20617
20694
  "col",
20618
20695
  {
@@ -20633,7 +20710,7 @@ var TableHeader = ({ isSticky = false }) => {
20633
20710
  "data-name": "table-header-cell",
20634
20711
  className: clsx35("group/table-header-cell", header.column.columnDef.meta?.className),
20635
20712
  children: [
20636
- /* @__PURE__ */ jsx87(Visibility, { isVisible: !header.isPlaceholder, children: /* @__PURE__ */ jsxs54("div", { className: "flex-row-1 items-center truncate", children: [
20713
+ /* @__PURE__ */ jsx87(Visibility, { isVisible: !header.isPlaceholder, children: /* @__PURE__ */ jsxs54("div", { className: "table-header-cell-content", children: [
20637
20714
  /* @__PURE__ */ jsx87(Visibility, { isVisible: header.column.getCanSort(), children: /* @__PURE__ */ jsx87(
20638
20715
  TableSortButton,
20639
20716
  {
@@ -20703,7 +20780,7 @@ var TableHeader = ({ isSticky = false }) => {
20703
20780
  };
20704
20781
 
20705
20782
  // src/components/layout/table/VirtualizedTableBody.tsx
20706
- import { useEffect as useEffect48, useRef as useRef40, useState as useState38 } from "react";
20783
+ import { useEffect as useEffect48, useRef as useRef40, useState as useState39 } from "react";
20707
20784
  import { flexRender as flexRender4 } from "@tanstack/react-table";
20708
20785
  import { useVirtualizer, useWindowVirtualizer } from "@tanstack/react-virtual";
20709
20786
  import clsx36 from "clsx";
@@ -20717,8 +20794,8 @@ var VirtualizedTableBody = ({
20717
20794
  const { containerRef } = useTableContainerContext();
20718
20795
  const rows = table.getRowModel().rows;
20719
20796
  const bodyRef = useRef40(null);
20720
- const [isMounted, setIsMounted] = useState38(false);
20721
- const [scrollMargin, setScrollMargin] = useState38(0);
20797
+ const [isMounted, setIsMounted] = useState39(false);
20798
+ const [scrollMargin, setScrollMargin] = useState39(0);
20722
20799
  useEffect48(() => setIsMounted(true), []);
20723
20800
  useEffect48(() => {
20724
20801
  if (scroll !== "window") return;
@@ -21032,7 +21109,7 @@ var TableWithSelection = ({
21032
21109
  };
21033
21110
 
21034
21111
  // src/components/layout/table/TableColumn.tsx
21035
- import { memo as memo2, useEffect as useEffect49, useMemo as useMemo41, useState as useState39 } from "react";
21112
+ import { memo as memo2, useEffect as useEffect49, useMemo as useMemo41, useState as useState40 } from "react";
21036
21113
  import { jsx as jsx94 } from "react/jsx-runtime";
21037
21114
  var TableColumnComponent = ({
21038
21115
  filterType,
@@ -21044,7 +21121,7 @@ var TableColumnComponent = ({
21044
21121
  "TableColumn: For filterType === multiTags or singleTag, filterData.tags must be set.",
21045
21122
  (filterType === "multiTags" || filterType === "singleTag") && props.meta?.filterData?.tags === void 0
21046
21123
  );
21047
- const [column] = useState39({
21124
+ const [column] = useState40({
21048
21125
  ...props,
21049
21126
  filterFn
21050
21127
  });
@@ -21070,7 +21147,7 @@ var TableColumn = (props) => {
21070
21147
  // src/components/layout/table/TableColumnSwitcher.tsx
21071
21148
  import { useMemo as useMemo42, useRef as useRef41, useId as useId21 } from "react";
21072
21149
  import { ChevronUp as ChevronUp3, ChevronDown as ChevronDown5, ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight6, Eye, EyeOff, Pin, PinOff, Columns3Cog } from "lucide-react";
21073
- import { Fragment as Fragment11, jsx as jsx95, jsxs as jsxs60 } from "react/jsx-runtime";
21150
+ import { Fragment as Fragment12, jsx as jsx95, jsxs as jsxs60 } from "react/jsx-runtime";
21074
21151
  var TableColumnSwitcherPopUp = ({ ...props }) => {
21075
21152
  const { table } = useTableStateWithoutSizingContext();
21076
21153
  const translation = useHightideTranslation();
@@ -21233,7 +21310,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
21233
21310
  const canMoveUp = index > 0 && !isPinned && !prevIsPinned;
21234
21311
  const canMoveDown = index < columns.length - 1 && !isPinned && !nextIsPinned;
21235
21312
  return /* @__PURE__ */ jsxs60("div", { className: "flex-row-2 items-center justify-between gap-2 w-full", children: [
21236
- /* @__PURE__ */ jsx95("div", { className: "flex-row-2 gap-1", children: isPinned ? /* @__PURE__ */ jsxs60(Fragment11, { children: [
21313
+ /* @__PURE__ */ jsx95("div", { className: "flex-row-2 gap-1", children: isPinned ? /* @__PURE__ */ jsxs60(Fragment12, { children: [
21237
21314
  /* @__PURE__ */ jsx95(
21238
21315
  IconButton,
21239
21316
  {
@@ -21258,7 +21335,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
21258
21335
  children: /* @__PURE__ */ jsx95(ChevronRight6, { className: "size-4" })
21259
21336
  }
21260
21337
  )
21261
- ] }) : /* @__PURE__ */ jsxs60(Fragment11, { children: [
21338
+ ] }) : /* @__PURE__ */ jsxs60(Fragment12, { children: [
21262
21339
  /* @__PURE__ */ jsx95(
21263
21340
  IconButton,
21264
21341
  {
@@ -21285,7 +21362,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
21285
21362
  )
21286
21363
  ] }) }),
21287
21364
  /* @__PURE__ */ jsx95("div", { className: "flex-1 typography-label-lg", children: getColumnHeader(columnId) }),
21288
- /* @__PURE__ */ jsxs60(Fragment11, { children: [
21365
+ /* @__PURE__ */ jsxs60(Fragment12, { children: [
21289
21366
  /* @__PURE__ */ jsx95(Visibility, { isVisible: enableHiding, children: /* @__PURE__ */ jsx95(
21290
21367
  IconButton,
21291
21368
  {
@@ -21346,7 +21423,7 @@ var TableColumnSwitcher = ({ buttonProps, ...props }) => {
21346
21423
  import { forwardRef as forwardRef28 } from "react";
21347
21424
 
21348
21425
  // src/components/user-interaction/Combobox/ComboboxRoot.tsx
21349
- import { useCallback as useCallback45, useId as useId22, useMemo as useMemo44, useState as useState40 } from "react";
21426
+ import { useCallback as useCallback45, useId as useId22, useMemo as useMemo44, useState as useState41 } from "react";
21350
21427
 
21351
21428
  // src/components/user-interaction/Combobox/ComboboxContext.tsx
21352
21429
  import { createContext as createContext18, useContext as useContext20 } from "react";
@@ -21432,10 +21509,10 @@ function ComboboxRoot({
21432
21509
  onItemClick,
21433
21510
  ...hookProps
21434
21511
  }) {
21435
- const [options, setOptions] = useState40([]);
21436
- const [listRef, setListRef] = useState40(null);
21512
+ const [options, setOptions] = useState41([]);
21513
+ const [listRef, setListRef] = useState41(null);
21437
21514
  const generatedId = useId22();
21438
- const [ids, setIds] = useState40({
21515
+ const [ids, setIds] = useState41({
21439
21516
  trigger: `combobox-${generatedId}`,
21440
21517
  listbox: `combobox-${generatedId}-listbox`
21441
21518
  });
@@ -21743,7 +21820,7 @@ var ComboboxOption = forwardRef29(function ComboboxOption2({
21743
21820
  ComboboxOption.displayName = "ComboboxOption";
21744
21821
 
21745
21822
  // src/components/user-interaction/CopyToClipboardWrapper.tsx
21746
- import { useState as useState41 } from "react";
21823
+ import { useState as useState42 } from "react";
21747
21824
  import { clsx as clsx41 } from "clsx";
21748
21825
 
21749
21826
  // src/utils/writeToClipboard.ts
@@ -21766,7 +21843,7 @@ var CopyToClipboardWrapper = ({
21766
21843
  ...props
21767
21844
  }) => {
21768
21845
  const translation = useHightideTranslation();
21769
- const [isShowingConfirmation, setIsShowingConfirmation] = useState41(false);
21846
+ const [isShowingConfirmation, setIsShowingConfirmation] = useState42(false);
21770
21847
  return /* @__PURE__ */ jsxs63(
21771
21848
  TooltipRoot,
21772
21849
  {
@@ -21815,9 +21892,9 @@ var CopyToClipboardWrapper = ({
21815
21892
  };
21816
21893
 
21817
21894
  // src/components/user-interaction/Menu.tsx
21818
- import { useCallback as useCallback47, useRef as useRef44, useState as useState42 } from "react";
21895
+ import { useCallback as useCallback47, useRef as useRef44, useState as useState43 } from "react";
21819
21896
  import clsx42 from "clsx";
21820
- import { Fragment as Fragment12, jsx as jsx102, jsxs as jsxs64 } from "react/jsx-runtime";
21897
+ import { Fragment as Fragment13, jsx as jsx102, jsxs as jsxs64 } from "react/jsx-runtime";
21821
21898
  var MenuItem = ({
21822
21899
  children,
21823
21900
  onClick,
@@ -21842,14 +21919,14 @@ var Menu = ({
21842
21919
  ...props
21843
21920
  }) => {
21844
21921
  const triggerRef = useRef44(null);
21845
- const [isOpen, setIsOpen] = useState42(false);
21922
+ const [isOpen, setIsOpen] = useState43(false);
21846
21923
  const bag = {
21847
21924
  isOpen,
21848
21925
  close: () => setIsOpen(false),
21849
21926
  toggleOpen: () => setIsOpen((prevState) => !prevState),
21850
21927
  disabled
21851
21928
  };
21852
- return /* @__PURE__ */ jsxs64(Fragment12, { children: [
21929
+ return /* @__PURE__ */ jsxs64(Fragment13, { children: [
21853
21930
  trigger(bag, useCallback47((el) => triggerRef.current = el, [])),
21854
21931
  /* @__PURE__ */ jsx102(
21855
21932
  PopUp,
@@ -21985,7 +22062,7 @@ var MultiSelectChipDisplay = forwardRef30(
21985
22062
  );
21986
22063
 
21987
22064
  // src/components/user-interaction/ScrollPicker.tsx
21988
- import { useCallback as useCallback48, useEffect as useEffect53, useState as useState43 } from "react";
22065
+ import { useCallback as useCallback48, useEffect as useEffect53, useState as useState44 } from "react";
21989
22066
  import clsx43 from "clsx";
21990
22067
  import { jsx as jsx104, jsxs as jsxs66 } from "react/jsx-runtime";
21991
22068
  var up = 1;
@@ -22006,7 +22083,7 @@ var ScrollPicker = ({
22006
22083
  transition,
22007
22084
  items,
22008
22085
  lastTimeStamp
22009
- }, setAnimation] = useState43({
22086
+ }, setAnimation] = useState44({
22010
22087
  targetIndex: selectedIndex,
22011
22088
  currentIndex: disabled ? selectedIndex : 0,
22012
22089
  velocity: 0,
@@ -22327,9 +22404,9 @@ var TextareaWithHeadline = ({
22327
22404
  };
22328
22405
 
22329
22406
  // src/components/user-interaction/data/FilterList.tsx
22330
- import { useMemo as useMemo45, useState as useState44 } from "react";
22407
+ import { useMemo as useMemo45, useState as useState45 } from "react";
22331
22408
  import { PlusIcon } from "lucide-react";
22332
- import { Fragment as Fragment13, jsx as jsx107, jsxs as jsxs68 } from "react/jsx-runtime";
22409
+ import { Fragment as Fragment14, jsx as jsx107, jsxs as jsxs68 } from "react/jsx-runtime";
22333
22410
  var FilterList = ({ value, onValueChange, availableItems }) => {
22334
22411
  const translation = useHightideTranslation();
22335
22412
  const filterValueToLabel = useFilterValueTranslation();
@@ -22339,7 +22416,7 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
22339
22416
  acc[item.id] = item;
22340
22417
  return acc;
22341
22418
  }, {}), [availableItems]);
22342
- const [editState, setEditState] = useState44(void 0);
22419
+ const [editState, setEditState] = useState45(void 0);
22343
22420
  const valueWithEditState = useMemo45(() => {
22344
22421
  let foundEditValue = false;
22345
22422
  for (const item of value) {
@@ -22404,7 +22481,7 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
22404
22481
  }
22405
22482
  },
22406
22483
  children: [
22407
- /* @__PURE__ */ jsx107(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ jsx107(Button, { ...props, onClick: toggleOpen, color: "primary", coloringStyle: "tonal-outline", size: "sm", children: item.activeLabelBuilder ? item.activeLabelBuilder(columnFilter.value) : /* @__PURE__ */ jsxs68(Fragment13, { children: [
22484
+ /* @__PURE__ */ jsx107(PopUpOpener, { children: ({ toggleOpen, props }) => /* @__PURE__ */ jsx107(Button, { ...props, onClick: toggleOpen, color: "primary", coloringStyle: "tonal-outline", size: "sm", children: item.activeLabelBuilder ? item.activeLabelBuilder(columnFilter.value) : /* @__PURE__ */ jsxs68(Fragment14, { children: [
22408
22485
  /* @__PURE__ */ jsx107("span", { className: "font-bold", children: item.label }),
22409
22486
  filterValueToLabel(columnFilter.value, { tags: item.tags })
22410
22487
  ] }) }) }),
@@ -22637,7 +22714,7 @@ var TimeDisplay = ({
22637
22714
  };
22638
22715
 
22639
22716
  // src/components/user-interaction/input/FlexibleDateTimeInput.tsx
22640
- import { forwardRef as forwardRef32, useState as useState45 } from "react";
22717
+ import { forwardRef as forwardRef32, useState as useState46 } from "react";
22641
22718
  import { ClockFading, ClockPlus } from "lucide-react";
22642
22719
  import { jsx as jsx110 } from "react/jsx-runtime";
22643
22720
  var FlexibleDateTimeInput = forwardRef32(function FlexibleDateTimeInput2({
@@ -22662,7 +22739,7 @@ var FlexibleDateTimeInput = forwardRef32(function FlexibleDateTimeInput2({
22662
22739
  const zoned = (date) => DateUtils.toZonedDate(date, timeZone);
22663
22740
  const unzoned = (date) => DateUtils.fromZonedDate(date, timeZone);
22664
22741
  const hasFixedTime = (date) => DateUtils.sameTime(zoned(date), fixedTime, true, true);
22665
- const [mode, setMode] = useState45(() => {
22742
+ const [mode, setMode] = useState46(() => {
22666
22743
  if (value && !hasFixedTime(value)) {
22667
22744
  return "dateTime";
22668
22745
  }
@@ -22708,7 +22785,7 @@ var FlexibleDateTimeInput = forwardRef32(function FlexibleDateTimeInput2({
22708
22785
 
22709
22786
  // src/components/user-interaction/input/InsideLabelInput.tsx
22710
22787
  import { useId as useId25 } from "react";
22711
- import { forwardRef as forwardRef33, useState as useState46 } from "react";
22788
+ import { forwardRef as forwardRef33, useState as useState47 } from "react";
22712
22789
  import clsx46 from "clsx";
22713
22790
  import { jsx as jsx111, jsxs as jsxs70 } from "react/jsx-runtime";
22714
22791
  var InsideLabelInput = forwardRef33(function InsideLabelInput2({
@@ -22724,7 +22801,7 @@ var InsideLabelInput = forwardRef33(function InsideLabelInput2({
22724
22801
  onValueChange,
22725
22802
  defaultValue: initialValue
22726
22803
  });
22727
- const [isFocused, setIsFocused] = useState46(false);
22804
+ const [isFocused, setIsFocused] = useState47(false);
22728
22805
  const generatedId = useId25();
22729
22806
  const id = customId ?? generatedId;
22730
22807
  return /* @__PURE__ */ jsxs70("div", { className: clsx46("relative"), children: [
@@ -22814,7 +22891,7 @@ var SearchBar = ({
22814
22891
  };
22815
22892
 
22816
22893
  // src/components/user-interaction/input/ToggleableInput.tsx
22817
- import { forwardRef as forwardRef34, useEffect as useEffect54, useImperativeHandle as useImperativeHandle15, useRef as useRef46, useState as useState47 } from "react";
22894
+ import { forwardRef as forwardRef34, useEffect as useEffect54, useImperativeHandle as useImperativeHandle15, useRef as useRef46, useState as useState48 } from "react";
22818
22895
  import { Pencil } from "lucide-react";
22819
22896
  import clsx48 from "clsx";
22820
22897
  import { jsx as jsx113, jsxs as jsxs72 } from "react/jsx-runtime";
@@ -22831,7 +22908,7 @@ var ToggleableInput = forwardRef34(function ToggleableInput2({
22831
22908
  onValueChange,
22832
22909
  defaultValue: initialValue
22833
22910
  });
22834
- const [isEditing, setIsEditing] = useState47(initialState !== "display");
22911
+ const [isEditing, setIsEditing] = useState48(initialState !== "display");
22835
22912
  const innerRef = useRef46(null);
22836
22913
  useImperativeHandle15(forwardedRef, () => innerRef.current);
22837
22914
  useEffect54(() => {
@@ -22877,7 +22954,7 @@ import { Check as Check6 } from "lucide-react";
22877
22954
  // src/components/user-interaction/properties/PropertyBase.tsx
22878
22955
  import clsx49 from "clsx";
22879
22956
  import { AlertTriangle, Trash, X as X5 } from "lucide-react";
22880
- import { Fragment as Fragment14, jsx as jsx114, jsxs as jsxs73 } from "react/jsx-runtime";
22957
+ import { Fragment as Fragment15, jsx as jsx114, jsxs as jsxs73 } from "react/jsx-runtime";
22881
22958
  var PropertyBase = ({
22882
22959
  name,
22883
22960
  children,
@@ -22896,7 +22973,7 @@ var PropertyBase = ({
22896
22973
  const isClearEnabled = allowClear && !readOnly;
22897
22974
  const isRemoveEnabled = allowRemove && !readOnly;
22898
22975
  const showActionsContainer = isClearEnabled || isRemoveEnabled;
22899
- const renderActionButtons = () => /* @__PURE__ */ jsxs73(Fragment14, { children: [
22976
+ const renderActionButtons = () => /* @__PURE__ */ jsxs73(Fragment15, { children: [
22900
22977
  isClearEnabled && /* @__PURE__ */ jsx114(
22901
22978
  IconButton,
22902
22979
  {
@@ -23057,6 +23134,7 @@ var DateProperty = ({
23057
23134
  onValueChange,
23058
23135
  onEditComplete,
23059
23136
  "data-name": "property-input",
23137
+ className: "flex-row-4 pr-0",
23060
23138
  "data-invalid": PropsUtil.dataAttributes.bool(invalid)
23061
23139
  }
23062
23140
  )
@@ -23282,14 +23360,14 @@ var PolymorphicSlot = forwardRef35(function PolymorphicSlot2({
23282
23360
  });
23283
23361
 
23284
23362
  // src/components/utils/Transition.tsx
23285
- import { useEffect as useEffect55, useState as useState48 } from "react";
23363
+ import { useEffect as useEffect55, useState as useState49 } from "react";
23286
23364
  function Transition({
23287
23365
  children,
23288
23366
  show,
23289
23367
  includeAnimation = true
23290
23368
  }) {
23291
- const [isOpen, setIsOpen] = useState48(show);
23292
- const [isTransitioning, setIsTransitioning] = useState48(!isOpen);
23369
+ const [isOpen, setIsOpen] = useState49(show);
23370
+ const [isTransitioning, setIsTransitioning] = useState49(!isOpen);
23293
23371
  const isUsingReducedMotion = typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : true;
23294
23372
  useEffect55(() => {
23295
23373
  setIsOpen(show);
@@ -23397,11 +23475,11 @@ var useFocusOnceVisible = (ref, disable = false) => {
23397
23475
  };
23398
23476
 
23399
23477
  // src/hooks/focus/useIsMounted.ts
23400
- import { useEffect as useEffect58, useLayoutEffect as useLayoutEffect8, useState as useState49 } from "react";
23478
+ import { useEffect as useEffect58, useLayoutEffect as useLayoutEffect8, useState as useState50 } from "react";
23401
23479
  var isClient = typeof window !== "undefined" && typeof document !== "undefined";
23402
23480
  var useIsomorphicEffect = isClient ? useLayoutEffect8 : useEffect58;
23403
23481
  var useIsMounted = () => {
23404
- const [isMounted, setIsMounted] = useState49(false);
23482
+ const [isMounted, setIsMounted] = useState50(false);
23405
23483
  useIsomorphicEffect(() => {
23406
23484
  setIsMounted(true);
23407
23485
  return () => {
@@ -23453,9 +23531,9 @@ function useLogUnstableDependencies(name, value) {
23453
23531
  }
23454
23532
 
23455
23533
  // src/hooks/useOverwritableState.ts
23456
- import { useEffect as useEffect60, useState as useState50 } from "react";
23534
+ import { useEffect as useEffect60, useState as useState51 } from "react";
23457
23535
  var useOverwritableState = (overwriteValue, onChange) => {
23458
- const [state, setState] = useState50(overwriteValue);
23536
+ const [state, setState] = useState51(overwriteValue);
23459
23537
  useEffect60(() => {
23460
23538
  setState(overwriteValue);
23461
23539
  }, [overwriteValue]);
@@ -23539,7 +23617,6 @@ var useSwipeGesture = ({
23539
23617
  const listenTouch = inputMode === "touch" || inputMode === "both";
23540
23618
  const listenMouse = inputMode === "mouse" || inputMode === "both";
23541
23619
  const onGestureStart = (x, y, eventTarget) => {
23542
- console.log("onGestureStart", x, y);
23543
23620
  if (!isWithinStartRegion(x, y)) return;
23544
23621
  const scrollableParent = findScrollableParent(eventTarget);
23545
23622
  gestureEndRef.current = null;
@@ -23552,7 +23629,6 @@ var useSwipeGesture = ({
23552
23629
  isScrollingRef.current = !!scrollableParent;
23553
23630
  };
23554
23631
  const onGestureMove = (x, y, eventTarget) => {
23555
- console.log("onGestureMove", x, y);
23556
23632
  const scrollableParent = findScrollableParent(eventTarget);
23557
23633
  const currentScrollY = scrollableParent?.scrollTop ?? window.scrollY;
23558
23634
  gestureEndRef.current = {
@@ -23669,13 +23745,13 @@ var useSwipeGesture = ({
23669
23745
  };
23670
23746
 
23671
23747
  // src/hooks/useUpdatingDateString.ts
23672
- import { useEffect as useEffect62, useState as useState51 } from "react";
23748
+ import { useEffect as useEffect62, useState as useState52 } from "react";
23673
23749
  var useUpdatingDateString = ({ absoluteFormat = "dateTime", localeOverride, is24HourFormat: is24HourFormatOverride, timeZone: timeZoneOverride, date }) => {
23674
23750
  const { locale: contextLocale, is24HourFormat: contextIs24HourFormat, timeZone: contextTimeZone } = useLocale();
23675
23751
  const locale = localeOverride ?? contextLocale;
23676
23752
  const is24HourFormat = is24HourFormatOverride ?? contextIs24HourFormat ?? true;
23677
23753
  const timeZone = timeZoneOverride ?? contextTimeZone;
23678
- const [dateAndTimeStrings, setDateAndTimeStrings] = useState51({
23754
+ const [dateAndTimeStrings, setDateAndTimeStrings] = useState52({
23679
23755
  compareDate: date,
23680
23756
  absolute: DateUtils.formatAbsolute(date, locale, absoluteFormat, { is24HourFormat, timeZone }),
23681
23757
  relative: DateUtils.formatRelative(date, locale)
@@ -24272,6 +24348,7 @@ export {
24272
24348
  processModelLibrary,
24273
24349
  range,
24274
24350
  resolveSetState,
24351
+ resolveTreeNodePath,
24275
24352
  segmentBounds,
24276
24353
  segmentPlaceholder,
24277
24354
  setDayPeriod,