@burdenoff/microfe-movethewheels 2026.1014.1 → 2026.1016.2

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 (186) hide show
  1. package/README.md +7 -0
  2. package/dist/components/EntityCombobox.js +80 -74
  3. package/dist/components/pending-pick/PendingPickHistory.js +47 -38
  4. package/dist/components/pending-pick/PickReviewPanel.js +317 -0
  5. package/dist/dev/main.d.ts +0 -1
  6. package/dist/generated/pending-pick-operations.d.ts +356 -0
  7. package/dist/index.d.ts +2 -4
  8. package/dist/movethewheels/MoveTheWheelsRoot.d.ts +0 -1
  9. package/dist/movethewheels/MoveTheWheelsRoutes.d.ts +1 -1
  10. package/dist/movethewheels/components/AssignmentSuggestions.d.ts +1 -2
  11. package/dist/movethewheels/components/CarbonFootprintPanel.d.ts +1 -1
  12. package/dist/movethewheels/components/ContainerEvidencePicker.d.ts +1 -2
  13. package/dist/movethewheels/components/CustomerPicker.d.ts +1 -2
  14. package/dist/movethewheels/components/DataTable.d.ts +1 -2
  15. package/dist/movethewheels/components/DocumentsCard.d.ts +1 -2
  16. package/dist/movethewheels/components/EntityCombobox.d.ts +1 -1
  17. package/dist/movethewheels/components/FleetAlertsPanel.d.ts +1 -2
  18. package/dist/movethewheels/components/FormError.d.ts +1 -1
  19. package/dist/movethewheels/components/FreeTimeAgreementForm.d.ts +1 -2
  20. package/dist/movethewheels/components/GlassPanel.d.ts +1 -2
  21. package/dist/movethewheels/components/MetricCard.d.ts +3 -4
  22. package/dist/movethewheels/components/Notice.d.ts +1 -1
  23. package/dist/movethewheels/components/OrderItemRow.d.ts +1 -2
  24. package/dist/movethewheels/components/PageLayout.d.ts +5 -6
  25. package/dist/movethewheels/components/ProofOfDeliveryCard.d.ts +1 -1
  26. package/dist/movethewheels/components/ReturnInstructionForm.d.ts +1 -2
  27. package/dist/movethewheels/components/ReuseControls.d.ts +4 -5
  28. package/dist/movethewheels/components/ReusePermissionForm.d.ts +1 -2
  29. package/dist/movethewheels/components/ReuseProposalForm.d.ts +1 -2
  30. package/dist/movethewheels/components/ReuseSourceFields.d.ts +1 -2
  31. package/dist/movethewheels/components/ShippingQuoteResults.d.ts +1 -2
  32. package/dist/movethewheels/components/StatusBadge.d.ts +5 -6
  33. package/dist/movethewheels/components/StockActionDialogs.d.ts +3 -3
  34. package/dist/movethewheels/components/UpcomingDemandPanel.d.ts +1 -2
  35. package/dist/movethewheels/components/VehicleServiceCard.d.ts +1 -2
  36. package/dist/movethewheels/components/charts/ChartShell.d.ts +2 -3
  37. package/dist/movethewheels/components/charts/Sparkline.d.ts +1 -1
  38. package/dist/movethewheels/components/charts/StatusDonut.d.ts +1 -1
  39. package/dist/movethewheels/components/charts/TrendChart.d.ts +1 -1
  40. package/dist/movethewheels/components/charts/VolumeBar.d.ts +1 -1
  41. package/dist/movethewheels/components/consolidation/ConsolidationHistory.d.ts +3 -4
  42. package/dist/movethewheels/components/consolidation/ConsolidationLotEditor.d.ts +1 -2
  43. package/dist/movethewheels/components/consolidation/ConsolidationManifestWorkbench.d.ts +1 -2
  44. package/dist/movethewheels/components/consolidation/ConsolidationPlanForm.d.ts +1 -2
  45. package/dist/movethewheels/components/consolidation/ConsolidationPlanWorkbench.d.ts +1 -2
  46. package/dist/movethewheels/components/consolidation/ConsolidationReportForm.d.ts +1 -2
  47. package/dist/movethewheels/components/consolidation/ConsolidationReportsWorkbench.d.ts +1 -2
  48. package/dist/movethewheels/components/consolidation/ConsolidationSummary.d.ts +1 -2
  49. package/dist/movethewheels/components/consolidation/OriginalConsolidationHistory.d.ts +1 -2
  50. package/dist/movethewheels/components/freight-cost/FreightDraftForm.d.ts +1 -2
  51. package/dist/movethewheels/components/freight-cost/FreightFields.d.ts +3 -4
  52. package/dist/movethewheels/components/freight-cost/FreightFxEditor.d.ts +1 -2
  53. package/dist/movethewheels/components/freight-cost/FreightHistory.d.ts +1 -2
  54. package/dist/movethewheels/components/freight-cost/FreightLineEditor.d.ts +1 -2
  55. package/dist/movethewheels/components/freight-cost/FreightScopeEditor.d.ts +1 -2
  56. package/dist/movethewheels/components/freight-cost/FreightTotals.d.ts +1 -2
  57. package/dist/movethewheels/components/logistics-procedure/ProcedureDecisionForm.d.ts +2 -3
  58. package/dist/movethewheels/components/logistics-procedure/ProcedureFields.d.ts +3 -4
  59. package/dist/movethewheels/components/logistics-procedure/ProcedureHistory.d.ts +1 -2
  60. package/dist/movethewheels/components/logistics-procedure/ProcedurePolicyForm.d.ts +1 -2
  61. package/dist/movethewheels/components/logistics-procedure/ProcedurePolicyWorkbench.d.ts +1 -2
  62. package/dist/movethewheels/components/logistics-procedure/ProcedureReviewWorkbench.d.ts +1 -2
  63. package/dist/movethewheels/components/logistics-procedure/ProcedureRunWorkbench.d.ts +1 -2
  64. package/dist/movethewheels/components/logistics-procedure/ProcedureSubjectPicker.d.ts +1 -2
  65. package/dist/movethewheels/components/maps/LogisticsMap.d.ts +1 -2
  66. package/dist/movethewheels/components/maps/MapCanvas.d.ts +1 -2
  67. package/dist/movethewheels/components/maps/RouteMap.d.ts +1 -1
  68. package/dist/movethewheels/components/maps/TrackingMap.d.ts +1 -1
  69. package/dist/movethewheels/components/maps/leaflet-setup.d.ts +0 -1
  70. package/dist/movethewheels/components/pending-pick/PendingPickDraft.d.ts +1 -2
  71. package/dist/movethewheels/components/pending-pick/PendingPickHistory.d.ts +1 -1
  72. package/dist/movethewheels/components/pending-pick/PickCapture.d.ts +1 -2
  73. package/dist/movethewheels/components/pending-pick/PickLineSelection.d.ts +1 -2
  74. package/dist/movethewheels/components/pending-pick/PickReviewPanel.d.ts +4 -0
  75. package/dist/movethewheels/components/stock-binding/StockAssessmentDraft.d.ts +1 -2
  76. package/dist/movethewheels/components/stock-binding/StockAssessmentHistory.d.ts +1 -2
  77. package/dist/movethewheels/components/stock-binding/StockAssessmentSummary.d.ts +1 -2
  78. package/dist/movethewheels/components/stock-binding/StockFactForm.d.ts +1 -2
  79. package/dist/movethewheels/components/stock-observation/StockIssueForm.d.ts +1 -2
  80. package/dist/movethewheels/components/stock-observation/StockIssueHistory.d.ts +1 -2
  81. package/dist/movethewheels/components/stock-observation/StockIssueReadPanel.d.ts +1 -1
  82. package/dist/movethewheels/components/trip-utilization/TripReportForm.d.ts +1 -2
  83. package/dist/movethewheels/components/trip-utilization/TripReportHistory.d.ts +1 -2
  84. package/dist/movethewheels/components/trip-utilization/TripReportSummary.d.ts +1 -2
  85. package/dist/movethewheels/components/trip-utilization/TripSegmentFields.d.ts +1 -2
  86. package/dist/movethewheels/hooks/useAnalytics.d.ts +0 -1
  87. package/dist/movethewheels/hooks/useConsolidationAction.d.ts +0 -1
  88. package/dist/movethewheels/hooks/useContainerCondition.d.ts +0 -1
  89. package/dist/movethewheels/hooks/useContainerLifecycle.d.ts +0 -1
  90. package/dist/movethewheels/hooks/useCustomers.d.ts +0 -1
  91. package/dist/movethewheels/hooks/useEmptyReuseAction.d.ts +0 -1
  92. package/dist/movethewheels/hooks/useEpod.d.ts +0 -1
  93. package/dist/movethewheels/hooks/useFleet.d.ts +0 -1
  94. package/dist/movethewheels/hooks/useFreightRecoveryAction.d.ts +0 -1
  95. package/dist/movethewheels/hooks/useInventory.d.ts +0 -1
  96. package/dist/movethewheels/hooks/useOrders.d.ts +0 -1
  97. package/dist/movethewheels/hooks/useProcedureAction.d.ts +0 -1
  98. package/dist/movethewheels/hooks/useProcedureSelection.d.ts +0 -1
  99. package/dist/movethewheels/hooks/useReuseRecoveryAction.d.ts +0 -1
  100. package/dist/movethewheels/hooks/useRoutes.d.ts +0 -1
  101. package/dist/movethewheels/hooks/useShipmentStatusAuthority.d.ts +0 -1
  102. package/dist/movethewheels/hooks/useTracking.d.ts +0 -1
  103. package/dist/movethewheels/hooks/useTrackingEventQuality.d.ts +0 -1
  104. package/dist/movethewheels/pages/AIAssistantPage.d.ts +1 -1
  105. package/dist/movethewheels/pages/AnalyticsPage.d.ts +1 -1
  106. package/dist/movethewheels/pages/ConsolidationPage.d.ts +1 -1
  107. package/dist/movethewheels/pages/ContainerConditionPage.d.ts +1 -1
  108. package/dist/movethewheels/pages/ContainersPage.d.ts +1 -1
  109. package/dist/movethewheels/pages/CreateOrderPage.d.ts +1 -1
  110. package/dist/movethewheels/pages/CustomerDetailsPage.d.ts +1 -1
  111. package/dist/movethewheels/pages/CustomersPage.d.ts +1 -1
  112. package/dist/movethewheels/pages/DashboardPage.d.ts +1 -1
  113. package/dist/movethewheels/pages/DeliveryCapturePage.d.ts +1 -1
  114. package/dist/movethewheels/pages/DriverDetailsPage.d.ts +1 -1
  115. package/dist/movethewheels/pages/DriversPage.d.ts +1 -1
  116. package/dist/movethewheels/pages/EmptyReusePage.d.ts +1 -1
  117. package/dist/movethewheels/pages/FinancePage.d.ts +1 -1
  118. package/dist/movethewheels/pages/FleetPage.d.ts +1 -1
  119. package/dist/movethewheels/pages/FreeTimePage.d.ts +1 -1
  120. package/dist/movethewheels/pages/FreightEstimatePage.d.ts +1 -1
  121. package/dist/movethewheels/pages/ImportExportPage.d.ts +1 -1
  122. package/dist/movethewheels/pages/InventoryPage.d.ts +1 -1
  123. package/dist/movethewheels/pages/LiveTrackingPage.d.ts +1 -1
  124. package/dist/movethewheels/pages/LogisticsProceduresPage.d.ts +1 -1
  125. package/dist/movethewheels/pages/MarketplacePage.d.ts +1 -1
  126. package/dist/movethewheels/pages/MultiModalShipmentPage.d.ts +1 -1
  127. package/dist/movethewheels/pages/OrderDetailsPage.d.ts +1 -1
  128. package/dist/movethewheels/pages/OrdersListPage.d.ts +1 -1
  129. package/dist/movethewheels/pages/PendingPickPage.d.ts +1 -1
  130. package/dist/movethewheels/pages/ProductDetailsPage.d.ts +1 -1
  131. package/dist/movethewheels/pages/ProductsPage.d.ts +1 -1
  132. package/dist/movethewheels/pages/ReportsPage.d.ts +1 -1
  133. package/dist/movethewheels/pages/RouteDetailsPage.d.ts +1 -1
  134. package/dist/movethewheels/pages/RoutesPage.d.ts +1 -1
  135. package/dist/movethewheels/pages/SettingsPage.d.ts +1 -1
  136. package/dist/movethewheels/pages/ShipmentStatusAuthorityPage.d.ts +1 -1
  137. package/dist/movethewheels/pages/ShippingRatesPage.d.ts +1 -1
  138. package/dist/movethewheels/pages/StockBindingPage.d.ts +1 -1
  139. package/dist/movethewheels/pages/StockObservationsPage.d.ts +1 -1
  140. package/dist/movethewheels/pages/TrackingEventQualityPage.d.ts +1 -1
  141. package/dist/movethewheels/pages/TrackingPage.d.ts +1 -1
  142. package/dist/movethewheels/pages/TripUtilizationPage.d.ts +1 -1
  143. package/dist/movethewheels/pages/VehicleDetailsPage.d.ts +1 -1
  144. package/dist/movethewheels/pages/VehiclesPage.d.ts +1 -1
  145. package/dist/movethewheels/pages/WarehouseDetailsPage.d.ts +1 -1
  146. package/dist/movethewheels/pages/WarehousesPage.d.ts +1 -1
  147. package/dist/movethewheels/providers/MoveTheWheelsProvider.d.ts +0 -1
  148. package/dist/movethewheels/store/movethewheelsStore.d.ts +0 -1
  149. package/dist/movethewheels/types/index.d.ts +0 -1
  150. package/dist/movethewheels/utils/cn.d.ts +0 -1
  151. package/dist/movethewheels/utils/consolidationHistoryTarget.d.ts +0 -1
  152. package/dist/movethewheels/utils/consolidationInput.d.ts +0 -1
  153. package/dist/movethewheels/utils/consolidationLot.d.ts +0 -1
  154. package/dist/movethewheels/utils/consolidationPins.d.ts +0 -1
  155. package/dist/movethewheels/utils/consolidationRecovery.d.ts +0 -1
  156. package/dist/movethewheels/utils/consolidationReportHead.d.ts +0 -1
  157. package/dist/movethewheels/utils/formatters.d.ts +0 -1
  158. package/dist/movethewheels/utils/freightDraft.d.ts +0 -1
  159. package/dist/movethewheels/utils/freightRecovery.d.ts +0 -1
  160. package/dist/movethewheels/utils/mapMarkers.d.ts +0 -1
  161. package/dist/movethewheels/utils/orderValidation.d.ts +0 -1
  162. package/dist/movethewheels/utils/pendingPickDraft.d.ts +0 -1
  163. package/dist/movethewheels/utils/pickReviewAcknowledgement.d.ts +3 -0
  164. package/dist/movethewheels/utils/procedureInput.d.ts +0 -1
  165. package/dist/movethewheels/utils/procedureRecovery.d.ts +0 -1
  166. package/dist/movethewheels/utils/reuseForm.d.ts +0 -1
  167. package/dist/movethewheels/utils/reuseRecovery.d.ts +0 -1
  168. package/dist/movethewheels/utils/stockBindingForm.d.ts +0 -1
  169. package/dist/movethewheels/utils/stockObservationForm.d.ts +0 -1
  170. package/dist/movethewheels/utils/tripDraftContext.d.ts +0 -1
  171. package/dist/movethewheels/utils/tripUtilizationForm.d.ts +0 -1
  172. package/dist/services/createSandboxAssistantTransport.d.ts +2 -1
  173. package/dist/src/generated/pending-pick-operations.js +75 -6
  174. package/dist/stories/EntityCombobox.stories.d.ts +6 -0
  175. package/dist/stories/MetricCard.stories.d.ts +0 -1
  176. package/dist/stories/Notice.stories.d.ts +0 -1
  177. package/dist/stories/StatusBadge.stories.d.ts +0 -1
  178. package/dist/utils/pickReviewAcknowledgement.js +10 -0
  179. package/package.json +7 -5
  180. package/src/generated/pending-pick-operations.ts +239 -1
  181. package/src/movethewheels/components/EntityCombobox.tsx +8 -2
  182. package/src/movethewheels/components/pending-pick/PendingPickHistory.tsx +6 -0
  183. package/src/movethewheels/components/pending-pick/PickReviewPanel.tsx +326 -0
  184. package/src/movethewheels/utils/pickReviewAcknowledgement.ts +51 -0
  185. package/src/operations/pending-pick/pick-review.graphql +14 -0
  186. package/src/stories/EntityCombobox.stories.tsx +58 -0
