@parhelia/core 0.1.10884 → 0.1.10978

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 (119) hide show
  1. package/dist/components/ui/LanguageSelector.js +10 -4
  2. package/dist/components/ui/LanguageSelector.js.map +1 -1
  3. package/dist/config/config.js +19 -28
  4. package/dist/config/config.js.map +1 -1
  5. package/dist/config/types.d.ts +0 -5
  6. package/dist/editor/ContentTree.js +1 -1
  7. package/dist/editor/ContentTree.js.map +1 -1
  8. package/dist/editor/FieldListField.js +70 -3
  9. package/dist/editor/FieldListField.js.map +1 -1
  10. package/dist/editor/MainLayout.js +77 -8
  11. package/dist/editor/MainLayout.js.map +1 -1
  12. package/dist/editor/ai/AgentDocumentList.d.ts +8 -0
  13. package/dist/editor/ai/AgentDocumentList.js +132 -0
  14. package/dist/editor/ai/AgentDocumentList.js.map +1 -0
  15. package/dist/editor/ai/AgentTerminal.js +29 -9
  16. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  17. package/dist/editor/ai/ContextInfoBar.d.ts +3 -1
  18. package/dist/editor/ai/ContextInfoBar.js +3 -3
  19. package/dist/editor/ai/ContextInfoBar.js.map +1 -1
  20. package/dist/editor/client/EditorShell.js +34 -8
  21. package/dist/editor/client/EditorShell.js.map +1 -1
  22. package/dist/editor/client/editContext.d.ts +3 -0
  23. package/dist/editor/client/editContext.js.map +1 -1
  24. package/dist/editor/client/itemsRepository.d.ts +2 -2
  25. package/dist/editor/client/itemsRepository.js +19 -8
  26. package/dist/editor/client/itemsRepository.js.map +1 -1
  27. package/dist/editor/client/pageModelBuilder.js +19 -3
  28. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  29. package/dist/editor/control-center/Setup.js +159 -15
  30. package/dist/editor/control-center/Setup.js.map +1 -1
  31. package/dist/editor/control-center/setup-steps/AiSetupStep/utils.d.ts +1 -0
  32. package/dist/editor/control-center/setup-steps/AiSetupStep/utils.js +19 -0
  33. package/dist/editor/control-center/setup-steps/AiSetupStep/utils.js.map +1 -1
  34. package/dist/editor/control-center/setup-steps/SetupOverview.d.ts +14 -0
  35. package/dist/editor/control-center/setup-steps/SetupOverview.js +38 -0
  36. package/dist/editor/control-center/setup-steps/SetupOverview.js.map +1 -0
  37. package/dist/editor/editor-warnings/ItemLocked.js +1 -1
  38. package/dist/editor/editor-warnings/ItemLocked.js.map +1 -1
  39. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +13 -13
  40. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
  41. package/dist/editor/page-viewer/PageViewerFrame.js +0 -11
  42. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  43. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +11 -1
  44. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -1
  45. package/dist/editor/page-viewer/pageViewContext.js +0 -1
  46. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  47. package/dist/editor/reviews/CreateReviewDialog.js +308 -30
  48. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  49. package/dist/editor/reviews/DecisionsMatrix.d.ts +5 -1
  50. package/dist/editor/reviews/DecisionsMatrix.js +668 -44
  51. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  52. package/dist/editor/reviews/EditReviewSettingsDialog.d.ts +20 -0
  53. package/dist/editor/reviews/EditReviewSettingsDialog.js +208 -0
  54. package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -0
  55. package/dist/editor/reviews/ItemTreeSelector.js +5 -3
  56. package/dist/editor/reviews/ItemTreeSelector.js.map +1 -1
  57. package/dist/editor/reviews/PagesPanel.d.ts +3 -0
  58. package/dist/editor/reviews/PagesPanel.js +92 -18
  59. package/dist/editor/reviews/PagesPanel.js.map +1 -1
  60. package/dist/editor/reviews/PreconfiguredReviewerSelector.d.ts +9 -0
  61. package/dist/editor/reviews/PreconfiguredReviewerSelector.js +55 -0
  62. package/dist/editor/reviews/PreconfiguredReviewerSelector.js.map +1 -0
  63. package/dist/editor/reviews/ReviewDetail.js +108 -28
  64. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  65. package/dist/editor/reviews/ReviewersPanel.d.ts +3 -1
  66. package/dist/editor/reviews/ReviewersPanel.js +142 -22
  67. package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
  68. package/dist/editor/reviews/ReviewsList.js +65 -7
  69. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  70. package/dist/editor/reviews/useMultiReview.d.ts +5 -0
  71. package/dist/editor/reviews/useMultiReview.js +75 -7
  72. package/dist/editor/reviews/useMultiReview.js.map +1 -1
  73. package/dist/editor/services/agentService.d.ts +38 -0
  74. package/dist/editor/services/agentService.js +84 -0
  75. package/dist/editor/services/agentService.js.map +1 -1
  76. package/dist/editor/services/aiService.d.ts +2 -0
  77. package/dist/editor/services/aiService.js.map +1 -1
  78. package/dist/editor/services/contentService.d.ts +2 -2
  79. package/dist/editor/services/contentService.js +12 -4
  80. package/dist/editor/services/contentService.js.map +1 -1
  81. package/dist/editor/services/reviewsService.d.ts +8 -1
  82. package/dist/editor/services/reviewsService.js +32 -4
  83. package/dist/editor/services/reviewsService.js.map +1 -1
  84. package/dist/editor/services/suggestedEditsService.d.ts +1 -1
  85. package/dist/editor/services/suggestedEditsService.js +10 -2
  86. package/dist/editor/services/suggestedEditsService.js.map +1 -1
  87. package/dist/editor/sidebar/ComponentTree.js +43 -32
  88. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  89. package/dist/editor/sidebar/Sidebar.js +1 -1
  90. package/dist/editor/sidebar/Sidebar.js.map +1 -1
  91. package/dist/editor/sidebar/SidebarView.d.ts +4 -1
  92. package/dist/editor/sidebar/SidebarView.js +23 -10
  93. package/dist/editor/sidebar/SidebarView.js.map +1 -1
  94. package/dist/editor/ui/IconSelectorDialog.js +8 -4
  95. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  96. package/dist/editor/ui/ItemNameDialogNew.js +14 -0
  97. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  98. package/dist/editor/utils.js +21 -4
  99. package/dist/editor/utils.js.map +1 -1
  100. package/dist/editor/views/SingleEditView.js +1 -1
  101. package/dist/editor/views/SingleEditView.js.map +1 -1
  102. package/dist/setup/services/setupWizardService.d.ts +7 -2
  103. package/dist/setup/services/setupWizardService.js +7 -14
  104. package/dist/setup/services/setupWizardService.js.map +1 -1
  105. package/dist/setup/utils/modelPricing.d.ts +7 -0
  106. package/dist/setup/utils/modelPricing.js +106 -0
  107. package/dist/setup/utils/modelPricing.js.map +1 -0
  108. package/dist/setup/wizard/steps/AgentsStep.js +6 -15
  109. package/dist/setup/wizard/steps/AgentsStep.js.map +1 -1
  110. package/dist/setup/wizard/steps/ModelsStep.js +182 -79
  111. package/dist/setup/wizard/steps/ModelsStep.js.map +1 -1
  112. package/dist/splash-screen/NewPage.js +1 -1
  113. package/dist/splash-screen/NewPage.js.map +1 -1
  114. package/dist/styles.css +33 -14
  115. package/dist/types.d.ts +17 -5
  116. package/package.json +2 -2
  117. package/dist/editor/control-center/parhelia-setup/Overview.d.ts +0 -1
  118. package/dist/editor/control-center/parhelia-setup/Overview.js +0 -91
  119. package/dist/editor/control-center/parhelia-setup/Overview.js.map +0 -1
