
import {
  Disclosure,
  DisclosureButton,
  DisclosurePanel,
} from '@headlessui/react'
import { Icon } from '@iconify/react'
const BasicDisclosureCode = () => {
  return (
    <div>
      <div className='w-full divide-y divide-border dark:divide-darkborder rounded-xl bg-lightgray dark:bg-dark'>
        <Disclosure as='div' className='py-4 px-6' defaultOpen={true}>
          <DisclosureButton className='group flex w-full items-center justify-between'>
            <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
              What is your refund policy?
            </span>
            <Icon
              icon='solar:alt-arrow-down-outline'
              height={18}
              className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
            />
          </DisclosureButton>
          <DisclosurePanel className='mt-2 text-xs text-darklink'>
            Lorem ipsum dolor sit amet, consectetur adipisici elit…’ (complete
            text) is dummy text that is not meant to mean anything. It is used
            as a placeholder in magazine
          </DisclosurePanel>
        </Disclosure>
        <Disclosure as='div' className='py-4 px-6'>
          <DisclosureButton className='group flex w-full items-center justify-between'>
            <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
              Can I reserve a magazine?
            </span>
            <Icon
              icon='solar:alt-arrow-down-outline'
              height={18}
              className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
            />
          </DisclosureButton>
          <DisclosurePanel className='mt-2 text-xs text-darklink'>
            Lorem ipsum dolor sit amet, consectetur adipisici elit…’ (complete
            text) is dummy text that is not meant to mean anything. It is used
            as a placeholder in magazine
          </DisclosurePanel>
        </Disclosure>
        <Disclosure as='div' className='py-4 px-6'>
          <DisclosureButton className='group flex w-full items-center justify-between'>
            <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
              Do I have the right to return an item?
            </span>
            <Icon
              icon='solar:alt-arrow-down-outline'
              height={18}
              className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
            />
          </DisclosureButton>
          <DisclosurePanel className='mt-2 text-xs text-darklink'>
            Lorem ipsum dolor sit amet, consectetur adipisici elit…’ (complete
            text) is dummy text that is not meant to mean anything. It is used
            as a placeholder in magazine
          </DisclosurePanel>
        </Disclosure>
      </div>
    </div>
  )
}
export default BasicDisclosureCode
import {
  Disclosure,
  DisclosureButton,
  DisclosurePanel,
} from '@headlessui/react'
import { Icon } from '@iconify/react'
const TransitionCode = () => {
  return (
    <div>
      <div className='w-full divide-y divide-border dark:divide-darkborder rounded-xl bg-lightgray dark:bg-dark'>
        <Disclosure as='div' className='py-4 px-6' defaultOpen={true}>
          <DisclosureButton className='group flex w-full items-center justify-between'>
            <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
              What is your refund policy?
            </span>
            <Icon
              icon='solar:alt-arrow-down-outline'
              height={18}
              className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
            />
          </DisclosureButton>
          <DisclosurePanel
            transition
            className='mt-2 text-xs text-darklink origin-top transition duration-200 ease-out data-[closed]:-translate-y-6 data-[closed]:opacity-0'>
            Lorem ipsum dolor sit amet, consectetur adipisici elit…’ (complete
            text) is dummy text that is not meant to mean anything. It is used
            as a placeholder in magazine
          </DisclosurePanel>
        </Disclosure>
        <Disclosure as='div' className='py-4 px-6'>
          <DisclosureButton className='group flex w-full items-center justify-between'>
            <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
              Can I reserve a magazine?
            </span>
            <Icon
              icon='solar:alt-arrow-down-outline'
              height={18}
              className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
            />
          </DisclosureButton>
          <DisclosurePanel
            transition
            className='mt-2 text-xs text-darklink origin-top transition duration-200 ease-out data-[closed]:-translate-y-6 data-[closed]:opacity-0'>
            Lorem ipsum dolor sit amet, consectetur adipisici elit…’ (complete
            text) is dummy text that is not meant to mean anything. It is used
            as a placeholder in magazine
          </DisclosurePanel>
        </Disclosure>
        <Disclosure as='div' className='py-4 px-6'>
          <DisclosureButton className='group flex w-full items-center justify-between'>
            <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
              Do I have the right to return an item?
            </span>
            <Icon
              icon='solar:alt-arrow-down-outline'
              height={18}
              className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
            />
          </DisclosureButton>
          <DisclosurePanel
            transition
            className='mt-2 text-xs text-darklink origin-top transition duration-200 ease-out data-[closed]:-translate-y-6 data-[closed]:opacity-0'>
            Lorem ipsum dolor sit amet, consectetur adipisici elit…’ (complete
            text) is dummy text that is not meant to mean anything. It is used
            as a placeholder in magazine
          </DisclosurePanel>
        </Disclosure>
      </div>
    </div>
  )
}
export default TransitionCode
import {
  Disclosure,
  DisclosureButton,
  DisclosurePanel,
  CloseButton,
} from "@headlessui/react";
import MyCustomLink from "../MyLink";
import { Icon } from "@iconify/react";
const ClosingDisclosureCode = () => {
  return (
    <div>
      <Disclosure>
        <DisclosureButton className='group bg-primary ui-button'>
          Open mobile menu
          <Icon
            icon='solar:alt-arrow-down-outline'
            height={18}
            className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
          />
        </DisclosureButton>
        <DisclosurePanel className='px-4 py-1'>
          <CloseButton as={MyCustomLink}>Go with your link</CloseButton>
        </DisclosurePanel>
      </Disclosure>
    </div>
  )
}
export default ClosingDisclosureCode
import { forwardRef } from 'react'
import {
  Disclosure,
  DisclosureButton,
  DisclosurePanel,
} from '@headlessui/react'
import { Icon } from '@iconify/react'
let MyCustomButton = forwardRef(function (props: any, ref: any) {
  return <button className='...' ref={ref} {...props} />
})
const RenderDiclosureCode = () => {
  return (
    <div className='w-fit'>
      <Disclosure as='div'>
        <DisclosureButton
          as={MyCustomButton}
          className='group bg-secondary ui-button w-full'>
          What languages do you support?
          <Icon
            icon='solar:alt-arrow-down-outline'
            height={18}
            className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
          />
        </DisclosureButton>
        <DisclosurePanel as='ul' className='px-4 py-3'>
          <li className='py-1'>HTML</li>
          <li className='py-1'>CSS</li>
          <li className='py-1'>JavaScript</li>
        </DisclosurePanel>
      </Disclosure>
    </div>
  )
}
export default RenderDiclosureCode
import {
  Disclosure,
  DisclosureButton,
  DisclosurePanel,
} from '@headlessui/react'
import { AnimatePresence, motion } from 'framer-motion'
import { Icon } from '@iconify/react'
const FramerMotionCode = () => {
  return (
    <div>
      <div className='w-full divide-y divide-border dark:divide-darkborder rounded-xl bg-lightgray dark:bg-dark'>
        <Disclosure as='div' className='py-4 px-6'>
          {({ open }) => (
            <>
              <DisclosureButton className='group flex w-full items-center justify-between'>
                <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
                  What is your refund policy?
                </span>
                <Icon
                  icon='solar:alt-arrow-down-outline'
                  height={18}
                  className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
                />
              </DisclosureButton>
              <div className='overflow-hidden'>
                <AnimatePresence>
                  {open && (
                    <DisclosurePanel
                      static
                      as={motion.div}
                      initial={{ opacity: 0, y: -24 }}
                      animate={{ opacity: 1, y: 0 }}
                      exit={{ opacity: 0, y: -24 }}
                      className='origin-top text-xs mt-2 text-darklink'>
                      Lorem ipsum dolor sit amet, consectetur adipisici elit…’
                      (complete text) is dummy text that is not meant to mean
                      anything. It is used as a placeholder in magazine
                      layouts,Lorem ipsum dolor sit amet, consectetur adipisici
                      elit…’ (complete text) is dummy text that is not meant to
                      mean anything. It is used as a placeholder in magazine
                      layouts,
                    </DisclosurePanel>
                  )}
                </AnimatePresence>
              </div>
            </>
          )}
        </Disclosure>
        <Disclosure as='div' className='py-4 px-6'>
          {({ open }) => (
            <>
              <DisclosureButton className='group flex w-full items-center justify-between'>
                <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
                  Can I reserve a magazine?
                </span>
                <Icon
                  icon='solar:alt-arrow-down-outline'
                  height={18}
                  className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
                />
              </DisclosureButton>
              <div className='overflow-hidden'>
                <AnimatePresence>
                  {open && (
                    <DisclosurePanel
                      static
                      as={motion.div}
                      initial={{ opacity: 0, y: -24 }}
                      animate={{ opacity: 1, y: 0 }}
                      exit={{ opacity: 0, y: -24 }}
                      className='origin-top text-xs text-darklink mt-2'>
                      Lorem ipsum dolor sit amet, consectetur adipisici elit…’
                      (complete text) is dummy text that is not meant to mean
                      anything. It is used as a placeholder in magazine
                      layouts,Lorem ipsum dolor sit amet, consectetur adipisici
                      elit…’ (complete text) is dummy text that is not meant to
                      mean anything. It is used as a placeholder in magazine
                      layouts,
                    </DisclosurePanel>
                  )}
                </AnimatePresence>
              </div>
            </>
          )}
        </Disclosure>
        <Disclosure as='div' className='py-4 px-6'>
          {({ open }) => (
            <>
              <DisclosureButton className='group flex w-full items-center justify-between'>
                <span className='text-sm font-medium text-ld group-data-[hover]:text-primary'>
                  Do I have the right to return an item?
                </span>
                <Icon
                  icon='solar:alt-arrow-down-outline'
                  height={18}
                  className='size-5 fill-white/60 group-data-[hover]:fill-white/50 group-data-[open]:rotate-180'
                />
              </DisclosureButton>
              <div className='overflow-hidden'>
                <AnimatePresence>
                  {open && (
                    <DisclosurePanel
                      static
                      as={motion.div}
                      initial={{ opacity: 0, y: -24 }}
                      animate={{ opacity: 1, y: 0 }}
                      exit={{ opacity: 0, y: -24 }}
                      className='origin-top text-xs text-darklink mt-2'>
                      Lorem ipsum dolor sit amet, consectetur adipisici elit…’
                      (complete text) is dummy text that is not meant to mean
                      anything. It is used as a placeholder in magazine
                      layouts,Lorem ipsum dolor sit amet, consectetur adipisici
                      elit…’ (complete text) is dummy text that is not meant to
                      mean anything. It is used as a placeholder in magazine
                      layouts,
                    </DisclosurePanel>
                  )}
                </AnimatePresence>
              </div>
            </>
          )}
        </Disclosure>
      </div>
    </div>
  )
}
export default FramerMotionCode