@opentrons/components 0.1.6-alpha.2 → 0.1.6-alpha.21

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 (373) hide show
  1. package/Makefile +5 -1
  2. package/package.json +6 -7
  3. package/src/__mocks__/file.js +10 -0
  4. package/src/alerts/AlertItem.stories.tsx +49 -0
  5. package/src/alerts/AlertItem.tsx +85 -0
  6. package/src/alerts/index.ts +3 -0
  7. package/src/atoms/Checkbox/Checkbox.stories.tsx +24 -0
  8. package/src/atoms/Checkbox/index.tsx +127 -0
  9. package/src/atoms/CheckboxField/CheckboxField.stories.tsx +30 -0
  10. package/src/atoms/CheckboxField/index.tsx +171 -0
  11. package/src/atoms/Chip/Chip.stories.tsx +59 -0
  12. package/src/atoms/Chip/index.tsx +172 -0
  13. package/src/atoms/Divider/index.tsx +15 -0
  14. package/src/atoms/InputField/InputField.stories.tsx +77 -0
  15. package/src/atoms/InputField/index.tsx +383 -0
  16. package/src/atoms/ListButton/ListButton.stories.tsx +133 -0
  17. package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordion.tsx +65 -0
  18. package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordionContainer.tsx +23 -0
  19. package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +108 -0
  20. package/src/atoms/ListButton/ListButtonChildren/index.ts +3 -0
  21. package/src/atoms/ListButton/index.tsx +72 -0
  22. package/src/atoms/ListItem/ListItem.stories.tsx +96 -0
  23. package/src/atoms/ListItem/ListItemChildren/ListItemCustomize.tsx +78 -0
  24. package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +42 -0
  25. package/src/atoms/ListItem/ListItemChildren/index.ts +2 -0
  26. package/src/atoms/ListItem/index.tsx +89 -0
  27. package/src/atoms/MenuList/MenuItem.stories.tsx +20 -0
  28. package/src/atoms/MenuList/MenuItem.tsx +55 -0
  29. package/src/atoms/MenuList/MenuList.stories.tsx +31 -0
  30. package/src/atoms/MenuList/OverflowBtn.stories.tsx +17 -0
  31. package/src/atoms/MenuList/OverflowBtn.tsx +76 -0
  32. package/src/atoms/MenuList/index.tsx +50 -0
  33. package/src/atoms/Snackbar/Snackbar.stories.tsx +67 -0
  34. package/src/atoms/Snackbar/index.tsx +91 -0
  35. package/src/atoms/StepMeter/index.tsx +53 -0
  36. package/src/atoms/StyledText/LegacyStyledText.stories.tsx +106 -0
  37. package/src/atoms/StyledText/LegacyStyledText.tsx +95 -0
  38. package/src/atoms/StyledText/StyledText.stories.tsx +46 -0
  39. package/src/atoms/StyledText/StyledText.tsx +323 -0
  40. package/src/atoms/StyledText/index.ts +2 -0
  41. package/src/atoms/Tag/Tag.stories.tsx +48 -0
  42. package/src/atoms/Tag/index.tsx +116 -0
  43. package/src/atoms/Toast/ODDToast.stories.tsx +68 -0
  44. package/src/atoms/Toast/Toast.stories.tsx +55 -0
  45. package/src/atoms/Toast/index.tsx +439 -0
  46. package/src/atoms/ToggleGroup/ToggleGroup.stories.tsx +39 -0
  47. package/src/atoms/ToggleGroup/index.tsx +91 -0
  48. package/src/atoms/Tooltip/Tooltip.stories.tsx +99 -0
  49. package/src/atoms/Tooltip/index.tsx +38 -0
  50. package/src/atoms/buttons/AlertPrimaryButton.tsx +26 -0
  51. package/src/atoms/buttons/AltPrimaryButton.tsx +31 -0
  52. package/src/atoms/buttons/EmptySelectorButton.stories.tsx +36 -0
  53. package/src/atoms/buttons/EmptySelectorButton.tsx +83 -0
  54. package/src/atoms/buttons/LargeButton.stories.tsx +99 -0
  55. package/src/atoms/buttons/LargeButton.tsx +320 -0
  56. package/src/atoms/buttons/PrimaryButton.tsx +36 -0
  57. package/src/atoms/buttons/RadioButton.stories.tsx +35 -0
  58. package/src/atoms/buttons/RadioButton.tsx +217 -0
  59. package/src/atoms/buttons/SecondaryButton.tsx +62 -0
  60. package/src/atoms/buttons/buttons.stories.tsx +78 -0
  61. package/src/atoms/buttons/index.ts +6 -0
  62. package/src/atoms/index.ts +20 -0
  63. package/src/barrel.ts +10 -0
  64. package/src/buttons/Button.tsx +96 -0
  65. package/src/buttons/DeprecatedPrimaryButton.tsx +24 -0
  66. package/src/buttons/FlatButton.tsx +21 -0
  67. package/src/buttons/IconButton.tsx +37 -0
  68. package/src/buttons/OutlineButton.tsx +24 -0
  69. package/src/buttons/index.ts +7 -0
  70. package/src/controls/ControlInfo.tsx +13 -0
  71. package/src/controls/LabeledButton.tsx +28 -0
  72. package/src/controls/LabeledCheckbox.tsx +35 -0
  73. package/src/controls/LabeledControl.tsx +24 -0
  74. package/src/controls/LabeledRadioGroup.tsx +27 -0
  75. package/src/controls/LabeledSelect.tsx +34 -0
  76. package/src/controls/LabeledToggle.tsx +35 -0
  77. package/src/controls/StackedLabeledControl.tsx +28 -0
  78. package/src/controls/ToggleButton.tsx +25 -0
  79. package/src/controls/index.ts +10 -0
  80. package/src/forms/DeprecatedCheckboxField.stories.tsx +31 -0
  81. package/src/forms/DeprecatedCheckboxField.tsx +94 -0
  82. package/src/forms/DropdownField.stories.tsx +44 -0
  83. package/src/forms/DropdownField.tsx +106 -0
  84. package/src/forms/FormGroup.stories.tsx +31 -0
  85. package/src/forms/FormGroup.tsx +53 -0
  86. package/src/forms/InputField.stories.tsx +41 -0
  87. package/src/forms/LegacyInputField.tsx +123 -0
  88. package/src/forms/RadioGroup.stories.tsx +44 -0
  89. package/src/forms/RadioGroup.tsx +87 -0
  90. package/src/forms/Select.stories.tsx +117 -0
  91. package/src/forms/Select.tsx +132 -0
  92. package/src/forms/SelectField.tsx +94 -0
  93. package/src/forms/ToggleField.stories.tsx +31 -0
  94. package/src/forms/ToggleField.tsx +59 -0
  95. package/src/forms/index.ts +8 -0
  96. package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +94 -0
  97. package/src/hardware-sim/BaseDeck/BaseDeck.tsx +423 -0
  98. package/src/hardware-sim/BaseDeck/SingleSlotFixture.tsx +199 -0
  99. package/src/hardware-sim/BaseDeck/SlotBase.tsx +5 -0
  100. package/src/hardware-sim/BaseDeck/SlotClip.tsx +15 -0
  101. package/src/hardware-sim/BaseDeck/StagingAreaFixture.tsx +114 -0
  102. package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +114 -0
  103. package/src/hardware-sim/BaseDeck/WasteChuteStagingAreaFixture.tsx +68 -0
  104. package/src/hardware-sim/BaseDeck/__fixtures__/index.ts +165 -0
  105. package/src/hardware-sim/BaseDeck/index.ts +5 -0
  106. package/src/hardware-sim/BaseDeck/something.test.tsx +7 -0
  107. package/src/hardware-sim/Deck/DeckFromLayers.tsx +58 -0
  108. package/src/hardware-sim/Deck/FlexTrash.tsx +128 -0
  109. package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +97 -0
  110. package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +251 -0
  111. package/src/hardware-sim/Deck/OT2Layers.tsx +153 -0
  112. package/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx +46 -0
  113. package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +42 -0
  114. package/src/hardware-sim/Deck/RobotCoordsText.tsx +32 -0
  115. package/src/hardware-sim/Deck/RobotWorkSpace.tsx +90 -0
  116. package/src/hardware-sim/Deck/SlotLabels.tsx +111 -0
  117. package/src/hardware-sim/Deck/__mocks__/getDeckDefinitions.ts +29 -0
  118. package/src/hardware-sim/Deck/constants.ts +12 -0
  119. package/src/hardware-sim/Deck/index.tsx +8 -0
  120. package/src/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.tsx +91 -0
  121. package/src/hardware-sim/DeckConfigurator/DeckConfigurator.stories.tsx +110 -0
  122. package/src/hardware-sim/DeckConfigurator/EmptyConfigFixture.tsx +131 -0
  123. package/src/hardware-sim/DeckConfigurator/HeaterShakerFixture.tsx +102 -0
  124. package/src/hardware-sim/DeckConfigurator/MagneticBlockFixture.tsx +130 -0
  125. package/src/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.tsx +89 -0
  126. package/src/hardware-sim/DeckConfigurator/StaticFixture.tsx +54 -0
  127. package/src/hardware-sim/DeckConfigurator/TemperatureModuleFixture.tsx +103 -0
  128. package/src/hardware-sim/DeckConfigurator/ThermocyclerFixture.tsx +89 -0
  129. package/src/hardware-sim/DeckConfigurator/TrashBinConfigFixture.tsx +99 -0
  130. package/src/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.tsx +96 -0
  131. package/src/hardware-sim/DeckConfigurator/constants.ts +81 -0
  132. package/src/hardware-sim/DeckConfigurator/index.tsx +285 -0
  133. package/src/hardware-sim/DeckSlotLocation/index.tsx +88 -0
  134. package/src/hardware-sim/Labware/Labware.tsx +173 -0
  135. package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96DeepWellAdapter.tsx +23 -0
  136. package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96FlatBottomAdapter.tsx +7 -0
  137. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAluminumFlatBottomPlate.tsx +13 -0
  138. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx +100 -0
  139. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsFlex96TiprackAdapter.tsx +13 -0
  140. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx +83 -0
  141. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsUniversalFlatAdapter.tsx +13 -0
  142. package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +73 -0
  143. package/src/hardware-sim/Labware/LabwareRender.stories.tsx +96 -0
  144. package/src/hardware-sim/Labware/LabwareRender.tsx +173 -0
  145. package/src/hardware-sim/Labware/LabwareStackRender.tsx +272 -0
  146. package/src/hardware-sim/Labware/index.ts +6 -0
  147. package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +39 -0
  148. package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +133 -0
  149. package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +118 -0
  150. package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +121 -0
  151. package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +38 -0
  152. package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +77 -0
  153. package/src/hardware-sim/Labware/labwareInternals/Well.tsx +74 -0
  154. package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +121 -0
  155. package/src/hardware-sim/Labware/labwareInternals/index.ts +8 -0
  156. package/src/hardware-sim/Labware/labwareInternals/types.ts +18 -0
  157. package/src/hardware-sim/Module/HeaterShaker.tsx +83 -0
  158. package/src/hardware-sim/Module/MagneticBlock.tsx +49 -0
  159. package/src/hardware-sim/Module/MagneticModule.tsx +51 -0
  160. package/src/hardware-sim/Module/Module.stories.tsx +90 -0
  161. package/src/hardware-sim/Module/ModuleTag.tsx +38 -0
  162. package/src/hardware-sim/Module/PlateReader.tsx +208 -0
  163. package/src/hardware-sim/Module/Temperature.tsx +54 -0
  164. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN1.tsx +248 -0
  165. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN2.tsx +286 -0
  166. package/src/hardware-sim/Module/Thermocycler/index.tsx +49 -0
  167. package/src/hardware-sim/Module/index.tsx +227 -0
  168. package/src/hardware-sim/Pipette/EightEmanatingNozzles.tsx +23 -0
  169. package/src/hardware-sim/Pipette/EmanatingNozzle.tsx +52 -0
  170. package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +71 -0
  171. package/src/hardware-sim/Pipette/PipetteRender.tsx +92 -0
  172. package/src/hardware-sim/Pipette/constants.ts +10 -0
  173. package/src/hardware-sim/Pipette/index.ts +1 -0
  174. package/src/hardware-sim/ProtocolDeck/LabwareInfo.tsx +68 -0
  175. package/src/hardware-sim/ProtocolDeck/ProtocolDeck.stories.tsx +25 -0
  176. package/src/hardware-sim/ProtocolDeck/__fixtures__/analysis_QIAseqFX24xv4_8.json +47145 -0
  177. package/src/hardware-sim/ProtocolDeck/index.tsx +174 -0
  178. package/src/hardware-sim/ProtocolDeck/types.ts +6 -0
  179. package/src/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.ts +33 -0
  180. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.ts +155 -0
  181. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.ts +42 -0
  182. package/src/hardware-sim/ProtocolDeck/utils/getModulesInSlots.ts +129 -0
  183. package/src/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.ts +29 -0
  184. package/src/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.ts +30 -0
  185. package/src/hardware-sim/ProtocolDeck/utils/index.ts +3 -0
  186. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +28 -0
  187. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.tsx +52 -0
  188. package/src/hardware-sim/RobotCoordinateSpace/index.ts +2 -0
  189. package/src/hardware-sim/index.ts +11 -0
  190. package/src/hardware-sim/utils.ts +18 -0
  191. package/src/helix-design-system/borders.ts +32 -0
  192. package/src/helix-design-system/colors.ts +100 -0
  193. package/src/helix-design-system/index.ts +4 -0
  194. package/src/helix-design-system/product/index.ts +1 -0
  195. package/src/helix-design-system/product/typography.ts +151 -0
  196. package/src/helix-design-system/style.ts +2 -0
  197. package/src/hooks/index.ts +15 -0
  198. package/src/hooks/useConditionalConfirm.ts +70 -0
  199. package/src/hooks/useDrag.ts +90 -0
  200. package/src/hooks/useIdle.ts +68 -0
  201. package/src/hooks/useInterval.ts +38 -0
  202. package/src/hooks/useLongPress.ts +83 -0
  203. package/src/hooks/useMenuHandleClickOutside.tsx +46 -0
  204. package/src/hooks/useMountEffect.ts +12 -0
  205. package/src/hooks/usePrevious.ts +19 -0
  206. package/src/hooks/useScrolling.ts +33 -0
  207. package/src/hooks/useSelectDeckLocation/SelectDeckLocation.stories.tsx +55 -0
  208. package/src/hooks/useSelectDeckLocation/index.tsx +331 -0
  209. package/src/hooks/useSwipe.ts +86 -0
  210. package/src/hooks/useTimeout.ts +33 -0
  211. package/src/hooks/useToggle.ts +27 -0
  212. package/src/icons/Icon.stories.tsx +37 -0
  213. package/src/icons/Icon.tsx +79 -0
  214. package/src/icons/IconList.stories.tsx +108 -0
  215. package/src/icons/ModuleIcon.tsx +48 -0
  216. package/src/icons/NotificationIcon.tsx +41 -0
  217. package/src/icons/icon-data.ts +821 -0
  218. package/src/icons/index.ts +6 -0
  219. package/src/images/index.ts +1 -0
  220. package/src/images/labware/index.ts +1 -0
  221. package/src/images/labware/measurement-guide/images/depth/depth-plate-flat@3x.png +0 -0
  222. package/src/images/labware/measurement-guide/images/depth/depth-plate-round@3x.png +0 -0
  223. package/src/images/labware/measurement-guide/images/depth/depth-plate-v@3x.png +0 -0
  224. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-flat@3x.png +0 -0
  225. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-round@3x.png +0 -0
  226. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-v@3x.png +0 -0
  227. package/src/images/labware/measurement-guide/images/depth/length-tip-rack@3x.png +0 -0
  228. package/src/images/labware/measurement-guide/images/dimensions/footprint@3x.png +0 -0
  229. package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-plate@3x.png +0 -0
  230. package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-tubes@3x.png +0 -0
  231. package/src/images/labware/measurement-guide/images/dimensions/height-plate-and-reservoir@3x.png +0 -0
  232. package/src/images/labware/measurement-guide/images/dimensions/height-tip-rack@3x.png +0 -0
  233. package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack-irregular@3x.png +0 -0
  234. package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack@3x.png +0 -0
  235. package/src/images/labware/measurement-guide/images/offset/offset-reservoir@3x.png +0 -0
  236. package/src/images/labware/measurement-guide/images/offset/offset-well-circular@3x.png +0 -0
  237. package/src/images/labware/measurement-guide/images/offset/offset-well-rectangular@3x.png +0 -0
  238. package/src/images/labware/measurement-guide/images/shape/shape-circular@3x.png +0 -0
  239. package/src/images/labware/measurement-guide/images/shape/shape-rectangular@3x.png +0 -0
  240. package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir-multi-row@3x.png +0 -0
  241. package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir@3x.png +0 -0
  242. package/src/images/labware/measurement-guide/images/spacing/spacing-well-circular@3x.png +0 -0
  243. package/src/images/labware/measurement-guide/images/spacing/spacing-well-rectangular@3x.png +0 -0
  244. package/src/images/labware/measurement-guide/index.ts +272 -0
  245. package/src/index.ts +2 -0
  246. package/src/instrument/InstrumentDiagram.stories.tsx +42 -0
  247. package/src/instrument/InstrumentDiagram.tsx +58 -0
  248. package/src/instrument/InstrumentGroup.stories.tsx +88 -0
  249. package/src/instrument/InstrumentGroup.tsx +35 -0
  250. package/src/instrument/InstrumentInfo.tsx +107 -0
  251. package/src/instrument/PipetteSelect.stories.tsx +40 -0
  252. package/src/instrument/PipetteSelect.tsx +170 -0
  253. package/src/instrument/eight-channel-flex.png +0 -0
  254. package/src/instrument/index.ts +4 -0
  255. package/src/instrument/multi-channel_GEN1_800px.png +0 -0
  256. package/src/instrument/multi-channel_GEN2_800px.png +0 -0
  257. package/src/instrument/ninety-six-channel-gen1.png +0 -0
  258. package/src/instrument/pipetteGEN2Multi.png +0 -0
  259. package/src/instrument/pipetteGEN2Single.png +0 -0
  260. package/src/instrument/pipetteMulti.png +0 -0
  261. package/src/instrument/pipetteSingle.png +0 -0
  262. package/src/instrument/single-channel-flex.png +0 -0
  263. package/src/instrument/single-channel_GEN2_800px.png +0 -0
  264. package/src/instrument/single_channel_GEN1_800px.png +0 -0
  265. package/src/interaction-enhancers/ClickOutside.ts +57 -0
  266. package/src/interaction-enhancers/HandleKeypress.tsx +69 -0
  267. package/src/interaction-enhancers/index.ts +4 -0
  268. package/src/interaction-enhancers/useHover.ts +84 -0
  269. package/src/interaction-enhancers/useOnClickOutside.ts +42 -0
  270. package/src/legacy-hardware-sim/LabwareNameOverlay.tsx +22 -0
  271. package/src/legacy-hardware-sim/ModuleItem.tsx +145 -0
  272. package/src/legacy-hardware-sim/index.ts +2 -0
  273. package/src/lists/SidePanelGroup.tsx +48 -0
  274. package/src/lists/TitledList.tsx +155 -0
  275. package/src/lists/index.ts +3 -0
  276. package/src/modals/AlertModal.tsx +89 -0
  277. package/src/modals/ContinueModal.tsx +32 -0
  278. package/src/modals/LegacyModal.tsx +59 -0
  279. package/src/modals/Modal.stories.tsx +52 -0
  280. package/src/modals/Modal.tsx +96 -0
  281. package/src/modals/ModalHeader.tsx +100 -0
  282. package/src/modals/ModalShell.tsx +155 -0
  283. package/src/modals/Overlay.tsx +38 -0
  284. package/src/modals/SpinnerModal.tsx +35 -0
  285. package/src/modals/SpinnerModalPage.tsx +30 -0
  286. package/src/modals/index.ts +10 -0
  287. package/src/molecules/Banner/Banner.stories.tsx +41 -0
  288. package/src/molecules/Banner/index.tsx +147 -0
  289. package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +65 -0
  290. package/src/molecules/DeckInfoLabel/index.tsx +95 -0
  291. package/src/molecules/DeckLabel/DeckLabel.stories.tsx +31 -0
  292. package/src/molecules/DeckLabel/index.tsx +80 -0
  293. package/src/molecules/DropdownMenu/DropdownMenu.stories.tsx +30 -0
  294. package/src/molecules/DropdownMenu/index.tsx +343 -0
  295. package/src/molecules/InfoScreen/InfoScreen.stories.tsx +50 -0
  296. package/src/molecules/InfoScreen/index.tsx +54 -0
  297. package/src/molecules/LiquidIcon/LiquidIcon.stories.tsx +53 -0
  298. package/src/molecules/LiquidIcon/index.tsx +68 -0
  299. package/src/molecules/ParametersTable/ParametersTable.stories.tsx +172 -0
  300. package/src/molecules/ParametersTable/index.tsx +198 -0
  301. package/src/molecules/Tabs/Tabs.stories.tsx +74 -0
  302. package/src/molecules/Tabs/index.tsx +94 -0
  303. package/src/molecules/index.ts +8 -0
  304. package/src/nav/SidePanel.stories.tsx +29 -0
  305. package/src/nav/SidePanel.tsx +21 -0
  306. package/src/nav/index.ts +2 -0
  307. package/src/organisms/DeckLabelSet/DeckLabelSet.stories.tsx +46 -0
  308. package/src/organisms/DeckLabelSet/index.tsx +69 -0
  309. package/src/organisms/EndUserAgreementFooter/index.tsx +49 -0
  310. package/src/organisms/Toolbox/Toolbox.stories.tsx +23 -0
  311. package/src/organisms/Toolbox/index.tsx +160 -0
  312. package/src/organisms/index.ts +3 -0
  313. package/src/primitives/Box.stories.tsx +25 -0
  314. package/src/primitives/Box.tsx +17 -0
  315. package/src/primitives/Btn.stories.tsx +105 -0
  316. package/src/primitives/Btn.tsx +266 -0
  317. package/src/primitives/Flex.stories.tsx +50 -0
  318. package/src/primitives/Flex.tsx +17 -0
  319. package/src/primitives/ForeignObject.tsx +70 -0
  320. package/src/primitives/Link.stories.tsx +27 -0
  321. package/src/primitives/Link.tsx +32 -0
  322. package/src/primitives/README.md +188 -0
  323. package/src/primitives/Svg.stories.tsx +36 -0
  324. package/src/primitives/Svg.tsx +68 -0
  325. package/src/primitives/Text.stories.tsx +17 -0
  326. package/src/primitives/Text.tsx +18 -0
  327. package/src/primitives/index.ts +10 -0
  328. package/src/primitives/style-props.ts +197 -0
  329. package/src/primitives/types.ts +120 -0
  330. package/src/robot-types.ts +4 -0
  331. package/src/slotmap/OT2SlotMap.tsx +73 -0
  332. package/src/slotmap/index.ts +1 -0
  333. package/src/structure/Card.stories.tsx +28 -0
  334. package/src/structure/Card.tsx +64 -0
  335. package/src/structure/LabeledValue.stories.tsx +17 -0
  336. package/src/structure/LabeledValue.tsx +31 -0
  337. package/src/structure/Pill.tsx +43 -0
  338. package/src/structure/Splash.stories.tsx +24 -0
  339. package/src/structure/Splash.tsx +22 -0
  340. package/src/structure/TitleBar.stories.tsx +42 -0
  341. package/src/structure/TitleBar.tsx +81 -0
  342. package/src/structure/index.ts +7 -0
  343. package/src/styles/borders.ts +16 -0
  344. package/src/styles/colors.ts +58 -0
  345. package/src/styles/cursor.ts +12 -0
  346. package/src/styles/flexbox.ts +39 -0
  347. package/src/styles/index.ts +8 -0
  348. package/src/styles/layout.ts +31 -0
  349. package/src/styles/position.ts +5 -0
  350. package/src/styles/spacing.ts +11 -0
  351. package/src/styles/typography.ts +90 -0
  352. package/src/testing/utils/index.ts +2 -0
  353. package/src/testing/utils/matchers.ts +31 -0
  354. package/src/testing/utils/renderWithProviders.tsx +53 -0
  355. package/src/tooltips/DeprecatedTooltip.tsx +105 -0
  356. package/src/tooltips/HoverTooltip.tsx +83 -0
  357. package/src/tooltips/LegacyTooltip.stories.tsx +98 -0
  358. package/src/tooltips/LegacyTooltip.tsx +151 -0
  359. package/src/tooltips/constants.ts +28 -0
  360. package/src/tooltips/index.ts +10 -0
  361. package/src/tooltips/styles.ts +20 -0
  362. package/src/tooltips/types.ts +73 -0
  363. package/src/tooltips/useHoverTooltip.ts +47 -0
  364. package/src/tooltips/usePopper.ts +87 -0
  365. package/src/tooltips/useTooltip.ts +100 -0
  366. package/src/ui-style-constants/index.ts +4 -0
  367. package/src/ui-style-constants/responsiveness.ts +15 -0
  368. package/src/ui-style-constants/spacing.ts +18 -0
  369. package/src/ui-style-constants/typography.ts +258 -0
  370. package/src/ui-style-constants/viewport.ts +18 -0
  371. package/src/utils.ts +56 -0
  372. package/{vite.config.ts → vite.config.mts} +2 -0
  373. package/lib/index.mjs +0 -19869
@@ -0,0 +1,4 @@
1
+ export * as RESPONSIVENESS from './responsiveness'
2
+ export * as SPACING from './spacing'
3
+ export * as TYPOGRAPHY from './typography'
4
+ export * as VIEWPORT from './viewport'
@@ -0,0 +1,15 @@
1
+ // TODO(BC, 2023-04-20): this is media not sufficient to determine that we are on the
2
+ // touch-only On Device Display of the flex. For development purposes, we are omitting
3
+ // the (hover: none) to allow for off device testing. The hover rule should be reintroduced
4
+ // before the release of this code to prevent Funny desktop app behavior when the viewport
5
+ // is precisely 600x1024
6
+ export const touchscreenMediaQuerySpecs = '(height: 600px) and (width: 1024px)'
7
+
8
+ // This needs to be recalculated on-render to work with storybook viewport settings, so
9
+ // if you need to support both media types in js use the function
10
+ export const isTouchscreenDynamic = (): boolean =>
11
+ typeof window === 'object' && window.matchMedia != null
12
+ ? window.matchMedia(touchscreenMediaQuerySpecs).matches
13
+ : false
14
+
15
+ export const isTouchscreen = isTouchscreenDynamic()
@@ -0,0 +1,18 @@
1
+ export const spacing2 = '0.125rem' as const // 2px
2
+ export const spacing4 = '0.25rem' as const // 4px
3
+ export const spacing6 = '0.375rem' as const // 6px
4
+ export const spacing8 = '0.5rem' as const // 8px
5
+ export const spacing10 = '0.625rem' as const // 10px
6
+ export const spacing12 = '0.75rem' as const // 12px
7
+ export const spacing16 = '1rem' as const // 16px
8
+ export const spacing20 = '1.25rem' as const // 20px
9
+ export const spacing24 = '1.5rem' as const // 24px
10
+ export const spacing32 = '2rem' as const // 32px
11
+ export const spacing40 = '2.5rem' as const // 40px
12
+ export const spacing44 = '2.75rem' as const // 44px
13
+ export const spacing48 = '3rem' as const // 48px
14
+ export const spacing60 = '3.75rem' as const // 60px
15
+ export const spacing68 = '4.25rem' as const // 68px
16
+ export const spacing80 = '5rem' as const // 80px
17
+ export const spacing120 = '7.5rem' as const // 120px
18
+ export const spacingAuto = 'auto' as const // auto
@@ -0,0 +1,258 @@
1
+ import { css } from 'styled-components'
2
+ import { COLORS } from '../helix-design-system'
3
+
4
+ // Font Sizes
5
+ export const fontSize80 = '5rem' // 80px
6
+ export const fontSize38 = '2.375rem' // 38px
7
+ export const fontSize32 = '2rem' // 32px
8
+ export const fontSize28 = '1.75rem' // 28px
9
+ export const fontSize22 = '1.375rem' // 22px
10
+ export const fontSize20 = '1.25rem' // 20px
11
+ export const fontSizeH1 = '1.188rem' // 19px
12
+ export const fontSizeH2 = '0.9375rem' // 15px
13
+ export const fontSizeH3 = '0.875rem' // 14px
14
+ export const fontSizeH4 = '0.813rem' // 13px
15
+ export const fontSizeH6 = '0.563rem' // 9px
16
+ export const fontSizeP = '0.8125rem' // 13px
17
+ export const fontSizeLabel = '0.6875rem' // 11px
18
+ export const fontSizeCaption = '0.625rem' // 10px
19
+
20
+ // Font Weights
21
+ export const fontWeightBold = 700
22
+ export const fontWeightSemiBold = 600
23
+ export const fontWeightRegular = 400
24
+ export const fontWeightLight = 300
25
+
26
+ // Line Heights
27
+ export const lineHeight96 = '6rem' // 96px
28
+ export const lineHeight48 = '3rem' // 48px
29
+ export const lineHeight42 = '2.625rem' // 42px
30
+ export const lineHeight36 = '2.25rem' // 36px
31
+ export const lineHeight28 = '1.75rem' // 28px
32
+ export const lineHeight24 = '1.5rem' // 24px
33
+ export const lineHeight20 = '1.25rem' // 20px
34
+ export const lineHeight18 = '1.125rem' // 18px
35
+ export const lineHeight16 = '1rem' // 16px
36
+ export const lineHeight12 = '0.75rem' // 12px
37
+ export const lineHeightNormal = 'normal' // normal
38
+
39
+ // font styles
40
+ export const fontStyleNormal = 'normal'
41
+ export const fontStyleItalic = 'italic'
42
+
43
+ // text transforms
44
+ export const textTransformNone = 'none'
45
+ export const textTransformCapitalize = 'capitalize'
46
+ export const textTransformUppercase = 'uppercase'
47
+ export const textTransformLowercase = 'lowercase'
48
+
49
+ export const textAlignLeft = 'left'
50
+ export const textAlignRight = 'right'
51
+ export const textAlignCenter = 'center'
52
+ export const textAlignJustify = 'justify'
53
+
54
+ // text decoration
55
+ export const textDecorationUnderline = 'underline'
56
+
57
+ // Default font styles, color agnostic for first pass
58
+ export const h1Default = css`
59
+ font-size: ${fontSizeH1};
60
+ font-weight: ${fontWeightSemiBold};
61
+ line-height: ${lineHeight24};
62
+ `
63
+
64
+ export const h2Regular = css`
65
+ font-size: ${fontSizeH2};
66
+ font-weight: ${fontWeightRegular};
67
+ line-height: ${lineHeight20};
68
+ `
69
+
70
+ export const h2SemiBold = css`
71
+ font-size: ${fontSizeH2};
72
+ font-weight: ${fontWeightSemiBold};
73
+ line-height: ${lineHeight20};
74
+ `
75
+ export const h3Regular = css`
76
+ font-size: ${fontSizeH3};
77
+ font-weight: ${fontWeightRegular};
78
+ line-height: ${lineHeight20};
79
+ `
80
+
81
+ export const h3SemiBold = css`
82
+ font-size: ${fontSizeH3};
83
+ font-weight: ${fontWeightSemiBold};
84
+ line-height: ${lineHeight20};
85
+ `
86
+
87
+ export const h6Default = css`
88
+ font-size: ${fontSizeH6};
89
+ font-weight: ${fontWeightRegular};
90
+ line-height: ${lineHeight12};
91
+ text-transform: ${textTransformUppercase};
92
+ `
93
+
94
+ export const h6SemiBold = css`
95
+ font-size: ${fontSizeH6};
96
+ font-weight: ${fontWeightSemiBold};
97
+ line-height: ${lineHeight12};
98
+ `
99
+
100
+ export const pRegular = css`
101
+ font-size: ${fontSizeP};
102
+ font-weight: ${fontWeightRegular};
103
+ line-height: ${lineHeight20};
104
+ `
105
+
106
+ export const pSemiBold = css`
107
+ font-size: ${fontSizeP};
108
+ font-weight: ${fontWeightSemiBold};
109
+ line-height: ${lineHeight20};
110
+ `
111
+
112
+ export const labelRegular = css`
113
+ font-size: ${fontSizeLabel};
114
+ font-weight: ${fontWeightRegular};
115
+ line-height: ${lineHeight12};
116
+ `
117
+
118
+ export const labelSemiBold = css`
119
+ font-size: ${fontSizeLabel};
120
+ font-weight: ${fontWeightSemiBold};
121
+ line-height: ${lineHeight12};
122
+ `
123
+
124
+ export const linkPSemiBold = css`
125
+ font-size: ${fontSizeP};
126
+ font-weight: ${fontWeightSemiBold};
127
+ line-height: ${lineHeight20};
128
+ color: ${COLORS.blue50};
129
+
130
+ &:hover {
131
+ color: ${COLORS.blue55};
132
+ }
133
+ `
134
+
135
+ // font styles for touchscreen
136
+ export const level1Header = css`
137
+ font-size: ${fontSize80};
138
+ font-weight: ${fontWeightBold};
139
+ line-height: ${lineHeight96};
140
+ `
141
+
142
+ export const level2HeaderBold = css`
143
+ font-size: ${fontSize38};
144
+ line-height: ${lineHeight48};
145
+ font-weight: ${fontWeightBold};
146
+ `
147
+
148
+ export const level2HeaderSemiBold = css`
149
+ font-size: ${fontSize38};
150
+ line-height: ${lineHeight48};
151
+ font-weight: ${fontWeightSemiBold};
152
+ `
153
+
154
+ export const level2HeaderRegular = css`
155
+ font-size: ${fontSize38};
156
+ line-height: ${lineHeight48};
157
+ font-weight: ${fontWeightRegular};
158
+ `
159
+
160
+ export const level3HeaderBold = css`
161
+ font-size: ${fontSize32};
162
+ line-height: ${lineHeight42};
163
+ font-weight: ${fontWeightBold};
164
+ `
165
+
166
+ export const level3HeaderSemiBold = css`
167
+ font-size: ${fontSize32};
168
+ line-height: ${lineHeight42};
169
+ font-weight: ${fontWeightSemiBold};
170
+ `
171
+
172
+ export const level3HeaderRegular = css`
173
+ font-size: ${fontSize32};
174
+ line-height: ${lineHeight42};
175
+ font-weight: ${fontWeightRegular};
176
+ `
177
+
178
+ export const level4HeaderBold = css`
179
+ font-size: ${fontSize28};
180
+ line-height: ${lineHeight36};
181
+ font-weight: ${fontWeightBold};
182
+ `
183
+
184
+ export const level4HeaderSemiBold = css`
185
+ font-size: ${fontSize28};
186
+ line-height: ${lineHeight36};
187
+ font-weight: ${fontWeightSemiBold};
188
+ `
189
+
190
+ export const level4HeaderRegular = css`
191
+ font-size: ${fontSize28};
192
+ line-height: ${lineHeight36};
193
+ font-weight: ${fontWeightRegular};
194
+ `
195
+
196
+ export const bodyTextBold = css`
197
+ font-size: ${fontSize22};
198
+ line-height: ${lineHeight28};
199
+ font-weight: ${fontWeightBold};
200
+ `
201
+
202
+ export const bodyTextSemiBold = css`
203
+ font-size: ${fontSize22};
204
+ line-height: ${lineHeight28};
205
+ font-weight: ${fontWeightSemiBold};
206
+ `
207
+
208
+ export const bodyTextRegular = css`
209
+ font-size: ${fontSize22};
210
+ line-height: ${lineHeight28};
211
+ font-weight: ${fontWeightRegular};
212
+ `
213
+
214
+ export const smallBodyTextBold = css`
215
+ font-size: ${fontSize20};
216
+ line-height: ${lineHeight24};
217
+ font-weight: ${fontWeightBold};
218
+ `
219
+
220
+ export const smallBodyTextSemiBold = css`
221
+ font-size: ${fontSize20};
222
+ line-height: ${lineHeight24};
223
+ font-weight: ${fontWeightSemiBold};
224
+ `
225
+
226
+ export const smallBodyTextRegular = css`
227
+ font-size: ${fontSize20};
228
+ line-height: ${lineHeight24};
229
+ font-weight: ${fontWeightRegular};
230
+ `
231
+
232
+ export const darkLinkH4SemiBold = css`
233
+ font-size: ${fontSizeH4};
234
+ font-weight: ${fontWeightSemiBold};
235
+ line-height: ${lineHeight20};
236
+ color: ${COLORS.grey50};
237
+ &:hover {
238
+ color: ${COLORS.black90};
239
+ }
240
+ `
241
+
242
+ export const darkLinkLabelSemiBold = css`
243
+ font-size: ${fontSizeLabel};
244
+ font-weight: ${fontWeightSemiBold};
245
+ line-height: ${lineHeight20};
246
+ color: ${COLORS.grey60};
247
+ &:hover {
248
+ color: ${COLORS.black90};
249
+ }
250
+ `
251
+
252
+ export const darkLinkLabelSemiBoldDisabled = css`
253
+ font-size: ${fontSizeLabel};
254
+ font-weight: ${fontWeightSemiBold};
255
+ line-height: ${lineHeight20};
256
+ color: ${COLORS.grey60};
257
+ cursor: not-allowed;
258
+ `
@@ -0,0 +1,18 @@
1
+ // Note (kk:08/29/2023) Needed this in this ts file to avoid check-js errors on CI
2
+ const customViewports = {
3
+ onDeviceDisplay: {
4
+ name: 'Touchscreen',
5
+ type: 'tablet',
6
+ styles: {
7
+ width: '1024px',
8
+ height: '600px',
9
+ },
10
+ },
11
+ }
12
+
13
+ export const touchScreenViewport = {
14
+ viewport: {
15
+ viewports: customViewports,
16
+ defaultViewport: 'onDeviceDisplay',
17
+ },
18
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,56 @@
1
+ export const humanizeLabwareType = (labwareType: string): string => {
2
+ return labwareType.replace(/-|_/g, ' ')
3
+ }
4
+
5
+ export const wellNameSplit = (wellName: string): [string, string] => {
6
+ // Eg B9 => ['B', '9']
7
+ const raw = wellName.split(/(\D+)(\d+)/)
8
+
9
+ if (raw.length !== 4) {
10
+ throw Error('expected /\\D+\\d+/ regexp to split wellName, got ' + wellName)
11
+ }
12
+
13
+ const letters = raw[1]
14
+
15
+ if (letters.length !== 1) {
16
+ throw Error(
17
+ 'expected 1 letter in wellName, got ' +
18
+ letters +
19
+ ' in wellName: ' +
20
+ wellName
21
+ )
22
+ }
23
+
24
+ const numbers = raw[2]
25
+
26
+ return [letters, numbers]
27
+ }
28
+
29
+ /**
30
+ * Truncate a long string to display it
31
+ * @example
32
+ * truncateString('Illumina DNA Prep with Enrichment: Part 1 - Tagmentation, Clean Up, Amplify Tagmlo1234567ted', 88, 66);
33
+ * Illumina DNA Prep with Enrichment: Part 1 - Tagmentation, Clean Up...fy Tagmlo1234567ted
34
+ *
35
+ * @param {string} text - A string param
36
+ * @param {number} maxLength - A maximum length of display
37
+ * @param {number} breakPoint - Optional A point to insert three dots
38
+ *
39
+ * @returns {string} Returns the truncated string
40
+ */
41
+ export function truncateString(
42
+ text: string,
43
+ maxLength: number,
44
+ breakPoint?: number
45
+ ): string {
46
+ const dots = '...'
47
+ if (text.length > maxLength)
48
+ if (breakPoint != null) {
49
+ return `${text.substring(0, breakPoint)}${dots}${text.slice(
50
+ breakPoint - maxLength + dots.length
51
+ )}`
52
+ } else {
53
+ return `${text.slice(0, maxLength - dots.length)}${dots}`
54
+ }
55
+ else return text
56
+ }
@@ -12,6 +12,8 @@ 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
16
+ emptyOutDir: false,
15
17
  commonjsOptions: {
16
18
  transformMixedEsModules: true,
17
19
  esmExternals: true,