@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.
- package/Makefile +5 -1
- package/package.json +6 -7
- package/src/__mocks__/file.js +10 -0
- package/src/alerts/AlertItem.stories.tsx +49 -0
- package/src/alerts/AlertItem.tsx +85 -0
- package/src/alerts/index.ts +3 -0
- package/src/atoms/Checkbox/Checkbox.stories.tsx +24 -0
- package/src/atoms/Checkbox/index.tsx +127 -0
- package/src/atoms/CheckboxField/CheckboxField.stories.tsx +30 -0
- package/src/atoms/CheckboxField/index.tsx +171 -0
- package/src/atoms/Chip/Chip.stories.tsx +59 -0
- package/src/atoms/Chip/index.tsx +172 -0
- package/src/atoms/Divider/index.tsx +15 -0
- package/src/atoms/InputField/InputField.stories.tsx +77 -0
- package/src/atoms/InputField/index.tsx +383 -0
- package/src/atoms/ListButton/ListButton.stories.tsx +133 -0
- package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordion.tsx +65 -0
- package/src/atoms/ListButton/ListButtonChildren/ListButtonAccordionContainer.tsx +23 -0
- package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +108 -0
- package/src/atoms/ListButton/ListButtonChildren/index.ts +3 -0
- package/src/atoms/ListButton/index.tsx +72 -0
- package/src/atoms/ListItem/ListItem.stories.tsx +96 -0
- package/src/atoms/ListItem/ListItemChildren/ListItemCustomize.tsx +78 -0
- package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +42 -0
- package/src/atoms/ListItem/ListItemChildren/index.ts +2 -0
- package/src/atoms/ListItem/index.tsx +89 -0
- package/src/atoms/MenuList/MenuItem.stories.tsx +20 -0
- package/src/atoms/MenuList/MenuItem.tsx +55 -0
- package/src/atoms/MenuList/MenuList.stories.tsx +31 -0
- package/src/atoms/MenuList/OverflowBtn.stories.tsx +17 -0
- package/src/atoms/MenuList/OverflowBtn.tsx +76 -0
- package/src/atoms/MenuList/index.tsx +50 -0
- package/src/atoms/Snackbar/Snackbar.stories.tsx +67 -0
- package/src/atoms/Snackbar/index.tsx +91 -0
- package/src/atoms/StepMeter/index.tsx +53 -0
- package/src/atoms/StyledText/LegacyStyledText.stories.tsx +106 -0
- package/src/atoms/StyledText/LegacyStyledText.tsx +95 -0
- package/src/atoms/StyledText/StyledText.stories.tsx +46 -0
- package/src/atoms/StyledText/StyledText.tsx +323 -0
- package/src/atoms/StyledText/index.ts +2 -0
- package/src/atoms/Tag/Tag.stories.tsx +48 -0
- package/src/atoms/Tag/index.tsx +116 -0
- package/src/atoms/Toast/ODDToast.stories.tsx +68 -0
- package/src/atoms/Toast/Toast.stories.tsx +55 -0
- package/src/atoms/Toast/index.tsx +439 -0
- package/src/atoms/ToggleGroup/ToggleGroup.stories.tsx +39 -0
- package/src/atoms/ToggleGroup/index.tsx +91 -0
- package/src/atoms/Tooltip/Tooltip.stories.tsx +99 -0
- package/src/atoms/Tooltip/index.tsx +38 -0
- package/src/atoms/buttons/AlertPrimaryButton.tsx +26 -0
- package/src/atoms/buttons/AltPrimaryButton.tsx +31 -0
- package/src/atoms/buttons/EmptySelectorButton.stories.tsx +36 -0
- package/src/atoms/buttons/EmptySelectorButton.tsx +83 -0
- package/src/atoms/buttons/LargeButton.stories.tsx +99 -0
- package/src/atoms/buttons/LargeButton.tsx +320 -0
- package/src/atoms/buttons/PrimaryButton.tsx +36 -0
- package/src/atoms/buttons/RadioButton.stories.tsx +35 -0
- package/src/atoms/buttons/RadioButton.tsx +217 -0
- package/src/atoms/buttons/SecondaryButton.tsx +62 -0
- package/src/atoms/buttons/buttons.stories.tsx +78 -0
- package/src/atoms/buttons/index.ts +6 -0
- package/src/atoms/index.ts +20 -0
- package/src/barrel.ts +10 -0
- package/src/buttons/Button.tsx +96 -0
- package/src/buttons/DeprecatedPrimaryButton.tsx +24 -0
- package/src/buttons/FlatButton.tsx +21 -0
- package/src/buttons/IconButton.tsx +37 -0
- package/src/buttons/OutlineButton.tsx +24 -0
- package/src/buttons/index.ts +7 -0
- package/src/controls/ControlInfo.tsx +13 -0
- package/src/controls/LabeledButton.tsx +28 -0
- package/src/controls/LabeledCheckbox.tsx +35 -0
- package/src/controls/LabeledControl.tsx +24 -0
- package/src/controls/LabeledRadioGroup.tsx +27 -0
- package/src/controls/LabeledSelect.tsx +34 -0
- package/src/controls/LabeledToggle.tsx +35 -0
- package/src/controls/StackedLabeledControl.tsx +28 -0
- package/src/controls/ToggleButton.tsx +25 -0
- package/src/controls/index.ts +10 -0
- package/src/forms/DeprecatedCheckboxField.stories.tsx +31 -0
- package/src/forms/DeprecatedCheckboxField.tsx +94 -0
- package/src/forms/DropdownField.stories.tsx +44 -0
- package/src/forms/DropdownField.tsx +106 -0
- package/src/forms/FormGroup.stories.tsx +31 -0
- package/src/forms/FormGroup.tsx +53 -0
- package/src/forms/InputField.stories.tsx +41 -0
- package/src/forms/LegacyInputField.tsx +123 -0
- package/src/forms/RadioGroup.stories.tsx +44 -0
- package/src/forms/RadioGroup.tsx +87 -0
- package/src/forms/Select.stories.tsx +117 -0
- package/src/forms/Select.tsx +132 -0
- package/src/forms/SelectField.tsx +94 -0
- package/src/forms/ToggleField.stories.tsx +31 -0
- package/src/forms/ToggleField.tsx +59 -0
- package/src/forms/index.ts +8 -0
- package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +94 -0
- package/src/hardware-sim/BaseDeck/BaseDeck.tsx +423 -0
- package/src/hardware-sim/BaseDeck/SingleSlotFixture.tsx +199 -0
- package/src/hardware-sim/BaseDeck/SlotBase.tsx +5 -0
- package/src/hardware-sim/BaseDeck/SlotClip.tsx +15 -0
- package/src/hardware-sim/BaseDeck/StagingAreaFixture.tsx +114 -0
- package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +114 -0
- package/src/hardware-sim/BaseDeck/WasteChuteStagingAreaFixture.tsx +68 -0
- package/src/hardware-sim/BaseDeck/__fixtures__/index.ts +165 -0
- package/src/hardware-sim/BaseDeck/index.ts +5 -0
- package/src/hardware-sim/BaseDeck/something.test.tsx +7 -0
- package/src/hardware-sim/Deck/DeckFromLayers.tsx +58 -0
- package/src/hardware-sim/Deck/FlexTrash.tsx +128 -0
- package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +97 -0
- package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +251 -0
- package/src/hardware-sim/Deck/OT2Layers.tsx +153 -0
- package/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx +46 -0
- package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +42 -0
- package/src/hardware-sim/Deck/RobotCoordsText.tsx +32 -0
- package/src/hardware-sim/Deck/RobotWorkSpace.tsx +90 -0
- package/src/hardware-sim/Deck/SlotLabels.tsx +111 -0
- package/src/hardware-sim/Deck/__mocks__/getDeckDefinitions.ts +29 -0
- package/src/hardware-sim/Deck/constants.ts +12 -0
- package/src/hardware-sim/Deck/index.tsx +8 -0
- package/src/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.tsx +91 -0
- package/src/hardware-sim/DeckConfigurator/DeckConfigurator.stories.tsx +110 -0
- package/src/hardware-sim/DeckConfigurator/EmptyConfigFixture.tsx +131 -0
- package/src/hardware-sim/DeckConfigurator/HeaterShakerFixture.tsx +102 -0
- package/src/hardware-sim/DeckConfigurator/MagneticBlockFixture.tsx +130 -0
- package/src/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.tsx +89 -0
- package/src/hardware-sim/DeckConfigurator/StaticFixture.tsx +54 -0
- package/src/hardware-sim/DeckConfigurator/TemperatureModuleFixture.tsx +103 -0
- package/src/hardware-sim/DeckConfigurator/ThermocyclerFixture.tsx +89 -0
- package/src/hardware-sim/DeckConfigurator/TrashBinConfigFixture.tsx +99 -0
- package/src/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.tsx +96 -0
- package/src/hardware-sim/DeckConfigurator/constants.ts +81 -0
- package/src/hardware-sim/DeckConfigurator/index.tsx +285 -0
- package/src/hardware-sim/DeckSlotLocation/index.tsx +88 -0
- package/src/hardware-sim/Labware/Labware.tsx +173 -0
- package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96DeepWellAdapter.tsx +23 -0
- package/src/hardware-sim/Labware/LabwareAdapter/Opentrons96FlatBottomAdapter.tsx +7 -0
- package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAluminumFlatBottomPlate.tsx +13 -0
- package/src/hardware-sim/Labware/LabwareAdapter/OpentronsAutoclavableDeckRiser.tsx +100 -0
- package/src/hardware-sim/Labware/LabwareAdapter/OpentronsFlex96TiprackAdapter.tsx +13 -0
- package/src/hardware-sim/Labware/LabwareAdapter/OpentronsToughPCRAutoSealingLid.tsx +83 -0
- package/src/hardware-sim/Labware/LabwareAdapter/OpentronsUniversalFlatAdapter.tsx +13 -0
- package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +73 -0
- package/src/hardware-sim/Labware/LabwareRender.stories.tsx +96 -0
- package/src/hardware-sim/Labware/LabwareRender.tsx +173 -0
- package/src/hardware-sim/Labware/LabwareStackRender.tsx +272 -0
- package/src/hardware-sim/Labware/index.ts +6 -0
- package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +39 -0
- package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +133 -0
- package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +118 -0
- package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +121 -0
- package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +38 -0
- package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +77 -0
- package/src/hardware-sim/Labware/labwareInternals/Well.tsx +74 -0
- package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +121 -0
- package/src/hardware-sim/Labware/labwareInternals/index.ts +8 -0
- package/src/hardware-sim/Labware/labwareInternals/types.ts +18 -0
- package/src/hardware-sim/Module/HeaterShaker.tsx +83 -0
- package/src/hardware-sim/Module/MagneticBlock.tsx +49 -0
- package/src/hardware-sim/Module/MagneticModule.tsx +51 -0
- package/src/hardware-sim/Module/Module.stories.tsx +90 -0
- package/src/hardware-sim/Module/ModuleTag.tsx +38 -0
- package/src/hardware-sim/Module/PlateReader.tsx +208 -0
- package/src/hardware-sim/Module/Temperature.tsx +54 -0
- package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN1.tsx +248 -0
- package/src/hardware-sim/Module/Thermocycler/ThermocyclerGEN2.tsx +286 -0
- package/src/hardware-sim/Module/Thermocycler/index.tsx +49 -0
- package/src/hardware-sim/Module/index.tsx +227 -0
- package/src/hardware-sim/Pipette/EightEmanatingNozzles.tsx +23 -0
- package/src/hardware-sim/Pipette/EmanatingNozzle.tsx +52 -0
- package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +71 -0
- package/src/hardware-sim/Pipette/PipetteRender.tsx +92 -0
- package/src/hardware-sim/Pipette/constants.ts +10 -0
- package/src/hardware-sim/Pipette/index.ts +1 -0
- package/src/hardware-sim/ProtocolDeck/LabwareInfo.tsx +68 -0
- package/src/hardware-sim/ProtocolDeck/ProtocolDeck.stories.tsx +25 -0
- package/src/hardware-sim/ProtocolDeck/__fixtures__/analysis_QIAseqFX24xv4_8.json +47145 -0
- package/src/hardware-sim/ProtocolDeck/index.tsx +174 -0
- package/src/hardware-sim/ProtocolDeck/types.ts +6 -0
- package/src/hardware-sim/ProtocolDeck/utils/getInitiallyLoadedLabwareByAdapter.ts +33 -0
- package/src/hardware-sim/ProtocolDeck/utils/getLabwareInSlots.ts +155 -0
- package/src/hardware-sim/ProtocolDeck/utils/getLabwareInfoByLiquidId.ts +42 -0
- package/src/hardware-sim/ProtocolDeck/utils/getModulesInSlots.ts +129 -0
- package/src/hardware-sim/ProtocolDeck/utils/getStandardDeckViewLayerBlockList.ts +29 -0
- package/src/hardware-sim/ProtocolDeck/utils/getWellFillFromLabwareId.ts +30 -0
- package/src/hardware-sim/ProtocolDeck/utils/index.ts +3 -0
- package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +28 -0
- package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpaceWithRef.tsx +52 -0
- package/src/hardware-sim/RobotCoordinateSpace/index.ts +2 -0
- package/src/hardware-sim/index.ts +11 -0
- package/src/hardware-sim/utils.ts +18 -0
- package/src/helix-design-system/borders.ts +32 -0
- package/src/helix-design-system/colors.ts +100 -0
- package/src/helix-design-system/index.ts +4 -0
- package/src/helix-design-system/product/index.ts +1 -0
- package/src/helix-design-system/product/typography.ts +151 -0
- package/src/helix-design-system/style.ts +2 -0
- package/src/hooks/index.ts +15 -0
- package/src/hooks/useConditionalConfirm.ts +70 -0
- package/src/hooks/useDrag.ts +90 -0
- package/src/hooks/useIdle.ts +68 -0
- package/src/hooks/useInterval.ts +38 -0
- package/src/hooks/useLongPress.ts +83 -0
- package/src/hooks/useMenuHandleClickOutside.tsx +46 -0
- package/src/hooks/useMountEffect.ts +12 -0
- package/src/hooks/usePrevious.ts +19 -0
- package/src/hooks/useScrolling.ts +33 -0
- package/src/hooks/useSelectDeckLocation/SelectDeckLocation.stories.tsx +55 -0
- package/src/hooks/useSelectDeckLocation/index.tsx +331 -0
- package/src/hooks/useSwipe.ts +86 -0
- package/src/hooks/useTimeout.ts +33 -0
- package/src/hooks/useToggle.ts +27 -0
- package/src/icons/Icon.stories.tsx +37 -0
- package/src/icons/Icon.tsx +79 -0
- package/src/icons/IconList.stories.tsx +108 -0
- package/src/icons/ModuleIcon.tsx +48 -0
- package/src/icons/NotificationIcon.tsx +41 -0
- package/src/icons/icon-data.ts +821 -0
- package/src/icons/index.ts +6 -0
- package/src/images/index.ts +1 -0
- package/src/images/labware/index.ts +1 -0
- package/src/images/labware/measurement-guide/images/depth/depth-plate-flat@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/depth/depth-plate-round@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/depth/depth-plate-v@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-flat@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-round@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/depth/depth-reservoir-and-tubes-v@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/depth/length-tip-rack@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/footprint@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-plate@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/height-alum-block-tubes@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/height-plate-and-reservoir@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/height-tip-rack@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack-irregular@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/dimensions/height-tube-rack@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/offset/offset-reservoir@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/offset/offset-well-circular@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/offset/offset-well-rectangular@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/shape/shape-circular@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/shape/shape-rectangular@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir-multi-row@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/spacing/spacing-reservoir@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/spacing/spacing-well-circular@3x.png +0 -0
- package/src/images/labware/measurement-guide/images/spacing/spacing-well-rectangular@3x.png +0 -0
- package/src/images/labware/measurement-guide/index.ts +272 -0
- package/src/index.ts +2 -0
- package/src/instrument/InstrumentDiagram.stories.tsx +42 -0
- package/src/instrument/InstrumentDiagram.tsx +58 -0
- package/src/instrument/InstrumentGroup.stories.tsx +88 -0
- package/src/instrument/InstrumentGroup.tsx +35 -0
- package/src/instrument/InstrumentInfo.tsx +107 -0
- package/src/instrument/PipetteSelect.stories.tsx +40 -0
- package/src/instrument/PipetteSelect.tsx +170 -0
- package/src/instrument/eight-channel-flex.png +0 -0
- package/src/instrument/index.ts +4 -0
- package/src/instrument/multi-channel_GEN1_800px.png +0 -0
- package/src/instrument/multi-channel_GEN2_800px.png +0 -0
- package/src/instrument/ninety-six-channel-gen1.png +0 -0
- package/src/instrument/pipetteGEN2Multi.png +0 -0
- package/src/instrument/pipetteGEN2Single.png +0 -0
- package/src/instrument/pipetteMulti.png +0 -0
- package/src/instrument/pipetteSingle.png +0 -0
- package/src/instrument/single-channel-flex.png +0 -0
- package/src/instrument/single-channel_GEN2_800px.png +0 -0
- package/src/instrument/single_channel_GEN1_800px.png +0 -0
- package/src/interaction-enhancers/ClickOutside.ts +57 -0
- package/src/interaction-enhancers/HandleKeypress.tsx +69 -0
- package/src/interaction-enhancers/index.ts +4 -0
- package/src/interaction-enhancers/useHover.ts +84 -0
- package/src/interaction-enhancers/useOnClickOutside.ts +42 -0
- package/src/legacy-hardware-sim/LabwareNameOverlay.tsx +22 -0
- package/src/legacy-hardware-sim/ModuleItem.tsx +145 -0
- package/src/legacy-hardware-sim/index.ts +2 -0
- package/src/lists/SidePanelGroup.tsx +48 -0
- package/src/lists/TitledList.tsx +155 -0
- package/src/lists/index.ts +3 -0
- package/src/modals/AlertModal.tsx +89 -0
- package/src/modals/ContinueModal.tsx +32 -0
- package/src/modals/LegacyModal.tsx +59 -0
- package/src/modals/Modal.stories.tsx +52 -0
- package/src/modals/Modal.tsx +96 -0
- package/src/modals/ModalHeader.tsx +100 -0
- package/src/modals/ModalShell.tsx +155 -0
- package/src/modals/Overlay.tsx +38 -0
- package/src/modals/SpinnerModal.tsx +35 -0
- package/src/modals/SpinnerModalPage.tsx +30 -0
- package/src/modals/index.ts +10 -0
- package/src/molecules/Banner/Banner.stories.tsx +41 -0
- package/src/molecules/Banner/index.tsx +147 -0
- package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +65 -0
- package/src/molecules/DeckInfoLabel/index.tsx +95 -0
- package/src/molecules/DeckLabel/DeckLabel.stories.tsx +31 -0
- package/src/molecules/DeckLabel/index.tsx +80 -0
- package/src/molecules/DropdownMenu/DropdownMenu.stories.tsx +30 -0
- package/src/molecules/DropdownMenu/index.tsx +343 -0
- package/src/molecules/InfoScreen/InfoScreen.stories.tsx +50 -0
- package/src/molecules/InfoScreen/index.tsx +54 -0
- package/src/molecules/LiquidIcon/LiquidIcon.stories.tsx +53 -0
- package/src/molecules/LiquidIcon/index.tsx +68 -0
- package/src/molecules/ParametersTable/ParametersTable.stories.tsx +172 -0
- package/src/molecules/ParametersTable/index.tsx +198 -0
- package/src/molecules/Tabs/Tabs.stories.tsx +74 -0
- package/src/molecules/Tabs/index.tsx +94 -0
- package/src/molecules/index.ts +8 -0
- package/src/nav/SidePanel.stories.tsx +29 -0
- package/src/nav/SidePanel.tsx +21 -0
- package/src/nav/index.ts +2 -0
- package/src/organisms/DeckLabelSet/DeckLabelSet.stories.tsx +46 -0
- package/src/organisms/DeckLabelSet/index.tsx +69 -0
- package/src/organisms/EndUserAgreementFooter/index.tsx +49 -0
- package/src/organisms/Toolbox/Toolbox.stories.tsx +23 -0
- package/src/organisms/Toolbox/index.tsx +160 -0
- package/src/organisms/index.ts +3 -0
- package/src/primitives/Box.stories.tsx +25 -0
- package/src/primitives/Box.tsx +17 -0
- package/src/primitives/Btn.stories.tsx +105 -0
- package/src/primitives/Btn.tsx +266 -0
- package/src/primitives/Flex.stories.tsx +50 -0
- package/src/primitives/Flex.tsx +17 -0
- package/src/primitives/ForeignObject.tsx +70 -0
- package/src/primitives/Link.stories.tsx +27 -0
- package/src/primitives/Link.tsx +32 -0
- package/src/primitives/README.md +188 -0
- package/src/primitives/Svg.stories.tsx +36 -0
- package/src/primitives/Svg.tsx +68 -0
- package/src/primitives/Text.stories.tsx +17 -0
- package/src/primitives/Text.tsx +18 -0
- package/src/primitives/index.ts +10 -0
- package/src/primitives/style-props.ts +197 -0
- package/src/primitives/types.ts +120 -0
- package/src/robot-types.ts +4 -0
- package/src/slotmap/OT2SlotMap.tsx +73 -0
- package/src/slotmap/index.ts +1 -0
- package/src/structure/Card.stories.tsx +28 -0
- package/src/structure/Card.tsx +64 -0
- package/src/structure/LabeledValue.stories.tsx +17 -0
- package/src/structure/LabeledValue.tsx +31 -0
- package/src/structure/Pill.tsx +43 -0
- package/src/structure/Splash.stories.tsx +24 -0
- package/src/structure/Splash.tsx +22 -0
- package/src/structure/TitleBar.stories.tsx +42 -0
- package/src/structure/TitleBar.tsx +81 -0
- package/src/structure/index.ts +7 -0
- package/src/styles/borders.ts +16 -0
- package/src/styles/colors.ts +58 -0
- package/src/styles/cursor.ts +12 -0
- package/src/styles/flexbox.ts +39 -0
- package/src/styles/index.ts +8 -0
- package/src/styles/layout.ts +31 -0
- package/src/styles/position.ts +5 -0
- package/src/styles/spacing.ts +11 -0
- package/src/styles/typography.ts +90 -0
- package/src/testing/utils/index.ts +2 -0
- package/src/testing/utils/matchers.ts +31 -0
- package/src/testing/utils/renderWithProviders.tsx +53 -0
- package/src/tooltips/DeprecatedTooltip.tsx +105 -0
- package/src/tooltips/HoverTooltip.tsx +83 -0
- package/src/tooltips/LegacyTooltip.stories.tsx +98 -0
- package/src/tooltips/LegacyTooltip.tsx +151 -0
- package/src/tooltips/constants.ts +28 -0
- package/src/tooltips/index.ts +10 -0
- package/src/tooltips/styles.ts +20 -0
- package/src/tooltips/types.ts +73 -0
- package/src/tooltips/useHoverTooltip.ts +47 -0
- package/src/tooltips/usePopper.ts +87 -0
- package/src/tooltips/useTooltip.ts +100 -0
- package/src/ui-style-constants/index.ts +4 -0
- package/src/ui-style-constants/responsiveness.ts +15 -0
- package/src/ui-style-constants/spacing.ts +18 -0
- package/src/ui-style-constants/typography.ts +258 -0
- package/src/ui-style-constants/viewport.ts +18 -0
- package/src/utils.ts +56 -0
- package/{vite.config.ts → vite.config.mts} +2 -0
- package/lib/index.mjs +0 -19869
|
@@ -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,
|