@dmsi/wedgekit-react 0.0.518 → 0.0.519

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.
@@ -1,3 +1,6 @@
1
+ import {
2
+ Tooltip
3
+ } from "./chunk-MDB26F6T.js";
1
4
  import {
2
5
  Icon
3
6
  } from "./chunk-NKUETCDA.js";
@@ -12,7 +15,7 @@ function DownloadIcon({
12
15
  isDownloading,
13
16
  testid
14
17
  }) {
15
- return /* @__PURE__ */ jsx(
18
+ return /* @__PURE__ */ jsx(Tooltip, { message: "Download", position: "bottom", children: /* @__PURE__ */ jsx(
16
19
  Button,
17
20
  {
18
21
  testid,
@@ -21,7 +24,7 @@ function DownloadIcon({
21
24
  leftIcon: /* @__PURE__ */ jsx(Icon, { name: isDownloading ? "cached" : "download" }),
22
25
  onClick
23
26
  }
24
- );
27
+ ) });
25
28
  }
26
29
 
27
30
  export {
@@ -2,7 +2,7 @@ import {
2
2
  CalendarRange,
3
3
  CalendarRange_default,
4
4
  isWeekend
5
- } from "../chunk-TNNJTEEB.js";
5
+ } from "../chunk-HBGSQ6EO.js";
6
6
  import "../chunk-M7INAUAJ.js";
7
7
  import "../chunk-ELXVDRWS.js";
8
8
  import "../chunk-3UUCDNX3.js";
@@ -18,13 +18,13 @@ import "../chunk-5YNEY3WO.js";
18
18
  import "../chunk-5IFPG6TS.js";
19
19
  import "../chunk-AJ5M6MVX.js";
20
20
  import "../chunk-UI7P5J5S.js";
21
- import "../chunk-MDB26F6T.js";
22
21
  import "../chunk-AT4AWD6B.js";
23
22
  import "../chunk-EWGHVZL5.js";
24
23
  import "../chunk-OWHPPZZA.js";
25
24
  import "../chunk-L3BXRDLP.js";
26
25
  import "../chunk-34VEVX5H.js";
27
26
  import "../chunk-LB7UT6F3.js";
27
+ import "../chunk-MDB26F6T.js";
28
28
  import "../chunk-U6W5E3XW.js";
29
29
  import "../chunk-BMPL6LCR.js";
30
30
  import "../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ColumnSelectorMenuOption
3
- } from "../../../chunk-TNNJTEEB.js";
3
+ } from "../../../chunk-HBGSQ6EO.js";
4
4
  import "../../../chunk-M7INAUAJ.js";
5
5
  import "../../../chunk-ELXVDRWS.js";
6
6
  import "../../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../../chunk-5YNEY3WO.js";
16
16
  import "../../../chunk-5IFPG6TS.js";
17
17
  import "../../../chunk-AJ5M6MVX.js";
18
18
  import "../../../chunk-UI7P5J5S.js";
19
- import "../../../chunk-MDB26F6T.js";
20
19
  import "../../../chunk-AT4AWD6B.js";
21
20
  import "../../../chunk-EWGHVZL5.js";
22
21
  import "../../../chunk-OWHPPZZA.js";
23
22
  import "../../../chunk-L3BXRDLP.js";
24
23
  import "../../../chunk-34VEVX5H.js";
25
24
  import "../../../chunk-LB7UT6F3.js";
25
+ import "../../../chunk-MDB26F6T.js";
26
26
  import "../../../chunk-U6W5E3XW.js";
27
27
  import "../../../chunk-BMPL6LCR.js";
28
28
  import "../../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ColumnSelectorHeaderCell
3
- } from "../../../chunk-TNNJTEEB.js";
3
+ } from "../../../chunk-HBGSQ6EO.js";
4
4
  import "../../../chunk-M7INAUAJ.js";
5
5
  import "../../../chunk-ELXVDRWS.js";
6
6
  import "../../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../../chunk-5YNEY3WO.js";
16
16
  import "../../../chunk-5IFPG6TS.js";
17
17
  import "../../../chunk-AJ5M6MVX.js";
18
18
  import "../../../chunk-UI7P5J5S.js";
19
- import "../../../chunk-MDB26F6T.js";
20
19
  import "../../../chunk-AT4AWD6B.js";
21
20
  import "../../../chunk-EWGHVZL5.js";
22
21
  import "../../../chunk-OWHPPZZA.js";
23
22
  import "../../../chunk-L3BXRDLP.js";
24
23
  import "../../../chunk-34VEVX5H.js";
25
24
  import "../../../chunk-LB7UT6F3.js";
25
+ import "../../../chunk-MDB26F6T.js";
26
26
  import "../../../chunk-U6W5E3XW.js";
27
27
  import "../../../chunk-BMPL6LCR.js";
28
28
  import "../../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PinnedColumns
3
- } from "../../chunk-TNNJTEEB.js";
3
+ } from "../../chunk-HBGSQ6EO.js";
4
4
  import "../../chunk-M7INAUAJ.js";
5
5
  import "../../chunk-ELXVDRWS.js";
6
6
  import "../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../chunk-5YNEY3WO.js";
16
16
  import "../../chunk-5IFPG6TS.js";
17
17
  import "../../chunk-AJ5M6MVX.js";
18
18
  import "../../chunk-UI7P5J5S.js";
19
- import "../../chunk-MDB26F6T.js";
20
19
  import "../../chunk-AT4AWD6B.js";
21
20
  import "../../chunk-EWGHVZL5.js";
22
21
  import "../../chunk-OWHPPZZA.js";
23
22
  import "../../chunk-L3BXRDLP.js";
24
23
  import "../../chunk-34VEVX5H.js";
25
24
  import "../../chunk-LB7UT6F3.js";
25
+ import "../../chunk-MDB26F6T.js";
26
26
  import "../../chunk-U6W5E3XW.js";
27
27
  import "../../chunk-BMPL6LCR.js";
28
28
  import "../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LoadingCell
3
- } from "../../../chunk-TNNJTEEB.js";
3
+ } from "../../../chunk-HBGSQ6EO.js";
4
4
  import "../../../chunk-M7INAUAJ.js";
5
5
  import "../../../chunk-ELXVDRWS.js";
6
6
  import "../../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../../chunk-5YNEY3WO.js";
16
16
  import "../../../chunk-5IFPG6TS.js";
17
17
  import "../../../chunk-AJ5M6MVX.js";
