Skip to content

feat(apollo-wind): comprehensive component stories update and cleanup#219

Open
1980computer wants to merge 8 commits intomainfrom
feature/improve-templates-and-components
Open

feat(apollo-wind): comprehensive component stories update and cleanup#219
1980computer wants to merge 8 commits intomainfrom
feature/improve-templates-and-components

Conversation

@1980computer
Copy link
Collaborator

Summary

  • Expanded Storybook documentation for 20+ components with rich, structured stories following a consistent format (Basic, Variants, Examples) with practical real-world usage patterns
  • Reorganized component categories in the Storybook sidebar for better discoverability (Feedback, Navigation, Overlays, UiPath-review folders)
  • Removed unused components (Menubar, Navigation Menu, old Drawer, Table stories, Pattern experiments) and cleaned up all associated exports

Details

Components Updated

Alert, Alert Dialog, Accordion, Badge, Breadcrumb, Combobox, Command, Context Menu, Data Table, Dialog, Dropdown, Empty State, Hover Card, Pagination, Popover, Progress, Sheet (Drawer), Skeleton, Sonner (Toast), Spinner, Tabs, Tooltip

Components Removed

  • Menubar & Navigation Menu — not used anywhere, not needed for the design system
  • Drawer (Vaul) — consolidated into Drawer (Sheet)
  • Table stories — covered by the comprehensive Data Table component
  • Pattern Drawer/Modal experiments — removed from Experiments

Reorganization

  • Search, Calendar, Collapsible → UiPath-review folder for later evaluation
  • Alert, Spinner → Feedback category
  • Context Menu → Navigation category
  • Sonner → renamed to Toast (Sonner)
  • Dropdown Menu → renamed to Dropdown
  • Sheet → renamed to Drawer (Sheet)

Fixes

  • Added --color-destructive-foreground to future-theme.css (dark + light)
  • Fixed Context Menu forwardRef for right-click support
  • Enhanced EmptyState with code prop and children support for flexible actions

Test plan

  • Verify Storybook builds without errors
  • Check all updated component story pages render correctly
  • Confirm removed components (Menubar, Navigation Menu, Drawer) no longer appear in sidebar
  • Verify UiPath-review folder contains Search, Calendar, Collapsible
  • Test Data Table stories (Drag & Drop, Expandable Rows, Bulk Actions, Drawer, Modal Delete, Density)
  • Confirm destructive button text color fix in Alert stories

Made with Cursor

@github-actions
Copy link

github-actions bot commented Feb 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-canvas ❌ Failed: 2026-02-27T19:08:15.306Z Summary: /vercel/path0/.turbo/runs/3AGWGwHlCo6Yjg9fge3wJlsgfw4.json... N/A, Logs Feb 27, 2026, 11:08:47 AM
apollo-ui-react ❌ Failed: 2026-02-27T19:08:18.202Z Summary: /vercel/path0/.turbo/runs/3AGWHOY5kcyKNyALRVQmTnGpIBm.json... N/A, Logs Feb 27, 2026, 11:08:48 AM
apollo-vertex 🟢 Ready Preview, Logs Feb 27, 2026, 11:09:07 AM
apollo-wind 🟢 Ready Preview, Logs Feb 27, 2026, 11:08:58 AM

@github-actions
Copy link

github-actions bot commented Feb 12, 2026

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 7 package(s) with unknown licenses.
  • ⚠️ 3 packages with OpenSSF Scorecard issues.
See the Details below.

License Issues

packages/apollo-wind/package.json

PackageVersionLicenseIssue Type
@dnd-kit/core^6.3.1NullUnknown License
@dnd-kit/modifiers^9.0.0NullUnknown License
@dnd-kit/sortable^10.0.0NullUnknown License
@dnd-kit/utilities^3.2.2NullUnknown License
framer-motion^12.26.2NullUnknown License
react-live^4.1.8NullUnknown License

pnpm-lock.yaml

PackageVersionLicenseIssue Type
picoquery2.5.0NullUnknown License
Allowed Licenses: AFL-1.1, AFL-1.2, AFL-2.0, AFL-2.1, AMPAS, APAFML, Adobe-2006, Afmparse, ADSL, AMDPLPA, ANTLR-PD, Apache-1.0, Apache-1.1, Apache-2.0, AML, Artistic-1.0, Artistic-1.0-Perl, Artistic-1.0-cl8, Artistic-2.0, AAL, Bahyph, Barr, Beerware, BSL-1.0, Borceux, BSD-1-Clause, BSD-2-Clause, BSD-2-Clause-FreeBSD, BSD-2-Clause-NetBSD, BSD-3-Clause, BSD-3-Clause-Clear, BSD-3-Clause-No-Nuclear-License-2014, BSD-3-Clause-No-Nuclear-Warranty, BSD-4-Clause, BSD-Source-Code, BSD-3-Clause-Attribution, 0BSD, BSD-2-Clause-Patent, BSD-4-Clause-UC, bzip2-1.0.5, bzip2-1.0.6, CECILL-B, ClArtistic, MIT-CMU, CNRI-Jython, CNRI-Python, CNRI-Python-GPL-Compatible, Condor-1.1, CC0-1.0, Crossword, CrystalStacker, Cube, curl, diffmark, WTFPL, DOC, DSDP, ECL-1.0, ECL-2.0, eGenix, EFL-1.0, EFL-2.0, MIT-advertising, MIT-enna, Entessa, Fair, MIT-feh, FTL, Giftware, HPND, IBM-pibs, ICU, ImageMagick, IJG, Info-ZIP, Intel, ISC, JasPer-2.0, LPPL-1.3c, BSD-3-Clause-LBNL, Leptonica, Libpng, libtiff, Linux-OpenIB, LPL-1.02, LPL-1.0, MTLL, MS-PL, MirOS, MITNFA, MIT, MIT-0, mpich2, Multics, Mup, NASA-1.3, Naumen, NBPL-1.0, Net-SNMP, NetCDF, Newsletr, NLPL, NRL, NTP, OGTSL, OLDAP-2.2.2, OLDAP-1.1, OLDAP-1.2, OLDAP-1.3, OLDAP-1.4, OLDAP-2.0, OLDAP-2.0.1, OLDAP-2.1, OLDAP-2.2, OLDAP-2.2.1, OLDAP-2.3, OLDAP-2.4, OLDAP-2.5, OLDAP-2.6, OLDAP-2.7, OLDAP-2.8, OML, OpenSSL, PHP-3.0, PHP-3.01, Plexus, PostgreSQL, psutils, Python-2.0, Qhull, Rdisc, RSA-MD, Ruby, Saxpath, SWL, SGI-B-2.0, Spencer-86, Spencer-94, Spencer-99, SMLNJ, TCL, TCP-wrappers, TU-Berlin-1.0, TU-Berlin-2.0, Unlicense, Unicode-DFS-2015, Unicode-DFS-2016, UPL-1.0, NCSA, VSL-1.0, W3C-20150513, W3C-19980720, W3C, Wsuipa, Xnet, X11, Xerox, XFree86-1.1, xinetd, xpp, Zed, Zend-2.0, Zlib, zlib-acknowledgement, ZPL-1.1, ZPL-2.0, ZPL-2.1, BlueOak-1.0.0, BSD-2-Clause-Views, JSON

