@mks2508/mks-ui 0.6.8 → 0.7.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/dist/css/blocks-Sidebar-animations-tooltip.css +330 -0
- package/dist/index.css +587 -357
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.d.ts +64 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.js +301 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.d.ts +94 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.js +216 -0
- package/dist/react-ui/blocks/BottomNavBar/index.d.ts +10 -0
- package/dist/react-ui/blocks/BottomNavBar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/index.js +4 -0
- package/dist/react-ui/blocks/BottomNavBar/types.d.ts +362 -0
- package/dist/react-ui/blocks/BottomNavBar/types.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/types.js +175 -0
- package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.d.ts +73 -0
- package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.js +178 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.constants.d.ts +285 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.constants.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.constants.js +208 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.d.ts +80 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.js +114 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.styles.d.ts +77 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.styles.js +274 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.types.d.ts +546 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.types.js +149 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContent.d.ts +46 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContent.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContent.js +86 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContext.d.ts +85 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContext.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContext.js +178 -0
- package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.d.ts +31 -0
- package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.js +37 -0
- package/dist/react-ui/blocks/Sidebar/SidebarIndicator.d.ts +59 -0
- package/dist/react-ui/blocks/Sidebar/SidebarIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarIndicator.js +106 -0
- package/dist/react-ui/blocks/Sidebar/SidebarItem.d.ts +82 -0
- package/dist/react-ui/blocks/Sidebar/SidebarItem.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarItem.js +209 -0
- package/dist/react-ui/blocks/Sidebar/SidebarNav.d.ts +48 -0
- package/dist/react-ui/blocks/Sidebar/SidebarNav.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarNav.js +317 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.d.ts +56 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.js +105 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubContent.d.ts +27 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubContent.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubContent.js +31 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubLink.d.ts +20 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubLink.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubLink.js +44 -0
- package/dist/react-ui/blocks/Sidebar/SidebarToggle.d.ts +52 -0
- package/dist/react-ui/blocks/Sidebar/SidebarToggle.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarToggle.js +119 -0
- package/dist/react-ui/blocks/Sidebar/SidebarTooltip.d.ts +15 -0
- package/dist/react-ui/blocks/Sidebar/SidebarTooltip.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarTooltip.js +177 -0
- package/dist/react-ui/blocks/Sidebar/animations/tooltip-keyframes.js +0 -0
- package/dist/react-ui/blocks/Sidebar/animations/tooltip.css +330 -0
- package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.d.ts +28 -0
- package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.js +74 -0
- package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.d.ts +18 -0
- package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.js +166 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.d.ts +48 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.js +59 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.d.ts +72 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.js +159 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.d.ts +51 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.js +150 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.d.ts +42 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.js +49 -0
- package/dist/react-ui/blocks/Sidebar/index.d.ts +163 -0
- package/dist/react-ui/blocks/Sidebar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/index.js +19 -0
- package/dist/react-ui/blocks/Terminal/Terminal.tokens.d.ts +219 -0
- package/dist/react-ui/blocks/Terminal/Terminal.tokens.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/Terminal.tokens.js +253 -0
- package/dist/react-ui/blocks/Terminal/Terminal.types.d.ts +2 -1
- package/dist/react-ui/blocks/Terminal/Terminal.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/TerminalDisplay.js +1 -1
- package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts +1 -1
- package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/chrome.js +2 -2
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts +15 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.js +14 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.types.d.ts +106 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.d.ts +89 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.js +136 -0
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.d.ts +21 -7
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.js +81 -71
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.d.ts +33 -0
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.js +51 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.js +8 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts +29 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.d.ts +26 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.js +40 -0
- package/dist/react-ui/blocks/Terminal/components/index.js +5 -2
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.js +13 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts +35 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.d.ts +75 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.js +115 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.d.ts +122 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.js +128 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.js +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts +29 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.d.ts +37 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.js +74 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.js +16 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.js +81 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.js +13 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts +28 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.js +108 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.js +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts +31 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.d.ts +73 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.js +99 -0
- package/dist/react-ui/blocks/Terminal/controls/index.d.ts +16 -0
- package/dist/react-ui/blocks/Terminal/controls/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/index.js +11 -0
- package/dist/react-ui/blocks/Terminal/display.d.ts +2 -2
- package/dist/react-ui/blocks/Terminal/display.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/display.js +4 -2
- package/dist/react-ui/blocks/Terminal/hooks/index.d.ts +9 -2
- package/dist/react-ui/blocks/Terminal/hooks/index.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/hooks/index.js +6 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminal.d.ts +198 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminal.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminal.js +198 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.d.ts +81 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.js +115 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.d.ts +54 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.js +57 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.d.ts +81 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.js +102 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.d.ts +78 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.js +136 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.d.ts +88 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.js +101 -0
- package/dist/react-ui/blocks/Terminal/index.d.ts +10 -6
- package/dist/react-ui/blocks/Terminal/index.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/index.js +43 -11
- package/dist/react-ui/blocks/Terminal/panel/LogLinesViewer.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/LogLinesViewer.js +8 -13
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.js +18 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalDebugPanel.d.ts → TerminalDebugPanel/TerminalDebugPanel.types.d.ts} +19 -27
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/index.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalDebugPanel.js → TerminalDebugPanel/index.js} +59 -38
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.js +17 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/index.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalFilterDropdown.js → TerminalFilterDropdown/index.js} +29 -31
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.css +60 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.js +5 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/index.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.js +5 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.d.ts +2 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.d.ts +6 -3
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.js +43 -264
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts +43 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.js +248 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts +4 -2
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.js +40 -150
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts +26 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.js +30 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts +123 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalLogsPanel.d.ts → TerminalLogsPanel/index.d.ts} +10 -21
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalLogsPanel.js → TerminalLogsPanel/index.js} +48 -81
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.d.ts +6 -142
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.js +16 -16
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.d.ts +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.js +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts +21 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.js +21 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.d.ts +37 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.js +127 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts +22 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.js +24 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts +43 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.d.ts +35 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.js +129 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts +20 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts +72 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalPanelToolbar.d.ts → TerminalPanelToolbar/index.d.ts} +10 -4
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalSessionControl.d.ts → TerminalSessionControl/TerminalSessionControl.types.d.ts} +24 -30
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/index.d.ts +38 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts +23 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.js +27 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts +56 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/index.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalSessionTabs.js → TerminalSessionTabs/index.js} +26 -31
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.css +60 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.js +5 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.js +19 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts +20 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts +25 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.js +217 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.js +15 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts +28 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.d.ts +30 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalThemeSelector.js → TerminalThemeSelector/index.js} +31 -46
- package/dist/react-ui/blocks/Terminal/restty/ResttyContext.d.ts +38 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyContext.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyContext.js +47 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.d.ts +50 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.js +60 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.js +278 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.types.d.ts +166 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/index.d.ts +20 -0
- package/dist/react-ui/blocks/Terminal/restty/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/index.js +7 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPane.d.ts +51 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPane.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPane.js +61 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.d.ts +39 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.js +48 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.d.ts +29 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.js +33 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.js +67 -0
- package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.d.ts +83 -0
- package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.js +191 -0
- package/dist/react-ui/blocks/index.d.ts +2 -0
- package/dist/react-ui/blocks/index.d.ts.map +1 -1
- package/dist/react-ui/components/MorphingPopover/morphing-popover.module.css +154 -0
- package/dist/react-ui/icons/lucide-animated/terminal.d.ts +45 -13
- package/dist/react-ui/icons/lucide-animated/terminal.d.ts.map +1 -1
- package/dist/react-ui/icons/lucide-animated/terminal.js +118 -28
- package/dist/react-ui/index.d.ts +4 -0
- package/dist/react-ui/index.d.ts.map +1 -1
- package/dist/react-ui/index.js +40 -1
- package/dist/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module.css +20 -0
- package/dist/react-ui/ui/Button/Button.styles.d.ts +2 -2
- package/dist/react-ui/ui/Button/Button.styles.d.ts.map +1 -1
- package/dist/react-ui/ui/Button/Button.styles.js +4 -2
- package/dist/react-ui/ui/Button/Button.types.d.ts +2 -2
- package/dist/react-ui/ui/Button/Button.types.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +369 -0
- package/dist/react-ui/ui/Tabs/Tabs.css +38 -0
- package/package.json +20 -7
- package/dist/react-ui/blocks/Terminal/ResttyAdapter.d.ts +0 -146
- package/dist/react-ui/blocks/Terminal/ResttyAdapter.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/ResttyAdapter.js +0 -213
- package/dist/react-ui/blocks/Terminal/Terminal.adapter.d.ts +0 -55
- package/dist/react-ui/blocks/Terminal/Terminal.adapter.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/Terminal.adapter.js +0 -68
- package/dist/react-ui/blocks/Terminal/TerminalRestty.d.ts +0 -111
- package/dist/react-ui/blocks/Terminal/TerminalRestty.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/TerminalRestty.js +0 -185
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges.d.ts +0 -160
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges.js +0 -185
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.d.ts +0 -36
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.js +0 -52
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.d.ts +0 -42
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs.d.ts +0 -43
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.d.ts +0 -30
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.js +0 -126
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.d.ts +0 -31
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.js +0 -149
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs.d.ts +0 -63
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.d.ts +0 -24
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.js +0 -225
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector.d.ts +0 -35
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.js +0 -5
- package/dist/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.js +0 -5
- /package/dist/{react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module-p4Aks9qK.css → css/blocks-Terminal-panel-TerminalFilterDropdown-terminal-filter-dropdown.module.css} +0 -0
- /package/dist/{react-ui/blocks/Terminal/panel/terminal-session-tabs.module-D7g8zk0W.css → css/blocks-Terminal-panel-TerminalSessionTabs-terminal-session-tabs.module.css} +0 -0
- /package/dist/{react-ui/components/MorphingPopover/morphing-popover.module-s63snw7C.css → css/components-MorphingPopover-morphing-popover.module.css} +0 -0
- /package/dist/{react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module-7y-To7On.css → css/primitives-waapi-Morph-techniques-useViewTransitions.module.css} +0 -0
- /package/dist/{react-ui/ui/DynamicToggle/DynamicToggle-C3rJw_PQ.css → css/ui-DynamicToggle-DynamicToggle.css} +0 -0
- /package/dist/{react-ui/ui/Tabs/Tabs-DKe-TP8j.css → css/ui-Tabs-Tabs.css} +0 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/react-ui/blocks/BottomNavBar/useIOSSafariFix.ts
|
|
6
|
+
/**
|
|
7
|
+
* @fileoverview iOS Safari detection and fix hooks
|
|
8
|
+
* @description Handles iOS Safari viewport bugs with fixed positioning
|
|
9
|
+
* @module MobileBottomNav/useIOSSafariFix
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
*
|
|
12
|
+
* Known iOS Safari Bugs:
|
|
13
|
+
* - Fixed elements shift when address bar shrinks/expands
|
|
14
|
+
* - visualViewport.offsetTop doesn't reset after keyboard dismissal
|
|
15
|
+
* - 100dvh creates gaps at bottom for overlays
|
|
16
|
+
* - position: fixed breaks after keyboard interaction
|
|
17
|
+
*
|
|
18
|
+
* This hook provides workarounds for these issues.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Detects iOS version and Safari browser
|
|
22
|
+
* @returns {IOSVersion} iOS detection result
|
|
23
|
+
*/
|
|
24
|
+
function detectIOSVersion() {
|
|
25
|
+
if (typeof window === "undefined" || typeof navigator === "undefined") return {
|
|
26
|
+
isIOS: false,
|
|
27
|
+
isSafari: false,
|
|
28
|
+
majorVersion: null,
|
|
29
|
+
minorVersion: null,
|
|
30
|
+
hasViewportBugs: false
|
|
31
|
+
};
|
|
32
|
+
const ua = navigator.userAgent;
|
|
33
|
+
const isIOS = /iPad|iPhone|iPod/.test(ua) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
|
|
34
|
+
const isSafari = /Safari/.test(ua) && !/Chrome|CriOS|FxiOS|EdgiOS/.test(ua);
|
|
35
|
+
let majorVersion = null;
|
|
36
|
+
let minorVersion = null;
|
|
37
|
+
const versionMatch = ua.match(/OS (\d+)_(\d+)/);
|
|
38
|
+
if (versionMatch) {
|
|
39
|
+
majorVersion = Number.parseInt(versionMatch[1], 10);
|
|
40
|
+
minorVersion = Number.parseInt(versionMatch[2], 10);
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
isIOS,
|
|
44
|
+
isSafari,
|
|
45
|
+
majorVersion,
|
|
46
|
+
minorVersion,
|
|
47
|
+
hasViewportBugs: isIOS && majorVersion !== null && majorVersion >= 18
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Hook to apply iOS Safari viewport bug fixes
|
|
52
|
+
*
|
|
53
|
+
* @param {IOSSafariFixConfig} config - Configuration options
|
|
54
|
+
* @returns {{ isKeyboardVisible: boolean; iosInfo: IOSVersion }} Hook state
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```tsx
|
|
58
|
+
* const { isKeyboardVisible, iosInfo } = useIOSSafariFix({
|
|
59
|
+
* enableScrollFix: true,
|
|
60
|
+
* enableKeyboardFix: true,
|
|
61
|
+
* onKeyboardVisibilityChange: (visible) => console.log('Keyboard:', visible)
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
function useIOSSafariFix(config = {}) {
|
|
66
|
+
const { enableScrollFix = true, enableKeyboardFix = true, onKeyboardVisibilityChange, debug = false } = config;
|
|
67
|
+
const iosInfoRef = useRef(detectIOSVersion());
|
|
68
|
+
const isKeyboardVisibleRef = useRef(false);
|
|
69
|
+
const initialViewportHeightRef = useRef(null);
|
|
70
|
+
const log = useCallback((message, ...args) => {
|
|
71
|
+
if (debug) console.log(`[iOS Safari Fix] ${message}`, ...args);
|
|
72
|
+
}, [debug]);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
const iosInfo = iosInfoRef.current;
|
|
75
|
+
if (!iosInfo.hasViewportBugs || !enableScrollFix) return;
|
|
76
|
+
log("Applying iOS Safari scroll fix");
|
|
77
|
+
document.documentElement.classList.add("ios-safari-fix");
|
|
78
|
+
if (iosInfo.majorVersion !== null && iosInfo.majorVersion >= 18) document.documentElement.classList.add("ios-26-fix");
|
|
79
|
+
return () => {
|
|
80
|
+
document.documentElement.classList.remove("ios-safari-fix", "ios-26-fix");
|
|
81
|
+
};
|
|
82
|
+
}, [enableScrollFix, log]);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
const iosInfo = iosInfoRef.current;
|
|
85
|
+
if (!iosInfo.isIOS || !enableKeyboardFix) return;
|
|
86
|
+
if (typeof window !== "undefined" && window.visualViewport) initialViewportHeightRef.current = window.visualViewport.height;
|
|
87
|
+
const handleViewportResize = () => {
|
|
88
|
+
if (!window.visualViewport || initialViewportHeightRef.current === null) return;
|
|
89
|
+
const currentHeight = window.visualViewport.height;
|
|
90
|
+
const keyboardVisible = initialViewportHeightRef.current - currentHeight > 150;
|
|
91
|
+
if (keyboardVisible !== isKeyboardVisibleRef.current) {
|
|
92
|
+
isKeyboardVisibleRef.current = keyboardVisible;
|
|
93
|
+
log("Keyboard visibility changed:", keyboardVisible);
|
|
94
|
+
if (keyboardVisible) {
|
|
95
|
+
document.documentElement.classList.add("keyboard-visible");
|
|
96
|
+
document.documentElement.classList.remove("keyboard-dismissed");
|
|
97
|
+
} else {
|
|
98
|
+
document.documentElement.classList.remove("keyboard-visible");
|
|
99
|
+
document.documentElement.classList.add("keyboard-dismissed");
|
|
100
|
+
setTimeout(() => {
|
|
101
|
+
document.documentElement.classList.remove("keyboard-dismissed");
|
|
102
|
+
}, 100);
|
|
103
|
+
if (iosInfo.hasViewportBugs) requestAnimationFrame(() => {
|
|
104
|
+
document.body.style.display = "none";
|
|
105
|
+
document.body.offsetHeight;
|
|
106
|
+
document.body.style.display = "";
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
onKeyboardVisibilityChange?.(keyboardVisible);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const handleFocusIn = (e) => {
|
|
113
|
+
const target = e.target;
|
|
114
|
+
if (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.isContentEditable) log("Input focused, preparing for keyboard");
|
|
115
|
+
};
|
|
116
|
+
const handleFocusOut = () => {
|
|
117
|
+
setTimeout(() => {
|
|
118
|
+
if (window.visualViewport && initialViewportHeightRef.current) {
|
|
119
|
+
if (initialViewportHeightRef.current - window.visualViewport.height < 50) {
|
|
120
|
+
if (iosInfoRef.current.hasViewportBugs) {
|
|
121
|
+
log("Focus out detected, applying iOS fix");
|
|
122
|
+
document.documentElement.classList.add("keyboard-dismissed");
|
|
123
|
+
setTimeout(() => {
|
|
124
|
+
document.documentElement.classList.remove("keyboard-dismissed");
|
|
125
|
+
}, 100);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}, 100);
|
|
130
|
+
};
|
|
131
|
+
window.visualViewport?.addEventListener("resize", handleViewportResize);
|
|
132
|
+
document.addEventListener("focusin", handleFocusIn);
|
|
133
|
+
document.addEventListener("focusout", handleFocusOut);
|
|
134
|
+
return () => {
|
|
135
|
+
window.visualViewport?.removeEventListener("resize", handleViewportResize);
|
|
136
|
+
document.removeEventListener("focusin", handleFocusIn);
|
|
137
|
+
document.removeEventListener("focusout", handleFocusOut);
|
|
138
|
+
document.documentElement.classList.remove("keyboard-visible", "keyboard-dismissed");
|
|
139
|
+
};
|
|
140
|
+
}, [
|
|
141
|
+
enableKeyboardFix,
|
|
142
|
+
onKeyboardVisibilityChange,
|
|
143
|
+
log
|
|
144
|
+
]);
|
|
145
|
+
return {
|
|
146
|
+
isKeyboardVisible: isKeyboardVisibleRef.current,
|
|
147
|
+
iosInfo: iosInfoRef.current
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Hook to force reset fixed element positioning after iOS viewport bugs
|
|
152
|
+
*
|
|
153
|
+
* @param {React.RefObject<HTMLElement>} elementRef - Ref to the fixed element
|
|
154
|
+
* @returns {{ forceReset: () => void }} Reset function
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```tsx
|
|
158
|
+
* const navRef = useRef<HTMLElement>(null);
|
|
159
|
+
* const { forceReset } = useIOSFixedReset(navRef);
|
|
160
|
+
*
|
|
161
|
+
* // Call forceReset() after keyboard dismissal or scroll issues
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
function useIOSFixedReset(elementRef) {
|
|
165
|
+
return { forceReset: useCallback(() => {
|
|
166
|
+
const element = elementRef.current;
|
|
167
|
+
if (!element) return;
|
|
168
|
+
element.style.transform = "translateZ(0) translateY(0.01px)";
|
|
169
|
+
requestAnimationFrame(() => {
|
|
170
|
+
requestAnimationFrame(() => {
|
|
171
|
+
if (element) element.style.transform = "translateZ(0)";
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}, [elementRef]) };
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
//#endregion
|
|
178
|
+
export { useIOSSafariFix as default, detectIOSVersion, useIOSFixedReset };
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { type SidebarDimensions, type SidebarSafeAreas, type SidebarAnimations, type SidebarConfig } from "./Sidebar.types";
|
|
2
|
+
/**
|
|
3
|
+
* Dimensiones por defecto del sidebar
|
|
4
|
+
* @constant
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_DIMENSIONS: SidebarDimensions;
|
|
7
|
+
/**
|
|
8
|
+
* Áreas seguras por defecto
|
|
9
|
+
* @constant
|
|
10
|
+
*/
|
|
11
|
+
export declare const DEFAULT_SAFE_AREAS: SidebarSafeAreas;
|
|
12
|
+
/**
|
|
13
|
+
* Animaciones por defecto
|
|
14
|
+
* @constant
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_ANIMATIONS: SidebarAnimations;
|
|
17
|
+
/**
|
|
18
|
+
* Configuración por defecto del sidebar
|
|
19
|
+
* @constant
|
|
20
|
+
*
|
|
21
|
+
* @description
|
|
22
|
+
* Los colores se obtienen automáticamente de los tokens CSS de mks-ui:
|
|
23
|
+
* - --sidebar: Color de fondo
|
|
24
|
+
* - --sidebar-foreground: Color de texto
|
|
25
|
+
* - --sidebar-primary: Color primario (indicador)
|
|
26
|
+
* - --sidebar-accent: Color de hover
|
|
27
|
+
* - --sidebar-border: Color de bordes
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_CONFIG: SidebarConfig;
|
|
30
|
+
/**
|
|
31
|
+
* Teclas de navegación del sidebar
|
|
32
|
+
* @constant
|
|
33
|
+
*/
|
|
34
|
+
export declare const SIDEBAR_KEYBOARD_KEYS: {
|
|
35
|
+
/** Flecha abajo - navegar al siguiente item */
|
|
36
|
+
readonly ARROW_DOWN: "ArrowDown";
|
|
37
|
+
/** Flecha arriba - navegar al item anterior */
|
|
38
|
+
readonly ARROW_UP: "ArrowUp";
|
|
39
|
+
/** Home - ir al primer item */
|
|
40
|
+
readonly HOME: "Home";
|
|
41
|
+
/** End - ir al último item */
|
|
42
|
+
readonly END: "End";
|
|
43
|
+
/** Tab - navegación estándar */
|
|
44
|
+
readonly TAB: "Tab";
|
|
45
|
+
/** Escape - cerrar sidebar o quitar focus */
|
|
46
|
+
readonly ESCAPE: "Escape";
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Tipo derivado de las teclas del teclado
|
|
50
|
+
*/
|
|
51
|
+
export type SidebarKeyboardKey = (typeof SIDEBAR_KEYBOARD_KEYS)[keyof typeof SIDEBAR_KEYBOARD_KEYS];
|
|
52
|
+
/**
|
|
53
|
+
* Timing functions perfectas para animaciones suaves
|
|
54
|
+
* @constant
|
|
55
|
+
*/
|
|
56
|
+
export declare const SIDEBAR_TIMING_FUNCTIONS: {
|
|
57
|
+
/** Ease-out perfecto para elevación de iconos */
|
|
58
|
+
readonly EASE_OUT_PERFECT: "cubic-bezier(0.4, 0, 0.2, 1)";
|
|
59
|
+
/** Ease-in-out suave */
|
|
60
|
+
readonly EASE_IN_OUT_SMOOTH: "cubic-bezier(0.45, 0, 0.55, 1)";
|
|
61
|
+
/** Spring suave */
|
|
62
|
+
readonly SPRING_SOFT: "cubic-bezier(0.34, 1.56, 0.64, 1)";
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Atributos data-* para styling CSS y selección de elementos
|
|
66
|
+
* @constant
|
|
67
|
+
*/
|
|
68
|
+
export declare const SIDEBAR_DATA_ATTRIBUTES: {
|
|
69
|
+
/** data-open - indica si el sidebar está abierto */
|
|
70
|
+
readonly OPEN: "data-open";
|
|
71
|
+
/** data-collapsed - indica si el sidebar está colapsado */
|
|
72
|
+
readonly COLLAPSED: "data-collapsed";
|
|
73
|
+
/** data-focused - indica si un elemento está enfocado */
|
|
74
|
+
readonly FOCUSED: "data-focused";
|
|
75
|
+
/** data-hovered - indica si el mouse está sobre un elemento */
|
|
76
|
+
readonly HOVERED: "data-hovered";
|
|
77
|
+
/** data-disabled - indica si un elemento está deshabilitado */
|
|
78
|
+
readonly DISABLED: "data-disabled";
|
|
79
|
+
/** data-sidebar-item - marca un item del sidebar para navegación */
|
|
80
|
+
readonly ITEM: "data-sidebar-item";
|
|
81
|
+
/** data-active - indica si un toggle/botón está activo */
|
|
82
|
+
readonly ACTIVE: "data-active";
|
|
83
|
+
/** data-visible - indica si un elemento es visible */
|
|
84
|
+
readonly VISIBLE: "data-visible";
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Clases Tailwind reutilizables para componentes del sidebar
|
|
88
|
+
* @constant
|
|
89
|
+
*/
|
|
90
|
+
export declare const SIDEBAR_TAILWIND_CLASSES: {
|
|
91
|
+
/** Clases base para el wrapper */
|
|
92
|
+
readonly wrapper: "relative";
|
|
93
|
+
/** Clases base para el nav */
|
|
94
|
+
readonly nav: "relative h-screen border-r";
|
|
95
|
+
/** Clases base para el indicador */
|
|
96
|
+
readonly indicator: "absolute left-0 rounded-r-full pointer-events-none";
|
|
97
|
+
/** Clases base para el botón toggle */
|
|
98
|
+
readonly toggleButton: "block w-6 h-6 rounded-full cursor-pointer flex items-center justify-center transition-colors";
|
|
99
|
+
/** Clases para el wrapper del botón toggle */
|
|
100
|
+
readonly toggleButtonWrapper: "absolute top-6 z-30";
|
|
101
|
+
/** Clases base para el contenedor de items */
|
|
102
|
+
readonly content: "flex flex-col items-center";
|
|
103
|
+
/** Clases base para áreas seguras */
|
|
104
|
+
readonly safeArea: "flex items-center justify-center";
|
|
105
|
+
/** Clases de borde debug */
|
|
106
|
+
readonly debugBorder: "border-dashed";
|
|
107
|
+
/** Clases de focus ring (accesibilidad) */
|
|
108
|
+
readonly focusRing: "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2";
|
|
109
|
+
/** Clases SR-only (screen reader only) */
|
|
110
|
+
readonly srOnly: "sr-only";
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Tipo derivado de las clases Tailwind
|
|
114
|
+
*/
|
|
115
|
+
export type SidebarTailwindClass = (typeof SIDEBAR_TAILWIND_CLASSES)[keyof typeof SIDEBAR_TAILWIND_CLASSES];
|
|
116
|
+
/**
|
|
117
|
+
* Patrones visuales para modo debug
|
|
118
|
+
* @constant
|
|
119
|
+
*/
|
|
120
|
+
export declare const SIDEBAR_DEBUG_PATTERNS: {
|
|
121
|
+
/** Patrón de rayas para áreas seguras */
|
|
122
|
+
readonly safeArea: "repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.03) 10px, rgba(255,255,255,0.03) 20px)";
|
|
123
|
+
/** Fondo semi-transparente para área de contenido */
|
|
124
|
+
readonly contentArea: "rgba(0, 0, 0, 0.5)";
|
|
125
|
+
/** Color de borde para debug */
|
|
126
|
+
readonly borderColor: "rgb(34 197 94)";
|
|
127
|
+
/** Opacidad de borde debug */
|
|
128
|
+
readonly borderOpacity: "0.3";
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Roles ARIA para accesibilidad
|
|
132
|
+
* @constant
|
|
133
|
+
*/
|
|
134
|
+
export declare const SIDEBAR_ARIA_ROLES: {
|
|
135
|
+
/** Rol para el nav principal */
|
|
136
|
+
readonly navigation: "navigation";
|
|
137
|
+
/** Rol para lista de items */
|
|
138
|
+
readonly list: "list";
|
|
139
|
+
/** Rol para item individual */
|
|
140
|
+
readonly listitem: "listitem";
|
|
141
|
+
/** Rol para botón toggle */
|
|
142
|
+
readonly button: "button";
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Labels ARIA por defecto para accesibilidad
|
|
146
|
+
* @constant
|
|
147
|
+
*/
|
|
148
|
+
export declare const SIDEBAR_ARIA_LABELS: {
|
|
149
|
+
/** Label para toggle */
|
|
150
|
+
readonly toggleSidebar: "Alternar sidebar";
|
|
151
|
+
/** Label para navegación principal */
|
|
152
|
+
readonly mainNavigation: "Navegación principal";
|
|
153
|
+
/** Label cuando sidebar está abierto */
|
|
154
|
+
readonly sidebarOpen: "Sidebar abierto";
|
|
155
|
+
/** Label cuando sidebar está cerrado */
|
|
156
|
+
readonly sidebarClosed: "Sidebar cerrado";
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Configuración de estilo visual por defecto del sidebar
|
|
160
|
+
* @constant
|
|
161
|
+
*/
|
|
162
|
+
export declare const DEFAULT_VISUAL_STYLE: {
|
|
163
|
+
readonly marginTop: "0";
|
|
164
|
+
readonly marginBottom: "0";
|
|
165
|
+
readonly marginLeft: "0";
|
|
166
|
+
readonly marginRight: "0";
|
|
167
|
+
readonly height: "100vh";
|
|
168
|
+
readonly borderRadius: "0";
|
|
169
|
+
readonly boxShadow: "none";
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Preconfiguraciones de estilo visual para el sidebar
|
|
173
|
+
* @constant
|
|
174
|
+
*/
|
|
175
|
+
export declare const SIDEBAR_VISUAL_PRESETS: {
|
|
176
|
+
/** Estilo por defecto: pegado a bordes */
|
|
177
|
+
readonly DEFAULT: {
|
|
178
|
+
readonly marginTop: "0";
|
|
179
|
+
readonly marginBottom: "0";
|
|
180
|
+
readonly marginLeft: "0";
|
|
181
|
+
readonly marginRight: "0";
|
|
182
|
+
readonly height: "100vh";
|
|
183
|
+
readonly borderRadius: "0";
|
|
184
|
+
readonly boxShadow: "none";
|
|
185
|
+
};
|
|
186
|
+
/** Estilo floating: separado y con sombra */
|
|
187
|
+
readonly FLOATING_CARD: {
|
|
188
|
+
readonly marginTop: "1rem";
|
|
189
|
+
readonly marginBottom: "1rem";
|
|
190
|
+
readonly marginLeft: "1rem";
|
|
191
|
+
readonly marginRight: "0";
|
|
192
|
+
readonly height: "calc(100vh - 2rem)";
|
|
193
|
+
readonly borderRadius: "0.75rem";
|
|
194
|
+
readonly boxShadow: "0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)";
|
|
195
|
+
};
|
|
196
|
+
/** Estilo moderno: esquinas redondeadas suaves */
|
|
197
|
+
readonly MODERN_ROUNDED: {
|
|
198
|
+
readonly marginTop: "0.5rem";
|
|
199
|
+
readonly marginBottom: "0.5rem";
|
|
200
|
+
readonly marginLeft: "0.5rem";
|
|
201
|
+
readonly marginRight: "0";
|
|
202
|
+
readonly height: "calc(100vh - 1rem)";
|
|
203
|
+
readonly borderRadius: "1rem";
|
|
204
|
+
readonly boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";
|
|
205
|
+
};
|
|
206
|
+
/** Estilo minimal: ligera separación */
|
|
207
|
+
readonly MINIMAL_SPACED: {
|
|
208
|
+
readonly marginTop: "0.25rem";
|
|
209
|
+
readonly marginBottom: "0.25rem";
|
|
210
|
+
readonly marginLeft: "0.25rem";
|
|
211
|
+
readonly marginRight: "0";
|
|
212
|
+
readonly height: "calc(100vh - 0.5rem)";
|
|
213
|
+
readonly borderRadius: "0.5rem";
|
|
214
|
+
readonly boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)";
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Tipo para los presets de estilo visual
|
|
219
|
+
*/
|
|
220
|
+
export type SidebarVisualPreset = keyof typeof SIDEBAR_VISUAL_PRESETS;
|
|
221
|
+
/**
|
|
222
|
+
* Breakpoints para responsive behavior
|
|
223
|
+
* @constant
|
|
224
|
+
*/
|
|
225
|
+
export declare const SIDEBAR_BREAKPOINTS: {
|
|
226
|
+
/** Ancho mínimo para mostrar sidebar expandido */
|
|
227
|
+
readonly minExpandedWidth: 768;
|
|
228
|
+
/** Ancho mínimo para sidebar colapsado */
|
|
229
|
+
readonly minCollapsedWidth: 640;
|
|
230
|
+
/** Ancho para forzar modo mobile */
|
|
231
|
+
readonly mobileWidth: 480;
|
|
232
|
+
};
|
|
233
|
+
/**
|
|
234
|
+
* Límites y valores seguros para validación
|
|
235
|
+
* @constant
|
|
236
|
+
*/
|
|
237
|
+
export declare const SIDEBAR_LIMITS: {
|
|
238
|
+
/** Porcentaje mínimo para safe area */
|
|
239
|
+
readonly minSafeAreaPercent: 0;
|
|
240
|
+
/** Porcentaje máximo para safe area */
|
|
241
|
+
readonly maxSafeAreaPercent: 50;
|
|
242
|
+
/** Número máximo de items recomendado */
|
|
243
|
+
readonly maxRecommendedItems: 20;
|
|
244
|
+
/** Duración mínima de transición (ms) */
|
|
245
|
+
readonly minTransitionDuration: 0;
|
|
246
|
+
/** Duración máxima de transición (ms) */
|
|
247
|
+
readonly maxTransitionDuration: 1000;
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Nombres de CSS variables utilizadas
|
|
251
|
+
* @constant
|
|
252
|
+
*/
|
|
253
|
+
export declare const SIDEBAR_CSS_VARIABLES: {
|
|
254
|
+
/** Ancho cuando cerrado */
|
|
255
|
+
readonly widthClosed: "--sidebar-width-closed";
|
|
256
|
+
/** Ancho cuando abierto */
|
|
257
|
+
readonly widthOpen: "--sidebar-width-open";
|
|
258
|
+
/** Ancho actual */
|
|
259
|
+
readonly width: "--sidebar-width";
|
|
260
|
+
/** Color de fondo */
|
|
261
|
+
readonly background: "--sidebar-bg";
|
|
262
|
+
/** Color de borde (variable interna para evitar colisión con --sidebar-border de shadcn) */
|
|
263
|
+
readonly borderColor: "--sidebar-border-color";
|
|
264
|
+
/** Color de hover */
|
|
265
|
+
readonly hover: "--sidebar-hover";
|
|
266
|
+
/** Color del indicador */
|
|
267
|
+
readonly indicator: "--sidebar-indicator";
|
|
268
|
+
/** Altura del indicador */
|
|
269
|
+
readonly indicatorHeight: "--sidebar-indicator-height";
|
|
270
|
+
/** Distancia del tooltip al sidebar */
|
|
271
|
+
readonly tooltipDistance: "--sidebar-tooltip-distance";
|
|
272
|
+
/** Comportamiento de layout */
|
|
273
|
+
readonly layoutBehaviour: "--sidebar-layout-behaviour";
|
|
274
|
+
/** Flag para modo inline */
|
|
275
|
+
readonly isInline: "--sidebar-is-inline";
|
|
276
|
+
/** Variables de estilo visual */
|
|
277
|
+
readonly marginTop: "--sidebar-margin-top";
|
|
278
|
+
readonly marginBottom: "--sidebar-margin-bottom";
|
|
279
|
+
readonly marginLeft: "--sidebar-margin-left";
|
|
280
|
+
readonly marginRight: "--sidebar-margin-right";
|
|
281
|
+
readonly sidebarHeight: "--sidebar-height";
|
|
282
|
+
readonly sidebarBorderRadius: "--sidebar-border-radius";
|
|
283
|
+
readonly sidebarBoxShadow: "--sidebar-box-shadow";
|
|
284
|
+
};
|
|
285
|
+
//# sourceMappingURL=Sidebar.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.constants.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/blocks/Sidebar/Sidebar.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAA;AAMxB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAKhC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAGhC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAIhC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,EAAE,aAW5B,CAAA;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB;IAChC,+CAA+C;;IAE/C,+CAA+C;;IAE/C,+BAA+B;;IAE/B,8BAA8B;;IAE9B,gCAAgC;;IAEhC,6CAA6C;;CAErC,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAA;AAMnG;;;GAGG;AACH,eAAO,MAAM,wBAAwB;IACnC,iDAAiD;;IAEjD,wBAAwB;;IAExB,mBAAmB;;CAEX,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IAClC,oDAAoD;;IAEpD,2DAA2D;;IAE3D,yDAAyD;;IAEzD,+DAA+D;;IAE/D,+DAA+D;;IAE/D,oEAAoE;;IAEpE,0DAA0D;;IAE1D,sDAAsD;;CAE9C,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,wBAAwB;IACnC,kCAAkC;;IAGlC,8BAA8B;;IAG9B,oCAAoC;;IAGpC,uCAAuC;;IAIvC,8CAA8C;;IAG9C,8CAA8C;;IAG9C,qCAAqC;;IAGrC,4BAA4B;;IAG5B,2CAA2C;;IAI3C,0CAA0C;;CAElC,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAA;AAM1E;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IACjC,yCAAyC;;IAIzC,qDAAqD;;IAGrD,gCAAgC;;IAGhC,8BAA8B;;CAEtB,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,kBAAkB;IAC7B,gCAAgC;;IAGhC,8BAA8B;;IAG9B,+BAA+B;;IAG/B,4BAA4B;;CAEpB,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,wBAAwB;;IAGxB,sCAAsC;;IAGtC,wCAAwC;;IAGxC,wCAAwC;;CAEhC,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;CAQvB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IACjC,0CAA0C;;;;;;;;;;IAW1C,6CAA6C;;;;;;;;;;IAY7C,kDAAkD;;;;;;;;;;IAYlD,wCAAwC;;;;;;;;;;CAWhC,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AAMrE;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,kDAAkD;;IAGlD,0CAA0C;;IAG1C,oCAAoC;;CAE5B,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,uCAAuC;;IAGvC,uCAAuC;;IAGvC,yCAAyC;;IAGzC,yCAAyC;;IAGzC,yCAAyC;;CAEjC,CAAA;AAMV;;;GAGG;AACH,eAAO,MAAM,qBAAqB;IAChC,2BAA2B;;IAG3B,2BAA2B;;IAG3B,mBAAmB;;IAGnB,qBAAqB;;IAGrB,4FAA4F;;IAG5F,qBAAqB;;IAGrB,0BAA0B;;IAG1B,2BAA2B;;IAG3B,uCAAuC;;IAGvC,+BAA+B;;IAG/B,4BAA4B;;IAG5B,iCAAiC;;;;;;;;CAQzB,CAAA"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { SidebarCollapseMode, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarLayoutBehaviour, SidebarTimingFunction, SidebarTransitionDuration, SidebarWidth } from "./Sidebar.types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/react-ui/blocks/Sidebar/Sidebar.constants.ts
|
|
4
|
+
/**
|
|
5
|
+
* Dimensiones por defecto del sidebar
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
8
|
+
const DEFAULT_DIMENSIONS = {
|
|
9
|
+
collapsedWidth: SidebarWidth.COLLAPSED,
|
|
10
|
+
expandedWidth: SidebarWidth.EXPANDED,
|
|
11
|
+
indicatorHeight: "3rem",
|
|
12
|
+
tooltipDistance: "1rem"
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Áreas seguras por defecto
|
|
16
|
+
* @constant
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_SAFE_AREAS = {
|
|
19
|
+
topPercent: 15,
|
|
20
|
+
bottomPercent: 25
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Animaciones por defecto
|
|
24
|
+
* @constant
|
|
25
|
+
*/
|
|
26
|
+
const DEFAULT_ANIMATIONS = {
|
|
27
|
+
widthTransitionDuration: SidebarTransitionDuration.NORMAL,
|
|
28
|
+
opacityTransitionDuration: SidebarTransitionDuration.FAST,
|
|
29
|
+
timingFunction: SidebarTimingFunction.CUSTOM
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Configuración por defecto del sidebar
|
|
33
|
+
* @constant
|
|
34
|
+
*
|
|
35
|
+
* @description
|
|
36
|
+
* Los colores se obtienen automáticamente de los tokens CSS de mks-ui:
|
|
37
|
+
* - --sidebar: Color de fondo
|
|
38
|
+
* - --sidebar-foreground: Color de texto
|
|
39
|
+
* - --sidebar-primary: Color primario (indicador)
|
|
40
|
+
* - --sidebar-accent: Color de hover
|
|
41
|
+
* - --sidebar-border: Color de bordes
|
|
42
|
+
*/
|
|
43
|
+
const DEFAULT_CONFIG = {
|
|
44
|
+
defaultOpen: true,
|
|
45
|
+
collapseMode: SidebarCollapseMode.HIDE,
|
|
46
|
+
hideBehaviour: SidebarHideBehaviour.SHOW_INDICATOR,
|
|
47
|
+
hideOpensBehavior: SidebarHideOpensBehavior.COLLAPSED,
|
|
48
|
+
layoutBehaviour: SidebarLayoutBehaviour.FLOATING,
|
|
49
|
+
dimensions: DEFAULT_DIMENSIONS,
|
|
50
|
+
safeAreas: DEFAULT_SAFE_AREAS,
|
|
51
|
+
animations: DEFAULT_ANIMATIONS,
|
|
52
|
+
toggleId: "sidebar-toggle",
|
|
53
|
+
debug: false
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Teclas de navegación del sidebar
|
|
57
|
+
* @constant
|
|
58
|
+
*/
|
|
59
|
+
const SIDEBAR_KEYBOARD_KEYS = {
|
|
60
|
+
ARROW_DOWN: "ArrowDown",
|
|
61
|
+
ARROW_UP: "ArrowUp",
|
|
62
|
+
HOME: "Home",
|
|
63
|
+
END: "End",
|
|
64
|
+
TAB: "Tab",
|
|
65
|
+
ESCAPE: "Escape"
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Atributos data-* para styling CSS y selección de elementos
|
|
69
|
+
* @constant
|
|
70
|
+
*/
|
|
71
|
+
const SIDEBAR_DATA_ATTRIBUTES = {
|
|
72
|
+
OPEN: "data-open",
|
|
73
|
+
COLLAPSED: "data-collapsed",
|
|
74
|
+
FOCUSED: "data-focused",
|
|
75
|
+
HOVERED: "data-hovered",
|
|
76
|
+
DISABLED: "data-disabled",
|
|
77
|
+
ITEM: "data-sidebar-item",
|
|
78
|
+
ACTIVE: "data-active",
|
|
79
|
+
VISIBLE: "data-visible"
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Clases Tailwind reutilizables para componentes del sidebar
|
|
83
|
+
* @constant
|
|
84
|
+
*/
|
|
85
|
+
const SIDEBAR_TAILWIND_CLASSES = {
|
|
86
|
+
wrapper: "relative",
|
|
87
|
+
nav: "relative h-screen border-r",
|
|
88
|
+
indicator: "absolute left-0 rounded-r-full pointer-events-none",
|
|
89
|
+
toggleButton: "block w-6 h-6 rounded-full cursor-pointer flex items-center justify-center transition-colors",
|
|
90
|
+
toggleButtonWrapper: "absolute top-6 z-30",
|
|
91
|
+
content: "flex flex-col items-center",
|
|
92
|
+
safeArea: "flex items-center justify-center",
|
|
93
|
+
debugBorder: "border-dashed",
|
|
94
|
+
focusRing: "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
|
|
95
|
+
srOnly: "sr-only"
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Patrones visuales para modo debug
|
|
99
|
+
* @constant
|
|
100
|
+
*/
|
|
101
|
+
const SIDEBAR_DEBUG_PATTERNS = {
|
|
102
|
+
safeArea: "repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.03) 10px, rgba(255,255,255,0.03) 20px)",
|
|
103
|
+
contentArea: "rgba(0, 0, 0, 0.5)",
|
|
104
|
+
borderColor: "rgb(34 197 94)",
|
|
105
|
+
borderOpacity: "0.3"
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Roles ARIA para accesibilidad
|
|
109
|
+
* @constant
|
|
110
|
+
*/
|
|
111
|
+
const SIDEBAR_ARIA_ROLES = {
|
|
112
|
+
navigation: "navigation",
|
|
113
|
+
list: "list",
|
|
114
|
+
listitem: "listitem",
|
|
115
|
+
button: "button"
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Labels ARIA por defecto para accesibilidad
|
|
119
|
+
* @constant
|
|
120
|
+
*/
|
|
121
|
+
const SIDEBAR_ARIA_LABELS = {
|
|
122
|
+
toggleSidebar: "Alternar sidebar",
|
|
123
|
+
mainNavigation: "Navegación principal",
|
|
124
|
+
sidebarOpen: "Sidebar abierto",
|
|
125
|
+
sidebarClosed: "Sidebar cerrado"
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Configuración de estilo visual por defecto del sidebar
|
|
129
|
+
* @constant
|
|
130
|
+
*/
|
|
131
|
+
const DEFAULT_VISUAL_STYLE = {
|
|
132
|
+
marginTop: "0",
|
|
133
|
+
marginBottom: "0",
|
|
134
|
+
marginLeft: "0",
|
|
135
|
+
marginRight: "0",
|
|
136
|
+
height: "100vh",
|
|
137
|
+
borderRadius: "0",
|
|
138
|
+
boxShadow: "none"
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Preconfiguraciones de estilo visual para el sidebar
|
|
142
|
+
* @constant
|
|
143
|
+
*/
|
|
144
|
+
const SIDEBAR_VISUAL_PRESETS = {
|
|
145
|
+
DEFAULT: {
|
|
146
|
+
marginTop: "0",
|
|
147
|
+
marginBottom: "0",
|
|
148
|
+
marginLeft: "0",
|
|
149
|
+
marginRight: "0",
|
|
150
|
+
height: "100vh",
|
|
151
|
+
borderRadius: "0",
|
|
152
|
+
boxShadow: "none"
|
|
153
|
+
},
|
|
154
|
+
FLOATING_CARD: {
|
|
155
|
+
marginTop: "1rem",
|
|
156
|
+
marginBottom: "1rem",
|
|
157
|
+
marginLeft: "1rem",
|
|
158
|
+
marginRight: "0",
|
|
159
|
+
height: "calc(100vh - 2rem)",
|
|
160
|
+
borderRadius: "0.75rem",
|
|
161
|
+
boxShadow: "0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"
|
|
162
|
+
},
|
|
163
|
+
MODERN_ROUNDED: {
|
|
164
|
+
marginTop: "0.5rem",
|
|
165
|
+
marginBottom: "0.5rem",
|
|
166
|
+
marginLeft: "0.5rem",
|
|
167
|
+
marginRight: "0",
|
|
168
|
+
height: "calc(100vh - 1rem)",
|
|
169
|
+
borderRadius: "1rem",
|
|
170
|
+
boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"
|
|
171
|
+
},
|
|
172
|
+
MINIMAL_SPACED: {
|
|
173
|
+
marginTop: "0.25rem",
|
|
174
|
+
marginBottom: "0.25rem",
|
|
175
|
+
marginLeft: "0.25rem",
|
|
176
|
+
marginRight: "0",
|
|
177
|
+
height: "calc(100vh - 0.5rem)",
|
|
178
|
+
borderRadius: "0.5rem",
|
|
179
|
+
boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)"
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Nombres de CSS variables utilizadas
|
|
184
|
+
* @constant
|
|
185
|
+
*/
|
|
186
|
+
const SIDEBAR_CSS_VARIABLES = {
|
|
187
|
+
widthClosed: "--sidebar-width-closed",
|
|
188
|
+
widthOpen: "--sidebar-width-open",
|
|
189
|
+
width: "--sidebar-width",
|
|
190
|
+
background: "--sidebar-bg",
|
|
191
|
+
borderColor: "--sidebar-border-color",
|
|
192
|
+
hover: "--sidebar-hover",
|
|
193
|
+
indicator: "--sidebar-indicator",
|
|
194
|
+
indicatorHeight: "--sidebar-indicator-height",
|
|
195
|
+
tooltipDistance: "--sidebar-tooltip-distance",
|
|
196
|
+
layoutBehaviour: "--sidebar-layout-behaviour",
|
|
197
|
+
isInline: "--sidebar-is-inline",
|
|
198
|
+
marginTop: "--sidebar-margin-top",
|
|
199
|
+
marginBottom: "--sidebar-margin-bottom",
|
|
200
|
+
marginLeft: "--sidebar-margin-left",
|
|
201
|
+
marginRight: "--sidebar-margin-right",
|
|
202
|
+
sidebarHeight: "--sidebar-height",
|
|
203
|
+
sidebarBorderRadius: "--sidebar-border-radius",
|
|
204
|
+
sidebarBoxShadow: "--sidebar-box-shadow"
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
//#endregion
|
|
208
|
+
export { DEFAULT_ANIMATIONS, DEFAULT_CONFIG, DEFAULT_DIMENSIONS, DEFAULT_SAFE_AREAS, DEFAULT_VISUAL_STYLE, SIDEBAR_ARIA_LABELS, SIDEBAR_ARIA_ROLES, SIDEBAR_CSS_VARIABLES, SIDEBAR_DATA_ATTRIBUTES, SIDEBAR_DEBUG_PATTERNS, SIDEBAR_KEYBOARD_KEYS, SIDEBAR_TAILWIND_CLASSES, SIDEBAR_VISUAL_PRESETS };
|