@mks2508/mks-ui 0.6.7 → 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 +1058 -128
- 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.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/DynamicToggle/index.d.ts +1 -1
- package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/index.js +1 -1
- package/dist/react-ui/ui/Tabs/Tabs.css +38 -0
- package/dist/react-ui/ui/Tabs/Tabs.js +0 -0
- package/dist/react-ui/ui/Tabs/index.d.ts +1 -1
- package/dist/react-ui/ui/Tabs/index.d.ts.map +1 -1
- package/dist/react-ui/ui/Tabs/index.js +2 -1
- package/package.json +21 -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.module-BE6uirOX.css → css/ui-DynamicToggle-DynamicToggle.css} +0 -0
- /package/dist/{react-ui/ui/Tabs/Tabs.module-CFzRKHsx.css → css/ui-Tabs-Tabs.css} +0 -0
- /package/dist/react-ui/{ui/DynamicToggle/DynamicToggle.module.js → blocks/Sidebar/animations/tooltip-keyframes.js} +0 -0
- /package/dist/react-ui/ui/{Tabs/Tabs.module.js → DynamicToggle/DynamicToggle.js} +0 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
//#region src/react-ui/blocks/Sidebar/Sidebar.types.ts
|
|
2
|
+
/**
|
|
3
|
+
* Modo de colapso del sidebar
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
let SidebarCollapseMode = /* @__PURE__ */ function(SidebarCollapseMode) {
|
|
7
|
+
/** Colapsa el sidebar a un ancho mínimo mostrando solo iconos */
|
|
8
|
+
SidebarCollapseMode["COLLAPSE"] = "collapse";
|
|
9
|
+
/** Oculta completamente el sidebar */
|
|
10
|
+
SidebarCollapseMode["HIDE"] = "hide";
|
|
11
|
+
return SidebarCollapseMode;
|
|
12
|
+
}({});
|
|
13
|
+
/**
|
|
14
|
+
* Comportamiento del sidebar cuando está en modo hide
|
|
15
|
+
* @enum {string}
|
|
16
|
+
*/
|
|
17
|
+
let SidebarHideBehaviour = /* @__PURE__ */ function(SidebarHideBehaviour) {
|
|
18
|
+
/** Muestra un botón indicador para reabrir el sidebar */
|
|
19
|
+
SidebarHideBehaviour["SHOW_INDICATOR"] = "showIndicator";
|
|
20
|
+
/** El sidebar es completamente controlado externamente sin indicador */
|
|
21
|
+
SidebarHideBehaviour["CONTROLLED"] = "controlled";
|
|
22
|
+
return SidebarHideBehaviour;
|
|
23
|
+
}({});
|
|
24
|
+
/**
|
|
25
|
+
* Comportamiento al abrir desde el estado hide
|
|
26
|
+
* @enum {string}
|
|
27
|
+
*/
|
|
28
|
+
let SidebarHideOpensBehavior = /* @__PURE__ */ function(SidebarHideOpensBehavior) {
|
|
29
|
+
/** Abre al tamaño colapsado (solo iconos) */
|
|
30
|
+
SidebarHideOpensBehavior["COLLAPSED"] = "collapsed";
|
|
31
|
+
/** Abre al tamaño expandido completo */
|
|
32
|
+
SidebarHideOpensBehavior["EXPANDED"] = "expanded";
|
|
33
|
+
return SidebarHideOpensBehavior;
|
|
34
|
+
}({});
|
|
35
|
+
/**
|
|
36
|
+
* Comportamiento de layout del sidebar
|
|
37
|
+
* @enum {string}
|
|
38
|
+
*/
|
|
39
|
+
let SidebarLayoutBehaviour = /* @__PURE__ */ function(SidebarLayoutBehaviour) {
|
|
40
|
+
/** Sidebar flotante con z-index que NO desplaza el contenido (default) */
|
|
41
|
+
SidebarLayoutBehaviour["FLOATING"] = "floating";
|
|
42
|
+
/** Sidebar como parte del layout que SÍ desplaza el contenido */
|
|
43
|
+
SidebarLayoutBehaviour["INLINE"] = "inline";
|
|
44
|
+
return SidebarLayoutBehaviour;
|
|
45
|
+
}({});
|
|
46
|
+
/**
|
|
47
|
+
* Anchos predefinidos del sidebar
|
|
48
|
+
* @enum {string}
|
|
49
|
+
*/
|
|
50
|
+
let SidebarWidth = /* @__PURE__ */ function(SidebarWidth) {
|
|
51
|
+
/** Ancho en estado colapsado (solo iconos) */
|
|
52
|
+
SidebarWidth["COLLAPSED"] = "5rem";
|
|
53
|
+
/** Ancho expandido completo */
|
|
54
|
+
SidebarWidth["EXPANDED"] = "16rem";
|
|
55
|
+
/** Ancho mínimo absoluto */
|
|
56
|
+
SidebarWidth["MIN"] = "3rem";
|
|
57
|
+
/** Ancho máximo absoluto */
|
|
58
|
+
SidebarWidth["MAX"] = "20rem";
|
|
59
|
+
return SidebarWidth;
|
|
60
|
+
}({});
|
|
61
|
+
/**
|
|
62
|
+
* Duraciones de transición en milisegundos
|
|
63
|
+
* @enum {number}
|
|
64
|
+
*/
|
|
65
|
+
let SidebarTransitionDuration = /* @__PURE__ */ function(SidebarTransitionDuration) {
|
|
66
|
+
/** Transición rápida para cambios de opacidad */
|
|
67
|
+
SidebarTransitionDuration[SidebarTransitionDuration["FAST"] = 200] = "FAST";
|
|
68
|
+
/** Transición normal para width y transforms */
|
|
69
|
+
SidebarTransitionDuration[SidebarTransitionDuration["NORMAL"] = 300] = "NORMAL";
|
|
70
|
+
/** Transición lenta para animaciones complejas */
|
|
71
|
+
SidebarTransitionDuration[SidebarTransitionDuration["SLOW"] = 500] = "SLOW";
|
|
72
|
+
return SidebarTransitionDuration;
|
|
73
|
+
}({});
|
|
74
|
+
/**
|
|
75
|
+
* Índices Z para capas del sidebar
|
|
76
|
+
* @enum {number}
|
|
77
|
+
*/
|
|
78
|
+
let SidebarZIndex = /* @__PURE__ */ function(SidebarZIndex) {
|
|
79
|
+
/** Base del contenedor wrapper */
|
|
80
|
+
SidebarZIndex[SidebarZIndex["BASE"] = 0] = "BASE";
|
|
81
|
+
/** Indicador visual */
|
|
82
|
+
SidebarZIndex[SidebarZIndex["INDICATOR"] = 5] = "INDICATOR";
|
|
83
|
+
/** Contenido interno del sidebar */
|
|
84
|
+
SidebarZIndex[SidebarZIndex["CONTENT"] = 10] = "CONTENT";
|
|
85
|
+
/** Botón de toggle */
|
|
86
|
+
SidebarZIndex[SidebarZIndex["TOGGLE"] = 30] = "TOGGLE";
|
|
87
|
+
return SidebarZIndex;
|
|
88
|
+
}({});
|
|
89
|
+
/**
|
|
90
|
+
* Radios de borde predefinidos
|
|
91
|
+
* @enum {string}
|
|
92
|
+
*/
|
|
93
|
+
let SidebarBorderRadius = /* @__PURE__ */ function(SidebarBorderRadius) {
|
|
94
|
+
/** Sin radio de borde */
|
|
95
|
+
SidebarBorderRadius["NONE"] = "0";
|
|
96
|
+
/** Radio pequeño */
|
|
97
|
+
SidebarBorderRadius["SM"] = "0.25rem";
|
|
98
|
+
/** Radio medio */
|
|
99
|
+
SidebarBorderRadius["MD"] = "0.5rem";
|
|
100
|
+
/** Radio grande */
|
|
101
|
+
SidebarBorderRadius["LG"] = "1rem";
|
|
102
|
+
/** Radio completo (circular) */
|
|
103
|
+
SidebarBorderRadius["FULL"] = "9999px";
|
|
104
|
+
return SidebarBorderRadius;
|
|
105
|
+
}({});
|
|
106
|
+
/**
|
|
107
|
+
* Posiciones para SidebarSafeArea
|
|
108
|
+
* @enum {string}
|
|
109
|
+
*/
|
|
110
|
+
let SidebarSafeAreaPosition = /* @__PURE__ */ function(SidebarSafeAreaPosition) {
|
|
111
|
+
/** Área segura superior */
|
|
112
|
+
SidebarSafeAreaPosition["TOP"] = "top";
|
|
113
|
+
/** Área segura inferior */
|
|
114
|
+
SidebarSafeAreaPosition["BOTTOM"] = "bottom";
|
|
115
|
+
return SidebarSafeAreaPosition;
|
|
116
|
+
}({});
|
|
117
|
+
/**
|
|
118
|
+
* Timing functions para transiciones CSS
|
|
119
|
+
* @enum {string}
|
|
120
|
+
*/
|
|
121
|
+
let SidebarTimingFunction = /* @__PURE__ */ function(SidebarTimingFunction) {
|
|
122
|
+
/** Ease estándar */
|
|
123
|
+
SidebarTimingFunction["EASE"] = "ease";
|
|
124
|
+
/** Linear (velocidad constante) */
|
|
125
|
+
SidebarTimingFunction["LINEAR"] = "linear";
|
|
126
|
+
/** Ease in (aceleración) */
|
|
127
|
+
SidebarTimingFunction["EASE_IN"] = "ease-in";
|
|
128
|
+
/** Ease out (desaceleración) */
|
|
129
|
+
SidebarTimingFunction["EASE_OUT"] = "ease-out";
|
|
130
|
+
/** Ease in out (aceleración y desaceleración) */
|
|
131
|
+
SidebarTimingFunction["EASE_IN_OUT"] = "ease-in-out";
|
|
132
|
+
/** Cubic bezier personalizado */
|
|
133
|
+
SidebarTimingFunction["CUSTOM"] = "cubic-bezier(0.4, 0, 0.2, 1)";
|
|
134
|
+
return SidebarTimingFunction;
|
|
135
|
+
}({});
|
|
136
|
+
/**
|
|
137
|
+
* Librería de iconos a utilizar
|
|
138
|
+
* @enum {string}
|
|
139
|
+
*/
|
|
140
|
+
let SidebarIconLibrary = /* @__PURE__ */ function(SidebarIconLibrary) {
|
|
141
|
+
/** Iconos de lucide-react */
|
|
142
|
+
SidebarIconLibrary["LUCIDE"] = "lucide";
|
|
143
|
+
/** Iconos custom proporcionados por el usuario */
|
|
144
|
+
SidebarIconLibrary["CUSTOM"] = "custom";
|
|
145
|
+
return SidebarIconLibrary;
|
|
146
|
+
}({});
|
|
147
|
+
|
|
148
|
+
//#endregion
|
|
149
|
+
export { SidebarBorderRadius, SidebarCollapseMode, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarIconLibrary, SidebarLayoutBehaviour, SidebarSafeAreaPosition, SidebarTimingFunction, SidebarTransitionDuration, SidebarWidth, SidebarZIndex };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { SidebarContentProps } from "./Sidebar.types";
|
|
2
|
+
/**
|
|
3
|
+
* Componente de contenido del Sidebar (contenedor de items)
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Contenedor que agrupa los items de navegación (SidebarItem).
|
|
7
|
+
* Renderiza un `<div>` por defecto y aplica estilos de layout flex.
|
|
8
|
+
*
|
|
9
|
+
* Este componente:
|
|
10
|
+
* - Registra su ref en el contexto para cálculos del indicador
|
|
11
|
+
* - Aplica rol ARIA "list" para accesibilidad
|
|
12
|
+
* - Centra y distribuye items verticalmente
|
|
13
|
+
* - Permite customización completa con className y style
|
|
14
|
+
*
|
|
15
|
+
* Los items dentro de este contenedor son utilizados por:
|
|
16
|
+
* - useSidebarIndicator: Para calcular posición del indicador
|
|
17
|
+
* - useSidebarKeyboard: Para navegación por teclado
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <SidebarNav>
|
|
22
|
+
* <SidebarContent>
|
|
23
|
+
* <SidebarItem href="/" icon={<HomeIcon />} />
|
|
24
|
+
* <SidebarItem href="/settings" icon={<SettingsIcon />} />
|
|
25
|
+
* </SidebarContent>
|
|
26
|
+
* </SidebarNav>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* // Con estilos custom
|
|
32
|
+
* <SidebarContent className="gap-2 py-4">
|
|
33
|
+
* <SidebarItem href="/" />
|
|
34
|
+
* </SidebarContent>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Como lista semántica
|
|
40
|
+
* <SidebarContent as="ul">
|
|
41
|
+
* <SidebarItem as="li" href="/" />
|
|
42
|
+
* </SidebarContent>
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare const SidebarContent: import("react").ForwardRefExoticComponent<SidebarContentProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
46
|
+
//# sourceMappingURL=SidebarContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarContent.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/blocks/Sidebar/SidebarContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,cAAc,gHAuDzB,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { SIDEBAR_ARIA_ROLES, SIDEBAR_TAILWIND_CLASSES } from "./Sidebar.constants.js";
|
|
4
|
+
import { useSidebarContext } from "./hooks/useSidebarContext.js";
|
|
5
|
+
import { forwardRef, useEffect, useRef } from "react";
|
|
6
|
+
import { jsxs } from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/react-ui/blocks/Sidebar/SidebarContent.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Componente de contenido del Sidebar (contenedor de items)
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* Contenedor que agrupa los items de navegación (SidebarItem).
|
|
14
|
+
* Renderiza un `<div>` por defecto y aplica estilos de layout flex.
|
|
15
|
+
*
|
|
16
|
+
* Este componente:
|
|
17
|
+
* - Registra su ref en el contexto para cálculos del indicador
|
|
18
|
+
* - Aplica rol ARIA "list" para accesibilidad
|
|
19
|
+
* - Centra y distribuye items verticalmente
|
|
20
|
+
* - Permite customización completa con className y style
|
|
21
|
+
*
|
|
22
|
+
* Los items dentro de este contenedor son utilizados por:
|
|
23
|
+
* - useSidebarIndicator: Para calcular posición del indicador
|
|
24
|
+
* - useSidebarKeyboard: Para navegación por teclado
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <SidebarNav>
|
|
29
|
+
* <SidebarContent>
|
|
30
|
+
* <SidebarItem href="/" icon={<HomeIcon />} />
|
|
31
|
+
* <SidebarItem href="/settings" icon={<SettingsIcon />} />
|
|
32
|
+
* </SidebarContent>
|
|
33
|
+
* </SidebarNav>
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* // Con estilos custom
|
|
39
|
+
* <SidebarContent className="gap-2 py-4">
|
|
40
|
+
* <SidebarItem href="/" />
|
|
41
|
+
* </SidebarContent>
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```tsx
|
|
46
|
+
* // Como lista semántica
|
|
47
|
+
* <SidebarContent as="ul">
|
|
48
|
+
* <SidebarItem as="li" href="/" />
|
|
49
|
+
* </SidebarContent>
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
const SidebarContent = forwardRef(function SidebarContent({ children, className = "", style, as, ...props }, forwardedRef) {
|
|
53
|
+
const { contentRef, debug, safeAreas } = useSidebarContext();
|
|
54
|
+
const Component = as || "div";
|
|
55
|
+
const localContentRef = useRef(null);
|
|
56
|
+
const contentHeight = 100 - safeAreas.topPercent - safeAreas.bottomPercent;
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
const node = localContentRef.current;
|
|
59
|
+
if (!node) return;
|
|
60
|
+
if (contentRef && "current" in contentRef) contentRef.current = node;
|
|
61
|
+
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
62
|
+
else if (forwardedRef) forwardedRef.current = node;
|
|
63
|
+
}, [contentRef, forwardedRef]);
|
|
64
|
+
const debugClasses = debug ? "bg-zinc-900/70 border-y-2 border-dashed border-emerald-400/60 relative" : "";
|
|
65
|
+
return /* @__PURE__ */ jsxs(Component, {
|
|
66
|
+
ref: localContentRef,
|
|
67
|
+
className: `${SIDEBAR_TAILWIND_CLASSES.content} ${debugClasses} ${className}`,
|
|
68
|
+
style: {
|
|
69
|
+
height: `${contentHeight}%`,
|
|
70
|
+
...style
|
|
71
|
+
},
|
|
72
|
+
role: SIDEBAR_ARIA_ROLES.list,
|
|
73
|
+
...props,
|
|
74
|
+
children: [debug && /* @__PURE__ */ jsxs("span", {
|
|
75
|
+
className: "absolute top-1 right-1 text-[10px] text-emerald-300 font-mono z-50 bg-black/60 px-1.5 py-0.5 rounded",
|
|
76
|
+
children: [
|
|
77
|
+
"CONTENT ",
|
|
78
|
+
contentHeight,
|
|
79
|
+
"%"
|
|
80
|
+
]
|
|
81
|
+
}), children]
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
//#endregion
|
|
86
|
+
export { SidebarContent };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface SubContentData {
|
|
3
|
+
itemId: string;
|
|
4
|
+
subContent: ReactNode;
|
|
5
|
+
title?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const SubContentContext: import("react").Context<{
|
|
8
|
+
subContentMap: Map<string, SubContentData>;
|
|
9
|
+
registerSubContent: (itemId: string, data: SubContentData) => void;
|
|
10
|
+
unregisterSubContent: (itemId: string) => void;
|
|
11
|
+
getSubContent: (itemId: string) => SubContentData | undefined;
|
|
12
|
+
} | null>;
|
|
13
|
+
import type { SidebarContextValue, SidebarCollapseMode, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarLayoutBehaviour, SidebarDimensions, SidebarSafeAreas, SidebarAnimations } from "./Sidebar.types";
|
|
14
|
+
/**
|
|
15
|
+
* Contexto del Sidebar para compartir estado entre componentes primitivos
|
|
16
|
+
* @constant
|
|
17
|
+
*/
|
|
18
|
+
export declare const SidebarContext: import("react").Context<SidebarContextValue | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Props del SidebarProvider
|
|
21
|
+
* @interface
|
|
22
|
+
*/
|
|
23
|
+
interface SidebarProviderProps {
|
|
24
|
+
/** Contenido hijo (componentes primitivos del sidebar) */
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
/** Estado inicial abierto (modo uncontrolled) */
|
|
27
|
+
defaultOpen?: boolean;
|
|
28
|
+
/** Estado abierto (modo controlled) */
|
|
29
|
+
open?: boolean;
|
|
30
|
+
/** Callback cuando cambia el estado open */
|
|
31
|
+
onOpenChange?: (open: boolean) => void;
|
|
32
|
+
/** Modo de colapso del sidebar */
|
|
33
|
+
collapseMode?: SidebarCollapseMode;
|
|
34
|
+
/** Comportamiento en modo hide */
|
|
35
|
+
hideBehaviour?: SidebarHideBehaviour;
|
|
36
|
+
/** Comportamiento al abrir desde hide */
|
|
37
|
+
hideOpensBehavior?: SidebarHideOpensBehavior;
|
|
38
|
+
/** Comportamiento de layout del sidebar */
|
|
39
|
+
layoutBehaviour?: SidebarLayoutBehaviour;
|
|
40
|
+
/** Configuración de dimensiones */
|
|
41
|
+
dimensions?: Partial<SidebarDimensions>;
|
|
42
|
+
/** Configuración de safe areas */
|
|
43
|
+
safeAreas?: Partial<SidebarSafeAreas>;
|
|
44
|
+
/** Configuración de animaciones */
|
|
45
|
+
animations?: Partial<SidebarAnimations>;
|
|
46
|
+
/** ID del toggle input */
|
|
47
|
+
toggleId?: string;
|
|
48
|
+
/** Modo debug para visualizar safe areas */
|
|
49
|
+
debug?: boolean;
|
|
50
|
+
/** Habilitar FluidHoverIndicator (glassmorphism + spring physics) */
|
|
51
|
+
enableFluidIndicator?: boolean;
|
|
52
|
+
/** Habilitar tooltip en hover (muestra label o subcategorías) */
|
|
53
|
+
enableTooltip?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Provider del contexto del Sidebar
|
|
57
|
+
*
|
|
58
|
+
* @description
|
|
59
|
+
* Componente que provee el contexto compartido a todos los componentes
|
|
60
|
+
* primitivos del sidebar. Gestiona el estado global (open/closed) y
|
|
61
|
+
* referencias a elementos DOM necesarios para funcionalidades como
|
|
62
|
+
* el indicador visual y navegación por teclado.
|
|
63
|
+
*
|
|
64
|
+
* Soporta tanto modo controlled (pasando prop `open`) como uncontrolled
|
|
65
|
+
* (usando `defaultOpen`).
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* // Modo uncontrolled
|
|
70
|
+
* <SidebarProvider defaultOpen={true}>
|
|
71
|
+
* <SidebarNav>...</SidebarNav>
|
|
72
|
+
* </SidebarProvider>
|
|
73
|
+
*
|
|
74
|
+
* // Modo controlled
|
|
75
|
+
* <SidebarProvider
|
|
76
|
+
* open={isOpen}
|
|
77
|
+
* onOpenChange={setIsOpen}
|
|
78
|
+
* >
|
|
79
|
+
* <SidebarNav>...</SidebarNav>
|
|
80
|
+
* </SidebarProvider>
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function SidebarProvider({ children, defaultOpen, open: controlledOpen, onOpenChange, collapseMode, hideBehaviour, hideOpensBehavior, layoutBehaviour, dimensions: dimensionsProp, safeAreas: safeAreasProp, animations: animationsProp, toggleId, debug, enableFluidIndicator, enableTooltip, }: SidebarProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=SidebarContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarContext.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/blocks/Sidebar/SidebarContext.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,OAAO,CAAA;AAEjD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,SAAS,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,iBAAiB;mBACb,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;wBACtB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI;0BAC5C,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;mBAC/B,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS;SAChD,CAAA;AAEf,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AASxB;;;GAGG;AACH,eAAO,MAAM,cAAc,qDAAkD,CAAA;AAE7E;;;GAGG;AACH,UAAU,oBAAoB;IAC5B,0DAA0D;IAC1D,QAAQ,EAAE,SAAS,CAAA;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,kCAAkC;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC,kCAAkC;IAClC,aAAa,CAAC,EAAE,oBAAoB,CAAA;IACpC,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;IAC5C,2CAA2C;IAC3C,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACvC,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrC,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACvC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qEAAqE;IACrE,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,WAAwC,EACxC,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,YAA0C,EAC1C,aAA4C,EAC5C,iBAAoD,EACpD,eAAgD,EAChD,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,QAAkC,EAClC,KAA4B,EAC5B,oBAA4B,EAC5B,aAAoB,GACrB,EAAE,oBAAoB,2CA8KtB"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_ANIMATIONS, DEFAULT_CONFIG, DEFAULT_DIMENSIONS, DEFAULT_SAFE_AREAS } from "./Sidebar.constants.js";
|
|
4
|
+
import { createContext, useCallback, useMemo, useRef, useState } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/react-ui/blocks/Sidebar/SidebarContext.tsx
|
|
8
|
+
const SubContentContext = createContext(null);
|
|
9
|
+
/**
|
|
10
|
+
* Contexto del Sidebar para compartir estado entre componentes primitivos
|
|
11
|
+
* @constant
|
|
12
|
+
*/
|
|
13
|
+
const SidebarContext = createContext(null);
|
|
14
|
+
/**
|
|
15
|
+
* Provider del contexto del Sidebar
|
|
16
|
+
*
|
|
17
|
+
* @description
|
|
18
|
+
* Componente que provee el contexto compartido a todos los componentes
|
|
19
|
+
* primitivos del sidebar. Gestiona el estado global (open/closed) y
|
|
20
|
+
* referencias a elementos DOM necesarios para funcionalidades como
|
|
21
|
+
* el indicador visual y navegación por teclado.
|
|
22
|
+
*
|
|
23
|
+
* Soporta tanto modo controlled (pasando prop `open`) como uncontrolled
|
|
24
|
+
* (usando `defaultOpen`).
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* // Modo uncontrolled
|
|
29
|
+
* <SidebarProvider defaultOpen={true}>
|
|
30
|
+
* <SidebarNav>...</SidebarNav>
|
|
31
|
+
* </SidebarProvider>
|
|
32
|
+
*
|
|
33
|
+
* // Modo controlled
|
|
34
|
+
* <SidebarProvider
|
|
35
|
+
* open={isOpen}
|
|
36
|
+
* onOpenChange={setIsOpen}
|
|
37
|
+
* >
|
|
38
|
+
* <SidebarNav>...</SidebarNav>
|
|
39
|
+
* </SidebarProvider>
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function SidebarProvider({ children, defaultOpen = DEFAULT_CONFIG.defaultOpen, open: controlledOpen, onOpenChange, collapseMode = DEFAULT_CONFIG.collapseMode, hideBehaviour = DEFAULT_CONFIG.hideBehaviour, hideOpensBehavior = DEFAULT_CONFIG.hideOpensBehavior, layoutBehaviour = DEFAULT_CONFIG.layoutBehaviour, dimensions: dimensionsProp, safeAreas: safeAreasProp, animations: animationsProp, toggleId = DEFAULT_CONFIG.toggleId, debug = DEFAULT_CONFIG.debug, enableFluidIndicator = false, enableTooltip = true }) {
|
|
43
|
+
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
44
|
+
const open = controlledOpen !== void 0 ? controlledOpen : internalOpen;
|
|
45
|
+
const setOpen = useCallback((newOpen) => {
|
|
46
|
+
if (controlledOpen === void 0) setInternalOpen(newOpen);
|
|
47
|
+
onOpenChange?.(newOpen);
|
|
48
|
+
}, [controlledOpen, onOpenChange]);
|
|
49
|
+
const navRef = useRef(null);
|
|
50
|
+
const contentRef = useRef(null);
|
|
51
|
+
const indicatorRef = useRef(null);
|
|
52
|
+
const [items, setItems] = useState([]);
|
|
53
|
+
const [showIndicatorForKeyboard, setShowIndicatorForKeyboard] = useState(false);
|
|
54
|
+
const [isOverItems, setIsOverItems] = useState(false);
|
|
55
|
+
const [currentItemElement, setCurrentItemElement] = useState(null);
|
|
56
|
+
const [subContentMap] = useState(() => /* @__PURE__ */ new Map());
|
|
57
|
+
/**
|
|
58
|
+
* Registrar subContent de un item
|
|
59
|
+
*/
|
|
60
|
+
const registerSubContent = useCallback((itemId, data) => {
|
|
61
|
+
subContentMap.set(itemId, data);
|
|
62
|
+
}, [subContentMap]);
|
|
63
|
+
/**
|
|
64
|
+
* Des-registrar subContent de un item
|
|
65
|
+
*/
|
|
66
|
+
const unregisterSubContent = useCallback((itemId) => {
|
|
67
|
+
subContentMap.delete(itemId);
|
|
68
|
+
}, [subContentMap]);
|
|
69
|
+
/**
|
|
70
|
+
* Obtener subContent de un item
|
|
71
|
+
*/
|
|
72
|
+
const getSubContent = useCallback((itemId) => {
|
|
73
|
+
return subContentMap.get(itemId);
|
|
74
|
+
}, [subContentMap]);
|
|
75
|
+
/**
|
|
76
|
+
* Registrar un item para navegación por teclado
|
|
77
|
+
*/
|
|
78
|
+
const registerItem = useCallback((element) => {
|
|
79
|
+
setItems((prev) => {
|
|
80
|
+
if (prev.includes(element)) return prev;
|
|
81
|
+
return [...prev, element];
|
|
82
|
+
});
|
|
83
|
+
}, []);
|
|
84
|
+
/**
|
|
85
|
+
* Des-registrar un item cuando se desmonta
|
|
86
|
+
*/
|
|
87
|
+
const unregisterItem = useCallback((element) => {
|
|
88
|
+
setItems((prev) => prev.filter((item) => item !== element));
|
|
89
|
+
}, []);
|
|
90
|
+
const dimensions = useMemo(() => ({
|
|
91
|
+
...DEFAULT_DIMENSIONS,
|
|
92
|
+
...dimensionsProp
|
|
93
|
+
}), [dimensionsProp]);
|
|
94
|
+
const safeAreas = useMemo(() => ({
|
|
95
|
+
...DEFAULT_SAFE_AREAS,
|
|
96
|
+
...safeAreasProp
|
|
97
|
+
}), [safeAreasProp]);
|
|
98
|
+
const animations = useMemo(() => ({
|
|
99
|
+
...DEFAULT_ANIMATIONS,
|
|
100
|
+
...animationsProp
|
|
101
|
+
}), [animationsProp]);
|
|
102
|
+
const contextValue = useMemo(() => ({
|
|
103
|
+
defaultOpen,
|
|
104
|
+
open,
|
|
105
|
+
setOpen,
|
|
106
|
+
collapseMode,
|
|
107
|
+
hideBehaviour,
|
|
108
|
+
hideOpensBehavior,
|
|
109
|
+
layoutBehaviour,
|
|
110
|
+
dimensions,
|
|
111
|
+
safeAreas,
|
|
112
|
+
animations,
|
|
113
|
+
toggleId,
|
|
114
|
+
debug,
|
|
115
|
+
navRef,
|
|
116
|
+
contentRef,
|
|
117
|
+
indicatorRef,
|
|
118
|
+
registerItem,
|
|
119
|
+
unregisterItem,
|
|
120
|
+
items,
|
|
121
|
+
showIndicatorForKeyboard,
|
|
122
|
+
setShowIndicatorForKeyboard,
|
|
123
|
+
isOverItems,
|
|
124
|
+
setIsOverItems,
|
|
125
|
+
enableFluidIndicator,
|
|
126
|
+
enableTooltip,
|
|
127
|
+
currentItemElement,
|
|
128
|
+
setCurrentItemElement
|
|
129
|
+
}), [
|
|
130
|
+
defaultOpen,
|
|
131
|
+
open,
|
|
132
|
+
setOpen,
|
|
133
|
+
collapseMode,
|
|
134
|
+
hideBehaviour,
|
|
135
|
+
hideOpensBehavior,
|
|
136
|
+
layoutBehaviour,
|
|
137
|
+
dimensions,
|
|
138
|
+
safeAreas,
|
|
139
|
+
animations,
|
|
140
|
+
toggleId,
|
|
141
|
+
debug,
|
|
142
|
+
navRef,
|
|
143
|
+
contentRef,
|
|
144
|
+
indicatorRef,
|
|
145
|
+
registerItem,
|
|
146
|
+
unregisterItem,
|
|
147
|
+
items,
|
|
148
|
+
showIndicatorForKeyboard,
|
|
149
|
+
setShowIndicatorForKeyboard,
|
|
150
|
+
isOverItems,
|
|
151
|
+
setIsOverItems,
|
|
152
|
+
enableFluidIndicator,
|
|
153
|
+
enableTooltip,
|
|
154
|
+
currentItemElement,
|
|
155
|
+
setCurrentItemElement
|
|
156
|
+
]);
|
|
157
|
+
const subContentContextValue = useMemo(() => ({
|
|
158
|
+
subContentMap,
|
|
159
|
+
registerSubContent,
|
|
160
|
+
unregisterSubContent,
|
|
161
|
+
getSubContent
|
|
162
|
+
}), [
|
|
163
|
+
subContentMap,
|
|
164
|
+
registerSubContent,
|
|
165
|
+
unregisterSubContent,
|
|
166
|
+
getSubContent
|
|
167
|
+
]);
|
|
168
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, {
|
|
169
|
+
value: contextValue,
|
|
170
|
+
children: /* @__PURE__ */ jsx(SubContentContext.Provider, {
|
|
171
|
+
value: subContentContextValue,
|
|
172
|
+
children
|
|
173
|
+
})
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
//#endregion
|
|
178
|
+
export { SidebarContext, SidebarProvider, SubContentContext };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props del SidebarFluidIndicator
|
|
3
|
+
* @interface
|
|
4
|
+
*/
|
|
5
|
+
export interface SidebarFluidIndicatorProps {
|
|
6
|
+
/** Elemento del item actualmente hovered/focused */
|
|
7
|
+
targetElement: HTMLElement | null;
|
|
8
|
+
/** Indica si el indicador está visible */
|
|
9
|
+
isVisible: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* SidebarFluidIndicator - Wrapper around FluidHoverIndicator
|
|
13
|
+
*
|
|
14
|
+
* @description
|
|
15
|
+
* Este componente usa FluidHoverIndicator que implementa spring physics
|
|
16
|
+
* con anticipation, stretch, overshoot y settle para animaciones fluidas.
|
|
17
|
+
* - Spring physics con morphing basado en dirección de movimiento
|
|
18
|
+
* - WAAPI para animaciones de alto rendimiento
|
|
19
|
+
* - Soporta containerRef para posicionamiento relativo
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <SidebarNav>
|
|
24
|
+
* <SidebarIndicator />
|
|
25
|
+
* <SidebarFluidIndicator targetElement={currentItemElement} isVisible={isVisible} />
|
|
26
|
+
* <SidebarContent>...</SidebarContent>
|
|
27
|
+
* </SidebarNav>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function SidebarFluidIndicator({ targetElement, isVisible }: SidebarFluidIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=SidebarFluidIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarFluidIndicator.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/blocks/Sidebar/SidebarFluidIndicator.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,oDAAoD;IACpD,aAAa,EAAE,WAAW,GAAG,IAAI,CAAA;IACjC,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CAU7F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useSidebarContext } from "./hooks/useSidebarContext.js";
|
|
4
|
+
import { FluidHoverIndicator } from "./components/FluidHoverIndicator.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/react-ui/blocks/Sidebar/SidebarFluidIndicator.tsx
|
|
8
|
+
/**
|
|
9
|
+
* SidebarFluidIndicator - Wrapper around FluidHoverIndicator
|
|
10
|
+
*
|
|
11
|
+
* @description
|
|
12
|
+
* Este componente usa FluidHoverIndicator que implementa spring physics
|
|
13
|
+
* con anticipation, stretch, overshoot y settle para animaciones fluidas.
|
|
14
|
+
* - Spring physics con morphing basado en dirección de movimiento
|
|
15
|
+
* - WAAPI para animaciones de alto rendimiento
|
|
16
|
+
* - Soporta containerRef para posicionamiento relativo
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <SidebarNav>
|
|
21
|
+
* <SidebarIndicator />
|
|
22
|
+
* <SidebarFluidIndicator targetElement={currentItemElement} isVisible={isVisible} />
|
|
23
|
+
* <SidebarContent>...</SidebarContent>
|
|
24
|
+
* </SidebarNav>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
function SidebarFluidIndicator({ targetElement, isVisible }) {
|
|
28
|
+
const { navRef } = useSidebarContext();
|
|
29
|
+
return /* @__PURE__ */ jsx(FluidHoverIndicator, {
|
|
30
|
+
targetElement,
|
|
31
|
+
isVisible,
|
|
32
|
+
containerRef: navRef
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { SidebarFluidIndicator };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { SidebarIndicatorProps } from "./Sidebar.types";
|
|
2
|
+
/**
|
|
3
|
+
* Componente de indicador visual del Sidebar
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Indicador visual que sigue al cursor del mouse (o item enfocado) dentro
|
|
7
|
+
* del área de navegación. Proporciona feedback visual claro al usuario.
|
|
8
|
+
*
|
|
9
|
+
* Características:
|
|
10
|
+
* - Se muestra solo cuando el mouse está sobre el área de items
|
|
11
|
+
* - Sigue al cursor con animación suave
|
|
12
|
+
* - Se posiciona en el item enfocado al navegar por teclado
|
|
13
|
+
* - Totalmente customizable con className y style
|
|
14
|
+
* - Soporta render props para control total del contenido
|
|
15
|
+
* - Color y dimensiones configurables via contexto
|
|
16
|
+
*
|
|
17
|
+
* El indicador se oculta automáticamente cuando:
|
|
18
|
+
* - El mouse sale del sidebar
|
|
19
|
+
* - El cursor está fuera del área de items
|
|
20
|
+
* - Se pierde el focus del sidebar
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* // Uso básico con estilos por defecto
|
|
25
|
+
* <SidebarNav>
|
|
26
|
+
* <SidebarIndicator />
|
|
27
|
+
* <SidebarContent>...</SidebarContent>
|
|
28
|
+
* </SidebarNav>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* // Con estilos custom
|
|
34
|
+
* <SidebarIndicator className="bg-red-500 w-1" />
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Con render props
|
|
40
|
+
* <SidebarIndicator>
|
|
41
|
+
* {({ visible, position }) => (
|
|
42
|
+
* <div
|
|
43
|
+
* className={cn('indicator', visible && 'opacity-100')}
|
|
44
|
+
* style={{ top: position }}
|
|
45
|
+
* >
|
|
46
|
+
* <span>→</span>
|
|
47
|
+
* </div>
|
|
48
|
+
* )}
|
|
49
|
+
* </SidebarIndicator>
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* // Como elemento custom
|
|
55
|
+
* <SidebarIndicator as={motion.div} animate={{ opacity: 1 }} />
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const SidebarIndicator: import("react").ForwardRefExoticComponent<SidebarIndicatorProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
59
|
+
//# sourceMappingURL=SidebarIndicator.d.ts.map
|