OpenSSF Scorecard

Scorecard details
PackageVersionScoreDetails
npm/@dnd-kit/core ^6.3.1 UnknownUnknown
npm/@dnd-kit/modifiers ^9.0.0 UnknownUnknown
npm/@dnd-kit/sortable ^10.0.0 UnknownUnknown
npm/@dnd-kit/utilities ^3.2.2 UnknownUnknown
npm/@storybook/addon-a11y ^10.2.0 UnknownUnknown
npm/@storybook/addon-mcp ^0.2.2 UnknownUnknown
npm/framer-motion ^12.26.2 UnknownUnknown
npm/react-live ^4.1.8 UnknownUnknown
npm/recharts 2.15.4 🟢 4.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 21 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 7Found 10/13 approved changesets -- score normalized to 7
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow⚠️ 0dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Security-Policy⚠️ 0security policy file not detected
Binary-Artifacts🟢 10no binaries found in the repo
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
SAST🟢 7SAST tool is not run on all commits -- score normalized to 7
npm/@dnd-kit/modifiers 9.0.0 🟢 3.8
Details
CheckScoreReason
Code-Review⚠️ 0Found 1/14 approved changesets -- score normalized to 0
Maintained🟢 1030 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
Security-Policy⚠️ 0security policy file not detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Signed-Releases⚠️ -1no releases found
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/@storybook/addon-mcp 0.2.3 UnknownUnknown
npm/@storybook/mcp 0.2.2 UnknownUnknown
npm/@tmcp/adapter-valibot 0.1.5 UnknownUnknown
npm/@tmcp/session-manager 0.2.1 UnknownUnknown
npm/@tmcp/transport-http 0.8.4 UnknownUnknown
npm/@valibot/to-json-schema 1.5.0 UnknownUnknown
npm/esm-env 1.2.2 UnknownUnknown
npm/json-rpc-2.0 1.7.1 ⚠️ 2.1
Details
CheckScoreReason
Packaging⚠️ -1packaging workflow not detected
Code-Review⚠️ 1Found 5/30 approved changesets -- score normalized to 1
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Pinned-Dependencies⚠️ -1no dependencies found
Token-Permissions⚠️ -1No tokens found
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow⚠️ -1no workflows found
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/picoquery 2.5.0 UnknownUnknown
npm/pirates 4.0.7 🟢 6.1
Details
CheckScoreReason
Code-Review⚠️ 0Found 2/26 approved changesets -- score normalized to 0
Binary-Artifacts🟢 10no binaries found in the repo
Security-Policy🟢 10security policy file detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1012 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Packaging🟢 10packaging workflow detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/prism-react-renderer 2.4.1 🟢 4.2
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Security-Policy⚠️ 0security policy file not detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/react-live 4.1.8 🟢 4.1
Details
CheckScoreReason
Code-Review🟢 9Found 11/12 approved changesets -- score normalized to 9
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Security-Policy⚠️ 0security policy file not detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/sqids 0.3.0 UnknownUnknown
npm/sucrase 3.35.1 ⚠️ 2.9
Details
CheckScoreReason
Code-Review⚠️ 1Found 4/30 approved changesets -- score normalized to 1
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Security-Policy⚠️ 0security policy file not detected
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/tmcp 1.19.2 UnknownUnknown
npm/ts-interface-checker 0.1.13 ⚠️ 2.3
Details
CheckScoreReason
Code-Review⚠️ 2Found 7/24 approved changesets -- score normalized to 2
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow⚠️ -1no workflows found
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
Pinned-Dependencies⚠️ -1no dependencies found
Token-Permissions⚠️ -1No tokens found
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/uri-template-matcher 1.1.2 UnknownUnknown
npm/use-editable 2.3.3 UnknownUnknown
npm/valibot 1.2.0 UnknownUnknown

Scanned Files

  • packages/apollo-wind/package.json
  • pnpm-lock.yaml

Copy link
Collaborator

@CalinaCristian CalinaCristian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please split changes into smaller PR's. This is very hard to review with those many changes.

Copy link
Collaborator

@CalinaCristian CalinaCristian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not ready for merge.

@CalinaCristian CalinaCristian marked this pull request as draft February 13, 2026 18:42
@CalinaCristian CalinaCristian changed the base branch from main to feature/getting-started-only February 13, 2026 18:45
@CalinaCristian CalinaCristian changed the base branch from feature/getting-started-only to main February 13, 2026 18:46
@CalinaCristian CalinaCristian force-pushed the feature/improve-templates-and-components branch 2 times, most recently from b143a40 to 20331ca Compare February 13, 2026 19:24
@1980computer 1980computer force-pushed the feature/improve-templates-and-components branch from 20331ca to 871eedb Compare February 13, 2026 19:30
@CalinaCristian CalinaCristian force-pushed the feature/improve-templates-and-components branch from 871eedb to 0e62f23 Compare February 13, 2026 19:38
@1980computer 1980computer force-pushed the feature/improve-templates-and-components branch 4 times, most recently from 0c4b6e7 to 6007acc Compare February 20, 2026 00:35
@1980computer 1980computer force-pushed the feature/improve-templates-and-components branch 4 times, most recently from 96d36de to f2e1dfe Compare February 26, 2026 00:16
@CalinaCristian CalinaCristian added the dev-packages Adds dev package publishing on pushes to this PR label Feb 26, 2026
1980computer and others added 3 commits February 26, 2026 12:45
…g, and AI prototyping

- Add Maestro, Delegate, Admin, and Flow template systems with multiple
  page variants (Landing, Dashboard, Settings, Data Management, Properties)
- Implement dual-theme architecture: Future (dark/light) and Legacy
  (dark/light) with CSS custom properties and shadcn bridge pattern
- Add custom components: MaestroHeader, FlowPanel, PropertiesSimple,
  PropertiesExpanded, Canvas, ChatComposer, and more
- Create Prototyping documentation page with 5 tabs: Overview, Use Cases,
  Use Figma, Use AI, and Best Practices
- Add apollo-ai-context.md — portable AI context file for consistent
  prototyping with LLMs (components, tokens, patterns, rules)
- Install and configure @storybook/addon-mcp for live component metadata
  exposure to AI coding agents
- Install and configure @storybook/addon-a11y for accessibility auditing
- Hide addons panel by default, remove background switcher from toolbar
- Reorganize Storybook sidebar: flatten Templates (remove Future folder),
  rename Current to Xrchive, rename Theme/Current to Theme/Legacy
- Move legacy-theme.css to foundation/Future/ alongside future-theme.css
- Upgrade all component stories to use Storybook categories
- Delete deprecated example files and consolidate into new template system

Co-authored-by: Cursor <cursoragent@cursor.com>

feat(apollo-wind): add Getting Started section with templates, theming, and AI prototyping

- Add Getting Started landing page and AI prototyping documentation
- Implement Future theme system (dark/light) with CSS custom properties
- Add gradient tokens (6 theme-aware gradients) to foundation
- Create shared FutureTheme type for consistent theme prop typing
- Add Onboarding, Agentic Process, and Empty & Errors template sections
- Implement Flow template responsive panel behavior and properties panels
- Add global theme sync for Radix portal components via preview decorator
- Add aria-label and type="button" to all icon-only buttons for accessibility
- Remove unused imports, functions, and dead code across story files
- Delete legacy Xrchive templates (New Project, VSCode)

