@parhelia/core 0.3.12816 → 0.3.12822

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 (83) hide show
  1. package/dist/config/config.js +2 -12
  2. package/dist/config/config.js.map +1 -1
  3. package/dist/editor/ContentTree.d.ts +1 -1
  4. package/dist/editor/ContentTree.js +25 -3
  5. package/dist/editor/ContentTree.js.map +1 -1
  6. package/dist/editor/ai/terminal/components/AgentSettingsSections.js +4 -4
  7. package/dist/editor/ai/terminal/components/AgentSettingsSections.js.map +1 -1
  8. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +1 -1
  9. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
  10. package/dist/editor/ai/terminal/components/AiResponseMessage.js +1 -1
  11. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  12. package/dist/editor/ai/terminal/useAgentStopCommand.js +16 -14
  13. package/dist/editor/ai/terminal/useAgentStopCommand.js.map +1 -1
  14. package/dist/editor/client/EditorShell.js +20 -4
  15. package/dist/editor/client/EditorShell.js.map +1 -1
  16. package/dist/editor/client/hooks/activeSessionSnapshots.js +0 -2
  17. package/dist/editor/client/hooks/activeSessionSnapshots.js.map +1 -1
  18. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +2 -2
  19. package/dist/editor/client/hooks/useSocketMessageHandler.js +43 -29
  20. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  21. package/dist/editor/client/operations.js +12 -3
  22. package/dist/editor/client/operations.js.map +1 -1
  23. package/dist/editor/media-selector/Thumbnails.js +23 -10
  24. package/dist/editor/media-selector/Thumbnails.js.map +1 -1
  25. package/dist/editor/media-selector/mediaItemDrag.d.ts +22 -5
  26. package/dist/editor/media-selector/mediaItemDrag.js +108 -10
  27. package/dist/editor/media-selector/mediaItemDrag.js.map +1 -1
  28. package/dist/editor/page-viewer/PageViewerFrame.js +13 -0
  29. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  30. package/dist/editor/page-viewer/bridgeInsertModeExit.d.ts +22 -0
  31. package/dist/editor/page-viewer/bridgeInsertModeExit.js +20 -0
  32. package/dist/editor/page-viewer/bridgeInsertModeExit.js.map +1 -0
  33. package/dist/editor/reviews/DecisionsMatrix.js +8 -75
  34. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  35. package/dist/editor/settings/QuotaInfo.js +3 -2
  36. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  37. package/dist/editor/settings/SettingsView.js +6 -5
  38. package/dist/editor/settings/SettingsView.js.map +1 -1
  39. package/dist/editor/settings/UsageLeaderboard.js +12 -12
  40. package/dist/editor/settings/UsageLeaderboard.js.map +1 -1
  41. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +45 -1
  42. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  43. package/dist/editor/sidebar/ComponentTree.js +12 -1
  44. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  45. package/dist/editor/tree-indicators/GutterContext.js +14 -8
  46. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  47. package/dist/lib/sanitize.js +1 -1
  48. package/dist/lib/sanitize.js.map +1 -1
  49. package/dist/revision.d.ts +2 -2
  50. package/dist/revision.js +2 -2
  51. package/dist/task-board/TaskBoardWorkspace.js +186 -7
  52. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  53. package/dist/task-board/components/CreateTaskDialog.d.ts +2 -0
  54. package/dist/task-board/components/CreateTaskDialog.js +6 -3
  55. package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
  56. package/dist/task-board/components/GoalCoverageBar.d.ts +4 -0
  57. package/dist/task-board/components/GoalCoverageBar.js +22 -0
  58. package/dist/task-board/components/GoalCoverageBar.js.map +1 -0
  59. package/dist/task-board/components/GoalDataView.d.ts +39 -0
  60. package/dist/task-board/components/GoalDataView.js +385 -0
  61. package/dist/task-board/components/GoalDataView.js.map +1 -0
  62. package/dist/task-board/components/GoalsMatrix.d.ts +16 -0
  63. package/dist/task-board/components/GoalsMatrix.js +129 -0
  64. package/dist/task-board/components/GoalsMatrix.js.map +1 -0
  65. package/dist/task-board/components/ProjectDashboard.d.ts +1 -1
  66. package/dist/task-board/components/ProjectGoalsPanel.d.ts +16 -0
  67. package/dist/task-board/components/ProjectGoalsPanel.js +74 -113
  68. package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
  69. package/dist/task-board/components/SubgoalStatusIcon.d.ts +4 -0
  70. package/dist/task-board/components/SubgoalStatusIcon.js +19 -0
  71. package/dist/task-board/components/SubgoalStatusIcon.js.map +1 -0
  72. package/dist/task-board/components/goalDisplaySpec.d.ts +19 -0
  73. package/dist/task-board/components/goalDisplaySpec.js +72 -0
  74. package/dist/task-board/components/goalDisplaySpec.js.map +1 -0
  75. package/dist/task-board/goalRefreshState.d.ts +6 -0
  76. package/dist/task-board/goalRefreshState.js +11 -0
  77. package/dist/task-board/goalRefreshState.js.map +1 -0
  78. package/dist/task-board/goalTaskNavigationState.d.ts +43 -0
  79. package/dist/task-board/goalTaskNavigationState.js +65 -0
  80. package/dist/task-board/goalTaskNavigationState.js.map +1 -0
  81. package/dist/task-board/types.d.ts +6 -0
  82. package/dist/types.d.ts +0 -2
  83. package/package.json +2 -1
