@cellarnode/ui 0.203.0 → 0.207.0

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 (472) hide show
  1. package/README.md +25 -9
  2. package/dist/agent/activity-ledger.d.ts.map +1 -1
  3. package/dist/agent/activity-ledger.js +1 -1
  4. package/dist/agent/activity-ledger.js.map +1 -1
  5. package/dist/agent/composer.d.ts +64 -2
  6. package/dist/agent/composer.d.ts.map +1 -1
  7. package/dist/agent/composer.js +247 -9
  8. package/dist/agent/composer.js.map +1 -1
  9. package/dist/agent/confirm-card.d.ts.map +1 -1
  10. package/dist/agent/confirm-card.js +1 -1
  11. package/dist/agent/confirm-card.js.map +1 -1
  12. package/dist/agent/context.d.ts +94 -0
  13. package/dist/agent/context.d.ts.map +1 -0
  14. package/dist/agent/context.js +92 -0
  15. package/dist/agent/context.js.map +1 -0
  16. package/dist/agent/conversation.d.ts +41 -1
  17. package/dist/agent/conversation.d.ts.map +1 -1
  18. package/dist/agent/conversation.js +88 -5
  19. package/dist/agent/conversation.js.map +1 -1
  20. package/dist/agent/dropzone.d.ts +155 -0
  21. package/dist/agent/dropzone.d.ts.map +1 -0
  22. package/dist/agent/dropzone.js +404 -0
  23. package/dist/agent/dropzone.js.map +1 -0
  24. package/dist/agent/index.d.ts +11 -0
  25. package/dist/agent/index.d.ts.map +1 -1
  26. package/dist/agent/index.js +9 -0
  27. package/dist/agent/index.js.map +1 -1
  28. package/dist/agent/mentions.d.ts +75 -0
  29. package/dist/agent/mentions.d.ts.map +1 -0
  30. package/dist/agent/mentions.js +184 -0
  31. package/dist/agent/mentions.js.map +1 -0
  32. package/dist/agent/message.d.ts +16 -1
  33. package/dist/agent/message.d.ts.map +1 -1
  34. package/dist/agent/message.js +26 -6
  35. package/dist/agent/message.js.map +1 -1
  36. package/dist/agent/quote-reply.d.ts +40 -0
  37. package/dist/agent/quote-reply.d.ts.map +1 -0
  38. package/dist/agent/quote-reply.js +97 -0
  39. package/dist/agent/quote-reply.js.map +1 -0
  40. package/dist/agent/role-cards/brand-profile-card.d.ts +60 -0
  41. package/dist/agent/role-cards/brand-profile-card.d.ts.map +1 -0
  42. package/dist/agent/role-cards/brand-profile-card.js +113 -0
  43. package/dist/agent/role-cards/brand-profile-card.js.map +1 -0
  44. package/dist/agent/role-cards/card-text.d.ts +10 -0
  45. package/dist/agent/role-cards/card-text.d.ts.map +1 -0
  46. package/dist/agent/role-cards/card-text.js +38 -0
  47. package/dist/agent/role-cards/card-text.js.map +1 -0
  48. package/dist/agent/role-cards/fixtures.d.ts +29 -1
  49. package/dist/agent/role-cards/fixtures.d.ts.map +1 -1
  50. package/dist/agent/role-cards/fixtures.js +210 -1
  51. package/dist/agent/role-cards/fixtures.js.map +1 -1
  52. package/dist/agent/role-cards/host-contract.d.ts +34 -4
  53. package/dist/agent/role-cards/host-contract.d.ts.map +1 -1
  54. package/dist/agent/role-cards/host-contract.js +87 -1
  55. package/dist/agent/role-cards/host-contract.js.map +1 -1
  56. package/dist/agent/role-cards/inspector-view.d.ts.map +1 -1
  57. package/dist/agent/role-cards/inspector-view.js +12 -0
  58. package/dist/agent/role-cards/inspector-view.js.map +1 -1
  59. package/dist/agent/role-cards/lab-report-card.d.ts +40 -0
  60. package/dist/agent/role-cards/lab-report-card.d.ts.map +1 -0
  61. package/dist/agent/role-cards/lab-report-card.js +58 -0
  62. package/dist/agent/role-cards/lab-report-card.js.map +1 -0
  63. package/dist/agent/role-cards/label-card.d.ts +42 -0
  64. package/dist/agent/role-cards/label-card.d.ts.map +1 -0
  65. package/dist/agent/role-cards/label-card.js +65 -0
  66. package/dist/agent/role-cards/label-card.js.map +1 -0
  67. package/dist/agent/role-cards/org-card.d.ts +20 -0
  68. package/dist/agent/role-cards/org-card.d.ts.map +1 -0
  69. package/dist/agent/role-cards/org-card.js +37 -0
  70. package/dist/agent/role-cards/org-card.js.map +1 -0
  71. package/dist/agent/role-cards/registry.d.ts +13 -1
  72. package/dist/agent/role-cards/registry.d.ts.map +1 -1
  73. package/dist/agent/role-cards/registry.js +33 -0
  74. package/dist/agent/role-cards/registry.js.map +1 -1
  75. package/dist/agent/role-cards/schedule-card.d.ts +30 -0
  76. package/dist/agent/role-cards/schedule-card.d.ts.map +1 -0
  77. package/dist/agent/role-cards/schedule-card.js +58 -0
  78. package/dist/agent/role-cards/schedule-card.js.map +1 -0
  79. package/dist/agent/role-cards/stats-card.d.ts +30 -0
  80. package/dist/agent/role-cards/stats-card.d.ts.map +1 -0
  81. package/dist/agent/role-cards/stats-card.js +31 -0
  82. package/dist/agent/role-cards/stats-card.js.map +1 -0
  83. package/dist/agent/schema.d.ts +18 -0
  84. package/dist/agent/schema.d.ts.map +1 -1
  85. package/dist/agent/schema.js +17 -1
  86. package/dist/agent/schema.js.map +1 -1
  87. package/dist/agent/suggestions.d.ts +66 -0
  88. package/dist/agent/suggestions.d.ts.map +1 -0
  89. package/dist/agent/suggestions.js +186 -0
  90. package/dist/agent/suggestions.js.map +1 -0
  91. package/dist/agent/text-clean.d.ts +12 -0
  92. package/dist/agent/text-clean.d.ts.map +1 -0
  93. package/dist/agent/text-clean.js +55 -0
  94. package/dist/agent/text-clean.js.map +1 -0
  95. package/dist/agent/tool-activity-model.d.ts +4 -0
  96. package/dist/agent/tool-activity-model.d.ts.map +1 -1
  97. package/dist/agent/tool-activity-model.js +7 -0
  98. package/dist/agent/tool-activity-model.js.map +1 -1
  99. package/dist/agent/tool-activity.d.ts.map +1 -1
  100. package/dist/agent/tool-activity.js +4 -2
  101. package/dist/agent/tool-activity.js.map +1 -1
  102. package/dist/agent/tool-call-card.d.ts.map +1 -1
  103. package/dist/agent/tool-call-card.js +2 -1
  104. package/dist/agent/tool-call-card.js.map +1 -1
  105. package/dist/agent/ui.d.ts +7 -0
  106. package/dist/agent/ui.d.ts.map +1 -1
  107. package/dist/agent/ui.js +7 -0
  108. package/dist/agent/ui.js.map +1 -1
  109. package/dist/animated-icons/download-icon.d.ts.map +1 -1
  110. package/dist/animated-icons/download-icon.js +6 -1
  111. package/dist/animated-icons/download-icon.js.map +1 -1
  112. package/dist/animated-icons/filter-icon.d.ts.map +1 -1
  113. package/dist/animated-icons/filter-icon.js +6 -1
  114. package/dist/animated-icons/filter-icon.js.map +1 -1
  115. package/dist/animated-icons/upload-icon.d.ts.map +1 -1
  116. package/dist/animated-icons/upload-icon.js +6 -1
  117. package/dist/animated-icons/upload-icon.js.map +1 -1
  118. package/dist/brand/brand-image-source-picker.d.ts.map +1 -1
  119. package/dist/brand/brand-image-source-picker.js +9 -6
  120. package/dist/brand/brand-image-source-picker.js.map +1 -1
  121. package/dist/brand/brand-profile-form-values.d.ts +2 -2
  122. package/dist/chat/chat-surface.d.ts +16 -1
  123. package/dist/chat/chat-surface.d.ts.map +1 -1
  124. package/dist/chat/chat-surface.js +18 -16
  125. package/dist/chat/chat-surface.js.map +1 -1
  126. package/dist/chat/chat-toggle-button.d.ts.map +1 -1
  127. package/dist/chat/chat-toggle-button.js +11 -5
  128. package/dist/chat/chat-toggle-button.js.map +1 -1
  129. package/dist/chat/index.d.ts +1 -1
  130. package/dist/chat/index.d.ts.map +1 -1
  131. package/dist/chat/index.js.map +1 -1
  132. package/dist/commercial-price/commercial-price-format.d.ts +2 -0
  133. package/dist/commercial-price/commercial-price-format.d.ts.map +1 -1
  134. package/dist/commercial-price/commercial-price-format.js +4 -0
  135. package/dist/commercial-price/commercial-price-format.js.map +1 -1
  136. package/dist/commercial-price/commercial-terms.d.ts.map +1 -1
  137. package/dist/commercial-price/commercial-terms.js +9 -1
  138. package/dist/commercial-price/commercial-terms.js.map +1 -1
  139. package/dist/components/animated-shadcn-select.d.ts +2 -1
  140. package/dist/components/animated-shadcn-select.d.ts.map +1 -1
  141. package/dist/components/animated-shadcn-select.js +1 -1
  142. package/dist/components/animated-shadcn-select.js.map +1 -1
  143. package/dist/components/api-error-message.d.ts +17 -0
  144. package/dist/components/api-error-message.d.ts.map +1 -0
  145. package/dist/components/api-error-message.js +13 -0
  146. package/dist/components/api-error-message.js.map +1 -0
  147. package/dist/components/attachment-row.d.ts.map +1 -1
  148. package/dist/components/attachment-row.js +9 -1
  149. package/dist/components/attachment-row.js.map +1 -1
  150. package/dist/components/bottle-extract-dialog.js +1 -1
  151. package/dist/components/bottle-extract-dialog.js.map +1 -1
  152. package/dist/components/branch-overview-panel.d.ts.map +1 -1
  153. package/dist/components/branch-overview-panel.js +8 -4
  154. package/dist/components/branch-overview-panel.js.map +1 -1
  155. package/dist/components/branch-resolution-modal.d.ts +9 -1
  156. package/dist/components/branch-resolution-modal.d.ts.map +1 -1
  157. package/dist/components/branch-resolution-modal.js +12 -6
  158. package/dist/components/branch-resolution-modal.js.map +1 -1
  159. package/dist/components/card-stack.d.ts.map +1 -1
  160. package/dist/components/card-stack.js +9 -1
  161. package/dist/components/card-stack.js.map +1 -1
  162. package/dist/components/certification-upload-card.d.ts +19 -1
  163. package/dist/components/certification-upload-card.d.ts.map +1 -1
  164. package/dist/components/certification-upload-card.js +35 -7
  165. package/dist/components/certification-upload-card.js.map +1 -1
  166. package/dist/components/composition-editor.d.ts +24 -1
  167. package/dist/components/composition-editor.d.ts.map +1 -1
  168. package/dist/components/composition-editor.js +65 -13
  169. package/dist/components/composition-editor.js.map +1 -1
  170. package/dist/components/copy-button.d.ts.map +1 -1
  171. package/dist/components/copy-button.js +15 -4
  172. package/dist/components/copy-button.js.map +1 -1
  173. package/dist/components/currency-select.d.ts +11 -1
  174. package/dist/components/currency-select.d.ts.map +1 -1
  175. package/dist/components/currency-select.js +2 -2
  176. package/dist/components/currency-select.js.map +1 -1
  177. package/dist/components/file-dropzone.d.ts.map +1 -1
  178. package/dist/components/file-dropzone.js +4 -1
  179. package/dist/components/file-dropzone.js.map +1 -1
  180. package/dist/components/listbox.d.ts.map +1 -1
  181. package/dist/components/listbox.js +5 -1
  182. package/dist/components/listbox.js.map +1 -1
  183. package/dist/components/metric-card.d.ts +1 -1
  184. package/dist/components/metric-card.d.ts.map +1 -1
  185. package/dist/components/metric-card.js +2 -2
  186. package/dist/components/metric-card.js.map +1 -1
  187. package/dist/components/shadcn-button.d.ts +1 -1
  188. package/dist/components/sidebar/sidebar-menu.d.ts +1 -1
  189. package/dist/components/toast.d.ts.map +1 -1
  190. package/dist/components/toast.js +1 -1
  191. package/dist/components/toast.js.map +1 -1
  192. package/dist/discovery/command-palette-trigger.d.ts.map +1 -1
  193. package/dist/discovery/command-palette-trigger.js +2 -2
  194. package/dist/discovery/command-palette-trigger.js.map +1 -1
  195. package/dist/globe/globe-scene-camera.d.ts.map +1 -1
  196. package/dist/globe/globe-scene-camera.js +5 -2
  197. package/dist/globe/globe-scene-camera.js.map +1 -1
  198. package/dist/index.d.ts +4 -0
  199. package/dist/index.d.ts.map +1 -1
  200. package/dist/index.js +2 -0
  201. package/dist/index.js.map +1 -1
  202. package/dist/lab-reports/upload-lab-report-dialog.d.ts.map +1 -1
  203. package/dist/lab-reports/upload-lab-report-dialog.js +3 -3
  204. package/dist/lab-reports/upload-lab-report-dialog.js.map +1 -1
  205. package/dist/lib/describe-api-error.d.ts +19 -0
  206. package/dist/lib/describe-api-error.d.ts.map +1 -0
  207. package/dist/lib/describe-api-error.js +228 -0
  208. package/dist/lib/describe-api-error.js.map +1 -0
  209. package/dist/mcp-connect/clients.d.ts +4 -2
  210. package/dist/mcp-connect/clients.d.ts.map +1 -1
  211. package/dist/mcp-connect/clients.js +5 -3
  212. package/dist/mcp-connect/clients.js.map +1 -1
  213. package/dist/mcp-connect/mcp-connect-panel.js +1 -1
  214. package/dist/mcp-connect/mcp-connect-panel.js.map +1 -1
  215. package/dist/nav/app-sidebar.d.ts +5 -0
  216. package/dist/nav/app-sidebar.d.ts.map +1 -1
  217. package/dist/nav/app-sidebar.js +5 -3
  218. package/dist/nav/app-sidebar.js.map +1 -1
  219. package/dist/nav/sidebar-footer.d.ts +3 -1
  220. package/dist/nav/sidebar-footer.d.ts.map +1 -1
  221. package/dist/nav/sidebar-footer.js +5 -3
  222. package/dist/nav/sidebar-footer.js.map +1 -1
  223. package/dist/notifications/index.d.ts +1 -1
  224. package/dist/notifications/index.d.ts.map +1 -1
  225. package/dist/notifications/index.js +1 -1
  226. package/dist/notifications/index.js.map +1 -1
  227. package/dist/notifications/notification-badge.d.ts +2 -0
  228. package/dist/notifications/notification-badge.d.ts.map +1 -1
  229. package/dist/notifications/notification-badge.js +9 -2
  230. package/dist/notifications/notification-badge.js.map +1 -1
  231. package/dist/notifications/notification-tray.d.ts.map +1 -1
  232. package/dist/notifications/notification-tray.js +12 -2
  233. package/dist/notifications/notification-tray.js.map +1 -1
  234. package/dist/offer/counter-slide-over.d.ts +38 -12
  235. package/dist/offer/counter-slide-over.d.ts.map +1 -1
  236. package/dist/offer/counter-slide-over.js +130 -36
  237. package/dist/offer/counter-slide-over.js.map +1 -1
  238. package/dist/offer/facts-card.d.ts +3 -1
  239. package/dist/offer/facts-card.d.ts.map +1 -1
  240. package/dist/offer/facts-card.js +19 -10
  241. package/dist/offer/facts-card.js.map +1 -1
  242. package/dist/offer/index.d.ts +1 -1
  243. package/dist/offer/index.d.ts.map +1 -1
  244. package/dist/offer/index.js.map +1 -1
  245. package/dist/offer/negotiation-flow-timeline.d.ts.map +1 -1
  246. package/dist/offer/negotiation-flow-timeline.js +7 -4
  247. package/dist/offer/negotiation-flow-timeline.js.map +1 -1
  248. package/dist/offer/negotiation-labels.d.ts +5 -1
  249. package/dist/offer/negotiation-labels.d.ts.map +1 -1
  250. package/dist/offer/negotiation-labels.js +1 -1
  251. package/dist/offer/negotiation-labels.js.map +1 -1
  252. package/dist/offer/new-activity-pill.js +1 -1
  253. package/dist/offer/new-activity-pill.js.map +1 -1
  254. package/dist/offer/offer-document.d.ts.map +1 -1
  255. package/dist/offer/offer-document.js +8 -30
  256. package/dist/offer/offer-document.js.map +1 -1
  257. package/dist/offer/offer-product-record.d.ts.map +1 -1
  258. package/dist/offer/offer-product-record.js +7 -2
  259. package/dist/offer/offer-product-record.js.map +1 -1
  260. package/dist/offer/offered-product-props.d.ts +20 -0
  261. package/dist/offer/offered-product-props.d.ts.map +1 -0
  262. package/dist/offer/offered-product-props.js +42 -0
  263. package/dist/offer/offered-product-props.js.map +1 -0
  264. package/dist/offer/round-diff-banner.d.ts.map +1 -1
  265. package/dist/offer/round-diff-banner.js +6 -1
  266. package/dist/offer/round-diff-banner.js.map +1 -1
  267. package/dist/offer/terms-card.d.ts.map +1 -1
  268. package/dist/offer/terms-card.js +2 -0
  269. package/dist/offer/terms-card.js.map +1 -1
  270. package/dist/offer/timeline-event.d.ts.map +1 -1
  271. package/dist/offer/timeline-event.js +7 -4
  272. package/dist/offer/timeline-event.js.map +1 -1
  273. package/dist/offer/types.d.ts +4 -0
  274. package/dist/offer/types.d.ts.map +1 -1
  275. package/dist/opportunities/index.d.ts +6 -2
  276. package/dist/opportunities/index.d.ts.map +1 -1
  277. package/dist/opportunities/index.js +2 -0
  278. package/dist/opportunities/index.js.map +1 -1
  279. package/dist/opportunities/opportunity-add-to-journey-button.d.ts.map +1 -1
  280. package/dist/opportunities/opportunity-add-to-journey-button.js +17 -3
  281. package/dist/opportunities/opportunity-add-to-journey-button.js.map +1 -1
  282. package/dist/opportunities/opportunity-filter-bar.d.ts.map +1 -1
  283. package/dist/opportunities/opportunity-filter-bar.js +7 -1
  284. package/dist/opportunities/opportunity-filter-bar.js.map +1 -1
  285. package/dist/opportunities/wizard/allowed-delivery-terms-section.d.ts +14 -1
  286. package/dist/opportunities/wizard/allowed-delivery-terms-section.d.ts.map +1 -1
  287. package/dist/opportunities/wizard/allowed-delivery-terms-section.js +84 -4
  288. package/dist/opportunities/wizard/allowed-delivery-terms-section.js.map +1 -1
  289. package/dist/opportunities/wizard/mixed-delivery-terms.d.ts +25 -0
  290. package/dist/opportunities/wizard/mixed-delivery-terms.d.ts.map +1 -0
  291. package/dist/opportunities/wizard/mixed-delivery-terms.js +33 -0
  292. package/dist/opportunities/wizard/mixed-delivery-terms.js.map +1 -0
  293. package/dist/opportunities/wizard/opportunity-wizard.d.ts +18 -0
  294. package/dist/opportunities/wizard/opportunity-wizard.d.ts.map +1 -1
  295. package/dist/opportunities/wizard/opportunity-wizard.js +30 -63
  296. package/dist/opportunities/wizard/opportunity-wizard.js.map +1 -1
  297. package/dist/opportunities/wizard/package-sizes-field.d.ts +13 -0
  298. package/dist/opportunities/wizard/package-sizes-field.d.ts.map +1 -0
  299. package/dist/opportunities/wizard/package-sizes-field.js +66 -0
  300. package/dist/opportunities/wizard/package-sizes-field.js.map +1 -0
  301. package/dist/opportunities/wizard/price-ranges-editor.d.ts +17 -0
  302. package/dist/opportunities/wizard/price-ranges-editor.d.ts.map +1 -0
  303. package/dist/opportunities/wizard/price-ranges-editor.js +84 -0
  304. package/dist/opportunities/wizard/price-ranges-editor.js.map +1 -0
  305. package/dist/opportunities/wizard/price-ranges.d.ts +54 -0
  306. package/dist/opportunities/wizard/price-ranges.d.ts.map +1 -0
  307. package/dist/opportunities/wizard/price-ranges.js +104 -0
  308. package/dist/opportunities/wizard/price-ranges.js.map +1 -0
  309. package/dist/opportunities/wizard/publish-issues.d.ts +32 -0
  310. package/dist/opportunities/wizard/publish-issues.d.ts.map +1 -0
  311. package/dist/opportunities/wizard/publish-issues.js +124 -0
  312. package/dist/opportunities/wizard/publish-issues.js.map +1 -0
  313. package/dist/opportunities/wizard/step-opportunities.d.ts.map +1 -1
  314. package/dist/opportunities/wizard/step-opportunities.js +12 -7
  315. package/dist/opportunities/wizard/step-opportunities.js.map +1 -1
  316. package/dist/opportunities/wizard/step-pricing-timeline.d.ts +1 -1
  317. package/dist/opportunities/wizard/step-pricing-timeline.d.ts.map +1 -1
  318. package/dist/opportunities/wizard/step-pricing-timeline.js +7 -9
  319. package/dist/opportunities/wizard/step-pricing-timeline.js.map +1 -1
  320. package/dist/opportunities/wizard/step-review.d.ts +19 -3
  321. package/dist/opportunities/wizard/step-review.d.ts.map +1 -1
  322. package/dist/opportunities/wizard/step-review.js +58 -13
  323. package/dist/opportunities/wizard/step-review.js.map +1 -1
  324. package/dist/opportunities/wizard/wizard-stepper.d.ts +15 -0
  325. package/dist/opportunities/wizard/wizard-stepper.d.ts.map +1 -1
  326. package/dist/opportunities/wizard/wizard-stepper.js +17 -8
  327. package/dist/opportunities/wizard/wizard-stepper.js.map +1 -1
  328. package/dist/opportunities/wizard/wizard.types.d.ts +4 -4
  329. package/dist/opportunities/wizard/wizard.types.d.ts.map +1 -1
  330. package/dist/opportunities/wizard/wizard.types.js +13 -6
  331. package/dist/opportunities/wizard/wizard.types.js.map +1 -1
  332. package/dist/opportunity-facts/build-opportunity-facts.d.ts.map +1 -1
  333. package/dist/opportunity-facts/build-opportunity-facts.js +11 -1
  334. package/dist/opportunity-facts/build-opportunity-facts.js.map +1 -1
  335. package/dist/opportunity-facts/glossary.en.d.ts +34 -0
  336. package/dist/opportunity-facts/glossary.en.d.ts.map +1 -1
  337. package/dist/opportunity-facts/glossary.en.js +34 -0
  338. package/dist/opportunity-facts/glossary.en.js.map +1 -1
  339. package/dist/opportunity-facts/index.d.ts +3 -1
  340. package/dist/opportunity-facts/index.d.ts.map +1 -1
  341. package/dist/opportunity-facts/index.js +2 -0
  342. package/dist/opportunity-facts/index.js.map +1 -1
  343. package/dist/opportunity-facts/labels.d.ts +38 -0
  344. package/dist/opportunity-facts/labels.d.ts.map +1 -1
  345. package/dist/opportunity-facts/labels.js +34 -0
  346. package/dist/opportunity-facts/labels.js.map +1 -1
  347. package/dist/opportunity-facts/opportunity-fact-sheet.d.ts +9 -1
  348. package/dist/opportunity-facts/opportunity-fact-sheet.d.ts.map +1 -1
  349. package/dist/opportunity-facts/opportunity-fact-sheet.js +21 -2
  350. package/dist/opportunity-facts/opportunity-fact-sheet.js.map +1 -1
  351. package/dist/opportunity-facts/price-cases-section.d.ts +18 -0
  352. package/dist/opportunity-facts/price-cases-section.d.ts.map +1 -0
  353. package/dist/opportunity-facts/price-cases-section.js +36 -0
  354. package/dist/opportunity-facts/price-cases-section.js.map +1 -0
  355. package/dist/opportunity-facts/price-cases.d.ts +5 -0
  356. package/dist/opportunity-facts/price-cases.d.ts.map +1 -0
  357. package/dist/opportunity-facts/price-cases.js +127 -0
  358. package/dist/opportunity-facts/price-cases.js.map +1 -0
  359. package/dist/opportunity-facts/source-document-download.d.ts +34 -0
  360. package/dist/opportunity-facts/source-document-download.d.ts.map +1 -0
  361. package/dist/opportunity-facts/source-document-download.js +91 -0
  362. package/dist/opportunity-facts/source-document-download.js.map +1 -0
  363. package/dist/opportunity-facts/types.d.ts +69 -0
  364. package/dist/opportunity-facts/types.d.ts.map +1 -1
  365. package/dist/org/invite-member-dialog.d.ts.map +1 -1
  366. package/dist/org/invite-member-dialog.js +12 -1
  367. package/dist/org/invite-member-dialog.js.map +1 -1
  368. package/dist/portfolio/version-rail.d.ts.map +1 -1
  369. package/dist/portfolio/version-rail.js +1 -1
  370. package/dist/portfolio/version-rail.js.map +1 -1
  371. package/dist/portfolio-import/import-job-detail-view.d.ts.map +1 -1
  372. package/dist/portfolio-import/import-job-detail-view.js +12 -1
  373. package/dist/portfolio-import/import-job-detail-view.js.map +1 -1
  374. package/dist/portfolio-import/import-job-panels.d.ts.map +1 -1
  375. package/dist/portfolio-import/import-job-panels.js +13 -2
  376. package/dist/portfolio-import/import-job-panels.js.map +1 -1
  377. package/dist/portfolio-import/import-products-dialog.d.ts.map +1 -1
  378. package/dist/portfolio-import/import-products-dialog.js +5 -2
  379. package/dist/portfolio-import/import-products-dialog.js.map +1 -1
  380. package/dist/portfolio-import/review-queue-panel.d.ts.map +1 -1
  381. package/dist/portfolio-import/review-queue-panel.js +36 -4
  382. package/dist/portfolio-import/review-queue-panel.js.map +1 -1
  383. package/dist/portfolio-import/session/index.d.ts +1 -1
  384. package/dist/portfolio-import/session/index.d.ts.map +1 -1
  385. package/dist/portfolio-import/session/index.js +1 -1
  386. package/dist/portfolio-import/session/index.js.map +1 -1
  387. package/dist/portfolio-import/session/save-review-field.d.ts +29 -4
  388. package/dist/portfolio-import/session/save-review-field.d.ts.map +1 -1
  389. package/dist/portfolio-import/session/save-review-field.js +115 -30
  390. package/dist/portfolio-import/session/save-review-field.js.map +1 -1
  391. package/dist/portfolio-import/session/types.d.ts +6 -0
  392. package/dist/portfolio-import/session/types.d.ts.map +1 -1
  393. package/dist/portfolio-import/types.d.ts +6 -0
  394. package/dist/portfolio-import/types.d.ts.map +1 -1
  395. package/dist/portfolio-import/types.js.map +1 -1
  396. package/dist/product-editor/field-routing.d.ts +2 -1
  397. package/dist/product-editor/field-routing.d.ts.map +1 -1
  398. package/dist/product-editor/field-routing.js +9 -1
  399. package/dist/product-editor/field-routing.js.map +1 -1
  400. package/dist/product-editor/index.d.ts +1 -1
  401. package/dist/product-editor/index.d.ts.map +1 -1
  402. package/dist/product-editor/index.js.map +1 -1
  403. package/dist/product-editor/product-editor-form.d.ts +37 -2
  404. package/dist/product-editor/product-editor-form.d.ts.map +1 -1
  405. package/dist/product-editor/product-editor-form.js +96 -3
  406. package/dist/product-editor/product-editor-form.js.map +1 -1
  407. package/dist/product-editor/product-editor-surface.d.ts.map +1 -1
  408. package/dist/product-editor/product-editor-surface.js +2 -4
  409. package/dist/product-editor/product-editor-surface.js.map +1 -1
  410. package/dist/product-editor/product-editor.d.ts.map +1 -1
  411. package/dist/product-editor/product-editor.js +17 -6
  412. package/dist/product-editor/product-editor.js.map +1 -1
  413. package/dist/product-editor/schema.d.ts +20 -0
  414. package/dist/product-editor/schema.d.ts.map +1 -1
  415. package/dist/product-editor/schema.js +70 -0
  416. package/dist/product-editor/schema.js.map +1 -1
  417. package/dist/product-editor/tabs/product-composition-section.d.ts +26 -0
  418. package/dist/product-editor/tabs/product-composition-section.d.ts.map +1 -0
  419. package/dist/product-editor/tabs/product-composition-section.js +47 -0
  420. package/dist/product-editor/tabs/product-composition-section.js.map +1 -0
  421. package/dist/product-editor/tabs/product-essentials-details-sections.d.ts +4 -2
  422. package/dist/product-editor/tabs/product-essentials-details-sections.d.ts.map +1 -1
  423. package/dist/product-editor/tabs/product-essentials-details-sections.js +4 -2
  424. package/dist/product-editor/tabs/product-essentials-details-sections.js.map +1 -1
  425. package/dist/product-editor/tabs/product-essentials-tab.d.ts +4 -2
  426. package/dist/product-editor/tabs/product-essentials-tab.d.ts.map +1 -1
  427. package/dist/product-editor/tabs/product-essentials-tab.js +2 -2
  428. package/dist/product-editor/tabs/product-essentials-tab.js.map +1 -1
  429. package/dist/product-editor/tabs/product-production-capacity-field.d.ts +23 -0
  430. package/dist/product-editor/tabs/product-production-capacity-field.d.ts.map +1 -0
  431. package/dist/product-editor/tabs/product-production-capacity-field.js +57 -0
  432. package/dist/product-editor/tabs/product-production-capacity-field.js.map +1 -0
  433. package/dist/product-editor/tabs/product-resources-tab.d.ts.map +1 -1
  434. package/dist/product-editor/tabs/product-resources-tab.js +1 -1
  435. package/dist/product-editor/tabs/product-resources-tab.js.map +1 -1
  436. package/dist/product-editor/tabs/resources/certifications-panel.d.ts.map +1 -1
  437. package/dist/product-editor/tabs/resources/certifications-panel.js +47 -47
  438. package/dist/product-editor/tabs/resources/certifications-panel.js.map +1 -1
  439. package/dist/product-editor/types.d.ts +61 -4
  440. package/dist/product-editor/types.d.ts.map +1 -1
  441. package/dist/profile/api-keys/backend-as-metadata.fixture.d.ts +9 -0
  442. package/dist/profile/api-keys/backend-as-metadata.fixture.d.ts.map +1 -0
  443. package/dist/profile/api-keys/backend-as-metadata.fixture.js +42 -0
  444. package/dist/profile/api-keys/backend-as-metadata.fixture.js.map +1 -0
  445. package/dist/profile/api-keys/connected-apps-card.d.ts +2 -2
  446. package/dist/profile/api-keys/connected-apps-card.d.ts.map +1 -1
  447. package/dist/profile/api-keys/connected-apps-card.js +7 -3
  448. package/dist/profile/api-keys/connected-apps-card.js.map +1 -1
  449. package/dist/profile/api-keys/create-api-key-dialog.js +2 -2
  450. package/dist/profile/api-keys/create-api-key-dialog.js.map +1 -1
  451. package/dist/profile/api-keys/index.d.ts +2 -1
  452. package/dist/profile/api-keys/index.d.ts.map +1 -1
  453. package/dist/profile/api-keys/index.js +2 -1
  454. package/dist/profile/api-keys/index.js.map +1 -1
  455. package/dist/profile/api-keys/oauth-scopes.d.ts +8 -0
  456. package/dist/profile/api-keys/oauth-scopes.d.ts.map +1 -0
  457. package/dist/profile/api-keys/oauth-scopes.js +41 -0
  458. package/dist/profile/api-keys/oauth-scopes.js.map +1 -0
  459. package/dist/profile/api-keys/profile-keys-section.d.ts +6 -1
  460. package/dist/profile/api-keys/profile-keys-section.d.ts.map +1 -1
  461. package/dist/profile/api-keys/profile-keys-section.js +17 -2
  462. package/dist/profile/api-keys/profile-keys-section.js.map +1 -1
  463. package/dist/profile/api-keys/scope-list.d.ts +6 -1
  464. package/dist/profile/api-keys/scope-list.d.ts.map +1 -1
  465. package/dist/profile/api-keys/scope-list.js +10 -3
  466. package/dist/profile/api-keys/scope-list.js.map +1 -1
  467. package/dist/profile/api-keys/types.d.ts +14 -0
  468. package/dist/profile/api-keys/types.d.ts.map +1 -1
  469. package/dist/profile/api-keys/types.js +21 -0
  470. package/dist/profile/api-keys/types.js.map +1 -1
  471. package/dist/realtime/organisation-events/schemas.d.ts +2 -2
  472. package/package.json +7 -2
