analytica-frontend-lib 1.1.48 → 1.1.49

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.
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Hook para detectar preferências do sistema e aplicar dark mode automaticamente
3
+ * Este hook aplica o theme baseado nas preferências do sistema (prefers-color-scheme)
4
+ * na inicialização do componente.
5
+ */
6
+ declare const useTheme: () => void;
7
+
8
+ export { useTheme };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Hook para detectar preferências do sistema e aplicar dark mode automaticamente
3
+ * Este hook aplica o theme baseado nas preferências do sistema (prefers-color-scheme)
4
+ * na inicialização do componente.
5
+ */
6
+ declare const useTheme: () => void;
7
+
8
+ export { useTheme };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/hooks/useTheme.ts
21
+ var useTheme_exports = {};
22
+ __export(useTheme_exports, {
23
+ useTheme: () => useTheme
24
+ });
25
+ module.exports = __toCommonJS(useTheme_exports);
26
+ var import_react = require("react");
27
+ var useTheme = () => {
28
+ (0, import_react.useEffect)(() => {
29
+ const htmlElement = document.documentElement;
30
+ const currentTheme = htmlElement.getAttribute("data-theme");
31
+ if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
32
+ htmlElement.setAttribute("data-original-theme", currentTheme);
33
+ }
34
+ const applyTheme = () => {
35
+ const isDarkMode = window.matchMedia(
36
+ "(prefers-color-scheme: dark)"
37
+ ).matches;
38
+ const originalTheme = htmlElement.getAttribute("data-original-theme");
39
+ if (isDarkMode) {
40
+ htmlElement.setAttribute("data-theme", "dark");
41
+ } else if (originalTheme) {
42
+ htmlElement.setAttribute("data-theme", originalTheme);
43
+ }
44
+ };
45
+ applyTheme();
46
+ }, []);
47
+ };
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ useTheme
51
+ });
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/useTheme.ts"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * Hook para detectar preferências do sistema e aplicar dark mode automaticamente\n * Este hook aplica o theme baseado nas preferências do sistema (prefers-color-scheme)\n * na inicialização do componente.\n */\nexport const useTheme = () => {\n useEffect(() => {\n const htmlElement = document.documentElement;\n\n // Salva o theme original do white label na primeira execução\n const currentTheme = htmlElement.getAttribute('data-theme');\n if (currentTheme && !htmlElement.getAttribute('data-original-theme')) {\n htmlElement.setAttribute('data-original-theme', currentTheme);\n }\n\n // Função para aplicar o theme baseado nas preferências do sistema\n const applyTheme = () => {\n const isDarkMode = window.matchMedia(\n '(prefers-color-scheme: dark)'\n ).matches;\n const originalTheme = htmlElement.getAttribute('data-original-theme');\n\n if (isDarkMode) {\n // Aplica o theme dark\n htmlElement.setAttribute('data-theme', 'dark');\n } else if (originalTheme) {\n // Restaura o theme light do white label\n htmlElement.setAttribute('data-theme', originalTheme);\n }\n };\n\n // Aplica o theme inicial\n applyTheme();\n }, []);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAOnB,IAAM,WAAW,MAAM;AAC5B,8BAAU,MAAM;AACd,UAAM,cAAc,SAAS;AAG7B,UAAM,eAAe,YAAY,aAAa,YAAY;AAC1D,QAAI,gBAAgB,CAAC,YAAY,aAAa,qBAAqB,GAAG;AACpE,kBAAY,aAAa,uBAAuB,YAAY;AAAA,IAC9D;AAGA,UAAM,aAAa,MAAM;AACvB,YAAM,aAAa,OAAO;AAAA,QACxB;AAAA,MACF,EAAE;AACF,YAAM,gBAAgB,YAAY,aAAa,qBAAqB;AAEpE,UAAI,YAAY;AAEd,oBAAY,aAAa,cAAc,MAAM;AAAA,MAC/C,WAAW,eAAe;AAExB,oBAAY,aAAa,cAAc,aAAa;AAAA,MACtD;AAAA,IACF;AAGA,eAAW;AAAA,EACb,GAAG,CAAC,CAAC;AACP;","names":[]}
@@ -0,0 +1,27 @@
1
+ // src/hooks/useTheme.ts
2
+ import { useEffect } from "react";
3
+ var useTheme = () => {
4
+ useEffect(() => {
5
+ const htmlElement = document.documentElement;
6
+ const currentTheme = htmlElement.getAttribute("data-theme");
7
+ if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
8
+ htmlElement.setAttribute("data-original-theme", currentTheme);
9
+ }
10
+ const applyTheme = () => {
11
+ const isDarkMode = window.matchMedia(
12
+ "(prefers-color-scheme: dark)"
13
+ ).matches;
14
+ const originalTheme = htmlElement.getAttribute("data-original-theme");
15
+ if (isDarkMode) {
16
+ htmlElement.setAttribute("data-theme", "dark");
17
+ } else if (originalTheme) {
18
+ htmlElement.setAttribute("data-theme", originalTheme);
19
+ }
20
+ };
21
+ applyTheme();
22
+ }, []);
23
+ };
24
+ export {
25
+ useTheme
26
+ };
27
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/useTheme.ts"],"sourcesContent":["import { useEffect } from 'react';\n\n/**\n * Hook para detectar preferências do sistema e aplicar dark mode automaticamente\n * Este hook aplica o theme baseado nas preferências do sistema (prefers-color-scheme)\n * na inicialização do componente.\n */\nexport const useTheme = () => {\n useEffect(() => {\n const htmlElement = document.documentElement;\n\n // Salva o theme original do white label na primeira execução\n const currentTheme = htmlElement.getAttribute('data-theme');\n if (currentTheme && !htmlElement.getAttribute('data-original-theme')) {\n htmlElement.setAttribute('data-original-theme', currentTheme);\n }\n\n // Função para aplicar o theme baseado nas preferências do sistema\n const applyTheme = () => {\n const isDarkMode = window.matchMedia(\n '(prefers-color-scheme: dark)'\n ).matches;\n const originalTheme = htmlElement.getAttribute('data-original-theme');\n\n if (isDarkMode) {\n // Aplica o theme dark\n htmlElement.setAttribute('data-theme', 'dark');\n } else if (originalTheme) {\n // Restaura o theme light do white label\n htmlElement.setAttribute('data-theme', originalTheme);\n }\n };\n\n // Aplica o theme inicial\n applyTheme();\n }, []);\n};\n"],"mappings":";AAAA,SAAS,iBAAiB;AAOnB,IAAM,WAAW,MAAM;AAC5B,YAAU,MAAM;AACd,UAAM,cAAc,SAAS;AAG7B,UAAM,eAAe,YAAY,aAAa,YAAY;AAC1D,QAAI,gBAAgB,CAAC,YAAY,aAAa,qBAAqB,GAAG;AACpE,kBAAY,aAAa,uBAAuB,YAAY;AAAA,IAC9D;AAGA,UAAM,aAAa,MAAM;AACvB,YAAM,aAAa,OAAO;AAAA,QACxB;AAAA,MACF,EAAE;AACF,YAAM,gBAAgB,YAAY,aAAa,qBAAqB;AAEpE,UAAI,YAAY;AAEd,oBAAY,aAAa,cAAc,MAAM;AAAA,MAC/C,WAAW,eAAe;AAExB,oBAAY,aAAa,cAAc,aAAa;AAAA,MACtD;AAAA,IACF;AAGA,eAAW;AAAA,EACb,GAAG,CAAC,CAAC;AACP;","names":[]}
package/dist/index.d.mts CHANGED
@@ -32,6 +32,7 @@ export { AlertDialog } from './AlertDialog/index.mjs';
32
32
  export { MultipleChoiceList } from './MultipleChoice/index.mjs';
33
33
  export { default as IconRender } from './IconRender/index.mjs';
34
34
  export { DeviceType, getDeviceType, useMobile } from './hooks/useMobile/index.mjs';
35
+ export { useTheme } from './hooks/useTheme/index.mjs';
35
36
  export { default as DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, MenuLabel, ProfileMenuFooter, ProfileMenuHeader, ProfileMenuSection, ProfileMenuTrigger } from './DropdownMenu/index.mjs';
36
37
  export { default as Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './Select/index.mjs';
37
38
  export { default as Menu, MenuContent, MenuItem, MenuOverflow } from './Menu/index.mjs';
package/dist/index.d.ts CHANGED
@@ -32,6 +32,7 @@ export { AlertDialog } from './AlertDialog/index.js';
32
32
  export { MultipleChoiceList } from './MultipleChoice/index.js';
33
33
  export { default as IconRender } from './IconRender/index.js';
34
34
  export { DeviceType, getDeviceType, useMobile } from './hooks/useMobile/index.js';
35
+ export { useTheme } from './hooks/useTheme/index.js';
35
36
  export { default as DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, MenuLabel, ProfileMenuFooter, ProfileMenuHeader, ProfileMenuSection, ProfileMenuTrigger } from './DropdownMenu/index.js';
36
37
  export { default as Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './Select/index.js';
37
38
  export { default as Menu, MenuContent, MenuItem, MenuOverflow } from './Menu/index.js';