@parhelia/core 0.1.12523 → 0.1.12554

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 (144) hide show
  1. package/dist/agents-view/AgentCard.js +9 -9
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentsView.js +6 -6
  4. package/dist/agents-view/AgentsView.js.map +1 -1
  5. package/dist/config/config.d.ts +2 -0
  6. package/dist/config/config.js +35 -0
  7. package/dist/config/config.js.map +1 -1
  8. package/dist/config/types.d.ts +5 -0
  9. package/dist/config/types.js.map +1 -1
  10. package/dist/editor/Editor.js +17 -6
  11. package/dist/editor/Editor.js.map +1 -1
  12. package/dist/editor/ImageEditor.js +5 -2
  13. package/dist/editor/ImageEditor.js.map +1 -1
  14. package/dist/editor/ItemInfo.js +1 -1
  15. package/dist/editor/ItemInfo.js.map +1 -1
  16. package/dist/editor/MainLayout.js +61 -3
  17. package/dist/editor/MainLayout.js.map +1 -1
  18. package/dist/editor/PictureEditor.js +5 -2
  19. package/dist/editor/PictureEditor.js.map +1 -1
  20. package/dist/editor/ai/AgentTerminal.js +246 -57
  21. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  22. package/dist/editor/ai/Agents.js +63 -13
  23. package/dist/editor/ai/Agents.js.map +1 -1
  24. package/dist/editor/ai/ToolCallDisplay.d.ts +2 -1
  25. package/dist/editor/ai/ToolCallDisplay.js +152 -5
  26. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  27. package/dist/editor/ai/types.d.ts +1 -1
  28. package/dist/editor/ai/useAgentStatus.d.ts +1 -1
  29. package/dist/editor/ai/useAgentStatus.js +8 -4
  30. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  31. package/dist/editor/client/EditorShell.d.ts +4 -1
  32. package/dist/editor/client/EditorShell.js +155 -24
  33. package/dist/editor/client/EditorShell.js.map +1 -1
  34. package/dist/editor/client/editContext.d.ts +6 -0
  35. package/dist/editor/client/editContext.js.map +1 -1
  36. package/dist/editor/client/navigation.d.ts +21 -0
  37. package/dist/editor/client/navigation.js +98 -0
  38. package/dist/editor/client/navigation.js.map +1 -0
  39. package/dist/editor/client/operations.d.ts +1 -0
  40. package/dist/editor/client/operations.js +18 -0
  41. package/dist/editor/client/operations.js.map +1 -1
  42. package/dist/editor/client/ui/DevModeIndicator.js +2 -2
  43. package/dist/editor/client/ui/DevModeIndicator.js.map +1 -1
  44. package/dist/editor/commands/handlers/uiActionHandlers.js +3 -4
  45. package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -1
  46. package/dist/editor/field-types/RichTextEditor.js +10 -4
  47. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  48. package/dist/editor/field-types/richtext/contextMenuFactory.js +5 -3
  49. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  50. package/dist/editor/field-types/textContextMenuFactory.js +3 -2
  51. package/dist/editor/field-types/textContextMenuFactory.js.map +1 -1
  52. package/dist/editor/media-selector/AiImageSearchPrompt.js +4 -2
  53. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  54. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +9 -2
  55. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  56. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +121 -5
  57. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  58. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +4 -2
  59. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  60. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +19 -4
  61. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  62. package/dist/editor/page-viewer/DeviceToolbar.js +1 -1
  63. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  64. package/dist/editor/page-viewer/EditorForm.js +9 -2
  65. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  66. package/dist/editor/page-viewer/PageViewerFrame.js +56 -6
  67. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  68. package/dist/editor/page-viewer/RenderingParametersSection.d.ts +6 -0
  69. package/dist/editor/page-viewer/RenderingParametersSection.js +148 -0
  70. package/dist/editor/page-viewer/RenderingParametersSection.js.map +1 -0
  71. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +7 -0
  72. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -1
  73. package/dist/editor/pageModel.d.ts +4 -0
  74. package/dist/editor/reviews/Comment.js +3 -1
  75. package/dist/editor/reviews/Comment.js.map +1 -1
  76. package/dist/editor/reviews/CommentDisplayPopover.js +3 -1
  77. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  78. package/dist/editor/reviews/SuggestedEdit.js +4 -1
  79. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  80. package/dist/editor/reviews/commentAi.js +4 -0
  81. package/dist/editor/reviews/commentAi.js.map +1 -1
  82. package/dist/editor/services/agentService.d.ts +10 -0
  83. package/dist/editor/services/agentService.js +20 -0
  84. package/dist/editor/services/agentService.js.map +1 -1
  85. package/dist/editor/services/editService.d.ts +19 -0
  86. package/dist/editor/services/editService.js +15 -0
  87. package/dist/editor/services/editService.js.map +1 -1
  88. package/dist/editor/services-server/api.d.ts +1 -2
  89. package/dist/editor/services-server/api.js +11 -6
  90. package/dist/editor/services-server/api.js.map +1 -1
  91. package/dist/editor/settings/About.js +1 -1
  92. package/dist/editor/settings/About.js.map +1 -1
  93. package/dist/editor/settings/SettingsView.js +2 -2
  94. package/dist/editor/settings/SettingsView.js.map +1 -1
  95. package/dist/editor/settings/Status.js +2 -2
  96. package/dist/editor/settings/Status.js.map +1 -1
  97. package/dist/editor/settings/panels/AgentsPanel.js +1 -1
  98. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  99. package/dist/editor/settings/panels/ModelsPanel.js +1 -1
  100. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  101. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
  102. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  103. package/dist/editor/settings/panels/ProvidersPanel.js +1 -1
  104. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  105. package/dist/editor/sidebar/EditHistory.js +17 -2
  106. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  107. package/dist/editor/sidebar/NavigationPanelItem.js +1 -1
  108. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  109. package/dist/editor/sidebar/OperationItem.js +2 -1
  110. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  111. package/dist/editor/sidebar/SidebarPanel.d.ts +3 -1
  112. package/dist/editor/sidebar/SidebarPanel.js +15 -6
  113. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  114. package/dist/editor/sidebar/SidebarStack.d.ts +2 -1
  115. package/dist/editor/sidebar/SidebarStack.js +3 -3
  116. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  117. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js +10 -3
  118. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js.map +1 -1
  119. package/dist/editor/utils/keyboardNavigation.js +1 -2
  120. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  121. package/dist/editor/views/CompareView.js +1 -1
  122. package/dist/editor/views/CompareView.js.map +1 -1
  123. package/dist/index.d.ts +2 -0
  124. package/dist/index.js +1 -0
  125. package/dist/index.js.map +1 -1
  126. package/dist/licensing/LicenseContext.d.ts +3 -1
  127. package/dist/licensing/LicenseContext.js +55 -38
  128. package/dist/licensing/LicenseContext.js.map +1 -1
  129. package/dist/revision.d.ts +2 -2
  130. package/dist/revision.js +2 -2
  131. package/dist/splash-screen/ModernSplashScreen.js +4 -2
  132. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  133. package/dist/task-board/TaskBoardWorkspace.js +34 -6
  134. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  135. package/dist/task-board/components/AssignAgentDialog.js +13 -1
  136. package/dist/task-board/components/AssignAgentDialog.js.map +1 -1
  137. package/dist/task-board/components/TaskAgentPanel.js +11 -1
  138. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  139. package/dist/task-board/components/TaskAssigneePicker.js +14 -4
  140. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  141. package/dist/task-board/components/WizardCommunicationCenter.js +18 -9
  142. package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
  143. package/dist/types.d.ts +7 -1
  144. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"contextMenuFactory.js","sourceRoot":"","sources":["../../../../src/editor/field-types/richtext/contextMenuFactory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextMenuFactory.js","sourceRoot":"","sources":["../../../../src/editor/field-types/richtext/contextMenuFactory.tsx"],"names":[],"mappings":"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"}