@@ -0,0 +1,65 @@
1
+ export const initialGoalTaskNavigationState = {
2
+ pending: null,
3
+ outcome: { kind: "none" },
4
+ };
5
+ function sameId(left, right) {
6
+ return left?.toLowerCase() === right.toLowerCase();
7
+ }
8
+ export function reduceGoalTaskNavigation(state, action) {
9
+ switch (action.type) {
10
+ case "request": {
11
+ const isCurrentProject = sameId(action.currentProjectId, action.projectId);
12
+ const existingTask = isCurrentProject
13
+ ? action.currentTaskIds.find((taskId) => sameId(taskId, action.taskId))
14
+ : undefined;
15
+ if (existingTask) {
16
+ return {
17
+ pending: null,
18
+ outcome: { kind: "select", taskId: existingTask },
19
+ };
20
+ }
21
+ if (isCurrentProject &&
22
+ action.inFlightGeneration === undefined &&
23
+ action.latestIssuedGeneration > 0) {
24
+ return { pending: null, outcome: { kind: "missing" } };
25
+ }
26
+ return {
27
+ pending: {
28
+ projectId: action.projectId,
29
+ taskId: action.taskId,
30
+ requiredGeneration: action.inFlightGeneration ?? action.latestIssuedGeneration + 1,
31
+ },
32
+ outcome: {
33
+ kind: "load",
34
+ projectId: action.projectId,
35
+ switchProject: !isCurrentProject,
36
+ refresh: isCurrentProject && action.inFlightGeneration === undefined,
37
+ },
38
+ };
39
+ }
40
+ case "projectSelected":
41
+ return {
42
+ pending: state.pending && sameId(action.projectId, state.pending.projectId)
43
+ ? state.pending
44
+ : null,
45
+ outcome: { kind: "none" },
46
+ };
47
+ case "tasksLoaded": {
48
+ if (!state.pending ||
49
+ !sameId(action.projectId, state.pending.projectId) ||
50
+ action.generation < state.pending.requiredGeneration) {
51
+ return { ...state, outcome: { kind: "none" } };
52
+ }
53
+ const matchedTask = action.taskIds.find((taskId) => sameId(taskId, state.pending.taskId));
54
+ return {
55
+ pending: null,
56
+ outcome: matchedTask
57
+ ? { kind: "select", taskId: matchedTask }
58
+ : { kind: "missing" },
59
+ };
60
+ }
61
+ case "cancel":
62
+ return initialGoalTaskNavigationState;
63
+ }
64
+ }
65
+ //# sourceMappingURL=goalTaskNavigationState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goalTaskNavigationState.js","sourceRoot":"","sources":["../../src/task-board/goalTaskNavigationState.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,9 @@ export type GoalData = unknown;
65
65
  export type GoalCoverage = {
66
66
  total: number;
67
67
  done: number;
68
+ inProgress: number;
69
+ failed: number;
70
+ pending: number;
68
71
  skipped: number;
69
72
  hasMeasurableSubgoals: boolean;
70
73
  percent?: number | null;
@@ -115,12 +118,15 @@ export type GoalDefinition = {
115
118
  sortOrder?: number;
116
119
  defaultScopeJson?: string | null;
117
120
  dataShape?: string | null;
121
+ displaySpec?: string | null;
118
122
  };
119
123
  export type ProjectGoalsResponse = {
120
124
  projectId: string;
121
125
  includeDescendants: boolean;
122
126
  goals: Goal[];
123
127
  catalog: GoalDefinition[];
128
+ /** Raw Display Spec JSON keyed by source goal-definition id, including disabled definitions. */
129
+ displaySpecs?: Record<string, string>;
124
130
  /** Effective permission per project id in scope (row-by-row edit gating). */
125
131
  permissions: Record<string, ProjectPermission | string>;
126
132
  };
package/dist/types.d.ts CHANGED
@@ -44,9 +44,7 @@ export type EditData = {
44
44
  };
45
45
  export type EditSession = {
46
46
  sessionId: string;
47
- url?: string;
48
47
  user: User;
49
- userAgent?: string;
50
48
  page?: ItemDescriptor;
51
49
  item?: ItemDescriptor;
52
50
  fieldLock?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parhelia/core",
3
- "version": "0.3.12816",
3
+ "version": "0.3.12822",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -95,6 +95,7 @@
95
95
  "follow-redirects": "^1.16.0",
96
96
  "html-entities": "^2.6.0",
97
97
  "html2canvas-pro": "^2.2.0",
98
+ "isomorphic-dompurify": "3.19.0",
98
99
  "lucide-react": "^0.486.0",
99
100
  "morphdom": "^2.7.5",
100
101
  "postcss": "^8.5.14",