@parhelia/core 0.1.12910 → 0.1.12912

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 (185) hide show
  1. package/dist/agents-view/AgentGalleryView.d.ts +1 -1
  2. package/dist/agents-view/AgentGalleryView.js +3 -2
  3. package/dist/agents-view/AgentGalleryView.js.map +1 -1
  4. package/dist/agents-view/AgentsView.js +1 -1
  5. package/dist/agents-view/AgentsView.js.map +1 -1
  6. package/dist/components/PageHeader.d.ts +7 -2
  7. package/dist/components/PageHeader.js +8 -3
  8. package/dist/components/PageHeader.js.map +1 -1
  9. package/dist/components/ui/UserPicker.d.ts +5 -1
  10. package/dist/components/ui/UserPicker.js +17 -3
  11. package/dist/components/ui/UserPicker.js.map +1 -1
  12. package/dist/components/ui/button.js +1 -1
  13. package/dist/components/ui/button.js.map +1 -1
  14. package/dist/components/ui/command.js +1 -1
  15. package/dist/components/ui/delete-button.d.ts +1 -1
  16. package/dist/components/ui/delete-button.js +2 -2
  17. package/dist/components/ui/delete-button.js.map +1 -1
  18. package/dist/components/ui/dropdown-menu.js +3 -3
  19. package/dist/components/ui/input.js +1 -1
  20. package/dist/components/ui/input.js.map +1 -1
  21. package/dist/components/ui/label.js +1 -1
  22. package/dist/components/ui/select.d.ts +2 -0
  23. package/dist/components/ui/select.js +8 -6
  24. package/dist/components/ui/select.js.map +1 -1
  25. package/dist/components/ui/textarea.js +1 -3
  26. package/dist/components/ui/textarea.js.map +1 -1
  27. package/dist/config/config.js +5 -0
  28. package/dist/config/config.js.map +1 -1
  29. package/dist/editor/ContentTree.d.ts +3 -2
  30. package/dist/editor/ContentTree.js +4 -4
  31. package/dist/editor/ContentTree.js.map +1 -1
  32. package/dist/editor/EditorWarning.js +1 -1
  33. package/dist/editor/EditorWarning.js.map +1 -1
  34. package/dist/editor/FieldHistory.js +6 -4
  35. package/dist/editor/FieldHistory.js.map +1 -1
  36. package/dist/editor/ai/Agents.js +17 -23
  37. package/dist/editor/ai/Agents.js.map +1 -1
  38. package/dist/editor/ai/ContentInspectorPopover.js +2 -1
  39. package/dist/editor/ai/ContentInspectorPopover.js.map +1 -1
  40. package/dist/editor/ai/agentCollection.d.ts +2 -0
  41. package/dist/editor/ai/agentCollection.js +8 -0
  42. package/dist/editor/ai/agentCollection.js.map +1 -0
  43. package/dist/editor/ai/agentMessageHelpers.d.ts +1 -0
  44. package/dist/editor/ai/agentMessageHelpers.js +4 -1
  45. package/dist/editor/ai/agentMessageHelpers.js.map +1 -1
  46. package/dist/editor/ai/terminal/agentSessionSnapshot.js +4 -1
  47. package/dist/editor/ai/terminal/agentSessionSnapshot.js.map +1 -1
  48. package/dist/editor/ai/terminal/components/AgentLoadingContent.js +2 -2
  49. package/dist/editor/ai/terminal/components/AgentLoadingContent.js.map +1 -1
  50. package/dist/editor/ai/terminal/components/AiResponseMessage.js +9 -3
  51. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  52. package/dist/editor/ai/terminal/components/EditOperationsPanel.js +3 -3
  53. package/dist/editor/ai/terminal/components/EditOperationsPanel.js.map +1 -1
  54. package/dist/editor/ai/terminal/useAgentDraftInitializer.js +3 -1
  55. package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -1
  56. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.js +3 -1
  57. package/dist/editor/ai/terminal/useAgentLoadErrorHandler.js.map +1 -1
  58. package/dist/editor/ai/terminal/useAgentSessionFacade.js +7 -3
  59. package/dist/editor/ai/terminal/useAgentSessionFacade.js.map +1 -1
  60. package/dist/editor/bridge/protocol.d.ts +13 -0
  61. package/dist/editor/bridge/protocol.js +2 -1
  62. package/dist/editor/bridge/protocol.js.map +1 -1
  63. package/dist/editor/client/EditorShell.js +179 -30
  64. package/dist/editor/client/EditorShell.js.map +1 -1
  65. package/dist/editor/client/editContext.d.ts +7 -5
  66. package/dist/editor/client/editContext.js.map +1 -1
  67. package/dist/editor/client/errorToast.d.ts +12 -0
  68. package/dist/editor/client/errorToast.js +67 -0
  69. package/dist/editor/client/errorToast.js.map +1 -0
  70. package/dist/editor/client/helpers.d.ts +2 -4
  71. package/dist/editor/client/helpers.js +3 -2
  72. package/dist/editor/client/helpers.js.map +1 -1
  73. package/dist/editor/client/hooks/useSocketMessageHandler.js +5 -3
  74. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  75. package/dist/editor/client/operations.d.ts +2 -4
  76. package/dist/editor/client/operations.js +11 -2
  77. package/dist/editor/client/operations.js.map +1 -1
  78. package/dist/editor/client/ui/FullscreenControls.d.ts +0 -1
  79. package/dist/editor/client/ui/FullscreenControls.js +4 -17
  80. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  81. package/dist/editor/field-types/DateFieldEditor.js +1 -1
  82. package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
  83. package/dist/editor/field-types/DateTimeFieldEditor.js +1 -1
  84. package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
  85. package/dist/editor/field-types/useTextCompletion.js +12 -43
  86. package/dist/editor/field-types/useTextCompletion.js.map +1 -1
  87. package/dist/editor/media-selector/AiImageSearchPrompt.js +8 -17
  88. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  89. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.d.ts +6 -1
  90. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +21 -13
  91. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
  92. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +6 -5
  93. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
  94. package/dist/editor/page-editor-chrome/FrameMenu.js +8 -2
  95. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  96. package/dist/editor/page-editor-chrome/InsertComponentMenu.js +1 -1
  97. package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -1
  98. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +3 -1
  99. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +34 -2
  100. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  101. package/dist/editor/page-viewer/MiniMap.d.ts +5 -1
  102. package/dist/editor/page-viewer/MiniMap.js +21 -9
  103. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  104. package/dist/editor/page-viewer/PageViewerFrame.js +291 -4
  105. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  106. package/dist/editor/page-viewer/RenderingParametersSection.js +1 -1
  107. package/dist/editor/page-viewer/RenderingParametersSection.js.map +1 -1
  108. package/dist/editor/page-viewer/bridgeFieldPatch.js +2 -1
  109. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -1
  110. package/dist/editor/reviews/CreateReviewConfirmStep.d.ts +1 -2
  111. package/dist/editor/reviews/CreateReviewConfirmStep.js +3 -3
  112. package/dist/editor/reviews/CreateReviewConfirmStep.js.map +1 -1
  113. package/dist/editor/reviews/CreateReviewDialog.js +27 -3
  114. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  115. package/dist/editor/reviews/DecisionsMatrix.js +1 -1
  116. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  117. package/dist/editor/services/contentService.d.ts +3 -2
  118. package/dist/editor/services/contentService.js +19 -5
  119. package/dist/editor/services/contentService.js.map +1 -1
  120. package/dist/editor/services/contextService.d.ts +8 -0
  121. package/dist/editor/services/contextService.js +19 -0
  122. package/dist/editor/services/contextService.js.map +1 -1
  123. package/dist/editor/services/textCompletionService.d.ts +14 -0
  124. package/dist/editor/services/textCompletionService.js +45 -0
  125. package/dist/editor/services/textCompletionService.js.map +1 -0
  126. package/dist/editor/settings/About.js +40 -263
  127. package/dist/editor/settings/About.js.map +1 -1
  128. package/dist/editor/settings/SettingsBreadcrumb.js +5 -1
  129. package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
  130. package/dist/editor/settings/panels/AgentToolsPanel.js +3 -7
  131. package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
  132. package/dist/editor/settings/panels/AgentsPanel.js +2 -3
  133. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  134. package/dist/editor/settings/panels/ClusterInstancesPanel.js +2 -3
  135. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  136. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -4
  137. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
  138. package/dist/editor/settings/panels/JavaScriptToolsPanel.js +2 -3
  139. package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
  140. package/dist/editor/settings/panels/McpToolsPanel.js +3 -4
  141. package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
  142. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +2 -3
  143. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  144. package/dist/editor/setup-wizard/steps/LicenseActivationStep.d.ts +3 -1
  145. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js +9 -5
  146. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js.map +1 -1
  147. package/dist/editor/setup-wizard/steps/LicenseEmailStep.d.ts +2 -1
  148. package/dist/editor/setup-wizard/steps/LicenseEmailStep.js +6 -3
  149. package/dist/editor/setup-wizard/steps/LicenseEmailStep.js.map +1 -1
  150. package/dist/editor/sidebar/EditHistory.js +11 -3
  151. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  152. package/dist/editor/sidebar/WorkspaceRailMobile.js +1 -3
  153. package/dist/editor/sidebar/WorkspaceRailMobile.js.map +1 -1
  154. package/dist/editor/ui/ItemCollectionEditor.d.ts +6 -2
  155. package/dist/editor/ui/ItemCollectionEditor.js +163 -84
  156. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  157. package/dist/editor/ui/LoadingState.js +4 -4
  158. package/dist/editor/ui/LoadingState.js.map +1 -1
  159. package/dist/editor/ui/PerfectTree.d.ts +5 -1
  160. package/dist/editor/ui/PerfectTree.js +10 -6
  161. package/dist/editor/ui/PerfectTree.js.map +1 -1
  162. package/dist/editor/ui/SimpleIconButton.js +1 -1
  163. package/dist/editor/ui/TreeListSelector.d.ts +6 -2
  164. package/dist/editor/ui/TreeListSelector.js +2 -2
  165. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  166. package/dist/index.d.ts +4 -1
  167. package/dist/index.js +3 -1
  168. package/dist/index.js.map +1 -1
  169. package/dist/revision.d.ts +2 -2
  170. package/dist/revision.js +2 -2
  171. package/dist/splash-screen/ModernSplashScreen.d.ts +2 -0
  172. package/dist/splash-screen/ModernSplashScreen.js +8 -3
  173. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  174. package/dist/task-board/components/ProjectDashboard.js +2 -1
  175. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  176. package/dist/task-board/components/ProjectPropertiesPanel.js +1 -1
  177. package/dist/task-board/components/ProjectPropertiesPanel.js.map +1 -1
  178. package/dist/task-board/components/TaskAssigneeBadge.d.ts +1 -1
  179. package/dist/task-board/components/TaskAssigneeBadge.js +1 -1
  180. package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -1
  181. package/dist/task-board/components/TaskAssigneePicker.js +1 -1
  182. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  183. package/dist/task-board/components/TaskRow.js +1 -1
  184. package/dist/task-board/components/TaskRow.js.map +1 -1
  185. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useEditContext } from "../client/editContext";
