{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "sticky-bottom-bar",
  "title": "Sticky bottom bar",
  "description": "safe-area action bar under a ScrollView (`pb-32`)",
  "dependencies": [
    "react-native-safe-area-context@~5.7.0"
  ],
  "registryDependencies": [
    "@kit-native/lib-utils"
  ],
  "files": [
    {
      "path": "components/kit/sticky-bottom-bar.tsx",
      "content": "import { cn } from '@/lib/utils';\nimport * as React from 'react';\nimport { View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\ntype Props = {\n  children: React.ReactNode;\n  /** No fill and no top border — for CTAs floating over hero art. */\n  transparent?: boolean;\n  className?: string;\n};\n\n/**\n * Safe-area-aware action bar pinned under a scroll view. Children always share the width\n * equally (one child fills it). Give the ScrollView ~pb-32 so content clears the bar.\n */\nexport function StickyBottomBar({ children, transparent, className }: Props) {\n  const insets = useSafeAreaInsets();\n  const kids = React.Children.toArray(children);\n  return (\n    <View\n      className={cn('flex-row gap-3 px-5 pt-3', !transparent && 'bg-background border-border border-t', className)}\n      style={{ paddingBottom: insets.bottom + 12 }}>\n      {kids.map((k, i) => (\n        <View key={i} className=\"flex-1\">\n          {k}\n        </View>\n      ))}\n    </View>\n  );\n}\n",
      "type": "registry:component",
      "target": "components/kit/sticky-bottom-bar.tsx"
    }
  ],
  "meta": {
    "exports": [
      "StickyBottomBar"
    ],
    "api": "<StickyBottomBar transparent?>{buttons}</StickyBottomBar>"
  },
  "docs": "Run `npx expo install --fix` afterwards so Expo SDK packages match your SDK. Needs the kit theme (`@kit-native/theme`) and `KitThemeProvider` from `@kit-native/lib-theme-context` at the root.",
  "categories": [
    "layout"
  ],
  "type": "registry:component"
}