├── tsconfig.json ├── apps └── web │ ├── content │ └── docs │ │ ├── meta.json │ │ ├── motion │ │ └── meta.json │ │ └── ui │ │ ├── meta.json │ │ └── props.ts │ ├── app │ ├── favicon.ico │ ├── opengraph-image.png │ ├── (home) │ │ ├── page.tsx │ │ ├── layout.tsx │ │ └── blocks │ │ │ └── page.tsx │ ├── api │ │ └── search │ │ │ └── route.ts │ ├── blocks │ │ └── preview │ │ │ └── [blockId] │ │ │ └── page.tsx │ └── sitemap.ts │ ├── public │ ├── banner.png │ ├── images │ │ ├── 10x-deng.png │ │ ├── brush-line.png │ │ ├── currents-evangelion.jpg │ │ └── lines-top.svg │ ├── r │ │ ├── utils.json │ │ ├── badge-demo.json │ │ ├── badge-lg.json │ │ ├── badge-sm.json │ │ ├── toggle-demo.json │ │ ├── button-demo.json │ │ ├── button-lg.json │ │ ├── button-sm.json │ │ ├── slider-demo.json │ │ ├── button-xl.json │ │ ├── button-xs.json │ │ ├── button-link.json │ │ ├── badge-info.json │ │ ├── button-ghost.json │ │ ├── label.json │ │ ├── meter-simple.json │ │ ├── badge-outline.json │ │ ├── badge-error.json │ │ ├── badge-secondary.json │ │ ├── input-lg.json │ │ ├── input-sm.json │ │ ├── toggle-outline.json │ │ ├── input-file.json │ │ ├── badge-success.json │ │ ├── badge-warning.json │ │ ├── textarea-demo.json │ │ ├── toggle-lg.json │ │ ├── toggle-sm.json │ │ ├── button-disabled.json │ │ ├── button-secondary.json │ │ ├── slider-range.json │ │ ├── textarea-lg.json │ │ ├── textarea-sm.json │ │ ├── input-demo.json │ │ ├── badge-with-link.json │ │ ├── slider-vertical.json │ │ ├── input-disabled.json │ │ ├── badge-destructive.json │ │ ├── button-icon.json │ │ ├── textarea-disabled.json │ │ ├── toggle-disabled.json │ │ ├── button-with-link.json │ │ ├── avatar-fallback.json │ │ ├── button-icon-lg.json │ │ ├── button-icon-sm.json │ │ ├── form.json │ │ ├── button-destructive-outline.json │ │ ├── button-with-icon.json │ │ ├── use-debounce.json │ │ ├── badge-with-icon.json │ │ ├── toggle-with-icon.json │ │ ├── switch-demo.json │ │ ├── checkbox-demo.json │ │ ├── alert-demo.json │ │ ├── button-loading.json │ │ ├── checkbox-group.json │ │ ├── switch-disabled.json │ │ ├── checkbox-disabled.json │ │ ├── field-switch.json │ │ ├── avatar-demo.json │ │ ├── alert-with-icon.json │ │ ├── field-checkbox.json │ │ ├── alert-info.json │ │ ├── input-with-button.json │ │ ├── tooltip-demo.json │ │ ├── alert-error.json │ │ ├── field-demo.json │ │ ├── field-error.json │ │ ├── meter-demo.json │ │ ├── alert-success.json │ │ ├── use-mobile.json │ │ ├── alert-warning.json │ │ ├── toast-demo.json │ │ ├── button-outline.json │ │ ├── menu-hover.json │ │ ├── number-field-demo.json │ │ ├── number-field-lg.json │ │ ├── number-field-sm.json │ │ ├── button-destructive.json │ │ ├── field-disabled.json │ │ ├── slider-with-label-value.json │ │ ├── field-slider.json │ │ ├── progress-demo.json │ │ ├── field-required.json │ │ ├── textarea-with-label.json │ │ ├── toast-loading.json │ │ ├── radio-group-demo.json │ │ ├── input-with-label.json │ │ ├── number-field-disabled.json │ │ ├── number-field-with-range.json │ │ ├── menu-checkbox.json │ │ ├── menu-link.json │ │ ├── meter-with-range.json │ │ ├── separator.json │ │ ├── menu-close-on-click.json │ │ ├── progress-with-label-value.json │ │ ├── number-field-with-scrub.json │ │ ├── radio-group-disabled.json │ │ ├── fieldset.json │ │ ├── frame-demo.json │ │ └── toggle-icon-group.json │ └── vercel.svg │ ├── postcss.config.js │ ├── assets │ └── fonts │ │ ├── InterVariableFont.woff2 │ │ ├── InterVariableItalic.woff2 │ │ └── Redaction_35-Regular.woff2 │ ├── registry │ ├── components │ │ ├── badge-demo.tsx │ │ ├── badge-lg.tsx │ │ ├── badge-sm.tsx │ │ ├── button-demo.tsx │ │ ├── meter-simple.tsx │ │ ├── toggle-demo.tsx │ │ ├── button-lg.tsx │ │ ├── button-sm.tsx │ │ ├── button-xl.tsx │ │ ├── button-xs.tsx │ │ ├── slider-demo.tsx │ │ ├── badge-error.tsx │ │ ├── badge-info.tsx │ │ ├── button-link.tsx │ │ ├── input-file.tsx │ │ ├── slider-range.tsx │ │ ├── badge-outline.tsx │ │ ├── badge-success.tsx │ │ ├── badge-warning.tsx │ │ ├── button-disabled.tsx │ │ ├── button-ghost.tsx │ │ ├── badge-secondary.tsx │ │ ├── button-outline.tsx │ │ ├── badge-destructive.tsx │ │ ├── badge-number.tsx │ │ ├── input-demo.tsx │ │ ├── button-destructive.tsx │ │ ├── button-secondary.tsx │ │ ├── slider-vertical.tsx │ │ ├── textarea-demo.tsx │ │ ├── toggle-outline.tsx │ │ ├── input-lg.tsx │ │ ├── input-sm.tsx │ │ ├── textarea-lg.tsx │ │ ├── textarea-sm.tsx │ │ ├── input-disabled.tsx │ │ ├── textarea-disabled.tsx │ │ ├── button-destructive-outline.tsx │ │ ├── badge-with-link.tsx │ │ ├── toggle-lg.tsx │ │ ├── toggle-sm.tsx │ │ ├── button-with-link.tsx │ │ ├── toggle-disabled.tsx │ │ ├── avatar-fallback.tsx │ │ ├── button-icon.tsx │ │ ├── button-icon-lg.tsx │ │ ├── button-icon-sm.tsx │ │ ├── switch-demo.tsx │ │ ├── button-with-icon.tsx │ │ ├── switch-disabled.tsx │ │ ├── badge-with-icon.tsx │ │ ├── checkbox-demo.tsx │ │ ├── toggle-with-icon.tsx │ │ ├── button-loading.tsx │ │ ├── checkbox-disabled.tsx │ │ ├── field-switch.tsx │ │ ├── field-checkbox.tsx │ │ ├── alert-demo.tsx │ │ ├── input-with-button.tsx │ │ ├── avatar-demo.tsx │ │ ├── field-demo.tsx │ │ ├── tooltip-demo.tsx │ │ ├── field-error.tsx │ │ ├── alert-with-icon.tsx │ │ ├── alert-info.tsx │ │ ├── field-slider.tsx │ │ ├── alert-error.tsx │ │ ├── slider-with-label-value.tsx │ │ ├── textarea-with-label.tsx │ │ ├── alert-success.tsx │ │ ├── field-disabled.tsx │ │ ├── alert-warning.tsx │ │ ├── menu-hover.tsx │ │ ├── number-field-demo.tsx │ │ ├── meter-demo.tsx │ │ ├── toast-demo.tsx │ │ ├── field-required.tsx │ │ ├── number-field-lg.tsx │ │ ├── number-field-sm.tsx │ │ ├── radio-group-demo.tsx │ │ ├── number-field-disabled.tsx │ │ ├── input-with-label.tsx │ │ ├── number-field-with-range.tsx │ │ ├── radio-group-disabled.tsx │ │ ├── toast-loading.tsx │ │ ├── menu-close-on-click.tsx │ │ ├── progress-demo.tsx │ │ ├── menu-checkbox.tsx │ │ ├── menu-link.tsx │ │ ├── progress-with-label-value.tsx │ │ ├── spring-demo.tsx │ │ ├── number-field-with-scrub.tsx │ │ ├── number-field-with-formatted-value.tsx │ │ ├── meter-with-formatted-value.tsx │ │ ├── meter-with-range.tsx │ │ ├── toggle-icon-group.tsx │ │ ├── skeleton-only.tsx │ │ ├── toggle-group-demo.tsx │ │ ├── toggle-group-lg.tsx │ │ ├── toggle-group-sm.tsx │ │ ├── scroll-area-demo.tsx │ │ ├── toggle-group-disabled.tsx │ │ ├── toggle-group-multiple.tsx │ │ ├── checkbox-group-demo.tsx │ │ ├── frame-demo.tsx │ │ ├── group-with-input.tsx │ │ ├── scroll-area-horizontal.tsx │ │ ├── toggle-group-outline.tsx │ │ ├── checkbox-group-disabled.tsx │ │ ├── switch-with-description.tsx │ │ ├── progress-with-formatted-value.tsx │ │ ├── toggle-group-with-disabled-item.tsx │ │ ├── field-textarea.tsx │ │ ├── checkbox-card.tsx │ │ ├── checkbox-with-description.tsx │ │ ├── alert-with-icon-action.tsx │ │ ├── menu-radio-group.tsx │ │ ├── toggle-group-with-separator.tsx │ │ ├── number-field-with-label.tsx │ │ ├── select-lg.tsx │ │ ├── select-sm.tsx │ │ ├── group-demo.tsx │ │ ├── field-number-field.tsx │ │ ├── select-demo.tsx │ │ ├── select-disabled.tsx │ │ ├── switch-card.tsx │ │ ├── menu-nested.tsx │ │ ├── toggle-group-outline-with-separator.tsx │ │ ├── select-without-alignment.tsx │ │ ├── text-type-demo.tsx │ │ ├── separator-demo.tsx │ │ ├── menu-group-labels.tsx │ │ ├── shared-menu-demo.tsx │ │ ├── button-snap-effect.tsx │ │ ├── tabs-demo.tsx │ │ ├── toast-with-action.tsx │ │ ├── number-field-with-step.tsx │ │ ├── fieldset-demo.tsx │ │ ├── tabs-vertical.tsx │ │ ├── breadcrumb-custom-separator.tsx │ │ ├── empty-demo.tsx │ │ ├── radio-group-with-description.tsx │ │ ├── field-validity.tsx │ │ └── avatar-size.tsx │ ├── lib │ │ └── utils.ts │ ├── blocks │ │ ├── login-03 │ │ │ └── page.tsx │ │ ├── login-04 │ │ │ └── page.tsx │ │ └── login-05 │ │ │ └── page.tsx │ ├── ui │ │ ├── label.tsx │ │ ├── form.tsx │ │ ├── checkbox-group.tsx │ │ ├── skeleton.tsx │ │ ├── separator.tsx │ │ └── fieldset.tsx │ └── hooks │ │ ├── use-debounce.ts │ │ └── use-mobile.ts │ ├── lib │ ├── utils.ts │ ├── source.ts │ └── events.ts │ ├── components │ ├── landing │ │ ├── card-context.ts │ │ └── landing-hero.tsx │ ├── cli-commands.tsx │ └── code-tabs.tsx │ ├── hooks │ ├── use-config.ts │ ├── use-media-query.ts │ └── use-copy-to-clipboard.ts │ ├── tsconfig.json │ ├── next.config.ts │ ├── components.json │ ├── config │ └── site.ts │ └── types │ └── component.ts ├── bun.lockb ├── packages ├── ui │ ├── postcss.config.js │ ├── src │ │ ├── lib │ │ │ └── utils.ts │ │ ├── components │ │ │ ├── skeleton.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── references.tsx │ │ │ ├── label.tsx │ │ │ └── separator.tsx │ │ ├── hooks │ │ │ ├── use-mobile.ts │ │ │ └── use-copy-to-clipboard.ts │ │ └── index.tsx │ └── tsconfig.json └── tsconfig │ ├── package.json │ ├── react-library.json │ ├── nextjs.json │ └── base.json ├── turbo.json ├── package.json └── .gitignore /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@uitopia/tsconfig/base.json" 3 | } 4 | -------------------------------------------------------------------------------- /apps/web/content/docs/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": ["ui", "motion"] 3 | } 4 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/bun.lockb -------------------------------------------------------------------------------- /apps/web/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/app/favicon.ico -------------------------------------------------------------------------------- /apps/web/public/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/public/banner.png -------------------------------------------------------------------------------- /apps/web/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "@tailwindcss/postcss": {}, 4 | }, 5 | }; 6 | -------------------------------------------------------------------------------- /apps/web/app/opengraph-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/app/opengraph-image.png -------------------------------------------------------------------------------- /packages/ui/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "@tailwindcss/postcss": {}, 4 | }, 5 | }; 6 | -------------------------------------------------------------------------------- /apps/web/public/images/10x-deng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/public/images/10x-deng.png -------------------------------------------------------------------------------- /apps/web/public/images/brush-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/public/images/brush-line.png -------------------------------------------------------------------------------- /apps/web/assets/fonts/InterVariableFont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/assets/fonts/InterVariableFont.woff2 -------------------------------------------------------------------------------- /apps/web/public/images/currents-evangelion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/public/images/currents-evangelion.jpg -------------------------------------------------------------------------------- /apps/web/assets/fonts/InterVariableItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/assets/fonts/InterVariableItalic.woff2 -------------------------------------------------------------------------------- /apps/web/assets/fonts/Redaction_35-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cahyawibawa/ui-topia/HEAD/apps/web/assets/fonts/Redaction_35-Regular.woff2 -------------------------------------------------------------------------------- /apps/web/app/(home)/page.tsx: -------------------------------------------------------------------------------- 1 | import { LandingHero } from "@/components/landing/landing-hero"; 2 | 3 | export default function Home() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeDemo() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-lg.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeLg() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-sm.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeSm() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonDemo() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/meter-simple.tsx: -------------------------------------------------------------------------------- 1 | import { Meter } from "@/registry/ui/meter"; 2 | 3 | export default function MeterSimpleDemo() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/toggle-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Toggle } from "@/registry/ui/toggle"; 2 | 3 | export default function ToggleDemo() { 4 | return Toggle; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-lg.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonLg() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-sm.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonSm() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-xl.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonXl() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-xs.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonXs() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/slider-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Slider } from "@/registry/ui/slider"; 2 | 3 | export default function SliderDemo() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-error.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeError() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-info.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeInfo() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/app/api/search/route.ts: -------------------------------------------------------------------------------- 1 | import { createFromSource } from "fumadocs-core/search/server"; 2 | import { source } from "@/lib/source"; 3 | 4 | export const { GET } = createFromSource(source); 5 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-link.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonLink() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/input-file.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/ui/input"; 2 | 3 | export default function InputFile() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/slider-range.tsx: -------------------------------------------------------------------------------- 1 | import { Slider } from "@/registry/ui/slider"; 2 | 3 | export default function SliderDemo() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/app/(home)/layout.tsx: -------------------------------------------------------------------------------- 1 | import React, { type ReactNode } from "react"; 2 | 3 | export default function Layout({ children }: { children: ReactNode }) { 4 | return
{children}
; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-outline.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeOutline() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-success.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeSuccess() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-warning.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeWarning() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-disabled.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonDisabled() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-ghost.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonGhost() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-secondary.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeSecondary() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-outline.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonOutline() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-destructive.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeDestructive() { 4 | return Badge; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/badge-number.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from "@/registry/ui/badge"; 2 | 3 | export default function BadgeWithIcon() { 4 | return 7; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/input-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Input } from "@/registry/ui/input"; 2 | 3 | export default function InputDemo() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-destructive.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonDestructive() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/button-secondary.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "@/registry/ui/button"; 2 | 3 | export default function ButtonSecondary() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/slider-vertical.tsx: -------------------------------------------------------------------------------- 1 | import { Slider } from "@/registry/ui/slider"; 2 | 3 | export default function SliderVertical() { 4 | return ; 5 | } 6 | -------------------------------------------------------------------------------- /apps/web/registry/components/textarea-demo.tsx: -------------------------------------------------------------------------------- 1 | import { Textarea } from "@/registry/ui/textarea"; 2 | 3 | export default function TextareaDemo() { 4 | return