nfx-ui 0.16.2 → 0.20.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/README.md +67 -271
- package/dist/animations.cjs +1 -2
- package/dist/animations.mjs +9 -9
- package/dist/apis.cjs +0 -1
- package/dist/apis.cjs.map +1 -1
- package/dist/apis.mjs +0 -1
- package/dist/apis.mjs.map +1 -1
- package/dist/chunk-LucideIcon-Chc7x8mN.mjs +15 -0
- package/dist/chunk-LucideIcon-Chc7x8mN.mjs.map +1 -0
- package/dist/chunk-LucideIcon-CuoAB_OX.cjs +3 -0
- package/dist/chunk-LucideIcon-CuoAB_OX.cjs.map +1 -0
- package/dist/chunk-ModalProvider-BgLSJXhS.cjs +3 -0
- package/dist/chunk-ModalProvider-BgLSJXhS.cjs.map +1 -0
- package/dist/chunk-ModalProvider-CpzFzfWG.mjs +220 -0
- package/dist/chunk-ModalProvider-CpzFzfWG.mjs.map +1 -0
- package/dist/chunk-PixelBlast-BbJ2VmCL.cjs +190 -0
- package/dist/chunk-PixelBlast-BbJ2VmCL.cjs.map +1 -0
- package/dist/chunk-PixelBlast-BiBrG_NH.mjs +504 -0
- package/dist/chunk-PixelBlast-BiBrG_NH.mjs.map +1 -0
- package/dist/chunk-ThemeProvider-C4kxX2D0.cjs +3 -0
- package/dist/chunk-ThemeProvider-C4kxX2D0.cjs.map +1 -0
- package/dist/chunk-ThemeProvider-D0U8V6ky.mjs +28 -0
- package/dist/chunk-ThemeProvider-D0U8V6ky.mjs.map +1 -0
- package/dist/chunk-animations-CkOpTtX1.cjs +11 -0
- package/dist/chunk-animations-CkOpTtX1.cjs.map +1 -0
- package/dist/chunk-animations-DKyNVF-O.mjs +973 -0
- package/dist/chunk-animations-DKyNVF-O.mjs.map +1 -0
- package/dist/chunk-dashboard-BsGK96hu.mjs +104 -0
- package/dist/chunk-dashboard-BsGK96hu.mjs.map +1 -0
- package/dist/chunk-dashboard-CFT0HjSM.cjs +3 -0
- package/dist/chunk-dashboard-CFT0HjSM.cjs.map +1 -0
- package/dist/chunk-hooks-Cy_8mdDG.mjs +90 -0
- package/dist/chunk-hooks-Cy_8mdDG.mjs.map +1 -0
- package/dist/chunk-hooks-yVn82nBZ.cjs +3 -0
- package/dist/chunk-hooks-yVn82nBZ.cjs.map +1 -0
- package/dist/chunk-i18n-B8pZ_hpC.mjs +435 -0
- package/dist/chunk-i18n-B8pZ_hpC.mjs.map +1 -0
- package/dist/chunk-i18n-C06d89Eq.cjs +3 -0
- package/dist/chunk-i18n-C06d89Eq.cjs.map +1 -0
- package/dist/chunk-layout-BDpxG0Ca.mjs +27 -0
- package/dist/chunk-layout-BDpxG0Ca.mjs.map +1 -0
- package/dist/chunk-layout-DKCQHheg.cjs +3 -0
- package/dist/chunk-layout-DKCQHheg.cjs.map +1 -0
- package/dist/chunk-lucide-CrMbx2vC.cjs +3 -0
- package/dist/chunk-lucide-CrMbx2vC.cjs.map +1 -0
- package/dist/chunk-lucide-yNs0iz1-.mjs +158 -0
- package/dist/chunk-lucide-yNs0iz1-.mjs.map +1 -0
- package/dist/chunk-modal-C3LgRLur.cjs +3 -0
- package/dist/chunk-modal-C3LgRLur.cjs.map +1 -0
- package/dist/chunk-modal-D9vk2ENf.mjs +92 -0
- package/dist/chunk-modal-D9vk2ENf.mjs.map +1 -0
- package/dist/chunk-preference-BP-GO9Uk.cjs +3 -0
- package/dist/chunk-preference-BP-GO9Uk.cjs.map +1 -0
- package/dist/chunk-preference-BXXryZLY.cjs +3 -0
- package/dist/chunk-preference-BXXryZLY.cjs.map +1 -0
- package/dist/chunk-preference-Y15HwKd0.mjs +42 -0
- package/dist/chunk-preference-Y15HwKd0.mjs.map +1 -0
- package/dist/chunk-preference-x4EdmqU6.mjs +295 -0
- package/dist/chunk-preference-x4EdmqU6.mjs.map +1 -0
- package/dist/chunk-rolldown-runtime-Bvb_CV3F.cjs +1 -0
- package/dist/chunk-useLanguageLabel-38sEu2rP.cjs +3 -0
- package/dist/chunk-useLanguageLabel-38sEu2rP.cjs.map +1 -0
- package/dist/chunk-useLanguageLabel-BLdxHuep.mjs +38 -0
- package/dist/chunk-useLanguageLabel-BLdxHuep.mjs.map +1 -0
- package/dist/chunk-useLayout-CbUZVWpS.cjs +3 -0
- package/dist/chunk-useLayout-CbUZVWpS.cjs.map +1 -0
- package/dist/chunk-useLayout-CjXHRPLD.mjs +302 -0
- package/dist/chunk-useLayout-CjXHRPLD.mjs.map +1 -0
- package/dist/chunk-useTheme-C2Ip6OAs.mjs +34 -0
- package/dist/chunk-useTheme-C2Ip6OAs.mjs.map +1 -0
- package/dist/chunk-useTheme-DSps5NbC.cjs +3 -0
- package/dist/chunk-useTheme-DSps5NbC.cjs.map +1 -0
- package/dist/components.cjs +3 -3
- package/dist/components.cjs.map +1 -1
- package/dist/components.mjs +1122 -1472
- package/dist/components.mjs.map +1 -1
- package/dist/constants.cjs +0 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.mjs +0 -1
- package/dist/constants.mjs.map +1 -1
- package/dist/enums.cjs +1 -0
- package/dist/enums.mjs +43 -0
- package/dist/events.cjs +0 -1
- package/dist/events.cjs.map +1 -1
- package/dist/events.mjs +0 -1
- package/dist/events.mjs.map +1 -1
- package/dist/hooks.cjs +1 -4
- package/dist/hooks.mjs +12 -104
- package/dist/icons.cjs +3 -2
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.mjs +19350 -73
- package/dist/icons.mjs.map +1 -0
- package/dist/languages.cjs +1 -2
- package/dist/languages.cjs.map +1 -1
- package/dist/languages.mjs +63 -76
- package/dist/languages.mjs.map +1 -1
- package/dist/layouts.cjs +2 -2
- package/dist/layouts.cjs.map +1 -1
- package/dist/layouts.mjs +787 -395
- package/dist/layouts.mjs.map +1 -1
- package/dist/navigations.cjs +0 -1
- package/dist/navigations.cjs.map +1 -1
- package/dist/navigations.mjs +0 -1
- package/dist/navigations.mjs.map +1 -1
- package/dist/pixel-blast.cjs +1 -191
- package/dist/pixel-blast.mjs +2 -503
- package/dist/providers.cjs +4 -0
- package/dist/providers.cjs.map +1 -0
- package/dist/providers.mjs +37 -0
- package/dist/providers.mjs.map +1 -0
- package/dist/services.cjs +0 -1
- package/dist/services.cjs.map +1 -1
- package/dist/services.mjs +0 -1
- package/dist/services.mjs.map +1 -1
- package/dist/src/designs/animations/index.d.ts +1 -0
- package/dist/src/designs/animations/index.d.ts.map +1 -1
- package/dist/src/designs/components/CardHeader.d.ts +9 -0
- package/dist/src/designs/components/CardHeader.d.ts.map +1 -0
- package/dist/src/designs/components/EmptyState/index.d.ts +10 -0
- package/dist/src/designs/components/EmptyState/index.d.ts.map +1 -0
- package/dist/src/designs/components/LayoutSwitcher/index.d.ts +1 -1
- package/dist/src/designs/components/LayoutSwitcher/index.d.ts.map +1 -1
- package/dist/src/designs/components/Logo/index.d.ts +15 -0
- package/dist/src/designs/components/Logo/index.d.ts.map +1 -0
- package/dist/src/designs/components/LucideIcon.d.ts +11 -0
- package/dist/src/designs/components/LucideIcon.d.ts.map +1 -0
- package/dist/src/designs/components/PageHeader/index.d.ts +11 -0
- package/dist/src/designs/components/PageHeader/index.d.ts.map +1 -0
- package/dist/src/designs/components/PreferencesPopover/index.d.ts +6 -0
- package/dist/src/designs/components/PreferencesPopover/index.d.ts.map +1 -0
- package/dist/src/designs/components/Suspense/index.d.ts +6 -60
- package/dist/src/designs/components/Suspense/index.d.ts.map +1 -1
- package/dist/src/designs/components/ThemeSettings/index.d.ts +2 -0
- package/dist/src/designs/components/ThemeSettings/index.d.ts.map +1 -0
- package/dist/src/designs/components/ThemeSwitcher/index.d.ts +1 -3
- package/dist/src/designs/components/ThemeSwitcher/index.d.ts.map +1 -1
- package/dist/src/designs/components/VirtuosoList.d.ts +37 -0
- package/dist/src/designs/components/VirtuosoList.d.ts.map +1 -0
- package/dist/src/designs/components/index.d.ts +19 -25
- package/dist/src/designs/components/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/Background/index.d.ts +1 -1
- package/dist/src/designs/layouts/components/Background/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/Header/index.d.ts +31 -3
- package/dist/src/designs/layouts/components/Header/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/LayoutFrame/index.d.ts +1 -1
- package/dist/src/designs/layouts/components/LayoutFrame/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/Main/index.d.ts +8 -0
- package/dist/src/designs/layouts/components/Main/index.d.ts.map +1 -0
- package/dist/src/designs/layouts/components/MainWrapper/index.d.ts +1 -1
- package/dist/src/designs/layouts/components/MainWrapper/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/PageFrame/index.d.ts +10 -0
- package/dist/src/designs/layouts/components/PageFrame/index.d.ts.map +1 -0
- package/dist/src/designs/layouts/components/SideHideLayout/index.d.ts +1 -1
- package/dist/src/designs/layouts/components/SideHideLayout/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/SideShowLayout/index.d.ts +1 -1
- package/dist/src/designs/layouts/components/SideShowLayout/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/Sidebar/index.d.ts +74 -2
- package/dist/src/designs/layouts/components/Sidebar/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/components/Sidebar/menu.d.ts +9 -0
- package/dist/src/designs/layouts/components/Sidebar/menu.d.ts.map +1 -0
- package/dist/src/designs/layouts/components/UserTopBar/index.d.ts +18 -0
- package/dist/src/designs/layouts/components/UserTopBar/index.d.ts.map +1 -0
- package/dist/src/designs/layouts/components/index.d.ts +9 -1
- package/dist/src/designs/layouts/components/index.d.ts.map +1 -1
- package/dist/src/designs/layouts/index.d.ts +2 -0
- package/dist/src/designs/layouts/index.d.ts.map +1 -1
- package/dist/src/designs/providers/ModalProvider/components/Base.d.ts +6 -0
- package/dist/src/designs/providers/ModalProvider/components/Base.d.ts.map +1 -0
- package/dist/src/designs/providers/ModalProvider/components/Confirm.d.ts +6 -0
- package/dist/src/designs/providers/ModalProvider/components/Confirm.d.ts.map +1 -0
- package/dist/src/designs/providers/ModalProvider/components/Loading.d.ts +6 -0
- package/dist/src/designs/providers/ModalProvider/components/Loading.d.ts.map +1 -0
- package/dist/src/designs/providers/ModalProvider/index.d.ts +10 -0
- package/dist/src/designs/providers/ModalProvider/index.d.ts.map +1 -0
- package/dist/src/{preference/constants.d.ts → enums/dashboard.d.ts} +4 -8
- package/dist/src/enums/dashboard.d.ts.map +1 -0
- package/dist/src/enums/index.d.ts +4 -0
- package/dist/src/enums/index.d.ts.map +1 -0
- package/dist/src/enums/language.d.ts +13 -0
- package/dist/src/enums/language.d.ts.map +1 -0
- package/dist/src/enums/theme.d.ts +107 -0
- package/dist/src/enums/theme.d.ts.map +1 -0
- package/dist/src/hooks/index.d.ts +2 -4
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/preference.d.ts +21 -0
- package/dist/src/hooks/preference.d.ts.map +1 -0
- package/dist/src/icons/animated/accessibility-icon.d.ts +13 -0
- package/dist/src/icons/animated/accessibility-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/airplane-icon.d.ts +9 -0
- package/dist/src/icons/animated/airplane-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/alarm-clock-plus-icon.d.ts +11 -0
- package/dist/src/icons/animated/alarm-clock-plus-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/align-center-icon.d.ts +4 -0
- package/dist/src/icons/animated/align-center-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/align-vertical-space-around-icon.d.ts +4 -0
- package/dist/src/icons/animated/align-vertical-space-around-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/ambulance-icon.d.ts +4 -0
- package/dist/src/icons/animated/ambulance-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/ampersand-icon.d.ts +4 -0
- package/dist/src/icons/animated/ampersand-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/angry-icon.d.ts +4 -0
- package/dist/src/icons/animated/angry-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/annoyed-icon.d.ts +4 -0
- package/dist/src/icons/animated/annoyed-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/apple-brand-logo.d.ts +4 -0
- package/dist/src/icons/animated/apple-brand-logo.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-back-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-back-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-back-up-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-back-up-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-down-dash-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-down-dash-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-down-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-down-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-left-dash-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-left-dash-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-left-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-left-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-right-dash-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-right-dash-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-right-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-right-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-up-dash-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-up-dash-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-big-up-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-big-up-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-down-0-1-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-down-0-1-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-down-1-0-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-down-1-0-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-down-a-z-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-down-a-z-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-down-dashed-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-down-dashed-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-down-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-down-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-left-dashed-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-left-dashed-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-left-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-left-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-right-dashed-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-right-dashed-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-right-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-right-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-up-dashed-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-up-dashed-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/arrow-narrow-up-icon.d.ts +4 -0
- package/dist/src/icons/animated/arrow-narrow-up-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/at-sign-icon.d.ts +4 -0
- package/dist/src/icons/animated/at-sign-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/banana-icon.d.ts +4 -0
- package/dist/src/icons/animated/banana-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/battery-charging-icon.d.ts +4 -0
- package/dist/src/icons/animated/battery-charging-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/battery-icon.d.ts +4 -0
- package/dist/src/icons/animated/battery-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/battery-pause-icon.d.ts +4 -0
- package/dist/src/icons/animated/battery-pause-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/bell-off-icon.d.ts +4 -0
- package/dist/src/icons/animated/bell-off-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/bluetooth-connected-icon.d.ts +4 -0
- package/dist/src/icons/animated/bluetooth-connected-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/book-icon.d.ts +4 -0
- package/dist/src/icons/animated/book-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/bookmark-icon.d.ts +4 -0
- package/dist/src/icons/animated/bookmark-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brain-circuit-icon.d.ts +4 -0
- package/dist/src/icons/animated/brain-circuit-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-aistudio-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-aistudio-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-anthropic-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-anthropic-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-aws-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-aws-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-bags-fm-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-bags-fm-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-chrome-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-chrome-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-cursor-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-cursor-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-gemini-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-gemini-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-google-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-google-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-grok-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-grok-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-lmstudio-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-lmstudio-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-midjourney-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-midjourney-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-nextjs-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-nextjs-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-notion-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-notion-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-ollama-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-ollama-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-openai-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-openai-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-paypal-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-paypal-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-qwen-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-qwen-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-railway-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-railway-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-react-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-react-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-react-native-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-react-native-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-stripe-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-stripe-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-telegram-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-telegram-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-threads-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-threads-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-twitch-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-twitch-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-vercel-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-vercel-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-windows-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-windows-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-wordpress-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-wordpress-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-xai-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-xai-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brand-zoom-icon.d.ts +4 -0
- package/dist/src/icons/animated/brand-zoom-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/brightness-down-icon.d.ts +4 -0
- package/dist/src/icons/animated/brightness-down-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/bug-icon.d.ts +4 -0
- package/dist/src/icons/animated/bug-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/bulb-svg.d.ts +4 -0
- package/dist/src/icons/animated/bulb-svg.d.ts.map +1 -0
- package/dist/src/icons/animated/camera-icon.d.ts +4 -0
- package/dist/src/icons/animated/camera-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/camera-off-icon.d.ts +4 -0
- package/dist/src/icons/animated/camera-off-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/candy-cane-icon.d.ts +4 -0
- package/dist/src/icons/animated/candy-cane-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/cart-icon.d.ts +4 -0
- package/dist/src/icons/animated/cart-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/chart-bar-icon.d.ts +4 -0
- package/dist/src/icons/animated/chart-bar-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/chart-covariate-icon.d.ts +4 -0
- package/dist/src/icons/animated/chart-covariate-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/chart-histogram-icon.d.ts +4 -0
- package/dist/src/icons/animated/chart-histogram-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/chart-line-icon.d.ts +4 -0
- package/dist/src/icons/animated/chart-line-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/chart-pie-icon.d.ts +4 -0
- package/dist/src/icons/animated/chart-pie-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/checked-icon.d.ts +4 -0
- package/dist/src/icons/animated/checked-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/clock-icon.d.ts +4 -0
- package/dist/src/icons/animated/clock-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/cloud-1-icon.d.ts +4 -0
- package/dist/src/icons/animated/cloud-1-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/cloud-2-icon.d.ts +4 -0
- package/dist/src/icons/animated/cloud-2-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/cloud-3-icon.d.ts +4 -0
- package/dist/src/icons/animated/cloud-3-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/code-icon.d.ts +4 -0
- package/dist/src/icons/animated/code-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/code-xml-icon.d.ts +4 -0
- package/dist/src/icons/animated/code-xml-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/coffee-icon.d.ts +4 -0
- package/dist/src/icons/animated/coffee-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/coin-bitcoin-icon.d.ts +4 -0
- package/dist/src/icons/animated/coin-bitcoin-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/copy-icon.d.ts +4 -0
- package/dist/src/icons/animated/copy-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/copy-off-icon.d.ts +4 -0
- package/dist/src/icons/animated/copy-off-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/copyright-icon.d.ts +4 -0
- package/dist/src/icons/animated/copyright-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/cpu-icon.d.ts +4 -0
- package/dist/src/icons/animated/cpu-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/credit-card.d.ts +4 -0
- package/dist/src/icons/animated/credit-card.d.ts.map +1 -0
- package/dist/src/icons/animated/currency-bitcoin-icon.d.ts +4 -0
- package/dist/src/icons/animated/currency-bitcoin-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/currency-dollar-icon.d.ts +4 -0
- package/dist/src/icons/animated/currency-dollar-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/currency-ethereum-icon.d.ts +4 -0
- package/dist/src/icons/animated/currency-ethereum-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/currency-euro-icon.d.ts +4 -0
- package/dist/src/icons/animated/currency-euro-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/currency-rupee-icon.d.ts +4 -0
- package/dist/src/icons/animated/currency-rupee-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/device-airpods-icon.d.ts +4 -0
- package/dist/src/icons/animated/device-airpods-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/dialpad-icon.d.ts +4 -0
- package/dist/src/icons/animated/dialpad-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/dino-icon.d.ts +4 -0
- package/dist/src/icons/animated/dino-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/discord-icon.d.ts +4 -0
- package/dist/src/icons/animated/discord-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/docker-icon.d.ts +4 -0
- package/dist/src/icons/animated/docker-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/dots-horizontal-icon.d.ts +4 -0
- package/dist/src/icons/animated/dots-horizontal-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/dots-vertical-icon.d.ts +4 -0
- package/dist/src/icons/animated/dots-vertical-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/double-check-icon.d.ts +4 -0
- package/dist/src/icons/animated/double-check-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/down-chevron.d.ts +4 -0
- package/dist/src/icons/animated/down-chevron.d.ts.map +1 -0
- package/dist/src/icons/animated/download-icon.d.ts +4 -0
- package/dist/src/icons/animated/download-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/drum-icon.d.ts +4 -0
- package/dist/src/icons/animated/drum-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/expand-icon.d.ts +4 -0
- package/dist/src/icons/animated/expand-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/external-link-icon.d.ts +4 -0
- package/dist/src/icons/animated/external-link-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/eye-icon.d.ts +4 -0
- package/dist/src/icons/animated/eye-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/eye-off-icon.d.ts +4 -0
- package/dist/src/icons/animated/eye-off-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/facebook-icon.d.ts +4 -0
- package/dist/src/icons/animated/facebook-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/figma-icon.d.ts +4 -0
- package/dist/src/icons/animated/figma-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/file-description-icon.d.ts +4 -0
- package/dist/src/icons/animated/file-description-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/filled-bell-icon.d.ts +4 -0
- package/dist/src/icons/animated/filled-bell-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/filled-checked-icon.d.ts +4 -0
- package/dist/src/icons/animated/filled-checked-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/filter-icon.d.ts +4 -0
- package/dist/src/icons/animated/filter-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/flame-icon.d.ts +4 -0
- package/dist/src/icons/animated/flame-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/focus-icon.d.ts +4 -0
- package/dist/src/icons/animated/focus-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/gamepad-icon.d.ts +4 -0
- package/dist/src/icons/animated/gamepad-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/gauge-icon.d.ts +4 -0
- package/dist/src/icons/animated/gauge-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/gear-icon.d.ts +4 -0
- package/dist/src/icons/animated/gear-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/ghost-icon.d.ts +4 -0
- package/dist/src/icons/animated/ghost-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/github-copilot-icon.d.ts +4 -0
- package/dist/src/icons/animated/github-copilot-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/github-icon.d.ts +4 -0
- package/dist/src/icons/animated/github-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/gitlab-icon.d.ts +4 -0
- package/dist/src/icons/animated/gitlab-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/globe-icon.d.ts +4 -0
- package/dist/src/icons/animated/globe-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/gmail-icon.d.ts +4 -0
- package/dist/src/icons/animated/gmail-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/golang-icon.d.ts +4 -0
- package/dist/src/icons/animated/golang-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/hand-heart-icon.d.ts +4 -0
- package/dist/src/icons/animated/hand-heart-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/hashtag-icon.d.ts +4 -0
- package/dist/src/icons/animated/hashtag-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/heart-icon.d.ts +4 -0
- package/dist/src/icons/animated/heart-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/history-circle-icon.d.ts +4 -0
- package/dist/src/icons/animated/history-circle-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/home-icon.d.ts +4 -0
- package/dist/src/icons/animated/home-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/hotel-icon.d.ts +4 -0
- package/dist/src/icons/animated/hotel-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/index.d.ts +267 -0
- package/dist/src/icons/animated/index.d.ts.map +1 -0
- package/dist/src/icons/animated/info-circle-icon.d.ts +4 -0
- package/dist/src/icons/animated/info-circle-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/instagram-icon.d.ts +4 -0
- package/dist/src/icons/animated/instagram-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/javascript-icon.d.ts +4 -0
- package/dist/src/icons/animated/javascript-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/keyframes-icon.d.ts +4 -0
- package/dist/src/icons/animated/keyframes-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/layers-icon.d.ts +4 -0
- package/dist/src/icons/animated/layers-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/layout-bottombar-collapse-icon.d.ts +4 -0
- package/dist/src/icons/animated/layout-bottombar-collapse-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/layout-dashboard-icon.d.ts +4 -0
- package/dist/src/icons/animated/layout-dashboard-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/layout-sidebar-right-collapse-icon.d.ts +4 -0
- package/dist/src/icons/animated/layout-sidebar-right-collapse-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/layout-sidebar-right-icon.d.ts +4 -0
- package/dist/src/icons/animated/layout-sidebar-right-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-a-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-a-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-b-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-b-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-c-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-c-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-d-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-d-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-e-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-e-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-f-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-f-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-g-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-g-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-h-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-h-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-i-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-i-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-j-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-j-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-k-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-k-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-l-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-l-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-m-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-m-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-n-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-n-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-o-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-o-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-p-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-p-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-q-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-q-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-r-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-r-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-s-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-s-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-t-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-t-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-u-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-u-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-v-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-v-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-w-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-w-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-x-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-x-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-y-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-y-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/letter-z-icon.d.ts +4 -0
- package/dist/src/icons/animated/letter-z-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/library-icon.d.ts +4 -0
- package/dist/src/icons/animated/library-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/like-icon.d.ts +4 -0
- package/dist/src/icons/animated/like-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/link-icon.d.ts +4 -0
- package/dist/src/icons/animated/link-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/linkedin-icon.d.ts +4 -0
- package/dist/src/icons/animated/linkedin-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/locate-icon.d.ts +4 -0
- package/dist/src/icons/animated/locate-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/lock-icon.d.ts +4 -0
- package/dist/src/icons/animated/lock-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/logout-icon.d.ts +4 -0
- package/dist/src/icons/animated/logout-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/magnifier-icon.d.ts +4 -0
- package/dist/src/icons/animated/magnifier-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/mail-filled-icon.d.ts +4 -0
- package/dist/src/icons/animated/mail-filled-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/map-pin-icon.d.ts +4 -0
- package/dist/src/icons/animated/map-pin-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/meh-icon.d.ts +4 -0
- package/dist/src/icons/animated/meh-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/message-circle-icon.d.ts +4 -0
- package/dist/src/icons/animated/message-circle-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/moon-icon.d.ts +4 -0
- package/dist/src/icons/animated/moon-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/mouse-pointer-2-icon.d.ts +4 -0
- package/dist/src/icons/animated/mouse-pointer-2-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/mysql-icon.d.ts +4 -0
- package/dist/src/icons/animated/mysql-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/nodejs-icon.d.ts +4 -0
- package/dist/src/icons/animated/nodejs-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/paint-icon.d.ts +4 -0
- package/dist/src/icons/animated/paint-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/party-popper-icon.d.ts +4 -0
- package/dist/src/icons/animated/party-popper-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/passport-icon.d.ts +4 -0
- package/dist/src/icons/animated/passport-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/paw-print-icon.d.ts +4 -0
- package/dist/src/icons/animated/paw-print-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/pen-icon.d.ts +4 -0
- package/dist/src/icons/animated/pen-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/phone-volume.d.ts +4 -0
- package/dist/src/icons/animated/phone-volume.d.ts.map +1 -0
- package/dist/src/icons/animated/pinterest-icon.d.ts +4 -0
- package/dist/src/icons/animated/pinterest-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/player-icon.d.ts +4 -0
- package/dist/src/icons/animated/player-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/plug-connected-icon.d.ts +4 -0
- package/dist/src/icons/animated/plug-connected-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/plug-connected-x-icon.d.ts +4 -0
- package/dist/src/icons/animated/plug-connected-x-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/python-icon.d.ts +4 -0
- package/dist/src/icons/animated/python-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/qrcode-icon.d.ts +4 -0
- package/dist/src/icons/animated/qrcode-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/question-mark.d.ts +4 -0
- package/dist/src/icons/animated/question-mark.d.ts.map +1 -0
- package/dist/src/icons/animated/radio-icon.d.ts +4 -0
- package/dist/src/icons/animated/radio-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/rainbow-icon.d.ts +4 -0
- package/dist/src/icons/animated/rainbow-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/refresh-icon.d.ts +4 -0
- package/dist/src/icons/animated/refresh-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/right-chevron.d.ts +4 -0
- package/dist/src/icons/animated/right-chevron.d.ts.map +1 -0
- package/dist/src/icons/animated/rocket-icon.d.ts +4 -0
- package/dist/src/icons/animated/rocket-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/rosette-discount-check-icon.d.ts +4 -0
- package/dist/src/icons/animated/rosette-discount-check-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/rosette-discount-icon.d.ts +4 -0
- package/dist/src/icons/animated/rosette-discount-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/router-icon.d.ts +4 -0
- package/dist/src/icons/animated/router-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/satellite-dish-icon.d.ts +4 -0
- package/dist/src/icons/animated/satellite-dish-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/save-icon.d.ts +4 -0
- package/dist/src/icons/animated/save-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/scan-barcode-icon.d.ts +4 -0
- package/dist/src/icons/animated/scan-barcode-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/scan-heart-icon.d.ts +4 -0
- package/dist/src/icons/animated/scan-heart-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/send-horizontal-icon.d.ts +4 -0
- package/dist/src/icons/animated/send-horizontal-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/send-icon.d.ts +4 -0
- package/dist/src/icons/animated/send-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/shield-check.d.ts +4 -0
- package/dist/src/icons/animated/shield-check.d.ts.map +1 -0
- package/dist/src/icons/animated/shopping-cart-icon.d.ts +4 -0
- package/dist/src/icons/animated/shopping-cart-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/simple-checked-icon.d.ts +4 -0
- package/dist/src/icons/animated/simple-checked-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/skull-emoji.d.ts +4 -0
- package/dist/src/icons/animated/skull-emoji.d.ts.map +1 -0
- package/dist/src/icons/animated/slack-icon.d.ts +4 -0
- package/dist/src/icons/animated/slack-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/sliders-horizontal-icon.d.ts +4 -0
- package/dist/src/icons/animated/sliders-horizontal-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/snapchat-icon.d.ts +4 -0
- package/dist/src/icons/animated/snapchat-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/soup-icon.d.ts +4 -0
- package/dist/src/icons/animated/soup-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/sparkles-icon.d.ts +4 -0
- package/dist/src/icons/animated/sparkles-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/spotify-icon.d.ts +4 -0
- package/dist/src/icons/animated/spotify-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/stack-3-icon.d.ts +4 -0
- package/dist/src/icons/animated/stack-3-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/stack-icon.d.ts +4 -0
- package/dist/src/icons/animated/stack-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/star-icon.d.ts +4 -0
- package/dist/src/icons/animated/star-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/subscript-icon.d.ts +4 -0
- package/dist/src/icons/animated/subscript-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/target-icon.d.ts +4 -0
- package/dist/src/icons/animated/target-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/telephone-icon.d.ts +4 -0
- package/dist/src/icons/animated/telephone-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/terminal-icon.d.ts +4 -0
- package/dist/src/icons/animated/terminal-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/toggle-icon.d.ts +4 -0
- package/dist/src/icons/animated/toggle-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/trash-icon.d.ts +9 -0
- package/dist/src/icons/animated/trash-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/travel-bag.d.ts +4 -0
- package/dist/src/icons/animated/travel-bag.d.ts.map +1 -0
- package/dist/src/icons/animated/triangle-alert-icon.d.ts +4 -0
- package/dist/src/icons/animated/triangle-alert-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/trophy-icon.d.ts +4 -0
- package/dist/src/icons/animated/trophy-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/truck-electric-icon.d.ts +4 -0
- package/dist/src/icons/animated/truck-electric-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/twitter-icon.d.ts +4 -0
- package/dist/src/icons/animated/twitter-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/twitter-x-icon.d.ts +4 -0
- package/dist/src/icons/animated/twitter-x-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/types.d.ts +33 -0
- package/dist/src/icons/animated/types.d.ts.map +1 -0
- package/dist/src/icons/animated/typescript-icon.d.ts +4 -0
- package/dist/src/icons/animated/typescript-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/unlink-icon.d.ts +4 -0
- package/dist/src/icons/animated/unlink-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/unordered-list-icon.d.ts +4 -0
- package/dist/src/icons/animated/unordered-list-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/upload-icon.d.ts +4 -0
- package/dist/src/icons/animated/upload-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/useAnimatedIconTrigger.d.ts +8 -0
- package/dist/src/icons/animated/useAnimatedIconTrigger.d.ts.map +1 -0
- package/dist/src/icons/animated/user-check-icon.d.ts +4 -0
- package/dist/src/icons/animated/user-check-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/user-icon.d.ts +4 -0
- package/dist/src/icons/animated/user-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/user-plus-icon.d.ts +4 -0
- package/dist/src/icons/animated/user-plus-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/users-group-icon.d.ts +4 -0
- package/dist/src/icons/animated/users-group-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/users-icon.d.ts +4 -0
- package/dist/src/icons/animated/users-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/vinyl-icon.d.ts +4 -0
- package/dist/src/icons/animated/vinyl-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/volume-2-icon.d.ts +4 -0
- package/dist/src/icons/animated/volume-2-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/volume-x-icon.d.ts +4 -0
- package/dist/src/icons/animated/volume-x-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/wallet-icon.d.ts +4 -0
- package/dist/src/icons/animated/wallet-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/washing-machine-icon.d.ts +4 -0
- package/dist/src/icons/animated/washing-machine-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/whatsapp-icon.d.ts +4 -0
- package/dist/src/icons/animated/whatsapp-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/wifi-icon.d.ts +4 -0
- package/dist/src/icons/animated/wifi-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/wifi-off-icon.d.ts +4 -0
- package/dist/src/icons/animated/wifi-off-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/world-icon.d.ts +4 -0
- package/dist/src/icons/animated/world-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/x-icon.d.ts +4 -0
- package/dist/src/icons/animated/x-icon.d.ts.map +1 -0
- package/dist/src/icons/animated/youtube-icon.d.ts +4 -0
- package/dist/src/icons/animated/youtube-icon.d.ts.map +1 -0
- package/dist/src/icons/index.d.ts +1 -0
- package/dist/src/icons/index.d.ts.map +1 -1
- package/dist/src/icons/lucide.d.ts +1 -1
- package/dist/src/icons/lucide.d.ts.map +1 -1
- package/dist/src/languages/hooks/index.d.ts +1 -1
- package/dist/src/languages/hooks/index.d.ts.map +1 -1
- package/dist/src/languages/hooks/useLanguageLabel.d.ts +8 -7
- package/dist/src/languages/hooks/useLanguageLabel.d.ts.map +1 -1
- package/dist/src/languages/hooks/usePreferenceLabel.d.ts +1 -1
- package/dist/src/languages/hooks/usePreferenceLabel.d.ts.map +1 -1
- package/dist/src/languages/hooks/useThemeLabel.d.ts +4 -5
- package/dist/src/languages/hooks/useThemeLabel.d.ts.map +1 -1
- package/dist/src/languages/index.d.ts +0 -2
- package/dist/src/languages/index.d.ts.map +1 -1
- package/dist/src/languages/languages/i18n.d.ts +4 -7
- package/dist/src/languages/languages/i18n.d.ts.map +1 -1
- package/dist/src/languages/languages/i18nResources.d.ts +1 -1
- package/dist/src/languages/languages/i18nResources.d.ts.map +1 -1
- package/dist/src/languages/resources/index.d.ts +2 -2
- package/dist/src/languages/types/components.d.ts +1 -24
- package/dist/src/languages/types/components.d.ts.map +1 -1
- package/dist/src/languages/types/i18n.d.ts +1 -4
- package/dist/src/languages/types/i18n.d.ts.map +1 -1
- package/dist/src/languages/types/language.d.ts +2 -11
- package/dist/src/languages/types/language.d.ts.map +1 -1
- package/dist/src/languages/utils/getLocalLanguage.d.ts +1 -1
- package/dist/src/languages/utils/getLocalLanguage.d.ts.map +1 -1
- package/dist/src/languages/utils/languageStorage.d.ts +2 -3
- package/dist/src/languages/utils/languageStorage.d.ts.map +1 -1
- package/dist/src/providers/LanguageProvider/index.d.ts +19 -0
- package/dist/src/providers/LanguageProvider/index.d.ts.map +1 -0
- package/dist/src/providers/ThemeProvider/index.d.ts +17 -0
- package/dist/src/providers/ThemeProvider/index.d.ts.map +1 -0
- package/dist/src/providers/index.d.ts +7 -0
- package/dist/src/providers/index.d.ts.map +1 -0
- package/dist/src/stores/index.d.ts +4 -0
- package/dist/src/stores/index.d.ts.map +1 -1
- package/dist/src/stores/layout.d.ts +41 -0
- package/dist/src/stores/layout.d.ts.map +1 -0
- package/dist/src/stores/makeStore.d.ts +1 -1
- package/dist/src/stores/modal.d.ts +67 -0
- package/dist/src/stores/modal.d.ts.map +1 -0
- package/dist/src/stores/preference.d.ts +52 -0
- package/dist/src/stores/preference.d.ts.map +1 -0
- package/dist/src/themes/fonts.d.ts +21 -0
- package/dist/src/themes/fonts.d.ts.map +1 -0
- package/dist/src/themes/hooks/index.d.ts +1 -3
- package/dist/src/themes/hooks/index.d.ts.map +1 -1
- package/dist/src/themes/hooks/useTheme.d.ts +25 -9
- package/dist/src/themes/hooks/useTheme.d.ts.map +1 -1
- package/dist/src/themes/index.d.ts +3 -4
- package/dist/src/themes/index.d.ts.map +1 -1
- package/dist/src/themes/radix/index.d.ts +2 -0
- package/dist/src/themes/radix/index.d.ts.map +1 -0
- package/dist/src/themes/radix/mappings.d.ts +39 -0
- package/dist/src/themes/radix/mappings.d.ts.map +1 -0
- package/dist/src/themes/types/components.d.ts +1 -24
- package/dist/src/themes/types/components.d.ts.map +1 -1
- package/dist/src/themes/types/context.d.ts +6 -12
- package/dist/src/themes/types/context.d.ts.map +1 -1
- package/dist/src/themes/types/index.d.ts +1 -6
- package/dist/src/themes/types/index.d.ts.map +1 -1
- package/dist/src/themes/types/theme.d.ts +15 -26
- package/dist/src/themes/types/theme.d.ts.map +1 -1
- package/dist/src/utils/factory/hooks.d.ts +44 -0
- package/dist/src/utils/factory/hooks.d.ts.map +1 -0
- package/dist/src/utils/factory/index.d.ts +2 -0
- package/dist/src/utils/factory/index.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/safe.d.ts +4 -0
- package/dist/src/utils/safe.d.ts.map +1 -1
- package/dist/stores.cjs +1 -4
- package/dist/stores.mjs +32 -164
- package/dist/themes.cjs +2 -4
- package/dist/themes.mjs +27 -1473
- package/dist/types.cjs +0 -1
- package/dist/types.mjs +0 -1
- package/dist/utils.cjs +1 -2
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.mjs +163 -181
- package/dist/utils.mjs.map +1 -1
- package/package.json +101 -43
- package/dist/chunk-BounceLoading-C-gq-XVr.mjs +0 -241
- package/dist/chunk-BounceLoading-C-gq-XVr.mjs.map +0 -1
- package/dist/chunk-BounceLoading-CkxvzNz8.cjs +0 -11
- package/dist/chunk-BounceLoading-CkxvzNz8.cjs.map +0 -1
- package/dist/chunk-animations-CiJbVYGC.mjs +0 -741
- package/dist/chunk-animations-CiJbVYGC.mjs.map +0 -1
- package/dist/chunk-animations-i85rn79V.cjs +0 -3
- package/dist/chunk-animations-i85rn79V.cjs.map +0 -1
- package/dist/chunk-chunk-D-Fg7nx1.cjs +0 -1
- package/dist/chunk-i18n-2-xL4pEi.cjs +0 -3
- package/dist/chunk-i18n-2-xL4pEi.cjs.map +0 -1
- package/dist/chunk-i18n-DgaoEbGL.mjs +0 -214
- package/dist/chunk-i18n-DgaoEbGL.mjs.map +0 -1
- package/dist/chunk-language-2r4uKROB.cjs +0 -3
- package/dist/chunk-language-2r4uKROB.cjs.map +0 -1
- package/dist/chunk-language-JRs5UIa2.mjs +0 -11
- package/dist/chunk-language-JRs5UIa2.mjs.map +0 -1
- package/dist/chunk-layout-BEAgFhif.mjs +0 -11
- package/dist/chunk-layout-BEAgFhif.mjs.map +0 -1
- package/dist/chunk-layout-mMQXuBLE.cjs +0 -3
- package/dist/chunk-layout-mMQXuBLE.cjs.map +0 -1
- package/dist/chunk-lucide-B99NZWfa.mjs +0 -158
- package/dist/chunk-lucide-B99NZWfa.mjs.map +0 -1
- package/dist/chunk-lucide-XL6d5__j.cjs +0 -3
- package/dist/chunk-lucide-XL6d5__j.cjs.map +0 -1
- package/dist/chunk-preference-DMhhY1Pl.mjs +0 -60
- package/dist/chunk-preference-DMhhY1Pl.mjs.map +0 -1
- package/dist/chunk-preference-DbNgeGhx.cjs +0 -3
- package/dist/chunk-preference-DbNgeGhx.cjs.map +0 -1
- package/dist/chunk-theme-CINVDd47.mjs +0 -17
- package/dist/chunk-theme-CINVDd47.mjs.map +0 -1
- package/dist/chunk-theme-D49XQfXe.cjs +0 -3
- package/dist/chunk-theme-D49XQfXe.cjs.map +0 -1
- package/dist/chunk-useLayout-BAIFfydj.cjs +0 -3
- package/dist/chunk-useLayout-BAIFfydj.cjs.map +0 -1
- package/dist/chunk-useLayout-BXsJlpcb.mjs +0 -12
- package/dist/chunk-useLayout-BXsJlpcb.mjs.map +0 -1
- package/dist/chunk-useTheme-BY1_pW9y.mjs +0 -13
- package/dist/chunk-useTheme-BY1_pW9y.mjs.map +0 -1
- package/dist/chunk-useTheme-Tw_7_cQf.cjs +0 -3
- package/dist/chunk-useTheme-Tw_7_cQf.cjs.map +0 -1
- package/dist/hooks.cjs.map +0 -1
- package/dist/hooks.mjs.map +0 -1
- package/dist/pixel-blast.cjs.map +0 -1
- package/dist/pixel-blast.mjs.map +0 -1
- package/dist/preference.cjs +0 -2
- package/dist/preference.mjs +0 -10
- package/dist/src/designs/components/Button/index.d.ts +0 -32
- package/dist/src/designs/components/Button/index.d.ts.map +0 -1
- package/dist/src/designs/components/Dropdown/index.d.ts +0 -25
- package/dist/src/designs/components/Dropdown/index.d.ts.map +0 -1
- package/dist/src/designs/components/Input/index.d.ts +0 -35
- package/dist/src/designs/components/Input/index.d.ts.map +0 -1
- package/dist/src/designs/components/KeyValueEditor/index.d.ts +0 -44
- package/dist/src/designs/components/KeyValueEditor/index.d.ts.map +0 -1
- package/dist/src/designs/components/SearchInput/index.d.ts +0 -15
- package/dist/src/designs/components/SearchInput/index.d.ts.map +0 -1
- package/dist/src/designs/components/ShowFilter/index.d.ts +0 -40
- package/dist/src/designs/components/ShowFilter/index.d.ts.map +0 -1
- package/dist/src/designs/components/SlideDownSwitcher/index.d.ts +0 -17
- package/dist/src/designs/components/SlideDownSwitcher/index.d.ts.map +0 -1
- package/dist/src/designs/components/Slider/index.d.ts +0 -39
- package/dist/src/designs/components/Slider/index.d.ts.map +0 -1
- package/dist/src/designs/components/Textarea/index.d.ts +0 -33
- package/dist/src/designs/components/Textarea/index.d.ts.map +0 -1
- package/dist/src/hooks/makeCursorFetchFunction.d.ts +0 -85
- package/dist/src/hooks/makeCursorFetchFunction.d.ts.map +0 -1
- package/dist/src/hooks/makeUnifiedInfiniteQuery.d.ts +0 -125
- package/dist/src/hooks/makeUnifiedInfiniteQuery.d.ts.map +0 -1
- package/dist/src/hooks/makeUnifiedQuery.d.ts +0 -20
- package/dist/src/hooks/makeUnifiedQuery.d.ts.map +0 -1
- package/dist/src/hooks/type.d.ts +0 -41
- package/dist/src/hooks/type.d.ts.map +0 -1
- package/dist/src/languages/providers/index.d.ts +0 -8
- package/dist/src/languages/providers/index.d.ts.map +0 -1
- package/dist/src/preference/constants.d.ts.map +0 -1
- package/dist/src/preference/core.d.ts +0 -12
- package/dist/src/preference/core.d.ts.map +0 -1
- package/dist/src/preference/index.d.ts +0 -27
- package/dist/src/preference/index.d.ts.map +0 -1
- package/dist/src/preference/nfx_slice.d.ts +0 -24
- package/dist/src/preference/nfx_slice.d.ts.map +0 -1
- package/dist/src/preference/types.d.ts +0 -28
- package/dist/src/preference/types.d.ts.map +0 -1
- package/dist/src/themes/hooks/useBaseVariables.d.ts +0 -8
- package/dist/src/themes/hooks/useBaseVariables.d.ts.map +0 -1
- package/dist/src/themes/hooks/useThemeVariables.d.ts +0 -11
- package/dist/src/themes/hooks/useThemeVariables.d.ts.map +0 -1
- package/dist/src/themes/hooks/useVariables.d.ts +0 -8
- package/dist/src/themes/hooks/useVariables.d.ts.map +0 -1
- package/dist/src/themes/providers/index.d.ts +0 -8
- package/dist/src/themes/providers/index.d.ts.map +0 -1
- package/dist/src/themes/themes/bases/android.d.ts +0 -5
- package/dist/src/themes/themes/bases/android.d.ts.map +0 -1
- package/dist/src/themes/themes/bases/default.d.ts +0 -6
- package/dist/src/themes/themes/bases/default.d.ts.map +0 -1
- package/dist/src/themes/themes/bases/index.d.ts +0 -9
- package/dist/src/themes/themes/bases/index.d.ts.map +0 -1
- package/dist/src/themes/themes/bases/ios.d.ts +0 -5
- package/dist/src/themes/themes/bases/ios.d.ts.map +0 -1
- package/dist/src/themes/themes/bases/linux.d.ts +0 -5
- package/dist/src/themes/themes/bases/linux.d.ts.map +0 -1
- package/dist/src/themes/themes/bases/windows.d.ts +0 -5
- package/dist/src/themes/themes/bases/windows.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/coffee.d.ts +0 -8
- package/dist/src/themes/themes/colors/coffee.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/corporate.d.ts +0 -8
- package/dist/src/themes/themes/colors/corporate.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/cosmic.d.ts +0 -8
- package/dist/src/themes/themes/colors/cosmic.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/dark.d.ts +0 -8
- package/dist/src/themes/themes/colors/dark.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/default.d.ts +0 -8
- package/dist/src/themes/themes/colors/default.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/forest.d.ts +0 -8
- package/dist/src/themes/themes/colors/forest.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/index.d.ts +0 -14
- package/dist/src/themes/themes/colors/index.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/light.d.ts +0 -8
- package/dist/src/themes/themes/colors/light.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/wheat.d.ts +0 -8
- package/dist/src/themes/themes/colors/wheat.d.ts.map +0 -1
- package/dist/src/themes/themes/colors/wine.d.ts +0 -8
- package/dist/src/themes/themes/colors/wine.d.ts.map +0 -1
- package/dist/src/themes/themes/index.d.ts +0 -3
- package/dist/src/themes/themes/index.d.ts.map +0 -1
- package/dist/src/themes/utils/index.d.ts +0 -5
- package/dist/src/themes/utils/index.d.ts.map +0 -1
- package/dist/src/themes/utils/themeStorage.d.ts +0 -12
- package/dist/src/themes/utils/themeStorage.d.ts.map +0 -1
- package/dist/stores.cjs.map +0 -1
- package/dist/stores.mjs.map +0 -1
- package/dist/themes.cjs.map +0 -1
- package/dist/themes.mjs.map +0 -1
package/dist/layouts.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.styles-module__loading___bgEAk{justify-content:center;align-items:center;display:inline-flex}.styles-module__loading___bgEAk svg polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.styles-module__loading___bgEAk svg polyline.styles-module__back___XLPvD{fill:none;stroke:var(--color-primary-alpha)}.styles-module__loading___bgEAk svg polyline.styles-module__front___hSxig{fill:none;stroke:var(--color-primary);stroke-dasharray:48 144;stroke-dashoffset:192px;animation:1.4s linear infinite styles-module__dash_682___AQzo6}@keyframes styles-module__dash_682___AQzo6{72.5%{opacity:0}to{stroke-dashoffset:0}}.styles-module__loader___E7OIM{justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.styles-module__truckWrapper___Sk4zX{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow-x:hidden}.styles-module__truckBody___j7w2C{width:65%;height:fit-content;margin-bottom:6px;animation:1s linear infinite styles-module__motion___IiNlW}@keyframes styles-module__motion___IiNlW{0%{transform:translateY(0)}50%{transform:translateY(3px)}to{transform:translateY(0)}}.styles-module__truckTires___4ncTl{justify-content:space-between;align-items:center;width:65%;height:fit-content;padding:0 10px 0 15px;display:flex;position:absolute;bottom:0}.styles-module__tiresvg___IBQcN{width:24px}.styles-module__road___sxx-E{background-color:var(--color-fg-heading);border-radius:var(--radius-button);align-self:flex-end;width:100%;height:1.5px;position:relative;bottom:0}.styles-module__road___sxx-E:before{content:"";background-color:var(--color-fg-heading);border-radius:var(--radius-button);border-left:10px solid var(--color-bg);width:20px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-50%}.styles-module__road___sxx-E:after{content:"";background-color:var(--color-fg-heading);border-radius:var(--radius-button);border-left:4px solid var(--color-bg);width:10px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-65%}.styles-module__lampPost___okcN5{height:45%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;bottom:0;right:-90%}@keyframes styles-module__roadAnimation___yvrHP{0%{transform:translate(0)}to{transform:translate(-350px)}}.styles-module__loader___pFUzL{justify-content:center;align-items:center;display:inline-flex;position:relative}.styles-module__loader___pFUzL:before{content:"";background:var(--color-primary);opacity:.3;border-radius:50%;width:100%;height:5px;animation:.5s linear infinite styles-module__shadow324___sutUe;position:absolute;top:calc(100% + 12px);left:0}.styles-module__loader___pFUzL:after{content:"";background:var(--color-primary);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__square___GKjhm:after{border-radius:var(--radius-button);animation:.5s linear infinite styles-module__jump7456Square___Z-D9b}.styles-module__circle___bUpSN:after{border-radius:50%;animation:.5s linear infinite styles-module__jump7456Circle___2AfF7}@keyframes styles-module__jump7456Square___Z-D9b{15%{border-bottom-right-radius:3px}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__jump7456Circle___2AfF7{15%{border-bottom-right-radius:50%}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__shadow324___sutUe{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}.style-module__waves___oR3u7{width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.style-module__waves___oR3u7:before{content:"";background:var(--color-bg);width:.5rem;height:.5rem;transform:translate3d(calc(var(--x) - 50%), calc(var(--y) - 50%), 0);will-change:transform;border-radius:50%;position:absolute;top:0;left:0}.style-module__wavesCanvas___zkhTC{width:100%;height:100%;display:block}.style-module__squaresCanvas___22kMc{border:none;width:100%;height:100%;display:block}.style-module__container___HkxIe{background-color:var(--color-bg);width:100%;height:100%;position:relative;overflow:hidden}.style-module__canvas___MR9JX{width:100%;height:100%;display:block}.style-module__outerVignette___i75nw{pointer-events:none;background:radial-gradient(circle,#0000 60%,#000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__centerVignette___n9uVG{pointer-events:none;background:radial-gradient(circle,#000c 0%,#0000 60%);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__button___RbliA{border-radius:var(--radius-button);cursor:pointer;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:500;transition:all .2s;display:inline-flex;position:relative}.styles-module__button___RbliA:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.styles-module__button___RbliA:disabled{cursor:not-allowed;opacity:.6}.styles-module__button___RbliA.styles-module__small___yK0Yp{min-height:2rem;padding:.5rem 1rem;font-size:.8125rem}.styles-module__button___RbliA.styles-module__medium___eBTch{min-height:2.5rem;padding:.75rem 1.5rem;font-size:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl{min-height:3rem;padding:1rem 2rem;font-size:1rem}.styles-module__button___RbliA.styles-module__primary___qsZpA{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg)}.styles-module__button___RbliA.styles-module__primary___qsZpA:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__primary___qsZpA:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__secondary___SCpPv{background:var(--color-bg-2);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__button___RbliA.styles-module__secondary___SCpPv:hover:not(:disabled){background:var(--color-bg-3);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__outline___rrlk9{border-color:var(--color-border-4);color:var(--color-fg-text);background:0 0}.styles-module__button___RbliA.styles-module__outline___rrlk9:hover:not(:disabled){background:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__ghost___QMoiH{color:var(--color-fg-text);background:0 0;border-color:#0000}.styles-module__button___RbliA.styles-module__ghost___QMoiH:hover:not(:disabled){background:var(--color-bg-2)}.styles-module__button___RbliA.styles-module__danger___MW-pg{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-fg,#fff)}.styles-module__button___RbliA.styles-module__danger___MW-pg:hover:not(:disabled){background:var(--color-danger-light);border-color:var(--color-danger-light);color:var(--color-danger-fg,#fff);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__danger___MW-pg:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__fullWidth___-dXBR{width:100%}.styles-module__button___RbliA.styles-module__loading___UWw6V{pointer-events:none}.styles-module__spinner___KpJ-L{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.6s linear infinite styles-module__spin___ntZKM}@keyframes styles-module__spin___ntZKM{to{transform:rotate(360deg)}}.styles-module__button___RbliA.styles-module__small___yK0Yp .styles-module__spinner___KpJ-L{border-width:1.5px;width:.875rem;height:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl .styles-module__spinner___KpJ-L{border-width:2.5px;width:1.25rem;height:1.25rem}.styles-module__content___oyZRO{align-items:center;display:flex}.styles-module__leftIcon___cDktv,.styles-module__rightIcon___1mpk0{flex-shrink:0;align-items:center;display:flex}.styles-module__leftIcon___cDktv{margin-right:-.25rem}.styles-module__rightIcon___1mpk0{margin-left:-.25rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U{aspect-ratio:1;min-width:2.5rem;min-height:2.5rem;padding:0}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__small___yK0Yp{min-width:2rem;min-height:2rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__large___pIZkl{min-width:3rem;min-height:3rem}.styles-module__iconContainer___bwvE3{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.styles-module__layout___WaGy9{flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:100%;display:flex}.styles-module__horizontal___lKpGq{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.styles-module__topIcon___bzw6s,.styles-module__bottomIcon___suPfa{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__leftIcon___cDktv,.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__rightIcon___1mpk0{margin:0}.Dropdown-module__dropdown___c9wIp{width:100%;display:inline-block;position:relative}.Dropdown-module__dropdownButton___suNh-{border:1px solid var(--color-separator);border-radius:var(--radius-card);cursor:pointer;text-align:left;background:var(--color-bg-2);width:100%;color:var(--color-fg-text);outline:none;justify-content:space-between;align-items:center;padding:.75rem 2.5rem .75rem 1rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5rem;transition:all .2s ease-in-out;display:flex;position:relative}.Dropdown-module__dropdownButton___suNh-:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-bg-1)}.Dropdown-module__dropdownButton___suNh-:focus{border-color:var(--color-primary);background:var(--color-bg-1);box-shadow:0 0 0 2px var(--color-primary-transparent)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__disabled___Rz0pX{cursor:not-allowed;opacity:.6;background:var(--color-bg-3)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__error___F7dDu{border-color:var(--color-danger)}.Dropdown-module__buttonText___D2zxn{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.Dropdown-module__chevronIcon___uyawp{color:var(--color-fg-highlight);flex-shrink:0;transition:transform .15s;position:absolute;right:1rem}.Dropdown-module__chevronIcon___uyawp.Dropdown-module__open___APoXd{transform:rotate(180deg)}.Dropdown-module__dropdownMenu___WJ-QO{background:var(--color-bg);border:1px solid var(--color-border-4);border-radius:var(--radius-card);min-width:100%;box-shadow:0 .5rem 1rem var(--color-shadow);z-index:1000;animation:.15s ease-out Dropdown-module__slideDown___sRCmO;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden}@keyframes Dropdown-module__slideDown___sRCmO{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.Dropdown-module__optionsList___Be6RN{margin:0;padding:.5rem 0;list-style:none}.Dropdown-module__option___q-NgT{cursor:pointer;color:var(--color-fg-text);align-items:center;padding:.75rem 1rem;font-size:.875rem;transition:all .15s;display:flex}.Dropdown-module__option___q-NgT:hover{background-color:var(--color-bg-2)}.Dropdown-module__option___q-NgT.Dropdown-module__selected___-OTW-{background-color:var(--color-bg-3);color:var(--color-fg-highlight);font-weight:600}@media (width<=768px){.Dropdown-module__dropdownButton___suNh-{padding:.625rem 2.25rem .625rem .875rem;font-size:.875rem}.Dropdown-module__chevronIcon___uyawp{right:.875rem}.Dropdown-module__option___q-NgT{padding:.625rem .875rem;font-size:.8125rem}}.styles-module__wrapper___COeGm{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___COeGm.styles-module__fullWidth___lVU49{width:100%}.styles-module__label___gfOA7{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___-zOy5{color:var(--color-danger)}.styles-module__inputContainer___wXY53{align-items:center;width:100%;display:flex;position:relative}.styles-module__input___IZDc3{border:1px solid var(--color-border-4);border-radius:var(--radius-input);background:var(--color-bg);width:100%;color:var(--color-fg-text);outline:none;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__input___IZDc3[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-webkit-strong-password-toggle-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-reveal{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-clear{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .1)}.styles-module__input___IZDc3::placeholder{color:var(--color-fg-muted);opacity:.5}.styles-module__input___IZDc3.styles-module__small___cuGyE{padding:.5rem .75rem;font-size:.8125rem}.styles-module__input___IZDc3.styles-module__medium___JdDPu{padding:.75rem;font-size:.875rem}.styles-module__input___IZDc3.styles-module__large___fMmiG{padding:1rem;font-size:1rem}.styles-module__input___IZDc3.styles-module__default___-eZTG{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__input___IZDc3.styles-module__filled___EQ5PQ{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3{padding-left:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3{padding-right:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-left:2rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-right:2rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-left:3rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-right:3rem}.styles-module__leftIcon___jEW5H,.styles-module__rightIcon___bA3Eo{color:var(--color-fg-muted);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute}.styles-module__leftIcon___jEW5H{left:.75rem}.styles-module__rightIcon___bA3Eo{right:.75rem}.styles-module__rightIcon___bA3Eo.styles-module__rightIconInteractive___ccypw{pointer-events:auto}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__leftIcon___jEW5H{left:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__rightIcon___bA3Eo{right:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__leftIcon___jEW5H{left:1rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__rightIcon___bA3Eo{right:1rem}.styles-module__input___IZDc3.styles-module__error___946qV{border-color:var(--color-danger)}.styles-module__input___IZDc3.styles-module__error___946qV:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb), .1)}.styles-module__input___IZDc3.styles-module__disabled___sJvLd{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorMessage___5Mn22{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___T2eui{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__container___xeg8O{flex-direction:column;gap:1rem;display:flex}.styles-module__label___qhbKe{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__error___O-7AY{color:var(--color-error);font-size:.875rem}.styles-module__pairs___owGV3{flex-direction:column;gap:.75rem;display:flex}.styles-module__pair___G4WFY{grid-template-columns:1fr 2fr auto;align-items:start;gap:.75rem;display:grid}.styles-module__keyInput___wl1M1,.styles-module__valueInput___HiwJ5{flex:1}.styles-module__removeButton___4-X0b{min-width:auto;color:var(--color-error);padding:.5rem}.styles-module__removeButton___4-X0b:hover{background-color:var(--color-error);color:var(--color-primary-fg)}.styles-module__addButton___QFljt{align-self:flex-start}@media (width<=768px){.styles-module__pair___G4WFY{grid-template-columns:1fr}.styles-module__removeButton___4-X0b{align-self:flex-end}}.styles-module__searchContainer___86TGN{width:100%;max-width:400px;position:relative}.styles-module__searchContainerFull___cEuNS{max-width:none}.styles-module__searchIcon___ZInry{color:var(--color-fg-muted);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.styles-module__searchInput___SqZXQ{border:1px solid var(--color-border);border-radius:var(--radius-input);width:100%;color:var(--color-fg-text);background:var(--color-bg-2);padding:.75rem 3rem;font-size:1rem;transition:all .2s}.styles-module__searchInput___SqZXQ:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.styles-module__searchInput___SqZXQ::placeholder{color:var(--color-fg-muted)}.styles-module__clearBtn___7jExr{width:1.5rem;height:1.5rem;color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.styles-module__clearBtn___7jExr:hover{color:var(--color-fg-text)}@media (width<=768px){.styles-module__searchContainer___86TGN{max-width:100%}}.styles-module__container___nGxdM{flex-direction:column;gap:.75rem;display:flex}.styles-module__toggleContainer___VrsKI{align-items:center;display:flex}.styles-module__toggleButton___IzD6Z{border:1px solid var(--color-border-4);border-radius:var(--radius-button);background:var(--color-bg);color:var(--color-fg-muted);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s;display:flex}.styles-module__toggleButton___IzD6Z:hover{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G{background:var(--color-primary);color:var(--color-primary-fg);border-color:var(--color-primary)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-primary-fg)}.styles-module__optionsContainer___LOzlO{background:var(--color-bg-2);border-radius:var(--radius-card);border:1px solid var(--color-border-4);gap:.5rem;padding:.5rem;display:flex}.styles-module__option___abhnC{border:1px solid var(--color-border-4);border-radius:var(--radius-button);background:var(--color-bg);color:var(--color-fg);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.styles-module__option___abhnC:hover{background:var(--color-bg-3);border-color:var(--color-border-3)}.styles-module__option___abhnC.styles-module__active___pqmSi{background:var(--color-primary);color:var(--color-primary-fg);border-color:var(--color-primary)}.styles-module__option___abhnC.styles-module__active___pqmSi:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-primary-fg)}.styles-module__nbSelect___KjxSc{font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1.5rem;display:inline-block;position:relative}.styles-module__selectButton___AKZe4{border-radius:var(--radius-button);cursor:pointer;text-align:left;width:100%;min-width:8rem;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;appearance:none;border:1px solid;outline:none;justify-content:space-between;align-items:center;padding:.4375rem 2.2rem .4375rem 1.125rem;transition:all .15s ease-in-out;display:flex;position:relative}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary-light)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:focus,.styles-module__selectButton___AKZe4.styles-module__primary___HU36a.styles-module__open___9AKMb{background-color:var(--color-primary-light);border-color:var(--color-primary-light);box-shadow:0 0 0 .125rem rgba(var(--color-primary-rgb), .25)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP{background-color:var(--color-bg);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:hover:not(:disabled){background-color:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:focus,.styles-module__selectButton___AKZe4.styles-module__default___LedYP.styles-module__open___9AKMb{background-color:var(--color-bg-2);border-color:var(--color-primary);box-shadow:0 0 0 .125rem rgba(var(--color-primary-rgb), .25)}.styles-module__selectButton___AKZe4:disabled{cursor:not-allowed;opacity:.6}.styles-module__buttonText___QSLO1{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.styles-module__chevronIcon___qAHaD{flex-shrink:0;width:1.5rem;height:1.5rem;transition:transform .15s;position:absolute;right:.41rem}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a .styles-module__chevronIcon___qAHaD{color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP .styles-module__chevronIcon___qAHaD{color:var(--color-fg)}.styles-module__chevronIcon___qAHaD.styles-module__open___9AKMb{transform:rotate(180deg)}.styles-module__optionsPanel___NWAp3{background-color:var(--color-bg);border:1px solid var(--color-border-4);border-radius:var(--radius-button);min-width:100%;box-shadow:0 .5rem 1rem var(--color-shadow);z-index:1000;transform-origin:top;visibility:hidden;pointer-events:none;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden}.styles-module__optionsPanel___NWAp3.styles-module__open___9AKMb{visibility:visible;pointer-events:auto;animation:.25s ease-out styles-module__expandDown___eD4lh}.styles-module__optionsPanel___NWAp3.styles-module__closed___bez-q{visibility:hidden;pointer-events:none;animation:.25s ease-out styles-module__collapseUp___dt1E7}@keyframes styles-module__expandDown___eD4lh{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes styles-module__collapseUp___dt1E7{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.styles-module__optionsPanel___NWAp3.styles-module__primary___HU36a{border-color:var(--color-primary)}.styles-module__optionsPanel___NWAp3.styles-module__default___LedYP{border-color:var(--color-border-4)}.styles-module__optionsList___AxhVp{margin:0;padding:.5rem 0;list-style:none}.styles-module__option___t1SSw{cursor:pointer;color:var(--color-fg-text);justify-content:space-between;align-items:center;padding:.75rem 1.125rem;transition:all .15s;display:flex}.styles-module__option___t1SSw:hover{background-color:var(--color-bg-2)}.styles-module__option___t1SSw.styles-module__selected___azD4A{background-color:var(--color-primary);color:var(--color-primary-fg);font-weight:700}@media (prefers-color-scheme:dark){.styles-module__optionsPanel___NWAp3{box-shadow:0 .5rem 1rem var(--color-shadow)}}.styles-module__sliderContainer___lgpaD{flex-direction:column;gap:.5rem;display:flex}.styles-module__sliderContainer___lgpaD.styles-module__fullWidth___ZS8W5{width:100%}.styles-module__labelRow___dkVVM{justify-content:space-between;align-items:center;min-height:1.5rem;margin-bottom:.5rem;display:flex}.styles-module__label___bXGZs{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__required___FuyfE{color:var(--color-danger);margin-left:.25rem}.styles-module__sliderWrapper___1Wdti{touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.75rem;width:100%;display:flex}.styles-module__sliderRoot___yzOjR{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-grow:1;align-items:center;width:100%;padding:.75rem 0;display:flex;position:relative}.styles-module__sliderRoot___yzOjR:active{cursor:grabbing}.styles-module__sliderTrackWrapper___N72WQ{flex-grow:1;display:flex;position:relative}.styles-module__sliderTrack___AltcD{border-radius:var(--radius-badge);background-color:var(--color-bg-3);width:100%;height:.375rem;position:relative;overflow:hidden}.styles-module__sliderRange___U3g0-{background-color:var(--color-primary);border-radius:var(--radius-badge);height:100%;position:absolute}.styles-module__valueIndicator___aLf0I{color:var(--color-primary);text-align:center;flex-shrink:0;min-width:2rem;font-size:.875rem;font-weight:600;line-height:1}.styles-module__iconWrapper___wL-b8{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__icon___vHsID{width:20px;height:20px;color:var(--color-fg-muted)}.styles-module__errorMessage___qFgGe{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___tgBGl{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__loadingContainer___OMgwS{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;display:flex}.styles-module__loadingText___KRZqR{color:var(--color-fg-muted);font-size:1rem}.styles-module__errorContainer___qhAg2{text-align:center;min-height:60vh;color:var(--color-fg-text);flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:3rem 2rem;display:flex}.styles-module__errorIconWrapper___IHZrN{background:linear-gradient(135deg, rgba(var(--color-error-rgb), .1), rgba(var(--color-error-rgb), .05));border:2px solid rgba(var(--color-error-rgb), .2);border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;animation:2s ease-in-out infinite styles-module__pulse___Lju-z;display:flex}@keyframes styles-module__pulse___Lju-z{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.styles-module__errorIcon___oGDIP{color:var(--color-error);stroke-width:1.5px}.styles-module__errorContent___F55rQ{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:600px;display:flex}.styles-module__errorTitle___hC8D-{color:var(--color-fg-heading);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.styles-module__errorDescription___hZtuP{color:var(--color-fg-muted);max-width:480px;margin:0;font-size:1rem;line-height:1.6}.styles-module__errorDetailsWrapper___-sp8b{width:100%;max-width:600px;margin-top:.5rem}.styles-module__errorDetailsContainer___eywMo{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-bg-2);width:100%;transition:all .2s;overflow:hidden}.styles-module__errorDetailsContainer___eywMo:hover{border-color:var(--color-border-hover);background:var(--color-bg-3)}.styles-module__errorDetailsSummary___hGEoD{cursor:pointer;color:var(--color-fg-muted);-webkit-user-select:none;user-select:none;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;list-style:none;transition:color .2s}.styles-module__errorDetailsSummary___hGEoD:hover{color:var(--color-fg-text)}.styles-module__errorDetailsSummary___hGEoD::-webkit-details-marker{display:none}.styles-module__errorDetailsSummary___hGEoD:before{content:"▶";margin-right:.5rem;font-size:.75rem;transition:transform .2s;display:inline-block}.styles-module__errorDetailsContainer___eywMo[open] .styles-module__errorDetailsSummary___hGEoD:before{transform:rotate(90deg)}.styles-module__errorDetails___tzCT-{background:var(--color-bg-3);border-top:1px solid var(--color-border);max-width:100%;color:var(--color-fg-muted);white-space:pre-wrap;word-break:break-word;margin:0;padding:1rem 1.25rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:.8125rem;line-height:1.6;overflow-x:auto}.styles-module__errorActions___gtqYw{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.styles-module__retryButton___TA4jm{border-radius:var(--radius-button);background:var(--color-primary);color:var(--color-primary-fg);cursor:pointer;box-shadow:0 2px 8px var(--color-shadow);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex}.styles-module__retryButton___TA4jm:hover{box-shadow:0 4px 16px var(--color-shadow);background:var(--color-primary-light);color:var(--color-primary-fg);transform:translateY(-2px)}.styles-module__retryButton___TA4jm:active{box-shadow:0 2px 8px var(--color-shadow);transform:translateY(0)}.styles-module__retryButtonIcon___vzfp-{font-size:1.125rem;line-height:1;transition:transform .3s;display:inline-block}.styles-module__retryButton___TA4jm:hover .styles-module__retryButtonIcon___vzfp-{transform:rotate(180deg)}.styles-module__clearLocalDataButton___T3B-K{border-radius:var(--radius-button);color:var(--color-fg-muted);border:1px solid var(--color-border-4);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex}.styles-module__clearLocalDataButton___T3B-K:hover{color:var(--color-fg-text);border-color:var(--color-border-3);background:var(--color-bg-secondary)}.styles-module__wrapper___jXPV3{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___jXPV3.styles-module__fullWidth___eKyGB{width:100%}.styles-module__label___MyTeo{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___TV-m8{color:var(--color-danger)}.styles-module__inputContainer___VvGBl{align-items:flex-start;width:100%;display:flex;position:relative}.styles-module__textarea___AjX9N{border:1px solid var(--color-border-4);border-radius:var(--radius-input);background:var(--color-bg);width:100%;color:var(--color-fg-text);resize:vertical;outline:none;min-height:4rem;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__textarea___AjX9N:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .1)}.styles-module__textarea___AjX9N::placeholder{color:var(--color-fg-muted);opacity:.5}.styles-module__textarea___AjX9N.styles-module__small___zMx0G{min-height:3rem;padding:.5rem .75rem;font-size:.8125rem}.styles-module__textarea___AjX9N.styles-module__medium___tO2Lb{min-height:4rem;padding:.75rem;font-size:.875rem}.styles-module__textarea___AjX9N.styles-module__large___3eU2g{min-height:5rem;padding:1rem;font-size:1rem}.styles-module__textarea___AjX9N.styles-module__default___vsSxX{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__textarea___AjX9N.styles-module__filled___TPQgI{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___VvGBl .styles-module__leftIcon___FHp2R{color:var(--color-fg-muted);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;left:.75rem}.styles-module__inputContainer___VvGBl .styles-module__rightIcon___dkyvP{color:var(--color-fg-muted);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;right:.75rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__rightIcon___dkyvP{top:.5rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__rightIcon___dkyvP{top:1rem}.styles-module__textarea___AjX9N.styles-module__error___d8gLK{border-color:var(--color-danger)}.styles-module__textarea___AjX9N.styles-module__error___d8gLK:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb), .1)}.styles-module__textarea___AjX9N.styles-module__disabled___IzbfE{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorText___Nom7x{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___97Def{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__virtualList___pM6rN{contain:strict;width:100%;padding-bottom:300px;position:relative;overflow:auto}.styles-module__emptyContainer___rm938{height:100%;color:var(--color-fg-muted);justify-content:center;align-items:center;display:flex}.styles-module__virtualListInner___HxRzc{width:100%;position:relative}.styles-module__virtualListItems___p19-a{width:100%;position:absolute;top:0;left:0}.styles-module__loadingMore___zAdLM{color:var(--color-fg-muted);justify-content:center;align-items:center;gap:.75rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;margin-top:1rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh span{background-color:var(--color-bg-2);border-radius:var(--radius-button);padding:.5rem 1rem}.styles-module__virtualList___xmj2v{width:100%;padding-bottom:300px;position:relative;overflow:visible}.styles-module__virtualListInner___quD74{width:100%;position:relative}.styles-module__virtualListItems___-Muml{width:100%;position:absolute;top:0;left:0}.styles-module__virtualListRow___h3pzX{width:100%}.styles-module__emptyContainer___LIy8r{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:2rem 0;display:flex}.styles-module__loadingMore___Mzf-p{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:1.5rem 0;display:flex}.styles-module__endOfList___g5G--{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;padding:1.5rem 0;display:flex}.styles-module__sidebar___BMt0j{flex-direction:column;min-height:0;display:flex;overflow:hidden}.styles-module__sidebarContent___iAwiw{flex-direction:column;flex:1;min-height:0;padding-top:1rem;display:flex;overflow:hidden}.styles-module__menuWrapper___DKuEv{flex:1;min-height:0;overflow:hidden auto}.styles-module__sidebarFooter___qiPXO{flex-shrink:0;margin-top:auto}.styles-module__menuWrapper___DKuEv::-webkit-scrollbar{width:0;height:0}.styles-module__menuWrapper___DKuEv{scrollbar-width:none;-ms-overflow-style:none}.styles-module__sidebar___BMt0j .ps-sidebar-root{background-color:var(--color-bg-2)!important;border-right:1px solid var(--color-separator)!important;flex-direction:column!important;min-height:0!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-sidebar-container{background-color:var(--color-bg-2)!important;min-height:0!important;color:var(--color-fg-text)!important;flex-direction:column!important;flex:1!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-menu-button{border-radius:var(--radius-button)!important;color:var(--color-fg-text)!important;margin:.125rem .5rem!important;padding:.5rem .75rem!important;font-size:.875rem!important;transition:background-color .2s,color .2s!important}.styles-module__sidebar___BMt0j .ps-menu-button:hover{background-color:var(--color-bg-3)!important;color:var(--color-fg-text)!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active{background-color:var(--color-primary)!important;color:var(--color-primary-fg)!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-submenu-expand-icon{color:var(--color-primary-fg)!important}.styles-module__sidebar___BMt0j .ps-menu-icon{width:1.25rem!important;height:1.25rem!important;color:var(--color-fg-text)!important}.styles-module__sidebar___BMt0j .ps-submenu-content{background-color:var(--color-bg-3)!important;padding-left:1rem!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-submenu-content .ps-submenu-content{padding-left:.75rem!important}.styles-module__sidebar___BMt0j .ps-submenu-content .ps-menu-button{margin:.125rem .25rem!important;padding:.375rem .5rem .375rem .75rem!important;font-size:.8125rem!important}.styles-module__logoutContainer___7NwBL{border-top:1px solid var(--color-separator);padding:.5rem}.styles-module__logoutButton___rfD6u{border-radius:var(--radius-button);width:100%;color:var(--color-fg-text);cursor:pointer;white-space:nowrap;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;transition:background-color .2s,color .2s;display:flex;overflow:hidden}.styles-module__logoutButton___rfD6u:hover{background-color:var(--color-bg-3)}.styles-module__logoutButton___rfD6u:active{transform:scale(.98)}.styles-module__logoutButton___rfD6u svg{color:inherit;flex-shrink:0}.styles-module__hiddenText___z183T{opacity:0;width:0;max-width:0;overflow:hidden}.styles-module__visibleText___lfsv-{opacity:1;width:auto;max-width:200px}.styles-module__footer___g-hY7{background:var(--color-bg-2);width:100%;padding:0 2rem}.styles-module__footerContent___Oen5n{justify-content:space-between;align-items:center;max-width:100%;margin:0 auto;display:flex}.styles-module__copyright___1R2o3{color:var(--color-fg-text);font-size:.875rem}.styles-module__links___dQyvB{gap:1.5rem;display:flex}.styles-module__link___UWfyK{color:var(--color-fg-text);font-size:.875rem;text-decoration:none;transition:color .3s}.styles-module__link___UWfyK:hover{color:var(--color-primary)}@media (width<=768px){.styles-module__footerContent___Oen5n{flex-direction:column;gap:1rem}.styles-module__links___dQyvB{gap:1rem}}.styles-module__header___4Uc8h{width:100%;padding:.5rem 2rem;display:flex}.styles-module__header___4Uc8h>:first-child{flex:1;justify-content:flex-start;align-items:center;display:flex}.styles-module__header___4Uc8h>:last-child{flex:1;justify-content:flex-end;align-items:center;display:flex}.styles-module__layout___ZQKU7{background:var(--color-bg);flex-direction:column;width:100%;height:100vh;display:flex;position:relative}.styles-module__header___XIaFb{z-index:100;background:var(--color-bg);width:100%;box-shadow:0 .125rem .25rem 0 var(--color-shadow);position:fixed;top:0}.styles-module__footer___r8ASO{z-index:100;width:100%;position:fixed;bottom:0}.styles-module__mainWrapper___i4tEI{flex:1;display:flex;position:relative}.styles-module__sidebarChrome___q0pw5{z-index:101;box-sizing:border-box;position:fixed;left:0}.styles-module__sidebar___ij-8-{height:100%;min-height:0}.styles-module__content___mTgUr{background:var(--color-bg);flex:1;min-height:calc(100vh - 10rem);margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=768px){.styles-module__content___mTgUr{width:100%}.styles-module__sidebarChrome___q0pw5{z-index:999}}.styles-module__mainWrapper___AiTAw{flex-direction:row;flex:1;display:flex;position:relative}.styles-module__sidebarContainer___X4yj8{z-index:99;box-sizing:border-box;flex-direction:column;min-height:0;display:flex;position:fixed;left:0;overflow:hidden}.styles-module__sidebar___VQTlH{flex-shrink:0;top:0;left:0}.styles-module__content___htJlH{background:var(--color-bg);flex:1;margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=1024px){.styles-module__content___htJlH{padding:1.5rem}}@media (width<=768px){.styles-module__content___htJlH{width:100%}}.styles-module__wavesWrapper___TK7DI{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__wavesWrapper___TK7DI>*{pointer-events:auto}.styles-module__squaresWrapper___P25uF{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__squaresWrapper___P25uF>*{pointer-events:auto}.styles-module__letterGlitchWrapper___KWtWU{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__letterGlitchWrapper___KWtWU>*{pointer-events:auto}.styles-module__pixelBlastWrapper___YptHh{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__pixelBlastWrapper___YptHh>*{pointer-events:auto}.style-module__container___Hh3-c{width:100%;height:100%;position:relative;overflow:hidden}/*$vite$:1*/`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("./chunk-lstorage-_yGQsIQ9.cjs"),_=require("./chunk-layout-mMQXuBLE.cjs"),x=require("./chunk-useLayout-BAIFfydj.cjs"),C=require("./chunk-animations-i85rn79V.cjs"),b=require("./chunk-preference-DbNgeGhx.cjs");let o=require("react"),e=require("react/jsx-runtime"),S=require("react-pro-sidebar"),Z=require("lucide-react");function W(){return T.getItem(_.LAYOUT_STORAGE_KEY)}function w(a){T.setItem(_.LAYOUT_STORAGE_KEY,a)}function ee(){T.removeItem(_.LAYOUT_STORAGE_KEY)}var re="styles-module__sidebar___BMt0j",ae="styles-module__sidebarContent___iAwiw",te="styles-module__menuWrapper___DKuEv",se="styles-module__sidebarFooter___qiPXO",oe="styles-module__logoutContainer___7NwBL",ne="styles-module__logoutButton___rfD6u",le="styles-module__hiddenText___z183T",ie="styles-module__visibleText___lfsv-",h={sidebar:re,sidebarContent:ae,menuWrapper:te,sidebarFooter:se,logoutContainer:oe,logoutButton:ne,hiddenText:le,visibleText:ie};function O(a,r,t){return a===r?!0:!(!a.startsWith(r+"/")||t?.length&&t.some(s=>s!==r&&(a===s||a.startsWith(s+"/"))))}function R(a,r){return O(a,r.path,r.children?.map(t=>t.path))?!0:r.children?r.children.some(t=>O(a,t.path,r.children?.map(s=>s.path))||R(a,t)):!1}var N=(0,o.memo)(({children:a,collapsed:r=!1,toggled:t=!1,onBackdropClick:s,breakPoint:n="all",className:u,items:l=[],currentPathname:i="",onNavigate:v,logoutLabel:c="Logout",handleLogout:m,bottomLogoutButton:p,headerHeight:y=0,footerHeight:g=0})=>{const U=(0,o.useCallback)(d=>{v?.(d)},[v]),q=(0,o.useCallback)((d,z)=>{const J=O(i,d.path,z);if(d.children?.length){const Q=R(i,d);return(0,e.jsx)(S.SubMenu,{label:d.label,icon:d.icon,active:Q,children:d.children.map(V=>q(V,d.children.map(X=>X.path)))},d.path)}return(0,e.jsx)(S.MenuItem,{icon:d.icon,onClick:()=>U(d.path),active:J,children:d.label},d.path)},[i,U]),H=l.length>0?(0,e.jsx)(S.Menu,{transitionDuration:300,closeOnClick:!0,menuItemStyles:{button:{color:"var(--color-fg-text)",backgroundColor:"transparent","&:hover":{backgroundColor:"var(--color-bg-3)",color:"var(--color-fg-text)"},"&.active":{backgroundColor:"var(--color-primary)",color:"var(--color-primary-fg)"}},icon:{color:"var(--color-fg-text)","&.active":{color:"var(--color-primary-fg)"}},label:{color:"var(--color-fg-text)","&.active":{color:"var(--color-primary-fg)"}}},children:l.map(d=>q(d))},`${r}-${t}`):null,F=(0,o.useMemo)(()=>p??(m!=null?(0,e.jsx)("div",{className:h.logoutContainer,children:(0,e.jsxs)("button",{type:"button",className:h.logoutButton,onClick:m,title:c,children:[(0,e.jsx)(Z.LogOut,{size:20}),(0,e.jsx)("span",{className:r?h.hiddenText:h.visibleText,children:c})]})}):null),[r,c,m,p]);return(0,e.jsx)(S.Sidebar,{collapsed:r,toggled:t,onBackdropClick:s,breakPoint:n,backgroundColor:"var(--color-bg-2)",rootStyles:{border:"none",borderRight:"1px solid var(--color-separator)",marginTop:`${y}px`,marginBottom:`${g}px`,height:`calc(100vh - ${g+y}px) !important`},className:`${h.sidebar} ${u||""}`,children:(0,e.jsxs)("div",{className:h.sidebarContent,onWheel:d=>d.stopPropagation(),children:[(0,e.jsx)("div",{className:h.menuWrapper,children:a??H}),F!=null?(0,e.jsx)("div",{className:h.sidebarFooter,children:F}):null]})})});N.displayName="Sidebar";var ue="styles-module__footer___g-hY7",de="styles-module__footerContent___Oen5n",ce="styles-module__copyright___1R2o3",_e="styles-module__links___dQyvB",me="styles-module__link___UWfyK",f={footer:ue,footerContent:de,copyright:ce,links:_e,link:me},P=(0,o.memo)(()=>{const a=new Date().getFullYear();return(0,e.jsxs)("div",{className:f.footerContent,children:[(0,e.jsxs)("span",{className:f.copyright,children:["© ",a]}),(0,e.jsxs)("div",{className:f.links,children:[(0,e.jsx)("a",{href:"#",className:f.link,children:"About Us"}),(0,e.jsx)("a",{href:"#",className:f.link,children:"Privacy Policy"}),(0,e.jsx)("a",{href:"#",className:f.link,children:"Terms of Service"})]})]})});P.displayName="DefaultFooterContent";var A=(0,o.memo)(({children:a,className:r})=>(0,e.jsx)("div",{className:`${f.footer} ${r||""}`,children:a??(0,e.jsx)(P,{})}));A.displayName="Footer";var pe="styles-module__header___4Uc8h",ve={header:pe},$=(0,o.memo)(({leftContent:a,rightContent:r})=>(0,e.jsxs)("div",{className:ve.header,children:[(0,e.jsx)("div",{children:a}),(0,e.jsx)("div",{children:r})]}));$.displayName="Header";var ye="styles-module__layout___ZQKU7",he="styles-module__header___XIaFb",fe="styles-module__footer___r8ASO",E={layout:ye,header:he,footer:fe};function Y(){const a=(0,o.useRef)(null),[r,t]=(0,o.useState)(0);return(0,o.useLayoutEffect)(()=>{const s=a.current;if(!s)return;const n=new ResizeObserver(([u])=>{const l=u?.contentRect.height??0;t(i=>i!==l?l:i)});return n.observe(s),()=>n.disconnect()},[]),[(0,o.useCallback)(s=>{s&&(a.current=s)},[]),r]}var B=(0,o.memo)(({children:a,headerLeft:r,headerRight:t,footerContent:s})=>{const[n,u]=Y(),[l,i]=Y();return(0,e.jsxs)("div",{className:E.layout,children:[(0,e.jsx)("header",{ref:n,className:E.header,children:(0,e.jsx)($,{leftContent:r,rightContent:t})}),a(u,i),(0,e.jsx)("footer",{ref:l,className:E.footer,children:(0,e.jsx)(A,{children:s})})]})});B.displayName="MainWrapper";var xe="styles-module__mainWrapper___i4tEI",be="styles-module__sidebarChrome___q0pw5",ge="styles-module__sidebar___ij-8-",Se="styles-module__content___mTgUr",j={mainWrapper:xe,sidebarChrome:be,sidebar:ge,content:Se},M=(0,o.memo)(({children:a,headerHeight:r,footerHeight:t,sidebarItems:s,sidebarCurrentPathname:n,onSidebarNavigate:u,sidebarLogoutLabel:l,onSidebarLogout:i,bottomLogoutButton:v})=>{const{sidebarOpen:c,closeSidebar:m}=x.useLayout(),p=(0,o.useCallback)(()=>{m()},[m]);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:j.sidebarChrome,style:{top:`${r}px`,height:`calc(100vh - ${r+t}px)`},children:(0,e.jsx)(N,{toggled:c,onBackdropClick:p,breakPoint:"all",className:j.sidebar,items:s,currentPathname:n,onNavigate:u,logoutLabel:l,handleLogout:i,bottomLogoutButton:v})}),(0,e.jsx)("main",{className:j.mainWrapper,style:{marginTop:`${r}px`,marginBottom:`${t}px`},children:(0,e.jsx)("div",{className:j.content,"data-lenis-prevent":!0,children:a})})]})});M.displayName="SideHideLayout";var je="styles-module__mainWrapper___AiTAw",Le="styles-module__sidebarContainer___X4yj8",ke="styles-module__sidebar___VQTlH",Ne="styles-module__content___htJlH",L={mainWrapper:je,sidebarContainer:Le,sidebar:ke,content:Ne};function Ce(){const a=(0,o.useRef)(null),[r,t]=(0,o.useState)(0);return(0,o.useLayoutEffect)(()=>{const s=a.current;if(!s)return;const n=new ResizeObserver(([u])=>{const l=u?.contentRect.width??0;t(i=>i!==l?l:i)});return n.observe(s),()=>n.disconnect()},[]),[(0,o.useCallback)(s=>{s&&(a.current=s)},[]),r]}var D=(0,o.memo)(({children:a,headerHeight:r,footerHeight:t,sidebarItems:s,sidebarCurrentPathname:n,onSidebarNavigate:u,sidebarLogoutLabel:l,onSidebarLogout:i,bottomLogoutButton:v})=>{const{sidebarOpen:c,closeSidebar:m}=x.useLayout(),[p,y]=Ce(),g=()=>{m()};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{ref:p,className:L.sidebarContainer,style:{height:"100%"},children:(0,e.jsx)(N,{collapsed:c,toggled:c,onBackdropClick:g,breakPoint:"xs",className:L.sidebar,items:s,currentPathname:n,onNavigate:u,logoutLabel:l,handleLogout:i,bottomLogoutButton:v,headerHeight:r,footerHeight:t})}),(0,e.jsx)("main",{className:L.mainWrapper,style:{marginTop:`${r}px`,marginBottom:`${t}px`,marginLeft:`${y}px`,width:`calc(100% - ${y}px)`},children:(0,e.jsx)("div",{className:L.content,"data-lenis-prevent":!0,children:a})})]})});D.displayName="SideShowLayout";var Ee="styles-module__wavesWrapper___TK7DI",Oe="styles-module__squaresWrapper___P25uF",Te="styles-module__letterGlitchWrapper___KWtWU",We="styles-module__pixelBlastWrapper___YptHh",k={wavesWrapper:Ee,squaresWrapper:Oe,letterGlitchWrapper:Te,pixelBlastWrapper:We},Ae=(0,o.lazy)(()=>Promise.resolve().then(()=>require("./pixel-blast.cjs"))),I=(0,o.memo)(({children:a,background:r})=>{const t=()=>{switch(r){case b.DashboardBackgroundEnum.WAVES:return(0,e.jsx)("div",{className:k.wavesWrapper,children:(0,e.jsx)(C.WaveBackground,{})});case b.DashboardBackgroundEnum.SQUARES:return(0,e.jsx)("div",{className:k.squaresWrapper,children:(0,e.jsx)(C.SquareBackground,{})});case b.DashboardBackgroundEnum.LETTER_GLITCH:return(0,e.jsx)("div",{className:k.letterGlitchWrapper,children:(0,e.jsx)(C.LetterGlitchBackground,{})});case b.DashboardBackgroundEnum.PIXEL_BLAST:return(0,e.jsx)(o.Suspense,{fallback:null,children:(0,e.jsx)("div",{className:k.pixelBlastWrapper,children:(0,e.jsx)(Ae,{})})});case b.DashboardBackgroundEnum.NONE:default:return null}};return(0,e.jsxs)(e.Fragment,{children:[a,t()]})});I.displayName="Background";var G=(0,o.memo)(({children:a,headerLeft:r,headerRight:t,footerContent:s,sidebarItems:n,sidebarCurrentPathname:u,onSidebarNavigate:l,sidebarLogoutLabel:i,onSidebarLogout:v,bottomLogoutButton:c})=>{const{layoutMode:m}=x.useLayout();return(0,e.jsx)(B,{headerLeft:r,headerRight:t,footerContent:s,children:(p,y)=>m===_.LayoutModeEnum.HIDE?(0,e.jsx)(M,{headerHeight:p,footerHeight:y,sidebarItems:n,sidebarCurrentPathname:u,onSidebarNavigate:l,sidebarLogoutLabel:i,onSidebarLogout:v,bottomLogoutButton:c,children:a}):(0,e.jsx)(D,{headerHeight:p,footerHeight:y,sidebarItems:n,sidebarCurrentPathname:u,onSidebarNavigate:l,sidebarLogoutLabel:i,onSidebarLogout:v,bottomLogoutButton:c,children:a})})});G.displayName="LayoutFrame";var $e=({defaultLayoutMode:a,sidebarOpen:r})=>{const[t,s]=(0,o.useState)(()=>{const n=W();if(n)try{const u=JSON.parse(n),l=u.state?.layoutMode??u.layoutMode;return l===_.LayoutModeEnum.SHOW||l===_.LayoutModeEnum.HIDE?l:a}catch{return a}return a});return(0,o.useEffect)(()=>{w(JSON.stringify({state:{sidebarOpen:r,layoutMode:t}}))},[r,t]),{layoutMode:t,setLayoutMode:(0,o.useCallback)(n=>{s(n)},[])}},Be=()=>{const[a,r]=(0,o.useState)(()=>{const t=W();if(t)try{const s=JSON.parse(t);return s.state?.sidebarOpen??s.sidebarOpen??!1}catch{return!1}return!1});return{sidebarOpen:a,setSidebarOpen:(0,o.useCallback)(t=>{r(t)},[]),toggleSidebar:(0,o.useCallback)(()=>{r(t=>!t)},[]),closeSidebar:(0,o.useCallback)(()=>{r(!1)},[])}},K=(0,o.memo)(({children:a,defaultLayoutMode:r=_.DEFAULT_LAYOUT_MODE})=>{const{sidebarOpen:t,setSidebarOpen:s,toggleSidebar:n,closeSidebar:u}=Be(),{layoutMode:l,setLayoutMode:i}=$e({defaultLayoutMode:r,sidebarOpen:t});return(0,e.jsx)(x.LayoutContext.Provider,{value:{sidebarOpen:t,layoutMode:l,setSidebarOpen:s,toggleSidebar:n,closeSidebar:u,setLayoutMode:i},children:a})});K.displayName="LayoutProvider";exports.Background=I;exports.DEFAULT_LAYOUT_MODE=_.DEFAULT_LAYOUT_MODE;exports.Footer=A;exports.Header=$;exports.LAYOUT_MODE_VALUES=_.LAYOUT_MODE_VALUES;exports.LAYOUT_STORAGE_KEY=_.LAYOUT_STORAGE_KEY;exports.LayoutContext=x.LayoutContext;exports.LayoutFrame=G;exports.LayoutModeEnum=_.LayoutModeEnum;exports.LayoutProvider=K;exports.MainWrapper=B;exports.SideHideLayout=M;exports.SideShowLayout=D;exports.Sidebar=N;exports.getLayoutStorage=W;exports.removeLayoutStorage=ee;exports.setLayoutStorage=w;exports.useLayout=x.useLayout;
|
|
1
|
+
(function(){try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.styles-module__loading___bgEAk{justify-content:center;align-items:center;display:inline-flex}.styles-module__loading___bgEAk svg polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.styles-module__loading___bgEAk svg polyline.styles-module__back___XLPvD{fill:none;stroke:var(--color-primary-alpha)}.styles-module__loading___bgEAk svg polyline.styles-module__front___hSxig{fill:none;stroke:var(--color-primary);stroke-dasharray:48 144;stroke-dashoffset:192px;animation:1.4s linear infinite styles-module__dash_682___AQzo6}@keyframes styles-module__dash_682___AQzo6{72.5%{opacity:0}to{stroke-dashoffset:0}}.styles-module__loader___E7OIM{justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.styles-module__truckWrapper___Sk4zX{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow-x:hidden}.styles-module__truckBody___j7w2C{width:65%;height:fit-content;margin-bottom:6px;animation:1s linear infinite styles-module__motion___IiNlW}@keyframes styles-module__motion___IiNlW{0%{transform:translateY(0)}50%{transform:translateY(3px)}to{transform:translateY(0)}}.styles-module__truckTires___4ncTl{justify-content:space-between;align-items:center;width:65%;height:fit-content;padding:0 10px 0 15px;display:flex;position:absolute;bottom:0}.styles-module__tiresvg___IBQcN{width:24px}.styles-module__road___sxx-E{background-color:var(--color-fg-heading);border-radius:var(--radius-button);align-self:flex-end;width:100%;height:1.5px;position:relative;bottom:0}.styles-module__road___sxx-E:before{content:"";background-color:var(--color-fg-heading);border-radius:var(--radius-button);border-left:10px solid var(--color-bg);width:20px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-50%}.styles-module__road___sxx-E:after{content:"";background-color:var(--color-fg-heading);border-radius:var(--radius-button);border-left:4px solid var(--color-bg);width:10px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-65%}.styles-module__lampPost___okcN5{height:45%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;bottom:0;right:-90%}@keyframes styles-module__roadAnimation___yvrHP{0%{transform:translate(0)}to{transform:translate(-350px)}}.styles-module__loader___pFUzL{justify-content:center;align-items:center;display:inline-flex;position:relative}.styles-module__loader___pFUzL:before{content:"";background:var(--color-primary);opacity:.3;border-radius:50%;width:100%;height:5px;animation:.5s linear infinite styles-module__shadow324___sutUe;position:absolute;top:calc(100% + 12px);left:0}.styles-module__loader___pFUzL:after{content:"";background:var(--color-primary);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__square___GKjhm:after{border-radius:var(--radius-button);animation:.5s linear infinite styles-module__jump7456Square___Z-D9b}.styles-module__circle___bUpSN:after{border-radius:50%;animation:.5s linear infinite styles-module__jump7456Circle___2AfF7}@keyframes styles-module__jump7456Square___Z-D9b{15%{border-bottom-right-radius:3px}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__jump7456Circle___2AfF7{15%{border-bottom-right-radius:50%}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__shadow324___sutUe{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}.style-module__waves___oR3u7{width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.style-module__waves___oR3u7:before{content:"";background:var(--color-bg);width:.5rem;height:.5rem;transform:translate3d(calc(var(--x) - 50%), calc(var(--y) - 50%), 0);will-change:transform;border-radius:50%;position:absolute;top:0;left:0}.style-module__wavesCanvas___zkhTC{width:100%;height:100%;display:block}.style-module__squaresCanvas___22kMc{border:none;width:100%;height:100%;display:block}.style-module__container___HkxIe{background-color:var(--color-bg);width:100%;height:100%;position:relative;overflow:hidden}.style-module__canvas___MR9JX{width:100%;height:100%;display:block}.style-module__outerVignette___i75nw{pointer-events:none;background:radial-gradient(circle,#0000 60%,#000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__centerVignette___n9uVG{pointer-events:none;background:radial-gradient(circle,#000c 0%,#0000 60%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__container___Hh3-c{width:100%;height:100%;position:relative;overflow:hidden}.styles-module__logo___z1FuW{appearance:none;color:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:none;transition:transform .12s cubic-bezier(.2,0,0,1)}.styles-module__logo___z1FuW:hover{transform:translateY(-1px)}.styles-module__logo___z1FuW:focus-visible{outline:none}.styles-module__logo___z1FuW:focus-visible .styles-module__mark___HoiFg{box-shadow:0 0 0 2px var(--accent-a4), 0 14px 30px color-mix(in oklab, var(--black-a3) 75%, transparent)}.styles-module__mark___HoiFg{flex:none;transition:transform .12s cubic-bezier(.2,0,0,1),box-shadow .12s cubic-bezier(.2,0,0,1);display:block;overflow:hidden}.styles-module__mark___HoiFg img{object-fit:cover;width:100%;height:100%;margin:0;padding:0;transition:transform .12s cubic-bezier(.2,0,0,1);display:block}.styles-module__logo___z1FuW:hover .styles-module__mark___HoiFg{transform:translateY(-1px)scale(1.02)}.styles-module__logo___z1FuW:hover .styles-module__mark___HoiFg img{transform:scale(1.04)}.styles-module__plain___TC66Z .styles-module__mark___HoiFg{border-radius:var(--radius-chip);width:40px;height:40px;box-shadow:0 14px 30px color-mix(in oklab, var(--black-a3) 75%, transparent)}.styles-module__glassSquare___QaL-M .styles-module__mark___HoiFg{border-radius:var(--radius-icon);width:54px;height:54px;box-shadow:0 12px 34px color-mix(in srgb, var(--black-a6) 72%, transparent);background:#ffffff2e;border:1px solid #ffffff4d}.styles-module__glassCircle___lE0Nw .styles-module__mark___HoiFg{width:48px;height:48px;box-shadow:0 16px 36px color-mix(in srgb, var(--black-a6) 54%, transparent);background:#fff3;border:1px solid #ffffff75;border-radius:50%}.styles-module__small___GCns1 .styles-module__mark___HoiFg{width:36px;height:36px}.styles-module__large___eKQOz.styles-module__plain___TC66Z .styles-module__mark___HoiFg{width:calc(40px + var(--space-3));height:calc(40px + var(--space-3))}.styles-module__large___eKQOz.styles-module__glassSquare___QaL-M .styles-module__mark___HoiFg{width:64px;height:64px}.styles-module__large___eKQOz.styles-module__glassCircle___lE0Nw .styles-module__mark___HoiFg{width:56px;height:56px}.s-module__swatch___hDS54{border:1px solid var(--gray-a6);border-radius:999px;flex:none;width:22px;min-width:22px;height:22px;min-height:22px;padding:0}.s-module__swatchActive___C0Ctk{outline:2px solid var(--gray-12);outline-offset:2px}.s-module__radiusCorner___w9M0j{border-left:2px solid var(--accent-9);border-top:2px solid var(--accent-9);background:color-mix(in oklab, var(--accent-9) 22%, transparent);flex:none;width:16px;height:16px}.s-module__radiusNone___dBnuF{border-radius:0}.s-module__radiusSmall___WpDJf{border-radius:3px 0 0}.s-module__radiusMedium___R0cof{border-radius:6px 0 0}.s-module__radiusLarge___9KEvz{border-radius:10px 0 0}.s-module__radiusFull___gai30{border-radius:999px 0 0}.s-module__pageIcon___c-jJO{border-radius:var(--radius-3);background:color-mix(in oklab, var(--accent-9) 12%, transparent);color:var(--accent-9)}.s-module__panelIcon___XVHY3{border-radius:var(--radius-2)}.s-module__controlFit___LreSj,.s-module__controlFit___LreSj .rt-SegmentedControlRoot{width:max-content;max-width:100%}.s-module__swatch___Wvcv5{border-radius:var(--radius-chip);border:1px solid var(--gray-a6);cursor:pointer;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.s-module__swatchActive___GG4uh{outline:2px solid var(--gray-12);outline-offset:2px}.s-module__previewTheme___-9XUD{width:100%}.s-module__positionPreview___mkI-g{border-radius:var(--radius-chip);border:1px solid var(--gray-a5);background:var(--gray-3);width:56px;height:40px;position:relative}.s-module__positionDot___Mtoqc{background:var(--accent-9);border-radius:999px;width:10px;height:10px;position:absolute}.s-module__preview_bottom_right___enLGD .s-module__positionDot___Mtoqc{bottom:6px;right:6px}.s-module__preview_bottom_left___oT2pw .s-module__positionDot___Mtoqc{bottom:6px;left:6px}.s-module__preview_top_right___Ft2uD .s-module__positionDot___Mtoqc{top:6px;right:6px}.s-module__preview_top_left___0AJFC .s-module__positionDot___Mtoqc{top:6px;left:6px}.s-module__colorRow___a1lT7{border-bottom:1px solid var(--gray-a3);width:100%}.s-module__colorRow___a1lT7:last-child{border-bottom:none}.s-module__colorInput___gpbkm{border:1px solid var(--gray-a5);border-radius:var(--radius-chip);cursor:pointer;background:0 0;width:36px;height:28px;padding:0}.styles-module__virtualList___pM6rN{contain:strict;width:100%;padding-bottom:300px;position:relative;overflow:auto}.styles-module__emptyContainer___rm938{height:100%;color:var(--color-fg-muted);justify-content:center;align-items:center;display:flex}.styles-module__virtualListInner___HxRzc{width:100%;position:relative}.styles-module__virtualListItems___p19-a{width:100%;position:absolute;top:0;left:0}.styles-module__loadingMore___zAdLM{color:var(--color-fg-muted);justify-content:center;align-items:center;gap:.75rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;margin-top:1rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh span{background-color:var(--color-bg-2);border-radius:var(--radius-button);padding:.5rem 1rem}.styles-module__virtualList___xmj2v{width:100%;padding-bottom:300px;position:relative;overflow:visible}.styles-module__virtualListInner___quD74{width:100%;position:relative}.styles-module__virtualListItems___-Muml{width:100%;position:absolute;top:0;left:0}.styles-module__virtualListRow___h3pzX{width:100%}.styles-module__emptyContainer___LIy8r{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:2rem 0;display:flex}.styles-module__loadingMore___Mzf-p{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:1.5rem 0;display:flex}.styles-module__endOfList___g5G--{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;padding:1.5rem 0;display:flex}.s-module__shell___Iq045{background:var(--color-background);color:var(--gray-12)}.s-module__content___Q0UoE{background:var(--color-background);flex-direction:column;min-height:0;display:flex;position:relative;overflow-x:hidden}.s-module__contentInner___PrKo6{flex-direction:column;flex:auto;height:100%;min-height:0;display:flex;position:relative}.s-module__sidebar___amqPD{background:var(--color-panel-solid);border-right:1px solid var(--gray-a4);border-radius:0;height:100%;min-height:0;font-family:Arial,Noto Sans SC,sans-serif}.s-module__header___Dxcv1{border-bottom:1px solid var(--gray-a4);flex-shrink:0;margin:0 20px;padding:21px 0 22px;position:relative}.s-module__toggle___tW13n{z-index:2;border:1px solid var(--gray-a5)!important;border-radius:var(--radius-2)!important;background:var(--color-panel-solid)!important;width:26px!important;height:26px!important;color:var(--gray-11)!important;position:absolute!important;top:30px!important;right:-34px!important}.s-module__toggle___tW13n:hover{background:var(--gray-3)!important;color:var(--gray-12)!important}.s-module__accountCard___8LYBd{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-3);background:0 0;border:0;align-items:center;gap:11px;padding:0;display:flex}.s-module__accountCard___8LYBd:focus-visible{outline:2px solid var(--accent-8);outline-offset:5px}.s-module__accountCard___8LYBd:hover .s-module__accountName___6L4-W{color:var(--accent-11)}.s-module__accountInfo___9UQ7q{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.s-module__accountRole___5QXqy{color:var(--gray-11);letter-spacing:.5px;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.s-module__accountName___6L4-W{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;line-height:21px;overflow:hidden}.s-module__avatar___pdxPZ{flex-shrink:0}.s-module__menuArea___0CHzC{scrollbar-width:thin;scrollbar-color:var(--gray-a5) transparent;flex:auto;min-height:0;padding:8px 20px 12px;overflow:hidden auto}.s-module__menuAreaCollapsed___Kwn5w{overflow-y:auto}.s-module__sectionTitle___-mnB8{border-top:1px solid var(--gray-a4);color:var(--gray-11);text-transform:uppercase;margin:19px 0 9px;padding:20px 10px 0}.s-module__sectionTitle___-mnB8 .rt-Text{letter-spacing:.5px;font-size:11px;font-weight:400;line-height:16px}.s-module__sectionTitleIcon___3cq2s{display:none}.s-module__sectionDivider___fegpI{background:var(--gray-a4);height:1px;margin:22px 0 16px}.s-module__menuArea___0CHzC .ps-menu-label .rt-Text,.s-module__footer___1tobI .ps-menu-label .rt-Text{font:inherit}.s-module__menuArea___0CHzC .ps-menu-button.ps-active .ps-menu-label{font-weight:500}.s-module__menuArea___0CHzC .ps-submenu-root.ps-open>.ps-menu-button{background:var(--gray-a3);color:var(--gray-12)}.s-module__menuArea___0CHzC .ps-submenu-content{border:0}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:before{content:"";background:var(--gray-5);pointer-events:none;width:1px;position:absolute;top:-3px;bottom:-3px;left:21px}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:after{content:"";border-left:1px solid var(--gray-5);border-bottom:1px solid var(--gray-5);pointer-events:none;border-bottom-left-radius:8px;width:11px;height:8px;position:absolute;top:calc(50% - 8px);left:21px}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:last-child:before{bottom:calc(50% + 8px)}.s-module__menuArea___0CHzC .ps-submenu-content .ps-menu-button{position:relative}.s-module__menuAreaCollapsed___Kwn5w .ps-menu-root>ul>.ps-menuitem-root>.ps-menu-button{justify-content:center;padding:0}.s-module__menuAreaCollapsed___Kwn5w .ps-menu-root>ul>.ps-menuitem-root>.ps-menu-button>.ps-menu-icon{margin:0}.s-module__menuAreaCollapsed___Kwn5w .ps-menu-root>ul>.ps-menuitem-root>.ps-menu-button>.ps-menu-label,.s-module__menuAreaCollapsed___Kwn5w .ps-submenu-expand-icon{display:none}.s-module__menuAreaCollapsed___Kwn5w .ps-submenu-content{border:1px solid var(--gray-a5)}.s-module__menuAreaCollapsed___Kwn5w .ps-submenu-content .ps-menu-label{display:block}.s-module__footer___1tobI{flex-shrink:0;margin-top:auto;padding:10px 20px 20px}.s-module__logout___CLyd7{width:100%;height:40px!important;color:var(--red-11)!important;border-radius:var(--radius-chip)!important;box-shadow:none!important;background:0 0!important;justify-content:flex-start!important;gap:10px!important;padding:0 10px!important;font-size:15px!important;font-weight:400!important}.s-module__logoutCollapsed___YkP7y{justify-content:center!important;padding:0!important}.s-module__logout___CLyd7:hover:not(:disabled){background:var(--red-a3)!important}.s-module__mobileToggle___LOwyZ{top:var(--space-3);z-index:10;margin:var(--space-3);box-shadow:var(--shadow-3);position:sticky;background:var(--color-panel-solid)!important;color:var(--gray-12)!important}.s-module__menuIconWrap___UEleI{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.s-module__menuIconDot___d8XKJ{border-radius:var(--radius-full);background:var(--red-9);border:2px solid var(--color-panel-solid);box-sizing:content-box;pointer-events:none;width:7px;height:7px;position:absolute;top:-3px;right:-3px}.s-module__menuBadge___CHC0U{border-radius:var(--radius-full);background:var(--accent-a3);color:var(--accent-11);padding:0 5px;font-size:10px}.s-module__menuDot___PnAOJ{border-radius:var(--radius-full);background:var(--red-9);width:7px;height:7px}@media (prefers-reduced-motion:reduce){.s-module__sidebar___amqPD *{transition-duration:0s!important;animation-duration:0s!important}}.s-module__footerCollapsed___UIBmF .ps-menu-button{justify-content:center;padding:0}.s-module__footerCollapsed___UIBmF .ps-menu-icon{margin:0}.s-module__footerCollapsed___UIBmF .ps-menu-label{display:none}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul{padding:1px 0 7px}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-root:not(.ps-open)>.ps-submenu-content{visibility:hidden}.s-module__menuAreaCollapsed___Kwn5w .s-module__sectionTitle___-mnB8{text-align:center;justify-content:center;margin:17px -8px 9px;padding:16px 0 0}.s-module__menuAreaCollapsed___Kwn5w .s-module__sectionTitle___-mnB8 .rt-Text{letter-spacing:0;overflow-wrap:normal;word-break:normal;font-size:9px;line-height:11px}.s-module__collapsedSubmenuTrigger___bFLvD{border-radius:var(--radius-chip);width:100%;height:40px;color:var(--gray-11);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:6px 0;padding:0;display:flex}.s-module__collapsedSubmenuTrigger___bFLvD:hover,.s-module__collapsedSubmenuActive___IZjxV{background:var(--gray-a3);color:var(--gray-12)}.s-module__collapsedSubmenuTrigger___bFLvD:focus-visible{outline:2px solid var(--accent-8);outline-offset:2px}.s-module__flyout___g3zm9{width:max-content;min-width:156px;max-width:min(260px,100vw - 24px);max-height:var(--radix-popover-content-available-height);border:1px solid var(--gray-a5);border-radius:var(--radius-4);background:var(--color-panel-solid);box-shadow:var(--shadow-5);overflow-y:auto;padding:5px 0!important}.s-module__flyout___g3zm9 .ps-menu-label .rt-Text{font:inherit}.s-module__flyout___g3zm9 .ps-menu-button.ps-active .ps-menu-label{font-weight:500}.s-module__collapsedSubmenuCurrent___fOzyg,.s-module__collapsedSubmenuCurrent___fOzyg:hover,.s-module__menuArea___0CHzC .ps-submenu-root>.ps-menu-button.ps-active{background:var(--accent-a3);color:var(--accent-11)}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:has(~.ps-menuitem-root>.ps-menu-button.ps-active):before{background:var(--accent-9)}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:has(>.ps-menu-button.ps-active):before{background:var(--accent-9);bottom:calc(50% + 8px)}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:has(>.ps-menu-button.ps-active):after{border-color:var(--accent-9)}.s-module__menuArea___0CHzC:not(.s-module__menuAreaCollapsed___Kwn5w) .ps-submenu-content>ul>.ps-menuitem-root:not(:last-child)>.ps-menu-button.ps-active:before{content:"";background:var(--gray-5);pointer-events:none;width:1px;position:absolute;top:50%;bottom:-3px;left:-11px}.s-module__header___fHBLg{z-index:30;width:100%;padding:var(--space-3) var(--space-4);pointer-events:none;background:linear-gradient(180deg, color-mix(in oklab, var(--color-background) 92%, transparent), transparent);position:fixed;top:0;left:0;right:0}.s-module__header___fHBLg .s-module__bar___ei2ER{pointer-events:auto}.s-module__bar___ei2ER{width:100%;max-width:1120px;box-shadow:0 8px 28px color-mix(in oklab, var(--gray-12) 6%, transparent);margin:0 auto}.s-module__nav___g6eNB{gap:var(--space-1);display:none}@media (width>=900px){.s-module__nav___g6eNB{display:flex}}.s-module__nav___g6eNB .rt-BaseButton{padding-inline:var(--space-4);color:var(--gray-12);font-size:var(--font-size-3);background:0 0;border-radius:var(--radius-chip)!important}@media (hover:hover){.s-module__nav___g6eNB .rt-BaseButton:hover{background:var(--accent-a2);color:var(--accent-11)}}.s-module__navActive___CFz4v{font-weight:var(--font-weight-bold);background:var(--accent-a3)!important;color:var(--accent-11)!important}.s-module__mobileNav___5DVMr{display:flex}@media (width>=900px){.s-module__mobileNav___5DVMr{display:none}}.s-module__brandWord___cTl9u{font-family:var(--heading-font-family);letter-spacing:-.03em}.s-module__accountMenu___Hgv6K{min-width:200px}.s-module__fullHeightFrame___aRJs8{box-sizing:border-box;flex:auto;align-self:stretch;width:100%;min-height:0}.s-module__fullHeightBody___j03gw{box-sizing:border-box;flex:auto}.s-module__bar___o1Cuu{z-index:10;border-bottom:1px solid var(--gray-a4);background:color-mix(in oklab, var(--color-background) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.styles-module__footer___g-hY7{background:var(--color-bg-2);width:100%;padding:0 2rem}.styles-module__footerContent___Oen5n{justify-content:space-between;align-items:center;max-width:100%;margin:0 auto;display:flex}.styles-module__copyright___1R2o3{color:var(--color-fg-text);font-size:.875rem}.styles-module__links___dQyvB{gap:1.5rem;display:flex}.styles-module__link___UWfyK{color:var(--color-fg-text);font-size:.875rem;text-decoration:none;transition:color .3s}.styles-module__link___UWfyK:hover{color:var(--color-primary)}@media (width<=768px){.styles-module__footerContent___Oen5n{flex-direction:column;gap:1rem}.styles-module__links___dQyvB{gap:1rem}}.styles-module__wavesWrapper___TK7DI{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__wavesWrapper___TK7DI>*{pointer-events:auto}.styles-module__squaresWrapper___P25uF{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__squaresWrapper___P25uF>*{pointer-events:auto}.styles-module__letterGlitchWrapper___KWtWU{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__letterGlitchWrapper___KWtWU>*{pointer-events:auto}.styles-module__pixelBlastWrapper___YptHh{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__pixelBlastWrapper___YptHh>*{pointer-events:auto}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;width:100%;min-height:100%}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;min-height:100vh;margin:0}#root{min-height:100vh}main,section,article,aside,header,footer,nav{display:block}main{min-height:100%}h1,h2,h3,h4,h5,h6,p{margin:0}em,i{font-style:italic}abbr[title]{cursor:help;text-underline-offset:.18em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal}blockquote{margin:0}sub,sup{vertical-align:baseline;position:relative}sub{bottom:-.25em}sup{top:-.5em}code,kbd,samp{padding:.12em .32em}pre{margin:0;overflow:auto}pre code{color:inherit;background:0 0;padding:0}a{text-decoration:none;transition:color .12s cubic-bezier(.2,0,0,1),opacity .12s cubic-bezier(.2,0,0,1)}a:focus-visible{outline:none}ul,ol,li,dl,dd{margin:0}img,picture,video,canvas,svg{max-width:100%;display:block}img{-webkit-user-select:none;user-select:none}svg{flex-shrink:0}audio{width:100%}iframe{border:0;max-width:100%;display:block}figure{margin:0}button,input,textarea,select{font:inherit;color:inherit}dialog:not(.rt-DialogContent){border:none}table{border-collapse:collapse;border-spacing:0;width:100%}caption,th,td{text-align:left}hr{border:none;height:1px;margin:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0}summary{cursor:pointer}progress,meter{width:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border-radius:999px}[hidden]{display:none!important}:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.radix-themes{--heading-font-family:var(--default-font-family);--strong-font-family:var(--default-font-family);--em-font-family:var(--default-font-family);--quote-font-family:var(--default-font-family);--radius-chip:max(var(--radius-3), var(--radius-full));--radius-icon:max(var(--radius-4), var(--radius-full))}.radix-themes .rt-BaseTabListTriggerInner,.radix-themes .rt-BaseTabListTriggerInnerHidden,.radix-themes .rt-TabsTriggerInner{border-radius:max(var(--tab-inner-border-radius), var(--radius-full))!important}.radix-themes[data-radius=full] .rt-Card{--card-border-radius:var(--radius-6)}.radix-themes,.radix-themes[data-font-family=system]{--default-font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.radix-themes[data-font-family=ibm-plex]{--default-font-family:"IBM Plex Sans", "IBM Plex Sans SC", "Noto Sans SC", "Noto Sans TC", system-ui, sans-serif}.radix-themes[data-font-family=noto]{--default-font-family:"Noto Sans", "Noto Sans SC", "Noto Sans TC", sans-serif}.radix-themes[data-font-family=source-sans]{--default-font-family:"Source Sans 3", "Source Han Sans SC", "Noto Sans SC", "Noto Sans TC", sans-serif}.radix-themes{--color-primary:var(--accent-9);--color-primary-hover:var(--accent-10);--color-primary-light:var(--accent-4);--color-primary-bg:var(--accent-3);--color-primary-fg:var(--accent-contrast);--color-success:var(--green-9);--color-success-light:var(--green-4);--color-info:var(--blue-9);--color-info-light:var(--blue-4);--color-warning:var(--amber-9);--color-warning-light:var(--amber-4);--color-danger:var(--red-9);--color-error:var(--red-9);--color-danger-light:var(--red-4);--color-bg:var(--color-background);--color-bg-1:var(--color-background);--color-bg-2:var(--color-panel-solid);--color-bg-3:var(--gray-3);--color-bg-4:var(--gray-4);--color-bg-secondary:var(--gray-2);--color-border:var(--gray-6);--color-border-2:var(--gray-5);--color-border-3:var(--gray-6);--color-border-4:var(--gray-7);--color-border-5:var(--gray-8);--color-border-hover:var(--gray-8);--color-fg:var(--gray-11);--color-fg-text:var(--gray-12);--color-fg-heading:var(--gray-12);--color-fg-highlight:var(--accent-11);--color-fg-muted:var(--gray-10);--color-fg-on-primary:var(--accent-contrast);--color-separator:var(--gray-6);--color-overlay:var(--black-a6);--color-shadow:var(--gray-a4);--color-ring:var(--accent-8)}/*$vite$:1*/`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("./chunk-dashboard-CFT0HjSM.cjs"),f=require("./chunk-preference-BXXryZLY.cjs"),U=require("./chunk-lstorage-_yGQsIQ9.cjs"),I=require("./chunk-LucideIcon-CuoAB_OX.cjs"),Z=require("./chunk-layout-DKCQHheg.cjs"),N=require("./chunk-useLayout-CbUZVWpS.cjs"),R=require("./chunk-animations-CkOpTtX1.cjs"),he=require("./chunk-ModalProvider-BgLSJXhS.cjs");let n=require("react"),t=require("@radix-ui/themes"),e=require("react/jsx-runtime"),k=require("lucide-react"),ee=require("react-i18next"),A=require("react-pro-sidebar"),pe=require("@radix-ui/react-icons");function Y(){return U.getItem(f.LAYOUT_STORAGE_KEY)}function re(r){U.setItem(f.LAYOUT_STORAGE_KEY,r)}function ve(){U.removeItem(f.LAYOUT_STORAGE_KEY)}var xe="s-module__shell___Iq045",ge="s-module__content___Q0UoE",fe="s-module__contentInner___PrKo6",be="s-module__sidebar___amqPD",ye="s-module__header___Dxcv1",je="s-module__toggle___tW13n",Se="s-module__accountCard___8LYBd",Ce="s-module__accountName___6L4-W",Le="s-module__accountInfo___9UQ7q",ke="s-module__accountRole___5QXqy",we="s-module__avatar___pdxPZ",Ee="s-module__menuArea___0CHzC",Te="s-module__menuAreaCollapsed___Kwn5w",Me="s-module__sectionTitle___-mnB8",Ne="s-module__sectionTitleIcon___3cq2s",Ae="s-module__sectionDivider___fegpI",De="s-module__footer___1tobI",Be="s-module__logout___CLyd7",Oe="s-module__logoutCollapsed___YkP7y",Ie="s-module__mobileToggle___LOwyZ",Fe="s-module__menuIconWrap___UEleI",Pe="s-module__menuIconDot___d8XKJ",We="s-module__menuBadge___CHC0U",qe="s-module__menuDot___PnAOJ",Re="s-module__footerCollapsed___UIBmF",ze="s-module__collapsedSubmenuTrigger___bFLvD",He="s-module__collapsedSubmenuActive___IZjxV",Ue="s-module__flyout___g3zm9",Ye="s-module__collapsedSubmenuCurrent___fOzyg",h={shell:xe,content:ge,contentInner:fe,sidebar:be,header:ye,toggle:je,accountCard:Se,accountName:Ce,accountInfo:Le,accountRole:ke,avatar:we,menuArea:Ee,menuAreaCollapsed:Te,sectionTitle:Me,sectionTitleIcon:Ne,sectionDivider:Ae,footer:De,logout:Be,logoutCollapsed:Oe,mobileToggle:Ie,menuIconWrap:Fe,menuIconDot:Pe,menuBadge:We,menuDot:qe,footerCollapsed:Re,collapsedSubmenuTrigger:ze,collapsedSubmenuActive:He,flyout:Ue,collapsedSubmenuCurrent:Ye},$=(0,n.createContext)(!1),K=(0,n.createContext)(!1);function ae({collapsed:r,children:a}){return(0,e.jsx)($.Provider,{value:r,children:a})}function E(r){return typeof r=="string"||typeof r=="number"?String(r):Array.isArray(r)?r.map(E).join(""):(0,n.isValidElement)(r)?E(r.props.children):""}function H(r){const a=(0,n.useContext)($),o=(0,n.useContext)(K),u=E(r.children),s=o&&(0,n.isValidElement)(r.icon)&&r.icon.props.showDot,l=(0,e.jsx)(A.MenuItem,{...r,suffix:r.suffix??(s?(0,e.jsx)("span",{className:h.menuDot}):void 0),"aria-label":r["aria-label"]??u,"aria-current":r.active?"page":void 0});return a&&!o?(0,e.jsx)(t.Tooltip,{content:u,side:"right",sideOffset:14,delayDuration:150,children:l}):l}function $e({children:r,label:a,icon:o,active:u}){const[s,l]=(0,n.useState)(!1),c=(0,n.useRef)(void 0),p=(0,n.useRef)(!1),C=(0,n.useRef)(null),x=(0,n.useRef)(null),g=()=>clearTimeout(c.current),b=()=>{p.current&&(g(),c.current=setTimeout(()=>l(!1),180))};return(0,n.useEffect)(()=>()=>clearTimeout(c.current),[]),(0,e.jsx)("li",{className:"ps-menuitem-root",children:(0,e.jsxs)(t.Popover.Root,{open:s,onOpenChange:l,children:[(0,e.jsx)(t.Popover.Trigger,{children:(0,e.jsx)("button",{ref:x,type:"button",className:`${h.collapsedSubmenuTrigger} ${u?h.collapsedSubmenuCurrent:s?h.collapsedSubmenuActive:""}`,"aria-label":E(a),"aria-expanded":s,onPointerEnter:()=>{g(),p.current=!0,l(!0)},onPointerLeave:b,onClick:d=>{d.preventDefault(),g(),p.current=!1,l(!0),C.current?.querySelector("a[href]")?.focus()},children:o})}),(0,e.jsx)(t.Popover.Content,{ref:C,side:"right",align:"start",sideOffset:12,collisionPadding:12,className:h.flyout,"aria-label":E(a),onPointerEnter:g,onPointerLeave:b,onOpenAutoFocus:d=>{p.current&&d.preventDefault()},onCloseAutoFocus:d=>{p.current&&d.preventDefault()},children:(0,e.jsx)(K.Provider,{value:!0,children:(0,e.jsx)(A.Menu,{menuItemStyles:{button:({active:d})=>({height:"34px",margin:"3px 7px",padding:"0 11px",borderRadius:"var(--radius-chip)",font:"14px Arial, sans-serif",color:d?"var(--accent-11)":"var(--gray-11)",backgroundColor:d?"var(--accent-a3)":"transparent","&:hover":{backgroundColor:d?"var(--accent-a3)":"var(--gray-a3)",color:d?"var(--accent-11)":"var(--gray-12)"},"&:focus-visible":{outline:"2px solid var(--accent-8)",outlineOffset:"-2px"}}),icon:{display:"none"}},onClick:d=>{d.target.closest("a[href]")&&l(!1)},children:r})})})]})})}function te({children:r,...a}){return(0,n.useContext)($)?(0,e.jsx)($e,{...a,children:r}):(0,e.jsx)(A.SubMenu,{...a,"aria-label":E(a.label),"aria-expanded":a.open,children:(0,e.jsx)(K.Provider,{value:!0,children:r})})}var Ke="234px",Ge="84px";function Q({children:r,active:a=!1}){return(0,e.jsx)(t.Text,{as:"span",size:"2",weight:a?"bold":"medium",children:r})}function Ve(r){return{button:({active:a,level:o=0})=>({height:o>0?"34px":"40px",margin:o>0?r?"3px 7px":"3px 0 3px 32px":"6px 0",borderRadius:"var(--radius-chip)",paddingLeft:o>0?"11px":"10px",paddingRight:"10px",fontSize:o>0?"14px":"15px",fontWeight:400,color:a?"var(--accent-11)":"var(--gray-11)",backgroundColor:a?"var(--accent-a3)":"transparent",transition:"background-color 150ms ease, color 150ms ease","&:hover":{backgroundColor:a?"var(--accent-a3)":"var(--gray-a3)",color:a?"var(--accent-11)":"var(--gray-12)"},"&:focus-visible":{outline:"2px solid var(--accent-8)",outlineOffset:"2px"}}),icon:({level:a=0})=>({width:"20px",minWidth:"20px",height:"20px",marginRight:"10px",color:"inherit",...a>0?{display:"none"}:{}}),subMenuContent:{backgroundColor:r?"var(--color-panel-solid)":"transparent",padding:r?"5px 0":"0",...r?{zIndex:1e3,minWidth:"156px",width:"max-content",maxWidth:"260px",maxHeight:"calc(100dvh - 32px)",overflowY:"auto",borderRadius:"var(--radius-4)",border:"1px solid var(--gray-a5)",boxShadow:"var(--shadow-5)"}:{}}}}function z(r,a){return r===a||r.startsWith(`${a}/`)}function P({items:r=[],currentPathname:a="",onNavigate:o,handleLogout:u,logoutLabel:s,header:l,topBar:c,footerExtra:p,children:C}){const{t:x}=(0,ee.useTranslation)("language"),[g,b]=(0,n.useState)(!1),[d,j]=(0,n.useState)(!1),[i,L]=(0,n.useState)(!1),v=!i&&g,D=(0,n.useRef)(null),[W,q]=(0,n.useState)({});(0,n.useEffect)(()=>{if(!i||!d)return;const m=document.activeElement,B=document.body.style.overflow;document.body.style.overflow="hidden";const T=()=>Array.from(D.current?.querySelectorAll("button:not([disabled]), a[href], [tabindex='0']")??[]).filter(_=>_.getClientRects().length&&getComputedStyle(_).visibility!=="hidden");T()[0]?.focus();const O=_=>{if(_.defaultPrevented||(_.key==="Escape"&&(_.preventDefault(),j(!1)),_.key!=="Tab"))return;const y=T(),V=y[0],J=y[y.length-1];_.shiftKey&&document.activeElement===V?(_.preventDefault(),J?.focus()):!_.shiftKey&&document.activeElement===J&&(_.preventDefault(),V?.focus())};return document.addEventListener("keydown",O),()=>{document.body.style.overflow=B,document.removeEventListener("keydown",O),m?.focus()}},[i,d]);const G=()=>i&&j(!1),me=m=>{const B=z(a,m.path);if(m.children?.length){const T=m.children.some(_=>z(a,_.path)),O=W[m.path]??T;return(0,e.jsx)(te,{label:m.label,icon:m.icon,open:O,onOpenChange:_=>q(y=>({...y,[m.path]:_})),active:T,children:m.children.map(_=>{const y=z(a,_.path);return(0,e.jsx)(H,{icon:_.icon,active:y,onClick:()=>{o?.(_.path),G()},children:(0,e.jsx)(Q,{active:y,children:_.label})},_.path)})},m.path)}return(0,e.jsx)(H,{icon:m.icon,active:B,onClick:()=>{o?.(m.path),G()},children:(0,e.jsx)(Q,{active:B,children:m.label})},m.path)};return(0,e.jsxs)(t.Flex,{minHeight:"100dvh",width:"100%",className:h.shell,children:[(0,e.jsx)(ae,{collapsed:v,children:(0,e.jsx)(A.Sidebar,{ref:D,inert:i&&!d?!0:void 0,"aria-hidden":i&&!d?!0:void 0,collapsed:v,toggled:d,onBackdropClick:()=>j(!1),onBreakPoint:L,breakPoint:"md",width:Ke,collapsedWidth:Ge,rootStyles:{border:0,height:"100dvh",flexShrink:0,position:"sticky",top:0,margin:0,zIndex:200,overflow:"visible","&.ps-broken.ps-toggled":{left:0},"&.ps-broken":{height:"100dvh",position:"fixed",margin:0,top:0,bottom:0},"& .ps-sidebar-container":{background:"transparent",height:"100%",overflow:"visible"}},children:(0,e.jsxs)(t.Flex,{direction:"column",height:"100%",minHeight:"0",className:h.sidebar,children:[(0,e.jsxs)("div",{className:h.header,children:[l,(0,e.jsx)(t.IconButton,{variant:"soft",size:"1",className:h.toggle,"aria-label":x(v?"sidebar.expand":"sidebar.collapse"),"aria-expanded":!v,onClick:()=>i?j(!1):b(m=>!m),children:(0,e.jsx)(I.LucideIcon,{icon:v?k.ChevronRight:k.ChevronLeft,size:14})})]}),(0,e.jsx)(t.Box,{flexGrow:"1",minHeight:"0",py:"2",className:`${h.menuArea} ${v?h.menuAreaCollapsed:""}`,children:(0,e.jsx)(A.Menu,{renderExpandIcon:({open:m})=>(0,e.jsx)(I.LucideIcon,{icon:m?k.ChevronUp:k.ChevronDown,size:14}),menuItemStyles:Ve(v),closeOnClick:!0,children:r.map(me)})}),(0,e.jsxs)("div",{className:`${h.footer} ${v?h.footerCollapsed:""}`,children:[p,u?(0,e.jsxs)(t.Button,{variant:"ghost",className:`${h.logout} ${v?h.logoutCollapsed:""}`,onClick:u,"aria-label":s??x("sidebar.logout"),title:v?s??x("sidebar.logout"):void 0,children:[(0,e.jsx)(I.LucideIcon,{icon:k.LogOut,size:18}),!v&&(s??x("sidebar.logout"))]}):null]})]})})}),(0,e.jsxs)(t.Flex,{direction:"column",flexGrow:"1",minWidth:"0",inert:i&&d?!0:void 0,className:h.content,children:[i?(0,e.jsx)(t.IconButton,{variant:"surface",color:"gray",size:"3",className:h.mobileToggle,onClick:()=>j(!0),"aria-label":x("sidebar.openMenu"),children:(0,e.jsx)(I.LucideIcon,{icon:k.Menu,size:18})}):null,c,(0,e.jsx)(t.Box,{flexGrow:"1",minWidth:"0",minHeight:"0",className:h.contentInner,children:C})]})]})}var Je="s-module__header___fHBLg",Qe="s-module__bar___ei2ER",Xe="s-module__nav___g6eNB",Ze="s-module__navActive___CFz4v",er="s-module__mobileNav___5DVMr",rr="s-module__brandWord___cTl9u",ar="s-module__accountMenu___Hgv6K",w={header:Je,bar:Qe,nav:Xe,navActive:Ze,mobileNav:er,brandWord:rr,accountMenu:ar};function oe({brandTitle:r,brandSubtitle:a,logoSrc:o,srcDark:u,navItems:s=[],account:l,onLogin:c,onSignup:p,onLogoClick:C,extraActions:x}){const g=(0,n.useRef)(null),{t:b}=(0,ee.useTranslation)("language"),[d,j]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!g.current)return;const i=g.current,L=()=>{const D=i.getBoundingClientRect(),W=getComputedStyle(i),q=parseFloat(W.marginBottom)||0;Z.setHeaderHeight(D.bottom+q)};L();const v=new ResizeObserver(L);return v.observe(i),window.addEventListener("resize",L),()=>{v.disconnect(),window.removeEventListener("resize",L)}},[]),(0,n.useEffect)(()=>{const i=()=>j(window.scrollY>12);return i(),window.addEventListener("scroll",i,{passive:!0}),()=>window.removeEventListener("scroll",i)},[]),(0,e.jsx)(t.Flex,{asChild:!0,className:w.header,children:(0,e.jsx)("header",{ref:g,children:(0,e.jsx)(t.Card,{size:"1",className:w.bar,style:d?{boxShadow:"0 14px 40px color-mix(in oklab, var(--gray-12) 10%, transparent)"}:void 0,children:(0,e.jsxs)(t.Flex,{align:"center",justify:"between",gap:"3",children:[(0,e.jsx)(N.Logo,{variant:"glassSquare",size:"small",src:o,srcDark:u,title:r,subtitle:a,onClick:C}),s.length>0?(0,e.jsx)(t.Flex,{asChild:!0,align:"center",gap:"1",className:w.nav,children:(0,e.jsx)("nav",{children:s.map(i=>(0,e.jsx)(t.Button,{size:"3",variant:"soft",className:i.active?w.navActive:void 0,onClick:i.onSelect,children:i.label},i.key))})}):null,(0,e.jsxs)(t.Flex,{align:"center",gap:"2",flexShrink:"0",children:[s.length>0?(0,e.jsxs)(t.DropdownMenu.Root,{modal:!1,children:[(0,e.jsx)(t.DropdownMenu.Trigger,{children:(0,e.jsx)(t.IconButton,{variant:"soft",color:"gray",size:"2",className:w.mobileNav,"aria-label":b("header.openMenu"),children:(0,e.jsx)(pe.HamburgerMenuIcon,{})})}),(0,e.jsx)(t.DropdownMenu.Content,{align:"end",children:s.map(i=>(0,e.jsx)(t.DropdownMenu.Item,{onSelect:i.onSelect,children:i.label},i.key))})]}):null,(0,e.jsx)(N.PreferencesPopover,{}),x,l?(0,e.jsxs)(t.DropdownMenu.Root,{modal:!1,children:[(0,e.jsx)(t.DropdownMenu.Trigger,{children:(0,e.jsxs)(t.Button,{variant:"soft",color:"gray",highContrast:!0,children:[(0,e.jsx)(t.Avatar,{size:"1",radius:"full",src:l.avatarSrc,fallback:l.initial}),(0,e.jsx)(t.Text,{size:"2",truncate:!0,style:{maxWidth:120},children:l.displayName})]})}),(0,e.jsxs)(t.DropdownMenu.Content,{align:"end",sideOffset:8,size:"2",className:w.accountMenu,children:[(0,e.jsx)(t.DropdownMenu.Label,{children:(0,e.jsx)(t.Text,{size:"1",color:"gray",truncate:!0,style:{maxWidth:200},children:l.displayName})}),l.menuItems?.map(i=>(0,e.jsx)(t.DropdownMenu.Item,{color:i.color,onSelect:i.onSelect,children:i.label},i.key))]})]}):(0,e.jsxs)(e.Fragment,{children:[c||p?(0,e.jsx)(t.Separator,{orientation:"vertical",size:"1"}):null,c?(0,e.jsx)(t.Button,{variant:"soft",color:"gray",onClick:c,children:b("header.login")}):null,p?(0,e.jsx)(t.Button,{onClick:p,children:b("header.signup")}):null]})]})]})})})})}function tr({children:r,header:a}){const o=Z.useLayoutStore(u=>u.headerHeight);return(0,e.jsxs)(t.Box,{position:"relative",minHeight:"100dvh",style:{background:"var(--color-background)"},children:[a??(0,e.jsx)(oe,{}),(0,e.jsx)(t.Box,{asChild:!0,position:"relative",minHeight:"100dvh",style:{paddingTop:0,"--app-header-height":`${o}px`},children:(0,e.jsx)("main",{children:r})})]})}var or="s-module__fullHeightFrame___aRJs8",nr="s-module__fullHeightBody___j03gw",X={fullHeightFrame:or,fullHeightBody:nr},sr=1440;function lr({children:r,className:a,maxWidth:o=sr,fullHeight:u}){const s=typeof o=="number"?`${o}px`:o,l=[u?X.fullHeightFrame:"",a??""].filter(Boolean).join(" ");return(0,e.jsx)(t.Container,{size:"4",align:"center",py:u?"0":"5",width:"100%",maxWidth:s,className:l||void 0,children:u?(0,e.jsx)(t.Flex,{direction:"column",flexGrow:"1",minHeight:"0",width:"100%",height:"100%",className:X.fullHeightBody,children:r}):r})}var ir="s-module__bar___o1Cuu",ur={bar:ir};function cr({displayName:r,subtitle:a,avatarSrc:o,initial:u="?",requestBadge:s,actions:l=[]}){return(0,e.jsxs)(t.Flex,{align:"center",justify:"between",gap:"3",wrap:"wrap",py:"3",px:"4",position:"sticky",top:"0",className:ur.bar,children:[(0,e.jsxs)(t.Flex,{align:"center",gap:"3",minWidth:"0",children:[(0,e.jsx)(t.Avatar,{size:"2",radius:"full",src:o,fallback:u}),(0,e.jsxs)(t.Flex,{direction:"column",minWidth:"0",children:[(0,e.jsx)(t.Text,{size:"2",weight:"bold",truncate:!0,children:r}),a?(0,e.jsx)(t.Text,{size:"1",color:"gray",truncate:!0,children:a}):null]}),s?(0,e.jsx)(t.Badge,{color:"orange",variant:"soft",children:s}):null]}),(0,e.jsx)(t.Flex,{align:"center",gap:"2",wrap:"wrap",children:l.map(c=>(0,e.jsxs)(t.Button,{size:"2",variant:"soft",color:c.badge?void 0:"gray",onClick:c.onClick,children:[c.icon,c.label,c.badge?(0,e.jsx)(t.Badge,{size:"1",color:"red",children:"·"}):null]},c.key))})]})}var ne=(0,n.memo)(({children:r})=>(0,e.jsx)(e.Fragment,{children:r(0,0)}));ne.displayName="MainWrapper";var se=(0,n.memo)(({children:r,sidebarItems:a,sidebarCurrentPathname:o,onSidebarNavigate:u,sidebarLogoutLabel:s,onSidebarLogout:l})=>(0,e.jsx)(P,{items:a,currentPathname:o,onNavigate:u,logoutLabel:s,handleLogout:l,children:r}));se.displayName="SideHideLayout";var le=(0,n.memo)(({children:r,sidebarItems:a,sidebarCurrentPathname:o,onSidebarNavigate:u,sidebarLogoutLabel:s,onSidebarLogout:l})=>(0,e.jsx)(P,{items:a,currentPathname:o,onNavigate:u,logoutLabel:s,handleLogout:l,children:r}));le.displayName="SideShowLayout";var dr="styles-module__footer___g-hY7",_r="styles-module__footerContent___Oen5n",mr="styles-module__copyright___1R2o3",hr="styles-module__links___dQyvB",pr="styles-module__link___UWfyK",S={footer:dr,footerContent:_r,copyright:mr,links:hr,link:pr},ie=(0,n.memo)(()=>{const r=new Date().getFullYear();return(0,e.jsxs)("div",{className:S.footerContent,children:[(0,e.jsxs)("span",{className:S.copyright,children:["© ",r]}),(0,e.jsxs)("div",{className:S.links,children:[(0,e.jsx)("a",{href:"#",className:S.link,children:"About Us"}),(0,e.jsx)("a",{href:"#",className:S.link,children:"Privacy Policy"}),(0,e.jsx)("a",{href:"#",className:S.link,children:"Terms of Service"})]})]})});ie.displayName="DefaultFooterContent";var ue=(0,n.memo)(({children:r,className:a})=>(0,e.jsx)("div",{className:`${S.footer} ${a||""}`,children:r??(0,e.jsx)(ie,{})}));ue.displayName="Footer";var vr="styles-module__wavesWrapper___TK7DI",xr="styles-module__squaresWrapper___P25uF",gr="styles-module__letterGlitchWrapper___KWtWU",fr="styles-module__pixelBlastWrapper___YptHh",F={wavesWrapper:vr,squaresWrapper:xr,letterGlitchWrapper:gr,pixelBlastWrapper:fr},br=(0,n.lazy)(()=>Promise.resolve().then(()=>require("./pixel-blast.cjs"))),ce=(0,n.memo)(({children:r,background:a})=>{const o=()=>{switch(a){case M.DashboardBackgroundEnum.WAVES:return(0,e.jsx)("div",{className:F.wavesWrapper,children:(0,e.jsx)(R.WaveBackground,{})});case M.DashboardBackgroundEnum.SQUARES:return(0,e.jsx)("div",{className:F.squaresWrapper,children:(0,e.jsx)(R.SquareBackground,{})});case M.DashboardBackgroundEnum.LETTER_GLITCH:return(0,e.jsx)("div",{className:F.letterGlitchWrapper,children:(0,e.jsx)(R.LetterGlitchBackground,{})});case M.DashboardBackgroundEnum.PIXEL_BLAST:return(0,e.jsx)(n.Suspense,{fallback:null,children:(0,e.jsx)("div",{className:F.pixelBlastWrapper,children:(0,e.jsx)(br,{})})});case M.DashboardBackgroundEnum.NONE:default:return null}};return(0,e.jsxs)(e.Fragment,{children:[r,o()]})});ce.displayName="Background";var de=(0,n.memo)(({children:r,sidebarItems:a,sidebarCurrentPathname:o,onSidebarNavigate:u,sidebarLogoutLabel:s,onSidebarLogout:l,headerLeft:c,headerRight:p})=>(0,e.jsx)(P,{items:a,currentPathname:o,onNavigate:u,logoutLabel:s,handleLogout:l,header:c,topBar:p,children:r}));de.displayName="LayoutFrame";var yr=({defaultLayoutMode:r,sidebarOpen:a})=>{const[o,u]=(0,n.useState)(()=>{const s=Y();if(s)try{const l=JSON.parse(s),c=l.state?.layoutMode??l.layoutMode;return c===f.LayoutModeEnum.SHOW||c===f.LayoutModeEnum.HIDE?c:r}catch{return r}return r});return(0,n.useEffect)(()=>{re(JSON.stringify({state:{sidebarOpen:a,layoutMode:o}}))},[a,o]),{layoutMode:o,setLayoutMode:(0,n.useCallback)(s=>{u(s)},[])}},jr=()=>{const[r,a]=(0,n.useState)(()=>{const o=Y();if(o)try{const u=JSON.parse(o);return u.state?.sidebarOpen??u.sidebarOpen??!1}catch{return!1}return!1});return{sidebarOpen:r,setSidebarOpen:(0,n.useCallback)(o=>{a(o)},[]),toggleSidebar:(0,n.useCallback)(()=>{a(o=>!o)},[]),closeSidebar:(0,n.useCallback)(()=>{a(!1)},[])}},_e=(0,n.memo)(({children:r,defaultLayoutMode:a=f.DEFAULT_LAYOUT_MODE})=>{const{sidebarOpen:o,setSidebarOpen:u,toggleSidebar:s,closeSidebar:l}=jr(),{layoutMode:c,setLayoutMode:p}=yr({defaultLayoutMode:a,sidebarOpen:o});return(0,e.jsx)(N.LayoutContext.Provider,{value:{sidebarOpen:o,layoutMode:c,setSidebarOpen:u,toggleSidebar:s,closeSidebar:l,setLayoutMode:p},children:r})});_e.displayName="LayoutProvider";exports.Background=ce;exports.DEFAULT_LAYOUT_MODE=f.DEFAULT_LAYOUT_MODE;exports.Footer=ue;exports.Header=oe;exports.LAYOUT_MODE_VALUES=f.LAYOUT_MODE_VALUES;exports.LAYOUT_STORAGE_KEY=f.LAYOUT_STORAGE_KEY;exports.LayoutContext=N.LayoutContext;exports.LayoutFrame=de;exports.LayoutModeEnum=f.LayoutModeEnum;exports.LayoutProvider=_e;exports.Main=tr;exports.MainWrapper=ne;exports.MenuItem=H;exports.ModalProvider=he.ModalProvider;exports.PageFrame=lr;exports.SideHideLayout=se;exports.SideShowLayout=le;exports.Sidebar=P;exports.SidebarMenuState=ae;exports.SubMenu=te;exports.UserTopBar=cr;exports.getLayoutStorage=Y;exports.removeLayoutStorage=ve;exports.setLayoutStorage=re;exports.useLayout=N.useLayout;
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=layouts.cjs.map
|
package/dist/layouts.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layouts.cjs","names":[],"sources":["../src/designs/layouts/utils/layoutStorage.ts","../src/designs/layouts/components/Sidebar/styles.module.css","../src/designs/layouts/components/Sidebar/index.tsx","../src/designs/layouts/components/Footer/styles.module.css","../src/designs/layouts/components/Footer/index.tsx","../src/designs/layouts/components/Header/styles.module.css","../src/designs/layouts/components/Header/index.tsx","../src/designs/layouts/components/MainWrapper/styles.module.css","../src/designs/layouts/components/MainWrapper/index.tsx","../src/designs/layouts/components/SideHideLayout/styles.module.css","../src/designs/layouts/components/SideHideLayout/index.tsx","../src/designs/layouts/components/SideShowLayout/styles.module.css","../src/designs/layouts/components/SideShowLayout/index.tsx","../src/designs/layouts/components/Background/styles.module.css","../src/designs/layouts/components/Background/index.tsx","../src/designs/layouts/components/LayoutFrame/index.tsx","../src/designs/layouts/hooks/useSet.ts","../src/designs/layouts/hooks/useAction.ts","../src/designs/layouts/providers/index.tsx"],"sourcesContent":["/**\n * 布局相关 localStorage 读写与移除,统一走 utils/lstorage。\n * Layout localStorage get/set/remove via utils/lstorage.\n */\nimport type { Nilable } from \"@/types/utils\";\nimport { getItem, removeItem, setItem } from \"@/utils/lstorage\";\n\nimport { LAYOUT_STORAGE_KEY } from \"../types\";\n\nexport function getLayoutStorage(): Nilable<string> {\n return getItem(LAYOUT_STORAGE_KEY);\n}\n\nexport function setLayoutStorage(value: string): void {\n setItem(LAYOUT_STORAGE_KEY, value);\n}\n\nexport function removeLayoutStorage(): void {\n removeItem(LAYOUT_STORAGE_KEY);\n}\n","/* Sidebar layout shell */\n.sidebar {\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.sidebarContent {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding-top: 1rem;\n}\n\n.menuWrapper {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.sidebarFooter {\n margin-top: auto;\n flex-shrink: 0;\n}\n\n/* Keep scroll behavior but hide track */\n.menuWrapper::-webkit-scrollbar {\n width: 0;\n height: 0;\n}\n\n.menuWrapper {\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* react-pro-sidebar overrides */\n.sidebar :global(.ps-sidebar-root) {\n min-height: 0 !important;\n overflow: hidden !important;\n display: flex !important;\n flex-direction: column !important;\n background-color: var(--color-bg-2) !important;\n border-right: 1px solid var(--color-separator) !important;\n}\n\n.sidebar :global(.ps-sidebar-container) {\n min-height: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n flex: 1 !important;\n overflow: hidden !important;\n background-color: var(--color-bg-2) !important;\n color: var(--color-fg-text) !important;\n}\n\n.sidebar :global(.ps-menu-button) {\n margin: 0.125rem 0.5rem !important;\n padding: 0.5rem 0.75rem !important;\n border-radius: var(--radius-button) !important;\n color: var(--color-fg-text) !important;\n font-size: 0.875rem !important;\n transition:\n background-color 0.2s ease,\n color 0.2s ease !important;\n}\n\n.sidebar :global(.ps-menu-button:hover) {\n background-color: var(--color-bg-3) !important;\n color: var(--color-fg-text) !important;\n}\n\n.sidebar :global(.ps-menu-button.ps-active) {\n background-color: var(--color-primary) !important;\n color: var(--color-primary-fg) !important;\n}\n\n.sidebar :global(.ps-menu-button.ps-active .ps-menu-icon),\n.sidebar :global(.ps-menu-button.ps-active .ps-menu-label),\n.sidebar :global(.ps-menu-button.ps-active .ps-submenu-expand-icon) {\n color: var(--color-primary-fg) !important;\n}\n\n.sidebar :global(.ps-menu-icon) {\n width: 1.25rem !important;\n height: 1.25rem !important;\n color: var(--color-fg-text) !important;\n}\n\n.sidebar :global(.ps-submenu-content) {\n background-color: var(--color-bg-3) !important;\n overflow: hidden !important;\n padding-left: 1rem !important;\n}\n\n.sidebar :global(.ps-submenu-content .ps-submenu-content) {\n padding-left: 0.75rem !important;\n}\n\n.sidebar :global(.ps-submenu-content .ps-menu-button) {\n margin: 0.125rem 0.25rem !important;\n padding: 0.375rem 0.5rem 0.375rem 0.75rem !important;\n font-size: 0.8125rem !important;\n}\n/* Bottom logout area */\n.logoutContainer {\n padding: 0.5rem;\n border-top: 1px solid var(--color-separator);\n}\n\n.logoutButton {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border: none;\n border-radius: var(--radius-button);\n background: transparent;\n color: var(--color-fg-text);\n font-size: 0.875rem;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n transition:\n background-color 0.2s ease,\n color 0.2s ease;\n}\n\n.logoutButton:hover {\n background-color: var(--color-bg-3);\n}\n\n.logoutButton:active {\n transform: scale(0.98);\n}\n\n.logoutButton svg {\n flex-shrink: 0;\n color: inherit;\n}\n\n.hiddenText {\n opacity: 0;\n width: 0;\n max-width: 0;\n overflow: hidden;\n}\n\n.visibleText {\n opacity: 1;\n width: auto;\n max-width: 200px;\n}\n","import type { SidebarMenuItem, SidebarProps } from \"../../types\";\n\nimport { memo, useCallback, useMemo } from \"react\";\nimport { Menu, MenuItem, Sidebar as ProSidebar, SubMenu } from \"react-pro-sidebar\";\n\nimport { LogOut } from \"@/icons/lucide\";\n\nimport styles from \"./styles.module.css\";\n\n/**\n * 当前路径是否命中该菜单项。\n * 若有 siblingPaths(同组子项路径),则只有当前路径精确等于 path 或匹配 path 下的详情(非其它子项)时才命中,避免 /categories 与 /categories/add 同时高亮。\n */\nfunction isPathActive(current: string, path: string, siblingPaths?: string[]): boolean {\n if (current === path) return true;\n if (!current.startsWith(path + \"/\")) return false;\n if (siblingPaths?.length) {\n const matchedSibling = siblingPaths.some((s) => s !== path && (current === s || current.startsWith(s + \"/\")));\n if (matchedSibling) return false;\n }\n return true;\n}\n\nfunction isSubMenuActive(current: string, item: SidebarMenuItem): boolean {\n if (isPathActive(current, item.path, item.children?.map((c) => c.path))) return true;\n if (!item.children) return false;\n return item.children.some((child) => isPathActive(current, child.path, item.children?.map((c) => c.path)) || isSubMenuActive(current, child));\n}\n\nconst Sidebar = memo(\n ({\n children,\n collapsed = false,\n toggled = false,\n onBackdropClick,\n breakPoint = \"all\",\n className,\n items = [],\n currentPathname = \"\",\n onNavigate,\n logoutLabel = \"Logout\",\n handleLogout,\n bottomLogoutButton,\n headerHeight = 0,\n footerHeight = 0,\n }: SidebarProps) => {\n const handleItemClick = useCallback(\n (path: string) => {\n onNavigate?.(path);\n },\n [onNavigate],\n );\n\n const renderItem = useCallback(\n (item: SidebarMenuItem, siblingPaths?: string[]) => {\n const active = isPathActive(currentPathname, item.path, siblingPaths);\n if (item.children?.length) {\n const subActive = isSubMenuActive(currentPathname, item);\n return (\n <SubMenu key={item.path} label={item.label} icon={item.icon} active={subActive}>\n {item.children.map((child) => renderItem(child, item.children!.map((c) => c.path)))}\n </SubMenu>\n );\n }\n return (\n <MenuItem key={item.path} icon={item.icon} onClick={() => handleItemClick(item.path)} active={active}>\n {item.label}\n </MenuItem>\n );\n },\n [currentPathname, handleItemClick],\n );\n\n const menuContent =\n items.length > 0 ? (\n <Menu\n key={`${collapsed}-${toggled}`}\n transitionDuration={300}\n closeOnClick\n menuItemStyles={{\n button: {\n color: \"var(--color-fg-text)\",\n backgroundColor: \"transparent\",\n \"&:hover\": {\n backgroundColor: \"var(--color-bg-3)\",\n color: \"var(--color-fg-text)\",\n },\n \"&.active\": {\n backgroundColor: \"var(--color-primary)\",\n color: \"var(--color-primary-fg)\",\n },\n },\n icon: {\n color: \"var(--color-fg-text)\",\n \"&.active\": {\n color: \"var(--color-primary-fg)\",\n },\n },\n label: {\n color: \"var(--color-fg-text)\",\n \"&.active\": {\n color: \"var(--color-primary-fg)\",\n },\n },\n }}\n >\n {items.map((item) => renderItem(item))}\n </Menu>\n ) : null;\n\n const bottomLogoutButtonContent = useMemo(() => {\n if (bottomLogoutButton != null) return bottomLogoutButton;\n if (handleLogout != null) {\n return (\n <div className={styles.logoutContainer}>\n <button type=\"button\" className={styles.logoutButton} onClick={handleLogout} title={logoutLabel}>\n <LogOut size={20} />\n <span className={collapsed ? styles.hiddenText : styles.visibleText}>{logoutLabel}</span>\n </button>\n </div>\n );\n }\n return null;\n }, [collapsed, logoutLabel, handleLogout, bottomLogoutButton]);\n\n return (\n <ProSidebar\n collapsed={collapsed}\n toggled={toggled}\n onBackdropClick={onBackdropClick}\n breakPoint={breakPoint}\n backgroundColor=\"var(--color-bg-2)\"\n rootStyles={{\n border: \"none\",\n borderRight: \"1px solid var(--color-separator)\",\n marginTop: `${headerHeight}px`,\n marginBottom: `${footerHeight}px`,\n height: `calc(100vh - ${footerHeight + headerHeight}px) !important`,\n }}\n className={`${styles.sidebar} ${className || \"\"}`}\n >\n <div className={styles.sidebarContent} onWheel={(e) => e.stopPropagation()}>\n <div className={styles.menuWrapper}>{children ?? menuContent}</div>\n {bottomLogoutButtonContent != null ? <div className={styles.sidebarFooter}>{bottomLogoutButtonContent}</div> : null}\n </div>\n </ProSidebar>\n );\n },\n);\n\nSidebar.displayName = \"Sidebar\";\nexport default Sidebar;\n","/* ===== Footer Component ===== */\r\n\r\n.footer {\r\n background: var(--color-bg-2);\r\n padding: 0 2rem;\r\n width: 100%;\r\n}\r\n\r\n.footerContent {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n max-width: 100%;\r\n margin: 0 auto;\r\n}\r\n\r\n.copyright {\r\n color: var(--color-fg-text);\r\n font-size: 0.875rem;\r\n}\r\n\r\n.links {\r\n display: flex;\r\n gap: 1.5rem;\r\n}\r\n\r\n.link {\r\n color: var(--color-fg-text);\r\n font-size: 0.875rem;\r\n text-decoration: none;\r\n transition: color 0.3s ease;\r\n}\r\n\r\n.link:hover {\r\n color: var(--color-primary);\r\n}\r\n\r\n/* ===== 响应式 ===== */\r\n@media (max-width: 768px) {\r\n .footerContent {\r\n flex-direction: column;\r\n gap: 1rem;\r\n }\r\n\r\n .links {\r\n gap: 1rem;\r\n }\r\n}\r\n","import type { FooterProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\nexport const DefaultFooterContent = memo(() => {\n const currentYear = new Date().getFullYear();\n return (\n <div className={styles.footerContent}>\n <span className={styles.copyright}>© {currentYear}</span>\n <div className={styles.links}>\n <a href=\"#\" className={styles.link}>\n About Us\n </a>\n <a href=\"#\" className={styles.link}>\n Privacy Policy\n </a>\n <a href=\"#\" className={styles.link}>\n Terms of Service\n </a>\n </div>\n </div>\n );\n});\nDefaultFooterContent.displayName = \"DefaultFooterContent\";\n\n/** 通用 Footer:只负责布局与样式,内容由外部传入。 */\nconst Footer = memo(({ children, className }: FooterProps) => {\n return <div className={`${styles.footer} ${className || \"\"}`}>{children ?? <DefaultFooterContent />}</div>;\n});\n\nFooter.displayName = \"Footer\";\n\nexport default Footer;\n","/* ===== Header - 主容器样式 ===== */\r\n\r\n.header {\r\n display: flex;\r\n width: 100%;\r\n padding: 0.5rem 2rem;\r\n}\r\n\r\n/* 左侧容器:占一半,左对齐 */\r\n.header> :first-child {\r\n flex: 1;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n}\r\n\r\n/* 右侧容器:占一半,右对齐 */\r\n.header> :last-child {\r\n flex: 1;\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n}","import type { HeaderProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\n/** 通用 Header:只负责布局左右两栏,内容全部由外部传入,内部不获取数据。Generic header: layout only; all content from props. */\nconst Header = memo(({ leftContent, rightContent }: HeaderProps) => {\n return (\n <div className={styles.header}>\n <div>{leftContent}</div>\n <div>{rightContent}</div>\n </div>\n );\n});\n\nHeader.displayName = \"Header\";\nexport default Header;\n","/* ===== One Column Layout ===== */\r\n\r\n.layout {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100vh;\r\n width: 100%;\r\n background: var(--color-bg);\r\n position: relative;\r\n}\r\n\r\n/* ===== Header ===== */\r\n.header {\r\n position: fixed;\r\n top: 0;\r\n z-index: 100;\r\n background: var(--color-bg);\r\n width: 100%;\r\n box-shadow: 0 0.125rem 0.25rem 0 var(--color-shadow);\r\n}\r\n\r\n\r\n/* ===== Footer ===== */\r\n.footer {\r\n position: fixed;\r\n bottom: 0;\r\n width: 100%;\r\n z-index: 100;\r\n}\r\n","import type { MainWrapperProps } from \"../../types\";\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } from \"react\";\n\nimport Footer from \"../Footer\";\nimport Header from \"../Header\";\nimport styles from \"./styles.module.css\";\n\nfunction useElementHeight<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [height, setHeight] = useState(0);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n const observer = new ResizeObserver(([entry]) => {\n const nextHeight = entry?.contentRect.height ?? 0;\n setHeight((prev) => (prev !== nextHeight ? nextHeight : prev));\n });\n\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n const callbackRef = useCallback((instance: T | null) => {\n if (instance) {\n ref.current = instance;\n }\n }, []);\n\n return [callbackRef, height] as const;\n}\n\nconst MainWrapper = memo(({ children, headerLeft, headerRight, footerContent }: MainWrapperProps) => {\n const [headerRef, headerHeight] = useElementHeight<HTMLDivElement>();\n const [footerRef, footerHeight] = useElementHeight<HTMLDivElement>();\n\n return (\n <div className={styles.layout}>\n <header ref={headerRef} className={styles.header}>\n <Header leftContent={headerLeft} rightContent={headerRight} />\n </header>\n\n {children(headerHeight, footerHeight)}\n\n {/* Footer */}\n <footer ref={footerRef} className={styles.footer}>\n <Footer>{footerContent}</Footer>\n </footer>\n </div>\n );\n});\n\nMainWrapper.displayName = \"MainWrapper\";\nexport default MainWrapper;\n",".mainWrapper {\n display: flex;\n flex: 1;\n position: relative;\n}\n\n/* Fixed strip between header and footer: z-index above footer (100) so the drawer is not painted under it */\n.sidebarChrome {\n position: fixed;\n left: 0;\n z-index: 101;\n box-sizing: border-box;\n}\n\n.sidebar {\n height: 100%;\n min-height: 0;\n}\n\n.content {\n flex: 1;\n background: var(--color-bg);\n overflow-y: auto;\n overflow-x: hidden;\n min-height: calc(100vh - 10rem);\n padding-top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n\n@media (max-width: 768px) {\n .content {\n width: 100%;\n }\n .sidebarChrome {\n z-index: 999;\n }\n}\n","import type { SideHideLayoutProps } from \"../../types\";\n\nimport { memo, useCallback } from \"react\";\n\nimport useLayout from \"../../hooks/useLayout\";\nimport Sidebar from \"../Sidebar\";\nimport styles from \"./styles.module.css\";\n\nconst SideHideLayout = memo(\n ({\n children,\n headerHeight,\n footerHeight,\n sidebarItems,\n sidebarCurrentPathname,\n onSidebarNavigate,\n sidebarLogoutLabel,\n onSidebarLogout,\n bottomLogoutButton,\n }: SideHideLayoutProps) => {\n const { sidebarOpen, closeSidebar } = useLayout();\n\n const handleBackdropClick = useCallback(() => {\n closeSidebar();\n }, [closeSidebar]);\n\n return (\n <>\n <div\n className={styles.sidebarChrome}\n style={{\n top: `${headerHeight}px`,\n height: `calc(100vh - ${headerHeight + footerHeight}px)`,\n }}\n >\n <Sidebar\n toggled={sidebarOpen}\n onBackdropClick={handleBackdropClick}\n breakPoint=\"all\"\n className={styles.sidebar}\n items={sidebarItems}\n currentPathname={sidebarCurrentPathname}\n onNavigate={onSidebarNavigate}\n logoutLabel={sidebarLogoutLabel}\n handleLogout={onSidebarLogout}\n bottomLogoutButton={bottomLogoutButton}\n />\n </div>\n <main\n className={styles.mainWrapper}\n style={{\n marginTop: `${headerHeight}px`,\n marginBottom: `${footerHeight}px`,\n }}\n >\n <div className={styles.content} data-lenis-prevent>\n {children}\n </div>\n </main>\n </>\n );\n },\n);\n\nSideHideLayout.displayName = \"SideHideLayout\";\n\nexport default SideHideLayout;\n","/* ===== Main Wrapper (Sidebar + Content) ===== */\n.mainWrapper {\n display: flex;\n flex: 1;\n position: relative;\n flex-direction: row;\n}\n\n.sidebarContainer {\n position: fixed;\n left: 0;\n z-index: 99;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n min-height: 0;\n box-sizing: border-box;\n}\n\n.sidebar {\n top: 0;\n left: 0;\n flex-shrink: 0;\n}\n\n.content {\n flex: 1;\n background: var(--color-bg);\n overflow-y: auto;\n overflow-x: hidden;\n padding-top: 0;\n padding-bottom: 0;\n margin: 0;\n}\n\n@media (max-width: 1024px) {\n .content {\n padding: 1.5rem;\n }\n}\n\n@media (max-width: 768px) {\n .content {\n width: 100%;\n }\n}\n","import type { SideShowLayoutProps } from \"../../types\";\n\nimport { memo, useCallback, useLayoutEffect, useRef, useState } from \"react\";\n\nimport useLayout from \"../../hooks/useLayout\";\nimport Sidebar from \"../Sidebar\";\nimport styles from \"./styles.module.css\";\n\nfunction useElementWidth<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [width, setWidth] = useState(0);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n const observer = new ResizeObserver(([entry]) => {\n const nextWidth = entry?.contentRect.width ?? 0;\n setWidth((prev) => (prev !== nextWidth ? nextWidth : prev));\n });\n\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n const callbackRef = useCallback((instance: T | null) => {\n if (instance) {\n ref.current = instance;\n }\n }, []);\n\n return [callbackRef, width] as const;\n}\n\nconst SideShowLayout = memo(\n ({\n children,\n headerHeight,\n footerHeight,\n sidebarItems,\n sidebarCurrentPathname,\n onSidebarNavigate,\n sidebarLogoutLabel,\n onSidebarLogout,\n bottomLogoutButton,\n }: SideShowLayoutProps) => {\n const { sidebarOpen, closeSidebar } = useLayout();\n const [sidebarRef, sidebarWidth] = useElementWidth<HTMLDivElement>();\n\n const handleBackdropClick = () => {\n closeSidebar();\n };\n\n return (\n <>\n <div\n ref={sidebarRef}\n className={styles.sidebarContainer}\n style={{\n // top: `${headerHeight}px`,\n // bottom: `${footerHeight}px`,\n // marginTop: `${headerHeight}px`,\n // marginBottom: `${footerHeight}px`,\n height: `100%`,\n }}\n >\n <Sidebar\n collapsed={sidebarOpen}\n toggled={sidebarOpen}\n onBackdropClick={handleBackdropClick}\n breakPoint=\"xs\"\n className={styles.sidebar}\n items={sidebarItems}\n currentPathname={sidebarCurrentPathname}\n onNavigate={onSidebarNavigate}\n logoutLabel={sidebarLogoutLabel}\n handleLogout={onSidebarLogout}\n bottomLogoutButton={bottomLogoutButton}\n headerHeight={headerHeight}\n footerHeight={footerHeight}\n />\n </div>\n <main\n className={styles.mainWrapper}\n style={{\n marginTop: `${headerHeight}px`,\n marginBottom: `${footerHeight}px`,\n marginLeft: `${sidebarWidth}px`,\n width: `calc(100% - ${sidebarWidth}px)`,\n }}\n >\n <div className={styles.content} data-lenis-prevent>\n {children}\n </div>\n </main>\n </>\n );\n },\n);\n\nSideShowLayout.displayName = \"SideShowLayout\";\nexport default SideShowLayout;\n",".wavesWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.wavesWrapper > * {\n pointer-events: auto;\n}\n\n.squaresWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.squaresWrapper > * {\n pointer-events: auto;\n}\n\n.letterGlitchWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.letterGlitchWrapper > * {\n pointer-events: auto;\n}\n\n.pixelBlastWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.pixelBlastWrapper > * {\n pointer-events: auto;\n}\n","import type { ReactNode } from \"react\";\n\nimport { Suspense, lazy, memo } from \"react\";\n\nimport { LetterGlitchBackground, SquareBackground, WaveBackground } from \"@/designs/animations\";\nimport { DashboardBackgroundEnum } from \"@/preference\";\n\nimport styles from \"./styles.module.css\";\n\nconst LazyPixelBlast = lazy(() => import(\"@/designs/animations/PixelBlast\"));\n\ninterface BackgroundProps {\n children: ReactNode;\n /** 可选:外部传入的偏好,有则优先使用;否则从 profile.preference 解析。Optional: preference from parent; otherwise parsed from profile. */\n background?: DashboardBackgroundEnum | null;\n}\n\n/** 与 NFX-Identity/console 一致:仪表盘背景由用户偏好(可外部传入或从 profile 解析) */\nconst Background = memo(({ children, background }: BackgroundProps) => {\n const renderBackground = () => {\n switch (background) {\n case DashboardBackgroundEnum.WAVES:\n return (\n <div className={styles.wavesWrapper}>\n <WaveBackground />\n </div>\n );\n case DashboardBackgroundEnum.SQUARES:\n return (\n <div className={styles.squaresWrapper}>\n <SquareBackground />\n </div>\n );\n case DashboardBackgroundEnum.LETTER_GLITCH:\n return (\n <div className={styles.letterGlitchWrapper}>\n <LetterGlitchBackground />\n </div>\n );\n case DashboardBackgroundEnum.PIXEL_BLAST:\n return (\n <Suspense fallback={null}>\n <div className={styles.pixelBlastWrapper}>\n <LazyPixelBlast />\n </div>\n </Suspense>\n );\n case DashboardBackgroundEnum.NONE:\n default:\n return null;\n }\n };\n\n return (\n <>\n {children}\n {renderBackground()}\n </>\n );\n});\n\nBackground.displayName = \"Background\";\nexport default Background;\nexport type { BackgroundProps };\n","import type { LayoutFrameProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport useLayout from \"../../hooks/useLayout\";\nimport { LayoutModeEnum } from \"../../types\";\nimport MainWrapper from \"../MainWrapper\";\nimport SideHideLayout from \"../SideHideLayout\";\nimport SideShowLayout from \"../SideShowLayout\";\n\nexport const LayoutFrame = memo(\n ({\n children,\n headerLeft,\n headerRight,\n footerContent,\n sidebarItems,\n sidebarCurrentPathname,\n onSidebarNavigate,\n sidebarLogoutLabel,\n onSidebarLogout,\n bottomLogoutButton,\n }: LayoutFrameProps) => {\n const { layoutMode } = useLayout();\n return (\n <MainWrapper headerLeft={headerLeft} headerRight={headerRight} footerContent={footerContent}>\n {(headerHeight, footerHeight) => {\n if (layoutMode === LayoutModeEnum.HIDE) {\n return (\n <SideHideLayout\n headerHeight={headerHeight}\n footerHeight={footerHeight}\n sidebarItems={sidebarItems}\n sidebarCurrentPathname={sidebarCurrentPathname}\n onSidebarNavigate={onSidebarNavigate}\n sidebarLogoutLabel={sidebarLogoutLabel}\n onSidebarLogout={onSidebarLogout}\n bottomLogoutButton={bottomLogoutButton}\n >\n {children}\n </SideHideLayout>\n );\n } else {\n return (\n <SideShowLayout\n headerHeight={headerHeight}\n footerHeight={footerHeight}\n sidebarItems={sidebarItems}\n sidebarCurrentPathname={sidebarCurrentPathname}\n onSidebarNavigate={onSidebarNavigate}\n sidebarLogoutLabel={sidebarLogoutLabel}\n onSidebarLogout={onSidebarLogout}\n bottomLogoutButton={bottomLogoutButton}\n >\n {children}\n </SideShowLayout>\n );\n }\n }}\n </MainWrapper>\n );\n },\n);\n\nLayoutFrame.displayName = \"LayoutFrame\";\nexport default LayoutFrame;\n","import { useCallback, useEffect, useState } from \"react\";\n\nimport { getLayoutStorage, setLayoutStorage } from \"../utils\";\nimport { LayoutModeEnum } from \"../types\";\n\ninterface UseSetProps {\n defaultLayoutMode: LayoutModeEnum;\n sidebarOpen: boolean;\n}\n\nconst useSet = ({ defaultLayoutMode, sidebarOpen }: UseSetProps) => {\n const [layoutMode, setLayoutModeState] = useState<LayoutModeEnum>(() => {\n const saved = getLayoutStorage();\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n const mode = parsed.state?.layoutMode ?? parsed.layoutMode;\n return mode === LayoutModeEnum.SHOW || mode === LayoutModeEnum.HIDE ? mode : defaultLayoutMode;\n } catch {\n return defaultLayoutMode;\n }\n }\n return defaultLayoutMode;\n });\n\n useEffect(() => {\n const storage = {\n state: {\n sidebarOpen,\n layoutMode,\n },\n };\n setLayoutStorage(JSON.stringify(storage));\n }, [sidebarOpen, layoutMode]);\n\n const setLayoutMode = useCallback((mode: LayoutModeEnum) => {\n setLayoutModeState(mode);\n }, []);\n\n return {\n layoutMode,\n setLayoutMode,\n };\n};\n\nexport default useSet;\n","import { useCallback, useState } from \"react\";\n\nimport { getLayoutStorage } from \"../utils\";\n\nconst useAction = () => {\n const [sidebarOpen, setSidebarOpenState] = useState<boolean>(() => {\n const saved = getLayoutStorage();\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n return parsed.state?.sidebarOpen ?? parsed.sidebarOpen ?? false;\n } catch {\n return false;\n }\n }\n return false;\n });\n\n const setSidebarOpen = useCallback((open: boolean) => {\n setSidebarOpenState(open);\n }, []);\n\n const toggleSidebar = useCallback(() => {\n setSidebarOpenState((prev) => !prev);\n }, []);\n\n const closeSidebar = useCallback(() => {\n setSidebarOpenState(false);\n }, []);\n\n return {\n sidebarOpen,\n setSidebarOpen,\n toggleSidebar,\n closeSidebar,\n };\n};\n\nexport default useAction;\n","/**\n * 布局提供者:提供侧栏开关与显示/隐藏模式上下文。\n * Layout provider: provides sidebar state and show/hide layout mode context.\n */\nimport type { LayoutProviderProps } from \"../types\";\n\nimport { memo } from \"react\";\n\nimport useAction from \"../hooks/useAction\";\nimport { LayoutContext } from \"../hooks/useLayout\";\nimport useSet from \"../hooks/useSet\";\nimport { DEFAULT_LAYOUT_MODE } from \"../types\";\n\nconst LayoutProvider = memo(({ children, defaultLayoutMode = DEFAULT_LAYOUT_MODE }: LayoutProviderProps) => {\n const { sidebarOpen, setSidebarOpen, toggleSidebar, closeSidebar } = useAction();\n const { layoutMode, setLayoutMode } = useSet({ defaultLayoutMode, sidebarOpen });\n\n return (\n <LayoutContext.Provider\n value={{\n sidebarOpen,\n layoutMode,\n setSidebarOpen,\n toggleSidebar,\n closeSidebar,\n setLayoutMode,\n }}\n >\n {children}\n </LayoutContext.Provider>\n );\n});\n\nLayoutProvider.displayName = \"LayoutProvider\";\nexport default LayoutProvider;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layouts.cjs","names":[],"sources":["../src/designs/layouts/utils/layoutStorage.ts","../src/designs/layouts/components/Sidebar/s.module.css","../src/designs/layouts/components/Sidebar/menu.tsx","../src/designs/layouts/components/Sidebar/index.tsx","../src/designs/layouts/components/Header/s.module.css","../src/designs/layouts/components/Header/index.tsx","../src/designs/layouts/components/Main/index.tsx","../src/designs/layouts/components/PageFrame/s.module.css","../src/designs/layouts/components/PageFrame/index.tsx","../src/designs/layouts/components/UserTopBar/s.module.css","../src/designs/layouts/components/UserTopBar/index.tsx","../src/designs/layouts/components/MainWrapper/index.tsx","../src/designs/layouts/components/SideHideLayout/index.tsx","../src/designs/layouts/components/SideShowLayout/index.tsx","../src/designs/layouts/components/Footer/styles.module.css","../src/designs/layouts/components/Footer/index.tsx","../src/designs/layouts/components/Background/styles.module.css","../src/designs/layouts/components/Background/index.tsx","../src/designs/layouts/components/LayoutFrame/index.tsx","../src/designs/layouts/hooks/useSet.ts","../src/designs/layouts/hooks/useAction.ts","../src/designs/layouts/providers/index.tsx"],"sourcesContent":["/**\n * 布局相关 localStorage 读写与移除,统一走 utils/lstorage。\n * Layout localStorage get/set/remove via utils/lstorage.\n */\nimport type { Nilable } from \"@/types/utils\";\nimport { getItem, removeItem, setItem } from \"@/utils/lstorage\";\n\nimport { LAYOUT_STORAGE_KEY } from \"../types\";\n\nexport function getLayoutStorage(): Nilable<string> {\n return getItem(LAYOUT_STORAGE_KEY);\n}\n\nexport function setLayoutStorage(value: string): void {\n setItem(LAYOUT_STORAGE_KEY, value);\n}\n\nexport function removeLayoutStorage(): void {\n removeItem(LAYOUT_STORAGE_KEY);\n}\n",".shell {\n background: var(--color-background);\n color: var(--gray-12);\n}\n.content {\n position: relative;\n background: var(--color-background);\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.contentInner {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.sidebar {\n font-family: Arial, \"Noto Sans SC\", sans-serif;\n height: 100%;\n min-height: 0;\n background: var(--color-panel-solid);\n border-right: 1px solid var(--gray-a4);\n border-radius: 0;\n}\n.header {\n position: relative;\n flex-shrink: 0;\n margin: 0 20px;\n padding: 21px 0 22px;\n border-bottom: 1px solid var(--gray-a4);\n}\n.toggle {\n position: absolute !important;\n right: -34px !important;\n top: 30px !important;\n width: 26px !important;\n height: 26px !important;\n border: 1px solid var(--gray-a5) !important;\n border-radius: var(--radius-2) !important;\n background: var(--color-panel-solid) !important;\n color: var(--gray-11) !important;\n z-index: 2;\n}\n.toggle:hover {\n background: var(--gray-3) !important;\n color: var(--gray-12) !important;\n}\n.accountCard {\n appearance: none;\n display: flex;\n align-items: center;\n gap: 11px;\n width: 100%;\n padding: 0;\n border: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n cursor: pointer;\n background: transparent;\n border-radius: var(--radius-3);\n}\n.accountCard:focus-visible {\n outline: 2px solid var(--accent-8);\n outline-offset: 5px;\n}\n.accountCard:hover .accountName {\n color: var(--accent-11);\n}\n.accountInfo {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n gap: 3px;\n}\n.accountRole {\n color: var(--gray-11);\n font-size: 11px;\n line-height: 16px;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.accountName {\n font-size: 15px;\n line-height: 21px;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.avatar {\n flex-shrink: 0;\n}\n.menuArea {\n flex: 1 1 auto;\n min-height: 0;\n padding: 8px 20px 12px;\n overflow-x: hidden;\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--gray-a5) transparent;\n}\n.menuAreaCollapsed {\n overflow-y: auto;\n}\n.sectionTitle {\n margin: 19px 0 9px;\n padding: 20px 10px 0;\n border-top: 1px solid var(--gray-a4);\n color: var(--gray-11);\n text-transform: uppercase;\n}\n.sectionTitle :global(.rt-Text) {\n font-size: 11px;\n line-height: 16px;\n font-weight: 400;\n letter-spacing: 0.5px;\n}\n.sectionTitleIcon {\n display: none;\n}\n.sectionDivider {\n height: 1px;\n margin: 22px 0 16px;\n background: var(--gray-a4);\n}\n.menuArea :global(.ps-menu-label .rt-Text),\n.footer :global(.ps-menu-label .rt-Text) {\n font: inherit;\n}\n.menuArea :global(.ps-menu-button.ps-active .ps-menu-label) {\n font-weight: 500;\n}\n.menuArea :global(.ps-submenu-root.ps-open > .ps-menu-button) {\n background: var(--gray-a3);\n color: var(--gray-12);\n}\n.menuArea :global(.ps-submenu-content) {\n border: 0;\n}\n/* One continuous trunk. Only the final branch terminates the trunk before its bend.\n Opaque tokens prevent overlapping segments from becoming a darker double stroke. */\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root)::before {\n content: \"\";\n position: absolute;\n left: 21px;\n top: -3px;\n bottom: -3px;\n width: 1px;\n background: var(--gray-5);\n pointer-events: none;\n}\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root)::after {\n content: \"\";\n position: absolute;\n left: 21px;\n top: calc(50% - 8px);\n width: 11px;\n height: 8px;\n border-left: 1px solid var(--gray-5);\n border-bottom: 1px solid var(--gray-5);\n border-bottom-left-radius: 8px;\n pointer-events: none;\n}\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root:last-child)::before {\n bottom: calc(50% + 8px);\n}\n.menuArea :global(.ps-submenu-content .ps-menu-button) {\n position: relative;\n}\n.menuAreaCollapsed :global(.ps-menu-root > ul > .ps-menuitem-root > .ps-menu-button) {\n justify-content: center;\n padding: 0;\n}\n.menuAreaCollapsed :global(.ps-menu-root > ul > .ps-menuitem-root > .ps-menu-button > .ps-menu-icon) {\n margin: 0;\n}\n.menuAreaCollapsed :global(.ps-menu-root > ul > .ps-menuitem-root > .ps-menu-button > .ps-menu-label),\n.menuAreaCollapsed :global(.ps-submenu-expand-icon) {\n display: none;\n}\n.menuAreaCollapsed :global(.ps-submenu-content) {\n border: 1px solid var(--gray-a5);\n}\n.menuAreaCollapsed :global(.ps-submenu-content .ps-menu-label) {\n display: block;\n}\n.footer {\n flex-shrink: 0;\n margin-top: auto;\n padding: 10px 20px 20px;\n}\n.logout {\n width: 100%;\n height: 40px !important;\n padding: 0 10px !important;\n gap: 10px !important;\n justify-content: flex-start !important;\n background: transparent !important;\n color: var(--red-11) !important;\n font-size: 15px !important;\n font-weight: 400 !important;\n border-radius: var(--radius-chip) !important;\n box-shadow: none !important;\n}\n.logoutCollapsed {\n padding: 0 !important;\n justify-content: center !important;\n}\n.logout:hover:not(:disabled) {\n background: var(--red-a3) !important;\n}\n.mobileToggle {\n position: sticky;\n top: var(--space-3);\n z-index: 10;\n margin: var(--space-3);\n box-shadow: var(--shadow-3);\n background: var(--color-panel-solid) !important;\n color: var(--gray-12) !important;\n}\n.menuIconWrap {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n.menuIconDot {\n position: absolute;\n top: -3px;\n right: -3px;\n width: 7px;\n height: 7px;\n border-radius: var(--radius-full);\n background: var(--red-9);\n border: 2px solid var(--color-panel-solid);\n box-sizing: content-box;\n pointer-events: none;\n}\n.menuBadge {\n padding: 0 5px;\n border-radius: var(--radius-full);\n background: var(--accent-a3);\n color: var(--accent-11);\n font-size: 10px;\n}\n.menuDot {\n width: 7px;\n height: 7px;\n border-radius: var(--radius-full);\n background: var(--red-9);\n}\n@media (prefers-reduced-motion: reduce) {\n .sidebar :global(*) {\n transition-duration: 0ms !important;\n animation-duration: 0ms !important;\n }\n}\n\n.footerCollapsed :global(.ps-menu-button) {\n justify-content: center;\n padding: 0;\n}\n.footerCollapsed :global(.ps-menu-icon) {\n margin: 0;\n}\n.footerCollapsed :global(.ps-menu-label) {\n display: none;\n}\n\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul) {\n padding: 1px 0 7px;\n}\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-root:not(.ps-open) > .ps-submenu-content) {\n visibility: hidden;\n}\n\n.menuAreaCollapsed .sectionTitle {\n padding: 16px 0 0;\n margin: 17px -8px 9px;\n text-align: center;\n justify-content: center;\n}\n.menuAreaCollapsed .sectionTitle :global(.rt-Text) {\n font-size: 9px;\n line-height: 11px;\n letter-spacing: 0;\n overflow-wrap: normal;\n word-break: normal;\n}\n.collapsedSubmenuTrigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 40px;\n margin: 6px 0;\n padding: 0;\n border: 0;\n border-radius: var(--radius-chip);\n color: var(--gray-11);\n background: transparent;\n cursor: pointer;\n}\n.collapsedSubmenuTrigger:hover,\n.collapsedSubmenuActive {\n background: var(--gray-a3);\n color: var(--gray-12);\n}\n.collapsedSubmenuTrigger:focus-visible {\n outline: 2px solid var(--accent-8);\n outline-offset: 2px;\n}\n.flyout {\n width: max-content;\n min-width: 156px;\n max-width: min(260px, calc(100vw - 24px));\n max-height: var(--radix-popover-content-available-height);\n padding: 5px 0 !important;\n border: 1px solid var(--gray-a5);\n border-radius: var(--radius-4);\n background: var(--color-panel-solid);\n box-shadow: var(--shadow-5);\n overflow-y: auto;\n}\n.flyout :global(.ps-menu-label .rt-Text) {\n font: inherit;\n}\n.flyout :global(.ps-menu-button.ps-active .ps-menu-label) {\n font-weight: 500;\n}\n\n.collapsedSubmenuCurrent,\n.collapsedSubmenuCurrent:hover {\n background: var(--accent-a3);\n color: var(--accent-11);\n}\n.menuArea :global(.ps-submenu-root > .ps-menu-button.ps-active) {\n background: var(--accent-a3);\n color: var(--accent-11);\n}\n\n/* Highlight only the route from the parent down to the current child. */\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root:has(~ .ps-menuitem-root > .ps-menu-button.ps-active))::before {\n background: var(--accent-9);\n}\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root:has(> .ps-menu-button.ps-active))::before {\n background: var(--accent-9);\n bottom: calc(50% + 8px);\n}\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root:has(> .ps-menu-button.ps-active))::after {\n border-color: var(--accent-9);\n}\n/* Continue the neutral trunk below an active child when more siblings follow. */\n.menuArea:not(.menuAreaCollapsed) :global(.ps-submenu-content > ul > .ps-menuitem-root:not(:last-child) > .ps-menu-button.ps-active)::before {\n content: \"\";\n position: absolute;\n left: -11px;\n top: 50%;\n bottom: -3px;\n width: 1px;\n background: var(--gray-5);\n pointer-events: none;\n}\n","import type { ReactNode } from \"react\";\nimport type { MenuItemProps, SubMenuProps } from \"react-pro-sidebar\";\n\nimport { createContext, isValidElement, useContext, useEffect, useRef, useState } from \"react\";\nimport { Popover, Tooltip } from \"@radix-ui/themes\";\nimport { Menu, MenuItem as ProMenuItem, SubMenu as ProSubMenu } from \"react-pro-sidebar\";\n\nimport styles from \"./s.module.css\";\n\nconst CollapsedContext = createContext(false);\nconst NestedContext = createContext(false);\n\nexport function SidebarMenuState({ collapsed, children }: { collapsed: boolean; children: ReactNode }) {\n return <CollapsedContext.Provider value={collapsed}>{children}</CollapsedContext.Provider>;\n}\n\nfunction labelText(node: ReactNode): string {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node);\n if (Array.isArray(node)) return node.map(labelText).join(\"\");\n if (isValidElement<{ children?: ReactNode }>(node)) return labelText(node.props.children);\n return \"\";\n}\n\nexport function MenuItem(props: MenuItemProps) {\n const collapsed = useContext(CollapsedContext);\n const nested = useContext(NestedContext);\n const label = labelText(props.children);\n const hasUnread = nested && isValidElement<{ showDot?: boolean }>(props.icon) && props.icon.props.showDot;\n const item = (\n <ProMenuItem\n {...props}\n suffix={props.suffix ?? (hasUnread ? <span className={styles.menuDot} /> : undefined)}\n aria-label={props[\"aria-label\"] ?? label}\n aria-current={props.active ? \"page\" : undefined}\n />\n );\n return collapsed && !nested ? (\n <Tooltip content={label} side=\"right\" sideOffset={14} delayDuration={150}>\n {item}\n </Tooltip>\n ) : (\n item\n );\n}\n\nfunction CollapsedSubMenu({ children, label, icon, active }: SubMenuProps) {\n const [open, setOpen] = useState(false);\n const closeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const pointerOpened = useRef(false);\n const content = useRef<HTMLDivElement>(null);\n const trigger = useRef<HTMLButtonElement>(null);\n const cancelClose = () => clearTimeout(closeTimer.current);\n const scheduleClose = () => {\n if (!pointerOpened.current) return;\n cancelClose();\n closeTimer.current = setTimeout(() => setOpen(false), 180);\n };\n useEffect(() => () => clearTimeout(closeTimer.current), []);\n return (\n <li className=\"ps-menuitem-root\">\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger>\n <button\n ref={trigger}\n type=\"button\"\n className={`${styles.collapsedSubmenuTrigger} ${active ? styles.collapsedSubmenuCurrent : open ? styles.collapsedSubmenuActive : \"\"}`}\n aria-label={labelText(label)}\n aria-expanded={open}\n onPointerEnter={() => {\n cancelClose();\n pointerOpened.current = true;\n setOpen(true);\n }}\n onPointerLeave={scheduleClose}\n onClick={(event) => {\n // Hover may already have opened the panel. A click should keep it open.\n event.preventDefault();\n cancelClose();\n pointerOpened.current = false;\n setOpen(true);\n content.current?.querySelector<HTMLAnchorElement>(\"a[href]\")?.focus();\n }}\n >\n {icon}\n </button>\n </Popover.Trigger>\n <Popover.Content\n ref={content}\n side=\"right\"\n align=\"start\"\n sideOffset={12}\n collisionPadding={12}\n className={styles.flyout}\n aria-label={labelText(label)}\n onPointerEnter={cancelClose}\n onPointerLeave={scheduleClose}\n onOpenAutoFocus={(event) => {\n if (pointerOpened.current) event.preventDefault();\n }}\n onCloseAutoFocus={(event) => {\n if (pointerOpened.current) event.preventDefault();\n }}\n >\n <NestedContext.Provider value={true}>\n <Menu\n menuItemStyles={{\n button: ({ active }) => ({\n height: \"34px\",\n margin: \"3px 7px\",\n padding: \"0 11px\",\n borderRadius: \"var(--radius-chip)\",\n font: \"14px Arial, sans-serif\",\n color: active ? \"var(--accent-11)\" : \"var(--gray-11)\",\n backgroundColor: active ? \"var(--accent-a3)\" : \"transparent\",\n \"&:hover\": {\n backgroundColor: active ? \"var(--accent-a3)\" : \"var(--gray-a3)\",\n color: active ? \"var(--accent-11)\" : \"var(--gray-12)\",\n },\n \"&:focus-visible\": {\n outline: \"2px solid var(--accent-8)\",\n outlineOffset: \"-2px\",\n },\n }),\n icon: { display: \"none\" },\n }}\n onClick={(event) => {\n if ((event.target as HTMLElement).closest(\"a[href]\")) setOpen(false);\n }}\n >\n {children}\n </Menu>\n </NestedContext.Provider>\n </Popover.Content>\n </Popover.Root>\n </li>\n );\n}\n\nexport function SubMenu({ children, ...props }: SubMenuProps) {\n const collapsed = useContext(CollapsedContext);\n if (collapsed) return <CollapsedSubMenu {...props}>{children}</CollapsedSubMenu>;\n return (\n <ProSubMenu {...props} aria-label={labelText(props.label)} aria-expanded={props.open}>\n <NestedContext.Provider value={true}>{children}</NestedContext.Provider>\n </ProSubMenu>\n );\n}\n","import type { ReactNode } from \"react\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { Box, Button, Flex, IconButton, Text } from \"@radix-ui/themes\";\nimport type { LucideIcon as LucideIconType } from \"lucide-react\";\nimport { ChevronDown, ChevronLeft, ChevronRight, ChevronUp, LogOut, Menu as MenuIcon } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Menu, Sidebar as ProSidebar } from \"react-pro-sidebar\";\n\nimport LucideIcon from \"@/designs/components/LucideIcon\";\nimport type { SidebarMenuItem } from \"../../types\";\n\nimport { MenuItem, SidebarMenuState, SubMenu } from \"./menu\";\nimport styles from \"./s.module.css\";\n\nconst SIDEBAR_WIDTH = \"234px\";\nconst SIDEBAR_COLLAPSED_WIDTH = \"84px\";\n\nfunction MenuLabel({ children, active = false }: { children: ReactNode; active?: boolean }) {\n return (\n <Text as=\"span\" size=\"2\" weight={active ? \"bold\" : \"medium\"}>\n {children}\n </Text>\n );\n}\n\nfunction SectionTitle({ label, icon }: { label: string; icon: LucideIconType }) {\n return (\n <Flex align=\"center\" justify=\"between\" gap=\"2\" className={styles.sectionTitle}>\n <Text as=\"span\" size=\"2\" weight=\"bold\">\n {label}\n </Text>\n <LucideIcon icon={icon} size={16} className={styles.sectionTitleIcon} />\n </Flex>\n );\n}\n\nfunction createMenuItemStyles(collapsed: boolean) {\n return {\n button: ({ active, level = 0 }: { active: boolean; level?: number }) => ({\n height: level > 0 ? \"34px\" : \"40px\",\n margin: level > 0 ? (collapsed ? \"3px 7px\" : \"3px 0 3px 32px\") : \"6px 0\",\n borderRadius: \"var(--radius-chip)\",\n paddingLeft: level > 0 ? \"11px\" : \"10px\",\n paddingRight: \"10px\",\n fontSize: level > 0 ? \"14px\" : \"15px\",\n fontWeight: 400,\n color: active ? \"var(--accent-11)\" : \"var(--gray-11)\",\n backgroundColor: active ? \"var(--accent-a3)\" : \"transparent\",\n transition: \"background-color 150ms ease, color 150ms ease\",\n \"&:hover\": { backgroundColor: active ? \"var(--accent-a3)\" : \"var(--gray-a3)\", color: active ? \"var(--accent-11)\" : \"var(--gray-12)\" },\n \"&:focus-visible\": {\n outline: \"2px solid var(--accent-8)\",\n outlineOffset: \"2px\",\n },\n }),\n icon: ({ level = 0 }: { level?: number }) => ({\n width: \"20px\",\n minWidth: \"20px\",\n height: \"20px\",\n marginRight: \"10px\",\n color: \"inherit\",\n ...(level > 0 ? { display: \"none\" } : {}),\n }),\n subMenuContent: {\n backgroundColor: collapsed ? \"var(--color-panel-solid)\" : \"transparent\",\n padding: collapsed ? \"5px 0\" : \"0\",\n ...(collapsed\n ? {\n zIndex: 1000,\n minWidth: \"156px\",\n width: \"max-content\",\n maxWidth: \"260px\",\n maxHeight: \"calc(100dvh - 32px)\",\n overflowY: \"auto\" as const,\n borderRadius: \"var(--radius-4)\",\n border: \"1px solid var(--gray-a5)\",\n boxShadow: \"var(--shadow-5)\",\n }\n : {}),\n },\n };\n}\n\nfunction isActivePath(current: string, path: string): boolean {\n return current === path || current.startsWith(`${path}/`);\n}\n\nexport type SidebarChromeProps = {\n items?: SidebarMenuItem[];\n currentPathname?: string;\n onNavigate?: (path: string) => void;\n handleLogout?: () => void;\n logoutLabel?: string;\n header?: ReactNode;\n topBar?: ReactNode;\n footerExtra?: ReactNode;\n children?: ReactNode;\n};\n\nfunction Sidebar({\n items = [],\n currentPathname = \"\",\n onNavigate,\n handleLogout,\n logoutLabel,\n header,\n topBar,\n footerExtra,\n children,\n}: SidebarChromeProps) {\n const { t } = useTranslation(\"language\");\n const [desktopCollapsed, setCollapsed] = useState(false);\n const [toggled, setToggled] = useState(false);\n const [broken, setBroken] = useState(false);\n const collapsed = !broken && desktopCollapsed;\n const drawerRef = useRef<HTMLHtmlElement>(null);\n const [openKeys, setOpenKeys] = useState<Record<string, boolean>>({});\n\n useEffect(() => {\n if (!broken || !toggled) return;\n const previousFocus = document.activeElement as HTMLElement | null;\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n const focusable = () =>\n Array.from(drawerRef.current?.querySelectorAll<HTMLElement>(\"button:not([disabled]), a[href], [tabindex='0']\") ?? []).filter(\n (node) => node.getClientRects().length && getComputedStyle(node).visibility !== \"hidden\",\n );\n focusable()[0]?.focus();\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented) return;\n if (event.key === \"Escape\") {\n event.preventDefault();\n setToggled(false);\n }\n if (event.key !== \"Tab\") return;\n const nodes = focusable();\n const first = nodes[0];\n const last = nodes[nodes.length - 1];\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last?.focus();\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first?.focus();\n }\n };\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.body.style.overflow = previousOverflow;\n document.removeEventListener(\"keydown\", onKeyDown);\n previousFocus?.focus();\n };\n }, [broken, toggled]);\n\n const closeMobile = () => broken && setToggled(false);\n\n const renderItem = (item: SidebarMenuItem) => {\n const active = isActivePath(currentPathname, item.path);\n if (item.children?.length) {\n const childActive = item.children.some((c) => isActivePath(currentPathname, c.path));\n const open = openKeys[item.path] ?? childActive;\n return (\n <SubMenu\n key={item.path}\n label={item.label}\n icon={item.icon}\n open={open}\n onOpenChange={(next) => setOpenKeys((s) => ({ ...s, [item.path]: next }))}\n active={childActive}\n >\n {item.children.map((child) => {\n const childIsActive = isActivePath(currentPathname, child.path);\n return (\n <MenuItem\n key={child.path}\n icon={child.icon}\n active={childIsActive}\n onClick={() => {\n onNavigate?.(child.path);\n closeMobile();\n }}\n >\n <MenuLabel active={childIsActive}>{child.label}</MenuLabel>\n </MenuItem>\n );\n })}\n </SubMenu>\n );\n }\n return (\n <MenuItem\n key={item.path}\n icon={item.icon}\n active={active}\n onClick={() => {\n onNavigate?.(item.path);\n closeMobile();\n }}\n >\n <MenuLabel active={active}>{item.label}</MenuLabel>\n </MenuItem>\n );\n };\n\n return (\n <Flex minHeight=\"100dvh\" width=\"100%\" className={styles.shell}>\n <SidebarMenuState collapsed={collapsed}>\n <ProSidebar\n ref={drawerRef}\n inert={broken && !toggled ? true : undefined}\n aria-hidden={broken && !toggled ? true : undefined}\n collapsed={collapsed}\n toggled={toggled}\n onBackdropClick={() => setToggled(false)}\n onBreakPoint={setBroken}\n breakPoint=\"md\"\n width={SIDEBAR_WIDTH}\n collapsedWidth={SIDEBAR_COLLAPSED_WIDTH}\n rootStyles={{\n border: 0,\n height: \"100dvh\",\n flexShrink: 0,\n position: \"sticky\",\n top: 0,\n margin: 0,\n zIndex: 200,\n overflow: \"visible\",\n \"&.ps-broken.ps-toggled\": { left: 0 },\n \"&.ps-broken\": { height: \"100dvh\", position: \"fixed\", margin: 0, top: 0, bottom: 0 },\n \"& .ps-sidebar-container\": {\n background: \"transparent\",\n height: \"100%\",\n overflow: \"visible\",\n },\n }}\n >\n <Flex direction=\"column\" height=\"100%\" minHeight=\"0\" className={styles.sidebar}>\n <div className={styles.header}>\n {header}\n <IconButton\n variant=\"soft\"\n size=\"1\"\n className={styles.toggle}\n aria-label={collapsed ? t(\"sidebar.expand\") : t(\"sidebar.collapse\")}\n aria-expanded={!collapsed}\n onClick={() => (broken ? setToggled(false) : setCollapsed((value) => !value))}\n >\n <LucideIcon icon={collapsed ? ChevronRight : ChevronLeft} size={14} />\n </IconButton>\n </div>\n\n <Box flexGrow=\"1\" minHeight=\"0\" py=\"2\" className={`${styles.menuArea} ${collapsed ? styles.menuAreaCollapsed : \"\"}`}>\n <Menu renderExpandIcon={({ open }) => <LucideIcon icon={open ? ChevronUp : ChevronDown} size={14} />} menuItemStyles={createMenuItemStyles(collapsed)} closeOnClick>\n {items.map(renderItem)}\n </Menu>\n </Box>\n\n <div className={`${styles.footer} ${collapsed ? styles.footerCollapsed : \"\"}`}>\n {footerExtra}\n {handleLogout ? (\n <Button\n variant=\"ghost\"\n className={`${styles.logout} ${collapsed ? styles.logoutCollapsed : \"\"}`}\n onClick={handleLogout}\n aria-label={logoutLabel ?? t(\"sidebar.logout\")}\n title={collapsed ? (logoutLabel ?? t(\"sidebar.logout\")) : undefined}\n >\n <LucideIcon icon={LogOut} size={18} />\n {!collapsed && (logoutLabel ?? t(\"sidebar.logout\"))}\n </Button>\n ) : null}\n </div>\n </Flex>\n </ProSidebar>\n </SidebarMenuState>\n\n <Flex direction=\"column\" flexGrow=\"1\" minWidth=\"0\" inert={broken && toggled ? true : undefined} className={styles.content}>\n {broken ? (\n <IconButton variant=\"surface\" color=\"gray\" size=\"3\" className={styles.mobileToggle} onClick={() => setToggled(true)} aria-label={t(\"sidebar.openMenu\")}>\n <LucideIcon icon={MenuIcon} size={18} />\n </IconButton>\n ) : null}\n {topBar}\n <Box flexGrow=\"1\" minWidth=\"0\" minHeight=\"0\" className={styles.contentInner}>\n {children}\n </Box>\n </Flex>\n </Flex>\n );\n}\n\nexport default Sidebar;\nexport { SectionTitle, MenuLabel, createMenuItemStyles, SIDEBAR_WIDTH, SIDEBAR_COLLAPSED_WIDTH };\n",".header {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 30;\n width: 100%;\n padding: var(--space-3) var(--space-4);\n pointer-events: none;\n background: linear-gradient(180deg, color-mix(in oklab, var(--color-background) 92%, transparent), transparent);\n}\n\n.header .bar {\n pointer-events: auto;\n}\n\n/* Floating bar: width/centering + float shadow only — surface comes from Card */\n.bar {\n width: 100%;\n max-width: 1120px;\n margin: 0 auto;\n box-shadow: 0 8px 28px color-mix(in oklab, var(--gray-12) 6%, transparent);\n}\n\n.nav {\n display: none;\n gap: var(--space-1);\n}\n\n@media (min-width: 900px) {\n .nav {\n display: flex;\n }\n}\n\n.nav :global(.rt-BaseButton) {\n padding-inline: var(--space-4);\n background: transparent;\n color: var(--gray-12);\n font-size: var(--font-size-3);\n border-radius: var(--radius-chip) !important;\n}\n\n@media (hover: hover) {\n .nav :global(.rt-BaseButton):hover {\n background: var(--accent-a2);\n color: var(--accent-11);\n }\n}\n\n.navActive {\n background: var(--accent-a3) !important;\n color: var(--accent-11) !important;\n font-weight: var(--font-weight-bold);\n}\n\n.mobileNav {\n display: flex;\n}\n\n@media (min-width: 900px) {\n .mobileNav {\n display: none;\n }\n}\n\n.brandWord {\n font-family: var(--heading-font-family);\n letter-spacing: -0.03em;\n}\n\n.accountMenu {\n min-width: 200px;\n}\n","import type { ReactNode } from \"react\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { HamburgerMenuIcon } from \"@radix-ui/react-icons\";\nimport { Avatar, Button, Card, DropdownMenu, Flex, IconButton, Separator, Text } from \"@radix-ui/themes\";\nimport { setHeaderHeight } from \"@/stores/layout\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Logo from \"@/designs/components/Logo\";\nimport PreferencesPopover from \"@/designs/components/PreferencesPopover\";\n\nimport styles from \"./s.module.css\";\n\nexport type HeaderNavItem = {\n key: string;\n label: string;\n onSelect: () => void;\n active?: boolean;\n};\n\nexport type HeaderAccount = {\n displayName: string;\n initial: string;\n avatarSrc?: string;\n menuItems?: { key: string; label: string; onSelect: () => void; color?: \"red\" }[];\n};\n\nexport type HeaderProps = {\n brandTitle?: ReactNode;\n brandSubtitle?: ReactNode;\n logoSrc?: string;\n srcDark?: string;\n navItems?: HeaderNavItem[];\n account?: HeaderAccount | null;\n onLogin?: () => void;\n onSignup?: () => void;\n onLogoClick?: () => void;\n extraActions?: ReactNode;\n};\n\nfunction Header({\n brandTitle,\n brandSubtitle,\n logoSrc,\n srcDark,\n navItems = [],\n account,\n onLogin,\n onSignup,\n onLogoClick,\n extraActions,\n}: HeaderProps) {\n const headerRef = useRef<HTMLElement | null>(null);\n const { t } = useTranslation(\"language\");\n const [elevated, setElevated] = useState(false);\n\n useEffect(() => {\n if (!headerRef.current) return;\n const element = headerRef.current;\n const emitHeight = () => {\n const rect = element.getBoundingClientRect();\n const computed = getComputedStyle(element);\n const marginBottom = parseFloat(computed.marginBottom) || 0;\n setHeaderHeight(rect.bottom + marginBottom);\n };\n emitHeight();\n const observer = new ResizeObserver(emitHeight);\n observer.observe(element);\n window.addEventListener(\"resize\", emitHeight);\n return () => {\n observer.disconnect();\n window.removeEventListener(\"resize\", emitHeight);\n };\n }, []);\n\n useEffect(() => {\n const onScroll = () => setElevated(window.scrollY > 12);\n onScroll();\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => window.removeEventListener(\"scroll\", onScroll);\n }, []);\n\n return (\n <Flex asChild className={styles.header}>\n <header ref={headerRef}>\n <Card\n size=\"1\"\n className={styles.bar}\n style={\n elevated\n ? {\n boxShadow: \"0 14px 40px color-mix(in oklab, var(--gray-12) 10%, transparent)\",\n }\n : undefined\n }\n >\n <Flex align=\"center\" justify=\"between\" gap=\"3\">\n <Logo variant=\"glassSquare\" size=\"small\" src={logoSrc} srcDark={srcDark} title={brandTitle} subtitle={brandSubtitle} onClick={onLogoClick} />\n\n {navItems.length > 0 ? (\n <Flex asChild align=\"center\" gap=\"1\" className={styles.nav}>\n <nav>\n {navItems.map((item) => (\n <Button key={item.key} size=\"3\" variant=\"soft\" className={item.active ? styles.navActive : undefined} onClick={item.onSelect}>\n {item.label}\n </Button>\n ))}\n </nav>\n </Flex>\n ) : null}\n\n <Flex align=\"center\" gap=\"2\" flexShrink=\"0\">\n {navItems.length > 0 ? (\n <DropdownMenu.Root modal={false}>\n <DropdownMenu.Trigger>\n <IconButton variant=\"soft\" color=\"gray\" size=\"2\" className={styles.mobileNav} aria-label={t(\"header.openMenu\")}>\n <HamburgerMenuIcon />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {navItems.map((item) => (\n <DropdownMenu.Item key={item.key} onSelect={item.onSelect}>\n {item.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : null}\n\n <PreferencesPopover />\n {extraActions}\n\n {account ? (\n <DropdownMenu.Root modal={false}>\n <DropdownMenu.Trigger>\n <Button variant=\"soft\" color=\"gray\" highContrast>\n <Avatar size=\"1\" radius=\"full\" src={account.avatarSrc} fallback={account.initial} />\n <Text size=\"2\" truncate style={{ maxWidth: 120 }}>\n {account.displayName}\n </Text>\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\" sideOffset={8} size=\"2\" className={styles.accountMenu}>\n <DropdownMenu.Label>\n <Text size=\"1\" color=\"gray\" truncate style={{ maxWidth: 200 }}>\n {account.displayName}\n </Text>\n </DropdownMenu.Label>\n {account.menuItems?.map((item) => (\n <DropdownMenu.Item key={item.key} color={item.color} onSelect={item.onSelect}>\n {item.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : (\n <>\n {onLogin || onSignup ? <Separator orientation=\"vertical\" size=\"1\" /> : null}\n {onLogin ? (\n <Button variant=\"soft\" color=\"gray\" onClick={onLogin}>\n {t(\"header.login\")}\n </Button>\n ) : null}\n {onSignup ? <Button onClick={onSignup}>{t(\"header.signup\")}</Button> : null}\n </>\n )}\n </Flex>\n </Flex>\n </Card>\n </header>\n </Flex>\n );\n}\n\nexport default Header;\n","import type { CSSProperties, ReactNode } from \"react\";\n\nimport { Box } from \"@radix-ui/themes\";\nimport { useLayoutStore } from \"@/stores/layout\";\n\nimport Header from \"../Header\";\n\nexport type MainProps = {\n children?: ReactNode;\n header?: ReactNode;\n};\n\nfunction Main({ children, header }: MainProps) {\n const headerHeight = useLayoutStore((state) => state.headerHeight);\n\n return (\n <Box position=\"relative\" minHeight=\"100dvh\" style={{ background: \"var(--color-background)\" }}>\n {header ?? <Header />}\n <Box\n asChild\n position=\"relative\"\n minHeight=\"100dvh\"\n style={\n {\n paddingTop: 0,\n \"--app-header-height\": `${headerHeight}px`,\n } as CSSProperties\n }\n >\n <main>{children}</main>\n </Box>\n </Box>\n );\n}\n\nexport default Main;\n","/* Sidebar full-height pages: grow vertically without breaking Container centering. */\n.fullHeightFrame {\n flex: 1 1 auto;\n align-self: stretch;\n min-height: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.fullHeightBody {\n flex: 1 1 auto;\n box-sizing: border-box;\n}\n","import type { ReactNode } from \"react\";\n\nimport { Container, Flex } from \"@radix-ui/themes\";\n\nimport styles from \"./s.module.css\";\n\nconst PAGE_FRAME_DEFAULT_MAX_WIDTH_PX = 1440;\n\nexport type PageFrameProps = {\n children: ReactNode;\n className?: string;\n maxWidth?: number | string;\n fullHeight?: boolean;\n};\n\nfunction PageFrame({ children, className, maxWidth = PAGE_FRAME_DEFAULT_MAX_WIDTH_PX, fullHeight }: PageFrameProps) {\n const resolvedMaxWidth = typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth;\n const frameClass = [fullHeight ? styles.fullHeightFrame : \"\", className ?? \"\"].filter(Boolean).join(\" \");\n\n return (\n <Container size=\"4\" align=\"center\" py={fullHeight ? \"0\" : \"5\"} width=\"100%\" maxWidth={resolvedMaxWidth} className={frameClass || undefined}>\n {fullHeight ? (\n <Flex direction=\"column\" flexGrow=\"1\" minHeight=\"0\" width=\"100%\" height=\"100%\" className={styles.fullHeightBody}>\n {children}\n </Flex>\n ) : (\n children\n )}\n </Container>\n );\n}\n\nexport default PageFrame;\n","/* Sticky bar chrome — Themes cannot express z-index/blur/hairline */\n.bar {\n z-index: 10;\n border-bottom: 1px solid var(--gray-a4);\n background: color-mix(in oklab, var(--color-background) 92%, transparent);\n backdrop-filter: blur(10px);\n}\n","import type { ReactNode } from \"react\";\n\nimport { Avatar, Badge, Button, Flex, Text } from \"@radix-ui/themes\";\n\nimport styles from \"./s.module.css\";\n\nexport type UserTopBarAction = {\n key: string;\n label: string;\n icon?: ReactNode;\n onClick: () => void;\n badge?: boolean;\n};\n\nexport type UserTopBarProps = {\n displayName: string;\n subtitle?: string;\n avatarSrc?: string;\n initial?: string;\n requestBadge?: string;\n actions?: UserTopBarAction[];\n};\n\nexport default function UserTopBar({ displayName, subtitle, avatarSrc, initial = \"?\", requestBadge, actions = [] }: UserTopBarProps) {\n return (\n <Flex align=\"center\" justify=\"between\" gap=\"3\" wrap=\"wrap\" py=\"3\" px=\"4\" position=\"sticky\" top=\"0\" className={styles.bar}>\n <Flex align=\"center\" gap=\"3\" minWidth=\"0\">\n <Avatar size=\"2\" radius=\"full\" src={avatarSrc} fallback={initial} />\n <Flex direction=\"column\" minWidth=\"0\">\n <Text size=\"2\" weight=\"bold\" truncate>\n {displayName}\n </Text>\n {subtitle ? (\n <Text size=\"1\" color=\"gray\" truncate>\n {subtitle}\n </Text>\n ) : null}\n </Flex>\n {requestBadge ? (\n <Badge color=\"orange\" variant=\"soft\">\n {requestBadge}\n </Badge>\n ) : null}\n </Flex>\n\n <Flex align=\"center\" gap=\"2\" wrap=\"wrap\">\n {actions.map((action) => (\n <Button key={action.key} size=\"2\" variant=\"soft\" color={action.badge ? undefined : \"gray\"} onClick={action.onClick}>\n {action.icon}\n {action.label}\n {action.badge ? (\n <Badge size=\"1\" color=\"red\">\n ·\n </Badge>\n ) : null}\n </Button>\n ))}\n </Flex>\n </Flex>\n );\n}\n","import type { MainWrapperProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nconst MainWrapper = memo(({ children }: MainWrapperProps) => {\n return <>{children(0, 0)}</>;\n});\n\nMainWrapper.displayName = \"MainWrapper\";\nexport default MainWrapper;\n","import type { SideHideLayoutProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport Sidebar from \"../Sidebar\";\n\nconst SideHideLayout = memo(({ children, sidebarItems, sidebarCurrentPathname, onSidebarNavigate, sidebarLogoutLabel, onSidebarLogout }: SideHideLayoutProps) => {\n return (\n <Sidebar items={sidebarItems} currentPathname={sidebarCurrentPathname} onNavigate={onSidebarNavigate} logoutLabel={sidebarLogoutLabel} handleLogout={onSidebarLogout}>\n {children}\n </Sidebar>\n );\n});\n\nSideHideLayout.displayName = \"SideHideLayout\";\nexport default SideHideLayout;\n","import type { SideShowLayoutProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport Sidebar from \"../Sidebar\";\n\nconst SideShowLayout = memo(({ children, sidebarItems, sidebarCurrentPathname, onSidebarNavigate, sidebarLogoutLabel, onSidebarLogout }: SideShowLayoutProps) => {\n return (\n <Sidebar items={sidebarItems} currentPathname={sidebarCurrentPathname} onNavigate={onSidebarNavigate} logoutLabel={sidebarLogoutLabel} handleLogout={onSidebarLogout}>\n {children}\n </Sidebar>\n );\n});\n\nSideShowLayout.displayName = \"SideShowLayout\";\nexport default SideShowLayout;\n","/* ===== Footer Component ===== */\r\n\r\n.footer {\r\n background: var(--color-bg-2);\r\n padding: 0 2rem;\r\n width: 100%;\r\n}\r\n\r\n.footerContent {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n max-width: 100%;\r\n margin: 0 auto;\r\n}\r\n\r\n.copyright {\r\n color: var(--color-fg-text);\r\n font-size: 0.875rem;\r\n}\r\n\r\n.links {\r\n display: flex;\r\n gap: 1.5rem;\r\n}\r\n\r\n.link {\r\n color: var(--color-fg-text);\r\n font-size: 0.875rem;\r\n text-decoration: none;\r\n transition: color 0.3s ease;\r\n}\r\n\r\n.link:hover {\r\n color: var(--color-primary);\r\n}\r\n\r\n/* ===== 响应式 ===== */\r\n@media (max-width: 768px) {\r\n .footerContent {\r\n flex-direction: column;\r\n gap: 1rem;\r\n }\r\n\r\n .links {\r\n gap: 1rem;\r\n }\r\n}\r\n","import type { FooterProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\nexport const DefaultFooterContent = memo(() => {\n const currentYear = new Date().getFullYear();\n return (\n <div className={styles.footerContent}>\n <span className={styles.copyright}>© {currentYear}</span>\n <div className={styles.links}>\n <a href=\"#\" className={styles.link}>\n About Us\n </a>\n <a href=\"#\" className={styles.link}>\n Privacy Policy\n </a>\n <a href=\"#\" className={styles.link}>\n Terms of Service\n </a>\n </div>\n </div>\n );\n});\nDefaultFooterContent.displayName = \"DefaultFooterContent\";\n\n/** 通用 Footer:只负责布局与样式,内容由外部传入。 */\nconst Footer = memo(({ children, className }: FooterProps) => {\n return <div className={`${styles.footer} ${className || \"\"}`}>{children ?? <DefaultFooterContent />}</div>;\n});\n\nFooter.displayName = \"Footer\";\n\nexport default Footer;\n",".wavesWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.wavesWrapper > * {\n pointer-events: auto;\n}\n\n.squaresWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.squaresWrapper > * {\n pointer-events: auto;\n}\n\n.letterGlitchWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.letterGlitchWrapper > * {\n pointer-events: auto;\n}\n\n.pixelBlastWrapper {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n z-index: 0;\n overflow: hidden;\n}\n\n.pixelBlastWrapper > * {\n pointer-events: auto;\n}\n","import type { ReactNode } from \"react\";\n\nimport { Suspense, lazy, memo } from \"react\";\n\nimport { LetterGlitchBackground, SquareBackground, WaveBackground } from \"@/designs/animations\";\nimport { DashboardBackgroundEnum } from \"@/enums/dashboard\";\n\nimport styles from \"./styles.module.css\";\n\nconst LazyPixelBlast = lazy(() => import(\"@/designs/animations/PixelBlast\"));\n\ninterface BackgroundProps {\n children: ReactNode;\n /** 可选:外部传入的偏好,有则优先使用;否则从 profile.preference 解析。Optional: preference from parent; otherwise parsed from profile. */\n background?: DashboardBackgroundEnum | null;\n}\n\n/** 与 NFX-Identity/console 一致:仪表盘背景由用户偏好(可外部传入或从 profile 解析) */\nconst Background = memo(({ children, background }: BackgroundProps) => {\n const renderBackground = () => {\n switch (background) {\n case DashboardBackgroundEnum.WAVES:\n return (\n <div className={styles.wavesWrapper}>\n <WaveBackground />\n </div>\n );\n case DashboardBackgroundEnum.SQUARES:\n return (\n <div className={styles.squaresWrapper}>\n <SquareBackground />\n </div>\n );\n case DashboardBackgroundEnum.LETTER_GLITCH:\n return (\n <div className={styles.letterGlitchWrapper}>\n <LetterGlitchBackground />\n </div>\n );\n case DashboardBackgroundEnum.PIXEL_BLAST:\n return (\n <Suspense fallback={null}>\n <div className={styles.pixelBlastWrapper}>\n <LazyPixelBlast />\n </div>\n </Suspense>\n );\n case DashboardBackgroundEnum.NONE:\n default:\n return null;\n }\n };\n\n return (\n <>\n {children}\n {renderBackground()}\n </>\n );\n});\n\nBackground.displayName = \"Background\";\nexport default Background;\nexport type { BackgroundProps };\n","import type { LayoutFrameProps } from \"../../types\";\n\nimport { memo } from \"react\";\n\nimport Sidebar from \"../Sidebar\";\n\nexport const LayoutFrame = memo(\n ({\n children,\n sidebarItems,\n sidebarCurrentPathname,\n onSidebarNavigate,\n sidebarLogoutLabel,\n onSidebarLogout,\n headerLeft,\n headerRight,\n }: LayoutFrameProps) => {\n return (\n <Sidebar\n items={sidebarItems}\n currentPathname={sidebarCurrentPathname}\n onNavigate={onSidebarNavigate}\n logoutLabel={sidebarLogoutLabel}\n handleLogout={onSidebarLogout}\n header={headerLeft}\n topBar={headerRight}\n >\n {children}\n </Sidebar>\n );\n },\n);\n\nLayoutFrame.displayName = \"LayoutFrame\";\nexport default LayoutFrame;\n","import { useCallback, useEffect, useState } from \"react\";\n\nimport { getLayoutStorage, setLayoutStorage } from \"../utils\";\nimport { LayoutModeEnum } from \"../types\";\n\ninterface UseSetProps {\n defaultLayoutMode: LayoutModeEnum;\n sidebarOpen: boolean;\n}\n\nconst useSet = ({ defaultLayoutMode, sidebarOpen }: UseSetProps) => {\n const [layoutMode, setLayoutModeState] = useState<LayoutModeEnum>(() => {\n const saved = getLayoutStorage();\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n const mode = parsed.state?.layoutMode ?? parsed.layoutMode;\n return mode === LayoutModeEnum.SHOW || mode === LayoutModeEnum.HIDE ? mode : defaultLayoutMode;\n } catch {\n return defaultLayoutMode;\n }\n }\n return defaultLayoutMode;\n });\n\n useEffect(() => {\n const storage = {\n state: {\n sidebarOpen,\n layoutMode,\n },\n };\n setLayoutStorage(JSON.stringify(storage));\n }, [sidebarOpen, layoutMode]);\n\n const setLayoutMode = useCallback((mode: LayoutModeEnum) => {\n setLayoutModeState(mode);\n }, []);\n\n return {\n layoutMode,\n setLayoutMode,\n };\n};\n\nexport default useSet;\n","import { useCallback, useState } from \"react\";\n\nimport { getLayoutStorage } from \"../utils\";\n\nconst useAction = () => {\n const [sidebarOpen, setSidebarOpenState] = useState<boolean>(() => {\n const saved = getLayoutStorage();\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n return parsed.state?.sidebarOpen ?? parsed.sidebarOpen ?? false;\n } catch {\n return false;\n }\n }\n return false;\n });\n\n const setSidebarOpen = useCallback((open: boolean) => {\n setSidebarOpenState(open);\n }, []);\n\n const toggleSidebar = useCallback(() => {\n setSidebarOpenState((prev) => !prev);\n }, []);\n\n const closeSidebar = useCallback(() => {\n setSidebarOpenState(false);\n }, []);\n\n return {\n sidebarOpen,\n setSidebarOpen,\n toggleSidebar,\n closeSidebar,\n };\n};\n\nexport default useAction;\n","/**\n * 布局提供者:提供侧栏开关与显示/隐藏模式上下文。\n * Layout provider: provides sidebar state and show/hide layout mode context.\n */\nimport type { LayoutProviderProps } from \"../types\";\n\nimport { memo } from \"react\";\n\nimport useAction from \"../hooks/useAction\";\nimport { LayoutContext } from \"../hooks/useLayout\";\nimport useSet from \"../hooks/useSet\";\nimport { DEFAULT_LAYOUT_MODE } from \"../types\";\n\nconst LayoutProvider = memo(({ children, defaultLayoutMode = DEFAULT_LAYOUT_MODE }: LayoutProviderProps) => {\n const { sidebarOpen, setSidebarOpen, toggleSidebar, closeSidebar } = useAction();\n const { layoutMode, setLayoutMode } = useSet({ defaultLayoutMode, sidebarOpen });\n\n return (\n <LayoutContext.Provider\n value={{\n sidebarOpen,\n layoutMode,\n setSidebarOpen,\n toggleSidebar,\n closeSidebar,\n setLayoutMode,\n }}\n >\n {children}\n </LayoutContext.Provider>\n );\n});\n\nLayoutProvider.displayName = \"LayoutProvider\";\nexport default LayoutProvider;\n"],"mappings":"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"}
|