@@ -0,0 +1,104 @@
1
+ export const MAX_PRICE_ROWS = 10;
2
+ export const MAX_PACKAGE_SIZES = 12;
3
+ function finiteOrUndefined(value) {
4
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
5
+ }
6
+ /** At least one row, always: a legacy draft shows its scalar price as row 0. */
7
+ export function getPriceRows(opp) {
8
+ const raw = opp.priceRanges;
9
+ if (Array.isArray(raw) && raw.length > 0) {
10
+ // Old-wizard rows carry no currency of their own; the opportunity's scalar is theirs.
11
+ return raw.map((row) => {
12
+ const r = { ...row };
13
+ r.currency = r.currency ?? opp.currency ?? null;
14
+ return r;
15
+ });
16
+ }
17
+ return [
18
+ {
19
+ min: opp.priceMin ?? null,
20
+ max: opp.priceMax ?? null,
21
+ currency: opp.currency ?? null,
22
+ basis: null,
23
+ },
24
+ ];
25
+ }
26
+ /** The patch that stores `rows` and keeps the legacy scalars in step with row 0. */
27
+ export function priceRowsPatch(rows) {
28
+ const first = rows[0];
29
+ return {
30
+ priceRanges: rows,
31
+ priceMin: finiteOrUndefined(first?.min),
32
+ priceMax: finiteOrUndefined(first?.max),
33
+ };
34
+ }
35
+ export function getPackageSizes(opp) {
36
+ const raw = opp.volumeOptions;
37
+ if (Array.isArray(raw)) {
38
+ return raw.filter((v) => typeof v === "number" && Number.isFinite(v) && v > 0);
39
+ }
40
+ return opp.volume != null && opp.volume > 0 ? [opp.volume] : [];
41
+ }
42
+ /** The patch that stores `sizes` and keeps `volume` equal to the first one. */
43
+ export function packageSizesPatch(sizes) {
44
+ return { volumeOptions: sizes, volume: sizes[0] };
45
+ }
46
+ export function priceRowProblems(row) {
47
+ const problems = [];
48
+ const min = finiteOrUndefined(row.min);
49
+ const max = finiteOrUndefined(row.max);
50
+ if (min === undefined)
51
+ problems.push("min");
52
+ if (max === undefined)
53
+ problems.push("max");
54
+ if ((min !== undefined && min < 0) || (max !== undefined && max < 0))
55
+ problems.push("negative");
56
+ // A reversed pair is reported once, as the order problem.
57
+ if (min !== undefined && max !== undefined && min >= 0 && max >= 0 && min > max) {
58
+ problems.push("order");
59
+ }
60
+ if (!row.currency)
61
+ problems.push("currency");
62
+ if (row.basis !== "per_unit" && row.basis !== "per_litre" && row.basis !== "other") {
63
+ problems.push("basis");
64
+ }
65
+ return problems;
66
+ }
67
+ const PROBLEM_COPY = {
68
+ min: "enter a minimum price",
69
+ max: "enter a maximum price",
70
+ negative: "use a price of zero or more",
71
+ order: "make the maximum at least the minimum",
72
+ currency: "choose a currency",
73
+ basis: "choose per unit or per litre",
74
+ };
75
+ function joinList(parts) {
76
+ if (parts.length <= 1)
77
+ return parts.join("");
78
+ return `${parts.slice(0, -1).join(", ")} and ${parts[parts.length - 1]}`;
79
+ }
80
+ /** One issue per incomplete row; empty when every row is publishable. */
81
+ export function priceIssues(opp) {
82
+ const rows = getPriceRows(opp);
83
+ const issues = [];
84
+ rows.forEach((row, index) => {
85
+ const problems = priceRowProblems(row);
86
+ if (problems.length === 0)
87
+ return;
88
+ const label = rows.length > 1 ? `Price range ${index + 1}` : "Price range";
89
+ const fix = joinList(problems.map((p) => PROBLEM_COPY[p]));
90
+ issues.push({ row: index, problems, rowLabel: label, fix, message: `${label}: ${fix}.` });
91
+ });
92
+ return issues;
93
+ }
94
+ export function basisLabel(basis, _packageSizes = []) {
95
+ if (basis === "per_litre")
96
+ return "Per litre";
97
+ // `per_unit` is one pack of whatever the package is: a bottle, a can or a keg.
98
+ if (basis === "per_unit")
99
+ return "Per unit (bottle, can, keg)";
100
+ if (basis === "other")
101
+ return "Other basis";
102
+ return "Basis not set";
103
+ }
104
+ //# sourceMappingURL=price-ranges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-ranges.js","sourceRoot":"","sources":["../../../src/opportunities/wizard/price-ranges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * CEL-2624: the publish rules, surfaced as a list the importer can act on.
3
+ *
4
+ * The fix list on the Review step and the publish error banner are BUILT FROM the publish
5
+ * schema's own issues (`tenderPublishSchema`), never a hand-copied subset, so a rule added
6
+ * to the schema shows up in both automatically. Each item names its opportunity and knows
7
+ * which step and control to focus.
8
+ */
9
+ import type { ZodIssue } from "zod";
10
+ import type { TenderDraft, WizardStepId } from "./wizard.types.js";
11
+ export declare function issueFocusTarget(issue: ZodIssue, tender?: Partial<TenderDraft>): {
12
+ step: WizardStepId;
13
+ selector: string;
14
+ opportunityIndex?: number;
15
+ };
16
+ export interface PublishIssueTarget {
17
+ step: Exclude<WizardStepId, "review">;
18
+ selector: string;
19
+ opportunityIndex?: number;
20
+ }
21
+ export interface PublishIssueItem {
22
+ key: string;
23
+ /** One plain sentence ending in a full stop, naming the opportunity when there is one. */
24
+ text: string;
25
+ step: Exclude<WizardStepId, "review">;
26
+ target: PublishIssueTarget;
27
+ }
28
+ /** Empty when the draft would publish. Identical sentences appear once. */
29
+ export declare function collectPublishIssues(tender: Partial<TenderDraft>): PublishIssueItem[];
30
+ /** The publish error banner text: the same sentences, once each. */
31
+ export declare function publishIssuesMessage(tender: Partial<TenderDraft>): string;
32
+ //# sourceMappingURL=publish-issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-issues.d.ts","sourceRoot":"","sources":["../../../src/opportunities/wizard/publish-issues.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAGpC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAchE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B;IACD,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAgEA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAOD,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,gBAAgB,EAAE,CAoCrF;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAIzE"}
@@ -0,0 +1,124 @@
1
+ import { getPriceRows, priceRowProblems } from "./price-ranges.js";
2
+ import { tenderPublishSchema } from "./wizard.types.js";
3
+ const pricingFieldNames = new Set([
4
+ "priceMin",
5
+ "priceMax",
6
+ "currency",
7
+ "priceRanges",
8
+ "targetMargin",
9
+ "distributionRequirements",
10
+ "submissionDeadline",
11
+ "sampleDeadline",
12
+ "launchDate",
13
+ ]);
14
+ export function issueFocusTarget(issue, tender) {
15
+ const [root, index, field, rowIndex] = issue.path;
16
+ if (root !== "opportunities") {
17
+ const selector = root === "targetCountry"
18
+ ? "#tender-country"
19
+ : root === "instructions"
20
+ ? "#tender-instructions"
21
+ : "#tender-name";
22
+ return { step: "tender", selector };
23
+ }
24
+ if (typeof index !== "number") {
25
+ return { step: "opportunities", selector: '[data-wizard-step="opportunities"] button' };
26
+ }
27
+ // CEL-2624 — a price-row issue (`opportunities.N.priceRanges.R`) focuses the control of that
28
+ // row's FIRST problem: a missing basis focuses the first basis radio, a currency the combobox,
29
+ // a reversed or missing max the maximum input.
30
+ if (field === "priceRanges") {
31
+ const row = typeof rowIndex === "number" ? rowIndex : 0;
32
+ const rowRoot = `[data-pricing-index="${index}"] [data-price-row="${row}"]`;
33
+ const opp = tender?.opportunities?.[index];
34
+ const first = opp ? priceRowProblems(getPriceRows(opp)[row] ?? {})[0] : undefined;
35
+ const selector = first === "basis"
36
+ ? `${rowRoot} input[type="radio"]`
37
+ : first === "currency"
38
+ ? `${rowRoot} [role="combobox"]`
39
+ : first === "max" || first === "order"
40
+ ? `${rowRoot} [aria-label^="Maximum price"]`
41
+ : `${rowRoot} [aria-label^="Minimum price"]`;
42
+ return { step: "pricing", selector, opportunityIndex: index };
43
+ }
44
+ if (typeof field === "string" && pricingFieldNames.has(field)) {
45
+ const accessibleName = {
46
+ priceMin: "Minimum price",
47
+ priceMax: "Maximum price",
48
+ targetMargin: "Target margin",
49
+ distributionRequirements: "Distribution requirements",
50
+ submissionDeadline: "Submission deadline",
51
+ sampleDeadline: "Sample deadline",
52
+ launchDate: "Launch date",
53
+ };
54
+ const name = accessibleName[field];
55
+ return {
56
+ step: "pricing",
57
+ selector: name
58
+ ? `[data-pricing-index="${index}"] [aria-label^="${name}"]`
59
+ : `[data-pricing-index="${index}"] [role="combobox"]`,
60
+ opportunityIndex: index,
61
+ };
62
+ }
63
+ if (typeof field === "string") {
64
+ const fieldRoot = `[data-opportunity-index="${index}"] [data-wizard-field="${field}"]`;
65
+ return {
66
+ step: "opportunities",
67
+ selector: `${fieldRoot} input, ${fieldRoot} textarea, ${fieldRoot} button, ${fieldRoot} [role="combobox"]`,
68
+ opportunityIndex: index,
69
+ };
70
+ }
71
+ return {
72
+ step: "opportunities",
73
+ selector: `[data-opportunity-index="${index}"] button`,
74
+ opportunityIndex: index,
75
+ };
76
+ }
77
+ function sentence(text) {
78
+ const t = text.trim();
79
+ return /[.!?]$/.test(t) ? t : `${t}.`;
80
+ }
81
+ /** Empty when the draft would publish. Identical sentences appear once. */
82
+ export function collectPublishIssues(tender) {
83
+ const parsed = tenderPublishSchema.safeParse(tender);
84
+ if (parsed.success)
85
+ return [];
86
+ const seen = new Set();
87
+ const items = [];
88
+ for (const issue of parsed.error.issues) {
89
+ const target = issueFocusTarget(issue, tender);
90
+ const [root, index] = issue.path;
91
+ const opp = root === "opportunities" && typeof index === "number"
92
+ ? tender.opportunities?.[index]
93
+ : undefined;
94
+ const label = opp ? opp.name?.trim() || `Opportunity ${index + 1}` : null;
95
+ // "Price range 2: choose ..." reads as "Rosé, price range 2: choose ...".
96
+ const priceRow = /^(Price range(?: \d+)?): (.*)$/.exec(issue.message);
97
+ const text = sentence(label
98
+ ? priceRow
99
+ ? `${label}, ${priceRow[1].toLowerCase()}: ${priceRow[2]}`
100
+ : `${label}: ${issue.message}`
101
+ : issue.message);
102
+ if (seen.has(text))
103
+ continue;
104
+ seen.add(text);
105
+ items.push({
106
+ key: `${issue.path.join(".")}:${items.length}`,
107
+ text,
108
+ step: target.step === "review" ? "pricing" : target.step,
109
+ target: {
110
+ step: target.step,
111
+ selector: target.selector,
112
+ opportunityIndex: target.opportunityIndex,
113
+ },
114
+ });
115
+ }
116
+ return items;
117
+ }
118
+ /** The publish error banner text: the same sentences, once each. */
119
+ export function publishIssuesMessage(tender) {
120
+ return collectPublishIssues(tender)
121
+ .map((i) => i.text)
122
+ .join(" ");
123
+ }
124
+ //# sourceMappingURL=publish-issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-issues.js","sourceRoot":"","sources":["../../../src/opportunities/wizard/publish-issues.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-opportunities.d.ts","sourceRoot":"","sources":["../../../src/opportunities/wizard/step-opportunities.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAMvD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,EAAE,sBAAsB,2CA0GxB"}
1
+ {"version":3,"file":"step-opportunities.d.ts","sourceRoot":"","sources":["../../../src/opportunities/wizard/step-opportunities.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAMvD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,EAAE,sBAAsB,2CA0GxB"}
@@ -14,6 +14,8 @@ import { COUNTRY_ORPHAN_OPTIONS } from "../../lib/country-registry.js";
14
14
  import { cn } from "../../lib/utils.js";
15
15
  import { CATEGORY_OPTIONS, getSubtypeOptions, isSubtypeOfCategory, } from "./classification-options.js";
16
16
  import { WIZARD_ORIGIN_COUNTRY_OPTIONS } from "./country-options.js";
17
+ import { PackageSizesField } from "./package-sizes-field.js";
18
+ import { getPackageSizes, packageSizesPatch } from "./price-ranges.js";
17
19
  import { WizardDomainSection, WizardStepIntro } from "./wizard-domain-section.js";
18
20
  const VIRTUALIZE_THRESHOLD = 20;
19
21
  const SELECT_EMPTY = "";
@@ -118,7 +120,10 @@ function OpportunityCard({ itemIndex, opp, expanded, onToggle, onUpdate, onRemov
118
120
  // CEL-2090 — `volume` is a container/package capacity in MILLILITRES
119
121
  // (backend `volumeOptions[0]`), never a bottle count and never the
120
122
  // separate `productionVolumeMin` (available volume in litres) requirement.
121
- const quantityLabel = opp.volume == null ? "Quantity not set" : `${opp.volume.toLocaleString()} ml package`;
123
+ const packageSizes = getPackageSizes(opp);
124
+ const quantityLabel = packageSizes.length === 0
125
+ ? "Package size not set"
126
+ : `${packageSizes.map((ml) => ml.toLocaleString()).join(", ")} ml ${packageSizes.length === 1 ? "package" : "packages"}`;
122
127
  // Changing the country of origin invalidates the cascaded region — reset
123
128
  // it per `<RegionSelect>`'s documented consumer-clear contract (the picker
124
129
  // does NOT self-clear so an async-loaded region survives draft resume).
@@ -149,7 +154,7 @@ function OpportunityCard({ itemIndex, opp, expanded, onToggle, onUpdate, onRemov
149
154
  // instead of the Select silently going blank, and
150
155
  // auto-infers `preserveOrphanValue: true` so autosave can no
151
156
  // longer clobber it with null (CEL-419).
152
- renderOrphanBanner: (orphan) => (_jsx(OrphanValueBanner, { value: orphan, kind: "country", options: COUNTRY_ORPHAN_OPTIONS })) }) }), _jsx("div", { "data-wizard-field": "region", children: _jsx(RegionSelect, { id: `${fieldId}-region`, label: "Region (optional)", countryCode: opp.countryOfOrigin ?? null, value: opp.region ?? null, onChange: (v) => onUpdate({ region: v ?? undefined }) }) })] }) }), _jsx(FieldGroup, { label: "Format", children: _jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsx("div", { "data-wizard-field": "packaging", children: _jsx(PackagingSelect, { id: `${fieldId}-packaging`, label: "Packaging", value: opp.packaging ?? null, onChange: (v) => onUpdate({ packaging: v ?? undefined }) }) }), _jsx("div", { "data-wizard-field": "closure", children: _jsx(ClosureSelect, { id: `${fieldId}-closure`, label: "Closure", value: opp.closure ?? null, onChange: (v) => onUpdate({ closure: v ?? undefined }) }) }), _jsx(LabeledInput, { id: `${fieldId}-volume`, fieldName: "volume", label: "Package size (ml)", type: "number", step: 1, value: opp.volume ?? "", onChange: (v) => onUpdate({ volume: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-production-volume-min`, fieldName: "productionVolumeMin", label: "Available volume (liters)", type: "number", step: 0.01, value: opp.productionVolumeMin ?? "", onChange: (v) => onUpdate({ productionVolumeMin: v ? Number(v) : undefined }) })] }) }), _jsxs(FieldGroup, { label: "Composition", children: [_jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsx(LabeledInput, { id: `${fieldId}-eu-product-category`, fieldName: "euProductCategory", label: "EU product category", value: opp.euProductCategory ?? "", onChange: (v) => onUpdate({ euProductCategory: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-designation-of-origin`, fieldName: "designationOfOrigin", label: "Designation of origin", value: opp.designationOfOrigin ?? "", onChange: (v) => onUpdate({ designationOfOrigin: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-style`, fieldName: "styleTasteProfile", label: "Style / taste profile", value: opp.styleTasteProfile ?? "", onChange: (v) => onUpdate({ styleTasteProfile: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-color`, fieldName: "color", label: "Color", value: opp.color ?? "", onChange: (v) => onUpdate({ color: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-aging-process`, fieldName: "agingProcess", label: "Aging process", value: opp.agingProcess ?? "", onChange: (v) => onUpdate({ agingProcess: v || undefined }) }), _jsx(VintagesInput, { id: `${fieldId}-vintages`, value: opp.vintages, onChange: (v) => onUpdate({ vintages: v }) }), _jsx(LabeledTextarea, { id: `${fieldId}-storage-method`, fieldName: "storageMethod", label: "Storage method", value: opp.storageMethod ?? "", onChange: (v) => onUpdate({ storageMethod: v || undefined }), className: "md:col-span-2" }), _jsx(LabeledInput, { id: `${fieldId}-alcohol-min`, fieldName: "alcoholContentMin", label: "Alcohol % (min)", type: "number", min: 0, max: 100, step: 0.01, value: opp.alcoholContentMin ?? "", onChange: (v) => onUpdate({ alcoholContentMin: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-alcohol-max`, fieldName: "alcoholContentMax", label: "Alcohol % (max)", type: "number", min: 0, max: 100, step: 0.01, value: opp.alcoholContentMax ?? "", onChange: (v) => onUpdate({ alcoholContentMax: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-sugar-min`, fieldName: "residualSugarMin", label: "Residual sugar g/L (min)", type: "number", min: 0, step: 0.01, value: opp.residualSugarMin ?? "", onChange: (v) => onUpdate({ residualSugarMin: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-sugar-max`, fieldName: "residualSugarMax", label: "Residual sugar g/L (max)", type: "number", min: 0, step: 0.01, value: opp.residualSugarMax ?? "", onChange: (v) => onUpdate({ residualSugarMax: v ? Number(v) : undefined }) })] }), _jsx(GrapeBlendEditor, { id: `${fieldId}-grape-blend`, value: opp.grapeBlend, onChange: (v) => onUpdate({ grapeBlend: v }) })] }), _jsxs(FieldGroup, { label: "Certification and requirements", children: [_jsx(CertificationsField, { id: `${fieldId}-certifications`, value: opp.certifications, onChange: (v) => onUpdate({ certifications: v }) }), _jsx(LabeledTextarea, { id: `${fieldId}-other-requirements`, fieldName: "otherRequirements", label: "Other source-backed requirements", value: opp.otherRequirements ?? "", onChange: (v) => onUpdate({ otherRequirements: v || undefined }) })] })] })) : null] }));
157
+ renderOrphanBanner: (orphan) => (_jsx(OrphanValueBanner, { value: orphan, kind: "country", options: COUNTRY_ORPHAN_OPTIONS })) }) }), _jsx("div", { "data-wizard-field": "region", children: _jsx(RegionSelect, { id: `${fieldId}-region`, label: "Region (optional)", countryCode: opp.countryOfOrigin ?? null, value: opp.region ?? null, onChange: (v) => onUpdate({ region: v ?? undefined }) }) })] }) }), _jsx(FieldGroup, { label: "Format", children: _jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsx("div", { "data-wizard-field": "packaging", children: _jsx(PackagingSelect, { id: `${fieldId}-packaging`, label: "Packaging", value: opp.packaging ?? null, onChange: (v) => onUpdate({ packaging: v ?? undefined }) }) }), _jsx("div", { "data-wizard-field": "closure", children: _jsx(ClosureSelect, { id: `${fieldId}-closure`, label: "Closure", value: opp.closure ?? null, onChange: (v) => onUpdate({ closure: v ?? undefined }) }) }), _jsx(PackageSizesField, { id: `${fieldId}-volume`, value: getPackageSizes(opp), onChange: (sizes) => onUpdate(packageSizesPatch(sizes)) }), _jsx(LabeledInput, { id: `${fieldId}-production-volume-min`, fieldName: "productionVolumeMin", label: "Minimum available volume (litres)", help: "Litres the producer must be able to supply for this opportunity.", suffix: "L", type: "number", step: 0.01, value: opp.productionVolumeMin ?? "", onChange: (v) => onUpdate({ productionVolumeMin: v ? Number(v) : undefined }) })] }) }), _jsxs(FieldGroup, { label: "Composition", children: [_jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsx(LabeledInput, { id: `${fieldId}-eu-product-category`, fieldName: "euProductCategory", label: "EU product category", value: opp.euProductCategory ?? "", onChange: (v) => onUpdate({ euProductCategory: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-designation-of-origin`, fieldName: "designationOfOrigin", label: "Designation of origin", value: opp.designationOfOrigin ?? "", onChange: (v) => onUpdate({ designationOfOrigin: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-style`, fieldName: "styleTasteProfile", label: "Style / taste profile", value: opp.styleTasteProfile ?? "", onChange: (v) => onUpdate({ styleTasteProfile: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-color`, fieldName: "color", label: "Color", value: opp.color ?? "", onChange: (v) => onUpdate({ color: v || undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-aging-process`, fieldName: "agingProcess", label: "Aging process", value: opp.agingProcess ?? "", onChange: (v) => onUpdate({ agingProcess: v || undefined }) }), _jsx(VintagesInput, { id: `${fieldId}-vintages`, value: opp.vintages, onChange: (v) => onUpdate({ vintages: v }) }), _jsx(LabeledTextarea, { id: `${fieldId}-storage-method`, fieldName: "storageMethod", label: "Storage method", value: opp.storageMethod ?? "", onChange: (v) => onUpdate({ storageMethod: v || undefined }), className: "md:col-span-2" }), _jsx(LabeledInput, { id: `${fieldId}-alcohol-min`, fieldName: "alcoholContentMin", label: "Alcohol % (min)", type: "number", min: 0, max: 100, step: 0.01, value: opp.alcoholContentMin ?? "", onChange: (v) => onUpdate({ alcoholContentMin: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-alcohol-max`, fieldName: "alcoholContentMax", label: "Alcohol % (max)", type: "number", min: 0, max: 100, step: 0.01, value: opp.alcoholContentMax ?? "", onChange: (v) => onUpdate({ alcoholContentMax: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-sugar-min`, fieldName: "residualSugarMin", label: "Residual sugar g/L (min)", type: "number", min: 0, step: 0.01, value: opp.residualSugarMin ?? "", onChange: (v) => onUpdate({ residualSugarMin: v ? Number(v) : undefined }) }), _jsx(LabeledInput, { id: `${fieldId}-sugar-max`, fieldName: "residualSugarMax", label: "Residual sugar g/L (max)", type: "number", min: 0, step: 0.01, value: opp.residualSugarMax ?? "", onChange: (v) => onUpdate({ residualSugarMax: v ? Number(v) : undefined }) })] }), _jsx(GrapeBlendEditor, { id: `${fieldId}-grape-blend`, value: opp.grapeBlend, onChange: (v) => onUpdate({ grapeBlend: v }) })] }), _jsxs(FieldGroup, { label: "Certification and requirements", children: [_jsx(CertificationsField, { id: `${fieldId}-certifications`, value: opp.certifications, onChange: (v) => onUpdate({ certifications: v }) }), _jsx(LabeledTextarea, { id: `${fieldId}-other-requirements`, fieldName: "otherRequirements", label: "Other source-backed requirements", value: opp.otherRequirements ?? "", onChange: (v) => onUpdate({ otherRequirements: v || undefined }) })] })] })) : null] }));
153
158
  }
154
159
  /**
155
160
  * Light section grouping inside an opportunity card. Gives the long field
@@ -178,7 +183,7 @@ function ClassificationSelect({ id, fieldName, label, placeholder, options, valu
178
183
  const radixValue = selected ? selected.value : SELECT_EMPTY;
179
184
  return (_jsxs("div", { "data-wizard-field": fieldName, className: "flex flex-col gap-1.5", children: [_jsx("label", { htmlFor: id, className: "text-xs font-semibold text-foreground", children: label }), _jsxs(AnimatedShadcnSelect, { value: radixValue, onValueChange: (next) => onChange(next === SELECT_EMPTY ? null : next), disabled: disabled, children: [_jsx(AnimatedShadcnSelectTrigger, { id: id, role: "combobox", "aria-describedby": hint ? hintId : undefined, className: "w-full", children: _jsx(AnimatedShadcnSelectValue, { placeholder: placeholder, children: selected?.label }) }), _jsx(AnimatedShadcnSelectContent, { "aria-multiselectable": "false", children: options.length > 0 ? (_jsx(AnimatedShadcnSelectGroup, { children: options.map((opt) => (_jsx(AnimatedShadcnSelectItem, { value: opt.value, children: opt.label }, opt.value))) })) : (_jsx("div", { className: "px-2 py-3 text-sm text-muted-foreground", children: "No options available" })) })] }), hint ? (_jsx("p", { id: hintId, className: "text-xs/5 text-muted-foreground", children: hint })) : null] }));
180
185
  }
181
- function LabeledInput({ id, fieldName, label, value, onChange, type = "text", required, className, min, max, step, }) {
186
+ function LabeledInput({ id, fieldName, label, value, onChange, type = "text", required, className, min, max, step, help, suffix, }) {
182
187
  const [internal, setInternal] = React.useState(String(value ?? ""));
183
188
  // Sync from parent when value changes externally (e.g. item replaced)
184
189
  const prevValueRef = React.useRef(String(value ?? ""));
@@ -190,10 +195,10 @@ function LabeledInput({ id, fieldName, label, value, onChange, type = "text", re
190
195
  prevValueRef.current = next;
191
196
  }
192
197
  }, [value]);
193
- return (_jsxs("div", { "data-wizard-field": fieldName, className: cn("flex flex-col gap-1.5", className), children: [_jsxs("label", { htmlFor: id, className: "text-xs font-semibold text-foreground", children: [label, required ? _jsx("span", { className: "ml-0.5 text-destructive", children: "*" }) : null] }), _jsx("input", { id: id, type: type, value: internal, onChange: (e) => {
194
- setInternal(e.target.value);
195
- onChange(e.target.value);
196
- }, required: required, min: min, max: max, step: step, className: "h-11 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-hidden transition-[color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/70 dark:bg-white/5" })] }));
198
+ return (_jsxs("div", { "data-wizard-field": fieldName, className: cn("flex flex-col gap-1.5", className), children: [_jsxs("label", { htmlFor: id, className: "text-xs font-semibold text-foreground", children: [label, required ? _jsx("span", { className: "ml-0.5 text-destructive", children: "*" }) : null] }), _jsxs("div", { className: "relative", children: [_jsx("input", { id: id, type: type, value: internal, onChange: (e) => {
199
+ setInternal(e.target.value);
200
+ onChange(e.target.value);
201
+ }, required: required, min: min, max: max, step: step, "aria-describedby": help && id ? `${id}-help` : undefined, className: cn("h-11 w-full rounded-md border border-input bg-transparent py-2 pl-3 text-sm shadow-xs outline-hidden transition-[color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/70 dark:bg-white/5", suffix ? "pr-12" : "pr-3") }), suffix ? (_jsx("span", { "aria-hidden": true, className: "pointer-events-none absolute inset-y-0 right-3 flex items-center text-sm/5 text-muted-foreground", children: suffix })) : null] }), help ? (_jsx("p", { id: id ? `${id}-help` : undefined, className: "text-xs/4 text-muted-foreground", children: help })) : null] }));
197
202
  }
198
203
  /** Multi-line sibling of `<LabeledInput>` for longer free text (CEL-2090 `otherRequirements`, CEL-2102 `storageMethod`). */
199
204
  function LabeledTextarea({ id, fieldName, label, value, onChange, className, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"step-opportunities.js","sourceRoot":"","sources":["../../../src/opportunities/wizard/step-opportunities.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-opportunities.js","sourceRoot":"","sources":["../../../src/opportunities/wizard/step-opportunities.tsx"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { type AllowedDeliveryTermsSectionProps } from "./allowed-delivery-terms-
8
8
  * `usePriceTypes()` query (importer dashboard, future producer wizard)
9
9
  * surface the constraint editor inline at create-time.
10
10
  */
11
- export type StepPricingAllowedDeliveryTermsControl = Pick<AllowedDeliveryTermsSectionProps, "value" | "onChange" | "priceTypes" | "isLoading" | "isError" | "onRetry">;
11
+ export type StepPricingAllowedDeliveryTermsControl = Pick<AllowedDeliveryTermsSectionProps, "value" | "onChange" | "priceTypes" | "isLoading" | "isError" | "onRetry" | "perOpportunityTerms" | "onReplaceAllConfirmed">;
12
12
  export interface StepPricingTimelineProps {
13
13
  items: OpportunityDraft[];
14
14
  onChange: (next: OpportunityDraft[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"step-pricing-timeline.d.ts","sourceRoot":"","sources":["../../../src/opportunities/wizard/step-pricing-timeline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,kCAAkC,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,MAAM,sCAAsC,GAAG,IAAI,CACvD,gCAAgC,EAChC,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAC1E,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,sCAAsC,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,GACV,EAAE,wBAAwB,2CAqK1B"}
1
+ {"version":3,"file":"step-pricing-timeline.d.ts","sourceRoot":"","sources":["../../../src/opportunities/wizard/step-pricing-timeline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,kCAAkC,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,MAAM,sCAAsC,GAAG,IAAI,CACvD,gCAAgC,EAC9B,OAAO,GACP,UAAU,GACV,YAAY,GACZ,WAAW,GACX,SAAS,GACT,SAAS,GACT,qBAAqB,GACrB,uBAAuB,CAC1B,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,sCAAsC,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuBD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,GACV,EAAE,wBAAwB,2CAqK1B"}
@@ -2,13 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as Tabs from "@radix-ui/react-tabs";
4
4
  import { cn } from "../../lib/utils.js";
5
- import { CurrencySelect } from "../../components/currency-select.js";
5
+ import { PriceRangesEditor } from "./price-ranges-editor.js";
6
+ import { priceIssues } from "./price-ranges.js";
6
7
  import { AllowedDeliveryTermsSection, } from "./allowed-delivery-terms-section.js";
7
8
  import { WizardDomainSection, WizardStepIntro } from "./wizard-domain-section.js";
8
9
  const pricingKeys = [
9
10
  "priceMin",
10
11
  "priceMax",
11
12
  "currency",
13
+ "priceRanges",
12
14
  "targetMargin",
13
15
  "distributionRequirements",
14
16
  "submissionDeadline",
@@ -16,9 +18,7 @@ const pricingKeys = [
16
18
  "launchDate",
17
19
  ];
18
20
  function isComplete(it) {
19
- return (it.priceMin != null &&
20
- it.priceMax != null &&
21
- it.priceMin <= it.priceMax &&
21
+ return (priceIssues(it).length === 0 &&
22
22
  !!it.submissionDeadline &&
23
23
  (!it.sampleDeadline || it.sampleDeadline <= it.submissionDeadline) &&
24
24
  (!it.launchDate || it.launchDate >= it.submissionDeadline));
@@ -53,9 +53,9 @@ export function StepPricingTimeline({ items, onChange, onValidityChange, initial
53
53
  onValidityChange?.(allValid);
54
54
  }, [items, onValidityChange]);
55
55
  if (items.length === 0) {
56
- return (_jsxs("div", { className: cn("flex max-w-5xl flex-col gap-8", className), children: [_jsx(WizardStepIntro, { title: "Pricing", description: "Set accepted delivery terms, commercial ranges, and dates for each opportunity." }), allowedDeliveryTerms ? (_jsx(WizardDomainSection, { title: "Delivery terms", children: _jsx(AllowedDeliveryTermsSection, { ...allowedDeliveryTerms, className: "border-0 p-0" }) })) : null, _jsx(WizardDomainSection, { title: "Opportunity pricing and dates", children: _jsx("div", { className: "rounded-lg bg-muted/50 px-4 py-5 text-sm/6 text-muted-foreground", children: "Add an opportunity in Step 2 before setting pricing." }) })] }));
56
+ return (_jsxs("div", { className: cn("flex max-w-5xl flex-col gap-8", className), children: [_jsx(WizardStepIntro, { title: "Pricing", description: "Set accepted delivery terms, price ranges, and dates for each opportunity." }), allowedDeliveryTerms ? (_jsx(WizardDomainSection, { title: "Delivery terms", children: _jsx(AllowedDeliveryTermsSection, { ...allowedDeliveryTerms, className: "border-0 p-0" }) })) : null, _jsx(WizardDomainSection, { title: "Opportunity pricing and dates", children: _jsx("div", { className: "rounded-lg bg-muted/50 px-4 py-5 text-sm/6 text-muted-foreground", children: "Add an opportunity in Step 2 before setting pricing." }) })] }));
57
57
  }
58
- return (_jsxs("div", { className: cn("flex max-w-5xl flex-col gap-8", className), children: [_jsx(WizardStepIntro, { title: "Pricing", description: "Set accepted delivery terms, commercial ranges, and dates for each opportunity.", aside: _jsxs("span", { className: "inline-flex min-h-8 items-center rounded-full bg-muted px-3 text-sm/5 font-medium tabular-nums text-muted-foreground", children: [items.length, " ", items.length === 1 ? "opportunity" : "opportunities"] }) }), allowedDeliveryTerms ? (_jsx(WizardDomainSection, { title: "Delivery terms", children: _jsx(AllowedDeliveryTermsSection, { ...allowedDeliveryTerms, className: "border-0 p-0" }) })) : null, _jsxs(WizardDomainSection, { title: "Opportunity pricing and dates", description: "Required price ranges and submission dates are validated before publish.", action: items.length > 1 && !confirmFill ? (_jsx("button", { type: "button", onClick: () => setConfirmFill(true), className: "min-h-11 rounded-md border border-border bg-background px-3 text-sm/5 font-medium transition-[color,background-color,transform] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] hover:bg-muted active:scale-[0.98] focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: "Copy first opportunity" })) : undefined, children: [confirmFill ? (_jsxs("div", { role: "group", "aria-label": "Confirm copy pricing", className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg bg-[var(--tone-warning-soft)] px-4 py-3 text-sm/5 text-[var(--tone-warning-fg)]", children: [_jsxs("p", { children: ["Replace pricing and dates for ", items.length - 1, " other", " ", items.length - 1 === 1 ? "opportunity" : "opportunities", "?"] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => setConfirmFill(false), className: "min-h-11 rounded-md px-3 font-medium hover:bg-background/60 focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: "Cancel" }), _jsx("button", { type: "button", onClick: fillFromFirst, className: "min-h-11 rounded-md bg-[var(--tone-warning-solid)] px-3 font-medium text-[var(--tone-warning-solid-fg)] focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: "Apply values" })] })] })) : null, items.length === 1 ? (_jsx(PricingFields, { itemIndex: 0, opp: items[0], onUpdate: (p) => updateItem(items[0].clientId, p) }, items[0].clientId)) : (_jsxs(Tabs.Root, { value: activeId, onValueChange: setActiveId, activationMode: "manual", children: [_jsx(Tabs.List, { className: "flex gap-1 overflow-x-auto border-b border-border", "aria-label": "Opportunities pricing tabs", children: items.map((it, idx) => {
58
+ return (_jsxs("div", { className: cn("flex max-w-5xl flex-col gap-8", className), children: [_jsx(WizardStepIntro, { title: "Pricing", description: "Set accepted delivery terms, price ranges, and dates for each opportunity.", aside: _jsxs("span", { className: "inline-flex min-h-8 items-center rounded-full bg-muted px-3 text-sm/5 font-medium tabular-nums text-muted-foreground", children: [items.length, " ", items.length === 1 ? "opportunity" : "opportunities"] }) }), allowedDeliveryTerms ? (_jsx(WizardDomainSection, { title: "Delivery terms", children: _jsx(AllowedDeliveryTermsSection, { ...allowedDeliveryTerms, className: "border-0 p-0" }) })) : null, _jsxs(WizardDomainSection, { title: "Opportunity pricing and dates", description: "Required price ranges and submission dates are validated before publish.", action: items.length > 1 && !confirmFill ? (_jsx("button", { type: "button", onClick: () => setConfirmFill(true), className: "min-h-11 rounded-md border border-border bg-background px-3 text-sm/5 font-medium transition-[color,background-color,transform] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] hover:bg-muted active:scale-[0.98] focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: "Copy first opportunity" })) : undefined, children: [confirmFill ? (_jsxs("div", { role: "group", "aria-label": "Confirm copy pricing", className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg bg-[var(--tone-warning-soft)] px-4 py-3 text-sm/5 text-[var(--tone-warning-fg)]", children: [_jsxs("p", { children: ["Replace pricing and dates for ", items.length - 1, " other", " ", items.length - 1 === 1 ? "opportunity" : "opportunities", "?"] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => setConfirmFill(false), className: "min-h-11 rounded-md px-3 font-medium hover:bg-background/60 focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: "Cancel" }), _jsx("button", { type: "button", onClick: fillFromFirst, className: "min-h-11 rounded-md bg-[var(--tone-warning-solid)] px-3 font-medium text-[var(--tone-warning-solid-fg)] focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: "Apply values" })] })] })) : null, items.length === 1 ? (_jsx(PricingFields, { itemIndex: 0, opp: items[0], onUpdate: (p) => updateItem(items[0].clientId, p) }, items[0].clientId)) : (_jsxs(Tabs.Root, { value: activeId, onValueChange: setActiveId, activationMode: "manual", children: [_jsx(Tabs.List, { className: "flex gap-1 overflow-x-auto border-b border-border", "aria-label": "Opportunities pricing tabs", children: items.map((it, idx) => {
59
59
  const complete = isComplete(it);
60
60
  const title = it.name?.trim() || `Opportunity ${idx + 1}`;
61
61
  return (_jsxs(Tabs.Trigger, { value: it.clientId, className: "inline-flex min-h-11 shrink-0 items-center gap-2 rounded-t-md px-3 text-sm/5 font-medium text-muted-foreground transition-colors duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] hover:text-foreground data-[state=active]:bg-muted data-[state=active]:text-foreground focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: [_jsx("span", { "aria-hidden": true, className: cn("size-2 rounded-full", complete
@@ -74,9 +74,7 @@ function PricingFields({ itemIndex, opp, onUpdate, }) {
74
74
  onUpdate(patch);
75
75
  };
76
76
  const inputClass = "h-11 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-hidden transition-[color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/70 dark:bg-white/5";
77
- return (_jsxs("div", { "data-pricing-index": itemIndex, className: "flex flex-col gap-6", children: [_jsxs("fieldset", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground md:col-span-2", children: "Commercial range" }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Minimum price" }), _jsx("input", { "aria-label": "Price min", type: "number", min: "0", step: "0.01", value: merged.priceMin ?? "", onChange: (e) => update({ priceMin: e.target.value === "" ? undefined : Number(e.target.value) }), className: inputClass })] }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Maximum price" }), _jsx("input", { "aria-label": "Price max", type: "number", min: "0", step: "0.01", value: merged.priceMax ?? "", onChange: (e) => update({ priceMax: e.target.value === "" ? undefined : Number(e.target.value) }), className: inputClass }), merged.priceMin != null &&
78
- merged.priceMax != null &&
79
- merged.priceMin > merged.priceMax ? (_jsx("p", { className: "text-sm/5 text-[var(--tone-danger-fg)]", children: "Maximum price must be at least the minimum." })) : null] }), _jsx(CurrencySelect, { id: `pricing-${itemIndex}-currency`, label: "Currency", value: merged.currency ?? null, onChange: (next) => update({ currency: next ?? undefined }) }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Target margin" }), _jsx("input", { "aria-label": "Target margin", type: "number", min: "0", max: "1", step: "0.01", value: merged.targetMargin ?? "", onChange: (e) => update({ targetMargin: e.target.value === "" ? undefined : Number(e.target.value) }), className: inputClass }), _jsx("span", { className: "text-xs/4 text-muted-foreground", children: "Enter a decimal from 0 to 1." })] })] }), _jsxs("fieldset", { className: "grid grid-cols-1 gap-4 border-t border-border/70 pt-6 md:grid-cols-2", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground md:col-span-2", children: "Distribution requirements" }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm md:col-span-2", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Distribution requirements (optional)" }), _jsx("textarea", { "aria-label": "Distribution requirements", rows: 3, value: merged.distributionRequirements ?? "", onChange: (e) => update({ distributionRequirements: e.target.value }), className: "w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm/6 shadow-xs outline-hidden transition-[color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/70 dark:bg-white/5" })] })] }), _jsxs("fieldset", { className: "grid grid-cols-1 gap-4 border-t border-border/70 pt-6 md:grid-cols-2", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground md:col-span-2", children: "Timeline" }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsxs("span", { className: "text-sm/5 font-medium text-foreground", children: ["Submission deadline ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx("input", { "aria-label": "Submission deadline", type: "date", value: merged.submissionDeadline ? merged.submissionDeadline.toISOString().slice(0, 10) : "", onChange: (e) => update({ submissionDeadline: e.target.value ? new Date(e.target.value) : undefined }), className: inputClass })] }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Sample deadline (optional)" }), _jsx("input", { "aria-label": "Sample deadline", type: "date", value: merged.sampleDeadline ? merged.sampleDeadline.toISOString().slice(0, 10) : "", onChange: (e) => update({ sampleDeadline: e.target.value ? new Date(e.target.value) : undefined }), className: inputClass }), merged.sampleDeadline &&
77
+ return (_jsxs("div", { "data-pricing-index": itemIndex, className: "flex flex-col gap-6", children: [_jsxs("fieldset", { className: "flex flex-col gap-4", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground", children: "Price ranges" }), _jsx(PriceRangesEditor, { itemIndex: itemIndex, opp: merged, onUpdate: update })] }), _jsxs("fieldset", { className: "grid grid-cols-1 gap-4 border-t border-border/70 pt-6 md:grid-cols-2", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground md:col-span-2", children: "Margin" }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Target margin" }), _jsx("input", { "aria-label": "Target margin", type: "number", min: "0", max: "1", step: "0.01", value: merged.targetMargin ?? "", onChange: (e) => update({ targetMargin: e.target.value === "" ? undefined : Number(e.target.value) }), className: inputClass }), _jsx("span", { className: "text-xs/4 text-muted-foreground", children: "Enter a decimal from 0 to 1." })] })] }), _jsxs("fieldset", { className: "grid grid-cols-1 gap-4 border-t border-border/70 pt-6 md:grid-cols-2", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground md:col-span-2", children: "Distribution requirements" }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm md:col-span-2", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Distribution requirements (optional)" }), _jsx("textarea", { "aria-label": "Distribution requirements", rows: 3, value: merged.distributionRequirements ?? "", onChange: (e) => update({ distributionRequirements: e.target.value }), className: "w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm/6 shadow-xs outline-hidden transition-[color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/70 dark:bg-white/5" })] })] }), _jsxs("fieldset", { className: "grid grid-cols-1 gap-4 border-t border-border/70 pt-6 md:grid-cols-2", children: [_jsx("legend", { className: "mb-4 text-sm/5 font-semibold text-foreground md:col-span-2", children: "Timeline" }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsxs("span", { className: "text-sm/5 font-medium text-foreground", children: ["Submission deadline ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx("input", { "aria-label": "Submission deadline", type: "date", value: merged.submissionDeadline ? merged.submissionDeadline.toISOString().slice(0, 10) : "", onChange: (e) => update({ submissionDeadline: e.target.value ? new Date(e.target.value) : undefined }), className: inputClass })] }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Sample deadline (optional)" }), _jsx("input", { "aria-label": "Sample deadline", type: "date", value: merged.sampleDeadline ? merged.sampleDeadline.toISOString().slice(0, 10) : "", onChange: (e) => update({ sampleDeadline: e.target.value ? new Date(e.target.value) : undefined }), className: inputClass }), merged.sampleDeadline &&
80
78
  merged.submissionDeadline &&
81
79
  merged.sampleDeadline > merged.submissionDeadline ? (_jsx("p", { className: "text-sm/5 text-[var(--tone-danger-fg)]", children: "Sample deadline must be on or before the submission deadline." })) : null] }), _jsxs("label", { className: "flex flex-col gap-1.5 text-sm", children: [_jsx("span", { className: "text-sm/5 font-medium text-foreground", children: "Launch date (optional)" }), _jsx("input", { "aria-label": "Launch date", type: "date", value: merged.launchDate ? merged.launchDate.toISOString().slice(0, 10) : "", onChange: (e) => update({ launchDate: e.target.value ? new Date(e.target.value) : undefined }), className: inputClass }), merged.launchDate &&
82
80
  merged.submissionDeadline &&