18
18
  import "../../../chunk-UI7P5J5S.js";
19
- import "../../../chunk-MDB26F6T.js";
20
19
  import "../../../chunk-AT4AWD6B.js";
21
20
  import "../../../chunk-EWGHVZL5.js";
22
21
  import "../../../chunk-OWHPPZZA.js";
23
22
  import "../../../chunk-L3BXRDLP.js";
24
23
  import "../../../chunk-34VEVX5H.js";
25
24
  import "../../../chunk-LB7UT6F3.js";
25
+ import "../../../chunk-MDB26F6T.js";
26
26
  import "../../../chunk-U6W5E3XW.js";
27
27
  import "../../../chunk-BMPL6LCR.js";
28
28
  import "../../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TableBodyRow
3
- } from "../../../chunk-TNNJTEEB.js";
3
+ } from "../../../chunk-HBGSQ6EO.js";
4
4
  import "../../../chunk-M7INAUAJ.js";
5
5
  import "../../../chunk-ELXVDRWS.js";
6
6
  import "../../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../../chunk-5YNEY3WO.js";
16
16
  import "../../../chunk-5IFPG6TS.js";
17
17
  import "../../../chunk-AJ5M6MVX.js";
18
18
  import "../../../chunk-UI7P5J5S.js";
19
- import "../../../chunk-MDB26F6T.js";
20
19
  import "../../../chunk-AT4AWD6B.js";
21
20
  import "../../../chunk-EWGHVZL5.js";
22
21
  import "../../../chunk-OWHPPZZA.js";
23
22
  import "../../../chunk-L3BXRDLP.js";
24
23
  import "../../../chunk-34VEVX5H.js";
25
24
  import "../../../chunk-LB7UT6F3.js";
25
+ import "../../../chunk-MDB26F6T.js";
26
26
  import "../../../chunk-U6W5E3XW.js";
27
27
  import "../../../chunk-BMPL6LCR.js";
28
28
  import "../../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TableBody
3
- } from "../../../chunk-TNNJTEEB.js";
3
+ } from "../../../chunk-HBGSQ6EO.js";
4
4
  import "../../../chunk-M7INAUAJ.js";
5
5
  import "../../../chunk-ELXVDRWS.js";
6
6
  import "../../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../../chunk-5YNEY3WO.js";
16
16
  import "../../../chunk-5IFPG6TS.js";
17
17
  import "../../../chunk-AJ5M6MVX.js";
18
18
  import "../../../chunk-UI7P5J5S.js";
19
- import "../../../chunk-MDB26F6T.js";
20
19
  import "../../../chunk-AT4AWD6B.js";
21
20
  import "../../../chunk-EWGHVZL5.js";
22
21
  import "../../../chunk-OWHPPZZA.js";
23
22
  import "../../../chunk-L3BXRDLP.js";
24
23
  import "../../../chunk-34VEVX5H.js";
25
24
  import "../../../chunk-LB7UT6F3.js";
25
+ import "../../../chunk-MDB26F6T.js";
26
26
  import "../../../chunk-U6W5E3XW.js";
27
27
  import "../../../chunk-BMPL6LCR.js";
28
28
  import "../../../chunk-4RJKB7LC.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  DataGrid,
4
4
  DataGrid_default
5
- } from "../../chunk-TNNJTEEB.js";
5
+ } from "../../chunk-HBGSQ6EO.js";
6
6
  import "../../chunk-M7INAUAJ.js";
7
7
  import "../../chunk-ELXVDRWS.js";
8
8
  import "../../chunk-3UUCDNX3.js";
@@ -18,13 +18,13 @@ import "../../chunk-5YNEY3WO.js";
18
18
  import "../../chunk-5IFPG6TS.js";
19
19
  import "../../chunk-AJ5M6MVX.js";
20
20
  import "../../chunk-UI7P5J5S.js";
21
- import "../../chunk-MDB26F6T.js";
22
21
  import "../../chunk-AT4AWD6B.js";
23
22
  import "../../chunk-EWGHVZL5.js";
24
23
  import "../../chunk-OWHPPZZA.js";
25
24
  import "../../chunk-L3BXRDLP.js";
26
25
  import "../../chunk-34VEVX5H.js";
27
26
  import "../../chunk-LB7UT6F3.js";
27
+ import "../../chunk-MDB26F6T.js";
28
28
  import "../../chunk-U6W5E3XW.js";
29
29
  import "../../chunk-BMPL6LCR.js";
30
30
  import "../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getSortIcon
3
- } from "../../chunk-TNNJTEEB.js";
3
+ } from "../../chunk-HBGSQ6EO.js";
4
4
  import "../../chunk-M7INAUAJ.js";
5
5
  import "../../chunk-ELXVDRWS.js";
6
6
  import "../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../chunk-5YNEY3WO.js";
16
16
  import "../../chunk-5IFPG6TS.js";
17
17
  import "../../chunk-AJ5M6MVX.js";
18
18
  import "../../chunk-UI7P5J5S.js";
19
- import "../../chunk-MDB26F6T.js";
20
19
  import "../../chunk-AT4AWD6B.js";
21
20
  import "../../chunk-EWGHVZL5.js";
22
21
  import "../../chunk-OWHPPZZA.js";
23
22
  import "../../chunk-L3BXRDLP.js";
24
23
  import "../../chunk-34VEVX5H.js";
25
24
  import "../../chunk-LB7UT6F3.js";
25
+ import "../../chunk-MDB26F6T.js";
26
26
  import "../../chunk-U6W5E3XW.js";
27
27
  import "../../chunk-BMPL6LCR.js";
28
28
  import "../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DateInput
3
- } from "../chunk-TNNJTEEB.js";
3
+ } from "../chunk-HBGSQ6EO.js";
4
4
  import "../chunk-M7INAUAJ.js";
5
5
  import "../chunk-ELXVDRWS.js";
6
6
  import "../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../chunk-5YNEY3WO.js";
16
16
  import "../chunk-5IFPG6TS.js";
17
17
  import "../chunk-AJ5M6MVX.js";
18
18
  import "../chunk-UI7P5J5S.js";
19
- import "../chunk-MDB26F6T.js";
20
19
  import "../chunk-AT4AWD6B.js";
21
20
  import "../chunk-EWGHVZL5.js";
22
21
  import "../chunk-OWHPPZZA.js";
23
22
  import "../chunk-L3BXRDLP.js";
24
23
  import "../chunk-34VEVX5H.js";
