@helpwave/hightide 0.12.6 → 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":
@@ -14588,32 +14616,19 @@ function VerticalNavigationItem({
14588
14616
  const handleHeaderActivate = useCallback27(() => {
14589
14617
  toggleExpansion(id, { isFocusing: true });
14590
14618
  }, [id, toggleExpansion]);
14591
- const handleLeafActivate = useCallback27((event) => {
14592
- if (event.target.closest('[data-name="vertical-navigation-item-link"]')) return;
14619
+ const handleLeafActivate = useCallback27(() => {
14593
14620
  navigateTo(id);
14594
- }, [id, navigateTo]);
14595
- const labelContent = url == null ? label : external ? /* @__PURE__ */ jsxs23(
14596
- "a",
14597
- {
14598
- href: url,
14599
- target: "_blank",
14600
- rel: "noopener noreferrer",
14601
- "data-name": "vertical-navigation-item-link",
14602
- tabIndex: -1,
14603
- children: [
14604
- label,
14605
- /* @__PURE__ */ jsx41(ExternalLink2, { className: "vertical-navigation-item-link-external-icon" })
14606
- ]
14607
- }
14608
- ) : /* @__PURE__ */ jsx41(
14609
- "a",
14610
- {
14611
- href: url,
14612
- "data-name": "vertical-navigation-item-link",
14613
- tabIndex: -1,
14614
- children: label
14621
+ if (url == null) return;
14622
+ if (external) {
14623
+ window.open(url, "_blank", "noopener,noreferrer");
14624
+ return;
14615
14625
  }
14616
- );
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 });
14617
14632
  if (!hasChildren) {
14618
14633
  return /* @__PURE__ */ jsx41(
14619
14634
  "li",
@@ -14691,12 +14706,12 @@ function VerticalNavigationTree({
14691
14706
  }
14692
14707
 
14693
14708
  // src/components/layout/app/AppPage.tsx
14694
- 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";
14695
14710
  var AppSidebar = ({ isOpen = false, onClose, children, ...props }) => {
14696
14711
  const translation = useHightideTranslation();
14697
14712
  const { zIndex } = useOverlayRegistry({ isActive: isOpen });
14698
14713
  const ref = useRef25(null);
14699
- return /* @__PURE__ */ jsxs24(Fragment5, { children: [
14714
+ return /* @__PURE__ */ jsxs24(Fragment6, { children: [
14700
14715
  isOpen && /* @__PURE__ */ jsx43(
14701
14716
  "div",
14702
14717
  {
@@ -15529,7 +15544,7 @@ var LoadingContainer = ({ className }) => {
15529
15544
 
15530
15545
  // src/components/layout/loading/LoadingAndErrorComponent.tsx
15531
15546
  import { clsx as clsx21 } from "clsx";
15532
- import { Fragment as Fragment6, jsx as jsx58 } from "react/jsx-runtime";
15547
+ import { Fragment as Fragment7, jsx as jsx58 } from "react/jsx-runtime";
15533
15548
  var LoadingAndErrorComponent = ({
15534
15549
  children,
15535
15550
  isLoading = false,
@@ -15549,12 +15564,12 @@ var LoadingAndErrorComponent = ({
15549
15564
  }, minimumLoadingDuration);
15550
15565
  }
15551
15566
  if (isLoading || minimumLoadingDuration && isInMinimumLoading) {
15552
- return /* @__PURE__ */ jsx58(Fragment6, { children: loadingComponent ?? /* @__PURE__ */ jsx58(LoadingContainer, { className }) });
15567
+ return /* @__PURE__ */ jsx58(Fragment7, { children: loadingComponent ?? /* @__PURE__ */ jsx58(LoadingContainer, { className }) });
15553
15568
  }
15554
15569
  if (hasError) {
15555
- 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) }) });
15556
15571
  }
15557
- return /* @__PURE__ */ jsx58(Fragment6, { children });
15572
+ return /* @__PURE__ */ jsx58(Fragment7, { children });
15558
15573
  };
15559
15574
 
15560
15575
  // src/components/layout/loading/LoadingAnimation.tsx
@@ -15607,7 +15622,7 @@ import { Menu as MenuIcon2, XIcon } from "lucide-react";
15607
15622
  import { useEffect as useEffect30 } from "react";
15608
15623
  import { useCallback as useCallback31, useId as useId14, useRef as useRef28, useState as useState26 } from "react";
15609
15624
  import clsx23 from "clsx";
15610
- 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";
15611
15626
  function isSubItem(item) {
15612
15627
  return "items" in item && Array.isArray(item.items);
15613
15628
  }
@@ -15635,7 +15650,7 @@ var NavigationItemWithSubItem = ({
15635
15650
  }
15636
15651
  }, []);
15637
15652
  const { zIndex } = useOverlayRegistry();
15638
- return /* @__PURE__ */ jsxs34(Fragment7, { children: [
15653
+ return /* @__PURE__ */ jsxs34(Fragment8, { children: [
15639
15654
  /* @__PURE__ */ jsxs34(
15640
15655
  "button",
15641
15656
  {
@@ -15712,7 +15727,7 @@ var Navigation = ({ ...props }) => {
15712
15727
  /* @__PURE__ */ jsx61(
15713
15728
  IconButton,
15714
15729
  {
15715
- tooltip: translation("openNavigation"),
15730
+ tooltip: translation("menu"),
15716
15731
  coloringStyle: "text",
15717
15732
  color: "neutral",
15718
15733
  onClick: () => setIsMobileOpen(true),
@@ -18057,7 +18072,7 @@ var DatePicker = ({
18057
18072
  Button,
18058
18073
  {
18059
18074
  size: "sm",
18060
- coloringStyle: "text",
18075
+ color: "neutral",
18061
18076
  className: clsx29("flex-row-1 items-center cursor-pointer select-none", {
18062
18077
  "text-disabled": displayMode !== "day"
18063
18078
  }),
@@ -18213,7 +18228,7 @@ var DateTimePicker = ({
18213
18228
 
18214
18229
  // src/components/user-interaction/date/DateTimePickerDialog.tsx
18215
18230
  import { useEffect as useEffect37, useState as useState32 } from "react";
18216
- import { Fragment as Fragment8, jsx as jsx76, jsxs as jsxs45 } from "react/jsx-runtime";
18231
+ import { Fragment as Fragment9, jsx as jsx76, jsxs as jsxs45 } from "react/jsx-runtime";
18217
18232
  var DateTimePickerDialog = ({
18218
18233
  initialValue = null,
18219
18234
  value,
@@ -18244,7 +18259,7 @@ var DateTimePickerDialog = ({
18244
18259
  useEffect37(() => {
18245
18260
  setPickerState(state ?? /* @__PURE__ */ new Date());
18246
18261
  }, [state]);
18247
- return /* @__PURE__ */ jsxs45(Fragment8, { children: [
18262
+ return /* @__PURE__ */ jsxs45(Fragment9, { children: [
18248
18263
  /* @__PURE__ */ jsx76("div", { className: "flex-row-2 justify-center w-full py-1", children: /* @__PURE__ */ jsx76(
18249
18264
  "span",
18250
18265
  {
@@ -18907,6 +18922,9 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18907
18922
  const focusField = () => {
18908
18923
  fieldRef.current?.querySelector('[data-name="date-time-segment"]')?.focus();
18909
18924
  };
18925
+ const hasClear = !required && allowClear && !readOnly && !disabled && state !== null;
18926
+ const hasTimePicker = !readOnly;
18927
+ const hasActions = hasClear || hasTimePicker || actions.length > 0;
18910
18928
  return /* @__PURE__ */ jsxs46("div", { ...containerProps, className: clsx31("relative w-full", containerProps?.className), children: [
18911
18929
  /* @__PURE__ */ jsxs46(
18912
18930
  "div",
@@ -18924,6 +18942,7 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18924
18942
  className: clsx31("cursor-text", props.className),
18925
18943
  "data-name": props["data-name"] ?? "date-time-input",
18926
18944
  "data-value": PropsUtil.dataAttributes.bool(!!state),
18945
+ "data-has-actions": PropsUtil.dataAttributes.bool(hasActions),
18927
18946
  ...PropsUtil.dataAttributes.interactionStates({ disabled, readOnly, invalid, required }),
18928
18947
  ...PropsUtil.aria.interactionStates({ disabled, readOnly, invalid, required }, props),
18929
18948
  children: [
@@ -18942,13 +18961,12 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18942
18961
  onValueChange: (next) => setState(fromZoned(next)),
18943
18962
  onEditComplete: (next) => onEditComplete?.(fromZoned(next)),
18944
18963
  "aria-labelledby": props["aria-labelledby"],
18945
- "aria-describedby": props["aria-describedby"],
18946
- className: "grow"
18964
+ "aria-describedby": props["aria-describedby"]
18947
18965
  }
18948
18966
  ),
18949
18967
  /* @__PURE__ */ jsxs46("div", { className: "flex-row-1 items-center", children: [
18950
18968
  actions,
18951
- /* @__PURE__ */ jsx78(Visibility, { isVisible: !required && allowClear && !readOnly && !disabled && state !== null, children: /* @__PURE__ */ jsx78(
18969
+ /* @__PURE__ */ jsx78(Visibility, { isVisible: hasClear, children: /* @__PURE__ */ jsx78(
18952
18970
  IconButton,
18953
18971
  {
18954
18972
  tooltip: translation("clearValue"),
@@ -18962,7 +18980,7 @@ var DateTimeInput = forwardRef20(function DateTimeInput2({
18962
18980
  children: /* @__PURE__ */ jsx78(X4, { className: "size-5" })
18963
18981
  }
18964
18982
  ) }),
18965
- /* @__PURE__ */ jsx78(Visibility, { isVisible: !readOnly, children: /* @__PURE__ */ jsx78(
18983
+ /* @__PURE__ */ jsx78(Visibility, { isVisible: hasTimePicker, children: /* @__PURE__ */ jsx78(
18966
18984
  IconButton,
18967
18985
  {
18968
18986
  tooltip: translation("sDateTimeSelect", { datetimeMode: mode }),
@@ -20485,7 +20503,7 @@ var FilterPopUp = forwardRef25(function FilterPopUp2({
20485
20503
  });
20486
20504
 
20487
20505
  // src/components/layout/table/TableFilterButton.tsx
20488
- 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";
20489
20507
  var TableFilterButton = ({
20490
20508
  filterType,
20491
20509
  header
@@ -20512,7 +20530,7 @@ var TableFilterButton = ({
20512
20530
  if (isTagsFilter && !hasTagsMetaData) {
20513
20531
  return null;
20514
20532
  }
20515
- return /* @__PURE__ */ jsxs53(Fragment9, { children: [
20533
+ return /* @__PURE__ */ jsxs53(Fragment10, { children: [
20516
20534
  /* @__PURE__ */ jsxs53(
20517
20535
  IconButton,
20518
20536
  {
@@ -20626,7 +20644,7 @@ var DataTypeUtils = {
20626
20644
  };
20627
20645
 
20628
20646
  // src/components/layout/table/TableHeader.tsx
20629
- 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";
20630
20648
  var TableHeader = ({ isSticky = false }) => {
20631
20649
  const { table } = useTableStateWithoutSizingContext();
20632
20650
  const handleResizeMove = useCallback41((e) => {
@@ -20671,7 +20689,7 @@ var TableHeader = ({ isSticky = false }) => {
20671
20689
  window.removeEventListener("pointerup", handleResizeEnd);
20672
20690
  };
20673
20691
  }, [handleResizeEnd, handleResizeMove, table]);
20674
- return /* @__PURE__ */ jsxs54(Fragment10, { children: [
20692
+ return /* @__PURE__ */ jsxs54(Fragment11, { children: [
20675
20693
  table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx87(TableStateContext.Consumer, { children: ({ sizeVars }) => /* @__PURE__ */ jsx87("colgroup", { style: sizeVars, children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx87(
20676
20694
  "col",
20677
20695
  {
@@ -20692,7 +20710,7 @@ var TableHeader = ({ isSticky = false }) => {
20692
20710
  "data-name": "table-header-cell",
20693
20711
  className: clsx35("group/table-header-cell", header.column.columnDef.meta?.className),
20694
20712
  children: [
20695
- /* @__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: [
20696
20714
  /* @__PURE__ */ jsx87(Visibility, { isVisible: header.column.getCanSort(), children: /* @__PURE__ */ jsx87(
20697
20715
  TableSortButton,
20698
20716
  {
@@ -21129,7 +21147,7 @@ var TableColumn = (props) => {
21129
21147
  // src/components/layout/table/TableColumnSwitcher.tsx
21130
21148
  import { useMemo as useMemo42, useRef as useRef41, useId as useId21 } from "react";
21131
21149
  import { ChevronUp as ChevronUp3, ChevronDown as ChevronDown5, ChevronLeft as ChevronLeft5, ChevronRight as ChevronRight6, Eye, EyeOff, Pin, PinOff, Columns3Cog } from "lucide-react";
21132
- 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";
21133
21151
  var TableColumnSwitcherPopUp = ({ ...props }) => {
21134
21152
  const { table } = useTableStateWithoutSizingContext();
21135
21153
  const translation = useHightideTranslation();
@@ -21292,7 +21310,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
21292
21310
  const canMoveUp = index > 0 && !isPinned && !prevIsPinned;
21293
21311
  const canMoveDown = index < columns.length - 1 && !isPinned && !nextIsPinned;
21294
21312
  return /* @__PURE__ */ jsxs60("div", { className: "flex-row-2 items-center justify-between gap-2 w-full", children: [
21295
- /* @__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: [
21296
21314
  /* @__PURE__ */ jsx95(
21297
21315
  IconButton,
21298
21316
  {
@@ -21317,7 +21335,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
21317
21335
  children: /* @__PURE__ */ jsx95(ChevronRight6, { className: "size-4" })
21318
21336
  }
21319
21337
  )
21320
- ] }) : /* @__PURE__ */ jsxs60(Fragment11, { children: [
21338
+ ] }) : /* @__PURE__ */ jsxs60(Fragment12, { children: [
21321
21339
  /* @__PURE__ */ jsx95(
21322
21340
  IconButton,
21323
21341
  {
@@ -21344,7 +21362,7 @@ var TableColumnSwitcherPopUp = ({ ...props }) => {
21344
21362
  )
21345
21363
  ] }) }),
21346
21364
  /* @__PURE__ */ jsx95("div", { className: "flex-1 typography-label-lg", children: getColumnHeader(columnId) }),
21347
- /* @__PURE__ */ jsxs60(Fragment11, { children: [
21365
+ /* @__PURE__ */ jsxs60(Fragment12, { children: [
21348
21366
  /* @__PURE__ */ jsx95(Visibility, { isVisible: enableHiding, children: /* @__PURE__ */ jsx95(
21349
21367
  IconButton,
21350
21368
  {
@@ -21876,7 +21894,7 @@ var CopyToClipboardWrapper = ({
21876
21894
  // src/components/user-interaction/Menu.tsx
21877
21895
  import { useCallback as useCallback47, useRef as useRef44, useState as useState43 } from "react";
21878
21896
  import clsx42 from "clsx";
21879
- 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";
21880
21898
  var MenuItem = ({
21881
21899
  children,
21882
21900
  onClick,
@@ -21908,7 +21926,7 @@ var Menu = ({
21908
21926
  toggleOpen: () => setIsOpen((prevState) => !prevState),
21909
21927
  disabled
21910
21928
  };
21911
- return /* @__PURE__ */ jsxs64(Fragment12, { children: [
21929
+ return /* @__PURE__ */ jsxs64(Fragment13, { children: [
21912
21930
  trigger(bag, useCallback47((el) => triggerRef.current = el, [])),
21913
21931
  /* @__PURE__ */ jsx102(
21914
21932
  PopUp,
@@ -22388,7 +22406,7 @@ var TextareaWithHeadline = ({
22388
22406
  // src/components/user-interaction/data/FilterList.tsx
22389
22407
  import { useMemo as useMemo45, useState as useState45 } from "react";
22390
22408
  import { PlusIcon } from "lucide-react";
22391
- 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";
22392
22410
  var FilterList = ({ value, onValueChange, availableItems }) => {
22393
22411
  const translation = useHightideTranslation();
22394
22412
  const filterValueToLabel = useFilterValueTranslation();
@@ -22463,7 +22481,7 @@ var FilterList = ({ value, onValueChange, availableItems }) => {
22463
22481
  }
22464
22482
  },
22465
22483
  children: [
22466
- /* @__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: [
22467
22485
  /* @__PURE__ */ jsx107("span", { className: "font-bold", children: item.label }),
22468
22486
  filterValueToLabel(columnFilter.value, { tags: item.tags })
22469
22487
  ] }) }) }),
@@ -22936,7 +22954,7 @@ import { Check as Check6 } from "lucide-react";
22936
22954
  // src/components/user-interaction/properties/PropertyBase.tsx
22937
22955
  import clsx49 from "clsx";
22938
22956
  import { AlertTriangle, Trash, X as X5 } from "lucide-react";
22939
- 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";
22940
22958
  var PropertyBase = ({
22941
22959
  name,
22942
22960
  children,
@@ -22955,7 +22973,7 @@ var PropertyBase = ({
22955
22973
  const isClearEnabled = allowClear && !readOnly;
22956
22974
  const isRemoveEnabled = allowRemove && !readOnly;
22957
22975
  const showActionsContainer = isClearEnabled || isRemoveEnabled;
22958
- const renderActionButtons = () => /* @__PURE__ */ jsxs73(Fragment14, { children: [
22976
+ const renderActionButtons = () => /* @__PURE__ */ jsxs73(Fragment15, { children: [
22959
22977
  isClearEnabled && /* @__PURE__ */ jsx114(
22960
22978
  IconButton,
22961
22979
  {
@@ -23116,6 +23134,7 @@ var DateProperty = ({
23116
23134
  onValueChange,
23117
23135
  onEditComplete,
23118
23136
  "data-name": "property-input",
23137
+ className: "flex-row-4 pr-0",
23119
23138
  "data-invalid": PropsUtil.dataAttributes.bool(invalid)
23120
23139
  }
23121
23140
  )