@@ -0,0 +1,317 @@
1
+ import { useMoveTheWheels as e } from "../../providers/MoveTheWheelsProvider.js";
2
+ import { Button as t } from "../ui.js";
3
+ import { useConditionApi as n, useConditionQuery as r } from "../../hooks/useContainerCondition.js";
4
+ import { ReuseField as i, ReusePager as a, ReuseState as o, reuseCard as s } from "../ReuseControls.js";
5
+ import { ContainerEvidencePicker as c } from "../ContainerEvidencePicker.js";
6
+ import { ApprovePickReviewDocument as l, PickReviewHistoryDocument as u, RejectPickReviewDocument as d, RevokePickReviewDocument as f } from "../../src/generated/pending-pick-operations.js";
7
+ import { confirmPickReviewAcknowledgement as p } from "../../utils/pickReviewAcknowledgement.js";
8
+ import { useRef as m, useState as h } from "react";
9
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
10
+ import { PermissionProvider as y, usePermissions as b } from "@burdenoff/fe-libs/shared/providers/shell";
11
+ //#region src/movethewheels/components/pending-pick/PickReviewPanel.tsx
12
+ function x({ task: t }) {
13
+ let { workspaceId: n, currentUser: r, apiGatewayUrl: i } = e();
14
+ return /* @__PURE__ */ _(y, {
15
+ scopeId: n ?? null,
16
+ gateway: "workspace",
17
+ children: /* @__PURE__ */ _(S, { task: t }, JSON.stringify([
18
+ n,
19
+ r?.id,
20
+ i,
21
+ t.id,
22
+ t.intentHash
23
+ ]))
24
+ });
25
+ }
26
+ function S({ task: y }) {
27
+ let x = b(), { currentUser: S, workspaceId: C } = e(), w = n("SINGLE_ATTEMPT"), T = JSON.stringify([
28
+ "mtw-review-intent",
29
+ C,
30
+ S?.id,
31
+ y.id,
32
+ y.intentHash
33
+ ]), [E, D] = h(() => {
34
+ try {
35
+ let e = sessionStorage.getItem(T);
36
+ return e === null || /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(e) ? e : "UNAVAILABLE";
37
+ } catch {
38
+ return "UNAVAILABLE";
39
+ }
40
+ }), O = E !== null, [k, A] = h(0), [j, M] = h(0), [N, P] = h([]), [F, I] = h(!1), [L, R] = h(null), z = m(!1), B = r(u, x.hasPermission("mtw-move-review:list") ? {
41
+ taskId: y.id,
42
+ limit: 10,
43
+ offset: k
44
+ } : null, j), V = B.data?.mtwPickReviewPage, H = V?.latestDecision, U = S?.id && S.id !== y.createdBy && S.id !== y.executorActorId, W = async (e, t) => {
45
+ if (z.current || O || !V || !U || !x.hasPermission(`mtw-move-review:${t.toLowerCase()}`)) return;
46
+ let n = new FormData(e), r = (e) => String(n.get(e) ?? "").trim(), i;
47
+ try {
48
+ if (t === "APPROVE" && (!/(Z|[+-]\d{2}:\d{2})$/.test(r("validFrom")) || !/(Z|[+-]\d{2}:\d{2})$/.test(r("validUntil")))) throw Error("Use explicit ISO timezone offsets for both validity bounds.");
49
+ let e = t === "APPROVE" ? new Date(r("validFrom")).toISOString() : null, a = t === "APPROVE" ? new Date(r("validUntil")).toISOString() : null, o = t === "APPROVE" ? Number(r("quantity")) : null, s = t === "APPROVE" ? [
50
+ "RESERVE",
51
+ "STAGE",
52
+ "RELEASE_UNPICKED",
53
+ "RELEASE_STAGED_CUSTODY",
54
+ "SHORT_PICK"
55
+ ].filter((e) => n.has(e)) : [];
56
+ if (!r("note") || t === "APPROVE" && (!s.length || !Number.isInteger(o) || o === null || o < 1 || o > y.requestedQuantity || !N.length || !r("handlingReference") || !r("handlingRevision") || !r("sopReference") || !r("sopRevision"))) throw Error("Review all required fields and select exact evidence.");
57
+ i = {
58
+ taskId: y.id,
59
+ intentHash: y.intentHash,
60
+ subjectActorId: y.executorActorId,
61
+ expectedPreviousDecisionId: H?.id ?? null,
62
+ expectedVersion: H?.version ?? 0,
63
+ actions: s,
64
+ quantityCeiling: o,
65
+ validFrom: e,
66
+ validUntil: a,
67
+ handlingPolicy: t === "APPROVE" ? {
68
+ reference: r("handlingReference"),
69
+ revision: r("handlingRevision")
70
+ } : null,
71
+ sop: t === "APPROVE" ? {
72
+ reference: r("sopReference"),
73
+ revision: r("sopRevision")
74
+ } : null,
75
+ evidence: t === "APPROVE" ? N.map(({ fileId: e, versionId: t }) => ({
76
+ fileId: e,
77
+ versionId: t
78
+ })) : [],
79
+ note: r("note"),
80
+ idempotencyKey: crypto.randomUUID()
81
+ };
82
+ } catch (e) {
83
+ R(e instanceof Error ? e.message : "Check the review fields.");
84
+ return;
85
+ }
86
+ try {
87
+ sessionStorage.setItem(T, i.idempotencyKey), D(i.idempotencyKey);
88
+ } catch {
89
+ D("UNAVAILABLE"), R("The intended request key could not be preserved. No decision was submitted.");
90
+ return;
91
+ }
92
+ z.current = !0, I(!0), R(null);
93
+ try {
94
+ p(await w(t === "APPROVE" ? l : t === "REJECT" ? d : f, { input: i }), i, t, S?.id ?? ""), sessionStorage.removeItem(T), D(null), M((e) => e + 1), R("Review recorded. Stock is unchanged.");
95
+ } catch {
96
+ R("The outcome is not confirmed. Preserve the intended request key and match it against review history; do not resend this decision.");
97
+ } finally {
98
+ z.current = !1, I(!1);
99
+ }
100
+ };
101
+ return /* @__PURE__ */ v("section", {
102
+ className: s,
103
+ "aria-label": "Independent move review",
104
+ children: [
105
+ /* @__PURE__ */ _("h4", {
106
+ className: "font-semibold",
107
+ children: "Independent move review"
108
+ }),
109
+ /* @__PURE__ */ _("p", { children: "Review only. No stock reservation, movement, qualification or physical safety certification. Current stock and permissions must be checked again before any future execution." }),
110
+ /* @__PURE__ */ v("p", {
111
+ className: "break-all",
112
+ children: [
113
+ "Exact intent SHA-256: ",
114
+ y.intentHash,
115
+ "; fixed executor: ",
116
+ y.executorActorId
117
+ ]
118
+ }),
119
+ x.isLoading && /* @__PURE__ */ _("p", {
120
+ role: "status",
121
+ children: "Checking review permissions…"
122
+ }),
123
+ x.error && /* @__PURE__ */ _("p", {
124
+ role: "alert",
125
+ children: "Review permissions are unavailable."
126
+ }),
127
+ !x.isLoading && !x.hasPermission("mtw-move-review:list") && /* @__PURE__ */ _("p", { children: "You do not have permission to list move reviews." }),
128
+ /* @__PURE__ */ _(o, {
129
+ loading: B.loading,
130
+ error: B.error
131
+ }),
132
+ V && /* @__PURE__ */ v(g, { children: [
133
+ /* @__PURE__ */ v("p", { children: [
134
+ "Latest review: ",
135
+ V.reviewState,
136
+ ", evaluated ",
137
+ V.evaluatedAt,
138
+ ". Older approvals never override a later rejection or revocation."
139
+ ] }),
140
+ V.items.map((e) => /* @__PURE__ */ v("article", {
141
+ className: "min-w-0 break-words rounded border p-3",
142
+ children: [
143
+ /* @__PURE__ */ v("p", { children: [
144
+ "Version ",
145
+ e.version,
146
+ ": ",
147
+ e.kind,
148
+ " · ",
149
+ e.note
150
+ ] }),
151
+ /* @__PURE__ */ v("p", {
152
+ className: "break-all",
153
+ children: [
154
+ "Reviewer ",
155
+ e.reviewerActorId,
156
+ "; receipt ",
157
+ e.id,
158
+ "; request key",
159
+ " ",
160
+ e.idempotencyKey,
161
+ "; intent ",
162
+ e.intentHash
163
+ ]
164
+ }),
165
+ /* @__PURE__ */ v("p", { children: [
166
+ e.actions.join(", ") || "No actions granted",
167
+ "; ceiling",
168
+ " ",
169
+ e.quantityCeiling ?? "none",
170
+ "; validity ",
171
+ e.validFrom ?? "none",
172
+ " to",
173
+ " ",
174
+ e.validUntil ?? "none",
175
+ " (exclusive)."
176
+ ] }),
177
+ /* @__PURE__ */ v("p", { children: [
178
+ "Handling source",
179
+ " ",
180
+ e.handlingPolicy ? `${e.handlingPolicy.reference} · revision ${e.handlingPolicy.revision}` : "none",
181
+ "; SOP ",
182
+ e.sop ? `${e.sop.reference} · revision ${e.sop.revision}` : "none",
183
+ "."
184
+ ] }),
185
+ e.evidence.map((e) => /* @__PURE__ */ v("p", {
186
+ className: "break-all",
187
+ children: [
188
+ "Evidence ",
189
+ e.fileId,
190
+ ", version ",
191
+ e.versionId,
192
+ ", SHA-256 ",
193
+ e.sha256Hash,
194
+ "; checked ",
195
+ e.checkedAt,
196
+ "."
197
+ ]
198
+ }, e.versionId))
199
+ ]
200
+ }, e.id)),
201
+ /* @__PURE__ */ _(a, {
202
+ page: V,
203
+ offset: k,
204
+ onChange: A,
205
+ busy: F || B.loading
206
+ })
207
+ ] }),
208
+ !U && /* @__PURE__ */ _("p", { children: "The creator and fixed executor cannot review this task." }),
209
+ U && V && /* @__PURE__ */ _("form", {
210
+ onSubmit: (e) => e.preventDefault(),
211
+ children: /* @__PURE__ */ v("fieldset", {
212
+ disabled: F || O,
213
+ className: "space-y-3",
214
+ children: [
215
+ /* @__PURE__ */ _("legend", { children: "Record a decision on the exact intent" }),
216
+ /* @__PURE__ */ _(i, {
217
+ label: "Decision note",
218
+ name: "note",
219
+ maxLength: 1e3
220
+ }),
221
+ x.hasPermission("mtw-move-review:approve") && /* @__PURE__ */ v("details", { children: [
222
+ /* @__PURE__ */ _("summary", { children: "Approval scope and sourced handling review" }),
223
+ /* @__PURE__ */ _(i, {
224
+ label: `Quantity ceiling (1–${y.requestedQuantity})`,
225
+ name: "quantity",
226
+ type: "number"
227
+ }),
228
+ /* @__PURE__ */ _(i, {
229
+ label: "Valid from (ISO with timezone)",
230
+ name: "validFrom"
231
+ }),
232
+ /* @__PURE__ */ _(i, {
233
+ label: "Valid until (exclusive, ISO with timezone)",
234
+ name: "validUntil"
235
+ }),
236
+ [
237
+ "RESERVE",
238
+ "STAGE",
239
+ "RELEASE_UNPICKED",
240
+ "RELEASE_STAGED_CUSTODY",
241
+ "SHORT_PICK"
242
+ ].map((e) => /* @__PURE__ */ v("label", {
243
+ className: "block",
244
+ children: [
245
+ /* @__PURE__ */ _("input", {
246
+ type: "checkbox",
247
+ name: e
248
+ }),
249
+ " ",
250
+ e
251
+ ]
252
+ }, e)),
253
+ /* @__PURE__ */ _(i, {
254
+ label: "Handling policy reference",
255
+ name: "handlingReference"
256
+ }),
257
+ /* @__PURE__ */ _(i, {
258
+ label: "Handling policy revision",
259
+ name: "handlingRevision"
260
+ }),
261
+ /* @__PURE__ */ _(i, {
262
+ label: "SOP reference",
263
+ name: "sopReference"
264
+ }),
265
+ /* @__PURE__ */ _(i, {
266
+ label: "SOP revision",
267
+ name: "sopRevision"
268
+ }),
269
+ /* @__PURE__ */ _(c, {
270
+ value: N,
271
+ onChange: P,
272
+ description: "Select readable exact Files versions supporting this handling/SOP review. References alone do not certify physical facts."
273
+ })
274
+ ] }),
275
+ /* @__PURE__ */ _("div", {
276
+ className: "flex flex-wrap gap-2",
277
+ children: [
278
+ "APPROVE",
279
+ "REJECT",
280
+ "REVOKE"
281
+ ].filter((e) => x.hasPermission(`mtw-move-review:${e.toLowerCase()}`)).map((e) => /* @__PURE__ */ _(t, {
282
+ type: "button",
283
+ disabled: F || O || e === "REVOKE" && !H,
284
+ onClick: (t) => {
285
+ let n = t.currentTarget.form;
286
+ n && W(n, e);
287
+ },
288
+ children: e.toLowerCase()
289
+ }, e))
290
+ })
291
+ ]
292
+ })
293
+ }),
294
+ /* @__PURE__ */ _(t, {
295
+ type: "button",
296
+ variant: "outline",
297
+ disabled: F,
298
+ onClick: () => M((e) => e + 1),
299
+ children: "Refresh review history"
300
+ }),
301
+ O && !F && /* @__PURE__ */ v("p", {
302
+ role: "alert",
303
+ children: [
304
+ "Submission remains stopped. Intended request key: ",
305
+ E,
306
+ ". This tab preserves it across refresh for this actor, workspace and exact task. Match it to the read-only history; an absent page result does not prove no commit. Do not resend or clear browser storage to retry. If the key is unavailable, obtain read-only reconciliation before any new decision."
307
+ ]
308
+ }),
309
+ L && /* @__PURE__ */ _("p", {
310
+ role: "status",
311
+ children: L
312
+ })
313
+ ]
314
+ });
315
+ }
316
+ //#endregion
317
+ export { x as PickReviewPanel };
@@ -1 +0,0 @@
1
-