25
24
  import "../chunk-LB7UT6F3.js";
25
+ import "../chunk-MDB26F6T.js";
26
26
  import "../chunk-U6W5E3XW.js";
27
27
  import "../chunk-BMPL6LCR.js";
28
28
  import "../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CalendarRange
3
- } from "../chunk-TNNJTEEB.js";
3
+ } from "../chunk-HBGSQ6EO.js";
4
4
  import "../chunk-M7INAUAJ.js";
5
5
  import "../chunk-ELXVDRWS.js";
6
6
  import "../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../chunk-5YNEY3WO.js";
16
16
  import "../chunk-5IFPG6TS.js";
17
17
  import "../chunk-AJ5M6MVX.js";
18
18
  import "../chunk-UI7P5J5S.js";
19
- import "../chunk-MDB26F6T.js";
20
19
  import "../chunk-AT4AWD6B.js";
21
20
  import "../chunk-EWGHVZL5.js";
22
21
  import "../chunk-OWHPPZZA.js";
23
22
  import "../chunk-L3BXRDLP.js";
24
23
  import "../chunk-34VEVX5H.js";
25
24
  import "../chunk-LB7UT6F3.js";
25
+ import "../chunk-MDB26F6T.js";
26
26
  import "../chunk-U6W5E3XW.js";
27
27
  import "../chunk-BMPL6LCR.js";
28
28
  import "../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ColumnSelector
3
- } from "../../../chunk-TNNJTEEB.js";
3
+ } from "../../../chunk-HBGSQ6EO.js";
4
4
  import "../../../chunk-M7INAUAJ.js";
5
5
  import "../../../chunk-ELXVDRWS.js";
6
6
  import "../../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../../chunk-5YNEY3WO.js";
16
16
  import "../../../chunk-5IFPG6TS.js";
17
17
  import "../../../chunk-AJ5M6MVX.js";
18
18
  import "../../../chunk-UI7P5J5S.js";
19
- import "../../../chunk-MDB26F6T.js";
20
19
  import "../../../chunk-AT4AWD6B.js";
21
20
  import "../../../chunk-EWGHVZL5.js";
22
21
  import "../../../chunk-OWHPPZZA.js";
23
22
  import "../../../chunk-L3BXRDLP.js";
24
23
  import "../../../chunk-34VEVX5H.js";
25
24
  import "../../../chunk-LB7UT6F3.js";
25
+ import "../../../chunk-MDB26F6T.js";
26
26
  import "../../../chunk-U6W5E3XW.js";
27
27
  import "../../../chunk-BMPL6LCR.js";
28
28
  import "../../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MobileDataGridHeader
3
- } from "../../chunk-TNNJTEEB.js";
3
+ } from "../../chunk-HBGSQ6EO.js";
4
4
  import "../../chunk-M7INAUAJ.js";
5
5
  import "../../chunk-ELXVDRWS.js";
6
6
  import "../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../chunk-5YNEY3WO.js";
16
16
  import "../../chunk-5IFPG6TS.js";
17
17
  import "../../chunk-AJ5M6MVX.js";
18
18
  import "../../chunk-UI7P5J5S.js";
19
- import "../../chunk-MDB26F6T.js";
20
19
  import "../../chunk-AT4AWD6B.js";
21
20
  import "../../chunk-EWGHVZL5.js";
22
21
  import "../../chunk-OWHPPZZA.js";
23
22
  import "../../chunk-L3BXRDLP.js";
24
23
  import "../../chunk-34VEVX5H.js";
25
24
  import "../../chunk-LB7UT6F3.js";
25
+ import "../../chunk-MDB26F6T.js";
26
26
  import "../../chunk-U6W5E3XW.js";
27
27
  import "../../chunk-BMPL6LCR.js";
28
28
  import "../../chunk-4RJKB7LC.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MobileDataGrid
3
- } from "../../chunk-TNNJTEEB.js";
3
+ } from "../../chunk-HBGSQ6EO.js";
4
4
  import "../../chunk-M7INAUAJ.js";
5
5
  import "../../chunk-ELXVDRWS.js";
6
6
  import "../../chunk-3UUCDNX3.js";
@@ -16,13 +16,13 @@ import "../../chunk-5YNEY3WO.js";
16
16
  import "../../chunk-5IFPG6TS.js";
17
17
  import "../../chunk-AJ5M6MVX.js";
18
18
  import "../../chunk-UI7P5J5S.js";
19
- import "../../chunk-MDB26F6T.js";
20
19
  import "../../chunk-AT4AWD6B.js";
21
20
  import "../../chunk-EWGHVZL5.js";
22
21
  import "../../chunk-OWHPPZZA.js";
23
22
  import "../../chunk-L3BXRDLP.js";
24
23
  import "../../chunk-34VEVX5H.js";
25
24
  import "../../chunk-LB7UT6F3.js";
25
+ import "../../chunk-MDB26F6T.js";
26
26
  import "../../chunk-U6W5E3XW.js";
27
27
  import "../../chunk-BMPL6LCR.js";
28
28
  import "../../chunk-4RJKB7LC.js";
@@ -379,23 +379,145 @@ function Icon(_a) {
379
379
  );
380
380
  }
381
381
 
382
- // src/components/PDFViewer/DownloadIcon.tsx
382
+ // src/components/Tooltip.tsx
383
+ var import_clsx4 = __toESM(require("clsx"), 1);
384
+ var import_react = require("react");
385
+ var import_react_dom = require("react-dom");
383
386
  var import_jsx_runtime3 = require("react/jsx-runtime");