package/dist/styles.css CHANGED
@@ -101,7 +101,7 @@
101
101
  --container-xs: 20rem;
102
102
  --container-sm: 24rem;
103
103
  --container-md: 28rem;
104
- --container-xl: 36rem;
104
+ --container-2xl: 42rem;
105
105
  --container-3xl: 48rem;
106
106
  --container-4xl: 56rem;
107
107
  --container-5xl: 64rem;
@@ -420,6 +420,9 @@
420
420
  .my-4 {
421
421
  margin-block: calc(var(--spacing) * 4);
422
422
  }
423
+ .mt-0 {
424
+ margin-top: calc(var(--spacing) * 0);
425
+ }
423
426
  .mt-0\.5 {
424
427
  margin-top: calc(var(--spacing) * 0.5);
425
428
  }
@@ -492,6 +495,9 @@
492
495
  .mb-4 {
493
496
  margin-bottom: calc(var(--spacing) * 4);
494
497
  }
498
+ .mb-6 {
499
+ margin-bottom: calc(var(--spacing) * 6);
500
+ }
495
501
  .mb-8 {
496
502
  margin-bottom: calc(var(--spacing) * 8);
497
503
  }
@@ -752,9 +758,6 @@
752
758
  .max-h-\(--radix-dropdown-menu-content-available-height\) {
753
759
  max-height: var(--radix-dropdown-menu-content-available-height);
754
760
  }
