@opentrons/components 0.1.6-alpha.8 → 0.1.7-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 (747) hide show
  1. package/README.md +1 -1
  2. package/lib/alerts/AlertItem.d.ts +3 -3
  3. package/lib/assets/localization/en/index.d.ts +104 -0
  4. package/lib/assets/localization/index.d.ts +188 -0
  5. package/lib/assets/localization/zh/index.d.ts +82 -0
  6. package/lib/atoms/Checkbox/index.d.ts +3 -2
  7. package/lib/atoms/CheckboxField/index.d.ts +4 -4
  8. package/lib/atoms/Divider/index.d.ts +2 -2
  9. package/lib/atoms/InputField/index.d.ts +10 -10
  10. package/lib/atoms/ListButton/ListButtonChildren/ListButtonAccordion.d.ts +2 -2
  11. package/lib/atoms/ListButton/ListButtonChildren/ListButtonAccordionContainer.d.ts +2 -2
  12. package/lib/atoms/ListButton/index.d.ts +4 -3
  13. package/lib/atoms/ListItem/ListItemChildren/ListItemCustomize.d.ts +2 -2
  14. package/lib/atoms/ListItem/ListItemChildren/ListItemDescriptor.d.ts +1 -0
  15. package/lib/atoms/ListItem/index.d.ts +3 -3
  16. package/lib/atoms/ListTable/index.d.ts +6 -0
  17. package/lib/atoms/MenuList/OverflowBtn.d.ts +3 -3
  18. package/lib/atoms/MenuList/index.d.ts +3 -3
  19. package/lib/atoms/StyledText/LegacyStyledText.d.ts +3 -3
  20. package/lib/atoms/StyledText/StyledText.d.ts +7 -3
  21. package/lib/atoms/SubListTable/index.d.ts +6 -0
  22. package/lib/atoms/Tag/index.d.ts +2 -1
  23. package/lib/atoms/Tooltip/index.d.ts +2 -2
  24. package/lib/atoms/buttons/LargeButton.d.ts +2 -2
  25. package/lib/atoms/buttons/RadioButton.d.ts +9 -4
  26. package/lib/atoms/buttons/SecondaryButton.d.ts +1 -0
  27. package/lib/atoms/buttons/TertiaryButton.d.ts +3 -0
  28. package/lib/atoms/buttons/index.d.ts +1 -0
  29. package/lib/atoms/index.d.ts +2 -0
  30. package/lib/buttons/Button.d.ts +4 -4
  31. package/lib/controls/ControlInfo.d.ts +2 -2
  32. package/lib/controls/LabeledButton.d.ts +2 -2
  33. package/lib/controls/LabeledCheckbox.d.ts +3 -3
  34. package/lib/controls/LabeledControl.d.ts +3 -3
  35. package/lib/controls/LabeledRadioGroup.d.ts +2 -2
  36. package/lib/controls/LabeledToggle.d.ts +2 -2
  37. package/lib/controls/StackedLabeledControl.d.ts +3 -3
  38. package/lib/controls/index.d.ts +0 -1
  39. package/lib/forms/DeprecatedCheckboxField.d.ts +3 -3
  40. package/lib/forms/FormGroup.d.ts +2 -2
  41. package/lib/forms/LegacyInputField.d.ts +6 -6
  42. package/lib/forms/RadioGroup.d.ts +4 -4
  43. package/lib/forms/SelectField.d.ts +3 -3
  44. package/lib/forms/ToggleField.d.ts +2 -2
  45. package/lib/forms/index.d.ts +0 -1
  46. package/lib/hardware-sim/BaseDeck/BaseDeck.d.ts +6 -6
  47. package/lib/hardware-sim/BaseDeck/SingleSlotFixture.d.ts +4 -4
  48. package/lib/hardware-sim/BaseDeck/SlotBase.d.ts +2 -2
  49. package/lib/hardware-sim/BaseDeck/SlotClip.d.ts +2 -2
  50. package/lib/hardware-sim/BaseDeck/StagingAreaFixture.d.ts +4 -4
  51. package/lib/hardware-sim/BaseDeck/WasteChuteFixture.d.ts +12 -3
  52. package/lib/hardware-sim/BaseDeck/WasteChuteStagingAreaFixture.d.ts +7 -4
  53. package/lib/hardware-sim/Deck/DeckFromLayers.d.ts +1 -0
  54. package/lib/hardware-sim/Deck/FlexTrash.d.ts +6 -1
  55. package/lib/hardware-sim/Deck/MoveLabwareOnDeck.d.ts +2 -2
  56. package/lib/hardware-sim/Deck/OT2Layers.d.ts +5 -1
  57. package/lib/hardware-sim/Deck/RobotCoordsForeignDiv.d.ts +5 -3
  58. package/lib/hardware-sim/Deck/RobotCoordsForeignObject.d.ts +4 -4
  59. package/lib/hardware-sim/Deck/RobotCoordsText.d.ts +4 -3
  60. package/lib/hardware-sim/Deck/RobotWorkSpace.d.ts +2 -2
  61. package/lib/hardware-sim/Deck/__mocks__/getDeckDefinitions.d.ts +1 -1
  62. package/lib/hardware-sim/DeckConfigurator/FlexStackerFixture.d.ts +11 -0
  63. package/lib/hardware-sim/DeckConfigurator/index.d.ts +3 -3
  64. package/lib/hardware-sim/DeckSlotLocation/index.d.ts +4 -4
  65. package/lib/hardware-sim/Labware/Labware.d.ts +2 -2
  66. package/lib/hardware-sim/Labware/LabwareRender.d.ts +2 -2
  67. package/lib/hardware-sim/Labware/LabwareStackRender.d.ts +2 -2
  68. package/lib/hardware-sim/Labware/labwareInternals/FilledWells.d.ts +3 -3
  69. package/lib/hardware-sim/Labware/labwareInternals/LabwareWellLabels.d.ts +2 -2
  70. package/lib/hardware-sim/Labware/labwareInternals/StaticLabware.d.ts +2 -2
  71. package/lib/hardware-sim/Labware/labwareInternals/StrokedWells.d.ts +3 -3
  72. package/lib/hardware-sim/Labware/labwareInternals/StyledWells.d.ts +5 -5
  73. package/lib/hardware-sim/Labware/labwareInternals/Well.d.ts +5 -5
  74. package/lib/hardware-sim/Labware/labwareInternals/WellLabels.d.ts +2 -2
  75. package/lib/hardware-sim/Labware/labwareInternals/types.d.ts +2 -2
  76. package/lib/hardware-sim/Module/ModuleTag.d.ts +2 -2
  77. package/lib/hardware-sim/Module/index.d.ts +4 -4
  78. package/lib/hardware-sim/ProtocolDeck/LabwareInfo.d.ts +2 -2
  79. package/lib/hardware-sim/ProtocolDeck/index.d.ts +4 -7
  80. package/lib/hardware-sim/ProtocolDeck/utils/index.d.ts +1 -0
  81. package/lib/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.d.ts +2 -2
  82. package/lib/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.d.ts +2 -2
  83. package/lib/hooks/index.d.ts +0 -1
  84. package/lib/hooks/useMenuHandleClickOutside.d.ts +3 -3
  85. package/lib/i18n.d.ts +14 -0
  86. package/lib/icons/Icon.d.ts +2 -2
  87. package/lib/icons/ModuleIcon.d.ts +1 -1
  88. package/lib/instrument/InstrumentInfo.d.ts +2 -2
  89. package/lib/interaction-enhancers/ClickOutside.d.ts +4 -3
  90. package/lib/interaction-enhancers/HandleKeypress.d.ts +4 -3
  91. package/lib/lists/SidePanelGroup.d.ts +2 -2
  92. package/lib/lists/TitledList.d.ts +8 -8
  93. package/lib/modals/AlertModal.d.ts +3 -3
  94. package/lib/modals/LegacyModal.d.ts +4 -4
  95. package/lib/modals/Modal.d.ts +7 -5
  96. package/lib/modals/ModalHeader.d.ts +5 -4
  97. package/lib/modals/ModalShell.d.ts +5 -5
  98. package/lib/modals/Overlay.d.ts +3 -3
  99. package/lib/modals/SpinnerModalPage.d.ts +2 -2
  100. package/lib/molecules/Banner/index.d.ts +4 -4
  101. package/lib/molecules/DeckInfoLabel/index.d.ts +3 -3
  102. package/lib/molecules/DeckLabel/index.d.ts +2 -1
  103. package/lib/molecules/DropdownMenu/index.d.ts +22 -6
  104. package/lib/molecules/InfoScreen/index.d.ts +3 -1
  105. package/lib/molecules/ListAccordion/index.d.ts +11 -0
  106. package/lib/molecules/ReleaseNotes/index.d.ts +5 -0
  107. package/lib/molecules/Tabs/index.d.ts +1 -0
  108. package/lib/molecules/TextListTableContent/__tests__/TextListTableContent.test.d.ts +1 -0
  109. package/lib/molecules/TextListTableContent/index.d.ts +8 -0
  110. package/lib/molecules/index.d.ts +3 -0
  111. package/lib/nav/SidePanel.d.ts +2 -2
  112. package/lib/organisms/CommandText/__tests__/CommandText.test.d.ts +1 -0
  113. package/lib/organisms/CommandText/fixtures/index.d.ts +2 -0
  114. package/lib/organisms/CommandText/index.d.ts +26 -0
  115. package/lib/organisms/CommandText/useCommandTextString/index.d.ts +30 -0
  116. package/lib/organisms/CommandText/useCommandTextString/utils/__tests__/formatDuration.test.d.ts +1 -0
  117. package/lib/organisms/CommandText/useCommandTextString/utils/__tests__/getFinalLabwareLocation.test.d.ts +1 -0
  118. package/lib/organisms/CommandText/useCommandTextString/utils/__tests__/getLabwareDisplayLocation.test.d.ts +1 -0
  119. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getPipettingCommandText.test.d.ts +1 -0
  120. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getAbsorbanceReaderCommandText.d.ts +12 -0
  121. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getCommentCommandText.d.ts +3 -0
  122. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getConfigureForVolumeCommandText.d.ts +3 -0
  123. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getConfigureNozzleLayoutCommandText.d.ts +3 -0
  124. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getCustomCommandText.d.ts +3 -0
  125. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getDelayCommandText.d.ts +3 -0
  126. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getDirectTranslationCommandText.d.ts +11 -0
  127. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.d.ts +9 -0
  128. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getHSShakeSpeedCommandText.d.ts +3 -0
  129. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getLiquidProbeCommandText.d.ts +5 -0
  130. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.d.ts +2 -0
  131. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveLabwareCommandText.d.ts +3 -0
  132. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveRelativeCommandText.d.ts +3 -0
  133. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToAddressableAreaCommandText.d.ts +3 -0
  134. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToAddressableAreaForDropTipCommandText.d.ts +3 -0
  135. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToCoordinatesCommandText.d.ts +3 -0
  136. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToSlotCommandText.d.ts +3 -0
  137. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToWellCommandText.d.ts +3 -0
  138. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getPipettingCommandText.d.ts +2 -0
  139. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getPrepareToAspirateCommandText.d.ts +3 -0
  140. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getRailLightsCommandText.d.ts +8 -0
  141. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunExtendedProfileCommandText.d.ts +13 -0
  142. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunProfileCommandText.d.ts +4 -0
  143. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getTemperatureCommandText.d.ts +12 -0
  144. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getUnknownCommandText.d.ts +2 -0
  145. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getWaitForDurationCommandText.d.ts +3 -0
  146. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/getWaitForResumeCommandText.d.ts +3 -0
  147. package/lib/organisms/CommandText/useCommandTextString/utils/commandText/index.d.ts +26 -0
  148. package/lib/organisms/CommandText/useCommandTextString/utils/formatDuration.d.ts +8 -0
  149. package/lib/organisms/CommandText/useCommandTextString/utils/getAddressableAreaDisplayName.d.ts +3 -0
  150. package/lib/organisms/CommandText/useCommandTextString/utils/getFinalAddressableAreaCmd.d.ts +8 -0
  151. package/lib/organisms/CommandText/useCommandTextString/utils/getFinalLabwareLocation.d.ts +12 -0
  152. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.d.ts +2 -0
  153. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareDisplayLocation.d.ts +15 -0
  154. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.d.ts +37 -0
  155. package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareName.d.ts +8 -0
  156. package/lib/organisms/CommandText/useCommandTextString/utils/getLiquidDisplayName.d.ts +2 -0
  157. package/lib/organisms/CommandText/useCommandTextString/utils/getLoadedLabware.d.ts +3 -0
  158. package/lib/organisms/CommandText/useCommandTextString/utils/getLoadedModule.d.ts +3 -0
  159. package/lib/organisms/CommandText/useCommandTextString/utils/getModuleDisplayLocation.d.ts +2 -0
  160. package/lib/organisms/CommandText/useCommandTextString/utils/getModuleModel.d.ts +3 -0
  161. package/lib/organisms/CommandText/useCommandTextString/utils/getPipetteNameOnMount.d.ts +4 -0
  162. package/lib/organisms/CommandText/useCommandTextString/utils/getWellRange.d.ts +8 -0
  163. package/lib/organisms/CommandText/useCommandTextString/utils/helpers.d.ts +1 -0
  164. package/lib/organisms/CommandText/useCommandTextString/utils/index.d.ts +10 -0
  165. package/lib/organisms/CommandText/useCommandTextString/utils/types.d.ts +8 -0
  166. package/lib/organisms/DeckLabelSet/index.d.ts +3 -2
  167. package/lib/organisms/ProtocolTimelineScrubber/CommandItem.d.ts +12 -0
  168. package/lib/organisms/ProtocolTimelineScrubber/PipetteVisuals.d.ts +25 -0
  169. package/lib/organisms/ProtocolTimelineScrubber/index.d.ts +10 -0
  170. package/lib/organisms/ProtocolTimelineScrubber/types.d.ts +2 -0
  171. package/lib/organisms/ProtocolTimelineScrubber/utils.d.ts +23 -0
  172. package/lib/organisms/Toolbox/index.d.ts +5 -8
  173. package/lib/organisms/index.d.ts +2 -1
  174. package/lib/primitives/style-props.d.ts +4 -1
  175. package/lib/primitives/types.d.ts +2 -1
  176. package/lib/structure/Card.d.ts +3 -3
  177. package/lib/structure/LabeledValue.d.ts +3 -3
  178. package/lib/structure/Pill.d.ts +2 -2
  179. package/lib/structure/TitleBar.d.ts +4 -4
  180. package/lib/testing/utils/renderWithProviders.d.ts +3 -3
  181. package/lib/tooltips/DeprecatedTooltip.d.ts +6 -6
  182. package/lib/tooltips/HoverTooltip.d.ts +4 -3
  183. package/lib/tooltips/LegacyTooltip.d.ts +5 -6
  184. package/lib/tooltips/types.d.ts +4 -4
  185. package/lib/ui-style-constants/animation.d.ts +1 -0
  186. package/lib/ui-style-constants/index.d.ts +1 -0
  187. package/package.json +8 -5
  188. package/src/__mocks__/file.js +10 -0
  189. package/src/__tests__/utils.test.ts +27 -0
  190. package/src/alerts/AlertItem.stories.tsx +49 -0
  191. package/src/alerts/AlertItem.tsx +85 -0
  192. package/src/alerts/alerts.module.css +103 -0
  193. package/src/alerts/index.ts +3 -0
  194. package/src/assets/localization/en/index.ts +8 -0
  195. package/src/assets/localization/en/protocol_command_text.json +102 -0
  196. package/src/assets/localization/index.ts +7 -0
  197. package/src/assets/localization/zh/index.ts +8 -0
  198. package/src/assets/localization/zh/protocol_command_text.json +80 -0
  199. package/src/atoms/Checkbox/Checkbox.stories.tsx +24 -0
  200. package/src/atoms/Checkbox/__tests__/Checkbox.test.tsx +56 -0
  201. package/src/atoms/Checkbox/index.tsx +133 -0
  202. package/src/atoms/CheckboxField/CheckboxField.stories.tsx +30 -0
  203. package/src/atoms/CheckboxField/__tests__/CheckboxField.test.tsx +142 -0
  204. package/src/atoms/CheckboxField/index.tsx +172 -0
  205. package/src/atoms/Chip/Chip.stories.tsx +66 -0
  206. package/src/atoms/Chip/__tests__/Chip.test.tsx +430 -0
  207. package/src/atoms/Chip/index.tsx +172 -0
  208. package/src/atoms/Divider/index.tsx +16 -0
  209. package/src/atoms/InputField/InputField.stories.tsx +77 -0
  210. package/src/atoms/InputField/__tests__/InputField.test.tsx +64 -0
  211. package/src/atoms/InputField/index.tsx +384 -0
  212. package/src/atoms/ListButton/ListButton.stories.tsx +140 -0
  213. package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordion.tsx +66 -0
  214. package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordionContainer.tsx +24 -0
  215. package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +108 -0
  216. package/src/atoms/ListButton/ListButtonChildren/index.ts +3 -0
  217. package/src/atoms/ListButton/__tests__/ListButton.test.tsx +53 -0
  218. package/src/atoms/ListButton/__tests__/ListButtonAccordion.test.tsx +36 -0
  219. package/src/atoms/ListButton/__tests__/ListButtonRadioButton.test.tsx +28 -0
  220. package/src/atoms/ListButton/index.tsx +131 -0
  221. package/src/atoms/ListItem/ListItem.stories.tsx +126 -0
  222. package/src/atoms/ListItem/ListItemChildren/ListItemCustomize.tsx +78 -0
  223. package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +42 -0
  224. package/src/atoms/ListItem/ListItemChildren/index.ts +2 -0
  225. package/src/atoms/ListItem/__tests__/ListItem.test.tsx +102 -0
  226. package/src/atoms/ListItem/index.tsx +106 -0
  227. package/src/atoms/ListTable/ListTable.stories.tsx +70 -0
  228. package/src/atoms/ListTable/__tests__/ListTable.test.tsx +81 -0
  229. package/src/atoms/ListTable/index.tsx +92 -0
  230. package/src/atoms/MenuList/MenuItem.stories.tsx +30 -0
  231. package/src/atoms/MenuList/MenuItem.tsx +55 -0
  232. package/src/atoms/MenuList/MenuList.stories.tsx +31 -0
  233. package/src/atoms/MenuList/OverflowBtn.stories.tsx +17 -0
  234. package/src/atoms/MenuList/OverflowBtn.tsx +78 -0
  235. package/src/atoms/MenuList/__tests__/MenuItem.test.tsx +51 -0
  236. package/src/atoms/MenuList/__tests__/MenuList.test.tsx +37 -0
  237. package/src/atoms/MenuList/__tests__/OverflowBtn.test.tsx +34 -0
  238. package/src/atoms/MenuList/index.tsx +50 -0
  239. package/src/atoms/Snackbar/Snackbar.stories.tsx +67 -0
  240. package/src/atoms/Snackbar/__tests__/Snackbar.test.tsx +74 -0
  241. package/src/atoms/Snackbar/index.tsx +91 -0
  242. package/src/atoms/StepMeter/index.tsx +53 -0
  243. package/src/atoms/StyledText/LegacyStyledText.stories.tsx +106 -0
  244. package/src/atoms/StyledText/LegacyStyledText.tsx +95 -0
  245. package/src/atoms/StyledText/StyledText.stories.tsx +46 -0
  246. package/src/atoms/StyledText/StyledText.tsx +332 -0
  247. package/src/atoms/StyledText/index.ts +2 -0
  248. package/src/atoms/SubListTable/SubListTable.stories.tsx +72 -0
  249. package/src/atoms/SubListTable/__tests__/SubListTable.test.tsx +81 -0
  250. package/src/atoms/SubListTable/index.tsx +71 -0
  251. package/src/atoms/Tag/Tag.stories.tsx +49 -0
  252. package/src/atoms/Tag/__tests__/Tag.test.tsx +56 -0
  253. package/src/atoms/Tag/index.tsx +115 -0
  254. package/src/atoms/Toast/ODDToast.stories.tsx +68 -0
  255. package/src/atoms/Toast/Toast.stories.tsx +64 -0
  256. package/src/atoms/Toast/__tests__/ODDToast.test.tsx +179 -0
  257. package/src/atoms/Toast/__tests__/Toast.test.tsx +175 -0
  258. package/src/atoms/Toast/index.tsx +439 -0
  259. package/src/atoms/ToggleGroup/ToggleGroup.stories.tsx +39 -0
  260. package/src/atoms/ToggleGroup/__tests__/ToggleGroup.test.tsx +29 -0
  261. package/src/atoms/ToggleGroup/index.tsx +90 -0
  262. package/src/atoms/Tooltip/Tooltip.stories.tsx +99 -0
  263. package/src/atoms/Tooltip/__tests__/Tooltip.test.tsx +79 -0
  264. package/src/atoms/Tooltip/index.tsx +37 -0
  265. package/src/atoms/buttons/AlertPrimaryButton.tsx +26 -0
  266. package/src/atoms/buttons/AltPrimaryButton.tsx +31 -0
  267. package/src/atoms/buttons/EmptySelectorButton.stories.tsx +36 -0
  268. package/src/atoms/buttons/EmptySelectorButton.tsx +82 -0
  269. package/src/atoms/buttons/LargeButton.stories.tsx +106 -0
  270. package/src/atoms/buttons/LargeButton.tsx +322 -0
  271. package/src/atoms/buttons/PrimaryButton.tsx +36 -0
  272. package/src/atoms/buttons/RadioButton.stories.tsx +108 -0
  273. package/src/atoms/buttons/RadioButton.tsx +268 -0
  274. package/src/atoms/buttons/SecondaryButton.tsx +88 -0
  275. package/src/atoms/buttons/TertiaryButton.tsx +88 -0
  276. package/src/atoms/buttons/__tests__/AlertPrimaryButton.test.tsx +48 -0
  277. package/src/atoms/buttons/__tests__/AltPrimaryButton.test.tsx +58 -0
  278. package/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx +43 -0
  279. package/src/atoms/buttons/__tests__/LargeButton.test.tsx +92 -0
  280. package/src/atoms/buttons/__tests__/PrimaryButton.test.tsx +65 -0
  281. package/src/atoms/buttons/__tests__/RadioButton.test.tsx +105 -0
  282. package/src/atoms/buttons/__tests__/SecondaryButton.test.tsx +55 -0
  283. package/src/atoms/buttons/buttons.stories.tsx +78 -0
  284. package/src/atoms/buttons/index.ts +7 -0
  285. package/src/atoms/index.ts +22 -0
  286. package/src/barrel.ts +10 -0
  287. package/src/buttons/Button.tsx +96 -0
  288. package/src/buttons/DeprecatedPrimaryButton.tsx +24 -0
  289. package/src/buttons/FlatButton.tsx +21 -0
  290. package/src/buttons/IconButton.tsx +37 -0
  291. package/src/buttons/OutlineButton.tsx +24 -0
  292. package/src/buttons/buttons.module.css +428 -0
  293. package/src/buttons/index.ts +7 -0
  294. package/src/controls/ControlInfo.tsx +13 -0
  295. package/src/controls/LabeledButton.tsx +28 -0
  296. package/src/controls/LabeledCheckbox.tsx +36 -0
  297. package/src/controls/LabeledControl.tsx +24 -0
  298. package/src/controls/LabeledRadioGroup.tsx +26 -0
  299. package/src/controls/LabeledToggle.tsx +35 -0
  300. package/src/controls/StackedLabeledControl.tsx +28 -0
  301. package/src/controls/ToggleButton.tsx +25 -0
  302. package/src/controls/index.ts +9 -0
  303. package/src/controls/styles.module.css +103 -0
  304. package/src/forms/DeprecatedCheckboxField.stories.tsx +31 -0
  305. package/src/forms/DeprecatedCheckboxField.tsx +95 -0
  306. package/src/forms/FormGroup.stories.tsx +31 -0
  307. package/src/forms/FormGroup.tsx +54 -0
  308. package/src/forms/InputField.stories.tsx +41 -0
  309. package/src/forms/LegacyInputField.tsx +129 -0
  310. package/src/forms/RadioGroup.stories.tsx +44 -0
  311. package/src/forms/RadioGroup.tsx +88 -0
  312. package/src/forms/Select.module.css +118 -0
  313. package/src/forms/Select.stories.tsx +117 -0
  314. package/src/forms/Select.tsx +132 -0
  315. package/src/forms/SelectField.module.css +16 -0
  316. package/src/forms/SelectField.tsx +94 -0
  317. package/src/forms/ToggleField.stories.tsx +31 -0
  318. package/src/forms/ToggleField.tsx +60 -0
  319. package/src/forms/__tests__/DeprecatedCheckboxField.test.tsx +5 -0
  320. package/src/forms/__tests__/InputField.test.tsx +5 -0
  321. package/src/forms/__tests__/Select.test.tsx +5 -0
  322. package/src/forms/__tests__/SelectField.test.tsx +5 -0
  323. package/src/forms/__tests__/ToggleField.test.tsx +5 -0
  324. package/src/forms/forms.module.css +239 -0
  325. package/src/forms/index.ts +7 -0
  326. package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +94 -0
  327. package/src/hardware-sim/BaseDeck/BaseDeck.tsx +428 -0
  328. package/src/hardware-sim/BaseDeck/SingleSlotFixture.tsx +198 -0
  329. package/src/hardware-sim/BaseDeck/SlotBase.tsx +5 -0
  330. package/src/hardware-sim/BaseDeck/SlotClip.tsx +15 -0
  331. package/src/hardware-sim/BaseDeck/StagingAreaFixture.tsx +113 -0
  332. package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +158 -0
  333. package/src/hardware-sim/BaseDeck/WasteChuteStagingAreaFixture.tsx +73 -0
  334. package/src/hardware-sim/BaseDeck/__fixtures__/index.ts +165 -0
  335. package/src/hardware-sim/BaseDeck/index.ts +5 -0
  336. package/src/hardware-sim/Deck/DeckFromLayers.tsx +60 -0
  337. package/src/hardware-sim/Deck/FlexTrash.tsx +147 -0
  338. package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +97 -0
  339. package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +287 -0
  340. package/src/hardware-sim/Deck/OT2Layers.tsx +160 -0
  341. package/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx +51 -0
  342. package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +43 -0
  343. package/src/hardware-sim/Deck/RobotCoordsText.tsx +33 -0
  344. package/src/hardware-sim/Deck/RobotWorkSpace.tsx +98 -0
  345. package/src/hardware-sim/Deck/SlotLabels.tsx +111 -0
  346. package/src/hardware-sim/Deck/__mocks__/getDeckDefinitions.ts +29 -0
  347. package/src/hardware-sim/Deck/constants.ts +12 -0
  348. package/src/hardware-sim/Deck/index.tsx +8 -0
  349. package/src/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.tsx +91 -0
  350. package/src/hardware-sim/DeckConfigurator/DeckConfigurator.stories.tsx +110 -0
  351. package/src/hardware-sim/DeckConfigurator/EmptyConfigFixture.tsx +131 -0
  352. package/src/hardware-sim/DeckConfigurator/FlexStackerFixture.tsx +99 -0
  353. package/src/hardware-sim/DeckConfigurator/HeaterShakerFixture.tsx +102 -0
  354. package/src/hardware-sim/DeckConfigurator/MagneticBlockFixture.tsx +130 -0
  355. package/src/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.tsx +89 -0
  356. package/src/hardware-sim/DeckConfigurator/StaticFixture.tsx +54 -0
  357. package/src/hardware-sim/DeckConfigurator/TemperatureModuleFixture.tsx +103 -0
  358. package/src/hardware-sim/DeckConfigurator/ThermocyclerFixture.tsx +89 -0
  359. package/src/hardware-sim/DeckConfigurator/TrashBinConfigFixture.tsx +99 -0
  360. package/src/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.tsx +96 -0
  361. package/src/hardware-sim/DeckConfigurator/constants.ts +81 -0
  362. package/src/hardware-sim/DeckConfigurator/index.tsx +305 -0
  363. package/src/hardware-sim/DeckSlotLocation/index.tsx +88 -0
  364. package/src/hardware-sim/Labware/Labware.tsx +175 -0
  365. package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96DeepWellAdapter.tsx +23 -0
  366. package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96FlatBottomAdapter.tsx +7 -0
  367. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAluminumFlatBottomPlate.tsx +13 -0
  368. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx +100 -0
  369. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsFlex96TiprackAdapter.tsx +13 -0
  370. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx +83 -0
  371. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsUniversalFlatAdapter.tsx +13 -0
  372. package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +73 -0
  373. package/src/hardware-sim/Labware/LabwareRender.stories.tsx +96 -0
  374. package/src/hardware-sim/Labware/LabwareRender.tsx +174 -0
  375. package/src/hardware-sim/Labware/LabwareStackRender.tsx +273 -0
  376. package/src/hardware-sim/Labware/__tests__/Labware.test.tsx +43 -0
  377. package/src/hardware-sim/Labware/__tests__/LabwareRender.test.tsx +54 -0
  378. package/src/hardware-sim/Labware/index.ts +6 -0
  379. package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +41 -0
  380. package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +133 -0
  381. package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +119 -0
  382. package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +122 -0
  383. package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +40 -0
  384. package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +79 -0
  385. package/src/hardware-sim/Labware/labwareInternals/Well.tsx +75 -0
  386. package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +123 -0
  387. package/src/hardware-sim/Labware/labwareInternals/__tests__/LabwareWellLabels.test.tsx +66 -0
  388. package/src/hardware-sim/Labware/labwareInternals/__tests__/StrokedWells.test.tsx +31 -0
  389. package/src/hardware-sim/Labware/labwareInternals/__tests__/WellLabels.test.tsx +91 -0
  390. package/src/hardware-sim/Labware/labwareInternals/index.ts +8 -0
  391. package/src/hardware-sim/Labware/labwareInternals/types.ts +18 -0
  392. package/src/hardware-sim/Module/HeaterShaker.tsx +83 -0
  393. package/src/hardware-sim/Module/MagneticBlock.tsx +49 -0
  394. package/src/hardware-sim/Module/MagneticModule.tsx +51 -0
  395. package/src/hardware-sim/Module/Module.stories.tsx +90 -0
  396. package/src/hardware-sim/Module/ModuleTag.tsx +39 -0
  397. package/src/hardware-sim/Module/PlateReader.tsx +208 -0
  398. package/src/hardware-sim/Module/Temperature.tsx +54 -0
  399. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN1.tsx +248 -0
  400. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN2.tsx +286 -0
  401. package/src/hardware-sim/Module/Thermocycler/index.tsx +49 -0
  402. package/src/hardware-sim/Module/index.tsx +223 -0
  403. package/src/hardware-sim/Pipette/EightEmanatingNozzles.tsx +23 -0
  404. package/src/hardware-sim/Pipette/EmanatingNozzle.tsx +53 -0
  405. package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +71 -0
  406. package/src/hardware-sim/Pipette/PipetteRender.tsx +86 -0
  407. package/src/hardware-sim/Pipette/__tests__/EightEmanatingNozzles.test.tsx +16 -0
  408. package/src/hardware-sim/Pipette/__tests__/EmanatingNozzle.test.tsx +68 -0
  409. package/src/hardware-sim/Pipette/__tests__/PipetteRender.test.tsx +99 -0
  410. package/src/hardware-sim/Pipette/constants.ts +10 -0
  411. package/src/hardware-sim/Pipette/index.ts +1 -0
  412. package/src/hardware-sim/ProtocolDeck/LabwareInfo.tsx +69 -0
  413. package/src/hardware-sim/ProtocolDeck/ProtocolDeck.stories.tsx +25 -0
  414. package/src/hardware-sim/ProtocolDeck/__fixtures__/analysis_QIAseqFX24xv4_8.json +47145 -0
  415. package/src/hardware-sim/ProtocolDeck/index.tsx +85 -0
  416. package/src/hardware-sim/ProtocolDeck/types.ts +6 -0
  417. package/src/hardware-sim/ProtocolDeck/utils/__tests__/getLabwareInforByLiquidId.test.ts +158 -0
  418. package/src/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.ts +33 -0
  419. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.ts +321 -0
  420. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.ts +43 -0
  421. package/src/hardware-sim/ProtocolDeck/utils/getModulesInSlots.ts +129 -0
  422. package/src/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.ts +29 -0
  423. package/src/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.ts +30 -0
  424. package/src/hardware-sim/ProtocolDeck/utils/index.ts +4 -0
  425. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +29 -0
  426. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.tsx +51 -0
  427. package/src/hardware-sim/RobotCoordinateSpace/index.ts +2 -0
  428. package/src/hardware-sim/index.ts +11 -0
  429. package/src/hardware-sim/utils.ts +18 -0
  430. package/src/helix-design-system/borders.ts +32 -0
  431. package/src/helix-design-system/colors.ts +100 -0
  432. package/src/helix-design-system/index.ts +4 -0
  433. package/src/helix-design-system/product/index.ts +1 -0
  434. package/src/helix-design-system/product/typography.ts +151 -0
  435. package/src/helix-design-system/style.ts +2 -0
  436. package/src/hooks/__tests__/useConditionalConfirm.test.tsx +5 -0
  437. package/src/hooks/__tests__/useDrag.test.ts +46 -0
  438. package/src/hooks/__tests__/useInterval.test.tsx +5 -0
  439. package/src/hooks/__tests__/useLongPress.test.ts +25 -0
  440. package/src/hooks/__tests__/useMountEffect.test.tsx +5 -0
  441. package/src/hooks/__tests__/usePrevious.test.tsx +5 -0
  442. package/src/hooks/__tests__/useScrolling.test.tsx +46 -0
  443. package/src/hooks/__tests__/useSwipe.test.tsx +26 -0
  444. package/src/hooks/__tests__/useTimeout.test.tsx +5 -0
  445. package/src/hooks/__tests__/useToggle.test.tsx +5 -0
  446. package/src/hooks/index.ts +14 -0
  447. package/src/hooks/useConditionalConfirm.ts +70 -0
  448. package/src/hooks/useDrag.ts +90 -0
  449. package/src/hooks/useInterval.ts +37 -0
  450. package/src/hooks/useLongPress.ts +83 -0
  451. package/src/hooks/useMenuHandleClickOutside.tsx +46 -0
  452. package/src/hooks/useMountEffect.ts +12 -0
  453. package/src/hooks/usePrevious.ts +19 -0
  454. package/src/hooks/useScrolling.ts +33 -0
  455. package/src/hooks/useSelectDeckLocation/SelectDeckLocation.stories.tsx +55 -0
  456. package/src/hooks/useSelectDeckLocation/index.tsx +331 -0
  457. package/src/hooks/useSwipe.ts +86 -0
  458. package/src/hooks/useTimeout.ts +33 -0
  459. package/src/hooks/useToggle.ts +27 -0
  460. package/src/i18n.ts +61 -0
  461. package/src/icons/Icon.stories.tsx +44 -0
  462. package/src/icons/Icon.tsx +79 -0
  463. package/src/icons/IconList.stories.tsx +108 -0
  464. package/src/icons/ModuleIcon.tsx +51 -0
  465. package/src/icons/NotificationIcon.tsx +41 -0
  466. package/src/icons/icon-data.ts +821 -0
  467. package/src/icons/index.ts +6 -0
  468. package/src/images/index.ts +1 -0
  469. package/src/images/labware/index.ts +1 -0
  470. package/src/images/labware/measurement-guide/images/depth/depth-plate-flat@3x.png +0 -0
  471. package/src/images/labware/measurement-guide/images/depth/depth-plate-round@3x.png +0 -0
  472. package/src/images/labware/measurement-guide/images/depth/depth-plate-v@3x.png +0 -0
  473. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-flat@3x.png +0 -0
  474. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-round@3x.png +0 -0
  475. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-v@3x.png +0 -0
  476. package/src/images/labware/measurement-guide/images/depth/length-tip-rack@3x.png +0 -0
  477. package/src/images/labware/measurement-guide/images/dimensions/footprint@3x.png +0 -0
  478. package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-plate@3x.png +0 -0
  479. package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-tubes@3x.png +0 -0
  480. package/src/images/labware/measurement-guide/images/dimensions/height-plate-and-reservoir@3x.png +0 -0
  481. package/src/images/labware/measurement-guide/images/dimensions/height-tip-rack@3x.png +0 -0
  482. package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack-irregular@3x.png +0 -0
  483. package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack@3x.png +0 -0
  484. package/src/images/labware/measurement-guide/images/offset/offset-reservoir@3x.png +0 -0
  485. package/src/images/labware/measurement-guide/images/offset/offset-well-circular@3x.png +0 -0
  486. package/src/images/labware/measurement-guide/images/offset/offset-well-rectangular@3x.png +0 -0
  487. package/src/images/labware/measurement-guide/images/shape/shape-circular@3x.png +0 -0
  488. package/src/images/labware/measurement-guide/images/shape/shape-rectangular@3x.png +0 -0
  489. package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir-multi-row@3x.png +0 -0
  490. package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir@3x.png +0 -0
  491. package/src/images/labware/measurement-guide/images/spacing/spacing-well-circular@3x.png +0 -0
  492. package/src/images/labware/measurement-guide/images/spacing/spacing-well-rectangular@3x.png +0 -0
  493. package/src/images/labware/measurement-guide/index.ts +272 -0
  494. package/src/index.module.css +9 -0
  495. package/src/index.ts +41 -0
  496. package/src/instrument/InstrumentDiagram.stories.tsx +42 -0
  497. package/src/instrument/InstrumentDiagram.tsx +58 -0
  498. package/src/instrument/InstrumentGroup.stories.tsx +88 -0
  499. package/src/instrument/InstrumentGroup.tsx +35 -0
  500. package/src/instrument/InstrumentInfo.tsx +106 -0
  501. package/src/instrument/PipetteSelect.module.css +14 -0
  502. package/src/instrument/PipetteSelect.stories.tsx +40 -0
  503. package/src/instrument/PipetteSelect.tsx +170 -0
  504. package/src/instrument/__tests__/InstrumentInfo.test.tsx +56 -0
  505. package/src/instrument/__tests__/PipetteSelect.test.tsx +4 -0
  506. package/src/instrument/eight-channel-flex.png +0 -0
  507. package/src/instrument/index.ts +4 -0
  508. package/src/instrument/instrument.module.css +45 -0
  509. package/src/instrument/multi-channel_GEN1_800px.png +0 -0
  510. package/src/instrument/multi-channel_GEN2_800px.png +0 -0
  511. package/src/instrument/ninety-six-channel-gen1.png +0 -0
  512. package/src/instrument/pipetteGEN2Multi.png +0 -0
  513. package/src/instrument/pipetteGEN2Single.png +0 -0
  514. package/src/instrument/pipetteMulti.png +0 -0
  515. package/src/instrument/pipetteSingle.png +0 -0
  516. package/src/instrument/single-channel-flex.png +0 -0
  517. package/src/instrument/single-channel_GEN2_800px.png +0 -0
  518. package/src/instrument/single_channel_GEN1_800px.png +0 -0
  519. package/src/interaction-enhancers/ClickOutside.ts +58 -0
  520. package/src/interaction-enhancers/HandleKeypress.tsx +71 -0
  521. package/src/interaction-enhancers/__tests__/useHover.test.tsx +4 -0
  522. package/src/interaction-enhancers/index.ts +4 -0
  523. package/src/interaction-enhancers/useHover.ts +84 -0
  524. package/src/interaction-enhancers/useOnClickOutside.ts +42 -0
  525. package/src/legacy-hardware-sim/LabwareNameOverlay.module.css +20 -0
  526. package/src/legacy-hardware-sim/LabwareNameOverlay.tsx +22 -0
  527. package/src/legacy-hardware-sim/ModuleItem.module.css +98 -0
  528. package/src/legacy-hardware-sim/ModuleItem.tsx +145 -0
  529. package/src/legacy-hardware-sim/index.ts +2 -0
  530. package/src/lists/SidePanelGroup.tsx +48 -0
  531. package/src/lists/TitledList.tsx +155 -0
  532. package/src/lists/index.ts +3 -0
  533. package/src/lists/lists.module.css +171 -0
  534. package/src/modals/AlertModal.tsx +89 -0
  535. package/src/modals/ContinueModal.tsx +32 -0
  536. package/src/modals/LegacyModal.tsx +61 -0
  537. package/src/modals/Modal.stories.tsx +45 -0
  538. package/src/modals/Modal.tsx +101 -0
  539. package/src/modals/ModalHeader.tsx +110 -0
  540. package/src/modals/ModalShell.tsx +157 -0
  541. package/src/modals/Overlay.tsx +39 -0
  542. package/src/modals/SpinnerModal.tsx +35 -0
  543. package/src/modals/SpinnerModalPage.tsx +29 -0
  544. package/src/modals/__tests__/Modal.test.tsx +66 -0
  545. package/src/modals/__tests__/ModalHeader.test.tsx +69 -0
  546. package/src/modals/__tests__/ModalShell.test.tsx +46 -0
  547. package/src/modals/index.ts +10 -0
  548. package/src/modals/modals.module.css +275 -0
  549. package/src/molecules/Banner/Banner.stories.tsx +51 -0
  550. package/src/molecules/Banner/__tests__/Banner.test.tsx +95 -0
  551. package/src/molecules/Banner/index.tsx +148 -0
  552. package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +65 -0
  553. package/src/molecules/DeckInfoLabel/__tests__/DeckInfoLabel.test.tsx +50 -0
  554. package/src/molecules/DeckInfoLabel/index.tsx +95 -0
  555. package/src/molecules/DeckLabel/DeckLabel.stories.tsx +31 -0
  556. package/src/molecules/DeckLabel/__tests__/DeckLabel.test.tsx +71 -0
  557. package/src/molecules/DeckLabel/index.tsx +82 -0
  558. package/src/molecules/DropdownMenu/DropdownMenu.stories.tsx +30 -0
  559. package/src/molecules/DropdownMenu/__tests__/DropdownMenu.test.tsx +86 -0
  560. package/src/molecules/DropdownMenu/index.tsx +432 -0
  561. package/src/molecules/InfoScreen/InfoScreen.stories.tsx +50 -0
  562. package/src/molecules/InfoScreen/__tests__/InfoScreen.test.tsx +57 -0
  563. package/src/molecules/InfoScreen/index.tsx +54 -0
  564. package/src/molecules/LiquidIcon/LiquidIcon.stories.tsx +53 -0
  565. package/src/molecules/LiquidIcon/__tests__/LiquidIcon.test.tsx +51 -0
  566. package/src/molecules/LiquidIcon/index.tsx +68 -0
  567. package/src/molecules/ListAccordion/ListAccordion.stories.tsx +128 -0
  568. package/src/molecules/ListAccordion/__tests__/ListAccordion.test.tsx +123 -0
  569. package/src/molecules/ListAccordion/index.tsx +182 -0
  570. package/src/molecules/ParametersTable/ParametersTable.stories.tsx +172 -0
  571. package/src/molecules/ParametersTable/__tests__/ParametersTable.test.tsx +126 -0
  572. package/src/molecules/ParametersTable/index.tsx +198 -0
  573. package/src/molecules/ReleaseNotes/index.tsx +70 -0
  574. package/src/molecules/ReleaseNotes/styles.module.css +66 -0
  575. package/src/molecules/Tabs/Tabs.stories.tsx +74 -0
  576. package/src/molecules/Tabs/__tests__/Tabs.test.tsx +91 -0
  577. package/src/molecules/Tabs/index.tsx +115 -0
  578. package/src/molecules/TextListTableContent/TextListTableContent.stories.tsx +114 -0
  579. package/src/molecules/TextListTableContent/__tests__/TextListTableContent.test.tsx +44 -0
  580. package/src/molecules/TextListTableContent/index.tsx +45 -0
  581. package/src/molecules/index.ts +11 -0
  582. package/src/nav/SidePanel.module.css +34 -0
  583. package/src/nav/SidePanel.stories.tsx +29 -0
  584. package/src/nav/SidePanel.tsx +22 -0
  585. package/src/nav/index.ts +2 -0
  586. package/src/organisms/CommandText/CommandText.stories.tsx +78 -0
  587. package/src/organisms/CommandText/__tests__/CommandText.test.tsx +1670 -0
  588. package/src/organisms/CommandText/fixtures/index.ts +4 -0
  589. package/src/organisms/CommandText/fixtures/mockRobotSideAnalysis.json +6609 -0
  590. package/src/organisms/CommandText/index.tsx +278 -0
  591. package/src/organisms/CommandText/useCommandTextString/index.ts +315 -0
  592. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/formatDuration.test.tsx +92 -0
  593. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getFinalLabwareLocation.test.ts +130 -0
  594. package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getLabwareDisplayLocation.test.tsx +185 -0
  595. package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getPipettingCommandText.test.tsx +187 -0
  596. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getAbsorbanceReaderCommandText.ts +53 -0
  597. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getCommentCommandText.ts +10 -0
  598. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getConfigureForVolumeCommandText.ts +21 -0
  599. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getConfigureNozzleLayoutCommandText.ts +29 -0
  600. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getCustomCommandText.ts +16 -0
  601. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getDelayCommandText.ts +20 -0
  602. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getDirectTranslationCommandText.ts +44 -0
  603. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.ts +32 -0
  604. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getHSShakeSpeedCommandText.ts +11 -0
  605. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getLiquidProbeCommandText.ts +60 -0
  606. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts +172 -0
  607. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveLabwareCommandText.ts +108 -0
  608. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveRelativeCommandText.ts +11 -0
  609. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToAddressableAreaCommandText.ts +19 -0
  610. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToAddressableAreaForDropTipCommandText.ts +19 -0
  611. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToCoordinatesCommandText.ts +11 -0
  612. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToSlotCommandText.ts +11 -0
  613. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToWellCommandText.ts +46 -0
  614. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getPipettingCommandText.ts +196 -0
  615. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getPrepareToAspirateCommandText.ts +20 -0
  616. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getRailLightsCommandText.ts +15 -0
  617. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunExtendedProfileCommandText.ts +67 -0
  618. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTCRunProfileCommandText.ts +29 -0
  619. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getTemperatureCommandText.ts +49 -0
  620. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getUnknownCommandText.ts +5 -0
  621. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getWaitForDurationCommandText.ts +11 -0
  622. package/src/organisms/CommandText/useCommandTextString/utils/commandText/getWaitForResumeCommandText.ts +11 -0
  623. package/src/organisms/CommandText/useCommandTextString/utils/commandText/index.ts +26 -0
  624. package/src/organisms/CommandText/useCommandTextString/utils/formatDuration.ts +44 -0
  625. package/src/organisms/CommandText/useCommandTextString/utils/getAddressableAreaDisplayName.ts +62 -0
  626. package/src/organisms/CommandText/useCommandTextString/utils/getFinalAddressableAreaCmd.ts +20 -0
  627. package/src/organisms/CommandText/useCommandTextString/utils/getFinalLabwareLocation.ts +46 -0
  628. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.ts +59 -0
  629. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDisplayLocation.tsx +140 -0
  630. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.tsx +271 -0
  631. package/src/organisms/CommandText/useCommandTextString/utils/getLabwareName.ts +41 -0
  632. package/src/organisms/CommandText/useCommandTextString/utils/getLiquidDisplayName.ts +10 -0
  633. package/src/organisms/CommandText/useCommandTextString/utils/getLoadedLabware.tsx +12 -0
  634. package/src/organisms/CommandText/useCommandTextString/utils/getLoadedModule.ts +12 -0
  635. package/src/organisms/CommandText/useCommandTextString/utils/getModuleDisplayLocation.ts +10 -0
  636. package/src/organisms/CommandText/useCommandTextString/utils/getModuleModel.ts +11 -0
  637. package/src/organisms/CommandText/useCommandTextString/utils/getPipetteNameOnMount.ts +20 -0
  638. package/src/organisms/CommandText/useCommandTextString/utils/getWellRange.ts +64 -0
  639. package/src/organisms/CommandText/useCommandTextString/utils/helpers.ts +15 -0
  640. package/src/organisms/CommandText/useCommandTextString/utils/index.ts +10 -0
  641. package/src/organisms/CommandText/useCommandTextString/utils/types.ts +19 -0
  642. package/src/organisms/DeckLabelSet/DeckLabelSet.stories.tsx +49 -0
  643. package/src/organisms/DeckLabelSet/__tests__/DeckLabelSet.test.tsx +52 -0
  644. package/src/organisms/DeckLabelSet/index.tsx +93 -0
  645. package/src/organisms/ProtocolTimelineScrubber/CommandItem.tsx +113 -0
  646. package/src/organisms/ProtocolTimelineScrubber/PipetteVisuals.tsx +211 -0
  647. package/src/organisms/ProtocolTimelineScrubber/index.tsx +335 -0
  648. package/src/organisms/ProtocolTimelineScrubber/types.ts +6 -0
  649. package/src/organisms/ProtocolTimelineScrubber/utils.ts +157 -0
  650. package/src/organisms/Toolbox/Toolbox.stories.tsx +33 -0
  651. package/src/organisms/Toolbox/__tests__/Toolbox.test.tsx +36 -0
  652. package/src/organisms/Toolbox/index.tsx +148 -0
  653. package/src/organisms/index.ts +4 -0
  654. package/src/primitives/Box.stories.tsx +25 -0
  655. package/src/primitives/Box.tsx +17 -0
  656. package/src/primitives/Btn.stories.tsx +105 -0
  657. package/src/primitives/Btn.tsx +268 -0
  658. package/src/primitives/Flex.stories.tsx +50 -0
  659. package/src/primitives/Flex.tsx +17 -0
  660. package/src/primitives/ForeignObject.tsx +69 -0
  661. package/src/primitives/Link.stories.tsx +27 -0
  662. package/src/primitives/Link.tsx +33 -0
  663. package/src/primitives/README.md +188 -0
  664. package/src/primitives/Svg.stories.tsx +36 -0
  665. package/src/primitives/Svg.tsx +69 -0
  666. package/src/primitives/Text.stories.tsx +17 -0
  667. package/src/primitives/Text.tsx +18 -0
  668. package/src/primitives/__tests__/Box.test.tsx +4 -0
  669. package/src/primitives/__tests__/Btn.test.tsx +4 -0
  670. package/src/primitives/__tests__/Flex.test.tsx +4 -0
  671. package/src/primitives/__tests__/Link.test.tsx +4 -0
  672. package/src/primitives/__tests__/Svg.test.tsx +4 -0
  673. package/src/primitives/__tests__/Text.test.tsx +4 -0
  674. package/src/primitives/__tests__/primitives.test.tsx +4 -0
  675. package/src/primitives/__tests__/style-props.test.tsx +4 -0
  676. package/src/primitives/index.ts +10 -0
  677. package/src/primitives/style-props.ts +199 -0
  678. package/src/primitives/types.ts +120 -0
  679. package/src/robot-types.ts +4 -0
  680. package/src/slotmap/OT2SlotMap.tsx +73 -0
  681. package/src/slotmap/__tests__/OT2SlotMap.test.tsx +4 -0
  682. package/src/slotmap/index.ts +1 -0
  683. package/src/slotmap/styles.module.css +18 -0
  684. package/src/structure/Card.stories.tsx +28 -0
  685. package/src/structure/Card.tsx +63 -0
  686. package/src/structure/LabeledValue.stories.tsx +17 -0
  687. package/src/structure/LabeledValue.tsx +31 -0
  688. package/src/structure/Pill.module.css +16 -0
  689. package/src/structure/Pill.tsx +43 -0
  690. package/src/structure/Splash.module.css +16 -0
  691. package/src/structure/Splash.stories.tsx +24 -0
  692. package/src/structure/Splash.tsx +22 -0
  693. package/src/structure/TitleBar.stories.tsx +42 -0
  694. package/src/structure/TitleBar.tsx +80 -0
  695. package/src/structure/index.ts +7 -0
  696. package/src/structure/structure.module.css +114 -0
  697. package/src/styles/borders.module.css +20 -0
  698. package/src/styles/borders.ts +16 -0
  699. package/src/styles/colors.module.css +57 -0
  700. package/src/styles/colors.ts +58 -0
  701. package/src/styles/cursor.ts +12 -0
  702. package/src/styles/flexbox.ts +39 -0
  703. package/src/styles/index.module.css +8 -0
  704. package/src/styles/index.ts +8 -0
  705. package/src/styles/layout.ts +31 -0
  706. package/src/styles/position.ts +5 -0
  707. package/src/styles/spacing.ts +11 -0
  708. package/src/styles/typography.module.css +22 -0
  709. package/src/styles/typography.ts +90 -0
  710. package/src/testing/utils/index.ts +2 -0
  711. package/src/testing/utils/matchers.ts +31 -0
  712. package/src/testing/utils/renderWithProviders.tsx +59 -0
  713. package/src/tooltips/DeprecatedTooltip.tsx +111 -0
  714. package/src/tooltips/HoverTooltip.tsx +84 -0
  715. package/src/tooltips/LegacyTooltip.stories.tsx +98 -0
  716. package/src/tooltips/LegacyTooltip.tsx +151 -0
  717. package/src/tooltips/__tests__/Tooltip.test.tsx +4 -0
  718. package/src/tooltips/__tests__/useHoverTooltip.test.tsx +4 -0
  719. package/src/tooltips/__tests__/usePopper.test.tsx +4 -0
  720. package/src/tooltips/__tests__/useTooltip.test.tsx +4 -0
  721. package/src/tooltips/constants.ts +28 -0
  722. package/src/tooltips/index.ts +10 -0
  723. package/src/tooltips/styles.ts +20 -0
  724. package/src/tooltips/tooltips.module.css +72 -0
  725. package/src/tooltips/types.ts +73 -0
  726. package/src/tooltips/useHoverTooltip.ts +47 -0
  727. package/src/tooltips/usePopper.ts +87 -0
  728. package/src/tooltips/useTooltip.ts +100 -0
  729. package/src/ui-style-constants/animation.ts +1 -0
  730. package/src/ui-style-constants/index.ts +5 -0
  731. package/src/ui-style-constants/responsiveness.ts +15 -0
  732. package/src/ui-style-constants/spacing.ts +18 -0
  733. package/src/ui-style-constants/typography.ts +258 -0
  734. package/src/ui-style-constants/viewport.ts +18 -0
  735. package/src/utils.ts +56 -0
  736. package/tsconfig-data.json +13 -0
  737. package/tsconfig.json +8 -5
  738. package/vite.config.mts +9 -19
  739. package/lib/controls/LabeledSelect.d.ts +0 -9
  740. package/lib/forms/DropdownField.d.ts +0 -38
  741. package/lib/hooks/useIdle.d.ts +0 -11
  742. package/lib/index.js +0 -22440
  743. package/lib/organisms/EndUserAgreementFooter/index.d.ts +0 -1
  744. package/lib/style.css +0 -3786
  745. /package/lib/{forms/__tests__/DropdownField.test.d.ts → atoms/ListTable/__tests__/ListTable.test.d.ts} +0 -0
  746. /package/lib/{hooks/__tests__/useIdle.test.d.ts → atoms/SubListTable/__tests__/SubListTable.test.d.ts} +0 -0
  747. /package/lib/{organisms/EndUserAgreementFooter/__tests__/EndUserAgreementFooter.test.d.ts → molecules/ListAccordion/__tests__/ListAccordion.test.d.ts} +0 -0