Co-authored-by: Cursor <cursoragent@cursor.com>
Expand Storybook documentation with rich, structured stories for 20+ components
following a consistent format (Basic, Variants, Examples). Reorganize component
categories, remove unused components, and fix theme issues.

Components updated:
- Alert, Alert Dialog, Accordion, Badge, Breadcrumb, Combobox, Command,
  Context Menu, Data Table, Dialog, Dropdown, Empty State, Hover Card,
  Pagination, Popover, Progress, Sheet, Skeleton, Sonner/Toast, Spinner,
  Tabs, Tooltip

Components removed:
- Menubar, Navigation Menu (unused, not needed for design system)
- Drawer (consolidated into Sheet/Drawer component)
- Table stories (covered by Data Table)
- Pattern Drawer/Modal experiments

Reorganization:
- Move Search, Calendar, Collapsible to UiPath-review folder
- Move Alert, Spinner to Feedback category
- Move Context Menu to Navigation category
- Rename Sonner to Toast (Sonner), Dropdown Menu to Dropdown
- Rename Sheet to Drawer (Sheet)

Fixes:
- Add --color-destructive-foreground to future-theme.css
- Fix Context Menu forwardRef for right-click support
- Enhance EmptyState with code prop and children support

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Made-with: Cursor
@CalinaCristian CalinaCristian force-pushed the feature/improve-templates-and-components branch from f2e1dfe to f59e7b3 Compare February 26, 2026 20:45
@github-actions
Copy link

github-actions bot commented Feb 26, 2026

📦 Dev Packages

Package Status Updated (PT)
@uipath/apollo-wind@0.10.0-pr219.3a76b25 🟡 Publishing... Feb 27, 2026, 11:08:28 AM

@1980computer 1980computer force-pushed the feature/improve-templates-and-components branch from e106daa to e84c0fa Compare February 27, 2026 01:18
…e files

- Rename CSS tokens from future-*/legacy-* prefixed to bare names
  (e.g. --color-future-surface → --surface) scoped by class selectors
- Adopt shadcn convention: bare vars for definitions, --color-* via @theme
- Add shadcn aliases in each theme for component compatibility
- Rename "accent" token to "brand" to avoid shadcn naming conflict
- Consolidate legacy-theme.css into themes.css (renamed from future-theme.css)
- Rename demo theme classes: future-wireframe → wireframe, etc.
- Rename legacy-dark/legacy-light → core-dark/core-light
- Move legacy storybook files to top-level foundation folder
- Reformat all theme comments to inline for improved readability
- Update all components, templates, stories, and docs to match

Made-with: Cursor
@1980computer 1980computer force-pushed the feature/improve-templates-and-components branch from e84c0fa to 5a04b5f Compare February 27, 2026 01:24
@CalinaCristian CalinaCristian marked this pull request as ready for review February 27, 2026 18:47
Copilot AI review requested due to automatic review settings February 27, 2026 18:47
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Apollo Wind’s Storybook documentation structure and expands component examples, while cleaning up unused example pages/components and adding several new UiPath-specific template building blocks.

