From 8daba8eeb7daabacc28ba5d6ed7ef6b3b9cdae2e Mon Sep 17 00:00:00 2001 From: Donghao Ren Date: Wed, 3 Sep 2025 09:28:59 -0700 Subject: [PATCH] feat: add options to customize tooltip --- packages/backend/start_image.sh | 2 +- .../src/lib/views/cells/CellContent.svelte | 27 +++- .../cells/cell-contents/ImageContent.svelte | 97 +++++++++++++++ packages/viewer/src/lib/CategoryLegend.svelte | 2 +- .../viewer/src/lib/ColumnStylePicker.svelte | 42 +++++++ .../src/lib/ColumnStylePickerRow.svelte | 69 +++++++++++ packages/viewer/src/lib/EmbeddingAtlas.svelte | 115 ++++++++++-------- packages/viewer/src/lib/EmbeddingView.svelte | 11 +- .../viewer/src/lib/SearchResultList.svelte | 24 ++-- .../viewer/src/lib/TextStylePicker.svelte | 53 -------- packages/viewer/src/lib/Tooltip.svelte | 38 ++---- packages/viewer/src/lib/TooltipContent.svelte | 50 ++++++++ packages/viewer/src/lib/TooltipText.svelte | 33 ----- packages/viewer/src/lib/custom_components.ts | 2 - .../src/lib/renderers/ContentRenderer.svelte | 41 +++++++ packages/viewer/src/lib/renderers/image.ts | 6 +- packages/viewer/src/lib/renderers/index.ts | 61 +++++++--- packages/viewer/src/lib/renderers/json.ts | 6 +- packages/viewer/src/lib/search.ts | 43 +++++-- .../src/lib/{tableTheme.ts => table_theme.ts} | 0 packages/viewer/src/lib/widgets/Slider.svelte | 4 +- 21 files changed, 504 insertions(+), 222 deletions(-) create mode 100644 packages/table/src/lib/views/cells/cell-contents/ImageContent.svelte create mode 100644 packages/viewer/src/lib/ColumnStylePicker.svelte create mode 100644 packages/viewer/src/lib/ColumnStylePickerRow.svelte delete mode 100644 packages/viewer/src/lib/TextStylePicker.svelte create mode 100644 packages/viewer/src/lib/TooltipContent.svelte delete mode 100644 packages/viewer/src/lib/TooltipText.svelte create mode 100644 packages/viewer/src/lib/renderers/ContentRenderer.svelte rename packages/viewer/src/lib/{tableTheme.ts => table_theme.ts} (100%) diff --git a/packages/backend/start_image.sh b/packages/backend/start_image.sh index 1f1c657..bf7c868 100755 --- a/packages/backend/start_image.sh +++ b/packages/backend/start_image.sh @@ -1,3 +1,3 @@ #!/bin/bash -uv run embedding-atlas ylecun/mnist --image image --split train --static ../viewer/dist +uv run embedding-atlas ylecun/mnist --image image --split train --static ../viewer/dist "$@" diff --git a/packages/table/src/lib/views/cells/CellContent.svelte b/packages/table/src/lib/views/cells/CellContent.svelte index 151b3d7..a472251 100644 --- a/packages/table/src/lib/views/cells/CellContent.svelte +++ b/packages/table/src/lib/views/cells/CellContent.svelte @@ -2,6 +2,9 @@
{:else if type === "string"} - {#if content && content.startsWith("http")} + {#if content && isLink(content)} {:else} @@ -56,6 +75,8 @@ {:else} {/if} + {:else if isImage(content)} + {:else} {/if} diff --git a/packages/table/src/lib/views/cells/cell-contents/ImageContent.svelte b/packages/table/src/lib/views/cells/cell-contents/ImageContent.svelte new file mode 100644 index 0000000..74a8a6e --- /dev/null +++ b/packages/table/src/lib/views/cells/cell-contents/ImageContent.svelte @@ -0,0 +1,97 @@ + + + + { + if (element) { + height = element.scrollHeight; + } + }} + src={imageToDataUrl(image)} + alt="" +/> diff --git a/packages/viewer/src/lib/CategoryLegend.svelte b/packages/viewer/src/lib/CategoryLegend.svelte index a9de542..b1c9ffb 100644 --- a/packages/viewer/src/lib/CategoryLegend.svelte +++ b/packages/viewer/src/lib/CategoryLegend.svelte @@ -95,7 +95,7 @@ }); -
+
{#each items as item} diff --git a/packages/viewer/src/lib/ColumnStylePicker.svelte b/packages/viewer/src/lib/ColumnStylePicker.svelte new file mode 100644 index 0000000..76d8dfa --- /dev/null +++ b/packages/viewer/src/lib/ColumnStylePicker.svelte @@ -0,0 +1,42 @@ + + + +
+
+ + + + + + + + + {#each columns as column} + { + let newStyles = { ...styles }; + newStyles[column.name] = s; + onStylesChange(newStyles); + }} + /> + {/each} + +
ColumnFormatStyle
+
diff --git a/packages/viewer/src/lib/ColumnStylePickerRow.svelte b/packages/viewer/src/lib/ColumnStylePickerRow.svelte new file mode 100644 index 0000000..89b52c2 --- /dev/null +++ b/packages/viewer/src/lib/ColumnStylePickerRow.svelte @@ -0,0 +1,69 @@ + + + + + +
+ {column.name} +
+ + +
+ { + change({ display: v }); + }} + options={[ + { value: "full", label: "Full" }, + { value: "badge", label: "Badge" }, + { value: "hidden", label: "Hidden" }, + ]} + /> +
+ + diff --git a/packages/viewer/src/lib/EmbeddingAtlas.svelte b/packages/viewer/src/lib/EmbeddingAtlas.svelte index a9c5673..1226270 100644 --- a/packages/viewer/src/lib/EmbeddingAtlas.svelte +++ b/packages/viewer/src/lib/EmbeddingAtlas.svelte @@ -1,21 +1,22 @@ - -
- - - {#each columns as column} - - - - - {/each} - -
-
{column.name}
-
- -
-
diff --git a/packages/viewer/src/lib/Tooltip.svelte b/packages/viewer/src/lib/Tooltip.svelte index 5cb0dc7..b616153 100644 --- a/packages/viewer/src/lib/Tooltip.svelte +++ b/packages/viewer/src/lib/Tooltip.svelte @@ -2,51 +2,29 @@
-
- -
-
- {#if tooltip.fields != null} - {#each Object.keys(tooltip.fields) as field} - {@const text = tooltip.fields[field]?.toString() ?? "(null)"} -
-
{field}
-
- {#if isLink(text)} - {text} - {:else} - {text} - {/if} -
-
- {/each} - {/if} -
+ {#if onNearestNeighborSearch}