387
+ var Tooltip = ({
388
+ id,
389
+ testid,
390
+ message,
391
+ position = "top",
392
+ children,
393
+ showOnTruncation = false,
394
+ offset = 8,
395
+ keepHidden = false
396
+ }) => {
397
+ const ref = (0, import_react.useRef)(null);
398
+ const tooltipRef = (0, import_react.useRef)(null);
399
+ const [tooltipPosition, setTooltipPosition] = (0, import_react.useState)({ top: 0, left: 0 });
400
+ const [isVisible, setIsVisible] = (0, import_react.useState)(false);
401
+ const [removeOpacity, setRemoveOpacity] = (0, import_react.useState)(false);
402
+ const updatePosition = () => {
403
+ if (!ref.current || !tooltipRef.current) return;
404
+ const rect = ref.current.getBoundingClientRect();
405
+ const tooltipRect = tooltipRef.current.getBoundingClientRect();
406
+ let top = 0;
407
+ let left = 0;
408
+ switch (position) {
409
+ case "top":
410
+ top = rect.top - tooltipRect.height - offset;
411
+ left = rect.left + rect.width / 2 - tooltipRect.width / 2;
412
+ break;
413
+ case "bottom":
414
+ top = rect.bottom + offset;
415
+ left = rect.left + rect.width / 2 - tooltipRect.width / 2;
416
+ break;
417
+ case "left":
418
+ top = rect.top + rect.height / 2 - tooltipRect.height / 2;
419
+ left = rect.left - tooltipRect.width - offset;
420
+ break;
421
+ case "right":
422
+ top = rect.top + rect.height / 2 - tooltipRect.height / 2;
423
+ left = rect.right + offset;
424
+ break;
425
+ }
426
+ setTooltipPosition({ top, left });
427
+ requestAnimationFrame(() => {
428
+ setRemoveOpacity(true);
429
+ });
430
+ };
431
+ const handleMouseEnter = () => {
432
+ if (!showOnTruncation || checkForTextTruncation()) {
433
+ setIsVisible(true);
434
+ }
435
+ };
436
+ const handleMouseLeave = () => {
437
+ setIsVisible(false);
438
+ setRemoveOpacity(false);
439
+ };
440
+ (0, import_react.useEffect)(() => {
441
+ if (isVisible && tooltipRef.current) {
442
+ requestAnimationFrame(() => {
443
+ updatePosition();
444
+ });
445
+ }
446
+ }, [isVisible]);
447
+ (0, import_react.useEffect)(() => {
448
+ if (isVisible) {
449
+ window.addEventListener("resize", updatePosition);
450
+ return () => window.removeEventListener("resize", updatePosition);
451
+ }
452
+ }, [isVisible]);
453
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
454
+ "div",
455
+ {
456
+ id,
457
+ "data-testid": testid,
458
+ ref,
459
+ className: "relative inline-grid grid-cols-[auto_1fr] items-center cursor-pointer",
460
+ onMouseEnter: handleMouseEnter,
461
+ onMouseLeave: handleMouseLeave,
462
+ children: [
463
+ children,
464
+ !keepHidden && isVisible && typeof document !== "undefined" && (0, import_react_dom.createPortal)(
465
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
466
+ "div",
467
+ {
468
+ id: id ? `${id}-message` : void 0,
469
+ "data-testid": testid ? `${testid}-message` : void 0,
470
+ ref: tooltipRef,
471
+ style: {
472
+ position: "fixed",
473
+ top: `${tooltipPosition.top}px`,
474
+ left: `${tooltipPosition.left}px`,
475
+ zIndex: 9999
476
+ },
477
+ className: (0, import_clsx4.default)(
478
+ typography.caption,
479
+ "bg-neutral-500 text-neutral-100 rounded whitespace-nowrap shadow-2 pointer-events-none transition-opacity duration-100 ease-in-out",
480
+ componentPadding,
481
+ !removeOpacity && "opacity-0"
482
+ ),
483
+ children: message
484
+ }
485
+ ),
486
+ document.body
487
+ )
488
+ ]
489
+ }
490
+ );
491
+ function checkForTextTruncation() {
492
+ if (showOnTruncation && ref.current) {
493
+ const paragraph = ref.current.querySelector("p");
494
+ if (paragraph) {
495
+ const isTruncated = paragraph.scrollWidth > paragraph.clientWidth;
496
+ return isTruncated;
497
+ }
498
+ }
499
+ return false;
500
+ }
501
+ };
502
+ Tooltip.displayName = "Tooltip";
503
+
504
+ // src/components/PDFViewer/DownloadIcon.tsx
505
+ var import_jsx_runtime4 = require("react/jsx-runtime");
384
506
  function DownloadIcon({
385
507
  onClick,
386
508
  isDownloading,
387
509
  testid
388
510
  }) {
389
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
511
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Tooltip, { message: "Download", position: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
390
512
  Button,
391
513
  {
392
514
  testid,
393
515
  iconOnly: true,
394
516
  variant: "tertiary",
395
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Icon, { name: isDownloading ? "cached" : "download" }),
517
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { name: isDownloading ? "cached" : "download" }),
396
518
  onClick
397
519
  }
398
- );
520
+ ) });
399
521
  }
400
522
  // Annotate the CommonJS export names for ESM import in node:
401
523
  0 && (module.exports = {
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  DownloadIcon
3
- } from "../../chunk-56RPZLV7.js";
3
+ } from "../../chunk-7COWXCPA.js";
4
+ import "../../chunk-MDB26F6T.js";
4
5
  import "../../chunk-NKUETCDA.js";
5
6
  import "../../chunk-45AHDOAU.js";
6
7
  import "../../chunk-7KWFEH56.js";
@@ -63,7 +63,7 @@ __export(PDFViewer_exports, {
63
63
  PDFViewer: () => PDFViewer
64
64
  });
65
65
  module.exports = __toCommonJS(PDFViewer_exports);
66
- var import_react9 = require("react");
66
+ var import_react10 = require("react");
67
67
 
68
68
  // src/components/Modal.tsx
69
69
  var import_clsx9 = __toESM(require("clsx"), 1);
@@ -1271,28 +1271,150 @@ function PDFElement({
1271
1271
  );
1272
1272
  }
1273
1273
 
1274
- // src/components/PDFViewer/DownloadIcon.tsx
1274
+ // src/components/Tooltip.tsx
1275
+ var import_clsx12 = __toESM(require("clsx"), 1);
1276
+ var import_react9 = require("react");
1277
+ var import_react_dom2 = require("react-dom");
1275
1278
  var import_jsx_runtime13 = require("react/jsx-runtime");
