From 04432835f91dbe0a3273f50ac829e0a377110e5f Mon Sep 17 00:00:00 2001 From: shadcn Date: Fri, 3 Oct 2025 21:05:22 +0400 Subject: [PATCH] feat: new components (#8334) * feat: add field.tsx and update blocks * feat: add input group * feat: implement button group * fix * fix * wip * fix: button group * feat: update field * fix * feat * feat: cooked * fix * chore: build registry * feat: add kbd component * chore: update input group demo * feat: update kbd component * feat: add empty * feat: add spinner * refactor: input group * feat: blocks * fix * fix: app sidebar * feat: add label to app sidebar * fix * fix * fix * fix * fix * feat * feat * fix * docs: button group * feat: add docs * docs: kbd * docs: empty * fix * docs * docs * feat: add sink link * fix * fix * docs * feat: add new page * fix * fix * fix * fix * fix * fix * feat: add registration form * fix: chat settings * fix * fix preview * fix examples * feat: add changelog * fix * fix * fix * fix * fix * feat(www): add t3 versions * chore: build registry * fix * fix * fix * feat: inline code examples for llm * fix * feat: home * fix * fix * fix * fix * fix * chore: changelog * fix * fix * fix * fix: callout * fix --- .vscode/settings.json | 5 +- .../(root)/components/appearance-settings.tsx | 168 + .../(root)/components/button-group-demo.tsx | 120 + .../components/button-group-input-group.tsx | 58 + .../(root)/components/button-group-nested.tsx | 32 + .../components/button-group-popover.tsx | 45 + .../(root)/components/empty-avatar-group.tsx | 57 + .../(root)/components/empty-input-group.tsx | 43 + .../(root)/components/field-checkbox.tsx | 15 + .../(root)/components/field-choice-card.tsx | 62 + .../(app)/(root)/components/field-demo.tsx | 153 + .../(app)/(root)/components/field-hear.tsx | 72 + .../(app)/(root)/components/field-slider.tsx | 35 + apps/v4/app/(app)/(root)/components/index.tsx | 52 + .../(root)/components/input-group-button.tsx | 68 + .../(root)/components/input-group-demo.tsx | 102 + .../components/input-group-textarea.tsx | 46 + .../(app)/(root)/components/item-avatar.tsx | 78 + .../app/(app)/(root)/components/item-demo.tsx | 42 + .../(root)/components/notion-prompt-form.tsx | 456 ++ .../(app)/(root)/components/spinner-badge.tsx | 21 + .../(app)/(root)/components/spinner-empty.tsx | 31 + apps/v4/app/(app)/(root)/page.tsx | 5 +- apps/v4/app/(app)/docs/[[...slug]]/page.tsx | 14 +- .../components/user-auth-form.tsx | 49 +- .../(app)/examples/authentication/page.tsx | 21 +- apps/v4/app/(app)/llm/[[...slug]]/route.ts | 5 +- .../(pages)/forms/appearance-settings.tsx | 168 + .../sink/(pages)/forms/chat-settings.tsx | 463 ++ .../sink/(pages)/forms/display-settings.tsx | 137 + .../sink/(pages)/forms/notion-prompt-form.tsx | 464 ++ .../(internal)/sink/(pages)/forms/page.tsx | 31 + .../(pages)/forms/ship-registration-form.tsx | 193 + .../sink/(pages)/forms/shipping-form.tsx | 121 + .../sink/(pages)/next-form/actions.ts | 55 + .../sink/(pages)/next-form/example-form.tsx | 391 ++ .../sink/(pages)/next-form/page.tsx | 9 + .../(pages)/react-hook-form/example-form.tsx | 490 ++ .../sink/(pages)/react-hook-form/page.tsx | 9 + apps/v4/app/(internal)/sink/(pages)/schema.ts | 97 + .../(pages)/tanstack-form/example-form.tsx | 532 ++ .../sink/(pages)/tanstack-form/page.tsx | 9 + apps/v4/app/(internal)/sink/[name]/page.tsx | 54 + .../app/(internal)/sink/component-registry.ts | 429 ++ .../sink/components/app-breadcrumbs.tsx | 43 + .../sink/components/app-sidebar.tsx | 96 +- .../sink/components/avatar-demo.tsx | 15 +- .../sink/components/button-group-demo.tsx | 581 ++ .../(internal)/sink/components/card-demo.tsx | 5 +- .../sink/components/combobox-demo.tsx | 2 +- .../sink/components/dropdown-menu-demo.tsx | 14 +- .../(internal)/sink/components/empty-demo.tsx | 250 + .../(internal)/sink/components/field-demo.tsx | 4957 +++++++++++++++++ .../sink/components/input-group-demo.tsx | 663 +++ .../(internal)/sink/components/item-demo.tsx | 392 ++ .../(internal)/sink/components/kbd-demo.tsx | 103 + .../sink/components/spinner-demo.tsx | 106 + .../sink/components/theme-selector.tsx | 147 + apps/v4/app/(internal)/sink/layout.tsx | 66 + apps/v4/app/(internal)/sink/page.tsx | 234 +- apps/v4/app/layout.tsx | 4 +- apps/v4/components/active-theme.tsx | 2 +- apps/v4/components/announcement.tsx | 3 +- apps/v4/components/callout.tsx | 9 +- apps/v4/components/cards/chat.tsx | 43 +- apps/v4/components/cards/cookie-settings.tsx | 40 +- apps/v4/components/cards/create-account.tsx | 95 +- apps/v4/components/cards/forms.tsx | 175 +- apps/v4/components/cards/report-issue.tsx | 123 +- apps/v4/components/cards/share.tsx | 69 +- apps/v4/components/cards/team-members.tsx | 102 +- apps/v4/components/command-menu.tsx | 9 +- apps/v4/components/components-list.tsx | 9 +- apps/v4/components/docs-sidebar.tsx | 7 + apps/v4/components/mobile-nav.tsx | 7 +- apps/v4/components/tailwind-indicator.tsx | 2 +- apps/v4/content/docs/(root)/changelog.mdx | 353 ++ apps/v4/content/docs/(root)/styleguide.mdx | 4 +- .../content/docs/components/button-group.mdx | 219 + apps/v4/content/docs/components/button.mdx | 277 +- apps/v4/content/docs/components/empty.mdx | 197 + apps/v4/content/docs/components/field.mdx | 327 ++ .../content/docs/components/input-group.mdx | 255 + apps/v4/content/docs/components/item.mdx | 317 ++ apps/v4/content/docs/components/kbd.mdx | 104 + .../content/docs/components/scroll-area.mdx | 2 +- apps/v4/content/docs/components/spinner.mdx | 130 + apps/v4/lib/docs.ts | 11 + apps/v4/lib/llm.ts | 33 + apps/v4/mdx-components.tsx | 17 +- apps/v4/next.config.mjs | 4 + apps/v4/package.json | 4 +- apps/v4/public/r/index.json | 89 + .../public/r/styles/default/button-group.json | 18 + apps/v4/public/r/styles/default/empty.json | 14 + apps/v4/public/r/styles/default/field.json | 18 + .../public/r/styles/default/input-group.json | 19 + apps/v4/public/r/styles/default/item.json | 17 + apps/v4/public/r/styles/default/kbd.json | 14 + apps/v4/public/r/styles/default/registry.json | 96 + apps/v4/public/r/styles/default/spinner.json | 17 + .../r/styles/new-york-v4/avatar-demo.json | 2 +- .../r/styles/new-york-v4/button-default.json | 15 + .../r/styles/new-york-v4/button-demo.json | 2 +- .../styles/new-york-v4/button-group-demo.json | 15 + .../new-york-v4/button-group-dropdown.json | 15 + .../new-york-v4/button-group-input-group.json | 15 + .../new-york-v4/button-group-input.json | 15 + .../new-york-v4/button-group-nested.json | 15 + .../new-york-v4/button-group-orientation.json | 15 + .../new-york-v4/button-group-popover.json | 15 + .../new-york-v4/button-group-select.json | 15 + .../new-york-v4/button-group-separator.json | 15 + .../styles/new-york-v4/button-group-size.json | 15 + .../new-york-v4/button-group-split.json | 15 + .../r/styles/new-york-v4/button-group.json | 16 + .../r/styles/new-york-v4/button-icon.json | 2 +- .../r/styles/new-york-v4/button-loading.json | 2 +- .../r/styles/new-york-v4/button-rounded.json | 15 + .../r/styles/new-york-v4/button-size.json | 15 + .../public/r/styles/new-york-v4/button.json | 2 +- apps/v4/public/r/styles/new-york-v4/card.json | 2 +- .../r/styles/new-york-v4/context-menu.json | 2 +- .../r/styles/new-york-v4/dropdown-menu.json | 2 +- .../new-york-v4/empty-avatar-group.json | 17 + .../r/styles/new-york-v4/empty-avatar.json | 17 + .../styles/new-york-v4/empty-background.json | 15 + .../r/styles/new-york-v4/empty-demo.json | 16 + .../r/styles/new-york-v4/empty-icon.json | 15 + .../r/styles/new-york-v4/empty-image.json | 15 + .../styles/new-york-v4/empty-input-group.json | 17 + .../r/styles/new-york-v4/empty-muted.json | 15 + .../r/styles/new-york-v4/empty-outline.json | 16 + .../v4/public/r/styles/new-york-v4/empty.json | 12 + .../r/styles/new-york-v4/field-badge.json | 15 + .../r/styles/new-york-v4/field-checkbox.json | 15 + .../styles/new-york-v4/field-choice-card.json | 15 + .../r/styles/new-york-v4/field-demo.json | 15 + .../r/styles/new-york-v4/field-fieldset.json | 15 + .../r/styles/new-york-v4/field-group.json | 15 + .../r/styles/new-york-v4/field-input.json | 15 + .../r/styles/new-york-v4/field-radio.json | 15 + .../styles/new-york-v4/field-responsive.json | 15 + .../r/styles/new-york-v4/field-select.json | 15 + .../r/styles/new-york-v4/field-slider.json | 15 + .../r/styles/new-york-v4/field-switch.json | 15 + .../r/styles/new-york-v4/field-textarea.json | 15 + .../v4/public/r/styles/new-york-v4/field.json | 16 + .../styles/new-york-v4/input-group-align.json | 15 + .../new-york-v4/input-group-button-group.json | 16 + .../new-york-v4/input-group-button.json | 15 + .../new-york-v4/input-group-custom.json | 19 + .../styles/new-york-v4/input-group-demo.json | 15 + .../new-york-v4/input-group-dropdown.json | 17 + .../styles/new-york-v4/input-group-icon.json | 15 + .../styles/new-york-v4/input-group-label.json | 16 + .../new-york-v4/input-group-select.json | 16 + .../new-york-v4/input-group-spinner.json | 16 + .../styles/new-york-v4/input-group-text.json | 15 + .../new-york-v4/input-group-textarea.json | 16 + .../new-york-v4/input-group-tooltip.json | 16 + .../r/styles/new-york-v4/input-group.json | 17 + .../r/styles/new-york-v4/item-avatar.json | 15 + .../r/styles/new-york-v4/item-demo.json | 15 + .../r/styles/new-york-v4/item-dropdown.json | 15 + .../r/styles/new-york-v4/item-group.json | 15 + .../r/styles/new-york-v4/item-header.json | 15 + .../r/styles/new-york-v4/item-icon.json | 15 + .../r/styles/new-york-v4/item-image.json | 15 + .../r/styles/new-york-v4/item-link.json | 15 + .../r/styles/new-york-v4/item-select.json | 15 + .../r/styles/new-york-v4/item-size.json | 15 + .../r/styles/new-york-v4/item-variant.json | 15 + apps/v4/public/r/styles/new-york-v4/item.json | 15 + .../r/styles/new-york-v4/kbd-button.json | 16 + .../public/r/styles/new-york-v4/kbd-demo.json | 15 + .../r/styles/new-york-v4/kbd-group.json | 15 + .../r/styles/new-york-v4/kbd-input-group.json | 18 + .../r/styles/new-york-v4/kbd-tooltip.json | 17 + apps/v4/public/r/styles/new-york-v4/kbd.json | 12 + .../public/r/styles/new-york-v4/login-01.json | 5 +- .../public/r/styles/new-york-v4/login-02.json | 6 +- .../public/r/styles/new-york-v4/login-03.json | 5 +- .../public/r/styles/new-york-v4/login-04.json | 7 +- .../public/r/styles/new-york-v4/login-05.json | 6 +- .../styles/new-york-v4/new-components-01.json | 168 + .../public/r/styles/new-york-v4/otp-01.json | 30 + .../public/r/styles/new-york-v4/otp-02.json | 29 + .../public/r/styles/new-york-v4/otp-03.json | 30 + .../public/r/styles/new-york-v4/otp-04.json | 30 + .../public/r/styles/new-york-v4/otp-05.json | 29 + .../public/r/styles/new-york-v4/registry.json | 3107 ++++++----- .../public/r/styles/new-york-v4/select.json | 2 +- .../r/styles/new-york-v4/signup-01.json | 29 + .../r/styles/new-york-v4/signup-02.json | 29 + .../r/styles/new-york-v4/signup-03.json | 30 + .../r/styles/new-york-v4/signup-04.json | 30 + .../r/styles/new-york-v4/signup-05.json | 28 + .../public/r/styles/new-york-v4/slider.json | 2 +- .../r/styles/new-york-v4/spinner-badge.json | 16 + .../r/styles/new-york-v4/spinner-basic.json | 16 + .../r/styles/new-york-v4/spinner-button.json | 16 + .../r/styles/new-york-v4/spinner-color.json | 15 + .../r/styles/new-york-v4/spinner-custom.json | 15 + .../r/styles/new-york-v4/spinner-demo.json | 15 + .../r/styles/new-york-v4/spinner-empty.json | 15 + .../new-york-v4/spinner-input-group.json | 17 + .../r/styles/new-york-v4/spinner-item.json | 15 + .../r/styles/new-york-v4/spinner-size.json | 15 + .../public/r/styles/new-york-v4/spinner.json | 15 + .../r/styles/new-york/button-group.json | 18 + apps/v4/public/r/styles/new-york/empty.json | 14 + apps/v4/public/r/styles/new-york/field.json | 18 + .../public/r/styles/new-york/input-group.json | 19 + apps/v4/public/r/styles/new-york/item.json | 17 + apps/v4/public/r/styles/new-york/kbd.json | 14 + .../v4/public/r/styles/new-york/registry.json | 96 + apps/v4/public/r/styles/new-york/spinner.json | 17 + apps/v4/registry.json | 1165 +++- apps/v4/registry/__blocks__.json | 55 + apps/v4/registry/__index__.tsx | 1728 +++++- .../blocks/login-01/components/login-form.tsx | 42 +- .../blocks/login-02/components/login-form.tsx | 80 +- .../blocks/login-03/components/login-form.tsx | 89 +- .../blocks/login-04/components/login-form.tsx | 63 +- .../new-york-v4/blocks/login-04/page.tsx | 2 +- .../blocks/login-05/components/login-form.tsx | 67 +- .../components/appearance-settings.tsx | 144 + .../components/button-group-demo.tsx | 113 + .../components/button-group-input-group.tsx | 57 + .../components/button-group-nested.tsx | 32 + .../components/button-group-popover.tsx | 45 + .../components/empty-avatar-group.tsx | 57 + .../components/empty-input-group.tsx | 43 + .../components/field-choice-card.tsx | 54 + .../components/field-demo.tsx | 151 + .../components/field-slider.tsx | 35 + .../components/input-group-button.tsx | 58 + .../components/input-group-demo.tsx | 97 + .../components/input-group-textarea.tsx | 46 + .../components/item-avatar.tsx | 78 + .../components/item-demo.tsx | 42 + .../components/notion-prompt-form.tsx | 467 ++ .../components/spinner-badge.tsx | 21 + .../components/spinner-empty.tsx | 31 + .../components/ui/button-group.tsx | 83 + .../components/ui/button.tsx | 60 + .../components/ui/dropdown-menu.tsx | 257 + .../new-components-01/components/ui/empty.tsx | 104 + .../new-components-01/components/ui/field.tsx | 244 + .../components/ui/input-group.tsx | 170 + .../new-components-01/components/ui/input.tsx | 21 + .../new-components-01/components/ui/item.tsx | 193 + .../new-components-01/components/ui/kbd.tsx | 28 + .../components/ui/spinner.tsx | 16 + .../components/ui/tooltip.tsx | 61 + .../blocks/new-components-01/page.tsx | 70 + .../blocks/otp-01/components/otp-form.tsx | 58 + .../new-york-v4/blocks/otp-01/page.tsx | 11 + .../blocks/otp-02/components/otp-form.tsx | 59 + .../new-york-v4/blocks/otp-02/page.tsx | 22 + .../blocks/otp-03/components/otp-form.tsx | 58 + .../new-york-v4/blocks/otp-03/page.tsx | 19 + .../blocks/otp-04/components/otp-form.tsx | 82 + .../new-york-v4/blocks/otp-04/page.tsx | 11 + .../blocks/otp-05/components/otp-form.tsx | 75 + .../new-york-v4/blocks/otp-05/page.tsx | 11 + .../signup-01/components/signup-form.tsx | 76 + .../new-york-v4/blocks/signup-01/page.tsx | 11 + .../signup-02/components/signup-form.tsx | 70 + .../new-york-v4/blocks/signup-02/page.tsx | 32 + .../signup-03/components/signup-form.tsx | 80 + .../new-york-v4/blocks/signup-03/page.tsx | 19 + .../signup-04/components/signup-form.tsx | 114 + .../new-york-v4/blocks/signup-04/page.tsx | 11 + .../signup-05/components/signup-form.tsx | 78 + .../new-york-v4/blocks/signup-05/page.tsx | 11 + .../new-york-v4/examples/avatar-demo.tsx | 5 +- .../new-york-v4/examples/button-default.tsx | 5 + .../new-york-v4/examples/button-demo.tsx | 7 +- .../examples/button-group-demo.tsx | 114 + .../examples/button-group-dropdown.tsx | 73 + .../examples/button-group-input-group.tsx | 58 + .../examples/button-group-input.tsx | 16 + .../examples/button-group-nested.tsx | 38 + .../examples/button-group-orientation.tsx | 21 + .../examples/button-group-popover.tsx | 45 + .../examples/button-group-select.tsx | 57 + .../examples/button-group-separator.tsx | 19 + .../examples/button-group-size.tsx | 47 + .../examples/button-group-split.tsx | 19 + .../new-york-v4/examples/button-icon.tsx | 6 +- .../new-york-v4/examples/button-loading.tsx | 9 +- .../new-york-v4/examples/button-rounded.tsx | 13 + .../new-york-v4/examples/button-size.tsx | 32 + .../examples/empty-avatar-group.tsx | 57 + .../new-york-v4/examples/empty-avatar.tsx | 40 + .../new-york-v4/examples/empty-background.tsx | 34 + .../new-york-v4/examples/empty-demo.tsx | 45 + .../new-york-v4/examples/empty-icon.tsx | 68 + .../examples/empty-input-group.tsx | 43 + .../new-york-v4/examples/empty-outline.tsx | 32 + .../new-york-v4/examples/field-checkbox.tsx | 80 + .../examples/field-choice-card.tsx | 54 + .../new-york-v4/examples/field-demo.tsx | 151 + .../new-york-v4/examples/field-fieldset.tsx | 38 + .../new-york-v4/examples/field-group.tsx | 55 + .../new-york-v4/examples/field-input.tsx | 33 + .../new-york-v4/examples/field-radio.tsx | 43 + .../new-york-v4/examples/field-responsive.tsx | 61 + .../new-york-v4/examples/field-select.tsx | 40 + .../new-york-v4/examples/field-slider.tsx | 35 + .../new-york-v4/examples/field-switch.tsx | 24 + .../new-york-v4/examples/field-textarea.tsx | 30 + .../examples/input-group-button-group.tsx | 31 + .../examples/input-group-button.tsx | 86 + .../examples/input-group-custom.tsx | 28 + .../new-york-v4/examples/input-group-demo.tsx | 98 + .../examples/input-group-dropdown.tsx | 59 + .../new-york-v4/examples/input-group-icon.tsx | 49 + .../examples/input-group-label.tsx | 50 + .../examples/input-group-spinner.tsx | 46 + .../new-york-v4/examples/input-group-text.tsx | 46 + .../examples/input-group-textarea.tsx | 46 + .../examples/input-group-tooltip.tsx | 77 + .../new-york-v4/examples/item-avatar.tsx | 80 + .../new-york-v4/examples/item-demo.tsx | 44 + .../new-york-v4/examples/item-dropdown.tsx | 73 + .../new-york-v4/examples/item-group.tsx | 68 + .../new-york-v4/examples/item-header.tsx | 60 + .../new-york-v4/examples/item-icon.tsx | 34 + .../new-york-v4/examples/item-image.tsx | 65 + .../new-york-v4/examples/item-link.tsx | 42 + .../new-york-v4/examples/item-size.tsx | 44 + .../new-york-v4/examples/item-variant.tsx | 54 + .../new-york-v4/examples/kbd-button.tsx | 15 + .../new-york-v4/examples/kbd-demo.tsx | 19 + .../new-york-v4/examples/kbd-group.tsx | 16 + .../new-york-v4/examples/kbd-input-group.tsx | 25 + .../new-york-v4/examples/kbd-tooltip.tsx | 45 + .../new-york-v4/examples/spinner-badge.tsx | 21 + .../new-york-v4/examples/spinner-basic.tsx | 9 + .../new-york-v4/examples/spinner-button.tsx | 21 + .../new-york-v4/examples/spinner-color.tsx | 13 + .../new-york-v4/examples/spinner-custom.tsx | 22 + .../new-york-v4/examples/spinner-demo.tsx | 25 + .../new-york-v4/examples/spinner-empty.tsx | 31 + .../examples/spinner-input-group.tsx | 33 + .../new-york-v4/examples/spinner-item.tsx | 36 + .../new-york-v4/examples/spinner-size.tsx | 12 + .../registry/new-york-v4/ui/button-group.tsx | 83 + apps/v4/registry/new-york-v4/ui/button.tsx | 2 + apps/v4/registry/new-york-v4/ui/card.tsx | 2 +- .../registry/new-york-v4/ui/context-menu.tsx | 2 +- .../registry/new-york-v4/ui/dropdown-menu.tsx | 2 +- apps/v4/registry/new-york-v4/ui/empty.tsx | 104 + apps/v4/registry/new-york-v4/ui/field.tsx | 244 + .../registry/new-york-v4/ui/input-group.tsx | 170 + apps/v4/registry/new-york-v4/ui/item.tsx | 193 + apps/v4/registry/new-york-v4/ui/kbd.tsx | 28 + apps/v4/registry/new-york-v4/ui/select.tsx | 2 + apps/v4/registry/new-york-v4/ui/slider.tsx | 2 +- apps/v4/registry/new-york-v4/ui/spinner.tsx | 16 + apps/v4/registry/registry-blocks.ts | 325 +- apps/v4/registry/registry-categories.ts | 12 +- apps/v4/registry/registry-examples.ts | 765 +++ apps/v4/registry/registry-ui.ts | 75 + apps/v4/styles/themes.css | 394 +- apps/www/__registry__/index.tsx | 210 + apps/www/public/r/index.json | 89 + apps/www/public/r/registries.json | 1 + .../public/r/styles/default/button-group.json | 18 + apps/www/public/r/styles/default/empty.json | 14 + apps/www/public/r/styles/default/field.json | 18 + .../public/r/styles/default/input-group.json | 19 + apps/www/public/r/styles/default/item.json | 17 + apps/www/public/r/styles/default/kbd.json | 14 + .../www/public/r/styles/default/registry.json | 96 + apps/www/public/r/styles/default/spinner.json | 17 + .../r/styles/new-york-v4/avatar-demo.json | 2 +- .../r/styles/new-york-v4/button-default.json | 15 + .../r/styles/new-york-v4/button-demo.json | 2 +- .../styles/new-york-v4/button-group-demo.json | 15 + .../new-york-v4/button-group-dropdown.json | 15 + .../new-york-v4/button-group-input-group.json | 15 + .../new-york-v4/button-group-input.json | 15 + .../new-york-v4/button-group-nested.json | 15 + .../new-york-v4/button-group-orientation.json | 15 + .../new-york-v4/button-group-popover.json | 15 + .../new-york-v4/button-group-select.json | 15 + .../new-york-v4/button-group-separator.json | 15 + .../styles/new-york-v4/button-group-size.json | 15 + .../new-york-v4/button-group-split.json | 15 + .../r/styles/new-york-v4/button-group.json | 16 + .../r/styles/new-york-v4/button-icon.json | 2 +- .../r/styles/new-york-v4/button-loading.json | 2 +- .../r/styles/new-york-v4/button-rounded.json | 15 + .../r/styles/new-york-v4/button-size.json | 15 + .../public/r/styles/new-york-v4/button.json | 2 +- .../www/public/r/styles/new-york-v4/card.json | 2 +- .../r/styles/new-york-v4/context-menu.json | 2 +- .../r/styles/new-york-v4/dropdown-menu.json | 2 +- .../new-york-v4/empty-avatar-group.json | 17 + .../r/styles/new-york-v4/empty-avatar.json | 17 + .../styles/new-york-v4/empty-background.json | 15 + .../r/styles/new-york-v4/empty-demo.json | 16 + .../r/styles/new-york-v4/empty-icon.json | 15 + .../r/styles/new-york-v4/empty-image.json | 15 + .../styles/new-york-v4/empty-input-group.json | 17 + .../r/styles/new-york-v4/empty-muted.json | 15 + .../r/styles/new-york-v4/empty-outline.json | 16 + .../public/r/styles/new-york-v4/empty.json | 12 + .../r/styles/new-york-v4/field-badge.json | 15 + .../r/styles/new-york-v4/field-checkbox.json | 15 + .../styles/new-york-v4/field-choice-card.json | 15 + .../r/styles/new-york-v4/field-demo.json | 15 + .../r/styles/new-york-v4/field-fieldset.json | 15 + .../r/styles/new-york-v4/field-group.json | 15 + .../r/styles/new-york-v4/field-input.json | 15 + .../r/styles/new-york-v4/field-radio.json | 15 + .../styles/new-york-v4/field-responsive.json | 15 + .../r/styles/new-york-v4/field-select.json | 15 + .../r/styles/new-york-v4/field-slider.json | 15 + .../r/styles/new-york-v4/field-switch.json | 15 + .../r/styles/new-york-v4/field-textarea.json | 15 + .../public/r/styles/new-york-v4/field.json | 16 + .../styles/new-york-v4/input-group-align.json | 15 + .../new-york-v4/input-group-button-group.json | 16 + .../new-york-v4/input-group-button.json | 15 + .../new-york-v4/input-group-custom.json | 19 + .../styles/new-york-v4/input-group-demo.json | 15 + .../new-york-v4/input-group-dropdown.json | 17 + .../styles/new-york-v4/input-group-icon.json | 15 + .../styles/new-york-v4/input-group-label.json | 16 + .../new-york-v4/input-group-select.json | 16 + .../new-york-v4/input-group-spinner.json | 16 + .../styles/new-york-v4/input-group-text.json | 15 + .../new-york-v4/input-group-textarea.json | 16 + .../new-york-v4/input-group-tooltip.json | 16 + .../r/styles/new-york-v4/input-group.json | 17 + .../r/styles/new-york-v4/item-avatar.json | 15 + .../r/styles/new-york-v4/item-demo.json | 15 + .../r/styles/new-york-v4/item-dropdown.json | 15 + .../r/styles/new-york-v4/item-group.json | 15 + .../r/styles/new-york-v4/item-header.json | 15 + .../r/styles/new-york-v4/item-icon.json | 15 + .../r/styles/new-york-v4/item-image.json | 15 + .../r/styles/new-york-v4/item-link.json | 15 + .../r/styles/new-york-v4/item-select.json | 15 + .../r/styles/new-york-v4/item-size.json | 15 + .../r/styles/new-york-v4/item-variant.json | 15 + .../www/public/r/styles/new-york-v4/item.json | 15 + .../r/styles/new-york-v4/kbd-button.json | 16 + .../public/r/styles/new-york-v4/kbd-demo.json | 15 + .../r/styles/new-york-v4/kbd-group.json | 15 + .../r/styles/new-york-v4/kbd-input-group.json | 18 + .../r/styles/new-york-v4/kbd-tooltip.json | 17 + apps/www/public/r/styles/new-york-v4/kbd.json | 12 + .../public/r/styles/new-york-v4/login-01.json | 5 +- .../public/r/styles/new-york-v4/login-02.json | 6 +- .../public/r/styles/new-york-v4/login-03.json | 5 +- .../public/r/styles/new-york-v4/login-04.json | 7 +- .../public/r/styles/new-york-v4/login-05.json | 6 +- .../styles/new-york-v4/new-components-01.json | 168 + .../public/r/styles/new-york-v4/otp-01.json | 30 + .../public/r/styles/new-york-v4/otp-02.json | 29 + .../public/r/styles/new-york-v4/otp-03.json | 30 + .../public/r/styles/new-york-v4/otp-04.json | 30 + .../public/r/styles/new-york-v4/otp-05.json | 29 + .../public/r/styles/new-york-v4/registry.json | 3107 ++++++----- .../public/r/styles/new-york-v4/select.json | 2 +- .../r/styles/new-york-v4/signup-01.json | 29 + .../r/styles/new-york-v4/signup-02.json | 29 + .../r/styles/new-york-v4/signup-03.json | 30 + .../r/styles/new-york-v4/signup-04.json | 30 + .../r/styles/new-york-v4/signup-05.json | 28 + .../public/r/styles/new-york-v4/slider.json | 2 +- .../r/styles/new-york-v4/spinner-badge.json | 16 + .../r/styles/new-york-v4/spinner-basic.json | 16 + .../r/styles/new-york-v4/spinner-button.json | 16 + .../r/styles/new-york-v4/spinner-color.json | 15 + .../r/styles/new-york-v4/spinner-custom.json | 15 + .../r/styles/new-york-v4/spinner-demo.json | 15 + .../r/styles/new-york-v4/spinner-empty.json | 15 + .../new-york-v4/spinner-input-group.json | 17 + .../r/styles/new-york-v4/spinner-item.json | 15 + .../r/styles/new-york-v4/spinner-size.json | 15 + .../public/r/styles/new-york-v4/spinner.json | 15 + .../r/styles/new-york/button-group.json | 18 + apps/www/public/r/styles/new-york/empty.json | 14 + apps/www/public/r/styles/new-york/field.json | 18 + .../public/r/styles/new-york/input-group.json | 19 + apps/www/public/r/styles/new-york/item.json | 17 + apps/www/public/r/styles/new-york/kbd.json | 14 + .../public/r/styles/new-york/registry.json | 96 + .../www/public/r/styles/new-york/spinner.json | 17 + apps/www/registry/default/ui/button-group.tsx | 83 + apps/www/registry/default/ui/empty.tsx | 104 + apps/www/registry/default/ui/field.tsx | 244 + apps/www/registry/default/ui/input-group.tsx | 170 + apps/www/registry/default/ui/item.tsx | 193 + apps/www/registry/default/ui/kbd.tsx | 28 + apps/www/registry/default/ui/spinner.tsx | 16 + .../www/registry/new-york/ui/button-group.tsx | 83 + apps/www/registry/new-york/ui/empty.tsx | 104 + apps/www/registry/new-york/ui/field.tsx | 244 + apps/www/registry/new-york/ui/input-group.tsx | 170 + apps/www/registry/new-york/ui/item.tsx | 193 + apps/www/registry/new-york/ui/kbd.tsx | 28 + apps/www/registry/new-york/ui/spinner.tsx | 16 + apps/www/registry/registry-ui.ts | 75 + pnpm-lock.yaml | 125 +- 512 files changed, 37389 insertions(+), 4184 deletions(-) create mode 100644 apps/v4/app/(app)/(root)/components/appearance-settings.tsx create mode 100644 apps/v4/app/(app)/(root)/components/button-group-demo.tsx create mode 100644 apps/v4/app/(app)/(root)/components/button-group-input-group.tsx create mode 100644 apps/v4/app/(app)/(root)/components/button-group-nested.tsx create mode 100644 apps/v4/app/(app)/(root)/components/button-group-popover.tsx create mode 100644 apps/v4/app/(app)/(root)/components/empty-avatar-group.tsx create mode 100644 apps/v4/app/(app)/(root)/components/empty-input-group.tsx create mode 100644 apps/v4/app/(app)/(root)/components/field-checkbox.tsx create mode 100644 apps/v4/app/(app)/(root)/components/field-choice-card.tsx create mode 100644 apps/v4/app/(app)/(root)/components/field-demo.tsx create mode 100644 apps/v4/app/(app)/(root)/components/field-hear.tsx create mode 100644 apps/v4/app/(app)/(root)/components/field-slider.tsx create mode 100644 apps/v4/app/(app)/(root)/components/index.tsx create mode 100644 apps/v4/app/(app)/(root)/components/input-group-button.tsx create mode 100644 apps/v4/app/(app)/(root)/components/input-group-demo.tsx create mode 100644 apps/v4/app/(app)/(root)/components/input-group-textarea.tsx create mode 100644 apps/v4/app/(app)/(root)/components/item-avatar.tsx create mode 100644 apps/v4/app/(app)/(root)/components/item-demo.tsx create mode 100644 apps/v4/app/(app)/(root)/components/notion-prompt-form.tsx create mode 100644 apps/v4/app/(app)/(root)/components/spinner-badge.tsx create mode 100644 apps/v4/app/(app)/(root)/components/spinner-empty.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/appearance-settings.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/chat-settings.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/display-settings.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/notion-prompt-form.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/page.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/ship-registration-form.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/forms/shipping-form.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/next-form/actions.ts create mode 100644 apps/v4/app/(internal)/sink/(pages)/next-form/example-form.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/next-form/page.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/react-hook-form/example-form.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/react-hook-form/page.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/schema.ts create mode 100644 apps/v4/app/(internal)/sink/(pages)/tanstack-form/example-form.tsx create mode 100644 apps/v4/app/(internal)/sink/(pages)/tanstack-form/page.tsx create mode 100644 apps/v4/app/(internal)/sink/[name]/page.tsx create mode 100644 apps/v4/app/(internal)/sink/component-registry.ts create mode 100644 apps/v4/app/(internal)/sink/components/app-breadcrumbs.tsx create mode 100644 apps/v4/app/(internal)/sink/components/button-group-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/empty-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/field-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/input-group-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/item-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/kbd-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/spinner-demo.tsx create mode 100644 apps/v4/app/(internal)/sink/components/theme-selector.tsx create mode 100644 apps/v4/app/(internal)/sink/layout.tsx create mode 100644 apps/v4/content/docs/components/button-group.mdx create mode 100644 apps/v4/content/docs/components/empty.mdx create mode 100644 apps/v4/content/docs/components/field.mdx create mode 100644 apps/v4/content/docs/components/input-group.mdx create mode 100644 apps/v4/content/docs/components/item.mdx create mode 100644 apps/v4/content/docs/components/kbd.mdx create mode 100644 apps/v4/content/docs/components/spinner.mdx create mode 100644 apps/v4/lib/docs.ts create mode 100644 apps/v4/lib/llm.ts create mode 100644 apps/v4/public/r/styles/default/button-group.json create mode 100644 apps/v4/public/r/styles/default/empty.json create mode 100644 apps/v4/public/r/styles/default/field.json create mode 100644 apps/v4/public/r/styles/default/input-group.json create mode 100644 apps/v4/public/r/styles/default/item.json create mode 100644 apps/v4/public/r/styles/default/kbd.json create mode 100644 apps/v4/public/r/styles/default/spinner.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-default.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-dropdown.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-input-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-input.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-nested.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-orientation.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-popover.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-select.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-separator.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-size.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group-split.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-rounded.json create mode 100644 apps/v4/public/r/styles/new-york-v4/button-size.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-avatar-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-avatar.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-background.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-icon.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-image.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-input-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-muted.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty-outline.json create mode 100644 apps/v4/public/r/styles/new-york-v4/empty.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-badge.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-checkbox.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-choice-card.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-fieldset.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-input.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-radio.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-responsive.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-select.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-slider.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-switch.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field-textarea.json create mode 100644 apps/v4/public/r/styles/new-york-v4/field.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-align.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-button-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-button.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-custom.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-dropdown.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-icon.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-label.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-select.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-spinner.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-text.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-textarea.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group-tooltip.json create mode 100644 apps/v4/public/r/styles/new-york-v4/input-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-avatar.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-dropdown.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-header.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-icon.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-image.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-link.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-select.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-size.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item-variant.json create mode 100644 apps/v4/public/r/styles/new-york-v4/item.json create mode 100644 apps/v4/public/r/styles/new-york-v4/kbd-button.json create mode 100644 apps/v4/public/r/styles/new-york-v4/kbd-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/kbd-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/kbd-input-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/kbd-tooltip.json create mode 100644 apps/v4/public/r/styles/new-york-v4/kbd.json create mode 100644 apps/v4/public/r/styles/new-york-v4/new-components-01.json create mode 100644 apps/v4/public/r/styles/new-york-v4/otp-01.json create mode 100644 apps/v4/public/r/styles/new-york-v4/otp-02.json create mode 100644 apps/v4/public/r/styles/new-york-v4/otp-03.json create mode 100644 apps/v4/public/r/styles/new-york-v4/otp-04.json create mode 100644 apps/v4/public/r/styles/new-york-v4/otp-05.json create mode 100644 apps/v4/public/r/styles/new-york-v4/signup-01.json create mode 100644 apps/v4/public/r/styles/new-york-v4/signup-02.json create mode 100644 apps/v4/public/r/styles/new-york-v4/signup-03.json create mode 100644 apps/v4/public/r/styles/new-york-v4/signup-04.json create mode 100644 apps/v4/public/r/styles/new-york-v4/signup-05.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-badge.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-basic.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-button.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-color.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-custom.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-demo.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-empty.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-input-group.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-item.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner-size.json create mode 100644 apps/v4/public/r/styles/new-york-v4/spinner.json create mode 100644 apps/v4/public/r/styles/new-york/button-group.json create mode 100644 apps/v4/public/r/styles/new-york/empty.json create mode 100644 apps/v4/public/r/styles/new-york/field.json create mode 100644 apps/v4/public/r/styles/new-york/input-group.json create mode 100644 apps/v4/public/r/styles/new-york/item.json create mode 100644 apps/v4/public/r/styles/new-york/kbd.json create mode 100644 apps/v4/public/r/styles/new-york/spinner.json create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/appearance-settings.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/button-group-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/button-group-input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/button-group-nested.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/button-group-popover.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/empty-avatar-group.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/empty-input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/field-choice-card.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/field-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/field-slider.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/input-group-button.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/input-group-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/input-group-textarea.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/item-avatar.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/item-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/notion-prompt-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/spinner-badge.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/spinner-empty.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/button-group.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/button.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/dropdown-menu.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/empty.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/field.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/input.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/item.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/kbd.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/spinner.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/components/ui/tooltip.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/new-components-01/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-01/components/otp-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-01/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-02/components/otp-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-02/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-03/components/otp-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-03/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-04/components/otp-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-04/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-05/components/otp-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/otp-05/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-01/components/signup-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-01/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-02/components/signup-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-02/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-03/components/signup-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-03/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-04/components/signup-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-04/page.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-05/components/signup-form.tsx create mode 100644 apps/v4/registry/new-york-v4/blocks/signup-05/page.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-default.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-dropdown.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-input.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-nested.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-orientation.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-popover.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-select.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-separator.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-size.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-group-split.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-rounded.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/button-size.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-avatar-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-avatar.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-background.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-icon.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/empty-outline.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-checkbox.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-choice-card.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-fieldset.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-input.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-radio.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-responsive.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-select.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-slider.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-switch.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/field-textarea.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-button-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-button.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-custom.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-dropdown.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-icon.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-label.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-spinner.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-text.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-textarea.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/input-group-tooltip.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-avatar.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-dropdown.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-header.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-icon.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-image.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-link.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-size.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/item-variant.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/kbd-button.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/kbd-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/kbd-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/kbd-input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/kbd-tooltip.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-badge.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-basic.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-button.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-color.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-custom.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-demo.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-empty.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-item.tsx create mode 100644 apps/v4/registry/new-york-v4/examples/spinner-size.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/button-group.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/empty.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/field.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/input-group.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/item.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/kbd.tsx create mode 100644 apps/v4/registry/new-york-v4/ui/spinner.tsx create mode 100644 apps/www/public/r/styles/default/button-group.json create mode 100644 apps/www/public/r/styles/default/empty.json create mode 100644 apps/www/public/r/styles/default/field.json create mode 100644 apps/www/public/r/styles/default/input-group.json create mode 100644 apps/www/public/r/styles/default/item.json create mode 100644 apps/www/public/r/styles/default/kbd.json create mode 100644 apps/www/public/r/styles/default/spinner.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-default.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-dropdown.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-input-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-input.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-nested.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-orientation.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-popover.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-select.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-separator.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-size.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group-split.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-rounded.json create mode 100644 apps/www/public/r/styles/new-york-v4/button-size.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-avatar-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-avatar.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-background.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-icon.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-image.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-input-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-muted.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty-outline.json create mode 100644 apps/www/public/r/styles/new-york-v4/empty.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-badge.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-checkbox.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-choice-card.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-fieldset.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-input.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-radio.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-responsive.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-select.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-slider.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-switch.json create mode 100644 apps/www/public/r/styles/new-york-v4/field-textarea.json create mode 100644 apps/www/public/r/styles/new-york-v4/field.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-align.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-button-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-button.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-custom.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-dropdown.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-icon.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-label.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-select.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-spinner.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-text.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-textarea.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group-tooltip.json create mode 100644 apps/www/public/r/styles/new-york-v4/input-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-avatar.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-dropdown.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-header.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-icon.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-image.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-link.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-select.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-size.json create mode 100644 apps/www/public/r/styles/new-york-v4/item-variant.json create mode 100644 apps/www/public/r/styles/new-york-v4/item.json create mode 100644 apps/www/public/r/styles/new-york-v4/kbd-button.json create mode 100644 apps/www/public/r/styles/new-york-v4/kbd-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/kbd-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/kbd-input-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/kbd-tooltip.json create mode 100644 apps/www/public/r/styles/new-york-v4/kbd.json create mode 100644 apps/www/public/r/styles/new-york-v4/new-components-01.json create mode 100644 apps/www/public/r/styles/new-york-v4/otp-01.json create mode 100644 apps/www/public/r/styles/new-york-v4/otp-02.json create mode 100644 apps/www/public/r/styles/new-york-v4/otp-03.json create mode 100644 apps/www/public/r/styles/new-york-v4/otp-04.json create mode 100644 apps/www/public/r/styles/new-york-v4/otp-05.json create mode 100644 apps/www/public/r/styles/new-york-v4/signup-01.json create mode 100644 apps/www/public/r/styles/new-york-v4/signup-02.json create mode 100644 apps/www/public/r/styles/new-york-v4/signup-03.json create mode 100644 apps/www/public/r/styles/new-york-v4/signup-04.json create mode 100644 apps/www/public/r/styles/new-york-v4/signup-05.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-badge.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-basic.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-button.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-color.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-custom.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-demo.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-empty.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-input-group.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-item.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner-size.json create mode 100644 apps/www/public/r/styles/new-york-v4/spinner.json create mode 100644 apps/www/public/r/styles/new-york/button-group.json create mode 100644 apps/www/public/r/styles/new-york/empty.json create mode 100644 apps/www/public/r/styles/new-york/field.json create mode 100644 apps/www/public/r/styles/new-york/input-group.json create mode 100644 apps/www/public/r/styles/new-york/item.json create mode 100644 apps/www/public/r/styles/new-york/kbd.json create mode 100644 apps/www/public/r/styles/new-york/spinner.json create mode 100644 apps/www/registry/default/ui/button-group.tsx create mode 100644 apps/www/registry/default/ui/empty.tsx create mode 100644 apps/www/registry/default/ui/field.tsx create mode 100644 apps/www/registry/default/ui/input-group.tsx create mode 100644 apps/www/registry/default/ui/item.tsx create mode 100644 apps/www/registry/default/ui/kbd.tsx create mode 100644 apps/www/registry/default/ui/spinner.tsx create mode 100644 apps/www/registry/new-york/ui/button-group.tsx create mode 100644 apps/www/registry/new-york/ui/empty.tsx create mode 100644 apps/www/registry/new-york/ui/field.tsx create mode 100644 apps/www/registry/new-york/ui/input-group.tsx create mode 100644 apps/www/registry/new-york/ui/item.tsx create mode 100644 apps/www/registry/new-york/ui/kbd.tsx create mode 100644 apps/www/registry/new-york/ui/spinner.tsx diff --git a/.vscode/settings.json b/.vscode/settings.json index 86d709b11e..55c2c63cfc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,5 +8,8 @@ "/**", "**/node_modules/**", "**/fixtures/**" - ] + ], + "files.exclude": { + "apps/www": true + } } diff --git a/apps/v4/app/(app)/(root)/components/appearance-settings.tsx b/apps/v4/app/(app)/(root)/components/appearance-settings.tsx new file mode 100644 index 0000000000..6a54f1c3ca --- /dev/null +++ b/apps/v4/app/(app)/(root)/components/appearance-settings.tsx @@ -0,0 +1,168 @@ +"use client" + +import { IconMinus, IconPlus } from "@tabler/icons-react" +import { CheckIcon } from "lucide-react" + +import { useThemeConfig } from "@/components/active-theme" +import { Button } from "@/registry/new-york-v4/ui/button" +import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group" +import { + Field, + FieldContent, + FieldDescription, + FieldGroup, + FieldLabel, + FieldLegend, + FieldSeparator, + FieldSet, + FieldTitle, +} from "@/registry/new-york-v4/ui/field" +import { Input } from "@/registry/new-york-v4/ui/input" +import { Label } from "@/registry/new-york-v4/ui/label" +import { + RadioGroup, + RadioGroupItem, +} from "@/registry/new-york-v4/ui/radio-group" +import { Switch } from "@/registry/new-york-v4/ui/switch" + +const accents = [ + { + name: "Blue", + value: "blue", + }, + { + name: "Amber", + value: "amber", + }, + { + name: "Green", + value: "green", + }, + { + name: "Rose", + value: "rose", + }, +] + +export function AppearanceSettings() { + const { activeTheme, setActiveTheme } = useThemeConfig() + return ( +
+ +
+ Compute Environment + + Select the compute environment for your cluster. + + + + + + Kubernetes + + Run GPU workloads on a K8s configured cluster. This is the + default. + + + + + + + + + Virtual Machine + + Access a VM configured cluster to run workloads. (Coming + soon) + + + + + + +
+ + + + Accent + Select the accent color. + +
+ + {accents.map((accent) => ( + + ))} + +
+
+ + + + Number of GPUs + You can add more later. + + + + + + + + + + + Wallpaper Tinting + + Allow the wallpaper to be tinted. + + + + +
+
+ ) +} diff --git a/apps/v4/app/(app)/(root)/components/button-group-demo.tsx b/apps/v4/app/(app)/(root)/components/button-group-demo.tsx new file mode 100644 index 0000000000..54010a73d0 --- /dev/null +++ b/apps/v4/app/(app)/(root)/components/button-group-demo.tsx @@ -0,0 +1,120 @@ +"use client" + +import * as React from "react" +import { + ArchiveIcon, + ArrowLeftIcon, + CalendarPlusIcon, + ClockIcon, + ListFilterPlusIcon, + MailCheckIcon, + MoreHorizontalIcon, + TagIcon, + Trash2Icon, +} from "lucide-react" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group" +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, +} from "@/registry/new-york-v4/ui/dropdown-menu" + +export function ButtonGroupDemo() { + const [label, setLabel] = React.useState("personal") + + return ( + + + + + + + + + + + + + + + + + + + Mark as Read + + + + Archive + + + + + + + Snooze + + + + Add to Calendar + + + + Add to List + + + + + Label As... + + + + + Personal + + + Work + + + Other + + + + + + + + + + Trash + + + + + + + ) +} diff --git a/apps/v4/app/(app)/(root)/components/button-group-input-group.tsx b/apps/v4/app/(app)/(root)/components/button-group-input-group.tsx new file mode 100644 index 0000000000..0120a22901 --- /dev/null +++ b/apps/v4/app/(app)/(root)/components/button-group-input-group.tsx @@ -0,0 +1,58 @@ +"use client" + +import * as React from "react" +import { AudioLinesIcon, PlusIcon } from "lucide-react" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group" +import { + InputGroup, + InputGroupAddon, + InputGroupButton, + InputGroupInput, +} from "@/registry/new-york-v4/ui/input-group" +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/registry/new-york-v4/ui/tooltip" + +export function ButtonGroupInputGroup() { + const [voiceEnabled, setVoiceEnabled] = React.useState(false) + return ( + + + + + + + + + + + setVoiceEnabled(!voiceEnabled)} + data-active={voiceEnabled} + className="data-[active=true]:bg-primary data-[active=true]:text-primary-foreground" + aria-pressed={voiceEnabled} + size="icon-xs" + aria-label="Voice Mode" + > + + + + Voice Mode + + + + + + ) +} diff --git a/apps/v4/app/(app)/(root)/components/button-group-nested.tsx b/apps/v4/app/(app)/(root)/components/button-group-nested.tsx new file mode 100644 index 0000000000..44718e472e --- /dev/null +++ b/apps/v4/app/(app)/(root)/components/button-group-nested.tsx @@ -0,0 +1,32 @@ +"use client" + +import { ArrowLeftIcon, ArrowRightIcon } from "lucide-react" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group" + +export function ButtonGroupNested() { + return ( + + + + + + + + + + + + ) +} diff --git a/apps/v4/app/(app)/(root)/components/button-group-popover.tsx b/apps/v4/app/(app)/(root)/components/button-group-popover.tsx new file mode 100644 index 0000000000..972aa0b4ce --- /dev/null +++ b/apps/v4/app/(app)/(root)/components/button-group-popover.tsx @@ -0,0 +1,45 @@ +import { BotIcon, ChevronDownIcon } from "lucide-react" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group" +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/registry/new-york-v4/ui/popover" +import { Separator } from "@/registry/new-york-v4/ui/separator" +import { Textarea } from "@/registry/new-york-v4/ui/textarea" + +export function ButtonGroupPopover() { + return ( + + + + + + + +
+
Agent Tasks
+
+ +
+