3.2.4 • Published 5 months ago

@asyncui/react v3.2.4

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

ASYNC UI

Come see what it looks like in our Storybook.

Install packages

npm i @asyncui/react

pnpm add @asyncui/react

Tailwind CSS Config

import { colors } from "@asyncui/react";
import { nextui } from '@nextui-org/react'

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}",
    "./node_modules/@asyncui/react/dist/**/*.{js,ts,jsx,tsx}",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {
        colors: {
            colors
        }
    },
  },
}
export const plugins = [nextui()]

Use asyncui components

Text

"use client";

import { Text } from "@asyncui/react";

export default function Home() {
  return (
    <Text size="xxs" className="text-colors-primary-700">
      Hello World
    </Text>
  );
}

Avatar

"use client";

import { AvatarComponents } from "@asyncui/react";

export default function Home() {
  return (
    <>
      <AvatarComponents.Avatar
        size="lg"
        isFocusable
        className="text-colors-primary-400"
        showFallback
        src="https://github.com/andrebellico.png"
      />
      <AvatarComponents.Avatar
        isBordered
        isDisabled
        size="lg"
        className="text-colors-neutral-0 bg-colors-neutral-600"
        src=""
      />

      <AvatarComponents.Group max={4} isBordered total={1}>
        <AvatarComponents.Avatar
          className="text-colors-primary-400"
          showFallback
          src="https://github.com/andrebellico.png"
        />
        <AvatarComponents.Avatar
          className="text-colors-neutral-0 bg-colors-neutral-600"
          src=""
        />
      </AvatarComponents.Group>
    </>
  );
}

Header

"use client";

import { Header } from "@asyncui/react";

export default function Home() {
  return (
    <div>
      <Header
        subtitle="36 entries found"
        title="Create an Entry"
        primaryActionBtn={
          <button className="w-[122px] h-9 px-4 py-2.5 text-colors-neutral-0 bg-indigo-600 rounded justify-center items-center gap-2 inline-flex">
            Save
          </button>
        }
        secondaryActionBtn={
          <button className="w-[76px] h-8 px-4 py-2 bg-white rounded border border-zinc-200 justify-center items-center gap-2 inline-flex">
            Edit
          </button>
        }
        tertiaryActionBtn={
          <button className="w-[122px] h-9 px-4 py-2.5 border-solid border text-colors-neutral-1000 bg-colors-neutral-0 rounded justify-center items-center gap-2 inline-flex">
            Cancel
          </button>
        }
        back={<button className="text-colors-primary-600">Back</button>}
      ></Header>
    </div>
  );
}

Dialog

"use client";

import { Dialog } from "@asyncui/react";
import { useDisclosure } from "@nextui-org/react";

export default function Home() {
  const { isOpen, onOpen, onOpenChange } = useDisclosure();
  return (
    <>
      <div>
        <button
          onClick={onOpen}
          className="bg-colors-primary-600 border text-colors-neutral-0 px-6 py-2 rounded-md"
        >
          Show Dialog
        </button>
        <Dialog.Root
          backdrop="blur"
          isOpen={isOpen}
          onOpenChange={onOpenChange}
        >
          <Dialog.Header onClose={onOpenChange} className="bg-colors-neutral-0">
            Confirm
          </Dialog.Header>
          <Dialog.Content className="bg-colors-neutral-0 text-center">
            <span>
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem
              aspernatur cumque eius at voluptate deleniti voluptatum in quidem
              molestiae, possimus, repellendus quas, omnis consectetur sunt nam
              debitis! Ab, vel ratione.
            </span>
            <span>
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem
              aspernatur cumque eius at voluptate deleniti voluptatum in quidem
              molestiae, possimus, repellendus quas, omnis consectetur sunt nam
              debitis! Ab, vel ratione.
            </span>
          </Dialog.Content>
          <Dialog.Footer className="bg-colors-neutral-0">
            <button className=" bg-colors-danger-600 border  text-colors-neutral-0 px-6 py-2 rounded-md">
              Secondary button
            </button>
            <button className="bg-colors-primary-600 border  text-colors-neutral-0 px-6 py-2 rounded-md">
              Primary button
            </button>
          </Dialog.Footer>
        </Dialog.Root>
      </div>
    </>
  );
}

AlertModal

"use client";

import { ModalAlert } from "@asyncui/react";
import { useDisclosure } from "@nextui-org/react";

export default function Home() {
  const { isOpen, onOpen, onOpenChange } = useDisclosure();
  return (
    <>
      <div>
        <button
          onClick={onOpen}
          className="bg-colors-primary-600 border text-colors-neutral-0 px-6 py-2 rounded-md"
        >
          Show ModalAlert
        </button>
        <ModalAlert.Root
          backdrop="blur"
          isOpen={isOpen}
          onOpenChange={onOpenChange}
        >
          <ModalAlert.Header className="bg-colors-neutral-0">
            Confirmação
          </ModalAlert.Header>
          <ModalAlert.Content className="bg-colors-neutral-0 text-center">
            <span>
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem
              aspernatur cumque eius at voluptate deleniti voluptatum in quidem
              molestiae, possimus, repellendus quas, omnis consectetur sunt nam
              debitis! Ab, vel ratione.
            </span>
            <span>
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem
              aspernatur cumque eius at voluptate deleniti voluptatum in quidem
              molestiae, possimus, repellendus quas, omnis consectetur sunt nam
              debitis! Ab, vel ratione.
            </span>
          </ModalAlert.Content>
          <ModalAlert.Footer className="bg-colors-neutral-0">
            <button className=" bg-colors-danger-600 border  text-colors-neutral-0 px-6 py-2 rounded-md">
              Secondary button
            </button>
            <button className="bg-colors-primary-600 border  text-colors-neutral-0 px-6 py-2 rounded-md">
              Primary button
            </button>
          </ModalAlert.Footer>
        </ModalAlert.Root>
      </div>
    </>
  );
}

Alert/Toast

"use client";

import { useAlert } from "@asyncui/react";

export default function Home() {
  const { alerts, createToast } = useAlert();
  const addAlert = () => {
    createToast({
      title: "Warning alert:",
      children: "Alert with title and longer description.",
      variant: "success",
      onClose: () => {},
      link: "https://www.google.com/",
      textLink: "Saiba Mais",
    });
  };

  return (
    <>
      <div>
        <button
          onClick={addAlert}
          className="bg-colors-primary-600 border text-colors-neutral-0 px-6 py-2 rounded-md"
        >
          Adicionar Alert
        </button>
        {alerts}
      </div>
    </>
  );
}
3.2.4

5 months ago

3.2.3

5 months ago

3.2.2

5 months ago

3.2.1

5 months ago

3.2.0

5 months ago

3.1.1

5 months ago

3.0.3

5 months ago

3.1.0

5 months ago

3.0.6

5 months ago

3.0.5

5 months ago

3.0.2

5 months ago

3.0.1

5 months ago

3.0.0

5 months ago

2.1.0

5 months ago

2.0.0

5 months ago