Changes:

  • Removed legacy “Examples/*” stories and unused UI components (e.g., Menubar, Navigation Menu, old Drawer) plus their exports/tests.
  • Reorganized Storybook sidebar categories and refreshed many stories to a consistent “Basic / Variants / Examples” format.
  • Added new UI/template utilities (e.g., Chart, TreeView stories, ViewportGuard, UiPath panels/toolbars) and enhanced existing components (EmptyState, DataTable).

Reviewed changes

Copilot reviewed 119 out of 202 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
packages/apollo-wind/src/examples/flow-start-example.stories.tsx Removed legacy example story
packages/apollo-wind/src/examples/flow-editor-layout-example.tsx Removed legacy example component
packages/apollo-wind/src/examples/flow-editor-layout-example.stories.tsx Removed legacy example story
packages/apollo-wind/src/examples/data-management-example.stories.tsx Removed legacy example story
packages/apollo-wind/src/examples/dashboard-example.stories.tsx Removed legacy example story
packages/apollo-wind/src/examples/app-shell-example.tsx Removed legacy example component
packages/apollo-wind/src/examples/app-shell-example.stories.tsx Removed legacy example story
packages/apollo-wind/src/examples/admin-layout-example.stories.tsx Removed legacy example story
packages/apollo-wind/src/components/ui/tree-view.stories.tsx Added comprehensive TreeView stories
packages/apollo-wind/src/components/ui/toggle.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/toggle-group.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/textarea.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/switch.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/stepper.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/stats-card.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/spinner.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/slider.stories.tsx Expanded Slider stories and examples
packages/apollo-wind/src/components/ui/sheet.stories.tsx Renamed/reframed Sheet as Drawer (Sheet) + richer stories
packages/apollo-wind/src/components/ui/separator.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/select.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/search.stories.tsx Moved Search under Navigation
packages/apollo-wind/src/components/ui/scroll-area.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/resizable.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/radio-group.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/popover.stories.tsx Expanded Popover stories and examples
packages/apollo-wind/src/components/ui/multi-select.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/table.stories.tsx Removed Table stories (covered elsewhere)
packages/apollo-wind/src/components/ui/navigation-menu.tsx Removed unused Navigation Menu component
packages/apollo-wind/src/components/ui/navigation-menu.test.tsx Removed tests for deleted component
packages/apollo-wind/src/components/ui/navigation-menu.stories.tsx Removed stories for deleted component
packages/apollo-wind/src/components/ui/menubar.tsx Removed unused Menubar component
packages/apollo-wind/src/components/ui/menubar.test.tsx Removed tests for deleted component
packages/apollo-wind/src/components/ui/menubar.stories.tsx Removed stories for deleted component
packages/apollo-wind/src/components/ui/drawer.test.tsx Removed tests for deleted Drawer (Vaul)
packages/apollo-wind/src/components/ui/drawer.stories.tsx Removed stories for deleted Drawer (Vaul)
packages/apollo-wind/src/components/ui/collapsible.stories.tsx Removed Collapsible story (moved to review)
packages/apollo-wind/src/components/ui/layout/row.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/layout/grid.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/layout/column.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/label.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/input.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/file-upload.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/empty-state.tsx Enhanced EmptyState API (code + children)
packages/apollo-wind/src/components/ui/empty-state.stories.tsx Expanded EmptyState stories
packages/apollo-wind/src/components/ui/data-table.tsx Added controlled rowSelection + toolbarContent slot
packages/apollo-wind/src/components/ui/chart.tsx Added reusable Chart primitives and theming
packages/apollo-wind/src/components/ui/button.tsx Updated button rounding defaults
packages/apollo-wind/src/components/ui/button.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/button-group.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/breadcrumb.stories.tsx Expanded Breadcrumb stories + dropdown patterns
packages/apollo-wind/src/components/ui/badge.stories.tsx Expanded Badge stories + examples
packages/apollo-wind/src/components/ui/datetime-picker.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/date-picker.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/checkbox.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/card.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/calendar.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/aspect-ratio.stories.tsx Storybook category reorg
packages/apollo-wind/src/components/ui/index.ts Removed deleted exports; added TreeView export/types
packages/apollo-wind/src/components/custom/viewport-guard.tsx Added viewport guard utility + hook
packages/apollo-wind/src/components/custom/toolbar-view.tsx Added Flow view toolbar component
packages/apollo-wind/src/components/custom/toolbar-view.stories.tsx Added Flow view toolbar story
packages/apollo-wind/src/components/custom/toolbar-canvas.tsx Added Flow canvas toolbar component
packages/apollo-wind/src/components/custom/toolbar-canvas.stories.tsx Added Flow canvas toolbar story
packages/apollo-wind/src/components/custom/panel-maestro.tsx Added Maestro-style collapsible panel
packages/apollo-wind/src/components/custom/panel-maestro.stories.tsx Added Maestro panel stories
packages/apollo-wind/src/components/custom/panel-flow.tsx Added Flow left rail + expanded chat panel
packages/apollo-wind/src/components/custom/panel-flow.stories.tsx Added Flow panel stories
packages/apollo-wind/src/components/custom/panel-delegate.tsx Added Delegate collapsible navigation panel
packages/apollo-wind/src/components/custom/panel-delegate.stories.tsx Added Delegate panel stories
packages/apollo-wind/src/components/custom/grid-maestro.tsx Added Maestro grid/canvas primitives
packages/apollo-wind/src/components/custom/grid-maestro.stories.tsx Added Maestro grid stories
packages/apollo-wind/src/components/custom/global-header.stories.tsx Added Global Header stories
packages/apollo-wind/src/components/custom/flow-properties.tsx Added Flow properties wrapper (bar/expanded)
packages/apollo-wind/src/components/custom/flow-properties.stories.tsx Added Flow properties stories
packages/apollo-wind/src/components/custom/flow-properties-expanded.tsx Added expanded Flow properties UI
packages/apollo-wind/src/components/custom/flow-properties-bar.tsx Added collapsed Flow properties bar
packages/apollo-wind/src/components/custom/flow-node.tsx Added Flow node card component
packages/apollo-wind/src/components/custom/flow-node.stories.tsx Added Flow node stories
packages/apollo-wind/src/components/custom/chat-steps-view.tsx Added Delegate “Steps” view content
packages/apollo-wind/src/components/custom/chat-steps-view.stories.tsx Added Steps view story
packages/apollo-wind/src/components/custom/chat-prompt-suggestions.tsx Added prompt suggestions list component
packages/apollo-wind/src/components/custom/chat-prompt-suggestions.stories.tsx Added prompt suggestions story
packages/apollo-wind/src/components/custom/chat-first-experience.tsx Added Delegate first-run chat experience
packages/apollo-wind/src/components/custom/chat-first-experience.stories.tsx Added first-run chat story
packages/apollo-wind/src/components/custom/chat-composer.tsx Added reusable chat composer
packages/apollo-wind/src/components/custom/chat-composer.stories.tsx Added chat composer story
packages/apollo-wind/src/components/custom/canvas.tsx Added Delegate canvas surface component
packages/apollo-wind/src/components/custom/canvas.stories.tsx Added canvas story
packages/apollo-wind/package.json Added Storybook addons + new UI deps
packages/apollo-wind/.storybook/theme.js Removed Storybook theme module
packages/apollo-wind/.storybook/preview.tsx Added viewport presets + new theme toolbar + layout wrapper
packages/apollo-wind/.storybook/preview-head.html Added external font loading for Storybook
packages/apollo-wind/.storybook/manager.ts Updated manager config (sidebar collapse roots, hide panel)
packages/apollo-wind/.storybook/manager.js Removed legacy manager config
packages/apollo-wind/.storybook/main.ts Added a11y + MCP addons; enabled manifest; adjusted Vite envDir

Comment on lines 2 to 5
import theme from './theme';

addons.setConfig({
theme,
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR deletes .storybook/theme.js, but manager.ts still imports ./theme. If there isn’t a new theme.ts/tsx/js added elsewhere, this will break Storybook’s manager build. Consider either restoring the theme module (as TS/JS) or updating manager.ts to use an inline theme (or remove the import if not needed).

Copilot uses AI. Check for mistakes.
Comment on lines +52 to +54
rowSelection?: Record<string, boolean>;
onRowSelectionChange?: (selection: Record<string, boolean>) => void;
toolbarContent?: React.ReactNode;
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

internalRowSelection is initialized with React.useState({}) without a type, which typically infers {} and can lead to type mismatches once you treat it as Record<string, boolean>. Recommend typing the state explicitly (and, ideally, aligning the prop types with TanStack’s RowSelectionState / OnChangeFn<RowSelectionState> to match what useReactTable expects).

Copilot uses AI. Check for mistakes.
Comment on lines 77 to 88
const [internalRowSelection, setInternalRowSelection] = React.useState({});

const isControlled = controlledRowSelection !== undefined;
const rowSelection = isControlled ? controlledRowSelection : internalRowSelection;
const setRowSelection = React.useCallback(
(updater: React.SetStateAction<Record<string, boolean>>) => {
const next = typeof updater === 'function' ? updater(rowSelection) : updater;
if (!isControlled) setInternalRowSelection(next);
controlledOnRowSelectionChange?.(next);
},
[isControlled, rowSelection, controlledOnRowSelectionChange],
);
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

internalRowSelection is initialized with React.useState({}) without a type, which typically infers {} and can lead to type mismatches once you treat it as Record<string, boolean>. Recommend typing the state explicitly (and, ideally, aligning the prop types with TanStack’s RowSelectionState / OnChangeFn<RowSelectionState> to match what useReactTable expects).

Copilot uses AI. Check for mistakes.
Comment on lines 70 to 100
const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {
const colorConfig = Object.entries(config).filter(
([, config]) => config.theme || config.color,
);

if (!colorConfig.length) {
return null;
}

return (
<style
dangerouslySetInnerHTML={{
__html: Object.entries(THEMES)
.map(
([theme, prefix]) => `
${prefix} [data-chart=${id}] {
${colorConfig
.map(([key, itemConfig]) => {
const color =
itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||
itemConfig.color;
return color ? ` --color-${key}: ${color};` : null;
})
.join('\n')}
}
`,
)
.join('\n'),
}}
/>
);
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dangerouslySetInnerHTML is building CSS from config keys/values and from id. In runtime/library code, this creates a clear injection risk if any of these inputs ever comes from untrusted data (e.g., malicious id, series keys, or color strings containing </style> or CSS-breaking tokens). Safer options include: (1) avoiding dangerouslySetInnerHTML by setting CSS variables directly on the container via style/inline variables, and/or (2) strictly validating/escaping id and config keys (e.g., allowlist ^[a-z0-9-]+$) and quoting attribute selectors ([data-chart="..."]).

Suggested change
const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {
const colorConfig = Object.entries(config).filter(
([, config]) => config.theme || config.color,
);
if (!colorConfig.length) {
return null;
}
return (
<style
dangerouslySetInnerHTML={{
__html: Object.entries(THEMES)
.map(
([theme, prefix]) => `
${prefix} [data-chart=${id}] {
${colorConfig
.map(([key, itemConfig]) => {
const color =
itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||
itemConfig.color;
return color ? ` --color-${key}: ${color};` : null;
})
.join('\n')}
}
`,
)
.join('\n'),
}}
/>
);
const sanitizeCssToken = (value: string): string =>
value.replace(/[^a-z0-9-]/gi, '');
const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {
const colorConfig = Object.entries(config).filter(
([, itemConfig]) => itemConfig.theme || itemConfig.color,
);
if (!colorConfig.length) {
return null;
}
const safeId = sanitizeCssToken(id);
const css = Object.entries(THEMES)
.map(([theme, prefix]) => {
const lines = colorConfig
.map(([key, itemConfig]) => {
const color =
itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||
itemConfig.color;
const safeKey = sanitizeCssToken(key);
if (!color || !safeKey) {
return null;
}
return ` --color-${safeKey}: ${color};`;
})
.filter(Boolean)
.join('\n');
if (!lines) {
return '';
}
return `${prefix} [data-chart="${safeId}"] {\n${lines}\n}`;
})
.filter(Boolean)
.join('\n');
if (!css) {
return null;
}
return <style>{css}</style>;

Copilot uses AI. Check for mistakes.
Comment on lines 235 to 239
{item.value && (
<span className="text-foreground font-mono font-medium tabular-nums">
{item.value.toLocaleString()}
</span>
)}
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This conditional hides legitimate values like 0 because it relies on truthiness. Use an explicit null/undefined check instead (e.g., item.value !== undefined && item.value !== null) so zero values render correctly.

Copilot uses AI. Check for mistakes.
Comment on lines 173 to 180
<button
className={cn(
'flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors',
activeTab === 'properties'
? 'border border-border bg-surface text-foreground'
: 'text-foreground-subtle'
)}
>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PropertiesExpanded exposes activeTab and renders two tab-like buttons, but there’s no onTabChange prop and the buttons don’t have onClick handlers. This makes the “tabs” non-functional and can confuse consumers of the component API. Consider either adding onTabChange and wiring the buttons, or rendering them as non-interactive (e.g., div / aria-disabled) until switching is supported.

Copilot uses AI. Check for mistakes.
Comment on lines 184 to 191
<button
className={cn(
'flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors',
activeTab === 'variables'
? 'border border-border bg-surface text-foreground'
: 'text-foreground-subtle'
)}
>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PropertiesExpanded exposes activeTab and renders two tab-like buttons, but there’s no onTabChange prop and the buttons don’t have onClick handlers. This makes the “tabs” non-functional and can confuse consumers of the component API. Consider either adding onTabChange and wiring the buttons, or rendering them as non-interactive (e.g., div / aria-disabled) until switching is supported.

Copilot uses AI. Check for mistakes.
Comment on lines 42 to 48
export function Panel({
side,
children,
className,
isCollapsed = false,
onToggle,
}: PanelProps) {
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The exported component name Panel is extremely generic and likely to collide/confuse when imported alongside other panels (especially since this is in a shared component package). Consider renaming to something specific like MaestroPanel, CollapsibleSidePanel, or MaestroSidePanel.

Copilot uses AI. Check for mistakes.
Comment on lines 83 to 91
<button
className={cn(
'flex h-8 items-center gap-2 rounded-[10px] px-3 py-2 text-sm font-medium leading-5 transition-colors',
activeMode === 'build'
? 'border border-border bg-surface text-foreground'
: 'text-foreground-subtle hover:text-foreground-hover'
)}
onClick={() => onModeChange?.('build')}
>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several newly added reusable components use <button> without setting type="button" (e.g., toolbars/panels). In a library component, this can cause unintended form submissions when used inside a <form> (default type is "submit"). Recommend adding type="button" to non-submit buttons throughout these custom components.

Copilot uses AI. Check for mistakes.
Comment on lines +348 to +355
export {
ChartContainer,
ChartTooltip,
ChartTooltipContent,
ChartLegend,
ChartLegendContent,
ChartStyle,
};
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

chart.tsx introduces a sizable runtime API surface (container/context, tooltip rendering, legend rendering, CSS theming). Given this package already uses component/unit tests elsewhere, it would be good to add tests covering at least: (1) ChartContainer context wiring, (2) ChartTooltipContent rendering with 0 values / multiple payload entries, and (3) ChartStyle output behavior for theme/color configs.

Copilot uses AI. Check for mistakes.
CalinaCristian and others added 2 commits February 27, 2026 10:58
- Type internalRowSelection state as Record<string, boolean> (data-table)
- Sanitize CSS tokens and remove dangerouslySetInnerHTML (chart)
- Fix zero-value hidden by truthiness check in chart tooltip
- Add onTabChange prop and wire tab buttons (flow-properties-expanded)
- Add type="button" to all <button> elements in custom components
- Rename Panel → MaestroPanel to avoid generic naming collisions
- Remove unused imports (Input, FileText, MoreHorizontal, CreditCard, Settings)

Made-with: Cursor
<div className="flex items-center justify-between">
{/* Left actions */}
<div className="flex items-center gap-1">
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, duplicate HTML attributes should be resolved by keeping a single, correct instance of the attribute and removing the others. When all duplicates have the same value, you can safely delete the extras without changing behavior.

