@diwauhris/ui 1.7.12 → 1.7.13

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/lib/assets/ui.css CHANGED
@@ -4411,7 +4411,7 @@ body {
4411
4411
  /* ── Date Picker (react-calendar DIWA theme) ─────────────────────────────── */
4412
4412
  .pis-datepicker-popover {
4413
4413
  position: absolute;
4414
- z-index: 50;
4414
+ z-index: 1050;
4415
4415
  margin-top: 6px;
4416
4416
  background: #fff;
4417
4417
  border: 1px solid #dde3ec;
package/lib/index.cjs CHANGED
@@ -1434,21 +1434,26 @@ function DatePicker({ value, onChange, placeholder, className, disabled, error,
1434
1434
  }, []);
1435
1435
  (0, react.useEffect)(() => {
1436
1436
  if (!isOpen) return;
1437
- function handleScroll() {
1437
+ function handleScroll(e) {
1438
+ if (wrapperRef.current && wrapperRef.current.contains(e.target)) return;
1439
+ setIsOpen(false);
1440
+ }
1441
+ function handleResize() {
1438
1442
  setIsOpen(false);
1439
1443
  }
1440
1444
  window.addEventListener("scroll", handleScroll, { capture: true });
1441
- window.addEventListener("resize", handleScroll);
1445
+ window.addEventListener("resize", handleResize);
1442
1446
  return () => {
1443
1447
  window.removeEventListener("scroll", handleScroll, { capture: true });
1444
- window.removeEventListener("resize", handleScroll);
1448
+ window.removeEventListener("resize", handleResize);
1445
1449
  };
1446
1450
  }, [isOpen]);
1447
1451
  (0, react.useEffect)(() => {
1448
1452
  if (!isOpen) return;
1449
1453
  function handleFocusOut(e) {
1450
1454
  if (!e.relatedTarget) return;
1451
- if (wrapperRef.current && !wrapperRef.current.contains(e.relatedTarget)) setIsOpen(false);
1455
+ const target = e.relatedTarget;
1456
+ if (wrapperRef.current && !wrapperRef.current.contains(target) && popoverRef.current && !popoverRef.current.contains(target)) setIsOpen(false);
1452
1457
  }
1453
1458
  const wrapper = wrapperRef.current;
1454
1459
  wrapper?.addEventListener("focusout", handleFocusOut);
package/lib/index.mjs CHANGED
@@ -1410,21 +1410,26 @@ function DatePicker({ value, onChange, placeholder, className, disabled, error,
1410
1410
  }, []);
1411
1411
  useEffect(() => {
1412
1412
  if (!isOpen) return;
1413
- function handleScroll() {
1413
+ function handleScroll(e) {
1414
+ if (wrapperRef.current && wrapperRef.current.contains(e.target)) return;
1415
+ setIsOpen(false);
1416
+ }
1417
+ function handleResize() {
1414
1418
  setIsOpen(false);
1415
1419
  }
1416
1420
  window.addEventListener("scroll", handleScroll, { capture: true });
1417
- window.addEventListener("resize", handleScroll);
1421
+ window.addEventListener("resize", handleResize);
1418
1422
  return () => {
1419
1423
  window.removeEventListener("scroll", handleScroll, { capture: true });
1420
- window.removeEventListener("resize", handleScroll);
1424
+ window.removeEventListener("resize", handleResize);
1421
1425
  };
1422
1426
  }, [isOpen]);
1423
1427
  useEffect(() => {
1424
1428
  if (!isOpen) return;
1425
1429
  function handleFocusOut(e) {
1426
1430
  if (!e.relatedTarget) return;
1427
- if (wrapperRef.current && !wrapperRef.current.contains(e.relatedTarget)) setIsOpen(false);
1431
+ const target = e.relatedTarget;
1432
+ if (wrapperRef.current && !wrapperRef.current.contains(target) && popoverRef.current && !popoverRef.current.contains(target)) setIsOpen(false);
1428
1433
  }
1429
1434
  const wrapper = wrapperRef.current;
1430
1435
  wrapper?.addEventListener("focusout", handleFocusOut);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@diwauhris/ui",
3
3
  "private": false,
4
- "version": "1.7.12",
4
+ "version": "1.7.13",
5
5
  "type": "module",
6
6
  "description": "DIWA UHRIS UI component library — React + Tailwind CSS",
7
7
  "keywords": [