From 2856317a6346a3ffa07f7e080eedcc069a2be2cc Mon Sep 17 00:00:00 2001 From: Leo Generali Date: Thu, 4 Sep 2025 15:20:05 -0400 Subject: [PATCH 01/11] Add leafygreen copyable to compass components --- package-lock.json | 42 +++++++++++++++++++ packages/compass-components/package.json | 1 + .../src/components/leafygreen.tsx | 2 + 3 files changed, 45 insertions(+) diff --git a/package-lock.json b/package-lock.json index 1a10f197185..dc29161bea3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6732,6 +6732,28 @@ "@leafygreen-ui/leafygreen-provider": "^4.0.2" } }, + "node_modules/@leafygreen-ui/copyable": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/copyable/-/copyable-10.0.14.tgz", + "integrity": "sha512-O4dstObiN04Zjrd4Z10ratWZAi7pnb6gpML/HQnkAxR+0OwzKOvrR6XOQ2/3IzlLfIiY1TUHIbjavpHy/ppqVw==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/button": "^23.1.6", + "@leafygreen-ui/emotion": "^4.1.1", + "@leafygreen-ui/hooks": "^8.4.1", + "@leafygreen-ui/icon": "^13.4.0", + "@leafygreen-ui/lib": "^14.2.0", + "@leafygreen-ui/palette": "^4.1.4", + "@leafygreen-ui/tokens": "^2.12.2", + "@leafygreen-ui/tooltip": "^13.0.13", + "@leafygreen-ui/typography": "^20.1.9", + "clipboard": "^2.0.6", + "polished": "^4.2.2" + }, + "peerDependencies": { + "@leafygreen-ui/leafygreen-provider": "^4.0.7" + } + }, "node_modules/@leafygreen-ui/descendants": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@leafygreen-ui/descendants/-/descendants-2.1.5.tgz", @@ -47813,6 +47835,7 @@ "@leafygreen-ui/code": "^16.0.2", "@leafygreen-ui/combobox": "^11.0.2", "@leafygreen-ui/confirmation-modal": "^6.0.2", + "@leafygreen-ui/copyable": "^10.0.14", "@leafygreen-ui/descendants": "^2.1.0", "@leafygreen-ui/emotion": "^4.0.9", "@leafygreen-ui/guide-cue": "^7.0.2", @@ -58479,6 +58502,24 @@ "@leafygreen-ui/typography": "^20.0.2" } }, + "@leafygreen-ui/copyable": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/copyable/-/copyable-10.0.14.tgz", + "integrity": "sha512-O4dstObiN04Zjrd4Z10ratWZAi7pnb6gpML/HQnkAxR+0OwzKOvrR6XOQ2/3IzlLfIiY1TUHIbjavpHy/ppqVw==", + "requires": { + "@leafygreen-ui/button": "^22.0.2", + "@leafygreen-ui/emotion": "^4.0.9", + "@leafygreen-ui/hooks": "^8.3.4", + "@leafygreen-ui/icon": "^13.1.2", + "@leafygreen-ui/lib": "^15.2.0", + "@leafygreen-ui/palette": "^4.1.3", + "@leafygreen-ui/tokens": "^2.11.3", + "@leafygreen-ui/tooltip": "^13.0.13", + "@leafygreen-ui/typography": "^20.0.2", + "clipboard": "^2.0.6", + "polished": "^4.2.2" + } + }, "@leafygreen-ui/descendants": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@leafygreen-ui/descendants/-/descendants-2.1.5.tgz", @@ -61267,6 +61308,7 @@ "@leafygreen-ui/code": "^16.0.2", "@leafygreen-ui/combobox": "^11.0.2", "@leafygreen-ui/confirmation-modal": "^6.0.2", + "@leafygreen-ui/copyable": "^10.0.14", "@leafygreen-ui/descendants": "^2.1.0", "@leafygreen-ui/emotion": "^4.0.9", "@leafygreen-ui/guide-cue": "^7.0.2", diff --git a/packages/compass-components/package.json b/packages/compass-components/package.json index 136efecf118..2ef150acde9 100644 --- a/packages/compass-components/package.json +++ b/packages/compass-components/package.json @@ -45,6 +45,7 @@ "@leafygreen-ui/code": "^16.0.2", "@leafygreen-ui/combobox": "^11.0.2", "@leafygreen-ui/confirmation-modal": "^6.0.2", + "@leafygreen-ui/copyable": "^10.0.14", "@leafygreen-ui/descendants": "^2.1.0", "@leafygreen-ui/emotion": "^4.0.9", "@leafygreen-ui/guide-cue": "^7.0.2", diff --git a/packages/compass-components/src/components/leafygreen.tsx b/packages/compass-components/src/components/leafygreen.tsx index c15ab5e0f08..0a00f00c7d2 100644 --- a/packages/compass-components/src/components/leafygreen.tsx +++ b/packages/compass-components/src/components/leafygreen.tsx @@ -3,6 +3,7 @@ import React, { useState } from 'react'; // This file exports `@leafygreen-ui` components and wraps some of them. // 1. Import the components we use from leafygreen. +import { default as Copyable } from '@leafygreen-ui/copyable'; import { default as Badge } from '@leafygreen-ui/badge'; import { default as Banner } from '@leafygreen-ui/banner'; import Checkbox from '@leafygreen-ui/checkbox'; @@ -146,6 +147,7 @@ export { Chip, Code, ConfirmationModal, + Copyable, ExpandedContent, HeaderCell, HeaderRow, From e60701a19958422d0a3a41b5e31b8e924528eebb Mon Sep 17 00:00:00 2001 From: Leo Generali Date: Thu, 4 Sep 2025 15:21:01 -0400 Subject: [PATCH 02/11] Create MVP of script screen --- .../mock-data-generator-modal.tsx | 25 +-- .../script-screen.tsx | 147 ++++++++++++++++++ 2 files changed, 160 insertions(+), 12 deletions(-) create mode 100644 packages/compass-collection/src/components/mock-data-generator-modal/script-screen.tsx diff --git a/packages/compass-collection/src/components/mock-data-generator-modal/mock-data-generator-modal.tsx b/packages/compass-collection/src/components/mock-data-generator-modal/mock-data-generator-modal.tsx index d09861a6b42..58fd25e020d 100644 --- a/packages/compass-collection/src/components/mock-data-generator-modal/mock-data-generator-modal.tsx +++ b/packages/compass-collection/src/components/mock-data-generator-modal/mock-data-generator-modal.tsx @@ -23,6 +23,15 @@ import { } from '../../modules/collection-tab'; import { default as SchemaConfirmationScreen } from './raw-schema-confirmation'; import FakerSchemaEditor from './faker-schema-editor'; +import ScriptScreen from './script-screen'; + +const STEP_TO_COMPONENT: Record = { + [MockDataGeneratorStep.SCHEMA_CONFIRMATION]: , + [MockDataGeneratorStep.SCHEMA_EDITOR]: , + [MockDataGeneratorStep.DOCUMENT_COUNT]: <>, // TODO: Implement as part of CLOUDP-XXXXXX + [MockDataGeneratorStep.PREVIEW_DATA]: <>, // TODO: Implement as part of CLOUDP-XXXXXX + [MockDataGeneratorStep.GENERATE_DATA]: , +}; const footerStyles = css` flex-direction: row; @@ -62,18 +71,9 @@ const MockDataGeneratorModal = ({ } }; - let stepContent: React.ReactNode; - - if (currentStep === MockDataGeneratorStep.SCHEMA_CONFIRMATION) { - stepContent = ; - } - - if (currentStep === MockDataGeneratorStep.SCHEMA_EDITOR) { - stepContent = ; - } - return ( { if (!open) { @@ -84,8 +84,9 @@ const MockDataGeneratorModal = ({ > - {stepContent} -
+
+ {STEP_TO_COMPONENT[currentStep]} +