4
4
  import { useEffect, useMemo, useState } from "react";
5
5
  import { SimpleIconButton } from "../ui/SimpleIconButton";
@@ -9,6 +9,9 @@ import { OperationItem } from "./OperationItem";
9
9
  import { TimelineView } from "./TimelineView";
10
10
  import { localStorageService } from "../services/localStorageService";
11
11
  import { SearchInput } from "../../components/SearchInput";
12
+ import { LoadingState } from "../ui/LoadingState";
13
+ import { Button } from "../../components/ui/button";
14
+ import { Spinner } from "../ui/Spinner";
12
15
  export function EditHistory() {
13
16
  const editContext = useEditContext();
14
17
  const [showDescriptions, setShowDescriptions] = useState(() => {
@@ -48,6 +51,9 @@ export function EditHistory() {
48
51
  return path.includes(q) || title.includes(q) || description.includes(q);
49
52
  });
50
53
  }, [history, searchQuery]);
54
+ const showLoadMore = editContext.historyMode === "global" &&
55
+ editContext.canLoadMoreHistory &&
56
+ visibleHistory.length > 0;
51
57
  return (_jsxs("div", { className: "absolute inset-0 flex flex-col", children: [_jsxs(SimpleToolbar, { children: [_jsx(SimpleIconButton, { selected: editContext.historyMode === "global", onClick: () => {
52
58
  if (editContext.setHistoryMode) {
53
59
  editContext.setHistoryMode("global");
@@ -60,8 +66,10 @@ export function EditHistory() {
60
66
  if (editContext.setHistoryMode) {
61
67
  editContext.setHistoryMode("current-version");
62
68
  }
63
- }, icon: _jsx(GitCommit, { className: "h-4 w-4", strokeWidth: 1 }), label: "Current version", "data-testid": "history-mode-current-version-button" }), _jsx("div", { className: "bg-border-default mx-1 h-4 w-px" }), _jsx(SimpleIconButton, { selected: editContext.showOnlyMyChanges, onClick: () => editContext.setShowOnlyMyChanges(!editContext.showOnlyMyChanges), icon: _jsx(User, { className: "h-4 w-4", strokeWidth: 1 }), label: "Show only my changes", "data-testid": "history-show-only-my-changes-button" }), editContext.historyMode === "global" && (_jsx(SimpleIconButton, { selected: editContext.filterByCurrentLanguage, onClick: () => editContext.setFilterByCurrentLanguage(!editContext.filterByCurrentLanguage), icon: _jsx(Languages, { className: "h-4 w-4", strokeWidth: 1 }), label: "Filter by current language", "data-testid": "history-filter-by-language-button" })), _jsx(SimpleIconButton, { selected: showDescriptions, onClick: () => setShowDescriptions(!showDescriptions), icon: _jsx(AlignLeft, { className: "h-4 w-4", strokeWidth: 1 }), label: "Show descriptions", "data-testid": "history-show-descriptions-button" })] }), _jsx("div", { className: "border-border-default border-b p-2", "data-testid": "history-search-input", children: _jsx(SearchInput, { value: searchQuery, onChange: editContext.setHistorySearchQuery, onClear: () => editContext.setHistorySearchQuery(""), placeholder: "Search history...", className: "w-full", loading: editContext.isRefreshing }) }), _jsx("div", { className: "flex flex-1 flex-col overflow-x-hidden overflow-y-auto text-sm", children: visibleHistory.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 p-4 text-center text-xs", children: hasSearchQuery
69
+ }, icon: _jsx(GitCommit, { className: "h-4 w-4", strokeWidth: 1 }), label: "Current version", "data-testid": "history-mode-current-version-button" }), _jsx("div", { className: "bg-border-default mx-1 h-4 w-px" }), _jsx(SimpleIconButton, { selected: editContext.showOnlyMyChanges, onClick: () => editContext.setShowOnlyMyChanges(!editContext.showOnlyMyChanges), icon: _jsx(User, { className: "h-4 w-4", strokeWidth: 1 }), label: "Show only my changes", "data-testid": "history-show-only-my-changes-button" }), editContext.historyMode === "global" && (_jsx(SimpleIconButton, { selected: editContext.filterByCurrentLanguage, onClick: () => editContext.setFilterByCurrentLanguage(!editContext.filterByCurrentLanguage), icon: _jsx(Languages, { className: "h-4 w-4", strokeWidth: 1 }), label: "Filter by current language", "data-testid": "history-filter-by-language-button" })), _jsx(SimpleIconButton, { selected: showDescriptions, onClick: () => setShowDescriptions(!showDescriptions), icon: _jsx(AlignLeft, { className: "h-4 w-4", strokeWidth: 1 }), label: "Show descriptions", "data-testid": "history-show-descriptions-button" })] }), _jsx("div", { className: "border-border-default border-b p-2", "data-testid": "history-search-input", children: _jsx(SearchInput, { value: searchQuery, onChange: editContext.setHistorySearchQuery, onClear: () => editContext.setHistorySearchQuery(""), placeholder: "Search history...", className: "w-full", loading: editContext.isHistoryLoading || editContext.isHistoryLoadingMore }) }), _jsx("div", { className: "flex flex-1 flex-col overflow-x-hidden overflow-y-auto text-sm", children: editContext.isHistoryLoading ? (_jsx(LoadingState, { variant: "fill", spinnerSize: "lg", message: "Loading history..." })) : visibleHistory.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 p-4 text-center text-xs", children: hasSearchQuery
64
70
  ? `No history matches "${searchQuery.trim()}"`
65
- : "No edit history available" })) : editContext.historyMode === "page-centric" ? (_jsx(TimelineView, { operations: visibleHistory, showUserName: !editContext.showOnlyMyChanges, showDescription: showDescriptions })) : (visibleHistory.map((o, i) => (_jsx(OperationItem, { operation: o, index: i, showUserName: !editContext.showOnlyMyChanges, showDescription: showDescriptions, hidePath: editContext.historyMode !== "global", showLanguage: editContext.historyMode === "global" }, o.id || i)))) })] }));
71
+ : "No edit history available" })) : (_jsxs(_Fragment, { children: [editContext.historyMode === "page-centric" ? (_jsx(TimelineView, { operations: visibleHistory, showUserName: !editContext.showOnlyMyChanges, showDescription: showDescriptions })) : (visibleHistory.map((o, i) => (_jsx(OperationItem, { operation: o, index: i, showUserName: !editContext.showOnlyMyChanges, showDescription: showDescriptions, hidePath: editContext.historyMode !== "global", showLanguage: editContext.historyMode === "global" }, o.id || i)))), showLoadMore && (_jsx("div", { className: "border-border-default flex justify-center border-t bg-white px-3 py-3", children: _jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => void editContext.loadMoreHistory(), disabled: editContext.isHistoryLoadingMore, "data-testid": "history-load-more-button", children: [editContext.isHistoryLoadingMore && _jsx(Spinner, { size: "xs" }), editContext.isHistoryLoadingMore
72
+ ? "Loading more..."
73
+ : "Load more"] }) }))] })) })] }));
66
74
  }
67
75
  //# sourceMappingURL=EditHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditHistory.js","sourceRoot":"","sources":["../../../src/editor/sidebar/EditHistory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditHistory.js","sourceRoot":"","sources":["../../../src/editor/sidebar/EditHistory.tsx"],"names":[],"mappings":"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"}
@@ -9,7 +9,6 @@ export function WorkspaceRailMobile() {
9
9
  if (!contextValues)
10
10
  return null;
11
11
  const { workspaceId, sidebars, showSidebarLabels, visibleWorkspaces } = contextValues;
12
- const isEditorWorkspace = workspaceId === "editor";
13
12
  const currentWorkspace = visibleWorkspaces?.find((w) => w.id === workspaceId);
14
13
  const hasSidebars = currentWorkspace?.supportsSidebars ?? false;
15
14
  const mobileSidebars = hasSidebars
@@ -28,7 +27,6 @@ export function WorkspaceRailMobile() {
28
27
  if (settings)
29
28
  mobileWorkspaces.push(settings);
30
29
  }
31
- return (_jsxs("div", { className: "border-border-default bg-neutral-grey-5/50 grid w-full max-w-full min-w-0 grid-cols-[auto_12px_minmax(0,1fr)] items-center justify-between gap-0 overflow-hidden border-t p-1.5 pb-[max(0.375rem,env(safe-area-inset-bottom))]", "data-testid": "bottom-row", children: [mobileWorkspaces.length > 0 && (_jsx(MobileWorkspacePopover, { workspaces: mobileWorkspaces, currentWorkspaceId: workspaceId, onWorkspaceSelect: handlers.onWorkspaceClick, showSidebarLabels: showSidebarLabels })), visibleSidebarItems.length > 0 ? _jsx(Separator, {}) : _jsx("div", {}), _jsxs("div", { className: "flex min-w-0 flex-row overflow-hidden", children: [_jsx("div", { className: "scrollbar-hide flex min-w-0 gap-1 overflow-x-auto", children: isEditorWorkspace &&
32
- visibleSidebarItems.map((sidebar) => (_jsx(NavigationPanelItem, { sidebar: sidebar, contextValues: contextValues, handlers: handlers, dragOverId: dragOverId, isMobile: true }, `sidebar-${sidebar.id}`))) }), isEditorWorkspace && mobileSidebars.length > 0 && (_jsx(MorePanelsButton, { panels: mobileSidebars, contextValues: contextValues, handlers: handlers }))] })] }));
30
+ return (_jsxs("div", { className: "border-border-default bg-neutral-grey-5/50 grid w-full max-w-full min-w-0 grid-cols-[auto_12px_minmax(0,1fr)] items-center justify-between gap-0 overflow-hidden border-t p-1.5 pb-[max(0.375rem,env(safe-area-inset-bottom))]", "data-testid": "bottom-row", children: [mobileWorkspaces.length > 0 && (_jsx(MobileWorkspacePopover, { workspaces: mobileWorkspaces, currentWorkspaceId: workspaceId, onWorkspaceSelect: handlers.onWorkspaceClick, showSidebarLabels: showSidebarLabels })), visibleSidebarItems.length > 0 ? _jsx(Separator, {}) : _jsx("div", {}), _jsxs("div", { className: "flex min-w-0 flex-row overflow-hidden", children: [_jsx("div", { className: "scrollbar-hide flex min-w-0 gap-1 overflow-x-auto", children: visibleSidebarItems.map((sidebar) => (_jsx(NavigationPanelItem, { sidebar: sidebar, contextValues: contextValues, handlers: handlers, dragOverId: dragOverId, isMobile: true }, `sidebar-${sidebar.id}`))) }), mobileSidebars.length > 0 && (_jsx(MorePanelsButton, { panels: mobileSidebars, contextValues: contextValues, handlers: handlers }))] })] }));
33
31
  }
34
32
  //# sourceMappingURL=WorkspaceRailMobile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceRailMobile.js","sourceRoot":"","sources":["../../../src/editor/sidebar/WorkspaceRailMobile.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceRailMobile.js","sourceRoot":"","sources":["../../../src/editor/sidebar/WorkspaceRailMobile.tsx"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export type SubitemCountState = "loading" | "error" | {
10
10
  count: number;
11
11
  complete: boolean;
12
12
  };
13
- export type SelectedTreeItemInput = Pick<ItemTreeNodeData, "id"> & Partial<Pick<ItemTreeNodeData, "displayName" | "idPath" | "language" | "name" | "path" | "version">>;
13
+ export type SelectedTreeItemInput = Pick<ItemTreeNodeData, "id"> & Partial<Pick<ItemTreeNodeData, "displayName" | "icon" | "idPath" | "language" | "name" | "path" | "version">>;
14
14
  export type ItemCollectionEditorProps = {
15
15
  /** Currently selected items with includeSubitems flag */
16
16
  items: ItemWithSubtree[];
@@ -62,5 +62,9 @@ export type ItemCollectionEditorProps = {
62
62
  expandIdPath?: string;
63
63
  /** LocalStorage key for splitter position */
64
64
  localStorageKey?: string;
65
+ /** Removes the outer frame while keeping internal panels and controls. */
66
+ frameless?: boolean;
67
+ /** Classes applied to the tree search wrapper. */
68
+ treeSearchContainerClassName?: string;
65
69
  };
66
- export declare function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeChange, selectedFromList, onSelectedFromListChange, onAddToList, onRemoveFromList, onAddItem, onRemoveItem, onToggleSubitems, language, rootItemIds, selectedItemsLabel, emptyMessage, emptyHint, height, subitemCounts, expandIdPath, localStorageKey, }: ItemCollectionEditorProps): import("react/jsx-runtime").JSX.Element;
70
+ export declare function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeChange, selectedFromList, onSelectedFromListChange, onAddToList, onRemoveFromList, onAddItem, onRemoveItem, onToggleSubitems, language, rootItemIds, selectedItemsLabel, emptyMessage, emptyHint, height, subitemCounts, expandIdPath, localStorageKey, frameless, treeSearchContainerClassName, }: ItemCollectionEditorProps): import("react/jsx-runtime").JSX.Element;
@@ -1,17 +1,42 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useState } from "react";
3
- import { ChevronLeft, ChevronRight, ClipboardCheck, X } from "lucide-react";
4
- import { Button } from "../../components/ui/button";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState, } from "react";
3
+ import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ClipboardCheck, } from "lucide-react";
5
4
  import { CountBadge } from "../../components/ui/badge";
