@parhelia/core 0.1.12322 → 0.1.12325

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.
@@ -1,254 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React, { useState, useMemo, useCallback, useRef, useEffect, } from "react";
3
- import { cn } from "../../lib/utils";
4
- import { useEditContext } from "../client/editContext";
5
- import { VerticalDotsIcon, ViewToggleIcon } from "../ui/Icons";
6
- import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
7
- import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "../../components/ui/tooltip";
8
- import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, } from "../../components/ui/context-menu";
9
- import { DrawingPinFilledIcon, DrawingPinIcon } from "@radix-ui/react-icons";
10
- import { Pin, PinOff, X } from "lucide-react";
11
- function NavigationSidebarComponent() {
12
- const editContext = useEditContext();
13
- // Extract sidebar values
14
- const contextValues = useMemo(() => ({
15
- // Workspace state (for checking if we're in Editor workspace)
16
- workspaceId: editContext?.workspaceId ?? "home",
17
- // Sidebar state (for Editor workspace)
18
- sidebars: editContext?.availableSidebars ?? [],
19
- openSidebars: editContext?.openSidebars ?? [],
20
- pinnedSidebars: editContext?.pinnedSidebars ?? [],
21
- lockedSidebars: editContext?.lockedSidebars ?? [],
22
- sidebarStacks: editContext?.sidebarStacks ?? [],
23
- toggleSidebar: editContext?.toggleSidebar,
24
- openSidebar: editContext?.openSidebar,
25
- toggleSidebarPin: editContext?.toggleSidebarPin,
26
- toggleSidebarLock: editContext?.toggleSidebarLock,
27
- stackSidebar: editContext?.stackSidebar,
28
- unstackSidebar: editContext?.unstackSidebar,
29
- // Display preferences
30
- showLabels: editContext?.userInfo.preferences?.showLabels ??
31
- editContext?.userInfo.preferences?.showViewNames ??
32
- false,
33
- isMobile: editContext?.isMobile ?? false,
34
- setUserPreferences: editContext?.setUserPreferences,
35
- // Workspace state
36
- visibleWorkspaces: editContext?.visibleWorkspaces ?? [],
37
- switchWorkspace: editContext?.switchWorkspace,
38
- }), [
39
- editContext?.workspaceId,
40
- editContext?.availableSidebars,
41
- editContext?.openSidebars,
42
- editContext?.pinnedSidebars,
43
- editContext?.lockedSidebars,
44
- editContext?.toggleSidebar,
45
- editContext?.openSidebar,
46
- editContext?.toggleSidebarPin,
47
- editContext?.toggleSidebarLock,
48
- editContext?.sidebarStacks,
49
- editContext?.stackSidebar,
50
- editContext?.unstackSidebar,
51
- editContext?.userInfo.preferences?.showLabels,
52
- editContext?.userInfo.preferences?.showViewNames,
53
- editContext?.isMobile,
54
- editContext?.setUserPreferences,
55
- editContext?.visibleWorkspaces,
56
- editContext?.switchWorkspace,
57
- ]);
58
- const [isSidebarPopoverOpen, setIsSidebarPopoverOpen] = useState(false);
59
- const [disableTooltip, setDisableTooltip] = useState(false);
60
- const tooltipReenableTimer = useRef(null);
61
- useEffect(() => {
62
- return () => {
63
- if (tooltipReenableTimer.current) {
64
- window.clearTimeout(tooltipReenableTimer.current);
65
- tooltipReenableTimer.current = null;
66
- }
67
- };
68
- }, []);
69
- // Check if we're in the Editor workspace (which supports sidebars)
70
- const isEditorWorkspace = contextValues.workspaceId === "editor";
71
- // Get visible sidebars for the current position
72
- const leftSidebars = useMemo(() => {
73
- return contextValues.sidebars
74
- .filter((s) => s.position === "left" && !s.hidden)
75
- .sort((a, b) => (a.sortOrder ?? 100) - (b.sortOrder ?? 100));
76
- }, [contextValues.sidebars]);
77
- const toggleShowLabels = useCallback(() => {
78
- const newShowLabels = !contextValues.showLabels;
79
- contextValues.setUserPreferences?.({ showLabels: newShowLabels });
80
- }, [contextValues.showLabels, contextValues.setUserPreferences]);
81
- const mobileWorkspaces = useMemo(() => {
82
- const base = (contextValues.visibleWorkspaces ?? [])
83
- .filter((w) => !w.hidden)
84
- .filter((w) => w.id !== "home")
85
- .slice()
86
- .sort((a, b) => (a.sortOrder ?? 100) - (b.sortOrder ?? 100));
87
- const settingsIndex = base.findIndex((w) => w.id === "settings");
88
- if (settingsIndex >= 0) {
89
- const [settings] = base.splice(settingsIndex, 1);
90
- if (settings)
91
- base.push(settings);
92
- }
93
- return base;
94
- }, [contextValues.visibleWorkspaces]);
95
- const handleWorkspaceClick = useCallback((targetWorkspaceId) => {
96
- if (targetWorkspaceId !== contextValues.workspaceId) {
97
- contextValues.switchWorkspace?.(targetWorkspaceId);
98
- }
99
- }, [contextValues.workspaceId, contextValues.switchWorkspace]);
100
- const renderIcon = useCallback((icon, additionalClassName) => {
101
- if (icon && React.isValidElement(icon)) {
102
- return React.cloneElement(icon, {
103
- className: cn("w-4 h-4", additionalClassName),
104
- strokeWidth: 1.5,
105
- });
106
- }
107
- return null;
108
- }, []);
109
- const handleSidebarClick = useCallback((sidebarId) => {
110
- contextValues.toggleSidebar?.(sidebarId);
111
- }, [contextValues.toggleSidebar]);
112
- const handleSidebarClickAndClosePopover = useCallback((sidebarId) => {
113
- contextValues.openSidebar?.(sidebarId);
114
- if (tooltipReenableTimer.current) {
115
- window.clearTimeout(tooltipReenableTimer.current);
116
- }
117
- setDisableTooltip(true);
118
- tooltipReenableTimer.current = window.setTimeout(() => {
119
- setDisableTooltip(false);
120
- tooltipReenableTimer.current = null;
121
- }, 800);
122
- setIsSidebarPopoverOpen(false);
123
- }, [contextValues.openSidebar]);
124
- const handlePinClick = useCallback((e, sidebarId) => {
125
- e.stopPropagation();
126
- contextValues.toggleSidebarPin?.(sidebarId);
127
- }, [contextValues.toggleSidebarPin]);
128
- // Drag state for reordering pinned sidebar icons
129
- const [dragOverId, setDragOverId] = useState(null);
130
- const handleIconDragStart = useCallback((e, sidebarId) => {
131
- e.dataTransfer.setData("text/alpaca-sidebar-icon", sidebarId);
132
- e.dataTransfer.effectAllowed = "move";
133
- }, []);
134
- const handleIconDragOver = useCallback((e, sidebarId) => {
135
- e.preventDefault();
136
- e.dataTransfer.dropEffect = "move";
137
- setDragOverId(sidebarId);
138
- }, []);
139
- const handleIconDragLeave = useCallback(() => {
140
- setDragOverId(null);
141
- }, []);
142
- const handleIconDrop = useCallback((e, targetSidebarId) => {
143
- e.preventDefault();
144
- setDragOverId(null);
145
- const sourceSidebarId = e.dataTransfer.getData("text/alpaca-sidebar-icon");
146
- if (!sourceSidebarId || sourceSidebarId === targetSidebarId) {
147
- return;
148
- }
149
- // Reorder pinned sidebars
150
- const currentPinned = [...contextValues.pinnedSidebars];
151
- const sourceIndex = currentPinned.indexOf(sourceSidebarId);
152
- const targetIndex = currentPinned.indexOf(targetSidebarId);
153
- if (sourceIndex === -1 || targetIndex === -1) {
154
- return;
155
- }
156
- // Remove source and insert at target position
157
- currentPinned.splice(sourceIndex, 1);
158
- const newTargetIndex = currentPinned.indexOf(targetSidebarId);
159
- const insertIndex = sourceIndex < targetIndex ? newTargetIndex + 1 : newTargetIndex;
160
- currentPinned.splice(insertIndex, 0, sourceSidebarId);
161
- editContext?.reorderPinnedSidebars?.(currentPinned);
162
- }, [contextValues.pinnedSidebars, editContext]);
163
- // Get the currently visible sidebars in the selector (pinned + open)
164
- // Order: pinned sidebars first (in their saved order), then open-but-not-pinned
165
- const visibleSidebarItems = useMemo(() => {
166
- const pinnedSet = new Set(contextValues.pinnedSidebars);
167
- const openSet = new Set(contextValues.openSidebars);
168
- const sidebarMap = new Map(leftSidebars.map((s) => [s.id, s]));
169
- // Start with pinned sidebars in their saved order
170
- const result = [];
171
- for (const id of contextValues.pinnedSidebars) {
172
- const sidebar = sidebarMap.get(id);
173
- if (sidebar) {
174
- result.push(sidebar);
175
- }
176
- }
177
- // Add open-but-not-pinned sidebars (in their sortOrder)
178
- for (const sidebar of leftSidebars) {
179
- if (openSet.has(sidebar.id) && !pinnedSet.has(sidebar.id)) {
180
- result.push(sidebar);
181
- }
182
- }
183
- return result;
184
- }, [leftSidebars, contextValues.pinnedSidebars, contextValues.openSidebars]);
185
- return (_jsxs(TooltipProvider, { delayDuration: 500, skipDelayDuration: 0, children: [isEditorWorkspace &&
186
- visibleSidebarItems.map((sidebar) => {
187
- const isOpen = contextValues.openSidebars.includes(sidebar.id);
188
- const isPinned = contextValues.pinnedSidebars.includes(sidebar.id);
189
- const currentStack = contextValues.sidebarStacks?.find((s) => s.includes(sidebar.id)) ??
190
- null;
191
- const isStacked = !!(currentStack && currentStack.length > 1);
192
- // Check if any sidebar in the stack is locked (stack-level lock)
193
- const isLocked = currentStack
194
- ? currentStack.some((id) => contextValues.lockedSidebars?.includes(id))
195
- : (contextValues.lockedSidebars?.includes(sidebar.id) ?? false);
196
- const stackCandidates = leftSidebars.filter((s) => s.id !== sidebar.id && contextValues.openSidebars.includes(s.id));
197
- return (_jsxs(ContextMenu, { children: [_jsx(ContextMenuTrigger, { asChild: true, children: _jsxs(Tooltip, { delayDuration: 500, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("div", { className: cn(
198
- // Sidebar icons: smaller, subtler appearance
199
- isOpen
200
- ? "border-gray-300 bg-gray-100 text-gray-900"
201
- : "border-transparent text-gray-500 hover:bg-gray-50 hover:text-gray-700", "relative flex cursor-pointer flex-col items-center justify-center rounded border select-none", contextValues.showLabels ? "p-1" : "p-1", contextValues.isMobile ? "shrink-0" : "",
202
- // Drag-over visual feedback
203
- dragOverId === sidebar.id && "ring-2 ring-blue-400"), "data-sidebar-id": sidebar.id, "data-testid": `sidebar-icon-${sidebar.id}`, onClick: () => {
204
- handleSidebarClick(sidebar.id);
205
- },
206
- // Drag-and-drop for reordering pinned icons
207
- draggable: isPinned, onDragStart: (e) => isPinned && handleIconDragStart(e, sidebar.id), onDragOver: (e) => isPinned && handleIconDragOver(e, sidebar.id), onDragLeave: handleIconDragLeave, onDrop: (e) => isPinned && handleIconDrop(e, sidebar.id), children: [_jsxs("div", { className: cn("relative", contextValues.showLabels ? "p-0.5" : ""), children: [renderIcon(sidebar.icon), isStacked && (_jsx("div", { className: "bg-theme-secondary absolute right-0 bottom-0 size-1.5 rounded-full" }))] }), contextValues.showLabels && (_jsx("span", { className: "mt-0.5 max-w-[50px] text-center text-[10px] leading-tight wrap-break-word", children: sidebar.title }))] }) }), _jsx(TooltipContent, { side: "right", children: sidebar.title })] }) }), _jsxs(ContextMenuContent, { children: [isOpen && (_jsx(ContextMenuItem, { onSelect: () => {
208
- contextValues.toggleSidebarLock?.(sidebar.id);
209
- }, children: isLocked ? (_jsxs(_Fragment, { children: [_jsx(PinOff, { className: "size-4", strokeWidth: 1 }), isStacked ? "Unpin stack" : "Unpin"] })) : (_jsxs(_Fragment, { children: [_jsx(Pin, { className: "size-4", strokeWidth: 1 }), isStacked ? "Pin stack open" : "Pin open"] })) })), isOpen && stackCandidates.length > 0 && (_jsxs(ContextMenuSub, { children: [_jsx(ContextMenuSubTrigger, { children: "Stack with..." }), _jsx(ContextMenuSubContent, { children: stackCandidates.map((target) => (_jsx(ContextMenuItem, { onSelect: () => {
210
- contextValues.stackSidebar?.(sidebar.id, target.id, "after");
211
- }, children: target.title }, `stack-with-${sidebar.id}-${target.id}`))) })] })), isOpen && isStacked && (_jsx(ContextMenuItem, { onSelect: () => {
212
- contextValues.unstackSidebar?.(sidebar.id);
213
- }, children: "Unstack" })), _jsx(ContextMenuItem, { onSelect: () => {
214
- contextValues.toggleSidebarPin?.(sidebar.id);
215
- }, children: isPinned ? (_jsxs(_Fragment, { children: [_jsx(PinOff, { className: "size-4", strokeWidth: 1 }), "Unpin from toolbar"] })) : (_jsxs(_Fragment, { children: [_jsx(Pin, { className: "size-4", strokeWidth: 1 }), "Pin to toolbar"] })) }), isOpen && (_jsxs(ContextMenuItem, { onSelect: () => {
216
- contextValues.toggleSidebar?.(sidebar.id, {
217
- forceClose: true,
218
- });
219
- }, children: [_jsx(X, { className: "size-4", strokeWidth: 1 }), "Close"] }))] })] }, `sidebar-${sidebar.id}`));
220
- }), isEditorWorkspace && leftSidebars.length > 0 && (_jsxs(Popover, { open: isSidebarPopoverOpen, onOpenChange: (open) => {
221
- setIsSidebarPopoverOpen(open);
222
- }, children: [_jsxs(Tooltip, { delayDuration: disableTooltip ? 100000 : 500, open: isSidebarPopoverOpen || disableTooltip ? false : undefined, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { "data-testid": "more-sidebars-button", className: cn("flex items-center justify-center rounded border border-transparent p-1", "text-gray-400 hover:border-gray-200 hover:bg-gray-50 hover:text-gray-600", contextValues.isMobile ? "shrink-0" : ""), children: _jsx(VerticalDotsIcon, { className: "h-4 w-4" }) }) }) }), _jsx(TooltipContent, { side: "right", children: "More panels" })] }), _jsx(PopoverContent, { className: "w-56 p-2", side: contextValues.isMobile ? "bottom" : "right", align: "start", onInteractOutside: (e) => {
223
- const target = e.target;
224
- if (target && target.closest('[data-slot="tooltip-content"]')) {
225
- e.preventDefault();
226
- }
227
- }, onPointerDownOutside: (e) => {
228
- const target = e.target;
229
- if (target && target.closest('[data-slot="tooltip-content"]')) {
230
- e.preventDefault();
231
- }
232
- }, onFocusOutside: (e) => {
233
- const target = e.target;
234
- if (target && target.closest('[data-slot="tooltip-content"]')) {
235
- e.preventDefault();
236
- }
237
- }, children: _jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "px-2 py-1 text-[9px] font-medium tracking-wider text-gray-600 uppercase", children: "Sidebars" }), leftSidebars.map((sidebar) => {
238
- const isOpen = contextValues.openSidebars.includes(sidebar.id);
239
- const isPinned = contextValues.pinnedSidebars.includes(sidebar.id);
240
- return (_jsxs("div", { className: cn("group flex cursor-pointer items-center justify-between rounded p-2 hover:bg-gray-100", isOpen && "bg-gray-50"), onClick: () => handleSidebarClickAndClosePopover(sidebar.id), "data-testid": `sidebar-${sidebar.id}`, children: [_jsxs("div", { className: "flex flex-1 items-center gap-1.5", children: [renderIcon(sidebar.icon, "w-4 h-4"), _jsx("span", { className: "text-xs", children: sidebar.title })] }), _jsxs(Tooltip, { delayDuration: 500, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "flex h-6 w-6 shrink-0 items-center justify-center rounded hover:bg-gray-200", onClick: (e) => {
241
- e.stopPropagation();
242
- e.preventDefault();
243
- handlePinClick(e, sidebar.id);
244
- }, onMouseDown: (e) => {
245
- e.stopPropagation();
246
- }, children: isPinned ? (_jsx(DrawingPinFilledIcon, { className: "text-theme-secondary h-4 w-4" })) : (_jsx(DrawingPinIcon, { className: "h-4 w-4 text-gray-400" })) }) }), _jsx(TooltipContent, { side: "right", children: isPinned ? "Unpin from toolbar" : "Pin to toolbar" })] })] }, `menu-sidebar-${sidebar.id}`));
247
- })] }) })] })), _jsx("div", { className: "flex-1" }), contextValues.isMobile && mobileWorkspaces.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "mx-1 h-px w-full bg-gray-200" }), mobileWorkspaces.map((workspace) => {
248
- const active = workspace.id === contextValues.workspaceId;
249
- return (_jsx("button", { type: "button", "aria-label": workspace.title, "aria-current": active ? "page" : undefined, "data-testid": `workspace-mobile-${workspace.id}`, className: cn("flex items-center justify-center rounded border border-transparent p-1", "text-gray-500 hover:border-gray-200 hover:bg-gray-50 hover:text-gray-800", active && "border-gray-300 bg-gray-100 text-gray-900"), onClick: () => handleWorkspaceClick(workspace.id), children: renderIcon(workspace.icon) }, `workspace-${workspace.id}`));
250
- })] })), _jsxs(Tooltip, { delayDuration: 500, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { className: cn("flex items-center justify-center rounded border border-transparent p-0.5", "text-gray-400 hover:border-gray-200 hover:bg-gray-50 hover:text-gray-600", contextValues.isMobile ? "shrink-0" : ""), onClick: toggleShowLabels, children: _jsx(ViewToggleIcon, { className: "h-4 w-4" }) }) }), _jsx(TooltipContent, { side: "right", children: contextValues.showLabels ? "Hide labels" : "Show labels" })] })] }));
251
- }
252
- // Export memoized component to prevent unnecessary re-renders
253
- export const NavigationSidebar = React.memo(NavigationSidebarComponent);
254
- //# sourceMappingURL=NavigationSidebar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationSidebar.js","sourceRoot":"","sources":["../../../src/editor/sidebar/NavigationSidebar.tsx"],"names":[],"mappings":"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"}
Binary file
Binary file
Binary file
Binary file