@opentrons/components 0.1.7-alpha.0 → 0.2.0-alpha.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 (557) hide show
  1. package/README.md +0 -1
  2. package/cssModuleSideEffect.ts +22 -0
  3. package/lib/assets/localization/en/index.d.ts +26 -0
  4. package/lib/assets/localization/index.d.ts +26 -0
  5. package/lib/atoms/AnimationVideo/index.d.ts +13 -0
  6. package/lib/atoms/Chip/index.d.ts +2 -0
  7. package/lib/atoms/InlineNotification/index.d.ts +18 -0
  8. package/lib/atoms/ListButton/ListButtonChildren/index.d.ts +0 -1
  9. package/lib/atoms/ListButton/index.d.ts +5 -0
  10. package/lib/atoms/ListItem/ListItemChildren/ListItemDescriptor.d.ts +4 -0
  11. package/lib/atoms/StyledText/PlaceholderStyledText.d.ts +14 -0
  12. package/lib/atoms/StyledText/StyledText.d.ts +1 -1
  13. package/lib/atoms/StyledText/index.d.ts +1 -0
  14. package/lib/atoms/Tag/index.d.ts +4 -1
  15. package/lib/atoms/Toast/index.d.ts +1 -1
  16. package/lib/atoms/Tooltip/index.d.ts +1 -1
  17. package/lib/atoms/buttons/BasicButton.d.ts +12 -0
  18. package/lib/atoms/buttons/LargeButton.d.ts +1 -1
  19. package/lib/atoms/buttons/RadioButton.d.ts +29 -1
  20. package/lib/atoms/buttons/index.d.ts +1 -0
  21. package/lib/atoms/index.d.ts +4 -2
  22. package/lib/buttons/Button.d.ts +1 -1
  23. package/lib/controls/ToggleButton.d.ts +8 -2
  24. package/lib/controls/index.d.ts +0 -1
  25. package/lib/forms/DeprecatedCheckboxField.d.ts +1 -1
  26. package/lib/forms/SelectField.d.ts +1 -1
  27. package/lib/hardware-sim/BaseDeck/BaseDeck.d.ts +19 -5
  28. package/lib/hardware-sim/BaseDeck/WasteChuteFixture.d.ts +1 -1
  29. package/lib/hardware-sim/Deck/FlexTrash.d.ts +4 -1
  30. package/lib/hardware-sim/Deck/MoveLabwareOnDeck.d.ts +3 -2
  31. package/lib/hardware-sim/Deck/RobotCoordsForeignDiv.d.ts +6 -5
  32. package/lib/hardware-sim/Deck/RobotCoordsForeignObject.d.ts +8 -5
  33. package/lib/hardware-sim/Deck/RobotCoordsText.d.ts +11 -1
  34. package/lib/hardware-sim/Deck/RobotWorkSpace.d.ts +30 -14
  35. package/lib/hardware-sim/Deck/__tests__/resolveLabwareLocation.test.d.ts +1 -0
  36. package/lib/hardware-sim/Deck/resolveLabwareLocation.d.ts +20 -0
  37. package/lib/hardware-sim/DeckConfigurator/AbsorbanceReaderItem.d.ts +11 -0
  38. package/lib/hardware-sim/DeckConfigurator/EmptyConfigItem.d.ts +11 -0
  39. package/lib/hardware-sim/DeckConfigurator/FlexStackerItem.d.ts +12 -0
  40. package/lib/hardware-sim/DeckConfigurator/HeaterShakerItem.d.ts +11 -0
  41. package/lib/hardware-sim/DeckConfigurator/MagneticBlockItem.d.ts +12 -0
  42. package/lib/hardware-sim/DeckConfigurator/StagingAreaConfigItem.d.ts +11 -0
  43. package/lib/hardware-sim/DeckConfigurator/{StaticFixture.d.ts → StaticItem.d.ts} +1 -1
  44. package/lib/hardware-sim/DeckConfigurator/TemperatureModuleItem.d.ts +11 -0
  45. package/lib/hardware-sim/DeckConfigurator/ThermocyclerItem.d.ts +11 -0
  46. package/lib/hardware-sim/DeckConfigurator/TrashBinConfigItem.d.ts +11 -0
  47. package/lib/hardware-sim/DeckConfigurator/WasteChuteConfigItem.d.ts +11 -0
  48. package/lib/hardware-sim/DeckConfigurator/constants.d.ts +5 -8
  49. package/lib/hardware-sim/DeckConfigurator/index.d.ts +4 -3
  50. package/lib/hardware-sim/Labware/CalibrationBlockRender.d.ts +15 -0
  51. package/lib/hardware-sim/Labware/Labware.d.ts +8 -9
  52. package/lib/hardware-sim/Labware/LabwareAdapter/index.d.ts +4 -4
  53. package/lib/hardware-sim/Labware/LabwareRender.d.ts +47 -6
  54. package/lib/hardware-sim/Labware/index.d.ts +1 -1
  55. package/lib/hardware-sim/Labware/labwareInternals/FilledWells.d.ts +3 -4
  56. package/lib/hardware-sim/Labware/labwareInternals/LabwareOutline.d.ts +20 -9
  57. package/lib/hardware-sim/Labware/labwareInternals/LabwareWellLabels.d.ts +2 -2
  58. package/lib/hardware-sim/Labware/labwareInternals/StaticLabware.d.ts +3 -3
  59. package/lib/hardware-sim/Labware/labwareInternals/StrokedWells.d.ts +3 -3
  60. package/lib/hardware-sim/Labware/labwareInternals/StyledWells.d.ts +2 -2
  61. package/lib/hardware-sim/Labware/labwareInternals/Well.d.ts +1 -2
  62. package/lib/hardware-sim/Labware/labwareInternals/WellLabels.d.ts +2 -2
  63. package/lib/hardware-sim/Labware/labwareInternals/getTiprackBackgroundColor.d.ts +1 -0
  64. package/lib/hardware-sim/Module/FlexStacker.d.ts +1 -0
  65. package/lib/hardware-sim/Module/index.d.ts +25 -3
  66. package/lib/hardware-sim/Pipette/PipetteRender.d.ts +2 -2
  67. package/lib/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.d.ts +5 -3
  68. package/lib/hardware-sim/index.d.ts +0 -2
  69. package/lib/helix-design-system/colors.d.ts +2 -1
  70. package/lib/hocs/withStyleProps.d.ts +26 -0
  71. package/lib/hooks/useConditionalConfirm.d.ts +4 -0
  72. package/lib/hooks/useSwipe.d.ts +1 -1
  73. package/lib/icons/Icon.d.ts +7 -7
  74. package/lib/icons/ModuleIcon.d.ts +5 -4
  75. package/lib/icons/NotificationIcon.d.ts +1 -1
  76. package/lib/instrument/InstrumentDiagram.d.ts +1 -1
  77. package/lib/instrument/index.d.ts +0 -3
  78. package/lib/legacy-hardware-sim/index.d.ts +0 -1
  79. package/lib/lists/index.d.ts +0 -1
  80. package/lib/molecules/Banner/index.d.ts +1 -1
  81. package/lib/molecules/CustomizeExpandButton/__tests__/CustomizeExpandButton.test.d.ts +1 -0
  82. package/lib/molecules/CustomizeExpandButton/index.d.ts +29 -0
  83. package/lib/molecules/DeckInfoLabel/index.d.ts +8 -16
  84. package/lib/molecules/DropdownMenu/index.d.ts +1 -1
  85. package/lib/molecules/LiquidIcon/index.d.ts +2 -2
  86. package/lib/molecules/index.d.ts +2 -1
  87. package/lib/organisms/CommandText/index.d.ts +2 -2
  88. package/lib/organisms/CommandText/useCommandTextString/index.d.ts +3 -3
  89. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getFlexStackerCommandText.test.d.ts +1 -0
  90. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getRobotCommandText.test.d.ts +1 -0
  91. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getAbsorbanceReaderCommandText.d.ts +1 -1
  92. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.d.ts +6 -3
  93. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getRobotCommandText.d.ts +4 -0
  94. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getTemperatureCommandText.d.ts +1 -1
  95. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/index.d.ts +2 -0
  96. package/lib/organisms/CommandText/useCommandTextString/utils/getAddressableAreaDisplayName.d.ts +1 -1
  97. package/lib/organisms/CommandText/useCommandTextString/utils/getFinalLabwareLocation.d.ts +1 -1
  98. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.d.ts +2 -2
  99. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareDisplayLocation.d.ts +1 -1
  100. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.d.ts +3 -3
  101. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareName.d.ts +2 -2
  102. package/lib/organisms/DeckLabelSet/index.d.ts +1 -0
  103. package/lib/organisms/FixtureOption/__tests__/FixtureOption.test.d.ts +1 -0
  104. package/lib/organisms/FixtureOption/index.d.ts +10 -0
  105. package/lib/{hardware-sim → organisms}/ProtocolDeck/index.d.ts +2 -3
  106. package/lib/organisms/ProtocolTimelineScrubber/CommandItem.d.ts +2 -2
  107. package/lib/organisms/ProtocolTimelineScrubber/utils.d.ts +3 -3
  108. package/lib/organisms/index.d.ts +2 -0
  109. package/lib/primitives/ForeignObject.d.ts +8 -18
  110. package/lib/primitives/Link.d.ts +1 -1
  111. package/lib/primitives/Svg.d.ts +1 -1
  112. package/lib/primitives/style-props.d.ts +2 -2
  113. package/lib/primitives/types.d.ts +1 -1
  114. package/lib/structure/index.d.ts +2 -3
  115. package/lib/testing/utils/renderWithProviders.d.ts +2 -2
  116. package/lib/tooltips/LegacyTooltip.d.ts +1 -1
  117. package/lib/tooltips/types.d.ts +2 -2
  118. package/package.json +6 -4
  119. package/src/Components.mdx +12 -0
  120. package/src/__tests__/utils.test.ts +2 -1
  121. package/src/alerts/AlertItem.stories.tsx +2 -2
  122. package/src/alerts/AlertItem.tsx +2 -1
  123. package/src/alerts/alerts.module.css +2 -2
  124. package/src/assets/localization/en/deck_configuration.json +12 -0
  125. package/src/assets/localization/en/index.ts +2 -0
  126. package/src/assets/localization/en/protocol_command_text.json +15 -1
  127. package/src/atoms/AnimationVideo/__tests__/AnimationVideo.test.tsx +40 -0
  128. package/src/atoms/AnimationVideo/index.tsx +44 -0
  129. package/src/atoms/Checkbox/Checkbox.stories.tsx +1 -1
  130. package/src/atoms/Checkbox/__tests__/Checkbox.test.tsx +4 -2
  131. package/src/atoms/Checkbox/index.tsx +3 -2
  132. package/src/atoms/CheckboxField/CheckboxField.stories.tsx +3 -2
  133. package/src/atoms/CheckboxField/__tests__/CheckboxField.test.tsx +21 -38
  134. package/src/atoms/CheckboxField/index.tsx +81 -70
  135. package/src/atoms/Chip/Chip.stories.tsx +3 -2
  136. package/src/atoms/Chip/__tests__/Chip.test.tsx +41 -3
  137. package/src/atoms/Chip/index.tsx +76 -50
  138. package/src/atoms/InlineNotification/InlineNotification.stories.tsx +107 -0
  139. package/src/atoms/InlineNotification/__tests__/InlineNotification.test.tsx +66 -0
  140. package/src/atoms/InlineNotification/index.tsx +213 -0
  141. package/src/atoms/InputField/InputField.stories.tsx +3 -0
  142. package/src/atoms/InputField/__tests__/InputField.test.tsx +4 -3
  143. package/src/atoms/InputField/index.tsx +4 -4
  144. package/src/atoms/ListButton/ListButton.stories.tsx +24 -8
  145. package/src/atoms/ListButton/ListButtonChildren/index.ts +0 -1
  146. package/src/atoms/ListButton/__tests__/ListButton.test.tsx +5 -3
  147. package/src/atoms/ListButton/__tests__/ListButtonAccordion.test.tsx +2 -2
  148. package/src/atoms/ListButton/index.tsx +57 -41
  149. package/src/atoms/ListItem/ListItem.stories.tsx +7 -5
  150. package/src/atoms/ListItem/ListItemChildren/ListItemCustomize.tsx +21 -15
  151. package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +6 -2
  152. package/src/atoms/ListItem/__tests__/ListItem.test.tsx +5 -3
  153. package/src/atoms/ListItem/index.tsx +3 -2
  154. package/src/atoms/ListTable/ListTable.stories.tsx +1 -1
  155. package/src/atoms/ListTable/__tests__/ListTable.test.tsx +2 -2
  156. package/src/atoms/ListTable/index.tsx +4 -4
  157. package/src/atoms/MenuList/MenuItem.stories.tsx +1 -1
  158. package/src/atoms/MenuList/MenuItem.tsx +4 -1
  159. package/src/atoms/MenuList/MenuList.stories.tsx +1 -0
  160. package/src/atoms/MenuList/OverflowBtn.tsx +40 -42
  161. package/src/atoms/MenuList/__tests__/MenuItem.test.tsx +2 -3
  162. package/src/atoms/MenuList/__tests__/MenuList.test.tsx +2 -2
  163. package/src/atoms/MenuList/__tests__/OverflowBtn.test.tsx +1 -1
  164. package/src/atoms/MenuList/index.tsx +2 -2
  165. package/src/atoms/Snackbar/Snackbar.stories.tsx +60 -22
  166. package/src/atoms/Snackbar/__tests__/Snackbar.test.tsx +6 -3
  167. package/src/atoms/Snackbar/index.tsx +51 -40
  168. package/src/atoms/StepMeter/__tests__/StepMeter.test.tsx +45 -0
  169. package/src/atoms/StepMeter/index.tsx +33 -24
  170. package/src/atoms/StyledText/LegacyStyledText.stories.tsx +2 -1
  171. package/src/atoms/StyledText/LegacyStyledText.tsx +3 -2
  172. package/src/atoms/StyledText/PlaceholderStyledText.tsx +46 -0
  173. package/src/atoms/StyledText/StyledText.stories.tsx +3 -2
  174. package/src/atoms/StyledText/StyledText.tsx +4 -3
  175. package/src/atoms/StyledText/index.ts +1 -0
  176. package/src/atoms/StyledText/placeholderstyledtext.module.css +25 -0
  177. package/src/atoms/SubListTable/SubListTable.stories.tsx +1 -1
  178. package/src/atoms/SubListTable/__tests__/SubListTable.test.tsx +2 -2
  179. package/src/atoms/SubListTable/index.tsx +4 -4
  180. package/src/atoms/Tag/Tag.stories.tsx +2 -1
  181. package/src/atoms/Tag/__tests__/Tag.test.tsx +2 -1
  182. package/src/atoms/Tag/index.tsx +53 -35
  183. package/src/atoms/Toast/ODDToast.stories.tsx +18 -8
  184. package/src/atoms/Toast/Toast.stories.tsx +3 -2
  185. package/src/atoms/Toast/__tests__/ODDToast.test.tsx +5 -2
  186. package/src/atoms/Toast/__tests__/Toast.test.tsx +5 -2
  187. package/src/atoms/Toast/index.tsx +75 -80
  188. package/src/atoms/ToggleGroup/ToggleGroup.stories.tsx +2 -0
  189. package/src/atoms/ToggleGroup/__tests__/ToggleGroup.test.tsx +2 -1
  190. package/src/atoms/ToggleGroup/index.tsx +2 -1
  191. package/src/atoms/Tooltip/Tooltip.stories.tsx +6 -5
  192. package/src/atoms/Tooltip/__tests__/Tooltip.test.tsx +6 -5
  193. package/src/atoms/Tooltip/index.tsx +3 -3
  194. package/src/atoms/buttons/AlertPrimaryButton.tsx +2 -1
  195. package/src/atoms/buttons/AltPrimaryButton.tsx +1 -1
  196. package/src/atoms/buttons/BasicButton.tsx +100 -0
  197. package/src/atoms/buttons/EmptySelectorButton.stories.tsx +1 -0
  198. package/src/atoms/buttons/EmptySelectorButton.tsx +10 -3
  199. package/src/atoms/buttons/LargeButton.stories.tsx +2 -2
  200. package/src/atoms/buttons/LargeButton.tsx +5 -5
  201. package/src/atoms/buttons/PrimaryButton.tsx +7 -3
  202. package/src/atoms/buttons/RadioButton.stories.tsx +2 -1
  203. package/src/atoms/buttons/RadioButton.tsx +102 -43
  204. package/src/atoms/buttons/SecondaryButton.tsx +18 -9
  205. package/src/atoms/buttons/TertiaryButton.tsx +1 -0
  206. package/src/atoms/buttons/__tests__/AlertPrimaryButton.test.tsx +5 -4
  207. package/src/atoms/buttons/__tests__/AltPrimaryButton.test.tsx +6 -4
  208. package/src/atoms/buttons/__tests__/BasicButton.test.tsx +87 -0
  209. package/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx +4 -2
  210. package/src/atoms/buttons/__tests__/LargeButton.test.tsx +4 -2
  211. package/src/atoms/buttons/__tests__/PrimaryButton.test.tsx +7 -5
  212. package/src/atoms/buttons/__tests__/RadioButton.test.tsx +17 -3
  213. package/src/atoms/buttons/__tests__/SecondaryButton.test.tsx +6 -5
  214. package/src/atoms/buttons/buttons.stories.tsx +92 -56
  215. package/src/atoms/buttons/index.ts +1 -0
  216. package/src/atoms/index.ts +4 -2
  217. package/src/buttons/Button.tsx +2 -3
  218. package/src/buttons/IconButton.tsx +1 -2
  219. package/src/buttons/buttons.module.css +92 -92
  220. package/src/controls/LabeledRadioGroup.tsx +1 -1
  221. package/src/controls/ToggleButton.tsx +62 -18
  222. package/src/controls/index.ts +0 -1
  223. package/src/controls/styles.module.css +15 -15
  224. package/src/forms/DeprecatedCheckboxField.stories.tsx +1 -1
  225. package/src/forms/DeprecatedCheckboxField.tsx +3 -3
  226. package/src/forms/FormGroup.stories.tsx +3 -4
  227. package/src/forms/FormGroup.tsx +1 -0
  228. package/src/forms/InputField.stories.tsx +2 -1
  229. package/src/forms/LegacyInputField.tsx +1 -0
  230. package/src/forms/RadioGroup.stories.tsx +2 -1
  231. package/src/forms/RadioGroup.tsx +1 -0
  232. package/src/forms/Select.module.css +23 -23
  233. package/src/forms/Select.stories.tsx +2 -3
  234. package/src/forms/Select.tsx +3 -3
  235. package/src/forms/SelectField.tsx +1 -1
  236. package/src/forms/ToggleField.stories.tsx +1 -1
  237. package/src/forms/ToggleField.tsx +2 -2
  238. package/src/forms/forms.module.css +38 -37
  239. package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +8 -8
  240. package/src/hardware-sim/BaseDeck/BaseDeck.tsx +164 -27
  241. package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +26 -32
  242. package/src/hardware-sim/BaseDeck/__fixtures__/index.ts +2 -2
  243. package/src/hardware-sim/BaseDeck/basedeck.module.css +20 -0
  244. package/src/hardware-sim/Deck/DeckFromLayers.tsx +6 -5
  245. package/src/hardware-sim/Deck/FlexTrash.tsx +51 -30
  246. package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +6 -5
  247. package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +129 -163
  248. package/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx +35 -27
  249. package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +33 -29
  250. package/src/hardware-sim/Deck/RobotCoordsText.tsx +12 -11
  251. package/src/hardware-sim/Deck/RobotWorkSpace.tsx +76 -54
  252. package/src/hardware-sim/Deck/SlotLabels.tsx +53 -51
  253. package/src/hardware-sim/Deck/__tests__/resolveLabwareLocation.test.ts +138 -0
  254. package/src/hardware-sim/Deck/deck.module.css +54 -0
  255. package/src/hardware-sim/Deck/resolveLabwareLocation.ts +154 -0
  256. package/src/hardware-sim/DeckConfigurator/{FlexStackerFixture.tsx → AbsorbanceReaderItem.tsx} +36 -33
  257. package/src/hardware-sim/DeckConfigurator/DeckConfigurator.stories.tsx +2 -3
  258. package/src/hardware-sim/DeckConfigurator/{EmptyConfigFixture.tsx → EmptyConfigItem.tsx} +73 -44
  259. package/src/hardware-sim/DeckConfigurator/{AbsorbanceReaderFixture.tsx → FlexStackerItem.tsx} +48 -29
  260. package/src/hardware-sim/DeckConfigurator/{HeaterShakerFixture.tsx → HeaterShakerItem.tsx} +42 -30
  261. package/src/hardware-sim/DeckConfigurator/{MagneticBlockFixture.tsx → MagneticBlockItem.tsx} +44 -61
  262. package/src/hardware-sim/DeckConfigurator/{StagingAreaConfigFixture.tsx → StagingAreaConfigItem.tsx} +42 -24
  263. package/src/hardware-sim/DeckConfigurator/{StaticFixture.tsx → StaticItem.tsx} +16 -9
  264. package/src/hardware-sim/DeckConfigurator/{TemperatureModuleFixture.tsx → TemperatureModuleItem.tsx} +44 -28
  265. package/src/hardware-sim/DeckConfigurator/{ThermocyclerFixture.tsx → ThermocyclerItem.tsx} +34 -24
  266. package/src/hardware-sim/DeckConfigurator/{TrashBinConfigFixture.tsx → TrashBinConfigItem.tsx} +44 -29
  267. package/src/hardware-sim/DeckConfigurator/{WasteChuteConfigFixture.tsx → WasteChuteConfigItem.tsx} +40 -29
  268. package/src/hardware-sim/DeckConfigurator/constants.ts +5 -9
  269. package/src/hardware-sim/DeckConfigurator/index.tsx +240 -197
  270. package/src/hardware-sim/Labware/CalibrationBlockRender.stories.tsx +49 -0
  271. package/src/hardware-sim/Labware/CalibrationBlockRender.tsx +172 -0
  272. package/src/hardware-sim/Labware/Labware.tsx +35 -22
  273. package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +7 -6
  274. package/src/hardware-sim/Labware/LabwareRender.stories.tsx +40 -26
  275. package/src/hardware-sim/Labware/LabwareRender.tsx +77 -23
  276. package/src/hardware-sim/Labware/__tests__/Labware.test.tsx +15 -6
  277. package/src/hardware-sim/Labware/__tests__/LabwareRender.test.tsx +20 -7
  278. package/src/hardware-sim/Labware/index.ts +1 -1
  279. package/src/hardware-sim/Labware/labware.module.css +8 -0
  280. package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +4 -4
  281. package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +54 -24
  282. package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +5 -4
  283. package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +7 -7
  284. package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +5 -4
  285. package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +4 -3
  286. package/src/hardware-sim/Labware/labwareInternals/Well.tsx +5 -3
  287. package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +12 -12
  288. package/src/hardware-sim/Labware/labwareInternals/__tests__/LabwareWellLabels.test.tsx +6 -3
  289. package/src/hardware-sim/Labware/labwareInternals/__tests__/StrokedWells.test.tsx +7 -3
  290. package/src/hardware-sim/Labware/labwareInternals/__tests__/WellLabels.test.tsx +8 -4
  291. package/src/hardware-sim/Labware/labwareInternals/getTiprackBackgroundColor.ts +32 -0
  292. package/src/hardware-sim/Module/FlexStacker.tsx +54 -0
  293. package/src/hardware-sim/Module/Module.stories.tsx +49 -18
  294. package/src/hardware-sim/Module/ModuleTag.tsx +3 -3
  295. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN1.tsx +1 -0
  296. package/src/hardware-sim/Module/Thermocycler/index.tsx +4 -4
  297. package/src/hardware-sim/Module/index.tsx +55 -25
  298. package/src/hardware-sim/Pipette/EightEmanatingNozzles.tsx +1 -0
  299. package/src/hardware-sim/Pipette/EmanatingNozzle.tsx +2 -1
  300. package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +6 -4
  301. package/src/hardware-sim/Pipette/PipetteRender.tsx +12 -12
  302. package/src/hardware-sim/Pipette/__tests__/EightEmanatingNozzles.test.tsx +2 -1
  303. package/src/hardware-sim/Pipette/__tests__/EmanatingNozzle.test.tsx +4 -3
  304. package/src/hardware-sim/Pipette/__tests__/PipetteRender.test.tsx +11 -9
  305. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +16 -14
  306. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.tsx +1 -0
  307. package/src/hardware-sim/RobotCoordinateSpace/robotcoordinatespace.module.css +3 -0
  308. package/src/hardware-sim/index.ts +0 -2
  309. package/src/helix-design-system/colors.ts +2 -1
  310. package/src/hocs/withStyleProps.ts +53 -0
  311. package/src/hooks/__tests__/useDrag.test.ts +3 -1
  312. package/src/hooks/__tests__/useLongPress.test.ts +2 -1
  313. package/src/hooks/__tests__/useScrolling.test.tsx +3 -2
  314. package/src/hooks/__tests__/useSwipe.test.tsx +2 -1
  315. package/src/hooks/useConditionalConfirm.ts +15 -5
  316. package/src/hooks/useDrag.ts +2 -1
  317. package/src/hooks/useInterval.ts +1 -0
  318. package/src/hooks/useLongPress.ts +2 -1
  319. package/src/hooks/useMenuHandleClickOutside.tsx +1 -0
  320. package/src/hooks/useMountEffect.ts +2 -0
  321. package/src/hooks/useScrolling.ts +1 -1
  322. package/src/hooks/useSelectDeckLocation/SelectDeckLocation.stories.tsx +3 -1
  323. package/src/hooks/useSelectDeckLocation/index.tsx +8 -6
  324. package/src/hooks/useSwipe.ts +3 -2
  325. package/src/i18n.ts +4 -2
  326. package/src/icons/Icon.stories.tsx +2 -1
  327. package/src/icons/Icon.tsx +38 -29
  328. package/src/icons/IconList.stories.tsx +9 -8
  329. package/src/icons/ModuleIcon.tsx +13 -10
  330. package/src/icons/NotificationIcon.tsx +1 -1
  331. package/src/icons/icon-data.ts +29 -0
  332. package/src/icons/icon.module.css +10 -0
  333. package/src/index.module.css +1 -0
  334. package/src/instrument/InstrumentDiagram.tsx +9 -10
  335. package/src/instrument/PipetteSelect.module.css +3 -3
  336. package/src/instrument/index.ts +0 -3
  337. package/src/interaction-enhancers/ClickOutside.ts +1 -0
  338. package/src/interaction-enhancers/HandleKeypress.tsx +1 -0
  339. package/src/interaction-enhancers/__tests__/useHover.test.tsx +1 -0
  340. package/src/interaction-enhancers/useHover.ts +1 -1
  341. package/src/legacy-hardware-sim/LabwareNameOverlay.module.css +5 -5
  342. package/src/legacy-hardware-sim/LabwareNameOverlay.tsx +1 -0
  343. package/src/legacy-hardware-sim/ModuleItem.module.css +19 -19
  344. package/src/legacy-hardware-sim/index.ts +0 -1
  345. package/src/lists/SidePanelGroup.tsx +1 -1
  346. package/src/lists/index.ts +0 -1
  347. package/src/lists/lists.module.css +23 -23
  348. package/src/modals/LegacyModal.tsx +2 -2
  349. package/src/modals/Modal.stories.tsx +1 -1
  350. package/src/modals/Modal.tsx +1 -1
  351. package/src/modals/ModalHeader.tsx +2 -2
  352. package/src/modals/ModalShell.tsx +3 -2
  353. package/src/modals/SpinnerModal.tsx +2 -2
  354. package/src/modals/SpinnerModalPage.tsx +1 -1
  355. package/src/modals/__tests__/Modal.test.tsx +4 -2
  356. package/src/modals/__tests__/ModalHeader.test.tsx +5 -3
  357. package/src/modals/__tests__/ModalShell.test.tsx +3 -1
  358. package/src/modals/modals.module.css +55 -55
  359. package/src/molecules/Banner/Banner.stories.tsx +1 -1
  360. package/src/molecules/Banner/__tests__/Banner.test.tsx +2 -2
  361. package/src/molecules/Banner/index.tsx +5 -4
  362. package/src/molecules/CustomizeExpandButton/__tests__/CustomizeExpandButton.test.tsx +88 -0
  363. package/src/molecules/CustomizeExpandButton/index.tsx +189 -0
  364. package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +10 -6
  365. package/src/molecules/DeckInfoLabel/__tests__/DeckInfoLabel.test.tsx +17 -13
  366. package/src/molecules/DeckInfoLabel/deckinfolabel.module.css +42 -0
  367. package/src/molecules/DeckInfoLabel/index.tsx +36 -62
  368. package/src/molecules/DeckLabel/__tests__/DeckLabel.test.tsx +3 -3
  369. package/src/molecules/DeckLabel/index.tsx +5 -3
  370. package/src/molecules/DropdownMenu/__tests__/DropdownMenu.test.tsx +3 -3
  371. package/src/molecules/DropdownMenu/index.tsx +21 -14
  372. package/src/molecules/InfoScreen/InfoScreen.stories.tsx +2 -1
  373. package/src/molecules/InfoScreen/__tests__/InfoScreen.test.tsx +3 -3
  374. package/src/molecules/InfoScreen/index.tsx +7 -3
  375. package/src/molecules/LiquidIcon/LiquidIcon.stories.tsx +3 -2
  376. package/src/molecules/LiquidIcon/__tests__/LiquidIcon.test.tsx +4 -4
  377. package/src/molecules/LiquidIcon/index.tsx +16 -10
  378. package/src/molecules/ListAccordion/ListAccordion.stories.tsx +3 -3
  379. package/src/molecules/ListAccordion/__tests__/ListAccordion.test.tsx +3 -3
  380. package/src/molecules/ListAccordion/index.tsx +6 -6
  381. package/src/molecules/ParametersTable/ParametersTable.stories.tsx +1 -0
  382. package/src/molecules/ParametersTable/__tests__/ParametersTable.test.tsx +3 -2
  383. package/src/molecules/ParametersTable/index.tsx +9 -7
  384. package/src/molecules/ReleaseNotes/index.tsx +1 -1
  385. package/src/molecules/ReleaseNotes/styles.module.css +15 -15
  386. package/src/molecules/Tabs/Tabs.stories.tsx +3 -1
  387. package/src/molecules/Tabs/__tests__/Tabs.test.tsx +3 -2
  388. package/src/molecules/Tabs/index.tsx +4 -3
  389. package/src/molecules/TextListTableContent/TextListTableContent.stories.tsx +1 -1
  390. package/src/molecules/TextListTableContent/__tests__/TextListTableContent.test.tsx +2 -2
  391. package/src/molecules/TextListTableContent/index.tsx +2 -2
  392. package/src/molecules/index.ts +2 -1
  393. package/src/nav/SidePanel.module.css +6 -6
  394. package/src/nav/SidePanel.stories.tsx +4 -3
  395. package/src/organisms/CommandText/CommandText.stories.tsx +3 -2
  396. package/src/organisms/CommandText/__tests__/CommandText.test.tsx +19 -18
  397. package/src/organisms/CommandText/fixtures/index.ts +1 -0
  398. package/src/organisms/CommandText/index.tsx +6 -4
  399. package/src/organisms/CommandText/useCommandTextString/index.ts +29 -6
  400. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/formatDuration.test.tsx +2 -1
  401. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getFinalLabwareLocation.test.ts +8 -5
  402. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getLabwareDisplayLocation.test.tsx +6 -5
  403. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getFlexStackerCommandText.test.tsx +179 -0
  404. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getPipettingCommandText.test.tsx +13 -12
  405. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getRobotCommandText.test.tsx +118 -0
  406. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getAbsorbanceReaderCommandText.ts +1 -1
  407. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.ts +140 -6
  408. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getLiquidProbeCommandText.ts +1 -0
  409. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts +4 -3
  410. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToWellCommandText.ts +19 -3
  411. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getPipettingCommandText.ts +24 -14
  412. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getRobotCommandText.ts +87 -0
  413. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunExtendedProfileCommandText.ts +3 -2
  414. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunProfileCommandText.ts +1 -0
  415. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTemperatureCommandText.ts +4 -4
  416. package/src/organisms/CommandText/useCommandTextString/utils/commandText/index.ts +2 -0
  417. package/src/organisms/CommandText/useCommandTextString/utils/formatDuration.ts +2 -0
  418. package/src/organisms/CommandText/useCommandTextString/utils/getAddressableAreaDisplayName.ts +1 -1
  419. package/src/organisms/CommandText/useCommandTextString/utils/getFinalAddressableAreaCmd.ts +2 -0
  420. package/src/organisms/CommandText/useCommandTextString/utils/getFinalLabwareLocation.ts +2 -2
  421. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.ts +10 -10
  422. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDisplayLocation.tsx +38 -15
  423. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.tsx +21 -12
  424. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareName.ts +2 -2
  425. package/src/organisms/CommandText/useCommandTextString/utils/getModuleDisplayLocation.ts +1 -0
  426. package/src/organisms/CommandText/useCommandTextString/utils/getModuleModel.ts +1 -0
  427. package/src/organisms/CommandText/useCommandTextString/utils/getWellRange.ts +2 -1
  428. package/src/organisms/DeckLabelSet/DeckLabelSet.stories.tsx +1 -2
  429. package/src/organisms/DeckLabelSet/__tests__/DeckLabelSet.test.tsx +3 -3
  430. package/src/organisms/DeckLabelSet/index.tsx +56 -25
  431. package/src/organisms/FixtureOption/__tests__/FixtureOption.test.tsx +40 -0
  432. package/src/organisms/FixtureOption/index.tsx +63 -0
  433. package/src/organisms/ProtocolDeck/index.tsx +118 -0
  434. package/src/organisms/ProtocolTimelineScrubber/CommandItem.tsx +8 -6
  435. package/src/organisms/ProtocolTimelineScrubber/PipetteVisuals.tsx +5 -3
  436. package/src/organisms/ProtocolTimelineScrubber/index.tsx +22 -45
  437. package/src/organisms/ProtocolTimelineScrubber/utils.ts +9 -6
  438. package/src/organisms/Toolbox/Toolbox.stories.tsx +1 -0
  439. package/src/organisms/Toolbox/__tests__/Toolbox.test.tsx +2 -1
  440. package/src/organisms/Toolbox/index.tsx +3 -2
  441. package/src/organisms/index.ts +2 -0
  442. package/src/primitives/Box.stories.tsx +1 -1
  443. package/src/primitives/Box.tsx +1 -1
  444. package/src/primitives/Btn.stories.tsx +8 -8
  445. package/src/primitives/Btn.tsx +2 -3
  446. package/src/primitives/Flex.stories.tsx +3 -3
  447. package/src/primitives/Flex.tsx +1 -1
  448. package/src/primitives/ForeignObject.tsx +20 -61
  449. package/src/primitives/Link.tsx +2 -2
  450. package/src/primitives/README.md +7 -16
  451. package/src/primitives/Svg.stories.tsx +2 -2
  452. package/src/primitives/Svg.tsx +2 -2
  453. package/src/primitives/Text.stories.tsx +2 -2
  454. package/src/primitives/Text.tsx +1 -1
  455. package/src/primitives/__tests__/Box.test.tsx +1 -0
  456. package/src/primitives/__tests__/Btn.test.tsx +1 -0
  457. package/src/primitives/__tests__/Flex.test.tsx +1 -0
  458. package/src/primitives/__tests__/Link.test.tsx +1 -0
  459. package/src/primitives/__tests__/Svg.test.tsx +1 -0
  460. package/src/primitives/__tests__/Text.test.tsx +1 -0
  461. package/src/primitives/__tests__/primitives.test.tsx +1 -0
  462. package/src/primitives/__tests__/style-props.test.tsx +1 -0
  463. package/src/primitives/style-props.ts +2 -2
  464. package/src/primitives/types.ts +1 -1
  465. package/src/slotmap/OT2SlotMap.tsx +1 -0
  466. package/src/slotmap/__tests__/OT2SlotMap.test.tsx +1 -0
  467. package/src/slotmap/styles.module.css +1 -1
  468. package/src/structure/LabeledValue.stories.tsx +2 -2
  469. package/src/structure/Pill.module.css +1 -1
  470. package/src/structure/Splash.module.css +1 -1
  471. package/src/structure/Splash.stories.tsx +4 -3
  472. package/src/structure/TitleBar.stories.tsx +4 -3
  473. package/src/structure/index.ts +2 -4
  474. package/src/structure/structure.module.css +11 -11
  475. package/src/styles/colors.module.css +1 -0
  476. package/src/styles/global.css +179 -0
  477. package/src/styles/index.module.css +1 -1
  478. package/src/styles/typography.module.css +1 -0
  479. package/src/testing/utils/matchers.ts +1 -0
  480. package/src/testing/utils/renderWithProviders.tsx +6 -9
  481. package/src/tooltips/DeprecatedTooltip.tsx +2 -1
  482. package/src/tooltips/LegacyTooltip.stories.tsx +10 -9
  483. package/src/tooltips/LegacyTooltip.tsx +5 -5
  484. package/src/tooltips/__tests__/Tooltip.test.tsx +1 -0
  485. package/src/tooltips/__tests__/useHoverTooltip.test.tsx +1 -0
  486. package/src/tooltips/__tests__/usePopper.test.tsx +1 -0
  487. package/src/tooltips/__tests__/useTooltip.test.tsx +1 -0
  488. package/src/tooltips/tooltips.module.css +14 -14
  489. package/src/tooltips/types.ts +2 -4
  490. package/src/tooltips/usePopper.ts +4 -4
  491. package/src/tooltips/useTooltip.ts +4 -3
  492. package/src/ui-style-constants/typography.ts +1 -0
  493. package/vite.config.mts +11 -4
  494. package/lib/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.d.ts +0 -14
  495. package/lib/controls/LabeledToggle.d.ts +0 -11
  496. package/lib/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.d.ts +0 -10
  497. package/lib/hardware-sim/DeckConfigurator/EmptyConfigFixture.d.ts +0 -8
  498. package/lib/hardware-sim/DeckConfigurator/FlexStackerFixture.d.ts +0 -11
  499. package/lib/hardware-sim/DeckConfigurator/HeaterShakerFixture.d.ts +0 -10
  500. package/lib/hardware-sim/DeckConfigurator/MagneticBlockFixture.d.ts +0 -11
  501. package/lib/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.d.ts +0 -10
  502. package/lib/hardware-sim/DeckConfigurator/TemperatureModuleFixture.d.ts +0 -10
  503. package/lib/hardware-sim/DeckConfigurator/ThermocyclerFixture.d.ts +0 -10
  504. package/lib/hardware-sim/DeckConfigurator/TrashBinConfigFixture.d.ts +0 -10
  505. package/lib/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.d.ts +0 -11
  506. package/lib/hardware-sim/Labware/LabwareStackRender.d.ts +0 -20
  507. package/lib/hardware-sim/ProtocolDeck/LabwareInfo.d.ts +0 -6
  508. package/lib/hardware-sim/ProtocolDeck/types.d.ts +0 -8
  509. package/lib/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.d.ts +0 -5
  510. package/lib/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.d.ts +0 -12
  511. package/lib/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.d.ts +0 -3
  512. package/lib/hardware-sim/ProtocolDeck/utils/getModulesInSlots.d.ts +0 -10
  513. package/lib/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.d.ts +0 -2
  514. package/lib/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.d.ts +0 -4
  515. package/lib/hardware-sim/ProtocolDeck/utils/index.d.ts +0 -4
  516. package/lib/hardware-sim/utils.d.ts +0 -3
  517. package/lib/instrument/InstrumentGroup.d.ts +0 -11
  518. package/lib/instrument/InstrumentInfo.d.ts +0 -18
  519. package/lib/instrument/PipetteSelect.d.ts +0 -20
  520. package/lib/legacy-hardware-sim/ModuleItem.d.ts +0 -17
  521. package/lib/lists/TitledList.d.ts +0 -44
  522. package/lib/structure/Card.d.ts +0 -18
  523. package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +0 -108
  524. package/src/atoms/ListButton/__tests__/ListButtonRadioButton.test.tsx +0 -28
  525. package/src/controls/LabeledToggle.tsx +0 -35
  526. package/src/hardware-sim/Labware/LabwareStackRender.tsx +0 -273
  527. package/src/hardware-sim/ProtocolDeck/LabwareInfo.tsx +0 -69
  528. package/src/hardware-sim/ProtocolDeck/ProtocolDeck.stories.tsx +0 -25
  529. package/src/hardware-sim/ProtocolDeck/__fixtures__/analysis_QIAseqFX24xv4_8.json +0 -47145
  530. package/src/hardware-sim/ProtocolDeck/index.tsx +0 -85
  531. package/src/hardware-sim/ProtocolDeck/types.ts +0 -6
  532. package/src/hardware-sim/ProtocolDeck/utils/__tests__/getLabwareInforByLiquidId.test.ts +0 -158
  533. package/src/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.ts +0 -33
  534. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.ts +0 -321
  535. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.ts +0 -43
  536. package/src/hardware-sim/ProtocolDeck/utils/getModulesInSlots.ts +0 -129
  537. package/src/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.ts +0 -29
  538. package/src/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.ts +0 -30
  539. package/src/hardware-sim/ProtocolDeck/utils/index.ts +0 -4
  540. package/src/hardware-sim/utils.ts +0 -18
  541. package/src/instrument/InstrumentDiagram.stories.tsx +0 -42
  542. package/src/instrument/InstrumentGroup.stories.tsx +0 -88
  543. package/src/instrument/InstrumentGroup.tsx +0 -35
  544. package/src/instrument/InstrumentInfo.tsx +0 -106
  545. package/src/instrument/PipetteSelect.stories.tsx +0 -40
  546. package/src/instrument/PipetteSelect.tsx +0 -170
  547. package/src/instrument/__tests__/InstrumentInfo.test.tsx +0 -56
  548. package/src/instrument/__tests__/PipetteSelect.test.tsx +0 -4
  549. package/src/instrument/instrument.module.css +0 -45
  550. package/src/legacy-hardware-sim/ModuleItem.tsx +0 -145
  551. package/src/lists/TitledList.tsx +0 -155
  552. package/src/structure/Card.stories.tsx +0 -28
  553. package/src/structure/Card.tsx +0 -63
  554. /package/lib/atoms/{ListButton/__tests__/ListButtonRadioButton.test.d.ts → AnimationVideo/__tests__/AnimationVideo.test.d.ts} +0 -0
  555. /package/lib/{hardware-sim/ProtocolDeck/utils/__tests__/getLabwareInforByLiquidId.test.d.ts → atoms/InlineNotification/__tests__/InlineNotification.test.d.ts} +0 -0
  556. /package/lib/{instrument/__tests__/InstrumentInfo.test.d.ts → atoms/StepMeter/__tests__/StepMeter.test.d.ts} +0 -0
  557. /package/lib/{instrument/__tests__/PipetteSelect.test.d.ts → atoms/buttons/__tests__/BasicButton.test.d.ts} +0 -0
