@opentrons/components 0.1.6-alpha.16 → 0.1.6-alpha.17

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 (486) hide show
  1. package/lib/atoms/StyledText/StyledText.d.ts +1 -1
  2. package/lib/hardware-sim/Labware/LabwareRender.d.ts +1 -1
  3. package/lib/hardware-sim/Labware/labwareInternals/FilledWells.d.ts +1 -1
  4. package/lib/hardware-sim/Labware/labwareInternals/LabwareOutline.d.ts +1 -1
  5. package/lib/hardware-sim/Labware/labwareInternals/StaticLabware.d.ts +1 -1
  6. package/lib/hardware-sim/Labware/labwareInternals/StrokedWells.d.ts +1 -1
  7. package/lib/instrument/InstrumentDiagram.d.ts +1 -1
  8. package/lib/primitives/Btn.d.ts +1 -1
  9. package/lib/primitives/style-props.d.ts +1 -1
  10. package/lib/primitives/types.d.ts +1 -1
  11. package/lib/styles/typography.d.ts +1 -1
  12. package/package.json +3 -3
  13. package/src/__mocks__/file.js +10 -0
  14. package/src/__tests__/utils.test.ts +27 -0
  15. package/src/alerts/AlertItem.stories.tsx +49 -0
  16. package/src/alerts/AlertItem.tsx +85 -0
  17. package/src/alerts/alerts.module.css +103 -0
  18. package/src/alerts/index.ts +3 -0
  19. package/src/atoms/Checkbox/Checkbox.stories.tsx +24 -0
  20. package/src/atoms/Checkbox/__tests__/Checkbox.test.tsx +55 -0
  21. package/src/atoms/Checkbox/index.tsx +127 -0
  22. package/src/atoms/CheckboxField/CheckboxField.stories.tsx +30 -0
  23. package/src/atoms/CheckboxField/__tests__/CheckboxField.test.tsx +141 -0
  24. package/src/atoms/CheckboxField/index.tsx +171 -0
  25. package/src/atoms/Chip/Chip.stories.tsx +59 -0
  26. package/src/atoms/Chip/__tests__/Chip.test.tsx +429 -0
  27. package/src/atoms/Chip/index.tsx +172 -0
  28. package/src/atoms/Divider/index.tsx +15 -0
  29. package/src/atoms/InputField/InputField.stories.tsx +77 -0
  30. package/src/atoms/InputField/__tests__/InputField.test.tsx +63 -0
  31. package/src/atoms/InputField/index.tsx +383 -0
  32. package/src/atoms/ListButton/ListButton.stories.tsx +133 -0
  33. package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordion.tsx +65 -0
  34. package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordionContainer.tsx +23 -0
  35. package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +108 -0
  36. package/src/atoms/ListButton/ListButtonChildren/index.ts +3 -0
  37. package/src/atoms/ListButton/__tests__/ListButton.test.tsx +46 -0
  38. package/src/atoms/ListButton/__tests__/ListButtonAccordion.test.tsx +35 -0
  39. package/src/atoms/ListButton/__tests__/ListButtonRadioButton.test.tsx +27 -0
  40. package/src/atoms/ListButton/index.tsx +72 -0
  41. package/src/atoms/ListItem/ListItem.stories.tsx +96 -0
  42. package/src/atoms/ListItem/ListItemChildren/ListItemCustomize.tsx +78 -0
  43. package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +42 -0
  44. package/src/atoms/ListItem/ListItemChildren/index.ts +2 -0
  45. package/src/atoms/ListItem/__tests__/ListItem.test.tsx +61 -0
  46. package/src/atoms/ListItem/index.tsx +89 -0
  47. package/src/atoms/MenuList/MenuItem.stories.tsx +20 -0
  48. package/src/atoms/MenuList/MenuItem.tsx +55 -0
  49. package/src/atoms/MenuList/MenuList.stories.tsx +31 -0
  50. package/src/atoms/MenuList/OverflowBtn.stories.tsx +17 -0
  51. package/src/atoms/MenuList/OverflowBtn.tsx +76 -0
  52. package/src/atoms/MenuList/__tests__/MenuItem.test.tsx +50 -0
  53. package/src/atoms/MenuList/__tests__/MenuList.test.tsx +36 -0
  54. package/src/atoms/MenuList/__tests__/OverflowBtn.test.tsx +33 -0
  55. package/src/atoms/MenuList/index.tsx +50 -0
  56. package/src/atoms/Snackbar/Snackbar.stories.tsx +67 -0
  57. package/src/atoms/Snackbar/__tests__/Snackbar.test.tsx +73 -0
  58. package/src/atoms/Snackbar/index.tsx +91 -0
  59. package/src/atoms/StepMeter/index.tsx +53 -0
  60. package/src/atoms/StyledText/LegacyStyledText.stories.tsx +106 -0
  61. package/src/atoms/StyledText/LegacyStyledText.tsx +95 -0
  62. package/src/atoms/StyledText/StyledText.stories.tsx +46 -0
  63. package/src/atoms/StyledText/StyledText.tsx +323 -0
  64. package/src/atoms/StyledText/index.ts +2 -0
  65. package/src/atoms/Tag/Tag.stories.tsx +48 -0
  66. package/src/atoms/Tag/__tests__/Tag.test.tsx +55 -0
  67. package/src/atoms/Tag/index.tsx +116 -0
  68. package/src/atoms/Toast/ODDToast.stories.tsx +68 -0
  69. package/src/atoms/Toast/Toast.stories.tsx +55 -0
  70. package/src/atoms/Toast/__tests__/ODDToast.test.tsx +178 -0
  71. package/src/atoms/Toast/__tests__/Toast.test.tsx +174 -0
  72. package/src/atoms/Toast/index.tsx +439 -0
  73. package/src/atoms/ToggleGroup/ToggleGroup.stories.tsx +39 -0
  74. package/src/atoms/ToggleGroup/__tests__/ToggleGroup.test.tsx +28 -0
  75. package/src/atoms/ToggleGroup/index.tsx +91 -0
  76. package/src/atoms/Tooltip/Tooltip.stories.tsx +99 -0
  77. package/src/atoms/Tooltip/__tests__/Tooltip.test.tsx +78 -0
  78. package/src/atoms/Tooltip/index.tsx +38 -0
  79. package/src/atoms/buttons/AlertPrimaryButton.tsx +26 -0
  80. package/src/atoms/buttons/AltPrimaryButton.tsx +31 -0
  81. package/src/atoms/buttons/EmptySelectorButton.stories.tsx +36 -0
  82. package/src/atoms/buttons/EmptySelectorButton.tsx +83 -0
  83. package/src/atoms/buttons/LargeButton.stories.tsx +99 -0
  84. package/src/atoms/buttons/LargeButton.tsx +320 -0
  85. package/src/atoms/buttons/PrimaryButton.tsx +36 -0
  86. package/src/atoms/buttons/RadioButton.stories.tsx +35 -0
  87. package/src/atoms/buttons/RadioButton.tsx +217 -0
  88. package/src/atoms/buttons/SecondaryButton.tsx +62 -0
  89. package/src/atoms/buttons/__tests__/AlertPrimaryButton.test.tsx +47 -0
  90. package/src/atoms/buttons/__tests__/AltPrimaryButton.test.tsx +57 -0
  91. package/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx +42 -0
  92. package/src/atoms/buttons/__tests__/LargeButton.test.tsx +91 -0
  93. package/src/atoms/buttons/__tests__/PrimaryButton.test.tsx +64 -0
  94. package/src/atoms/buttons/__tests__/RadioButton.test.tsx +98 -0
  95. package/src/atoms/buttons/__tests__/SecondaryButton.test.tsx +54 -0
  96. package/src/atoms/buttons/buttons.stories.tsx +78 -0
  97. package/src/atoms/buttons/index.ts +6 -0
  98. package/src/atoms/index.ts +20 -0
  99. package/src/barrel.ts +10 -0
  100. package/src/buttons/Button.tsx +96 -0
  101. package/src/buttons/DeprecatedPrimaryButton.tsx +24 -0
  102. package/src/buttons/FlatButton.tsx +21 -0
  103. package/src/buttons/IconButton.tsx +37 -0
  104. package/src/buttons/OutlineButton.tsx +24 -0
  105. package/src/buttons/buttons.module.css +428 -0
  106. package/src/buttons/index.ts +7 -0
  107. package/src/controls/ControlInfo.tsx +13 -0
  108. package/src/controls/LabeledButton.tsx +28 -0
  109. package/src/controls/LabeledCheckbox.tsx +35 -0
  110. package/src/controls/LabeledControl.tsx +24 -0
  111. package/src/controls/LabeledRadioGroup.tsx +27 -0
  112. package/src/controls/LabeledSelect.tsx +34 -0
  113. package/src/controls/LabeledToggle.tsx +35 -0
  114. package/src/controls/StackedLabeledControl.tsx +28 -0
  115. package/src/controls/ToggleButton.tsx +25 -0
  116. package/src/controls/index.ts +10 -0
  117. package/src/controls/styles.module.css +103 -0
  118. package/src/forms/DeprecatedCheckboxField.stories.tsx +31 -0
  119. package/src/forms/DeprecatedCheckboxField.tsx +94 -0
  120. package/src/forms/DropdownField.stories.tsx +44 -0
  121. package/src/forms/DropdownField.tsx +106 -0
  122. package/src/forms/FormGroup.stories.tsx +31 -0
  123. package/src/forms/FormGroup.tsx +53 -0
  124. package/src/forms/InputField.stories.tsx +41 -0
  125. package/src/forms/LegacyInputField.tsx +123 -0
  126. package/src/forms/RadioGroup.stories.tsx +44 -0
  127. package/src/forms/RadioGroup.tsx +87 -0
  128. package/src/forms/Select.module.css +118 -0
  129. package/src/forms/Select.stories.tsx +117 -0
  130. package/src/forms/Select.tsx +132 -0
  131. package/src/forms/SelectField.module.css +16 -0
  132. package/src/forms/SelectField.tsx +94 -0
  133. package/src/forms/ToggleField.stories.tsx +31 -0
  134. package/src/forms/ToggleField.tsx +59 -0
  135. package/src/forms/__tests__/DeprecatedCheckboxField.test.tsx +5 -0
  136. package/src/forms/__tests__/DropdownField.test.tsx +5 -0
  137. package/src/forms/__tests__/InputField.test.tsx +5 -0
  138. package/src/forms/__tests__/Select.test.tsx +5 -0
  139. package/src/forms/__tests__/SelectField.test.tsx +5 -0
  140. package/src/forms/__tests__/ToggleField.test.tsx +5 -0
  141. package/src/forms/forms.module.css +239 -0
  142. package/src/forms/index.ts +8 -0
  143. package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +94 -0
  144. package/src/hardware-sim/BaseDeck/BaseDeck.tsx +423 -0
  145. package/src/hardware-sim/BaseDeck/SingleSlotFixture.tsx +199 -0
  146. package/src/hardware-sim/BaseDeck/SlotBase.tsx +5 -0
  147. package/src/hardware-sim/BaseDeck/SlotClip.tsx +15 -0
  148. package/src/hardware-sim/BaseDeck/StagingAreaFixture.tsx +114 -0
  149. package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +114 -0
  150. package/src/hardware-sim/BaseDeck/WasteChuteStagingAreaFixture.tsx +68 -0
  151. package/src/hardware-sim/BaseDeck/__fixtures__/index.ts +165 -0
  152. package/src/hardware-sim/BaseDeck/index.ts +5 -0
  153. package/src/hardware-sim/Deck/DeckFromLayers.tsx +58 -0
  154. package/src/hardware-sim/Deck/FlexTrash.tsx +128 -0
  155. package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +97 -0
  156. package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +251 -0
  157. package/src/hardware-sim/Deck/OT2Layers.tsx +153 -0
  158. package/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx +46 -0
  159. package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +42 -0
  160. package/src/hardware-sim/Deck/RobotCoordsText.tsx +32 -0
  161. package/src/hardware-sim/Deck/RobotWorkSpace.tsx +90 -0
  162. package/src/hardware-sim/Deck/SlotLabels.tsx +111 -0
  163. package/src/hardware-sim/Deck/__mocks__/getDeckDefinitions.ts +29 -0
  164. package/src/hardware-sim/Deck/constants.ts +12 -0
  165. package/src/hardware-sim/Deck/index.tsx +8 -0
  166. package/src/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.tsx +91 -0
  167. package/src/hardware-sim/DeckConfigurator/DeckConfigurator.stories.tsx +110 -0
  168. package/src/hardware-sim/DeckConfigurator/EmptyConfigFixture.tsx +131 -0
  169. package/src/hardware-sim/DeckConfigurator/HeaterShakerFixture.tsx +102 -0
  170. package/src/hardware-sim/DeckConfigurator/MagneticBlockFixture.tsx +130 -0
  171. package/src/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.tsx +89 -0
  172. package/src/hardware-sim/DeckConfigurator/StaticFixture.tsx +54 -0
  173. package/src/hardware-sim/DeckConfigurator/TemperatureModuleFixture.tsx +103 -0
  174. package/src/hardware-sim/DeckConfigurator/ThermocyclerFixture.tsx +89 -0
  175. package/src/hardware-sim/DeckConfigurator/TrashBinConfigFixture.tsx +99 -0
  176. package/src/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.tsx +96 -0
  177. package/src/hardware-sim/DeckConfigurator/constants.ts +81 -0
  178. package/src/hardware-sim/DeckConfigurator/index.tsx +285 -0
  179. package/src/hardware-sim/DeckSlotLocation/index.tsx +88 -0
  180. package/src/hardware-sim/Labware/Labware.tsx +173 -0
  181. package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96DeepWellAdapter.tsx +23 -0
  182. package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96FlatBottomAdapter.tsx +7 -0
  183. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAluminumFlatBottomPlate.tsx +13 -0
  184. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx +100 -0
  185. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsFlex96TiprackAdapter.tsx +13 -0
  186. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx +83 -0
  187. package/src/hardware-sim/Labware/LabwareAdapter/OpentronsUniversalFlatAdapter.tsx +13 -0
  188. package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +73 -0
  189. package/src/hardware-sim/Labware/LabwareRender.stories.tsx +96 -0
  190. package/src/hardware-sim/Labware/LabwareRender.tsx +173 -0
  191. package/src/hardware-sim/Labware/LabwareStackRender.tsx +272 -0
  192. package/src/hardware-sim/Labware/__tests__/Labware.test.tsx +43 -0
  193. package/src/hardware-sim/Labware/__tests__/LabwareRender.test.tsx +54 -0
  194. package/src/hardware-sim/Labware/index.ts +6 -0
  195. package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +39 -0
  196. package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +133 -0
  197. package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +118 -0
  198. package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +121 -0
  199. package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +38 -0
  200. package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +77 -0
  201. package/src/hardware-sim/Labware/labwareInternals/Well.tsx +74 -0
  202. package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +121 -0
  203. package/src/hardware-sim/Labware/labwareInternals/__tests__/LabwareWellLabels.test.tsx +66 -0
  204. package/src/hardware-sim/Labware/labwareInternals/__tests__/StrokedWells.test.tsx +31 -0
  205. package/src/hardware-sim/Labware/labwareInternals/__tests__/WellLabels.test.tsx +91 -0
  206. package/src/hardware-sim/Labware/labwareInternals/index.ts +8 -0
  207. package/src/hardware-sim/Labware/labwareInternals/types.ts +18 -0
  208. package/src/hardware-sim/Module/HeaterShaker.tsx +83 -0
  209. package/src/hardware-sim/Module/MagneticBlock.tsx +49 -0
  210. package/src/hardware-sim/Module/MagneticModule.tsx +51 -0
  211. package/src/hardware-sim/Module/Module.stories.tsx +90 -0
  212. package/src/hardware-sim/Module/ModuleTag.tsx +38 -0
  213. package/src/hardware-sim/Module/PlateReader.tsx +208 -0
  214. package/src/hardware-sim/Module/Temperature.tsx +54 -0
  215. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN1.tsx +248 -0
  216. package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN2.tsx +286 -0
  217. package/src/hardware-sim/Module/Thermocycler/index.tsx +49 -0
  218. package/src/hardware-sim/Module/index.tsx +227 -0
  219. package/src/hardware-sim/Pipette/EightEmanatingNozzles.tsx +23 -0
  220. package/src/hardware-sim/Pipette/EmanatingNozzle.tsx +52 -0
  221. package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +71 -0
  222. package/src/hardware-sim/Pipette/PipetteRender.tsx +92 -0
  223. package/src/hardware-sim/Pipette/__tests__/EightEmanatingNozzles.test.tsx +16 -0
  224. package/src/hardware-sim/Pipette/__tests__/EmanatingNozzle.test.tsx +67 -0
  225. package/src/hardware-sim/Pipette/__tests__/PipetteRender.test.tsx +99 -0
  226. package/src/hardware-sim/Pipette/constants.ts +10 -0
  227. package/src/hardware-sim/Pipette/index.ts +1 -0
  228. package/src/hardware-sim/ProtocolDeck/LabwareInfo.tsx +68 -0
  229. package/src/hardware-sim/ProtocolDeck/ProtocolDeck.stories.tsx +25 -0
  230. package/src/hardware-sim/ProtocolDeck/__fixtures__/analysis_QIAseqFX24xv4_8.json +47145 -0
  231. package/src/hardware-sim/ProtocolDeck/index.tsx +174 -0
  232. package/src/hardware-sim/ProtocolDeck/types.ts +6 -0
  233. package/src/hardware-sim/ProtocolDeck/utils/__tests__/getLabwareInforByLiquidId.test.ts +158 -0
  234. package/src/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.ts +33 -0
  235. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.ts +155 -0
  236. package/src/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.ts +42 -0
  237. package/src/hardware-sim/ProtocolDeck/utils/getModulesInSlots.ts +129 -0
  238. package/src/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.ts +29 -0
  239. package/src/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.ts +30 -0
  240. package/src/hardware-sim/ProtocolDeck/utils/index.ts +3 -0
  241. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +28 -0
  242. package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.tsx +52 -0
  243. package/src/hardware-sim/RobotCoordinateSpace/index.ts +2 -0
  244. package/src/hardware-sim/index.ts +11 -0
  245. package/src/hardware-sim/utils.ts +18 -0
  246. package/src/helix-design-system/borders.ts +32 -0
  247. package/src/helix-design-system/colors.ts +100 -0
  248. package/src/helix-design-system/index.ts +4 -0
  249. package/src/helix-design-system/product/index.ts +1 -0
  250. package/src/helix-design-system/product/typography.ts +151 -0
  251. package/src/helix-design-system/style.ts +2 -0
  252. package/src/hooks/__tests__/useConditionalConfirm.test.tsx +5 -0
  253. package/src/hooks/__tests__/useDrag.test.ts +46 -0
  254. package/src/hooks/__tests__/useIdle.test.ts +68 -0
  255. package/src/hooks/__tests__/useInterval.test.tsx +5 -0
  256. package/src/hooks/__tests__/useLongPress.test.ts +25 -0
  257. package/src/hooks/__tests__/useMountEffect.test.tsx +5 -0
  258. package/src/hooks/__tests__/usePrevious.test.tsx +5 -0
  259. package/src/hooks/__tests__/useScrolling.test.tsx +46 -0
  260. package/src/hooks/__tests__/useSwipe.test.tsx +26 -0
  261. package/src/hooks/__tests__/useTimeout.test.tsx +5 -0
  262. package/src/hooks/__tests__/useToggle.test.tsx +5 -0
  263. package/src/hooks/index.ts +15 -0
  264. package/src/hooks/useConditionalConfirm.ts +70 -0
  265. package/src/hooks/useDrag.ts +90 -0
  266. package/src/hooks/useIdle.ts +68 -0
  267. package/src/hooks/useInterval.ts +38 -0
  268. package/src/hooks/useLongPress.ts +83 -0
  269. package/src/hooks/useMenuHandleClickOutside.tsx +46 -0
  270. package/src/hooks/useMountEffect.ts +12 -0
  271. package/src/hooks/usePrevious.ts +19 -0
  272. package/src/hooks/useScrolling.ts +33 -0
  273. package/src/hooks/useSelectDeckLocation/SelectDeckLocation.stories.tsx +55 -0
  274. package/src/hooks/useSelectDeckLocation/index.tsx +331 -0
  275. package/src/hooks/useSwipe.ts +86 -0
  276. package/src/hooks/useTimeout.ts +33 -0
  277. package/src/hooks/useToggle.ts +27 -0
  278. package/src/icons/Icon.stories.tsx +37 -0
  279. package/src/icons/Icon.tsx +79 -0
  280. package/src/icons/IconList.stories.tsx +108 -0
  281. package/src/icons/ModuleIcon.tsx +48 -0
  282. package/src/icons/NotificationIcon.tsx +41 -0
  283. package/src/icons/icon-data.ts +821 -0
  284. package/src/icons/index.ts +6 -0
  285. package/src/images/index.ts +1 -0
  286. package/src/images/labware/index.ts +1 -0
  287. package/src/images/labware/measurement-guide/images/depth/depth-plate-flat@3x.png +0 -0
  288. package/src/images/labware/measurement-guide/images/depth/depth-plate-round@3x.png +0 -0
  289. package/src/images/labware/measurement-guide/images/depth/depth-plate-v@3x.png +0 -0
  290. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-flat@3x.png +0 -0
  291. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-round@3x.png +0 -0
  292. package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-v@3x.png +0 -0
  293. package/src/images/labware/measurement-guide/images/depth/length-tip-rack@3x.png +0 -0
  294. package/src/images/labware/measurement-guide/images/dimensions/footprint@3x.png +0 -0
  295. package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-plate@3x.png +0 -0
  296. package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-tubes@3x.png +0 -0
  297. package/src/images/labware/measurement-guide/images/dimensions/height-plate-and-reservoir@3x.png +0 -0
  298. package/src/images/labware/measurement-guide/images/dimensions/height-tip-rack@3x.png +0 -0
  299. package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack-irregular@3x.png +0 -0
  300. package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack@3x.png +0 -0
  301. package/src/images/labware/measurement-guide/images/offset/offset-reservoir@3x.png +0 -0
  302. package/src/images/labware/measurement-guide/images/offset/offset-well-circular@3x.png +0 -0
  303. package/src/images/labware/measurement-guide/images/offset/offset-well-rectangular@3x.png +0 -0
  304. package/src/images/labware/measurement-guide/images/shape/shape-circular@3x.png +0 -0
  305. package/src/images/labware/measurement-guide/images/shape/shape-rectangular@3x.png +0 -0
  306. package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir-multi-row@3x.png +0 -0
  307. package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir@3x.png +0 -0
  308. package/src/images/labware/measurement-guide/images/spacing/spacing-well-circular@3x.png +0 -0
  309. package/src/images/labware/measurement-guide/images/spacing/spacing-well-rectangular@3x.png +0 -0
  310. package/src/images/labware/measurement-guide/index.ts +272 -0
  311. package/src/index.module.css +9 -0
  312. package/src/index.ts +41 -0
  313. package/src/instrument/InstrumentDiagram.stories.tsx +42 -0
  314. package/src/instrument/InstrumentDiagram.tsx +58 -0
  315. package/src/instrument/InstrumentGroup.stories.tsx +88 -0
  316. package/src/instrument/InstrumentGroup.tsx +35 -0
  317. package/src/instrument/InstrumentInfo.tsx +107 -0
  318. package/src/instrument/PipetteSelect.module.css +14 -0
  319. package/src/instrument/PipetteSelect.stories.tsx +40 -0
  320. package/src/instrument/PipetteSelect.tsx +170 -0
  321. package/src/instrument/__tests__/InstrumentInfo.test.tsx +55 -0
  322. package/src/instrument/__tests__/PipetteSelect.test.tsx +4 -0
  323. package/src/instrument/eight-channel-flex.png +0 -0
  324. package/src/instrument/index.ts +4 -0
  325. package/src/instrument/instrument.module.css +45 -0
  326. package/src/instrument/multi-channel_GEN1_800px.png +0 -0
  327. package/src/instrument/multi-channel_GEN2_800px.png +0 -0
  328. package/src/instrument/ninety-six-channel-gen1.png +0 -0
  329. package/src/instrument/pipetteGEN2Multi.png +0 -0
  330. package/src/instrument/pipetteGEN2Single.png +0 -0
  331. package/src/instrument/pipetteMulti.png +0 -0
  332. package/src/instrument/pipetteSingle.png +0 -0
  333. package/src/instrument/single-channel-flex.png +0 -0
  334. package/src/instrument/single-channel_GEN2_800px.png +0 -0
  335. package/src/instrument/single_channel_GEN1_800px.png +0 -0
  336. package/src/interaction-enhancers/ClickOutside.ts +57 -0
  337. package/src/interaction-enhancers/HandleKeypress.tsx +69 -0
  338. package/src/interaction-enhancers/__tests__/useHover.test.tsx +4 -0
  339. package/src/interaction-enhancers/index.ts +4 -0
  340. package/src/interaction-enhancers/useHover.ts +84 -0
  341. package/src/interaction-enhancers/useOnClickOutside.ts +42 -0
  342. package/src/legacy-hardware-sim/LabwareNameOverlay.module.css +20 -0
  343. package/src/legacy-hardware-sim/LabwareNameOverlay.tsx +22 -0
  344. package/src/legacy-hardware-sim/ModuleItem.module.css +98 -0
  345. package/src/legacy-hardware-sim/ModuleItem.tsx +145 -0
  346. package/src/legacy-hardware-sim/index.ts +2 -0
  347. package/src/lists/SidePanelGroup.tsx +48 -0
  348. package/src/lists/TitledList.tsx +155 -0
  349. package/src/lists/index.ts +3 -0
  350. package/src/lists/lists.module.css +171 -0
  351. package/src/modals/AlertModal.tsx +89 -0
  352. package/src/modals/ContinueModal.tsx +32 -0
  353. package/src/modals/LegacyModal.tsx +59 -0
  354. package/src/modals/Modal.stories.tsx +52 -0
  355. package/src/modals/Modal.tsx +96 -0
  356. package/src/modals/ModalHeader.tsx +100 -0
  357. package/src/modals/ModalShell.tsx +155 -0
  358. package/src/modals/Overlay.tsx +38 -0
  359. package/src/modals/SpinnerModal.tsx +35 -0
  360. package/src/modals/SpinnerModalPage.tsx +30 -0
  361. package/src/modals/__tests__/Modal.test.tsx +65 -0
  362. package/src/modals/__tests__/ModalHeader.test.tsx +73 -0
  363. package/src/modals/__tests__/ModalShell.test.tsx +45 -0
  364. package/src/modals/index.ts +10 -0
  365. package/src/modals/modals.module.css +275 -0
  366. package/src/molecules/Banner/Banner.stories.tsx +41 -0
  367. package/src/molecules/Banner/__tests__/Banner.test.tsx +94 -0
  368. package/src/molecules/Banner/index.tsx +147 -0
  369. package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +65 -0
  370. package/src/molecules/DeckInfoLabel/__tests__/DeckInfoLabel.test.tsx +49 -0
  371. package/src/molecules/DeckInfoLabel/index.tsx +95 -0
  372. package/src/molecules/DeckLabel/DeckLabel.stories.tsx +31 -0
  373. package/src/molecules/DeckLabel/__tests__/DeckLabel.test.tsx +69 -0
  374. package/src/molecules/DeckLabel/index.tsx +80 -0
  375. package/src/molecules/DropdownMenu/DropdownMenu.stories.tsx +30 -0
  376. package/src/molecules/DropdownMenu/__tests__/DropdownMenu.test.tsx +85 -0
  377. package/src/molecules/DropdownMenu/index.tsx +343 -0
  378. package/src/molecules/InfoScreen/InfoScreen.stories.tsx +50 -0
  379. package/src/molecules/InfoScreen/__tests__/InfoScreen.test.tsx +40 -0
  380. package/src/molecules/InfoScreen/index.tsx +54 -0
  381. package/src/molecules/LiquidIcon/LiquidIcon.stories.tsx +53 -0
  382. package/src/molecules/LiquidIcon/__tests__/LiquidIcon.test.tsx +50 -0
  383. package/src/molecules/LiquidIcon/index.tsx +68 -0
  384. package/src/molecules/ParametersTable/ParametersTable.stories.tsx +172 -0
  385. package/src/molecules/ParametersTable/__tests__/ParametersTable.test.tsx +126 -0
  386. package/src/molecules/ParametersTable/index.tsx +198 -0
  387. package/src/molecules/Tabs/Tabs.stories.tsx +74 -0
  388. package/src/molecules/Tabs/__tests__/Tabs.test.tsx +90 -0
  389. package/src/molecules/Tabs/index.tsx +94 -0
  390. package/src/molecules/index.ts +8 -0
  391. package/src/nav/SidePanel.module.css +34 -0
  392. package/src/nav/SidePanel.stories.tsx +29 -0
  393. package/src/nav/SidePanel.tsx +21 -0
  394. package/src/nav/index.ts +2 -0
  395. package/src/organisms/DeckLabelSet/DeckLabelSet.stories.tsx +46 -0
  396. package/src/organisms/DeckLabelSet/__tests__/DeckLabelSet.test.tsx +49 -0
  397. package/src/organisms/DeckLabelSet/index.tsx +69 -0
  398. package/src/organisms/EndUserAgreementFooter/__tests__/EndUserAgreementFooter.test.tsx +21 -0
  399. package/src/organisms/EndUserAgreementFooter/index.tsx +49 -0
  400. package/src/organisms/Toolbox/Toolbox.stories.tsx +23 -0
  401. package/src/organisms/Toolbox/__tests__/Toolbox.test.tsx +35 -0
  402. package/src/organisms/Toolbox/index.tsx +160 -0
  403. package/src/organisms/index.ts +3 -0
  404. package/src/primitives/Box.stories.tsx +25 -0
  405. package/src/primitives/Box.tsx +17 -0
  406. package/src/primitives/Btn.stories.tsx +105 -0
  407. package/src/primitives/Btn.tsx +266 -0
  408. package/src/primitives/Flex.stories.tsx +50 -0
  409. package/src/primitives/Flex.tsx +17 -0
  410. package/src/primitives/ForeignObject.tsx +70 -0
  411. package/src/primitives/Link.stories.tsx +27 -0
  412. package/src/primitives/Link.tsx +32 -0
  413. package/src/primitives/README.md +188 -0
  414. package/src/primitives/Svg.stories.tsx +36 -0
  415. package/src/primitives/Svg.tsx +68 -0
  416. package/src/primitives/Text.stories.tsx +17 -0
  417. package/src/primitives/Text.tsx +18 -0
  418. package/src/primitives/__tests__/Box.test.tsx +4 -0
  419. package/src/primitives/__tests__/Btn.test.tsx +4 -0
  420. package/src/primitives/__tests__/Flex.test.tsx +4 -0
  421. package/src/primitives/__tests__/Link.test.tsx +4 -0
  422. package/src/primitives/__tests__/Svg.test.tsx +4 -0
  423. package/src/primitives/__tests__/Text.test.tsx +4 -0
  424. package/src/primitives/__tests__/primitives.test.tsx +4 -0
  425. package/src/primitives/__tests__/style-props.test.tsx +4 -0
  426. package/src/primitives/index.ts +10 -0
  427. package/src/primitives/style-props.ts +197 -0
  428. package/src/primitives/types.ts +120 -0
  429. package/src/robot-types.ts +4 -0
  430. package/src/slotmap/OT2SlotMap.tsx +73 -0
  431. package/src/slotmap/__tests__/OT2SlotMap.test.tsx +4 -0
  432. package/src/slotmap/index.ts +1 -0
  433. package/src/slotmap/styles.module.css +18 -0
  434. package/src/structure/Card.stories.tsx +28 -0
  435. package/src/structure/Card.tsx +64 -0
  436. package/src/structure/LabeledValue.stories.tsx +17 -0
  437. package/src/structure/LabeledValue.tsx +31 -0
  438. package/src/structure/Pill.module.css +16 -0
  439. package/src/structure/Pill.tsx +43 -0
  440. package/src/structure/Splash.module.css +16 -0
  441. package/src/structure/Splash.stories.tsx +24 -0
  442. package/src/structure/Splash.tsx +22 -0
  443. package/src/structure/TitleBar.stories.tsx +42 -0
  444. package/src/structure/TitleBar.tsx +81 -0
  445. package/src/structure/index.ts +7 -0
  446. package/src/structure/structure.module.css +114 -0
  447. package/src/styles/borders.module.css +20 -0
  448. package/src/styles/borders.ts +16 -0
  449. package/src/styles/colors.module.css +57 -0
  450. package/src/styles/colors.ts +58 -0
  451. package/src/styles/cursor.ts +12 -0
  452. package/src/styles/flexbox.ts +39 -0
  453. package/src/styles/index.module.css +8 -0
  454. package/src/styles/index.ts +8 -0
  455. package/src/styles/layout.ts +31 -0
  456. package/src/styles/position.ts +5 -0
  457. package/src/styles/spacing.ts +11 -0
  458. package/src/styles/typography.module.css +22 -0
  459. package/src/styles/typography.ts +90 -0
  460. package/src/testing/utils/index.ts +2 -0
  461. package/src/testing/utils/matchers.ts +31 -0
  462. package/src/testing/utils/renderWithProviders.tsx +53 -0
  463. package/src/tooltips/DeprecatedTooltip.tsx +105 -0
  464. package/src/tooltips/HoverTooltip.tsx +83 -0
  465. package/src/tooltips/LegacyTooltip.stories.tsx +98 -0
  466. package/src/tooltips/LegacyTooltip.tsx +151 -0
  467. package/src/tooltips/__tests__/Tooltip.test.tsx +4 -0
  468. package/src/tooltips/__tests__/useHoverTooltip.test.tsx +4 -0
  469. package/src/tooltips/__tests__/usePopper.test.tsx +4 -0
  470. package/src/tooltips/__tests__/useTooltip.test.tsx +4 -0
  471. package/src/tooltips/constants.ts +28 -0
  472. package/src/tooltips/index.ts +10 -0
  473. package/src/tooltips/styles.ts +20 -0
  474. package/src/tooltips/tooltips.module.css +72 -0
  475. package/src/tooltips/types.ts +73 -0
  476. package/src/tooltips/useHoverTooltip.ts +47 -0
  477. package/src/tooltips/usePopper.ts +87 -0
  478. package/src/tooltips/useTooltip.ts +100 -0
  479. package/src/ui-style-constants/index.ts +4 -0
  480. package/src/ui-style-constants/responsiveness.ts +15 -0
  481. package/src/ui-style-constants/spacing.ts +18 -0
  482. package/src/ui-style-constants/typography.ts +258 -0
  483. package/src/ui-style-constants/viewport.ts +18 -0
  484. package/src/utils.ts +56 -0
  485. package/lib/index.mjs +0 -23832
  486. package/lib/patches.d.ts +0 -4
@@ -0,0 +1,114 @@
1
+ /* TitleBar styles */
2
+ @import '../index.module.css';
3
+
4
+ .title_bar {
5
+ display: flex;
6
+ align-items: center;
7
+ height: 3rem;
8
+ text-transform: uppercase;
9
+ background-color: var(--c-dark-gray);
10
+ }
11
+
12
+ .title_bar,
13
+ .title_bar a {
14
+ color: white;
15
+ }
16
+
17
+ .title,
18
+ .subtitle,
19
+ .separator {
20
+ font-size: var(--fs-header);
21
+ margin: 0;
22
+ }
23
+
24
+ .title,
25
+ .separator {
26
+ font-weight: var(--fw-semibold);
27
+ }
28
+
29
+ .title {
30
+ white-space: nowrap; /* from legacy --truncate */
31
+ overflow: hidden; /* from legacy --truncate */
32
+ text-overflow: ellipsis; /* from legacy --truncate */
33
+ min-width: 0; /* from legacy --truncate */
34
+ padding: 0 1.5rem;
35
+ }
36
+
37
+ .subtitle {
38
+ padding: 0 1.5rem;
39
+ font-weight: normal;
40
+ }
41
+
42
+ .title.right {
43
+ margin-left: auto;
44
+ }
45
+
46
+ .title_button {
47
+ flex: none;
48
+ }
49
+
50
+ .page_tabs {
51
+ width: 100%;
52
+ text-align: center;
53
+ }
54
+
55
+ .tab_link {
56
+ display: inline-block;
57
+ width: 50%;
58
+ padding: 0.25rem 0;
59
+ font-size: var(--fs-huge);
60
+ opacity: 0.2;
61
+ background-color: var(--c-med-gray);
62
+ color: white;
63
+ text-transform: uppercase;
64
+ }
65
+
66
+ .active_tab_link {
67
+ opacity: 1;
68
+ }
69
+
70
+ .tab_title {
71
+ font-weight: normal;
72
+ }
73
+
74
+ .active_tab_link .tab_title {
75
+ font-weight: var(--fw-bold);
76
+ }
77
+
78
+ .disabled {
79
+ pointer-events: none;
80
+ background-color: transparent;
81
+
82
+ & * {
83
+ color: var(--c-font-disabled);
84
+ fill: var(--c-font-disabled);
85
+ background-color: transparent;
86
+ }
87
+ }
88
+
89
+ .labeled_value {
90
+ font-size: var(--fs-body-1); /* from legacy --font-body-1-dark */
91
+ font-weight: var(--fw-regular); /* from legacy --font-body-1-dark */
92
+ color: var(--c-font-dark); /* from legacy --font-body-1-dark */
93
+ line-height: 1.5;
94
+
95
+ & svg {
96
+ height: var(--fs-body-2);
97
+ }
98
+ }
99
+
100
+ .labeled_value_label {
101
+ font-weight: var(--fw-semibold);
102
+ margin-top: 0;
103
+ margin-bottom: 0.25rem;
104
+ }
105
+
106
+ .labeled_value_value {
107
+ margin: 0;
108
+ }
109
+
110
+ .right_node {
111
+ display: flex;
112
+ justify-content: flex-end;
113
+ margin-left: auto;
114
+ }
@@ -0,0 +1,20 @@
1
+ @import './colors.module.css';
2
+
3
+ :root {
4
+ /* borders */
5
+ --bd-radius-default: 2px;
6
+ --bd-radius-form-field: 3px;
7
+ --bd-radius-pill: 12px;
8
+ --bd-width-default: 1px;
9
+ --bd-light: var(--bd-width-default) solid var(--c-light-gray);
10
+
11
+ /* dropshadows */
12
+
13
+ /* TODO: Ian 2018-07-26 consolidate all shadows here (eg from buttons) */
14
+ --shadow-lvl-1:
15
+ 0 1px 3px 0 rgba(0, 0, 0, 0.1),
16
+ 0 1px 2px 0 rgba(0, 0, 0, 0.2);
17
+ --shadow-lvl-2:
18
+ 0 3px 6px 0 rgba(0, 0, 0, 0.13),
19
+ 0 3px 6px 0 rgba(0, 0, 0, 0.23);
20
+ }
@@ -0,0 +1,16 @@
1
+ // border style constants
2
+ import { C_LIGHT_GRAY, C_MED_GRAY } from './colors'
3
+
4
+ export const BORDER_WIDTH_DEFAULT = '1px'
5
+
6
+ export const BORDER_RADIUS_DEFAULT = '2px'
7
+ export const BORDER_RADIUS_1 = '5px'
8
+
9
+ export const BORDER_STYLE_NONE = 'none'
10
+ export const BORDER_STYLE_SOLID = 'solid'
11
+
12
+ export const BORDER_SOLID_LIGHT = `${BORDER_WIDTH_DEFAULT} ${BORDER_STYLE_SOLID} ${C_LIGHT_GRAY}`
13
+ export const BORDER_SOLID_MEDIUM = `${BORDER_WIDTH_DEFAULT} ${BORDER_STYLE_SOLID} ${C_MED_GRAY}`
14
+
15
+ export const SHADOW_LIGHT =
16
+ '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.2)'
@@ -0,0 +1,57 @@
1
+ :root {
2
+ /* ot brand */
3
+ --c-mustard: #ffd252;
4
+ --c-blue: #006cfa;
5
+ --c-light-blue: color-mod(var(--c-blue) lightness(85%));
6
+
7
+ /*
8
+ * grays
9
+ * TODO(mc, 2019-03-22): align with style guide
10
+ */
11
+ --c-near-black: #a4a4a4; /* style guide: n/a */
12
+ --c-dark-gray: #4a4a4a; /* style guide: near-black */
13
+ --c-charcoal: #979797;
14
+ --c-med-gray: #9b9b9b; /* style guide: n/a */
15
+ --c-light-gray: #e5e2e2; /* style guide: smoke, should be e6e6e6 */
16
+ --c-lightest-gray: #ededed; /* style guide: n/a */
17
+
18
+ /*
19
+ * background colors
20
+ * TODO(mc, 2019-03-22): combine with colors
21
+ */
22
+ --c-bg-dark: #4a4a4a;
23
+ --c-bg-light: #fafafa;
24
+ --c-bg-selected: #f0f3ff;
25
+ --c-bg-hover: #f1f1f1;
26
+ --c-bg-success: #b6febc;
27
+
28
+ /* general UI */
29
+ --c-highlight: #5fd8ee;
30
+ --c-selected-dark: #00c3e6;
31
+ --c-warning-dark: #9e5e00;
32
+ --c-warning: #e28200;
33
+ --c-warning-light: #ffd58f;
34
+ --c-error-dark: #ac0505;
35
+ --c-error: #d12929;
36
+ --c-error-light: #ffc0c0;
37
+ --c-success: #60b120;
38
+ --c-blue-enabled: #006cfa;
39
+ --c-light-grey-hover: #c6c6c6;
40
+
41
+ /* Misc */
42
+ --c-selection-overlay: color-mod(var(--c-highlight) alpha(0.3));
43
+ --c-plate-bg: #ccc;
44
+ --c-white: #fff;
45
+ --c-black: #000;
46
+ --c-green: #7ed321;
47
+ --c-red: #f00000;
48
+ --c-orange: #f5a623;
49
+
50
+ --transition-color: {
51
+ transition: color 0.15s ease-in-out;
52
+ }
53
+
54
+ --transition-background-color: {
55
+ transition: background-color 0.15s ease-in-out;
56
+ }
57
+ }
@@ -0,0 +1,58 @@
1
+ // gray scale
2
+ export const C_BLACK = '#000000'
3
+ export const C_DARK_GRAY = '#4a4a4a'
4
+ export const C_MED_DARK_GRAY = '#6c6c6c'
5
+ export const C_MED_GRAY = '#9b9b9b'
6
+ export const C_SILVER_GRAY = '#e3e3e3'
7
+ export const C_MED_LIGHT_GRAY = '#d2d2d2'
8
+ export const C_LIGHT_GRAY = '#e6e6e6'
9
+ export const C_BRIGHT_GRAY = '#f8f8f8'
10
+ export const C_HARBOR_GRAY = '#8a8c8e'
11
+ export const C_NEAR_WHITE = '#fafafa'
12
+ export const C_WHITE = '#ffffff'
13
+ export const C_TRANSPARENT = 'transparent'
14
+ export const C_DARK_BLACK = '#16212d'
15
+
16
+ // brand colors
17
+ export const C_BLUE = '#006cfa'
18
+ export const C_MINT = '#00bfa8'
19
+ export const C_AQUAMARINE = '#eefff8'
20
+ export const C_POWDER_BLUE = '#f1f8ff'
21
+ export const C_SKY_BLUE = '#accfff80'
22
+ export const C_BLUE_PRESSED = '#0050b8'
23
+
24
+ // colors by usage
25
+ // TODO(mc, 2020-10-08): s/COLOR_/C_
26
+ export const COLOR_WARNING = '#e28200'
27
+ export const COLOR_WARNING_LIGHT = '#ffd58f'
28
+ export const COLOR_WARNING_DARK = '#9e5e00'
29
+ export const COLOR_ERROR = '#d12929'
30
+ export const COLOR_SUCCESS = '#60b120'
31
+ export const C_DISABLED = '#9c9c9c'
32
+ export const C_SELECTED_DARK = '#00c3e6'
33
+ export const C_BG_SELECTED = '#f0f3ff'
34
+ export const C_ERROR_DARK = '#ac0505'
35
+ export const C_ERROR_LIGHT = '#ffc0c0'
36
+
37
+ // overlays
38
+ export const OVERLAY_WHITE_10 = 'rgba(255, 255, 255, 0.1)'
39
+ export const OVERLAY_WHITE_20 = 'rgba(255, 255, 255, 0.2)'
40
+
41
+ // used to set aside further subsections of cards beyond
42
+ // what can be distinguished with a border
43
+ export const OVERLAY_LIGHT_GRAY_50 = 'rgba(230, 230, 230, 0.4)'
44
+
45
+ // used as default BaseModal overlay color
46
+ export const OVERLAY_GRAY_90 = 'rgba(127, 127, 127, 0.9)'
47
+
48
+ // darkest modal overlay used
49
+ export const OVERLAY_BLACK_90 = 'rgba(0, 0, 0, 0.9)'
50
+
51
+ // 80 percent opacity overlay
52
+ export const OVERLAY_BLACK_80 = 'rgba(0, 0, 0, 0.8)'
53
+
54
+ // opacities
55
+ export const OPACITY_DISABLED = 0.3
56
+
57
+ // TODO(isk: 3/2/20): Rename to be more generic (e.g. not FONT)
58
+ export const C_FONT_DISABLED = '#9c9c9c'
@@ -0,0 +1,12 @@
1
+ // cursor
2
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#keyword
3
+ export const CURSOR_AUTO = 'auto'
4
+ export const CURSOR_CROSSHAIR = 'crosshair'
5
+ export const CURSOR_DEFAULT = 'default'
6
+ export const CURSOR_GRAB = 'grab'
7
+ export const CURSOR_GRABBING = 'grabbing'
8
+ export const CURSOR_HELP = 'help'
9
+ export const CURSOR_NOT_ALLOWED = 'not-allowed'
10
+ export const CURSOR_POINTER = 'pointer'
11
+ export const CURSOR_ZOOM_IN = 'zoom-in'
12
+ export const CURSOR_WAIT = 'wait'
@@ -0,0 +1,39 @@
1
+ export const FLEX_NONE = 'none'
2
+ export const FLEX_AUTO = 'auto'
3
+ export const FLEX_MIN_CONTENT = 'min-content'
4
+ export const FLEX_MAX_CONTENT = 'max-content'
5
+
6
+ export const ALIGN_NORMAL = 'normal'
7
+ export const ALIGN_START = 'start'
8
+ export const ALIGN_END = 'end'
9
+ export const ALIGN_FLEX_START = 'flex-start'
10
+ export const ALIGN_FLEX_END = 'flex-end'
11
+ export const ALIGN_CENTER = 'center'
12
+ export const ALIGN_BASELINE = 'baseline'
13
+ export const ALIGN_STRETCH = 'stretch'
14
+
15
+ export const JUSTIFY_NORMAL = 'normal'
16
+ export const JUSTIFY_START = 'start'
17
+ export const JUSTIFY_END = 'end'
18
+ export const JUSTIFY_FLEX_START = 'flex-start'
19
+ export const JUSTIFY_FLEX_END = 'flex-end'
20
+ export const JUSTIFY_CENTER = 'center'
21
+ export const JUSTIFY_SPACE_BETWEEN = 'space-between'
22
+ export const JUSTIFY_SPACE_AROUND = 'space-around'
23
+ export const JUSTIFY_SPACE_EVENLY = 'space-evenly'
24
+ export const JUSTIFY_STRETCH = 'stretch'
25
+
26
+ export const DIRECTION_ROW = 'row'
27
+ export const DIRECTION_ROW_REVERSE = 'row-reverse'
28
+ export const DIRECTION_COLUMN = 'column'
29
+ export const DIRECTION_COLUMN_REVERSE = 'column-reverse'
30
+
31
+ export const WRAP = 'wrap'
32
+ export const NO_WRAP = 'nowrap'
33
+ export const WRAP_REVERSE = 'wrap-reverse'
34
+
35
+ export const WHITE_SPACE_NORMAL = 'normal'
36
+ export const WHITE_SPACE_PRE = 'pre'
37
+ export const WHITE_SPACE_PRE_WRAP = 'pre-wrap'
38
+ export const WHITE_SPACE_PRE_LINE = 'pre-line'
39
+ export const WHITE_SPACE_BREAK_SPACES = 'break-spaces'
@@ -0,0 +1,8 @@
1
+ .clickable {
2
+ cursor: pointer;
3
+ }
4
+
5
+ .rotated {
6
+ transform-origin: center;
7
+ transform: rotate(180deg);
8
+ }
@@ -0,0 +1,8 @@
1
+ export * from './borders'
2
+ export * from './colors'
3
+ export * from './cursor'
4
+ export * from './flexbox'
5
+ export * from './layout'
6
+ export * from './position'
7
+ export * from './spacing'
8
+ export * from './typography'
@@ -0,0 +1,31 @@
1
+ // display
2
+ export const DISPLAY_NONE = 'none'
3
+ export const DISPLAY_INLINE = 'inline'
4
+ export const DISPLAY_BLOCK = 'block'
5
+ export const DISPLAY_INLINE_BLOCK = 'inline-block'
6
+ export const DISPLAY_FLEX = 'flex'
7
+ export const DISPLAY_TABLE = 'table'
8
+ export const DISPLAY_TABLE_ROW = 'table-row'
9
+ export const DISPLAY_TABLE_CELL = 'table-cell'
10
+ export const DISPLAY_GRID = 'grid'
11
+
12
+ // powers-of-two size scale
13
+ export const SIZE_AUTO = 'auto'
14
+ export const SIZE_1 = '1rem'
15
+ export const SIZE_2 = '2rem'
16
+ export const SIZE_3 = '4rem'
17
+ export const SIZE_4 = '8rem'
18
+ export const SIZE_5 = '16rem'
19
+ export const SIZE_6 = '32rem'
20
+
21
+ // overflow
22
+ export const OVERFLOW_VISIBLE = 'visible'
23
+ export const OVERFLOW_HIDDEN = 'hidden'
24
+ export const OVERFLOW_CLIP = 'clip'
25
+ export const OVERFLOW_SCROLL = 'scroll'
26
+ export const OVERFLOW_AUTO = 'auto'
27
+
28
+ // overflow wrap
29
+ export const OVERFLOW_WRAP_ANYWHERE = 'anywhere'
30
+ export const OVERFLOW_WRAP_BREAK_WORD = 'break-word'
31
+ export const OVERFLOW_WRAP_NORMAL = 'normal'
@@ -0,0 +1,5 @@
1
+ export const POSITION_STATIC: 'static' = 'static'
2
+ export const POSITION_RELATIVE: 'relative' = 'relative'
3
+ export const POSITION_ABSOLUTE: 'absolute' = 'absolute'
4
+ export const POSITION_FIXED: 'fixed' = 'fixed'
5
+ export const POSITION_STICKY: 'sticky' = 'sticky'
@@ -0,0 +1,11 @@
1
+ export const SPACING_AUTO = 'auto'
2
+
3
+ // powers-of-two spacing scale
4
+ export const SPACING_1 = '0.25rem'
5
+ export const SPACING_2 = '0.5rem'
6
+ export const SPACING_3 = '1rem'
7
+ export const SPACING_4 = '2rem'
8
+ export const SPACING_5 = '4rem'
9
+ export const SPACING_6 = '8rem'
10
+ export const SPACING_7 = '16rem'
11
+ export const SPACING_8 = '32rem'
@@ -0,0 +1,22 @@
1
+ :root {
2
+ --c-font-dark: #4a4a4a;
3
+ --c-font-icon: #6f6f6f;
4
+ --c-font-light: white;
5
+ --c-font-disabled: #9c9c9c;
6
+ --fs-huge: 3rem;
7
+ --fs-header: 1.125rem;
8
+ --fs-default: 1rem;
9
+ --fs-body-2: 0.875rem;
10
+ --fs-body-1: 0.75rem;
11
+ --fs-caption: 0.625rem;
12
+ --fs-tiny: 0.325rem;
13
+ --fs-micro: 0.2rem;
14
+ --fw-bold: 800;
15
+ --fw-semibold: 600;
16
+ --fw-regular: 400;
17
+ --fw-light: 300;
18
+ --ff-code: Consolas, monaco, monospace;
19
+ --lh-solid: 1;
20
+ --lh-title: 1.25;
21
+ --lh-copy: 1.5;
22
+ }
@@ -0,0 +1,90 @@
1
+ import { css } from 'styled-components'
2
+
3
+ import { C_DARK_GRAY, C_WHITE } from './colors'
4
+
5
+ import type { FlattenSimpleInterpolation } from 'styled-components'
6
+
7
+ // font size values
8
+ export const FONT_SIZE_HUGE = '3rem'
9
+ export const FONT_SIZE_BIG = '1.5rem'
10
+ export const FONT_SIZE_HEADER = '1.125rem'
11
+ export const FONT_SIZE_DEFAULT = '1rem'
12
+ export const FONT_SIZE_BODY_2 = '0.875rem'
13
+ export const FONT_SIZE_BODY_1 = '0.75rem'
14
+ export const FONT_SIZE_CAPTION = '0.625rem'
15
+ export const FONT_SIZE_TINY = '0.325rem'
16
+ export const FONT_SIZE_MICRO = '0.2rem'
17
+ export const FONT_SIZE_INHERIT = 'inherit'
18
+
19
+ // line height values
20
+ export const LINE_HEIGHT_SOLID = 1
21
+ export const LINE_HEIGHT_TITLE = 1.25
22
+ export const LINE_HEIGHT_COPY = 1.5
23
+
24
+ // font weight values
25
+ export const FONT_WEIGHT_LIGHT = 300
26
+ export const FONT_WEIGHT_REGULAR = 400
27
+ export const FONT_WEIGHT_SEMIBOLD = 600
28
+ export const FONT_WEIGHT_BOLD = 800
29
+
30
+ // font style values
31
+ export const FONT_STYLE_NORMAL = 'normal'
32
+ export const FONT_STYLE_ITALIC = 'italic'
33
+
34
+ // text align
35
+ export const TEXT_ALIGN_LEFT = 'left'
36
+ export const TEXT_ALIGN_CENTER = 'center'
37
+ export const TEXT_ALIGN_RIGHT = 'right'
38
+ export const TEXT_ALIGN_JUSTIFY = 'justify'
39
+
40
+ // text transform
41
+ export const TEXT_TRANSFORM_NONE = 'none'
42
+ export const TEXT_TRANSFORM_CAPITALIZE = 'capitalize'
43
+ export const TEXT_TRANSFORM_UPPERCASE = 'uppercase'
44
+ export const TEXT_TRANSFORM_LOWERCASE = 'lowercase'
45
+
46
+ // text decoration
47
+ export const TEXT_DECORATION_UNDERLINE = 'underline'
48
+
49
+ // font property sets
50
+ export const FONT_HEADER_DARK: FlattenSimpleInterpolation = css`
51
+ font-size: ${FONT_SIZE_HEADER};
52
+ font-weight: ${FONT_WEIGHT_SEMIBOLD};
53
+ color: ${C_DARK_GRAY};
54
+ `
55
+
56
+ export const FONT_HEADER_THIN: FlattenSimpleInterpolation = css`
57
+ font-size: ${FONT_SIZE_HEADER};
58
+ font-weight: ${FONT_WEIGHT_REGULAR};
59
+ color: ${C_DARK_GRAY};
60
+ `
61
+
62
+ export const FONT_BODY_1_DARK: FlattenSimpleInterpolation = css`
63
+ font-size: ${FONT_SIZE_BODY_1};
64
+ font-weight: ${FONT_WEIGHT_REGULAR};
65
+ color: ${C_DARK_GRAY};
66
+ `
67
+
68
+ export const FONT_BODY_1_LIGHT: FlattenSimpleInterpolation = css`
69
+ font-size: ${FONT_SIZE_BODY_1};
70
+ font-weight: ${FONT_WEIGHT_REGULAR};
71
+ color: ${C_WHITE};
72
+ `
73
+
74
+ export const FONT_BODY_2_DARK: FlattenSimpleInterpolation = css`
75
+ font-size: ${FONT_SIZE_BODY_2};
76
+ font-weight: ${FONT_WEIGHT_REGULAR};
77
+ color: ${C_DARK_GRAY};
78
+ `
79
+
80
+ export const FONT_BODY_1_DARK_SEMIBOLD: FlattenSimpleInterpolation = css`
81
+ font-size: ${FONT_SIZE_BODY_1};
82
+ font-weight: ${FONT_WEIGHT_SEMIBOLD};
83
+ color: ${C_DARK_GRAY};
84
+ `
85
+
86
+ export const FONT_HUGE_DARK_SEMIBOLD: FlattenSimpleInterpolation = css`
87
+ font-size: ${FONT_SIZE_HUGE};
88
+ font-weight: ${FONT_WEIGHT_SEMIBOLD};
89
+ color: ${C_DARK_GRAY};
90
+ `
@@ -0,0 +1,2 @@
1
+ export * from './renderWithProviders'
2
+ export * from './matchers'
@@ -0,0 +1,31 @@
1
+ import { when } from 'vitest-when'
2
+ import type { Matcher } from '@testing-library/react'
3
+
4
+ // these are needed because under the hood react calls components with two arguments (props and some second argument nobody seems to know)
5
+ // https://github.com/timkindberg/jest-when/issues/66
6
+ // use partialComponentPropsMatcher to only verify the props you pass into partialComponentPropsMatcher
7
+ export const partialComponentPropsMatcher = (argsToMatch: unknown): any =>
8
+ // @ts-expect-error(sa, 2021-08-03): when.allArgs not part of type definition yet for jest-when
9
+ when.allArgs((args, equals) =>
10
+ equals(args[0], expect.objectContaining(argsToMatch))
11
+ )
12
+
13
+ // Match things like <p>Some <strong>nested</strong> text</p>
14
+ // Use with either string match: getByText(nestedTextMatcher("Some nested text"))
15
+ // or regexp: getByText(nestedTextMatcher(/Some nested text/))
16
+ export const nestedTextMatcher = (textMatch: string | RegExp): Matcher => (
17
+ content,
18
+ node
19
+ ) => {
20
+ const hasText = (n: typeof node): boolean => {
21
+ if (n == null || n.textContent === null) return false
22
+ return typeof textMatch === 'string'
23
+ ? Boolean(n?.textContent.match(textMatch))
24
+ : textMatch.test(n.textContent)
25
+ }
26
+ const nodeHasText = hasText(node)
27
+ const childrenDontHaveText =
28
+ node != null && Array.from(node.children).every(child => !hasText(child))
29
+
30
+ return nodeHasText && childrenDontHaveText
31
+ }
@@ -0,0 +1,53 @@
1
+ // render using targetted component using @testing-library/react
2
+ // with wrapping providers for i18next and redux
3
+ import type * as React from 'react'
4
+ import { QueryClient, QueryClientProvider } from 'react-query'
5
+ import { I18nextProvider } from 'react-i18next'
6
+ import { Provider } from 'react-redux'
7
+ import { vi } from 'vitest'
8
+ import { render } from '@testing-library/react'
9
+ import { createStore } from 'redux'
10
+
11
+ import type { RenderResult, RenderOptions } from '@testing-library/react'
12
+ import type { PreloadedState, Store } from 'redux'
13
+
14
+ export interface RenderWithProvidersOptions<State> extends RenderOptions {
15
+ initialState?: State
16
+ i18nInstance: React.ComponentProps<typeof I18nextProvider>['i18n']
17
+ }
18
+
19
+ export function renderWithProviders<State>(
20
+ Component: React.ReactElement,
21
+ options?: RenderWithProvidersOptions<State>
22
+ ): [RenderResult, Store<State>] {
23
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
24
+ const { initialState = {}, i18nInstance = null } = options || {}
25
+
26
+ const store: Store<State> = createStore(
27
+ vi.fn(),
28
+ initialState as PreloadedState<State>
29
+ )
30
+ store.dispatch = vi.fn()
31
+ store.getState = vi.fn(() => initialState) as () => State
32
+
33
+ const queryClient = new QueryClient()
34
+
35
+ const ProviderWrapper: React.ComponentType<React.PropsWithChildren<{}>> = ({
36
+ children,
37
+ }) => {
38
+ const BaseWrapper = (
39
+ <QueryClientProvider client={queryClient}>
40
+ <Provider store={store}>{children}</Provider>
41
+ </QueryClientProvider>
42
+ )
43
+ if (i18nInstance != null) {
44
+ return (
45
+ <I18nextProvider i18n={i18nInstance}>{BaseWrapper}</I18nextProvider>
46
+ )
47
+ } else {
48
+ return BaseWrapper
49
+ }
50
+ }
51
+
52
+ return [render(Component, { wrapper: ProviderWrapper }), store]
53
+ }