npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

compo-v1

v0.4.1

Published

UI Library

Downloads

51

Readme

Installation

npm i compo-v1

🔗 Demo Example

Demo Example

Typography

Usage

import { Typography } from "compo-v1";
export default function TypographyCompoEx(): JSX.Element | null {
return (

          <Typography
            type="LargeTitle1"
            text={"LargeTitle1"}
            customStyle={{ color: color.red }}
          />
          <Typography
            type="LargeTitle2"
            text={"LargeTitle2"}
            customStyle={{ color: color.blue }}
          />
          <Typography
            type="Title1"
            text={"Title1"}
            customStyle={{ color: color.primarytext }}
          />
          <Typography
            type="Title3"
            text={"Title3"}
            customStyle={{ color: color.blue, fontFamily: "SailecMedium" }}
          />

        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of Typography | text | string | required | Text you want to show | customStyle | TextStyle | optional | style to be applied on text

type Prop

Available types:

LargeTitle1

          <Typography
            type="LargeTitle1"
            text={"LargeTitle1"}
          />

LargeTitle2

          <Typography
            type="LargeTitle2"
            text={"LargeTitle2"}
          />

Title1

          <Typography
            type="Title1"
            text={"Title1"}
          />

Title2

          <Typography
            type="Title2"
            text={"Title2"}
          />

Title3

          <Typography
            type="Title3"
            text={"Title3"}
          />

Title4

          <Typography
            type="Title4"
            text={"Title4"}
          />

Headline1

          <Typography
            type="Headline1"
            text={"Headline1"}
          />

Headline2

          <Typography
            type="Headline2"
            text={"Headline2"}
          />

Subheadline

          <Typography
            type="Subheadline"
            text={"Subheadline"}
          />

BodyLink

          <Typography
            type="BodyLink"
            text={"BodyLink"}
          />

Body

          <Typography
            type="Body"
            text={"Body"}
          />

BodyBold

          <Typography
            type="BodyBold"
            text={"BodyBold"}
          />

Caption1

          <Typography
            type="Caption1"
            text={"Caption1"}
          />

Caption2

          <Typography
            type="Caption2"
            text={"Caption2"}
          />

Caption3

          <Typography
            type="Caption3"
            text={"Caption3"}
          />

TabItemsInactive

          <Typography
            type="TabItemsInactive"
            text={"TabItemsInactive"}
          />

TabItemsActive

          <Typography
            type="TabItemsActive"
            text={"TabItemsActive"}
          />

ButtonSmall

          <Typography
            type="ButtonSmall"
            text={"ButtonSmall"}
          />

ButtonMedium

          <Typography
            type="ButtonMedium"
            text={"ButtonMedium"}
          />

ButtonLarge

          <Typography
            type="ButtonLarge"
            text={"ButtonLarge"}
          />

TabBarInactive

          <Typography
            type="TabBarInactive"
            text={"TabBarInactive"}
          />

TabBarActive

          <Typography
            type="TabBarActive"
            text={"TabBarActive"}
          />

Button

Usage

import { Button } from "compo-v1";
export default function ButtonCompoEx(): JSX.Element | null {
return (
          <Button
            customButtonStyle={{ marginBottom: 15 }}
            type="primaryLarge"
            buttonTitle="button1"
            onPress={() => {}}
          />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of button | buttonTitle | string | required | text on button | onPress | function | required | Action performed on button click | customTextStyle | TextStyle | optional | style to be applied on text | customButtonStyle | ViewStyle | optional | style to be applied on button

type Prop

Available types:

primaryLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

primarySmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primarySmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryHoverLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryHoverLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryHoverMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryHoverMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryHoverSmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryHoverSmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryActiveLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryActiveLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryActiveMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryActiveMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryActiveSmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryActiveSmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryDisableLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryDisableLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryDisableMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryDisableMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

primaryDisableSmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="primaryDisableSmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondarySmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondarySmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryHoverLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryHoverLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryHoverMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryHoverMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryHoverSmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryHoverSmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryActiveLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryActiveLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryActiveMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryActiveMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryActiveSmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryActiveSmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryDisableLarge

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryDisableLarge"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryDisableMedium

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryDisableMedium"
        buttonTitle="button1"
        onPress={() => {}}
      />

secondaryDisableSmall

      <Button
        customButtonStyle={{ marginBottom: 15 }}
        type="secondaryDisableSmall"
        buttonTitle="button1"
        onPress={() => {}}
      />

FooterButton

Usage

import { FooterButton } from "compo-v1";
export default function FooterButtonCompoEx(): JSX.Element | null {
return (
          <FooterButton
            type="doubleFooterButton"
            buttonTitle="DoublePrimaryButton"
            secondButtonTitle="DoubleNonPrimaryButton"
          />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of footerButton | buttonTitle | string | required | text on button | onPress | function | required | Action performed on button click | secondButtonTitle | string | required | text on bottom button, if there are two buttons | onSecondButtonPress | function | required | Action performed on bottom button click, if there are two buttons | customTextStyle | TextStyle | optional | style to be applied on text | customButtonStyle | ViewStyle | optional | style to be applied on button | customButtonContainerStyle | ViewStyle | optional | style to be applied on contanier, if there are two buttons |disabled|boolean|optional| To disabled the button

type Prop

Available types:

singleFooterButton

      <FooterButton
        type="singleFooterButton"
        buttonTitle="SinglePrimaryButton"
        customButtonStyle={{ marginBottom: 30 }}
        onPress={()=>{}}
      />

doubleFooterButton

      <FooterButton
        type="doubleFooterButton"
        buttonTitle="DoublePrimaryButton"
        secondButtonTitle="DoubleNonPrimaryButton"
        onPress={()=>{}}
        onSecondButtonPress={()=>{}}

      />

RadioButton

Usage

import { RadioButton } from "compo-v1";
export default function RadioButtonCompoEx(): JSX.Element | null {
  const [isChecked, setIsChecked] = useState(false);
  const handleRadioButtonPress = (option: string) => {
    setIsChecked(!isChecked);
  };

return (
        <RadioButton
          type="primaryRadioButton"
          selected={isChecked}
          onPress={() => handleRadioButtonPress("option")}
          radioButtonStyle={{    backgroundColor:"#ECF0FF" }}
          radioButtonSelectedStyle={    backgroundColor: "#503374"}
        />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of radio button | onPress | function | required | Action performed on button click | selected | boolean | false | true if button is selected | radioButtonStyle | ViewStyle | optional | style to be applied on radio button | radioButtonSelectedStyle | ViewStyle | optional | style to be applied on selected radio button

type Prop

Available types:

primaryRadioButton

    <RadioButton
      type="primaryRadioButton"
      selected={isChecked}
      onPress={() => handleRadioButtonPress("option")}
      radioButtonStyle={{    backgroundColor:"#ECF0FF" }}
      radioButtonSelectedStyle={    backgroundColor: "#503374"}
    />

disableRadioButton

    <RadioButton
      type="disableRadioButton"
      selected={isChecked}
      onPress={() => handleRadioButtonPress("option")}
      radioButtonStyle={{    backgroundColor:"#ECF0FF" }}
      radioButtonSelectedStyle={    backgroundColor: "#503374"}
    />

ToggleButton

Usage

import { ToggleButton } from "compo-v1";
export default function ToggleButtonCompoEx(): JSX.Element | null {
  const handleToggle = (value: boolean) => {
    console.log("Toggle value:", value);
  };

return (
          <ToggleButton
            onToggle={() => handleToggle}
           activebgColor="#ECF0FF"
           activethumbColor="#503374"
           inActivebgColor="#ECF0FF"
           inActivethumbColor="#503374"
           style={{ marginBottom: 20 }}
            type="primaryToggleButton"
          />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of toggle | onPress | function | required | Action performed on toggle | style | ViewStyle | optional | style to be applied on toggle container |activebgColor | string | optional | Background color of the toggle button when active. |activethumbColor | string | optional | Thumb color of the toggle button when active. |inActivebgColor | string | optional | Background color of the toggle button when inactive. |inActivethumbColor | string | optional | Thumb color of the toggle button when inactive.

type Prop

Available types:

primaryToggleButton

      <ToggleButton
       activebgColor="#ECF0FF"
       activethumbColor="#503374"
       inActivebgColor="#ECF0FF"
       inActivethumbColor="#503374"
       onToggle={() => handleToggle}
       style={{ marginBottom: 20 }}
        type="primaryToggleButton"
      />

disableToggleButton

      <ToggleButton
       activebgColor="#ECF0FF"
       activethumbColor="#503374"
       inActivebgColor="#ECF0FF"
       inActivethumbColor="#503374"
       onToggle={() => handleToggle}
       style={{ marginBottom: 20 }}
       type="disableToggleButton"
      />

CheckboxButton

Usage

import { CheckboxButton } from "compo-v1";
export default function CheckboxButtonCompoEx(): JSX.Element | null {
  const [isChecked, setIsChecked] = useState(false);
  const handleCheckboxChange = (checked: boolean) => {
    setIsChecked(checked);
  };

return (
          <CheckboxButton
            type="primaryCheckboxButton"
            checked={isChecked1}
            onChange={handleCheckboxChange1}
            customBoxStyle={{ marginBottom: 15 }}
          />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of toggle | onChange | function | required | Action performed on checked | checked | boolean | false | true if checkbox is checked | customBoxStyle | ViewStyle | optional | style to be applied on check box

type Prop

Available types:

primaryCheckboxButton

      <CheckboxButton
        type="primaryCheckboxButton"
        checked={isChecked}
        onChange={handleCheckboxChange1}
        customBoxStyle={{ marginBottom: 15 }}
      />

disableCheckboxButton

      <CheckboxButton
        type="disableCheckboxButton"
        checked={isChecked2}
        onChange={handleCheckboxChange2}
      />

Pagination

Usage

import { Pagination } from "compo-v1";
export default function PaginationCompoEx(): JSX.Element | null {
  const handleOptionChange = () => {
    // Perform any necessary actions based on the selected option
  };

return (
          <Pagination options={6} onChange={handleOptionChange} />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | onChange | function | required | Action performed on change | options | number[] or number | required | an array pagination Items

Header

Usage

import { Header } from "compo-v1";
export default function HeaderCompoEx(): JSX.Element | null {
return (
        <Header
          type={"header"}
          HeaderRight={
            <Text
              style={[
                {
                  color: color.primarytext,
                  fontWeight: "600",
                  fontSize: 15,
                  lineHeight: 20,
                },
              ]}
            >
              Right
            </Text>
          }
          HeaderMiddle={
            <Text
              style={[
                {
                  color: color.primarytext,
                  fontWeight: "600",
                  fontSize: 15,
                  lineHeight: 20,
                },
              ]}
            >
              Label
            </Text>
          }
          Headerleft={
            <TouchableOpacity onPress={() => {}}>
              <Text
                style={[
                  {
                    color: color.primarytext,
                    fontWeight: "600",
                    fontSize: 15,
                    lineHeight: 20,
                  },
                ]}
              >
                Left
              </Text>
            </TouchableOpacity>
          }
        />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of header | Headerleft | ReactNode | optional | any jsx element on left side of header | HeaderMiddle | ReactNode | optional | any jsx element on middle of header | HeaderRight | ReactNode | optional | any jsx element on right side of header | containerStyle | ViewStyle | optional | style to be applied on header container

type Prop

Available types:

header

    <Header
      type={"header"}
      HeaderRight={
        <Text
          style={[
            {
              color: color.primarytext,
              fontWeight: "600",
              fontSize: 15,
              lineHeight: 20,
            },
          ]}
        >
          Right
        </Text>
      }
      HeaderMiddle={
        <Text
          style={[
            {
              color: color.primarytext,
              fontWeight: "600",
              fontSize: 15,
              lineHeight: 20,
            },
          ]}
        >
          Label
        </Text>
      }
      Headerleft={
        <TouchableOpacity onPress={() => {}}>
          <Text
            style={[
              {
                color: color.primarytext,
                fontWeight: "600",
                fontSize: 15,
                lineHeight: 20,
              },
            ]}
          >
            Left
          </Text>
        </TouchableOpacity>
      }
    />
    

BottomBar

Usage

Import the necessary components and modules in your App.js file:

import React from "react";
import { NavigationContainer } from "@react-navigation/native";
import { BottomTab } from "path of BottomBar component file "; 
  return (
      <NavigationContainer>
        <BottomTab />
      </NavigationContainer>
  );
```jsx
import { BottomBar } from "compo-v1";

export default function BottomBarExample(): JSX.Element | null {
  const tabs = [
    {
      screen: Screen1,
      icon: <Icon1 />,
      label: "Tab 1",
    },
    {
      screen: Screen2,
      icon: <Icon2 />,
      label: "Tab 2",
    },
    {
      screen: Screen3,
      icon: <Icon3 />,
      label: "Tab 3",
    },
  ];

  return (
    <BottomBar
      type="bottomBar"
      tabBarShowLabel={true}
      BottomBarStyle={styles.bottomBar}
      tabBarActiveTintColor="#FF0000"
      tabBarInactiveTintColor="#808080"
      tabBarIconStyle={styles.tabBarIcon}
      tabBarLabelStyle={styles.tabBarLabel}
      tabs={tabs}
    />
  );
}

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | | type | string | required | Type of bottom bar | tabBarShowLabel | boolean | optional | Determines whether to show labels on the bottom bar tabs | BottomBarStyle | any | optional | Style to be applied to the bottom bar container | tabBarActiveTintColor | string | optional | Color of the active tab icon and label | tabBarInactiveTintColor | string | optional | Color of the inactive tab icons and labels | tabBarIconStyle | any | optional | Style to be applied to the tab icons | tabBarLabelStyle | any | optional | Style to be applied to the tab labels | tabs | array | required | Array of tab objects defining each tab's properties

| Properties | Type | Description | | ------- | --- | --- | | screen | React.ComponentType | Component to render for the tab | icon | any | Determines whether to show labels on the bottom bar tabs | label | string | Label for the tab

type Prop

Available types:

bottomBar

AppTheme

Usage

Import the necessary components and modules in your App.js file:

import React from "react";
import { ThemeProvider } from "compo-v1"; 
  return (
    <ThemeProvider>
    // other components
    </ThemeProvider>
  );
import React, { useState } from "react";
import { AppTheme } from "compo-v1";

export default function AppThemeExample() {
  const [theme, setTheme] = useState("light");

  const handleThemeChange = (newTheme) => {
    setTheme(newTheme);
  };

  return (
    <AppTheme onThemeChange={handleThemeChange} />
  );
}

Inputs

Usage

import { Inputs } from "compo-v1";

export default function InputsCompoEx(): JSX.Element | null {
  const [primaryVal, setPrimaryVal] = useState("");

  return (
        <Inputs
          type="primaryInput"
          placeholder="First Name"
          inputLeft={
            <Icon
              name="IconUserCircle"
              width={24}
              height={24}
              stroke={"#503374"}
            />
          }
          value={primaryVal}
          onChangeText={(val) => setPrimaryVal(val)}
          label="First Name"
        />
  );
}

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | |type | string | required | Type of input |value string | optional | Current value of the input |placeholder | string | optional | Placeholder text for the input |onChangeText | function | optional | Callback function to handle text input changes |placeholderTextColor | string | optional | Color of the placeholder text |inputStyle | StyleProp | optional | Style to be applied to the input field |inputLeft | ReactNode | optional | Custom component to be rendered on the left side of the input field |inputRight | ReactNode | optional | Custom component to be rendered on the right side of the input field |labelStyle | any | optional | Style to be applied to the input label |label | string | optional | Label text for the input |InputContainerStyle | ViewStyle | optional | Style to be applied to the input container |maxLength | number | optional | Maximum number of characters allowed in the input |options | any | optional | Options for dropdown inputs |onSelect | any | optional | Callback function to handle dropdown option selection |listStyle | ViewStyle | optional | Style to be applied to the dropdown option list |listTextStyle | StyleProp | optional | Style to be applied to the dropdown option list text

type Prop

Available types:

searchInput

    <Inputs
      type="searchInput"
      placeholder="search"
      inputLeft={
        <Icon
          name="IconSearchSm"
          width={24}
          height={24}
          stroke={"#503374"}
        />
      }
      inputRight={
        <TouchableOpacity onPress={() => setSearchVal("")}>
          <Text>clean</Text>
        </TouchableOpacity>
      }
      value={searchVal}
      onChangeText={(val) => setSearchVal(val)}
    />

primaryInput

    <Inputs
      type="primaryInput"
      placeholder="First Name"
      inputLeft={
        <Icon
          name="IconUserCircle"
          width={24}
          height={24}
          stroke={"#503374"}
        />
      }
      value={primaryVal}
      onChangeText={(val) => setPrimaryVal(val)}
      label="First Name"
    />

textBox

    <Inputs
      type="textBox"
      placeholder="Description"
      inputLeft={
        <Icon
          name="IconUserCircle"
          width={24}
          height={24}
          stroke={"#503374"}
        />
      }
      value={textBoxVal}
      onChangeText={(val) => setTextBoxVal(val)}
      label="Description"
      maxLength={300}
    />

secureInputField

    <Inputs
      type="secureInputField"
      placeholder="Password"
      value={secureVal}
      onChangeText={(val) => setSecureVal(val)}
      label="Password"
    />

largeDropDown

      <Inputs
        type="largeDropDown"
        onSelect={(value) => setSelectedValue(value)}
        options={dummyData}
        label={"DD field label"}
        placeholder={"Placeholder"}
      />

smallDropDown

      <Inputs
        type="smallDropDown"
        onSelect={(value) => setSelectedValue(value)}
        options={dummyData}
        label={"DD field label"}
        placeholder={"Placeholder"}
      />

ListItem

Usage

import { ListItem } from "compo-v1";
export default function ListItemCompoEx(): JSX.Element | null {
  const handleOptionChange = () => {
    // Perform any necessary actions based on the selected option
  };

  return (
        <ListItem
          onPress={handleOptionChange}
          title="Lg1"
          value="value"
          type="Lg1"
          Itemleft={
            <Icon
              name="CheckIcon"
              width={24}
              height={24}
              stroke={theme == "dark" ? "#ffffff" : "#503374"}
            />
          }
          ItemRight={
            <Icon
              name="rightArrowIcon"
              width={24}
              height={24}
              stroke={theme == "dark" ? "#ffffff" : "#503374"}
            />
          }
        />
  );
}

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | |type| string| required | Type of list item |title| string| optional| Title text for the list item |value| string| optional |Value text for the list item |desc| string| optional |Description text for the list item |company| string| optional |Company name for the list item |project| string| optional |Project name for the list item |date| string| optional |Date for the list item |rupees| string| optional |Rupees amount for the list item |tags | string or string[]| optional | Tags for the list item |ItemLeft| ReactNode| optional |Custom component to be rendered on the left side of the list item |ItemRight| ReactNode| optional | Custom component to be rendered on the right side of the list item |onPress| function| optional |Callback function to handle list item press |containerStyle| ViewStyle| optional |Style to be applied to the list item container |titleStyle| any| optional | Style to be applied to the title text of the list item |valueStyle| any| optional | Style to be applied to the value text of the list item |descStyle| any| optional| Style to be applied to the description text of the list item |checkboxStyle| ViewStyle| optional | Style to be applied to the checkbox component |radioButtonStyle| ViewStyle| optional | Style to be applied to the radio button icon component |radioButtonSelectedStyle| ViewStyle| optional | Style to be applied to the selected radio button component |switchStyle| ViewStyle| optional |Style to be applied to the switch component |switchActiveColor| string| optional | Active color for the switch component |switchInactiveColor| string| optional | Inactive color for the switch component

type Prop

Available types:

Lg1

    <ListItem
      onPress={handleOptionChange}
      title="Lg1"
      value="value"
      type="Lg1"
      Itemleft={
        <Icon
          name="CheckIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
      ItemRight={
        <Icon
          name="rightArrowIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
    />

Lg2

    <ListItem
      onPress={handleOptionChange}
      title="Lg2"
      value="value"
      desc="desc"
      type="Lg2"
      Itemleft={
        <Icon
          name="CheckIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
      ItemRight={
        <Icon
          name="rightArrowIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
    />

Lr2

    <ListItem
      onPress={handleOptionChange}
      title="Lr2"
      value="value"
      desc="desc"
      type="Lr2"
      Itemleft={
        <Icon
          name="CheckIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
      ItemRight={
        <Icon
          name="rightArrowIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
    />

leftRadio

    <ListItem
      onPress={handleOptionChange}
      title="leftRadio"
      value="value"
      desc="desc"
      type="leftRadio"
    />

leftCheckbox

    <ListItem
      onPress={handleOptionChange}
      title="leftCheckbox"
      value="value"
      desc="desc"
      type="leftCheckbox"
    />

rightRadio

    <ListItem
      onPress={handleOptionChange}
      title="rightRadio"
      value="value"
      desc="desc"
      type="rightRadio"
      Itemleft={
        <Icon
          name="CheckIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
    />

rightCheckbox

    <ListItem
      onPress={handleOptionChange}
      title="rightCheckbox"
      value="value"
      desc="desc"
      type="rightCheckbox"
      Itemleft={
        <Icon
          name="CheckIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
    />

rightSwitch

    <ListItem
      onPress={handleOptionChange}
      title="rightSwitch"
      value="value"
      desc="desc"
      type="rightSwitch"
      Itemleft={
        <Icon
          name="CheckIcon"
          width={24}
          height={24}
          stroke={theme == "dark" ? "#ffffff" : "#503374"}
        />
      }
    />

kanbanPrimary

    <ListItem
      onPress={handleOptionChange}
      company={"company Name"}
      project={"Project Name"}
      date="01/01/24"
      rupees={"000"}
      tags={"Ol"}
      type="kanbanPrimary"
      ItemRight={
        <TouchableOpacity onPress={() => {}}>
          <Icon
            name="DownIcon"
            width={24}
            height={24}
            stroke={theme == "dark" ? "#ffffff" : "#503374"}
          />
          </TouchableOpacity>
      }
    />

TopTabBar

Usage

import { TopTabBar } from "compo-v1";

export default function TopTabBarCompoEx(): JSX.Element | null {

  const [activeTab, setActiveTab] = useState("Tab1");

  return (
      <TopTabBar
          titles={["Tab1", "Tab2", "Tab3", "Tab4"]}
          style={{ backgroundColor: "#FFFFFF", borderRadius: 20 }}
          activeTab={activeTab}
          onPressTab={(item) => {
            setActiveTab(item);
            setShowModal(true);
          }}
          activeTabText={{ color: "#005AE2" }}
          styleText={{ color: "#000000" }}
          containerStyle={{ backgroundColor: "#F3F3F3" }}
        />

  );
}

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | |style | StyleProp | optional | Custom style for the active tab |titles | string[] | required | Array of titles for the tabs |styleText | StyleProp | optional | Custom style for the tab text |activeTab | string | required | Currently active tab |onPressTab |function |required | Action performed when a tab is pressed |activeTabText | StyleProp | optional| Custom style for the active tab text |containerStyle | StyleProp | optional |Custom style for the container view

BackgroundImage

Usage

import { BackgroundImage } from "compo-v1";

export default function BackgroundImageCompoEx(): JSX.Element | null {

  return (
<BackgroundImage
BgImageSource={require("../assets/bgImage.jpg")}
style={{ marginVertical: 20, borderRadius: 16 }}
>
<View
  style={{
    flex: 1.5,
    alignItems: "center",
    justifyContent: "center",
  }}
>
  <Text
    style={{
      fontWeight: "800",
      fontSize: 20,
      lineHeight: 24,
      color: "#ffffff",
    }}
  >
    Jamie Curtis
  </Text>
  <Text
    style={{
      fontWeight: "400",
      fontSize: 12,
      lineHeight: 20,
      color: "#ffffff",
    }}
  >
    Followed by 326 Peers
  </Text>
</View>
</BackgroundImage>

  );
}

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | |BgImageSource | ImageSourcePropType | required | Image source for the background image |style | ViewStyle | optional | Custom style for the component

Modals

Usage

import { Modals } from "compo-v1";
export default function ModalExample(): JSX.Element | null {
    const [showModal, setShowModal] = useState(true);
return (
        <Modals
          type="popUpModal"
          showModal={showModal}
          Icon={
            <Icon
              name="IconSearchSm"
              width={24}
              height={24}
              stroke={"#503374"}
            />
          }
          modalDes={"Your modal description"}
          onButtonPress={(button) => {
            if (button?.buttonTitles === "Cancel") {
              console.log("Cancel");
              setShowModal(false);
            }
            if (button?.buttonTitles === "Okay") {
              console.log("Okay");
              setShowModal(false);
            }
          }}
          button={[
            { buttonTitles: "Cancel", buttonTitlesColor: "red" },
            { buttonTitles: "Okay" },
          ]}
        />
        )
    }

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | |showModal| boolean| required| Specifies whether the modal should be displayed or hidden. |Icon| ReactNode| optional| JSX element for the modal icon. |modalDes| string | required | Description text for the modal. |onButtonPress | function | required | Function to be called when a button is pressed. |button | ButtonItem[] | required | Array of button items to be displayed in the modal. |modalStyle | ViewStyle | optional | Style to be applied to the modal container. |desTextStyle | TextStyle | optional | Style to be applied to the modal description text. |type | string | required | Type of modal.

type Prop

Available types:

popUpModal

    <Modals
      type="popUpModal"
      showModal={showModal}
      Icon={
        <Icon
          name="IconSearchSm"
          width={24}
          height={24}
          stroke={"#503374"}
        />
      }
      modalDes={"Your modal description"}
      onButtonPress={(button) => {
        if (button?.buttonTitles === "Cancel") {
          console.log("Cancel");
          setShowModal(false);
        }
        if (button?.buttonTitles === "Okay") {
          console.log("Okay");
          setShowModal(false);
        }
      }}
      button={[
        { buttonTitles: "Cancel", buttonTitlesColor: "red" },
        { buttonTitles: "Okay" },
      ]}
    />

ScreenLayout

Usage

import { ScreenLayout } from "compo-v1";

export default function ScreenExample(): JSX.Element {
  return (
    <ScreenLayout
      statusBarColor="#ffffff"
      transclucent={false}
      scrollEnabled={false}
      headerUnScrollable={() => null}
      footerUnScrollable={() => null}
      barStyle="dark-content"
      containerStyle={styles.container}
      type="primaryLayout"
    >
      {/* Your screen content */}
    </ScreenLayout>
  );
}

Props

| Properties | Type | Default | Description | | ------- | --- | --- | --- | |statusBarColor| string | "#ffffff" | The color of the status bar. |transclucent | boolean | false | Specifies whether the status bar should be translucent. |scrollEnabled | boolean | false | Specifies whether the screen content should be scrollable. |headerUnScrollable | function | optional | Function returning the header component that remains fixed and unaffected by scrolling. |footerUnScrollable | function | optional | Function returning the footer component that remains fixed and unaffected by scrolling. |barStyle | "default" or "light-content" or "dark-content" | "dark-content" | The style of the status bar. |containerStyle | ViewStyle | optional | Style to be applied to the screen container. |type | string | required | Type of screen layout.

type Prop

Available types:

primaryLayout

      <ScreenLayout
      type="primaryLayout"
      scrollEnabled={true}
      barStyle={"dark-content"}
      statusBarColor="red"
      containerStyle={{ backgroundColor: "#ffffff" }}
      headerUnScrollable={() => (
        <View
          style={{
            alignItems: "center",
            paddingHorizontal: 10,
            backgroundColor: "#ffffff",
          }}
        >
          <Typography
            type="LargeTitle1"
            text={"fixed header"}
            customStyle={{
              color: color.primarytext,
              fontSize: 20,
              marginBottom: 10,
            }}
          />
        </View>
      )}
      footerUnScrollable={() => (
        <FooterButton
          type="singleFooterButton"
          buttonTitle="fixed header"
          disabled={!isChecked1}
          customButtonStyle={{ backgroundColor: !isChecked1 ? "grey" : "blue" }}
        />
      )}
    >
  {/* Your screen content */}
  </ScreenLayout>