@@ -0,0 +1,172 @@
1
+ import { getLabwareViewBox } from '@opentrons/shared-data'
2
+
3
+ import {
4
+ C_MED_DARK_GRAY,
5
+ C_MED_GRAY,
6
+ C_MED_LIGHT_GRAY,
7
+ FONT_WEIGHT_SEMIBOLD,
8
+ RobotCoordsText,
9
+ TYPOGRAPHY,
10
+ } from '../..'
11
+
12
+ import type { LabwareDefinition } from '@opentrons/shared-data'
13
+
14
+ // These strings match what's physically etched on the calibration block,
15
+ // so they probably shouldn't be localized.
16
+ const SHORT = 'SHORT'
17
+ const TALL = 'TALL'
18
+
19
+ const TEXT_MARGIN = 5
20
+
21
+ interface CalibrationBlockRenderProps {
22
+ /**
23
+ * Must be a calibration block definition, e.g.
24
+ * opentrons_calibrationblock_short_side_left or ..._short_side_right.
25
+ */
26
+ labwareDef: LabwareDefinition
27
+ }
28
+
29
+ /**
30
+ * Render a top-down view of an OT-2 calibration block. This displays features specific
31
+ * to calibration blocks, which the more general <Labware> component doesn't know
32
+ * about.
33
+ */
34
+ export function CalibrationBlockRender(
35
+ props: CalibrationBlockRenderProps
36
+ ): JSX.Element | null {
37
+ const { labwareDef } = props
38
+ const { minX, minY, xDimension, yDimension } = getLabwareViewBox(labwareDef)
39
+ const textLeftX = minX + TEXT_MARGIN
40
+ const textRightX = minX + xDimension - TEXT_MARGIN
41
+ const textY = minY + yDimension / 2
42
+
43
+ switch (labwareDef.parameters.loadName) {
44
+ case 'opentrons_calibrationblock_short_side_right': {
45
+ return (
46
+ <>
47
+ <rect
48
+ width={xDimension}
49
+ height={yDimension}
50
+ rx="10"
51
+ ry="10"
52
+ x={minX}
53
+ y={minY}
54
+ fill={C_MED_DARK_GRAY}
55
+ />
56
+ <rect
57
+ width={xDimension / 2}
58
+ height={yDimension}
59
+ rx="10"
60
+ ry="10"
61
+ x={minX}
62
+ y={minY}
63
+ fill={C_MED_GRAY}
64
+ />
65
+ <g
66
+ transform={`rotate(
67
+ 270,
68
+ ${textLeftX},
69
+ ${textY}
70
+ )`}
71
+ >
72
+ <RobotCoordsText
73
+ x={textLeftX}
74
+ y={textY}
75
+ textAnchor="middle"
76
+ fill={C_MED_LIGHT_GRAY}
77
+ fontSize={TYPOGRAPHY.fontSizeCaption}
78
+ fontWeight={FONT_WEIGHT_SEMIBOLD}
79
+ >
80
+ {TALL}
81
+ </RobotCoordsText>
82
+ </g>
83
+ <g
84
+ transform={`rotate(
85
+ 90,
86
+ ${textRightX},
87
+ ${textY}
88
+ )`}
89
+ >
90
+ <RobotCoordsText
91
+ x={textRightX}
92
+ y={textY}
93
+ textAnchor="middle"
94
+ fill={C_MED_LIGHT_GRAY}
95
+ fontSize={TYPOGRAPHY.fontSizeCaption}
96
+ fontWeight={FONT_WEIGHT_SEMIBOLD}
97
+ >
98
+ {SHORT}
99
+ </RobotCoordsText>
100
+ </g>
101
+ </>
102
+ )
103
+ }
104
+ case 'opentrons_calibrationblock_short_side_left': {
105
+ return (
106
+ <>
107
+ <rect
108
+ width={xDimension}
109
+ height={yDimension}
110
+ rx="10"
111
+ ry="10"
112
+ x={minX}
113
+ y={minY}
114
+ fill={C_MED_DARK_GRAY}
115
+ />
116
+ <rect
117
+ width={xDimension / 2}
118
+ height={yDimension}
119
+ rx="10"
120
+ ry="10"
121
+ x={minX + xDimension / 2}
122
+ y={minY}
123
+ fill={C_MED_GRAY}
124
+ />
125
+ <g
126
+ transform={`rotate(
127
+ 270,
128
+ ${textLeftX},
129
+ ${textY}
130
+ )`}
131
+ >
132
+ <RobotCoordsText
133
+ x={textLeftX}
134
+ y={textY}
135
+ textAnchor="middle"
136
+ fill={C_MED_LIGHT_GRAY}
137
+ fontSize={TYPOGRAPHY.fontSizeCaption}
138
+ fontWeight={FONT_WEIGHT_SEMIBOLD}
139
+ >
140
+ {SHORT}
141
+ </RobotCoordsText>
142
+ </g>
143
+ <g
144
+ transform={`rotate(
145
+ 90,
146
+ ${textRightX},
147
+ ${textY}
148
+ )`}
149
+ >
150
+ <RobotCoordsText
151
+ x={textRightX}
152
+ y={textY}
153
+ textAnchor="middle"
154
+ fill={C_MED_LIGHT_GRAY}
155
+ fontSize={TYPOGRAPHY.fontSizeCaption}
156
+ fontWeight={FONT_WEIGHT_SEMIBOLD}
157
+ >
158
+ {TALL}
159
+ </RobotCoordsText>
160
+ </g>
161
+ </>
162
+ )
163
+ }
164
+ default: {
165
+ // should never reach this case
166
+ console.warn(
167
+ '<CalibrationBlockRender> given a non-calibration-block labware definition. Rendering nothing.'
168
+ )
169
+ return null
170
+ }
171
+ }
172
+ }
@@ -1,32 +1,37 @@
1
1
  import { Fragment, memo } from 'react'
2
- import styled from 'styled-components'
3
2
  import map from 'lodash/map'
3
+ import styled from 'styled-components'
4
4
 
5
- import { COLORS } from '../../helix-design-system'
5
+ import {
6
+ getSchema2CornerOffsetFromSlot,
7
+ getSchema2Dimensions,
8
+ } from '@opentrons/shared-data'
6
9
 
10
+ import { COLORS } from '../../helix-design-system'
11
+ import { LabwareAdapter, labwareAdapterLoadNames } from './LabwareAdapter'
7
12
  import {
8
13
  LabwareOutline,
9
14
  LabwareWellLabels,
10
15
  STYLE_BY_WELL_CONTENTS,
11
16
  Well,
12
17
  } from './labwareInternals'
13
- import { LabwareAdapter, labwareAdapterLoadNames } from './LabwareAdapter'
14
18
 
15
- import type { LabwareDefinition2, LabwareWell } from '@opentrons/shared-data'
19
+ import type { RefObject } from 'react'
20
+ import type { LabwareDefinition, LabwareWell } from '@opentrons/shared-data'
21
+ import type { LabwareAdapterLoadName } from './LabwareAdapter'
16
22
  import type {
17
23
  HighlightedWellLabels,
18
- WellMouseEvent,
19
24
  WellFill,
25
+ WellMouseEvent,
20
26
  WellStroke,
21
27
  } from './labwareInternals/types'
22
28
 
23
- import type { RefObject } from 'react'
24
- import type { LabwareAdapterLoadName } from './LabwareAdapter'
25
-
26
29
  export interface LabwareProps {
27
30
  /** Labware definition to render */
28
- definition: LabwareDefinition2
29
- /** Opional Prop for labware on heater shakers sitting on right side of the deck */
31
+ definition: LabwareDefinition
32
+ /* See docs on LabwareRender. */
33
+ positioningMode: 'passThrough' | 'offsetInSlot'
34
+ /** See docs on LabwareRender. */
30
35
  shouldRotateAdapterOrientation?: boolean
31
36
  /** boolean to show well labels */
32
37
  showLabels?: boolean
@@ -77,15 +82,14 @@ const LabwareDetailGroup = styled.g`
77
82
  `
78
83
 
79
84
  /**
80
- * a refactor of the legacy LabwareRender component intended to provide predictable styling
81
- * initial use in ODD well selection component with ODD-specific well label styling
82
- * consider adding additional styled wells props if used elsewhere
83
- * @param props
84
- * @returns
85
+ * Similar to the LabwareRender component, but with ODD-specific styling.
86
+ *
87
+ * For example, hiding the outline of the labware for certain ODD flows.
85
88
  */
86
89
  export const Labware = (props: LabwareProps): JSX.Element => {
87
90
  const {
88
91
  definition,
92
+ positioningMode,
89
93
  gRef,
90
94
  hideOutline = false,
91
95
  highlight,
@@ -100,23 +104,28 @@ export const Labware = (props: LabwareProps): JSX.Element => {
100
104
  wellStroke = {},
101
105
  } = props
102
106
 
103
- const cornerOffsetFromSlot = definition.cornerOffsetFromSlot
107
+ const cornerOffsetFromSlot = getSchema2CornerOffsetFromSlot(definition)
104
108
  const labwareLoadName = definition.parameters.loadName
109
+ const isAdapter = labwareAdapterLoadNames.includes(labwareLoadName)
105
110
 
106
- if (labwareAdapterLoadNames.includes(labwareLoadName)) {
111
+ if (isAdapter) {
107
112
  const { shouldRotateAdapterOrientation = false } = props
108
- const { xDimension, yDimension } = definition.dimensions
113
+ const { xDimension, yDimension } = getSchema2Dimensions(definition)
109
114
 
110
115
  return (
111
116
  <g
112
117
  transform={
113
- shouldRotateAdapterOrientation
118
+ positioningMode === 'offsetInSlot' && shouldRotateAdapterOrientation
114
119
  ? `rotate(180, ${xDimension / 2}, ${yDimension / 2})`
115
- : 'rotate(0, 0, 0)'
120
+ : undefined
116
121
  }
117
122
  >
118
123
  <g
119
- transform={`translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`}
124
+ transform={
125
+ positioningMode === 'offsetInSlot'
126
+ ? `translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`
127
+ : undefined
128
+ }
120
129
  ref={gRef}
121
130
  >
122
131
  <LabwareAdapter
@@ -131,7 +140,11 @@ export const Labware = (props: LabwareProps): JSX.Element => {
131
140
 
132
141
  return (
133
142
  <g
134
- transform={`translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`}
143
+ transform={
144
+ positioningMode === 'offsetInSlot'
145
+ ? `translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`
146
+ : undefined
147
+ }
135
148
  ref={gRef}
136
149
  >
137
150
  <g onClick={onLabwareClick}>
@@ -1,13 +1,14 @@
1
+ import { COLORS } from '../../../helix-design-system'
2
+ import { LabwareOutline } from '../labwareInternals'
1
3
  import { Opentrons96DeepWellAdapter } from './Opentrons96DeepWellAdapter'
2
4
  import { Opentrons96FlatBottomAdapter } from './Opentrons96FlatBottomAdapter'
3
- import { OpentronsUniversalFlatAdapter } from './OpentronsUniversalFlatAdapter'
4
5
  import { OpentronsAluminumFlatBottomPlate } from './OpentronsAluminumFlatBottomPlate'
6
+ import { OpentronsAutoclavableDeckRiser } from './OpentronsAutoclavableDeckRiser'
5
7
  import { OpentronsFlex96TiprackAdapter } from './OpentronsFlex96TiprackAdapter'
6
8
  import { OpentronsToughPCRAutoSealingLid } from './OpentronsToughPCRAutoSealingLid'
7
- import { OpentronsAutoclavableDeckRiser } from './OpentronsAutoclavableDeckRiser'
8
- import { COLORS } from '../../../helix-design-system'
9
- import { LabwareOutline } from '../labwareInternals'
10
- import type { LabwareDefinition2 } from '@opentrons/shared-data'
9
+ import { OpentronsUniversalFlatAdapter } from './OpentronsUniversalFlatAdapter'
10
+
11
+ import type { LabwareDefinition } from '@opentrons/shared-data'
11
12
 
12
13
  const LABWARE_ADAPTER_LOADNAME_PATHS = {
13
14
  opentrons_96_deep_well_adapter: Opentrons96DeepWellAdapter,
@@ -26,7 +27,7 @@ export const labwareAdapterLoadNames = Object.keys(
26
27
 
27
28
  export interface LabwareAdapterProps {
28
29
  labwareLoadName: LabwareAdapterLoadName
29
- definition?: LabwareDefinition2
30
+ definition?: LabwareDefinition
30
31
  highlight?: boolean
31
32
  highlightShadow?: boolean
32
33
  }
@@ -1,9 +1,7 @@
1
- import type * as React from 'react'
2
-
3
1
  import {
4
- fixture96Plate as _fixture96Plate,
5
- fixture24Tuberack as _fixture24Tuberack,
6
2
  fixture12Trough as _fixture12Trough,
3
+ fixture24Tuberack as _fixture24Tuberack,
4
+ fixture96Plate as _fixture96Plate,
7
5
  fixtureTiprack10ul as _fixtureTiprack10ul,
8
6
  fixtureTiprack300ul as _fixtureTiprack300ul,
9
7
  fixtureTiprack1000ul as _fixtureTiprack1000ul,
@@ -12,24 +10,25 @@ import {
12
10
  import { RobotWorkSpace } from '../Deck'
13
11
  import { LabwareRender } from './LabwareRender'
14
12
 
15
- import type { Story, Meta } from '@storybook/react'
16
- import type { LabwareDefinition2 } from '@opentrons/shared-data'
13
+ import type { Meta, Story } from '@storybook/react'
14
+ import type * as React from 'react'
15
+ import type { LabwareDefinition } from '@opentrons/shared-data'
17
16
 
18
- const fixture96Plate = _fixture96Plate as LabwareDefinition2
19
- const fixture24Tuberack = _fixture24Tuberack as LabwareDefinition2
20
- const fixture12Trough = _fixture12Trough as LabwareDefinition2
17
+ const fixture96Plate = _fixture96Plate as LabwareDefinition
18
+ const fixture24Tuberack = _fixture24Tuberack as LabwareDefinition
19
+ const fixture12Trough = _fixture12Trough as LabwareDefinition
21
20
 
22
- const fixtureTiprack10 = _fixtureTiprack10ul as LabwareDefinition2
23
- const fixtureTiprack300 = _fixtureTiprack300ul as LabwareDefinition2
24
- const fixtureTiprack1000 = _fixtureTiprack1000ul as LabwareDefinition2
21
+ const fixtureTiprack10 = _fixtureTiprack10ul as LabwareDefinition
22
+ const fixtureTiprack300 = _fixtureTiprack300ul as LabwareDefinition
23
+ const fixtureTiprack1000 = _fixtureTiprack1000ul as LabwareDefinition
25
24
 
26
- const labwareDefMap: Record<string, LabwareDefinition2> = {
25
+ const labwareDefMap: Record<string, LabwareDefinition> = {
27
26
  [fixture96Plate.metadata.displayName]: fixture96Plate,
28
27
  [fixture24Tuberack.metadata.displayName]: fixture24Tuberack,
29
28
  [fixture12Trough.metadata.displayName]: fixture12Trough,
30
29
  }
31
30
 
32
- const tipRackDefMap: Record<string, LabwareDefinition2> = {
31
+ const tipRackDefMap: Record<string, LabwareDefinition> = {
33
32
  [fixtureTiprack10.metadata.displayName]: fixtureTiprack10,
34
33
  [fixtureTiprack300.metadata.displayName]: fixtureTiprack300,
35
34
  [fixtureTiprack1000.metadata.displayName]: fixtureTiprack1000,
@@ -52,24 +51,34 @@ const Template: Story<React.ComponentProps<typeof LabwareRender>> = ({
52
51
  definition,
53
52
  ...args
54
53
  }) => {
55
- const displayName: unknown = definition
56
- const allLabwareMap = { ...labwareDefMap, ...tipRackDefMap }
57
- const resolvedDef: typeof definition = allLabwareMap[displayName as string]
58
- return <LabwareRender definition={resolvedDef} {...args} />
54
+ // Ensure we have a valid definition
55
+ const resolvedDef = definition || fixture96Plate
56
+ return (
57
+ <LabwareRender
58
+ definition={resolvedDef}
59
+ positioningMode="passThrough"
60
+ {...args}
61
+ />
62
+ )
59
63
  }
64
+
60
65
  export const Basic = Template.bind({})
61
66
  Basic.argTypes = {
62
67
  definition: {
63
68
  control: {
64
69
  type: 'select',
65
- options: Object.keys(labwareDefMap).map(
66
- d => labwareDefMap[d].metadata.displayName
67
- ),
70
+ options: Object.keys(labwareDefMap),
71
+ },
72
+ },
73
+ positioningMode: {
74
+ control: {
75
+ type: 'select',
76
+ options: ['passThrough', 'offsetInSlot'],
68
77
  },
69
- defaultValue: fixture96Plate.metadata.displayName,
70
78
  },
71
79
  }
72
80
  Basic.args = {
81
+ definition: fixture96Plate,
73
82
  wellLabelOption: 'SHOW_LABEL_INSIDE',
74
83
  highlightedWells: { A1: null, A2: null },
75
84
  wellFill: { A1: 'maroon', A2: 'lavender' },
@@ -81,14 +90,19 @@ TipRack.argTypes = {
81
90
  definition: {
82
91
  control: {
83
92
  type: 'select',
84
- options: Object.keys(tipRackDefMap).map(
85
- d => tipRackDefMap[d].metadata.displayName
86
- ),
93
+ options: Object.keys(tipRackDefMap),
94
+ },
95
+ },
96
+ positioningMode: {
97
+ control: {
98
+ type: 'select',
99
+ options: ['passThrough', 'offsetInSlot'],
87
100
  },
88
- defaultValue: fixtureTiprack10.metadata.displayName,
89
101
  },
90
102
  }
91
103
  TipRack.args = {
104
+ definition: fixtureTiprack10,
105
+ positioningMode: 'passThrough',
92
106
  wellLabelOption: 'SHOW_LABEL_INSIDE',
93
107
  highlightedWells: { A1: null, A2: null },
94
108
  missingTips: { C3: null, D4: null },
@@ -1,25 +1,28 @@
1
1
  import {
2
- WellLabels,
3
- StyledWells,
2
+ getSchema2CornerOffsetFromSlot,
3
+ getSchema2Dimensions,
4
+ } from '@opentrons/shared-data'
5
+
6
+ import { LabwareAdapter, labwareAdapterLoadNames } from './LabwareAdapter'
7
+ import {
4
8
  FilledWells,
5
- StrokedWells,
6
9
  StaticLabware,
10
+ StrokedWells,
11
+ StyledWells,
12
+ WellLabels,
7
13
  } from './labwareInternals'
8
- import { LabwareAdapter, labwareAdapterLoadNames } from './LabwareAdapter'
9
14
 
10
- import type { CSSProperties } from 'styled-components'
11
- import type { LabwareDefinition2 } from '@opentrons/shared-data'
15
+ import type { CSSProperties, RefObject } from 'react'
16
+ import type { LabwareDefinition } from '@opentrons/shared-data'
17
+ import type { LabwareAdapterLoadName } from './LabwareAdapter'
12
18
  import type {
13
19
  HighlightedWellLabels,
14
- WellMouseEvent,
15
20
  WellFill,
16
- WellStroke,
17
21
  WellGroup,
22
+ WellMouseEvent,
23
+ WellStroke,
18
24
  } from './labwareInternals/types'
19
25
 
20
- import type { RefObject } from 'react'
21
- import type { LabwareAdapterLoadName } from './LabwareAdapter'
22
-
23
26
  export const WELL_LABEL_OPTIONS = {
24
27
  SHOW_LABEL_INSIDE: 'SHOW_LABEL_INSIDE',
25
28
  SHOW_LABEL_OUTSIDE: 'SHOW_LABEL_OUTSIDE',
@@ -29,8 +32,52 @@ export type WellLabelOption = keyof typeof WELL_LABEL_OPTIONS
29
32
 
30
33
  export interface LabwareRenderProps {
31
34
  /** Labware definition to render */
32
- definition: LabwareDefinition2
33
- /** Opional Prop for labware on heater shakers sitting on right side of the deck */
35
+ definition: LabwareDefinition
36
+ /**
37
+ * How the rendered labware should be positioned. Use `passThrough` for new code.
38
+ *
39
+ * `passThrough` -
40
+ * The origin of the labware will be at the SVG origin. Beware that what
41
+ * "the origin of the labware" corresponds to, physically, is not consistent across
42
+ * labware. e.g. do not assume that it's always the labware's front-left corner.
43
+ *
44
+ * To render a labware on its own, use the `getLabwareViewBox()` util from
45
+ * shared-data to compute the SVG's viewBox around that origin.
46
+ *
47
+ * To render a labware aligned to something like a deck slot or module, wrap this
48
+ * component in an SVG transform. Use a util like shared-data's
49
+ * `getDeckSlotOriginToLabwareOrigin()` to compute it.
50
+ *
51
+ * `offsetInSlot` -
52
+ * The SVG origin will be treated as the origin of the slot enclosing the labware.
53
+ * The labware will be offset from that origin according to the labware def's
54
+ * cornerOffsetFromSlot.
55
+ *
56
+ * To render a labware on its own, set the SVG viewBox's origin to
57
+ * definition.cornerOffsetFromSlot.
58
+ *
59
+ * To render a labware aligned to something like a deck slot or module, wrap this
60
+ * component in an SVG transform that places the origin of this component at the
61
+ * origin of the slot.
62
+ *
63
+ * This is deprecated because it relies on labware schema 2's slot-centric ideas of
64
+ * how labware are positioned. It's also clunky when rendering a labware on its
65
+ * own.
66
+ */
67
+ // todo(mm, 2025-06-09):
68
+ // Remove uses of offsetInSlot mode as we're able, and delete it when none are left.
69
+ positioningMode: 'passThrough' | 'offsetInSlot'
70
+ /**
71
+ * Special handling for opentrons_universal_flat_adapter. Unlike other labware,
72
+ * it rotates to match the underlying module, and that rotation actually matters
73
+ * because it's asymmetrical.
74
+ *
75
+ * This should be true if this is that adapter and we're on the left side of the deck,
76
+ * and false otherwise.
77
+ *
78
+ * Ignored if positioningMode is passThrough, in which case it's the caller's
79
+ * responsibility to do this rotation.
80
+ */
34
81
  shouldRotateAdapterOrientation?: boolean
35
82
  /** option to show well labels inside or outside of labware outline */
36
83
  wellLabelOption?: WellLabelOption
@@ -65,28 +112,31 @@ export interface LabwareRenderProps {
65
112
  }
66
113
 
67
114
  export const LabwareRender = (props: LabwareRenderProps): JSX.Element => {
68
- const { gRef, definition } = props
115
+ const { gRef, definition, positioningMode } = props
69
116
 
70
- const cornerOffsetFromSlot = definition.cornerOffsetFromSlot
117
+ const cornerOffsetFromSlot = getSchema2CornerOffsetFromSlot(definition)
71
118
  const labwareLoadName = definition.parameters.loadName
119
+ const isAdapter = labwareAdapterLoadNames.includes(labwareLoadName)
72
120
 
73
- if (labwareAdapterLoadNames.includes(labwareLoadName)) {
121
+ if (isAdapter) {
74
122
  const { shouldRotateAdapterOrientation } = props
75
- const { xDimension, yDimension } = props.definition.dimensions
123
+ const { xDimension, yDimension } = getSchema2Dimensions(definition)
76
124
 
77
125
  return (
78
126
  <g
79
127
  transform={
80
- shouldRotateAdapterOrientation
128
+ positioningMode === 'offsetInSlot' && shouldRotateAdapterOrientation
81
129
  ? `rotate(180, ${xDimension / 2}, ${yDimension / 2})`
82
- : 'rotate(0, 0, 0)'
130
+ : undefined
83
131
  }
84
132
  >
85
133
  <g
86
134
  transform={
87
- shouldRotateAdapterOrientation
88
- ? `translate(${-cornerOffsetFromSlot.x}, ${-cornerOffsetFromSlot.y})`
89
- : `translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`
135
+ positioningMode === 'offsetInSlot'
136
+ ? shouldRotateAdapterOrientation
137
+ ? `translate(${-cornerOffsetFromSlot.x}, ${-cornerOffsetFromSlot.y})`
138
+ : `translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`
139
+ : undefined
90
140
  }
91
141
  ref={gRef}
92
142
  onClick={props.onLabwareClick}
@@ -103,7 +153,11 @@ export const LabwareRender = (props: LabwareRenderProps): JSX.Element => {
103
153
  }
104
154
  return (
105
155
  <g
106
- transform={`translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`}
156
+ transform={
157
+ positioningMode === 'offsetInSlot'
158
+ ? `translate(${cornerOffsetFromSlot.x}, ${cornerOffsetFromSlot.y})`
159
+ : undefined
160
+ }
107
161
  ref={gRef}
108
162
  >
109
163
  <StaticLabware
@@ -1,17 +1,22 @@
1
- import { describe, it, vi, beforeEach } from 'vitest'
2
1
  import { render, screen } from '@testing-library/react'
2
+ import { beforeEach, describe, it, vi } from 'vitest'
3
+
3
4
  import '@testing-library/jest-dom/vitest'
5
+
4
6
  import { fixture12Trough } from '@opentrons/shared-data'
7
+
8
+ import { Labware } from '../Labware'
5
9
  import {
6
10
  LabwareOutline,
7
11
  LabwareWellLabelsComponent as LabwareWellLabels,
8
12
  } from '../labwareInternals'
9
- import { Labware } from '../Labware'
10
- import type { LabwareDefinition2 } from '@opentrons/shared-data'
13
+
14
+ import type { ComponentProps } from 'react'
15
+ import type { LabwareDefinition } from '@opentrons/shared-data'
11
16
 
12
17
  vi.mock('../labwareInternals')
13
18
 
14
- const troughFixture12 = fixture12Trough as LabwareDefinition2
19
+ const troughFixture12 = fixture12Trough as LabwareDefinition
15
20
 
16
21
  describe('Labware', () => {
17
22
  beforeEach(() => {
@@ -19,7 +24,10 @@ describe('Labware', () => {
19
24
  })
20
25
 
21
26
  it('should render a labware outline', () => {
22
- const props = { definition: troughFixture12 }
27
+ const props: ComponentProps<typeof Labware> = {
28
+ definition: troughFixture12,
29
+ positioningMode: 'passThrough',
30
+ }
23
31
  render(
24
32
  <svg>
25
33
  <Labware {...props} />
@@ -28,8 +36,9 @@ describe('Labware', () => {
28
36
  screen.getByText('mock labware outline')
29
37
  })
30
38
  it('should render well labels', () => {
31
- const props = {
39
+ const props: ComponentProps<typeof Labware> = {
32
40
  definition: troughFixture12,
41
+ positioningMode: 'passThrough',
33
42
  showLabels: true,
34
43
  }
35
44
  vi.mocked(LabwareWellLabels).mockReturnValue(<div>mock well labels</div>)