1279
+ var Tooltip = ({
1280
+ id,
1281
+ testid,
1282
+ message,
1283
+ position = "top",
1284
+ children,
1285
+ showOnTruncation = false,
1286
+ offset = 8,
1287
+ keepHidden = false
1288
+ }) => {
1289
+ const ref = (0, import_react9.useRef)(null);
1290
+ const tooltipRef = (0, import_react9.useRef)(null);
1291
+ const [tooltipPosition, setTooltipPosition] = (0, import_react9.useState)({ top: 0, left: 0 });
1292
+ const [isVisible, setIsVisible] = (0, import_react9.useState)(false);
1293
+ const [removeOpacity, setRemoveOpacity] = (0, import_react9.useState)(false);
1294
+ const updatePosition = () => {
1295
+ if (!ref.current || !tooltipRef.current) return;
1296
+ const rect = ref.current.getBoundingClientRect();
1297
+ const tooltipRect = tooltipRef.current.getBoundingClientRect();
1298
+ let top = 0;
1299
+ let left = 0;
1300
+ switch (position) {
1301
+ case "top":
1302
+ top = rect.top - tooltipRect.height - offset;
1303
+ left = rect.left + rect.width / 2 - tooltipRect.width / 2;
1304
+ break;
1305
+ case "bottom":
1306
+ top = rect.bottom + offset;
1307
+ left = rect.left + rect.width / 2 - tooltipRect.width / 2;
1308
+ break;
1309
+ case "left":
1310
+ top = rect.top + rect.height / 2 - tooltipRect.height / 2;
1311
+ left = rect.left - tooltipRect.width - offset;
1312
+ break;
1313
+ case "right":
1314
+ top = rect.top + rect.height / 2 - tooltipRect.height / 2;
1315
+ left = rect.right + offset;
1316
+ break;
1317
+ }
1318
+ setTooltipPosition({ top, left });
1319
+ requestAnimationFrame(() => {
1320
+ setRemoveOpacity(true);
1321
+ });
1322
+ };
1323
+ const handleMouseEnter = () => {
1324
+ if (!showOnTruncation || checkForTextTruncation()) {
1325
+ setIsVisible(true);
1326
+ }
1327
+ };
1328
+ const handleMouseLeave = () => {
1329
+ setIsVisible(false);
1330
+ setRemoveOpacity(false);
1331
+ };
1332
+ (0, import_react9.useEffect)(() => {
1333
+ if (isVisible && tooltipRef.current) {
1334
+ requestAnimationFrame(() => {
1335
+ updatePosition();
1336
+ });
1337
+ }
1338
+ }, [isVisible]);
1339
+ (0, import_react9.useEffect)(() => {
1340
+ if (isVisible) {
1341
+ window.addEventListener("resize", updatePosition);
1342
+ return () => window.removeEventListener("resize", updatePosition);
1343
+ }
1344
+ }, [isVisible]);
1345
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1346
+ "div",
1347
+ {
1348
+ id,
1349
+ "data-testid": testid,
1350
+ ref,
1351
+ className: "relative inline-grid grid-cols-[auto_1fr] items-center cursor-pointer",
1352
+ onMouseEnter: handleMouseEnter,
1353
+ onMouseLeave: handleMouseLeave,
1354
+ children: [
1355
+ children,
1356
+ !keepHidden && isVisible && typeof document !== "undefined" && (0, import_react_dom2.createPortal)(
1357
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1358
+ "div",
1359
+ {
1360
+ id: id ? `${id}-message` : void 0,
1361
+ "data-testid": testid ? `${testid}-message` : void 0,
1362
+ ref: tooltipRef,
1363
+ style: {
1364
+ position: "fixed",
1365
+ top: `${tooltipPosition.top}px`,
1366
+ left: `${tooltipPosition.left}px`,
1367
+ zIndex: 9999
1368
+ },
1369
+ className: (0, import_clsx12.default)(
1370
+ typography.caption,
1371
+ "bg-neutral-500 text-neutral-100 rounded whitespace-nowrap shadow-2 pointer-events-none transition-opacity duration-100 ease-in-out",
1372
+ componentPadding,
1373
+ !removeOpacity && "opacity-0"
1374
+ ),
1375
+ children: message
1376
+ }
1377
+ ),
1378
+ document.body
1379
+ )
1380
+ ]
1381
+ }
1382
+ );
1383
+ function checkForTextTruncation() {
1384
+ if (showOnTruncation && ref.current) {
1385
+ const paragraph = ref.current.querySelector("p");
1386
+ if (paragraph) {
1387
+ const isTruncated = paragraph.scrollWidth > paragraph.clientWidth;
1388
+ return isTruncated;
1389
+ }
1390
+ }
1391
+ return false;
1392
+ }
1393
+ };
1394
+ Tooltip.displayName = "Tooltip";
1395
+
1396
+ // src/components/PDFViewer/DownloadIcon.tsx
1397
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1276
1398
  function DownloadIcon({
1277
1399
  onClick,
1278
1400
  isDownloading,
1279
1401
  testid
1280
1402
  }) {
1281
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1403
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Tooltip, { message: "Download", position: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1282
1404
  Button,
1283
1405
  {
1284
1406
  testid,
1285
1407
  iconOnly: true,
1286
1408
  variant: "tertiary",
1287
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: isDownloading ? "cached" : "download" }),
1409
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, { name: isDownloading ? "cached" : "download" }),
1288
1410
  onClick
1289
1411
  }
1290
- );
1412
+ ) });
1291
1413
  }
1292
1414
 
1293
1415
  // src/components/Paragraph.tsx
