@opentrons/components 0.1.7-alpha.0 → 0.1.7-alpha.1

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 (432) hide show
  1. package/README.md +0 -1
  2. package/lib/assets/localization/en/index.d.ts +14 -0
  3. package/lib/assets/localization/index.d.ts +14 -0
  4. package/lib/atoms/Chip/index.d.ts +2 -0
  5. package/lib/atoms/InlineNotification/index.d.ts +18 -0
  6. package/lib/atoms/ListButton/index.d.ts +5 -0
  7. package/lib/atoms/ListItem/ListItemChildren/ListItemDescriptor.d.ts +4 -0
  8. package/lib/atoms/StyledText/StyledText.d.ts +1 -1
  9. package/lib/atoms/Tag/index.d.ts +4 -1
  10. package/lib/atoms/Toast/index.d.ts +1 -1
  11. package/lib/atoms/Tooltip/index.d.ts +1 -1
  12. package/lib/atoms/buttons/LargeButton.d.ts +1 -1
  13. package/lib/atoms/buttons/RadioButton.d.ts +29 -1
  14. package/lib/atoms/index.d.ts +3 -2
  15. package/lib/buttons/Button.d.ts +1 -1
  16. package/lib/controls/ToggleButton.d.ts +8 -2
  17. package/lib/controls/index.d.ts +0 -1
  18. package/lib/forms/DeprecatedCheckboxField.d.ts +1 -1
  19. package/lib/forms/SelectField.d.ts +1 -1
  20. package/lib/hardware-sim/BaseDeck/BaseDeck.d.ts +13 -1
  21. package/lib/hardware-sim/BaseDeck/WasteChuteFixture.d.ts +1 -1
  22. package/lib/hardware-sim/Deck/MoveLabwareOnDeck.d.ts +1 -1
  23. package/lib/hardware-sim/Deck/RobotWorkSpace.d.ts +1 -1
  24. package/lib/hardware-sim/Labware/Labware.d.ts +2 -2
  25. package/lib/hardware-sim/Labware/LabwareAdapter/index.d.ts +2 -2
  26. package/lib/hardware-sim/Labware/LabwareRender.d.ts +2 -2
  27. package/lib/hardware-sim/Labware/index.d.ts +0 -1
  28. package/lib/hardware-sim/Labware/labwareInternals/FilledWells.d.ts +1 -1
  29. package/lib/hardware-sim/Labware/labwareInternals/StaticLabware.d.ts +1 -1
  30. package/lib/hardware-sim/Labware/labwareInternals/StrokedWells.d.ts +1 -1
  31. package/lib/hardware-sim/Labware/labwareInternals/Well.d.ts +1 -1
  32. package/lib/hardware-sim/Labware/labwareInternals/getTiprackBackgroundColor.d.ts +1 -0
  33. package/lib/hardware-sim/Module/FlexStacker.d.ts +1 -0
  34. package/lib/hardware-sim/Module/index.d.ts +1 -1
  35. package/lib/hardware-sim/index.d.ts +0 -2
  36. package/lib/helix-design-system/colors.d.ts +2 -1
  37. package/lib/hooks/useSwipe.d.ts +1 -1
  38. package/lib/icons/ModuleIcon.d.ts +1 -1
  39. package/lib/icons/NotificationIcon.d.ts +1 -1
  40. package/lib/instrument/InstrumentDiagram.d.ts +1 -1
  41. package/lib/instrument/index.d.ts +0 -1
  42. package/lib/legacy-hardware-sim/ModuleItem.d.ts +1 -1
  43. package/lib/molecules/Banner/index.d.ts +1 -1
  44. package/lib/molecules/DropdownMenu/index.d.ts +1 -1
  45. package/lib/molecules/LiquidIcon/index.d.ts +2 -2
  46. package/lib/organisms/CommandText/useCommandTextString/index.d.ts +2 -2
  47. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getFlexStackerCommandText.test.d.ts +1 -0
  48. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getRobotCommandText.test.d.ts +1 -0
  49. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getAbsorbanceReaderCommandText.d.ts +1 -1
  50. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.d.ts +6 -3
  51. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getRobotCommandText.d.ts +4 -0
  52. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getTemperatureCommandText.d.ts +1 -1
  53. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/index.d.ts +2 -0
  54. package/lib/organisms/CommandText/useCommandTextString/utils/getAddressableAreaDisplayName.d.ts +1 -1
  55. package/lib/organisms/CommandText/useCommandTextString/utils/getFinalLabwareLocation.d.ts +1 -1
  56. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareDisplayLocation.d.ts +1 -1
  57. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.d.ts +1 -1
  58. package/lib/organisms/DeckLabelSet/index.d.ts +1 -0
  59. package/lib/organisms/FixtureOption/__tests__/FixtureOption.test.d.ts +1 -0
  60. package/lib/organisms/FixtureOption/index.d.ts +10 -0
  61. package/lib/organisms/ProtocolTimelineScrubber/utils.d.ts +1 -1
  62. package/lib/organisms/index.d.ts +1 -0
  63. package/lib/primitives/ForeignObject.d.ts +1 -1
  64. package/lib/primitives/Link.d.ts +1 -1
  65. package/lib/primitives/Svg.d.ts +1 -1
  66. package/lib/primitives/style-props.d.ts +2 -2
  67. package/lib/primitives/types.d.ts +1 -1
  68. package/lib/testing/utils/renderWithProviders.d.ts +2 -2
  69. package/lib/tooltips/LegacyTooltip.d.ts +1 -1
  70. package/lib/tooltips/types.d.ts +2 -2
  71. package/package.json +2 -3
  72. package/src/Components.mdx +12 -0
  73. package/src/__tests__/utils.test.ts +2 -1
  74. package/src/alerts/AlertItem.stories.tsx +2 -2
  75. package/src/alerts/AlertItem.tsx +2 -1
  76. package/src/assets/localization/en/protocol_command_text.json +14 -0
  77. package/src/atoms/Checkbox/Checkbox.stories.tsx +1 -1
  78. package/src/atoms/Checkbox/__tests__/Checkbox.test.tsx +4 -2
  79. package/src/atoms/Checkbox/index.tsx +3 -2
  80. package/src/atoms/CheckboxField/CheckboxField.stories.tsx +3 -2
  81. package/src/atoms/CheckboxField/__tests__/CheckboxField.test.tsx +21 -35
  82. package/src/atoms/CheckboxField/index.tsx +81 -70
  83. package/src/atoms/Chip/Chip.stories.tsx +3 -2
  84. package/src/atoms/Chip/__tests__/Chip.test.tsx +41 -3
  85. package/src/atoms/Chip/index.tsx +76 -50
  86. package/src/atoms/InlineNotification/InlineNotification.stories.tsx +107 -0
  87. package/src/atoms/InlineNotification/__tests__/InlineNotification.test.tsx +66 -0
  88. package/src/atoms/InlineNotification/index.tsx +197 -0
  89. package/src/atoms/InputField/InputField.stories.tsx +3 -0
  90. package/src/atoms/InputField/__tests__/InputField.test.tsx +4 -3
  91. package/src/atoms/InputField/index.tsx +4 -4
  92. package/src/atoms/ListButton/ListButton.stories.tsx +4 -2
  93. package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +3 -2
  94. package/src/atoms/ListButton/__tests__/ListButton.test.tsx +5 -3
  95. package/src/atoms/ListButton/__tests__/ListButtonAccordion.test.tsx +2 -2
  96. package/src/atoms/ListButton/__tests__/ListButtonRadioButton.test.tsx +2 -2
  97. package/src/atoms/ListButton/index.tsx +57 -41
  98. package/src/atoms/ListItem/ListItem.stories.tsx +7 -5
  99. package/src/atoms/ListItem/ListItemChildren/ListItemCustomize.tsx +21 -15
  100. package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +4 -0
  101. package/src/atoms/ListItem/__tests__/ListItem.test.tsx +5 -3
  102. package/src/atoms/ListItem/index.tsx +3 -2
  103. package/src/atoms/ListTable/ListTable.stories.tsx +1 -1
  104. package/src/atoms/ListTable/__tests__/ListTable.test.tsx +2 -2
  105. package/src/atoms/ListTable/index.tsx +4 -4
  106. package/src/atoms/MenuList/MenuItem.stories.tsx +1 -1
  107. package/src/atoms/MenuList/MenuItem.tsx +4 -1
  108. package/src/atoms/MenuList/MenuList.stories.tsx +1 -0
  109. package/src/atoms/MenuList/OverflowBtn.tsx +1 -1
  110. package/src/atoms/MenuList/__tests__/MenuItem.test.tsx +2 -3
  111. package/src/atoms/MenuList/__tests__/MenuList.test.tsx +2 -2
  112. package/src/atoms/MenuList/__tests__/OverflowBtn.test.tsx +1 -1
  113. package/src/atoms/MenuList/index.tsx +2 -2
  114. package/src/atoms/Snackbar/Snackbar.stories.tsx +4 -2
  115. package/src/atoms/Snackbar/__tests__/Snackbar.test.tsx +6 -3
  116. package/src/atoms/Snackbar/index.tsx +3 -2
  117. package/src/atoms/StepMeter/__tests__/StepMeter.test.tsx +45 -0
  118. package/src/atoms/StepMeter/index.tsx +33 -24
  119. package/src/atoms/StyledText/LegacyStyledText.stories.tsx +2 -1
  120. package/src/atoms/StyledText/LegacyStyledText.tsx +3 -2
  121. package/src/atoms/StyledText/StyledText.stories.tsx +3 -2
  122. package/src/atoms/StyledText/StyledText.tsx +4 -3
  123. package/src/atoms/SubListTable/SubListTable.stories.tsx +1 -1
  124. package/src/atoms/SubListTable/__tests__/SubListTable.test.tsx +2 -2
  125. package/src/atoms/SubListTable/index.tsx +4 -4
  126. package/src/atoms/Tag/Tag.stories.tsx +2 -1
  127. package/src/atoms/Tag/__tests__/Tag.test.tsx +2 -1
  128. package/src/atoms/Tag/index.tsx +53 -35
  129. package/src/atoms/Toast/ODDToast.stories.tsx +18 -8
  130. package/src/atoms/Toast/Toast.stories.tsx +3 -2
  131. package/src/atoms/Toast/__tests__/ODDToast.test.tsx +5 -2
  132. package/src/atoms/Toast/__tests__/Toast.test.tsx +5 -2
  133. package/src/atoms/Toast/index.tsx +75 -80
  134. package/src/atoms/ToggleGroup/ToggleGroup.stories.tsx +2 -0
  135. package/src/atoms/ToggleGroup/__tests__/ToggleGroup.test.tsx +2 -1
  136. package/src/atoms/ToggleGroup/index.tsx +2 -1
  137. package/src/atoms/Tooltip/Tooltip.stories.tsx +6 -5
  138. package/src/atoms/Tooltip/__tests__/Tooltip.test.tsx +6 -5
  139. package/src/atoms/Tooltip/index.tsx +3 -3
  140. package/src/atoms/buttons/AlertPrimaryButton.tsx +2 -1
  141. package/src/atoms/buttons/AltPrimaryButton.tsx +1 -1
  142. package/src/atoms/buttons/EmptySelectorButton.stories.tsx +1 -0
  143. package/src/atoms/buttons/EmptySelectorButton.tsx +10 -3
  144. package/src/atoms/buttons/LargeButton.stories.tsx +2 -2
  145. package/src/atoms/buttons/LargeButton.tsx +5 -5
  146. package/src/atoms/buttons/PrimaryButton.tsx +7 -3
  147. package/src/atoms/buttons/RadioButton.stories.tsx +2 -1
  148. package/src/atoms/buttons/RadioButton.tsx +102 -43
  149. package/src/atoms/buttons/SecondaryButton.tsx +13 -7
  150. package/src/atoms/buttons/TertiaryButton.tsx +1 -0
  151. package/src/atoms/buttons/__tests__/AlertPrimaryButton.test.tsx +5 -4
  152. package/src/atoms/buttons/__tests__/AltPrimaryButton.test.tsx +6 -4
  153. package/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx +4 -2
  154. package/src/atoms/buttons/__tests__/LargeButton.test.tsx +4 -2
  155. package/src/atoms/buttons/__tests__/PrimaryButton.test.tsx +7 -5
  156. package/src/atoms/buttons/__tests__/RadioButton.test.tsx +17 -3
  157. package/src/atoms/buttons/__tests__/SecondaryButton.test.tsx +6 -5
  158. package/src/atoms/buttons/buttons.stories.tsx +6 -6
  159. package/src/atoms/index.ts +3 -2
  160. package/src/buttons/Button.tsx +2 -3
  161. package/src/buttons/IconButton.tsx +1 -2
  162. package/src/controls/LabeledRadioGroup.tsx +1 -1
  163. package/src/controls/ToggleButton.tsx +62 -18
  164. package/src/controls/index.ts +0 -1
  165. package/src/forms/DeprecatedCheckboxField.stories.tsx +1 -1
  166. package/src/forms/DeprecatedCheckboxField.tsx +3 -3
  167. package/src/forms/FormGroup.stories.tsx +3 -4
  168. package/src/forms/FormGroup.tsx +1 -0
  169. package/src/forms/InputField.stories.tsx +2 -1
  170. package/src/forms/LegacyInputField.tsx +1 -0
  171. package/src/forms/RadioGroup.stories.tsx +2 -1
  172. package/src/forms/RadioGroup.tsx +1 -0
  173. package/src/forms/Select.stories.tsx +2 -3
  174. package/src/forms/Select.tsx +3 -3
  175. package/src/forms/SelectField.tsx +1 -1
  176. package/src/forms/ToggleField.stories.tsx +1 -1
  177. package/src/forms/ToggleField.tsx +2 -2
  178. package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +1 -1
  179. package/src/hardware-sim/BaseDeck/BaseDeck.tsx +121 -21
  180. package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +5 -5
  181. package/src/hardware-sim/BaseDeck/__fixtures__/index.ts +2 -2
  182. package/src/hardware-sim/Deck/DeckFromLayers.tsx +6 -5
  183. package/src/hardware-sim/Deck/FlexTrash.tsx +2 -1
  184. package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +4 -3
  185. package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +12 -12
  186. package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +1 -0
  187. package/src/hardware-sim/Deck/RobotWorkSpace.tsx +3 -1
  188. package/src/hardware-sim/Deck/SlotLabels.tsx +2 -0
  189. package/src/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.tsx +2 -2
  190. package/src/hardware-sim/DeckConfigurator/DeckConfigurator.stories.tsx +2 -3
  191. package/src/hardware-sim/DeckConfigurator/EmptyConfigFixture.tsx +4 -3
  192. package/src/hardware-sim/DeckConfigurator/FlexStackerFixture.tsx +2 -2
  193. package/src/hardware-sim/DeckConfigurator/HeaterShakerFixture.tsx +3 -3
  194. package/src/hardware-sim/DeckConfigurator/MagneticBlockFixture.tsx +6 -6
  195. package/src/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.tsx +1 -1
  196. package/src/hardware-sim/DeckConfigurator/StaticFixture.tsx +2 -2
  197. package/src/hardware-sim/DeckConfigurator/TemperatureModuleFixture.tsx +3 -3
  198. package/src/hardware-sim/DeckConfigurator/ThermocyclerFixture.tsx +4 -4
  199. package/src/hardware-sim/DeckConfigurator/TrashBinConfigFixture.tsx +3 -3
  200. package/src/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.tsx +3 -3
  201. package/src/hardware-sim/DeckConfigurator/index.tsx +29 -16
  202. package/src/hardware-sim/Labware/Labware.tsx +5 -7
  203. package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +5 -4
  204. package/src/hardware-sim/Labware/LabwareRender.stories.tsx +4 -5
  205. package/src/hardware-sim/Labware/LabwareRender.tsx +8 -9
  206. package/src/hardware-sim/Labware/__tests__/Labware.test.tsx +6 -2
  207. package/src/hardware-sim/Labware/__tests__/LabwareRender.test.tsx +6 -2
  208. package/src/hardware-sim/Labware/index.ts +0 -1
  209. package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +2 -1
  210. package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +9 -4
  211. package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +2 -1
  212. package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +5 -5
  213. package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +3 -2
  214. package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +2 -1
  215. package/src/hardware-sim/Labware/labwareInternals/Well.tsx +5 -2
  216. package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +2 -1
  217. package/src/hardware-sim/Labware/labwareInternals/__tests__/LabwareWellLabels.test.tsx +4 -1
  218. package/src/hardware-sim/Labware/labwareInternals/__tests__/StrokedWells.test.tsx +5 -1
  219. package/src/hardware-sim/Labware/labwareInternals/__tests__/WellLabels.test.tsx +6 -2
  220. package/src/hardware-sim/Labware/labwareInternals/getTiprackBackgroundColor.ts +32 -0
  221. package/src/hardware-sim/Module/FlexStacker.tsx +54 -0
  222. package/src/hardware-sim/Module/Module.stories.tsx +4 -3
  223. package/src/hardware-sim/Module/ModuleTag.tsx +3 -3
  224. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN1.tsx +1 -0
  225. package/src/hardware-sim/Module/Thermocycler/index.tsx +3 -3
  226. package/src/hardware-sim/Module/index.tsx +14 -7
  227. package/src/hardware-sim/Pipette/EightEmanatingNozzles.tsx +1 -0
  228. package/src/hardware-sim/Pipette/EmanatingNozzle.tsx +2 -1
  229. package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +4 -2
  230. package/src/hardware-sim/Pipette/PipetteRender.tsx +7 -5
  231. package/src/hardware-sim/Pipette/__tests__/EightEmanatingNozzles.test.tsx +2 -1
  232. package/src/hardware-sim/Pipette/__tests__/EmanatingNozzle.test.tsx +4 -3
  233. package/src/hardware-sim/Pipette/__tests__/PipetteRender.test.tsx +9 -7
  234. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +2 -1
  235. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.tsx +1 -0
  236. package/src/hardware-sim/index.ts +0 -2
  237. package/src/helix-design-system/colors.ts +2 -1
  238. package/src/hooks/__tests__/useDrag.test.ts +3 -1
  239. package/src/hooks/__tests__/useLongPress.test.ts +2 -1
  240. package/src/hooks/__tests__/useScrolling.test.tsx +3 -2
  241. package/src/hooks/__tests__/useSwipe.test.tsx +2 -1
  242. package/src/hooks/useDrag.ts +2 -1
  243. package/src/hooks/useInterval.ts +1 -0
  244. package/src/hooks/useLongPress.ts +2 -1
  245. package/src/hooks/useMenuHandleClickOutside.tsx +1 -0
  246. package/src/hooks/useMountEffect.ts +2 -0
  247. package/src/hooks/useScrolling.ts +1 -1
  248. package/src/hooks/useSelectDeckLocation/SelectDeckLocation.stories.tsx +3 -1
  249. package/src/hooks/useSelectDeckLocation/index.tsx +8 -6
  250. package/src/hooks/useSwipe.ts +3 -2
  251. package/src/i18n.ts +4 -2
  252. package/src/icons/Icon.stories.tsx +2 -1
  253. package/src/icons/Icon.tsx +1 -1
  254. package/src/icons/IconList.stories.tsx +9 -8
  255. package/src/icons/ModuleIcon.tsx +8 -7
  256. package/src/icons/NotificationIcon.tsx +1 -1
  257. package/src/icons/icon-data.ts +5 -0
  258. package/src/instrument/InstrumentDiagram.stories.tsx +3 -2
  259. package/src/instrument/InstrumentDiagram.tsx +9 -8
  260. package/src/instrument/InstrumentGroup.stories.tsx +4 -3
  261. package/src/instrument/InstrumentGroup.tsx +1 -1
  262. package/src/instrument/InstrumentInfo.tsx +4 -4
  263. package/src/instrument/__tests__/InstrumentInfo.test.tsx +5 -3
  264. package/src/instrument/index.ts +0 -1
  265. package/src/interaction-enhancers/ClickOutside.ts +1 -0
  266. package/src/interaction-enhancers/HandleKeypress.tsx +1 -0
  267. package/src/interaction-enhancers/__tests__/useHover.test.tsx +1 -0
  268. package/src/interaction-enhancers/useHover.ts +1 -1
  269. package/src/legacy-hardware-sim/LabwareNameOverlay.tsx +1 -0
  270. package/src/legacy-hardware-sim/ModuleItem.tsx +2 -2
  271. package/src/lists/SidePanelGroup.tsx +1 -1
  272. package/src/lists/TitledList.tsx +2 -3
  273. package/src/modals/LegacyModal.tsx +2 -2
  274. package/src/modals/Modal.stories.tsx +1 -1
  275. package/src/modals/Modal.tsx +1 -1
  276. package/src/modals/ModalHeader.tsx +2 -2
  277. package/src/modals/ModalShell.tsx +3 -2
  278. package/src/modals/SpinnerModal.tsx +2 -2
  279. package/src/modals/SpinnerModalPage.tsx +1 -1
  280. package/src/modals/__tests__/Modal.test.tsx +4 -2
  281. package/src/modals/__tests__/ModalHeader.test.tsx +5 -3
  282. package/src/modals/__tests__/ModalShell.test.tsx +3 -1
  283. package/src/molecules/Banner/Banner.stories.tsx +1 -1
  284. package/src/molecules/Banner/__tests__/Banner.test.tsx +2 -2
  285. package/src/molecules/Banner/index.tsx +5 -4
  286. package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +1 -1
  287. package/src/molecules/DeckInfoLabel/__tests__/DeckInfoLabel.test.tsx +4 -4
  288. package/src/molecules/DeckLabel/__tests__/DeckLabel.test.tsx +3 -3
  289. package/src/molecules/DeckLabel/index.tsx +5 -3
  290. package/src/molecules/DropdownMenu/__tests__/DropdownMenu.test.tsx +3 -3
  291. package/src/molecules/DropdownMenu/index.tsx +5 -2
  292. package/src/molecules/InfoScreen/InfoScreen.stories.tsx +2 -1
  293. package/src/molecules/InfoScreen/__tests__/InfoScreen.test.tsx +3 -3
  294. package/src/molecules/InfoScreen/index.tsx +2 -2
  295. package/src/molecules/LiquidIcon/LiquidIcon.stories.tsx +3 -2
  296. package/src/molecules/LiquidIcon/__tests__/LiquidIcon.test.tsx +4 -4
  297. package/src/molecules/LiquidIcon/index.tsx +16 -10
  298. package/src/molecules/ListAccordion/ListAccordion.stories.tsx +3 -3
  299. package/src/molecules/ListAccordion/__tests__/ListAccordion.test.tsx +3 -3
  300. package/src/molecules/ListAccordion/index.tsx +6 -6
  301. package/src/molecules/ParametersTable/ParametersTable.stories.tsx +1 -0
  302. package/src/molecules/ParametersTable/__tests__/ParametersTable.test.tsx +3 -2
  303. package/src/molecules/ParametersTable/index.tsx +9 -7
  304. package/src/molecules/ReleaseNotes/index.tsx +1 -1
  305. package/src/molecules/Tabs/Tabs.stories.tsx +3 -1
  306. package/src/molecules/Tabs/__tests__/Tabs.test.tsx +3 -2
  307. package/src/molecules/Tabs/index.tsx +4 -3
  308. package/src/molecules/TextListTableContent/TextListTableContent.stories.tsx +1 -1
  309. package/src/molecules/TextListTableContent/__tests__/TextListTableContent.test.tsx +2 -2
  310. package/src/molecules/TextListTableContent/index.tsx +2 -2
  311. package/src/nav/SidePanel.stories.tsx +4 -3
  312. package/src/organisms/CommandText/CommandText.stories.tsx +3 -2
  313. package/src/organisms/CommandText/__tests__/CommandText.test.tsx +7 -6
  314. package/src/organisms/CommandText/fixtures/index.ts +1 -0
  315. package/src/organisms/CommandText/index.tsx +4 -2
  316. package/src/organisms/CommandText/useCommandTextString/index.ts +28 -5
  317. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/formatDuration.test.tsx +2 -1
  318. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getFinalLabwareLocation.test.ts +4 -1
  319. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getLabwareDisplayLocation.test.tsx +6 -5
  320. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getFlexStackerCommandText.test.tsx +179 -0
  321. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getPipettingCommandText.test.tsx +10 -9
  322. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getRobotCommandText.test.tsx +118 -0
  323. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getAbsorbanceReaderCommandText.ts +1 -1
  324. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.ts +142 -6
  325. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getLiquidProbeCommandText.ts +1 -0
  326. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts +4 -3
  327. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getPipettingCommandText.ts +5 -4
  328. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getRobotCommandText.ts +87 -0
  329. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunExtendedProfileCommandText.ts +3 -2
  330. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunProfileCommandText.ts +1 -0
  331. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTemperatureCommandText.ts +4 -4
  332. package/src/organisms/CommandText/useCommandTextString/utils/commandText/index.ts +2 -0
  333. package/src/organisms/CommandText/useCommandTextString/utils/formatDuration.ts +2 -0
  334. package/src/organisms/CommandText/useCommandTextString/utils/getAddressableAreaDisplayName.ts +1 -1
  335. package/src/organisms/CommandText/useCommandTextString/utils/getFinalAddressableAreaCmd.ts +2 -0
  336. package/src/organisms/CommandText/useCommandTextString/utils/getFinalLabwareLocation.ts +2 -2
  337. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.ts +1 -1
  338. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDisplayLocation.tsx +38 -15
  339. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.tsx +18 -9
  340. package/src/organisms/CommandText/useCommandTextString/utils/getModuleDisplayLocation.ts +1 -0
  341. package/src/organisms/CommandText/useCommandTextString/utils/getModuleModel.ts +1 -0
  342. package/src/organisms/CommandText/useCommandTextString/utils/getWellRange.ts +2 -1
  343. package/src/organisms/DeckLabelSet/DeckLabelSet.stories.tsx +1 -2
  344. package/src/organisms/DeckLabelSet/__tests__/DeckLabelSet.test.tsx +3 -3
  345. package/src/organisms/DeckLabelSet/index.tsx +55 -22
  346. package/src/organisms/FixtureOption/__tests__/FixtureOption.test.tsx +42 -0
  347. package/src/organisms/FixtureOption/index.tsx +92 -0
  348. package/src/organisms/ProtocolTimelineScrubber/CommandItem.tsx +6 -4
  349. package/src/organisms/ProtocolTimelineScrubber/PipetteVisuals.tsx +4 -2
  350. package/src/organisms/ProtocolTimelineScrubber/index.tsx +22 -45
  351. package/src/organisms/ProtocolTimelineScrubber/utils.ts +6 -3
  352. package/src/organisms/Toolbox/Toolbox.stories.tsx +1 -0
  353. package/src/organisms/Toolbox/__tests__/Toolbox.test.tsx +2 -1
  354. package/src/organisms/Toolbox/index.tsx +3 -2
  355. package/src/organisms/index.ts +1 -0
  356. package/src/primitives/Box.stories.tsx +1 -1
  357. package/src/primitives/Box.tsx +1 -1
  358. package/src/primitives/Btn.stories.tsx +8 -8
  359. package/src/primitives/Btn.tsx +2 -3
  360. package/src/primitives/Flex.stories.tsx +3 -3
  361. package/src/primitives/Flex.tsx +1 -1
  362. package/src/primitives/ForeignObject.tsx +2 -2
  363. package/src/primitives/Link.tsx +2 -2
  364. package/src/primitives/README.md +7 -16
  365. package/src/primitives/Svg.stories.tsx +2 -2
  366. package/src/primitives/Svg.tsx +2 -2
  367. package/src/primitives/Text.stories.tsx +2 -2
  368. package/src/primitives/Text.tsx +1 -1
  369. package/src/primitives/__tests__/Box.test.tsx +1 -0
  370. package/src/primitives/__tests__/Btn.test.tsx +1 -0
  371. package/src/primitives/__tests__/Flex.test.tsx +1 -0
  372. package/src/primitives/__tests__/Link.test.tsx +1 -0
  373. package/src/primitives/__tests__/Svg.test.tsx +1 -0
  374. package/src/primitives/__tests__/Text.test.tsx +1 -0
  375. package/src/primitives/__tests__/primitives.test.tsx +1 -0
  376. package/src/primitives/__tests__/style-props.test.tsx +1 -0
  377. package/src/primitives/style-props.ts +1 -2
  378. package/src/primitives/types.ts +1 -1
  379. package/src/slotmap/OT2SlotMap.tsx +1 -0
  380. package/src/slotmap/__tests__/OT2SlotMap.test.tsx +1 -0
  381. package/src/structure/Card.stories.tsx +4 -3
  382. package/src/structure/Card.tsx +3 -1
  383. package/src/structure/LabeledValue.stories.tsx +2 -2
  384. package/src/structure/Splash.stories.tsx +4 -3
  385. package/src/structure/TitleBar.stories.tsx +4 -3
  386. package/src/testing/utils/matchers.ts +1 -0
  387. package/src/testing/utils/renderWithProviders.tsx +4 -4
  388. package/src/tooltips/DeprecatedTooltip.tsx +2 -1
  389. package/src/tooltips/LegacyTooltip.stories.tsx +10 -9
  390. package/src/tooltips/LegacyTooltip.tsx +5 -5
  391. package/src/tooltips/__tests__/Tooltip.test.tsx +1 -0
  392. package/src/tooltips/__tests__/useHoverTooltip.test.tsx +1 -0
  393. package/src/tooltips/__tests__/usePopper.test.tsx +1 -0
  394. package/src/tooltips/__tests__/useTooltip.test.tsx +1 -0
  395. package/src/tooltips/types.ts +2 -4
  396. package/src/tooltips/usePopper.ts +4 -4
  397. package/src/tooltips/useTooltip.ts +4 -3
  398. package/src/ui-style-constants/typography.ts +1 -0
  399. package/vite.config.mts +5 -1
  400. package/lib/controls/LabeledToggle.d.ts +0 -11
  401. package/lib/hardware-sim/Labware/LabwareStackRender.d.ts +0 -20
  402. package/lib/hardware-sim/ProtocolDeck/LabwareInfo.d.ts +0 -6
  403. package/lib/hardware-sim/ProtocolDeck/index.d.ts +0 -11
  404. package/lib/hardware-sim/ProtocolDeck/types.d.ts +0 -8
  405. package/lib/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.d.ts +0 -5
  406. package/lib/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.d.ts +0 -12
  407. package/lib/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.d.ts +0 -3
  408. package/lib/hardware-sim/ProtocolDeck/utils/getModulesInSlots.d.ts +0 -10
  409. package/lib/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.d.ts +0 -2
  410. package/lib/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.d.ts +0 -4
  411. package/lib/hardware-sim/ProtocolDeck/utils/index.d.ts +0 -4
  412. package/lib/instrument/PipetteSelect.d.ts +0 -20
  413. package/src/controls/LabeledToggle.tsx +0 -35
  414. package/src/hardware-sim/Labware/LabwareStackRender.tsx +0 -273
  415. package/src/hardware-sim/ProtocolDeck/LabwareInfo.tsx +0 -69
  416. package/src/hardware-sim/ProtocolDeck/ProtocolDeck.stories.tsx +0 -25
  417. package/src/hardware-sim/ProtocolDeck/__fixtures__/analysis_QIAseqFX24xv4_8.json +0 -47145
  418. package/src/hardware-sim/ProtocolDeck/index.tsx +0 -85
  419. package/src/hardware-sim/ProtocolDeck/types.ts +0 -6
  420. package/src/hardware-sim/ProtocolDeck/utils/__tests__/getLabwareInforByLiquidId.test.ts +0 -158
  421. package/src/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.ts +0 -33
  422. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.ts +0 -321
  423. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.ts +0 -43
  424. package/src/hardware-sim/ProtocolDeck/utils/getModulesInSlots.ts +0 -129
  425. package/src/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.ts +0 -29
  426. package/src/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.ts +0 -30
  427. package/src/hardware-sim/ProtocolDeck/utils/index.ts +0 -4
  428. package/src/instrument/PipetteSelect.stories.tsx +0 -40
  429. package/src/instrument/PipetteSelect.tsx +0 -170
  430. package/src/instrument/__tests__/PipetteSelect.test.tsx +0 -4
  431. /package/lib/{hardware-sim/ProtocolDeck/utils/__tests__/getLabwareInforByLiquidId.test.d.ts → atoms/InlineNotification/__tests__/InlineNotification.test.d.ts} +0 -0
  432. /package/lib/{instrument/__tests__/PipetteSelect.test.d.ts → atoms/StepMeter/__tests__/StepMeter.test.d.ts} +0 -0
package/vite.config.mts CHANGED
@@ -12,12 +12,16 @@ export default defineConfig({
12
12
  // Relative to the root
13
13
  ssr: 'src/index.ts',
14
14
  outDir: 'lib',
15
- // do not delete the outdir, typescript types might live there and we dont want to delete them
15
+ // Do not delete the outdir, typescript types might live there and we don't want to delete them
16
16
  emptyOutDir: false,
17
17
  commonjsOptions: {
18
18
  transformMixedEsModules: true,
19
19
  esmExternals: true,
20
20
  },
21
+ rollupOptions: {
22
+ // Only @opentrons/shared-data is external; step-generation will be bundled!
23
+ external: ['@opentrons/shared-data'],
24
+ },
21
25
  },
22
26
  plugins: [
23
27
  react({
@@ -1,11 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- export interface LabeledToggleProps {
3
- label: string;
4
- toggledOn: boolean;
5
- disabled?: boolean;
6
- children?: ReactNode;
7
- onClick: () => unknown;
8
- /** optional data test id for the container */
9
- 'data-test'?: string;
10
- }
11
- export declare function LabeledToggle(props: LabeledToggleProps): JSX.Element;
@@ -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,11 +0,0 @@
1
- import { BaseDeck } from '../BaseDeck';
2
- import type { ComponentProps } from 'react';
3
- import type { CompletedProtocolAnalysis, ProtocolAnalysisOutput } from '@opentrons/shared-data';
4
- export * from './utils/getStandardDeckViewLayerBlockList';
5
- export * from './types';
6
- interface ProtocolDeckProps {
7
- protocolAnalysis: CompletedProtocolAnalysis | ProtocolAnalysisOutput | null;
8
- /** extra props to pass through to BaseDeck component */
9
- baseDeckProps?: Partial<ComponentProps<typeof BaseDeck>>;
10
- }
11
- export declare function ProtocolDeck(props: ProtocolDeckProps): JSX.Element | null;
@@ -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,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,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
- }
@@ -1,69 +0,0 @@
1
- import { css } from 'styled-components'
2
-
3
- import { RobotCoordsForeignDiv } from '../Deck'
4
- import {
5
- DISPLAY_FLEX,
6
- DIRECTION_COLUMN,
7
- DIRECTION_ROW,
8
- JUSTIFY_FLEX_END,
9
- JUSTIFY_SPACE_BETWEEN,
10
- ALIGN_FLEX_START,
11
- } from '../../styles'
12
- import { Box, Flex, Text } from '../../primitives'
13
- import { TYPOGRAPHY, SPACING } from '../../ui-style-constants'
14
- import { COLORS } from '../../helix-design-system'
15
-
16
- import type { ReactNode } from 'react'
17
- import type { LabwareDefinition2 } from '@opentrons/shared-data'
18
-
19
- const labwareDisplayNameStyle = css`
20
- ${TYPOGRAPHY.labelSemiBold}
21
- overflow: hidden;
22
- white-space: initial;
23
- text-overflow: ellipsis;
24
- display: -webkit-box;
25
- -webkit-line-clamp: 2;
26
- -webkit-box-orient: vertical;
27
- `
28
- export function LabwareInfo(props: {
29
- def: LabwareDefinition2
30
- children: ReactNode
31
- }): JSX.Element {
32
- const width = props.def.dimensions.xDimension
33
- const height = props.def.dimensions.yDimension
34
- return (
35
- <RobotCoordsForeignDiv
36
- x={0}
37
- y={0}
38
- {...{ width, height }}
39
- innerDivProps={{
40
- display: DISPLAY_FLEX,
41
- flexDirection: DIRECTION_COLUMN,
42
- justifyContent: JUSTIFY_FLEX_END,
43
- }}
44
- >
45
- <Box
46
- backgroundColor="#000000B3"
47
- borderRadius="0 0 0.4rem 0.4rem"
48
- fontSize={TYPOGRAPHY.fontSizeCaption}
49
- padding={SPACING.spacing4}
50
- color={COLORS.white}
51
- >
52
- <Flex
53
- flexDirection={DIRECTION_ROW}
54
- justifyContent={JUSTIFY_SPACE_BETWEEN}
55
- alignItems={ALIGN_FLEX_START}
56
- gridGap={SPACING.spacing4}
57
- >
58
- <Text
59
- as="h6"
60
- lineHeight={TYPOGRAPHY.fontSizeCaption}
61
- css={labwareDisplayNameStyle}
62
- >
63
- {props.children}
64
- </Text>
65
- </Flex>
66
- </Box>
67
- </RobotCoordsForeignDiv>
68
- )
69
- }
@@ -1,25 +0,0 @@
1
- import type * as React from 'react'
2
- import analysisFileFixture from './__fixtures__/analysis_QIAseqFX24xv4_8.json'
3
-
4
- import { ProtocolDeck as ProtocolDeckComponent } from './'
5
-
6
- import type { Meta, StoryObj } from '@storybook/react'
7
- import type { ProtocolAnalysisOutput } from '@opentrons/shared-data'
8
-
9
- const meta: Meta<React.ComponentProps<typeof ProtocolDeckComponent>> = {
10
- component: ProtocolDeckComponent,
11
- title: 'Library/Molecules/Simulation/ProtocolDeck',
12
- } as Meta
13
-
14
- export default meta
15
- type Story = StoryObj<React.ComponentProps<typeof ProtocolDeckComponent>>
16
-
17
- export const ProtocolDeck: Story = {
18
- args: {
19
- // @ts-expect-error typescript can't import JSON as const
20
- protocolAnalysis: analysisFileFixture as ProtocolAnalysisOutput,
21
- },
22
- render: args => {
23
- return <ProtocolDeckComponent {...args} />
24
- },
25
- }