analytica-frontend-lib 1.1.67 → 1.1.69
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/DropdownMenu/index.js +110 -75
- package/dist/DropdownMenu/index.js.map +1 -1
- package/dist/DropdownMenu/index.mjs +114 -79
- package/dist/DropdownMenu/index.mjs.map +1 -1
- package/dist/Menu/index.js +1 -1
- package/dist/Menu/index.js.map +1 -1
- package/dist/Menu/index.mjs +1 -1
- package/dist/Menu/index.mjs.map +1 -1
- package/dist/NotificationCard/index.js +112 -77
- package/dist/NotificationCard/index.js.map +1 -1
- package/dist/NotificationCard/index.mjs +123 -88
- package/dist/NotificationCard/index.mjs.map +1 -1
- package/dist/Search/index.js +110 -75
- package/dist/Search/index.js.map +1 -1
- package/dist/Search/index.mjs +119 -84
- package/dist/Search/index.mjs.map +1 -1
- package/dist/ThemeToggle/index.d.mts +3 -1
- package/dist/ThemeToggle/index.d.ts +3 -1
- package/dist/ThemeToggle/index.js +102 -67
- package/dist/ThemeToggle/index.js.map +1 -1
- package/dist/ThemeToggle/index.mjs +105 -70
- package/dist/ThemeToggle/index.mjs.map +1 -1
- package/dist/hooks/useTheme/index.d.mts +6 -2
- package/dist/hooks/useTheme/index.d.ts +6 -2
- package/dist/hooks/useTheme/index.js +102 -67
- package/dist/hooks/useTheme/index.js.map +1 -1
- package/dist/hooks/useTheme/index.mjs +103 -68
- package/dist/hooks/useTheme/index.mjs.map +1 -1
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +133 -96
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +252 -216
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +2 -2
- package/dist/styles.css.map +1 -1
- package/dist/themeStore-P2X64zC-.d.mts +79 -0
- package/dist/themeStore-P2X64zC-.d.ts +79 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/components/NotificationCard/NotificationCard.tsx
|
|
2
2
|
import { DotsThreeVertical, Bell as Bell2 } from "phosphor-react";
|
|
3
|
-
import { useState as
|
|
3
|
+
import { useState as useState4, useEffect as useEffect6 } from "react";
|
|
4
4
|
|
|
5
5
|
// src/utils/utils.ts
|
|
6
6
|
import { clsx } from "clsx";
|
|
@@ -14,13 +14,13 @@ import { CaretRight, SignOut, User } from "phosphor-react";
|
|
|
14
14
|
import {
|
|
15
15
|
forwardRef as forwardRef2,
|
|
16
16
|
useEffect as useEffect4,
|
|
17
|
-
useRef
|
|
17
|
+
useRef,
|
|
18
18
|
isValidElement,
|
|
19
19
|
Children,
|
|
20
20
|
cloneElement,
|
|
21
|
-
useState as
|
|
21
|
+
useState as useState2
|
|
22
22
|
} from "react";
|
|
23
|
-
import { create, useStore } from "zustand";
|
|
23
|
+
import { create as create2, useStore } from "zustand";
|
|
24
24
|
|
|
25
25
|
// src/components/Button/Button.tsx
|
|
26
26
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -356,7 +356,7 @@ var Modal_default = Modal;
|
|
|
356
356
|
|
|
357
357
|
// src/components/ThemeToggle/ThemeToggle.tsx
|
|
358
358
|
import { Moon, Sun } from "phosphor-react";
|
|
359
|
-
import { useState
|
|
359
|
+
import { useState, useEffect as useEffect3 } from "react";
|
|
360
360
|
|
|
361
361
|
// src/components/SelectionButton/SelectionButton.tsx
|
|
362
362
|
import { forwardRef } from "react";
|
|
@@ -414,83 +414,118 @@ SelectionButton.displayName = "SelectionButton";
|
|
|
414
414
|
var SelectionButton_default = SelectionButton;
|
|
415
415
|
|
|
416
416
|
// src/hooks/useTheme.ts
|
|
417
|
-
import { useEffect as useEffect2
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
417
|
+
import { useEffect as useEffect2 } from "react";
|
|
418
|
+
|
|
419
|
+
// src/store/themeStore.ts
|
|
420
|
+
import { create } from "zustand";
|
|
421
|
+
import { devtools, persist } from "zustand/middleware";
|
|
422
|
+
var applyThemeToDOM = (mode) => {
|
|
423
|
+
const htmlElement = document.documentElement;
|
|
424
|
+
const originalTheme = htmlElement.getAttribute("data-original-theme");
|
|
425
|
+
if (mode === "dark") {
|
|
426
|
+
htmlElement.setAttribute("data-theme", "dark");
|
|
427
|
+
return true;
|
|
428
|
+
} else if (mode === "light") {
|
|
429
|
+
if (originalTheme) {
|
|
430
|
+
htmlElement.setAttribute("data-theme", originalTheme);
|
|
431
|
+
}
|
|
432
|
+
return false;
|
|
433
|
+
} else if (mode === "system") {
|
|
434
|
+
const isSystemDark = window.matchMedia(
|
|
435
|
+
"(prefers-color-scheme: dark)"
|
|
436
|
+
).matches;
|
|
437
|
+
if (isSystemDark) {
|
|
426
438
|
htmlElement.setAttribute("data-theme", "dark");
|
|
427
|
-
|
|
428
|
-
} else if (
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
}
|
|
432
|
-
setIsDark(false);
|
|
433
|
-
} else if (mode === "system") {
|
|
434
|
-
const isSystemDark = window.matchMedia(
|
|
435
|
-
"(prefers-color-scheme: dark)"
|
|
436
|
-
).matches;
|
|
437
|
-
if (isSystemDark) {
|
|
438
|
-
htmlElement.setAttribute("data-theme", "dark");
|
|
439
|
-
setIsDark(true);
|
|
440
|
-
} else if (originalTheme) {
|
|
441
|
-
htmlElement.setAttribute("data-theme", originalTheme);
|
|
442
|
-
setIsDark(false);
|
|
443
|
-
}
|
|
439
|
+
return true;
|
|
440
|
+
} else if (originalTheme) {
|
|
441
|
+
htmlElement.setAttribute("data-theme", originalTheme);
|
|
442
|
+
return false;
|
|
444
443
|
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
444
|
+
}
|
|
445
|
+
return false;
|
|
446
|
+
};
|
|
447
|
+
var saveOriginalTheme = () => {
|
|
448
|
+
const htmlElement = document.documentElement;
|
|
449
|
+
const currentTheme = htmlElement.getAttribute("data-theme");
|
|
450
|
+
if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
|
|
451
|
+
htmlElement.setAttribute("data-original-theme", currentTheme);
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
var useThemeStore = create()(
|
|
455
|
+
devtools(
|
|
456
|
+
persist(
|
|
457
|
+
(set, get) => ({
|
|
458
|
+
// Initial state
|
|
459
|
+
themeMode: "system",
|
|
460
|
+
isDark: false,
|
|
461
|
+
// Actions
|
|
462
|
+
applyTheme: (mode) => {
|
|
463
|
+
const isDark = applyThemeToDOM(mode);
|
|
464
|
+
set({ isDark });
|
|
465
|
+
},
|
|
466
|
+
toggleTheme: () => {
|
|
467
|
+
const { themeMode, applyTheme } = get();
|
|
468
|
+
let newMode;
|
|
469
|
+
if (themeMode === "light") {
|
|
470
|
+
newMode = "dark";
|
|
471
|
+
} else if (themeMode === "dark") {
|
|
472
|
+
newMode = "light";
|
|
473
|
+
} else {
|
|
474
|
+
newMode = "dark";
|
|
475
|
+
}
|
|
476
|
+
set({ themeMode: newMode });
|
|
477
|
+
applyTheme(newMode);
|
|
478
|
+
},
|
|
479
|
+
setTheme: (mode) => {
|
|
480
|
+
const { applyTheme } = get();
|
|
481
|
+
set({ themeMode: mode });
|
|
482
|
+
applyTheme(mode);
|
|
483
|
+
},
|
|
484
|
+
initializeTheme: () => {
|
|
485
|
+
const { themeMode, applyTheme } = get();
|
|
486
|
+
saveOriginalTheme();
|
|
487
|
+
applyTheme(themeMode);
|
|
488
|
+
},
|
|
489
|
+
handleSystemThemeChange: () => {
|
|
490
|
+
const { themeMode, applyTheme } = get();
|
|
491
|
+
if (themeMode === "system") {
|
|
492
|
+
applyTheme("system");
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}),
|
|
496
|
+
{
|
|
497
|
+
name: "theme-store",
|
|
498
|
+
// Nome da chave no localStorage
|
|
499
|
+
partialize: (state) => ({
|
|
500
|
+
themeMode: state.themeMode
|
|
501
|
+
})
|
|
502
|
+
// Só persiste o themeMode, não o isDark
|
|
503
|
+
}
|
|
504
|
+
),
|
|
505
|
+
{
|
|
506
|
+
name: "theme-store"
|
|
454
507
|
}
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
const
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
);
|
|
508
|
+
)
|
|
509
|
+
);
|
|
510
|
+
|
|
511
|
+
// src/hooks/useTheme.ts
|
|
512
|
+
var useTheme = () => {
|
|
513
|
+
const {
|
|
514
|
+
themeMode,
|
|
515
|
+
isDark,
|
|
516
|
+
toggleTheme,
|
|
517
|
+
setTheme,
|
|
518
|
+
initializeTheme,
|
|
519
|
+
handleSystemThemeChange
|
|
520
|
+
} = useThemeStore();
|
|
469
521
|
useEffect2(() => {
|
|
470
|
-
|
|
471
|
-
const currentTheme = htmlElement.getAttribute("data-theme");
|
|
472
|
-
if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
|
|
473
|
-
htmlElement.setAttribute("data-original-theme", currentTheme);
|
|
474
|
-
}
|
|
475
|
-
const savedThemeMode = localStorage.getItem("theme-mode");
|
|
476
|
-
const initialMode = savedThemeMode || "system";
|
|
477
|
-
if (!savedThemeMode) {
|
|
478
|
-
localStorage.setItem("theme-mode", "system");
|
|
479
|
-
}
|
|
480
|
-
setThemeMode(initialMode);
|
|
481
|
-
themeModeRef.current = initialMode;
|
|
482
|
-
applyTheme(initialMode);
|
|
522
|
+
initializeTheme();
|
|
483
523
|
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
484
|
-
const handleSystemThemeChange = () => {
|
|
485
|
-
if (themeModeRef.current === "system") {
|
|
486
|
-
applyTheme("system");
|
|
487
|
-
}
|
|
488
|
-
};
|
|
489
524
|
mediaQuery.addEventListener("change", handleSystemThemeChange);
|
|
490
525
|
return () => {
|
|
491
526
|
mediaQuery.removeEventListener("change", handleSystemThemeChange);
|
|
492
527
|
};
|
|
493
|
-
}, [
|
|
528
|
+
}, [initializeTheme, handleSystemThemeChange]);
|
|
494
529
|
return {
|
|
495
530
|
themeMode,
|
|
496
531
|
isDark,
|
|
@@ -506,7 +541,7 @@ var ThemeToggle = ({
|
|
|
506
541
|
onToggle
|
|
507
542
|
}) => {
|
|
508
543
|
const { themeMode, setTheme } = useTheme();
|
|
509
|
-
const [tempTheme, setTempTheme] =
|
|
544
|
+
const [tempTheme, setTempTheme] = useState(themeMode);
|
|
510
545
|
useEffect3(() => {
|
|
511
546
|
setTempTheme(themeMode);
|
|
512
547
|
}, [themeMode]);
|
|
@@ -570,7 +605,7 @@ var ThemeToggle = ({
|
|
|
570
605
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
571
606
|
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
572
607
|
function createDropdownStore() {
|
|
573
|
-
return
|
|
608
|
+
return create2((set) => ({
|
|
574
609
|
open: false,
|
|
575
610
|
setOpen: (open) => set({ open })
|
|
576
611
|
}));
|
|
@@ -603,14 +638,14 @@ var DropdownMenu = ({
|
|
|
603
638
|
open: propOpen,
|
|
604
639
|
onOpenChange
|
|
605
640
|
}) => {
|
|
606
|
-
const storeRef =
|
|
641
|
+
const storeRef = useRef(null);
|
|
607
642
|
storeRef.current ??= createDropdownStore();
|
|
608
643
|
const store = storeRef.current;
|
|
609
644
|
const { open, setOpen: storeSetOpen } = useStore(store, (s) => s);
|
|
610
645
|
const setOpen = (newOpen) => {
|
|
611
646
|
storeSetOpen(newOpen);
|
|
612
647
|
};
|
|
613
|
-
const menuRef =
|
|
648
|
+
const menuRef = useRef(null);
|
|
614
649
|
const handleArrowDownOrArrowUp = (event) => {
|
|
615
650
|
const menuContent = menuRef.current?.querySelector('[role="menu"]');
|
|
616
651
|
if (menuContent) {
|
|
@@ -734,7 +769,7 @@ var DropdownMenuContent = forwardRef2(
|
|
|
734
769
|
}, ref) => {
|
|
735
770
|
const store = useDropdownStore(externalStore);
|
|
736
771
|
const open = useStore(store, (s) => s.open);
|
|
737
|
-
const [isVisible, setIsVisible] =
|
|
772
|
+
const [isVisible, setIsVisible] = useState2(open);
|
|
738
773
|
useEffect4(() => {
|
|
739
774
|
if (open) {
|
|
740
775
|
setIsVisible(true);
|
|
@@ -893,8 +928,8 @@ var ProfileMenuHeader = forwardRef2(({ className, name, email, store: _store, ..
|
|
|
893
928
|
ProfileMenuHeader.displayName = "ProfileMenuHeader";
|
|
894
929
|
var ProfileToggleTheme = ({ ...props }) => {
|
|
895
930
|
const { themeMode, setTheme } = useTheme();
|
|
896
|
-
const [modalThemeToggle, setModalThemeToggle] =
|
|
897
|
-
const [selectedTheme, setSelectedTheme] =
|
|
931
|
+
const [modalThemeToggle, setModalThemeToggle] = useState2(false);
|
|
932
|
+
const [selectedTheme, setSelectedTheme] = useState2(themeMode);
|
|
898
933
|
const handleClick = (e) => {
|
|
899
934
|
e.preventDefault();
|
|
900
935
|
e.stopPropagation();
|
|
@@ -1308,7 +1343,7 @@ var Badge = ({
|
|
|
1308
1343
|
var Badge_default = Badge;
|
|
1309
1344
|
|
|
1310
1345
|
// src/hooks/useMobile.ts
|
|
1311
|
-
import { useState as
|
|
1346
|
+
import { useState as useState3, useEffect as useEffect5 } from "react";
|
|
1312
1347
|
var MOBILE_WIDTH = 500;
|
|
1313
1348
|
var TABLET_WIDTH = 931;
|
|
1314
1349
|
var DEFAULT_WIDTH = 1200;
|
|
@@ -1323,8 +1358,8 @@ var getDeviceType = () => {
|
|
|
1323
1358
|
return width < TABLET_WIDTH ? "responsive" : "desktop";
|
|
1324
1359
|
};
|
|
1325
1360
|
var useMobile = () => {
|
|
1326
|
-
const [isMobile, setIsMobile] =
|
|
1327
|
-
const [isTablet, setIsTablet] =
|
|
1361
|
+
const [isMobile, setIsMobile] = useState3(false);
|
|
1362
|
+
const [isTablet, setIsTablet] = useState3(false);
|
|
1328
1363
|
useEffect5(() => {
|
|
1329
1364
|
const checkScreenSize = () => {
|
|
1330
1365
|
const width = getWindowWidth();
|
|
@@ -1365,8 +1400,8 @@ var useMobile = () => {
|
|
|
1365
1400
|
};
|
|
1366
1401
|
|
|
1367
1402
|
// src/store/notificationStore.ts
|
|
1368
|
-
import { create as
|
|
1369
|
-
import { devtools } from "zustand/middleware";
|
|
1403
|
+
import { create as create3 } from "zustand";
|
|
1404
|
+
import { devtools as devtools2 } from "zustand/middleware";
|
|
1370
1405
|
var formatTimeAgo = (date) => {
|
|
1371
1406
|
const now = /* @__PURE__ */ new Date();
|
|
1372
1407
|
const diffInMs = now.getTime() - new Date(date).getTime();
|
|
@@ -1539,7 +1574,7 @@ var NotificationList = ({
|
|
|
1539
1574
|
className,
|
|
1540
1575
|
emptyStateImage
|
|
1541
1576
|
}) => {
|
|
1542
|
-
const [globalNotificationModal, setGlobalNotificationModal] =
|
|
1577
|
+
const [globalNotificationModal, setGlobalNotificationModal] = useState4({ isOpen: false, notification: null });
|
|
1543
1578
|
const handleGlobalNotificationClick = (notification) => {
|
|
1544
1579
|
if (onGlobalNotificationClick) {
|
|
1545
1580
|
onGlobalNotificationClick(notification);
|
|
@@ -1653,8 +1688,8 @@ var NotificationCenter = ({
|
|
|
1653
1688
|
className
|
|
1654
1689
|
}) => {
|
|
1655
1690
|
const { isMobile } = useMobile();
|
|
1656
|
-
const [isModalOpen, setIsModalOpen] =
|
|
1657
|
-
const [globalNotificationModal, setGlobalNotificationModal] =
|
|
1691
|
+
const [isModalOpen, setIsModalOpen] = useState4(false);
|
|
1692
|
+
const [globalNotificationModal, setGlobalNotificationModal] = useState4({ isOpen: false, notification: null });
|
|
1658
1693
|
const handleMobileClick = () => {
|
|
1659
1694
|
setIsModalOpen(true);
|
|
1660
1695
|
onFetchNotifications?.();
|