5
+ import { DeleteIcon } from "../../components/ui/delete-icon";
6
6
  import { Label } from "../../components/ui/label";
7
7
  import { Switch } from "../../components/ui/switch";
8
8
  import { useEditContext } from "../client/editContext";
9
+ import { getAbsoluteIconUrl } from "../utils";
9
10
  import { TreeListSelector } from "./TreeListSelector";
10
11
  import { Splitter } from "./Splitter";
11
12
  import { SimpleIconButton } from "./SimpleIconButton";
12
- export function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeChange, selectedFromList, onSelectedFromListChange, onAddToList, onRemoveFromList, onAddItem, onRemoveItem, onToggleSubitems, language, rootItemIds = [], selectedItemsLabel = "Selected Items", emptyMessage = "No items selected", emptyHint = "Browse or search to add items", height = 340, subitemCounts, expandIdPath, localStorageKey = "item-collection-editor-splitter", }) {
13
+ export function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeChange, selectedFromList, onSelectedFromListChange, onAddToList, onRemoveFromList, onAddItem, onRemoveItem, onToggleSubitems, language, rootItemIds = [], selectedItemsLabel = "Selected Items", emptyMessage = "No items selected", emptyHint = "Browse or search to add items", height = 340, subitemCounts, expandIdPath, localStorageKey = "item-collection-editor-splitter", frameless = false, treeSearchContainerClassName, }) {
13
14
  const editContext = useEditContext();
15
+ const isMobile = editContext?.isMobile ?? false;
16
+ const editorRef = useRef(null);
14
17
  const [isDragOverList, setIsDragOverList] = useState(false);
18
+ const [isCompactLayout, setIsCompactLayout] = useState(isMobile);
19
+ useEffect(() => {
20
+ const node = editorRef.current;
21
+ if (!node || typeof window === "undefined") {
22
+ setIsCompactLayout(isMobile);
23
+ return;
24
+ }
25
+ const updateLayout = () => {
26
+ setIsCompactLayout(isMobile || node.clientWidth < 560);
27
+ };
28
+ updateLayout();
29
+ window.addEventListener("resize", updateLayout);
30
+ if (typeof ResizeObserver === "undefined") {
31
+ return () => window.removeEventListener("resize", updateLayout);
32
+ }
33
+ const observer = new ResizeObserver(updateLayout);
34
+ observer.observe(node);
35
+ return () => {
36
+ observer.disconnect();
37
+ window.removeEventListener("resize", updateLayout);
38
+ };
39
+ }, [isMobile]);
15
40
  const handleDropFromTree = useCallback((event) => {
16
41
  event.preventDefault();
17
42
  setIsDragOverList(false);
@@ -25,6 +50,7 @@ export function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeCh
25
50
  id: descriptor.id,
26
51
  name: descriptor.name || descriptor.path || descriptor.id,
27
52
  displayName: descriptor.displayName,
53
+ icon: descriptor.icon,
28
54
  path: descriptor.path,
29
55
  idPath: descriptor.idPath,
30
56
  language: descriptor.language,
@@ -49,92 +75,145 @@ export function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeCh
49
75
  setIsDragOverList(false);
50
76
  }
51
77
  }, []);