@@ -6,9 +6,10 @@ import { Sparkles } from "lucide-react";
6
6
  */
7
7
  export async function createTextContextMenu(field, editContext) {
8
8
  const menuItems = [];
9
- // Only show AI Edit option when text is selected
9
+ // Only show AI Edit option when text is selected and AI is licensed
10
10
  const selectedRange = editContext.selectedRange;
11
- if (selectedRange?.text &&
11
+ if (editContext.configuration.hasAiLicense !== false &&
12
+ selectedRange?.text &&
12
13
  selectedRange.fieldId === field.id &&
13
14
  selectedRange.itemId === field.descriptor.item.id) {
14
15
  menuItems.push({
@@ -1 +1 @@
1
- {"version":3,"file":"textContextMenuFactory.js","sourceRoot":"","sources":["../../../src/editor/field-types/textContextMenuFactory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAY,EACZ,WAA4B;IAE5B,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,iDAAiD;IACjD,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,IACE,aAAa,EAAE,IAAI;QACnB,aAAa,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;QAClC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EACjD,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,KAAC,QAAQ,IAAC,SAAS,EAAC,yBAAyB,GAAG;YACtD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,qDAAqD;gBACrD,+DAA+D;gBAC/D,4DAA4D;gBAE5D,6DAA6D;gBAC7D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;oBAC9C,MAAM,EAAE;wBACN,YAAY,EAAE,aAAa,CAAC,IAAI;wBAChC,OAAO,EAAE,KAAK,CAAC,EAAE;wBACjB,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;qBACjC;iBACF,CAAC,CAAC;gBACH,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"textContextMenuFactory.js","sourceRoot":"","sources":["../../../src/editor/field-types/textContextMenuFactory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAY,EACZ,WAA4B;IAE5B,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,oEAAoE;IACpE,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,IACE,WAAW,CAAC,aAAa,CAAC,YAAY,KAAK,KAAK;QAChD,aAAa,EAAE,IAAI;QACnB,aAAa,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;QAClC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EACjD,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,KAAC,QAAQ,IAAC,SAAS,EAAC,yBAAyB,GAAG;YACtD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,qDAAqD;gBACrD,+DAA+D;gBAC/D,4DAA4D;gBAE5D,6DAA6D;gBAC7D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;oBAC9C,MAAM,EAAE;wBACN,YAAY,EAAE,aAAa,CAAC,IAAI;wBAChC,OAAO,EAAE,KAAK,CAAC,EAAE;wBACjB,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;qBACjC;iBACF,CAAC,CAAC;gBACH,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -8,8 +8,10 @@ import { Button } from "../../components/ui/button";
8
8
  import { Loader2 } from "lucide-react";
9
9
  import { cn } from "../../lib/utils";
10
10
  import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/tooltip";
11
+ import { LicenseFeatures, useFeature } from "../../licensing";
11
12
  export function AiImageSearchPrompt({ onSearchPromptChange, initialValue, }) {
12
13
  const editContext = useEditContext();
14
+ const canUseAi = useFeature(LicenseFeatures.AI);
13
15
  const inputRef = useRef(null);
14
16
  const [prompt, setPrompt] = useState(initialValue || "");
15
17
  const [loadingPrompt, setLoadingPrompt] = useState(false);
@@ -60,8 +62,8 @@ export function AiImageSearchPrompt({ onSearchPromptChange, initialValue, }) {
60
62
  }
61
63
  }
62
64
  };
63
- return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FilterInput, { ref: inputRef, value: prompt, onChange: setPrompt, className: "flex-1", placeholder: "Search media library...", loading: loadingPrompt, showSearchIcon: true, showClearIcon: true, size: "md" }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { onClick: () => suggestPrompt(), disabled: loadingPrompt, variant: "outline", size: "icon", className: cn("h-8 w-8 shrink-0 transition-all duration-300", loadingPrompt
65
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FilterInput, { ref: inputRef, value: prompt, onChange: setPrompt, className: "flex-1", placeholder: "Search media library...", loading: loadingPrompt, showSearchIcon: true, showClearIcon: true, size: "md" }), canUseAi && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { onClick: () => suggestPrompt(), disabled: loadingPrompt, variant: "outline", size: "icon", className: cn("h-8 w-8 shrink-0 transition-all duration-300", loadingPrompt
64
66
  ? "bg-primary/5"
65
- : "hover:bg-primary/10 hover:text-primary hover:border-primary/50"), children: loadingPrompt ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin text-primary" })) : (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 22 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-primary", children: [_jsx("path", { d: "M14.0062 3.46766C14.2345 3.41253 14.4444 3.35739 14.6542 3.30225C14.9073 3.23485 15.1665 3.17971 15.4134 3.09394C16.37 2.7386 16.9748 2.06467 17.2341 1.09054C17.3266 0.735194 17.4192 0.37985 17.5118 0.0306331C17.5118 0.0183798 17.5118 0.0122532 17.5303 0C17.5488 0.0612662 17.5612 0.122532 17.5797 0.183799C17.6784 0.557522 17.7587 0.931246 17.8821 1.29884C18.2154 2.2791 18.9005 2.91014 19.9065 3.18584C20.2644 3.28387 20.6286 3.36964 20.9865 3.46766C21.0051 3.46766 21.0174 3.47379 21.0483 3.48604C20.9125 3.5228 20.7891 3.55344 20.6594 3.58407C20.3262 3.67597 19.9867 3.74336 19.6596 3.85364C18.7091 4.19061 18.0981 4.85841 17.8266 5.82641C17.7216 6.20014 17.6291 6.57386 17.518 6.95371C17.518 6.93533 17.5056 6.91695 17.4994 6.89857C17.4007 6.51872 17.3143 6.13887 17.197 5.76515C16.8823 4.72975 16.191 4.06195 15.1356 3.774C14.7777 3.67597 14.4197 3.5902 14.0617 3.4983C14.0432 3.4983 14.0309 3.49217 14 3.47992L14.0062 3.46766Z", fill: "currentColor" }), _jsx("path", { d: "M0.5 9.29394C1.04312 9.15303 1.54922 9.02437 2.05531 8.88958C2.66632 8.72416 3.28968 8.60163 3.88218 8.3872C6.17811 7.54173 7.63467 5.91817 8.2642 3.57168C8.49256 2.72008 8.71475 1.86848 8.93694 1.01688C8.94311 0.992372 8.94928 0.967866 8.98014 0.943359C9.01717 1.0904 9.06037 1.23744 9.09741 1.37835C9.33194 2.27284 9.52326 3.17957 9.81951 4.05568C10.6219 6.42055 12.2636 7.9277 14.6829 8.58938C15.547 8.82219 16.4172 9.03662 17.2813 9.2633C17.3183 9.27556 17.3554 9.28168 17.4232 9.30619C17.09 9.39196 16.7937 9.46548 16.4913 9.54513C15.689 9.75956 14.8681 9.91885 14.0904 10.2007C11.8007 11.0155 10.3379 12.6207 9.6899 14.9488C9.43686 15.8494 9.21467 16.75 8.95545 17.6629C8.94311 17.62 8.93077 17.5771 8.91842 17.5281C8.67772 16.6152 8.47405 15.6963 8.19631 14.7956C7.43717 12.3021 5.77077 10.7031 3.24031 10.0108C2.38242 9.77794 1.51836 9.56351 0.654297 9.34295C0.617265 9.3307 0.580234 9.32457 0.5 9.30006L0.5 9.29394Z", fill: "currentColor" }), _jsx("path", { d: "M14.0062 15.7881C14.2345 15.733 14.4444 15.6778 14.6542 15.6227C14.9073 15.5553 15.1665 15.5001 15.4134 15.4144C16.37 15.059 16.9748 14.3851 17.2341 13.411C17.3266 13.0556 17.4192 12.7003 17.5118 12.3511C17.5118 12.3388 17.5118 12.3327 17.5303 12.3204C17.5488 12.3817 17.5612 12.443 17.5797 12.5042C17.6784 12.878 17.7587 13.2517 17.8821 13.6193C18.2154 14.5995 18.9005 15.2306 19.9065 15.5063C20.2644 15.6043 20.6286 15.6901 20.9865 15.7881C21.0051 15.7881 21.0174 15.7942 21.0483 15.8065C20.9125 15.8432 20.7891 15.8739 20.6594 15.9045C20.3262 15.9964 19.9867 16.0638 19.6596 16.1741C18.7091 16.511 18.0981 17.1788 17.8266 18.1468C17.7216 18.5206 17.6291 18.8943 17.518 19.2741C17.518 19.2558 17.5056 19.2374 17.4994 19.219C17.4007 18.8392 17.3143 18.4593 17.197 18.0856C16.8823 17.0502 16.191 16.3824 15.1356 16.0944C14.7777 15.9964 14.4197 15.9106 14.0617 15.8187C14.0432 15.8187 14.0309 15.8126 14 15.8004L14.0062 15.7881Z", fill: "currentColor" })] })) }) }), _jsx(TooltipContent, { children: "AI-powered search terms" })] })] }));
67
+ : "hover:bg-primary/10 hover:text-primary hover:border-primary/50"), children: loadingPrompt ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin text-primary" })) : (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 22 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-primary", children: [_jsx("path", { d: "M14.0062 3.46766C14.2345 3.41253 14.4444 3.35739 14.6542 3.30225C14.9073 3.23485 15.1665 3.17971 15.4134 3.09394C16.37 2.7386 16.9748 2.06467 17.2341 1.09054C17.3266 0.735194 17.4192 0.37985 17.5118 0.0306331C17.5118 0.0183798 17.5118 0.0122532 17.5303 0C17.5488 0.0612662 17.5612 0.122532 17.5797 0.183799C17.6784 0.557522 17.7587 0.931246 17.8821 1.29884C18.2154 2.2791 18.9005 2.91014 19.9065 3.18584C20.2644 3.28387 20.6286 3.36964 20.9865 3.46766C21.0051 3.46766 21.0174 3.47379 21.0483 3.48604C20.9125 3.5228 20.7891 3.55344 20.6594 3.58407C20.3262 3.67597 19.9867 3.74336 19.6596 3.85364C18.7091 4.19061 18.0981 4.85841 17.8266 5.82641C17.7216 6.20014 17.6291 6.57386 17.518 6.95371C17.518 6.93533 17.5056 6.91695 17.4994 6.89857C17.4007 6.51872 17.3143 6.13887 17.197 5.76515C16.8823 4.72975 16.191 4.06195 15.1356 3.774C14.7777 3.67597 14.4197 3.5902 14.0617 3.4983C14.0432 3.4983 14.0309 3.49217 14 3.47992L14.0062 3.46766Z", fill: "currentColor" }), _jsx("path", { d: "M0.5 9.29394C1.04312 9.15303 1.54922 9.02437 2.05531 8.88958C2.66632 8.72416 3.28968 8.60163 3.88218 8.3872C6.17811 7.54173 7.63467 5.91817 8.2642 3.57168C8.49256 2.72008 8.71475 1.86848 8.93694 1.01688C8.94311 0.992372 8.94928 0.967866 8.98014 0.943359C9.01717 1.0904 9.06037 1.23744 9.09741 1.37835C9.33194 2.27284 9.52326 3.17957 9.81951 4.05568C10.6219 6.42055 12.2636 7.9277 14.6829 8.58938C15.547 8.82219 16.4172 9.03662 17.2813 9.2633C17.3183 9.27556 17.3554 9.28168 17.4232 9.30619C17.09 9.39196 16.7937 9.46548 16.4913 9.54513C15.689 9.75956 14.8681 9.91885 14.0904 10.2007C11.8007 11.0155 10.3379 12.6207 9.6899 14.9488C9.43686 15.8494 9.21467 16.75 8.95545 17.6629C8.94311 17.62 8.93077 17.5771 8.91842 17.5281C8.67772 16.6152 8.47405 15.6963 8.19631 14.7956C7.43717 12.3021 5.77077 10.7031 3.24031 10.0108C2.38242 9.77794 1.51836 9.56351 0.654297 9.34295C0.617265 9.3307 0.580234 9.32457 0.5 9.30006L0.5 9.29394Z", fill: "currentColor" }), _jsx("path", { d: "M14.0062 15.7881C14.2345 15.733 14.4444 15.6778 14.6542 15.6227C14.9073 15.5553 15.1665 15.5001 15.4134 15.4144C16.37 15.059 16.9748 14.3851 17.2341 13.411C17.3266 13.0556 17.4192 12.7003 17.5118 12.3511C17.5118 12.3388 17.5118 12.3327 17.5303 12.3204C17.5488 12.3817 17.5612 12.443 17.5797 12.5042C17.6784 12.878 17.7587 13.2517 17.8821 13.6193C18.2154 14.5995 18.9005 15.2306 19.9065 15.5063C20.2644 15.6043 20.6286 15.6901 20.9865 15.7881C21.0051 15.7881 21.0174 15.7942 21.0483 15.8065C20.9125 15.8432 20.7891 15.8739 20.6594 15.9045C20.3262 15.9964 19.9867 16.0638 19.6596 16.1741C18.7091 16.511 18.0981 17.1788 17.8266 18.1468C17.7216 18.5206 17.6291 18.8943 17.518 19.2741C17.518 19.2558 17.5056 19.2374 17.4994 19.219C17.4007 18.8392 17.3143 18.4593 17.197 18.0856C16.8823 17.0502 16.191 16.3824 15.1356 16.0944C14.7777 15.9964 14.4197 15.9106 14.0617 15.8187C14.0432 15.8187 14.0309 15.8126 14 15.8004L14.0062 15.7881Z", fill: "currentColor" })] })) }) }), _jsx(TooltipContent, { children: "AI-powered search terms" })] }))] }));
66
68
  }
