sixseconds-modules 1.6.195 → 2.0.2

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.
@@ -2,9 +2,12 @@ import { IHeaderProps } from './type';
2
2
  /**
3
3
  * Public Header export.
4
4
  *
5
- * Wraps HeaderInner with MuiProvider so that:
6
- * 1. The Emotion cache is created synchronously SSR-safe, no `dynamic({ ssr: false })` needed.
7
- * 2. All MUI class names are prefixed with `sixseconds-modules-` preventing conflicts.
8
- * 3. Emotion styles are injected into a scoped cache, isolating them from the host app.
5
+ * Wraps HeaderInner in a Shadow DOM boundary (`ShadowIsland`) so that:
6
+ * 1. The host application's CSS physically cannot cross into the header it
7
+ * always renders with only its own styling, in every app it is embedded in.
8
+ * 2. The header's own styles (Emotion + stylesheet) stay inside the shadow root
9
+ * and never leak out into the host document.
10
+ * 3. MUI overlays (dialogs, tooltips) are portalled back into the shadow root,
11
+ * so they are isolated too.
9
12
  */
10
13
  export declare const Header: (props: IHeaderProps) => import("react/jsx-runtime").JSX.Element;
package/dist/index.cjs.js CHANGED
@@ -7,11 +7,12 @@ const axios = require("axios");
7
7
  const Cookies = require("js-cookie");
8
8
  const createCache = require("@emotion/cache");
9
9
  const react = require("@emotion/react");
10
- const material = require("@mui/material");
10
+ const styles = require("@mui/material/styles");
11
+ const client = require("react-dom/client");
11
12
  const MenuIcon = require("@mui/icons-material/Menu");
13
+ const material = require("@mui/material");
12
14
  const CloseIcon = require("@mui/icons-material/Close");
13
15
  const toast = require("react-hot-toast");
14
- const styles = require("@mui/material/styles");
15
16
  const VisibilityOffIcon = require("@mui/icons-material/VisibilityOff");
16
17
  const KeyboardArrowDownIcon = require("@mui/icons-material/KeyboardArrowDown");
17
18
  const LanguageIcon = require("@mui/icons-material/Language");
@@ -6239,7 +6240,7 @@ ZodEnum.create;
6239
6240
  ZodPromise.create;
6240
6241
  ZodOptional.create;
6241
6242
  ZodNullable.create;
6242
- const __vite_import_meta_env__ = { "BASE_URL": "/", "DEV": false, "MODE": "production", "PROD": true, "SSR": false, "VITE_MODULES_CARDS_ADMIN_FRONTEND_BASE_URL": "https://admin-cards.6seconds.org", "VITE_MODULES_CARDS_HOME_FRONTEND_BASE_URL": "https://cards.6seconds.org", "VITE_MODULES_CERT_FRONTEND_BASE_URL": "https://cert.6seconds.org", "VITE_MODULES_ENV": "prod", "VITE_MODULES_EVENTS_FRONTEND_BASE_URL": "https://events.6seconds.org", "VITE_MODULES_SSO_BACKEND_BASE_URL": "https://ssoapi.6seconds.org", "VITE_MODULES_SSO_FRONTEND_BASE_URL": "https://sso.6seconds.org", "VITE_MODULES_TOOLS_FRONTEND_BASE_URL": "https://newtools.6seconds.org" };
6243
+ const __vite_import_meta_env__ = { "BASE_URL": "/", "DEV": false, "MODE": "development", "PROD": true, "SSR": false, "VITE_MODULES_CARDS_ADMIN_FRONTEND_BASE_URL": "https://qa-sso.6seconds.org", "VITE_MODULES_CARDS_HOME_FRONTEND_BASE_URL": "https://qa-sso.6seconds.org", "VITE_MODULES_CERT_FRONTEND_BASE_URL": "https://qa-sso.6seconds.org", "VITE_MODULES_ENV": "qa", "VITE_MODULES_EVENTS_FRONTEND_BASE_URL": "https://qa-sso.6seconds.org", "VITE_MODULES_SSO_BACKEND_BASE_URL": "https://qa-ssoapi.6seconds.org", "VITE_MODULES_SSO_FRONTEND_BASE_URL": "https://qa-sso.6seconds.org", "VITE_MODULES_TOOLS_FRONTEND_BASE_URL": "https://qa-sso.6seconds.org" };
6243
6244
  const env = createEnv({
6244
6245
  client: {
6245
6246
  VITE_MODULES_ENV: stringType()
@@ -12872,27 +12873,72 @@ const IMAGES = {
12872
12873
  Us,
12873
12874
  DefaultLang
12874
12875
  };
12875
- const isolatedTheme = material.createTheme({
12876
- typography: {
12877
- fontFamily: "'Inter', sans-serif"
12878
- }
12879
- });
12880
- function createEmotionCache() {
12881
- const isBrowser = typeof document !== "undefined";
12882
- if (!isBrowser) {
12883
- return createCache({ key: "sixseconds" });
12884
- }
12885
- const metaTag = document.querySelector('meta[name="sixseconds-insertion-point"]');
12886
- const insertionPoint = metaTag || void 0;
12887
- return createCache({
12888
- key: "sixseconds",
12889
- insertionPoint,
12890
- prepend: !insertionPoint
12891
- });
12892
- }
12893
- function MuiProvider({ children }) {
12894
- const cacheRef = React.useRef(createEmotionCache());
12895
- return /* @__PURE__ */ jsxRuntime.jsx(react.CacheProvider, { value: cacheRef.current, children: /* @__PURE__ */ jsxRuntime.jsx(material.ThemeProvider, { theme: isolatedTheme, children }) });
12876
+ const styleText = '@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap");\n\n/* ==========================================================================\n Style isolation — keep the header looking the same in every host app.\n\n Two layers work together (see providers/shadowIsland.tsx):\n 1. `:host` — the Shadow DOM boundary reset. Inherited properties\n (font, color, line-height, letter-spacing, text-align, …) are the\n only things that cross a shadow boundary, so we neutralise them once\n here and re-establish our own baseline. Host author rules cannot\n reach past the boundary at all.\n 2. `.sixseconds-header-root` — a defensive reset for the light DOM. It\n applies when this stylesheet is used outside the shadow root (e.g. a\n consumer imports `sixseconds-modules/styles`, or during the brief\n pre-mount window), so leaked host rules for bare tags (button, a, ul,\n li, *, resets) get reverted before our styles apply.\n\n IMPORTANT — specificity/order contract:\n `.sixseconds-header-root, .sixseconds-header-root *` is specificity\n (0,1,0), identical to an Emotion-generated class. This reset is declared\n ABOVE all component rules, so at equal specificity our own MUI/Emotion\n styles (injected/declared later) always win. Never raise this reset to\n an element-qualified selector or add `!important` — that would beat the\n header\'s own styling. `all: revert` also intentionally leaves custom\n properties, `direction` and `unicode-bidi` untouched, so RTL keeps\n working.\n ========================================================================== */\n\n:host {\n /* `!important` is load-bearing: for NORMAL declarations the outer (document)\n tree wins the shadow cascade, so a host page rule that happens to match our\n host element (e.g. `div { font-family: … }`) would otherwise beat this reset\n and re-leak inherited props across the boundary. `!important` makes the inner\n (shadow) tree win. `all` intentionally leaves `direction`/`unicode-bidi` and\n custom properties untouched, so RTL context still inherits (the header has\n `[dir=\'rtl\']` handling) — this is desired. Our isolated MUI theme does not\n enable CSS variables, so no `--mui-*` host var is consumed inside the tree. */\n all: initial !important;\n box-sizing: border-box !important;\n display: block !important;\n font-family: "Inter", sans-serif !important;\n color: #1a1c1e !important;\n line-height: 1.5 !important;\n text-align: start !important;\n -webkit-font-smoothing: antialiased !important;\n}\n\n.sixseconds-header-root,\n.sixseconds-header-root *,\n.sixseconds-header-root *::before,\n.sixseconds-header-root *::after {\n all: revert;\n box-sizing: border-box;\n}\n\n.sixseconds-header-root blockquote,\n.sixseconds-header-root dl,\n.sixseconds-header-root dd,\n.sixseconds-header-root h1,\n.sixseconds-header-root h2,\n.sixseconds-header-root h3,\n.sixseconds-header-root h4,\n.sixseconds-header-root h5,\n.sixseconds-header-root h6,\n.sixseconds-header-root hr,\n.sixseconds-header-root figure,\n.sixseconds-header-root p,\n.sixseconds-header-root pre,\n.sixseconds-header-root span,\n.sixseconds-header-root a,\n.sixseconds-header-root div,\n.sixseconds-header-root li,\n.sixseconds-header-root button {\n font-family: "Inter", sans-serif !important;\n}\n\n.sixseconds-header-main-list-menu {\n display: flex;\n}\n\n.sixseconds-header-main-list-menu li {\n padding: 0.5rem 0.5rem;\n}\n\n.sixseconds-header-main-list-menu li a {\n padding: 0 0.25rem;\n font-weight: 500;\n font-size: 12px;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-item {\n position: relative;\n padding: 0 16px;\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-link {\n text-decoration: none;\n color: #2a2a2a;\n /* Closer to 6seconds */\n font-weight: 500;\n font-size: 15px;\n padding: 8px 4px;\n transition: color 0.2s ease;\n font-family: "Inter", sans-serif;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-link:hover {\n color: #0073b1;\n}\n\n/* Submenu (Dropdown) */\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-data {\n position: absolute;\n top: 150%;\n left: 0;\n background: white;\n border: 1px solid #e2e8f0;\n border-top: 3px solid #0073b1;\n box-shadow:\n 0px 12px 48px rgba(0, 0, 0, 0.12),\n 0 4px 16px rgba(0, 0, 0, 0.08);\n /* Even more premium shadow */\n display: block;\n opacity: 0;\n visibility: hidden;\n transform: translateY(12px);\n width: 200px;\n z-index: 1000;\n border-radius: 4px;\n /* More angular per 6seconds style */\n padding: 8px 0;\n transition:\n opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n visibility 0.25s;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-data li {\n list-style: none;\n padding: 0;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-link {\n display: block;\n padding: 12px 28px;\n text-decoration: none;\n color: #2a2a2a;\n /* Darker grey */\n font-weight: 400;\n font-size: 14.5px;\n line-height: 1.4;\n white-space: normal;\n transition: all 0.2s ease;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-link:hover {\n background: #f0f7fb;\n color: #0073b1;\n padding-left: 32px;\n /* Slight nudge */\n}\n\n/* Caret rotation on hover */\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-item:hover .sixseconds-header-desktop-caret {\n transform: rotate(180deg);\n}\n\n/* Show dropdown on hover */\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-item:hover .sixseconds-header-submenu-data {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n.sixseconds-header-small-device-menu {\n display: none;\n width: 100%;\n left: 0;\n top: 64px;\n background-color: #fff;\n position: fixed;\n overflow-y: auto;\n height: 95vh;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\n}\n\n.sixseconds-header-small-device-menu a.sixseconds-header-bg-main-menu {\n display: block;\n text-decoration: none;\n}\n\n.sixseconds-header-submenu-child li {\n padding: 0.5rem 0;\n}\n\n.sixseconds-header-submenu-child li a {\n text-decoration: none;\n}\n\n.sixseconds-header-layout-mobile-menu {\n padding-bottom: 12px;\n padding-inline: 0;\n height: 95vh;\n overflow-y: auto;\n padding-top: 8px;\n}\n\n.sixseconds-header-small-device-menu a {\n background-color: transparent;\n font-size: 16px;\n /* Slightly larger */\n font-weight: 600;\n /* Bolder for parent items */\n color: #1a1c1e;\n margin-bottom: 4px;\n padding: 16px 20px;\n border-bottom: 1px solid #f1f3f4;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.sixseconds-header-small-device-menu .sixseconds-header-submenu-child {\n padding-left: 0px;\n min-width: 100%;\n max-width: 100%;\n margin-top: 0;\n background-color: #fbfbfc;\n /* Slightly different background for sub-items */\n color: #1a1c1e;\n}\n\n.sixseconds-header-small-device-menu ul li .sixseconds-header-submenu-child-link {\n padding: 12px 32px;\n /* Indent more */\n font-weight: 400;\n /* Regular weight for sub-links */\n font-size: 14px;\n}\n\n.sixseconds-header-small-device-menu ul li a {\n background-color: transparent;\n color: #4a4d50;\n}\n\n.sixseconds-header-small-device-menu ul {\n padding-left: 15px;\n}\n\n.sixseconds-header-desktop-menu {\n display: flex;\n}\n\n.sixseconds-header-button-hamburger {\n display: none;\n position: absolute;\n right: 20px;\n top: 18px;\n z-index: 9;\n}\n\n.sixseconds-header-root .tox-editor-header {\n background-color: transparent;\n}\n\n.sixseconds-header-hamburger-icon-btn {\n padding: 8px;\n color: #5f6368;\n}\n\n.sixseconds-header-desktop-menu .sixseconds-header-menu-item .sixseconds-header-menu-link {\n font-size: 14px;\n font-weight: 500;\n}\n\n.sixseconds-header-small-device-menu {\n padding-inline: 20px;\n}\n\n@media screen and (max-width: 600px) and (min-width: 320px) {\n .sixseconds-header-notification-icon-error .MuiBadge-badge {\n font-size: 10px;\n padding: 0 4px;\n min-width: 16px;\n right: 5px;\n background-color: #d32f2f;\n }\n\n .sixseconds-header-submenu nav {\n padding: 0 !important;\n }\n\n .sixseconds-header-root .MuiPagination-root.MuiPagination-outlined {\n display: flex;\n justify-content: center;\n margin-left: 0;\n }\n\n .sixseconds-header-toggle-btn-menu {\n position: absolute;\n right: 20px;\n top: 12px;\n z-index: 99;\n }\n\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-desktop-menu {\n display: none;\n }\n\n .sixseconds-header-small-device-menu {\n display: block;\n width: 100%;\n position: fixed;\n left: 0;\n background: #fff;\n top: 64px;\n }\n\n .main.sixseconds-header-login-page .sixseconds-header-login-body {\n width: 90% !important;\n }\n\n .sixseconds-header-submenu {\n width: 100%;\n max-width: 100% !important;\n }\n\n .sixseconds-header-sidebar {\n width: 280px !important;\n background-color: #f9fafb;\n z-index: 99;\n border-right: 1px solid #e0e0e0;\n }\n\n .sixseconds-header-sidemenu {\n width: 280px;\n background-color: #f9fafb;\n }\n\n .sixseconds-header-logo {\n opacity: 1;\n }\n\n .sixseconds-header-profile .sixseconds-header-menu {\n min-width: 280px;\n width: 100% !important;\n }\n}\n\n@media screen and (max-width: 1024px) and (min-width: 600px) {\n .sixseconds-header-toggle-btn-menu {\n position: absolute;\n right: 20px;\n top: 12px;\n }\n\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-desktop-menu {\n display: none;\n }\n\n .sixseconds-header-small-device-menu {\n display: block;\n }\n\n .main.sixseconds-header-login-page .sixseconds-header-login-body {\n width: 450px !important;\n }\n\n .sixseconds-header-banner {\n margin-left: 0 !important;\n }\n\n .sixseconds-header-submenu {\n width: 100%;\n max-width: 100% !important;\n }\n\n .sixseconds-header-sidebar {\n width: 280px !important;\n background-color: #f9fafb;\n z-index: 99;\n }\n\n .sixseconds-header-sidemenu {\n width: 280px;\n background-color: #f9fafb;\n }\n\n .sixseconds-header-logo {\n opacity: 1;\n }\n\n .sixseconds-header-profile .sixseconds-header-menu {\n min-width: 280px;\n width: 100% !important;\n }\n}\n\n@media screen and (max-width: 1380px) and (min-width: 1024px) {\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-desktop-menu {\n display: none;\n }\n\n .sixseconds-header-small-device-menu {\n display: block;\n width: 100%;\n position: fixed;\n left: 0;\n background: #fff;\n top: 64px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n}\n';
12877
+ const EMOTION_KEY = "sixseconds";
12878
+ const FONT_HREF = "https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap";
12879
+ const SHADOW_STYLES = styleText.replace(/@import\s+url\([^)]*\)\s*;?/gi, "");
12880
+ const ensureFontRegistered = () => {
12881
+ if (typeof document === "undefined") return;
12882
+ if (document.querySelector("link[data-sixseconds-font]")) return;
12883
+ const link = document.createElement("link");
12884
+ link.rel = "stylesheet";
12885
+ link.href = FONT_HREF;
12886
+ link.setAttribute("data-sixseconds-font", "true");
12887
+ document.head.appendChild(link);
12888
+ };
12889
+ function ShadowIsland({ children }) {
12890
+ const hostRef = React.useRef(null);
12891
+ const stateRef = React.useRef(null);
12892
+ const teardownRef = React.useRef(null);
12893
+ React.useEffect(() => {
12894
+ const host = hostRef.current;
12895
+ if (!host) return;
12896
+ if (teardownRef.current !== null) {
12897
+ clearTimeout(teardownRef.current);
12898
+ teardownRef.current = null;
12899
+ }
12900
+ if (!stateRef.current) {
12901
+ ensureFontRegistered();
12902
+ const shadow = host.shadowRoot ?? host.attachShadow({ mode: "open" });
12903
+ shadow.replaceChildren();
12904
+ const styleEl = document.createElement("style");
12905
+ styleEl.setAttribute("data-sixseconds-styles", "true");
12906
+ styleEl.textContent = SHADOW_STYLES;
12907
+ const emotionRoot = document.createElement("div");
12908
+ emotionRoot.setAttribute("data-sixseconds-emotion", "true");
12909
+ const mount = document.createElement("div");
12910
+ mount.setAttribute("data-sixseconds-mount", "true");
12911
+ shadow.append(styleEl, emotionRoot, mount);
12912
+ const cache = createCache({ key: EMOTION_KEY, container: emotionRoot, prepend: true });
12913
+ stateRef.current = { root: client.createRoot(mount), cache };
12914
+ }
12915
+ stateRef.current.root.render(/* @__PURE__ */ jsxRuntime.jsx(IsolatedProviders, { cache: stateRef.current.cache, children }));
12916
+ return () => {
12917
+ teardownRef.current = setTimeout(() => {
12918
+ stateRef.current?.root.unmount();
12919
+ stateRef.current = null;
12920
+ teardownRef.current = null;
12921
+ }, 0);
12922
+ };
12923
+ }, [children]);
12924
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: hostRef, className: "sixseconds-header-shadow-host", suppressHydrationWarning: true });
12925
+ }
12926
+ function IsolatedProviders({ cache, children }) {
12927
+ const overlayRef = React.useRef(null);
12928
+ const theme = React.useMemo(
12929
+ () => styles.createTheme({
12930
+ typography: { fontFamily: "'Inter', sans-serif" },
12931
+ components: {
12932
+ MuiModal: { defaultProps: { container: () => overlayRef.current } },
12933
+ MuiPopper: { defaultProps: { container: () => overlayRef.current } }
12934
+ }
12935
+ }),
12936
+ []
12937
+ );
12938
+ return /* @__PURE__ */ jsxRuntime.jsx(react.CacheProvider, { value: cache, children: /* @__PURE__ */ jsxRuntime.jsxs(styles.ThemeProvider, { theme, children: [
12939
+ children,
12940
+ /* @__PURE__ */ jsxRuntime.jsx("div", { ref: overlayRef, className: "sixseconds-header-overlays" })
12941
+ ] }) });
12896
12942
  }
12897
12943
  const DangerDialog = ({
12898
12944
  open,
@@ -15007,7 +15053,7 @@ const HeaderInner = ({
15007
15053
  /* @__PURE__ */ jsxRuntime.jsx(ViewProfileDialog, { isOpen: state.toggles.viewProfile, userData, setInitialState: setState })
15008
15054
  ] });
15009
15055
  };
15010
- const Header = (props) => /* @__PURE__ */ jsxRuntime.jsx(MuiProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(HeaderInner, { ...props }) });
15056
+ const Header = (props) => /* @__PURE__ */ jsxRuntime.jsx(ShadowIsland, { children: /* @__PURE__ */ jsxRuntime.jsx(HeaderInner, { ...props }) });
15011
15057
  function LabeledInput({
15012
15058
  label,
15013
15059
  sx,
@@ -15340,7 +15386,7 @@ const PreviousLoginBannerInner = ({ t: t2, router, sx }) => {
15340
15386
  }
15341
15387
  );
15342
15388
  };
15343
- const PreviousLoginBanner = (props) => /* @__PURE__ */ jsxRuntime.jsx(MuiProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(PreviousLoginBannerInner, { ...props }) });
15389
+ const PreviousLoginBanner = (props) => /* @__PURE__ */ jsxRuntime.jsx(ShadowIsland, { children: /* @__PURE__ */ jsxRuntime.jsx(PreviousLoginBannerInner, { ...props }) });
15344
15390
  const App = () => {
15345
15391
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15346
15392
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -15551,15 +15597,3 @@ exports.SVG = SVG;
15551
15597
  exports.Warning = Warning;
15552
15598
  exports.default = App;
15553
15599
  //# sourceMappingURL=index.cjs.js.map
15554
- (function() {
15555
- "use strict";
15556
- try {
15557
- if (typeof document != "undefined") {
15558
- var elementStyle = document.createElement("style");
15559
- elementStyle.appendChild(document.createTextNode('@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap");\n\n.sixseconds-header-root blockquote,\n.sixseconds-header-root dl,\n.sixseconds-header-root dd,\n.sixseconds-header-root h1,\n.sixseconds-header-root h2,\n.sixseconds-header-root h3,\n.sixseconds-header-root h4,\n.sixseconds-header-root h5,\n.sixseconds-header-root h6,\n.sixseconds-header-root hr,\n.sixseconds-header-root figure,\n.sixseconds-header-root p,\n.sixseconds-header-root pre,\n.sixseconds-header-root span,\n.sixseconds-header-root a,\n.sixseconds-header-root div,\n.sixseconds-header-root li,\n.sixseconds-header-root button {\n font-family: "Inter", sans-serif !important;\n}\n\n.sixseconds-header-main-list-menu {\n display: flex;\n}\n\n.sixseconds-header-main-list-menu li {\n padding: 0.5rem 0.5rem;\n}\n\n.sixseconds-header-main-list-menu li a {\n padding: 0 0.25rem;\n font-weight: 500;\n font-size: 12px;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-item {\n position: relative;\n padding: 0 16px;\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-link {\n text-decoration: none;\n color: #2a2a2a;\n /* Closer to 6seconds */\n font-weight: 500;\n font-size: 15px;\n padding: 8px 4px;\n transition: color 0.2s ease;\n font-family: "Inter", sans-serif;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-link:hover {\n color: #0073b1;\n}\n\n/* Submenu (Dropdown) */\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-data {\n position: absolute;\n top: 150%;\n left: 0;\n background: white;\n border: 1px solid #e2e8f0;\n border-top: 3px solid #0073b1;\n box-shadow:\n 0px 12px 48px rgba(0, 0, 0, 0.12),\n 0 4px 16px rgba(0, 0, 0, 0.08);\n /* Even more premium shadow */\n display: block;\n opacity: 0;\n visibility: hidden;\n transform: translateY(12px);\n width: 200px;\n z-index: 1000;\n border-radius: 4px;\n /* More angular per 6seconds style */\n padding: 8px 0;\n transition:\n opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n visibility 0.25s;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-data li {\n list-style: none;\n padding: 0;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-link {\n display: block;\n padding: 12px 28px;\n text-decoration: none;\n color: #2a2a2a;\n /* Darker grey */\n font-weight: 400;\n font-size: 14.5px;\n line-height: 1.4;\n white-space: normal;\n transition: all 0.2s ease;\n}\n\n.sixseconds-header-main-list-menu .sixseconds-header-submenu-link:hover {\n background: #f0f7fb;\n color: #0073b1;\n padding-left: 32px;\n /* Slight nudge */\n}\n\n/* Caret rotation on hover */\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-item:hover .sixseconds-header-desktop-caret {\n transform: rotate(180deg);\n}\n\n/* Show dropdown on hover */\n\n.sixseconds-header-main-list-menu .sixseconds-header-menu-item:hover .sixseconds-header-submenu-data {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n.sixseconds-header-small-device-menu {\n display: none;\n width: 100%;\n left: 0;\n top: 64px;\n background-color: #fff;\n position: fixed;\n overflow-y: auto;\n height: 95vh;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\n}\n\n.sixseconds-header-small-device-menu a.sixseconds-header-bg-main-menu {\n display: block;\n text-decoration: none;\n}\n\n.sixseconds-header-submenu-child li {\n padding: 0.5rem 0;\n}\n\n.sixseconds-header-submenu-child li a {\n text-decoration: none;\n}\n\n.sixseconds-header-layout-mobile-menu {\n padding-bottom: 12px;\n padding-inline: 0;\n height: 95vh;\n overflow-y: auto;\n padding-top: 8px;\n}\n\n.sixseconds-header-small-device-menu a {\n background-color: transparent;\n font-size: 16px;\n /* Slightly larger */\n font-weight: 600;\n /* Bolder for parent items */\n color: #1a1c1e;\n margin-bottom: 4px;\n padding: 16px 20px;\n border-bottom: 1px solid #f1f3f4;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.sixseconds-header-small-device-menu .sixseconds-header-submenu-child {\n padding-left: 0px;\n min-width: 100%;\n max-width: 100%;\n margin-top: 0;\n background-color: #fbfbfc;\n /* Slightly different background for sub-items */\n color: #1a1c1e;\n}\n\n.sixseconds-header-small-device-menu ul li .sixseconds-header-submenu-child-link {\n padding: 12px 32px;\n /* Indent more */\n font-weight: 400;\n /* Regular weight for sub-links */\n font-size: 14px;\n}\n\n.sixseconds-header-small-device-menu ul li a {\n background-color: transparent;\n color: #4a4d50;\n}\n\n.sixseconds-header-small-device-menu ul {\n padding-left: 15px;\n}\n\n.sixseconds-header-desktop-menu {\n display: flex;\n}\n\n.sixseconds-header-button-hamburger {\n display: none;\n position: absolute;\n right: 20px;\n top: 18px;\n z-index: 9;\n}\n\n.sixseconds-header-root .tox-editor-header {\n background-color: transparent;\n}\n\n.sixseconds-header-hamburger-icon-btn {\n padding: 8px;\n color: #5f6368;\n}\n\n.sixseconds-header-desktop-menu .sixseconds-header-menu-item .sixseconds-header-menu-link {\n font-size: 14px;\n font-weight: 500;\n}\n\n.sixseconds-header-small-device-menu {\n padding-inline: 20px;\n}\n\n@media screen and (max-width: 600px) and (min-width: 320px) {\n .sixseconds-header-notification-icon-error .MuiBadge-badge {\n font-size: 10px;\n padding: 0 4px;\n min-width: 16px;\n right: 5px;\n background-color: #d32f2f;\n }\n\n .sixseconds-header-submenu nav {\n padding: 0 !important;\n }\n\n .sixseconds-header-root .MuiPagination-root.MuiPagination-outlined {\n display: flex;\n justify-content: center;\n margin-left: 0;\n }\n\n .sixseconds-header-toggle-btn-menu {\n position: absolute;\n right: 20px;\n top: 12px;\n z-index: 99;\n }\n\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-desktop-menu {\n display: none;\n }\n\n .sixseconds-header-small-device-menu {\n display: block;\n width: 100%;\n position: fixed;\n left: 0;\n background: #fff;\n top: 64px;\n }\n\n .main.sixseconds-header-login-page .sixseconds-header-login-body {\n width: 90% !important;\n }\n\n .sixseconds-header-submenu {\n width: 100%;\n max-width: 100% !important;\n }\n\n .sixseconds-header-sidebar {\n width: 280px !important;\n background-color: #f9fafb;\n z-index: 99;\n border-right: 1px solid #e0e0e0;\n }\n\n .sixseconds-header-sidemenu {\n width: 280px;\n background-color: #f9fafb;\n }\n\n .sixseconds-header-logo {\n opacity: 1;\n }\n\n .sixseconds-header-profile .sixseconds-header-menu {\n min-width: 280px;\n width: 100% !important;\n }\n}\n\n@media screen and (max-width: 1024px) and (min-width: 600px) {\n .sixseconds-header-toggle-btn-menu {\n position: absolute;\n right: 20px;\n top: 12px;\n }\n\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-desktop-menu {\n display: none;\n }\n\n .sixseconds-header-small-device-menu {\n display: block;\n }\n\n .main.sixseconds-header-login-page .sixseconds-header-login-body {\n width: 450px !important;\n }\n\n .sixseconds-header-banner {\n margin-left: 0 !important;\n }\n\n .sixseconds-header-submenu {\n width: 100%;\n max-width: 100% !important;\n }\n\n .sixseconds-header-sidebar {\n width: 280px !important;\n background-color: #f9fafb;\n z-index: 99;\n }\n\n .sixseconds-header-sidemenu {\n width: 280px;\n background-color: #f9fafb;\n }\n\n .sixseconds-header-logo {\n opacity: 1;\n }\n\n .sixseconds-header-profile .sixseconds-header-menu {\n min-width: 280px;\n width: 100% !important;\n }\n}\n\n@media screen and (max-width: 1380px) and (min-width: 1024px) {\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-desktop-menu {\n display: none;\n }\n\n .sixseconds-header-small-device-menu {\n display: block;\n width: 100%;\n position: fixed;\n left: 0;\n background: #fff;\n top: 64px;\n }\n\n .sixseconds-header-button-hamburger {\n display: block;\n }\n\n .sixseconds-header-right-icons {\n padding-right: 25px;\n }\n}'));
15560
- document.head.appendChild(elementStyle);
15561
- }
15562
- } catch (e) {
15563
- console.error("vite-plugin-css-injected-by-js", e);
15564
- }
15565
- })();