gitextract_iv9ddlq0/ ├── .eslintrc.json ├── .gitignore ├── .vscode/ │ └── settings.json ├── README.md ├── app/ │ ├── (routes)/ │ │ ├── about/ │ │ │ └── page.tsx │ │ ├── articles/ │ │ │ ├── [slug]/ │ │ │ │ ├── loading.tsx │ │ │ │ └── page.tsx │ │ │ ├── page.tsx │ │ │ └── sitemap.ts │ │ └── layout.tsx │ ├── admin/ │ │ ├── layout.tsx │ │ └── write-article/ │ │ ├── blog-form.tsx │ │ └── page.tsx │ ├── api/ │ │ ├── article/ │ │ │ └── post/ │ │ │ └── route.ts │ │ ├── auth/ │ │ │ └── [...nextauth]/ │ │ │ └── route.ts │ │ └── user/ │ │ └── settings/ │ │ └── route.ts │ ├── error.tsx │ ├── layout.tsx │ ├── loading.tsx │ ├── manifest.json │ ├── not-found.tsx │ ├── page.tsx │ ├── robots.ts │ └── sitemap.ts ├── components/ │ ├── articles/ │ │ └── article-card.tsx │ ├── auth-modal.tsx │ ├── clarity-script.tsx │ ├── color-picker.tsx │ ├── editor/ │ │ ├── background-image-canvas.tsx │ │ ├── background-options/ │ │ │ ├── custom-gradient-picker.tsx │ │ │ ├── image-gradient-picker.tsx │ │ │ ├── index.tsx │ │ │ ├── noise-slider.tsx │ │ │ ├── normal-gradient-picker.tsx │ │ │ └── pattern-picker.tsx │ │ ├── browser-frames.tsx │ │ ├── canvas-area.tsx │ │ ├── canvas-options/ │ │ │ ├── canvas-roundness-slider.tsx │ │ │ ├── index.tsx │ │ │ └── resolution-button.tsx │ │ ├── frame-options/ │ │ │ ├── additional-frame-options.tsx │ │ │ ├── frame-picker.tsx │ │ │ └── index.tsx │ │ ├── image-context-menu.tsx │ │ ├── image-options/ │ │ │ ├── add-image-button.tsx │ │ │ ├── index.tsx │ │ │ ├── inset-option.tsx │ │ │ ├── roundness-option.tsx │ │ │ ├── scale-options.tsx │ │ │ └── shadow-settings.tsx │ │ ├── main-image-area.tsx │ │ ├── mobile-view-image-options.tsx │ │ ├── moveable-component.tsx │ │ ├── noise.tsx │ │ ├── perspective-options/ │ │ │ ├── index.tsx │ │ │ └── rotate-options.tsx │ │ ├── position-options/ │ │ │ ├── index.tsx │ │ │ ├── position-control.tsx │ │ │ └── translate-control.tsx │ │ ├── selecto-component.tsx │ │ ├── sidebar-buttons.tsx │ │ ├── sidebar.tsx │ │ ├── text-context-menu.tsx │ │ ├── text-layers.tsx │ │ ├── text-options/ │ │ │ ├── add-text-layer.tsx │ │ │ ├── font-settings.tsx │ │ │ └── index.tsx │ │ ├── tiptap-moveable.tsx │ │ └── undo-redo-buttons.tsx │ ├── export-options.tsx │ ├── footer.tsx │ ├── icons/ │ │ ├── index.tsx │ │ └── info.icon.tsx │ ├── loader.tsx │ ├── navbar.tsx │ ├── navlinks.tsx │ ├── popup-color-picker.tsx │ ├── profile-dialog.tsx │ ├── settings-dialog.tsx │ ├── sign-in-form.tsx │ ├── spinner/ │ │ ├── spinner.module.css │ │ └── spinner.tsx │ ├── ui/ │ │ ├── accordion.tsx │ │ ├── back-button.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── circular-slider.tsx │ │ ├── context-menu.tsx │ │ ├── dialog.tsx │ │ ├── drawer.tsx │ │ ├── dropdown-menu.tsx │ │ ├── gradient-text.tsx │ │ ├── input.tsx │ │ ├── popover.tsx │ │ ├── scroll-area.tsx │ │ ├── select.tsx │ │ ├── separator.tsx │ │ ├── skeleton.tsx │ │ ├── slider.tsx │ │ ├── spotlight-button.tsx │ │ ├── style/ │ │ │ └── checkbox.module.css │ │ ├── switch.tsx │ │ ├── tabs.tsx │ │ ├── text-area.tsx │ │ ├── text.tsx │ │ ├── theme-button.tsx │ │ ├── toast.tsx │ │ ├── toaster.tsx │ │ └── tooltip.tsx │ └── user-dropdown.tsx ├── components.json ├── docker-compose.yml ├── hooks/ │ ├── canvas-area-hooks/ │ │ ├── use-automatic-aspect-ratio-switcher.ts │ │ ├── use-resize-observer.ts │ │ └── use-screen-size-warning-toast.ts │ ├── use-editor.ts │ ├── use-event-listener.ts │ ├── use-isomorphic-layout-effect.ts │ ├── use-media-query.ts │ ├── use-on-click-outside.ts │ └── use-toast.ts ├── index.d.ts ├── libs/ │ ├── prismadb.ts │ └── validators/ │ ├── article-post-validator.ts │ └── user-settings-validator.ts ├── license.md ├── middleware.ts ├── next.config.js ├── package.json ├── postcss.config.js ├── prettier.config.js ├── prisma/ │ └── schema.prisma ├── providers/ │ └── index.tsx ├── store/ │ ├── use-active-index.ts │ ├── use-background-options.ts │ ├── use-color-extractor.ts │ ├── use-frame-options.ts │ ├── use-image-options.ts │ ├── use-image-quality.ts │ ├── use-moveable.ts │ ├── use-resize-canvas.ts │ └── use-tiptap.ts ├── styles/ │ └── globals.css ├── tailwind.config.js ├── tsconfig.json ├── utils/ │ ├── auth-options.ts │ ├── button-utils.ts │ ├── helper-fns.ts │ ├── presets/ │ │ ├── gradients.ts │ │ ├── qualities.ts │ │ ├── resolutions.ts │ │ ├── shadows.ts │ │ └── solid-colors.ts │ └── tiptap-extensions.ts └── workers/ └── background-removal.worker.ts