For this file, each <button> currently declares type="button" twice. The best fix that preserves existing functionality is to keep one type="button" per button and remove the redundant one on the following elements: the "Add attachment" button (lines 71–75), the "Add workflow" button (lines 78–82), and the "Submit message" button (lines 88–93). No imports or new functions are needed; only attribute lists on these three <button> tags should be edited.

Suggested changeset 1
packages/apollo-wind/src/components/custom/chat-composer.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/chat-composer.tsx b/packages/apollo-wind/src/components/custom/chat-composer.tsx
--- a/packages/apollo-wind/src/components/custom/chat-composer.tsx
+++ b/packages/apollo-wind/src/components/custom/chat-composer.tsx
@@ -68,14 +68,14 @@
         <div className="flex items-center justify-between">
           {/* Left actions */}
           <div className="flex items-center gap-1">
-            <button type="button"
+            <button
               type="button"
               className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
               aria-label="Add attachment"
             >
               <Plus className="h-5 w-5 text-foreground-inverse" />
             </button>
-            <button type="button"
+            <button
               type="button"
               className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
               aria-label="Add workflow"
@@ -85,7 +79,7 @@
           </div>
 
           {/* Submit button */}
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-2xl bg-brand transition-opacity hover:opacity-90"
             onClick={handleSubmit}
EOF
@@ -68,14 +68,14 @@
<div className="flex items-center justify-between">
{/* Left actions */}
<div className="flex items-center gap-1">
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
aria-label="Add attachment"
>
<Plus className="h-5 w-5 text-foreground-inverse" />
</button>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
aria-label="Add workflow"
@@ -85,7 +79,7 @@
</div>

{/* Submit button */}
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl bg-brand transition-opacity hover:opacity-90"
onClick={handleSubmit}
Copilot is powered by AI and may make mistakes. Always verify output.
>
<Plus className="h-5 w-5 text-foreground-inverse" />
</button>
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, to fix duplicate HTML/JSX attributes, you remove all but one occurrence of each attribute on the element, keeping the intended value. If the values differ, you must decide which value is correct; if they are the same (as here), you can keep either occurrence.

