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.
Files changed (41) hide show
  1. package/dist/DropdownMenu/index.js +110 -75
  2. package/dist/DropdownMenu/index.js.map +1 -1
  3. package/dist/DropdownMenu/index.mjs +114 -79
  4. package/dist/DropdownMenu/index.mjs.map +1 -1
  5. package/dist/Menu/index.js +1 -1
  6. package/dist/Menu/index.js.map +1 -1
  7. package/dist/Menu/index.mjs +1 -1
  8. package/dist/Menu/index.mjs.map +1 -1
  9. package/dist/NotificationCard/index.js +112 -77
  10. package/dist/NotificationCard/index.js.map +1 -1
  11. package/dist/NotificationCard/index.mjs +123 -88
  12. package/dist/NotificationCard/index.mjs.map +1 -1
  13. package/dist/Search/index.js +110 -75
  14. package/dist/Search/index.js.map +1 -1
  15. package/dist/Search/index.mjs +119 -84
  16. package/dist/Search/index.mjs.map +1 -1
  17. package/dist/ThemeToggle/index.d.mts +3 -1
  18. package/dist/ThemeToggle/index.d.ts +3 -1
  19. package/dist/ThemeToggle/index.js +102 -67
  20. package/dist/ThemeToggle/index.js.map +1 -1
  21. package/dist/ThemeToggle/index.mjs +105 -70
  22. package/dist/ThemeToggle/index.mjs.map +1 -1
  23. package/dist/hooks/useTheme/index.d.mts +6 -2
  24. package/dist/hooks/useTheme/index.d.ts +6 -2
  25. package/dist/hooks/useTheme/index.js +102 -67
  26. package/dist/hooks/useTheme/index.js.map +1 -1
  27. package/dist/hooks/useTheme/index.mjs +103 -68
  28. package/dist/hooks/useTheme/index.mjs.map +1 -1
  29. package/dist/index.css +2 -2
  30. package/dist/index.css.map +1 -1
  31. package/dist/index.d.mts +3 -1
  32. package/dist/index.d.ts +3 -1
  33. package/dist/index.js +133 -96
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +252 -216
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/styles.css +2 -2
  38. package/dist/styles.css.map +1 -1
  39. package/dist/themeStore-P2X64zC-.d.mts +79 -0
  40. package/dist/themeStore-P2X64zC-.d.ts +79 -0
  41. package/package.json +1 -1
@@ -2,11 +2,11 @@
2
2
  import { CaretLeft, X as X2 } from "phosphor-react";
3
3
  import {
4
4
  forwardRef as forwardRef3,
5
- useState as useState4,
5
+ useState as useState3,
6
6
  useId as useId2,
7
7
  useMemo,
8
8
  useEffect as useEffect5,
9
- useRef as useRef3
9
+ useRef as useRef2
10
10
  } from "react";
11
11
 
12
12
  // src/components/DropdownMenu/DropdownMenu.tsx
@@ -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 as useRef2,
17
+ useRef,
18
18
  isValidElement,
19
19
  Children,
20
20
  cloneElement,
21
- useState as useState3
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/utils/utils.ts
26
26
  import { clsx } from "clsx";
@@ -363,7 +363,7 @@ var Modal_default = Modal;
363
363
 
364
364
  // src/components/ThemeToggle/ThemeToggle.tsx
365
365
  import { Moon, Sun } from "phosphor-react";
366
- import { useState as useState2, useEffect as useEffect3 } from "react";
366
+ import { useState, useEffect as useEffect3 } from "react";
367
367
 
368
368
  // src/components/SelectionButton/SelectionButton.tsx
369
369
  import { forwardRef } from "react";
@@ -421,83 +421,118 @@ SelectionButton.displayName = "SelectionButton";
421
421
  var SelectionButton_default = SelectionButton;
422
422
 
423
423
  // src/hooks/useTheme.ts
