Tabs Block
contentbit/tabsFreeComponent
Tabbed switcher for alternative methods.
Install it
npx shadcn@latest add https://contentbit.dev/r/tabs.jsonSource
1import { tabsBlock, type TabData } from '@contentbit/blocks'2import { defineBlockComponent } from '@contentbit/react'34import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'5import { isValidatedBlock } from '@contentbit/core'67export const TabsBlock = defineBlockComponent(tabsBlock, ({ node, ctx }) => {8 const data = node.data9 return (10 <Tabs data-cb-styled defaultValue="tab-0" className="my-6">11 <TabsList>12 {data.blocks.map((tab, i) => (13 <TabsTrigger key={i} value={`tab-${i}`}>14 {String(tab.props.title)}15 </TabsTrigger>16 ))}17 </TabsList>18 {data.blocks.map((tab, i) => (19 <TabsContent key={i} value={`tab-${i}`} className="text-sm leading-relaxed">20 {ctx.renderMarkdown(isValidatedBlock(tab) ? (tab.data as TabData).markdown : tab.body)}21 </TabsContent>22 ))}23 </Tabs>24 )25})
What it pulls in
npm packages
Other registry items
Files it writes
More from contentbit
All 20 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Callout Block (Astro)astro-callout | contentbit | Components | Free | 3 deps | |
| Comparison Block (Astro)astro-comparison | contentbit | Components | Free | 3 deps | |
| Content Renderer (Astro)astro-content-renderer | contentbit | Components | Free | 3 deps | |
| FAQ Block (Astro)astro-faq | contentbit | Components | Free | 3 deps | |
| Key Metrics Block (Astro)astro-key-metrics | contentbit | Components | Free | 3 deps | |
| Pros & Cons Block (Astro)astro-pros-cons | contentbit | Components | Free | 3 deps | |
| Quick Reference Block (Astro)astro-quick-ref | contentbit | Components | Free | 3 deps | |
| Steps Block (Astro)astro-steps | contentbit | Components | Free | 3 deps |
