├── .github
├── dependabot.yml
└── workflows
│ ├── build-preview.yml
│ ├── build-registry.yml
│ ├── ci.yml
│ ├── deploy-preview.yml
│ └── deploy-prod.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── .vscode
├── ltex.dictionary.en-GB.txt
└── settings.json
├── CONTRIBUTING.md
├── README.md
├── components.json
├── jsrepo-build-config.json
├── jsrepo-manifest.json
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── src
├── app.css
├── app.d.ts
├── app.html
├── lib
│ ├── assets
│ │ ├── book-texture.avif
│ │ └── icons
│ │ │ ├── accessibility.svg
│ │ │ ├── arrow-circle-up.svg
│ │ │ ├── arrow-left.svg
│ │ │ ├── arrow-right.svg
│ │ │ ├── arrow-up.svg
│ │ │ ├── bell.svg
│ │ │ ├── box.svg
│ │ │ ├── brand-assets.svg
│ │ │ ├── calendar.svg
│ │ │ ├── chart-bar-middle.svg
│ │ │ ├── chart-bar-peak.svg
│ │ │ ├── chart-pie.svg
│ │ │ ├── chart-trending-down.svg
│ │ │ ├── check-circle.svg
│ │ │ ├── check.svg
│ │ │ ├── chevron-down-small.svg
│ │ │ ├── chevron-down.svg
│ │ │ ├── chevron-left.svg
│ │ │ ├── chevron-right-small.svg
│ │ │ ├── chevron-right.svg
│ │ │ ├── chevron-up-small.svg
│ │ │ ├── chevron-up.svg
│ │ │ ├── clock-dashed.svg
│ │ │ ├── clock.svg
│ │ │ ├── code-bracket.svg
│ │ │ ├── command.svg
│ │ │ ├── copy.svg
│ │ │ ├── cross.svg
│ │ │ ├── cursor-click.svg
│ │ │ ├── database.svg
│ │ │ ├── dollar.svg
│ │ │ ├── error-states.svg
│ │ │ ├── external-small.svg
│ │ │ ├── external.svg
│ │ │ ├── face-happy.svg
│ │ │ ├── face-sad.svg
│ │ │ ├── face-smile.svg
│ │ │ ├── face-unhappy.svg
│ │ │ ├── file-text.svg
│ │ │ ├── flag.svg
│ │ │ ├── floppy-disk.svg
│ │ │ ├── git-branch.svg
│ │ │ ├── globe.svg
│ │ │ ├── grid-square.svg
│ │ │ ├── inbox.svg
│ │ │ ├── index.ts
│ │ │ ├── information-fill-small.svg
│ │ │ ├── information.svg
│ │ │ ├── key.svg
│ │ │ ├── link.svg
│ │ │ ├── loader-circle.svg
│ │ │ ├── lock-closed-small.svg
│ │ │ ├── lock-open-small.svg
│ │ │ ├── logo-bitbucket-color.svg
│ │ │ ├── logo-geist.svg
│ │ │ ├── logo-github.svg
│ │ │ ├── logo-gitlab.svg
│ │ │ ├── logo-next.svg
│ │ │ ├── logo-svelte.svg
│ │ │ ├── logo-turborepo.svg
│ │ │ ├── logo-v0.svg
│ │ │ ├── logo-vercel-circle.svg
│ │ │ ├── logo-vercel.svg
│ │ │ ├── magnifying-glass.svg
│ │ │ ├── markdown.svg
│ │ │ ├── minus.svg
│ │ │ ├── more-horizontal.svg
│ │ │ ├── notification.svg
│ │ │ ├── paperclip.svg
│ │ │ ├── pencil-edit.svg
│ │ │ ├── router.svg
│ │ │ ├── settings-sliders.svg
│ │ │ ├── shield-globe.svg
│ │ │ ├── shield.svg
│ │ │ ├── simple-illustration.svg
│ │ │ ├── star.svg
│ │ │ ├── status.svg
│ │ │ ├── stop.svg
│ │ │ ├── tabs.svg
│ │ │ ├── theme-switch-dark.svg
│ │ │ ├── theme-switch-light.svg
│ │ │ ├── theme-switch-system.svg
│ │ │ ├── user-plus.svg
│ │ │ └── warning.svg
│ ├── components
│ │ ├── shared
│ │ │ ├── accordion-animation.ts
│ │ │ ├── command
│ │ │ │ └── command.svelte
│ │ │ ├── demo.svelte
│ │ │ ├── footer.svelte
│ │ │ ├── page-section.svelte
│ │ │ ├── page-wrapper.svelte
│ │ │ ├── shiki.ts
│ │ │ └── themes
│ │ │ │ ├── vercel-dark.ts
│ │ │ │ └── vercel-light.ts
│ │ └── ui
│ │ │ ├── avatar
│ │ │ ├── avatar-fallback.svelte
│ │ │ ├── avatar-group.svelte
│ │ │ ├── avatar-image.svelte
│ │ │ ├── avatar.svelte
│ │ │ └── index.ts
│ │ │ ├── badge
│ │ │ ├── badge.svelte
│ │ │ └── index.ts
│ │ │ ├── book
│ │ │ ├── book.svelte
│ │ │ └── index.ts
│ │ │ ├── button
│ │ │ ├── button.svelte
│ │ │ └── index.ts
│ │ │ ├── calendar
│ │ │ ├── calendar-cell.svelte
│ │ │ ├── calendar-day.svelte
│ │ │ ├── calendar-grid-body.svelte
│ │ │ ├── calendar-grid-head.svelte
│ │ │ ├── calendar-grid-row.svelte
│ │ │ ├── calendar-grid.svelte
│ │ │ ├── calendar-head-cell.svelte
│ │ │ ├── calendar-header.svelte
│ │ │ ├── calendar-heading.svelte
│ │ │ ├── calendar-months.svelte
│ │ │ ├── calendar-next-button.svelte
│ │ │ ├── calendar-prev-button.svelte
│ │ │ ├── calendar.svelte
│ │ │ └── index.ts
│ │ │ ├── checkbox
│ │ │ ├── checkbox.svelte
│ │ │ └── index.ts
│ │ │ ├── choicebox
│ │ │ ├── choicebox-checkbox.svelte
│ │ │ ├── choicebox-radio.svelte
│ │ │ ├── choicebox.svelte
│ │ │ └── index.ts
│ │ │ ├── collapse
│ │ │ ├── collapse-content.svelte
│ │ │ ├── collapse-item.svelte
│ │ │ ├── collapse-trigger.svelte
│ │ │ ├── collapse.svelte
│ │ │ └── index.ts
│ │ │ ├── combobox
│ │ │ ├── combobox.svelte
│ │ │ └── index.ts
│ │ │ ├── command
│ │ │ ├── command-dialog.svelte
│ │ │ ├── command-empty.svelte
│ │ │ ├── command-group-heading.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
│ │ │ ├── context-menu
│ │ │ ├── context-menu-checkbox-item.svelte
│ │ │ ├── context-menu-content.svelte
│ │ │ ├── context-menu-group-heading.svelte
│ │ │ ├── context-menu-item.svelte
│ │ │ ├── context-menu-radio-item.svelte
│ │ │ ├── context-menu-separator.svelte
│ │ │ ├── context-menu-shortcut.svelte
│ │ │ ├── context-menu-sub-content.svelte
│ │ │ ├── context-menu-sub-trigger.svelte
│ │ │ └── index.ts
│ │ │ ├── description
│ │ │ ├── description.svelte
│ │ │ └── index.ts
│ │ │ ├── dialog
│ │ │ ├── dialog-content.svelte
│ │ │ ├── dialog-description.svelte
│ │ │ ├── dialog-footer.svelte
│ │ │ ├── dialog-header.svelte
│ │ │ ├── dialog-overlay.svelte
│ │ │ ├── dialog-title.svelte
│ │ │ └── index.ts
│ │ │ ├── drawer
│ │ │ ├── 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
│ │ │ ├── empty-state
│ │ │ ├── empty-state.svelte
│ │ │ └── index.ts
│ │ │ ├── error
│ │ │ ├── error.svelte
│ │ │ └── index.ts
│ │ │ ├── feedback
│ │ │ ├── feedback.svelte
│ │ │ └── index.ts
│ │ │ ├── gauge
│ │ │ ├── gauge.svelte
│ │ │ └── index.ts
│ │ │ ├── input
│ │ │ ├── index.ts
│ │ │ ├── input.svelte
│ │ │ └── search.svelte
│ │ │ ├── kbd
│ │ │ ├── index.ts
│ │ │ └── kbd.svelte
│ │ │ ├── label
│ │ │ ├── index.ts
│ │ │ └── label.svelte
│ │ │ ├── link
│ │ │ ├── index.ts
│ │ │ └── link.svelte
│ │ │ ├── loading-dots
│ │ │ ├── index.ts
│ │ │ └── loading-dots.svelte
│ │ │ ├── menu
│ │ │ ├── index.ts
│ │ │ ├── menu-checkbox-item.svelte
│ │ │ ├── menu-content.svelte
│ │ │ ├── menu-item.svelte
│ │ │ ├── menu-radio-item.svelte
│ │ │ ├── menu-separator.svelte
│ │ │ ├── menu-shortcut.svelte
│ │ │ ├── menu-sub-content.svelte
│ │ │ └── menu-sub-trigger.svelte
│ │ │ ├── modal
│ │ │ ├── index.ts
│ │ │ ├── modal-content.svelte
│ │ │ ├── modal-description.svelte
│ │ │ ├── modal-footer.svelte
│ │ │ ├── modal-header.svelte
│ │ │ ├── modal-inset.svelte
│ │ │ ├── modal-title.svelte
│ │ │ ├── modal-trigger.svelte
│ │ │ └── modal.svelte
│ │ │ ├── note
│ │ │ ├── index.ts
│ │ │ └── note.svelte
│ │ │ ├── pagination
│ │ │ ├── index.ts
│ │ │ └── pagination.svelte
│ │ │ ├── popover
│ │ │ ├── index.ts
│ │ │ └── popover-content.svelte
│ │ │ ├── progress
│ │ │ ├── index.ts
│ │ │ └── progress.svelte
│ │ │ ├── project-banner
│ │ │ ├── index.ts
│ │ │ └── project-banner.svelte
│ │ │ ├── radio
│ │ │ ├── index.ts
│ │ │ ├── radio-item.svelte
│ │ │ └── radio.svelte
│ │ │ ├── range-calendar
│ │ │ ├── index.ts
│ │ │ ├── presets-combobox.svelte
│ │ │ ├── range-calendar-cell.svelte
│ │ │ ├── range-calendar-day.svelte
│ │ │ ├── range-calendar-grid-body.svelte
│ │ │ ├── range-calendar-grid-head.svelte
│ │ │ ├── range-calendar-grid-row.svelte
│ │ │ ├── range-calendar-grid.svelte
│ │ │ ├── range-calendar-head-cell.svelte
│ │ │ ├── range-calendar-header.svelte
│ │ │ ├── range-calendar-heading.svelte
│ │ │ ├── range-calendar-months.svelte
│ │ │ ├── range-calendar-next-button.svelte
│ │ │ ├── range-calendar-prev-button.svelte
│ │ │ └── range-calendar.svelte
│ │ │ ├── select
│ │ │ ├── index.ts
│ │ │ ├── select-content.svelte
│ │ │ ├── select-group-heading.svelte
│ │ │ ├── select-item.svelte
│ │ │ ├── select-scroll-down-button.svelte
│ │ │ ├── select-scroll-up-button.svelte
│ │ │ ├── select-separator.svelte
│ │ │ └── select-trigger.svelte
│ │ │ ├── separator
│ │ │ ├── index.ts
│ │ │ └── separator.svelte
│ │ │ ├── show-more
│ │ │ ├── index.ts
│ │ │ └── show-more.svelte
│ │ │ ├── skeleton
│ │ │ ├── index.ts
│ │ │ └── skeleton.svelte
│ │ │ ├── snippet
│ │ │ ├── index.ts
│ │ │ └── snippet.svelte
│ │ │ ├── spinner
│ │ │ ├── index.ts
│ │ │ └── spinner.svelte
│ │ │ ├── status-dot
│ │ │ ├── index.ts
│ │ │ └── status-dot.svelte
│ │ │ ├── switch
│ │ │ ├── index.ts
│ │ │ └── switch.svelte
│ │ │ ├── table
│ │ │ ├── index.ts
│ │ │ ├── table-body.svelte
│ │ │ ├── table-caption.svelte
│ │ │ ├── table-cell.svelte
│ │ │ ├── table-footer.svelte
│ │ │ ├── table-head.svelte
│ │ │ ├── table-header.svelte
│ │ │ ├── table-row.svelte
│ │ │ └── table.svelte
│ │ │ ├── tabs
│ │ │ ├── index.ts
│ │ │ ├── tabs-content.svelte
│ │ │ ├── tabs-list.svelte
│ │ │ └── tabs-trigger.svelte
│ │ │ ├── textarea
│ │ │ ├── index.ts
│ │ │ └── textarea.svelte
│ │ │ ├── theme-switcher
│ │ │ └── theme-switcher.svelte
│ │ │ ├── tooltip
│ │ │ ├── index.ts
│ │ │ └── tooltip-content.svelte
│ │ │ └── window
│ │ │ ├── index.ts
│ │ │ └── window.svelte
│ ├── config
│ │ └── sitemap.ts
│ ├── index.ts
│ ├── stores.ts
│ └── utils.ts
└── routes
│ ├── +layout.svelte
│ ├── +layout.ts
│ ├── +page.svelte
│ ├── aside-item.svelte
│ ├── aside.svelte
│ ├── avatar
│ ├── +page.svelte
│ ├── +page.ts
│ ├── group.svelte
│ ├── placeholder.svelte
│ └── with-icons.svelte
│ ├── badge
│ ├── +page.svelte
│ ├── +page.ts
│ ├── sizes.svelte
│ ├── variants.svelte
│ └── with-icons.svelte
│ ├── book
│ ├── +page.svelte
│ ├── +page.ts
│ ├── custom-color.svelte
│ ├── custom-illustration.svelte
│ ├── default.svelte
│ ├── icon.svg
│ ├── line.svg
│ ├── textured.svelte
│ ├── variants.svelte
│ └── width.svelte
│ ├── brands
│ └── +page.svelte
│ ├── button
│ ├── +page.svelte
│ ├── +page.ts
│ ├── affix-and-suffix.svelte
│ ├── disabled.svelte
│ ├── loading.svelte
│ ├── rounded.svelte
│ ├── shapes.svelte
│ ├── sizes.svelte
│ └── variants.svelte
│ ├── calendar
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── presets.svelte
│ └── range-calendar.svelte
│ ├── checkbox
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── disabled.svelte
│ └── indeterminate.svelte
│ ├── choicebox
│ ├── +page.svelte
│ ├── +page.ts
│ ├── disabled.svelte
│ ├── multi-select.svelte
│ └── single-select.svelte
│ ├── code-block
│ └── +page.svelte
│ ├── collapse
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── expanded.svelte
│ └── small.svelte
│ ├── colors
│ ├── +page.svelte
│ ├── +page.ts
│ ├── backgrounds.svelte
│ ├── borders.svelte
│ ├── component-backgrounds.svelte
│ ├── contrasts.svelte
│ ├── data.ts
│ ├── demo.svelte
│ ├── description-list.svelte
│ ├── helpers.ts
│ ├── scale.svelte
│ ├── scales.svelte
│ └── text-and-icons.svelte
│ ├── combobox
│ ├── +page.svelte
│ ├── +page.ts
│ ├── custom-empty-message.svelte
│ ├── custom-width-input.svelte
│ ├── custom-width-list.svelte
│ ├── default.svelte
│ ├── disabled.svelte
│ ├── errored.svelte
│ ├── sizes.svelte
│ └── used-inside-a-modal.svelte
│ ├── context-menu
│ ├── +page.svelte
│ ├── +page.ts
│ ├── affix-and-suffix.svelte
│ ├── default.svelte
│ ├── disabled-items.svelte
│ └── link-items.svelte
│ ├── create_routes.sh
│ ├── description
│ ├── +page.svelte
│ ├── +page.ts
│ └── default.svelte
│ ├── drawer
│ ├── +page.svelte
│ ├── +page.ts
│ ├── custom-height.svelte
│ └── default.svelte
│ ├── empty-state
│ ├── +page.svelte
│ ├── +page.ts
│ ├── blank-slate.svelte
│ ├── empty-state-design-framework.svelte
│ └── informational.svelte
│ ├── error
│ ├── +page.svelte
│ ├── +page.ts
│ ├── custom-label.svelte
│ ├── default.svelte
│ ├── sizes.svelte
│ └── with-an-error-property.svelte
│ ├── feedback
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ └── inline.svelte
│ ├── gauge
│ ├── +page.svelte
│ ├── +page.ts
│ ├── arc-priority.svelte
│ ├── custom-color-range.svelte
│ ├── custom-secondary-color.svelte
│ ├── default-color-scale.svelte
│ ├── default.svelte
│ └── label.svelte
│ ├── grid
│ └── +page.svelte
│ ├── header.svelte
│ ├── icons
│ ├── +page.svelte
│ ├── +page.ts
│ ├── icons-gallery.svelte
│ ├── transition.ts
│ └── utils.ts
│ ├── input
│ ├── +page.svelte
│ ├── +page.ts
│ ├── affix-and-suffix.svelte
│ ├── default.svelte
│ ├── disabled.svelte
│ ├── label.svelte
│ └── search.svelte
│ ├── introduction-link.svelte
│ ├── keyboard-input
│ ├── +page.svelte
│ ├── +page.ts
│ ├── combination.svelte
│ ├── modifiers.svelte
│ └── small.svelte
│ ├── loading-dots
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ └── with-text.svelte
│ ├── menu
│ ├── +page.svelte
│ ├── +page.ts
│ ├── affix-and-suffix.svelte
│ ├── custom-trigger.svelte
│ ├── default.svelte
│ ├── disabled-items.svelte
│ ├── link-items.svelte
│ └── menu-position.svelte
│ ├── modal
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── disabled-actions.svelte
│ ├── inset.svelte
│ ├── single-button.svelte
│ └── sticky.svelte
│ ├── note
│ ├── +page.svelte
│ ├── +page.ts
│ ├── action.svelte
│ ├── cyan.svelte
│ ├── default.svelte
│ ├── disabled.svelte
│ ├── error.svelte
│ ├── labels.svelte
│ ├── secondary.svelte
│ ├── success.svelte
│ ├── violet.svelte
│ └── warning.svelte
│ ├── pagination
│ ├── +page.svelte
│ ├── +page.ts
│ └── default.svelte
│ ├── progress
│ ├── +page.svelte
│ ├── +page.ts
│ ├── custom-max.svelte
│ ├── default.svelte
│ ├── dynamic-colors.svelte
│ └── themed.svelte
│ ├── project-banner
│ ├── +page.svelte
│ ├── +page.ts
│ ├── error.svelte
│ ├── success.svelte
│ └── warning.svelte
│ ├── radio
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── radio-disabled.svelte
│ ├── radio-required.svelte
│ └── radio-standalone.svelte
│ ├── scroller
│ └── +page.svelte
│ ├── select
│ ├── +page.svelte
│ ├── +page.ts
│ ├── affix-and-suffix.svelte
│ ├── disabled.svelte
│ └── sizes.svelte
│ ├── show-more
│ ├── +page.svelte
│ ├── +page.ts
│ └── default.svelte
│ ├── skeleton
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default-with-box-height.svelte
│ ├── default-with-set-width.svelte
│ ├── no-animation.svelte
│ ├── pill.svelte
│ ├── rounded.svelte
│ ├── squared.svelte
│ ├── wrapping-children-with-fixed-size.svelte
│ └── wrapping-children.svelte
│ ├── snippet
│ ├── +page.svelte
│ ├── +page.ts
│ ├── callback.svelte
│ ├── default.svelte
│ ├── inverted.svelte
│ ├── multiline.svelte
│ ├── no-prompt.svelte
│ └── variants.svelte
│ ├── spinner
│ ├── +page.svelte
│ ├── +page.ts
│ ├── custom-size.svelte
│ └── default-size.svelte
│ ├── stack
│ └── +page.svelte
│ ├── status-dot
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ └── label.svelte
│ ├── switch
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── disabled.svelte
│ ├── sizes.svelte
│ ├── subtle-with-icon.svelte
│ └── with-label.svelte
│ ├── table
│ ├── +page.svelte
│ ├── +page.ts
│ ├── basic-table.svelte
│ ├── full-featured-table.svelte
│ ├── interactive-table.svelte
│ └── striped-table.svelte
│ ├── tabs
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ ├── disable-specific-tabs.svelte
│ ├── overflow-tabs.svelte
│ ├── secondary.svelte
│ └── with-icons.svelte
│ ├── text
│ └── +page.svelte
│ ├── textarea
│ ├── +page.svelte
│ ├── +page.ts
│ ├── default.svelte
│ └── disabled.svelte
│ ├── theme-switcher
│ ├── +page.svelte
│ ├── +page.ts
│ └── default.svelte
│ ├── toast
│ └── +page.svelte
│ ├── toggle
│ └── +page.svelte
│ ├── tooltip
│ ├── +page.svelte
│ ├── +page.ts
│ ├── box-align.svelte
│ ├── components.svelte
│ ├── custom-content.svelte
│ ├── default.svelte
│ ├── no-delay.svelte
│ └── other.svelte
│ └── window
│ ├── +page.svelte
│ ├── +page.ts
│ └── default.svelte
├── static
├── favicon.png
└── og.jpg
├── svelte.config.js
├── tailwind.config.ts
├── tsconfig.json
└── vite.config.ts
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: 'npm' # See documentation for possible values
9 | directory: '/' # Location of package manifests
10 | schedule:
11 | interval: 'weekly'
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | # Output
4 | .output
5 | .vercel
6 | /.svelte-kit
7 | /build
8 |
9 | # OS
10 | .DS_Store
11 | Thumbs.db
12 |
13 | # Env
14 | .env
15 | .env.*
16 | !.env.example
17 | !.env.test
18 |
19 | # Vite
20 | vite.config.js.timestamp-*
21 | vite.config.ts.timestamp-*
22 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Package Managers
2 | package-lock.json
3 | pnpm-lock.yaml
4 | yarn.lock
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"],
7 | "tailwindFunctions": ["tv", "cn"],
8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
9 | }
10 |
--------------------------------------------------------------------------------
/.vscode/ltex.dictionary.en-GB.txt:
--------------------------------------------------------------------------------
1 | Geist
2 | Vercel
3 | shadcn-svelte
4 | jsrepo
5 | SvelteKit
6 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "cSpell.words": [
3 | "anatolzak",
4 | "benmccann",
5 | "bindable",
6 | "Choicebox",
7 | "ciscoheat",
8 | "clickoutside",
9 | "Combobox",
10 | "Conduitry",
11 | "dummdidumm",
12 | "exmarkdown",
13 | "geist",
14 | "geoffrich",
15 | "Gonz",
16 | "huntabyte",
17 | "ieedan",
18 | "jsrepo",
19 | "labelledby",
20 | "legos",
21 | "lukeed",
22 | "nums",
23 | "ollema",
24 | "Paperclip",
25 | "poppanator",
26 | "pyncz",
27 | "runed",
28 | "shadcn",
29 | "shiki",
30 | "shyakadavis",
31 | "techniq",
32 | "trueadm",
33 | "Turborepo",
34 | "vaul",
35 | "WAAPI"
36 | ]
37 | }
38 |
--------------------------------------------------------------------------------
/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://shadcn-svelte.com/schema.json",
3 | "style": "default",
4 | "tailwind": {
5 | "config": "tailwind.config.ts",
6 | "css": "src/app.css",
7 | "baseColor": "neutral"
8 | },
9 | "aliases": {
10 | "components": "$lib/components",
11 | "utils": "$lib/utils",
12 | "ui": "$lib/components/ui",
13 | "hooks": "$lib/hooks"
14 | },
15 | "typescript": true,
16 | "registry": "https://next.shadcn-svelte.com/registry"
17 | }
18 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {}
5 | }
6 | };
7 |
--------------------------------------------------------------------------------
/src/app.d.ts:
--------------------------------------------------------------------------------
1 | // See https://kit.svelte.dev/docs/types#app
2 | // for information about these interfaces
3 |
4 | import '@poppanator/sveltekit-svg/dist/svg';
5 |
6 | declare global {
7 | namespace App {
8 | // interface Error {}
9 | // interface Locals {}
10 | // interface PageData {}
11 | // interface PageState {}
12 | // interface Platform {}
13 | }
14 | }
15 |
16 | export type {};
17 |
--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %sveltekit.head%
8 |
9 |
10 |
17 |
22 |
23 |
24 | %sveltekit.body%
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/lib/assets/book-texture.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shyakadavis/geist/d569656166e838b82759e7845b4261283be65f14/src/lib/assets/book-texture.avif
--------------------------------------------------------------------------------
/src/lib/assets/icons/accessibility.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/arrow-circle-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/arrow-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/box.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/calendar.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chart-bar-middle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chart-bar-peak.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chart-pie.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chart-trending-down.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/check-circle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/check.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-down-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-down.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-right-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-up-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/chevron-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/clock.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/cursor-click.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/external-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/external.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/file-text.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/floppy-disk.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/grid-square.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/inbox.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/information-fill-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/information.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/key.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/link.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/lock-closed-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/lock-open-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/logo-v0.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/logo-vercel-circle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/logo-vercel.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/magnifying-glass.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/markdown.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/more-horizontal.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/notification.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/pencil-edit.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/shield-globe.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/status.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/stop.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/tabs.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/theme-switch-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/theme-switch-system.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/user-plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/assets/icons/warning.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/lib/components/shared/shiki.ts:
--------------------------------------------------------------------------------
1 | import { createHighlighter } from 'shiki';
2 | import dark from './themes/vercel-dark';
3 | import light from './themes/vercel-light';
4 |
5 | const highlighter = createHighlighter({
6 | themes: [light, dark],
7 | langs: ['svelte']
8 | });
9 |
10 | export async function get_highlighted_code(code: string) {
11 | return (await highlighter).codeToHtml(code, {
12 | lang: 'svelte',
13 | themes: { light: 'vercel-light', dark: 'vercel-dark' }
14 | });
15 | }
16 |
--------------------------------------------------------------------------------
/src/lib/components/ui/avatar/avatar-fallback.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/avatar/avatar-image.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/avatar/index.ts:
--------------------------------------------------------------------------------
1 | import Fallback from './avatar-fallback.svelte';
2 | import Group from './avatar-group.svelte';
3 | import Image from './avatar-image.svelte';
4 | import Root from './avatar.svelte';
5 |
6 | export {
7 | Root as Avatar,
8 | Fallback as AvatarFallback,
9 | Group as AvatarGroup,
10 | Image as AvatarImage,
11 | Fallback,
12 | Group,
13 | Image,
14 | Root
15 | };
16 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-cell.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-grid-body.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-grid-head.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-grid-row.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-grid.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-head-cell.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-header.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-heading.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-months.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
19 | {@render children?.()}
20 |
21 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-next-button.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 | {#snippet Fallback()}
16 |
17 | {/snippet}
18 |
19 |
29 |
--------------------------------------------------------------------------------
/src/lib/components/ui/calendar/calendar-prev-button.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 | {#snippet Fallback()}
16 |
17 | {/snippet}
18 |
19 |
29 |
--------------------------------------------------------------------------------
/src/lib/components/ui/checkbox/index.ts:
--------------------------------------------------------------------------------
1 | import Root from './checkbox.svelte';
2 | export {
3 | Root,
4 | //
5 | Root as Checkbox
6 | };
7 |
--------------------------------------------------------------------------------
/src/lib/components/ui/choicebox/index.ts:
--------------------------------------------------------------------------------
1 | import Checkbox from './choicebox-checkbox.svelte';
2 | import Radio from './choicebox-radio.svelte';
3 | import Root from './choicebox.svelte';
4 |
5 | export {
6 | Checkbox,
7 | Checkbox as ChoiceboxCheckbox,
8 | Root as ChoiceboxGroup,
9 | Radio as ChoiceboxGroupRadio,
10 | Radio,
11 | Root
12 | };
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/collapse/collapse-content.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
18 |
19 | {@render children?.()}
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/lib/components/ui/collapse/collapse-item.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | {@render children?.()}
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/collapse/collapse.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 | {@render children?.()}
13 |
14 |
--------------------------------------------------------------------------------
/src/lib/components/ui/collapse/index.ts:
--------------------------------------------------------------------------------
1 | import Content from './collapse-content.svelte';
2 | import Item from './collapse-item.svelte';
3 | import Trigger from './collapse-trigger.svelte';
4 | import Root from './collapse.svelte';
5 |
6 | export {
7 | Root as Collapse,
8 | Content as CollapseContent,
9 | Item as CollapseItem,
10 | Trigger as CollapseTrigger,
11 | Content,
12 | Item,
13 | Root,
14 | Trigger
15 | };
16 |
--------------------------------------------------------------------------------
/src/lib/components/ui/combobox/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Combobox } from './combobox.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-empty.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-group-heading.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
17 | {@render children?.()}
18 |
19 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-group.svelte:
--------------------------------------------------------------------------------
1 |
15 |
16 |
21 | {#if heading}
22 |
23 | {heading}
24 |
25 | {/if}
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-item.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-link-item.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-list.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-separator.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command-shortcut.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
19 | {@render children?.()}
20 |
21 |
--------------------------------------------------------------------------------
/src/lib/components/ui/command/command.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/src/lib/components/ui/context-menu/context-menu-content.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
24 |
25 |
--------------------------------------------------------------------------------
/src/lib/components/ui/context-menu/context-menu-group-heading.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/context-menu/context-menu-separator.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/context-menu/context-menu-shortcut.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
19 | {@render children?.()}
20 |
21 |
--------------------------------------------------------------------------------
/src/lib/components/ui/context-menu/context-menu-sub-content.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/description/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Description } from './description.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/dialog/dialog-description.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/dialog/dialog-footer.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
19 | {@render children?.()}
20 |
21 |
--------------------------------------------------------------------------------
/src/lib/components/ui/dialog/dialog-header.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
19 | {@render children?.()}
20 |
21 |
--------------------------------------------------------------------------------
/src/lib/components/ui/dialog/dialog-overlay.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/dialog/dialog-title.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer-description.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | {@render children?.()}
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer-footer.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 | {@render children?.()}
14 |
15 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer-header.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 | {@render children?.()}
13 |
14 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer-nested.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 | {@render children?.()}
17 |
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer-overlay.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
15 | {@render children?.()}
16 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer-title.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
15 | {@render children?.()}
16 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/drawer/drawer.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 | {@render children?.()}
17 |
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/empty-state/index.ts:
--------------------------------------------------------------------------------
1 | import { type VariantProps, tv } from 'tailwind-variants';
2 |
3 | export const empty_state_variants = tv({
4 | base: 'grid place-items-center gap-4 text-gray-900',
5 | variants: {
6 | variant: {}
7 | },
8 | defaultVariants: {}
9 | });
10 |
11 | export type Variant = VariantProps['variant'];
12 |
13 | export { default as EmptyState } from './empty-state.svelte';
14 |
--------------------------------------------------------------------------------
/src/lib/components/ui/error/index.ts:
--------------------------------------------------------------------------------
1 | import { type VariantProps, tv } from 'tailwind-variants';
2 |
3 | export { default as Error } from './error.svelte';
4 |
5 | export const error_variants = tv({
6 | base: 'inline-flex items-center gap-2 break-words text-red-900',
7 | variants: {
8 | size: {
9 | sm: 'text-[13px] font-normal',
10 | md: 'text-sm font-normal',
11 | lg: 'text-base font-medium'
12 | }
13 | },
14 | defaultVariants: {
15 | size: 'md'
16 | }
17 | });
18 |
19 | export type Size = VariantProps['size'];
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/feedback/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Feedback } from './feedback.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/gauge/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Gauge } from './gauge.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/kbd/kbd.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 | {#each keys as key}
16 | {keys_map[key]}
17 | {/each}
18 |
19 |
--------------------------------------------------------------------------------
/src/lib/components/ui/label/index.ts:
--------------------------------------------------------------------------------
1 | import Root from './label.svelte';
2 |
3 | export { Root as Label, Root };
4 |
--------------------------------------------------------------------------------
/src/lib/components/ui/label/label.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
19 | {#if value}
20 | {value}
21 | {/if}
22 | {@render children?.()}
23 |
24 |
--------------------------------------------------------------------------------
/src/lib/components/ui/loading-dots/index.ts:
--------------------------------------------------------------------------------
1 | export { default as LoadingDots } from './loading-dots.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/menu/menu-separator.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lib/components/ui/menu/menu-shortcut.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
16 | {@render children?.()}
17 |
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/menu/menu-sub-content.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
20 | {@render children?.()}
21 |
22 |
--------------------------------------------------------------------------------
/src/lib/components/ui/menu/menu-sub-trigger.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
21 | {@render children?.()}
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/lib/components/ui/modal/modal-description.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 | {#if is_desktop.current}
15 |
16 | {@render children?.()}
17 |
18 | {:else}
19 |
20 | {@render children?.()}
21 |
22 | {/if}
23 |
--------------------------------------------------------------------------------
/src/lib/components/ui/modal/modal-header.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 | {#if is_desktop.current}
16 |
21 | {@render children?.()}
22 |
23 | {:else}
24 |
25 | {@render children?.()}
26 |
27 | {/if}
28 |
--------------------------------------------------------------------------------
/src/lib/components/ui/modal/modal-inset.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 | {@render children?.()}
15 |
16 |
--------------------------------------------------------------------------------
/src/lib/components/ui/modal/modal-title.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 | {#if is_desktop.current}
15 |
16 | {@render children?.()}
17 |
18 | {:else}
19 |
20 | {@render children?.()}
21 |
22 | {/if}
23 |
--------------------------------------------------------------------------------
/src/lib/components/ui/modal/modal.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 | {#if is_desktop.current}
16 |
17 | {@render children?.()}
18 |
19 | {:else}
20 |
21 | {@render children?.()}
22 |
23 | {/if}
24 |
--------------------------------------------------------------------------------
/src/lib/components/ui/pagination/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Pagination } from './pagination.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/popover/index.ts:
--------------------------------------------------------------------------------
1 | import { Popover as PopoverPrimitive } from 'bits-ui';
2 |
3 | import Content from './popover-content.svelte';
4 |
5 | const Root = PopoverPrimitive.Root;
6 | const Trigger = PopoverPrimitive.Trigger;
7 | const Close = PopoverPrimitive.Close;
8 | const Portal = PopoverPrimitive.Portal;
9 |
10 | export {
11 | Close,
12 | Content,
13 | Root as Popover,
14 | Close as PopoverClose,
15 | Content as PopoverContent,
16 | Portal as PopoverPortal,
17 | Trigger as PopoverTrigger,
18 | Portal,
19 | Root,
20 | Trigger
21 | };
22 |
--------------------------------------------------------------------------------
/src/lib/components/ui/progress/index.ts:
--------------------------------------------------------------------------------
1 | import { tv, type VariantProps } from 'tailwind-variants';
2 | import Root from './progress.svelte';
3 |
4 | export const progress_bar_variants = tv({
5 | base: 'h-full w-full flex-1 rounded-full transition-[width,transform,background-color] ease-in',
6 | variants: {
7 | variant: {
8 | default: 'bg-gray-1000',
9 | success: 'bg-blue-700',
10 | error: 'bg-red-700',
11 | warning: 'bg-amber-700',
12 | secondary: 'bg-gray-700'
13 | }
14 | },
15 | defaultVariants: {
16 | variant: 'default'
17 | }
18 | });
19 |
20 | export type Variant = VariantProps['variant'];
21 |
22 | export { Root as Progress, Root };
23 |
--------------------------------------------------------------------------------
/src/lib/components/ui/radio/index.ts:
--------------------------------------------------------------------------------
1 | import Item from './radio-item.svelte';
2 | import Root from './radio.svelte';
3 |
4 | export { Item, Root as Radio, Item as RadioItem, Root };
5 |
--------------------------------------------------------------------------------
/src/lib/components/ui/radio/radio.svelte:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 | {#if checked && value}
21 |
22 | {:else}
23 | {@render children?.()}
24 | {/if}
25 |
26 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-cell.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-grid-body.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-grid-head.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-grid-row.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-grid.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-head-cell.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-header.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-heading.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-months.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
16 | {@render children?.()}
17 |
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-next-button.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 | {#snippet Fallback()}
13 |
14 | {/snippet}
15 |
16 |
26 |
--------------------------------------------------------------------------------
/src/lib/components/ui/range-calendar/range-calendar-prev-button.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 | {#snippet Fallback()}
13 |
14 | {/snippet}
15 |
16 |
26 |
--------------------------------------------------------------------------------
/src/lib/components/ui/select/select-group-heading.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/lib/components/ui/select/select-scroll-down-button.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/select/select-scroll-up-button.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/select/select-separator.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/lib/components/ui/separator/index.ts:
--------------------------------------------------------------------------------
1 | import Root from './separator.svelte';
2 |
3 | export {
4 | Root,
5 | //
6 | Root as Separator
7 | };
8 |
--------------------------------------------------------------------------------
/src/lib/components/ui/separator/separator.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
23 |
--------------------------------------------------------------------------------
/src/lib/components/ui/show-more/index.ts:
--------------------------------------------------------------------------------
1 | export { default as ShowMore } from './show-more.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/skeleton/index.ts:
--------------------------------------------------------------------------------
1 | import Root from './skeleton.svelte';
2 |
3 | export { Root, Root as Skeleton };
4 |
--------------------------------------------------------------------------------
/src/lib/components/ui/spinner/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Spinner } from './spinner.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/components/ui/status-dot/index.ts:
--------------------------------------------------------------------------------
1 | import { tv, type VariantProps } from 'tailwind-variants';
2 |
3 | export { default as StatusDot } from './status-dot.svelte';
4 |
5 | export const status_dot_variants = tv({
6 | base: 'size-2.5 rounded-full',
7 | variants: {
8 | variant: {
9 | QUEUED: 'bg-accents-2',
10 | BUILDING: 'bg-[#f5a623]',
11 | ERROR: 'bg-[#ff0000]',
12 | READY: 'bg-teal-900',
13 | CANCELED: 'bg-accents-2'
14 | }
15 | }
16 | });
17 |
18 | export type Variant = VariantProps['variant'];
19 |
--------------------------------------------------------------------------------
/src/lib/components/ui/status-dot/status-dot.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
18 |
19 | {#if label}
20 |
21 | {state}
22 |
23 | {/if}
24 |
25 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/index.ts:
--------------------------------------------------------------------------------
1 | import Body from './table-body.svelte';
2 | import Caption from './table-caption.svelte';
3 | import Cell from './table-cell.svelte';
4 | import Footer from './table-footer.svelte';
5 | import Head from './table-head.svelte';
6 | import Header from './table-header.svelte';
7 | import Row from './table-row.svelte';
8 | import Root from './table.svelte';
9 |
10 | export {
11 | Body,
12 | Caption,
13 | Cell,
14 | Footer,
15 | Head,
16 | Header,
17 | Root,
18 | Row,
19 | Root as Table,
20 | Body as TableBody,
21 | Caption as TableCaption,
22 | Cell as TableCell,
23 | Footer as TableFooter,
24 | Head as TableHead,
25 | Header as TableHeader,
26 | Row as TableRow
27 | };
28 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table-caption.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 | {@render children?.()}
13 |
14 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table-cell.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
16 | {@render children?.()}
17 |
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table-footer.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 | {@render children?.()}
15 |
16 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table-head.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
19 | {@render children?.()}
20 |
21 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table-header.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 | {@render children?.()}
13 |
14 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table-row.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
21 | {@render children?.()}
22 |
23 |
--------------------------------------------------------------------------------
/src/lib/components/ui/table/table.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
17 | {@render children?.()}
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/tabs/index.ts:
--------------------------------------------------------------------------------
1 | import { Tabs as TabsPrimitive } from 'bits-ui';
2 | import Content from './tabs-content.svelte';
3 | import List from './tabs-list.svelte';
4 | import Trigger from './tabs-trigger.svelte';
5 |
6 | const Root = TabsPrimitive.Root;
7 |
8 | export {
9 | Content,
10 | List,
11 | Root,
12 | Root as Tabs,
13 | Content as TabsContent,
14 | List as TabsList,
15 | Trigger as TabsTrigger,
16 | Trigger
17 | };
18 |
--------------------------------------------------------------------------------
/src/lib/components/ui/tabs/tabs-content.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
18 | {@render children?.()}
19 |
20 |
--------------------------------------------------------------------------------
/src/lib/components/ui/textarea/index.ts:
--------------------------------------------------------------------------------
1 | import Root from './textarea.svelte';
2 |
3 | type FormTextareaEvent = T & {
4 | currentTarget: EventTarget & HTMLTextAreaElement;
5 | };
6 |
7 | type TextareaEvents = {
8 | blur: FormTextareaEvent;
9 | change: FormTextareaEvent;
10 | click: FormTextareaEvent;
11 | focus: FormTextareaEvent;
12 | keydown: FormTextareaEvent;
13 | keypress: FormTextareaEvent;
14 | keyup: FormTextareaEvent;
15 | mouseover: FormTextareaEvent;
16 | mouseenter: FormTextareaEvent;
17 | mouseleave: FormTextareaEvent;
18 | paste: FormTextareaEvent;
19 | input: FormTextareaEvent;
20 | };
21 |
22 | export {
23 | Root,
24 | //
25 | Root as Textarea,
26 | type TextareaEvents,
27 | type FormTextareaEvent
28 | };
29 |
--------------------------------------------------------------------------------
/src/lib/components/ui/tooltip/index.ts:
--------------------------------------------------------------------------------
1 | import { Tooltip as TooltipPrimitive } from 'bits-ui';
2 | import Content from './tooltip-content.svelte';
3 |
4 | const Provider = TooltipPrimitive.Provider;
5 | const Root = TooltipPrimitive.Root;
6 | const Trigger = TooltipPrimitive.Trigger;
7 | const Arrow = TooltipPrimitive.Arrow;
8 | const Portal = TooltipPrimitive.Portal;
9 |
10 | export {
11 | Arrow,
12 | Content,
13 | Portal,
14 | Provider,
15 | Root,
16 | Root as Tooltip,
17 | Arrow as TooltipArrow,
18 | Content as TooltipContent,
19 | Portal as TooltipPortal,
20 | Provider as TooltipProvider,
21 | Trigger as TooltipTrigger,
22 | Trigger
23 | };
24 |
--------------------------------------------------------------------------------
/src/lib/components/ui/window/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Window } from './window.svelte';
2 |
--------------------------------------------------------------------------------
/src/lib/index.ts:
--------------------------------------------------------------------------------
1 | // place files you want to import through the `$lib` alias in this folder.
2 |
--------------------------------------------------------------------------------
/src/lib/stores.ts:
--------------------------------------------------------------------------------
1 | import { writable } from 'svelte/store';
2 |
3 | function create_command_store(initial_state: boolean) {
4 | const command = writable(initial_state);
5 |
6 | function toggle() {
7 | command.update((n) => !n);
8 | }
9 |
10 | return {
11 | ...command,
12 | toggle
13 | };
14 | }
15 |
16 | export const command_open_state = create_command_store(false);
17 |
--------------------------------------------------------------------------------
/src/routes/avatar/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Avatar';
5 | const description =
6 | 'Avatars represent a user or a team. Stacked avatars represent a group of people';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/avatar/placeholder.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/avatar/with-icons.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | RH
9 |
10 |
11 |
12 |
13 | DG
14 |
15 |
16 |
17 |
18 | SH
19 |
20 |
--------------------------------------------------------------------------------
/src/routes/badge/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Badge';
5 | const description =
6 | 'A label that emphasizes an element that requires attention, or helps categorize with other similar elements.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/badge/sizes.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | small
7 |
8 |
9 | medium
10 |
11 |
12 | large
13 |
14 |
--------------------------------------------------------------------------------
/src/routes/book/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Book';
5 | const description = 'A responsive book component.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/book/custom-color.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/book/custom-illustration.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/book/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/book/variants.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/book/width.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/brands/+page.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/routes/button/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Button';
5 | const description =
6 | 'Trigger an action or event, such as submitting a form or displaying a dialog.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/button/affix-and-suffix.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 | Upload
8 | Upload
9 | Upload
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/button/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Upload
7 | Upload
8 | Upload
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/button/loading.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Upload
7 | Upload
8 | Upload
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/button/rounded.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Upload
7 | Upload
8 | Upload
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/button/sizes.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Upload
7 | Upload
8 | Upload
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/button/variants.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Upload
7 | Upload
8 | Upload
9 | Upload
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/calendar/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Calendar';
5 | const description = 'Displays a calendar from which users can select a date or range of dates.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/calendar/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/routes/calendar/presets.svelte:
--------------------------------------------------------------------------------
1 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/routes/calendar/range-calendar.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/routes/checkbox/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Checkbox';
5 | const description = 'A control that toggles between two options, checked or unchecked.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/checkbox/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 | Option 1
6 |
--------------------------------------------------------------------------------
/src/routes/checkbox/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Disabled
7 | Disabled Checked
8 | Disabled Indeterminate
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/checkbox/indeterminate.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 | Option 2
6 |
--------------------------------------------------------------------------------
/src/routes/choicebox/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Choicebox';
5 | const description =
6 | 'A larger form of Radio or Checkbox, where the user has a larger tap target and more details.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/choicebox/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
13 |
14 |
15 |
16 |
17 |
18 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/routes/choicebox/multi-select.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/choicebox/single-select.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/code-block/+page.svelte:
--------------------------------------------------------------------------------
1 | code-block
2 |
--------------------------------------------------------------------------------
/src/routes/collapse/+page.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/routes/collapse/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Collapse';
5 | const description =
6 | 'A set of headings, vertically stacked, that each reveal an related section of content. Commonly referred to as an accordion.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/collapse/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Question A
8 |
9 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
10 | labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
11 | laboris nisi ut aliquip ex ea commodo consequat.
12 |
13 |
14 |
15 | Question B
16 |
17 | Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
18 | pariatur.
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/routes/collapse/expanded.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Question A
8 |
9 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
10 | labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
11 | laboris nisi ut aliquip ex ea commodo consequat.
12 |
13 |
14 |
15 | Question B
16 |
17 | Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
18 | pariatur.
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/routes/collapse/small.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Question A
8 |
9 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
10 | labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
11 | laboris nisi ut aliquip ex ea commodo consequat.
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/colors/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Colors';
5 | const description = 'Learn how to work with our color system. Right click to copy raw values.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/colors/borders.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 | New Project
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/colors/demo.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
20 | {@render children()}
21 |
22 |
--------------------------------------------------------------------------------
/src/routes/colors/description-list.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 | {#each items as { title, description, color }}
11 |
12 |
13 |
{title}
14 | {description}
15 |
16 | {/each}
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/colors/scales.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 | {#each Object.entries(scales) as [scale, colors]}
8 |
9 | {@render color_scale({ scale, colors })}
10 |
11 | {/each}
12 |
13 |
14 | {#snippet color_scale({ scale, colors }: { scale: string; colors: string[] })}
15 | {scale}
16 |
17 | {#each colors as color}
18 |
19 |
20 |
21 | {/each}
22 |
23 | {/snippet}
24 |
--------------------------------------------------------------------------------
/src/routes/combobox/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Combobox';
5 | const description = 'Filters large lists to selectable options based on the matching query.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/combobox/custom-empty-message.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
11 |
--------------------------------------------------------------------------------
/src/routes/combobox/custom-width-input.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/combobox/custom-width-list.svelte:
--------------------------------------------------------------------------------
1 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/routes/combobox/default.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/combobox/disabled.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/combobox/errored.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/combobox/sizes.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/routes/context-menu/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Context Menu';
5 | const description =
6 | 'Displays a brief heading and subheading to communicate any additional information or context a user needs to continue.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/context-menu/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
9 | Right click
10 |
11 |
12 | Item one
13 | Item two
14 | Item three
15 | Item four
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/context-menu/disabled-items.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
9 | Right click
10 |
11 |
12 | Item one
13 | Item two
14 | Item three
15 | Item four
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/description/+page.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/description/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Description';
5 | const description =
6 | 'Displays a brief heading and subheading to communicate any additional information or context a user needs to continue.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/description/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/src/routes/drawer/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/routes/drawer/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Drawer';
5 | const description = 'Display content in a separate view from the existing context.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/drawer/custom-height.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Open
9 |
10 |
11 | A drawer title
12 |
13 | Drawer body
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/routes/drawer/default.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Open
9 |
10 |
11 | A drawer title
12 |
13 | Drawer body
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/routes/empty-state/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Empty State';
5 | const description =
6 | 'Fill spaces when no content has been added yet, or is temporarily empty due to the nature of the feature and should be designed to prevent confusion.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/empty-state/blank-slate.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
12 |
--------------------------------------------------------------------------------
/src/routes/empty-state/empty-state-design-framework.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
12 |
--------------------------------------------------------------------------------
/src/routes/empty-state/informational.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
14 | Primary Action
15 | Learn more
16 |
17 |
--------------------------------------------------------------------------------
/src/routes/error/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Error';
5 | const description =
6 | 'Good error design is clear, useful, and friendly. Designing concise and accurate error messages unblocks users and builds trust by meeting people where they are.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/error/custom-label.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 | This email address is already in use.
6 |
--------------------------------------------------------------------------------
/src/routes/error/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 | This email address is already in use.
6 |
--------------------------------------------------------------------------------
/src/routes/error/sizes.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | This email is in use.
7 | This email is in use.
8 | This email is in use.
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/error/with-an-error-property.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
12 |
--------------------------------------------------------------------------------
/src/routes/feedback/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/feedback/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Feedback';
5 | const description = 'Gather text feedback with an associated emotion.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/feedback/default.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 | This example is hidden because it is intended for only desktop.
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/feedback/inline.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/gauge/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Gauge';
5 | const description = 'A circular visual for conveying a percentage.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/gauge/arc-priority.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
12 |
13 |
--------------------------------------------------------------------------------
/src/routes/gauge/custom-color-range.svelte:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 | {#each Object.entries(colors) as c}
20 | {@const [value, _] = c}
21 |
22 | {/each}
23 |
24 |
--------------------------------------------------------------------------------
/src/routes/gauge/custom-secondary-color.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/gauge/default-color-scale.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/gauge/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/gauge/label.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/routes/grid/+page.svelte:
--------------------------------------------------------------------------------
1 | grid
2 |
--------------------------------------------------------------------------------
/src/routes/icons/+page.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/icons/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Icons';
5 | const description = 'A collection of icons used across Vercel products. Right click to copy.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/icons/transition.ts:
--------------------------------------------------------------------------------
1 | import { quintInOut } from 'svelte/easing';
2 | import { crossfade } from 'svelte/transition';
3 |
4 | export const [send, receive] = crossfade({
5 | duration: (d) => Math.sqrt(d * 200),
6 |
7 | fallback(node, _) {
8 | const style = getComputedStyle(node);
9 | const transform = style.transform === 'none' ? '' : style.transform;
10 |
11 | return {
12 | duration: 600,
13 | easing: quintInOut,
14 | css: (t) => `
15 | transform: ${transform} scale(${t});
16 | opacity: ${t}
17 | `
18 | };
19 | }
20 | });
21 |
--------------------------------------------------------------------------------
/src/routes/input/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Input';
5 | const description = 'Retrieve text input from a user.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/input/affix-and-suffix.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/routes/input/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/input/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/input/label.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/routes/input/search.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/keyboard-input/+page.svelte:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/routes/keyboard-input/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Keyboard Input';
5 | const description = 'Display keyboard input that triggers an action.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/keyboard-input/combination.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/keyboard-input/modifiers.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/keyboard-input/small.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/loading-dots/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/loading-dots/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Loading Dots';
5 | const description = 'Indicate an action running in the background.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/loading-dots/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/loading-dots/with-text.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Loading
7 |
8 |
--------------------------------------------------------------------------------
/src/routes/menu/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Menu';
5 | const description =
6 | 'Dropdown menu opened via button. Supports typeahead and keyboard navigation.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/menu/custom-trigger.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 | M
11 |
12 |
13 |
14 |
15 | One
16 | Two
17 | Three
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/menu/default.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | {#snippet child({ props })}
9 | Actions
10 | {/snippet}
11 |
12 |
13 |
14 | One
15 | Two
16 | Three
17 | Error
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/menu/disabled-items.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Actions
9 |
10 |
11 | One
12 | Two
13 | Three
14 | Error
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/menu/link-items.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 | {#snippet child({ props })}
15 | Actions
16 | {/snippet}
17 |
18 |
19 |
20 | {#each links as { href, label }}
21 |
22 | {#snippet child({ props })}
23 | {label}
24 | {/snippet}
25 |
26 | {/each}
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/routes/menu/menu-position.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Left Start
9 |
10 |
11 | One
12 | Two
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/routes/modal/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Modal';
5 | const description =
6 | 'Display popup content that requires attention or provides additional information.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/modal/default.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Open Modal
9 |
10 |
11 |
12 | Create Token
13 |
14 |
15 | Enter a unique name for your token to differentiate it from other tokens and then select the
16 | scope.
17 |
18 |
19 |
20 | Some content contained within the modal.
21 |
22 |
23 | Submit
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/routes/modal/disabled-actions.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Open Modal
9 |
10 |
11 |
12 | Modal
13 | This is a modal.
14 |
15 |
16 | Some content contained within the modal.
17 |
18 |
19 | Submit
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/routes/modal/single-button.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | Open Modal
9 |
10 |
11 |
12 | Create Token
13 |
14 |
15 | Some content contained within the modal.
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/routes/note/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Note';
5 | const description = 'Display text that requires attention or provides additional information.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/note/action.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | This note details some information.
9 | {#snippet action()}
10 | Upgrade
11 | {/snippet}
12 |
13 |
14 | This note details a large amount information that could potentially wrap into two or more lines,
15 | forcing the height of the Note to be larger.
16 | {#snippet action()}
17 | Upgrade
18 | {/snippet}
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/note/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | A small note.
7 | A default note.
8 | A large note.
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/note/disabled.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 | This note details a warning.
10 | {#snippet action()}
11 | Upgrade
12 | {/snippet}
13 |
14 |
15 | This filled note details some success information. Check
16 | the documentation to learn more.
17 | {#snippet action()}
18 | Upgrade
19 | {/snippet}
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/routes/pagination/+page.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/pagination/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Pagination';
5 | const description = 'Navigate to the previous or next page.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/pagination/default.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/progress/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Progress';
5 | const description = 'Display progress relative to a limit or related to a task.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/progress/custom-max.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/progress/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/progress/dynamic-colors.svelte:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
27 |
28 |
29 | Increase
30 | Decrease
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/routes/progress/themed.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
11 |
--------------------------------------------------------------------------------
/src/routes/project-banner/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Project Banner';
5 | const description = 'Used for temporary, project-wide notifications that require resolution';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/project-banner/error.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
12 |
--------------------------------------------------------------------------------
/src/routes/project-banner/success.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
12 |
--------------------------------------------------------------------------------
/src/routes/radio/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Radio';
5 | const description = 'Provides single user input from a selection of options.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/radio/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Option 1
7 | Option 2
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/radio/radio-disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Option 1
7 | Option 2
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/radio/radio-required.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
16 |
--------------------------------------------------------------------------------
/src/routes/radio/radio-standalone.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Option 1
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/scroller/+page.svelte:
--------------------------------------------------------------------------------
1 | scroller
2 |
--------------------------------------------------------------------------------
/src/routes/select/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Select';
5 | const description = 'Display a dropdown list of items.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/select/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | Disabled with placeholder
7 |
8 | Disabled
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/show-more/+page.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/show-more/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Show more';
5 | const description = 'Styling component to show expanded or collapsed content.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/show-more/default.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/skeleton/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Skeleton';
5 | const description = 'Display a skeleton whilst another component is loading.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/skeleton/default-with-box-height.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/skeleton/default-with-set-width.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/skeleton/no-animation.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/skeleton/pill.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/skeleton/rounded.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/skeleton/squared.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/skeleton/wrapping-children-with-fixed-size.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/skeleton/wrapping-children.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | Hidden by skeleton
9 |
10 |
11 |
12 | Not hidden by skeleton
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/snippet/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Snippet';
5 | const description = 'Display a snippet of copyable code for the command line.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/snippet/callback.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 | alert('You copied the text!')}
7 | text="pnpm create svelte@latest"
8 | class="w-[300px]"
9 | />
10 |
--------------------------------------------------------------------------------
/src/routes/snippet/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/snippet/inverted.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/snippet/multiline.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/snippet/no-prompt.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/snippet/variants.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/routes/spinner/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/spinner/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Spinner';
5 | const description =
6 | 'Indicate an action running in the background. Unlike the loading dots, this should generally be used to indicate loading feedback in response to a user action, like for buttons, pagination, etc.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/spinner/custom-size.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/spinner/default-size.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/stack/+page.svelte:
--------------------------------------------------------------------------------
1 | stack
2 |
--------------------------------------------------------------------------------
/src/routes/status-dot/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/status-dot/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Status Dot';
5 | const description = 'Display an indicator of deployment status.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/status-dot/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/status-dot/label.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/routes/switch/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Switch';
5 | const description = 'Displays a boolean value.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/switch/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/switch/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/routes/switch/sizes.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/routes/table/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Table';
5 | const description = 'A semantic HTML table component';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/table/basic-table.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 | Col 1
9 | Col 2
10 | Col 3
11 |
12 |
13 |
14 |
15 | Value 1.1
16 | Value 1.2
17 | Value 1.3
18 |
19 |
20 | Value 2.1
21 | Value 2.2
22 | Value 2.3
23 |
24 |
25 | Value 3.1
26 | Value 3.2
27 | Value 3.3
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/routes/table/striped-table.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 | Col 1
9 | Col 2
10 | Col 3
11 |
12 |
13 |
14 |
15 | Value 1.1
16 | Value 1.2
17 | Value 1.3
18 |
19 |
20 | Value 2.1
21 | Value 2.2
22 | Value 2.3
23 |
24 |
25 | Value 3.1
26 | Value 3.2
27 | Value 3.3
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/routes/tabs/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Tabs';
5 | const description = 'Display tab content.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/tabs/default.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | {#each tabs as { value }}
14 | {value}
15 | {/each}
16 |
17 |
18 | {#each tabs as { content, value }}
19 | {content}
20 | {/each}
21 |
22 |
--------------------------------------------------------------------------------
/src/routes/tabs/disable-specific-tabs.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | {#each tabs as { title, value, disabled, tooltip }}
14 | {title}
15 | {/each}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/tabs/secondary.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | {#each tabs as { title, value }}
14 | {title}
15 | {/each}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/routes/tabs/with-icons.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 | {#each tabs as { title, value, icon }}
15 | {title}
16 | {/each}
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/routes/text/+page.svelte:
--------------------------------------------------------------------------------
1 | text
2 |
--------------------------------------------------------------------------------
/src/routes/textarea/+page.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/routes/textarea/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Textarea';
5 | const description = 'Retrieve multi-line user input.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/textarea/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
9 |
--------------------------------------------------------------------------------
/src/routes/textarea/disabled.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/src/routes/theme-switcher/+page.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/theme-switcher/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Theme Switcher';
5 | const description = 'Component that allows users to switch between light and dark themes.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/theme-switcher/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/routes/toast/+page.svelte:
--------------------------------------------------------------------------------
1 | toast
2 |
--------------------------------------------------------------------------------
/src/routes/toggle/+page.svelte:
--------------------------------------------------------------------------------
1 | toggle
2 |
--------------------------------------------------------------------------------
/src/routes/tooltip/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Tooltip';
5 | const description =
6 | 'A set of headings, vertically stacked, that each reveal an related section of content. Commonly referred to as an accordion.';
7 |
8 | const pageMetaTags = Object.freeze({
9 | title,
10 | description,
11 | openGraph: {
12 | title,
13 | description
14 | }
15 | }) satisfies MetaTagsProps;
16 |
17 | return {
18 | pageMetaTags,
19 | title,
20 | description
21 | };
22 | }
23 |
--------------------------------------------------------------------------------
/src/routes/tooltip/custom-content.svelte:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 | {#each sides as side}
10 |
11 | {side}
12 |
13 | The Evil Rabbit Jumped over the Fence .
14 |
15 |
16 | {/each}
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/routes/tooltip/default.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 | {#each tooltips as { side, content }}
15 |
16 | {side}
17 |
18 | {content}
19 |
20 |
21 | {/each}
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/routes/tooltip/no-delay.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 | {#each tooltips as { side, content }}
15 |
16 |
17 | {side}
18 |
19 |
20 | {content}
21 |
22 |
23 | {/each}
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/routes/tooltip/other.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 | No tip indicator
9 | The Evil Rabbit Jumped over the Fence.
10 |
11 |
12 |
13 | No center text
14 |
15 | The Evil Rabbit Jumped over the Fence multiple times.
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/routes/window/+page.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/routes/window/+page.ts:
--------------------------------------------------------------------------------
1 | import type { MetaTagsProps } from 'svelte-meta-tags';
2 |
3 | export function load() {
4 | const title = 'Window';
5 | const description = 'Display content inside of a generic window frame.';
6 |
7 | const pageMetaTags = Object.freeze({
8 | title,
9 | description,
10 | openGraph: {
11 | title,
12 | description
13 | }
14 | }) satisfies MetaTagsProps;
15 |
16 | return {
17 | pageMetaTags,
18 | title,
19 | description
20 | };
21 | }
22 |
--------------------------------------------------------------------------------
/src/routes/window/default.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shyakadavis/geist/d569656166e838b82759e7845b4261283be65f14/static/favicon.png
--------------------------------------------------------------------------------
/static/og.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shyakadavis/geist/d569656166e838b82759e7845b4261283be65f14/static/og.jpg
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | import adapter from '@sveltejs/adapter-static';
2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
3 |
4 | /** @type {import('@sveltejs/kit').Config} */
5 | const config = {
6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors
7 | // for more information about preprocessors
8 | preprocess: vitePreprocess(),
9 |
10 | kit: {
11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
12 | // If your environment is not supported, or you settled on a specific environment, switch out the adapter.
13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
14 | adapter: adapter()
15 | },
16 | vitePlugin: { inspector: true }
17 | };
18 |
19 | export default config;
20 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./.svelte-kit/tsconfig.json",
3 | "compilerOptions": {
4 | "allowJs": true,
5 | "checkJs": true,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "resolveJsonModule": true,
9 | "skipLibCheck": true,
10 | "sourceMap": true,
11 | "strict": true,
12 | "moduleResolution": "bundler"
13 | }
14 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
15 | // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files
16 | //
17 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
18 | // from the referenced tsconfig.json - TypeScript does not merge them in
19 | }
20 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import svg from '@poppanator/sveltekit-svg';
2 | import { sveltekit } from '@sveltejs/kit/vite';
3 | import { defineConfig } from 'vite';
4 |
5 | export default defineConfig({
6 | plugins: [sveltekit(), svg()]
7 | });
8 |
--------------------------------------------------------------------------------