Skip to content

Components

Started: 2025-01-06 | Status: Phase 2 in progress

Problem

webseriously has 40+ Svelte components built organically over time. Many have tangled concerns, prop soup, and inconsistent patterns. Need to identify which are worth salvaging vs. rebuilding from scratch.

Goal

  • [ ] Catalog existing components
  • [ ] Panel design and implementation, all four components, one component at a time

Later, we can select candidates for di, then architect and implement versions according to industry best practices for svelte components using typescript.

Tasks

  • [ ] implement the panel using industry best practices for svelte components using typescript
  • [ ] work with me to mold it as needed
  • [ ] I will then choose the next component

Webseriously Architecture

The code should be treated as rotten. The concepts, capabilities, purpose should be treated as well-tested and worth recreating from scratch.

Layout/Structure

ComponentPurpose
Panel.svelteMain container — orchestrates everything. Routes between normal view, BuildNotes, Import, Preview. Houses Primary_Controls, Details, Secondary_Controls, and the graph area.
Box.svelteBordered container with Separators on all four sides. Uses slots for content.
Separator.svelteVisual dividers with optional fillets, titles, and thin divider lines. Horizontal or vertical.
Fillets.svelteDecorative curved corners for separators.

Graph Views

ComponentPurpose
Graph.svelteSwitches between radial and tree views. Handles layout triggers, rubberband selection, and bottom controls.
Radial_Graph.svelteRadial layout implementation.
Tree_Graph.svelteTree layout implementation.

Controls

ComponentPurpose
Primary_Controls.svelteTop toolbar area.
Secondary_Controls.svelteAdditional toolbar (tree controls when in tree mode).
Breadcrumbs.svelteNavigation path display.
Button.svelteCore button — hover, autorepeat, long-click, double-click via S_Element state. Complex.
Segmented.svelteSegmented control (iOS-style toggle buttons).
Slider.svelteSlider control.
Steppers.svelteIncrement/decrement controls.

Details Panel

ComponentPurpose
Details.svelteSide panel showing properties/actions for selected item.
Banner_Hideable.svelteCollapsible section with show/hide toggle.
D_Actions.svelteAction buttons for selected item.
D_Data.svelteData display section.
D_Header.svelteHeader info for selection.
D_Preferences.svelteUser preferences UI.
D_Selection.svelteSelection info.
D_Tags.svelteTag management.
D_Traits.svelteTrait display.

Widgets (Graph Nodes)

ComponentPurpose
Widget.svelteMain node component for graph items.
Widget_Drag.svelteDrag handling for widgets.
Widget_Reveal.svelteExpand/collapse animation.
Widget_Title.svelteTitle display/editing.

Mouse/Interaction

ComponentPurpose
Rubberband.svelteSelection rectangle.
Clickable_Label.svelteText that responds to clicks.
Buttons_Row.svelteHorizontal button arrangement.
Buttons_Table.svelteGrid button arrangement.
Close_Button.svelteX button for closing.
Cluster_Pager.sveltePaging through clustered items.
Color.svelteColor picker/display.
Glow_Button.svelteButton with glow effect.
Glows_Banner.svelteBanner with glow buttons.
Next_Previous.svelteNavigation arrows.
Triangle_Button.svelteDirectional triangle button.

Utility/Drawing

ComponentPurpose
Spinner.svelteLoading indicator with dashes.
Circle.svelteCircle rendering.
Transparent_Circle.svelteSemi-transparent circle.
Portal.svelteRenders children outside normal DOM hierarchy.
SVG_D3.svelteD3-based SVG rendering.
SVG_Gradient.svelteGradient definitions.
Printable.sveltePrint-friendly output.
ComponentPurpose
Search.svelteSearch input.
Search_Results.svelteResults display.

Phase 2: Selection

  • [ ] Choose which components to focus on

(waiting for your selection)


Phase 3: Architecture

  • [ ] Describe in abstract terms: what it does, why, and conceptually how
  • [ ] Compose formal architecture and implementation plan documents

Phase 4: Implementation

  • [ ] Implement one component

Phase 5: Assessment

  • [ ] Assess strategy, update docs

Artifacts

(add links when complete)