diff --git a/assets/scss/theme.scss b/assets/scss/theme.scss
index 5f0a14f..ae0a9d4 100644
--- a/assets/scss/theme.scss
+++ b/assets/scss/theme.scss
@@ -4,6 +4,8 @@
$border-radius: 0.15rem;
$card-height: 100%;
$primary: #32006e;
+$primary-hover: #421178;
+$primary-soft: #f1eeff;
$secondary: #5f647a;
$btn-font-weight: 600;
@@ -22,8 +24,36 @@ $tdei-cyan: #59c3c8;
$purple-background-light: #f4f0fb;
$purple-background-dark: #ddd2ee;
$purple-background-medium: #ebe4f6;
-$text-navy: #1A1E3D;
-$text-secondary: #5A607B;
+$text-navy: #1a1e3d;
+$text-secondary: #5a607b;
+$text-disabled: #8a91ab;
+$surface-card: #ffffff;
+$surface-subtle: #fbfcff;
+$border-card: #e5e7f0;
+$border-subtle: #dfe2ef;
+$progress-border: #d9ddf0;
+$progress-track: #ebedf6;
+$progress-fill: #4e5fe0;
+$link-text: #5578d9;
+$hero-gradient-start: #eeeaff;
+$hero-gradient-end: #f9f4ff;
+$header-shadow: 0 0.1875rem 0.375rem rgba($black, 0.16);
+$status-warning-text: #8a6300;
+$status-warning-surface: #fffaf0;
+$status-warning-border: #ead9ad;
+$task-ready-mapping: #fde9aa;
+$task-ready-validation: #a8d8f8;
+$task-remap: #f8be90;
+$task-completed: #aae8cd;
+$status-completed-surface: #f6fcfa;
+$status-completed-border: #d4e4dd;
+$status-completed-text: #067a57;
+$status-in-progress-surface: #f4fbff;
+$status-in-progress-border: #c8e0ee;
+$status-in-progress-text: #1a74a8;
+$status-draft-surface: #fffcf5;
+$status-draft-border: #e9e1d3;
+$status-draft-text: #8f6c1a;
$dropdown-active-bg: #e2f0f8;
$danger-red: #c7393a;
diff --git a/components/AppPage.vue b/components/AppPage.vue
index 6aa4a25..5c93e6c 100644
--- a/components/AppPage.vue
+++ b/components/AppPage.vue
@@ -5,15 +5,20 @@
+
+
diff --git a/components/project-wizard/RichTextEditor.vue b/components/project-wizard/RichTextEditor.vue
index 8e3b9eb..ddaee89 100644
--- a/components/project-wizard/RichTextEditor.vue
+++ b/components/project-wizard/RichTextEditor.vue
@@ -9,7 +9,7 @@
v-for="tool in tools"
:key="tool.id"
class="btn btn-link project-wizard-rich-text-editor-tool"
- :class="{ 'project-wizard-rich-text-editor-tool-active': isToolActive(tool.id) }"
+ :class="{ 'project-wizard-rich-text-editor-tool-active': tool.active }"
type="button"
:aria-label="tool.label"
@mousedown.prevent
@@ -31,9 +31,9 @@
@@ -136,7 +148,7 @@ function formatRole(role: WorkspaceRole) {
.project-wizard-review-group {
display: grid;
- gap: 25px;
+ gap: 1.5625rem;
}
.project-wizard-review-item {
@@ -159,7 +171,7 @@ function formatRole(role: WorkspaceRole) {
.project-wizard-review-item p {
margin: 0;
text-align: left;
- font-family: Lato, var(--primary-font-family), sans-serif;
+ font-family: var(--primary-font-family);
font-size: 1rem;
font-style: normal;
font-weight: 400;
@@ -174,13 +186,13 @@ function formatRole(role: WorkspaceRole) {
align-items: center;
gap: 0.35rem;
text-align: left;
- font-family: Lato, var(--primary-font-family), sans-serif;
+ font-family: var(--primary-font-family);
font-size: 1.125rem;
font-style: normal;
font-weight: 400;
line-height: 1.625rem;
letter-spacing: 0;
- color: #5a607b;
+ color: $text-secondary;
opacity: 1;
}
@@ -198,8 +210,8 @@ function formatRole(role: WorkspaceRole) {
align-items: center;
flex-wrap: wrap;
gap: 0.55rem;
- color: #5a607b;
- font-family: Lato, var(--primary-font-family), sans-serif;
+ color: $text-secondary;
+ font-family: var(--primary-font-family);
font-size: 1.125rem;
font-style: normal;
font-weight: 400;
diff --git a/components/project-wizard/steps/SettingsStep.vue b/components/project-wizard/steps/SettingsStep.vue
index 2fd21ab..00f976c 100644
--- a/components/project-wizard/steps/SettingsStep.vue
+++ b/components/project-wizard/steps/SettingsStep.vue
@@ -9,7 +9,7 @@
Lock Timeout
-
Project will be locked for specific hours
+
Unlock tasks after the specified number of hours pass
@@ -25,10 +25,10 @@
>
hours
@@ -81,8 +81,7 @@
@@ -107,7 +106,7 @@ interface Props {
workspaceUsersLoading: boolean;
}
-defineProps
();
+const props = defineProps();
const emit = defineEmits<{
'add:validator': [user: ProjectWizardWorkspaceUser];
'remove:validator': [userId: string];
@@ -119,7 +118,18 @@ const emit = defineEmits<{
}>();
const lockTimeoutId = 'project-wizard-settings-lock-timeout';
-const hourOptions = Array.from({ length: 24 }, (_, index) => index + 1);
+const hourOptions = Array.from({ length: 24 }, (_, index) => {
+ const value = index + 1;
+
+ return {
+ label: String(value).padStart(2, '0'),
+ value
+ };
+});
+const instructionsModel = computed({
+ get: () => props.instructions,
+ set: value => emit('update:instructions', value)
+});
function onLockTimeoutChange(event: Event) {
emit('update:lock-timeout-hours', Number((event.target as HTMLSelectElement).value));
@@ -135,7 +145,7 @@ function onReviewRequiredChange(event: Event) {
.project-wizard-step-settings {
display: grid;
- gap: 30px;
+ gap: 1.875rem;
}
.project-wizard-step-header,
diff --git a/components/task-editor/MappingPanel.vue b/components/task-editor/MappingPanel.vue
new file mode 100644
index 0000000..4c46323
--- /dev/null
+++ b/components/task-editor/MappingPanel.vue
@@ -0,0 +1,36 @@
+
+
+ Ready to finish mapping?
+
+ Push your edits in Rapid before marking this task as done. You can skip the task to
+ release the lock without submitting it.
+
+
+
+
+
diff --git a/components/task-editor/ReviewPanel.vue b/components/task-editor/ReviewPanel.vue
new file mode 100644
index 0000000..7a8ee27
--- /dev/null
+++ b/components/task-editor/ReviewPanel.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+ A reason and notes are required to request a remap.
+
+
+
+
+
+
+
+
diff --git a/components/task-editor/Sidebar.vue b/components/task-editor/Sidebar.vue
new file mode 100644
index 0000000..34dca05
--- /dev/null
+++ b/components/task-editor/Sidebar.vue
@@ -0,0 +1,608 @@
+
+
+
+
+
+
+
diff --git a/components/workspace-project-details/AddContributorDialog.vue b/components/workspace-project-details/AddContributorDialog.vue
index f0f95ec..0825949 100644
--- a/components/workspace-project-details/AddContributorDialog.vue
+++ b/components/workspace-project-details/AddContributorDialog.vue
@@ -45,7 +45,7 @@
No users match your search.
@@ -58,15 +58,15 @@
aria-label="Available users"
>