xertica-ui 2.9.9 → 3.0.0
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/CHANGELOG.md +13 -0
- package/README.md +1 -1
- package/components/layout/sidebar/sidebar.stories.tsx +9 -9
- package/components/layout/sidebar/sidebar.tsx +5 -5
- package/contexts/LayoutContext.tsx +1 -1
- package/dist/AudioPlayer-C93eMH6U.cjs +1282 -0
- package/dist/AudioPlayer-DSYSMpXw.js +1278 -0
- package/dist/LayoutContext-BLoSFOuO.cjs +96 -0
- package/dist/LayoutContext-BqtKcSlN.js +92 -0
- package/dist/VerifyEmailPage-CEtb3BJC.cjs +3305 -0
- package/dist/VerifyEmailPage-cg4USiDN.js +3295 -0
- package/dist/XerticaProvider-DUbkitXG.js +45 -0
- package/dist/XerticaProvider-Uvdhs7zH.cjs +47 -0
- package/dist/brand.cjs.js +1 -1
- package/dist/brand.es.js +1 -1
- package/dist/components/layout/sidebar/sidebar.d.ts +1 -1
- package/dist/hooks.cjs.js +2 -2
- package/dist/hooks.es.js +3 -3
- package/dist/index.cjs.js +5 -5
- package/dist/index.es.js +5 -5
- package/dist/layout.cjs.js +1 -1
- package/dist/layout.es.js +1 -1
- package/dist/media.cjs.js +1 -1
- package/dist/media.es.js +1 -1
- package/dist/pages.cjs.js +1 -1
- package/dist/pages.es.js +1 -1
- package/dist/sidebar-BCjbD0Pi.cjs +1154 -0
- package/dist/sidebar-Dg1TVmaI.js +1151 -0
- package/dist/use-audio-player-BjC4swHi.cjs +190 -0
- package/dist/use-audio-player-D56MYa5x.js +188 -0
- package/dist/xertica-ui.css +1 -1
- package/docs/ai-usage.md +1 -1
- package/docs/components/sidebar.md +4 -4
- package/docs/layout.md +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const React = require('react');
|
|
5
|
+
const useMobile = require('./use-mobile-BdXTRb0Z.cjs');
|
|
6
|
+
|
|
7
|
+
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
8
|
+
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
9
|
+
const LayoutContext = React.createContext(void 0);
|
|
10
|
+
function getCookie(name) {
|
|
11
|
+
if (typeof document === "undefined") return null;
|
|
12
|
+
const nameLenPlus = name.length + 1;
|
|
13
|
+
return document.cookie.split(";").map((c) => c.trim()).filter((cookie) => {
|
|
14
|
+
return cookie.substring(0, nameLenPlus) === `${name}=`;
|
|
15
|
+
}).map((cookie) => {
|
|
16
|
+
return decodeURIComponent(cookie.substring(nameLenPlus));
|
|
17
|
+
})[0] || null;
|
|
18
|
+
}
|
|
19
|
+
function setCookie(name, value) {
|
|
20
|
+
if (typeof document === "undefined") return;
|
|
21
|
+
document.cookie = `${name}=${value}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}; SameSite=Lax`;
|
|
22
|
+
}
|
|
23
|
+
function LayoutProvider({ children }) {
|
|
24
|
+
const [sidebarExpanded, setSidebarExpandedState] = React.useState(() => {
|
|
25
|
+
if (typeof document === "undefined") return false;
|
|
26
|
+
const saved = getCookie(SIDEBAR_COOKIE_NAME);
|
|
27
|
+
return saved === "true";
|
|
28
|
+
});
|
|
29
|
+
const [assistenteExpanded, setAssistenteExpandedState] = React.useState(false);
|
|
30
|
+
const [sidebarWidth, setSidebarWidth] = React.useState(320);
|
|
31
|
+
const isMobile = useMobile.useIsMobile();
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
setCookie(SIDEBAR_COOKIE_NAME, sidebarExpanded.toString());
|
|
34
|
+
}, [sidebarExpanded]);
|
|
35
|
+
const toggleSidebar = React.useCallback(() => {
|
|
36
|
+
setSidebarExpandedState((prev) => {
|
|
37
|
+
const newState = !prev;
|
|
38
|
+
if (newState && assistenteExpanded) {
|
|
39
|
+
setAssistenteExpandedState(false);
|
|
40
|
+
}
|
|
41
|
+
return newState;
|
|
42
|
+
});
|
|
43
|
+
}, [assistenteExpanded]);
|
|
44
|
+
const toggleAssistente = React.useCallback(() => {
|
|
45
|
+
setAssistenteExpandedState((prev) => {
|
|
46
|
+
const newState = !prev;
|
|
47
|
+
if (newState && sidebarExpanded) {
|
|
48
|
+
setSidebarExpandedState(false);
|
|
49
|
+
}
|
|
50
|
+
return newState;
|
|
51
|
+
});
|
|
52
|
+
}, [sidebarExpanded]);
|
|
53
|
+
const toggleAssistenteWithTab = React.useCallback(
|
|
54
|
+
(tab) => {
|
|
55
|
+
if (!assistenteExpanded) {
|
|
56
|
+
if (sidebarExpanded) {
|
|
57
|
+
setSidebarExpandedState(false);
|
|
58
|
+
}
|
|
59
|
+
setAssistenteExpandedState(true);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
[assistenteExpanded, sidebarExpanded]
|
|
63
|
+
);
|
|
64
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
65
|
+
LayoutContext.Provider,
|
|
66
|
+
{
|
|
67
|
+
value: {
|
|
68
|
+
sidebarExpanded,
|
|
69
|
+
assistenteExpanded,
|
|
70
|
+
toggleSidebar,
|
|
71
|
+
toggleAssistente,
|
|
72
|
+
toggleAssistenteWithTab,
|
|
73
|
+
setSidebarExpanded: setSidebarExpandedState,
|
|
74
|
+
setAssistenteExpanded: setAssistenteExpandedState,
|
|
75
|
+
sidebarWidth,
|
|
76
|
+
setSidebarWidth,
|
|
77
|
+
isMobile
|
|
78
|
+
},
|
|
79
|
+
children
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
function useLayout() {
|
|
84
|
+
const context = React.useContext(LayoutContext);
|
|
85
|
+
if (context === void 0) {
|
|
86
|
+
throw new Error("useLayout must be used within a LayoutProvider");
|
|
87
|
+
}
|
|
88
|
+
return context;
|
|
89
|
+
}
|
|
90
|
+
function useOptionalLayout() {
|
|
91
|
+
return React.useContext(LayoutContext) ?? null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
exports.LayoutProvider = LayoutProvider;
|
|
95
|
+
exports.useLayout = useLayout;
|
|
96
|
+
exports.useOptionalLayout = useOptionalLayout;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useState, useEffect, useCallback, useContext } from 'react';
|
|
3
|
+
import { u as useIsMobile } from './use-mobile-Ce2cBAQe.js';
|
|
4
|
+
|
|
5
|
+
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
6
|
+
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
7
|
+
const LayoutContext = createContext(void 0);
|
|
8
|
+
function getCookie(name) {
|
|
9
|
+
if (typeof document === "undefined") return null;
|
|
10
|
+
const nameLenPlus = name.length + 1;
|
|
11
|
+
return document.cookie.split(";").map((c) => c.trim()).filter((cookie) => {
|
|
12
|
+
return cookie.substring(0, nameLenPlus) === `${name}=`;
|
|
13
|
+
}).map((cookie) => {
|
|
14
|
+
return decodeURIComponent(cookie.substring(nameLenPlus));
|
|
15
|
+
})[0] || null;
|
|
16
|
+
}
|
|
17
|
+
function setCookie(name, value) {
|
|
18
|
+
if (typeof document === "undefined") return;
|
|
19
|
+
document.cookie = `${name}=${value}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}; SameSite=Lax`;
|
|
20
|
+
}
|
|
21
|
+
function LayoutProvider({ children }) {
|
|
22
|
+
const [sidebarExpanded, setSidebarExpandedState] = useState(() => {
|
|
23
|
+
if (typeof document === "undefined") return false;
|
|
24
|
+
const saved = getCookie(SIDEBAR_COOKIE_NAME);
|
|
25
|
+
return saved === "true";
|
|
26
|
+
});
|
|
27
|
+
const [assistenteExpanded, setAssistenteExpandedState] = useState(false);
|
|
28
|
+
const [sidebarWidth, setSidebarWidth] = useState(320);
|
|
29
|
+
const isMobile = useIsMobile();
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
setCookie(SIDEBAR_COOKIE_NAME, sidebarExpanded.toString());
|
|
32
|
+
}, [sidebarExpanded]);
|
|
33
|
+
const toggleSidebar = useCallback(() => {
|
|
34
|
+
setSidebarExpandedState((prev) => {
|
|
35
|
+
const newState = !prev;
|
|
36
|
+
if (newState && assistenteExpanded) {
|
|
37
|
+
setAssistenteExpandedState(false);
|
|
38
|
+
}
|
|
39
|
+
return newState;
|
|
40
|
+
});
|
|
41
|
+
}, [assistenteExpanded]);
|
|
42
|
+
const toggleAssistente = useCallback(() => {
|
|
43
|
+
setAssistenteExpandedState((prev) => {
|
|
44
|
+
const newState = !prev;
|
|
45
|
+
if (newState && sidebarExpanded) {
|
|
46
|
+
setSidebarExpandedState(false);
|
|
47
|
+
}
|
|
48
|
+
return newState;
|
|
49
|
+
});
|
|
50
|
+
}, [sidebarExpanded]);
|
|
51
|
+
const toggleAssistenteWithTab = useCallback(
|
|
52
|
+
(tab) => {
|
|
53
|
+
if (!assistenteExpanded) {
|
|
54
|
+
if (sidebarExpanded) {
|
|
55
|
+
setSidebarExpandedState(false);
|
|
56
|
+
}
|
|
57
|
+
setAssistenteExpandedState(true);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
[assistenteExpanded, sidebarExpanded]
|
|
61
|
+
);
|
|
62
|
+
return /* @__PURE__ */ jsx(
|
|
63
|
+
LayoutContext.Provider,
|
|
64
|
+
{
|
|
65
|
+
value: {
|
|
66
|
+
sidebarExpanded,
|
|
67
|
+
assistenteExpanded,
|
|
68
|
+
toggleSidebar,
|
|
69
|
+
toggleAssistente,
|
|
70
|
+
toggleAssistenteWithTab,
|
|
71
|
+
setSidebarExpanded: setSidebarExpandedState,
|
|
72
|
+
setAssistenteExpanded: setAssistenteExpandedState,
|
|
73
|
+
sidebarWidth,
|
|
74
|
+
setSidebarWidth,
|
|
75
|
+
isMobile
|
|
76
|
+
},
|
|
77
|
+
children
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
function useLayout() {
|
|
82
|
+
const context = useContext(LayoutContext);
|
|
83
|
+
if (context === void 0) {
|
|
84
|
+
throw new Error("useLayout must be used within a LayoutProvider");
|
|
85
|
+
}
|
|
86
|
+
return context;
|
|
87
|
+
}
|
|
88
|
+
function useOptionalLayout() {
|
|
89
|
+
return useContext(LayoutContext) ?? null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { LayoutProvider as L, useOptionalLayout as a, useLayout as u };
|