github/ieedan/shadcn-svelte-extras
Turn key shadcn-svelte components to help finish your app.
jsrepo init github/ieedan/shadcn-svelte-extras
shadcn-svelte-extras
Turn key shadcn-svelte components to help you finish your app.
Components
Name | |
---|---|
AvatarGroup | A composable avatar grouping component |
Button | An extended button component |
Chat | A component for creating live chats |
Code | A code component |
Copy Button | A button used to copy text to the clipboard |
Field Set | A field set component |
File Drop Zone | A file drop zone component |
Image Cropper | A component for uploading and resizing images |
IPv4Address Input | An IPv4 address input input with all the behavior you'd expect |
Kbd | Denotes user input from a keyboard |
Light Switch | A component to click and change the theme |
Link | A simple link component |
Modal | A responsive dialog component |
NLP Date Input | A natural language date input with suggestions |
Phone Input | A phone number input component |
PM Command | A package manager command component |
Snippet | A snippet component |
Tags Input | A tags input component |
Terminal | An implementation of the MacOS terminal. Useful for showcasing a command line interface |
Theme Selector | Click to select the theme |
Tree View | A file tree component |
Window | A window component |
and more...
Install with jsrepo
Initialize jsrepo:
jsrepo init github/ieedan/shadcn-svelte-extras
Install components:
jsrepo add # list
jsrepo add ui/button # single
Files
- avatar-group-etc.svelte
- avatar-group-member.svelte
- avatar-group.svelte
- index.ts
Remote Dependencies
- bits-ui@1.3.15
Local Dependencies
- utils/utils
- ui/avatar
Files
- button.svelte
- index.ts
Remote Dependencies
- @lucide/svelte@^0.486.0
- bits-ui@1.3.15
- tailwind-variants@^0.3.1
Local Dependencies
- utils/utils
Files
- chat-bubble-avatar.svelte
- chat-bubble-message.svelte
- chat-bubble.svelte
- chat-list.svelte
- index.ts
- loading-dots.svelte
Remote Dependencies
- bits-ui@1.3.15
- @lucide/svelte@^0.486.0
Local Dependencies
- ui/avatar
- utils/utils
- ui/button
- hooks/use-auto-scroll.svelte
Files
- code.svelte
- index.ts
- shiki.ts
Remote Dependencies
- tailwind-variants@^0.3.1
- isomorphic-dompurify@^2.22.0
- shiki@^3.2.1
- @shikijs/langs@^3.2.1
- @shikijs/themes@^3.2.1
Local Dependencies
- utils/utils
- ui/copy-button
Files
- copy-button.svelte
- index.ts
Remote Dependencies
- @lucide/svelte@^0.486.0
Local Dependencies
- ui/button
- hooks/use-clipboard.svelte
- utils/utils
Files
- field-set-content.svelte
- field-set-footer.svelte
- field-set-title.svelte
- field-set.svelte
- index.ts
Remote Dependencies
- bits-ui@1.3.15
- tailwind-variants@^0.3.1
Local Dependencies
- utils/utils
Files
- file-drop-zone.svelte
- index.ts
Remote Dependencies
- @lucide/svelte@^0.486.0
- bits-ui@1.3.15
Local Dependencies
- utils/utils
Files
- image-cropper-cancel.svelte
- image-cropper-controls.svelte
- image-cropper-crop.svelte
- image-cropper-cropper.svelte
- image-cropper-dialog.svelte
- image-cropper-preview.svelte
- image-cropper-upload-trigger.svelte
- image-cropper.svelte
- image-cropper.svelte.ts
- index.ts
- types.ts
- utils.ts
Remote Dependencies
- bits-ui@1.3.15
- @lucide/svelte@^0.486.0
- svelte-easy-crop@^4.0.1
- svelte-toolbelt@^0.7.1
- runed@^0.25.0
Local Dependencies
- ui/button
- utils/utils
- ui/dialog
- ui/avatar
- utils/box
Files
- index.ts
- ipv4address-input-input.svelte
- ipv4address-input.svelte
Remote Dependencies
Local Dependencies
- utils/is-number
- utils/utils
- utils/ipv4-address
Files
- index.ts
- kbd.svelte
Remote Dependencies
- tailwind-variants@^0.3.1
Local Dependencies
- utils/utils
Files
- index.ts
- light-switch.svelte
Remote Dependencies
- @lucide/svelte@^0.486.0
- mode-watcher@^0.5.1
Local Dependencies
- ui/button
Files
- index.ts
- link.svelte
Remote Dependencies
Local Dependencies
- utils/utils
Files
- index.ts
- modal.svelte
Remote Dependencies
Local Dependencies
- ui/dialog
- ui/drawer
- utils/utils
Files
- index.ts
- nlp-date-input.svelte
Remote Dependencies
- yeezy-dates@^1.0.1
Local Dependencies
- ui/command
Files
- country-selector.svelte
- flag.svelte
- index.ts
- phone-input.svelte
Remote Dependencies
- @lucide/svelte@^0.486.0
- svelte-tel-input@^3.6.0
Local Dependencies
- ui/popover
- ui/button
- ui/command
- ui/scroll-area
- utils/utils
Files
- index.ts
- pm-command.svelte
Remote Dependencies
- tailwind-variants@^0.3.1
- package-manager-detector@^1.1.0
- @lucide/svelte@^0.486.0
Local Dependencies
- utils/utils
- ui/copy-button
Files
- index.ts
- snippet.svelte
Remote Dependencies
- tailwind-variants@^0.3.1
Local Dependencies
- utils/utils
- ui/copy-button
Files
- index.ts
- tags-input-tag.svelte
- tags-input.svelte
- types.ts
Remote Dependencies
- @lucide/svelte@^0.486.0
Local Dependencies
- utils/utils
Files
- index.ts
- terminal-animated-span.svelte
- terminal-loading.svelte
- terminal-loop.svelte
- terminal-typing-animation.svelte
- terminal.svelte
- terminal.svelte.ts
- types.ts
Remote Dependencies
- bits-ui@1.3.15
- runed@^0.25.0
Local Dependencies
- utils/utils
- actions/typewriter.svelte
- ui/window
Files
- index.ts
- theme-selector.svelte
Remote Dependencies
- @lucide/svelte@^0.486.0
- mode-watcher@^0.5.1
Local Dependencies
- ui/dropdown-menu
- ui/button
Files
- index.ts
- toc.svelte
Remote Dependencies
Local Dependencies
- hooks/use-toc.svelte
- utils/utils
Files
- index.ts
- tree-view-file.svelte
- tree-view-folder.svelte
- tree-view.svelte
Remote Dependencies
- @lucide/svelte@^0.486.0
Local Dependencies
- utils/utils
- ui/collapsible
Files
- index.ts
- window.svelte
Remote Dependencies
- bits-ui@1.3.15
Local Dependencies
- utils/utils
Files
- active.svelte.ts
Remote Dependencies
Local Dependencies
Files
- shortcut.svelte.ts
Remote Dependencies
Local Dependencies
Files
- use-auto-scroll.svelte.ts
Remote Dependencies
Local Dependencies
Files
- use-boolean.svelte.ts
Remote Dependencies
Local Dependencies
Files
- use-clipboard.svelte.ts
Remote Dependencies
Local Dependencies
Files
- use-promise.svelte.ts
Remote Dependencies
Local Dependencies
Files
- use-toc.svelte.ts
Remote Dependencies
Local Dependencies
Package | Version |
---|---|
bits-ui | 1.3.15 |
@lucide/svelte | ^0.486.0 |
tailwind-variants | ^0.3.1 |
isomorphic-dompurify | ^2.22.0 |
shiki | ^3.2.1 |
@shikijs/langs | ^3.2.1 |
@shikijs/themes | ^3.2.1 |
vaul-svelte | 1.0.0-next.3 |
svelte-easy-crop | ^4.0.1 |
svelte-toolbelt | ^0.7.1 |
runed | ^0.25.0 |
mode-watcher | ^0.5.1 |
yeezy-dates | ^1.0.1 |
svelte-tel-input | ^3.6.0 |
package-manager-detector | ^1.1.0 |
clsx | ^2.1.1 |
tailwind-merge | ^2.6.0 |
{
"meta": {
"authors": [
"Aidan Bleser"
],
"bugs": "https://github.com/ieedan/shadcn-svelte-extras/issues",
"description": "Turn key shadcn-svelte components to help finish your app.",
"homepage": "https://www.shadcn-svelte-extras.com/",
"repository": "https://github.com/ieedan/shadcn-svelte-extras",
"tags": [
"svelte",
"shadcn",
"typescript",
"components",
"utilities"
]
},
"peerDependencies": {
"svelte": "5.x.x",
"tailwindcss": {
"version": "3.x.x",
"message": "Tailwindcss@v4 support is in progress see: https://github.com/huntabyte/shadcn-svelte/issues/1643"
}
},
"categories": [
{
"name": "ui",
"blocks": [
{
"name": "avatar",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/avatar",
"subdirectory": true,
"files": [
"avatar-fallback.svelte",
"avatar-image.svelte",
"avatar.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "avatar-group",
"category": "ui",
"localDependencies": [
"utils/utils",
"ui/avatar"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/avatar-group",
"subdirectory": true,
"files": [
"avatar-group-etc.svelte",
"avatar-group-member.svelte",
"avatar-group.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"../avatar/avatar.svelte": "{{ui/avatar}}/avatar.svelte",
"$lib/utils/utils.js": "{{utils/utils}}.js",
"$lib/components/ui/avatar": "{{ui/avatar}}"
}
},
{
"name": "button",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0",
"bits-ui@1.3.15",
"tailwind-variants@^0.3.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/button",
"subdirectory": true,
"files": [
"button.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "chat",
"category": "ui",
"localDependencies": [
"ui/avatar",
"utils/utils",
"ui/button",
"hooks/use-auto-scroll.svelte"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/chat",
"subdirectory": true,
"files": [
"chat-bubble-avatar.svelte",
"chat-bubble-message.svelte",
"chat-bubble.svelte",
"chat-list.svelte",
"index.ts",
"loading-dots.svelte"
],
"_imports_": {
"$lib/components/ui/avatar": "{{ui/avatar}}",
"$lib/utils/utils.js": "{{utils/utils}}.js",
"$lib/utils/utils": "{{utils/utils}}",
"$lib/components/ui/button": "{{ui/button}}",
"$lib/hooks/use-auto-scroll.svelte.js": "{{hooks/use-auto-scroll.svelte}}.js"
}
},
{
"name": "code",
"category": "ui",
"localDependencies": [
"utils/utils",
"ui/copy-button"
],
"dependencies": [],
"devDependencies": [
"tailwind-variants@^0.3.1",
"isomorphic-dompurify@^2.22.0",
"shiki@^3.2.1",
"@shikijs/langs@^3.2.1",
"@shikijs/themes@^3.2.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/code",
"subdirectory": true,
"files": [
"code.svelte",
"index.ts",
"shiki.ts"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"$lib/components/ui/copy-button": "{{ui/copy-button}}"
}
},
{
"name": "collapsible",
"category": "ui",
"localDependencies": [],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/collapsible",
"subdirectory": true,
"files": [
"index.ts"
],
"_imports_": {}
},
{
"name": "command",
"category": "ui",
"localDependencies": [
"ui/dialog",
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/command",
"subdirectory": true,
"files": [
"command-dialog.svelte",
"command-empty.svelte",
"command-group.svelte",
"command-input.svelte",
"command-item.svelte",
"command-link-item.svelte",
"command-list.svelte",
"command-separator.svelte",
"command-shortcut.svelte",
"command.svelte",
"index.ts"
],
"_imports_": {
"$lib/components/ui/dialog/index.js": "{{ui/dialog}}/index.js",
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "copy-button",
"category": "ui",
"localDependencies": [
"ui/button",
"hooks/use-clipboard.svelte",
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/copy-button",
"subdirectory": true,
"files": [
"copy-button.svelte",
"index.ts"
],
"_imports_": {
"$lib/components/ui/button": "{{ui/button}}",
"$lib/hooks/use-clipboard.svelte": "{{hooks/use-clipboard.svelte}}",
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "dialog",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/dialog",
"subdirectory": true,
"files": [
"dialog-content.svelte",
"dialog-description.svelte",
"dialog-footer.svelte",
"dialog-header.svelte",
"dialog-overlay.svelte",
"dialog-title.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "drawer",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"vaul-svelte@1.0.0-next.3",
"bits-ui@1.3.15"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/drawer",
"subdirectory": true,
"files": [
"drawer-content.svelte",
"drawer-description.svelte",
"drawer-footer.svelte",
"drawer-header.svelte",
"drawer-nested.svelte",
"drawer-overlay.svelte",
"drawer-title.svelte",
"drawer.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "dropdown-menu",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/dropdown-menu",
"subdirectory": true,
"files": [
"dropdown-menu-checkbox-item.svelte",
"dropdown-menu-content.svelte",
"dropdown-menu-group-heading.svelte",
"dropdown-menu-item.svelte",
"dropdown-menu-label.svelte",
"dropdown-menu-radio-item.svelte",
"dropdown-menu-separator.svelte",
"dropdown-menu-shortcut.svelte",
"dropdown-menu-sub-content.svelte",
"dropdown-menu-sub-trigger.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "field-set",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"tailwind-variants@^0.3.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/field-set",
"subdirectory": true,
"files": [
"field-set-content.svelte",
"field-set-footer.svelte",
"field-set-title.svelte",
"field-set.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "file-drop-zone",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0",
"bits-ui@1.3.15"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/file-drop-zone",
"subdirectory": true,
"files": [
"file-drop-zone.svelte",
"index.ts"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "image-cropper",
"category": "ui",
"localDependencies": [
"ui/button",
"utils/utils",
"ui/dialog",
"ui/avatar",
"utils/box"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"@lucide/svelte@^0.486.0",
"svelte-easy-crop@^4.0.1",
"svelte-toolbelt@^0.7.1",
"runed@^0.25.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/image-cropper",
"subdirectory": true,
"files": [
"image-cropper-cancel.svelte",
"image-cropper-controls.svelte",
"image-cropper-crop.svelte",
"image-cropper-cropper.svelte",
"image-cropper-dialog.svelte",
"image-cropper-preview.svelte",
"image-cropper-upload-trigger.svelte",
"image-cropper.svelte",
"image-cropper.svelte.ts",
"index.ts",
"types.ts",
"utils.ts"
],
"_imports_": {
"$lib/components/ui/button": "{{ui/button}}",
"$lib/utils/utils": "{{utils/utils}}",
"$lib/components/ui/dialog": "{{ui/dialog}}",
"$lib/components/ui/avatar": "{{ui/avatar}}",
"$lib/utils/box": "{{utils/box}}"
}
},
{
"name": "ipv4address-input",
"category": "ui",
"localDependencies": [
"utils/is-number",
"utils/utils",
"utils/ipv4-address"
],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/ipv4address-input",
"subdirectory": true,
"files": [
"index.ts",
"ipv4address-input-input.svelte",
"ipv4address-input.svelte"
],
"_imports_": {
"$lib/utils/is-number": "{{utils/is-number}}",
"$lib/utils/utils": "{{utils/utils}}",
"$lib/utils/ipv4-address": "{{utils/ipv4-address}}"
}
},
{
"name": "kbd",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"tailwind-variants@^0.3.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/kbd",
"subdirectory": true,
"files": [
"index.ts",
"kbd.svelte"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "light-switch",
"category": "ui",
"localDependencies": [
"ui/button"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0",
"mode-watcher@^0.5.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/light-switch",
"subdirectory": true,
"files": [
"index.ts",
"light-switch.svelte"
],
"_imports_": {
"$lib/components/ui/button/index.js": "{{ui/button}}/index.js"
}
},
{
"name": "link",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/link",
"subdirectory": true,
"files": [
"index.ts",
"link.svelte"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "modal",
"category": "ui",
"localDependencies": [
"ui/dialog",
"ui/drawer",
"utils/utils"
],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/modal",
"subdirectory": true,
"files": [
"index.ts",
"modal.svelte"
],
"_imports_": {
"$lib/components/ui/dialog/index.js": "{{ui/dialog}}/index.js",
"$lib/components/ui/drawer/index.js": "{{ui/drawer}}/index.js",
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "nlp-date-input",
"category": "ui",
"localDependencies": [
"ui/command"
],
"dependencies": [],
"devDependencies": [
"yeezy-dates@^1.0.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/nlp-date-input",
"subdirectory": true,
"files": [
"index.ts",
"nlp-date-input.svelte"
],
"_imports_": {
"$lib/components/ui/command": "{{ui/command}}"
}
},
{
"name": "phone-input",
"category": "ui",
"localDependencies": [
"ui/popover",
"ui/button",
"ui/command",
"ui/scroll-area",
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0",
"svelte-tel-input@^3.6.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/phone-input",
"subdirectory": true,
"files": [
"country-selector.svelte",
"flag.svelte",
"index.ts",
"phone-input.svelte"
],
"_imports_": {
"$lib/components/ui/popover": "{{ui/popover}}",
"$lib/components/ui/button": "{{ui/button}}",
"$lib/components/ui/command": "{{ui/command}}",
"$lib/components/ui/scroll-area": "{{ui/scroll-area}}",
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "pm-command",
"category": "ui",
"localDependencies": [
"utils/utils",
"ui/copy-button"
],
"dependencies": [],
"devDependencies": [
"tailwind-variants@^0.3.1",
"package-manager-detector@^1.1.0",
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/pm-command",
"subdirectory": true,
"files": [
"index.ts",
"pm-command.svelte"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"../copy-button/copy-button.svelte": "{{ui/copy-button}}/copy-button.svelte"
}
},
{
"name": "popover",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/popover",
"subdirectory": true,
"files": [
"index.ts",
"popover-content.svelte"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "scroll-area",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15"
],
"tests": false,
"list": false,
"directory": "src/lib/components/ui/scroll-area",
"subdirectory": true,
"files": [
"index.ts",
"scroll-area-scrollbar.svelte",
"scroll-area.svelte"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
{
"name": "snippet",
"category": "ui",
"localDependencies": [
"utils/utils",
"ui/copy-button"
],
"dependencies": [],
"devDependencies": [
"tailwind-variants@^0.3.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/snippet",
"subdirectory": true,
"files": [
"index.ts",
"snippet.svelte"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"../copy-button": "{{ui/copy-button}}"
}
},
{
"name": "tags-input",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/tags-input",
"subdirectory": true,
"files": [
"index.ts",
"tags-input-tag.svelte",
"tags-input.svelte",
"types.ts"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "terminal",
"category": "ui",
"localDependencies": [
"utils/utils",
"actions/typewriter.svelte",
"ui/window"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15",
"runed@^0.25.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/terminal",
"subdirectory": true,
"files": [
"index.ts",
"terminal-animated-span.svelte",
"terminal-loading.svelte",
"terminal-loop.svelte",
"terminal-typing-animation.svelte",
"terminal.svelte",
"terminal.svelte.ts",
"types.ts"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"$lib/actions/typewriter.svelte": "{{actions/typewriter.svelte}}",
"$lib/components/ui/window": "{{ui/window}}"
}
},
{
"name": "theme-selector",
"category": "ui",
"localDependencies": [
"ui/dropdown-menu",
"ui/button"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0",
"mode-watcher@^0.5.1"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/theme-selector",
"subdirectory": true,
"files": [
"index.ts",
"theme-selector.svelte"
],
"_imports_": {
"$lib/components/ui/dropdown-menu/index.js": "{{ui/dropdown-menu}}/index.js",
"$lib/components/ui/button/index.js": "{{ui/button}}/index.js"
}
},
{
"name": "toc",
"category": "ui",
"localDependencies": [
"hooks/use-toc.svelte",
"utils/utils"
],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/toc",
"subdirectory": true,
"files": [
"index.ts",
"toc.svelte"
],
"_imports_": {
"$lib/hooks/use-toc.svelte": "{{hooks/use-toc.svelte}}",
"$lib/utils/utils": "{{utils/utils}}"
}
},
{
"name": "tree-view",
"category": "ui",
"localDependencies": [
"utils/utils",
"ui/collapsible"
],
"dependencies": [],
"devDependencies": [
"@lucide/svelte@^0.486.0"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/tree-view",
"subdirectory": true,
"files": [
"index.ts",
"tree-view-file.svelte",
"tree-view-folder.svelte",
"tree-view.svelte"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"$lib/components/ui/collapsible/index.js": "{{ui/collapsible}}/index.js"
}
},
{
"name": "window",
"category": "ui",
"localDependencies": [
"utils/utils"
],
"dependencies": [],
"devDependencies": [
"bits-ui@1.3.15"
],
"tests": false,
"list": true,
"directory": "src/lib/components/ui/window",
"subdirectory": true,
"files": [
"index.ts",
"window.svelte"
],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}"
}
}
]
},
{
"name": "actions",
"blocks": [
{
"name": "active.svelte",
"category": "actions",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/actions",
"subdirectory": false,
"files": [
"active.svelte.ts"
],
"_imports_": {}
},
{
"name": "shortcut.svelte",
"category": "actions",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/actions",
"subdirectory": false,
"files": [
"shortcut.svelte.ts"
],
"_imports_": {}
},
{
"name": "typewriter.svelte",
"category": "actions",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": false,
"directory": "src/lib/actions",
"subdirectory": false,
"files": [
"typewriter.svelte.ts"
],
"_imports_": {}
}
]
},
{
"name": "hooks",
"blocks": [
{
"name": "use-auto-scroll.svelte",
"category": "hooks",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/hooks",
"subdirectory": false,
"files": [
"use-auto-scroll.svelte.ts"
],
"_imports_": {}
},
{
"name": "use-boolean.svelte",
"category": "hooks",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/hooks",
"subdirectory": false,
"files": [
"use-boolean.svelte.ts"
],
"_imports_": {}
},
{
"name": "use-clipboard.svelte",
"category": "hooks",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/hooks",
"subdirectory": false,
"files": [
"use-clipboard.svelte.ts"
],
"_imports_": {}
},
{
"name": "use-promise.svelte",
"category": "hooks",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/hooks",
"subdirectory": false,
"files": [
"use-promise.svelte.ts"
],
"_imports_": {}
},
{
"name": "use-toc.svelte",
"category": "hooks",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": true,
"directory": "src/lib/hooks",
"subdirectory": false,
"files": [
"use-toc.svelte.ts"
],
"_imports_": {}
}
]
},
{
"name": "utils",
"blocks": [
{
"name": "box",
"category": "utils",
"localDependencies": [],
"dependencies": [],
"devDependencies": [
"svelte-toolbelt@^0.7.1"
],
"tests": false,
"list": false,
"directory": "src/lib/utils",
"subdirectory": false,
"files": [
"box.ts"
],
"_imports_": {}
},
{
"name": "ipv4-address",
"category": "utils",
"localDependencies": [
"utils/types",
"utils/is-number"
],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": false,
"directory": "src/lib/utils",
"subdirectory": false,
"files": [
"ipv4-address.ts"
],
"_imports_": {
"$lib/utils/types/result": "{{utils/types}}/result",
"$lib/utils/is-number": "{{utils/is-number}}"
}
},
{
"name": "is-number",
"category": "utils",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": false,
"directory": "src/lib/utils",
"subdirectory": false,
"files": [
"is-number.ts"
],
"_imports_": {}
},
{
"name": "types",
"category": "utils",
"localDependencies": [],
"dependencies": [],
"devDependencies": [],
"tests": false,
"list": false,
"directory": "src/lib/utils/types",
"subdirectory": true,
"files": [
"result.ts"
],
"_imports_": {}
},
{
"name": "utils",
"category": "utils",
"localDependencies": [],
"dependencies": [],
"devDependencies": [
"clsx@^2.1.1",
"tailwind-merge@^2.6.0"
],
"tests": false,
"list": false,
"directory": "src/lib/utils",
"subdirectory": false,
"files": [
"utils.ts"
],
"_imports_": {}
}
]
}
]
}
svelteshadcntypescriptcomponentsutilities
Categories 4
Blocks 44
Dependencies 17
Config Files 0
Authors
Aidan Bleser