Skip to content

[ENG-46487] feat(webkit): add Flow (data)#682

Open
HerbertJulio wants to merge 2 commits into
devfrom
feat/ENG-46487-flow
Open

[ENG-46487] feat(webkit): add Flow (data)#682
HerbertJulio wants to merge 2 commits into
devfrom
feat/ENG-46487-flow

Conversation

@HerbertJulio

Copy link
Copy Markdown
Contributor

Summary

Adds Flow — a directed flow-diagram component in the data category. It renders a horizontal sequence of steps joined by decorative connectors, with optional parallel branches and custom connector-attachment points. Use it for pipelines, workflows, and step-by-step processes.

Compound, slot-driven API (import only Flow):

  • Flow.Node — a step. unstyled lets the slot content define the node entirely (a start dot, a taller node, a multi-row card); otherwise it renders the default box.
  • Flow.Parallel — its direct Flow.Node children become parallel branches; the root draws the fan-out/fan-in junctions. A leading/trailing parallel fans only in/out (no dangling stubs).
  • Flow.Anchor — marks where connectors attach inside a custom node (type="end" = incoming endpoint, type="start" = outgoing origin).
  • align on Flow controls vertical alignment.

Connector geometry is centralized in the root (one SVG, DOM-measured) — no external positioning/animation libraries, per .claude/rules/dependencies.md.

Notes

  • Public surface is a single ./flow export (index.ts) that attaches the sub-components for dot-notation, mirroring the select pattern; the parts are also named exports of @aziontech/webkit/flow.
  • No new dependencies. No breaking changes (the component is new / unreleased).
  • Verified: webkit:lint, webkit:type-check, build:dts, and storybook:build all pass.
  • Subcomponent autodocs tables are populated via explicit docgen info, because the repo's vue3-vite docgen does not run on the cross-package webkit SFCs (a repo-wide fix is available as a separate PR if wanted).
  • Relates to ENG-46487.

…des and anchors

Reshape the (unreleased) Flow component to a compound, slot-driven API:

- Public API is dot-notation now: import Flow and use Flow.Node /
  Flow.Parallel / Flow.Anchor. index.ts attaches them and is the single
  ./flow export (mirrors the select pattern).
- Nodes are direct children of Flow; remove the FlowList wrapper.
- flow-node gains an unstyled prop so the slot content defines the node
  (start dot, taller node, multi-row card); the default box is gated
  behind data-styled.
- flow-anchor wraps real content and marks where connectors attach
  (type end = incoming endpoint, type start = outgoing origin).
- Connector geometry is centralized in the root: one SVG draws every
  connector, so a leading/trailing flow-parallel fans in/out with no
  dangling stubs.
- Stories and spec updated to the new API; subcomponent autodocs tables
  populated via explicit docgen info.
@HerbertJulio HerbertJulio requested a review from a team as a code owner June 26, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant