Skip to content

feat: SliderGallery component for interactive content switching#255

Merged
ivanmkc merged 2 commits into
masterfrom
feat/slider-gallery
Jul 10, 2026
Merged

feat: SliderGallery component for interactive content switching#255
ivanmkc merged 2 commits into
masterfrom
feat/slider-gallery

Conversation

@ivanmkc

@ivanmkc ivanmkc commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds SliderGallery to the component registry
  • Interactive Mantine Slider that shows one child at a time based on slider position
  • Each child has a value prop; nearest match is rendered

Usage

{
  "type": "SliderGallery",
  "props": {"min": 10, "max": 500, "step": 10, "defaultValue": 60, "label": "K = {value}"},
  "children": [
    {"type": "Image", "props": {"src": "...", "value": 10}},
    {"type": "Image", "props": {"src": "...", "value": 60}},
    {"type": "Image", "props": {"src": "...", "value": 100}}
  ]
}

Test plan

  • npm run build succeeds
  • 424/424 tests pass
  • Visual test with a pushed board (pending deploy)

Adds a SliderGallery component to the viewer's component registry.
It renders a Mantine Slider that shows/hides child nodes based on
the slider value — each child has a `value` prop, and only the
child matching the current slider position is rendered.

Props: min, max, step, defaultValue, label (format string with
{value} placeholder), marks (tick labels).

Children: array of component nodes, each with a `value` prop.
The nearest-value child is displayed when the slider moves.

Use case: boards that want to show different visualizations at
different parameter values (e.g., tile clustering at K=10 vs K=500).
@ivanmkc ivanmkc force-pushed the feat/slider-gallery branch from 562e6c5 to 7984156 Compare July 10, 2026 10:26
The component resolver pre-resolves children into React elements before
mounting SliderGallery. Calling resolve(active) on an already-resolved
element hits the "missing type" error branch (React element.type is a
function, not a string). Use isValidElement() to extract the value prop
and render the matched child directly.
@ivanmkc ivanmkc marked this pull request as ready for review July 10, 2026 11:29
@ivanmkc ivanmkc merged commit 167b141 into master Jul 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants