Files
copilotkit__copilotkit/packages
Benjamin Taylor 28437b1612 feat(web-components): expose drawer width + mobile breakpoint (ENT-1035)
Surface the CopilotThreadsDrawer's own structural values so host layouts
stop hand-copying `320px` / `768px`:

- New `layout-constants.ts` (single source of truth): DRAWER_DEFAULT_WIDTH,
  DRAWER_DEFAULT_WIDTH_PX, MOBILE_BREAKPOINT_PX, MOBILE_MAX_WIDTH_PX,
  MOBILE_MAX_WIDTH_QUERY. Exported from the barrel and from a PURE
  `./threads-drawer/layout-constants` subpath (importing it never evaluates
  the Lit element, so it is SSR-safe).
- Ship `./threads-drawer/layout.css`: a `:root --cpk-drawer-width` default
  plus `copilotkit-threads-layout` / `copilotkit-threads-main` helper classes
  that reserve the drawer column and collapse it on mobile off the same width
  and breakpoint the element uses. Copied into dist via a build:css step.
- The element and its shadow styles now read the constants. This also fixes
  the 767/768 seam (ENT-1037 item 1): the element flipped to mobile overlay at
  `max-width: 768px` while the react/vue coordination layers used
  `max-width: 767px`, so at exactly 768px the drawer went modal with no
  on-screen launcher. The element now uses 767px like everything else.
- react-core (Provider, ModalHeader, ChatInput) and vue (is-mobile-viewport,
  ChatInput) key their mobile split off the shared MOBILE_MAX_WIDTH_QUERY.
- Parity test asserts layout.css and the element stay in sync with the
  constants; attw excludes the CSS entrypoint.
2026-07-02 12:14:11 -05:00
..
2026-06-26 21:15:26 +00:00
2026-06-26 21:15:26 +00:00
2026-07-01 17:07:44 +00:00
2026-07-01 17:07:44 +00:00
2026-07-01 17:07:44 +00:00
2026-07-01 17:07:44 +00:00
2026-07-01 17:07:44 +00:00