For this file, the best fix that preserves existing functionality is to remove the extra type="button" attributes and leave a single type="button" prop for each <button> element. Specifically:

  • In the first left‑actions button (around line 71–73), remove the second type="button" line and keep one type="button" attribute.
  • In the second left‑actions button (around line 78–80), remove the second type="button" line and keep one type="button" attribute.
  • In the submit button (around line 88–90), remove the second type="button" line and keep one type="button" attribute.

No new methods, imports, or definitions are needed; we are only cleaning up JSX attributes.

Suggested changeset 1
packages/apollo-wind/src/components/custom/chat-composer.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/chat-composer.tsx b/packages/apollo-wind/src/components/custom/chat-composer.tsx
--- a/packages/apollo-wind/src/components/custom/chat-composer.tsx
+++ b/packages/apollo-wind/src/components/custom/chat-composer.tsx
@@ -68,14 +68,14 @@
         <div className="flex items-center justify-between">
           {/* Left actions */}
           <div className="flex items-center gap-1">
-            <button type="button"
+            <button
               type="button"
               className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
               aria-label="Add attachment"
             >
               <Plus className="h-5 w-5 text-foreground-inverse" />
             </button>
-            <button type="button"
+            <button
               type="button"
               className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
               aria-label="Add workflow"
@@ -85,7 +79,7 @@
           </div>
 
           {/* Submit button */}
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-2xl bg-brand transition-opacity hover:opacity-90"
             onClick={handleSubmit}
EOF
@@ -68,14 +68,14 @@
<div className="flex items-center justify-between">
{/* Left actions */}
<div className="flex items-center gap-1">
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
aria-label="Add attachment"
>
<Plus className="h-5 w-5 text-foreground-inverse" />
</button>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
aria-label="Add workflow"
@@ -85,7 +79,7 @@
</div>

{/* Submit button */}
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl bg-brand transition-opacity hover:opacity-90"
onClick={handleSubmit}
Copilot is powered by AI and may make mistakes. Always verify output.
</div>

{/* Submit button */}
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, to fix duplicate HTML/JSX attributes, keep a single instance of the attribute with the intended value and remove all others from the same element. This preserves behaviour while making the markup valid.

Here, each <button> element has type="button" repeated twice on consecutive lines. The best fix without changing functionality is to delete the second type="button" attribute from each button, leaving just one type="button" per element. No new imports, methods, or definitions are needed.

Concretely in packages/apollo-wind/src/components/custom/chat-composer.tsx:

  • For the "Add attachment" button (lines 71–75), remove the second type="button" on line 72.
  • For the "Add workflow" button (lines 78–82), remove the second type="button" on line 79.
  • For the "Submit message" button (lines 88–93), remove the second type="button" on line 89.
Suggested changeset 1
packages/apollo-wind/src/components/custom/chat-composer.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/chat-composer.tsx b/packages/apollo-wind/src/components/custom/chat-composer.tsx
--- a/packages/apollo-wind/src/components/custom/chat-composer.tsx
+++ b/packages/apollo-wind/src/components/custom/chat-composer.tsx
@@ -68,14 +68,14 @@
         <div className="flex items-center justify-between">
           {/* Left actions */}
           <div className="flex items-center gap-1">
-            <button type="button"
+            <button
               type="button"
               className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
               aria-label="Add attachment"
             >
               <Plus className="h-5 w-5 text-foreground-inverse" />
             </button>
-            <button type="button"
+            <button
               type="button"
               className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
               aria-label="Add workflow"
@@ -85,7 +79,7 @@
           </div>
 
           {/* Submit button */}
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-2xl bg-brand transition-opacity hover:opacity-90"
             onClick={handleSubmit}
EOF
@@ -68,14 +68,14 @@
<div className="flex items-center justify-between">
{/* Left actions */}
<div className="flex items-center gap-1">
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
aria-label="Add attachment"
>
<Plus className="h-5 w-5 text-foreground-inverse" />
</button>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl border border-border-inverse bg-surface-inverse transition-opacity hover:opacity-80"
aria-label="Add workflow"
@@ -85,7 +79,7 @@
</div>

{/* Submit button */}
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-2xl bg-brand transition-opacity hover:opacity-90"
onClick={handleSubmit}
Copilot is powered by AI and may make mistakes. Always verify output.
<div className="flex min-h-[78px] shrink-0 items-center gap-8 overflow-x-auto px-10 py-5">
{/* Back + Title */}
<div className="flex shrink-0 items-center gap-4">
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, duplicate HTML/JSX attributes should be resolved by keeping exactly one instance of the attribute with the correct value and deleting the others. For a <button> in React/TSX, a single type="button" is sufficient to ensure the button does not default to submit behavior inside forms.

In this specific case, the best fix without changing functionality is to remove one of the duplicate type="button" attributes on the <button> element at lines 234–235 in packages/apollo-wind/src/components/custom/chat-steps-view.tsx. We should keep a single type="button" attribute (for example, on line 234) and delete the redundant one (line 235), leaving the rest of the button’s props (className, onClick, aria-label) untouched. No imports, methods, or additional definitions are required.

Suggested changeset 1
packages/apollo-wind/src/components/custom/chat-steps-view.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/chat-steps-view.tsx b/packages/apollo-wind/src/components/custom/chat-steps-view.tsx
--- a/packages/apollo-wind/src/components/custom/chat-steps-view.tsx
+++ b/packages/apollo-wind/src/components/custom/chat-steps-view.tsx
@@ -231,7 +231,7 @@
       <div className="flex min-h-[78px] shrink-0 items-center gap-8 overflow-x-auto px-10 py-5">
         {/* Back + Title */}
         <div className="flex shrink-0 items-center gap-4">
-          <button type="button"
+          <button
             type="button"
             className="shrink-0 text-foreground transition-colors hover:text-foreground"
             onClick={onBack}
EOF
@@ -231,7 +231,7 @@
<div className="flex min-h-[78px] shrink-0 items-center gap-8 overflow-x-auto px-10 py-5">
{/* Back + Title */}
<div className="flex shrink-0 items-center gap-4">
<button type="button"
<button
type="button"
className="shrink-0 text-foreground transition-colors hover:text-foreground"
onClick={onBack}
Copilot is powered by AI and may make mistakes. Always verify output.
placeholder={field.placeholder}
className="h-full flex-1 rounded-none border-0 bg-transparent text-sm font-medium text-foreground-muted shadow-none placeholder:text-foreground-subtle focus-visible:ring-0"
/>
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, duplicate HTML/JSX attributes should be resolved by retaining a single, correct instance of the attribute and removing the extras. When multiple attributes have different values, you must determine which value is actually intended; here they are the same ("button"), so the fix is straightforward.

For this file, in the <button> inside the field.type === 'url' branch (around lines 151–157), remove one of the type="button" attributes and keep exactly one. No imports, new methods, or other definitions are required; this is a purely local JSX cleanup that preserves existing behavior.

Concretely:

  • In packages/apollo-wind/src/components/custom/flow-properties-simple.tsx, locate the <button> that currently has:
    <button type="button"
      type="button"
      className="..."
  • Replace it so it only has a single type="button" attribute:
    <button
      type="button"
      className="..."
