Skip to content

Commit

Permalink
Feat/hope (#34)
Browse files Browse the repository at this point in the history
🎨 style: unify code style and enhance components architecture

- Replace single quotes with double quotes across codebase
- Update class names for consistency
- Improve layout structure and readability

✨ feat: add new features and enhance existing components

- Add build command for nyxb registry components
- Introduce new chart components for data visualization
- Add typography examples to registry
- Enhance sidebar navigation with collapsible sections
- Add terminal component and demo

♻️ refactor: improve codebase structure and maintainability

- Enhance project initialization logic
- Streamline registry entries
- Update build-registry script
- Remove unused components
- Simplify registry URL generation

🛠️ build: upgrade development tooling and configuration

- Switch to Biome as default formatter
- Update nixpacks configuration
- Configure corepack and pnpm
- Add environment variable management
- Update Node.js and dependency versions

📚 docs: update documentation and branding

- Update title branding from 'Magic UI' to 'Nyxb UI'
- Add new documentation sections
- Update component source paths
- Add discussion template for block requests

🧹 chore: general maintenance and cleanup

- Update VSCode settings
- Remove ESLint in favor of Biome
- Update import paths
- Clean up unused configurations
  • Loading branch information
nyxb authored Feb 4, 2025
1 parent 938d0a7 commit 155059e
Show file tree
Hide file tree
Showing 5,971 changed files with 211,947 additions and 161,137 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
25 changes: 25 additions & 0 deletions .github/DISCUSSION_TEMPLATE/blocks-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
title: "[blocks]: "
labels: ["Blocks Request"]
body:
- type: markdown
attributes:
value: |
### Thanks for taking the time to create a block request! Please search open/closed requests before submitting, as the block or a similar one may have already been requested.
- type: textarea
id: block-description
attributes:
label: Description
description: Tell us about your block request
placeholder: "A dashboard for an e-commerce website showing sales, orders, and customers..."
validations:
required: true

- type: input
id: block-example-url
attributes:
label: Example
description: Link to an example of the block
placeholder: ex. https://example.com
validations:
required: false
57 changes: 48 additions & 9 deletions .github/workflows/code-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ on:
branches: ["*"]

jobs:
lint:
biome:
runs-on: ubuntu-latest
name: pnpm lint
name: pnpm biome check
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -16,13 +16,13 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
id: pnpm-install
with:
version: 9.4.0
version: 9.0.6
run_install: false

- name: Get pnpm store directory
Expand All @@ -39,13 +39,49 @@ jobs:
- name: Install dependencies
run: pnpm install

- run: pnpm lint
- run: pnpm biome check

format:
runs-on: ubuntu-latest
name: pnpm format:check
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
id: pnpm-install
with:
version: 9.0.6
run_install: false

- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- run: pnpm format:check

tsc:
runs-on: ubuntu-latest
name: pnpm typecheck
env:
NEXT_PUBLIC_APP_URL: http://localhost:3001
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -54,13 +90,13 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
id: pnpm-install
with:
version: 9.4.0
version: 9.0.6
run_install: false

- name: Get pnpm store directory
Expand All @@ -77,4 +113,7 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Build packages
run: pnpm --filter=shadcn build

- run: pnpm typecheck
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
auto-install-peers=true
link-workspace-packages=true
85 changes: 37 additions & 48 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,54 +1,43 @@
{
// Biome as default formatter for different file types
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[javascriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[jsonc]": {
"editor.defaultFormatter": "biomejs.biome"
},

// Disable the default formatter, use eslint instead
"prettier.enable": false,
"editor.formatOnSave": false,
// Automatic formatting on save
"editor.formatOnSave": true,

// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},
// Automatic fixes on save
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
},

// Silent the stylistic rules in you IDE, but still auto fix them
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "warn" },
{ "rule": "format/*", "severity": "warn" },
{ "rule": "*-indent", "severity": "warn" },
{ "rule": "*-spacing", "severity": "warn" },
{ "rule": "*-spaces", "severity": "warn" },
{ "rule": "*-order", "severity": "warn" },
{ "rule": "*-dangle", "severity": "warn" },
{ "rule": "*-newline", "severity": "warn" },
{ "rule": "*quotes", "severity": "warn" },
{ "rule": "*semi", "severity": "warn" }
],
// Optional: Experimental feature for renaming
"biome.rename": true,

// Enable eslint for all supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml",
"toml",
"xml",
"gql",
"graphql",
"astro"
],
"search.useIgnoreFiles": true,
"cSpell.words": [
"customizer",
"dracula",
"occured",
"pullup",
"saas",
"shadcn"
]
"search.useIgnoreFiles": true,
"cSpell.words": [
"customizer",
"dracula",
"occured",
"pullup",
"saas",
"shadcn"
]
}
2 changes: 1 addition & 1 deletion apps/web/__registry__/README.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
> Files inside this directory is autogenerated by `./scripts/build-registry.ts`. **Do not edit them manually.** - shadcn
> Files inside this directory is autogenerated by `./scripts/build-registry.ts`. **Do not edit them manually.** - nyxb
133 changes: 68 additions & 65 deletions apps/web/__registry__/default/block/_sink/page.tsx
Original file line number Diff line number Diff line change
@@ -1,78 +1,78 @@
import { AccordionDemo } from '~/registry/default/block/_sink/components/accordion-demo'
import { AlertDemo } from '~/registry/default/block/_sink/components/alert-demo'
import { AlertDialogDemo } from '~/registry/default/block/_sink/components/alert-dialog-demo'
import { AppSidebar } from '~/registry/default/block/_sink/components/app-sidebar'
import { AspectRatioDemo } from '~/registry/default/block/_sink/components/aspect-ratio-demo'
import { AvatarDemo } from '~/registry/default/block/_sink/components/avatar-demo'
import { BadgeDemo } from '~/registry/default/block/_sink/components/badge-demo'
import { BadgeDestructive } from '~/registry/default/block/_sink/components/badge-destructive'
import { BadgeOutline } from '~/registry/default/block/_sink/components/badge-outline'
import { BadgeSecondary } from '~/registry/default/block/_sink/components/badge-secondary'
import { BreadcrumbDemo } from '~/registry/default/block/_sink/components/breadcrumb-demo'
import { ButtonDemo } from '~/registry/default/block/_sink/components/button-demo'
import { ButtonDestructive } from '~/registry/default/block/_sink/components/button-destructive'
import { ButtonGhost } from '~/registry/default/block/_sink/components/button-ghost'
import { ButtonLink } from '~/registry/default/block/_sink/components/button-link'
import { ButtonLoading } from '~/registry/default/block/_sink/components/button-loading'
import { ButtonOutline } from '~/registry/default/block/_sink/components/button-outline'
import { ButtonSecondary } from '~/registry/default/block/_sink/components/button-secondary'
import { ButtonWithIcon } from '~/registry/default/block/_sink/components/button-with-icon'
import { CalendarDemo } from '~/registry/default/block/_sink/components/calendar-demo'
import { CardDemo } from '~/registry/default/block/_sink/components/card-demo'
import { CarouselDemo } from '~/registry/default/block/_sink/components/carousel-demo'
import { CheckboxDemo } from '~/registry/default/block/_sink/components/checkbox-demo'
import { CollapsibleDemo } from '~/registry/default/block/_sink/components/collapsible-demo'
import { ComboboxDemo } from '~/registry/default/block/_sink/components/combobox-demo'
import { CommandDemo } from '~/registry/default/block/_sink/components/command-demo'
import { ComponentWrapper } from '~/registry/default/block/_sink/components/component-wrapper'
import { ContextMenuDemo } from '~/registry/default/block/_sink/components/context-menu-demo'
import { DatePickerDemo } from '~/registry/default/block/_sink/components/date-picker-demo'
import { DialogDemo } from '~/registry/default/block/_sink/components/dialog-demo'
import { DrawerDemo } from '~/registry/default/block/_sink/components/drawer-demo'
import { DropdownMenuDemo } from '~/registry/default/block/_sink/components/dropdown-menu-demo'
import { HoverCardDemo } from '~/registry/default/block/_sink/components/hover-card-demo'
import { InputDemo } from '~/registry/default/block/_sink/components/input-demo'
import { InputOTPDemo } from '~/registry/default/block/_sink/components/input-otp-demo'
import { LabelDemo } from '~/registry/default/block/_sink/components/label-demo'
import { MenubarDemo } from '~/registry/default/block/_sink/components/menubar-demo'
import { NavigationMenuDemo } from '~/registry/default/block/_sink/components/navigation-menu-demo'
import { PaginationDemo } from '~/registry/default/block/_sink/components/pagination-demo'
import { PopoverDemo } from '~/registry/default/block/_sink/components/popover-demo'
import { ProgressDemo } from '~/registry/default/block/_sink/components/progress-demo'
import { RadioGroupDemo } from '~/registry/default/block/_sink/components/radio-group-demo'
import { ResizableHandleDemo } from '~/registry/default/block/_sink/components/resizable-handle'
import { ScrollAreaDemo } from '~/registry/default/block/_sink/components/scroll-area-demo'
import { SelectDemo } from '~/registry/default/block/_sink/components/select-demo'
import { SeparatorDemo } from '~/registry/default/block/_sink/components/separator-demo'
import { SheetDemo } from '~/registry/default/block/_sink/components/sheet-demo'
import { SkeletonDemo } from '~/registry/default/block/_sink/components/skeleton-demo'
import { SliderDemo } from '~/registry/default/block/_sink/components/slider-demo'
import { SonnerDemo } from '~/registry/default/block/_sink/components/sonner-demo'
import { SwitchDemo } from '~/registry/default/block/_sink/components/switch-demo'
import { TableDemo } from '~/registry/default/block/_sink/components/table-demo'
import { TabsDemo } from '~/registry/default/block/_sink/components/tabs-demo'
import { TextareaDemo } from '~/registry/default/block/_sink/components/textarea-demo'
import { ToastDemo } from '~/registry/default/block/_sink/components/toast-demo'
import { ToggleDemo } from '~/registry/default/block/_sink/components/toggle-demo'
import { ToggleDisabled } from '~/registry/default/block/_sink/components/toggle-disabled'
import { ToggleGroupDemo } from '~/registry/default/block/_sink/components/toggle-group-demo'
import { ToggleOutline } from '~/registry/default/block/_sink/components/toggle-outline'
import { ToggleWithText } from '~/registry/default/block/_sink/components/toggle-with-text'
import { TooltipDemo } from '~/registry/default/block/_sink/components/tooltip-demo'
import { AccordionDemo } from "~/registry/default/block/_sink/components/accordion-demo"
import { AlertDemo } from "~/registry/default/block/_sink/components/alert-demo"
import { AlertDialogDemo } from "~/registry/default/block/_sink/components/alert-dialog-demo"
import { AppSidebar } from "~/registry/default/block/_sink/components/app-sidebar"
import { AspectRatioDemo } from "~/registry/default/block/_sink/components/aspect-ratio-demo"
import { AvatarDemo } from "~/registry/default/block/_sink/components/avatar-demo"
import { BadgeDemo } from "~/registry/default/block/_sink/components/badge-demo"
import { BadgeDestructive } from "~/registry/default/block/_sink/components/badge-destructive"
import { BadgeOutline } from "~/registry/default/block/_sink/components/badge-outline"
import { BadgeSecondary } from "~/registry/default/block/_sink/components/badge-secondary"
import { BreadcrumbDemo } from "~/registry/default/block/_sink/components/breadcrumb-demo"
import { ButtonDemo } from "~/registry/default/block/_sink/components/button-demo"
import { ButtonDestructive } from "~/registry/default/block/_sink/components/button-destructive"
import { ButtonGhost } from "~/registry/default/block/_sink/components/button-ghost"
import { ButtonLink } from "~/registry/default/block/_sink/components/button-link"
import { ButtonLoading } from "~/registry/default/block/_sink/components/button-loading"
import { ButtonOutline } from "~/registry/default/block/_sink/components/button-outline"
import { ButtonSecondary } from "~/registry/default/block/_sink/components/button-secondary"
import { ButtonWithIcon } from "~/registry/default/block/_sink/components/button-with-icon"
import { CalendarDemo } from "~/registry/default/block/_sink/components/calendar-demo"
import { CardDemo } from "~/registry/default/block/_sink/components/card-demo"
import { CarouselDemo } from "~/registry/default/block/_sink/components/carousel-demo"
import { CheckboxDemo } from "~/registry/default/block/_sink/components/checkbox-demo"
import { CollapsibleDemo } from "~/registry/default/block/_sink/components/collapsible-demo"
import { ComboboxDemo } from "~/registry/default/block/_sink/components/combobox-demo"
import { CommandDemo } from "~/registry/default/block/_sink/components/command-demo"
import { ComponentWrapper } from "~/registry/default/block/_sink/components/component-wrapper"
import { ContextMenuDemo } from "~/registry/default/block/_sink/components/context-menu-demo"
import { DatePickerDemo } from "~/registry/default/block/_sink/components/date-picker-demo"
import { DialogDemo } from "~/registry/default/block/_sink/components/dialog-demo"
import { DrawerDemo } from "~/registry/default/block/_sink/components/drawer-demo"
import { DropdownMenuDemo } from "~/registry/default/block/_sink/components/dropdown-menu-demo"
import { HoverCardDemo } from "~/registry/default/block/_sink/components/hover-card-demo"
import { InputDemo } from "~/registry/default/block/_sink/components/input-demo"
import { InputOTPDemo } from "~/registry/default/block/_sink/components/input-otp-demo"
import { LabelDemo } from "~/registry/default/block/_sink/components/label-demo"
import { MenubarDemo } from "~/registry/default/block/_sink/components/menubar-demo"
import { NavigationMenuDemo } from "~/registry/default/block/_sink/components/navigation-menu-demo"
import { PaginationDemo } from "~/registry/default/block/_sink/components/pagination-demo"
import { PopoverDemo } from "~/registry/default/block/_sink/components/popover-demo"
import { ProgressDemo } from "~/registry/default/block/_sink/components/progress-demo"
import { RadioGroupDemo } from "~/registry/default/block/_sink/components/radio-group-demo"
import { ResizableHandleDemo } from "~/registry/default/block/_sink/components/resizable-handle"
import { ScrollAreaDemo } from "~/registry/default/block/_sink/components/scroll-area-demo"
import { SelectDemo } from "~/registry/default/block/_sink/components/select-demo"
import { SeparatorDemo } from "~/registry/default/block/_sink/components/separator-demo"
import { SheetDemo } from "~/registry/default/block/_sink/components/sheet-demo"
import { SkeletonDemo } from "~/registry/default/block/_sink/components/skeleton-demo"
import { SliderDemo } from "~/registry/default/block/_sink/components/slider-demo"
import { SonnerDemo } from "~/registry/default/block/_sink/components/sonner-demo"
import { SwitchDemo } from "~/registry/default/block/_sink/components/switch-demo"
import { TableDemo } from "~/registry/default/block/_sink/components/table-demo"
import { TabsDemo } from "~/registry/default/block/_sink/components/tabs-demo"
import { TextareaDemo } from "~/registry/default/block/_sink/components/textarea-demo"
import { ToastDemo } from "~/registry/default/block/_sink/components/toast-demo"
import { ToggleDemo } from "~/registry/default/block/_sink/components/toggle-demo"
import { ToggleDisabled } from "~/registry/default/block/_sink/components/toggle-disabled"
import { ToggleGroupDemo } from "~/registry/default/block/_sink/components/toggle-group-demo"
import { ToggleOutline } from "~/registry/default/block/_sink/components/toggle-outline"
import { ToggleWithText } from "~/registry/default/block/_sink/components/toggle-with-text"
import { TooltipDemo } from "~/registry/default/block/_sink/components/tooltip-demo"
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from '~/registry/default/ui/breadcrumb'
import { Separator } from '~/registry/default/ui/separator'
} from "~/registry/default/ui/breadcrumb"
import { Separator } from "~/registry/default/ui/separator"
import {
SidebarInset,
SidebarProvider,
SidebarTrigger,
} from '~/registry/default/ui/sidebar'
} from "~/registry/default/ui/sidebar"

export default function SinkPage() {
return (
Expand Down Expand Up @@ -197,7 +197,10 @@ export default function SinkPage() {
<ComponentWrapper name="Menubar">
<MenubarDemo />
</ComponentWrapper>
<ComponentWrapper name="NavigationMenu" className="col-span-2">
<ComponentWrapper
name="NavigationMenu"
className="col-span-2"
>
<NavigationMenuDemo />
</ComponentWrapper>
<ComponentWrapper name="Pagination">
Expand Down
Loading

0 comments on commit 155059e

Please sign in to comment.