755
- .max-h-32 {
756
- max-height: calc(var(--spacing) * 32);
757
- }
758
761
  .max-h-40 {
759
762
  max-height: calc(var(--spacing) * 40);
760
763
  }
@@ -791,6 +794,12 @@
791
794
  .max-h-\[50vh\] {
792
795
  max-height: 50vh;
793
796
  }
797
+ .max-h-\[60vh\] {
798
+ max-height: 60vh;
799
+ }
800
+ .max-h-\[80vh\] {
801
+ max-height: 80vh;
802
+ }
794
803
  .max-h-\[85vh\] {
795
804
  max-height: 85vh;
796
805
  }
@@ -986,6 +995,9 @@
986
995
  .w-screen {
987
996
  width: 100vw;
988
997
  }
998
+ .max-w-2xl {
999
+ max-width: var(--container-2xl);
1000
+ }
989
1001
  .max-w-3xl {
990
1002
  max-width: var(--container-3xl);
991
1003
  }
@@ -1016,6 +1028,9 @@
1016
1028
  .max-w-\[90vw\] {
1017
1029
  max-width: 90vw;
1018
1030
  }
1031
+ .max-w-\[100px\] {
1032
+ max-width: 100px;
1033
+ }
1019
1034
  .max-w-\[200px\] {
1020
1035
  max-width: 200px;
1021
1036
  }
@@ -1049,15 +1064,15 @@
1049
1064
  .max-w-sm {
1050
1065
  max-width: var(--container-sm);
1051
1066
  }
1052
- .max-w-xl {
1053
- max-width: var(--container-xl);
1054
- }
1055
1067
  .max-w-xs {
1056
1068
  max-width: var(--container-xs);
1057
1069
  }
1058
1070
  .min-w-0 {
1059
1071
  min-width: calc(var(--spacing) * 0);
1060
1072
  }
1073
+ .min-w-4 {
1074
+ min-width: calc(var(--spacing) * 4);
1075
+ }
1061
1076
  .min-w-20 {
1062
1077
  min-width: calc(var(--spacing) * 20);
1063
1078
  }
@@ -1079,6 +1094,9 @@
1079
1094
  .min-w-\[16px\] {
1080
1095
  min-width: 16px;
1081
1096
  }
1097
+ .min-w-\[60px\] {
1098
+ min-width: 60px;
1099
+ }
1082
1100
  .min-w-\[80px\] {
1083
1101
  min-width: 80px;
1084
1102
  }
@@ -1681,6 +1699,9 @@
1681
1699
  .border-gray-800 {
1682
1700
  border-color: var(--color-gray-800);
1683
1701
  }
1702
+ .border-green-200 {
1703
+ border-color: var(--color-green-200);
1704
+ }
1684
1705
  .border-green-300 {
1685
1706
  border-color: var(--color-green-300);
1686
1707
  }
@@ -3192,13 +3213,6 @@
3192
3213
  }
3193
3214
  }
3194
3215
  }