@@ -0,0 +1,129 @@
1
+ import {
2
+ SPAN7_8_10_11_SLOT,
3
+ getModuleDef2,
4
+ getLoadedLabwareDefinitionsByUri,
5
+ } from '@opentrons/shared-data'
6
+ import type {
7
+ CompletedProtocolAnalysis,
8
+ LoadLabwareRunTimeCommand,
9
+ ProtocolAnalysisOutput,
10
+ LoadModuleRunTimeCommand,
11
+ RunTimeCommand,
12
+ ModuleLocation,
13
+ ModuleModel,
14
+ LabwareDefinition2,
15
+ } from '@opentrons/shared-data'
16
+ import { getInitialLoadedLabwareByAdapter } from './getInitiallyLoadedLabwareByAdapter'
17
+
18
+ interface ModuleInSlot {
19
+ moduleModel: ModuleModel
20
+ moduleLocation: ModuleLocation
21
+ nestedLabwareId: string | null
22
+ nestedLabwareDef: LabwareDefinition2 | null
23
+ nestedLabwareNickName: string | null
24
+ }
25
+ export const getModulesInSlots = (
26
+ protocolAnalysis: ProtocolAnalysisOutput | CompletedProtocolAnalysis
27
+ ): ModuleInSlot[] => {
28
+ if (protocolAnalysis != null && 'modules' in protocolAnalysis) {
29
+ const { commands, modules, labware } = protocolAnalysis
30
+ const initialLoadedLabwareByAdapter = getInitialLoadedLabwareByAdapter(
31
+ commands
32
+ )
33
+ return modules.reduce<ModuleInSlot[]>((acc, module) => {
34
+ const moduleDef = getModuleDef2(module.model)
35
+ const nestedLabwareId =
36
+ commands
37
+ .filter(
38
+ (command): command is LoadLabwareRunTimeCommand =>
39
+ command.commandType === 'loadLabware'
40
+ )
41
+ .find(
42
+ (command: LoadLabwareRunTimeCommand) =>
43
+ typeof command.params.location === 'object' &&
44
+ 'moduleId' in command.params.location &&
45
+ command.params.location.moduleId === module.id
46
+ )?.result?.labwareId ?? null
47
+ const nestedLabware = labware.find(
48
+ item => nestedLabwareId != null && item.id === nestedLabwareId
49
+ )
50
+ const labwareDefinitionsByUri = getLoadedLabwareDefinitionsByUri(commands)
51
+ const nestedLabwareDef =
52
+ nestedLabware != null
53
+ ? labwareDefinitionsByUri[nestedLabware.definitionUri]
54
+ : null
55
+ const moduleInitialLoadInfo = getModuleInitialLoadInfo(
56
+ module.id,
57
+ commands
58
+ )
59
+ let slotName = moduleInitialLoadInfo.location.slotName
60
+ // Note: this is because PD for OT2 represents the slot the TC sits in as a made up slot. We want it to be rendered in slot 7
61
+ if (slotName === SPAN7_8_10_11_SLOT) {
62
+ slotName = '7'
63
+ }
64
+
65
+ const labwareInAdapterInMod =
66
+ nestedLabwareId != null
67
+ ? initialLoadedLabwareByAdapter[nestedLabwareId]
68
+ : null
69
+ // NOTE: only rendering the labware on top most layer so
70
+ // either the adapter or the labware are rendered but not both
71
+ const topLabwareDefinition =
72
+ labwareInAdapterInMod?.result?.definition ?? nestedLabwareDef
73
+ const topLabwareId =
74
+ labwareInAdapterInMod?.result?.labwareId ?? nestedLabwareId
75
+ const topLabwareDisplayName =
76
+ labwareInAdapterInMod != null
77
+ ? labwareInAdapterInMod.params.displayName?.toString() ?? null
78
+ : nestedLabware?.displayName?.toString() ?? null
79
+ return [
80
+ ...acc,
81
+ {
82
+ moduleModel: moduleDef.model,
83
+ moduleLocation: { slotName },
84
+ nestedLabwareId: topLabwareId,
85
+ nestedLabwareDef: topLabwareDefinition,
86
+ nestedLabwareNickName: topLabwareDisplayName,
87
+ },
88
+ ]
89
+ }, [])
90
+ }
91
+
92
+ return []
93
+ }
94
+
95
+ function getModuleInitialLoadInfo(
96
+ moduleId: string,
97
+ commands: RunTimeCommand[]
98
+ ): {
99
+ location: ModuleLocation
100
+ protocolLoadOrder: number
101
+ } {
102
+ const moduleLoadIndex = commands.findIndex(
103
+ (command: RunTimeCommand): command is LoadModuleRunTimeCommand =>
104
+ command.commandType === 'loadModule' &&
105
+ command.result?.moduleId === moduleId
106
+ )
107
+
108
+ if (moduleLoadIndex === -1) {
109
+ throw new Error(
110
+ 'expected to be able to find module location, but could not'
111
+ )
112
+ }
113
+
114
+ const protocolLoadOrder = commands
115
+ .slice(0, moduleLoadIndex)
116
+ .reduce(
117
+ (moduleLoadCount, command) =>
118
+ command.commandType === 'loadModule'
119
+ ? moduleLoadCount + 1
120
+ : moduleLoadCount,
121
+ 0
122
+ )
123
+
124
+ return {
125
+ location: (commands[moduleLoadIndex] as LoadModuleRunTimeCommand).params
126
+ .location,
127
+ protocolLoadOrder,
128
+ }
129
+ }
@@ -0,0 +1,29 @@
1
+ import type { RobotType } from '@opentrons/shared-data'
2
+
3
+ const OT2_STANDARD_DECK_VIEW_LAYER_BLOCK_LIST: string[] = [
4
+ 'calibrationMarkings',
5
+ 'fixedBase',
6
+ 'doorStops',
7
+ 'metalFrame',
8
+ 'removalHandle',
9
+ 'removableDeckOutline',
10
+ 'screwHoles',
11
+ ]
12
+
13
+ const OT3_STANDARD_DECK_VIEW_LAYER_BLOCK_LIST: string[] = [
14
+ 'DECK_BASE',
15
+ 'BARCODE_COVERS',
16
+ ]
17
+
18
+ export const getStandardDeckViewLayerBlockList = (
19
+ robotType: RobotType
20
+ ): string[] => {
21
+ switch (robotType) {
22
+ case 'OT-2 Standard':
23
+ return OT2_STANDARD_DECK_VIEW_LAYER_BLOCK_LIST
24
+ case 'OT-3 Standard':
25
+ return OT3_STANDARD_DECK_VIEW_LAYER_BLOCK_LIST
26
+ default:
27
+ return []
28
+ }
29
+ }
@@ -0,0 +1,30 @@
1
+ import type { Liquid } from '@opentrons/shared-data'
2
+ import type { WellFill } from '../../Labware'
3
+ import type { LabwareByLiquidId } from '../types'
4
+
5
+ export function getWellFillFromLabwareId(
6
+ labwareId: string,
7
+ liquidsInLoadOrder: Liquid[],
8
+ labwareByLiquidId: LabwareByLiquidId
9
+ ): WellFill {
10
+ let labwareWellFill: WellFill = {}
11
+ const liquidIds = Object.keys(labwareByLiquidId)
12
+ const labwareInfo = Object.values(labwareByLiquidId)
13
+
14
+ labwareInfo.forEach((labwareArray, index) => {
15
+ labwareArray.forEach(labware => {
16
+ if (labware.labwareId === labwareId) {
17
+ const liquidId = liquidIds[index]
18
+ const liquid = liquidsInLoadOrder.find(liquid => liquid.id === liquidId)
19
+ const wellFill: {
20
+ [well: string]: string
21
+ } = {}
22
+ Object.keys(labware.volumeByWell).forEach(key => {
23
+ wellFill[key] = liquid?.displayColor ?? ''
24
+ })
25
+ labwareWellFill = { ...labwareWellFill, ...wellFill }
26
+ }
27
+ })
28
+ })
29
+ return labwareWellFill
30
+ }
@@ -0,0 +1,4 @@
1
+ export * from './getLabwareInSlots'
2
+ export * from './getStandardDeckViewLayerBlockList'
3
+ export * from './getLabwareInfoByLiquidId'
4
+ export * from './getWellFillFromLabwareId'
@@ -0,0 +1,29 @@
1
+ import styled from 'styled-components'
2
+ import { animated } from '@react-spring/web'
3
+ import { Svg } from '../../primitives'
4
+
5
+ import type { ComponentProps } from 'react'
6
+
7
+ interface RobotCoordinateSpaceProps extends ComponentProps<typeof Svg> {
8
+ animated?: boolean
9
+ }
10
+ export function RobotCoordinateSpace(
11
+ props: RobotCoordinateSpaceProps
12
+ ): JSX.Element {
13
+ const { animated = false, children, ...restProps } = props
14
+ const allPassThroughProps = {
15
+ transform: 'scale(1, -1)',
16
+ ...restProps,
17
+ }
18
+ return animated ? (
19
+ <AnimatedSvg {...allPassThroughProps}>{children}</AnimatedSvg>
20
+ ) : (
21
+ <Svg {...allPassThroughProps}>{children}</Svg>
22
+ )
23
+ }
24
+
25
+ /**
26
+ * These animated components needs to be split out because react-spring and styled-components don't play nice
27
+ * @see https://github.com/pmndrs/react-spring/issues/1515 */
28
+ // @ts-expect-error Type instantiation is excessively deep and possibly infinite
29
+ const AnimatedSvg = styled(animated.svg)<typeof animated.svg>``
@@ -0,0 +1,51 @@
1
+ import { useRef } from 'react'
2
+ import { Svg } from '../../primitives'
3
+
4
+ import type { ComponentProps, ReactNode } from 'react'
5
+ import type { DeckDefinition, DeckSlot } from '@opentrons/shared-data'
6
+
7
+ export interface RobotCoordinateSpaceWithRefRenderProps {
8
+ deckSlotsById: { [slotId: string]: DeckSlot }
9
+ }
10
+
11
+ interface RobotCoordinateSpaceWithRefProps extends ComponentProps<typeof Svg> {
12
+ viewBox?: string | null
13
+ deckDef?: DeckDefinition
14
+ zoomed?: boolean
15
+ children?: (props: RobotCoordinateSpaceWithRefRenderProps) => ReactNode
16
+ }
17
+
18
+ export function RobotCoordinateSpaceWithRef(
19
+ props: RobotCoordinateSpaceWithRefProps
20
+ ): JSX.Element | null {
21
+ const { children, deckDef, viewBox, zoomed = false, ...restProps } = props
22
+ const wrapperRef = useRef<SVGSVGElement>(null)
23
+
24
+ if (deckDef == null && viewBox == null) return null
25
+
26
+ let wholeDeckViewBox
27
+ let deckSlotsById = {}
28
+ if (deckDef != null) {
29
+ const [viewBoxOriginX, viewBoxOriginY] = deckDef.cornerOffsetFromOrigin
30
+ const [deckXDimension, deckYDimension] = deckDef.dimensions
31
+
32
+ deckSlotsById = deckDef.locations.addressableAreas.reduce(
33
+ (acc, deckSlot) => ({ ...acc, [deckSlot.id]: deckSlot }),
34
+ {}
35
+ )
36
+ wholeDeckViewBox = `${viewBoxOriginX} ${viewBoxOriginY} ${deckXDimension} ${deckYDimension}`
37
+ }
38
+
39
+ return (
40
+ <Svg
41
+ viewBox={zoomed ? viewBox : wholeDeckViewBox}
42
+ ref={wrapperRef}
43
+ transform="scale(1, -1)"
44
+ width="100%"
45
+ height="100%"
46
+ {...restProps}
47
+ >
48
+ {children?.({ deckSlotsById })}
49
+ </Svg>
50
+ )
51
+ }
@@ -0,0 +1,2 @@
1
+ export * from './RobotCoordinateSpaceWithRef'
2
+ export * from './RobotCoordinateSpace'
@@ -0,0 +1,11 @@
1
+ export * from './BaseDeck'
2
+ export * from './BaseDeck/__fixtures__'
3
+ export * from './ProtocolDeck'
4
+ export * from './ProtocolDeck/utils'
5
+ export * from './Deck'
6
+ export * from './DeckConfigurator'
7
+ export * from './DeckSlotLocation'
8
+ export * from './Labware'
9
+ export * from './Module'
10
+ export * from './Pipette'
11
+ export * from './RobotCoordinateSpace'
@@ -0,0 +1,18 @@
1
+ import type { AffineTransformMatrix } from '@opentrons/shared-data'
2
+
3
+ export const IDENTITY_AFFINE_TRANSFORM: AffineTransformMatrix = [
4
+ [1, 0, 0, 0],
5
+ [0, 1, 0, 0],
6
+ [0, 0, 1, 0],
7
+ [0, 0, 0, 1],
8
+ ]
9
+
10
+ // multiply two matrices together (dot product)
11
+ export function multiplyMatrices(a: number[][], b: number[][]): number[][] {
12
+ const transposedB = b[0].map((_val, index) => b.map(row => row[index]))
13
+ return a.map(rowA =>
14
+ transposedB.map(rowB =>
15
+ rowA.reduce((acc, valA, colIndexA) => acc + valA * rowB[colIndexA], 0)
16
+ )
17
+ )
18
+ }
@@ -0,0 +1,32 @@
1
+ import { COLORS } from '.'
2
+
3
+ /**
4
+ * Constants
5
+ */
6
+ export const borderRadius2 = '2px' // WEB ONLY!
7
+ export const borderRadius4 = '4px'
8
+ export const borderRadius8 = '8px'
9
+ export const borderRadius12 = '12px'
10
+ export const borderRadius16 = '16px'
11
+ export const borderRadius40 = '40px'
12
+ export const borderRadiusFull = '200px'
13
+
14
+ /**
15
+ * Styles
16
+ */
17
+ export const styleSolid = 'solid'
18
+
19
+ /**
20
+ * Special-case borders
21
+ */
22
+ export const activeLineBorder = `1px ${styleSolid} ${COLORS.blue50}`
23
+ export const lineBorder = `1px ${styleSolid} ${COLORS.grey30}`
24
+
25
+ /**
26
+ * Shadows
27
+ */
28
+ export const smallDropShadow = '0px 3px 6px rgba(0, 0, 0, 0.23)'
29
+ export const tinyDropShadow = '0px 1px 3px 0px rgba(0, 0, 0, .33)'
30
+ // touch screen
31
+ export const shadowBig = '0px 3px 6px rgba(0,0,0,0.23)'
32
+ export const shadowSmall = '0px 0px 40px rgba(0,0,0,0.4)'
@@ -0,0 +1,100 @@
1
+ // some colors are slightly adjusted for on-device display screen differences
2
+ // isTouchscreen hex values are dev concerns only - designs will reflect the standard hex values
3
+ import { isTouchscreen } from '../ui-style-constants/responsiveness'
4
+
5
+ /**
6
+ * green
7
+ */
8
+ export const green60 = '#03683E'
9
+ export const green50 = isTouchscreen ? '#1CA850' : '#04AA65'
10
+ export const green40 = isTouchscreen ? '#8EF3A8' : '#91E2C0'
11
+ export const green35 = isTouchscreen ? '#8AFBAB' : '#AFEDD3'
12
+ export const green30 = '#C4F6E0'
13
+ export const green20 = '#E8F7ED'
14
+
15
+ /**
16
+ * red
17
+ */
18
+ export const red60 = '#941313'
19
+ export const red55 = '#C71A1B'
20
+ export const red50 = '#DE1B1B'
21
+ export const red40 = '#F5B2B3'
22
+ export const red35 = '#F8C8C9'
23
+ export const red30 = '#FAD6D6'
24
+ export const red20 = '#FCE9E9'
25
+
26
+ /**
27
+ * yellow
28
+ */
29
+ export const yellow60 = '#825512'
30
+ export const yellow50 = '#F09D20'
31
+ export const yellow40 = '#FCD48B'
32
+ export const yellow35 = '#FFE1A4'
33
+ export const yellow30 = '#FFE9BE'
34
+ export const yellow20 = '#FDF3E2'
35
+
36
+ /**
37
+ * purple
38
+ */
39
+ export const purple60 = isTouchscreen ? '#612367' : '#562566'
40
+ export const purple55 = isTouchscreen ? '#822E89' : '#713187'
41
+ export const purple50 = isTouchscreen ? '#9E39A8' : '#893BA4'
42
+ export const purple40 = isTouchscreen ? '#E2A9EA' : '#CEA4DF'
43
+ export const purple35 = isTouchscreen ? '#ECC2F2' : '#DBBCE7'
44
+ export const purple30 = isTouchscreen ? '#F4DEF7' : '#E6D5EC'
45
+ export const purple20 = isTouchscreen ? '#FFF3FE' : '#F1E8F5'
46
+
47
+ /**
48
+ * blue
49
+ */
50
+ export const blue60 = '#004196'
51
+ export const blue55 = '#0056C8'
52
+ export const blue40 = '#A9CEFD'
53
+ export const blue35 = '#BFDCFD'
54
+ export const blue30 = '#D0E6FE'
55
+ export const blue20 = '#E1EFFF'
56
+ export const blue10 = '#F1F8FF'
57
+
58
+ /**
59
+ * grey
60
+ */
61
+ export const grey60 = '#4A4C4E'
62
+ export const grey55 = '#626467'
63
+ export const grey50 = '#737578'
64
+ export const grey40 = '#B7B8B9'
65
+ export const grey35 = '#CBCCCC'
66
+ export const grey30 = '#DEDEDE'
67
+ export const grey20 = '#E9E9E9'
68
+ export const grey10 = '#F3F3F3'
69
+
70
+ /**
71
+ * core
72
+ */
73
+ export const black90 = '#16212D'
74
+ export const black80 = '#24313F'
75
+ export const black70 = '#39495B'
76
+ export const white = '#FFFFFF'
77
+ export const blue50 = '#006CFA'
78
+
79
+ /**
80
+ * Semi-opaques
81
+ * */
82
+ export const transparentWhite80 = `${white}CC`
83
+ export const transparentWhite50 = `${white}80`
84
+ export const transparentBlack80 = `${black90}80`
85
+
86
+ /**
87
+ * flex
88
+ */
89
+ export const flex55 = '#0297CC'
90
+ export const flex50 = '#00BDFF'
91
+
92
+ /**
93
+ * extras
94
+ */
95
+ export const transparent = 'transparent'
96
+ // opacity hex codes to append to 6-digit color hex codes
97
+ export const opacity20HexCode = '33' // 20% opacity
98
+ export const opacity40HexCode = '66' // 40% opacity
99
+ export const opacity60HexCode = '99' // 60% opacity
100
+ export const opacity90HexCode = 'E6' // 90% opacity
@@ -0,0 +1,4 @@
1
+ export * as COLORS from './colors'
2
+ export * as BORDERS from './borders'
3
+ export * as PRODUCT from './product'
4
+ export * as STYLE from './style'
@@ -0,0 +1 @@
1
+ export * as TYPOGRAPHY from './typography'
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Note: these values are only currently correct for desktop and should not be used on ODD.
3
+ */
4
+
5
+ // Valid for most typography styles
6
+ export const fontFamily = 'Public Sans'
7
+
8
+ export const fontWeightRegular = '400'
9
+ export const fontWeightSemiBold = '600'
10
+ export const fontWeightBold = '700'
11
+
12
+ // Display styles
13
+ const fontFamilyDisplay = fontFamily
14
+ const fontSizeDisplay = '2.4375rem' // 39px
15
+ const lineHeightDisplay = '3rem' // 48px
16
+
17
+ // Display-Bold
18
+ export const fontSizeDisplayBold = fontSizeDisplay
19
+ export const lineHeightDisplayBold = lineHeightDisplay
20
+ export const fontFamilyDisplayBold = fontFamilyDisplay
21
+ export const fontWeightDisplayBold = fontWeightBold
22
+ export const fontStyleDisplayBold = `${fontWeightDisplayBold} ${fontSizeDisplayBold}/${lineHeightDisplayBold} ${fontFamilyDisplayBold}`
23
+
24
+ // Heading-Large
25
+ const fontSizeHeadingLarge = '1.625rem' // 26px
26
+ const lineHeightHeadingLarge = '2rem' // 32px
27
+ const fontFamilyHeadingLarge = fontFamily
28
+
29
+ // Heading-Large-Regular
30
+ export const fontFamilyHeadingLargeRegular = fontFamilyHeadingLarge
31
+ export const fontSizeHeadingLargeRegular = fontSizeHeadingLarge
32
+ export const lineHeightHeadingLargeRegular = lineHeightHeadingLarge
33
+ export const fontWeightHeadingLargeRegular = fontWeightRegular
34
+ export const fontStyleHeadingLargeRegular = `${fontWeightHeadingLargeRegular} ${fontSizeHeadingLargeRegular}/${lineHeightHeadingLargeRegular} ${fontFamilyHeadingLargeRegular}`
35
+
36
+ // Heading-Large-Bold
37
+ export const fontFamilyHeadingLargeBold = fontFamilyHeadingLarge
38
+ export const fontSizeHeadingLargeBold = fontSizeHeadingLarge
39
+ export const lineHeightHeadingLargeBold = lineHeightHeadingLarge
40
+ export const fontWeightHeadingLargeBold = fontWeightBold
41
+ export const fontStyleHeadingLargeBold = `${fontWeightHeadingLargeBold} ${fontSizeHeadingLargeBold}/${lineHeightHeadingLargeBold} ${fontFamilyHeadingLargeBold}`
42
+
43
+ // Heading-Medium
44
+ const fontSizeHeadingMedium = '1.4375rem' // 23px
45
+ const lineHeightHeadingMedium = '1.75rem' // 28px
46
+ const fontFamilyHeadingMedium = fontFamily
47
+
48
+ // Heading-Medium-Regular
49
+ export const fontSizeHeadingMediumSemiBold = fontSizeHeadingMedium
50
+ export const lineHeightHeadingMediumSemiBold = lineHeightHeadingMedium
51
+
52
+ export const fontFamilyHeadingMediumSemiBold = fontFamilyHeadingMedium
53
+ export const fontWeightHeadingMediumSemiBold = fontWeightSemiBold
54
+ export const fontStyleHeadingMediumSemiBold = `${fontWeightHeadingMediumSemiBold} ${fontSizeHeadingMediumSemiBold}/${lineHeightHeadingMediumSemiBold} ${fontFamilyHeadingMediumSemiBold}`
55
+ export const fontStyleHeadingMediumBold = `${fontWeightBold} ${fontSizeHeadingMedium}/${lineHeightHeadingMediumSemiBold} ${fontFamilyHeadingMediumSemiBold}`
56
+
57
+ // Heading-Small
58
+ const fontSizeHeadingSmall = '1.125rem' // 18px
59
+ const lineHeightHeadingSmall = '1.5rem' // 24px
60
+ const fontFamilyHeadingSmall = fontFamily
61
+
62
+ // Heading-Small-Regular
63
+ export const fontSizeHeadingSmallRegular = fontSizeHeadingSmall
64
+ export const lineHeightHeadingSmallRegular = lineHeightHeadingSmall
65
+ export const fontFamilyHeadingSmallRegular = fontFamilyHeadingSmall
66
+ export const fontWeightHeadingSmallRegular = '400'
67
+ export const fontStyleHeadingSmallRegular = `${fontWeightHeadingSmallRegular} ${fontSizeHeadingSmallRegular}/${lineHeightHeadingSmallRegular} ${fontFamilyHeadingSmallRegular}`
68
+
69
+ // Heading-Small-Bold
70
+ export const fontSizeHeadingSmallBold = fontSizeHeadingSmall
71
+ export const lineHeightHeadingSmallBold = lineHeightHeadingSmall
72
+ export const fontFamilyHeadingSmallBold = fontFamilyHeadingSmall
73
+ export const fontWeightHeadingSmallBold = fontWeightBold
74
+ export const fontStyleHeadingSmallBold = `${fontWeightHeadingSmallBold} ${fontSizeHeadingSmallBold}/${lineHeightHeadingSmallBold} ${fontFamilyHeadingSmallBold}`
75
+ export const fontStyleHeadingSmallSemiBold = `${fontWeightSemiBold} ${fontSizeHeadingSmallBold}/${lineHeightHeadingSmallBold} ${fontFamilyHeadingSmallBold}`
76
+
77
+ // Body-Large
78
+ const fontSizeBodyLarge = '1rem' // 16px
79
+ const lineHeightBodyLarge = '1.5rem' // 24px
80
+ const fontFamilyBodyLarge = fontFamily
81
+
82
+ // Body-Large-Medium
83
+ export const fontSizeBodyLargeSemiBold = fontSizeBodyLarge
84
+ export const lineHeightBodyLargeSemiBold = lineHeightBodyLarge
85
+ export const fontFamilyBodyLargeSemiBold = fontFamilyBodyLarge
86
+ export const fontWeightBodyLargeSemiBold = fontWeightSemiBold
87
+ export const fontStyleBodyLargeSemiBold = `${fontWeightBodyLargeSemiBold} ${fontSizeBodyLargeSemiBold}/${lineHeightBodyLargeSemiBold} ${fontFamilyBodyLargeSemiBold}`
88
+
89
+ // Body-Large-Regular
90
+ export const fontSizeBodyLargeRegular = fontSizeBodyLarge
91
+ export const lineHeightBodyLargeRegular = lineHeightBodyLarge
92
+ export const fontFamilyBodyLargeRegular = fontFamilyBodyLarge
93
+ export const fontWeightBodyLargeRegular = fontWeightRegular
94
+ export const fontStyleBodyLargeRegular = `${fontWeightBodyLargeRegular} ${fontSizeBodyLargeRegular}/${lineHeightBodyLargeRegular} ${fontFamilyBodyLargeRegular}`
95
+
96
+ // Body-Default
97
+ const fontSizeBodyDefault = '0.875rem' // 14px
98
+ const lineHeightBodyDefault = '1.25rem' // 20px
99
+ const fontFamilyBodyDefault = fontFamily
100
+
101
+ // Body-Default-Medium
102
+ export const fontSizeBodyDefaultSemiBold = fontSizeBodyDefault
103
+ export const lineHeightBodyDefaultSemiBold = lineHeightBodyDefault
104
+ export const fontFamilyBodyDefaultSemiBold = fontFamilyBodyDefault
105
+ export const fontWeightBodyDefaultSemiBold = fontWeightSemiBold
106
+ export const fontStyleBodyDefaultSemiBold = `${fontWeightBodyDefaultSemiBold} ${fontSizeBodyDefaultSemiBold}/${lineHeightBodyDefaultSemiBold} ${fontFamilyBodyDefaultSemiBold}`
107
+
108
+ // Body-Default-Regular
109
+ export const fontSizeBodyDefaultRegular = fontSizeBodyDefault
110
+ export const lineHeightBodyDefaultRegular = lineHeightBodyDefault
111
+ export const fontFamilyBodyDefaultRegular = fontFamilyBodyDefault
112
+ export const fontWeightBodyDefaultRegular = fontWeightRegular
113
+ export const fontStyleBodyDefaultRegular = `${fontWeightBodyDefaultRegular} ${fontSizeBodyDefaultRegular}/${lineHeightBodyDefaultRegular} ${fontFamilyBodyDefaultRegular}`
114
+
115
+ // Caption
116
+ const fontSizeCaption = '0.8125rem' // 13px
117
+ const lineHeightCaption = '1rem' // 16px
118
+ const fontFamilyCaption = fontFamily
119
+
120
+ // Caption-Bold
121
+ export const fontSizeCaptionBold = fontSizeCaption
122
+ export const lineHeightCaptionBold = lineHeightCaption
123
+ export const fontFamilyCaptionBold = fontFamilyCaption
124
+ export const fontWeightCaptionBold = fontWeightBold
125
+ export const fontStyleCaptionBold = `${fontWeightCaptionBold} ${fontSizeCaptionBold}/${lineHeightCaptionBold} ${fontFamilyCaptionBold}`
126
+
127
+ // Caption-Medium
128
+ export const fontSizeCaptionSemiBold = fontSizeCaption
129
+ export const lineHeightCaptionSemiBold = lineHeightCaption
130
+ export const fontFamilyCaptionSemiBold = fontFamilyCaption
131
+ export const fontWeightCaptionSemiBold = fontWeightSemiBold
132
+ export const fontStyleCaptionSemiBold = `${fontWeightCaptionSemiBold} ${fontSizeCaptionSemiBold}/${lineHeightCaptionSemiBold} ${fontFamilyCaptionSemiBold}`
133
+
134
+ // Caption-Regular
135
+ export const fontSizeCaptionRegular = fontSizeCaption
136
+ export const lineHeightCaptionRegular = lineHeightCaption
137
+ export const fontFamilyCaptionRegular = fontFamilyCaption
138
+ export const fontWeightCaptionRegular = fontWeightRegular
139
+ export const fontStyleCaptionRegular = `${fontWeightCaptionRegular} ${fontSizeCaptionRegular}/${lineHeightCaptionRegular} ${fontFamilyCaptionRegular}`
140
+
141
+ // Code
142
+ const fontSizeCode = '0.8125rem' // 12px
143
+ const lineHeightCode = '1.25rem' // 20px
144
+ const fontFamilyCode = 'Reddit Mono'
145
+
146
+ // Code-Regular
147
+ export const fontSizeCodeRegular = fontSizeCode
148
+ export const lineHeightCodeRegular = lineHeightCode
149
+ export const fontFamilyCodeRegular = fontFamilyCode
150
+ export const fontWeightCodeRegular = fontWeightRegular
151
+ export const fontStyleCodeRegular = `${fontWeightCodeRegular} ${fontSizeCodeRegular}/${lineHeightCodeRegular} ${fontFamilyCodeRegular}`
@@ -0,0 +1,2 @@
1
+ export const floatDropShadow =
2
+ 'box-shadow: 0px 0px 6px 6px rgba(22, 33, 45, 0.25);'
@@ -0,0 +1,5 @@
1
+ import { describe, it } from 'vitest'
2
+
3
+ describe('useConditionalConfirm', () => {
4
+ it.todo('replace deprecated enzyme test')
5
+ })
@@ -0,0 +1,46 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { act, renderHook } from '@testing-library/react'
3
+ import { useDrag } from '../useDrag'
4
+ import type { ElementPosition } from '../useDrag'
5
+
6
+ const mockPosition: ElementPosition = {
7
+ width: 100,
8
+ height: 200,
9
+ x: 10,
10
+ y: 20,
11
+ }
12
+
13
+ describe('useDrag', () => {
14
+ it('useDrag returns UseDragResult', () => {
15
+ const { result } = renderHook(() => useDrag(mockPosition))
16
+
17
+ expect(result.current.position.width).toBe(mockPosition.width)
18
+ expect(result.current.position.height).toBe(mockPosition.height)
19
+ expect(result.current.position.x).toBe(mockPosition.x)
20
+ expect(result.current.position.y).toBe(mockPosition.y)
21
+ expect(result.current.style.width).toBe(`${mockPosition.width}px`)
22
+ expect(result.current.style.height).toBe(`${mockPosition.height}px`)
23
+ expect(result.current.style.touchAction).toBe('none')
24
+ expect(result.current.style.transform).toBe(
25
+ `translate3D(${mockPosition.x}px, ${mockPosition.y}px, 0)`
26
+ )
27
+ expect(result.current.style.position).toBe('absolute')
28
+ expect(typeof result.current.isEnabled).toBe('boolean')
29
+ })
30
+
31
+ it('When calling enable, isEnabled true', () => {
32
+ const { result } = renderHook(() => useDrag(mockPosition))
33
+ act(() => {
34
+ result.current.enable()
35
+ })
36
+ expect(result.current.isEnabled).toBe(true)
37
+ })
38
+
39
+ it('When calling disable, isEnabled false', () => {
40
+ const { result } = renderHook(() => useDrag(mockPosition))
41
+ act(() => {
42
+ result.current.disable()
43
+ })
44
+ expect(result.current.isEnabled).toBe(false)
45
+ })
46
+ })
@@ -0,0 +1,5 @@
1
+ import { describe, it } from 'vitest'
2
+
3
+ describe('useInterval hook', () => {
4
+ it.todo('replace deprecated enzyme test')
5
+ })