1294
- var import_clsx12 = __toESM(require("clsx"), 1);
1295
- var import_jsx_runtime14 = require("react/jsx-runtime");
1416
+ var import_clsx13 = __toESM(require("clsx"), 1);
1417
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1296
1418
  var Paragraph = (_a) => {
1297
1419
  var _b = _a, {
1298
1420
  className,
@@ -1318,13 +1440,13 @@ var Paragraph = (_a) => {
1318
1440
  "testid"
1319
1441
  ]);
1320
1442
  const Element = as;
1321
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1443
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1322
1444
  Element,
1323
1445
  __spreadProps(__spreadValues({
1324
1446
  id,
1325
1447
  "data-testid": testid
1326
1448
  }, props), {
1327
- className: (0, import_clsx12.default)(
1449
+ className: (0, import_clsx13.default)(
1328
1450
  typography.paragraph,
1329
1451
  className,
1330
1452
  padded && componentPaddingXUsingComponentGap,
@@ -1344,7 +1466,7 @@ var Paragraph = (_a) => {
1344
1466
  Paragraph.displayName = "Paragraph";
1345
1467
 
1346
1468
  // src/components/PDFViewer/PDFNavigation.tsx
1347
- var import_jsx_runtime15 = require("react/jsx-runtime");
1469
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1348
1470
  function PdfNavigation({
1349
1471
  currentIndex,
1350
1472
  total,
@@ -1356,7 +1478,7 @@ function PdfNavigation({
1356
1478
  testid,
1357
1479
  fileName
1358
1480
  }) {
1359
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1481
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1360
1482
  Stack,
1361
1483
  {
1362
1484
  horizontal: true,
@@ -1365,44 +1487,44 @@ function PdfNavigation({
1365
1487
  sizing: "layout-group",
1366
1488
  testid: testid ? `${testid}-pdf-navigation` : void 0,
1367
1489
  children: [
1368
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Stack, { horizontal: true, items: "center", children: [
1369
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1490
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Stack, { horizontal: true, items: "center", children: [
1491
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1370
1492
  Button,
1371
1493
  {
1372
1494
  iconOnly: true,
1373
1495
  variant: "tertiary",
1374
1496
  onClick: onPrev,
1375
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Icon, { name: "chevron_backward" }),
1497
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "chevron_backward" }),
1376
1498
  disabled: disablePrev,
1377
1499
  testid: testid ? `${testid}-pdf-file-previous-button` : void 0
1378
1500
  }
1379
1501
  ),
1380
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Heading3, { className: "text-text-primary-normal whitespace-nowrap", children: [
1502
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Heading3, { className: "text-text-primary-normal whitespace-nowrap", children: [
1381
1503
  currentIndex + 1,
1382
1504
  " / ",
1383
1505
  total
1384
1506
  ] }),
1385
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1507
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1386
1508
  Button,
1387
1509
  {
1388
1510
  iconOnly: true,
1389
1511
  variant: "tertiary",
1390
1512
  onClick: onNext,
1391
- rightIcon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Icon, { name: "chevron_forward" }),
1513
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "chevron_forward" }),
1392
1514
  disabled: disableNext,
1393
1515
  testid: testid ? `${testid}-pdf-file-next-button` : void 0
1394
1516
  }
1395
1517
  ),
1396
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Paragraph, { children: (fileName == null ? void 0 : fileName.endsWith(".pdf")) ? fileName : `${fileName}.pdf` })
1518
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Paragraph, { children: (fileName == null ? void 0 : fileName.endsWith(".pdf")) ? fileName : `${fileName}.pdf` })
1397
1519
  ] }),
1398
- extraActions && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex items-center gap-2", children: extraActions })
1520
+ extraActions && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center gap-2", children: extraActions })
1399
1521
  ]
1400
1522
  }
1401
1523
  ) });
1402
1524
  }
1403
1525
 
1404
1526
  // src/components/PDFViewer/index.tsx