424
- import { useEffect as useEffect2, useState, useCallback, useRef } from "react";
425
- var useTheme = () => {
426
- const [themeMode, setThemeMode] = useState("system");
427
- const [isDark, setIsDark] = useState(false);
428
- const themeModeRef = useRef("system");
429
- const applyTheme = useCallback((mode) => {
430
- const htmlElement = document.documentElement;
431
- const originalTheme = htmlElement.getAttribute("data-original-theme");
432
- if (mode === "dark") {
424
+ import { useEffect as useEffect2 } from "react";
425
+
426
+ // src/store/themeStore.ts
427
+ import { create } from "zustand";
428
+ import { devtools, persist } from "zustand/middleware";
429
+ var applyThemeToDOM = (mode) => {
430
+ const htmlElement = document.documentElement;
431
+ const originalTheme = htmlElement.getAttribute("data-original-theme");
432
+ if (mode === "dark") {
433
+ htmlElement.setAttribute("data-theme", "dark");
434
+ return true;
435
+ } else if (mode === "light") {
436
+ if (originalTheme) {
437
+ htmlElement.setAttribute("data-theme", originalTheme);
438
+ }
439
+ return false;
440
+ } else if (mode === "system") {
441
+ const isSystemDark = window.matchMedia(
442
+ "(prefers-color-scheme: dark)"
443
+ ).matches;
444
+ if (isSystemDark) {
433
445
  htmlElement.setAttribute("data-theme", "dark");
434
- setIsDark(true);
435
- } else if (mode === "light") {
436
- if (originalTheme) {
437
- htmlElement.setAttribute("data-theme", originalTheme);
438
- }
439
- setIsDark(false);
440
- } else if (mode === "system") {
441
- const isSystemDark = window.matchMedia(
442
- "(prefers-color-scheme: dark)"
443
- ).matches;
444
- if (isSystemDark) {
445
- htmlElement.setAttribute("data-theme", "dark");
446
- setIsDark(true);
447
- } else if (originalTheme) {
448
- htmlElement.setAttribute("data-theme", originalTheme);
449
- setIsDark(false);
450
- }
446
+ return true;
447
+ } else if (originalTheme) {
448
+ htmlElement.setAttribute("data-theme", originalTheme);
449
+ return false;
451
450
  }
452
- }, []);
453
- const toggleTheme = useCallback(() => {
454
- let newMode;
455
- if (themeMode === "light") {
456
- newMode = "dark";
457
- } else if (themeMode === "dark") {
458
- newMode = "light";
459
- } else {
460
- newMode = "dark";
451
+ }
452
+ return false;
453
+ };
454
+ var saveOriginalTheme = () => {
455
+ const htmlElement = document.documentElement;
456
+ const currentTheme = htmlElement.getAttribute("data-theme");
457
+ if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
458
+ htmlElement.setAttribute("data-original-theme", currentTheme);
459
+ }
460
+ };
461
+ var useThemeStore = create()(
462
+ devtools(
463
+ persist(
464
+ (set, get) => ({
465
+ // Initial state
466
+ themeMode: "system",
467
+ isDark: false,
468
+ // Actions
469
+ applyTheme: (mode) => {
470
+ const isDark = applyThemeToDOM(mode);
471
+ set({ isDark });
472
+ },
473
+ toggleTheme: () => {
474
+ const { themeMode, applyTheme } = get();
475
+ let newMode;
476
+ if (themeMode === "light") {
477
+ newMode = "dark";
478
+ } else if (themeMode === "dark") {
479
+ newMode = "light";
480
+ } else {
481
+ newMode = "dark";
482
+ }
483
+ set({ themeMode: newMode });
484
+ applyTheme(newMode);
485
+ },
486
+ setTheme: (mode) => {
487
+ const { applyTheme } = get();
488
+ set({ themeMode: mode });
489
+ applyTheme(mode);
490
+ },
491
+ initializeTheme: () => {
492
+ const { themeMode, applyTheme } = get();
493
+ saveOriginalTheme();
494
+ applyTheme(themeMode);
495
+ },
496
+ handleSystemThemeChange: () => {
497
+ const { themeMode, applyTheme } = get();
498
+ if (themeMode === "system") {
499
+ applyTheme("system");
500
+ }
501
+ }
502
+ }),
503
+ {
504
+ name: "theme-store",
505
+ // Nome da chave no localStorage
506
+ partialize: (state) => ({
507
+ themeMode: state.themeMode
508
+ })
509
+ // Só persiste o themeMode, não o isDark
510
+ }
511
+ ),
512
+ {
513
+ name: "theme-store"
461
514
  }
462
- setThemeMode(newMode);
463
- themeModeRef.current = newMode;
464
- applyTheme(newMode);
465
- localStorage.setItem("theme-mode", newMode);
466
- }, [themeMode, applyTheme]);
467
- const setTheme = useCallback(
468
- (mode) => {
469
- setThemeMode(mode);
470
- themeModeRef.current = mode;
471
- applyTheme(mode);
472
- localStorage.setItem("theme-mode", mode);
473
- },
474
- [applyTheme]
475
- );
515
+ )
516
+ );
517
+
518
+ // src/hooks/useTheme.ts
519
+ var useTheme = () => {
520
+ const {
521
+ themeMode,
522
+ isDark,
523
+ toggleTheme,
524
+ setTheme,
525
+ initializeTheme,
526
+ handleSystemThemeChange
527
+ } = useThemeStore();
476
528
  useEffect2(() => {
477
- const htmlElement = document.documentElement;
478
- const currentTheme = htmlElement.getAttribute("data-theme");
479
- if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
480
- htmlElement.setAttribute("data-original-theme", currentTheme);
481
- }
482
- const savedThemeMode = localStorage.getItem("theme-mode");
483
- const initialMode = savedThemeMode || "system";
484
- if (!savedThemeMode) {
485
- localStorage.setItem("theme-mode", "system");
486
- }
487
- setThemeMode(initialMode);
488
- themeModeRef.current = initialMode;
489
- applyTheme(initialMode);
529
+ initializeTheme();
490
530
  const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
491
- const handleSystemThemeChange = () => {
492
- if (themeModeRef.current === "system") {
493
- applyTheme("system");
494
- }
495
- };
496
531
  mediaQuery.addEventListener("change", handleSystemThemeChange);
497
532
  return () => {
498
533
  mediaQuery.removeEventListener("change", handleSystemThemeChange);
499
534
  };
500
- }, [applyTheme]);
535
+ }, [initializeTheme, handleSystemThemeChange]);
501
536
  return {
502
537
  themeMode,
503
538
  isDark,
@@ -513,7 +548,7 @@ var ThemeToggle = ({
513
548
  onToggle
514
549
  }) => {
515
550
  const { themeMode, setTheme } = useTheme();
516
- const [tempTheme, setTempTheme] = useState2(themeMode);
551
+ const [tempTheme, setTempTheme] = useState(themeMode);
517
552
  useEffect3(() => {
518
553
  setTempTheme(themeMode);
519
554
  }, [themeMode]);
@@ -577,7 +612,7 @@ var ThemeToggle = ({
577
612
  // src/components/DropdownMenu/DropdownMenu.tsx
578
613
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
579
614
  function createDropdownStore() {
580
- return create((set) => ({
615
+ return create2((set) => ({
581
616
  open: false,
582
617
  setOpen: (open) => set({ open })
583
618
  }));
@@ -610,14 +645,14 @@ var DropdownMenu = ({
610
645
  open: propOpen,
611
646
  onOpenChange
612
647
  }) => {
613
- const storeRef = useRef2(null);
648
+ const storeRef = useRef(null);
614
649
  storeRef.current ??= createDropdownStore();
615
650
  const store = storeRef.current;
616
651
  const { open, setOpen: storeSetOpen } = useStore(store, (s) => s);
617
652
  const setOpen = (newOpen) => {
618
653
  storeSetOpen(newOpen);
619
654
  };
620
- const menuRef = useRef2(null);
655
+ const menuRef = useRef(null);
621
656
  const handleArrowDownOrArrowUp = (event) => {
622
657
  const menuContent = menuRef.current?.querySelector('[role="menu"]');
623
658
  if (menuContent) {
@@ -741,7 +776,7 @@ var DropdownMenuContent = forwardRef2(
741
776
  }, ref) => {
742
777
  const store = useDropdownStore(externalStore);
743
778
  const open = useStore(store, (s) => s.open);
744
- const [isVisible, setIsVisible] = useState3(open);
779
+ const [isVisible, setIsVisible] = useState2(open);
745
780
  useEffect4(() => {
746
781
  if (open) {
747
782
  setIsVisible(true);
@@ -900,8 +935,8 @@ var ProfileMenuHeader = forwardRef2(({ className, name, email, store: _store, ..
900
935
  ProfileMenuHeader.displayName = "ProfileMenuHeader";
901
936
  var ProfileToggleTheme = ({ ...props }) => {
902
937
  const { themeMode, setTheme } = useTheme();
903
- const [modalThemeToggle, setModalThemeToggle] = useState3(false);
904
- const [selectedTheme, setSelectedTheme] = useState3(themeMode);
938
+ const [modalThemeToggle, setModalThemeToggle] = useState2(false);
939
+ const [selectedTheme, setSelectedTheme] = useState2(themeMode);
905
940
  const handleClick = (e) => {
906
941
  e.preventDefault();
907
942
  e.stopPropagation();
@@ -1058,9 +1093,9 @@ var Search = forwardRef3(
1058
1093
  placeholder = "Buscar...",
1059
1094
  ...props
1060
1095
  }, ref) => {
1061
- const [dropdownOpen, setDropdownOpen] = useState4(false);
1062
- const dropdownStore = useRef3(createDropdownStore()).current;
1063
- const dropdownRef = useRef3(null);
1096
+ const [dropdownOpen, setDropdownOpen] = useState3(false);
1097
+ const dropdownStore = useRef2(createDropdownStore()).current;
1098
+ const dropdownRef = useRef2(null);
1064
1099
  const filteredOptions = useMemo(() => {
1065
1100
  if (!options.length) {
1066
1101
  return [];