Skip to content

feat(icons): add ParentItem icon - #3454

Open
korichdaniel wants to merge 1 commit into
mondaycom:masterfrom
korichdaniel:feat/parent-item-icon
Open

feat(icons): add ParentItem icon#3454
korichdaniel wants to merge 1 commit into
mondaycom:masterfrom
korichdaniel:feat/parent-item-icon

Conversation

@korichdaniel

Copy link
Copy Markdown

What & why

Adds a ParentItem icon to @vibe/icons. We need a way to indicate an item's parent in the item hierarchy, which today has no icon — only the child side (Subitems) is covered.

Implementation

The glyph is intentionally derived from the existing Subitems.svg rather than drawn from scratch: the path is identical except that the inner counter of the top-left square is removed, so the parent square renders filled while the subitem square stays outlined.

This keeps the two icons pixel-aligned when displayed together — same 20x20 viewBox, same square positions, same stroke thickness and corner radii — and makes the filled/outlined contrast the only signal distinguishing them.

Changes

  • src/svg/ParentItem.svg - new icon, using fill="currentColor" per package convention
  • src/iconsMetaData.ts - metadata entry placed next to Subitems
  • src/react/ParentItem.tsx, src/react/index.ts - generated by yarn build

Testing

  • yarn lint passes, including the validate-meta and validate-icons-colors checks
  • yarn build generates the React component, lazy loader, and SVG index exports
  • Rendered the SVG and visually compared it against Subitems at multiple sizes

Made with Cursor

Add a ParentItem icon for indicating an item's parent in the item
hierarchy, complementing the existing Subitems icon. The glyph reuses
the Subitems geometry with the parent square filled, so the two icons
align when shown together.

Co-authored-by: Cursor <cursoragent@cursor.com>
@korichdaniel
korichdaniel requested a review from a team as a code owner July 28, 2026 14:45
@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Add ParentItem hierarchy icon to @vibe/icons

✨ Enhancement 🕐 Less than 10 minutes

Grey Divider

AI Description

• Adds a ParentItem glyph distinguishing parent nodes through a filled parent square.
• Registers searchable hierarchy metadata beside the complementary Subitems icon.
• Exports the generated React icon from the package barrel.
Diagram

graph TD
  S["Parent Glyph"] --> C["React Component"] --> B["React Barrel"] --> P["Package Consumers"]
  S -->|registered as| M["Icon Metadata"] --> D["Catalog Discovery"]
Loading
High-Level Assessment

The current approach is appropriate: deriving ParentItem from Subitems preserves pixel alignment and uses fill contrast as the sole hierarchy signal. An independently drawn glyph was considered but would introduce unnecessary visual drift and maintenance overhead.

Files changed (3) +24 / -0

Enhancement (3) +24 / -0
iconsMetaData.tsRegister ParentItem icon metadata +7/-0

Register ParentItem icon metadata

• Adds ParentItem beside Subitems with hierarchy-oriented description and search tags, making the icon discoverable through package metadata.

packages/icons/src/iconsMetaData.ts

ParentItem.tsxAdd generated ParentItem React component +16/-0

Add generated ParentItem React component

• Introduces a typed, currentColor-aware React SVG component with configurable sizing. Its path fills the parent square while retaining the outlined child square.

packages/icons/src/react/ParentItem.tsx

index.tsExport ParentItem from the React barrel +1/-0

Export ParentItem from the React barrel

• Adds ParentItem to the package's public React icon exports for direct consumer imports.

packages/icons/src/react/index.ts

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.

1 participant