@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
@@ -1,20 +0,0 @@
1
- import type { RefObject } from 'react';
2
- import type { LabwareDefinition2 } from '@opentrons/shared-data';
3
- import type { HighlightedWellLabels } from './labwareInternals/types';
4
- import type { WellLabelOption } from '../..';
5
- export interface LabwareStackRenderProps {
6
- /** Labware definitions in stack to render */
7
- definitionTop: LabwareDefinition2;
8
- /** option to highlight well labels with specified color */
9
- highlightedWellLabels?: HighlightedWellLabels;
10
- /** highlight top labware */
11
- highlightTop: boolean;
12
- /** highlight bottom labware if it exists */
13
- highlightBottom: boolean;
14
- gRef?: RefObject<SVGGElement>;
15
- definitionBottom?: LabwareDefinition2 | null;
16
- shouldRotateAdapterOrientation?: boolean;
17
- /** option to show well labels inside or outside of labware outline */
18
- wellLabelOption?: WellLabelOption;
19
- }
20
- export declare const LabwareStackRender: (props: LabwareStackRenderProps) => JSX.Element;
@@ -1,6 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { LabwareDefinition2 } from '@opentrons/shared-data';
3
- export declare function LabwareInfo(props: {
4
- def: LabwareDefinition2;
5
- children: ReactNode;
6
- }): JSX.Element;
@@ -1,8 +0,0 @@
1
- export interface LabwareByLiquidId {
2
- [liquidId: string]: Array<{
3
- labwareId: string;
4
- volumeByWell: {
5
- [well: string]: number;
6
- };
7
- }>;
8
- }
@@ -1,5 +0,0 @@
1
- import type { LoadLabwareRunTimeCommand, RunTimeCommand } from '@opentrons/shared-data';
2
- export interface LoadedLabwareByAdapter {
3
- [labwareId: string]: LoadLabwareRunTimeCommand;
4
- }
5
- export declare function getInitialLoadedLabwareByAdapter(commands: RunTimeCommand[]): LoadedLabwareByAdapter;
@@ -1,12 +0,0 @@
1
- import type { CompletedProtocolAnalysis, ProtocolAnalysisOutput, LabwareDefinition2 } from '@opentrons/shared-data';
2
- interface LabwareInSlot {
3
- labwareId: string;
4
- labwareDef: LabwareDefinition2;
5
- labwareNickName: string | null;
6
- location: {
7
- slotName: string;
8
- };
9
- }
10
- export declare const getInitialAndMovedLabwareInSlots: (protocolAnalysis: CompletedProtocolAnalysis | ProtocolAnalysisOutput) => LabwareInSlot[];
11
- export declare const getTopMostLabwareInSlots: (protocolAnalysis: CompletedProtocolAnalysis | ProtocolAnalysisOutput) => LabwareInSlot[];
12
- export {};
@@ -1,3 +0,0 @@
1
- import type { RunTimeCommand } from '@opentrons/shared-data';
2
- import type { LabwareByLiquidId } from '../types';
3
- export declare function getLabwareInfoByLiquidId(commands: RunTimeCommand[]): LabwareByLiquidId;
@@ -1,10 +0,0 @@
1
- import type { CompletedProtocolAnalysis, ProtocolAnalysisOutput, ModuleLocation, ModuleModel, LabwareDefinition2 } from '@opentrons/shared-data';
2
- interface ModuleInSlot {
3
- moduleModel: ModuleModel;
4
- moduleLocation: ModuleLocation;
5
- nestedLabwareId: string | null;
6
- nestedLabwareDef: LabwareDefinition2 | null;
7
- nestedLabwareNickName: string | null;
8
- }
9
- export declare const getModulesInSlots: (protocolAnalysis: ProtocolAnalysisOutput | CompletedProtocolAnalysis) => ModuleInSlot[];
10
- export {};
@@ -1,2 +0,0 @@
1
- import type { RobotType } from '@opentrons/shared-data';
2
- export declare const getStandardDeckViewLayerBlockList: (robotType: RobotType) => string[];
@@ -1,4 +0,0 @@
1
- import type { Liquid } from '@opentrons/shared-data';
2
- import type { WellFill } from '../../Labware';
3
- import type { LabwareByLiquidId } from '../types';
4
- export declare function getWellFillFromLabwareId(labwareId: string, liquidsInLoadOrder: Liquid[], labwareByLiquidId: LabwareByLiquidId): WellFill;
@@ -1,4 +0,0 @@
1
- export * from './getLabwareInSlots';
2
- export * from './getStandardDeckViewLayerBlockList';
3
- export * from './getLabwareInfoByLiquidId';
4
- export * from './getWellFillFromLabwareId';
@@ -1,3 +0,0 @@
1
- import type { AffineTransformMatrix } from '@opentrons/shared-data';
2
- export declare const IDENTITY_AFFINE_TRANSFORM: AffineTransformMatrix;
3
- export declare function multiplyMatrices(a: number[][], b: number[][]): number[][];
@@ -1,11 +0,0 @@
1
- import type { InstrumentInfoProps } from './InstrumentInfo';
2
- export interface InstrumentGroupProps {
3
- showMountLabel?: boolean | null | undefined;
4
- left?: InstrumentInfoProps | null | undefined;
5
- right?: InstrumentInfoProps | null | undefined;
6
- }
7
- /**
8
- * Renders a left and right pipette diagram & info.
9
- * Takes child `InstrumentInfo` props in `right` and `left` props.
10
- */
11
- export declare function InstrumentGroup(props: InstrumentGroupProps): JSX.Element;
@@ -1,18 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { Mount } from '../robot-types';
3
- import type { InstrumentDiagramProps } from './InstrumentDiagram';
4
- export interface InstrumentInfoProps {
5
- /** 'left' or 'right' */
6
- mount: Mount;
7
- /** human-readable description, eg 'p300 Single-channel' */
8
- description: string;
9
- /** specs of mounted pipette */
10
- pipetteSpecs?: InstrumentDiagramProps['pipetteSpecs'] | null;
11
- /** paired tiprack models */
12
- tiprackModels?: string[];
13
- /** children to display under the info */
14
- children?: ReactNode;
15
- /** if true, show labels 'LEFT PIPETTE' / 'RIGHT PIPETTE' */
16
- showMountLabel?: boolean | null;
17
- }
18
- export declare function InstrumentInfo(props: InstrumentInfoProps): JSX.Element;
@@ -1,20 +0,0 @@
1
- import type { ActionMeta } from 'react-select';
2
- import type { SelectOption } from '../forms';
3
- export interface PipetteSelectProps {
4
- /** currently selected value, optional in case selecting triggers immediate action */
5
- pipetteName?: string | null;
6
- /** react-select change handler */
7
- onPipetteChange: (pipetteName: string | null, e: ActionMeta<SelectOption>) => void;
8
- /** list of pipette names to omit */
9
- nameBlocklist?: string[];
10
- /** whether or not "None" shows up as the default option */
11
- enableNoneOption?: boolean;
12
- /** input tabIndex */
13
- tabIndex?: string | number;
14
- /** classes to apply to the top-level component */
15
- className?: string;
16
- /** custom id to be applied. likely to be used as a data test id for e2e testing */
17
- id?: string;
18
- disabled?: boolean;
19
- }
20
- export declare const PipetteSelect: (props: PipetteSelectProps) => JSX.Element;
@@ -1,17 +0,0 @@
1
- import type { ModuleModel, DeckSlot } from '@opentrons/shared-data';
2
- export interface ModuleProps {
3
- /** module model */
4
- model: ModuleModel;
5
- /** display mode: 'default', 'present', 'missing', or 'info' */
6
- mode: 'default' | 'present' | 'missing' | 'info';
7
- /** slot details of the location of this module */
8
- slot: DeckSlot;
9
- /** USB port detail of the connected module */
10
- usbInfoString?: string;
11
- }
12
- /**
13
- * Legacy App-specific Module Rendering. Removable after Protocol Upload Revamp release
14
- *
15
- * @deprecated Use {@link Module}
16
- */
17
- export declare function ModuleItem(props: ModuleProps): JSX.Element;
@@ -1,44 +0,0 @@
1
- import type { MouseEvent, ReactNode } from 'react';
2
- import type { IconName, IconProps } from '../icons';
3
- export interface TitledListProps {
4
- /** id attribute */
5
- id?: string;
6
- /** text of title */
7
- title: string;
8
- /** optional icon left of the title */
9
- iconName?: IconName | null | undefined;
10
- /** props passed down to icon (`className` and `name` are ignored) */
11
- iconProps?: Omit<IconProps, 'name'>;
12
- /** optional data test id for the container */
13
- 'data-test'?: string;
14
- /** children must all be `<li>` */
15
- children?: ReactNode;
16
- /** additional classnames */
17
- className?: string;
18
- /** component with descriptive text about the list */
19
- description?: ReactNode;
20
- /** optional click action (on title div, not children) */
21
- onClick?: (event: MouseEvent) => unknown;
22
- /** optional right click action (on wrapping div) */
23
- onContextMenu?: (event: MouseEvent) => unknown;
24
- /** optional mouseEnter action */
25
- onMouseEnter?: (event: MouseEvent) => unknown;
26
- /** optional mouseLeave action */
27
- onMouseLeave?: (event: MouseEvent) => unknown;
28
- /** caret click action; if defined, list is expandable and carat is visible */
29
- onCollapseToggle?: (event: MouseEvent) => unknown;
30
- /** collapse the list if true (false by default) */
31
- collapsed?: boolean;
32
- /** set to true when TitledList is selected (eg, user clicked it) */
33
- selected?: boolean;
34
- /** set to true when TitledList is hovered (but not when its contents are hovered) */
35
- hovered?: boolean;
36
- /** disables the whole TitledList if true */
37
- disabled?: boolean;
38
- /** appear disabled, but preserve collapsibility */
39
- inert?: boolean;
40
- }
41
- /**
42
- * An ordered list with optional title, icon, and description.
43
- */
44
- export declare function TitledList(props: TitledListProps): JSX.Element;
@@ -1,18 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { StyleProps } from '../primitives';
3
- export interface CardProps extends StyleProps {
4
- /** Title for card, all cards should receive a title. */
5
- title?: ReactNode;
6
- /** Card contents */
7
- children?: ReactNode;
8
- /** If card can not be used, gray it out and remove pointer events */
9
- disabled?: boolean;
10
- /** Additional class names */
11
- className?: string;
12
- }
13
- /**
14
- * Renders a basic card element with a white background, dropshadow, and zero padding.
15
- *
16
- * Titles and other children handle their own styles and layout.
17
- */
18
- export declare function Card(props: CardProps): JSX.Element;
@@ -1,108 +0,0 @@
1
- import styled, { css } from 'styled-components'
2
- import { SPACING } from '../../../ui-style-constants'
3
- import { BORDERS, COLORS } from '../../../helix-design-system'
4
- import { Flex } from '../../../primitives'
5
- import { StyledText } from '../../StyledText'
6
- import { CURSOR_POINTER } from '../../../styles'
7
-
8
- import type { ChangeEventHandler, MouseEvent } from 'react'
9
- import type { StyleProps } from '../../../primitives'
10
-
11
- interface ListButtonRadioButtonProps extends StyleProps {
12
- buttonText: string
13
- buttonValue: string | number
14
- onChange: ChangeEventHandler<HTMLInputElement>
15
- setNoHover?: () => void
16
- setHovered?: () => void
17
- disabled?: boolean
18
- isSelected?: boolean
19
- id?: string
20
- }
21
-
22
- // used for helix and as a child button to ListButtonAccordion
23
- export function ListButtonRadioButton(
24
- props: ListButtonRadioButtonProps
25
- ): JSX.Element {
26
- const {
27
- buttonText,
28
- buttonValue,
29
- isSelected = false,
30
- onChange,
31
- disabled = false,
32
- setHovered,
33
- setNoHover,
34
- id = buttonText,
35
- } = props
36
-
37
- return (
38
- <Flex
39
- width="100%"
40
- margin={SPACING.spacing4}
41
- onClick={(e: MouseEvent) => {
42
- e.stopPropagation()
43
- }}
44
- >
45
- <SettingButton
46
- checked={isSelected}
47
- id={id}
48
- disabled={disabled}
49
- onChange={onChange}
50
- type="radio"
51
- value={buttonValue}
52
- />
53
- <SettingButtonLabel
54
- role="label"
55
- isSelected={isSelected}
56
- disabled={disabled}
57
- htmlFor={id}
58
- onMouseEnter={setHovered}
59
- onMouseLeave={setNoHover}
60
- >
61
- <StyledText desktopStyle="bodyDefaultRegular">{buttonText}</StyledText>
62
- </SettingButtonLabel>
63
- </Flex>
64
- )
65
- }
66
-
67
- const SettingButton = styled.input`
68
- display: none;
69
- `
70
-
71
- const AVAILABLE_BUTTON_STYLE = css`
72
- background: ${COLORS.white};
73
- color: ${COLORS.black90};
74
-
75
- &:hover {
76
- background-color: ${COLORS.grey10};
77
- }
78
- `
79
-
80
- const SELECTED_BUTTON_STYLE = css`
81
- background: ${COLORS.blue50};
82
- color: ${COLORS.white};
83
-
84
- &:active {
85
- background-color: ${COLORS.blue60};
86
- }
87
- `
88
-
89
- const DISABLED_STYLE = css`
90
- color: ${COLORS.grey40};
91
- background-color: ${COLORS.grey10};
92
- `
93
-
94
- interface ButtonLabelProps {
95
- isSelected: boolean
96
- disabled: boolean
97
- }
98
-
99
- const SettingButtonLabel = styled.label<ButtonLabelProps>`
100
- border-radius: ${BORDERS.borderRadius8};
101
- cursor: ${CURSOR_POINTER};
102
- padding: 14px ${SPACING.spacing12};
103
- width: 100%;
104
-
105
- ${({ isSelected }) =>
106
- isSelected ? SELECTED_BUTTON_STYLE : AVAILABLE_BUTTON_STYLE}
107
- ${({ disabled }) => disabled && DISABLED_STYLE}
108
- `
@@ -1,28 +0,0 @@
1
- import { describe, it, beforeEach, vi, expect } from 'vitest'
2
- import { fireEvent, screen } from '@testing-library/react'
3
- import { renderWithProviders } from '../../../testing/utils'
4
-
5
- import { ListButtonRadioButton } from '..'
6
-
7
- import type { ComponentProps } from 'react'
8
-
9
- const render = (props: ComponentProps<typeof ListButtonRadioButton>) =>
10
- renderWithProviders(<ListButtonRadioButton {...props} />)
11
-
12
- describe('ListButtonRadioButton', () => {
13
- let props: ComponentProps<typeof ListButtonRadioButton>
14
-
15
- beforeEach(() => {
16
- props = {
17
- buttonText: 'mock text',
18
- buttonValue: 'mockValue',
19
- onChange: vi.fn(),
20
- }
21
- })
22
-
23
- it('should render non nested accordion', () => {
24
- render(props)
25
- fireEvent.click(screen.getByText('mock text'))
26
- expect(props.onChange).toHaveBeenCalled()
27
- })
28
- })
@@ -1,35 +0,0 @@
1
- import { LabeledControl } from './LabeledControl'
2
- import { ToggleButton } from './ToggleButton'
3
- import styles from './styles.module.css'
4
-
5
- import type { ReactNode } from 'react'
6
-
7
- export interface LabeledToggleProps {
8
- label: string
9
- toggledOn: boolean
10
- disabled?: boolean
11
- children?: ReactNode
12
- onClick: () => unknown
13
- /** optional data test id for the container */
14
- 'data-test'?: string
15
- }
16
-
17
- export function LabeledToggle(props: LabeledToggleProps): JSX.Element {
18
- const { label, toggledOn, disabled, onClick } = props
19
-
20
- return (
21
- <LabeledControl
22
- label={label}
23
- control={
24
- <ToggleButton
25
- className={styles.labeled_toggle_button}
26
- toggledOn={toggledOn}
27
- disabled={disabled}
28
- onClick={onClick}
29
- />
30
- }
31
- >
32
- {props.children}
33
- </LabeledControl>
34
- )
35
- }
@@ -1,273 +0,0 @@
1
- import { WellLabels, StaticLabware } from './labwareInternals'
2
- import { LabwareAdapter, labwareAdapterLoadNames } from './LabwareAdapter'
3
- import { COLORS } from '../../helix-design-system'
4
- import { Svg } from '../..'
5
-
6
- import type { RefObject } from 'react'
7
- import type { LabwareDefinition2 } from '@opentrons/shared-data'
8
- import type { HighlightedWellLabels } from './labwareInternals/types'
9
- import type { LabwareAdapterLoadName } from './LabwareAdapter'
10
- import type { WellLabelOption } from '../..'
11
-
12
- const HIGHLIGHT_COLOR = COLORS.blue30
13
- const STROKE_WIDTH = 1
14
- const SKEW_ANGLE_DEGREES = 30
15
- const ROTATE_ANGLE_DEGREES = 30
16
- const SKEW_ANGLE_RADIANS = (SKEW_ANGLE_DEGREES * Math.PI) / 180
17
- const ROTATE_ANGLE_RADIANS = (ROTATE_ANGLE_DEGREES * Math.PI) / 180
18
- const COSINE_SKEW_ANGLE = Math.cos(SKEW_ANGLE_RADIANS)
19
- const STACK_SEPARATION_MM = 20
20
-
21
- export interface LabwareStackRenderProps {
22
- /** Labware definitions in stack to render */
23
- definitionTop: LabwareDefinition2
24
- /** option to highlight well labels with specified color */
25
- highlightedWellLabels?: HighlightedWellLabels
26
- /** highlight top labware */
27
- highlightTop: boolean
28
- /** highlight bottom labware if it exists */
29
- highlightBottom: boolean
30
- gRef?: RefObject<SVGGElement>
31
- definitionBottom?: LabwareDefinition2 | null
32
- shouldRotateAdapterOrientation?: boolean
33
- /** option to show well labels inside or outside of labware outline */
34
- wellLabelOption?: WellLabelOption
35
- }
36
-
37
- // calculate overall height for viewbox
38
- const getLabwareFaceHeightIso = (definition: LabwareDefinition2): number => {
39
- const { xDimension, yDimension } = definition.dimensions
40
- return Math.round(
41
- xDimension * Math.sin(SKEW_ANGLE_RADIANS) +
42
- (yDimension / Math.cos(SKEW_ANGLE_RADIANS)) *
43
- Math.cos(SKEW_ANGLE_RADIANS + ROTATE_ANGLE_RADIANS)
44
- )
45
- }
46
-
47
- const getLabwareHeightIso = (definition: LabwareDefinition2): number => {
48
- const { zDimension } = definition.dimensions
49
- return Math.round(getLabwareFaceHeightIso(definition) + zDimension)
50
- }
51
-
52
- const getXMinForViewbox = (definition: LabwareDefinition2): number => {
53
- const { yDimension } = definition.dimensions
54
- return Math.round(
55
- (yDimension / Math.cos(SKEW_ANGLE_RADIANS)) *
56
- Math.cos(Math.PI / 2 - (SKEW_ANGLE_RADIANS + ROTATE_ANGLE_RADIANS))
57
- )
58
- }
59
-
60
- const getLabwareWidthIso = (definition: LabwareDefinition2): number => {
61
- const { xDimension } = definition.dimensions
62
- return (
63
- getXMinForViewbox(definition) + xDimension * Math.cos(ROTATE_ANGLE_RADIANS)
64
- )
65
- }
66
-
67
- export const LabwareStackRender = (
68
- props: LabwareStackRenderProps
69
- ): JSX.Element => {
70
- const {
71
- gRef,
72
- definitionTop,
73
- definitionBottom,
74
- highlightTop,
75
- wellLabelOption,
76
- shouldRotateAdapterOrientation,
77
- highlightBottom = false,
78
- } = props
79
-
80
- const labwareLoadNameTop = definitionTop.parameters.loadName
81
- const fillColorTop = highlightTop ? HIGHLIGHT_COLOR : COLORS.white
82
- const fillColorBottom = highlightBottom ? HIGHLIGHT_COLOR : COLORS.white
83
-
84
- // only one labware (top)
85
- if (
86
- definitionBottom == null ||
87
- definitionBottom.parameters.loadName === 'opentrons_flex_96_tiprack_adapter'
88
- ) {
89
- const { xDimension, yDimension } = definitionTop.dimensions
90
- const isTopAdapter = labwareAdapterLoadNames.includes(
91
- definitionTop.parameters.loadName
92
- )
93
-
94
- return isTopAdapter ? (
95
- // adapter render
96
- <Svg
97
- viewBox={`0 0 ${xDimension} ${yDimension}`}
98
- transform={
99
- shouldRotateAdapterOrientation
100
- ? `rotate(180, ${xDimension / 2}, ${yDimension / 2})`
101
- : 'rotate(0, 0, 0)'
102
- }
103
- maxWidth="100%"
104
- maxHeight="100%"
105
- >
106
- <LabwareAdapter
107
- labwareLoadName={labwareLoadNameTop as LabwareAdapterLoadName}
108
- />
109
- </Svg>
110
- ) : (
111
- // isometric view of labware
112
- <Svg
113
- viewBox={`-${getXMinForViewbox(definitionTop)} -${
114
- definitionTop.dimensions.zDimension
115
- } ${getLabwareWidthIso(definitionTop)} ${
116
- getLabwareFaceHeightIso(definitionTop) +
117
- definitionTop.dimensions.zDimension
118
- }`}
119
- transform="scale(1, -1)"
120
- maxWidth="100%"
121
- maxHeight="100%"
122
- >
123
- <g
124
- transform={`rotate(${SKEW_ANGLE_DEGREES}) skewX(-${SKEW_ANGLE_DEGREES}) scale(${COSINE_SKEW_ANGLE}, ${COSINE_SKEW_ANGLE})`}
125
- ref={gRef}
126
- fill={fillColorTop}
127
- >
128
- <StaticLabware
129
- definition={definitionTop}
130
- fill={fillColorTop}
131
- showRadius={false}
132
- />
133
- {wellLabelOption != null &&
134
- definitionTop.metadata.displayCategory !== 'adapter' ? (
135
- <WellLabels
136
- definition={definitionTop}
137
- wellLabelOption={wellLabelOption}
138
- wellLabelColor={fillColorTop}
139
- highlightedWellLabels={props.highlightedWellLabels}
140
- />
141
- ) : null}
142
- </g>
143
- <rect
144
- width={definitionTop.dimensions.yDimension - STROKE_WIDTH}
145
- height={definitionTop.dimensions.zDimension - STROKE_WIDTH}
146
- transform={`rotate(180) skewY(-${SKEW_ANGLE_DEGREES}) scale(${COSINE_SKEW_ANGLE}, ${COSINE_SKEW_ANGLE})`}
147
- strokeWidth={STROKE_WIDTH}
148
- stroke={COLORS.black90}
149
- fill={fillColorTop}
150
- />
151
- <rect
152
- width={definitionTop.dimensions.xDimension - STROKE_WIDTH}
153
- height={definitionTop.dimensions.zDimension - STROKE_WIDTH}
154
- transform={`skewY(${SKEW_ANGLE_DEGREES}) scale(${
155
- COSINE_SKEW_ANGLE ** 2
156
- }, -${COSINE_SKEW_ANGLE}) `}
157
- strokeWidth={STROKE_WIDTH}
158
- stroke={COLORS.black90}
159
- fill={fillColorTop}
160
- />
161
- </Svg>
162
- )
163
- }
164
-
165
- const xMinForViewbox = Math.min(
166
- ...[definitionTop, definitionBottom].map(def => getXMinForViewbox(def))
167
- )
168
-
169
- const totalAssemblyHeight =
170
- getLabwareHeightIso(definitionTop) +
171
- STACK_SEPARATION_MM +
172
- definitionBottom.dimensions.zDimension
173
-
174
- return (
175
- <Svg
176
- viewBox={`-${xMinForViewbox} -${
177
- definitionBottom.dimensions.zDimension
178
- } ${getLabwareWidthIso(definitionTop)} ${totalAssemblyHeight}`}
179
- transform="scale(1, -1)"
180
- maxWidth="100%"
181
- maxHeight="100%"
182
- >
183
- {/* bottom labware/adapter */}
184
- {definitionBottom.parameters.loadName ===
185
- 'opentrons_flex_96_tiprack_adapter' ? null : (
186
- <>
187
- <g
188
- transform={`rotate(${SKEW_ANGLE_DEGREES}) skewX(-${SKEW_ANGLE_DEGREES}) scale(${COSINE_SKEW_ANGLE}, ${COSINE_SKEW_ANGLE})`}
189
- ref={gRef}
190
- fill={fillColorBottom}
191
- >
192
- <StaticLabware
193
- definition={definitionBottom}
194
- fill={fillColorBottom}
195
- showRadius={false}
196
- />
197
- {wellLabelOption != null &&
198
- definitionBottom.metadata.displayCategory !== 'adapter' ? (
199
- <WellLabels
200
- definition={definitionTop}
201
- wellLabelOption={wellLabelOption}
202
- wellLabelColor={fillColorBottom}
203
- highlightedWellLabels={props.highlightedWellLabels}
204
- />
205
- ) : null}
206
- </g>
207
- <rect
208
- width={definitionBottom.dimensions.yDimension - STROKE_WIDTH}
209
- height={definitionBottom.dimensions.zDimension - STROKE_WIDTH}
210
- transform={`rotate(180) skewY(-${SKEW_ANGLE_DEGREES}) scale(${COSINE_SKEW_ANGLE}, ${COSINE_SKEW_ANGLE})`}
211
- strokeWidth={STROKE_WIDTH}
212
- stroke={COLORS.black90}
213
- fill={fillColorBottom}
214
- />
215
- <rect
216
- width={definitionBottom.dimensions.xDimension - STROKE_WIDTH}
217
- height={definitionBottom.dimensions.zDimension - STROKE_WIDTH}
218
- transform={`skewY(${SKEW_ANGLE_DEGREES}) scale(${
219
- COSINE_SKEW_ANGLE ** 2
220
- }, -${COSINE_SKEW_ANGLE}) `}
221
- strokeWidth={STROKE_WIDTH}
222
- stroke={COLORS.black90}
223
- fill={fillColorBottom}
224
- />
225
- </>
226
- )}
227
- {/* top labware/adapter */}
228
- <g
229
- transform={`translate(0, ${
230
- definitionTop.dimensions.zDimension + STACK_SEPARATION_MM
231
- }) rotate(${SKEW_ANGLE_DEGREES}) skewX(-${SKEW_ANGLE_DEGREES}) scale(${COSINE_SKEW_ANGLE}, ${COSINE_SKEW_ANGLE})`}
232
- ref={gRef}
233
- >
234
- <StaticLabware
235
- definition={definitionTop}
236
- fill={fillColorTop}
237
- showRadius={false}
238
- />
239
- {wellLabelOption != null &&
240
- definitionTop.metadata.displayCategory !== 'adapter' ? (
241
- <WellLabels
242
- definition={definitionTop}
243
- wellLabelOption={wellLabelOption}
244
- wellLabelColor={fillColorTop}
245
- highlightedWellLabels={props.highlightedWellLabels}
246
- />
247
- ) : null}
248
- </g>
249
- <rect
250
- width={definitionTop.dimensions.yDimension - STROKE_WIDTH}
251
- height={definitionTop.dimensions.zDimension - STROKE_WIDTH}
252
- transform={`translate(0, ${
253
- definitionTop.dimensions.zDimension + STACK_SEPARATION_MM
254
- }) rotate(180) skewY(-${SKEW_ANGLE_DEGREES}) scale(${COSINE_SKEW_ANGLE}, ${COSINE_SKEW_ANGLE})`}
255
- strokeWidth={STROKE_WIDTH}
256
- stroke={COLORS.black90}
257
- fill={fillColorTop}
258
- />
259
- <rect
260
- width={definitionTop.dimensions.xDimension - STROKE_WIDTH}
261
- height={definitionTop.dimensions.zDimension - STROKE_WIDTH}
262
- transform={`translate(0, ${
263
- definitionTop.dimensions.zDimension + STACK_SEPARATION_MM
264
- }) skewY(${SKEW_ANGLE_DEGREES}) scale(${
265
- COSINE_SKEW_ANGLE ** 2
266
- } , -${COSINE_SKEW_ANGLE}) `}
267
- strokeWidth={STROKE_WIDTH}
268
- stroke={COLORS.black90}
269
- fill={fillColorTop}
270
- />
271
- </Svg>
272
- )
273
- }