3195
- .hover\:bg-black {
3196
- &:hover {
3197
- @media (hover: hover) {
3198
- background-color: var(--color-black);
3199
- }
3200
- }
3201
- }
3202
3216
  .hover\:bg-black\/40 {
3203
3217
  &:hover {
3204
3218
  @media (hover: hover) {
@@ -4219,6 +4233,11 @@
4219
4233
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4220
4234
  }
4221
4235
  }
4236
+ .lg\:grid-cols-3 {
4237
+ @media (width >= 64rem) {
4238
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4239
+ }
4240
+ }
4222
4241
  .lg\:grid-cols-4 {
4223
4242
  @media (width >= 64rem) {
4224
4243
  grid-template-columns: repeat(4, minmax(0, 1fr));
package/dist/types.d.ts CHANGED
@@ -144,9 +144,11 @@ export type User = {
144
144
  agentId?: string;
145
145
  email?: string;
146
146
  isLimitedPreviewUser?: boolean;
147
+ isAdministrator?: boolean;
147
148
  };
148
149
  export type UserPreferences = {
149
150
  pinnedViews?: string[];
151
+ pinnedSidebars?: string[];
150
152
  showViewNames?: boolean;
151
153
  showComponentNavigator?: boolean;
152
154
  showAgentsPanel?: boolean;
@@ -365,11 +367,13 @@ export type ReviewWithPages = {
365
367
  language: string;
366
368
  createdBy: string;
367
369
  createdAt: string;
368
- finalDecision?: 'Approved' | 'Rejected';
370
+ finalDecision?: "Approved" | "Rejected";
369
371
  finalDecisionDate?: string;
370
372
  expiresAtUtc?: string;
371
373
  isExpired?: boolean;
372
374
  requiresSecret?: boolean;
375
+ requiredApprovals?: number;
376
+ updateWorkflowOnCompletion?: boolean;
373
377
  };
374
378
  export type ReviewAssignment = {
375
379
  assignmentId: string;
@@ -389,7 +393,7 @@ export type ItemDecision = {
389
393
  itemId: string;
390
394
  itemLanguage: string;
391
395
  itemVersion?: number;
392
- decision: 'Approved' | 'Rejected';
396
+ decision: "Approved" | "Rejected";
393
397
  decisionDate: string;
394
398
  };
395
399
  export type ReviewItemStatus = {
@@ -398,7 +402,7 @@ export type ReviewItemStatus = {
398
402
  includeSubitems: boolean;
399
403
  decisions?: {
400
404
  [reviewerEmail: string]: {
401
- decision: 'Approved' | 'Rejected';
405
+ decision: "Approved" | "Rejected";
402
406
  decisionDate: string;
403
407
  };
404
408
  };
@@ -411,20 +415,28 @@ export type ReviewListItem = {
411
415
  createdAt: string;
412
416
  reviewersCount: number;
413
417
  pagesCount: number;
414
- finalDecision?: 'Approved' | 'Rejected';
418
+ commentsCount?: number;
419
+ suggestionsCount?: number;
420
+ finalDecision?: "Approved" | "Rejected";
415
421
  finalDecisionDate?: string;
422
+ status?: "Approved" | "Rejected";
416
423
  expiresAtUtc?: string;
417
424
  isExpired?: boolean;
418
425
  requiresSecret?: boolean;
419
426
  secretValidated?: boolean;
427
+ requiredApprovals?: number;
428
+ updateWorkflowOnCompletion?: boolean;
420
429
  };
421
430
  export type CreateReviewRequest = {
422
431
  title?: string;
423
- language: string;
432
+ language?: string;
433
+ languages?: string[];
424
434
  reviewers: ReviewerInfo[];
425
435
  items: ItemWithSubtree[];
426
436
  expirationUtc?: string;
427
437
  secret?: string;
438
+ requiredApprovals?: number;
439
+ updateWorkflowOnCompletion?: boolean;
428
440
  };
429
441
  export type ReviewerInfo = {
430
442
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parhelia/core",
3
- "version": "0.1.10884",
3
+ "version": "0.1.10978",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -66,7 +66,7 @@
66
66
  "html-entities": "^2.6.0",
67
67
  "lucide-react": "^0.486.0",
68
68
  "morphdom": "^2.7.5",
69
- "next": "16.0.0",
69
+ "next": "16.0.3",
70
70
  "next-themes": "^0.4.6",
71
71
  "postcss": "^8.5.3",
72
72
  "quill": "^2.0.3",
@@ -1 +0,0 @@
1
- export declare function ParheliaSetupOverview(): import("react/jsx-runtime").JSX.Element;
@@ -1,91 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
3
- import { applySetup, getSetupStatus, } from "../../services/setupService";
4
- import { RefreshCw } from "lucide-react";
5
- export function ParheliaSetupOverview() {
6
- const [categories, setCategories] = useState([]);
7
- const [loading, setLoading] = useState(false);
8
- const [error, setError] = useState(null);
9
- const [applying, setApplying] = useState(false);
10
- const [includeDeps, setIncludeDeps] = useState(true);
11
- const load = async () => {
12
- try {
13
- setLoading(true);
14
- setError(null);
15
- const status = await getSetupStatus(false);
16
- setCategories(status.categories || []);
17
- }
18
- catch (e) {
19
- setError(e instanceof Error ? e.message : "Failed to load setup status");
20
- }
21
- finally {
22
- setLoading(false);
23
- }
24
- };
25
- useEffect(() => {
26
- load();
27
- }, []);
28
- return (_jsxs("div", { className: "h-full overflow-auto p-4", children: [_jsxs("div", { className: "mb-4 flex items-center justify-between", children: [_jsx("div", { className: "text-lg font-semibold text-gray-800", children: "Parhelia Setup" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("label", { className: "mr-2 flex items-center gap-2 text-sm text-gray-700", children: [_jsx("input", { type: "checkbox", checked: includeDeps, onChange: (e) => setIncludeDeps(e.target.checked) }), "Include dependencies"] }), _jsxs("button", { onClick: load, disabled: loading || applying, className: "flex items-center gap-2 rounded bg-gray-100 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(RefreshCw, { className: "h-4 w-4", strokeWidth: 1 }), loading ? "Refreshing..." : "Refresh"] }), _jsx("button", { onClick: async () => {
29
- try {
30
- setApplying(true);
31
- setError(null);
32
- const keys = categories
33
- .flatMap((c) => c.items)
34
- .filter((i) => i.status === "Missing")
35
- .map((i) => i.key);
36
- if (keys.length === 0)
37
- return;
38
- await applySetup(keys, includeDeps);
39
- await load();
40
- }
41
- catch (e) {
42
- setError(e instanceof Error ? e.message : "Failed to apply setup");
43
- }
44
- finally {
45
- setApplying(false);
46
- }
47
- }, disabled: loading || applying, className: "flex items-center gap-2 rounded bg-indigo-600 px-3 py-1.5 text-sm text-white hover:bg-indigo-700 disabled:cursor-not-allowed disabled:opacity-50", children: applying ? "Applying..." : "Create Missing" }), _jsx("button", { onClick: async () => {
48
- try {
49
- setApplying(true);
50
- setError(null);
51
- const keys = categories
52
- .flatMap((c) => c.items)
53
- .filter((i) => i.status === "Outdated")
54
- .map((i) => i.key);
55
- if (keys.length === 0)
56
- return;
57
- await applySetup(keys, includeDeps);
58
- await load();
59
- }
60
- catch (e) {
61
- setError(e instanceof Error ? e.message : "Failed to apply setup");
62
- }
63
- finally {
64
- setApplying(false);
65
- }
66
- }, disabled: loading || applying, className: "flex items-center gap-2 rounded bg-amber-600 px-3 py-1.5 text-sm text-white hover:bg-amber-700 disabled:cursor-not-allowed disabled:opacity-50", children: applying ? "Applying..." : "Update Outdated" })] })] }), error && (_jsx("div", { className: "mb-3 rounded border border-red-200 bg-red-50 p-3 text-sm text-red-700", children: error })), _jsx("div", { className: "space-y-6", children: categories.map((cat) => (_jsxs("div", { children: [_jsx("div", { className: "mb-2 text-sm font-semibold text-gray-700", children: cat.name }), _jsx("div", { className: "divide-y rounded border", children: cat.items.map((it) => (_jsxs("div", { className: "flex items-center justify-between px-3 py-2 text-sm", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-medium", children: it.key }), _jsx("div", { className: "truncate text-xs text-gray-500", children: it.targetPath })] }), _jsx("div", { className: "ml-3 shrink-0", children: _jsx("span", { className: `rounded px-2 py-0.5 text-xs font-medium ${it.status === "Missing"
67
- ? "bg-yellow-100 text-yellow-700"
68
- : it.status === "UpToDate"
69
- ? "bg-green-100 text-green-700"
70
- : it.status === "Outdated"
71
- ? "bg-amber-100 text-amber-700"
72
- : it.status === "Modified"
73
- ? "bg-blue-100 text-blue-700"
74
- : "bg-gray-100 text-gray-700"}`, children: it.status }) }), _jsx("div", { className: "ml-3 shrink-0", children: it.status === "Missing" || it.status === "Outdated" ? (_jsx("button", { onClick: async () => {
75
- try {
76
- setApplying(true);
77
- setError(null);
78
- await applySetup([it.key], includeDeps);
79
- await load();
80
- }
81
- catch (e) {
82
- setError(e instanceof Error
83
- ? e.message
84
- : "Failed to apply setup");
85
- }
86
- finally {
87
- setApplying(false);
88
- }
89
- }, disabled: loading || applying, className: "rounded bg-gray-800 px-2 py-1 text-xs text-white hover:bg-black disabled:cursor-not-allowed disabled:opacity-50", children: it.status === "Missing" ? "Install" : "Update" })) : null })] }, it.key))) })] }, cat.name))) })] }));
90
- }
91
- //# sourceMappingURL=Overview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Overview.js","sourceRoot":"","sources":["../../../../src/editor/control-center/parhelia-setup/Overview.tsx"],"names":[],"mappings":"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"}