1405
- var import_jsx_runtime16 = require("react/jsx-runtime");
1527
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1406
1528
  function PDFViewer(props) {
1407
1529
  const {
1408
1530
  isOpen,
@@ -1416,9 +1538,9 @@ function PDFViewer(props) {
1416
1538
  withPagination = true,
1417
1539
  error
1418
1540
  } = props;
1419
- const [currentIndex, setCurrentIndex] = (0, import_react9.useState)(0);
1420
- const [isDownloading, setIsDownloading] = (0, import_react9.useState)(false);
1421
- const handleDownload = (0, import_react9.useCallback)(() => {
1541
+ const [currentIndex, setCurrentIndex] = (0, import_react10.useState)(0);
1542
+ const [isDownloading, setIsDownloading] = (0, import_react10.useState)(false);
1543
+ const handleDownload = (0, import_react10.useCallback)(() => {
1422
1544
  setIsDownloading(true);
1423
1545
  const link = document.createElement("a");
1424
1546
  const currentPdf = encodedPdfs[currentIndex];
@@ -1449,7 +1571,7 @@ function PDFViewer(props) {
1449
1571
  setIsDownloading(false);
1450
1572
  onClose();
1451
1573
  }
1452
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1574
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1453
1575
  Modal,
1454
1576
  {
1455
1577
  testid,
@@ -1458,7 +1580,7 @@ function PDFViewer(props) {
1458
1580
  onClose: handleClose,
1459
1581
  noWrapper: true,
1460
1582
  showButtons: isMobile && customFooter ? !!customActions : !!encodedPdfs.length,
1461
- customActions: !!encodedPdfs.length && !isMobile && withPagination ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1583
+ customActions: !!encodedPdfs.length && !isMobile && withPagination ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1462
1584
  PdfNavigation,
1463
1585
  {
1464
1586
  testid,
@@ -1474,7 +1596,7 @@ function PDFViewer(props) {
1474
1596
  ) : customActions,
1475
1597
  fixedHeightScrolling: true,
1476
1598
  headerIconAlign: "right",
1477
- headerIcon: !isMobile ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1599
+ headerIcon: !isMobile ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1478
1600
  DownloadIcon,
1479
1601
  {
1480
1602
  testid: testid ? `${testid}-download-icon` : void 0,
@@ -1485,7 +1607,7 @@ function PDFViewer(props) {
1485
1607
  title: isMobile ? title != null ? title : encodedPdfs[currentIndex].fileName : void 0,
1486
1608
  size: isMobile ? "screen" : "large",
1487
1609
  headerClassname: "bg-brand-400 desktop:bg-background-grouped-primary-normal p-mobile-layout-padding text-brand-text-action-primary-normal",
1488
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1610
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1489
1611
  PDFElement,
1490
1612
  {
1491
1613
  testid,
@@ -8,8 +8,9 @@ import {
8
8
  import "../../chunk-VJVY6NPF.js";
9
9
  import {
10
10
  DownloadIcon
11
- } from "../../chunk-56RPZLV7.js";
11
+ } from "../../chunk-7COWXCPA.js";
12
12
  import "../../chunk-SBRRNFOP.js";
13
+ import "../../chunk-MDB26F6T.js";
13
14
  import {
14
15
  Modal
15
16
  } from "../../chunk-BMPL6LCR.js";
@@ -63,7 +63,7 @@ __export(Password_exports, {
63
63
  Password: () => Password
64
64
  });
65
65
  module.exports = __toCommonJS(Password_exports);
66
- var import_react2 = require("react");
66
+ var import_react3 = require("react");
67
67
 
68
68
  // src/components/Input.tsx
69
69
  var import_react = require("react");
@@ -790,8 +790,130 @@ UOM.displayName = "UOM";
790
790
  Currency.displayName = "Currency";
791
791
  Percentage.displayName = "Percentage";
792
792
 
793
- // src/components/Password.tsx
793
+ // src/components/Tooltip.tsx
794
+ var import_clsx6 = __toESM(require("clsx"), 1);
795
+ var import_react2 = require("react");
796
+ var import_react_dom = require("react-dom");
794
797
  var import_jsx_runtime5 = require("react/jsx-runtime");
798
+ var Tooltip = ({
799
+ id,
800
+ testid,
801
+ message,
802
+ position = "top",
803
+ children,
804
+ showOnTruncation = false,
805
+ offset = 8,
806
+ keepHidden = false
807
+ }) => {
808
+ const ref = (0, import_react2.useRef)(null);
809
+ const tooltipRef = (0, import_react2.useRef)(null);
810
+ const [tooltipPosition, setTooltipPosition] = (0, import_react2.useState)({ top: 0, left: 0 });
811
+ const [isVisible, setIsVisible] = (0, import_react2.useState)(false);
812
+ const [removeOpacity, setRemoveOpacity] = (0, import_react2.useState)(false);
813
+ const updatePosition = () => {
814
+ if (!ref.current || !tooltipRef.current) return;
815
+ const rect = ref.current.getBoundingClientRect();
816
+ const tooltipRect = tooltipRef.current.getBoundingClientRect();
817
+ let top = 0;
818
+ let left = 0;
819
+ switch (position) {
820
+ case "top":
821
+ top = rect.top - tooltipRect.height - offset;
822
+ left = rect.left + rect.width / 2 - tooltipRect.width / 2;
823
+ break;
824
+ case "bottom":
825
+ top = rect.bottom + offset;
826
+ left = rect.left + rect.width / 2 - tooltipRect.width / 2;
827
+ break;
828
+ case "left":
829
+ top = rect.top + rect.height / 2 - tooltipRect.height / 2;
830
+ left = rect.left - tooltipRect.width - offset;
831
+ break;
832
+ case "right":
833
+ top = rect.top + rect.height / 2 - tooltipRect.height / 2;
834
+ left = rect.right + offset;
835
+ break;
836
+ }
837
+ setTooltipPosition({ top, left });
838
+ requestAnimationFrame(() => {
839
+ setRemoveOpacity(true);
840
+ });
841
+ };
842
+ const handleMouseEnter = () => {
843
+ if (!showOnTruncation || checkForTextTruncation()) {
844
+ setIsVisible(true);
845
+ }
846
+ };
847
+ const handleMouseLeave = () => {
848
+ setIsVisible(false);
849
+ setRemoveOpacity(false);
850
+ };
851
+ (0, import_react2.useEffect)(() => {
852
+ if (isVisible && tooltipRef.current) {
853
+ requestAnimationFrame(() => {
854
+ updatePosition();
855
+ });
856
+ }
857
+ }, [isVisible]);
858
+ (0, import_react2.useEffect)(() => {
859
+ if (isVisible) {
860
+ window.addEventListener("resize", updatePosition);
861
+ return () => window.removeEventListener("resize", updatePosition);
862
+ }
863
+ }, [isVisible]);
864
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
865
+ "div",
866
+ {
867
+ id,
868
+ "data-testid": testid,
869
+ ref,
870
+ className: "relative inline-grid grid-cols-[auto_1fr] items-center cursor-pointer",
871
+ onMouseEnter: handleMouseEnter,
872
+ onMouseLeave: handleMouseLeave,
873
+ children: [
874
+ children,
875
+ !keepHidden && isVisible && typeof document !== "undefined" && (0, import_react_dom.createPortal)(
876
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
877
+ "div",
878
+ {
879
+ id: id ? `${id}-message` : void 0,
880
+ "data-testid": testid ? `${testid}-message` : void 0,
881
+ ref: tooltipRef,
882
+ style: {
883
+ position: "fixed",
884
+ top: `${tooltipPosition.top}px`,
885
+ left: `${tooltipPosition.left}px`,
886
+ zIndex: 9999
887
+ },
888
+ className: (0, import_clsx6.default)(
889
+ typography.caption,
890
+ "bg-neutral-500 text-neutral-100 rounded whitespace-nowrap shadow-2 pointer-events-none transition-opacity duration-100 ease-in-out",
891
+ componentPadding,
892
+ !removeOpacity && "opacity-0"
893
+ ),
894
+ children: message
895
+ }
896
+ ),
897
+ document.body
898
+ )
899
+ ]
900
+ }
901
+ );
902
+ function checkForTextTruncation() {
903
+ if (showOnTruncation && ref.current) {
904
+ const paragraph = ref.current.querySelector("p");
905
+ if (paragraph) {
906
+ const isTruncated = paragraph.scrollWidth > paragraph.clientWidth;
907
+ return isTruncated;
908
+ }
909
+ }
910
+ return false;
911
+ }
912
+ };
913
+ Tooltip.displayName = "Tooltip";
914
+
915
+ // src/components/Password.tsx
916
+ var import_jsx_runtime6 = require("react/jsx-runtime");
795
917
  var Password = (_a) => {
796
918
  var _b = _a, {
797
919
  id,
@@ -800,21 +922,21 @@ var Password = (_a) => {
800
922
  "id",
801
923
  "testid"
802
924
  ]);
803
- const [show, setShow] = (0, import_react2.useState)(false);
804
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
925
+ const [show, setShow] = (0, import_react3.useState)(false);
926
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
805
927
  InputBase,
806
928
  __spreadProps(__spreadValues({
807
929
  id,
808
930
  testid
809
931
  }, props), {
810
932
  type: show ? "text" : "password",
811
- after: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(WhichIcon, { id, testid, show, setShow })
933
+ after: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(WhichIcon, { id, testid, show, setShow })
812
934
  })
813
935
  );
814
936
  };
815
937
  var WhichIcon = ({ id, testid, show, setShow }) => {
816
938
  if (show) {
817
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
939
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Tooltip, { message: "Show", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
818
940
  Icon,
819
941
  {
820
942
  id: id ? `${id}-toggle-visibility` : void 0,
@@ -823,9 +945,9 @@ var WhichIcon = ({ id, testid, show, setShow }) => {
823
945
  className: "cursor-pointer",
824
946
  onClick: () => setShow(false)
825
947
  }
826
- );
948
+ ) });
827
949
  }
828
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
950
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Tooltip, { message: "Hide", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
829
951
  Icon,
830
952
  {
831
953
  id: id ? `${id}-toggle-visibility` : void 0,
@@ -834,7 +956,7 @@ var WhichIcon = ({ id, testid, show, setShow }) => {
834
956
  className: "cursor-pointer",
835
957
  onClick: () => setShow(true)
836
958
  }
837
- );
959
+ ) });
838
960
  };
839
961
  Password.displayName = "Password";
840
962
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,4 +1,7 @@
1
1
  "use client";
2
+ import {
3
+ Tooltip
4
+ } from "../chunk-MDB26F6T.js";
2
5
  import {
3
6
  InputBase
4
7
  } from "../chunk-PMNNRB6S.js";
@@ -40,7 +43,7 @@ var Password = (_a) => {
40
43
  };
41
44
  var WhichIcon = ({ id, testid, show, setShow }) => {
42
45
  if (show) {
43
- return /* @__PURE__ */ jsx(
46
+ return /* @__PURE__ */ jsx(Tooltip, { message: "Show", children: /* @__PURE__ */ jsx(
44
47
  Icon,
45
48
  {
46
49
  id: id ? `${id}-toggle-visibility` : void 0,
@@ -49,9 +52,9 @@ var WhichIcon = ({ id, testid, show, setShow }) => {
49
52
  className: "cursor-pointer",
50
53
  onClick: () => setShow(false)
51
54
  }
52
- );
55
+ ) });
53
56
  }
54
- return /* @__PURE__ */ jsx(
57
+ return /* @__PURE__ */ jsx(Tooltip, { message: "Hide", children: /* @__PURE__ */ jsx(
55
58
  Icon,
56
59
  {
57
60
  id: id ? `${id}-toggle-visibility` : void 0,
@@ -60,7 +63,7 @@ var WhichIcon = ({ id, testid, show, setShow }) => {
60
63
  className: "cursor-pointer",
61
64
  onClick: () => setShow(true)
62
65
  }
63
- );
66
+ ) });
64
67
  };
65
68
  Password.displayName = "Password";
66
69
  export {
@@ -2,7 +2,7 @@ import {
2
2
  DataGrid,
3
3
  DateInput,
4
4
  MobileDataGrid
5
- } from "../chunk-TNNJTEEB.js";
5
+ } from "../chunk-HBGSQ6EO.js";
6
6
  import "../chunk-M7INAUAJ.js";
7
7
  import "../chunk-ELXVDRWS.js";
8
8
  import "../chunk-3UUCDNX3.js";
@@ -22,9 +22,6 @@ import "../chunk-5YNEY3WO.js";
22
22
  import "../chunk-5IFPG6TS.js";
23
23
  import "../chunk-AJ5M6MVX.js";
24
24
  import "../chunk-UI7P5J5S.js";
25
- import {
26
- Tooltip
27
- } from "../chunk-MDB26F6T.js";
28
25
  import "../chunk-AT4AWD6B.js";
29
26
  import "../chunk-EWGHVZL5.js";
30
27
  import {
@@ -39,6 +36,9 @@ import {
39
36
  import {
40
37
  Pagination
41
38
  } from "../chunk-LB7UT6F3.js";
39
+ import {
40
+ Tooltip
41
+ } from "../chunk-MDB26F6T.js";
42
42
  import {
43
43
  Select
44
44
  } from "../chunk-U6W5E3XW.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dmsi/wedgekit-react",
3
3
  "private": false,
4
- "version": "0.0.518",
4
+ "version": "0.0.519",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "tsup",
@@ -1,5 +1,6 @@
1
1
  import { Button } from "../Button";
2
2
  import { Icon } from "../Icon";
3
+ import { Tooltip } from "../Tooltip";
3
4
 
4
5
  export function DownloadIcon({
5
6
  onClick,
@@ -11,12 +12,14 @@ export function DownloadIcon({
11
12
  testid?: string;
12
13
  }) {
13
14
  return (
14
- <Button
15
- testid={testid}
16
- iconOnly
17
- variant="tertiary"
18
- leftIcon={<Icon name={isDownloading ? "cached" : "download"} />}
19
- onClick={onClick}
20
- />
15
+ <Tooltip message="Download" position="bottom">
16
+ <Button
17
+ testid={testid}
18
+ iconOnly
19
+ variant="tertiary"
20
+ leftIcon={<Icon name={isDownloading ? "cached" : "download"} />}
21
+ onClick={onClick}
22
+ />
23
+ </Tooltip>
21
24
  );
22
25
  }
@@ -3,6 +3,7 @@
3
3
  import { ComponentProps, useState } from "react";
4
4
  import { InputBase, InputBaseProps } from "./Input";
5
5
  import { Icon } from "./Icon";
6
+ import { Tooltip } from "./Tooltip";
6
7
 
7
8
  export const Password = ({
8
9
  id,
@@ -33,24 +34,28 @@ type WhichIconProps = {
33
34
  const WhichIcon = ({ id, testid, show, setShow }: WhichIconProps) => {
34
35
  if (show) {
35
36
  return (
37
+ <Tooltip message="Show">
38
+ <Icon
39
+ id={id ? `${id}-toggle-visibility` : undefined}
40
+ testid={testid ? `${testid}-toggle-visibility` : undefined}
41
+ name="visibility_off"
42
+ className="cursor-pointer"
43
+ onClick={() => setShow(false)}
44
+ />
45
+ </Tooltip>
46
+ );
47
+ }
48
+
49
+ return (
50
+ <Tooltip message="Hide">
36
51
  <Icon
37
52
  id={id ? `${id}-toggle-visibility` : undefined}
38
53
  testid={testid ? `${testid}-toggle-visibility` : undefined}
39
- name="visibility_off"
54
+ name="visibility"
40
55
  className="cursor-pointer"
41
- onClick={() => setShow(false)}
56
+ onClick={() => setShow(true)}
42
57
  />
43
- );
44
- }
45
-
46
- return (
47
- <Icon
48
- id={id ? `${id}-toggle-visibility` : undefined}
49
- testid={testid ? `${testid}-toggle-visibility` : undefined}
50
- name="visibility"
51
- className="cursor-pointer"
52
- onClick={() => setShow(true)}
53
- />
58
+ </Tooltip>
54
59
  );
55
60
  };
56
61
 
@@ -10,12 +10,12 @@ import {
10
10
  import {
11
11
  useGridContext
12
12
  } from "./chunk-5IFPG6TS.js";
13
- import {
14
- Tooltip
15
- } from "./chunk-MDB26F6T.js";
16
13
  import {
17
14
  Theme
18
15
  } from "./chunk-EWGHVZL5.js";
16
+ import {
17
+ Tooltip
18
+ } from "./chunk-MDB26F6T.js";
19
19
  import {
20
20
  Select
21
21
  } from "./chunk-U6W5E3XW.js";