@pallasoft/ps-internal-components 1.5.1 → 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.
Files changed (209) hide show
  1. package/dist/components/ps-alert-dialog-content.js +1 -1
  2. package/dist/components/ps-alert-dialog-overlay.js +1 -1
  3. package/dist/components/ps-app-sidebar.d.ts +2 -0
  4. package/dist/components/ps-app-sidebar.js +14 -0
  5. package/dist/components/ps-dialog-content.js +1 -1
  6. package/dist/components/ps-dialog-overlay.js +1 -1
  7. package/dist/components/ps-sheet-overlay.js +1 -1
  8. package/dist/components/ps-sidebar-content.d.ts +3 -0
  9. package/dist/components/ps-sidebar-content.js +41 -0
  10. package/dist/components/ps-sidebar-footer.d.ts +3 -0
  11. package/dist/components/ps-sidebar-footer.js +41 -0
  12. package/dist/components/ps-sidebar-group-content.d.ts +3 -0
  13. package/dist/components/ps-sidebar-group-content.js +41 -0
  14. package/dist/components/ps-sidebar-group-label.d.ts +3 -0
  15. package/dist/components/ps-sidebar-group-label.js +45 -0
  16. package/dist/components/ps-sidebar-group.d.ts +3 -0
  17. package/dist/components/ps-sidebar-group.js +41 -0
  18. package/dist/components/ps-sidebar-header.d.ts +3 -0
  19. package/dist/components/ps-sidebar-header.js +41 -0
  20. package/dist/components/ps-sidebar-inset.d.ts +3 -0
  21. package/dist/components/ps-sidebar-inset.js +41 -0
  22. package/dist/components/ps-sidebar-layout.d.ts +3 -0
  23. package/dist/components/ps-sidebar-layout.js +58 -0
  24. package/dist/components/ps-sidebar-menu-action.d.ts +3 -0
  25. package/dist/components/ps-sidebar-menu-action.js +46 -0
  26. package/dist/components/ps-sidebar-menu-badge.d.ts +3 -0
  27. package/dist/components/ps-sidebar-menu-badge.js +41 -0
  28. package/dist/components/ps-sidebar-menu-button.d.ts +3 -0
  29. package/dist/components/ps-sidebar-menu-button.js +56 -0
  30. package/dist/components/ps-sidebar-menu-item.d.ts +3 -0
  31. package/dist/components/ps-sidebar-menu-item.js +41 -0
  32. package/dist/components/ps-sidebar-menu-sub-button.d.ts +3 -0
  33. package/dist/components/ps-sidebar-menu-sub-button.js +45 -0
  34. package/dist/components/ps-sidebar-menu-sub-item.d.ts +3 -0
  35. package/dist/components/ps-sidebar-menu-sub-item.js +41 -0
  36. package/dist/components/ps-sidebar-menu-sub.d.ts +3 -0
  37. package/dist/components/ps-sidebar-menu-sub.js +41 -0
  38. package/dist/components/ps-sidebar-menu.d.ts +3 -0
  39. package/dist/components/ps-sidebar-menu.js +41 -0
  40. package/dist/components/ps-sidebar-nav-groups.d.ts +2 -0
  41. package/dist/components/ps-sidebar-nav-groups.js +19 -0
  42. package/dist/components/ps-sidebar-provider.d.ts +3 -0
  43. package/dist/components/ps-sidebar-provider.js +89 -0
  44. package/dist/components/ps-sidebar-rail.d.ts +3 -0
  45. package/dist/components/ps-sidebar-rail.js +46 -0
  46. package/dist/components/ps-sidebar-separator.d.ts +3 -0
  47. package/dist/components/ps-sidebar-separator.js +42 -0
  48. package/dist/components/ps-sidebar-trigger.d.ts +3 -0
  49. package/dist/components/ps-sidebar-trigger.js +51 -0
  50. package/dist/components/ps-sidebar-user-menu.d.ts +2 -0
  51. package/dist/components/ps-sidebar-user-menu.js +26 -0
  52. package/dist/components/ps-sidebar-workspace-switcher.d.ts +2 -0
  53. package/dist/components/ps-sidebar-workspace-switcher.js +41 -0
  54. package/dist/components/ps-sidebar.d.ts +3 -0
  55. package/dist/components/ps-sidebar.js +66 -0
  56. package/dist/constants/ps-app-sidebar-config.d.ts +7 -0
  57. package/dist/constants/ps-app-sidebar-config.js +10 -0
  58. package/dist/constants/ps-sidebar-config.d.ts +14 -0
  59. package/dist/constants/ps-sidebar-config.js +17 -0
  60. package/dist/constants/ps-sidebar-menu-button-variants.d.ts +4 -0
  61. package/dist/constants/ps-sidebar-menu-button-variants.js +21 -0
  62. package/dist/constants/ps-sidebar-state.d.ts +4 -0
  63. package/dist/constants/ps-sidebar-state.js +8 -0
  64. package/dist/contexts/ps-sidebar-context.d.ts +3 -0
  65. package/dist/contexts/ps-sidebar-context.js +38 -0
  66. package/dist/esm/components/ps-alert-dialog-content.js +1 -1
  67. package/dist/esm/components/ps-alert-dialog-overlay.js +1 -1
  68. package/dist/esm/components/ps-app-sidebar.js +10 -0
  69. package/dist/esm/components/ps-dialog-content.js +1 -1
  70. package/dist/esm/components/ps-dialog-overlay.js +1 -1
  71. package/dist/esm/components/ps-sheet-overlay.js +1 -1
  72. package/dist/esm/components/ps-sidebar-content.js +5 -0
  73. package/dist/esm/components/ps-sidebar-footer.js +5 -0
  74. package/dist/esm/components/ps-sidebar-group-content.js +5 -0
  75. package/dist/esm/components/ps-sidebar-group-label.js +9 -0
  76. package/dist/esm/components/ps-sidebar-group.js +5 -0
  77. package/dist/esm/components/ps-sidebar-header.js +5 -0
  78. package/dist/esm/components/ps-sidebar-inset.js +5 -0
  79. package/dist/esm/components/ps-sidebar-layout.js +21 -0
  80. package/dist/esm/components/ps-sidebar-menu-action.js +10 -0
  81. package/dist/esm/components/ps-sidebar-menu-badge.js +5 -0
  82. package/dist/esm/components/ps-sidebar-menu-button.js +20 -0
  83. package/dist/esm/components/ps-sidebar-menu-item.js +5 -0
  84. package/dist/esm/components/ps-sidebar-menu-sub-button.js +9 -0
  85. package/dist/esm/components/ps-sidebar-menu-sub-item.js +5 -0
  86. package/dist/esm/components/ps-sidebar-menu-sub.js +5 -0
  87. package/dist/esm/components/ps-sidebar-menu.js +5 -0
  88. package/dist/esm/components/ps-sidebar-nav-groups.js +15 -0
  89. package/dist/esm/components/ps-sidebar-provider.js +53 -0
  90. package/dist/esm/components/ps-sidebar-rail.js +10 -0
  91. package/dist/esm/components/ps-sidebar-separator.js +6 -0
  92. package/dist/esm/components/ps-sidebar-trigger.js +15 -0
  93. package/dist/esm/components/ps-sidebar-user-menu.js +22 -0
  94. package/dist/esm/components/ps-sidebar-workspace-switcher.js +37 -0
  95. package/dist/esm/components/ps-sidebar.js +30 -0
  96. package/dist/esm/constants/ps-app-sidebar-config.js +7 -0
  97. package/dist/esm/constants/ps-sidebar-config.js +14 -0
  98. package/dist/esm/constants/ps-sidebar-menu-button-variants.js +18 -0
  99. package/dist/esm/constants/ps-sidebar-state.js +5 -0
  100. package/dist/esm/contexts/ps-sidebar-context.js +2 -0
  101. package/dist/esm/hooks/use-ps-dialog-state.js +8 -0
  102. package/dist/esm/hooks/use-ps-is-mobile.js +13 -0
  103. package/dist/esm/hooks/use-ps-sidebar.js +9 -0
  104. package/dist/esm/index.js +65 -0
  105. package/dist/esm/models/ps-app-sidebar-group-data.js +1 -0
  106. package/dist/esm/models/ps-app-sidebar-item-data.js +1 -0
  107. package/dist/esm/models/ps-app-sidebar-props.js +1 -0
  108. package/dist/esm/models/ps-dialog-state-data.js +1 -0
  109. package/dist/esm/models/ps-dialog-state-value.js +1 -0
  110. package/dist/esm/models/ps-sidebar-content-props.js +1 -0
  111. package/dist/esm/models/ps-sidebar-context-data.js +1 -0
  112. package/dist/esm/models/ps-sidebar-footer-props.js +1 -0
  113. package/dist/esm/models/ps-sidebar-group-content-props.js +1 -0
  114. package/dist/esm/models/ps-sidebar-group-label-props.js +1 -0
  115. package/dist/esm/models/ps-sidebar-group-props.js +1 -0
  116. package/dist/esm/models/ps-sidebar-header-props.js +1 -0
  117. package/dist/esm/models/ps-sidebar-inset-props.js +1 -0
  118. package/dist/esm/models/ps-sidebar-layout-props.js +1 -0
  119. package/dist/esm/models/ps-sidebar-menu-action-props.js +1 -0
  120. package/dist/esm/models/ps-sidebar-menu-badge-props.js +1 -0
  121. package/dist/esm/models/ps-sidebar-menu-button-props.js +1 -0
  122. package/dist/esm/models/ps-sidebar-menu-item-props.js +1 -0
  123. package/dist/esm/models/ps-sidebar-menu-props.js +1 -0
  124. package/dist/esm/models/ps-sidebar-menu-sub-button-props.js +1 -0
  125. package/dist/esm/models/ps-sidebar-menu-sub-item-props.js +1 -0
  126. package/dist/esm/models/ps-sidebar-menu-sub-props.js +1 -0
  127. package/dist/esm/models/ps-sidebar-nav-groups-props.js +1 -0
  128. package/dist/esm/models/ps-sidebar-props.js +1 -0
  129. package/dist/esm/models/ps-sidebar-provider-props.js +1 -0
  130. package/dist/esm/models/ps-sidebar-rail-props.js +1 -0
  131. package/dist/esm/models/ps-sidebar-separator-props.js +1 -0
  132. package/dist/esm/models/ps-sidebar-trigger-props.js +1 -0
  133. package/dist/esm/models/ps-sidebar-user-menu-props.js +1 -0
  134. package/dist/esm/models/ps-sidebar-workspace-switcher-props.js +1 -0
  135. package/dist/esm/services/ps-link-service.js +12 -0
  136. package/dist/esm/services/ps-sidebar-service.js +14 -0
  137. package/dist/hooks/use-ps-dialog-state.d.ts +2 -0
  138. package/dist/hooks/use-ps-dialog-state.js +45 -0
  139. package/dist/hooks/use-ps-is-mobile.d.ts +1 -0
  140. package/dist/hooks/use-ps-is-mobile.js +50 -0
  141. package/dist/hooks/use-ps-sidebar.d.ts +2 -0
  142. package/dist/hooks/use-ps-sidebar.js +46 -0
  143. package/dist/index.d.ts +65 -0
  144. package/dist/index.js +65 -0
  145. package/dist/models/ps-app-sidebar-group-data.d.ts +6 -0
  146. package/dist/models/ps-app-sidebar-group-data.js +2 -0
  147. package/dist/models/ps-app-sidebar-item-data.d.ts +9 -0
  148. package/dist/models/ps-app-sidebar-item-data.js +2 -0
  149. package/dist/models/ps-app-sidebar-props.d.ts +16 -0
  150. package/dist/models/ps-app-sidebar-props.js +2 -0
  151. package/dist/models/ps-dialog-state-data.d.ts +7 -0
  152. package/dist/models/ps-dialog-state-data.js +2 -0
  153. package/dist/models/ps-dialog-state-value.d.ts +4 -0
  154. package/dist/models/ps-dialog-state-value.js +2 -0
  155. package/dist/models/ps-sidebar-content-props.d.ts +3 -0
  156. package/dist/models/ps-sidebar-content-props.js +2 -0
  157. package/dist/models/ps-sidebar-context-data.d.ts +10 -0
  158. package/dist/models/ps-sidebar-context-data.js +2 -0
  159. package/dist/models/ps-sidebar-footer-props.d.ts +3 -0
  160. package/dist/models/ps-sidebar-footer-props.js +2 -0
  161. package/dist/models/ps-sidebar-group-content-props.d.ts +3 -0
  162. package/dist/models/ps-sidebar-group-content-props.js +2 -0
  163. package/dist/models/ps-sidebar-group-label-props.d.ts +4 -0
  164. package/dist/models/ps-sidebar-group-label-props.js +2 -0
  165. package/dist/models/ps-sidebar-group-props.d.ts +3 -0
  166. package/dist/models/ps-sidebar-group-props.js +2 -0
  167. package/dist/models/ps-sidebar-header-props.d.ts +3 -0
  168. package/dist/models/ps-sidebar-header-props.js +2 -0
  169. package/dist/models/ps-sidebar-inset-props.d.ts +3 -0
  170. package/dist/models/ps-sidebar-inset-props.js +2 -0
  171. package/dist/models/ps-sidebar-layout-props.d.ts +11 -0
  172. package/dist/models/ps-sidebar-layout-props.js +2 -0
  173. package/dist/models/ps-sidebar-menu-action-props.d.ts +5 -0
  174. package/dist/models/ps-sidebar-menu-action-props.js +2 -0
  175. package/dist/models/ps-sidebar-menu-badge-props.d.ts +3 -0
  176. package/dist/models/ps-sidebar-menu-badge-props.js +2 -0
  177. package/dist/models/ps-sidebar-menu-button-props.d.ts +8 -0
  178. package/dist/models/ps-sidebar-menu-button-props.js +2 -0
  179. package/dist/models/ps-sidebar-menu-item-props.d.ts +3 -0
  180. package/dist/models/ps-sidebar-menu-item-props.js +2 -0
  181. package/dist/models/ps-sidebar-menu-props.d.ts +3 -0
  182. package/dist/models/ps-sidebar-menu-props.js +2 -0
  183. package/dist/models/ps-sidebar-menu-sub-button-props.d.ts +6 -0
  184. package/dist/models/ps-sidebar-menu-sub-button-props.js +2 -0
  185. package/dist/models/ps-sidebar-menu-sub-item-props.d.ts +3 -0
  186. package/dist/models/ps-sidebar-menu-sub-item-props.js +2 -0
  187. package/dist/models/ps-sidebar-menu-sub-props.d.ts +3 -0
  188. package/dist/models/ps-sidebar-menu-sub-props.js +2 -0
  189. package/dist/models/ps-sidebar-nav-groups-props.d.ts +7 -0
  190. package/dist/models/ps-sidebar-nav-groups-props.js +2 -0
  191. package/dist/models/ps-sidebar-props.d.ts +6 -0
  192. package/dist/models/ps-sidebar-props.js +2 -0
  193. package/dist/models/ps-sidebar-provider-props.d.ts +6 -0
  194. package/dist/models/ps-sidebar-provider-props.js +2 -0
  195. package/dist/models/ps-sidebar-rail-props.d.ts +3 -0
  196. package/dist/models/ps-sidebar-rail-props.js +2 -0
  197. package/dist/models/ps-sidebar-separator-props.d.ts +4 -0
  198. package/dist/models/ps-sidebar-separator-props.js +2 -0
  199. package/dist/models/ps-sidebar-trigger-props.d.ts +4 -0
  200. package/dist/models/ps-sidebar-trigger-props.js +2 -0
  201. package/dist/models/ps-sidebar-user-menu-props.d.ts +5 -0
  202. package/dist/models/ps-sidebar-user-menu-props.js +2 -0
  203. package/dist/models/ps-sidebar-workspace-switcher-props.d.ts +11 -0
  204. package/dist/models/ps-sidebar-workspace-switcher-props.js +2 -0
  205. package/dist/services/ps-link-service.d.ts +5 -0
  206. package/dist/services/ps-link-service.js +49 -0
  207. package/dist/services/ps-sidebar-service.d.ts +3 -0
  208. package/dist/services/ps-sidebar-service.js +18 -0
  209. package/package.json +1 -1
@@ -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,7 @@
1
+ export const PsAppSidebarConfig = {
2
+ account: 'Account',
3
+ breadcrumbLabel: 'Breadcrumb',
4
+ logoAlt: 'App logo',
5
+ signOut: 'Sign out',
6
+ switchLabel: 'Switch',
7
+ };
@@ -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,5 @@
1
+ export var PsSidebarState;
2
+ (function (PsSidebarState) {
3
+ PsSidebarState["Collapsed"] = "collapsed";
4
+ PsSidebarState["Expanded"] = "expanded";
5
+ })(PsSidebarState || (PsSidebarState = {}));
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export const PsSidebarContext = React.createContext(null);
@@ -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,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,2 @@
1
+ import type { PsDialogStateData } from '../models/ps-dialog-state-data.js';
2
+ export declare const usePsDialogState: <T>() => PsDialogStateData<T>;
@@ -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,2 @@
1
+ import type { PsSidebarContextData } from '../models/ps-sidebar-context-data.js';
2
+ export declare const usePsSidebar: () => PsSidebarContextData;
@@ -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;