52
- return (_jsx("div", { className: "border-border-default overflow-hidden rounded-xl border bg-white", style: { height: typeof height === "number" ? `${height}px` : height }, children: _jsx(Splitter, { className: "h-full", direction: "horizontal", localStorageKey: localStorageKey, panels: [
78
+ useEffect(() => {
79
+ const selectedItemIdSet = new Set(items.map((item) => item.descriptor.id));
80
+ if (!selectedInTree.some((item) => selectedItemIdSet.has(item.id))) {
81
+ return;
82
+ }
83
+ onSelectedInTreeChange(selectedInTree.filter((item) => !selectedItemIdSet.has(item.id)));
84
+ }, [items, selectedInTree, onSelectedInTreeChange]);
85
+ const selectedItemIds = items.map((item) => item.descriptor.id);
86
+ const checkedTreeItemIds = [
87
+ ...selectedItemIds,
88
+ ...selectedInTree
89
+ .map((item) => item.id)
90
+ .filter((id) => !selectedItemIds.includes(id)),
91
+ ];
92
+ const handleTreeSelectionChange = useCallback((treeItems, checkedIds) => {
93
+ const checkedIdSet = new Set(checkedIds ?? treeItems.map((item) => item.id));
94
+ const selectedItemIdSet = new Set(items.map((item) => item.descriptor.id));
95
+ const nextTreeSelection = treeItems.filter((item) => !selectedItemIdSet.has(item.id));
96
+ const itemsToAdd = nextTreeSelection.filter((item) => checkedIdSet.has(item.id));
97
+ const removedIndexes = items
98
+ .map((item, index) => ({ id: item.descriptor.id, index }))
99
+ .filter((item) => !checkedIdSet.has(item.id))
100
+ .map((item) => item.index)
101
+ .sort((a, b) => b - a);
102
+ onSelectedInTreeChange(nextTreeSelection);
103
+ if (itemsToAdd.length > 0) {
104
+ void onAddToList(itemsToAdd);
105
+ }
106
+ if (removedIndexes.length > 0) {
107
+ onSelectedFromListChange(selectedFromList.filter((item) => checkedIdSet.has(item.descriptor.id)));
108
+ for (const index of removedIndexes) {
109
+ onRemoveItem(index);
110
+ }
111
+ }
112
+ }, [
113
+ items,
114
+ onAddToList,
115
+ onRemoveItem,
116
+ onSelectedFromListChange,
117
+ onSelectedInTreeChange,
118
+ selectedFromList,
119
+ ]);
120
+ const editorHeight = typeof height === "number" ? `${height}px` : height;
121
+ const renderSelectionTotal = () => {
122
+ if (items.length === 0)
123
+ return null;
124
+ let total = 0;
125
+ let pending = false;
126
+ for (const item of items) {
127
+ total += 1;
128
+ if (item.includeSubitems && subitemCounts) {
129
+ const countState = subitemCounts[item.descriptor.id];
130
+ if (countState === undefined || countState === "loading") {
131
+ pending = true;
132
+ }
133
+ else if (countState !== "error") {
134
+ total += countState.count;
135
+ if (!countState.complete)
136
+ pending = true;
137
+ }
138
+ }
139
+ }
140
+ return (_jsxs(CountBadge, { title: pending
141
+ ? "Counting subitems..."
142
+ : `${total} item${total === 1 ? "" : "s"} will be translated`, children: [total, pending && "+"] }));
143
+ };
144
+ const renderSubitemCount = (item) => {
145
+ if (!item.includeSubitems || !subitemCounts)
146
+ return null;
147
+ const countState = subitemCounts[item.descriptor.id];
148
+ if (countState === undefined)
149
+ return null;
150
+ const isObject = countState !== "loading" && countState !== "error";
151
+ const count = isObject ? countState.count : null;
152
+ const streaming = isObject && !countState.complete;
153
+ const text = countState === "loading"
154
+ ? "..."
155
+ : countState === "error"
156
+ ? "?"
157
+ : `+${count}${streaming ? "+" : ""}`;
158
+ return (_jsx(CountBadge, { title: count !== null
159
+ ? `${count}${streaming ? "+" : ""} subitem${count === 1 ? "" : "s"} will be included${streaming ? " (still counting)" : ""}`
160
+ : countState === "loading"
161
+ ? "Counting subitems..."
162
+ : "Failed to count subitems", children: text }));
163
+ };
164
+ const getItemIcon = (item) => item.descriptor.icon;
165
+ const treePanel = (_jsx(TreeListSelector, { language: language, rootItemIds: rootItemIds, selectedItemIds: checkedTreeItemIds, onSelectionChange: handleTreeSelectionChange, onDoubleClick: onAddItem, onItemSelected: onAddItem, expandIdPath: expandIdPath, enableDragAndDrop: true, enableItemDrop: false, isDraggable: () => true, showGrabCursorForDraggableNodes: false, nodeCursor: "default", showCheckboxes: true, searchContainerClassName: treeSearchContainerClassName }));
166
+ const selectedItemsPanel = (_jsx("div", { className: "relative h-full w-full", onDrop: handleDropFromTree, onDragOver: handleDragOverList, onDragLeave: handleDragLeaveList, children: _jsxs("div", { className: `bg-neutral-grey-5/30 flex h-full min-h-0 flex-col overflow-hidden transition-colors ${isDragOverList
167
+ ? "bg-feedback-blue-light ring-feedback-blue ring-2 ring-inset"
168
+ : ""}`, children: [_jsxs("div", { className: `flex shrink-0 items-center gap-2 ${frameless ? "mt-6 ml-6" : "px-3"}`, children: [_jsx("span", { className: "text-neutral-grey-50 text-xs font-medium tracking-wider", children: selectedItemsLabel }), renderSelectionTotal()] }), items.length > 0 ? (_jsx("div", { className: `min-h-0 flex-1 space-y-1.5 overflow-y-auto ${frameless ? "py-2 pr-2 pl-6" : "p-2"}`, children: items.map((item, index) => (_jsx("div", { className: `group flex cursor-pointer flex-col gap-1 rounded-lg border p-2 transition-all ${selectedFromList.includes(item)
169
+ ? "border-neutral-grey-15 bg-neutral-grey-5 ring-neutral-grey-10 ring-1"
170
+ : "border-border-default hover:border-neutral-grey-15 hover:bg-neutral-grey-5/50 bg-white"}`, onClick: (event) => {
171
+ if (event.ctrlKey || event.metaKey) {
172
+ if (selectedFromList.includes(item)) {
173
+ onSelectedFromListChange(selectedFromList.filter((i) => i !== item));
174
+ }
175
+ else {
176
+ onSelectedFromListChange([...selectedFromList, item]);
177
+ }
178
+ }
179
+ else if (selectedFromList.length === 1 &&
180
+ selectedFromList.includes(item)) {
181
+ onSelectedFromListChange([]);
182
+ }
183
+ else {
184
+ onSelectedFromListChange([item]);
185
+ }
186
+ }, onDoubleClick: () => {
187
+ onRemoveItem(index);
188
+ onSelectedFromListChange([]);
189
+ }, children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [getItemIcon(item) && (_jsx("img", { src: getAbsoluteIconUrl(getItemIcon(item)), alt: "", className: "h-6 w-6 shrink-0 object-contain" })), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "text-neutral-grey-100 truncate text-[13px] font-medium", children: item.descriptor.displayName ||
190
+ item.descriptor.name ||
191
+ item.descriptor.path ||
192
+ item.descriptor.id }), item.descriptor.path && (_jsx("span", { className: "text-muted-foreground truncate text-[10px]", title: item.descriptor.path, children: item.descriptor.path }))] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [_jsx(Label, { htmlFor: `subpages-${item.descriptor.id}-${index}`, className: "text-neutral-grey-50 cursor-pointer text-[10px] font-medium whitespace-nowrap", onClick: (event) => event.stopPropagation(), children: "Subitems" }), renderSubitemCount(item), _jsx(Switch, { id: `subpages-${item.descriptor.id}-${index}`, checked: item.includeSubitems, onCheckedChange: () => onToggleSubitems(index), onClick: (event) => event.stopPropagation(), className: "scale-[0.6]" }), _jsx(SimpleIconButton, { label: "Remove item", icon: _jsx(DeleteIcon, { size: "md" }), showTooltip: false, title: "Remove item", className: "text-neutral-grey-50 hover:bg-neutral-grey-5 hover:text-neutral-grey-100 h-6 w-6 shrink-0 p-0 opacity-0 transition-all group-hover:opacity-100", onClick: (event) => {
193
+ event.stopPropagation();
194
+ onRemoveItem(index);
195
+ } })] })] }) }, `${item.descriptor.id}-${index}`))) })) : (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-3 p-8 text-center", children: [_jsx("div", { className: "bg-neutral-grey-5/50 ring-border-default rounded-full p-4 ring-8", children: _jsx(ClipboardCheck, { className: "text-neutral-grey-50 h-6 w-6", strokeWidth: 1 }) }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-neutral-grey-50 text-sm font-medium", children: isDragOverList ? "Drop items here" : emptyMessage }), _jsx("p", { className: "text-muted-foreground text-xs", children: isDragOverList
196
+ ? "Release to add them to the selected items list"
197
+ : emptyHint })] })] }))] }) }));
198
+ if (isCompactLayout) {
199
+ return (_jsx("div", { ref: editorRef, "data-testid": "item-collection-editor", className: frameless
200
+ ? "flex h-full w-full overflow-hidden bg-white"
201
+ : "border-border-default flex h-full w-full overflow-hidden rounded-xl border bg-white", style: { height: editorHeight }, children: _jsxs("div", { className: "flex h-full min-h-0 w-full flex-col", children: [_jsx("div", { className: "border-border-default min-h-0 border-b", style: { flex: "1.35 1 0" }, children: treePanel }), _jsxs("div", { className: "border-border-default bg-neutral-grey-5 flex shrink-0 items-center justify-center gap-2 border-b px-2 py-1.5", children: [_jsx(SimpleIconButton, { label: "Add selected items", icon: _jsx(ChevronDown, { size: 14, strokeWidth: 1 }), onClick: () => void onAddToList(selectedInTree), disabled: selectedInTree.length === 0, showTooltip: false, className: "px-0" }), _jsx(SimpleIconButton, { label: "Remove selected items", icon: _jsx(ChevronUp, { size: 14, strokeWidth: 1 }), onClick: onRemoveFromList, disabled: selectedFromList.length === 0, showTooltip: false, className: "px-0" })] }), _jsx("div", { className: "min-h-[132px]", style: { flex: "0.85 1 0" }, children: selectedItemsPanel })] }) }));
202
+ }
203
+ return (_jsx("div", { ref: editorRef, "data-testid": "item-collection-editor", className: frameless
204
+ ? "h-full w-full overflow-hidden bg-white"
205
+ : "border-border-default h-full w-full overflow-hidden rounded-xl border bg-white", style: { height: editorHeight }, children: _jsx(Splitter, { className: "h-full w-full", direction: "horizontal", localStorageKey: localStorageKey, panels: [
53
206
  {
54
207
  name: "treeSelector",
55
208
  defaultSize: 50,
56
- content: (_jsx(TreeListSelector, { language: language, rootItemIds: rootItemIds, selectedItemIds: selectedInTree.map((item) => item.id), onSelectionChange: onSelectedInTreeChange, onDoubleClick: onAddItem, onItemSelected: onAddItem, expandIdPath: expandIdPath, enableDragAndDrop: true, isDraggable: () => true, showGrabCursorForDraggableNodes: true })),
209
+ className: frameless ? "p-6" : undefined,
210
+ content: treePanel,
57
211
  },
58
212
  {
59
213
  name: "selectedItems",
60
214
  defaultSize: 50,
61
- content: (_jsx("div", { className: "relative h-full w-full", onDrop: handleDropFromTree, onDragOver: handleDragOverList, onDragLeave: handleDragLeaveList, children: _jsxs("div", { className: `bg-neutral-grey-5/30 flex h-full min-h-0 flex-col overflow-hidden transition-colors ${isDragOverList
62
- ? "bg-feedback-blue-light ring-feedback-blue ring-2 ring-inset"
63
- : ""}`, children: [_jsxs("div", { className: "border-border-default bg-neutral-grey-5/50 flex h-[37px] shrink-0 items-center gap-2 border-b px-3", children: [_jsx("span", { className: "text-neutral-grey-50 text-xs font-medium tracking-wider", children: selectedItemsLabel }), (() => {
64
- if (items.length === 0)
65
- return null;
66
- let total = 0;
67
- let pending = false;
68
- for (const item of items) {
69
- total += 1;
70
- if (item.includeSubitems && subitemCounts) {
71
- const c = subitemCounts[item.descriptor.id];
72
- if (c === undefined || c === "loading") {
73
- pending = true;
74
- }
75
- else if (c !== "error") {
76
- total += c.count;
77
- if (!c.complete)
78
- pending = true;
79
- }
80
- }
81
- }
82
- return (_jsxs(CountBadge, { title: pending
83
- ? "Counting subitems…"
84
- : `${total} item${total === 1 ? "" : "s"} will be translated`, children: [total, pending && "+"] }));
85
- })()] }), items.length > 0 ? (_jsx("div", { className: "min-h-0 flex-1 space-y-1.5 overflow-y-auto p-2", children: items.map((item, index) => (_jsx("div", { className: `group flex cursor-pointer flex-col gap-1 rounded-lg border p-2 transition-all ${selectedFromList.includes(item)
86
- ? "border-neutral-grey-15 bg-neutral-grey-5 ring-neutral-grey-10 ring-1"
87
- : "border-border-default hover:border-neutral-grey-15 hover:bg-neutral-grey-5/50 bg-white"}`, onClick: (e) => {
88
- if (e.ctrlKey || e.metaKey) {
89
- if (selectedFromList.includes(item)) {
90
- onSelectedFromListChange(selectedFromList.filter((i) => i !== item));
91
- }
92
- else {
93
- onSelectedFromListChange([
94
- ...selectedFromList,
95
- item,
96
- ]);
97
- }
98
- }
99
- else if (selectedFromList.length === 1 &&
100
- selectedFromList.includes(item)) {
101
- onSelectedFromListChange([]);
102
- }
103
- else {
104
- onSelectedFromListChange([item]);
105
- }
106
- }, onDoubleClick: () => {
107
- onRemoveItem(index);
108
- onSelectedFromListChange([]);
109
- }, children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "text-neutral-grey-100 truncate text-[13px] font-medium", children: item.descriptor.displayName ||
110
- item.descriptor.name ||
111
- item.descriptor.path ||
112
- item.descriptor.id }), item.descriptor.path && (_jsx("span", { className: "text-muted-foreground truncate text-[10px]", title: item.descriptor.path, children: item.descriptor.path }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [_jsx(Label, { htmlFor: `subpages-${item.descriptor.id}-${index}`, className: "text-neutral-grey-50 cursor-pointer text-[10px] font-medium whitespace-nowrap", onClick: (e) => e.stopPropagation(), children: "Subitems" }), item.includeSubitems &&
113
- subitemCounts &&
114
- (() => {
115
- const c = subitemCounts[item.descriptor.id];
116
- if (c === undefined)
117
- return null;
118
- const isObject = c !== "loading" && c !== "error";
119
- const count = isObject ? c.count : null;
120
- const streaming = isObject && !c.complete;
121
- const text = c === "loading"
122
- ? "…"
123
- : c === "error"
124
- ? "?"
125
- : `+${count}${streaming ? "+" : ""}`;
126
- return (_jsx(CountBadge, { title: count !== null
127
- ? `${count}${streaming ? "+" : ""} subitem${count === 1 ? "" : "s"} will be included${streaming ? " (still counting)" : ""}`
128
- : c === "loading"
129
- ? "Counting subitems…"
130
- : "Failed to count subitems", children: text }));
131
- })(), _jsx(Switch, { id: `subpages-${item.descriptor.id}-${index}`, checked: item.includeSubitems, onCheckedChange: () => onToggleSubitems(index), onClick: (e) => e.stopPropagation(), className: "scale-[0.6]" }), _jsx(Button, { variant: "ghost", size: "sm", className: "text-muted-foreground hover:bg-destructive/10 hover:text-destructive h-6 w-6 shrink-0 p-0 opacity-0 transition-all group-hover:opacity-100", onClick: (e) => {
132
- e.stopPropagation();
133
- onRemoveItem(index);
134
- }, children: _jsx(X, { className: "h-3.5 w-3.5" }) })] })] }) }, `${item.descriptor.id}-${index}`))) })) : (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-3 p-8 text-center", children: [_jsx("div", { className: "bg-neutral-grey-5/50 ring-border-default rounded-full p-4 ring-8", children: _jsx(ClipboardCheck, { className: "text-neutral-grey-50 h-6 w-6", strokeWidth: 1 }) }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-neutral-grey-50 text-sm font-medium", children: isDragOverList ? "Drop items here" : emptyMessage }), _jsx("p", { className: "text-muted-foreground text-xs", children: isDragOverList
135
- ? "Release to add them to the selected items list"
136
- : emptyHint })] })] }))] }) })),
215
+ content: selectedItemsPanel,
137
216
  },
138
- ], handleContent: (index) => index === 0 ? (_jsxs("div", { className: "bg-neutral-grey-5 flex flex-col items-center gap-1 rounded py-1", children: [_jsx(SimpleIconButton, { label: "Add", icon: _jsx(ChevronRight, { size: 14, strokeWidth: 1 }), onClick: () => void onAddToList(selectedInTree), disabled: selectedInTree.length === 0, showTooltip: false, className: "px-0" }), _jsx(SimpleIconButton, { label: "Remove", icon: _jsx(ChevronLeft, { size: 14, strokeWidth: 1 }), onClick: onRemoveFromList, disabled: selectedFromList.length === 0, showTooltip: false, className: "px-0" })] })) : null }) }));
217
+ ], handleContent: (index) => index === 0 ? (_jsxs("div", { className: "bg-neutral-grey-5 flex h-full w-full flex-col items-center justify-center gap-1 py-1", children: [_jsx(SimpleIconButton, { label: "Add", icon: _jsx(ChevronRight, { size: 14, strokeWidth: 1 }), onClick: () => void onAddToList(selectedInTree), disabled: selectedInTree.length === 0, showTooltip: false, className: "px-0" }), _jsx(SimpleIconButton, { label: "Remove", icon: _jsx(ChevronLeft, { size: 14, strokeWidth: 1 }), onClick: onRemoveFromList, disabled: selectedFromList.length === 0, showTooltip: false, className: "px-0" })] })) : null }) }));
139
218
  }
140
219
  //# sourceMappingURL=ItemCollectionEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ItemCollectionEditor.js","sourceRoot":"","sources":["../../../src/editor/ui/ItemCollectionEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ItemCollectionEditor.js","sourceRoot":"","sources":["../../../src/editor/ui/ItemCollectionEditor.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Spinner } from "./Spinner";
4
4
  const variantClassNames = {
5
5
  centered: "flex flex-col items-center justify-center gap-3 py-16 text-center",
6
6
  fill: "flex h-full flex-col items-center justify-center gap-3 p-6 text-center",
7
- inline: "flex items-center gap-2 text-sm",
7
+ inline: "flex items-center gap-2",
8
8
  };
9
9
  const defaultSpinnerSizes = {
10
10
  centered: "lg",
@@ -17,9 +17,9 @@ const defaultSpinnerClassNames = {
17
17
  inline: "text-neutral-grey-50",
18
18
  };
19
19
  const defaultTextClassNames = {
20
- centered: "text-muted-foreground text-sm",
21
- fill: "text-muted-foreground text-sm",
22
- inline: "text-neutral-grey-50 text-sm",
20
+ centered: "text-muted-foreground text-[12px]",
21
+ fill: "text-muted-foreground text-[12px]",
22
+ inline: "text-neutral-grey-50 text-[12px]",
23
23
  };
24
24
  export function LoadingState({ "aria-live": ariaLive = "polite", className, message = "Loading...", role = "status", spinnerClassName, spinnerSize, textClassName, variant = "centered", ...props }) {
25
25
  return (_jsxs("div", { role: role, "aria-live": ariaLive, ...props, className: cn(variantClassNames[variant], className), children: [_jsx(Spinner, { size: spinnerSize ?? defaultSpinnerSizes[variant], className: cn(defaultSpinnerClassNames[variant], spinnerClassName) }), message ? (_jsx("span", { className: cn(defaultTextClassNames[variant], textClassName), children: message })) : (_jsx("span", { className: "sr-only", children: "Loading" }))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingState.js","sourceRoot":"","sources":["../../../src/editor/ui/LoadingState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC;AAYtD,MAAM,iBAAiB,GAAwC;IAC7D,QAAQ,EAAE,mEAAmE;IAC7E,IAAI,EAAE,wEAAwE;IAC9E,MAAM,EAAE,iCAAiC;CAC1C,CAAC;AAEF,MAAM,mBAAmB,GAA6C;IACpE,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,MAAM,wBAAwB,GAAwC;IACpE,QAAQ,EAAE,uBAAuB;IACjC,IAAI,EAAE,uBAAuB;IAC7B,MAAM,EAAE,sBAAsB;CAC/B,CAAC;AAEF,MAAM,qBAAqB,GAAwC;IACjE,QAAQ,EAAE,+BAA+B;IACzC,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,8BAA8B;CACvC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,EAC3B,WAAW,EAAE,QAAQ,GAAG,QAAQ,EAChC,SAAS,EACT,OAAO,GAAG,YAAY,EACtB,IAAI,GAAG,QAAQ,EACf,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,OAAO,GAAG,UAAU,EACpB,GAAG,KAAK,EACU;IAClB,OAAO,CACL,eACE,IAAI,EAAE,IAAI,eACC,QAAQ,KACf,KAAK,EACT,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,aAEpD,KAAC,OAAO,IACN,IAAI,EAAE,WAAW,IAAI,mBAAmB,CAAC,OAAO,CAAC,EACjD,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAClE,EACD,OAAO,CAAC,CAAC,CAAC,CACT,eAAM,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,YAC/D,OAAO,GACH,CACR,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,SAAS,wBAAe,CACzC,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"LoadingState.js","sourceRoot":"","sources":["../../../src/editor/ui/LoadingState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC;AAYtD,MAAM,iBAAiB,GAAwC;IAC7D,QAAQ,EAAE,mEAAmE;IAC7E,IAAI,EAAE,wEAAwE;IAC9E,MAAM,EAAE,yBAAyB;CAClC,CAAC;AAEF,MAAM,mBAAmB,GAA6C;IACpE,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,MAAM,wBAAwB,GAAwC;IACpE,QAAQ,EAAE,uBAAuB;IACjC,IAAI,EAAE,uBAAuB;IAC7B,MAAM,EAAE,sBAAsB;CAC/B,CAAC;AAEF,MAAM,qBAAqB,GAAwC;IACjE,QAAQ,EAAE,mCAAmC;IAC7C,IAAI,EAAE,mCAAmC;IACzC,MAAM,EAAE,kCAAkC;CAC3C,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,EAC3B,WAAW,EAAE,QAAQ,GAAG,QAAQ,EAChC,SAAS,EACT,OAAO,GAAG,YAAY,EACtB,IAAI,GAAG,QAAQ,EACf,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,OAAO,GAAG,UAAU,EACpB,GAAG,KAAK,EACU;IAClB,OAAO,CACL,eACE,IAAI,EAAE,IAAI,eACC,QAAQ,KACf,KAAK,EACT,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,aAEpD,KAAC,OAAO,IACN,IAAI,EAAE,WAAW,IAAI,mBAAmB,CAAC,OAAO,CAAC,EACjD,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAClE,EACD,OAAO,CAAC,CAAC,CAAC,CACT,eAAM,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,YAC/D,OAAO,GACH,CACR,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,SAAS,wBAAe,CACzC,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -51,6 +51,10 @@ export interface TreeProps<T = any> {
51
51
  enableDragAndDrop?: boolean;
52
52
  /** Whether this tree renders/accepts internal drop targets. */
53
53
  enableDropTargets?: boolean;
54
+ /** Cursor style used for tree rows. */
55
+ nodeCursor?: "pointer" | "default";
56
+ /** Whether selected rows get the default selected background treatment. */
57
+ showSelectedBackground?: boolean;
54
58
  /**
55
59
  * Callback that notifies when a lazy load should occur.
56
60
  * When a node is toggled and its children haven't been loaded yet (i.e. undefined),
@@ -98,6 +102,6 @@ export interface TreeProps<T = any> {
98
102
  suppressDefaultNodeChrome?: (node: TreeNode<T>) => boolean;
99
103
  }
100
104
  export declare const highlightText: (text: string, searchTerm: string) => React.ReactNode;
101
- export declare const PerfectTree: <T>({ nodes, selectedKeys, expandedKeys, renderNode, renderNodePrefix, renderToggleIcon, getRowClassName, suppressDefaultNodeChrome, onToggleExpand, onSelect, onDragOverZone, onDrop, isDragging, onStartDrag, onDragEnd, onLazyLoad, onDoubleClick, onContextMenu, enableDragAndDrop, enableDropTargets, isValidDropZone, scrollToSelected, enableKeyboardSearch, searchClearDelay, disableAutoSelectOnExpand, multiDragNoun, enableKeyboardNavigation, onKeyboardNavigationChange, }: TreeProps<T>) => import("react/jsx-runtime").JSX.Element;
105
+ export declare const PerfectTree: <T>({ nodes, selectedKeys, expandedKeys, renderNode, renderNodePrefix, renderToggleIcon, getRowClassName, suppressDefaultNodeChrome, onToggleExpand, onSelect, onDragOverZone, onDrop, isDragging, onStartDrag, onDragEnd, onLazyLoad, onDoubleClick, onContextMenu, enableDragAndDrop, enableDropTargets, nodeCursor, showSelectedBackground, isValidDropZone, scrollToSelected, enableKeyboardSearch, searchClearDelay, disableAutoSelectOnExpand, multiDragNoun, enableKeyboardNavigation, onKeyboardNavigationChange, }: TreeProps<T>) => import("react/jsx-runtime").JSX.Element;
102
106
  declare const _default: typeof PerfectTree;
103
107
  export default _default;
@@ -182,7 +182,7 @@ const flattenVisibleNodes = (nodes, expandedKeys, parent = null, depth = 0) => {
182
182
  return result;
183
183
  };
184
184
  // NodeContent component extracted and memoized
185
- const NodeContent = memo(({ node, isExpanded, isSelected, onSelect, onToggleNode, onStartDrag, onDragEnd, onDragOverZone, onDrop, onDoubleClick, renderNode, renderNodePrefix, renderToggleIcon, getRowClassName, suppressDefaultNodeChrome, depth, onContextMenu, enableDragAndDrop = false, enableDropTargets = true, selectedKeys, isDragging, searchTerm = "", multiDragNoun, }) => {
185
+ const NodeContent = memo(({ node, isExpanded, isSelected, onSelect, onToggleNode, onStartDrag, onDragEnd, onDragOverZone, onDrop, onDoubleClick, renderNode, renderNodePrefix, renderToggleIcon, getRowClassName, suppressDefaultNodeChrome, depth, onContextMenu, enableDragAndDrop = false, enableDropTargets = true, nodeCursor = "pointer", showSelectedBackground = true, selectedKeys, isDragging, searchTerm = "", multiDragNoun, }) => {
186
186
  const [isDragOver, setIsDragOver] = React.useState(false);
187
187
  useEffect(() => {
188
188
  if (!isDragging) {
@@ -274,15 +274,15 @@ const NodeContent = memo(({ node, isExpanded, isSelected, onSelect, onToggleNode
274
274
  onContextMenu?.(node, e);
275
275
  }, [node, onContextMenu]);
276
276
  const suppressNodeChrome = suppressDefaultNodeChrome?.(node) ?? false;
277
- return (_jsxs("div", { className: cn(`tree-node ${node?.type ? `tree-node-${node.type}` : ""} relative mb-0.5 flex cursor-pointer items-center`, getRowClassName?.(node, depth, { isSelected, isDragOver })), draggable: enableDragAndDrop && !!node.isDraggable, onClick: handleSelect, onAuxClick: handleAuxClick, onDragStart: (event) => handleDragStart(event), onDragEnd: onDragEnd, onDragLeave: handleDragLeave, onDragEnter: handleDragEnter, onDragOver: handleDragOver, onDrop: handleDrop, onDoubleClick: handleDoubleClick, onContextMenu: handleContextMenu, "data-node-key": node.key, "data-selected": isSelected, "data-node-type": node?.type, children: [renderNodePrefix?.(node, depth), node.hasChildren || node.children?.length ? (renderToggle()) : (_jsx("div", { className: "w-[24px]" })), _jsx("div", { className: suppressNodeChrome
277
+ return (_jsxs("div", { className: cn(`tree-node ${node?.type ? `tree-node-${node.type}` : ""} relative mb-0.5 flex items-center`, nodeCursor === "default" ? "cursor-default" : "cursor-pointer", getRowClassName?.(node, depth, { isSelected, isDragOver })), draggable: enableDragAndDrop && !!node.isDraggable, onClick: handleSelect, onAuxClick: handleAuxClick, onDragStart: (event) => handleDragStart(event), onDragEnd: onDragEnd, onDragLeave: handleDragLeave, onDragEnter: handleDragEnter, onDragOver: handleDragOver, onDrop: handleDrop, onDoubleClick: handleDoubleClick, onContextMenu: handleContextMenu, "data-node-key": node.key, "data-selected": isSelected, "data-node-type": node?.type, children: [renderNodePrefix?.(node, depth), node.hasChildren || node.children?.length ? (renderToggle()) : (_jsx("div", { className: "w-[24px]" })), _jsx("div", { className: suppressNodeChrome
278
278
  ? "min-w-0 flex-1"
279
- : `hover:border-border-default flex-1 rounded-md border border-transparent p-0.5 pr-1.5 ${isDragOver
279
+ : `hover:border-border-default flex-1 rounded-[4px] border border-transparent p-0.5 pr-1.5 ${isDragOver
280
280
  ? "bg-feedback-blue-light"
281
- : isSelected
281
+ : showSelectedBackground && isSelected
282
282
  ? "bg-feedback-blue-light"
283
283
  : ""}`, onClick: handleSelect, onAuxClick: handleAuxClick, children: renderNode(node, searchTerm) })] }));
284
284
  });
285
- export const PerfectTree = ({ nodes, selectedKeys = [], expandedKeys = [], renderNode, renderNodePrefix, renderToggleIcon, getRowClassName, suppressDefaultNodeChrome, onToggleExpand, onSelect, onDragOverZone, onDrop, isDragging = false, onStartDrag, onDragEnd, onLazyLoad, onDoubleClick, onContextMenu, enableDragAndDrop = false, enableDropTargets = true, isValidDropZone, scrollToSelected = false, enableKeyboardSearch = false, searchClearDelay = 1500, disableAutoSelectOnExpand = false, multiDragNoun = "items", enableKeyboardNavigation = true, onKeyboardNavigationChange, }) => {
285
+ export const PerfectTree = ({ nodes, selectedKeys = [], expandedKeys = [], renderNode, renderNodePrefix, renderToggleIcon, getRowClassName, suppressDefaultNodeChrome, onToggleExpand, onSelect, onDragOverZone, onDrop, isDragging = false, onStartDrag, onDragEnd, onLazyLoad, onDoubleClick, onContextMenu, enableDragAndDrop = false, enableDropTargets = true, nodeCursor = "pointer", showSelectedBackground = true, isValidDropZone, scrollToSelected = false, enableKeyboardSearch = false, searchClearDelay = 1500, disableAutoSelectOnExpand = false, multiDragNoun = "items", enableKeyboardNavigation = true, onKeyboardNavigationChange, }) => {
286
286
  const [searchTerm, setSearchTerm] = useState("");
287
287
  const [isFocused, setIsFocused] = useState(false);
288
288
  const [keyboardNavPosition, setKeyboardNavPosition] = useState(null);
@@ -553,7 +553,7 @@ export const PerfectTree = ({ nodes, selectedKeys = [], expandedKeys = [], rende
553
553
  const isSelected = selectedKeys.includes(node.key);
554
554
  return (_jsxs(React.Fragment, { children: [enableDropTargets && (_jsx(DropZone, { parent: parent, index: index, isDragging: isDragging, onDragOverZone: onDragOverZone, onDrop: onDrop, onDragEnd: onDragEnd, isValidDropZone: isValidDropZone })), _jsxs("div", { style: {
555
555
  marginLeft: depth > 0 ? "24px" : undefined,
556
- }, className: "flex flex-col", children: [_jsx(NodeContent, { node: node, isExpanded: isExpanded, isSelected: isSelected, onSelect: handleSelect, onToggleNode: handleToggle, onStartDrag: handleStartDragWithTimeout, onDragEnd: handleDragEnd, onDragOverZone: onDragOverZone, onDrop: onDrop, onDoubleClick: onDoubleClick, onContextMenu: onContextMenu, renderNode: enhancedRenderNode, renderNodePrefix: renderNodePrefix, renderToggleIcon: renderToggleIcon, getRowClassName: getRowClassName, suppressDefaultNodeChrome: suppressDefaultNodeChrome, depth: depth, enableDragAndDrop: enableDragAndDrop, enableDropTargets: enableDropTargets, selectedKeys: selectedKeys, isDragging: isDragging, searchTerm: searchTerm, multiDragNoun: multiDragNoun }), isExpanded && (_jsx(_Fragment, { children: children && children.length > 0 ? (_jsx("div", { children: renderTreeList(children, depth + 1, node) })) : null }))] })] }, node.key));
556
+ }, className: "flex flex-col", children: [_jsx(NodeContent, { node: node, isExpanded: isExpanded, isSelected: isSelected, onSelect: handleSelect, onToggleNode: handleToggle, onStartDrag: handleStartDragWithTimeout, onDragEnd: handleDragEnd, onDragOverZone: onDragOverZone, onDrop: onDrop, onDoubleClick: onDoubleClick, onContextMenu: onContextMenu, renderNode: enhancedRenderNode, renderNodePrefix: renderNodePrefix, renderToggleIcon: renderToggleIcon, getRowClassName: getRowClassName, suppressDefaultNodeChrome: suppressDefaultNodeChrome, depth: depth, enableDragAndDrop: enableDragAndDrop, enableDropTargets: enableDropTargets, nodeCursor: nodeCursor, showSelectedBackground: showSelectedBackground, selectedKeys: selectedKeys, isDragging: isDragging, searchTerm: searchTerm, multiDragNoun: multiDragNoun }), isExpanded && (_jsx(_Fragment, { children: children && children.length > 0 ? (_jsx("div", { children: renderTreeList(children, depth + 1, node) })) : null }))] })] }, node.key));
557
557
  }), enableDropTargets && (_jsx(DropZone, { parent: parent, index: nodes.length, isDragging: isDragging, onDragOverZone: onDragOverZone, onDrop: onDrop, onDragEnd: onDragEnd, isLast: true, isValidDropZone: isValidDropZone }))] }));
558
558
  }, [
559
559
  expandedKeys,
@@ -571,6 +571,8 @@ export const PerfectTree = ({ nodes, selectedKeys = [], expandedKeys = [], rende
571
571
  searchTerm,
572
572
  enableDragAndDrop,
573
573
  enableDropTargets,
574
+ nodeCursor,
575
+ showSelectedBackground,
574
576
  multiDragNoun,
575
577
  isValidDropZone,
576
578
  renderNodePrefix,
@@ -919,6 +921,8 @@ const arePropsEqual = (prevProps, nextProps) => {
919
921
  prevProps.isDragging !== nextProps.isDragging ||
920
922
  prevProps.enableDragAndDrop !== nextProps.enableDragAndDrop ||
921
923
  prevProps.enableDropTargets !== nextProps.enableDropTargets ||
924
+ prevProps.nodeCursor !== nextProps.nodeCursor ||
925
+ prevProps.showSelectedBackground !== nextProps.showSelectedBackground ||
922
926
  prevProps.scrollToSelected !== nextProps.scrollToSelected ||
923
927
  prevProps.enableKeyboardSearch !== nextProps.enableKeyboardSearch ||
924
928
  prevProps.searchClearDelay !== nextProps.searchClearDelay ||