feat: add Svelte 5 support via @boldkit/svelte#4
Draft
maxffarrell wants to merge 6 commits into
Draft
Conversation
Adds a new `packages/svelte` workspace with 20 core UI components ported from the Vue package, using Svelte 5 runes syntax and bits-ui as the headless primitive layer (analogous to reka-ui for Vue). Components (50+ .svelte files): - Foundation: Button, Badge, Input, Label, Textarea, Separator, Skeleton - Card: Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter - Display: Alert (+ Title, Description, Action), Avatar (+ Image, Fallback) - Interactive: Checkbox, Switch, Progress, Toggle - Compound: Accordion (+ Item, Trigger, Content) - Navigation: Tabs (+ List, Trigger, Content) - Overlay: Dialog (+ Trigger, Content, Header, Footer, Title, Description, Close) - Form: Select (+ Trigger, Value, Content, Item, Group, Label, Separator) - Menu: DropdownMenu (+ Trigger, Content, Item, Label, Separator, Shortcut) Registry: - `public/r/svelte/*.json` — shadcn-svelte-compatible registry entries - `packages/svelte/scripts/build-registry.js` — registry build script - Root `registry:build:svelte` script wired into `registry:build` All components pass `svelte-check` with 0 errors (Svelte 5 strict mode). CSS variables and keyframe animations reuse the shared neubrutalism design system; accordion/collapsible height variables updated from `--reka-*` to `--bits-*` for bits-ui compatibility. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@maxffarrell is attempting to deploy a commit to the aniruddhaagarwal18's projects Team on Vercel. A member of the Team first needs to authorize it. |
…tyling - Use `pnpm dlx shadcn-svelte@latest add -a` to scaffold all standard components (accordion, alert, alert-dialog, avatar, badge, breadcrumb, button, calendar, card, carousel, chart, checkbox, collapsible, command, context-menu, data-table, dialog, drawer, dropdown-menu, field, form, hover-card, input, input-group, input-otp, kbd, label, menubar, native-select, navigation-menu, pagination, popover, progress, radio-group, range-calendar, resizable, scroll-area, select, separator, sheet, sidebar, skeleton, slider, sonner, spinner, switch, table, tabs, textarea, toggle, toggle-group, tooltip) - Remove old manually-written flat files, move to proper subdirectory structure - Apply BoldKit neubrutalism styling to all CLI components: border-3 border-foreground, shadow-[4px_4px_0px_hsl(var(--shadow-color))], hover press effect, font-bold uppercase tracking-wide, no border-radius - Add BoldKit-unique components in subdirectories: marquee, sticker, layered-card, timeline, empty-state - Add WithElementRef/WithoutChild* type helpers to $lib/utils.ts - Update index.ts with explicit named exports (no wildcard to avoid collisions) - Upgrade bits-ui to v2.16.3, add vaul-svelte, embla-carousel-svelte - svelte-check passes: 0 errors, 0 warnings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Owner
|
@maxffarrell thanks for submitting this PR! I'll be reviewing it in a few days, currently have a busy schedule. Will leave detailed feedback once I get to it. |
Author
|
@ANIBIT14 no rush! Opening for visibility, I still have plenty of work left to do |
Port Rating, StatCard, Stamp, StickyNote, Stepper (6 parts), TagInput, Dropzone, FileList, MathCurveBackground/Loader/Progress, CarouselDots, ComboboxTrigger/MultiTrigger, KbdCombo, EmptyStateActions/Illustration/Preset. Add stampVariants + stickyNoteVariants to sticker-variants.ts and copy math-curves.ts engine from Vue. Export Sonner alias, Stamp, StickyNote. svelte-check: 0 errors, 4 non-blocking warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
packages/svelte— a new Bun workspace with 50+ Svelte 5 components ported from the existing Vue package$props(),$bindable(),$state(), snippets)public/r/svelte/*.json(installable vianpx shadcn add https://boldkit.dev/r/svelte/button.json)Components included
Key design decisions
Accordion.Root,Dialog.Content, etc.)globals.cssis adapted from the Vue package (only--reka-accordion-content-height→--bits-accordion-content-height)registry-item.jsonschema, deployed topublic/r/svelte/svelte-checkpasses with 0 errors (Svelte 5 strict mode)What's NOT included yet (follow-up PRs)
Test plan
svelte-check --tsconfig ./tsconfig.json→ 0 errors, 0 warningsregistry:build:sveltescript wired intoregistry:buildpackages/svelteadded to Bun workspaces in rootpackage.json🤖 Generated with Claude Code