diff --git a/packages/ui/client/src/components/CompletionRing.vue b/packages/ui/client/src/components/CompletionRing.vue new file mode 100644 index 0000000..7535ade --- /dev/null +++ b/packages/ui/client/src/components/CompletionRing.vue @@ -0,0 +1,65 @@ + + + diff --git a/packages/ui/client/src/components/HeadlineScore.vue b/packages/ui/client/src/components/HeadlineScore.vue index 36c249e..aa7e9d5 100644 --- a/packages/ui/client/src/components/HeadlineScore.vue +++ b/packages/ui/client/src/components/HeadlineScore.vue @@ -31,6 +31,8 @@ const props = defineProps<{ align?: 'end' | 'start' /** `score.defined` of the headline's scores (`headlineDefinitions`, `scoreDefinitions`). */ definitions: readonly ScoreDefinition[] + /** Leaves the completion rate out, for a place that shows it another way (the progress ring of a matrix card). */ + hideCompletion?: boolean /** * Called when the completion rate below 100 % is clicked; the page shows the cases without a result. Without it, the * rate is plain text (inside a card that is a link itself, for example). @@ -62,7 +64,7 @@ const column = computed(() => { }) const unscoredCount = computed(() => Object.values(view.value?.summary.unscored ?? {}).reduce((sum, count) => sum + count, 0)) const incomplete = computed(() => view.value != null && view.value.completion.mean != null && view.value.completion.mean < 1) -const showCompletion = computed(() => view.value != null && view.value.kind !== 'per-task' && (props.size !== 'sm' || incomplete.value)) +const showCompletion = computed(() => view.value != null && view.value.kind !== 'per-task' && !props.hideCompletion && (props.size !== 'sm' || incomplete.value)) const valueClass = computed(() => ({ lg: 'text-2xl', md: 'text-xl', sm: 'text-sm' })[props.size ?? 'md']) diff --git a/packages/ui/client/src/components/MarginBar.vue b/packages/ui/client/src/components/MarginBar.vue new file mode 100644 index 0000000..9c5c444 --- /dev/null +++ b/packages/ui/client/src/components/MarginBar.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/ui/client/src/components/MatrixCellCard.vue b/packages/ui/client/src/components/MatrixCellCard.vue new file mode 100644 index 0000000..283c61b --- /dev/null +++ b/packages/ui/client/src/components/MatrixCellCard.vue @@ -0,0 +1,170 @@ + + + diff --git a/packages/ui/client/src/components/MatrixCellDetail.vue b/packages/ui/client/src/components/MatrixCellDetail.vue new file mode 100644 index 0000000..94d3259 --- /dev/null +++ b/packages/ui/client/src/components/MatrixCellDetail.vue @@ -0,0 +1,102 @@ + + + diff --git a/packages/ui/client/src/components/MatrixHeatCell.vue b/packages/ui/client/src/components/MatrixHeatCell.vue new file mode 100644 index 0000000..cbe1d19 --- /dev/null +++ b/packages/ui/client/src/components/MatrixHeatCell.vue @@ -0,0 +1,90 @@ + + + diff --git a/packages/ui/client/src/components/MatrixTable.vue b/packages/ui/client/src/components/MatrixTable.vue new file mode 100644 index 0000000..ecd962b --- /dev/null +++ b/packages/ui/client/src/components/MatrixTable.vue @@ -0,0 +1,265 @@ + + + diff --git a/packages/ui/client/src/components/MatrixView.vue b/packages/ui/client/src/components/MatrixView.vue index 8f94227..a90a62e 100644 --- a/packages/ui/client/src/components/MatrixView.vue +++ b/packages/ui/client/src/components/MatrixView.vue @@ -1,29 +1,47 @@