@pallasoft/ps-internal-components 1.5.0 → 1.6.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/components/ps-alert-dialog-content.js +1 -1
- package/dist/components/ps-alert-dialog-overlay.js +1 -1
- package/dist/components/ps-app-sidebar.d.ts +2 -0
- package/dist/components/ps-app-sidebar.js +14 -0
- package/dist/components/ps-dialog-content.js +1 -1
- package/dist/components/ps-dialog-overlay.js +1 -1
- package/dist/components/ps-sheet-overlay.js +1 -1
- package/dist/components/ps-sidebar-content.d.ts +3 -0
- package/dist/components/ps-sidebar-content.js +41 -0
- package/dist/components/ps-sidebar-footer.d.ts +3 -0
- package/dist/components/ps-sidebar-footer.js +41 -0
- package/dist/components/ps-sidebar-group-content.d.ts +3 -0
- package/dist/components/ps-sidebar-group-content.js +41 -0
- package/dist/components/ps-sidebar-group-label.d.ts +3 -0
- package/dist/components/ps-sidebar-group-label.js +45 -0
- package/dist/components/ps-sidebar-group.d.ts +3 -0
- package/dist/components/ps-sidebar-group.js +41 -0
- package/dist/components/ps-sidebar-header.d.ts +3 -0
- package/dist/components/ps-sidebar-header.js +41 -0
- package/dist/components/ps-sidebar-inset.d.ts +3 -0
- package/dist/components/ps-sidebar-inset.js +41 -0
- package/dist/components/ps-sidebar-layout.d.ts +3 -0
- package/dist/components/ps-sidebar-layout.js +58 -0
- package/dist/components/ps-sidebar-menu-action.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-action.js +46 -0
- package/dist/components/ps-sidebar-menu-badge.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-badge.js +41 -0
- package/dist/components/ps-sidebar-menu-button.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-button.js +56 -0
- package/dist/components/ps-sidebar-menu-item.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-item.js +41 -0
- package/dist/components/ps-sidebar-menu-sub-button.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-sub-button.js +45 -0
- package/dist/components/ps-sidebar-menu-sub-item.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-sub-item.js +41 -0
- package/dist/components/ps-sidebar-menu-sub.d.ts +3 -0
- package/dist/components/ps-sidebar-menu-sub.js +41 -0
- package/dist/components/ps-sidebar-menu.d.ts +3 -0
- package/dist/components/ps-sidebar-menu.js +41 -0
- package/dist/components/ps-sidebar-nav-groups.d.ts +2 -0
- package/dist/components/ps-sidebar-nav-groups.js +19 -0
- package/dist/components/ps-sidebar-provider.d.ts +3 -0
- package/dist/components/ps-sidebar-provider.js +89 -0
- package/dist/components/ps-sidebar-rail.d.ts +3 -0
- package/dist/components/ps-sidebar-rail.js +46 -0
- package/dist/components/ps-sidebar-separator.d.ts +3 -0
- package/dist/components/ps-sidebar-separator.js +42 -0
- package/dist/components/ps-sidebar-trigger.d.ts +3 -0
- package/dist/components/ps-sidebar-trigger.js +51 -0
- package/dist/components/ps-sidebar-user-menu.d.ts +2 -0
- package/dist/components/ps-sidebar-user-menu.js +26 -0
- package/dist/components/ps-sidebar-workspace-switcher.d.ts +2 -0
- package/dist/components/ps-sidebar-workspace-switcher.js +41 -0
- package/dist/components/ps-sidebar.d.ts +3 -0
- package/dist/components/ps-sidebar.js +66 -0
- package/dist/constants/ps-app-sidebar-config.d.ts +7 -0
- package/dist/constants/ps-app-sidebar-config.js +10 -0
- package/dist/constants/ps-sidebar-config.d.ts +14 -0
- package/dist/constants/ps-sidebar-config.js +17 -0
- package/dist/constants/ps-sidebar-menu-button-variants.d.ts +4 -0
- package/dist/constants/ps-sidebar-menu-button-variants.js +21 -0
- package/dist/constants/ps-sidebar-state.d.ts +4 -0
- package/dist/constants/ps-sidebar-state.js +8 -0
- package/dist/contexts/ps-sidebar-context.d.ts +3 -0
- package/dist/contexts/ps-sidebar-context.js +38 -0
- package/dist/esm/components/ps-alert-dialog-content.js +1 -1
- package/dist/esm/components/ps-alert-dialog-overlay.js +1 -1
- package/dist/esm/components/ps-app-sidebar.js +10 -0
- package/dist/esm/components/ps-dialog-content.js +1 -1
- package/dist/esm/components/ps-dialog-overlay.js +1 -1
- package/dist/esm/components/ps-sheet-overlay.js +1 -1
- package/dist/esm/components/ps-sidebar-content.js +5 -0
- package/dist/esm/components/ps-sidebar-footer.js +5 -0
- package/dist/esm/components/ps-sidebar-group-content.js +5 -0
- package/dist/esm/components/ps-sidebar-group-label.js +9 -0
- package/dist/esm/components/ps-sidebar-group.js +5 -0
- package/dist/esm/components/ps-sidebar-header.js +5 -0
- package/dist/esm/components/ps-sidebar-inset.js +5 -0
- package/dist/esm/components/ps-sidebar-layout.js +21 -0
- package/dist/esm/components/ps-sidebar-menu-action.js +10 -0
- package/dist/esm/components/ps-sidebar-menu-badge.js +5 -0
- package/dist/esm/components/ps-sidebar-menu-button.js +20 -0
- package/dist/esm/components/ps-sidebar-menu-item.js +5 -0
- package/dist/esm/components/ps-sidebar-menu-sub-button.js +9 -0
- package/dist/esm/components/ps-sidebar-menu-sub-item.js +5 -0
- package/dist/esm/components/ps-sidebar-menu-sub.js +5 -0
- package/dist/esm/components/ps-sidebar-menu.js +5 -0
- package/dist/esm/components/ps-sidebar-nav-groups.js +15 -0
- package/dist/esm/components/ps-sidebar-provider.js +53 -0
- package/dist/esm/components/ps-sidebar-rail.js +10 -0
- package/dist/esm/components/ps-sidebar-separator.js +6 -0
- package/dist/esm/components/ps-sidebar-trigger.js +15 -0
- package/dist/esm/components/ps-sidebar-user-menu.js +22 -0
- package/dist/esm/components/ps-sidebar-workspace-switcher.js +37 -0
- package/dist/esm/components/ps-sidebar.js +30 -0
- package/dist/esm/constants/ps-app-sidebar-config.js +7 -0
- package/dist/esm/constants/ps-sidebar-config.js +14 -0
- package/dist/esm/constants/ps-sidebar-menu-button-variants.js +18 -0
- package/dist/esm/constants/ps-sidebar-state.js +5 -0
- package/dist/esm/contexts/ps-sidebar-context.js +2 -0
- package/dist/esm/hooks/use-ps-dialog-state.js +8 -0
- package/dist/esm/hooks/use-ps-is-mobile.js +13 -0
- package/dist/esm/hooks/use-ps-sidebar.js +9 -0
- package/dist/esm/index.js +65 -0
- package/dist/esm/models/ps-app-sidebar-group-data.js +1 -0
- package/dist/esm/models/ps-app-sidebar-item-data.js +1 -0
- package/dist/esm/models/ps-app-sidebar-props.js +1 -0
- package/dist/esm/models/ps-dialog-state-data.js +1 -0
- package/dist/esm/models/ps-dialog-state-value.js +1 -0
- package/dist/esm/models/ps-sidebar-content-props.js +1 -0
- package/dist/esm/models/ps-sidebar-context-data.js +1 -0
- package/dist/esm/models/ps-sidebar-footer-props.js +1 -0
- package/dist/esm/models/ps-sidebar-group-content-props.js +1 -0
- package/dist/esm/models/ps-sidebar-group-label-props.js +1 -0
- package/dist/esm/models/ps-sidebar-group-props.js +1 -0
- package/dist/esm/models/ps-sidebar-header-props.js +1 -0
- package/dist/esm/models/ps-sidebar-inset-props.js +1 -0
- package/dist/esm/models/ps-sidebar-layout-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-action-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-badge-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-button-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-item-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-sub-button-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-sub-item-props.js +1 -0
- package/dist/esm/models/ps-sidebar-menu-sub-props.js +1 -0
- package/dist/esm/models/ps-sidebar-nav-groups-props.js +1 -0
- package/dist/esm/models/ps-sidebar-props.js +1 -0
- package/dist/esm/models/ps-sidebar-provider-props.js +1 -0
- package/dist/esm/models/ps-sidebar-rail-props.js +1 -0
- package/dist/esm/models/ps-sidebar-separator-props.js +1 -0
- package/dist/esm/models/ps-sidebar-trigger-props.js +1 -0
- package/dist/esm/models/ps-sidebar-user-menu-props.js +1 -0
- package/dist/esm/models/ps-sidebar-workspace-switcher-props.js +1 -0
- package/dist/esm/services/ps-link-service.js +12 -0
- package/dist/esm/services/ps-sidebar-service.js +14 -0
- package/dist/hooks/use-ps-dialog-state.d.ts +2 -0
- package/dist/hooks/use-ps-dialog-state.js +45 -0
- package/dist/hooks/use-ps-is-mobile.d.ts +1 -0
- package/dist/hooks/use-ps-is-mobile.js +50 -0
- package/dist/hooks/use-ps-sidebar.d.ts +2 -0
- package/dist/hooks/use-ps-sidebar.js +46 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +65 -0
- package/dist/models/ps-app-sidebar-group-data.d.ts +6 -0
- package/dist/models/ps-app-sidebar-group-data.js +2 -0
- package/dist/models/ps-app-sidebar-item-data.d.ts +9 -0
- package/dist/models/ps-app-sidebar-item-data.js +2 -0
- package/dist/models/ps-app-sidebar-props.d.ts +16 -0
- package/dist/models/ps-app-sidebar-props.js +2 -0
- package/dist/models/ps-dialog-state-data.d.ts +7 -0
- package/dist/models/ps-dialog-state-data.js +2 -0
- package/dist/models/ps-dialog-state-value.d.ts +4 -0
- package/dist/models/ps-dialog-state-value.js +2 -0
- package/dist/models/ps-sidebar-content-props.d.ts +3 -0
- package/dist/models/ps-sidebar-content-props.js +2 -0
- package/dist/models/ps-sidebar-context-data.d.ts +10 -0
- package/dist/models/ps-sidebar-context-data.js +2 -0
- package/dist/models/ps-sidebar-footer-props.d.ts +3 -0
- package/dist/models/ps-sidebar-footer-props.js +2 -0
- package/dist/models/ps-sidebar-group-content-props.d.ts +3 -0
- package/dist/models/ps-sidebar-group-content-props.js +2 -0
- package/dist/models/ps-sidebar-group-label-props.d.ts +4 -0
- package/dist/models/ps-sidebar-group-label-props.js +2 -0
- package/dist/models/ps-sidebar-group-props.d.ts +3 -0
- package/dist/models/ps-sidebar-group-props.js +2 -0
- package/dist/models/ps-sidebar-header-props.d.ts +3 -0
- package/dist/models/ps-sidebar-header-props.js +2 -0
- package/dist/models/ps-sidebar-inset-props.d.ts +3 -0
- package/dist/models/ps-sidebar-inset-props.js +2 -0
- package/dist/models/ps-sidebar-layout-props.d.ts +11 -0
- package/dist/models/ps-sidebar-layout-props.js +2 -0
- package/dist/models/ps-sidebar-menu-action-props.d.ts +5 -0
- package/dist/models/ps-sidebar-menu-action-props.js +2 -0
- package/dist/models/ps-sidebar-menu-badge-props.d.ts +3 -0
- package/dist/models/ps-sidebar-menu-badge-props.js +2 -0
- package/dist/models/ps-sidebar-menu-button-props.d.ts +8 -0
- package/dist/models/ps-sidebar-menu-button-props.js +2 -0
- package/dist/models/ps-sidebar-menu-item-props.d.ts +3 -0
- package/dist/models/ps-sidebar-menu-item-props.js +2 -0
- package/dist/models/ps-sidebar-menu-props.d.ts +3 -0
- package/dist/models/ps-sidebar-menu-props.js +2 -0
- package/dist/models/ps-sidebar-menu-sub-button-props.d.ts +6 -0
- package/dist/models/ps-sidebar-menu-sub-button-props.js +2 -0
- package/dist/models/ps-sidebar-menu-sub-item-props.d.ts +3 -0
- package/dist/models/ps-sidebar-menu-sub-item-props.js +2 -0
- package/dist/models/ps-sidebar-menu-sub-props.d.ts +3 -0
- package/dist/models/ps-sidebar-menu-sub-props.js +2 -0
- package/dist/models/ps-sidebar-nav-groups-props.d.ts +7 -0
- package/dist/models/ps-sidebar-nav-groups-props.js +2 -0
- package/dist/models/ps-sidebar-props.d.ts +6 -0
- package/dist/models/ps-sidebar-props.js +2 -0
- package/dist/models/ps-sidebar-provider-props.d.ts +6 -0
- package/dist/models/ps-sidebar-provider-props.js +2 -0
- package/dist/models/ps-sidebar-rail-props.d.ts +3 -0
- package/dist/models/ps-sidebar-rail-props.js +2 -0
- package/dist/models/ps-sidebar-separator-props.d.ts +4 -0
- package/dist/models/ps-sidebar-separator-props.js +2 -0
- package/dist/models/ps-sidebar-trigger-props.d.ts +4 -0
- package/dist/models/ps-sidebar-trigger-props.js +2 -0
- package/dist/models/ps-sidebar-user-menu-props.d.ts +5 -0
- package/dist/models/ps-sidebar-user-menu-props.js +2 -0
- package/dist/models/ps-sidebar-workspace-switcher-props.d.ts +11 -0
- package/dist/models/ps-sidebar-workspace-switcher-props.js +2 -0
- package/dist/services/ps-link-service.d.ts +5 -0
- package/dist/services/ps-link-service.js +49 -0
- package/dist/services/ps-sidebar-service.d.ts +3 -0
- package/dist/services/ps-sidebar-service.js +18 -0
- package/package.json +4 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronsUpDown, LogOut } from 'lucide-react';
|
|
4
|
+
import { PsAppSidebarConfig } from '../constants/ps-app-sidebar-config.js';
|
|
5
|
+
import { usePsSidebar } from '../hooks/use-ps-sidebar.js';
|
|
6
|
+
import { PsAvatarFallback } from './ps-avatar-fallback.js';
|
|
7
|
+
import { PsAvatarImage } from './ps-avatar-image.js';
|
|
8
|
+
import { PsAvatar } from './ps-avatar.js';
|
|
9
|
+
import { PsDropdownMenuContent } from './ps-dropdown-menu-content.js';
|
|
10
|
+
import { PsDropdownMenuItem } from './ps-dropdown-menu-item.js';
|
|
11
|
+
import { PsDropdownMenuLabel } from './ps-dropdown-menu-label.js';
|
|
12
|
+
import { PsDropdownMenuSeparator } from './ps-dropdown-menu-separator.js';
|
|
13
|
+
import { PsDropdownMenuTrigger } from './ps-dropdown-menu-trigger.js';
|
|
14
|
+
import { PsDropdownMenu } from './ps-dropdown-menu.js';
|
|
15
|
+
import { PsSidebarMenuButton } from './ps-sidebar-menu-button.js';
|
|
16
|
+
import { PsSidebarMenuItem } from './ps-sidebar-menu-item.js';
|
|
17
|
+
import { PsSidebarMenu } from './ps-sidebar-menu.js';
|
|
18
|
+
export const PsSidebarUserMenu = ({ logoutHref, user }) => {
|
|
19
|
+
const { isMobile } = usePsSidebar();
|
|
20
|
+
const avatar = (_jsxs(PsAvatar, { className: 'size-8 rounded-lg', children: [user.avatarUrl ? _jsx(PsAvatarImage, { alt: user.displayName, src: user.avatarUrl }) : null, _jsx(PsAvatarFallback, { className: 'rounded-lg text-xs', children: user.displayName.slice(0, 1).toUpperCase() })] }));
|
|
21
|
+
return (_jsx(PsSidebarMenu, { children: _jsx(PsSidebarMenuItem, { children: _jsxs(PsDropdownMenu, { children: [_jsx(PsDropdownMenuTrigger, { asChild: true, children: _jsxs(PsSidebarMenuButton, { className: 'data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground', size: 'lg', tooltip: user.displayName, children: [avatar, _jsxs("div", { className: 'grid flex-1 text-left text-sm leading-tight', children: [_jsx("span", { className: 'truncate font-semibold', children: user.displayName }), _jsx("span", { className: 'truncate text-xs text-muted-foreground', children: PsAppSidebarConfig.account })] }), _jsx(ChevronsUpDown, { className: 'ml-auto' })] }) }), _jsxs(PsDropdownMenuContent, { align: 'end', className: 'w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg', side: isMobile ? 'bottom' : 'right', sideOffset: 4, children: [_jsx(PsDropdownMenuLabel, { className: 'p-0 font-normal', children: _jsxs("div", { className: 'flex items-center gap-2 px-1 py-1.5 text-left text-sm', children: [avatar, _jsx("span", { className: 'truncate font-semibold', children: user.displayName })] }) }), _jsx(PsDropdownMenuSeparator, {}), _jsx("form", { action: logoutHref, method: 'post', children: _jsx(PsDropdownMenuItem, { asChild: true, children: _jsxs("button", { className: 'flex w-full cursor-pointer items-center gap-2', type: 'submit', children: [_jsx(LogOut, {}), PsAppSidebarConfig.signOut] }) }) })] })] }) }) }));
|
|
22
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronsUpDown } from 'lucide-react';
|
|
4
|
+
import { PsAppSidebarConfig } from '../constants/ps-app-sidebar-config.js';
|
|
5
|
+
import { usePsSidebar } from '../hooks/use-ps-sidebar.js';
|
|
6
|
+
import { PsLinkService } from '../services/ps-link-service.js';
|
|
7
|
+
import { PsDropdownMenuContent } from './ps-dropdown-menu-content.js';
|
|
8
|
+
import { PsDropdownMenuItem } from './ps-dropdown-menu-item.js';
|
|
9
|
+
import { PsDropdownMenuLabel } from './ps-dropdown-menu-label.js';
|
|
10
|
+
import { PsDropdownMenuTrigger } from './ps-dropdown-menu-trigger.js';
|
|
11
|
+
import { PsDropdownMenu } from './ps-dropdown-menu.js';
|
|
12
|
+
import { PsSidebarMenuButton } from './ps-sidebar-menu-button.js';
|
|
13
|
+
import { PsSidebarMenuItem } from './ps-sidebar-menu-item.js';
|
|
14
|
+
import { PsSidebarMenu } from './ps-sidebar-menu.js';
|
|
15
|
+
import { PsWorkspaceBadge } from './ps-workspace-badge.js';
|
|
16
|
+
export const PsSidebarWorkspaceSwitcher = ({ appTitle, homeHref, logoAlt = PsAppSidebarConfig.logoAlt, logoSrc, renderLink, switcher, }) => {
|
|
17
|
+
const { isMobile } = usePsSidebar();
|
|
18
|
+
const active = switcher === undefined ? undefined : switcher.items.find((item) => item.active);
|
|
19
|
+
const brand = (_jsx("div", { className: 'flex aspect-square size-8 shrink-0 items-center justify-center rounded-lg border bg-background', children: _jsx("img", { alt: logoAlt, className: 'size-5 object-contain', src: logoSrc }) }));
|
|
20
|
+
if (switcher === undefined) {
|
|
21
|
+
return (_jsx(PsSidebarMenu, { children: _jsx(PsSidebarMenuItem, { children: _jsx(PsSidebarMenuButton, { asChild: true, size: 'lg', tooltip: appTitle, children: PsLinkService.render(renderLink, {
|
|
22
|
+
children: (_jsxs(_Fragment, { children: [brand, _jsx("span", { className: 'truncate font-semibold', children: appTitle })] })),
|
|
23
|
+
className: '',
|
|
24
|
+
href: homeHref,
|
|
25
|
+
}) }) }) }));
|
|
26
|
+
}
|
|
27
|
+
return (_jsx(PsSidebarMenu, { children: _jsx(PsSidebarMenuItem, { children: _jsxs(PsDropdownMenu, { children: [_jsx(PsDropdownMenuTrigger, { asChild: true, children: _jsxs(PsSidebarMenuButton, { className: 'data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground', size: 'lg', tooltip: active === undefined ? appTitle : active.label, children: [active === undefined ? (brand) : (_jsx(PsWorkspaceBadge, { active: true, iconUrl: active.iconUrl, initials: active.initials, size: 'lg' })), _jsxs("div", { className: 'grid flex-1 text-left text-sm leading-tight', children: [_jsx("span", { className: 'truncate font-semibold', children: active === undefined ? appTitle : active.label }), _jsx("span", { className: 'truncate text-xs text-muted-foreground', children: active === undefined ? switcher.placeholder : appTitle })] }), _jsx(ChevronsUpDown, { className: 'ml-auto' })] }) }), _jsxs(PsDropdownMenuContent, { align: 'start', className: 'w-[--radix-dropdown-menu-trigger-width] min-w-60 rounded-lg', side: isMobile ? 'bottom' : 'right', sideOffset: 4, children: [_jsx(PsDropdownMenuLabel, { className: 'text-xs text-muted-foreground', children: switcher.label }), _jsx(PsDropdownMenuItem, { asChild: true, className: 'gap-2 p-2', children: PsLinkService.render(renderLink, {
|
|
28
|
+
children: (_jsxs(_Fragment, { children: [brand, _jsx("span", { className: 'font-medium', children: appTitle })] })),
|
|
29
|
+
className: '',
|
|
30
|
+
href: homeHref,
|
|
31
|
+
}) }), switcher.items.map((item) => (_jsx(PsDropdownMenuItem, { asChild: true, className: 'gap-2 p-2', children: PsLinkService.render(renderLink, {
|
|
32
|
+
active: item.active,
|
|
33
|
+
children: (_jsxs(_Fragment, { children: [_jsx(PsWorkspaceBadge, { active: item.active, iconUrl: item.iconUrl, initials: item.initials, size: 'lg' }), _jsxs("span", { className: 'grid min-w-0 flex-1 leading-tight', children: [_jsx("span", { className: 'truncate font-medium', children: item.label }), _jsx("span", { className: 'truncate text-xs text-muted-foreground', children: item.description })] })] })),
|
|
34
|
+
className: '',
|
|
35
|
+
href: item.href,
|
|
36
|
+
}) }, item.id)))] })] }) }) }));
|
|
37
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { PsSidebarConfig } from '../constants/ps-sidebar-config.js';
|
|
5
|
+
import { PsSidebarState } from '../constants/ps-sidebar-state.js';
|
|
6
|
+
import { usePsSidebar } from '../hooks/use-ps-sidebar.js';
|
|
7
|
+
import { PsClassNameService } from '../services/ps-class-name-service.js';
|
|
8
|
+
import { PsSheetContent } from './ps-sheet-content.js';
|
|
9
|
+
import { PsSheetDescription } from './ps-sheet-description.js';
|
|
10
|
+
import { PsSheetHeader } from './ps-sheet-header.js';
|
|
11
|
+
import { PsSheetTitle } from './ps-sheet-title.js';
|
|
12
|
+
import { PsSheet } from './ps-sheet.js';
|
|
13
|
+
export const PsSidebar = React.forwardRef(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {
|
|
14
|
+
const { isMobile, state, openMobile, setOpenMobile } = usePsSidebar();
|
|
15
|
+
const isFramed = variant === 'floating' || variant === 'inset';
|
|
16
|
+
if (collapsible === 'none') {
|
|
17
|
+
return (_jsx("div", { ref: ref, className: PsClassNameService.merge('flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground', className), ...props, children: children }));
|
|
18
|
+
}
|
|
19
|
+
if (isMobile) {
|
|
20
|
+
return (_jsx(PsSheet, { open: openMobile, onOpenChange: setOpenMobile, children: _jsxs(PsSheetContent, { "data-sidebar": 'sidebar', "data-mobile": 'true', className: 'w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden', style: { '--sidebar-width': PsSidebarConfig.widthMobile }, side: side, children: [_jsxs(PsSheetHeader, { className: 'sr-only', children: [_jsx(PsSheetTitle, { children: PsSidebarConfig.mobileTitle }), _jsx(PsSheetDescription, { children: PsSidebarConfig.mobileDescription })] }), _jsx("div", { className: 'flex h-full w-full flex-col', children: children })] }) }));
|
|
21
|
+
}
|
|
22
|
+
return (_jsxs("div", { ref: ref, className: 'group peer hidden text-sidebar-foreground md:block', "data-state": state, "data-collapsible": state === PsSidebarState.Collapsed ? collapsible : '', "data-variant": variant, "data-side": side, children: [_jsx("div", { className: PsClassNameService.merge('relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear', 'group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180', isFramed
|
|
23
|
+
? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'
|
|
24
|
+
: 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]') }), _jsx("div", { className: PsClassNameService.merge('fixed inset-y-0 z-docked hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex', side === 'left'
|
|
25
|
+
? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'
|
|
26
|
+
: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]', isFramed
|
|
27
|
+
? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'
|
|
28
|
+
: 'group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l', className), ...props, children: _jsx("div", { "data-sidebar": 'sidebar', className: 'flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow', children: children }) })] }));
|
|
29
|
+
});
|
|
30
|
+
PsSidebar.displayName = 'PsSidebar';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const PsSidebarConfig = {
|
|
2
|
+
cookieMaxAgeSeconds: 60 * 60 * 24 * 365,
|
|
3
|
+
cookieName: 'ps_sidebar_state',
|
|
4
|
+
keyboardShortcut: 'b',
|
|
5
|
+
mobileBreakpoint: 768,
|
|
6
|
+
mobileTitle: 'Navigation',
|
|
7
|
+
mobileDescription: 'Pages and products in this app.',
|
|
8
|
+
missingContext: 'usePsSidebar must be used inside PsSidebarProvider.',
|
|
9
|
+
railLabel: 'Toggle sidebar',
|
|
10
|
+
toggleLabel: 'Toggle sidebar',
|
|
11
|
+
width: '16rem',
|
|
12
|
+
widthIcon: '3rem',
|
|
13
|
+
widthMobile: '18rem',
|
|
14
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
export const PsSidebarMenuButtonVariants = cva('peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', {
|
|
3
|
+
variants: {
|
|
4
|
+
variant: {
|
|
5
|
+
default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',
|
|
6
|
+
outline: 'bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]',
|
|
7
|
+
},
|
|
8
|
+
size: {
|
|
9
|
+
default: 'h-8 text-sm',
|
|
10
|
+
sm: 'h-7 text-xs',
|
|
11
|
+
lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: {
|
|
15
|
+
variant: 'default',
|
|
16
|
+
size: 'default',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const usePsDialogState = () => {
|
|
3
|
+
const [value, setValue] = React.useState({ item: null, open: false });
|
|
4
|
+
const show = React.useCallback((item) => setValue({ item, open: true }), []);
|
|
5
|
+
const close = React.useCallback(() => setValue((current) => ({ ...current, open: false })), []);
|
|
6
|
+
const onOpenChange = React.useCallback((open) => setValue((current) => ({ ...current, open })), []);
|
|
7
|
+
return { close, item: value.item, onOpenChange, open: value.open, show };
|
|
8
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PsSidebarConfig } from '../constants/ps-sidebar-config.js';
|
|
3
|
+
export const usePsIsMobile = () => {
|
|
4
|
+
const [isMobile, setIsMobile] = React.useState(false);
|
|
5
|
+
React.useEffect(() => {
|
|
6
|
+
const query = window.matchMedia(`(max-width: ${PsSidebarConfig.mobileBreakpoint - 1}px)`);
|
|
7
|
+
const update = () => setIsMobile(query.matches);
|
|
8
|
+
update();
|
|
9
|
+
query.addEventListener('change', update);
|
|
10
|
+
return () => query.removeEventListener('change', update);
|
|
11
|
+
}, []);
|
|
12
|
+
return isMobile;
|
|
13
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PsSidebarConfig } from '../constants/ps-sidebar-config.js';
|
|
3
|
+
import { PsSidebarContext } from '../contexts/ps-sidebar-context.js';
|
|
4
|
+
export const usePsSidebar = () => {
|
|
5
|
+
const context = React.useContext(PsSidebarContext);
|
|
6
|
+
if (context === null)
|
|
7
|
+
throw new Error(PsSidebarConfig.missingContext);
|
|
8
|
+
return context;
|
|
9
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export * from './components/ps-alert-dialog.js';
|
|
|
13
13
|
export * from './components/ps-alert-title.js';
|
|
14
14
|
export * from './components/ps-alert.js';
|
|
15
15
|
export * from './components/ps-app-header.js';
|
|
16
|
+
export * from './components/ps-app-sidebar.js';
|
|
16
17
|
export * from './components/ps-app-switcher-section.js';
|
|
17
18
|
export * from './components/ps-app-switcher-tile.js';
|
|
18
19
|
export * from './components/ps-app-switcher.js';
|
|
@@ -140,6 +141,30 @@ export * from './components/ps-sheet-portal.js';
|
|
|
140
141
|
export * from './components/ps-sheet-title.js';
|
|
141
142
|
export * from './components/ps-sheet-trigger.js';
|
|
142
143
|
export * from './components/ps-sheet.js';
|
|
144
|
+
export * from './components/ps-sidebar-content.js';
|
|
145
|
+
export * from './components/ps-sidebar-footer.js';
|
|
146
|
+
export * from './components/ps-sidebar-group-content.js';
|
|
147
|
+
export * from './components/ps-sidebar-group-label.js';
|
|
148
|
+
export * from './components/ps-sidebar-group.js';
|
|
149
|
+
export * from './components/ps-sidebar-header.js';
|
|
150
|
+
export * from './components/ps-sidebar-inset.js';
|
|
151
|
+
export * from './components/ps-sidebar-layout.js';
|
|
152
|
+
export * from './components/ps-sidebar-menu-action.js';
|
|
153
|
+
export * from './components/ps-sidebar-menu-badge.js';
|
|
154
|
+
export * from './components/ps-sidebar-menu-button.js';
|
|
155
|
+
export * from './components/ps-sidebar-menu-item.js';
|
|
156
|
+
export * from './components/ps-sidebar-menu-sub-button.js';
|
|
157
|
+
export * from './components/ps-sidebar-menu-sub-item.js';
|
|
158
|
+
export * from './components/ps-sidebar-menu-sub.js';
|
|
159
|
+
export * from './components/ps-sidebar-menu.js';
|
|
160
|
+
export * from './components/ps-sidebar-nav-groups.js';
|
|
161
|
+
export * from './components/ps-sidebar-provider.js';
|
|
162
|
+
export * from './components/ps-sidebar-rail.js';
|
|
163
|
+
export * from './components/ps-sidebar-separator.js';
|
|
164
|
+
export * from './components/ps-sidebar-trigger.js';
|
|
165
|
+
export * from './components/ps-sidebar-user-menu.js';
|
|
166
|
+
export * from './components/ps-sidebar-workspace-switcher.js';
|
|
167
|
+
export * from './components/ps-sidebar.js';
|
|
143
168
|
export * from './components/ps-skeleton.js';
|
|
144
169
|
export * from './components/ps-skeleton-card-grid.js';
|
|
145
170
|
export * from './components/ps-skeleton-list-card.js';
|
|
@@ -180,6 +205,7 @@ export * from './constants/ps-alert-variants.js';
|
|
|
180
205
|
export * from './constants/ps-app-category-labels.js';
|
|
181
206
|
export * from './constants/ps-app-category.js';
|
|
182
207
|
export * from './constants/ps-app-key.js';
|
|
208
|
+
export * from './constants/ps-app-sidebar-config.js';
|
|
183
209
|
export * from './constants/ps-app-switcher-config.js';
|
|
184
210
|
export * from './constants/ps-badge-variants.js';
|
|
185
211
|
export * from './constants/ps-button-variants.js';
|
|
@@ -201,10 +227,17 @@ export * from './constants/ps-password-input-config.js';
|
|
|
201
227
|
export * from './constants/ps-phone-input-config.js';
|
|
202
228
|
export * from './constants/ps-root-status-messages.js';
|
|
203
229
|
export * from './constants/ps-sheet-variants.js';
|
|
230
|
+
export * from './constants/ps-sidebar-config.js';
|
|
231
|
+
export * from './constants/ps-sidebar-menu-button-variants.js';
|
|
232
|
+
export * from './constants/ps-sidebar-state.js';
|
|
204
233
|
export * from './constants/ps-toggle-variants.js';
|
|
205
234
|
export * from './contexts/ps-chart-context.js';
|
|
235
|
+
export * from './contexts/ps-sidebar-context.js';
|
|
206
236
|
export * from './contexts/ps-toggle-group-context.js';
|
|
207
237
|
export * from './hooks/use-ps-chart.js';
|
|
238
|
+
export * from './hooks/use-ps-dialog-state.js';
|
|
239
|
+
export * from './hooks/use-ps-is-mobile.js';
|
|
240
|
+
export * from './hooks/use-ps-sidebar.js';
|
|
208
241
|
export * from './models/ps-alert-description-props.js';
|
|
209
242
|
export * from './models/ps-alert-dialog-action-props.js';
|
|
210
243
|
export * from './models/ps-alert-dialog-cancel-props.js';
|
|
@@ -220,6 +253,9 @@ export * from './models/ps-app-header-link-data.js';
|
|
|
220
253
|
export * from './models/ps-app-header-nav-item-data.js';
|
|
221
254
|
export * from './models/ps-app-header-props.js';
|
|
222
255
|
export * from './models/ps-app-header-user-data.js';
|
|
256
|
+
export * from './models/ps-app-sidebar-group-data.js';
|
|
257
|
+
export * from './models/ps-app-sidebar-item-data.js';
|
|
258
|
+
export * from './models/ps-app-sidebar-props.js';
|
|
223
259
|
export * from './models/ps-app-switcher-link-data.js';
|
|
224
260
|
export * from './models/ps-app-switcher-props.js';
|
|
225
261
|
export * from './models/ps-app-switcher-section-data.js';
|
|
@@ -270,6 +306,8 @@ export * from './models/ps-dialog-description-props.js';
|
|
|
270
306
|
export * from './models/ps-dialog-footer-props.js';
|
|
271
307
|
export * from './models/ps-dialog-header-props.js';
|
|
272
308
|
export * from './models/ps-dialog-overlay-props.js';
|
|
309
|
+
export * from './models/ps-dialog-state-data.js';
|
|
310
|
+
export * from './models/ps-dialog-state-value.js';
|
|
273
311
|
export * from './models/ps-dialog-title-props.js';
|
|
274
312
|
export * from './models/ps-dropdown-menu-checkbox-item-props.js';
|
|
275
313
|
export * from './models/ps-dropdown-menu-content-props.js';
|
|
@@ -329,6 +367,31 @@ export * from './models/ps-sheet-footer-props.js';
|
|
|
329
367
|
export * from './models/ps-sheet-header-props.js';
|
|
330
368
|
export * from './models/ps-sheet-overlay-props.js';
|
|
331
369
|
export * from './models/ps-sheet-title-props.js';
|
|
370
|
+
export * from './models/ps-sidebar-content-props.js';
|
|
371
|
+
export * from './models/ps-sidebar-context-data.js';
|
|
372
|
+
export * from './models/ps-sidebar-footer-props.js';
|
|
373
|
+
export * from './models/ps-sidebar-group-content-props.js';
|
|
374
|
+
export * from './models/ps-sidebar-group-label-props.js';
|
|
375
|
+
export * from './models/ps-sidebar-group-props.js';
|
|
376
|
+
export * from './models/ps-sidebar-header-props.js';
|
|
377
|
+
export * from './models/ps-sidebar-inset-props.js';
|
|
378
|
+
export * from './models/ps-sidebar-layout-props.js';
|
|
379
|
+
export * from './models/ps-sidebar-menu-action-props.js';
|
|
380
|
+
export * from './models/ps-sidebar-menu-badge-props.js';
|
|
381
|
+
export * from './models/ps-sidebar-menu-button-props.js';
|
|
382
|
+
export * from './models/ps-sidebar-menu-item-props.js';
|
|
383
|
+
export * from './models/ps-sidebar-menu-props.js';
|
|
384
|
+
export * from './models/ps-sidebar-menu-sub-button-props.js';
|
|
385
|
+
export * from './models/ps-sidebar-menu-sub-item-props.js';
|
|
386
|
+
export * from './models/ps-sidebar-menu-sub-props.js';
|
|
387
|
+
export * from './models/ps-sidebar-nav-groups-props.js';
|
|
388
|
+
export * from './models/ps-sidebar-props.js';
|
|
389
|
+
export * from './models/ps-sidebar-provider-props.js';
|
|
390
|
+
export * from './models/ps-sidebar-rail-props.js';
|
|
391
|
+
export * from './models/ps-sidebar-separator-props.js';
|
|
392
|
+
export * from './models/ps-sidebar-trigger-props.js';
|
|
393
|
+
export * from './models/ps-sidebar-user-menu-props.js';
|
|
394
|
+
export * from './models/ps-sidebar-workspace-switcher-props.js';
|
|
332
395
|
export * from './models/ps-skeleton-props.js';
|
|
333
396
|
export * from './models/ps-skeleton-card-grid-props.js';
|
|
334
397
|
export * from './models/ps-skeleton-list-card-props.js';
|
|
@@ -383,7 +446,9 @@ export * from './models/ps-pagination-item-props.js';
|
|
|
383
446
|
export * from './models/ps-pagination-link-props.js';
|
|
384
447
|
export * from './models/ps-pagination-props.js';
|
|
385
448
|
export * from './constants/ps-pagination-config.js';
|
|
449
|
+
export * from './services/ps-link-service.js';
|
|
386
450
|
export * from './services/ps-pagination-service.js';
|
|
451
|
+
export * from './services/ps-sidebar-service.js';
|
|
387
452
|
export * from './components/ps-confirm-action.js';
|
|
388
453
|
export * from './components/ps-notice.js';
|
|
389
454
|
export * from './components/ps-page-header.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export class PsLinkService {
|
|
3
|
+
static render(renderLink, props) {
|
|
4
|
+
if (renderLink !== undefined)
|
|
5
|
+
return renderLink(props);
|
|
6
|
+
return React.createElement('a', {
|
|
7
|
+
'aria-current': props.active ? 'page' : undefined,
|
|
8
|
+
'className': props.className,
|
|
9
|
+
'href': props.href,
|
|
10
|
+
}, props.children);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PsSidebarConfig } from '../constants/ps-sidebar-config.js';
|
|
2
|
+
export class PsSidebarService {
|
|
3
|
+
static defaultOpen(cookieHeader) {
|
|
4
|
+
if (cookieHeader === null)
|
|
5
|
+
return true;
|
|
6
|
+
const entry = cookieHeader
|
|
7
|
+
.split(';')
|
|
8
|
+
.map((part) => part.trim())
|
|
9
|
+
.find((part) => part.startsWith(`${PsSidebarConfig.cookieName}=`));
|
|
10
|
+
return entry === undefined
|
|
11
|
+
? true
|
|
12
|
+
: entry.slice(PsSidebarConfig.cookieName.length + 1) !== 'false';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.usePsDialogState = void 0;
|
|
37
|
+
const React = __importStar(require("react"));
|
|
38
|
+
const usePsDialogState = () => {
|
|
39
|
+
const [value, setValue] = React.useState({ item: null, open: false });
|
|
40
|
+
const show = React.useCallback((item) => setValue({ item, open: true }), []);
|
|
41
|
+
const close = React.useCallback(() => setValue((current) => ({ ...current, open: false })), []);
|
|
42
|
+
const onOpenChange = React.useCallback((open) => setValue((current) => ({ ...current, open })), []);
|
|
43
|
+
return { close, item: value.item, onOpenChange, open: value.open, show };
|
|
44
|
+
};
|
|
45
|
+
exports.usePsDialogState = usePsDialogState;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const usePsIsMobile: () => boolean;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.usePsIsMobile = void 0;
|
|
37
|
+
const React = __importStar(require("react"));
|
|
38
|
+
const ps_sidebar_config_js_1 = require("../constants/ps-sidebar-config.js");
|
|
39
|
+
const usePsIsMobile = () => {
|
|
40
|
+
const [isMobile, setIsMobile] = React.useState(false);
|
|
41
|
+
React.useEffect(() => {
|
|
42
|
+
const query = window.matchMedia(`(max-width: ${ps_sidebar_config_js_1.PsSidebarConfig.mobileBreakpoint - 1}px)`);
|
|
43
|
+
const update = () => setIsMobile(query.matches);
|
|
44
|
+
update();
|
|
45
|
+
query.addEventListener('change', update);
|
|
46
|
+
return () => query.removeEventListener('change', update);
|
|
47
|
+
}, []);
|
|
48
|
+
return isMobile;
|
|
49
|
+
};
|
|
50
|
+
exports.usePsIsMobile = usePsIsMobile;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.usePsSidebar = void 0;
|
|
37
|
+
const React = __importStar(require("react"));
|
|
38
|
+
const ps_sidebar_config_js_1 = require("../constants/ps-sidebar-config.js");
|
|
39
|
+
const ps_sidebar_context_js_1 = require("../contexts/ps-sidebar-context.js");
|
|
40
|
+
const usePsSidebar = () => {
|
|
41
|
+
const context = React.useContext(ps_sidebar_context_js_1.PsSidebarContext);
|
|
42
|
+
if (context === null)
|
|
43
|
+
throw new Error(ps_sidebar_config_js_1.PsSidebarConfig.missingContext);
|
|
44
|
+
return context;
|
|
45
|
+
};
|
|
46
|
+
exports.usePsSidebar = usePsSidebar;
|