diff --git a/components/src/buttons/buttons.module.css b/components/src/buttons/buttons.module.css index 512250ecd38..ffcbb14b54d 100644 --- a/components/src/buttons/buttons.module.css +++ b/components/src/buttons/buttons.module.css @@ -1,7 +1,7 @@ /* button styling */ @import '..'; -:root { +#root { --button-pad: 0.5rem; --button-disabled : { diff --git a/components/src/controls/styles.module.css b/components/src/controls/styles.module.css index 4847d37a850..51aa7bd133e 100644 --- a/components/src/controls/styles.module.css +++ b/components/src/controls/styles.module.css @@ -1,6 +1,6 @@ @import '../index.css'; -:root { +#root { --mw-labeled-toggle: 25rem; } diff --git a/components/src/hardware-sim/Deck/Deck.module.css b/components/src/hardware-sim/Deck/Deck.module.css index 69e103274e3..2c8707ad886 100644 --- a/components/src/hardware-sim/Deck/Deck.module.css +++ b/components/src/hardware-sim/Deck/Deck.module.css @@ -1,6 +1,6 @@ @import '../..'; -:root { +#root { --deck-element: { fill: #fff; stroke: var(--c-plate-bg); diff --git a/components/src/hardware-sim/Deck/FlexTrash.tsx b/components/src/hardware-sim/Deck/FlexTrash.tsx index dc5f12aeb57..1c7aa954c06 100644 --- a/components/src/hardware-sim/Deck/FlexTrash.tsx +++ b/components/src/hardware-sim/Deck/FlexTrash.tsx @@ -3,7 +3,7 @@ import * as React from 'react' import { FLEX_ROBOT_TYPE, getDeckDefFromRobotType, - opentrons1Trash3200mlFixedV1 as trashDef, + opentrons1Trash3200MlFixedV1 as trashLabwareDef, } from '@opentrons/shared-data' import { Icon } from '../../icons' import { Flex, Text } from '../../primitives' @@ -35,6 +35,7 @@ interface FlexTrashProps { * Component to render Opentrons Flex trash * For use as a RobotWorkspace child component */ + export const FlexTrash = ({ robotType, trashIconColor, @@ -60,8 +61,11 @@ export const FlexTrash = ({ } = deckDefinition.locations.addressableAreas[0].boundingBox // adjust for dimensions from trash definition - const { x: xAdjustment, y: yAdjustment } = trashDef.cornerOffsetFromSlot - const { xDimension, yDimension } = trashDef.dimensions + const { + x: xAdjustment, + y: yAdjustment, + } = trashLabwareDef.cornerOffsetFromSlot + const { xDimension, yDimension } = trashLabwareDef.dimensions // rotate trash 180 degrees in column 1 const rotateDegrees = diff --git a/components/src/hardware-sim/Deck/getDeckDefinitions.ts b/components/src/hardware-sim/Deck/getDeckDefinitions.ts deleted file mode 100644 index b0be5266015..00000000000 --- a/components/src/hardware-sim/Deck/getDeckDefinitions.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { DeckDefinition } from '@opentrons/shared-data' - -// TODO: Brian 2019-05-01 very similar to getAllDefinitions in labware-library, -// and PD labware-def utils should reconcile differences & make a general util -// fn imported from shared-data, but this relies on a webpack-specific method, -// and SD is not webpacked - -const deckDefinitionsContext = require.context( - '@opentrons/shared-data/deck/definitions/4', - true, // traverse subdirectories - /\.json$/, // import filter - 'sync' // load every definition into one synchronous chunk -) - -export function getDeckDefinitions(): Record { - const deckDefinitions = deckDefinitionsContext - .keys() - .reduce((acc: Record, filename: string) => { - const def = deckDefinitionsContext(filename) - return { ...acc, [def.otId]: def } - }, {}) - - return deckDefinitions -} diff --git a/components/src/hardware-sim/Deck/index.tsx b/components/src/hardware-sim/Deck/index.tsx index 1d2b9b8fec7..4983d939b53 100644 --- a/components/src/hardware-sim/Deck/index.tsx +++ b/components/src/hardware-sim/Deck/index.tsx @@ -1,6 +1,5 @@ export * from './DeckFromLayers' export * from './FlexTrash' -export * from './getDeckDefinitions' export * from './MoveLabwareOnDeck' export * from './RobotCoordsForeignDiv' export * from './RobotCoordsForeignObject' diff --git a/components/src/icons/Icon.tsx b/components/src/icons/Icon.tsx index 4eb8967e8fc..145b8acf453 100644 --- a/components/src/icons/Icon.tsx +++ b/components/src/icons/Icon.tsx @@ -68,7 +68,6 @@ export function Icon(props: IconProps): JSX.Element | null { fill="currentColor" viewBox={viewBox} className={cx(className, { spin })} - css={spinStyle} {...svgProps} id={id} > diff --git a/components/src/images/labware/measurement-guide/index.ts b/components/src/images/labware/measurement-guide/index.ts index 3e45e64ff0d..ecf2ec8eea8 100644 --- a/components/src/images/labware/measurement-guide/index.ts +++ b/components/src/images/labware/measurement-guide/index.ts @@ -13,67 +13,70 @@ type Diagrams = Record const FOOTPRINT_DIAGRAMS: Diagrams = { wellPlate: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-plate-and-reservoir@3x.png'), + new URL('./images/dimensions/footprint@3x.png', import.meta.url).href, + new URL( + './images/dimensions/height-plate-and-reservoir@3x.png', + import.meta.url + ).href, ], tipRack: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-tip-rack@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-tip-rack@3x.png'), ], tubeRack: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-tube-rack@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-tube-rack@3x.png'), ], reservoir: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-plate-and-reservoir@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-plate-and-reservoir@3x.png'), ], irregular: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-tube-rack-irregular@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-tube-rack-irregular@3x.png'), ], adapter: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-plate-and-reservoir@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-plate-and-reservoir@3x.png'), ], } const ALUM_BLOCK_FOOTPRINTS: Diagrams = { tubeRack: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-alum-block-tubes@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-alum-block-tubes@3x.png'), ], wellPlate: [ - require('./images/dimensions/footprint@3x.png'), - require('./images/dimensions/height-alum-block-plate@3x.png'), + import('./images/dimensions/footprint@3x.png'), + import('./images/dimensions/height-alum-block-plate@3x.png'), ], } const RESERVOIR_SPACING_DIAGRAMS: Diagrams = { singleRow: [ - require('./images/offset/offset-reservoir@3x.png'), - require('./images/spacing/spacing-reservoir@3x.png'), + import('./images/offset/offset-reservoir@3x.png'), + import('./images/spacing/spacing-reservoir@3x.png'), ], multiRow: [ - require('./images/offset/offset-reservoir@3x.png'), - require('./images/spacing/spacing-reservoir-multi-row@3x.png'), + import('./images/offset/offset-reservoir@3x.png'), + import('./images/spacing/spacing-reservoir-multi-row@3x.png'), ], } const SPACING_DIAGRAMS: Diagrams = { circular: [ - require('./images/offset/offset-well-circular@3x.png'), - require('./images/spacing/spacing-well-circular@3x.png'), + import('./images/offset/offset-well-circular@3x.png'), + import('./images/spacing/spacing-well-circular@3x.png'), ], rectangular: [ - require('./images/offset/offset-well-rectangular@3x.png'), - require('./images/spacing/spacing-well-rectangular@3x.png'), + import('./images/offset/offset-well-rectangular@3x.png'), + import('./images/spacing/spacing-well-rectangular@3x.png'), ], } const TIPRACK_MEASUREMENT_DIAGRAMS: string[] = [ - require('./images/depth/length-tip-rack@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/length-tip-rack@3x.png'), + import('./images/shape/shape-circular@3x.png'), ] type NestedDiagrams = Record> @@ -81,64 +84,64 @@ type NestedDiagrams = Record> const PLATE_MEASUREMENT_DIAGRAMS: NestedDiagrams = { flat: { circular: [ - require('./images/depth/depth-plate-flat@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/depth-plate-flat@3x.png'), + import('./images/shape/shape-circular@3x.png'), ], rectangular: [ - require('./images/depth/depth-plate-flat@3x.png'), - require('./images/shape/shape-rectangular@3x.png'), + import('./images/depth/depth-plate-flat@3x.png'), + import('./images/shape/shape-rectangular@3x.png'), ], }, u: { circular: [ - require('./images/depth/depth-plate-round@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/depth-plate-round@3x.png'), + import('./images/shape/shape-circular@3x.png'), ], rectangular: [ - require('./images/depth/depth-plate-round@3x.png'), - require('./images/shape/shape-rectangular@3x.png'), + import('./images/depth/depth-plate-round@3x.png'), + import('./images/shape/shape-rectangular@3x.png'), ], }, v: { circular: [ - require('./images/depth/depth-plate-v@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/depth-plate-v@3x.png'), + import('./images/shape/shape-circular@3x.png'), ], rectangular: [ - require('./images/depth/depth-plate-v@3x.png'), - require('./images/shape/shape-rectangular@3x.png'), + import('./images/depth/depth-plate-v@3x.png'), + import('./images/shape/shape-rectangular@3x.png'), ], }, } const MEASUREMENT_DIAGRAMS: NestedDiagrams = { flat: { circular: [ - require('./images/depth/depth-reservoir-and-tubes-flat@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/depth-reservoir-and-tubes-flat@3x.png'), + import('./images/shape/shape-circular@3x.png'), ], rectangular: [ - require('./images/depth/depth-reservoir-and-tubes-flat@3x.png'), - require('./images/shape/shape-rectangular@3x.png'), + import('./images/depth/depth-reservoir-and-tubes-flat@3x.png'), + import('./images/shape/shape-rectangular@3x.png'), ], }, u: { circular: [ - require('./images/depth/depth-reservoir-and-tubes-round@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/depth-reservoir-and-tubes-round@3x.png'), + import('./images/shape/shape-circular@3x.png'), ], rectangular: [ - require('./images/depth/depth-reservoir-and-tubes-round@3x.png'), - require('./images/shape/shape-rectangular@3x.png'), + import('./images/depth/depth-reservoir-and-tubes-round@3x.png'), + import('./images/shape/shape-rectangular@3x.png'), ], }, v: { circular: [ - require('./images/depth/depth-reservoir-and-tubes-v@3x.png'), - require('./images/shape/shape-circular@3x.png'), + import('./images/depth/depth-reservoir-and-tubes-v@3x.png'), + import('./images/shape/shape-circular@3x.png'), ], rectangular: [ - require('./images/depth/depth-reservoir-and-tubes-v@3x.png'), - require('./images/shape/shape-rectangular@3x.png'), + import('./images/depth/depth-reservoir-and-tubes-v@3x.png'), + import('./images/shape/shape-rectangular@3x.png'), ], }, } diff --git a/components/src/lists/lists.module.css b/components/src/lists/lists.module.css index 50c517d1de5..384ee5f08f8 100644 --- a/components/src/lists/lists.module.css +++ b/components/src/lists/lists.module.css @@ -1,6 +1,6 @@ @import '..'; -:root { +#root { --list-padding-large: 1rem; --list-padding-small: 0.75rem; diff --git a/components/src/modals/modals.module.css b/components/src/modals/modals.module.css index 7867c705001..979c438eaa8 100644 --- a/components/src/modals/modals.module.css +++ b/components/src/modals/modals.module.css @@ -1,7 +1,7 @@ /* common styling for modals */ @import '..'; -:root { +#root { --modal-contents: { z-index: 1; width: 100%; diff --git a/components/src/nav/SidePanel.module.css b/components/src/nav/SidePanel.module.css index c1a5bf9f6b0..96bb730e285 100644 --- a/components/src/nav/SidePanel.module.css +++ b/components/src/nav/SidePanel.module.css @@ -1,6 +1,6 @@ @import '..'; -:root { +#root { --sidebar-width: 18.25rem; } diff --git a/components/src/structure/structure.module.css b/components/src/structure/structure.module.css index 948ff45838e..73877713c82 100644 --- a/components/src/structure/structure.module.css +++ b/components/src/structure/structure.module.css @@ -1,7 +1,7 @@ /* TitleBar styles */ @import '..'; -:root { +#root { --card-disabled: { color: var(--c-font-disabled); fill: var(--c-font-disabled); diff --git a/components/src/styles/borders.module.css b/components/src/styles/borders.module.css index e0572876755..06d4e7857a1 100644 --- a/components/src/styles/borders.module.css +++ b/components/src/styles/borders.module.css @@ -1,6 +1,6 @@ @import './colors.module.css'; -:root { +#root { /* borders */ --bd-radius-default: 2px; --bd-radius-form-field: 3px; diff --git a/components/src/styles/colors.module.css b/components/src/styles/colors.module.css index 631a708b687..9495317fda2 100644 --- a/components/src/styles/colors.module.css +++ b/components/src/styles/colors.module.css @@ -1,4 +1,4 @@ -:root { +* { /* ot brand */ --c-mustard: #ffd252; --c-blue: #006cfa; diff --git a/components/src/styles/cursors.module.css b/components/src/styles/cursors.module.css index a2d91dcbf9b..3067a259bce 100644 --- a/components/src/styles/cursors.module.css +++ b/components/src/styles/cursors.module.css @@ -1,6 +1,6 @@ /* cursor styling */ -:root { +#root { --clickable: { cursor: pointer; }; diff --git a/components/src/styles/positioning.module.css b/components/src/styles/positioning.module.css index 3c7f71538c7..e50a5550592 100644 --- a/components/src/styles/positioning.module.css +++ b/components/src/styles/positioning.module.css @@ -1,4 +1,4 @@ -:root { +#root { --absolute-fill: { position: absolute; top: 0; diff --git a/components/tsconfig.json b/components/tsconfig.json index 094c6285502..9cbe96a3d5b 100644 --- a/components/tsconfig.json +++ b/components/tsconfig.json @@ -8,7 +8,12 @@ "compilerOptions": { "composite": true, "rootDir": "src", - "outDir": "lib" + "outDir": "lib", + "paths": { + "@opentrons/shared-data": ["../shared-data"] + }, + "module": "ESNext", + "types": ["vite/client"] }, "include": ["typings", "src"], "exclude": ["**/*.stories.tsx"] diff --git a/labware-library/src/components/LabwareList/styles.css b/labware-library/src/components/LabwareList/styles.css index cd57e7cd6e3..1fb4e62819d 100644 --- a/labware-library/src/components/LabwareList/styles.css +++ b/labware-library/src/components/LabwareList/styles.css @@ -4,7 +4,7 @@ @import '../../styles/shadows.css'; @import '../../styles/spacing.css'; -:root { +#root { --link-btn: { display: block; width: 100%; diff --git a/labware-library/src/components/website-navigation/styles.css b/labware-library/src/components/website-navigation/styles.css index 4af91d5ec49..96ec35b5b8f 100644 --- a/labware-library/src/components/website-navigation/styles.css +++ b/labware-library/src/components/website-navigation/styles.css @@ -4,7 +4,7 @@ @import '../../styles/shadows.css'; @import '../../styles/spacing.css'; -:root { +#root { --c-nav-gray: #707070; --spacing-subdomain: 2.5rem; --spacing-nav: 1.75rem; diff --git a/labware-library/src/labware-creator/styles.css b/labware-library/src/labware-creator/styles.css index 7a310e51b28..a4874f57116 100644 --- a/labware-library/src/labware-creator/styles.css +++ b/labware-library/src/labware-creator/styles.css @@ -2,7 +2,7 @@ @import '../styles/breakpoints.css'; @import '../styles/spacing.css'; -:root { +#root { --link-btn-blue: { display: inline-block; width: auto; diff --git a/labware-library/src/styles/breakpoints.css b/labware-library/src/styles/breakpoints.css index 2efc87ec31c..17f05ca526f 100644 --- a/labware-library/src/styles/breakpoints.css +++ b/labware-library/src/styles/breakpoints.css @@ -1,6 +1,6 @@ /* mobile-first custom media queries */ -:root { +#root { --screen-width-small: 480px; --screen-width-medium: 768px; --screen-width-desktop: 1024px; diff --git a/labware-library/src/styles/shadows.css b/labware-library/src/styles/shadows.css index 4316a60c39c..45cef86ad33 100644 --- a/labware-library/src/styles/shadows.css +++ b/labware-library/src/styles/shadows.css @@ -1,5 +1,5 @@ /* box-shadow settings */ -:root { +#root { --shadow-1: 0 2px 2px rgba(0, 0, 0, 0.2); } diff --git a/labware-library/src/styles/spacing.css b/labware-library/src/styles/spacing.css index 82dad75f39d..76cb5e08f01 100644 --- a/labware-library/src/styles/spacing.css +++ b/labware-library/src/styles/spacing.css @@ -1,6 +1,6 @@ /* spacing variables */ -:root { +#root { /* * padding and margin spacing scale * diff --git a/package.json b/package.json index 4a85621dc26..c4100c721c7 100755 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@types/semver": "^7.3.6", "@typescript-eslint/eslint-plugin": "^4.18.0", "@typescript-eslint/parser": "^4.18.0", + "@vitejs/plugin-react": "4.2.0", "@wojtekmaj/enzyme-adapter-react-17": "^0.6.3", "ajv": "6.12.3", "aws-sdk": "^2.493.0", @@ -152,6 +153,7 @@ "terser-webpack-plugin": "^2.3.5", "typescript": "4.1.3", "url-loader": "^2.1.0", + "vite": "5.0.5", "wait-on": "^4.0.2", "webpack": "^4.41.6", "webpack-bundle-analyzer": "^3.6.0", @@ -160,6 +162,5 @@ "webpack-merge": "^4.2.2", "webpack-node-externals": "^1.7.2", "worker-plugin": "^5.0.0" - }, - "dependencies": {} + } } diff --git a/protocol-designer/package.json b/protocol-designer/package.json index e6a48946f20..891378502d0 100755 --- a/protocol-designer/package.json +++ b/protocol-designer/package.json @@ -22,6 +22,7 @@ "dependencies": { "@hot-loader/react-dom": "17.0.1", "@vitejs/plugin-react": "^4.2.1", + "@vituum/vite-plugin-postcss": "1.1.0", "@opentrons/components": "link:../components", "@opentrons/step-generation": "link:../step-generation", "@opentrons/shared-data": "link:../shared-data", @@ -57,6 +58,12 @@ "vite": "5.0.5", "yup": "0.26.6", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.4" + "eslint-plugin-react-refresh": "^0.4.4", + "postcss-apply": "0.12.0", + "postcss-import": "16.0.0", + "autoprefixer": "^10.0.2", + "postcss": "^8.1.7", + "postcss-loader": "^4.0.4" + } } diff --git a/protocol-designer/protocol-designer-vite-test/package.json b/protocol-designer/protocol-designer-vite-test/package.json index 13c27b1dbd8..fbbd5fb2e44 100644 --- a/protocol-designer/protocol-designer-vite-test/package.json +++ b/protocol-designer/protocol-designer-vite-test/package.json @@ -23,6 +23,6 @@ "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.4", "typescript": "^5.2.2", - "vite": "^5.0.0" + "vite": "5.0.5" } } diff --git a/protocol-designer/protocol-designer-vite-test/src/index.module.css b/protocol-designer/protocol-designer-vite-test/src/index.module.css index 6119ad9a8fa..fee2d90840f 100644 --- a/protocol-designer/protocol-designer-vite-test/src/index.module.css +++ b/protocol-designer/protocol-designer-vite-test/src/index.module.css @@ -1,4 +1,4 @@ -:root { +#root { font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; line-height: 1.5; font-weight: 400; @@ -55,7 +55,7 @@ button:focus-visible { } @media (prefers-color-scheme: light) { - :root { + #root { color: #213547; background-color: #ffffff; } diff --git a/protocol-designer/protocol-designer-vite-test/tsconfig.json b/protocol-designer/protocol-designer-vite-test/tsconfig.json index a7fc6fbf23d..a1b77c5431a 100644 --- a/protocol-designer/protocol-designer-vite-test/tsconfig.json +++ b/protocol-designer/protocol-designer-vite-test/tsconfig.json @@ -7,7 +7,6 @@ "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, diff --git a/protocol-designer/protocol-designer-vite-test/tsconfig.node.json b/protocol-designer/protocol-designer-vite-test/tsconfig.node.json index 42872c59f5b..7065ca9a801 100644 --- a/protocol-designer/protocol-designer-vite-test/tsconfig.node.json +++ b/protocol-designer/protocol-designer-vite-test/tsconfig.node.json @@ -3,7 +3,7 @@ "composite": true, "skipLibCheck": true, "module": "ESNext", - "moduleResolution": "bundler", + "moduleResolution": "Node", "allowSyntheticDefaultImports": true }, "include": ["vite.config.ts"] diff --git a/protocol-designer/src/components/ComputingSpinner.tsx b/protocol-designer/src/components/ComputingSpinner.tsx index 453bb4cd6e1..3e5b7b6184c 100644 --- a/protocol-designer/src/components/ComputingSpinner.tsx +++ b/protocol-designer/src/components/ComputingSpinner.tsx @@ -4,16 +4,12 @@ import { css } from 'styled-components' import { Box, POSITION_FIXED } from '@opentrons/components' import * as fileDataSelectors from '../file-data/selectors' -const waitCursorStyle = css` - cursor: wait; -` export const ComputingSpinner = (): JSX.Element | null => { - const showSpinner = useSelector(fileDataSelectors.getTimelineIsBeingComputed) + const showSpinner = false return showSpinner ? ( - + Import diff --git a/protocol-designer/src/components/SettingsPage/SettingsPage.module.css b/protocol-designer/src/components/SettingsPage/SettingsPage.module.css index fe39ab33401..28691b4f9a0 100644 --- a/protocol-designer/src/components/SettingsPage/SettingsPage.module.css +++ b/protocol-designer/src/components/SettingsPage/SettingsPage.module.css @@ -1,6 +1,6 @@ @import '@opentrons/components/styles'; -:root { +#root { --mw-labeled-toggle: 25rem; } @@ -42,6 +42,11 @@ } .feature_flag_description { + --font-body-2-dark: { + font-size: var(--fs-body-2); + font-weight: var(--fw-regular); + color: var(--c-font-dark); + }; @apply --font-body-2-dark; & p { diff --git a/protocol-designer/src/components/StepEditForm/ButtonRow/styles.module.css b/protocol-designer/src/components/StepEditForm/ButtonRow/styles.module.css index c88f64a61c1..351b343b435 100644 --- a/protocol-designer/src/components/StepEditForm/ButtonRow/styles.module.css +++ b/protocol-designer/src/components/StepEditForm/ButtonRow/styles.module.css @@ -1,4 +1,4 @@ -:root { +#root { --form-max-width: 55rem; /* 'breakpoint' for gutter */ --form-button-width: 6.25rem; --form-button-margin: 0.625rem; diff --git a/protocol-designer/src/components/StepEditForm/fields/PathField/Path.tsx b/protocol-designer/src/components/StepEditForm/fields/PathField/Path.tsx index de16399d738..1fc1a1d69e3 100644 --- a/protocol-designer/src/components/StepEditForm/fields/PathField/Path.tsx +++ b/protocol-designer/src/components/StepEditForm/fields/PathField/Path.tsx @@ -11,9 +11,9 @@ import { DisabledPathMap, ValuesForPath } from './getDisabledPathMap' import styles from '../../StepEditForm.module.css' const PATH_ANIMATION_IMAGES = { - single: require('../../../../images/path_single.gif'), - multiAspirate: require('../../../../images/path_multiAspirate.gif'), - multiDispense: require('../../../../images/path_multiDispense.gif'), + single: import('../../../../images/path_single.gif'), + multiAspirate: import('../../../../images/path_multiAspirate.gif'), + multiDispense: import('../../../../images/path_multiDispense.gif'), } const ALL_PATH_OPTIONS: Array<{ name: PathOption; image: string }> = [ diff --git a/protocol-designer/src/components/labware/labware.module.css b/protocol-designer/src/components/labware/labware.module.css index 309c13b3f0d..190e1550041 100644 --- a/protocol-designer/src/components/labware/labware.module.css +++ b/protocol-designer/src/components/labware/labware.module.css @@ -1,7 +1,7 @@ @import '@opentrons/components/styles'; /* TODO Ian 2018-02-16: this is copied from LabwareWrapper.css in complib -- should it be imported in index.css? */ -:root { +#root { --round-slot: { clip-path: url(#roundSlotClipPath); } diff --git a/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx b/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx index 0b5d6e9506a..d8e2239975d 100644 --- a/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx +++ b/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx @@ -32,7 +32,7 @@ export const announcements: Announcement[] = [
), @@ -58,7 +58,7 @@ export const announcements: Announcement[] = [
), @@ -98,9 +98,9 @@ export const announcements: Announcement[] = [ announcementKey: 'batchEditTransfer', image: ( - + - + ), heading: "We've updated the Protocol Designer", @@ -132,7 +132,7 @@ export const announcements: Announcement[] = [
), @@ -155,7 +155,7 @@ export const announcements: Announcement[] = [
), @@ -179,7 +179,7 @@ export const announcements: Announcement[] = [
), @@ -203,7 +203,7 @@ export const announcements: Announcement[] = [ ), @@ -226,7 +226,7 @@ export const announcements: Announcement[] = [ ), diff --git a/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx b/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx index 5e49aa18b3b..f25ac9e93ee 100644 --- a/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx +++ b/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx @@ -164,6 +164,8 @@ function PipetteTipsField(props: PipetteTipsFieldProps): JSX.Element | null { selectedPipetteName: selectedPipetteName, }) + console.log({tiprackOptions}) + const defaultTiprackOptions = tiprackOptions.filter(option => allowAllTipracks ? !option.value.includes('custom_beta') @@ -179,7 +181,11 @@ function PipetteTipsField(props: PipetteTipsFieldProps): JSX.Element | null { React.useEffect(() => { if (currentValue === undefined) { - setFieldValue(nameAccessor, tiprackOptions[0]?.value ?? '') + setTimeout(() => { + console.log('updating field value') + console.log({ nameAccessor, tiprack: tiprackOptions[0]?.value ?? '' }) + setFieldValue(nameAccessor, tiprackOptions[0]?.value ?? '') + }) } }, [currentValue, setFieldValue, nameAccessor, tiprackOptions]) diff --git a/protocol-designer/src/components/modals/CreateFileWizard/PipetteTypeTile.tsx b/protocol-designer/src/components/modals/CreateFileWizard/PipetteTypeTile.tsx index 7b9f1135f2d..25feb4a2771 100644 --- a/protocol-designer/src/components/modals/CreateFileWizard/PipetteTypeTile.tsx +++ b/protocol-designer/src/components/modals/CreateFileWizard/PipetteTypeTile.tsx @@ -160,9 +160,11 @@ function PipetteField(props: OT2FieldProps): JSX.Element { const currentValue = values.pipettesByMount[mount].pipetteName React.useEffect(() => { if (currentValue === undefined) { - setFieldValue( - nameAccessor, - allowNoPipette ? '' : pipetteOptions[0]?.value ?? '' + setTimeout(() => + setFieldValue( + nameAccessor, + allowNoPipette ? '' : pipetteOptions[0]?.value ?? '' + ) ) } }, [ diff --git a/protocol-designer/src/components/modals/utils.ts b/protocol-designer/src/components/modals/utils.ts index 8d65fa7e823..331b468528c 100644 --- a/protocol-designer/src/components/modals/utils.ts +++ b/protocol-designer/src/components/modals/utils.ts @@ -32,6 +32,7 @@ export function getTiprackOptions(props: TiprackOptionsProps): TiprackOption[] { const isFlexPipette = selectedPipetteDisplayCategory === 'FLEX' || selectedPipetteName === 'p1000_96' + console.log({allLabware}) const tiprackOptions = allLabware ? Object.values(allLabware) .filter(def => def.metadata.displayCategory === 'tipRack') diff --git a/protocol-designer/src/components/modules/ModuleDiagram.tsx b/protocol-designer/src/components/modules/ModuleDiagram.tsx index ac998982dc4..b0a778ed9e6 100644 --- a/protocol-designer/src/components/modules/ModuleDiagram.tsx +++ b/protocol-designer/src/components/modules/ModuleDiagram.tsx @@ -31,22 +31,22 @@ type ModuleImg = { const MODULE_IMG_BY_TYPE: ModuleImg = { [MAGNETIC_MODULE_TYPE]: { - [MAGNETIC_MODULE_V1]: require('../../images/modules/magdeck_gen1.png'), - [MAGNETIC_MODULE_V2]: require('../../images/modules/magdeck_gen2.png'), + [MAGNETIC_MODULE_V1]: import('../../images/modules/magdeck_gen1.png'), + [MAGNETIC_MODULE_V2]: import('../../images/modules/magdeck_gen2.png'), }, [TEMPERATURE_MODULE_TYPE]: { - [TEMPERATURE_MODULE_V1]: require('../../images/modules/tempdeck_gen1.png'), - [TEMPERATURE_MODULE_V2]: require('../../images/modules/temp_deck_gen_2_transparent.png'), + [TEMPERATURE_MODULE_V1]: import('../../images/modules/tempdeck_gen1.png'), + [TEMPERATURE_MODULE_V2]: import('../../images/modules/temp_deck_gen_2_transparent.png'), }, [THERMOCYCLER_MODULE_TYPE]: { - [THERMOCYCLER_MODULE_V1]: require('../../images/modules/thermocycler.jpg'), - [THERMOCYCLER_MODULE_V2]: require('../../images/modules/thermocycler_gen2.png'), + [THERMOCYCLER_MODULE_V1]: import('../../images/modules/thermocycler.jpg'), + [THERMOCYCLER_MODULE_V2]: import('../../images/modules/thermocycler_gen2.png'), }, [HEATERSHAKER_MODULE_TYPE]: { - [HEATERSHAKER_MODULE_V1]: require('../../images/modules/heater_shaker_module_transparent.png'), + [HEATERSHAKER_MODULE_V1]: import('../../images/modules/heater_shaker_module_transparent.png'), }, [MAGNETIC_BLOCK_TYPE]: { - [MAGNETIC_BLOCK_V1]: require('../../images/modules/mag_block.png'), + [MAGNETIC_BLOCK_V1]: import('../../images/modules/mag_block.png'), }, } diff --git a/protocol-designer/src/components/modules/styles.module.css b/protocol-designer/src/components/modules/styles.module.css index 694fbe2c4cc..be6db9bac2f 100644 --- a/protocol-designer/src/components/modules/styles.module.css +++ b/protocol-designer/src/components/modules/styles.module.css @@ -1,6 +1,6 @@ @import '@opentrons/components/styles'; -:root { +#root { --size-20p: 20%; } diff --git a/protocol-designer/src/configureStore.ts b/protocol-designer/src/configureStore.ts index 2ea709ef29d..01686d5a28a 100644 --- a/protocol-designer/src/configureStore.ts +++ b/protocol-designer/src/configureStore.ts @@ -13,21 +13,33 @@ import { makePersistSubscriber, rehydratePersistedAction } from './persist' import { fileUploadMessage } from './load-file/actions' import { makeTimelineMiddleware } from './timelineMiddleware/makeTimelineMiddleware' import { BaseState, Action } from './types' +import { rootReducer as analyticsReducer } from './analytics' +import { rootReducer as dismissReducer } from './dismiss' +import { rootReducer as featureFlagsReducer } from './feature-flags' +import { rootReducer as fileDataReducer } from './file-data' +import { rootReducer as labwareIngredReducer } from './labware-ingred/reducers' +import { rootReducer as loadFileReducer } from './load-file' +import { rootReducer as navigationReducer } from './navigation' +import { rootReducer as stepFormsReducer } from './step-forms' +import { rootReducer as tutorialReducer } from './tutorial' +import { rootReducer as uiReducer } from './ui' +import { rootReducer as wellSelectionReducer } from './well-selection/reducers' + const timelineMiddleware = makeTimelineMiddleware() function getRootReducer(): Reducer { const rootReducer = combineReducers({ - analytics: require('./analytics').rootReducer, - dismiss: require('./dismiss').rootReducer, - featureFlags: require('./feature-flags').rootReducer, - fileData: require('./file-data').rootReducer, - labwareIngred: require('./labware-ingred/reducers').rootReducer, - loadFile: require('./load-file').rootReducer, - navigation: require('./navigation').rootReducer, - stepForms: require('./step-forms').rootReducer, - tutorial: require('./tutorial').rootReducer, - ui: require('./ui').rootReducer, - wellSelection: require('./well-selection/reducers').rootReducer, + analytics: analyticsReducer, + dismiss: dismissReducer, + featureFlags: featureFlagsReducer, + fileData: fileDataReducer, + labwareIngred: labwareIngredReducer, + loadFile: loadFileReducer, + navigation: navigationReducer, + stepForms: stepFormsReducer, + tutorial: tutorialReducer, + ui: uiReducer, + wellSelection: wellSelectionReducer, }) // TODO: Ian 2019-06-25 consider making file loading non-committal // so UNDO_LOAD_FILE doesnt' just reset Redux state @@ -91,31 +103,5 @@ export function configureStore(): StoreType { }) } - function replaceReducers(): void { - const nextRootReducer = getRootReducer() - store.replaceReducer(nextRootReducer) - } - - if (module.hot) { - // Enable Webpack hot module replacement for reducers - module.hot.accept( - [ - './analytics/reducers', - './dismiss/reducers', - './feature-flags/reducers', - './file-data/reducers', - './labware-defs/reducers', // NOTE: labware-defs is nested inside step-forms, so it doesn't need to go directly into getRootReducer fn above - './labware-ingred/reducers', - './load-file/reducers', - './navigation/reducers', - './step-forms/reducers', - './tutorial/reducers', - './ui/steps/reducers', - './well-selection/reducers', - ], - replaceReducers - ) - } - return store } diff --git a/protocol-designer/src/index.tsx b/protocol-designer/src/index.tsx index dbd5f8b49ba..6cfc83ca677 100644 --- a/protocol-designer/src/index.tsx +++ b/protocol-designer/src/index.tsx @@ -17,6 +17,8 @@ initialize(store) // initialize analytics initializeMixpanel(store.getState()) +console.log({pdMeta: import.meta}) + const render = (Component: any): void => { ReactDOM.render( @@ -29,12 +31,5 @@ const render = (Component: any): void => { document.getElementById('root') ) } - +console.log('ABOUT TO RENDER') render(App) - -// Hot Module Replacement API -if (module.hot) { - module.hot.accept('./components/App', () => { - render(App) - }) -} diff --git a/protocol-designer/src/labware-defs/utils.ts b/protocol-designer/src/labware-defs/utils.ts index 8963bb8a826..be9559a3ef8 100644 --- a/protocol-designer/src/labware-defs/utils.ts +++ b/protocol-designer/src/labware-defs/utils.ts @@ -3,33 +3,15 @@ import { getLabwareDefURI, PD_DO_NOT_LIST, LabwareDefinition2, + getAllDefinitions as _getAllDefinitions, } from '@opentrons/shared-data' import { LabwareDefByDefURI } from './types' -// TODO: Ian 2019-04-11 getAllDefinitions also exists (differently) in labware-library, -// should reconcile differences & make a general util fn imported from shared-data -// require all definitions in the labware/definitions/2 directory -const definitionsContext = require.context( - '@opentrons/shared-data/labware/definitions/2', - true, // traverse subdirectories - /\.json$/, // import filter - 'sync' // load every definition into one synchronous chunk -) - let _definitions: LabwareDefByDefURI | null = null export function getAllDefinitions(): LabwareDefByDefURI { - // NOTE: unlike labware-library, no filtering out trashes here (we need 'em) - // also, more convenient & performant to make a map {labwareDefURI: def} not an array - if (!_definitions) { - _definitions = definitionsContext.keys().reduce((acc, filename) => { - const def: LabwareDefinition2 = definitionsContext(filename) - const labwareDefURI = getLabwareDefURI(def) - return PD_DO_NOT_LIST.includes(def.parameters.loadName) - ? acc - : { ...acc, [labwareDefURI]: def } - }, {}) + if (_definitions == null) { + _definitions = _getAllDefinitions() } - return _definitions } // filter out all but the latest version of each labware diff --git a/protocol-designer/src/step-forms/selectors/index.ts b/protocol-designer/src/step-forms/selectors/index.ts index 25c86aa3880..7fe0e3ba275 100644 --- a/protocol-designer/src/step-forms/selectors/index.ts +++ b/protocol-designer/src/step-forms/selectors/index.ts @@ -403,6 +403,7 @@ export const getPipettesForInstrumentGroup: Selector< ) => { const pipetteSpec = pipetteOnDeck.spec const tiprackDef = pipetteOnDeck.tiprackLabwareDef + console.log({pipetteOnDeck}) const pipetteForInstrumentGroup: InstrumentInfoProps = { mount: pipetteOnDeck.mount, pipetteSpecs: pipetteSpec, diff --git a/protocol-designer/tsconfig.json b/protocol-designer/tsconfig.json index 4fbb5cb7ae6..f5730319582 100644 --- a/protocol-designer/tsconfig.json +++ b/protocol-designer/tsconfig.json @@ -12,13 +12,21 @@ }, { "path": "../step-generation" - } + }, + { "path": "./tsconfig.node.json" } ], "compilerOptions": { + "module": "es2020", + "moduleResolution": "Node", "composite": true, "noErrorTruncation": true, "rootDir": "src", - "outDir": "lib" + "outDir": "lib", + "paths": { + "@opentrons/shared-data": ["../shared-data"] + } }, + "module": "ESNext", + "types": ["vite/client"], "include": ["typings", "src", "vite.config.ts"] } diff --git a/protocol-designer/tsconfig.node.json b/protocol-designer/tsconfig.node.json new file mode 100644 index 00000000000..0cfa68b5124 --- /dev/null +++ b/protocol-designer/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts, postcss.config.ts"] +} diff --git a/protocol-designer/typings/vite-env.d.ts b/protocol-designer/typings/vite-env.d.ts new file mode 100644 index 00000000000..11f02fe2a00 --- /dev/null +++ b/protocol-designer/typings/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/protocol-designer/vite.config.ts b/protocol-designer/vite.config.ts index 19182cd79d3..4bf05b3aa63 100644 --- a/protocol-designer/vite.config.ts +++ b/protocol-designer/vite.config.ts @@ -1,6 +1,9 @@ import path from 'path' import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import postCssApply from 'postcss-apply' +import postCssImport from 'postcss-import' +console.log({ postCssApply: postCssApply() }) export default defineConfig({ build: { @@ -8,11 +11,26 @@ export default defineConfig({ outDir: 'dist', }, plugins: [react()], + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + }, + include: ['@opentrons/shared-data'], + }, css: { postcss: { - plugins: [], + plugins: [ + postCssImport({ + root: 'src/', + }), + postCssApply(), + ], }, }, + define: { + 'process.env': process.env, + global: 'window', + }, resolve: { alias: { '@opentrons/components/styles': `@opentrons/components/src/index.css`, diff --git a/shared-data/deck/index.ts b/shared-data/deck/index.ts index c8dc5fc1eb3..4afbaa03a69 100644 --- a/shared-data/deck/index.ts +++ b/shared-data/deck/index.ts @@ -1,6 +1,22 @@ import ot2StandardDeckV3 from './definitions/3/ot2_standard.json' import ot2StandardDeckV4 from './definitions/4/ot2_standard.json' +import type { DeckDefinition } from '../js/types' export * from './types/schemaV4' export { ot2StandardDeckV3, ot2StandardDeckV4 } + +export function getDeckDefinitions(): Record { + const deckDefinitions: { + [filePath: string]: DeckDefinition + } = import.meta.glob('../labware/definitions/2', { + eager: true, + }) + + return Object.values(deckDefinitions).reduce>( + (acc, deckDef) => { + return { ...acc, [deckDef.otId]: deckDef } + }, + {} + ) +} diff --git a/shared-data/js/labware.ts b/shared-data/js/labware.ts index 594fc158098..20586d4dbbb 100644 --- a/shared-data/js/labware.ts +++ b/shared-data/js/labware.ts @@ -5,7 +5,349 @@ import fixtureTiprack10ul from '../labware/fixtures/2/fixture_tiprack_10_ul.json import fixtureTiprack300ul from '../labware/fixtures/2/fixture_tiprack_300_ul.json' import fixtureTiprack1000ul from '../labware/fixtures/2/fixture_flex_96_tiprack_1000ul.json' import fixtureTiprackAdapter from '../labware/fixtures/2/fixture_flex_96_tiprack_adapter.json' -import opentrons1Trash3200mlFixedV1 from '../labware/definitions/2/opentrons_1_trash_3200ml_fixed/1.json' +import { getLabwareDefURI } from './helpers/index' + +import agilent1Reservoir290MlV1Uncasted from '../labware/definitions/2/agilent_1_reservoir_290ml/1.json' +import appliedbiosystemsmicroamp384Wellplate40UlV1Uncasted from '../labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/1.json' +import armadillo96Wellplate200UlPcrFullSkirtV1Uncasted from '../labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/1.json' +import armadillo96Wellplate200UlPcrFullSkirtV2Uncasted from '../labware/definitions/2/armadillo_96_wellplate_200ul_pcr_full_skirt/2.json' +import axygen1Reservoir90MlV1Uncasted from '../labware/definitions/2/axygen_1_reservoir_90ml/1.json' +import biorad384Wellplate50UlV1Uncasted from '../labware/definitions/2/biorad_384_wellplate_50ul/1.json' +import biorad384Wellplate50UlV2Uncasted from '../labware/definitions/2/biorad_384_wellplate_50ul/2.json' +import biorad96Wellplate200UlPcrV1Uncasted from '../labware/definitions/2/biorad_96_wellplate_200ul_pcr/1.json' +import biorad96Wellplate200UlPcrV2Uncasted from '../labware/definitions/2/biorad_96_wellplate_200ul_pcr/2.json' +import corning12Wellplate69MlFlatV1Uncasted from '../labware/definitions/2/corning_12_wellplate_6.9ml_flat/1.json' +import corning12Wellplate69MlFlatV2Uncasted from '../labware/definitions/2/corning_12_wellplate_6.9ml_flat/2.json' +import corning24Wellplate34MlFlatV1Uncasted from '../labware/definitions/2/corning_24_wellplate_3.4ml_flat/1.json' +import corning24Wellplate34MlFlatV2Uncasted from '../labware/definitions/2/corning_24_wellplate_3.4ml_flat/2.json' +import corning384Wellplate112UlFlatV1Uncasted from '../labware/definitions/2/corning_384_wellplate_112ul_flat/1.json' +import corning384Wellplate112UlFlatV2Uncasted from '../labware/definitions/2/corning_384_wellplate_112ul_flat/2.json' +import corning48Wellplate16MlFlatV1Uncasted from '../labware/definitions/2/corning_48_wellplate_1.6ml_flat/1.json' +import corning48Wellplate16MlFlatV2Uncasted from '../labware/definitions/2/corning_48_wellplate_1.6ml_flat/2.json' +import corning6Wellplate168MlFlatV1Uncasted from '../labware/definitions/2/corning_6_wellplate_16.8ml_flat/1.json' +import corning6Wellplate168MlFlatV2Uncasted from '../labware/definitions/2/corning_6_wellplate_16.8ml_flat/2.json' +import corning96Wellplate360UlFlatV1Uncasted from '../labware/definitions/2/corning_96_wellplate_360ul_flat/1.json' +import corning96Wellplate360UlFlatV2Uncasted from '../labware/definitions/2/corning_96_wellplate_360ul_flat/2.json' +import eppendorf96Tiprack1000UlEptipsV1Uncasted from '../labware/definitions/2/eppendorf_96_tiprack_1000ul_eptips/1.json' +import eppendorf96Tiprack10UlEptipsV1Uncasted from '../labware/definitions/2/eppendorf_96_tiprack_10ul_eptips/1.json' +import geb96Tiprack1000UlV1Uncasted from '../labware/definitions/2/geb_96_tiprack_1000ul/1.json' +import geb96Tiprack10UlV1Uncasted from '../labware/definitions/2/geb_96_tiprack_10ul/1.json' +import nest12Reservoir15MlV1Uncasted from '../labware/definitions/2/nest_12_reservoir_15ml/1.json' +import nest1Reservoir195MlV1Uncasted from '../labware/definitions/2/nest_1_reservoir_195ml/1.json' +import nest1Reservoir195MlV2Uncasted from '../labware/definitions/2/nest_1_reservoir_195ml/2.json' +import nest1Reservoir290MlV1Uncasted from '../labware/definitions/2/nest_1_reservoir_290ml/1.json' +import nest96Wellplate100UlPcrFullSkirtV1Uncasted from '../labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/1.json' +import nest96Wellplate100UlPcrFullSkirtV2Uncasted from '../labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/2.json' +import nest96Wellplate200UlFlatV1Uncasted from '../labware/definitions/2/nest_96_wellplate_200ul_flat/1.json' +import nest96Wellplate200UlFlatV2Uncasted from '../labware/definitions/2/nest_96_wellplate_200ul_flat/2.json' +import nest96Wellplate2MlDeepV1Uncasted from '../labware/definitions/2/nest_96_wellplate_2ml_deep/1.json' +import nest96Wellplate2MlDeepV2Uncasted from '../labware/definitions/2/nest_96_wellplate_2ml_deep/2.json' +import opentrons10TuberackFalcon4X50Ml6X15MlConicalV1Uncasted from '../labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical/1.json' +import opentrons10TuberackFalcon4X50Ml6X15MlConicalAcrylicV1Uncasted from '../labware/definitions/2/opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical_acrylic/1.json' +import opentrons10TuberackNest4X50Ml6X15MlConicalV1Uncasted from '../labware/definitions/2/opentrons_10_tuberack_nest_4x50ml_6x15ml_conical/1.json' +import opentrons15TuberackFalcon15MlConicalV1Uncasted from '../labware/definitions/2/opentrons_15_tuberack_falcon_15ml_conical/1.json' +import opentrons15TuberackNest15MlConicalV1Uncasted from '../labware/definitions/2/opentrons_15_tuberack_nest_15ml_conical/1.json' +import opentrons1Trash3200MlFixedV1Uncasted from '../labware/definitions/2/opentrons_1_trash_3200ml_fixed/1.json' +import opentrons1Trash1100MlFixedV1Uncasted from '../labware/definitions/2/opentrons_1_trash_1100ml_fixed/1.json' +import opentrons1Trash850MlFixedV1Uncasted from '../labware/definitions/2/opentrons_1_trash_850ml_fixed/1.json' +import opentrons24AluminumblockGeneric2MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/1.json' +import opentrons24AluminumblockGeneric2MlScrewcapV2Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_generic_2ml_screwcap/2.json' +import opentrons24AluminumblockNest05MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/1.json' +import opentrons24AluminumblockNest15MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_screwcap/1.json' +import opentrons24AluminumblockNest15MlSnapcapV1Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_nest_1.5ml_snapcap/1.json' +import opentrons24AluminumblockNest2MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_screwcap/1.json' +import opentrons24AluminumblockNest2MlSnapcapV1Uncasted from '../labware/definitions/2/opentrons_24_aluminumblock_nest_2ml_snapcap/1.json' +import opentrons24TuberackEppendorf15MlSafelockSnapcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap/1.json' +import opentrons24TuberackEppendorf2MlSafelockSnapcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap/1.json' +import opentrons24TuberackEppendorf2MlSafelockSnapcapAcrylicV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap_acrylic/1.json' +import opentrons24TuberackGeneric075MlSnapcapAcrylicV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_generic_0.75ml_snapcap_acrylic/1.json' +import opentrons24TuberackGeneric2MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_generic_2ml_screwcap/1.json' +import opentrons24TuberackNest05MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/1.json' +import opentrons24TuberackNest15MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_screwcap/1.json' +import opentrons24TuberackNest15MlSnapcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_nest_1.5ml_snapcap/1.json' +import opentrons24TuberackNest2MlScrewcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_nest_2ml_screwcap/1.json' +import opentrons24TuberackNest2MlSnapcapV1Uncasted from '../labware/definitions/2/opentrons_24_tuberack_nest_2ml_snapcap/1.json' +import opentrons40AluminumblockEppendorf24X2MlSafelockSnapcapGeneric16X02MlPcrStripV1Uncasted from '../labware/definitions/2/opentrons_40_aluminumblock_eppendorf_24x2ml_safelock_snapcap_generic_16x0.2ml_pcr_strip/1.json' +import opentrons6TuberackFalcon50MlConicalV1Uncasted from '../labware/definitions/2/opentrons_6_tuberack_falcon_50ml_conical/1.json' +import opentrons6TuberackNest50MlConicalV1Uncasted from '../labware/definitions/2/opentrons_6_tuberack_nest_50ml_conical/1.json' +import opentrons96AluminumblockBioradWellplate200UlV1Uncasted from '../labware/definitions/2/opentrons_96_aluminumblock_biorad_wellplate_200ul/1.json' +import opentrons96AluminumblockGenericPcrStrip200UlV1Uncasted from '../labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/1.json' +import opentrons96AluminumblockGenericPcrStrip200UlV2Uncasted from '../labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/2.json' +import opentrons96AluminumblockNestWellplate100UlV1Uncasted from '../labware/definitions/2/opentrons_96_aluminumblock_nest_wellplate_100ul/1.json' +import opentrons96DeepWellAdapterV1Uncasted from '../labware/definitions/2/opentrons_96_deep_well_adapter/1.json' +import opentrons96DeepWellAdapterNestWellplate2MlDeepV1Uncasted from '../labware/definitions/2/opentrons_96_deep_well_adapter_nest_wellplate_2ml_deep/1.json' +import opentrons96Filtertiprack1000UlV1Uncasted from '../labware/definitions/2/opentrons_96_filtertiprack_1000ul/1.json' +import opentrons96Filtertiprack10UlV1Uncasted from '../labware/definitions/2/opentrons_96_filtertiprack_10ul/1.json' +import opentrons96Filtertiprack200UlV1Uncasted from '../labware/definitions/2/opentrons_96_filtertiprack_200ul/1.json' +import opentrons96Filtertiprack20UlV1Uncasted from '../labware/definitions/2/opentrons_96_filtertiprack_20ul/1.json' +import opentrons96FlatBottomAdapterV1Uncasted from '../labware/definitions/2/opentrons_96_flat_bottom_adapter/1.json' +import opentrons96FlatBottomAdapterNestWellplate200UlFlatV1Uncasted from '../labware/definitions/2/opentrons_96_flat_bottom_adapter_nest_wellplate_200ul_flat/1.json' +import opentrons96PcrAdapterV1Uncasted from '../labware/definitions/2/opentrons_96_pcr_adapter/1.json' +import opentrons96PcrAdapterArmadilloWellplate200UlV1Uncasted from '../labware/definitions/2/opentrons_96_pcr_adapter_armadillo_wellplate_200ul/1.json' +import opentrons96PcrAdapterNestWellplate100UlPcrFullSkirtV1Uncasted from '../labware/definitions/2/opentrons_96_pcr_adapter_nest_wellplate_100ul_pcr_full_skirt/1.json' +import opentrons96Tiprack1000UlV1Uncasted from '../labware/definitions/2/opentrons_96_tiprack_1000ul/1.json' +import opentrons96Tiprack10UlV1Uncasted from '../labware/definitions/2/opentrons_96_tiprack_10ul/1.json' +import opentrons96Tiprack20UlV1Uncasted from '../labware/definitions/2/opentrons_96_tiprack_20ul/1.json' +import opentrons96Tiprack300UlV1Uncasted from '../labware/definitions/2/opentrons_96_tiprack_300ul/1.json' +import opentrons96WellAluminumBlockV1Uncasted from '../labware/definitions/2/opentrons_96_well_aluminum_block/1.json' +import opentrons96Wellplate200UlPcrFullSkirtV1Uncasted from '../labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/1.json' +import opentrons96Wellplate200UlPcrFullSkirtV2Uncasted from '../labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/2.json' +import opentronsAluminumFlatBottomPlateV1Uncasted from '../labware/definitions/2/opentrons_aluminum_flat_bottom_plate/1.json' +import opentronsCalibrationAdapterHeatershakerModuleV1Uncasted from '../labware/definitions/2/opentrons_calibration_adapter_heatershaker_module/1.json' +import opentronsCalibrationAdapterTemperatureModuleV1Uncasted from '../labware/definitions/2/opentrons_calibration_adapter_temperature_module/1.json' +import opentronsCalibrationAdapterThermocyclerModuleV1Uncasted from '../labware/definitions/2/opentrons_calibration_adapter_thermocycler_module/1.json' +import opentronsCalibrationblockShortSideLeftV1Uncasted from '../labware/definitions/2/opentrons_calibrationblock_short_side_left/1.json' +import opentronsCalibrationblockShortSideRightV1Uncasted from '../labware/definitions/2/opentrons_calibrationblock_short_side_right/1.json' +import opentronsFlex96Filtertiprack1000UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json' +import opentronsFlex96Filtertiprack200UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json' +import opentronsFlex96Filtertiprack50UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json' +import opentronsFlex96Tiprack1000UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json' +import opentronsFlex96Tiprack200UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json' +import opentronsFlex96Tiprack50UlV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json' +import opentronsFlex96TiprackAdapterV1Uncasted from '../labware/definitions/2/opentrons_flex_96_tiprack_adapter/1.json' +import opentronsUniversalFlatAdapterV1Uncasted from '../labware/definitions/2/opentrons_universal_flat_adapter/1.json' +import opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1Uncasted from '../labware/definitions/2/opentrons_universal_flat_adapter_corning_384_wellplate_112ul_flat/1.json' +import thermoscientificnunc96Wellplate1300UlV1Uncasted from '../labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/1.json' +import thermoscientificnunc96Wellplate2000UlV1Uncasted from '../labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/1.json' +import tipone96Tiprack200UlV1Uncasted from '../labware/definitions/2/tipone_96_tiprack_200ul/1.json' +import usascientific12Reservoir22MlV1Uncasted from '../labware/definitions/2/usascientific_12_reservoir_22ml/1.json' +import usascientific96Wellplate24MlDeepV1Uncasted from '../labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/1.json' + +import type { LabwareDefByDefURI, LabwareDefinition2 } from './types' + +const agilent1Reservoir290MlV1 = agilent1Reservoir290MlV1Uncasted as LabwareDefinition2 +const appliedbiosystemsmicroamp384Wellplate40UlV1 = appliedbiosystemsmicroamp384Wellplate40UlV1Uncasted as LabwareDefinition2 +const armadillo96Wellplate200UlPcrFullSkirtV2 = armadillo96Wellplate200UlPcrFullSkirtV2Uncasted as LabwareDefinition2 +const armadillo96Wellplate200UlPcrFullSkirtV1 = armadillo96Wellplate200UlPcrFullSkirtV1Uncasted as LabwareDefinition2 +const axygen1Reservoir90MlV1 = axygen1Reservoir90MlV1Uncasted as LabwareDefinition2 +const biorad384Wellplate50UlV2 = biorad384Wellplate50UlV2Uncasted as LabwareDefinition2 +const biorad384Wellplate50UlV1 = biorad384Wellplate50UlV1Uncasted as LabwareDefinition2 +const biorad96Wellplate200UlPcrV2 = biorad96Wellplate200UlPcrV2Uncasted as LabwareDefinition2 +const biorad96Wellplate200UlPcrV1 = biorad96Wellplate200UlPcrV1Uncasted as LabwareDefinition2 +const corning12Wellplate69MlFlatV2 = corning12Wellplate69MlFlatV2Uncasted as LabwareDefinition2 +const corning12Wellplate69MlFlatV1 = corning12Wellplate69MlFlatV1Uncasted as LabwareDefinition2 +const corning24Wellplate34MlFlatV2 = corning24Wellplate34MlFlatV2Uncasted as LabwareDefinition2 +const corning24Wellplate34MlFlatV1 = corning24Wellplate34MlFlatV1Uncasted as LabwareDefinition2 +const corning384Wellplate112UlFlatV2 = corning384Wellplate112UlFlatV2Uncasted as LabwareDefinition2 +const corning384Wellplate112UlFlatV1 = corning384Wellplate112UlFlatV1Uncasted as LabwareDefinition2 +const corning48Wellplate16MlFlatV2 = corning48Wellplate16MlFlatV2Uncasted as LabwareDefinition2 +const corning48Wellplate16MlFlatV1 = corning48Wellplate16MlFlatV1Uncasted as LabwareDefinition2 +const corning6Wellplate168MlFlatV2 = corning6Wellplate168MlFlatV2Uncasted as LabwareDefinition2 +const corning6Wellplate168MlFlatV1 = corning6Wellplate168MlFlatV1Uncasted as LabwareDefinition2 +const corning96Wellplate360UlFlatV2 = corning96Wellplate360UlFlatV2Uncasted as LabwareDefinition2 +const corning96Wellplate360UlFlatV1 = corning96Wellplate360UlFlatV1Uncasted as LabwareDefinition2 +const eppendorf96Tiprack1000UlEptipsV1 = eppendorf96Tiprack1000UlEptipsV1Uncasted as LabwareDefinition2 +const eppendorf96Tiprack10UlEptipsV1 = eppendorf96Tiprack10UlEptipsV1Uncasted as LabwareDefinition2 +const geb96Tiprack1000UlV1 = geb96Tiprack1000UlV1Uncasted as LabwareDefinition2 +const geb96Tiprack10UlV1 = geb96Tiprack10UlV1Uncasted as LabwareDefinition2 +const nest12Reservoir15MlV1 = nest12Reservoir15MlV1Uncasted as LabwareDefinition2 +const nest1Reservoir195MlV2 = nest1Reservoir195MlV2Uncasted as LabwareDefinition2 +const nest1Reservoir195MlV1 = nest1Reservoir195MlV1Uncasted as LabwareDefinition2 +const nest1Reservoir290MlV1 = nest1Reservoir290MlV1Uncasted as LabwareDefinition2 +const nest96Wellplate100UlPcrFullSkirtV2 = nest96Wellplate100UlPcrFullSkirtV2Uncasted as LabwareDefinition2 +const nest96Wellplate100UlPcrFullSkirtV1 = nest96Wellplate100UlPcrFullSkirtV1Uncasted as LabwareDefinition2 +const nest96Wellplate200UlFlatV2 = nest96Wellplate200UlFlatV2Uncasted as LabwareDefinition2 +const nest96Wellplate200UlFlatV1 = nest96Wellplate200UlFlatV1Uncasted as LabwareDefinition2 +const nest96Wellplate2MlDeepV2 = nest96Wellplate2MlDeepV2Uncasted as LabwareDefinition2 +const nest96Wellplate2MlDeepV1 = nest96Wellplate2MlDeepV1Uncasted as LabwareDefinition2 +const opentrons10TuberackFalcon4X50Ml6X15MlConicalV1 = opentrons10TuberackFalcon4X50Ml6X15MlConicalV1Uncasted as LabwareDefinition2 +const opentrons10TuberackFalcon4X50Ml6X15MlConicalAcrylicV1 = opentrons10TuberackFalcon4X50Ml6X15MlConicalAcrylicV1Uncasted as LabwareDefinition2 +const opentrons10TuberackNest4X50Ml6X15MlConicalV1 = opentrons10TuberackNest4X50Ml6X15MlConicalV1Uncasted as LabwareDefinition2 +const opentrons15TuberackFalcon15MlConicalV1 = opentrons15TuberackFalcon15MlConicalV1Uncasted as LabwareDefinition2 +const opentrons15TuberackNest15MlConicalV1 = opentrons15TuberackNest15MlConicalV1Uncasted as LabwareDefinition2 +const opentrons1Trash1100MlFixedV1 = opentrons1Trash1100MlFixedV1Uncasted as LabwareDefinition2 +const opentrons1Trash3200MlFixedV1 = opentrons1Trash3200MlFixedV1Uncasted as LabwareDefinition2 +const opentrons1Trash850MlFixedV1 = opentrons1Trash850MlFixedV1Uncasted as LabwareDefinition2 +const opentrons24AluminumblockGeneric2MlScrewcapV2 = opentrons24AluminumblockGeneric2MlScrewcapV2Uncasted as LabwareDefinition2 +const opentrons24AluminumblockGeneric2MlScrewcapV1 = opentrons24AluminumblockGeneric2MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24AluminumblockNest05MlScrewcapV1 = opentrons24AluminumblockNest05MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24AluminumblockNest15MlScrewcapV1 = opentrons24AluminumblockNest15MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24AluminumblockNest15MlSnapcapV1 = opentrons24AluminumblockNest15MlSnapcapV1Uncasted as LabwareDefinition2 +const opentrons24AluminumblockNest2MlScrewcapV1 = opentrons24AluminumblockNest2MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24AluminumblockNest2MlSnapcapV1 = opentrons24AluminumblockNest2MlSnapcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackEppendorf15MlSafelockSnapcapV1 = opentrons24TuberackEppendorf15MlSafelockSnapcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackEppendorf2MlSafelockSnapcapV1 = opentrons24TuberackEppendorf2MlSafelockSnapcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackEppendorf2MlSafelockSnapcapAcrylicV1 = opentrons24TuberackEppendorf2MlSafelockSnapcapAcrylicV1Uncasted as LabwareDefinition2 +const opentrons24TuberackGeneric075MlSnapcapAcrylicV1 = opentrons24TuberackGeneric075MlSnapcapAcrylicV1Uncasted as LabwareDefinition2 +const opentrons24TuberackGeneric2MlScrewcapV1 = opentrons24TuberackGeneric2MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackNest05MlScrewcapV1 = opentrons24TuberackNest05MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackNest15MlScrewcapV1 = opentrons24TuberackNest15MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackNest15MlSnapcapV1 = opentrons24TuberackNest15MlSnapcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackNest2MlScrewcapV1 = opentrons24TuberackNest2MlScrewcapV1Uncasted as LabwareDefinition2 +const opentrons24TuberackNest2MlSnapcapV1 = opentrons24TuberackNest2MlSnapcapV1Uncasted as LabwareDefinition2 +const opentrons40AluminumblockEppendorf24X2MlSafelockSnapcapGeneric16X02MlPcrStripV1 = opentrons40AluminumblockEppendorf24X2MlSafelockSnapcapGeneric16X02MlPcrStripV1Uncasted as LabwareDefinition2 +const opentrons6TuberackFalcon50MlConicalV1 = opentrons6TuberackFalcon50MlConicalV1Uncasted as LabwareDefinition2 +const opentrons6TuberackNest50MlConicalV1 = opentrons6TuberackNest50MlConicalV1Uncasted as LabwareDefinition2 +const opentrons96AluminumblockBioradWellplate200UlV1 = opentrons96AluminumblockBioradWellplate200UlV1Uncasted as LabwareDefinition2 +const opentrons96AluminumblockGenericPcrStrip200UlV2 = opentrons96AluminumblockGenericPcrStrip200UlV2Uncasted as LabwareDefinition2 +const opentrons96AluminumblockGenericPcrStrip200UlV1 = opentrons96AluminumblockGenericPcrStrip200UlV1Uncasted as LabwareDefinition2 +const opentrons96AluminumblockNestWellplate100UlV1 = opentrons96AluminumblockNestWellplate100UlV1Uncasted as LabwareDefinition2 +const opentrons96DeepWellAdapterV1 = opentrons96DeepWellAdapterV1Uncasted as LabwareDefinition2 +const opentrons96DeepWellAdapterNestWellplate2MlDeepV1 = opentrons96DeepWellAdapterNestWellplate2MlDeepV1Uncasted as LabwareDefinition2 +const opentrons96Filtertiprack1000UlV1 = opentrons96Filtertiprack1000UlV1Uncasted as LabwareDefinition2 +const opentrons96Filtertiprack10UlV1 = opentrons96Filtertiprack10UlV1Uncasted as LabwareDefinition2 +const opentrons96Filtertiprack200UlV1 = opentrons96Filtertiprack200UlV1Uncasted as LabwareDefinition2 +const opentrons96Filtertiprack20UlV1 = opentrons96Filtertiprack20UlV1Uncasted as LabwareDefinition2 +const opentrons96FlatBottomAdapterV1 = opentrons96FlatBottomAdapterV1Uncasted as LabwareDefinition2 +const opentrons96FlatBottomAdapterNestWellplate200UlFlatV1 = opentrons96FlatBottomAdapterNestWellplate200UlFlatV1Uncasted as LabwareDefinition2 +const opentrons96PcrAdapterV1 = opentrons96PcrAdapterV1Uncasted as LabwareDefinition2 +const opentrons96PcrAdapterArmadilloWellplate200UlV1 = opentrons96PcrAdapterArmadilloWellplate200UlV1Uncasted as LabwareDefinition2 +const opentrons96PcrAdapterNestWellplate100UlPcrFullSkirtV1 = opentrons96PcrAdapterNestWellplate100UlPcrFullSkirtV1Uncasted as LabwareDefinition2 +const opentrons96Tiprack1000UlV1 = opentrons96Tiprack1000UlV1Uncasted as LabwareDefinition2 +const opentrons96Tiprack10UlV1 = opentrons96Tiprack10UlV1Uncasted as LabwareDefinition2 +const opentrons96Tiprack20UlV1 = opentrons96Tiprack20UlV1Uncasted as LabwareDefinition2 +const opentrons96Tiprack300UlV1 = opentrons96Tiprack300UlV1Uncasted as LabwareDefinition2 +const opentrons96WellAluminumBlockV1 = opentrons96WellAluminumBlockV1Uncasted as LabwareDefinition2 +const opentrons96Wellplate200UlPcrFullSkirtV2 = opentrons96Wellplate200UlPcrFullSkirtV2Uncasted as LabwareDefinition2 +const opentrons96Wellplate200UlPcrFullSkirtV1 = opentrons96Wellplate200UlPcrFullSkirtV1Uncasted as LabwareDefinition2 +const opentronsAluminumFlatBottomPlateV1 = opentronsAluminumFlatBottomPlateV1Uncasted as LabwareDefinition2 +const opentronsCalibrationAdapterHeatershakerModuleV1 = opentronsCalibrationAdapterHeatershakerModuleV1Uncasted as LabwareDefinition2 +const opentronsCalibrationAdapterTemperatureModuleV1 = opentronsCalibrationAdapterTemperatureModuleV1Uncasted as LabwareDefinition2 +const opentronsCalibrationAdapterThermocyclerModuleV1 = opentronsCalibrationAdapterThermocyclerModuleV1Uncasted as LabwareDefinition2 +const opentronsCalibrationblockShortSideLeftV1 = opentronsCalibrationblockShortSideLeftV1Uncasted as LabwareDefinition2 +const opentronsCalibrationblockShortSideRightV1 = opentronsCalibrationblockShortSideRightV1Uncasted as LabwareDefinition2 +const opentronsFlex96Filtertiprack1000UlV1 = opentronsFlex96Filtertiprack1000UlV1Uncasted as LabwareDefinition2 +const opentronsFlex96Filtertiprack200UlV1 = opentronsFlex96Filtertiprack200UlV1Uncasted as LabwareDefinition2 +const opentronsFlex96Filtertiprack50UlV1 = opentronsFlex96Filtertiprack50UlV1Uncasted as LabwareDefinition2 +const opentronsFlex96Tiprack1000UlV1 = opentronsFlex96Tiprack1000UlV1Uncasted as LabwareDefinition2 +const opentronsFlex96Tiprack200UlV1 = opentronsFlex96Tiprack200UlV1Uncasted as LabwareDefinition2 +const opentronsFlex96Tiprack50UlV1 = opentronsFlex96Tiprack50UlV1Uncasted as LabwareDefinition2 +const opentronsFlex96TiprackAdapterV1 = opentronsFlex96TiprackAdapterV1Uncasted as LabwareDefinition2 +const opentronsUniversalFlatAdapterV1 = opentronsUniversalFlatAdapterV1Uncasted as LabwareDefinition2 +const opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1 = opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1Uncasted as LabwareDefinition2 +const thermoscientificnunc96Wellplate1300UlV1 = thermoscientificnunc96Wellplate1300UlV1Uncasted as LabwareDefinition2 +const thermoscientificnunc96Wellplate2000UlV1 = thermoscientificnunc96Wellplate2000UlV1Uncasted as LabwareDefinition2 +const tipone96Tiprack200UlV1 = tipone96Tiprack200UlV1Uncasted as LabwareDefinition2 +const usascientific12Reservoir22MlV1 = usascientific12Reservoir22MlV1Uncasted as LabwareDefinition2 +const usascientific96Wellplate24MlDeepV1 = usascientific96Wellplate24MlDeepV1Uncasted as LabwareDefinition2 + +// labware definitions +const getAllLabwareDefs = (): Record => ({ + agilent1Reservoir290MlV1, + appliedbiosystemsmicroamp384Wellplate40UlV1, + armadillo96Wellplate200UlPcrFullSkirtV1, + armadillo96Wellplate200UlPcrFullSkirtV2, + axygen1Reservoir90MlV1, + biorad384Wellplate50UlV1, + biorad384Wellplate50UlV2, + biorad96Wellplate200UlPcrV1, + biorad96Wellplate200UlPcrV2, + corning12Wellplate69MlFlatV1, + corning12Wellplate69MlFlatV2, + corning24Wellplate34MlFlatV1, + corning24Wellplate34MlFlatV2, + corning384Wellplate112UlFlatV1, + corning384Wellplate112UlFlatV2, + corning48Wellplate16MlFlatV1, + corning48Wellplate16MlFlatV2, + corning6Wellplate168MlFlatV1, + corning6Wellplate168MlFlatV2, + corning96Wellplate360UlFlatV1, + corning96Wellplate360UlFlatV2, + eppendorf96Tiprack1000UlEptipsV1, + eppendorf96Tiprack10UlEptipsV1, + geb96Tiprack1000UlV1, + geb96Tiprack10UlV1, + nest12Reservoir15MlV1, + nest1Reservoir195MlV1, + nest1Reservoir195MlV2, + nest1Reservoir290MlV1, + nest96Wellplate100UlPcrFullSkirtV1, + nest96Wellplate100UlPcrFullSkirtV2, + nest96Wellplate200UlFlatV1, + nest96Wellplate200UlFlatV2, + nest96Wellplate2MlDeepV1, + nest96Wellplate2MlDeepV2, + opentrons10TuberackFalcon4X50Ml6X15MlConicalV1, + opentrons10TuberackFalcon4X50Ml6X15MlConicalAcrylicV1, + opentrons10TuberackNest4X50Ml6X15MlConicalV1, + opentrons15TuberackFalcon15MlConicalV1, + opentrons15TuberackNest15MlConicalV1, + opentrons1Trash3200MlFixedV1, + opentrons1Trash1100MlFixedV1, + opentrons1Trash850MlFixedV1, + opentrons24AluminumblockGeneric2MlScrewcapV1, + opentrons24AluminumblockGeneric2MlScrewcapV2, + opentrons24AluminumblockNest05MlScrewcapV1, + opentrons24AluminumblockNest15MlScrewcapV1, + opentrons24AluminumblockNest15MlSnapcapV1, + opentrons24AluminumblockNest2MlScrewcapV1, + opentrons24AluminumblockNest2MlSnapcapV1, + opentrons24TuberackEppendorf15MlSafelockSnapcapV1, + opentrons24TuberackEppendorf2MlSafelockSnapcapV1, + opentrons24TuberackEppendorf2MlSafelockSnapcapAcrylicV1, + opentrons24TuberackGeneric075MlSnapcapAcrylicV1, + opentrons24TuberackGeneric2MlScrewcapV1, + opentrons24TuberackNest05MlScrewcapV1, + opentrons24TuberackNest15MlScrewcapV1, + opentrons24TuberackNest15MlSnapcapV1, + opentrons24TuberackNest2MlScrewcapV1, + opentrons24TuberackNest2MlSnapcapV1, + opentrons40AluminumblockEppendorf24X2MlSafelockSnapcapGeneric16X02MlPcrStripV1, + opentrons6TuberackFalcon50MlConicalV1, + opentrons6TuberackNest50MlConicalV1, + opentrons96AluminumblockBioradWellplate200UlV1, + opentrons96AluminumblockGenericPcrStrip200UlV1, + opentrons96AluminumblockGenericPcrStrip200UlV2, + opentrons96AluminumblockNestWellplate100UlV1, + opentrons96DeepWellAdapterV1, + opentrons96DeepWellAdapterNestWellplate2MlDeepV1, + opentrons96Filtertiprack1000UlV1, + opentrons96Filtertiprack10UlV1, + opentrons96Filtertiprack200UlV1, + opentrons96Filtertiprack20UlV1, + opentrons96FlatBottomAdapterV1, + opentrons96FlatBottomAdapterNestWellplate200UlFlatV1, + opentrons96PcrAdapterV1, + opentrons96PcrAdapterArmadilloWellplate200UlV1, + opentrons96PcrAdapterNestWellplate100UlPcrFullSkirtV1, + opentrons96Tiprack1000UlV1, + opentrons96Tiprack10UlV1, + opentrons96Tiprack20UlV1, + opentrons96Tiprack300UlV1, + opentrons96WellAluminumBlockV1, + opentrons96Wellplate200UlPcrFullSkirtV1, + opentrons96Wellplate200UlPcrFullSkirtV2, + opentronsAluminumFlatBottomPlateV1, + opentronsCalibrationAdapterHeatershakerModuleV1, + opentronsCalibrationAdapterTemperatureModuleV1, + opentronsCalibrationAdapterThermocyclerModuleV1, + opentronsCalibrationblockShortSideLeftV1, + opentronsCalibrationblockShortSideRightV1, + opentronsFlex96Filtertiprack1000UlV1, + opentronsFlex96Filtertiprack200UlV1, + opentronsFlex96Filtertiprack50UlV1, + opentronsFlex96Tiprack1000UlV1, + opentronsFlex96Tiprack200UlV1, + opentronsFlex96Tiprack50UlV1, + opentronsFlex96TiprackAdapterV1, + opentronsUniversalFlatAdapterV1, + opentronsUniversalFlatAdapterCorning384Wellplate112UlFlatV1, + thermoscientificnunc96Wellplate1300UlV1, + thermoscientificnunc96Wellplate2000UlV1, + tipone96Tiprack200UlV1, + usascientific12Reservoir22MlV1, + usascientific96Wellplate24MlDeepV1, +}) + +let _definitions: LabwareDefByDefURI | null = null + +export function getAllDefinitions( + blockList: string[] = [] +): LabwareDefByDefURI { + if (_definitions == null) { + _definitions = Object.values( + getAllLabwareDefs() + ).reduce((acc, labwareDef: LabwareDefinition2) => { + const labwareDefURI = getLabwareDefURI(labwareDef) + return blockList.includes(labwareDef.parameters.loadName) + ? acc + : { ...acc, [labwareDefURI]: labwareDef } + }, {}) + } + + return _definitions +} export { labwareSchemaV2, @@ -15,5 +357,7 @@ export { fixtureTiprack300ul, fixtureTiprack1000ul, fixtureTiprackAdapter, - opentrons1Trash3200mlFixedV1, + opentrons1Trash3200MlFixedV1, } + +export { getAllLabwareDefs } diff --git a/shared-data/js/types.ts b/shared-data/js/types.ts index 3570d42ddbf..ab2c43fa2e7 100644 --- a/shared-data/js/types.ts +++ b/shared-data/js/types.ts @@ -186,6 +186,8 @@ export interface LabwareDefinition2 { allowedRoles?: LabwareRoles[] } +export type LabwareDefByDefURI = Record + export type ModuleType = | typeof MAGNETIC_MODULE_TYPE | typeof TEMPERATURE_MODULE_TYPE diff --git a/shared-data/tsconfig-data.json b/shared-data/tsconfig-data.json index 216fb55edeb..4baecd107af 100644 --- a/shared-data/tsconfig-data.json +++ b/shared-data/tsconfig-data.json @@ -7,7 +7,9 @@ "rootDir": ".", "outDir": "lib" }, + "module": "ESNext", "include": [ + "vite.config.ts", "deck/**/*.json", "labware/**/*.json", "liquid/**/*.json", diff --git a/shared-data/tsconfig.json b/shared-data/tsconfig.json index 46de0a67219..864527df0b4 100644 --- a/shared-data/tsconfig.json +++ b/shared-data/tsconfig.json @@ -4,8 +4,10 @@ "compilerOptions": { "composite": true, "rootDir": ".", - "outDir": "lib" + "outDir": "lib", + "moduleResolution": "Node", }, + "module": "ESNext", "include": [ "js", "protocol", diff --git a/shared-data/vite.config.ts b/shared-data/vite.config.ts new file mode 100644 index 00000000000..0ae5823a677 --- /dev/null +++ b/shared-data/vite.config.ts @@ -0,0 +1,38 @@ +import path from 'path' +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + build: { + // Relative to the root + outDir: 'dist', + }, + plugins: [react()], + optimizeDeps: { + esbuildOptions: { + target: 'es2020', + }, + }, + css: { + postcss: { + plugins: [], + }, + }, + define: { + 'process.env': process.env, + global: 'window', + }, + resolve: { + alias: { + '@opentrons/components/styles': `@opentrons/components/src/index.css`, + '@opentrons/components': `@opentrons/components/src/index.ts`, + '@opentrons/shared-data': `@opentrons/shared-data/js/index.ts`, + '@opentrons/step-generation': `@opentrons/step-generation/src/index.ts`, + '@opentrons/api-client': `${path.resolve(__dirname, 'src')}/index.ts`, + '@opentrons/react-api-client': `${path.resolve( + __dirname, + 'src' + )}/index.ts`, + }, + }, +}) diff --git a/tsconfig-base.json b/tsconfig-base.json index f227e954376..e0e3c447816 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "esnext", - "module": "commonjs", + "module": "es2020", "jsx": "preserve", "declaration": true, "emitDeclarationOnly": true, @@ -10,6 +10,10 @@ "esModuleInterop": true, "resolveJsonModule": true, "noErrorTruncation": true, - "skipLibCheck": true + "skipLibCheck": true, + "types": ["vite/client"], + "paths": { + "@opentrons/shared-data": ["./shared-data"] + } } } diff --git a/yarn.lock b/yarn.lock index 928e08a5fc4..860024fda8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -59,7 +59,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== -"@babel/compat-data@^7.22.9": +"@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== @@ -107,6 +107,27 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.23.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" + integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.6" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/core@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" @@ -165,6 +186,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" @@ -208,6 +239,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" @@ -542,7 +584,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helper-validator-option@^7.22.15": +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== @@ -575,6 +617,15 @@ "@babel/traverse" "^7.23.5" "@babel/types" "^7.23.5" +"@babel/helpers@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" + integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -617,6 +668,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== +"@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" @@ -1504,6 +1560,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" + integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.7", "@babel/types@^7.14.5", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" @@ -1537,6 +1609,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -1560,6 +1641,31 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@csstools/cascade-layer-name-parser@^1.0.5": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.7.tgz#9cfc36de9716d219492eb0e5ee75348b2213a8fd" + integrity sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ== + +"@csstools/css-parser-algorithms@^2.3.2": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" + integrity sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ== + +"@csstools/css-tokenizer@^2.2.1": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6" + integrity sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg== + +"@csstools/media-query-list-parser@^2.1.5": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788" + integrity sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ== + +"@csstools/selector-specificity@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz#d84597fbc0f897240c12fc0a31e492b036c70e40" + integrity sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww== + "@cypress/listr-verbose-renderer@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" @@ -3866,7 +3972,7 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__core@^7.20.5": +"@types/babel__core@^7.20.4", "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -4747,6 +4853,17 @@ "@typescript-eslint/types" "6.13.2" eslint-visitor-keys "^3.4.1" +"@vitejs/plugin-react@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.0.tgz#d71352b1a443c09c7aae8f278dd071ab3d9d8490" + integrity sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ== + dependencies: + "@babel/core" "^7.23.3" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.4" + react-refresh "^0.14.0" + "@vitejs/plugin-react@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" @@ -4758,6 +4875,19 @@ "@types/babel__core" "^7.20.5" react-refresh "^0.14.0" +"@vituum/vite-plugin-postcss@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@vituum/vite-plugin-postcss/-/vite-plugin-postcss-1.1.0.tgz#43f72757dc5186a45ffc759f921beda5dfee8df1" + integrity sha512-qs9AwHIGoemPlJyKQDizlWHFOE1aiQX7VCaNTtvrnUpGqC1PN1+eK2DgTaThOgPIsPZHZ3vvFYu5F6n2E0Hi1g== + dependencies: + autoprefixer "^10.4" + lodash "^4.17" + postcss "^8.4" + postcss-custom-media "^10.0" + postcss-import "^15.1" + postcss-nesting "^12.0" + vituum "^1.1" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -5698,6 +5828,18 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +autoprefixer@^10.0.2, autoprefixer@^10.4: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== + dependencies: + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + autoprefixer@^9.5.1, autoprefixer@^9.8.6: version "9.8.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" @@ -6333,7 +6475,7 @@ browserslist@^4.14.5: node-releases "^2.0.6" update-browserslist-db "^1.0.4" -browserslist@^4.21.9: +browserslist@^4.21.10, browserslist@^4.21.9, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -6810,6 +6952,11 @@ caniuse-lite@^1.0.30001366: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001366.tgz#c73352c83830a9eaf2dea0ff71fb4b9a4bbaa89c" integrity sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA== +caniuse-lite@^1.0.30001538: + version "1.0.30001576" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" + integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== + caniuse-lite@^1.0.30001565: version "1.0.30001566" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" @@ -6991,6 +7138,21 @@ chokidar@^3.4.1, chokidar@^3.4.2: optionalDependencies: fsevents "~2.3.2" +chokidar@^3.5: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -10334,6 +10496,17 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-parse@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d" @@ -10855,6 +11028,11 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -10995,6 +11173,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.0, function.prototype.name@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83" @@ -11751,6 +11934,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hast-to-hyperscript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-4.0.0.tgz#3eb25483ec72a8e9a71e4b1ad7eb8f7c86f755db" @@ -12730,6 +12920,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-core-module@^2.2.0, is-core-module@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" @@ -14380,7 +14577,7 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.21, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15096,6 +15293,13 @@ minimatch@^5.1.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -16473,7 +16677,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -16679,6 +16883,14 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-apply@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.12.0.tgz#11a47b271b14d81db97ed7f51a6c409d025a9c34" + integrity sha512-u8qZLyA9P86cD08IhqjSVV8tf1eGiKQ4fPvjcG3Ic/eOU65EAkDQClp8We7d15TG+RIWRVPSy9v7cJ2D9OReqw== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.14" + postcss-calc@^7.0.1: version "7.0.5" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" @@ -16707,6 +16919,16 @@ postcss-convert-values@^4.0.1: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-custom-media@^10.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-10.0.2.tgz#70a244bbc59fc953ab6573e4e2c9624639aef08a" + integrity sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w== + dependencies: + "@csstools/cascade-layer-name-parser" "^1.0.5" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" + "@csstools/media-query-list-parser" "^2.1.5" + postcss-discard-comments@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" @@ -16749,6 +16971,24 @@ postcss-html@^0.36.0: dependencies: htmlparser2 "^3.10.0" +postcss-import@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.0.0.tgz#2be1c78391b3f43f129fccfe5cc0cc1a11baef54" + integrity sha512-e77lhVvrD1I2y7dYmBv0k9ULTdArgEYZt97T4w6sFIU5uxIHvDFQlKgUUyY7v7Barj0Yf/zm5A4OquZN7jKm5Q== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-import@^15.1: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + postcss-jsx@^0.36.3: version "0.36.4" resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.4.tgz#37a68f300a39e5748d547f19a747b3257240bd50" @@ -16763,7 +17003,7 @@ postcss-less@^3.1.4: dependencies: postcss "^7.0.14" -postcss-loader@^4.2.0: +postcss-loader@^4.0.4, postcss-loader@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== @@ -16882,6 +17122,14 @@ postcss-modules-values@^3.0.0: icss-utils "^4.0.0" postcss "^7.0.6" +postcss-nesting@^12.0: + version "12.0.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-12.0.2.tgz#cb92061347db3e7c38c174c97cb01feff2eef439" + integrity sha512-63PpJHSeNs93S3ZUIyi+7kKx4JqOIEJ6QYtG3x+0qA4J03+4n0iwsyA1GAHyWxsHYljQS4/4ZK1o2sMi70b5wQ== + dependencies: + "@csstools/selector-specificity" "^3.0.1" + postcss-selector-parser "^6.0.13" + postcss-normalize-charset@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" @@ -17046,6 +17294,14 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.13: + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-svgo@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" @@ -17074,6 +17330,11 @@ postcss-value-parser@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" @@ -17114,6 +17375,15 @@ postcss@^7.0.36: picocolors "^0.2.1" source-map "^0.6.1" +postcss@^8.1.7, postcss@^8.4: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.4.32: version "8.4.32" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" @@ -17950,6 +18220,13 @@ reactcss@^1.2.0: dependencies: lodash "^4.0.1" +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + read-config-file@6.3.2: version "6.3.2" resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.3.2.tgz#556891aa6ffabced916ed57457cb192e61880411" @@ -18604,13 +18881,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reselect-tools@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/reselect-tools/-/reselect-tools-0.0.7.tgz#bff19df422ebebd1a7c322262db94a554f6b44ed" - integrity sha512-+RGguS8ph21y04l6YwQwL+VfJ/c0qyZKCkhCd5ZwbNJ/lklsJml3CIim+uaG/t+7jYZQcwDW4bk5+VzTeuzwtw== - dependencies: - reselect "4.0.0" - reselect@4.0.0, reselect@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" @@ -18686,6 +18956,15 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12 is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.1.7: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.3: version "2.0.0-next.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" @@ -20365,6 +20644,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -21843,6 +22127,28 @@ vite@5.0.5: optionalDependencies: fsevents "~2.3.3" +vite@^5.0: + version "5.0.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4" + integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + +vituum@^1.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vituum/-/vituum-1.1.0.tgz#26f76a294ab5d60fffbf7044f01608cc650cbd77" + integrity sha512-MinuWgpNvkkXz7RAyj6SqDKL4yIok1NM8WnodBQOP1wnDWHCbE6RSSmg+5dYW2V9uskDJJyVV3YS0z/0eDu2iA== + dependencies: + chokidar "^3.5" + fast-glob "^3.3" + lodash "^4.17" + minimatch "^9.0" + vite "^5.0" + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"