import { component$, useStylesScoped$ } from '@builder.io/qwik'; import { $translate as t } from 'qwik-speak'; import Button, { ButtonPropsTarget, ButtonTheme } from '../../button/button'; import Card from '../../card/card'; import { ContainerTheme } from '../../container/container'; import { IconName } from '../../icon/data'; import Icon from '../../icon/icon'; import Section, { SectionHeader, SectionPadding } from '../../section/section'; import styles from './evolving.css?inline'; import Line from '../../line/line'; export const bundlers = [ { logo: '/bundlers/webpack.svg', name: 'Webpack', actionHref: 'https://webpack.js.org/concepts/module-federation', target: '_blank' as ButtonPropsTarget, }, { logo: '/bundlers/rspack.svg', name: 'Rspack', actionHref: 'https://www.rspack.dev', target: '_blank' as ButtonPropsTarget, }, { logo: '/bundlers/vite.svg', name: 'Vite', actionHref: 'https://vitejs.dev', target: '_blank' as ButtonPropsTarget, }, { logo: '/bundlers/rollup.svg', name: 'Rollup', actionHref: 'https://rollupjs.org', target: '_blank' as ButtonPropsTarget, }, { logo: '/bundlers/esbuild.svg', name: 'esBuild', actionHref: 'https://esbuild.github.io', target: '_blank' as ButtonPropsTarget, }, ]; export default component$(() => { useStylesScoped$(styles); const cards = [ { title: t('evolving.rfcs.title@@RFCs'), subtitle: t( 'evolving.rfcs.subtitle@@Participate in the community discussions to decide on what features are coming next', ), actionText: t('evolving.rfcs.action@@Take part now!'), actionHref: 'https://github.com/module-federation/core/discussions/categories/rfc', target: '_blank' as ButtonPropsTarget, lineClass: 'absolute w-24 bottom-[5%] md:bottom-[20%] left-full -translate-x-full', lineShowStart: true, lineShowEnd: false, }, { title: t('evolving.roadmap.title@@Module Federation Roadmap'), subtitle: t( 'evolving.roadmap.subtitle@@Discover the future of Module Federation', ), actionText: t('evolving.roadmap.action@@Explore it!'), actionHref: 'https://miro.com/app/board/uXjVPvdfG2I=/?share_link_id=45887343083', target: '_blank' as ButtonPropsTarget, lineClass: 'absolute w-24 top-0 rotate-90 right-[10%] origin-left translate-x-full -translate-y-1/2', lineShowStart: false, lineShowEnd: true, }, ]; const title = t('evolving.title@@Evolving Module Federation'); const subtitle = t( 'evolving.subtitle@@The world of Module Federation is constantly evolving and growing based on the feedback from the community. The RFCs are open for all to participate in the discussion and the roadmap is published.', ); return (
{cards.map((card) => { return (

{card.title}

{card.subtitle}

{card.lineClass && ( )}
); })}

{t('evolving.supported-bundlers.title@@Supported bundlers')}

{bundlers.map((bundler) => { return ( {bundler.name}
{bundler.name}
); })}
); });