UNPKG

react-tvcx

Version:

A library providing functions to help users create a reusable component system for their projects using React, Tailwind CSS, and TypeScript.

95 lines (62 loc) 3.02 kB
# react-tvcx `react-tvcx` is a library that provides functions to help users create a reusable component system for their projects using React, Tailwind CSS, and TypeScript. It simplifies the creation and management of components with support for variant styles and context-based slot management. ## Installation You can install `react-tvcx` using npm or yarn: ```bash npm install react-tvcx ``` ## Usage To use the react-tvcx library, you will need to create a component factory by defining your components and their variants. Here's a basic example of how to set up a checkbox component with react-tvcx. ## Example First, import the necessary functions from the library: ```tsx import { createComponentFactory } from 'react-tvcx' import { Checkbox } from './Checkbox' // Assume Checkbox is your base component ``` Next, create the component factory: ```tsx const { withRoot, withSlot } = createComponentFactory(Checkbox) ``` Now, define the components using the withRoot and withSlot functions: ```tsx const Root = withRoot(Checkbox.Root, 'base') const RootProvider = withRoot(Checkbox.RootProvider, 'base') const Context = withSlot(Checkbox.Context) const Control = withSlot(Checkbox.Control, 'control') const Group = withSlot(Checkbox.Group) const HiddenInput = withSlot(Checkbox.HiddenInput) const Indicator = withSlot(Checkbox.Indicator, 'indicator') const Label = withSlot(Checkbox.Label, 'label') ``` Creating Your Own Components To create your own components using react-tvcx, follow these steps: - Define Your Base Component: Create a base component that will be enhanced with the react-tvcx features. - Use createComponentFactory: Call createComponentFactory with your base component. - Wrap Your Components: Use withRoot for components that will serve as the primary element (like containers) and withSlot for child components (like labels or buttons). - Render Your Components: Use the wrapped components in your application as you would with any React component. Example Component Structure Here’s how you might structure a simple Checkbox component: ```tsx import React from 'react' export const Component = createComponentTree(CustomRoot, { Root, RootProvider, Context, Control, Group, HiddenInput, Indicator, Label, }) Component.displayName = 'Checkbox' ``` ## Thanks to ParkUI team https://park-ui.com/ I would like to express my gratitude to the ParkUI team for their inspiring ideas and code examples. Their work has greatly influenced the development of my library, react-tvcx. Thank you! ## Contributing We welcome contributions! Please submit a pull request or open an issue if you have suggestions or improvements. ## License This project is licensed under the MIT License. ## Contact For further inquiries, please reach out to onepercman. <a href="https://www.buymeacoffee.com/onepercman" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174" style="border-radius:6px"></a>