Server components and design systems
Most component libraries were written before React Server Components existed, so they rarely ship a "use client" directive.
A small client module that re-exports the components you render from the server is enough. Everything is still server-rendered; the directive only decides what hydrates.
Put the boundary where the interactivity starts, not where the library starts.
Components that take functions, such as icons, accessors and event handlers, need a client wrapper, because functions can't cross the server-to-client boundary.