@opentrons/components 0.1.7-alpha.1 → 0.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cssModuleSideEffect.ts +22 -0
- package/lib/assets/localization/en/index.d.ts +12 -0
- package/lib/assets/localization/index.d.ts +12 -0
- package/lib/atoms/AnimationVideo/index.d.ts +13 -0
- package/lib/atoms/InlineNotification/index.d.ts +1 -1
- package/lib/atoms/ListButton/ListButtonChildren/index.d.ts +0 -1
- package/lib/atoms/StyledText/PlaceholderStyledText.d.ts +14 -0
- package/lib/atoms/StyledText/index.d.ts +1 -0
- package/lib/atoms/buttons/BasicButton.d.ts +12 -0
- package/lib/atoms/buttons/index.d.ts +1 -0
- package/lib/atoms/index.d.ts +1 -0
- package/lib/hardware-sim/BaseDeck/BaseDeck.d.ts +10 -8
- package/lib/hardware-sim/Deck/FlexTrash.d.ts +4 -1
- package/lib/hardware-sim/Deck/MoveLabwareOnDeck.d.ts +3 -2
- package/lib/hardware-sim/Deck/RobotCoordsForeignDiv.d.ts +6 -5
- package/lib/hardware-sim/Deck/RobotCoordsForeignObject.d.ts +8 -5
- package/lib/hardware-sim/Deck/RobotCoordsText.d.ts +11 -1
- package/lib/hardware-sim/Deck/RobotWorkSpace.d.ts +30 -14
- package/lib/hardware-sim/Deck/__tests__/resolveLabwareLocation.test.d.ts +1 -0
- package/lib/hardware-sim/Deck/resolveLabwareLocation.d.ts +20 -0
- package/lib/hardware-sim/DeckConfigurator/AbsorbanceReaderItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/EmptyConfigItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/FlexStackerItem.d.ts +12 -0
- package/lib/hardware-sim/DeckConfigurator/HeaterShakerItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/MagneticBlockItem.d.ts +12 -0
- package/lib/hardware-sim/DeckConfigurator/StagingAreaConfigItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/{StaticFixture.d.ts → StaticItem.d.ts} +1 -1
- package/lib/hardware-sim/DeckConfigurator/TemperatureModuleItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/ThermocyclerItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/TrashBinConfigItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/WasteChuteConfigItem.d.ts +11 -0
- package/lib/hardware-sim/DeckConfigurator/constants.d.ts +5 -8
- package/lib/hardware-sim/DeckConfigurator/index.d.ts +4 -3
- package/lib/hardware-sim/Labware/CalibrationBlockRender.d.ts +15 -0
- package/lib/hardware-sim/Labware/Labware.d.ts +7 -8
- package/lib/hardware-sim/Labware/LabwareAdapter/index.d.ts +2 -2
- package/lib/hardware-sim/Labware/LabwareRender.d.ts +46 -5
- package/lib/hardware-sim/Labware/index.d.ts +1 -0
- package/lib/hardware-sim/Labware/labwareInternals/FilledWells.d.ts +3 -4
- package/lib/hardware-sim/Labware/labwareInternals/LabwareOutline.d.ts +20 -9
- package/lib/hardware-sim/Labware/labwareInternals/LabwareWellLabels.d.ts +2 -2
- package/lib/hardware-sim/Labware/labwareInternals/StaticLabware.d.ts +2 -2
- package/lib/hardware-sim/Labware/labwareInternals/StrokedWells.d.ts +2 -2
- package/lib/hardware-sim/Labware/labwareInternals/StyledWells.d.ts +2 -2
- package/lib/hardware-sim/Labware/labwareInternals/Well.d.ts +1 -2
- package/lib/hardware-sim/Labware/labwareInternals/WellLabels.d.ts +2 -2
- package/lib/hardware-sim/Module/index.d.ts +24 -2
- package/lib/hardware-sim/Pipette/PipetteRender.d.ts +2 -2
- package/lib/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.d.ts +5 -3
- package/lib/hocs/withStyleProps.d.ts +26 -0
- package/lib/hooks/useConditionalConfirm.d.ts +4 -0
- package/lib/icons/Icon.d.ts +7 -7
- package/lib/icons/ModuleIcon.d.ts +4 -3
- package/lib/instrument/index.d.ts +0 -2
- package/lib/legacy-hardware-sim/index.d.ts +0 -1
- package/lib/lists/index.d.ts +0 -1
- package/lib/molecules/CustomizeExpandButton/__tests__/CustomizeExpandButton.test.d.ts +1 -0
- package/lib/molecules/CustomizeExpandButton/index.d.ts +29 -0
- package/lib/molecules/DeckInfoLabel/index.d.ts +8 -16
- package/lib/molecules/index.d.ts +2 -1
- package/lib/organisms/CommandText/index.d.ts +2 -2
- package/lib/organisms/CommandText/useCommandTextString/index.d.ts +2 -2
- package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.d.ts +2 -2
- package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.d.ts +3 -3
- package/lib/organisms/CommandText/useCommandTextString/utils/getLabwareName.d.ts +2 -2
- package/lib/organisms/FixtureOption/index.d.ts +2 -2
- package/lib/organisms/ProtocolDeck/index.d.ts +10 -0
- package/lib/organisms/ProtocolTimelineScrubber/CommandItem.d.ts +2 -2
- package/lib/organisms/ProtocolTimelineScrubber/utils.d.ts +2 -2
- package/lib/organisms/index.d.ts +1 -0
- package/lib/primitives/ForeignObject.d.ts +8 -18
- package/lib/primitives/style-props.d.ts +1 -1
- package/lib/structure/index.d.ts +2 -3
- package/package.json +6 -3
- package/src/alerts/alerts.module.css +2 -2
- package/src/assets/localization/en/deck_configuration.json +12 -0
- package/src/assets/localization/en/index.ts +2 -0
- package/src/assets/localization/en/protocol_command_text.json +1 -1
- package/src/atoms/AnimationVideo/__tests__/AnimationVideo.test.tsx +40 -0
- package/src/atoms/AnimationVideo/index.tsx +44 -0
- package/src/atoms/CheckboxField/__tests__/CheckboxField.test.tsx +0 -3
- package/src/atoms/CheckboxField/index.tsx +1 -1
- package/src/atoms/InlineNotification/index.tsx +86 -70
- package/src/atoms/ListButton/ListButton.stories.tsx +21 -7
- package/src/atoms/ListButton/ListButtonChildren/index.ts +0 -1
- package/src/atoms/ListItem/ListItemChildren/ListItemDescriptor.tsx +2 -2
- package/src/atoms/MenuList/OverflowBtn.tsx +39 -41
- package/src/atoms/Snackbar/Snackbar.stories.tsx +59 -23
- package/src/atoms/Snackbar/index.tsx +48 -38
- package/src/atoms/StyledText/PlaceholderStyledText.tsx +46 -0
- package/src/atoms/StyledText/index.ts +1 -0
- package/src/atoms/StyledText/placeholderstyledtext.module.css +25 -0
- package/src/atoms/buttons/BasicButton.tsx +100 -0
- package/src/atoms/buttons/SecondaryButton.tsx +5 -2
- package/src/atoms/buttons/__tests__/BasicButton.test.tsx +87 -0
- package/src/atoms/buttons/buttons.stories.tsx +91 -55
- package/src/atoms/buttons/index.ts +1 -0
- package/src/atoms/index.ts +1 -0
- package/src/buttons/buttons.module.css +92 -92
- package/src/controls/styles.module.css +15 -15
- package/src/forms/Select.module.css +23 -23
- package/src/forms/forms.module.css +38 -37
- package/src/hardware-sim/BaseDeck/BaseDeck.stories.tsx +7 -7
- package/src/hardware-sim/BaseDeck/BaseDeck.tsx +98 -61
- package/src/hardware-sim/BaseDeck/WasteChuteFixture.tsx +22 -28
- package/src/hardware-sim/BaseDeck/basedeck.module.css +20 -0
- package/src/hardware-sim/Deck/FlexTrash.tsx +50 -30
- package/src/hardware-sim/Deck/MoveLabwareOnDeck.stories.tsx +2 -2
- package/src/hardware-sim/Deck/MoveLabwareOnDeck.tsx +122 -156
- package/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx +35 -27
- package/src/hardware-sim/Deck/RobotCoordsForeignObject.tsx +32 -29
- package/src/hardware-sim/Deck/RobotCoordsText.tsx +12 -11
- package/src/hardware-sim/Deck/RobotWorkSpace.tsx +74 -54
- package/src/hardware-sim/Deck/SlotLabels.tsx +51 -51
- package/src/hardware-sim/Deck/__tests__/resolveLabwareLocation.test.ts +138 -0
- package/src/hardware-sim/Deck/deck.module.css +54 -0
- package/src/hardware-sim/Deck/resolveLabwareLocation.ts +154 -0
- package/src/hardware-sim/DeckConfigurator/{FlexStackerFixture.tsx → AbsorbanceReaderItem.tsx} +34 -31
- package/src/hardware-sim/DeckConfigurator/{EmptyConfigFixture.tsx → EmptyConfigItem.tsx} +72 -44
- package/src/hardware-sim/DeckConfigurator/{AbsorbanceReaderFixture.tsx → FlexStackerItem.tsx} +46 -27
- package/src/hardware-sim/DeckConfigurator/{HeaterShakerFixture.tsx → HeaterShakerItem.tsx} +40 -28
- package/src/hardware-sim/DeckConfigurator/{MagneticBlockFixture.tsx → MagneticBlockItem.tsx} +41 -58
- package/src/hardware-sim/DeckConfigurator/{StagingAreaConfigFixture.tsx → StagingAreaConfigItem.tsx} +41 -23
- package/src/hardware-sim/DeckConfigurator/{StaticFixture.tsx → StaticItem.tsx} +16 -9
- package/src/hardware-sim/DeckConfigurator/{TemperatureModuleFixture.tsx → TemperatureModuleItem.tsx} +42 -26
- package/src/hardware-sim/DeckConfigurator/{ThermocyclerFixture.tsx → ThermocyclerItem.tsx} +31 -21
- package/src/hardware-sim/DeckConfigurator/{TrashBinConfigFixture.tsx → TrashBinConfigItem.tsx} +42 -27
- package/src/hardware-sim/DeckConfigurator/{WasteChuteConfigFixture.tsx → WasteChuteConfigItem.tsx} +38 -27
- package/src/hardware-sim/DeckConfigurator/constants.ts +5 -9
- package/src/hardware-sim/DeckConfigurator/index.tsx +236 -206
- package/src/hardware-sim/Labware/CalibrationBlockRender.stories.tsx +49 -0
- package/src/hardware-sim/Labware/CalibrationBlockRender.tsx +172 -0
- package/src/hardware-sim/Labware/Labware.tsx +30 -15
- package/src/hardware-sim/Labware/LabwareAdapter/index.tsx +2 -2
- package/src/hardware-sim/Labware/LabwareRender.stories.tsx +36 -21
- package/src/hardware-sim/Labware/LabwareRender.tsx +70 -15
- package/src/hardware-sim/Labware/__tests__/Labware.test.tsx +9 -4
- package/src/hardware-sim/Labware/__tests__/LabwareRender.test.tsx +14 -5
- package/src/hardware-sim/Labware/index.ts +1 -0
- package/src/hardware-sim/Labware/labware.module.css +8 -0
- package/src/hardware-sim/Labware/labwareInternals/FilledWells.tsx +3 -4
- package/src/hardware-sim/Labware/labwareInternals/LabwareOutline.tsx +48 -23
- package/src/hardware-sim/Labware/labwareInternals/LabwareWellLabels.tsx +3 -3
- package/src/hardware-sim/Labware/labwareInternals/StaticLabware.tsx +2 -2
- package/src/hardware-sim/Labware/labwareInternals/StrokedWells.tsx +2 -2
- package/src/hardware-sim/Labware/labwareInternals/StyledWells.tsx +2 -2
- package/src/hardware-sim/Labware/labwareInternals/Well.tsx +1 -2
- package/src/hardware-sim/Labware/labwareInternals/WellLabels.tsx +10 -11
- package/src/hardware-sim/Labware/labwareInternals/__tests__/LabwareWellLabels.test.tsx +2 -2
- package/src/hardware-sim/Labware/labwareInternals/__tests__/StrokedWells.test.tsx +2 -2
- package/src/hardware-sim/Labware/labwareInternals/__tests__/WellLabels.test.tsx +2 -2
- package/src/hardware-sim/Module/Module.stories.tsx +45 -15
- package/src/hardware-sim/Module/Thermocycler/index.tsx +2 -2
- package/src/hardware-sim/Module/index.tsx +41 -18
- package/src/hardware-sim/Pipette/PipetteRender.stories.tsx +2 -2
- package/src/hardware-sim/Pipette/PipetteRender.tsx +5 -7
- package/src/hardware-sim/Pipette/__tests__/PipetteRender.test.tsx +2 -2
- package/src/hardware-sim/RobotCoordinateSpace/RobotCoordinateSpace.tsx +15 -14
- package/src/hardware-sim/RobotCoordinateSpace/robotcoordinatespace.module.css +3 -0
- package/src/hocs/withStyleProps.ts +53 -0
- package/src/hooks/useConditionalConfirm.ts +15 -5
- package/src/icons/Icon.tsx +38 -29
- package/src/icons/ModuleIcon.tsx +5 -3
- package/src/icons/icon-data.ts +26 -2
- package/src/icons/icon.module.css +10 -0
- package/src/index.module.css +1 -0
- package/src/instrument/InstrumentDiagram.tsx +0 -2
- package/src/instrument/PipetteSelect.module.css +3 -3
- package/src/instrument/index.ts +0 -2
- package/src/legacy-hardware-sim/LabwareNameOverlay.module.css +5 -5
- package/src/legacy-hardware-sim/ModuleItem.module.css +19 -19
- package/src/legacy-hardware-sim/index.ts +0 -1
- package/src/lists/index.ts +0 -1
- package/src/lists/lists.module.css +23 -23
- package/src/modals/modals.module.css +55 -55
- package/src/molecules/CustomizeExpandButton/__tests__/CustomizeExpandButton.test.tsx +88 -0
- package/src/molecules/CustomizeExpandButton/index.tsx +189 -0
- package/src/molecules/DeckInfoLabel/DeckInfoLabel.stories.tsx +10 -6
- package/src/molecules/DeckInfoLabel/__tests__/DeckInfoLabel.test.tsx +15 -11
- package/src/molecules/DeckInfoLabel/deckinfolabel.module.css +42 -0
- package/src/molecules/DeckInfoLabel/index.tsx +36 -62
- package/src/molecules/DropdownMenu/index.tsx +17 -13
- package/src/molecules/InfoScreen/index.tsx +6 -2
- package/src/molecules/ReleaseNotes/styles.module.css +15 -15
- package/src/molecules/index.ts +2 -1
- package/src/nav/SidePanel.module.css +6 -6
- package/src/organisms/CommandText/__tests__/CommandText.test.tsx +12 -12
- package/src/organisms/CommandText/index.tsx +2 -2
- package/src/organisms/CommandText/useCommandTextString/index.ts +2 -2
- package/src/organisms/CommandText/useCommandTextString/utils/__tests__/getFinalLabwareLocation.test.ts +4 -4
- package/src/organisms/CommandText/useCommandTextString/utils/commandText/__tests__/getPipettingCommandText.test.tsx +3 -3
- package/src/organisms/CommandText/useCommandTextString/utils/commandText/getFlexStackerCommandText.ts +2 -4
- package/src/organisms/CommandText/useCommandTextString/utils/commandText/getMoveToWellCommandText.ts +19 -3
- package/src/organisms/CommandText/useCommandTextString/utils/commandText/getPipettingCommandText.ts +19 -10
- package/src/organisms/CommandText/useCommandTextString/utils/getLabwareDefinitionsFromCommands.ts +9 -9
- package/src/organisms/CommandText/useCommandTextString/utils/getLabwareLocation.tsx +3 -3
- package/src/organisms/CommandText/useCommandTextString/utils/getLabwareName.ts +2 -2
- package/src/organisms/DeckLabelSet/index.tsx +1 -3
- package/src/organisms/FixtureOption/__tests__/FixtureOption.test.tsx +0 -2
- package/src/organisms/FixtureOption/index.tsx +42 -71
- package/src/organisms/ProtocolDeck/index.tsx +118 -0
- package/src/organisms/ProtocolTimelineScrubber/CommandItem.tsx +2 -2
- package/src/organisms/ProtocolTimelineScrubber/PipetteVisuals.tsx +1 -1
- package/src/organisms/ProtocolTimelineScrubber/utils.ts +3 -3
- package/src/organisms/index.ts +1 -0
- package/src/primitives/ForeignObject.tsx +20 -61
- package/src/primitives/style-props.ts +1 -0
- package/src/slotmap/styles.module.css +1 -1
- package/src/structure/Pill.module.css +1 -1
- package/src/structure/Splash.module.css +1 -1
- package/src/structure/index.ts +2 -4
- package/src/structure/structure.module.css +11 -11
- package/src/styles/colors.module.css +1 -0
- package/src/styles/global.css +179 -0
- package/src/styles/index.module.css +1 -1
- package/src/styles/typography.module.css +1 -0
- package/src/testing/utils/renderWithProviders.tsx +3 -6
- package/src/tooltips/tooltips.module.css +14 -14
- package/vite.config.mts +6 -3
- package/lib/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.d.ts +0 -14
- package/lib/hardware-sim/DeckConfigurator/AbsorbanceReaderFixture.d.ts +0 -10
- package/lib/hardware-sim/DeckConfigurator/EmptyConfigFixture.d.ts +0 -8
- package/lib/hardware-sim/DeckConfigurator/FlexStackerFixture.d.ts +0 -11
- package/lib/hardware-sim/DeckConfigurator/HeaterShakerFixture.d.ts +0 -10
- package/lib/hardware-sim/DeckConfigurator/MagneticBlockFixture.d.ts +0 -11
- package/lib/hardware-sim/DeckConfigurator/StagingAreaConfigFixture.d.ts +0 -10
- package/lib/hardware-sim/DeckConfigurator/TemperatureModuleFixture.d.ts +0 -10
- package/lib/hardware-sim/DeckConfigurator/ThermocyclerFixture.d.ts +0 -10
- package/lib/hardware-sim/DeckConfigurator/TrashBinConfigFixture.d.ts +0 -10
- package/lib/hardware-sim/DeckConfigurator/WasteChuteConfigFixture.d.ts +0 -11
- package/lib/hardware-sim/utils.d.ts +0 -3
- package/lib/instrument/InstrumentGroup.d.ts +0 -11
- package/lib/instrument/InstrumentInfo.d.ts +0 -18
- package/lib/legacy-hardware-sim/ModuleItem.d.ts +0 -17
- package/lib/lists/TitledList.d.ts +0 -44
- package/lib/structure/Card.d.ts +0 -18
- package/src/atoms/ListButton/ListButtonChildren/ListButtonRadioButton.tsx +0 -109
- package/src/atoms/ListButton/__tests__/ListButtonRadioButton.test.tsx +0 -28
- package/src/hardware-sim/utils.ts +0 -18
- package/src/instrument/InstrumentDiagram.stories.tsx +0 -43
- package/src/instrument/InstrumentGroup.stories.tsx +0 -89
- package/src/instrument/InstrumentGroup.tsx +0 -35
- package/src/instrument/InstrumentInfo.tsx +0 -106
- package/src/instrument/__tests__/InstrumentInfo.test.tsx +0 -58
- package/src/instrument/instrument.module.css +0 -45
- package/src/legacy-hardware-sim/ModuleItem.tsx +0 -145
- package/src/lists/TitledList.tsx +0 -154
- package/src/structure/Card.stories.tsx +0 -29
- package/src/structure/Card.tsx +0 -65
- /package/lib/atoms/{ListButton/__tests__/ListButtonRadioButton.test.d.ts → AnimationVideo/__tests__/AnimationVideo.test.d.ts} +0 -0
- /package/lib/{instrument/__tests__/InstrumentInfo.test.d.ts → atoms/buttons/__tests__/BasicButton.test.d.ts} +0 -0
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
.accessibly_hidden {
|
|
4
4
|
position: absolute;
|
|
5
5
|
overflow: hidden;
|
|
6
|
-
clip: rect(0 0 0 0);
|
|
7
|
-
height: 1px;
|
|
8
6
|
width: 1px;
|
|
9
|
-
|
|
7
|
+
height: 1px;
|
|
10
8
|
padding: 0;
|
|
11
9
|
border: 0;
|
|
10
|
+
margin: -1px;
|
|
11
|
+
clip: rect(0 0 0 0);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
.form_field {
|
|
15
|
-
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
16
|
-
font-weight: var(--fw-regular); /* from legacy --font-form-default */
|
|
17
|
-
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
18
15
|
display: flex;
|
|
19
16
|
align-items: center;
|
|
17
|
+
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
18
|
+
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
19
|
+
font-weight: var(--fw-regular); /* from legacy --font-form-default */
|
|
20
20
|
line-height: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.form_group_label {
|
|
33
|
-
|
|
33
|
+
margin-bottom: 0.15rem;
|
|
34
34
|
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
35
|
+
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
35
36
|
font-weight: var(--fw-semibold);
|
|
36
|
-
margin-bottom: 0.15rem;
|
|
37
37
|
text-transform: capitalize;
|
|
38
38
|
|
|
39
39
|
&::after {
|
|
@@ -42,21 +42,22 @@
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
.form_group_label_pipette_settings_slideout {
|
|
45
|
-
font-weight: var(--fw-semibold);
|
|
46
45
|
margin-bottom: 0.5rem;
|
|
47
|
-
text-transform: capitalize;
|
|
48
|
-
font-size: 13px;
|
|
49
46
|
color: #16212d;
|
|
47
|
+
font-size: 13px;
|
|
48
|
+
font-weight: var(--fw-semibold);
|
|
49
|
+
text-transform: capitalize;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.checkbox_icon {
|
|
53
|
+
display: flex;
|
|
54
|
+
|
|
53
55
|
/* Icon for radiobutton and for checkbox */
|
|
54
56
|
width: 1.25rem;
|
|
55
57
|
min-width: 1.25rem;
|
|
56
|
-
color: var(--c-font-dark);
|
|
57
|
-
display: flex;
|
|
58
|
-
justify-content: center;
|
|
59
58
|
align-items: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
color: var(--c-font-dark);
|
|
60
61
|
|
|
61
62
|
&:not(.checkbox_disabled):hover {
|
|
62
63
|
cursor: pointer;
|
|
@@ -96,20 +97,20 @@
|
|
|
96
97
|
.input_field {
|
|
97
98
|
display: flex;
|
|
98
99
|
flex: 1 1;
|
|
99
|
-
background-color: var(--c-light-gray);
|
|
100
|
-
border-radius: var(--bd-radius-form-field);
|
|
101
100
|
padding: 0.25rem 0.25rem 0.25rem 0.5rem;
|
|
101
|
+
border-radius: var(--bd-radius-form-field);
|
|
102
|
+
background-color: var(--c-light-gray);
|
|
102
103
|
|
|
103
104
|
& input {
|
|
104
|
-
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
105
|
-
font-weight: var(--fw-regular); /* from legacy --font-form-default */
|
|
106
|
-
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
107
|
-
background-color: inherit;
|
|
108
|
-
border-radius: inherit;
|
|
109
|
-
border: none;
|
|
110
|
-
flex: 1 1 auto;
|
|
111
105
|
width: 100%;
|
|
112
106
|
height: 1rem;
|
|
107
|
+
flex: 1 1 auto;
|
|
108
|
+
border: none;
|
|
109
|
+
border-radius: inherit;
|
|
110
|
+
background-color: inherit;
|
|
111
|
+
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
112
|
+
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
113
|
+
font-weight: var(--fw-regular); /* from legacy --font-form-default */
|
|
113
114
|
|
|
114
115
|
/* TODO: Ian 2018-09-14 Firefox has 1px padding on input element,
|
|
115
116
|
* but I can't figure out how to fix it in Firefox without breaking it in Chrome.
|
|
@@ -133,20 +134,20 @@
|
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
& .suffix {
|
|
136
|
-
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
137
|
-
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
138
|
-
font-weight: var(--fw-semibold);
|
|
139
137
|
display: inline-block;
|
|
140
138
|
flex: 1 0;
|
|
141
|
-
text-align: right;
|
|
142
139
|
align-self: center;
|
|
140
|
+
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
141
|
+
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
142
|
+
font-weight: var(--fw-semibold);
|
|
143
|
+
text-align: right;
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
|
|
146
147
|
.input_caption {
|
|
148
|
+
color: var(--c-med-gray); /* from legacy --font-form-caption */
|
|
147
149
|
font-size: var(--fs-caption); /* from legacy --font-form-caption */
|
|
148
150
|
font-weight: var(--fw-semibold); /* from legacy --font-form-caption */
|
|
149
|
-
color: var(--c-med-gray); /* from legacy --font-form-caption */
|
|
150
151
|
line-height: 1.2;
|
|
151
152
|
|
|
152
153
|
& .right {
|
|
@@ -184,18 +185,18 @@
|
|
|
184
185
|
position: relative;
|
|
185
186
|
|
|
186
187
|
& select {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
190
|
-
border: 0;
|
|
191
|
-
padding: 0.25rem 0.5rem;
|
|
192
|
-
outline: none;
|
|
188
|
+
overflow: hidden;
|
|
189
|
+
width: 100%;
|
|
193
190
|
height: 1.5rem;
|
|
191
|
+
padding: 0.25rem 0.5rem;
|
|
192
|
+
border: 0;
|
|
194
193
|
border-radius: var(--bd-radius-form-field);
|
|
195
|
-
font-family: inherit;
|
|
196
|
-
width: 100%;
|
|
197
194
|
appearance: none;
|
|
198
|
-
|
|
195
|
+
color: var(--c-font-dark); /* from legacy --font-form-default */
|
|
196
|
+
font-family: inherit;
|
|
197
|
+
font-size: var(--fs-body-1); /* from legacy --font-form-default */
|
|
198
|
+
font-weight: var(--fw-regular); /* from legacy --font-form-default */
|
|
199
|
+
outline: none;
|
|
199
200
|
|
|
200
201
|
&:focus {
|
|
201
202
|
background-color: var(--c-white);
|
|
@@ -19,7 +19,7 @@ import type { Meta, StoryObj } from '@storybook/react'
|
|
|
19
19
|
import type * as React from 'react'
|
|
20
20
|
import type {
|
|
21
21
|
DeckConfiguration,
|
|
22
|
-
|
|
22
|
+
LabwareDefinition,
|
|
23
23
|
} from '@opentrons/shared-data'
|
|
24
24
|
|
|
25
25
|
const meta: Meta<React.ComponentProps<typeof BaseDeckComponent>> = {
|
|
@@ -54,34 +54,34 @@ export const BaseDeck: Story = {
|
|
|
54
54
|
labwareOnDeck: [
|
|
55
55
|
{
|
|
56
56
|
labwareLocation: { slotName: 'C2' },
|
|
57
|
-
definition: fixture96Plate as
|
|
57
|
+
definition: fixture96Plate as LabwareDefinition,
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
labwareLocation: { slotName: 'C3' },
|
|
61
|
-
definition: fixtureTiprack1000ul as
|
|
61
|
+
definition: fixtureTiprack1000ul as LabwareDefinition,
|
|
62
62
|
},
|
|
63
63
|
],
|
|
64
64
|
modulesOnDeck: [
|
|
65
65
|
{
|
|
66
66
|
moduleLocation: { slotName: 'B1' },
|
|
67
67
|
moduleModel: THERMOCYCLER_MODULE_V2,
|
|
68
|
-
nestedLabwareDef: fixture96Plate as
|
|
68
|
+
nestedLabwareDef: fixture96Plate as LabwareDefinition,
|
|
69
69
|
innerProps: { lidMotorState: 'open' },
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
moduleLocation: { slotName: 'D1' },
|
|
73
73
|
moduleModel: TEMPERATURE_MODULE_V2,
|
|
74
|
-
nestedLabwareDef: fixture96Plate as
|
|
74
|
+
nestedLabwareDef: fixture96Plate as LabwareDefinition,
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
moduleLocation: { slotName: 'B3' },
|
|
78
78
|
moduleModel: HEATERSHAKER_MODULE_V1,
|
|
79
|
-
nestedLabwareDef: fixture96Plate as
|
|
79
|
+
nestedLabwareDef: fixture96Plate as LabwareDefinition,
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
moduleLocation: { slotName: 'D2' },
|
|
83
83
|
moduleModel: MAGNETIC_BLOCK_V1,
|
|
84
|
-
nestedLabwareDef: fixture96Plate as
|
|
84
|
+
nestedLabwareDef: fixture96Plate as LabwareDefinition,
|
|
85
85
|
},
|
|
86
86
|
],
|
|
87
87
|
darkFill: 'rebeccapurple',
|
|
@@ -4,7 +4,7 @@ import partition from 'lodash/partition'
|
|
|
4
4
|
import {
|
|
5
5
|
FLEX_STACKER_MODULE_TYPE,
|
|
6
6
|
getDeckDefFromRobotType,
|
|
7
|
-
|
|
7
|
+
getModuleDef,
|
|
8
8
|
getModuleType,
|
|
9
9
|
getPositionFromSlotId,
|
|
10
10
|
HEATERSHAKER_MODULE_V1,
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
STAGING_AREA_SLOT_WITH_MAGNETIC_BLOCK_V1_FIXTURE,
|
|
19
19
|
TRASH_BIN_ADAPTER_FIXTURE,
|
|
20
20
|
WASTE_CHUTE_CUTOUT,
|
|
21
|
+
WASTE_CHUTE_FLEX_STACKER_FIXTURES,
|
|
21
22
|
WASTE_CHUTE_ONLY_FIXTURES,
|
|
22
23
|
WASTE_CHUTE_STAGING_AREA_FIXTURES,
|
|
23
24
|
} from '@opentrons/shared-data'
|
|
@@ -40,20 +41,19 @@ import type { ComponentProps, ReactNode } from 'react'
|
|
|
40
41
|
import type {
|
|
41
42
|
CutoutFixtureId,
|
|
42
43
|
DeckConfiguration,
|
|
43
|
-
|
|
44
|
+
LabwareDefinition,
|
|
44
45
|
LabwareLocation,
|
|
45
46
|
ModuleLocation,
|
|
46
47
|
ModuleModel,
|
|
47
48
|
RobotType,
|
|
48
49
|
} from '@opentrons/shared-data'
|
|
49
|
-
import type { Svg } from '../../primitives'
|
|
50
50
|
import type { TrashCutoutId } from '../Deck/FlexTrash'
|
|
51
51
|
import type { WellFill, WellGroup } from '../Labware'
|
|
52
52
|
import type { StagingAreaLocation } from './StagingAreaFixture'
|
|
53
53
|
|
|
54
54
|
export interface LabwareOnDeck {
|
|
55
55
|
labwareLocation: LabwareLocation
|
|
56
|
-
definition:
|
|
56
|
+
definition: LabwareDefinition
|
|
57
57
|
wellFill?: WellFill
|
|
58
58
|
missingTips?: WellGroup
|
|
59
59
|
/** generic prop to render self-positioned children for each labware */
|
|
@@ -67,7 +67,7 @@ export interface LabwareOnDeck {
|
|
|
67
67
|
export interface ModuleOnDeck {
|
|
68
68
|
moduleModel: ModuleModel
|
|
69
69
|
moduleLocation: ModuleLocation
|
|
70
|
-
nestedLabwareDef?:
|
|
70
|
+
nestedLabwareDef?: LabwareDefinition | null
|
|
71
71
|
nestedLabwareWellFill?: WellFill
|
|
72
72
|
innerProps?: ComponentProps<typeof Module>['innerProps']
|
|
73
73
|
/** generic prop to render self-positioned children for each module */
|
|
@@ -79,7 +79,7 @@ export interface ModuleOnDeck {
|
|
|
79
79
|
hopperLabware?: HopperLabwareProps
|
|
80
80
|
}
|
|
81
81
|
export interface HopperLabwareProps {
|
|
82
|
-
hopperLabwareDef:
|
|
82
|
+
hopperLabwareDef: LabwareDefinition | null
|
|
83
83
|
hopperLabwareWellFill: WellFill
|
|
84
84
|
hopperOnLabwareClick: () => void
|
|
85
85
|
hopperHighlightLabware: boolean
|
|
@@ -89,9 +89,15 @@ export interface HopperLabwareProps {
|
|
|
89
89
|
// these ugly consts are unfortunately necessary as the hopper location exists
|
|
90
90
|
// outside of our deck definition so the render doesn't follow our normal conventions
|
|
91
91
|
export const STACKER_MODULE_Y_OFFSET = -6
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
// todo(mm, 2025-07-16): 17.5 mm is a by-eye adjustment that takes us from a little bit
|
|
93
|
+
// left of the hopper to inside the hopper. The fact that we were 17.5 mm left in the
|
|
94
|
+
// first place is weird, and suggests we're doing wrong math somewhere. A more normal
|
|
95
|
+
// thing to expect here would be starting at the extended shuttle position and needing
|
|
96
|
+
// an offset of hundreds of mm to go from there to inside the hopper.
|
|
97
|
+
export const STACKER_HOPPER_LABWARE_X_OFFSET = 17.5
|
|
98
|
+
export const STACKER_HOPPER_LABWARE_Y_OFFSET = 6
|
|
94
99
|
export const STACKER_DECK_VIEW_BOX_EXPANSION = 220
|
|
100
|
+
|
|
95
101
|
interface BaseDeckProps {
|
|
96
102
|
deckConfig: DeckConfiguration
|
|
97
103
|
robotType: RobotType
|
|
@@ -107,7 +113,10 @@ interface BaseDeckProps {
|
|
|
107
113
|
/** whether to make wrapping svg tag animatable via @react-spring/web, defaults to false */
|
|
108
114
|
animatedSVG?: boolean
|
|
109
115
|
/** extra props to pass to svg tag */
|
|
110
|
-
|
|
116
|
+
/** NOTE: typing as any because running into some TS issues with React-spring,
|
|
117
|
+
* CSS Modules & Styled-components not playing together nicely
|
|
118
|
+
*/
|
|
119
|
+
svgProps?: any
|
|
111
120
|
}
|
|
112
121
|
|
|
113
122
|
const LABWARE_OFFSET_DISPLAY_THRESHOLD = 2
|
|
@@ -166,6 +175,12 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
166
175
|
WASTE_CHUTE_STAGING_AREA_FIXTURES.includes(fixture.cutoutFixtureId) &&
|
|
167
176
|
fixture.cutoutId === WASTE_CHUTE_CUTOUT
|
|
168
177
|
)
|
|
178
|
+
const wasteChuteStackerFixtures = deckConfig.filter(
|
|
179
|
+
fixture =>
|
|
180
|
+
fixture.cutoutFixtureId != null &&
|
|
181
|
+
WASTE_CHUTE_FLEX_STACKER_FIXTURES.includes(fixture.cutoutFixtureId) &&
|
|
182
|
+
fixture.cutoutId === WASTE_CHUTE_CUTOUT
|
|
183
|
+
)
|
|
169
184
|
|
|
170
185
|
const [singleLocationModules, stackerModules] = partition(
|
|
171
186
|
modulesOnDeck,
|
|
@@ -275,56 +290,6 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
275
290
|
</>
|
|
276
291
|
)}
|
|
277
292
|
<>
|
|
278
|
-
{/* render modules, nested labware, and overlays */}
|
|
279
|
-
{singleLocationModules.map(
|
|
280
|
-
({
|
|
281
|
-
moduleModel,
|
|
282
|
-
moduleLocation,
|
|
283
|
-
nestedLabwareDef,
|
|
284
|
-
nestedLabwareWellFill,
|
|
285
|
-
innerProps,
|
|
286
|
-
moduleChildren,
|
|
287
|
-
onLabwareClick,
|
|
288
|
-
highlightLabware,
|
|
289
|
-
highlightShadowLabware,
|
|
290
|
-
}) => {
|
|
291
|
-
const slotPosition = getPositionFromSlotId(
|
|
292
|
-
moduleLocation.slotName,
|
|
293
|
-
deckDef
|
|
294
|
-
)
|
|
295
|
-
const moduleDef = getModuleDef2(moduleModel)
|
|
296
|
-
return slotPosition != null ? (
|
|
297
|
-
<Module
|
|
298
|
-
key={`${moduleModel} ${moduleLocation.slotName}`}
|
|
299
|
-
def={moduleDef}
|
|
300
|
-
x={slotPosition[0]}
|
|
301
|
-
y={slotPosition[1]}
|
|
302
|
-
orientation={inferModuleOrientationFromXCoordinate(
|
|
303
|
-
slotPosition[0]
|
|
304
|
-
)}
|
|
305
|
-
innerProps={innerProps}
|
|
306
|
-
>
|
|
307
|
-
{nestedLabwareDef != null ? (
|
|
308
|
-
<g cursor={onLabwareClick != null ? 'pointer' : ''}>
|
|
309
|
-
<LabwareRender
|
|
310
|
-
definition={nestedLabwareDef}
|
|
311
|
-
onLabwareClick={onLabwareClick}
|
|
312
|
-
wellFill={nestedLabwareWellFill}
|
|
313
|
-
shouldRotateAdapterOrientation={
|
|
314
|
-
inferModuleOrientationFromXCoordinate(
|
|
315
|
-
slotPosition[0]
|
|
316
|
-
) === 'left' && moduleModel === HEATERSHAKER_MODULE_V1
|
|
317
|
-
}
|
|
318
|
-
highlight={highlightLabware}
|
|
319
|
-
highlightShadow={highlightShadowLabware}
|
|
320
|
-
/>
|
|
321
|
-
</g>
|
|
322
|
-
) : null}
|
|
323
|
-
{moduleChildren}
|
|
324
|
-
</Module>
|
|
325
|
-
) : null
|
|
326
|
-
}
|
|
327
|
-
)}
|
|
328
293
|
{stackerModules.map(
|
|
329
294
|
({
|
|
330
295
|
moduleModel,
|
|
@@ -341,7 +306,7 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
341
306
|
moduleLocation.slotName
|
|
342
307
|
)
|
|
343
308
|
const slotPosition = getPositionFromSlotId(stackerSlotName, deckDef)
|
|
344
|
-
const moduleDef =
|
|
309
|
+
const moduleDef = getModuleDef(moduleModel)
|
|
345
310
|
return slotPosition != null ? (
|
|
346
311
|
<>
|
|
347
312
|
<StagingAreaFixture
|
|
@@ -352,6 +317,19 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
352
317
|
slotClipColor={darkFill}
|
|
353
318
|
fixtureBaseColor={lightFill}
|
|
354
319
|
/>
|
|
320
|
+
{wasteChuteStackerFixtures.map(fixture => {
|
|
321
|
+
if (fixture.cutoutId === WASTE_CHUTE_CUTOUT) {
|
|
322
|
+
return (
|
|
323
|
+
<WasteChuteFixture
|
|
324
|
+
key={fixture.cutoutId}
|
|
325
|
+
cutoutId={fixture.cutoutId}
|
|
326
|
+
deckDefinition={deckDef}
|
|
327
|
+
fixtureBaseColor={lightFill}
|
|
328
|
+
wasteChuteColor={mediumFill}
|
|
329
|
+
/>
|
|
330
|
+
)
|
|
331
|
+
}
|
|
332
|
+
})}
|
|
355
333
|
<Module
|
|
356
334
|
key={`${moduleModel} ${moduleLocation.slotName}`}
|
|
357
335
|
def={moduleDef}
|
|
@@ -361,6 +339,9 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
361
339
|
slotPosition[0]
|
|
362
340
|
)}
|
|
363
341
|
innerProps={innerProps}
|
|
342
|
+
targetDeckId={deckDef.otId}
|
|
343
|
+
targetSlotId={moduleLocation.slotName}
|
|
344
|
+
childrenPositioningMode="offsetToSlot"
|
|
364
345
|
>
|
|
365
346
|
{nestedLabwareDef != null ? (
|
|
366
347
|
<g
|
|
@@ -369,6 +350,7 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
369
350
|
>
|
|
370
351
|
<LabwareRender
|
|
371
352
|
definition={nestedLabwareDef}
|
|
353
|
+
positioningMode="offsetInSlot"
|
|
372
354
|
onLabwareClick={onLabwareClick}
|
|
373
355
|
wellFill={nestedLabwareWellFill}
|
|
374
356
|
shouldRotateAdapterOrientation={
|
|
@@ -387,6 +369,60 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
387
369
|
) : null
|
|
388
370
|
}
|
|
389
371
|
)}
|
|
372
|
+
{/* render modules, nested labware, and overlays */}
|
|
373
|
+
{singleLocationModules.map(
|
|
374
|
+
({
|
|
375
|
+
moduleModel,
|
|
376
|
+
moduleLocation,
|
|
377
|
+
nestedLabwareDef,
|
|
378
|
+
nestedLabwareWellFill,
|
|
379
|
+
innerProps,
|
|
380
|
+
moduleChildren,
|
|
381
|
+
onLabwareClick,
|
|
382
|
+
highlightLabware,
|
|
383
|
+
highlightShadowLabware,
|
|
384
|
+
}) => {
|
|
385
|
+
const slotPosition = getPositionFromSlotId(
|
|
386
|
+
moduleLocation.slotName,
|
|
387
|
+
deckDef
|
|
388
|
+
)
|
|
389
|
+
const moduleDef = getModuleDef(moduleModel)
|
|
390
|
+
return slotPosition != null ? (
|
|
391
|
+
<Module
|
|
392
|
+
key={`${moduleModel} ${moduleLocation.slotName}`}
|
|
393
|
+
def={moduleDef}
|
|
394
|
+
x={slotPosition[0]}
|
|
395
|
+
y={slotPosition[1]}
|
|
396
|
+
orientation={inferModuleOrientationFromXCoordinate(
|
|
397
|
+
slotPosition[0]
|
|
398
|
+
)}
|
|
399
|
+
innerProps={innerProps}
|
|
400
|
+
targetDeckId={deckDef.otId}
|
|
401
|
+
targetSlotId={moduleLocation.slotName}
|
|
402
|
+
childrenPositioningMode="offsetToSlot"
|
|
403
|
+
>
|
|
404
|
+
{nestedLabwareDef != null ? (
|
|
405
|
+
<g cursor={onLabwareClick != null ? 'pointer' : ''}>
|
|
406
|
+
<LabwareRender
|
|
407
|
+
definition={nestedLabwareDef}
|
|
408
|
+
positioningMode="offsetInSlot"
|
|
409
|
+
onLabwareClick={onLabwareClick}
|
|
410
|
+
wellFill={nestedLabwareWellFill}
|
|
411
|
+
shouldRotateAdapterOrientation={
|
|
412
|
+
inferModuleOrientationFromXCoordinate(
|
|
413
|
+
slotPosition[0]
|
|
414
|
+
) === 'left' && moduleModel === HEATERSHAKER_MODULE_V1
|
|
415
|
+
}
|
|
416
|
+
highlight={highlightLabware}
|
|
417
|
+
highlightShadow={highlightShadowLabware}
|
|
418
|
+
/>
|
|
419
|
+
</g>
|
|
420
|
+
) : null}
|
|
421
|
+
{moduleChildren}
|
|
422
|
+
</Module>
|
|
423
|
+
) : null
|
|
424
|
+
}
|
|
425
|
+
)}
|
|
390
426
|
{/* render non-module labware and overlays */}
|
|
391
427
|
{labwareOnDeck.map(
|
|
392
428
|
({
|
|
@@ -423,6 +459,7 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
423
459
|
>
|
|
424
460
|
<LabwareRender
|
|
425
461
|
definition={definition}
|
|
462
|
+
positioningMode="offsetInSlot"
|
|
426
463
|
onLabwareClick={onLabwareClick}
|
|
427
464
|
wellFill={wellFill ?? undefined}
|
|
428
465
|
missingTips={missingTips}
|
|
@@ -437,7 +474,7 @@ export function BaseDeck(props: BaseDeckProps): JSX.Element {
|
|
|
437
474
|
{/* render stacked badge on module labware */}
|
|
438
475
|
{modulesOnDeck.map(
|
|
439
476
|
({ moduleModel, moduleLocation, stacked = false }) => {
|
|
440
|
-
const moduleDef =
|
|
477
|
+
const moduleDef = getModuleDef(moduleModel)
|
|
441
478
|
const slotPosition = getPositionFromSlotId(
|
|
442
479
|
moduleDef.moduleType === FLEX_STACKER_MODULE_TYPE
|
|
443
480
|
? getStackerLocationFromSlot(moduleLocation.slotName)
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
+
import clsx from 'clsx'
|
|
2
|
+
|
|
3
|
+
import { PlaceholderStyledText } from '../../atoms'
|
|
1
4
|
import { COLORS } from '../../helix-design-system'
|
|
2
5
|
import { Icon } from '../../icons'
|
|
3
6
|
import { DeckLabelSet } from '../../organisms'
|
|
4
|
-
import { Flex, Text } from '../../primitives'
|
|
5
|
-
import {
|
|
6
|
-
ALIGN_CENTER,
|
|
7
|
-
DIRECTION_COLUMN,
|
|
8
|
-
JUSTIFY_CENTER,
|
|
9
|
-
TEXT_ALIGN_CENTER,
|
|
10
|
-
} from '../../styles'
|
|
11
|
-
import { SPACING, TYPOGRAPHY } from '../../ui-style-constants'
|
|
12
7
|
import { RobotCoordsForeignObject } from '../Deck/RobotCoordsForeignObject'
|
|
8
|
+
import styles from './basedeck.module.css'
|
|
13
9
|
import { SlotBase } from './SlotBase'
|
|
14
10
|
|
|
15
11
|
import type { SVGProps } from 'react'
|
|
@@ -116,32 +112,30 @@ export function WasteChute(props: WasteChuteProps): JSX.Element {
|
|
|
116
112
|
x={WASTE_CHUTE_X}
|
|
117
113
|
y={-51}
|
|
118
114
|
flexProps={{ flex: '1' }}
|
|
119
|
-
foreignObjectProps={{ opacity: opacity ??
|
|
115
|
+
foreignObjectProps={{ opacity: opacity ?? 1, flex: '1' }}
|
|
120
116
|
>
|
|
121
117
|
{overlay != null ? (
|
|
122
118
|
overlay
|
|
123
119
|
) : (
|
|
124
|
-
<
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
padding={SPACING.spacing8}
|
|
133
|
-
width="100%"
|
|
134
|
-
border={showHighlight ? `3px solid ${COLORS.blue50}` : 'none'}
|
|
120
|
+
<div
|
|
121
|
+
className={clsx(styles.waste_chute_fixture_container, {
|
|
122
|
+
[styles.waste_chute_fixture_container_highlight]: showHighlight,
|
|
123
|
+
})}
|
|
124
|
+
style={{
|
|
125
|
+
backgroundColor,
|
|
126
|
+
color: wasteIconColor,
|
|
127
|
+
}}
|
|
135
128
|
>
|
|
136
129
|
<Icon name="trash" color={wasteIconColor} height="2rem" />
|
|
137
|
-
<
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
130
|
+
<div className={styles.waste_chute_copy_container}>
|
|
131
|
+
<PlaceholderStyledText
|
|
132
|
+
desktopStyle="bodyRegularSemiBold"
|
|
133
|
+
color={COLORS.white}
|
|
134
|
+
>
|
|
135
|
+
Waste chute
|
|
136
|
+
</PlaceholderStyledText>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
145
139
|
)}
|
|
146
140
|
</RobotCoordsForeignObject>
|
|
147
141
|
{tagInfo != null && tagInfo.length > 0 ? (
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.waste_chute_copy_container {
|
|
2
|
+
display: flex;
|
|
3
|
+
text-align: center;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.waste_chute_fixture_container {
|
|
7
|
+
display: flex;
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
border-radius: 6px;
|
|
14
|
+
gap: var(--spacing-4);
|
|
15
|
+
padding-inline: var(--spacing-8);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.waste_chute_fixture_container_highlight {
|
|
19
|
+
border: 3px solid var(--blue-50);
|
|
20
|
+
}
|