Suggested changeset 1
packages/apollo-wind/src/components/custom/flow-properties-simple.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/flow-properties-simple.tsx b/packages/apollo-wind/src/components/custom/flow-properties-simple.tsx
--- a/packages/apollo-wind/src/components/custom/flow-properties-simple.tsx
+++ b/packages/apollo-wind/src/components/custom/flow-properties-simple.tsx
@@ -148,7 +148,7 @@
             placeholder={field.placeholder}
             className="h-full flex-1 rounded-none border-0 bg-transparent text-sm font-medium text-foreground-muted shadow-none placeholder:text-foreground-subtle focus-visible:ring-0"
           />
-          <button type="button"
+          <button
             type="button"
             className="flex h-full w-[50px] items-center justify-center border-l border-border text-foreground-muted transition-colors hover:text-foreground"
             aria-label="Browse files"
EOF
@@ -148,7 +148,7 @@
placeholder={field.placeholder}
className="h-full flex-1 rounded-none border-0 bg-transparent text-sm font-medium text-foreground-muted shadow-none placeholder:text-foreground-subtle focus-visible:ring-0"
/>
<button type="button"
<button
type="button"
className="flex h-full w-[50px] items-center justify-center border-l border-border text-foreground-muted transition-colors hover:text-foreground"
aria-label="Browse files"
Copilot is powered by AI and may make mistakes. Always verify output.
>
<MessageCirclePlus className="h-5 w-5" />
</button>
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, to fix duplicate HTML/JSX attributes, keep only one instance of the attribute per element, ensuring that the remaining value is the intended one. When duplicates share the same value, you can safely delete the extra copies.

Here, each button has type="button" written twice. The correct, non‑breaking fix is to remove the redundant type="button" from each affected button, leaving a single type="button" attribute. No new imports or helper functions are needed. Concretely:

  • At lines 250–251, remove the second type="button" line.
  • At lines 257–258, remove the second type="button" line.
  • At lines 265–266, remove the second type="button" line.

The remaining attributes (className, aria-label, onClick) remain unchanged, preserving existing behavior and accessibility.

Suggested changeset 1
packages/apollo-wind/src/components/custom/panel-delegate.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/panel-delegate.tsx b/packages/apollo-wind/src/components/custom/panel-delegate.tsx
--- a/packages/apollo-wind/src/components/custom/panel-delegate.tsx
+++ b/packages/apollo-wind/src/components/custom/panel-delegate.tsx
@@ -247,14 +247,14 @@
             {panelOpen && (
               <div className="flex flex-1 items-center justify-between">
                 <div className="flex items-center gap-[18px]">
-                  <button type="button"
+                  <button
                     type="button"
                     className="text-foreground-muted transition-colors hover:text-foreground"
                     aria-label="New conversation"
                   >
                     <MessageCirclePlus className="h-5 w-5" />
                   </button>
-                  <button type="button"
+                  <button
                     type="button"
                     className="text-foreground-muted transition-colors hover:text-foreground"
                     aria-label="Picture in picture"
@@ -262,7 +256,7 @@
                     <PictureInPicture2 className="h-5 w-5" />
                   </button>
                 </div>
-                <button type="button"
+                <button
                   type="button"
                   className="text-foreground-muted transition-colors hover:text-foreground"
                   onClick={() => setPanelOpen(false)}
EOF
@@ -247,14 +247,14 @@
{panelOpen && (
<div className="flex flex-1 items-center justify-between">
<div className="flex items-center gap-[18px]">
<button type="button"
<button
type="button"
className="text-foreground-muted transition-colors hover:text-foreground"
aria-label="New conversation"
>
<MessageCirclePlus className="h-5 w-5" />
</button>
<button type="button"
<button
type="button"
className="text-foreground-muted transition-colors hover:text-foreground"
aria-label="Picture in picture"
@@ -262,7 +256,7 @@
<PictureInPicture2 className="h-5 w-5" />
</button>
</div>
<button type="button"
<button
type="button"
className="text-foreground-muted transition-colors hover:text-foreground"
onClick={() => setPanelOpen(false)}
Copilot is powered by AI and may make mistakes. Always verify output.
<PictureInPicture2 className="h-5 w-5" />
</button>
</div>
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

Generally, to fix duplicate HTML/JSX attributes, keep only one instance of the attribute per element, ensuring it has the intended value, and delete all redundant duplicates.

Here, the correct behavior is clearly that each of these <button> elements should have a single type="button" attribute. To fix without changing functionality, for each affected <button> tag in packages/apollo-wind/src/components/custom/panel-delegate.tsx, remove the second type="button" so each button declares type only once. No imports, new methods, or other code changes are required; the only edits are to the JSX for the three buttons within the header actions section (the "New conversation", "Picture in picture", and "Collapse panel" buttons).

Suggested changeset 1
packages/apollo-wind/src/components/custom/panel-delegate.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/panel-delegate.tsx b/packages/apollo-wind/src/components/custom/panel-delegate.tsx
--- a/packages/apollo-wind/src/components/custom/panel-delegate.tsx
+++ b/packages/apollo-wind/src/components/custom/panel-delegate.tsx
@@ -247,14 +247,14 @@
             {panelOpen && (
               <div className="flex flex-1 items-center justify-between">
                 <div className="flex items-center gap-[18px]">
-                  <button type="button"
+                  <button
                     type="button"
                     className="text-foreground-muted transition-colors hover:text-foreground"
                     aria-label="New conversation"
                   >
                     <MessageCirclePlus className="h-5 w-5" />
                   </button>
-                  <button type="button"
+                  <button
                     type="button"
                     className="text-foreground-muted transition-colors hover:text-foreground"
                     aria-label="Picture in picture"
@@ -262,7 +256,7 @@
                     <PictureInPicture2 className="h-5 w-5" />
                   </button>
                 </div>
-                <button type="button"
+                <button
                   type="button"
                   className="text-foreground-muted transition-colors hover:text-foreground"
                   onClick={() => setPanelOpen(false)}
EOF
@@ -247,14 +247,14 @@
{panelOpen && (
<div className="flex flex-1 items-center justify-between">
<div className="flex items-center gap-[18px]">
<button type="button"
<button
type="button"
className="text-foreground-muted transition-colors hover:text-foreground"
aria-label="New conversation"
>
<MessageCirclePlus className="h-5 w-5" />
</button>
<button type="button"
<button
type="button"
className="text-foreground-muted transition-colors hover:text-foreground"
aria-label="Picture in picture"
@@ -262,7 +256,7 @@
<PictureInPicture2 className="h-5 w-5" />
</button>
</div>
<button type="button"
<button
type="button"
className="text-foreground-muted transition-colors hover:text-foreground"
onClick={() => setPanelOpen(false)}
Copilot is powered by AI and may make mistakes. Always verify output.
</div>
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, to fix duplicate HTML/JSX attributes, keep only one instance of the attribute and remove the redundant copies, especially when the values are identical. This preserves behavior while making the markup standards-compliant and clearer.

For this specific file, packages/apollo-wind/src/components/custom/panel-flow.tsx, within the ChatInput function, there are three <button> elements that each declare type="button" twice on adjacent lines. The fix is to remove the extra type="button" on lines 165, 172, and 180, leaving a single type="button" per <button>. No new imports, methods, or definitions are required; this is a simple JSX cleanup that does not alter existing functionality.

Suggested changeset 1
packages/apollo-wind/src/components/custom/panel-flow.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/panel-flow.tsx b/packages/apollo-wind/src/components/custom/panel-flow.tsx
--- a/packages/apollo-wind/src/components/custom/panel-flow.tsx
+++ b/packages/apollo-wind/src/components/custom/panel-flow.tsx
@@ -161,14 +161,14 @@
       </div>
       <div className="flex items-center justify-between">
         <div className="flex items-center gap-2">
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
             aria-label="Add attachment"
           >
             <Plus className="h-5 w-5" />
           </button>
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
             aria-label="Add workflow"
@@ -176,7 +170,7 @@
             <Workflow className="h-5 w-5" />
           </button>
         </div>
-        <button type="button"
+        <button
           type="button"
           className="flex h-8 w-8 items-center justify-center rounded-full bg-brand text-foreground-on-accent"
           aria-label="Submit message"
EOF
@@ -161,14 +161,14 @@
</div>
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
aria-label="Add attachment"
>
<Plus className="h-5 w-5" />
</button>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
aria-label="Add workflow"
@@ -176,7 +170,7 @@
<Workflow className="h-5 w-5" />
</button>
</div>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-full bg-brand text-foreground-on-accent"
aria-label="Submit message"
Copilot is powered by AI and may make mistakes. Always verify output.
>
<Plus className="h-5 w-5" />
</button>
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, to fix duplicate HTML/JSX attributes, keep only a single occurrence of each attribute on a given element, preserving the correct/desired value, and delete the redundant duplicates.

Here, each affected <button> already has type="button" twice with the same value. The safest fix that does not change functionality is to remove the second occurrence in each case and leave one type="button" on each button. Specifically, in packages/apollo-wind/src/components/custom/panel-flow.tsx inside the ChatInput function:

  • For the first small icon button (aria-label="Add attachment"), delete the second type="button" line (line 165).
  • For the second small icon button (aria-label="Add workflow"), delete the second type="button" line (line 172).
  • For the large round submit button (aria-label="Submit message"), delete the second type="button" line (line 180).

No new imports, methods, or other definitions are required; we only remove redundant attributes from existing JSX.

Suggested changeset 1
packages/apollo-wind/src/components/custom/panel-flow.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/panel-flow.tsx b/packages/apollo-wind/src/components/custom/panel-flow.tsx
--- a/packages/apollo-wind/src/components/custom/panel-flow.tsx
+++ b/packages/apollo-wind/src/components/custom/panel-flow.tsx
@@ -161,14 +161,14 @@
       </div>
       <div className="flex items-center justify-between">
         <div className="flex items-center gap-2">
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
             aria-label="Add attachment"
           >
             <Plus className="h-5 w-5" />
           </button>
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
             aria-label="Add workflow"
@@ -176,7 +170,7 @@
             <Workflow className="h-5 w-5" />
           </button>
         </div>
-        <button type="button"
+        <button
           type="button"
           className="flex h-8 w-8 items-center justify-center rounded-full bg-brand text-foreground-on-accent"
           aria-label="Submit message"
EOF
@@ -161,14 +161,14 @@
</div>
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
aria-label="Add attachment"
>
<Plus className="h-5 w-5" />
</button>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
aria-label="Add workflow"
@@ -176,7 +170,7 @@
<Workflow className="h-5 w-5" />
</button>
</div>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-full bg-brand text-foreground-on-accent"
aria-label="Submit message"
Copilot is powered by AI and may make mistakes. Always verify output.
<Workflow className="h-5 w-5" />
</button>
</div>
<button type="button"

Check warning

Code scanning / CodeQL

Duplicate HTML element attributes Warning

This attribute
is duplicated later
.

Copilot Autofix

AI 2 days ago

In general, the fix is to ensure each JSX/HTML element has at most one instance of any given attribute. When duplicates exist with the same value, you can safely remove all but one of them without changing behavior.

Specifically here, in packages/apollo-wind/src/components/custom/panel-flow.tsx, inside the ChatInput function, there are three <button> elements (for "Add attachment", "Add workflow", and "Submit message") that each specify type="button" twice on consecutive lines. To fix this without changing functionality, delete the second type="button" from each <button> so that each has a single type="button" prop. No new imports, methods, or definitions are required; this is a pure JSX cleanup.

Suggested changeset 1
packages/apollo-wind/src/components/custom/panel-flow.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/apollo-wind/src/components/custom/panel-flow.tsx b/packages/apollo-wind/src/components/custom/panel-flow.tsx
--- a/packages/apollo-wind/src/components/custom/panel-flow.tsx
+++ b/packages/apollo-wind/src/components/custom/panel-flow.tsx
@@ -161,14 +161,14 @@
       </div>
       <div className="flex items-center justify-between">
         <div className="flex items-center gap-2">
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
             aria-label="Add attachment"
           >
             <Plus className="h-5 w-5" />
           </button>
-          <button type="button"
+          <button
             type="button"
             className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
             aria-label="Add workflow"
@@ -176,7 +170,7 @@
             <Workflow className="h-5 w-5" />
           </button>
         </div>
-        <button type="button"
+        <button
           type="button"
           className="flex h-8 w-8 items-center justify-center rounded-full bg-brand text-foreground-on-accent"
           aria-label="Submit message"
EOF
@@ -161,14 +161,14 @@
</div>
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
aria-label="Add attachment"
>
<Plus className="h-5 w-5" />
</button>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-lg text-foreground-muted hover:text-foreground"
aria-label="Add workflow"
@@ -176,7 +170,7 @@
<Workflow className="h-5 w-5" />
</button>
</div>
<button type="button"
<button
type="button"
className="flex h-8 w-8 items-center justify-center rounded-full bg-brand text-foreground-on-accent"
aria-label="Submit message"
Copilot is powered by AI and may make mistakes. Always verify output.
<div className="flex items-center justify-between">
{/* Left actions */}
<div className="flex items-center gap-1">
<button type="button"
>
<Plus className="h-5 w-5 text-foreground-inverse" />
</button>
<button type="button"
</div>

{/* Submit button */}
<button type="button"
<div className="flex min-h-[78px] shrink-0 items-center gap-8 overflow-x-auto px-10 py-5">
{/* Back + Title */}
<div className="flex shrink-0 items-center gap-4">
<button type="button"
placeholder={field.placeholder}
className="h-full flex-1 rounded-none border-0 bg-transparent text-sm font-medium text-foreground-muted shadow-none placeholder:text-foreground-subtle focus-visible:ring-0"
/>
<button type="button"
</div>
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<button type="button"
>
<Plus className="h-5 w-5" />
</button>
<button type="button"
<Workflow className="h-5 w-5" />
</button>
</div>
<button type="button"
{panelOpen && (
<div className="flex flex-1 items-center justify-between">
<div className="flex items-center gap-[18px]">
<button type="button"
>
<MessageCirclePlus className="h-5 w-5" />
</button>
<button type="button"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev-packages Adds dev package publishing on pushes to this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants