@cellarnode/ui 0.17.4 → 0.19.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 (375) hide show
  1. package/dist/chat/unified-timeline.d.ts +15 -0
  2. package/dist/chat/unified-timeline.d.ts.map +1 -1
  3. package/dist/chat/unified-timeline.js.map +1 -1
  4. package/dist/components/journey-card.d.ts +9 -1
  5. package/dist/components/journey-card.d.ts.map +1 -1
  6. package/dist/components/journey-card.js +13 -6
  7. package/dist/components/journey-card.js.map +1 -1
  8. package/dist/components/journey-card.stories.d.ts +2 -0
  9. package/dist/components/journey-card.stories.d.ts.map +1 -1
  10. package/dist/components/journey-card.stories.js +43 -0
  11. package/dist/components/journey-card.stories.js.map +1 -1
  12. package/dist/components/sortable-card-context.d.ts +18 -0
  13. package/dist/components/sortable-card-context.d.ts.map +1 -0
  14. package/dist/components/sortable-card-context.js +18 -0
  15. package/dist/components/sortable-card-context.js.map +1 -0
  16. package/dist/components/sortable-card-shell.d.ts +40 -21
  17. package/dist/components/sortable-card-shell.d.ts.map +1 -1
  18. package/dist/components/sortable-card-shell.js +46 -39
  19. package/dist/components/sortable-card-shell.js.map +1 -1
  20. package/dist/components/sortable-card-shell.stories.d.ts +1 -1
  21. package/dist/components/sortable-card-shell.stories.d.ts.map +1 -1
  22. package/dist/components/sortable-card-shell.stories.js +28 -15
  23. package/dist/components/sortable-card-shell.stories.js.map +1 -1
  24. package/dist/components/sortable-card-shell.test.js +57 -16
  25. package/dist/components/sortable-card-shell.test.js.map +1 -1
  26. package/dist/index.d.ts +8 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +6 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/offer/attachments-card.d.ts +9 -0
  31. package/dist/offer/attachments-card.d.ts.map +1 -0
  32. package/dist/offer/attachments-card.js +16 -0
  33. package/dist/offer/attachments-card.js.map +1 -0
  34. package/dist/offer/attachments-card.stories.d.ts +17 -0
  35. package/dist/offer/attachments-card.stories.d.ts.map +1 -0
  36. package/dist/offer/attachments-card.stories.js +24 -0
  37. package/dist/offer/attachments-card.stories.js.map +1 -0
  38. package/dist/offer/buyer-notes-card.d.ts +7 -0
  39. package/dist/offer/buyer-notes-card.d.ts.map +1 -0
  40. package/dist/offer/buyer-notes-card.js +6 -0
  41. package/dist/offer/buyer-notes-card.js.map +1 -0
  42. package/dist/offer/buyer-notes-card.stories.d.ts +16 -0
  43. package/dist/offer/buyer-notes-card.stories.d.ts.map +1 -0
  44. package/dist/offer/buyer-notes-card.stories.js +25 -0
  45. package/dist/offer/buyer-notes-card.stories.js.map +1 -0
  46. package/dist/offer/counter-slide-over.d.ts +44 -0
  47. package/dist/offer/counter-slide-over.d.ts.map +1 -0
  48. package/dist/offer/counter-slide-over.js +81 -0
  49. package/dist/offer/counter-slide-over.js.map +1 -0
  50. package/dist/offer/counter-slide-over.stories.d.ts +23 -0
  51. package/dist/offer/counter-slide-over.stories.d.ts.map +1 -0
  52. package/dist/offer/counter-slide-over.stories.js +235 -0
  53. package/dist/offer/counter-slide-over.stories.js.map +1 -0
  54. package/dist/offer/facts-card.d.ts +32 -0
  55. package/dist/offer/facts-card.d.ts.map +1 -0
  56. package/dist/offer/facts-card.js +87 -0
  57. package/dist/offer/facts-card.js.map +1 -0
  58. package/dist/offer/facts-card.stories.d.ts +25 -0
  59. package/dist/offer/facts-card.stories.d.ts.map +1 -0
  60. package/dist/offer/facts-card.stories.js +177 -0
  61. package/dist/offer/facts-card.stories.js.map +1 -0
  62. package/dist/offer/index.d.ts +39 -0
  63. package/dist/offer/index.d.ts.map +1 -1
  64. package/dist/offer/index.js +21 -0
  65. package/dist/offer/index.js.map +1 -1
  66. package/dist/offer/inline-counter-form.d.ts +16 -0
  67. package/dist/offer/inline-counter-form.d.ts.map +1 -1
  68. package/dist/offer/inline-counter-form.js +8 -0
  69. package/dist/offer/inline-counter-form.js.map +1 -1
  70. package/dist/offer/match-compatibility-card.d.ts +16 -0
  71. package/dist/offer/match-compatibility-card.d.ts.map +1 -0
  72. package/dist/offer/match-compatibility-card.js +27 -0
  73. package/dist/offer/match-compatibility-card.js.map +1 -0
  74. package/dist/offer/match-compatibility-card.stories.d.ts +19 -0
  75. package/dist/offer/match-compatibility-card.stories.d.ts.map +1 -0
  76. package/dist/offer/match-compatibility-card.stories.js +111 -0
  77. package/dist/offer/match-compatibility-card.stories.js.map +1 -0
  78. package/dist/offer/match-glyph.d.ts +14 -0
  79. package/dist/offer/match-glyph.d.ts.map +1 -0
  80. package/dist/offer/match-glyph.js +40 -0
  81. package/dist/offer/match-glyph.js.map +1 -0
  82. package/dist/offer/match-glyph.stories.d.ts +26 -0
  83. package/dist/offer/match-glyph.stories.d.ts.map +1 -0
  84. package/dist/offer/match-glyph.stories.js +26 -0
  85. package/dist/offer/match-glyph.stories.js.map +1 -0
  86. package/dist/offer/match-headline-bar.d.ts +11 -0
  87. package/dist/offer/match-headline-bar.d.ts.map +1 -0
  88. package/dist/offer/match-headline-bar.js +28 -0
  89. package/dist/offer/match-headline-bar.js.map +1 -0
  90. package/dist/offer/match-headline-bar.stories.d.ts +17 -0
  91. package/dist/offer/match-headline-bar.stories.d.ts.map +1 -0
  92. package/dist/offer/match-headline-bar.stories.js +39 -0
  93. package/dist/offer/match-headline-bar.stories.js.map +1 -0
  94. package/dist/offer/match-preview.d.ts +18 -0
  95. package/dist/offer/match-preview.d.ts.map +1 -0
  96. package/dist/offer/match-preview.js +13 -0
  97. package/dist/offer/match-preview.js.map +1 -0
  98. package/dist/offer/match-preview.stories.d.ts +18 -0
  99. package/dist/offer/match-preview.stories.d.ts.map +1 -0
  100. package/dist/offer/match-preview.stories.js +103 -0
  101. package/dist/offer/match-preview.stories.js.map +1 -0
  102. package/dist/offer/negotiation-section.d.ts +11 -0
  103. package/dist/offer/negotiation-section.d.ts.map +1 -0
  104. package/dist/offer/negotiation-section.js +99 -0
  105. package/dist/offer/negotiation-section.js.map +1 -0
  106. package/dist/offer/negotiation-section.stories.d.ts +18 -0
  107. package/dist/offer/negotiation-section.stories.d.ts.map +1 -0
  108. package/dist/offer/negotiation-section.stories.js +156 -0
  109. package/dist/offer/negotiation-section.stories.js.map +1 -0
  110. package/dist/offer/new-activity-pill.d.ts +7 -0
  111. package/dist/offer/new-activity-pill.d.ts.map +1 -0
  112. package/dist/offer/new-activity-pill.js +8 -0
  113. package/dist/offer/new-activity-pill.js.map +1 -0
  114. package/dist/offer/new-activity-pill.stories.d.ts +17 -0
  115. package/dist/offer/new-activity-pill.stories.d.ts.map +1 -0
  116. package/dist/offer/new-activity-pill.stories.js +22 -0
  117. package/dist/offer/new-activity-pill.stories.js.map +1 -0
  118. package/dist/offer/offer-document.d.ts +33 -0
  119. package/dist/offer/offer-document.d.ts.map +1 -0
  120. package/dist/offer/offer-document.js +125 -0
  121. package/dist/offer/offer-document.js.map +1 -0
  122. package/dist/offer/offer-document.stories.d.ts +25 -0
  123. package/dist/offer/offer-document.stories.d.ts.map +1 -0
  124. package/dist/offer/offer-document.stories.js +168 -0
  125. package/dist/offer/offer-document.stories.js.map +1 -0
  126. package/dist/offer/offer-export-button.d.ts +8 -0
  127. package/dist/offer/offer-export-button.d.ts.map +1 -0
  128. package/dist/offer/offer-export-button.js +11 -0
  129. package/dist/offer/offer-export-button.js.map +1 -0
  130. package/dist/offer/offer-export-button.stories.d.ts +15 -0
  131. package/dist/offer/offer-export-button.stories.d.ts.map +1 -0
  132. package/dist/offer/offer-export-button.stories.js +11 -0
  133. package/dist/offer/offer-export-button.stories.js.map +1 -0
  134. package/dist/offer/offer-product-card.d.ts +32 -0
  135. package/dist/offer/offer-product-card.d.ts.map +1 -0
  136. package/dist/offer/offer-product-card.js +10 -0
  137. package/dist/offer/offer-product-card.js.map +1 -0
  138. package/dist/offer/offer-product-card.stories.d.ts +16 -0
  139. package/dist/offer/offer-product-card.stories.d.ts.map +1 -0
  140. package/dist/offer/offer-product-card.stories.js +40 -0
  141. package/dist/offer/offer-product-card.stories.js.map +1 -0
  142. package/dist/offer/opportunity-card.d.ts +16 -0
  143. package/dist/offer/opportunity-card.d.ts.map +1 -0
  144. package/dist/offer/opportunity-card.js +9 -0
  145. package/dist/offer/opportunity-card.js.map +1 -0
  146. package/dist/offer/opportunity-card.stories.d.ts +16 -0
  147. package/dist/offer/opportunity-card.stories.d.ts.map +1 -0
  148. package/dist/offer/opportunity-card.stories.js +33 -0
  149. package/dist/offer/opportunity-card.stories.js.map +1 -0
  150. package/dist/offer/parties-card.d.ts +11 -0
  151. package/dist/offer/parties-card.d.ts.map +1 -0
  152. package/dist/offer/parties-card.js +14 -0
  153. package/dist/offer/parties-card.js.map +1 -0
  154. package/dist/offer/parties-card.stories.d.ts +17 -0
  155. package/dist/offer/parties-card.stories.d.ts.map +1 -0
  156. package/dist/offer/parties-card.stories.js +37 -0
  157. package/dist/offer/parties-card.stories.js.map +1 -0
  158. package/dist/offer/terms-card.d.ts +17 -0
  159. package/dist/offer/terms-card.d.ts.map +1 -0
  160. package/dist/offer/terms-card.js +50 -0
  161. package/dist/offer/terms-card.js.map +1 -0
  162. package/dist/offer/terms-card.stories.d.ts +17 -0
  163. package/dist/offer/terms-card.stories.d.ts.map +1 -0
  164. package/dist/offer/terms-card.stories.js +42 -0
  165. package/dist/offer/terms-card.stories.js.map +1 -0
  166. package/dist/offer/timeline-event.d.ts +12 -0
  167. package/dist/offer/timeline-event.d.ts.map +1 -0
  168. package/dist/offer/timeline-event.js +57 -0
  169. package/dist/offer/timeline-event.js.map +1 -0
  170. package/dist/offer/timeline-event.stories.d.ts +21 -0
  171. package/dist/offer/timeline-event.stories.d.ts.map +1 -0
  172. package/dist/offer/timeline-event.stories.js +57 -0
  173. package/dist/offer/timeline-event.stories.js.map +1 -0
  174. package/dist/offer/types.d.ts +118 -0
  175. package/dist/offer/types.d.ts.map +1 -1
  176. package/dist/opportunities/__a11y__/opportunity-card-actions-menu.a11y.test.d.ts +2 -0
  177. package/dist/opportunities/__a11y__/opportunity-card-actions-menu.a11y.test.d.ts.map +1 -0
  178. package/dist/opportunities/__a11y__/opportunity-card-actions-menu.a11y.test.js +40 -0
  179. package/dist/opportunities/__a11y__/opportunity-card-actions-menu.a11y.test.js.map +1 -0
  180. package/dist/opportunities/__a11y__/opportunity-celebration.a11y.test.d.ts +2 -0
  181. package/dist/opportunities/__a11y__/opportunity-celebration.a11y.test.d.ts.map +1 -0
  182. package/dist/opportunities/__a11y__/opportunity-celebration.a11y.test.js +31 -0
  183. package/dist/opportunities/__a11y__/opportunity-celebration.a11y.test.js.map +1 -0
  184. package/dist/opportunities/__a11y__/opportunity-detail-panel.a11y.test.d.ts +2 -0
  185. package/dist/opportunities/__a11y__/opportunity-detail-panel.a11y.test.d.ts.map +1 -0
  186. package/dist/opportunities/__a11y__/opportunity-detail-panel.a11y.test.js +42 -0
  187. package/dist/opportunities/__a11y__/opportunity-detail-panel.a11y.test.js.map +1 -0
  188. package/dist/opportunities/__a11y__/opportunity-filter-bar.a11y.test.d.ts +2 -0
  189. package/dist/opportunities/__a11y__/opportunity-filter-bar.a11y.test.d.ts.map +1 -0
  190. package/dist/opportunities/__a11y__/opportunity-filter-bar.a11y.test.js +59 -0
  191. package/dist/opportunities/__a11y__/opportunity-filter-bar.a11y.test.js.map +1 -0
  192. package/dist/opportunities/__a11y__/opportunity-stacked-card.a11y.test.d.ts +2 -0
  193. package/dist/opportunities/__a11y__/opportunity-stacked-card.a11y.test.d.ts.map +1 -0
  194. package/dist/opportunities/__a11y__/opportunity-stacked-card.a11y.test.js +54 -0
  195. package/dist/opportunities/__a11y__/opportunity-stacked-card.a11y.test.js.map +1 -0
  196. package/dist/opportunities/__a11y__/opportunity-stacked-list.a11y.test.d.ts +2 -0
  197. package/dist/opportunities/__a11y__/opportunity-stacked-list.a11y.test.d.ts.map +1 -0
  198. package/dist/opportunities/__a11y__/opportunity-stacked-list.a11y.test.js +40 -0
  199. package/dist/opportunities/__a11y__/opportunity-stacked-list.a11y.test.js.map +1 -0
  200. package/dist/opportunities/__tests__/opportunity-add-to-journey-button.test.d.ts +2 -0
  201. package/dist/opportunities/__tests__/opportunity-add-to-journey-button.test.d.ts.map +1 -0
  202. package/dist/opportunities/__tests__/opportunity-add-to-journey-button.test.js +40 -0
  203. package/dist/opportunities/__tests__/opportunity-add-to-journey-button.test.js.map +1 -0
  204. package/dist/opportunities/__tests__/opportunity-card-actions-menu.test.d.ts +2 -0
  205. package/dist/opportunities/__tests__/opportunity-card-actions-menu.test.d.ts.map +1 -0
  206. package/dist/opportunities/__tests__/opportunity-card-actions-menu.test.js +74 -0
  207. package/dist/opportunities/__tests__/opportunity-card-actions-menu.test.js.map +1 -0
  208. package/dist/opportunities/__tests__/opportunity-celebration.test.d.ts +2 -0
  209. package/dist/opportunities/__tests__/opportunity-celebration.test.d.ts.map +1 -0
  210. package/dist/opportunities/__tests__/opportunity-celebration.test.js +46 -0
  211. package/dist/opportunities/__tests__/opportunity-celebration.test.js.map +1 -0
  212. package/dist/opportunities/__tests__/opportunity-filter-bar-drawer.test.d.ts +2 -0
  213. package/dist/opportunities/__tests__/opportunity-filter-bar-drawer.test.d.ts.map +1 -0
  214. package/dist/opportunities/__tests__/opportunity-filter-bar-drawer.test.js +77 -0
  215. package/dist/opportunities/__tests__/opportunity-filter-bar-drawer.test.js.map +1 -0
  216. package/dist/opportunities/__tests__/opportunity-filter-bar.test.d.ts +2 -0
  217. package/dist/opportunities/__tests__/opportunity-filter-bar.test.d.ts.map +1 -0
  218. package/dist/opportunities/__tests__/opportunity-filter-bar.test.js +107 -0
  219. package/dist/opportunities/__tests__/opportunity-filter-bar.test.js.map +1 -0
  220. package/dist/opportunities/__tests__/opportunity-reopen-button.test.d.ts +2 -0
  221. package/dist/opportunities/__tests__/opportunity-reopen-button.test.d.ts.map +1 -0
  222. package/dist/opportunities/__tests__/opportunity-reopen-button.test.js +29 -0
  223. package/dist/opportunities/__tests__/opportunity-reopen-button.test.js.map +1 -0
  224. package/dist/opportunities/__tests__/opportunity-republish-button.test.d.ts +2 -0
  225. package/dist/opportunities/__tests__/opportunity-republish-button.test.d.ts.map +1 -0
  226. package/dist/opportunities/__tests__/opportunity-republish-button.test.js +29 -0
  227. package/dist/opportunities/__tests__/opportunity-republish-button.test.js.map +1 -0
  228. package/dist/opportunities/__tests__/opportunity-resume-draft-button.test.d.ts +2 -0
  229. package/dist/opportunities/__tests__/opportunity-resume-draft-button.test.d.ts.map +1 -0
  230. package/dist/opportunities/__tests__/opportunity-resume-draft-button.test.js +19 -0
  231. package/dist/opportunities/__tests__/opportunity-resume-draft-button.test.js.map +1 -0
  232. package/dist/opportunities/__tests__/opportunity-view-offers-button.test.d.ts +2 -0
  233. package/dist/opportunities/__tests__/opportunity-view-offers-button.test.d.ts.map +1 -0
  234. package/dist/opportunities/__tests__/opportunity-view-offers-button.test.js +23 -0
  235. package/dist/opportunities/__tests__/opportunity-view-offers-button.test.js.map +1 -0
  236. package/dist/opportunities/index.d.ts +51 -1
  237. package/dist/opportunities/index.d.ts.map +1 -1
  238. package/dist/opportunities/index.js +35 -0
  239. package/dist/opportunities/index.js.map +1 -1
  240. package/dist/opportunities/opportunities-table.d.ts +4 -0
  241. package/dist/opportunities/opportunities-table.d.ts.map +1 -1
  242. package/dist/opportunities/opportunities-table.js +4 -0
  243. package/dist/opportunities/opportunities-table.js.map +1 -1
  244. package/dist/opportunities/opportunity-add-to-journey-button.d.ts +12 -0
  245. package/dist/opportunities/opportunity-add-to-journey-button.d.ts.map +1 -0
  246. package/dist/opportunities/opportunity-add-to-journey-button.js +42 -0
  247. package/dist/opportunities/opportunity-add-to-journey-button.js.map +1 -0
  248. package/dist/opportunities/opportunity-card-actions-menu.d.ts +9 -0
  249. package/dist/opportunities/opportunity-card-actions-menu.d.ts.map +1 -0
  250. package/dist/opportunities/opportunity-card-actions-menu.js +33 -0
  251. package/dist/opportunities/opportunity-card-actions-menu.js.map +1 -0
  252. package/dist/opportunities/opportunity-card-actions-menu.stories.d.ts +14 -0
  253. package/dist/opportunities/opportunity-card-actions-menu.stories.d.ts.map +1 -0
  254. package/dist/opportunities/opportunity-card-actions-menu.stories.js +12 -0
  255. package/dist/opportunities/opportunity-card-actions-menu.stories.js.map +1 -0
  256. package/dist/opportunities/opportunity-celebration.d.ts +8 -0
  257. package/dist/opportunities/opportunity-celebration.d.ts.map +1 -0
  258. package/dist/opportunities/opportunity-celebration.js +17 -0
  259. package/dist/opportunities/opportunity-celebration.js.map +1 -0
  260. package/dist/opportunities/opportunity-celebration.stories.d.ts +17 -0
  261. package/dist/opportunities/opportunity-celebration.stories.d.ts.map +1 -0
  262. package/dist/opportunities/opportunity-celebration.stories.js +30 -0
  263. package/dist/opportunities/opportunity-celebration.stories.js.map +1 -0
  264. package/dist/opportunities/opportunity-filter-bar-drawer.d.ts +10 -0
  265. package/dist/opportunities/opportunity-filter-bar-drawer.d.ts.map +1 -0
  266. package/dist/opportunities/opportunity-filter-bar-drawer.js +54 -0
  267. package/dist/opportunities/opportunity-filter-bar-drawer.js.map +1 -0
  268. package/dist/opportunities/opportunity-filter-bar.d.ts +14 -0
  269. package/dist/opportunities/opportunity-filter-bar.d.ts.map +1 -0
  270. package/dist/opportunities/opportunity-filter-bar.js +65 -0
  271. package/dist/opportunities/opportunity-filter-bar.js.map +1 -0
  272. package/dist/opportunities/opportunity-filter-bar.stories.d.ts +25 -0
  273. package/dist/opportunities/opportunity-filter-bar.stories.d.ts.map +1 -0
  274. package/dist/opportunities/opportunity-filter-bar.stories.js +63 -0
  275. package/dist/opportunities/opportunity-filter-bar.stories.js.map +1 -0
  276. package/dist/opportunities/opportunity-reopen-button.d.ts +11 -0
  277. package/dist/opportunities/opportunity-reopen-button.d.ts.map +1 -0
  278. package/dist/opportunities/opportunity-reopen-button.js +20 -0
  279. package/dist/opportunities/opportunity-reopen-button.js.map +1 -0
  280. package/dist/opportunities/opportunity-republish-button.d.ts +7 -0
  281. package/dist/opportunities/opportunity-republish-button.d.ts.map +1 -0
  282. package/dist/opportunities/opportunity-republish-button.js +14 -0
  283. package/dist/opportunities/opportunity-republish-button.js.map +1 -0
  284. package/dist/opportunities/opportunity-resume-draft-button.d.ts +7 -0
  285. package/dist/opportunities/opportunity-resume-draft-button.d.ts.map +1 -0
  286. package/dist/opportunities/opportunity-resume-draft-button.js +7 -0
  287. package/dist/opportunities/opportunity-resume-draft-button.js.map +1 -0
  288. package/dist/opportunities/opportunity-stacked-list.d.ts.map +1 -1
  289. package/dist/opportunities/opportunity-stacked-list.js +3 -1
  290. package/dist/opportunities/opportunity-stacked-list.js.map +1 -1
  291. package/dist/opportunities/opportunity-view-offers-button.d.ts +7 -0
  292. package/dist/opportunities/opportunity-view-offers-button.d.ts.map +1 -0
  293. package/dist/opportunities/opportunity-view-offers-button.js +8 -0
  294. package/dist/opportunities/opportunity-view-offers-button.js.map +1 -0
  295. package/dist/opportunities/two-column-section.d.ts.map +1 -1
  296. package/dist/opportunities/two-column-section.js +4 -3
  297. package/dist/opportunities/two-column-section.js.map +1 -1
  298. package/dist/opportunities/wizard/__a11y__/opportunity-wizard.a11y.test.d.ts +2 -0
  299. package/dist/opportunities/wizard/__a11y__/opportunity-wizard.a11y.test.d.ts.map +1 -0
  300. package/dist/opportunities/wizard/__a11y__/opportunity-wizard.a11y.test.js +53 -0
  301. package/dist/opportunities/wizard/__a11y__/opportunity-wizard.a11y.test.js.map +1 -0
  302. package/dist/opportunities/wizard/__a11y__/wizard-stepper.a11y.test.d.ts +2 -0
  303. package/dist/opportunities/wizard/__a11y__/wizard-stepper.a11y.test.d.ts.map +1 -0
  304. package/dist/opportunities/wizard/__a11y__/wizard-stepper.a11y.test.js +32 -0
  305. package/dist/opportunities/wizard/__a11y__/wizard-stepper.a11y.test.js.map +1 -0
  306. package/dist/opportunities/wizard/__tests__/opportunity-wizard.test.d.ts +2 -0
  307. package/dist/opportunities/wizard/__tests__/opportunity-wizard.test.d.ts.map +1 -0
  308. package/dist/opportunities/wizard/__tests__/opportunity-wizard.test.js +127 -0
  309. package/dist/opportunities/wizard/__tests__/opportunity-wizard.test.js.map +1 -0
  310. package/dist/opportunities/wizard/__tests__/step-opportunities.test.d.ts +2 -0
  311. package/dist/opportunities/wizard/__tests__/step-opportunities.test.d.ts.map +1 -0
  312. package/dist/opportunities/wizard/__tests__/step-opportunities.test.js +93 -0
  313. package/dist/opportunities/wizard/__tests__/step-opportunities.test.js.map +1 -0
  314. package/dist/opportunities/wizard/__tests__/step-pricing-timeline.test.d.ts +2 -0
  315. package/dist/opportunities/wizard/__tests__/step-pricing-timeline.test.d.ts.map +1 -0
  316. package/dist/opportunities/wizard/__tests__/step-pricing-timeline.test.js +141 -0
  317. package/dist/opportunities/wizard/__tests__/step-pricing-timeline.test.js.map +1 -0
  318. package/dist/opportunities/wizard/__tests__/step-review.test.d.ts +2 -0
  319. package/dist/opportunities/wizard/__tests__/step-review.test.d.ts.map +1 -0
  320. package/dist/opportunities/wizard/__tests__/step-review.test.js +80 -0
  321. package/dist/opportunities/wizard/__tests__/step-review.test.js.map +1 -0
  322. package/dist/opportunities/wizard/__tests__/step-tender-basics.test.d.ts +2 -0
  323. package/dist/opportunities/wizard/__tests__/step-tender-basics.test.d.ts.map +1 -0
  324. package/dist/opportunities/wizard/__tests__/step-tender-basics.test.js +76 -0
  325. package/dist/opportunities/wizard/__tests__/step-tender-basics.test.js.map +1 -0
  326. package/dist/opportunities/wizard/__tests__/use-wizard-draft.test.d.ts +2 -0
  327. package/dist/opportunities/wizard/__tests__/use-wizard-draft.test.d.ts.map +1 -0
  328. package/dist/opportunities/wizard/__tests__/use-wizard-draft.test.js +192 -0
  329. package/dist/opportunities/wizard/__tests__/use-wizard-draft.test.js.map +1 -0
  330. package/dist/opportunities/wizard/__tests__/wizard-stepper.test.d.ts +2 -0
  331. package/dist/opportunities/wizard/__tests__/wizard-stepper.test.d.ts.map +1 -0
  332. package/dist/opportunities/wizard/__tests__/wizard-stepper.test.js +61 -0
  333. package/dist/opportunities/wizard/__tests__/wizard-stepper.test.js.map +1 -0
  334. package/dist/opportunities/wizard/opportunity-wizard.d.ts +29 -0
  335. package/dist/opportunities/wizard/opportunity-wizard.d.ts.map +1 -0
  336. package/dist/opportunities/wizard/opportunity-wizard.js +196 -0
  337. package/dist/opportunities/wizard/opportunity-wizard.js.map +1 -0
  338. package/dist/opportunities/wizard/opportunity-wizard.stories.d.ts +12 -0
  339. package/dist/opportunities/wizard/opportunity-wizard.stories.d.ts.map +1 -0
  340. package/dist/opportunities/wizard/opportunity-wizard.stories.js +49 -0
  341. package/dist/opportunities/wizard/opportunity-wizard.stories.js.map +1 -0
  342. package/dist/opportunities/wizard/step-opportunities.d.ts +9 -0
  343. package/dist/opportunities/wizard/step-opportunities.d.ts.map +1 -0
  344. package/dist/opportunities/wizard/step-opportunities.js +80 -0
  345. package/dist/opportunities/wizard/step-opportunities.js.map +1 -0
  346. package/dist/opportunities/wizard/step-pricing-timeline.d.ts +9 -0
  347. package/dist/opportunities/wizard/step-pricing-timeline.d.ts.map +1 -0
  348. package/dist/opportunities/wizard/step-pricing-timeline.js +64 -0
  349. package/dist/opportunities/wizard/step-pricing-timeline.js.map +1 -0
  350. package/dist/opportunities/wizard/step-review.d.ts +9 -0
  351. package/dist/opportunities/wizard/step-review.d.ts.map +1 -0
  352. package/dist/opportunities/wizard/step-review.js +34 -0
  353. package/dist/opportunities/wizard/step-review.js.map +1 -0
  354. package/dist/opportunities/wizard/step-tender-basics.d.ts +16 -0
  355. package/dist/opportunities/wizard/step-tender-basics.d.ts.map +1 -0
  356. package/dist/opportunities/wizard/step-tender-basics.js +39 -0
  357. package/dist/opportunities/wizard/step-tender-basics.js.map +1 -0
  358. package/dist/opportunities/wizard/use-wizard-draft.d.ts +41 -0
  359. package/dist/opportunities/wizard/use-wizard-draft.d.ts.map +1 -0
  360. package/dist/opportunities/wizard/use-wizard-draft.js +214 -0
  361. package/dist/opportunities/wizard/use-wizard-draft.js.map +1 -0
  362. package/dist/opportunities/wizard/wizard-stepper.d.ts +20 -0
  363. package/dist/opportunities/wizard/wizard-stepper.d.ts.map +1 -0
  364. package/dist/opportunities/wizard/wizard-stepper.js +26 -0
  365. package/dist/opportunities/wizard/wizard-stepper.js.map +1 -0
  366. package/dist/opportunities/wizard/wizard-stepper.stories.d.ts +22 -0
  367. package/dist/opportunities/wizard/wizard-stepper.stories.d.ts.map +1 -0
  368. package/dist/opportunities/wizard/wizard-stepper.stories.js +47 -0
  369. package/dist/opportunities/wizard/wizard-stepper.stories.js.map +1 -0
  370. package/dist/opportunities/wizard/wizard.types.d.ts +176 -0
  371. package/dist/opportunities/wizard/wizard.types.d.ts.map +1 -0
  372. package/dist/opportunities/wizard/wizard.types.js +62 -0
  373. package/dist/opportunities/wizard/wizard.types.js.map +1 -0
  374. package/package.json +13 -4
  375. package/src/offer/offer-document.print.css +72 -0
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { format } from "date-fns";
4
+ import { ArrowLeftRight, CheckCircle, XCircle, FileText, MessageSquare, Paperclip, Clock, } from "lucide-react";
5
+ import { cn } from "../lib/utils";
6
+ import { ShadcnBadge as Badge } from "../components/shadcn-badge";
7
+ function Icon({ kind }) {
8
+ const common = { "aria-hidden": true, className: "size-4 shrink-0" };
9
+ switch (kind) {
10
+ case "propose":
11
+ case "counter":
12
+ return _jsx(ArrowLeftRight, { ...common });
13
+ case "accept":
14
+ return _jsx(CheckCircle, { ...common });
15
+ case "decline":
16
+ case "withdraw":
17
+ return _jsx(XCircle, { ...common });
18
+ case "expire":
19
+ return _jsx(Clock, { ...common });
20
+ case "message":
21
+ return _jsx(MessageSquare, { ...common });
22
+ case "attachment":
23
+ return _jsx(Paperclip, { ...common });
24
+ }
25
+ }
26
+ function Headline({ event }) {
27
+ const role = event.actorRole === "producer" ? "Producer" : "Importer";
28
+ switch (event.kind) {
29
+ case "propose":
30
+ return _jsxs(_Fragment, { children: [role, " proposed R", event.round ?? 1] });
31
+ case "counter":
32
+ return _jsxs(_Fragment, { children: [role, " countered R", event.round ?? "?"] });
33
+ case "accept":
34
+ return _jsxs(_Fragment, { children: [role, " accepted"] });
35
+ case "decline":
36
+ return _jsxs(_Fragment, { children: [role, " declined"] });
37
+ case "withdraw":
38
+ return _jsxs(_Fragment, { children: [role, " withdrew"] });
39
+ case "expire":
40
+ return _jsx(_Fragment, { children: "Offer expired" });
41
+ case "message":
42
+ return _jsxs(_Fragment, { children: [role, " sent a message"] });
43
+ case "attachment":
44
+ return _jsxs(_Fragment, { children: [role, " attached a file"] });
45
+ }
46
+ }
47
+ export function TimelineEvent({ ref, event, viewerAdvantage, tabIndex = -1, onFocus, className }) {
48
+ const createdAt = useMemo(() => new Date(event.createdAt), [event.createdAt]);
49
+ const expiredAtRaw = event.kind === "expire" ? event.expiredAt : null;
50
+ const expiredAt = useMemo(() => (expiredAtRaw != null ? new Date(expiredAtRaw) : null), [expiredAtRaw]);
51
+ return (_jsxs("li", { ref: ref, role: "listitem", tabIndex: tabIndex, onFocus: onFocus, "aria-label": `Timeline event: ${event.kind} by ${event.actorRole}`, className: cn("group flex items-start gap-3 rounded-xl border border-border/60 bg-card p-3 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary", className), children: [_jsx("div", { className: "mt-0.5 flex size-7 items-center justify-center rounded-full bg-muted text-muted-foreground", children: _jsx(Icon, { kind: event.kind }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-baseline gap-2 text-sm/6", children: [_jsx("span", { className: "font-medium", children: _jsx(Headline, { event: event }) }), _jsx("span", { className: "text-xs text-muted-foreground", children: format(createdAt, "MMM d, HH:mm") }), (event.kind === "propose" || event.kind === "counter") && (_jsxs(Badge, { variant: "ghost", className: cn("text-xs", viewerAdvantage === "improved" && "bg-emerald-100 text-emerald-800", viewerAdvantage === "worsened" && "bg-rose-100 text-rose-800"), children: [event.terms.price, " ", event.terms.currency, " \u00B7 ", event.terms.volume.toLocaleString(), " L", event.previousTerms && event.previousTerms.price !== event.terms.price && (_jsxs(_Fragment, { children: [" ", _jsxs("span", { className: "line-through opacity-60", children: [event.previousTerms.price, " ", event.previousTerms.currency] })] }))] })), (event.kind === "counter" || event.kind === "propose") && event.attachmentCount && event.attachmentCount > 0 && (_jsxs(Badge, { variant: "ghost", className: "text-xs", children: [_jsx(FileText, { "aria-hidden": true, className: "size-3" }), event.attachmentCount, " attachment", event.attachmentCount === 1 ? "" : "s", event.firstAttachmentName ? `: ${event.firstAttachmentName}` : ""] }))] }), (event.kind === "counter" ||
52
+ event.kind === "propose" ||
53
+ event.kind === "decline" ||
54
+ event.kind === "accept" ||
55
+ event.kind === "withdraw") && event.message && (_jsx("p", { className: "mt-1 text-sm/6 text-muted-foreground", children: event.message })), event.kind === "message" && _jsx("p", { className: "mt-1 text-sm/6", children: event.content }), event.kind === "attachment" && (_jsxs("p", { className: "mt-1 text-sm/6", children: [event.fileName, " \u00B7 ", Math.round(event.sizeBytes / 1024), " KB \u00B7", " ", _jsx("span", { className: "text-xs uppercase tracking-wide text-muted-foreground", children: event.source === "chat" ? "shared in chat" : event.source === "round" ? "attached to round" : "formal attachment" })] })), event.kind === "expire" && expiredAt && (_jsxs("p", { className: "mt-1 text-xs text-muted-foreground", children: ["Expired at ", format(expiredAt, "MMM d, HH:mm")] }))] })] }));
56
+ }
57
+ //# sourceMappingURL=timeline-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-event.js","sourceRoot":"","sources":["../../src/offer/timeline-event.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,cAAc,EACd,WAAW,EACX,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,EACT,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAYlE,SAAS,IAAI,CAAC,EAAE,IAAI,EAAuC;IACzD,MAAM,MAAM,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAW,CAAC;IAC9E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,KAAC,cAAc,OAAK,MAAM,GAAI,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,KAAC,WAAW,OAAK,MAAM,GAAI,CAAC;QACrC,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAC,OAAO,OAAK,MAAM,GAAI,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,KAAC,KAAK,OAAK,MAAM,GAAI,CAAC;QAC/B,KAAK,SAAS;YACZ,OAAO,KAAC,aAAa,OAAK,MAAM,GAAI,CAAC;QACvC,KAAK,YAAY;YACf,OAAO,KAAC,SAAS,OAAK,MAAM,GAAI,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAgC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,8BAAG,IAAI,iBAAa,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC;QAClD,KAAK,SAAS;YACZ,OAAO,8BAAG,IAAI,kBAAc,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;QACrD,KAAK,QAAQ;YACX,OAAO,8BAAG,IAAI,iBAAa,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,8BAAG,IAAI,iBAAa,CAAC;QAC9B,KAAK,UAAU;YACb,OAAO,8BAAG,IAAI,iBAAa,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,8CAAkB,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,8BAAG,IAAI,uBAAmB,CAAC;QACpC,KAAK,YAAY;YACf,OAAO,8BAAG,IAAI,wBAAoB,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAsB;IAClH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAC5D,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,gBACJ,mBAAmB,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,EAAE,EACjE,SAAS,EAAE,EAAE,CACX,gJAAgJ,EAChJ,SAAS,CACV,aAED,cAAK,SAAS,EAAC,4FAA4F,YACzG,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,GACtB,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,+CAA+C,aAC5D,eAAM,SAAS,EAAC,aAAa,YAC3B,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,GACrB,EACP,eAAM,SAAS,EAAC,+BAA+B,YAC5C,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,GAC7B,EACN,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CACzD,MAAC,KAAK,IACJ,OAAO,EAAC,OAAO,EACf,SAAS,EAAE,EAAE,CACX,SAAS,EACT,eAAe,KAAK,UAAU,IAAI,iCAAiC,EACnE,eAAe,KAAK,UAAU,IAAI,2BAA2B,CAC9D,aAEA,KAAK,CAAC,KAAK,CAAC,KAAK,OAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,cAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,QAChF,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CACzE,8BACG,GAAG,EACJ,gBAAM,SAAS,EAAC,yBAAyB,aACtC,KAAK,CAAC,aAAa,CAAC,KAAK,OAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,IACpD,IACN,CACJ,IACK,CACT,EACA,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,IAAI,CAC/G,MAAC,KAAK,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,aACxC,KAAC,QAAQ,yBAAa,SAAS,EAAC,QAAQ,GAAG,EAC1C,KAAK,CAAC,eAAe,iBACrB,KAAK,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EACtC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,IAC5D,CACT,IACG,EACL,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;wBACxB,KAAK,CAAC,IAAI,KAAK,SAAS;wBACxB,KAAK,CAAC,IAAI,KAAK,SAAS;wBACxB,KAAK,CAAC,IAAI,KAAK,QAAQ;wBACvB,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAC/C,YAAG,SAAS,EAAC,sCAAsC,YAAE,KAAK,CAAC,OAAO,GAAK,CACxE,EACA,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,YAAG,SAAS,EAAC,gBAAgB,YAAE,KAAK,CAAC,OAAO,GAAK,EAC7E,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAC9B,aAAG,SAAS,EAAC,gBAAgB,aAC1B,KAAK,CAAC,QAAQ,cAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAO,GAAG,EAChE,eAAM,SAAS,EAAC,uDAAuD,YACpE,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,GAC7G,IACL,CACL,EACA,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,CACvC,aAAG,SAAS,EAAC,oCAAoC,4BACnC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAC3C,CACL,IACG,IACH,CACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { StoryObj } from "@storybook/react-vite";
2
+ import { TimelineEvent } from "./timeline-event";
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof TimelineEvent;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Propose: Story;
14
+ export declare const Counter: Story;
15
+ export declare const Accept: Story;
16
+ export declare const Decline: Story;
17
+ export declare const Withdraw: Story;
18
+ export declare const Expire: Story;
19
+ export declare const Message: Story;
20
+ export declare const Attachment: Story;
21
+ //# sourceMappingURL=timeline-event.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-event.stories.d.ts","sourceRoot":"","sources":["../../src/offer/timeline-event.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,QAAA,MAAM,IAAI;;;;;;;CAK4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA8CnC,eAAO,MAAM,OAAO,EAAE,KAAoE,CAAC;AAC3F,eAAO,MAAM,OAAO,EAAE,KAAqE,CAAC;AAC5F,eAAO,MAAM,MAAM,EAAE,KAAmE,CAAC;AACzF,eAAO,MAAM,OAAO,EAAE,KAAoE,CAAC;AAC3F,eAAO,MAAM,QAAQ,EAAE,KAAqE,CAAC;AAC7F,eAAO,MAAM,MAAM,EAAE,KAAmE,CAAC;AACzF,eAAO,MAAM,OAAO,EAAE,KAAoE,CAAC;AAC3F,eAAO,MAAM,UAAU,EAAE,KAAuE,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { TimelineEvent } from "./timeline-event";
2
+ const meta = {
3
+ title: "Offer/TimelineEvent",
4
+ component: TimelineEvent,
5
+ tags: ["autodocs"],
6
+ parameters: { layout: "padded" },
7
+ };
8
+ export default meta;
9
+ const base = {
10
+ id: "e1",
11
+ createdAt: "2026-04-20T10:12:00Z",
12
+ actorOrgId: "org-prod",
13
+ actorRole: "producer",
14
+ round: 1,
15
+ };
16
+ const proposeData = {
17
+ ...base,
18
+ kind: "propose",
19
+ terms: { price: 4.1, currency: "EUR", volume: 20000 },
20
+ };
21
+ const counterData = {
22
+ ...base,
23
+ kind: "counter",
24
+ round: 2,
25
+ terms: { price: 4.4, currency: "EUR", volume: 20000 },
26
+ previousTerms: { price: 4.1, currency: "EUR", volume: 20000 },
27
+ message: "Please adjust price — tariffs changed.",
28
+ attachmentCount: 1,
29
+ firstAttachmentName: "tariff-notice.pdf",
30
+ };
31
+ const acceptData = { ...base, kind: "accept" };
32
+ const declineData = { ...base, kind: "decline", message: "Unable to meet the ABV range." };
33
+ const withdrawData = { ...base, kind: "withdraw" };
34
+ const expireData = { ...base, kind: "expire", expiredAt: "2026-04-22T00:00:00Z" };
35
+ const messageData = {
36
+ ...base,
37
+ kind: "message",
38
+ content: "Can we schedule a call to go over the delivery schedule?",
39
+ attachmentCount: 0,
40
+ };
41
+ const attachmentData = {
42
+ ...base,
43
+ kind: "attachment",
44
+ fileName: "lab-certificate.pdf",
45
+ mimeType: "application/pdf",
46
+ sizeBytes: 120_000,
47
+ source: "chat",
48
+ };
49
+ export const Propose = { args: { event: proposeData, viewerAdvantage: "neutral" } };
50
+ export const Counter = { args: { event: counterData, viewerAdvantage: "worsened" } };
51
+ export const Accept = { args: { event: acceptData, viewerAdvantage: "neutral" } };
52
+ export const Decline = { args: { event: declineData, viewerAdvantage: "neutral" } };
53
+ export const Withdraw = { args: { event: withdrawData, viewerAdvantage: "neutral" } };
54
+ export const Expire = { args: { event: expireData, viewerAdvantage: "neutral" } };
55
+ export const Message = { args: { event: messageData, viewerAdvantage: "neutral" } };
56
+ export const Attachment = { args: { event: attachmentData, viewerAdvantage: "neutral" } };
57
+ //# sourceMappingURL=timeline-event.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-event.stories.js","sourceRoot":"","sources":["../../src/offer/timeline-event.stories.tsx"],"names":[],"mappings":"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"}
@@ -40,4 +40,122 @@ export interface AttachmentMetadata {
40
40
  }