67
69
  //# sourceMappingURL=AiImageSearchPrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiImageSearchPrompt.js","sourceRoot":"","sources":["../../../src/editor/media-selector/AiImageSearchPrompt.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiImageSearchPrompt.js","sourceRoot":"","sources":["../../../src/editor/media-selector/AiImageSearchPrompt.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
3
3
  import { useEditContext } from "../../client/editContext";
4
4
  import { SimpleIconButton } from "../../ui/SimpleIconButton";
5
5
  import { loadCustomCommands } from "../../services/customCommandsService";
6
+ import { LicenseFeatures, useFeature } from "../../../licensing";
6
7
  import { executeCustomCommand, isCustomCommandDisabled, renderCustomCommandIcon, } from "../../commands/customCommandConverter";
7
8
  import { Wand2 } from "lucide-react";
8
9
  /**
@@ -17,9 +18,15 @@ function DefaultIcon({ className }) {
17
18
  */
18
19
  export function CustomCommandsToolbar() {
19
20
  const editContext = useEditContext();
21
+ const canUseAi = useFeature(LicenseFeatures.AI);
20
22
  const [commands, setCommands] = useState([]);
21
23
  const [loading, setLoading] = useState(true);
22
24
  useEffect(() => {
25
+ if (!canUseAi) {
26
+ setCommands([]);
27
+ setLoading(false);
28
+ return;
29
+ }
23
30
  let mounted = true;
24
31
  async function fetchCommands() {
25
32
  try {
@@ -41,8 +48,8 @@ export function CustomCommandsToolbar() {
41
48
  return () => {
42
49
  mounted = false;
43
50
  };
44
- }, []);
45
- if (!editContext)
51
+ }, [canUseAi]);
52
+ if (!editContext || !canUseAi)
46
53
  return null;
47
54
  // Don't render anything while loading or if no commands configured
48
55
  if (loading || commands.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCommandsToolbar.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/CustomCommandsToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomCommandsToolbar.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/CustomCommandsToolbar.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import React, { useState, useEffect, useCallback, useMemo, useRef, } from "react";
3
- import { Book, BookOpen, Loader2, Edit, ArrowLeft, ArrowRight, ChevronRight, LocateFixed, Rocket, FileEdit, X, } from "lucide-react";
3
+ import { Book, BookOpen, Loader2, Edit, ArrowLeft, ArrowRight, ChevronDown, ChevronRight, LocateFixed, Rocket, FileEdit, X, } from "lucide-react";
4
4
  import { loadManualToc, loadManualSection, invalidateManualSectionCache, } from "../../services/aiService";
5
5
  import { executeSearch } from "../../services/searchService";
6
6
  import { FilterInput } from "../../../components/FilterInput";
@@ -8,6 +8,13 @@ import { MarkdownDisplay, } from "../../../components/MarkdownDisplay";
8
8
  import { Tooltip, TooltipTrigger, TooltipContent, } from "../../../components/ui/tooltip";
9
9
  import { useEditContext } from "../../client/editContext";
10
10
  import { cn } from "../../../lib/utils";
11
+ import { sanitizeSvg } from "../../../lib/sanitize";
12
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "../../../components/ui/dropdown-menu";
13
+ /** Render a sanitized SVG string at a specific pixel size. */
14
+ function SvgIcon({ svg, size, className, }) {
15
+ const sanitizedSvg = sanitizeSvg(svg).trim();
16
+ return (_jsx("span", { className: cn("inline-flex items-center justify-center [&>svg]:block [&>svg]:h-full [&>svg]:w-full", className), style: { width: size, height: size }, dangerouslySetInnerHTML: { __html: sanitizedSvg } }));
17
+ }
11
18
  const HIGHLIGHT_DURATION_MS = 2000;
12
19
  const manualMarkdownComponents = {
13
20
  h1: ({ children }) => (_jsx("h1", { className: "mt-4 mb-0 text-xl font-bold text-gray-900", children: children })),
@@ -559,6 +566,20 @@ const SECTION_THEMES = {
559
566
  border: "border-blue-100",
560
567
  accent: "bg-blue-500",
561
568
  },
569
+ "managing content": {
570
+ icon: BookOpen,
571
+ color: "text-amber-600",
572
+ bg: "bg-amber-50",
573
+ border: "border-amber-100",
574
+ accent: "bg-amber-500",
575
+ },
576
+ "ai assistant": {
577
+ icon: BookOpen,
578
+ color: "text-violet-600",
579
+ bg: "bg-violet-50",
580
+ border: "border-violet-100",
581
+ accent: "bg-violet-500",
582
+ },
562
583
  };
563
584
  const DEFAULT_THEME = {
564
585
  icon: BookOpen,
@@ -576,7 +597,7 @@ function TocSectionCard({ section, onSelect, onToggleCollapse, isCollapsed, }) {
576
597
  const theme = getSectionTheme(section.title);
577
598
  const Icon = theme.icon;
578
599
  const hasChildren = !!(section.children && section.children.length > 0);
579
- return (_jsxs("div", { className: "group", children: [_jsx("button", { type: "button", onClick: () => onSelect(section.id), className: cn("w-full rounded-lg p-3 text-left transition-all", "bg-white hover:bg-gray-50/50"), children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: cn("flex h-9 w-9 shrink-0 items-center justify-center rounded-lg", theme.bg), children: _jsx(Icon, { className: cn("h-[18px] w-[18px]", theme.color), strokeWidth: 1.75 }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx("span", { className: "text-sm font-semibold text-gray-900", children: section.title || "Untitled" }) }), section.summary && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-xs leading-relaxed text-gray-500", children: section.summary }))] })] }) }), hasChildren && (_jsxs("div", { className: "mt-1", children: [_jsxs("button", { type: "button", onClick: () => onToggleCollapse(section.id), className: "ml-[60px] flex w-fit items-center gap-1.5 rounded-md py-1 text-xs text-gray-400 transition-colors hover:text-gray-600", children: [_jsx(ChevronRight, { className: cn("h-3 w-3 shrink-0 transition-transform", !isCollapsed && "rotate-90") }), _jsx("span", { children: isCollapsed ? "Show articles" : "Hide articles" })] }), !isCollapsed && (_jsx("div", { className: "mt-0.5 ml-[60px] space-y-px border-l-2 border-gray-100 pl-3", children: section.children.map((child) => (_jsxs("button", { type: "button", onClick: () => onSelect(child.id), className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-gray-600 transition-colors hover:bg-gray-50 hover:text-gray-900", children: [_jsx("span", { className: cn("h-1.5 w-1.5 shrink-0 rounded-full", theme.accent, "opacity-40 transition-opacity group-hover:opacity-70") }), _jsx("span", { className: "truncate", children: child.title || "Untitled" })] }, child.id))) }))] }))] }));
600
+ return (_jsxs("div", { className: "group", children: [_jsx("button", { type: "button", onClick: () => onSelect(section.id), className: cn("w-full rounded-lg p-3 text-left transition-all", "bg-white hover:bg-gray-50/50"), children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: cn("flex h-9 w-9 shrink-0 items-center justify-center rounded-lg", theme.bg), children: section.svgIcon ? (_jsx(SvgIcon, { svg: section.svgIcon, size: 24, className: theme.color })) : (_jsx(Icon, { className: cn("h-[18px] w-[18px]", theme.color), strokeWidth: 1.75 })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx("span", { className: "text-sm font-semibold text-gray-900", children: section.title || "Untitled" }) }), section.summary && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-xs leading-relaxed text-gray-500", children: section.summary }))] })] }) }), hasChildren && (_jsxs("div", { className: "mt-1", children: [_jsxs("button", { type: "button", onClick: () => onToggleCollapse(section.id), className: "ml-[60px] flex w-fit items-center gap-1.5 rounded-md py-1 text-xs text-gray-400 transition-colors hover:text-gray-600", children: [_jsx(ChevronRight, { className: cn("h-3 w-3 shrink-0 transition-transform", !isCollapsed && "rotate-90") }), _jsx("span", { children: isCollapsed ? "Show articles" : "Hide articles" })] }), !isCollapsed && (_jsx("div", { className: "mt-0.5 ml-[60px] space-y-px border-l-2 border-gray-100 pl-3", children: section.children.map((child) => (_jsxs("button", { type: "button", onClick: () => onSelect(child.id), className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-gray-600 transition-colors hover:bg-gray-50 hover:text-gray-900", children: [_jsx("span", { className: cn("h-1.5 w-1.5 shrink-0 rounded-full", theme.accent, "opacity-40 transition-opacity group-hover:opacity-70") }), _jsx("span", { className: "truncate", children: child.title || "Untitled" })] }, child.id))) }))] }))] }));
580
601
  }
581
602
  function renderTocTree(sections, onSelect, onToggleCollapse, collapsedSectionIds, depth = 0) {
582
603
  if (depth === 0) {
@@ -595,6 +616,42 @@ function renderTocTree(sections, onSelect, onToggleCollapse, collapsedSectionIds
595
616
  renderTocTree(section.children, onSelect, onToggleCollapse, collapsedSectionIds, depth + 1)] }, section.id));
596
617
  }) }));
597
618
  }
619
+ function buildChapterOptions(chapter) {
620
+ const result = [];
621
+ const walk = (sections, depth) => {
622
+ for (const section of sections) {
623
+ result.push({ section, depth });
624
+ if (section.children.length > 0) {
625
+ walk(section.children, depth + 1);
626
+ }
627
+ }
628
+ };
629
+ // Include the chapter itself if it has content, then its children
630
+ if (isDirectlyNavigableSection(chapter)) {
631
+ result.push({ section: chapter, depth: 0 });
632
+ }
633
+ walk(chapter.children, isDirectlyNavigableSection(chapter) ? 1 : 0);
634
+ return result;
635
+ }
636
+ function InChapterDropdown({ toc, currentTocPath, selectedSectionId, onSelect, }) {
637
+ const chapter = currentTocPath?.[0] ?? null;
638
+ const chapterOptions = useMemo(() => (chapter ? buildChapterOptions(chapter) : []), [chapter]);
639
+ const allChapters = useMemo(() => toc, [toc]);
640
+ // Don't render if there's no chapter or only one page in it
641
+ if (!chapter || chapterOptions.length <= 1)
642
+ return null;
643
+ const selectedTitle = chapterOptions.find((o) => o.section.id === selectedSectionId)?.section.title;
644
+ return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs("button", { type: "button", className: "inline-flex w-full items-center justify-between gap-2 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs transition-colors hover:bg-gray-50", children: [_jsxs("span", { className: "truncate text-gray-500", children: [_jsx("span", { className: "font-medium text-gray-700", children: selectedTitle ?? chapter.title }), " ", _jsxs("span", { className: "text-gray-400", children: ["\u2014 in ", chapter.title] })] }), _jsx(ChevronDown, { className: "h-3.5 w-3.5 shrink-0 text-gray-400" })] }) }), _jsxs(DropdownMenuContent, { align: "start", className: "max-h-80 w-[--radix-dropdown-menu-trigger-width] overflow-y-auto", children: [allChapters.length > 0 && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuLabel, { className: "text-[11px] font-semibold tracking-wide text-gray-400 uppercase", children: "Chapters" }), allChapters.map((c) => {
645
+ const isCurrent = c.id === chapter?.id;
646
+ const theme = getSectionTheme(c.title);
647
+ const Icon = theme.icon;
648
+ return (_jsxs(DropdownMenuItem, { onClick: () => !isCurrent && onSelect(c.id), className: cn(isCurrent && "bg-blue-50 font-medium"), children: [c.svgIcon ? (_jsx(SvgIcon, { svg: c.svgIcon, size: 14, className: cn("mr-1.5 shrink-0", theme.color) })) : (_jsx(Icon, { className: cn("mr-1.5 h-3.5 w-3.5 shrink-0", theme.color), strokeWidth: 1.75 })), _jsx("span", { className: "truncate", children: c.title })] }, c.id));
649
+ }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuLabel, { className: "text-[11px] font-semibold tracking-wide text-gray-400 uppercase", children: ["In ", chapter.title] })] })), chapterOptions.map(({ section, depth }) => {
650
+ const isActive = section.id === selectedSectionId;
651
+ const navigable = isDirectlyNavigableSection(section);
652
+ return (_jsx(DropdownMenuItem, { disabled: !navigable, onClick: () => navigable && onSelect(section.id), className: cn(isActive && "bg-blue-50 font-medium", !navigable && "pointer-events-none opacity-60"), style: { paddingLeft: `${8 + depth * 16}px` }, children: _jsx("span", { className: "truncate", children: section.title || "Untitled" }) }, section.id));
653
+ })] })] }));
654
+ }
598
655
  function flattenSections(sections) {
599
656
  const flattened = [];
600
657
  for (const section of sections) {
@@ -631,10 +688,14 @@ export function ManualBrowser({ onClose }) {
631
688
  const [searchResults, setSearchResults] = useState([]);
632
689
  const [searching, setSearching] = useState(false);
633
690
  const [collapsedTocSectionIds, setCollapsedTocSectionIds] = useState(() => new Set());
691
+ const [manualBackHistory, setManualBackHistory] = useState([]);
634
692
  // Track revision to force re-fetch (incremented when websocket notifies of changes)
635
693
  const [sectionRevision, setSectionRevision] = useState(0);
636
694
  // Keep a ref to all TOC item IDs for checking if changed item is in the manual
637
695
  const tocItemIdsRef = useRef(new Set());
696
+ const manualBackHistoryRef = useRef([]);
697
+ const historyNavigationModeRef = useRef(null);
698
+ const lastObservedSelectedSectionIdRef = useRef(undefined);
638
699
  // Keep a ref to selectedSectionId to avoid stale closures in websocket callback
639
700
  const selectedSectionIdRef = useRef(null);
640
701
  const currentTocPath = useMemo(() => {
@@ -678,6 +739,18 @@ export function ManualBrowser({ onClose }) {
678
739
  }
679
740
  return map;
680
741
  }, [toc]);
742
+ const backTargetSectionId = manualBackHistory.length > 0
743
+ ? manualBackHistory[manualBackHistory.length - 1]
744
+ : null;
745
+ const backTargetSection = useMemo(() => {
746
+ if (!backTargetSectionId)
747
+ return null;
748
+ return manualSectionsById.get(backTargetSectionId.toLowerCase()) ?? null;
749
+ }, [backTargetSectionId, manualSectionsById]);
750
+ const backButtonLabel = backTargetSection?.title
751
+ ? `Back to ${backTargetSection.title}`
752
+ : "Back to contents";
753
+ const backButtonText = backTargetSectionId === null ? "Contents" : "Back";
681
754
  // Keep selectedSectionId ref in sync
682
755
  useEffect(() => {
683
756
  selectedSectionIdRef.current = selectedSectionId;
@@ -685,6 +758,36 @@ export function ManualBrowser({ onClose }) {
685
758
  useEffect(() => {
686
759
  currentSectionRef.current = currentSection;
687
760
  }, [currentSection]);
761
+ useEffect(() => {
762
+ manualBackHistoryRef.current = manualBackHistory;
763
+ }, [manualBackHistory]);
764
+ useEffect(() => {
765
+ const previousSelectedSectionId = lastObservedSelectedSectionIdRef.current;
766
+ if (previousSelectedSectionId === undefined) {
767
+ lastObservedSelectedSectionIdRef.current = selectedSectionId;
768
+ return;
769
+ }
770
+ const normalizedPreviousSelectedSectionId = previousSelectedSectionId && toc.length > 0
771
+ ? resolveSelectedSectionId(toc, previousSelectedSectionId)
772
+ : previousSelectedSectionId;
773
+ const normalizedSelectedSectionId = selectedSectionId && toc.length > 0
774
+ ? resolveSelectedSectionId(toc, selectedSectionId)
775
+ : selectedSectionId;
776
+ if (normalizedPreviousSelectedSectionId === normalizedSelectedSectionId) {
777
+ lastObservedSelectedSectionIdRef.current = selectedSectionId;
778
+ return;
779
+ }
780
+ if (historyNavigationModeRef.current === "back") {
781
+ historyNavigationModeRef.current = null;
782
+ }
783
+ else {
784
+ setManualBackHistory((prev) => [
785
+ ...prev,
786
+ normalizedPreviousSelectedSectionId,
787
+ ]);
788
+ }
789
+ lastObservedSelectedSectionIdRef.current = selectedSectionId;
790
+ }, [selectedSectionId, toc]);
688
791
  useEffect(() => {
689
792
  if (!selectedSectionId || !editContext || toc.length === 0)
690
793
  return;
@@ -871,6 +974,20 @@ export function ManualBrowser({ onClose }) {
871
974
  return next;
872
975
  });
873
976
  }, []);
977
+ const normalizeHistorySectionId = useCallback((id) => {
978
+ if (!id || toc.length === 0)
979
+ return id;
980
+ return resolveSelectedSectionId(toc, id);
981
+ }, [toc]);
982
+ const handleGoBack = useCallback(() => {
983
+ if (!editContext || !selectedSectionId)
984
+ return;
985
+ const history = manualBackHistoryRef.current;
986
+ const previousSectionId = history.length > 0 ? history[history.length - 1] : null;
987
+ historyNavigationModeRef.current = "back";
988
+ setManualBackHistory((prev) => prev.length > 0 ? prev.slice(0, -1) : prev);
989
+ editContext.setSelectedHelpSectionId(normalizeHistorySectionId(previousSectionId));
990
+ }, [editContext, normalizeHistorySectionId, selectedSectionId]);
874
991
  if (loadingToc) {
875
992
  return (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-gray-400" }) }));
876
993
  }
@@ -880,7 +997,7 @@ export function ManualBrowser({ onClose }) {
880
997
  if (toc.length === 0) {
881
998
  return (_jsxs("div", { className: "px-4 py-8 text-center text-sm text-gray-500", children: [_jsx(Book, { className: "mx-auto mb-2 h-8 w-8 text-gray-300" }), _jsx("p", { children: "No manual content available yet." })] }));
882
999
  }
883
- return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "shrink-0 border-b border-gray-200/60 bg-linear-to-b from-gray-50 to-white px-4 py-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-lg bg-blue-50", children: _jsx(Book, { className: "h-4 w-4 text-blue-600", strokeWidth: 1.75 }) }), _jsx("h2", { className: "text-base font-semibold text-gray-900", children: "User Manual" })] }), onClose && (_jsx("button", { onClick: onClose, className: "shrink-0 rounded p-1 text-gray-400 transition-colors hover:bg-gray-200 hover:text-gray-600", "aria-label": "Close", children: _jsx(X, { size: 16, strokeWidth: 1.5 }) }))] }), _jsx("div", { className: "mt-2", children: _jsx(FilterInput, { value: searchQuery, onChange: setSearchQuery, placeholder: "Search manual pages...", size: "xs", loading: searching }) }), searchQuery.trim().length > 0 && (_jsx("div", { className: "mt-2 max-h-52 overflow-y-auto rounded-lg border border-gray-200 bg-white shadow-sm", children: searching ? (_jsxs("div", { className: "flex items-center gap-2 px-3 py-3 text-xs text-gray-500", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Searching manual..."] })) : searchResults.length > 0 ? (searchResults.map((section) => (_jsxs("button", { type: "button", onClick: () => handleSelectSearchResult(section.id), className: "group block w-full border-b border-gray-50 px-3 py-2.5 text-left transition-colors last:border-b-0 hover:bg-blue-50/50", children: [_jsx("span", { className: "block text-sm font-medium text-gray-900 transition-colors group-hover:text-blue-700", children: section.title || "Untitled" }), section.summary && (_jsx("span", { className: "mt-0.5 line-clamp-2 block text-xs leading-relaxed text-gray-500", children: section.summary }))] }, section.id)))) : (_jsx("div", { className: "px-3 py-3 text-center text-xs text-gray-500", children: "No manual pages matched your search." })) }))] }), _jsx("div", { className: "flex-1 overflow-y-auto p-4 select-text", children: loadingSection ? (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-gray-400" }) })) : !selectedSectionId ? (_jsx("div", { children: renderTocTree(toc, handleSelectSection, handleToggleTocSection, collapsedTocSectionIds) })) : currentSection ? (_jsxs("div", { children: [_jsxs("div", { className: "mb-2 flex items-start justify-between gap-2", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-start gap-1", children: [parentTocSection ? (_jsxs("button", { type: "button", onClick: () => handleSelectSection(parentTocSection.id), className: "inline-flex shrink-0 items-center gap-1 rounded px-2 py-1 text-sm text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900", "aria-label": `Back to ${parentTocSection.title}`, title: `Back to ${parentTocSection.title}`, children: [_jsx(ArrowLeft, { className: "h-4 w-4" }), _jsx("span", { className: "hidden sm:inline", children: "Back" })] })) : (_jsxs("button", { type: "button", onClick: () => editContext?.setSelectedHelpSectionId(null), className: "inline-flex shrink-0 items-center gap-1 rounded px-2 py-1 text-sm text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900", "aria-label": "Back to contents", title: "Back to contents", children: [_jsx(ArrowLeft, { className: "h-4 w-4" }), _jsx("span", { className: "hidden sm:inline", children: "Contents" })] })), _jsx("h2", { className: "ml-1 min-w-0 flex-1 text-xl font-bold text-gray-900", children: currentSection.title })] }), editContext?.user?.isAdministrator && editContext?.loadItem && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: async (e) => {
1000
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "shrink-0 border-b border-gray-200/60 bg-linear-to-b from-gray-50 to-white px-4 py-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-lg bg-blue-50", children: _jsx(Book, { className: "h-4 w-4 text-blue-600", strokeWidth: 1.75 }) }), _jsx("h2", { className: "text-base font-semibold text-gray-900", children: "User Manual" })] }), onClose && (_jsx("button", { onClick: onClose, className: "shrink-0 rounded p-1 text-gray-400 transition-colors hover:bg-gray-200 hover:text-gray-600", "aria-label": "Close", children: _jsx(X, { size: 16, strokeWidth: 1.5 }) }))] }), _jsx("div", { className: "mt-2", children: _jsx(FilterInput, { value: searchQuery, onChange: setSearchQuery, placeholder: "Search manual pages...", size: "xs", loading: searching }) }), selectedSectionId && (_jsx("div", { className: "mt-2", children: _jsx(InChapterDropdown, { toc: toc, currentTocPath: currentTocPath, selectedSectionId: selectedSectionId, onSelect: handleSelectSection }) })), searchQuery.trim().length > 0 && (_jsx("div", { className: "mt-2 max-h-52 overflow-y-auto rounded-lg border border-gray-200 bg-white shadow-sm", children: searching ? (_jsxs("div", { className: "flex items-center gap-2 px-3 py-3 text-xs text-gray-500", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Searching manual..."] })) : searchResults.length > 0 ? (searchResults.map((section) => (_jsxs("button", { type: "button", onClick: () => handleSelectSearchResult(section.id), className: "group block w-full border-b border-gray-50 px-3 py-2.5 text-left transition-colors last:border-b-0 hover:bg-blue-50/50", children: [_jsx("span", { className: "block text-sm font-medium text-gray-900 transition-colors group-hover:text-blue-700", children: section.title || "Untitled" }), section.summary && (_jsx("span", { className: "mt-0.5 line-clamp-2 block text-xs leading-relaxed text-gray-500", children: section.summary }))] }, section.id)))) : (_jsx("div", { className: "px-3 py-3 text-center text-xs text-gray-500", children: "No manual pages matched your search." })) }))] }), _jsx("div", { className: "flex-1 overflow-y-auto p-4 select-text", children: loadingSection ? (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-gray-400" }) })) : !selectedSectionId ? (_jsx("div", { children: renderTocTree(toc, handleSelectSection, handleToggleTocSection, collapsedTocSectionIds) })) : currentSection ? (_jsxs("div", { children: [_jsxs("div", { className: "mb-1 flex items-center justify-between", children: [_jsxs("button", { type: "button", onClick: handleGoBack, className: "inline-flex shrink-0 items-center gap-1 rounded px-2 py-1 text-sm text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900", "aria-label": backButtonLabel, title: backButtonLabel, children: [_jsx(ArrowLeft, { className: "h-4 w-4" }), _jsx("span", { className: "hidden sm:inline", children: backButtonText })] }), editContext?.user?.isAdministrator && editContext?.loadItem && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: async (e) => {
884
1001
  e.preventDefault();
885
1002
  e.stopPropagation();
886
1003
  if (!editContext?.loadItem) {
@@ -888,7 +1005,6 @@ export function ManualBrowser({ onClose }) {
888
1005
  return;
889
1006
  }
890
1007
  try {
891
- // Load the manual section item in the editor
892
1008
  const language = editContext?.currentItemDescriptor?.language ||
893
1009
  editContext?.item?.language ||
894
1010
  "en";
@@ -903,7 +1019,7 @@ export function ManualBrowser({ onClose }) {
903
1019
  catch (error) {
904
1020
  console.error("Failed to load manual section:", error);
905
1021
  }
906
- }, className: "shrink-0 rounded p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700", "aria-label": "Edit item", title: "Edit item", children: _jsx(Edit, { className: "h-4 w-4" }) }) }), _jsx(TooltipContent, { children: "Edit item" })] }))] }), currentSection.summary &&
1022
+ }, className: "shrink-0 rounded p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700", "aria-label": "Edit item", title: "Edit item", children: _jsx(Edit, { className: "h-4 w-4" }) }) }), _jsx(TooltipContent, { children: "Edit item" })] }))] }), _jsxs("h2", { className: "my-2 flex items-center gap-2 text-xl font-bold text-gray-900", children: [currentSection.svgIcon && (_jsx(SvgIcon, { svg: currentSection.svgIcon, size: 24, className: "shrink-0 text-gray-500" })), currentSection.title] }), currentSection.summary &&
907
1023
  (() => {
908
1024
  const theme = parentTocSection
909
1025
  ? getSectionTheme(parentTocSection.title)