41
41
  export type OfferActionType = "accept" | "reject" | "withdraw";
42
42
  export type { SemanticTone };
43
+ export type MatchState = "ok" | "partial" | "miss" | "not_specified" | "n_a";
44
+ export type MatchHeadline = "strong" | "partial" | "miss";
45
+ export type ViewerAdvantage = "improved" | "neutral" | "worsened";
46
+ export type CriterionId = "price" | "volume" | "alcoholRange" | "residualSugar" | "vintage" | "beverageCategory" | "beverageSubtype" | "country" | "packaging" | "closure" | "certOrganic" | "certFairtrade" | "certSustainable";
47
+ export interface MatchCriterion {
48
+ id: CriterionId;
49
+ label: string;
50
+ state: MatchState;
51
+ offered: string | number | boolean | null;
52
+ required: string | number | boolean | [number, number] | string[] | null;
53
+ reason?: string;
54
+ viewerAdvantage: ViewerAdvantage;
55
+ }
56
+ export interface HiddenReason {
57
+ id: string;
58
+ reason?: string;
59
+ }
60
+ export interface BuyerNote {
61
+ id: string;
62
+ label: string;
63
+ value: string;
64
+ }
65
+ export interface OfferFxInfo {
66
+ rate: number;
67
+ base: string;
68
+ quote: string;
69
+ fetchedAt: string;
70
+ provider: string;
71
+ stale?: boolean;
72
+ }
73
+ export interface MatchEvaluation {
74
+ headline: MatchHeadline;
75
+ headlineSummary: string;
76
+ criteria: MatchCriterion[];
77
+ freeTextFields: BuyerNote[];
78
+ hiddenReasons: HiddenReason[];
79
+ fx?: OfferFxInfo;
80
+ }
81
+ export type Perspective = "producer" | "importer";
82
+ export interface OfferPresenceEntry {
83
+ orgRole: Perspective;
84
+ state: "active" | "idle" | "offline";
85
+ typing: boolean;
86
+ }
87
+ export type TimelineEventKind = "propose" | "counter" | "accept" | "decline" | "withdraw" | "expire" | "message" | "attachment";
88
+ export interface TimelineEventDataBase {
89
+ id: string;
90
+ createdAt: string;
91
+ actorOrgId: string;
92
+ actorRole: Perspective;
93
+ round?: number;
94
+ }
95
+ export interface ProposeCounterEventData extends TimelineEventDataBase {
96
+ kind: "propose" | "counter";
97
+ terms: OfferTerms;
98
+ previousTerms?: OfferTerms;
99
+ message?: string;
100
+ attachmentCount?: number;
101
+ firstAttachmentName?: string;
102
+ status?: "pending" | "committed";
103
+ }
104
+ export interface AcceptDeclineWithdrawEventData extends TimelineEventDataBase {
105
+ kind: "accept" | "decline" | "withdraw";
106
+ message?: string;
107
+ }
108
+ export interface ExpireEventData extends TimelineEventDataBase {
109
+ kind: "expire";
110
+ expiredAt: string;
111
+ }
112
+ export interface MessageEventData extends TimelineEventDataBase {
113
+ kind: "message";
114
+ content: string;
115
+ attachmentCount?: number;
116
+ }
117
+ export interface AttachmentEventData extends TimelineEventDataBase {
118
+ kind: "attachment";
119
+ fileName: string;
120
+ mimeType: string;
121
+ sizeBytes: number;
122
+ source: "chat" | "round" | "formal";
123
+ }
124
+ export type TimelineEventData = ProposeCounterEventData | AcceptDeclineWithdrawEventData | ExpireEventData | MessageEventData | AttachmentEventData;
125
+ export interface OfferTerms {
126
+ price: number;
127
+ currency: string;
128
+ volume: number;
129
+ volumeUnit?: string;
130
+ incoterms?: string;
131
+ paymentTerms?: string;
132
+ deliveryDate?: string;
133
+ validUntil?: string;
134
+ minimumOrderQuantity?: number;
135
+ advancePayment?: number;
136
+ }
137
+ export interface OfferPartyInfo {
138
+ orgId: string;
139
+ name: string;
140
+ logoUrl?: string | null;
141
+ location?: string;
142
+ primaryContactName?: string;
143
+ primaryContactEmail?: string;
144
+ }
145
+ export interface OfferAttachmentItem {
146
+ id: string;
147
+ fileName: string;
148
+ mimeType: string;
149
+ sizeBytes: number;
150
+ uploadedAt: string;
151
+ source: "chat" | "round" | "formal";
152
+ sourceLabel?: string;
153
+ downloadUrl?: string;
154
+ }
155
+ export type OfferSectionId = "parties" | "opportunity" | "product" | "terms" | "match" | "notes" | "attachments" | "negotiation";
156
+ export interface SectionOverride {
157
+ hidden?: boolean;
158
+ defaultOpen?: boolean;
159
+ order?: number;
160
+ }
43
161
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/offer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3D,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;AAIzG,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAG/D,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/offer/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opportunity-card-actions-menu.a11y.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-card-actions-menu.a11y.test.d.ts","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-card-actions-menu.a11y.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
3
+ import { render } from "@testing-library/react";
4
+ import { axe } from "vitest-axe";
5
+ import { toHaveNoViolations } from "vitest-axe/matchers";
6
+ import { OpportunityCardActionsMenu } from "../opportunity-card-actions-menu";
7
+ // @ts-expect-error vitest-axe types
8
+ expect.extend({ toHaveNoViolations });
9
+ beforeEach(() => {
10
+ Element.prototype.hasPointerCapture ??= () => false;
11
+ Element.prototype.setPointerCapture ??= () => { };
12
+ Element.prototype.releasePointerCapture ??= () => { };
13
+ Element.prototype.scrollIntoView ??= () => { };
14
+ vi.stubGlobal("requestAnimationFrame", (cb) => { cb(0); return 0; });
15
+ vi.stubGlobal("cancelAnimationFrame", () => { });
16
+ });
17
+ afterEach(() => { vi.unstubAllGlobals(); });
18
+ describe("a11y: OpportunityCardActionsMenu", () => {
19
+ it("Status open (closed menu) has no violations", async () => {
20
+ const { container } = render(_jsx(OpportunityCardActionsMenu, { status: "open", onSelect: () => { } }));
21
+ // @ts-expect-error vitest-axe types
22
+ expect(await axe(container)).toHaveNoViolations();
23
+ });
24
+ it("Status draft (closed menu) has no violations", async () => {
25
+ const { container } = render(_jsx(OpportunityCardActionsMenu, { status: "draft", onSelect: () => { } }));
26
+ // @ts-expect-error vitest-axe types
27
+ expect(await axe(container)).toHaveNoViolations();
28
+ });
29
+ it("Status closed (closed menu) has no violations", async () => {
30
+ const { container } = render(_jsx(OpportunityCardActionsMenu, { status: "closed", onSelect: () => { } }));
31
+ // @ts-expect-error vitest-axe types
32
+ expect(await axe(container)).toHaveNoViolations();
33
+ });
34
+ it("Status expired (closed menu) has no violations", async () => {
35
+ const { container } = render(_jsx(OpportunityCardActionsMenu, { status: "expired", onSelect: () => { } }));
36
+ // @ts-expect-error vitest-axe types
37
+ expect(await axe(container)).toHaveNoViolations();
38
+ });
39
+ });
40
+ //# sourceMappingURL=opportunity-card-actions-menu.a11y.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-card-actions-menu.a11y.test.js","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-card-actions-menu.a11y.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opportunity-celebration.a11y.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-celebration.a11y.test.d.ts","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-celebration.a11y.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect } from "vitest";
3
+ import { render } from "@testing-library/react";
4
+ import { axe } from "vitest-axe";
5
+ import { toHaveNoViolations } from "vitest-axe/matchers";
6
+ import { OpportunityCelebration } from "../opportunity-celebration";
7
+ // @ts-expect-error vitest-axe types
8
+ expect.extend({ toHaveNoViolations });
9
+ describe("a11y: OpportunityCelebration", () => {
10
+ it("Success variant has no violations (decorative aria-hidden)", async () => {
11
+ const { container } = render(_jsx("div", { className: "relative border border-border p-4", children: _jsx(OpportunityCelebration, { play: "success" }) }));
12
+ // @ts-expect-error vitest-axe types
13
+ expect(await axe(container)).toHaveNoViolations();
14
+ });
15
+ it("CapacityExceeded variant has no violations", async () => {
16
+ const { container } = render(_jsx("div", { className: "relative border border-border p-4", children: _jsx(OpportunityCelebration, { play: "capacity-exceeded" }) }));
17
+ // @ts-expect-error vitest-axe types
18
+ expect(await axe(container)).toHaveNoViolations();
19
+ });
20
+ it("Error variant has no violations", async () => {
21
+ const { container } = render(_jsx("div", { className: "relative border border-border p-4", children: _jsx(OpportunityCelebration, { play: "error" }) }));
22
+ // @ts-expect-error vitest-axe types
23
+ expect(await axe(container)).toHaveNoViolations();
24
+ });
25
+ it("Null play (no animation) has no violations", async () => {
26
+ const { container } = render(_jsx("div", { className: "relative border border-border p-4", children: _jsx(OpportunityCelebration, { play: null }) }));
27
+ // @ts-expect-error vitest-axe types
28
+ expect(await axe(container)).toHaveNoViolations();
29
+ });
30
+ });
31
+ //# sourceMappingURL=opportunity-celebration.a11y.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-celebration.a11y.test.js","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-celebration.a11y.test.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,oCAAoC;AACpC,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAEtC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,sBAAsB,IAAC,IAAI,EAAC,SAAS,GAAG,GACrC,CACP,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,sBAAsB,IAAC,IAAI,EAAC,mBAAmB,GAAG,GAC/C,CACP,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,sBAAsB,IAAC,IAAI,EAAC,OAAO,GAAG,GACnC,CACP,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,sBAAsB,IAAC,IAAI,EAAE,IAAI,GAAI,GAClC,CACP,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opportunity-detail-panel.a11y.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-detail-panel.a11y.test.d.ts","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-detail-panel.a11y.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
3
+ import { render } from "@testing-library/react";
4
+ import { axe } from "vitest-axe";
5
+ import { toHaveNoViolations } from "vitest-axe/matchers";
6
+ import { OpportunityDetailPanel } from "../opportunity-detail-panel";
7
+ // @ts-expect-error vitest-axe types
8
+ expect.extend({ toHaveNoViolations });
9
+ beforeEach(() => {
10
+ Element.prototype.hasPointerCapture ??= () => false;
11
+ Element.prototype.setPointerCapture ??= () => { };
12
+ Element.prototype.releasePointerCapture ??= () => { };
13
+ Element.prototype.scrollIntoView ??= () => { };
14
+ vi.stubGlobal("requestAnimationFrame", (cb) => { cb(0); return 0; });
15
+ vi.stubGlobal("cancelAnimationFrame", () => { });
16
+ });
17
+ afterEach(() => { vi.unstubAllGlobals(); });
18
+ const tabs = [
19
+ { id: "overview", label: "Overview", content: _jsx("div", { className: "p-3", children: "Overview body with enough text for contrast checks." }) },
20
+ { id: "timeline", label: "Timeline", content: _jsx("div", { className: "p-3", children: "Timeline body." }) },
21
+ { id: "compliance", label: "Compliance", content: _jsx("div", { className: "p-3", children: "Compliance body." }) },
22
+ { id: "buyer", label: "Buyer", content: _jsx("div", { className: "p-3", children: "Buyer body." }) },
23
+ ];
24
+ describe("a11y: OpportunityDetailPanel", () => {
25
+ it("All 4 tabs rendered has no violations", async () => {
26
+ const { container } = render(_jsx(OpportunityDetailPanel, { tabs: tabs }));
27
+ // @ts-expect-error vitest-axe types
28
+ expect(await axe(container)).toHaveNoViolations();
29
+ });
30
+ it("ImporterTabsHidden variant has no violations", async () => {
31
+ const withHidden = [
32
+ tabs[0],
33
+ tabs[1],
34
+ { ...tabs[2], hidden: true },
35
+ { ...tabs[3], hidden: true },
36
+ ];
37
+ const { container } = render(_jsx(OpportunityDetailPanel, { tabs: withHidden }));
38
+ // @ts-expect-error vitest-axe types
39
+ expect(await axe(container)).toHaveNoViolations();
40
+ });
41
+ });
42
+ //# sourceMappingURL=opportunity-detail-panel.a11y.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-detail-panel.a11y.test.js","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-detail-panel.a11y.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opportunity-filter-bar.a11y.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-filter-bar.a11y.test.d.ts","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-filter-bar.a11y.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
3
+ import { render } from "@testing-library/react";
4
+ import { axe } from "vitest-axe";
5
+ import { toHaveNoViolations } from "vitest-axe/matchers";
6
+ import { OpportunityFilterBar } from "../opportunity-filter-bar";
7
+ // @ts-expect-error vitest-axe types
8
+ expect.extend({ toHaveNoViolations });
9
+ beforeEach(() => {
10
+ Element.prototype.hasPointerCapture ??= () => false;
11
+ Element.prototype.setPointerCapture ??= () => { };
12
+ Element.prototype.releasePointerCapture ??= () => { };
13
+ Element.prototype.scrollIntoView ??= () => { };
14
+ vi.stubGlobal("requestAnimationFrame", (cb) => { cb(0); return 0; });
15
+ vi.stubGlobal("cancelAnimationFrame", () => { });
16
+ });
17
+ afterEach(() => { vi.unstubAllGlobals(); });
18
+ const statusChip = {
19
+ key: "status",
20
+ label: "Status",
21
+ options: [
22
+ { value: "all", label: "All", count: 24 },
23
+ { value: "open", label: "Open", count: 12 },
24
+ { value: "closed", label: "Closed", count: 8 },
25
+ { value: "expired", label: "Expired", count: 4 },
26
+ ],
27
+ };
28
+ const channelMulti = {
29
+ key: "channel",
30
+ label: "Channel",
31
+ multi: true,
32
+ options: [
33
+ { value: "monopoly", label: "Monopoly" },
34
+ { value: "importer", label: "Importer" },
35
+ { value: "open", label: "Open Market" },
36
+ ],
37
+ };
38
+ const advanced = [
39
+ { kind: "select", key: "category", label: "Category", options: [{ value: "wine", label: "Wine" }] },
40
+ ];
41
+ const sort = [{ key: "newest", label: "Newest" }];
42
+ describe("a11y: OpportunityFilterBar", () => {
43
+ it("Single-select chips has no violations", async () => {
44
+ const { container } = render(_jsx(OpportunityFilterBar, { chipFilters: [statusChip], advancedFilters: [], sortOptions: sort, searchValue: "", onSearchChange: () => { }, activeFilters: { status: "open" }, onFiltersChange: () => { }, totalCount: 12 }));
45
+ // @ts-expect-error vitest-axe types
46
+ expect(await axe(container)).toHaveNoViolations();
47
+ });
48
+ it("Multi-select chips has no violations", async () => {
49
+ const { container } = render(_jsx(OpportunityFilterBar, { chipFilters: [channelMulti], advancedFilters: [], sortOptions: sort, searchValue: "", onSearchChange: () => { }, activeFilters: { channel: ["monopoly"] }, onFiltersChange: () => { }, totalCount: 8 }));
50
+ // @ts-expect-error vitest-axe types
51
+ expect(await axe(container)).toHaveNoViolations();
52
+ });
53
+ it("With advanced trigger + active filters has no violations", async () => {
54
+ const { container } = render(_jsx(OpportunityFilterBar, { chipFilters: [statusChip], advancedFilters: advanced, sortOptions: sort, searchValue: "prosecco", onSearchChange: () => { }, activeFilters: { status: "open", category: "wine" }, onFiltersChange: () => { }, totalCount: 4 }));
55
+ // @ts-expect-error vitest-axe types
56
+ expect(await axe(container)).toHaveNoViolations();
57
+ });
58
+ });
59
+ //# sourceMappingURL=opportunity-filter-bar.a11y.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-filter-bar.a11y.test.js","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-filter-bar.a11y.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opportunity-stacked-card.a11y.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-stacked-card.a11y.test.d.ts","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-stacked-card.a11y.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect } from "vitest";
3
+ import { render } from "@testing-library/react";
4
+ import { axe } from "vitest-axe";
5
+ import { toHaveNoViolations } from "vitest-axe/matchers";
6
+ import { OpportunityStackedCard } from "../opportunity-stacked-card";
7
+ import { ChannelBadge } from "../opportunity-channel-badge";
8
+ import { StatusPill } from "../../components/status-pill";
9
+ import { CountdownPill } from "../../components/countdown-pill";
10
+ import { OffersCountChip } from "../opportunity-offers-count-chip";
11
+ // @ts-expect-error vitest-axe types
12
+ expect.extend({ toHaveNoViolations });
13
+ const baseOpp = {
14
+ id: "a11y-1",
15
+ tenderId: "t-1",
16
+ productName: "Organic Prosecco",
17
+ buyerName: "Systembolaget",
18
+ countryCode: "SE",
19
+ subtitleFacts: [
20
+ { type: "text", text: "Monopoly" },
21
+ { type: "count", value: 12000, suffix: "bottles" },
22
+ ],
23
+ deadline: new Date("2026-05-01T12:00:00Z"),
24
+ status: "open",
25
+ };
26
+ const tabs = [{ id: "overview", label: "Overview", content: _jsx("div", { className: "p-2", children: "Overview content." }) }];
27
+ describe("a11y: OpportunityStackedCard", () => {
28
+ it("Producer variant has no violations", async () => {
29
+ const { container } = render(_jsx(OpportunityStackedCard, { opportunity: baseOpp, leftBadge: _jsx(ChannelBadge, { channel: "monopoly" }), metaRight: _jsx(CountdownPill, { date: baseOpp.deadline }), primaryAction: _jsx("button", { className: "rounded-md bg-emerald-700 px-3 py-1.5 text-xs text-white", children: "Add to Journey" }), tabs: tabs }));
30
+ // @ts-expect-error vitest-axe types
31
+ expect(await axe(container)).toHaveNoViolations();
32
+ });
33
+ it("ImporterOpen variant has no violations", async () => {
34
+ const { container } = render(_jsx(OpportunityStackedCard, { opportunity: { ...baseOpp, status: "open" }, leftBadge: _jsx(StatusPill, { status: "open" }), metaRight: _jsx(OffersCountChip, { count: 7 }), primaryAction: _jsx("button", { className: "rounded-md bg-emerald-700 px-3 py-1.5 text-xs text-white", children: "View offers (7)" }), tabs: tabs }));
35
+ // @ts-expect-error vitest-axe types
36
+ expect(await axe(container)).toHaveNoViolations();
37
+ });
38
+ it("ImporterClosed (deEmphasized) variant has no violations (button contrast preserved)", async () => {
39
+ const { container } = render(_jsx(OpportunityStackedCard, { opportunity: { ...baseOpp, status: "closed" }, leftBadge: _jsx(StatusPill, { status: "closed" }), metaRight: _jsx(OffersCountChip, { count: 3 }), primaryAction: _jsx("button", { className: "rounded-md bg-emerald-700 px-3 py-1.5 text-xs text-white", children: "Reopen" }), deEmphasized: true, tabs: tabs }));
40
+ // @ts-expect-error vitest-axe types
41
+ expect(await axe(container)).toHaveNoViolations();
42
+ });
43
+ it("ReadOnlyPreview has no violations", async () => {
44
+ const { container } = render(_jsx(OpportunityStackedCard, { opportunity: baseOpp, leftBadge: _jsx(ChannelBadge, { channel: "monopoly" }), metaRight: _jsx(CountdownPill, { date: baseOpp.deadline }), primaryAction: null, readOnly: true, tabs: tabs }));
45
+ // @ts-expect-error vitest-axe types
46
+ expect(await axe(container)).toHaveNoViolations();
47
+ });
48
+ it("NoDeadline variant has no violations", async () => {
49
+ const { container } = render(_jsx(OpportunityStackedCard, { opportunity: { ...baseOpp, deadline: null }, leftBadge: _jsx(ChannelBadge, { channel: "monopoly" }), metaRight: _jsx(CountdownPill, { date: null }), primaryAction: _jsx("button", { className: "rounded-md bg-emerald-700 px-3 py-1.5 text-xs text-white", children: "Add" }), tabs: tabs }));
50
+ // @ts-expect-error vitest-axe types
51
+ expect(await axe(container)).toHaveNoViolations();
52
+ });
53
+ });
54
+ //# sourceMappingURL=opportunity-stacked-card.a11y.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-stacked-card.a11y.test.js","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-stacked-card.a11y.test.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,oCAAoC;AACpC,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAoB;IAC/B,EAAE,EAAE,QAAQ;IACZ,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;QAClC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;KACnD;IACD,QAAQ,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC;IAC1C,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,UAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAK,SAAS,EAAC,KAAK,kCAAwB,EAAE,CAAC,CAAC;AAErH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,sBAAsB,IACrB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,KAAC,YAAY,IAAC,OAAO,EAAC,UAAU,GAAG,EAC9C,SAAS,EAAE,KAAC,aAAa,IAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAI,EACpD,aAAa,EAAE,iBAAQ,SAAS,EAAC,0DAA0D,+BAAwB,EACnH,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,sBAAsB,IACrB,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAC3C,SAAS,EAAE,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG,EACvC,SAAS,EAAE,KAAC,eAAe,IAAC,KAAK,EAAE,CAAC,GAAI,EACxC,aAAa,EAAE,iBAAQ,SAAS,EAAC,0DAA0D,gCAAyB,EACpH,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,sBAAsB,IACrB,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAC7C,SAAS,EAAE,KAAC,UAAU,IAAC,MAAM,EAAC,QAAQ,GAAG,EACzC,SAAS,EAAE,KAAC,eAAe,IAAC,KAAK,EAAE,CAAC,GAAI,EACxC,aAAa,EAAE,iBAAQ,SAAS,EAAC,0DAA0D,uBAAgB,EAC3G,YAAY,QACZ,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,sBAAsB,IACrB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,KAAC,YAAY,IAAC,OAAO,EAAC,UAAU,GAAG,EAC9C,SAAS,EAAE,KAAC,aAAa,IAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAI,EACpD,aAAa,EAAE,IAAI,EACnB,QAAQ,QACR,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,sBAAsB,IACrB,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC3C,SAAS,EAAE,KAAC,YAAY,IAAC,OAAO,EAAC,UAAU,GAAG,EAC9C,SAAS,EAAE,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,EACxC,aAAa,EAAE,iBAAQ,SAAS,EAAC,0DAA0D,oBAAa,EACxG,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACF,oCAAoC;QACpC,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opportunity-stacked-list.a11y.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-stacked-list.a11y.test.d.ts","sourceRoot":"","sources":["../../../src/opportunities/__a11y__/opportunity-stacked-list.a11y.test.tsx"],"names":[],"mappings":""}