seblify 0.1.8 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -74
- package/dist/components/action/input/select/segment-control/SegmentControl.svelte +145 -21
- package/dist/components/action/input/select/segment-control/SegmentControl.svelte.d.ts +7 -2
- package/dist/components/action/input/select/switch/Switch.svelte +641 -38
- package/dist/components/action/input/select/switch/Switch.svelte.d.ts +16 -1
- package/dist/components/display/annotation/tag/Tag.svelte +141 -105
- package/dist/components/display/data-display/visual/timeline/Timeline.svelte +161 -0
- package/dist/components/display/data-display/visual/timeline/Timeline.svelte.d.ts +17 -0
- package/dist/components/display/data-display/visual/timeline/TimelineItem.svelte +470 -0
- package/dist/components/display/data-display/visual/timeline/TimelineItem.svelte.d.ts +15 -0
- package/dist/components/display/data-display/visual/timeline/context.d.ts +14 -0
- package/dist/components/display/data-display/visual/timeline/context.js +14 -0
- package/dist/components/display/feedback/loading/loading-dots/LoadingDots.svelte +120 -51
- package/dist/components/display/feedback/loading/spinner/Spinner.svelte +118 -49
- package/dist/components/display/media/icon/IconGlyph.svelte +8 -2
- package/dist/components/display/typography/code-snippet/CodeSnippet.svelte +145 -0
- package/dist/components/display/typography/code-snippet/CodeSnippet.svelte.d.ts +9 -0
- package/dist/components/display/typography/code-snippet/tokenize.d.ts +10 -0
- package/dist/components/display/typography/code-snippet/tokenize.js +352 -0
- package/dist/components/framework/layout/container/app-shell/AppShell.svelte +1 -1
- package/dist/components/framework/navigation/sidebar/sidebar/Sidebar.svelte +712 -0
- package/dist/components/framework/navigation/sidebar/sidebar/Sidebar.svelte.d.ts +18 -0
- package/dist/components/framework/navigation/sidebar/sidenav/Sidenav.svelte +195 -0
- package/dist/components/framework/navigation/sidebar/sidenav/Sidenav.svelte.d.ts +17 -0
- package/dist/components/framework/navigation/sidebar/sidenav/SidenavItem.svelte +89 -0
- package/dist/components/framework/navigation/sidebar/sidenav/SidenavItem.svelte.d.ts +19 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemBranch.svelte +203 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemBranch.svelte.d.ts +21 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemDivider.svelte +17 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemDivider.svelte.d.ts +26 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemLeaf.svelte +85 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemLeaf.svelte.d.ts +17 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemRow.svelte +404 -0
- package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemRow.svelte.d.ts +30 -0
- package/dist/components/framework/navigation/sidebar/sidenav/sidenav.d.ts +29 -0
- package/dist/components/framework/navigation/sidebar/sidenav/sidenav.js +86 -0
- package/dist/design-system/inheritance/tokens.d.ts +7 -0
- package/dist/design-system/inheritance/tokens.js +39 -0
- package/dist/design-system/reserved-props/allowed-options.d.ts +7 -2
- package/dist/icons/generated/alarm-snooze.svelte +16 -0
- package/dist/icons/generated/alarm-snooze.svelte.d.ts +7 -0
- package/dist/icons/generated/alarm.svelte +16 -0
- package/dist/icons/generated/alarm.svelte.d.ts +7 -0
- package/dist/icons/generated/alert-octagon-outline.svelte +16 -0
- package/dist/icons/generated/alert-octagon-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/alert-octagon.svelte +16 -0
- package/dist/icons/generated/alert-octagon.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-bottom-left-thin.svelte +16 -0
- package/dist/icons/generated/arrow-bottom-left-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-bottom-right-thin.svelte +16 -0
- package/dist/icons/generated/arrow-bottom-right-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-down-thin.svelte +16 -0
- package/dist/icons/generated/arrow-down-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-left-thin.svelte +16 -0
- package/dist/icons/generated/arrow-left-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-right-thin.svelte +16 -0
- package/dist/icons/generated/arrow-right-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-top-left-thin.svelte +16 -0
- package/dist/icons/generated/arrow-top-left-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-top-right-thin.svelte +16 -0
- package/dist/icons/generated/arrow-top-right-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/arrow-up-thin.svelte +16 -0
- package/dist/icons/generated/arrow-up-thin.svelte.d.ts +7 -0
- package/dist/icons/generated/bell-outline.svelte +16 -0
- package/dist/icons/generated/bell-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/bell.svelte +16 -0
- package/dist/icons/generated/bell.svelte.d.ts +7 -0
- package/dist/icons/generated/book-open-blank-variant-outline.svelte +16 -0
- package/dist/icons/generated/book-open-blank-variant-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/book-open-blank-variant.svelte +16 -0
- package/dist/icons/generated/book-open-blank-variant.svelte.d.ts +7 -0
- package/dist/icons/generated/book-open-page-variant-outline.svelte +16 -0
- package/dist/icons/generated/book-open-page-variant-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/book-open-page-variant.svelte +16 -0
- package/dist/icons/generated/book-open-page-variant.svelte.d.ts +7 -0
- package/dist/icons/generated/book-open-variant-outline.svelte +16 -0
- package/dist/icons/generated/book-open-variant-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/book-open-variant.svelte +16 -0
- package/dist/icons/generated/book-open-variant.svelte.d.ts +7 -0
- package/dist/icons/generated/book-plus-outline.svelte +16 -0
- package/dist/icons/generated/book-plus-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/button-cursor.svelte +16 -0
- package/dist/icons/generated/button-cursor.svelte.d.ts +7 -0
- package/dist/icons/generated/calendar-blank-outline.svelte +16 -0
- package/dist/icons/generated/calendar-blank-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/calendar-blank.svelte +16 -0
- package/dist/icons/generated/calendar-blank.svelte.d.ts +7 -0
- package/dist/icons/generated/calendar-outline.svelte +16 -0
- package/dist/icons/generated/calendar-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/calendar.svelte +16 -0
- package/dist/icons/generated/calendar.svelte.d.ts +7 -0
- package/dist/icons/generated/cancel.svelte +16 -0
- package/dist/icons/generated/cancel.svelte.d.ts +7 -0
- package/dist/icons/generated/certificate-outline.svelte +16 -0
- package/dist/icons/generated/certificate-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/chart-box-outline.svelte +16 -0
- package/dist/icons/generated/chart-box-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/chart-box.svelte +16 -0
- package/dist/icons/generated/chart-box.svelte.d.ts +7 -0
- package/dist/icons/generated/chat-outline.svelte +16 -0
- package/dist/icons/generated/chat-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/chat-processing-outline.svelte +16 -0
- package/dist/icons/generated/chat-processing-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/chat-processing.svelte +16 -0
- package/dist/icons/generated/chat-processing.svelte.d.ts +7 -0
- package/dist/icons/generated/chat-question-outline.svelte +16 -0
- package/dist/icons/generated/chat-question-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/chat-question.svelte +16 -0
- package/dist/icons/generated/chat-question.svelte.d.ts +7 -0
- package/dist/icons/generated/chat.svelte +16 -0
- package/dist/icons/generated/chat.svelte.d.ts +7 -0
- package/dist/icons/generated/circle-large-outline.svelte +16 -0
- package/dist/icons/generated/circle-large-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/circle-large.svelte +16 -0
- package/dist/icons/generated/circle-large.svelte.d.ts +7 -0
- package/dist/icons/generated/circle-medium.svelte +16 -0
- package/dist/icons/generated/circle-medium.svelte.d.ts +7 -0
- package/dist/icons/generated/circle-outline.svelte +16 -0
- package/dist/icons/generated/circle-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/circle-small.svelte +16 -0
- package/dist/icons/generated/circle-small.svelte.d.ts +7 -0
- package/dist/icons/generated/circle.svelte +16 -0
- package/dist/icons/generated/circle.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-account-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-account-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-arrow-down-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-arrow-down-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-arrow-up-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-arrow-up-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-clock-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-clock-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-edit-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-edit-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-edit.svelte +16 -0
- package/dist/icons/generated/clipboard-edit.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-flow-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-flow-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-text-clock-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-text-clock-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-text-clock.svelte +16 -0
- package/dist/icons/generated/clipboard-text-clock.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-text-outline.svelte +16 -0
- package/dist/icons/generated/clipboard-text-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clipboard-text.svelte +16 -0
- package/dist/icons/generated/clipboard-text.svelte.d.ts +7 -0
- package/dist/icons/generated/clock-outline.svelte +16 -0
- package/dist/icons/generated/clock-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/clock.svelte +16 -0
- package/dist/icons/generated/clock.svelte.d.ts +7 -0
- package/dist/icons/generated/cog-outline.svelte +16 -0
- package/dist/icons/generated/cog-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/cog.svelte +16 -0
- package/dist/icons/generated/cog.svelte.d.ts +7 -0
- package/dist/icons/generated/copy.svelte +16 -0
- package/dist/icons/generated/copy.svelte.d.ts +7 -0
- package/dist/icons/generated/creation-outline.svelte +16 -0
- package/dist/icons/generated/creation-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/creation.svelte +16 -0
- package/dist/icons/generated/creation.svelte.d.ts +7 -0
- package/dist/icons/generated/cursor-default-click-outline.svelte +16 -0
- package/dist/icons/generated/cursor-default-click-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/cursor-default-click.svelte +16 -0
- package/dist/icons/generated/cursor-default-click.svelte.d.ts +7 -0
- package/dist/icons/generated/duck.svelte +16 -0
- package/dist/icons/generated/duck.svelte.d.ts +7 -0
- package/dist/icons/generated/email-open-outline.svelte +23 -0
- package/dist/icons/generated/email-open-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/email-open.svelte +16 -0
- package/dist/icons/generated/email-open.svelte.d.ts +7 -0
- package/dist/icons/generated/email-outline.svelte +16 -0
- package/dist/icons/generated/email-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/email.svelte +16 -0
- package/dist/icons/generated/email.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-angry-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-angry-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-angry.svelte +16 -0
- package/dist/icons/generated/emoticon-angry.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-confused-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-confused-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-confused.svelte +16 -0
- package/dist/icons/generated/emoticon-confused.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-cool-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-cool-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-cool.svelte +16 -0
- package/dist/icons/generated/emoticon-cool.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-excited-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-excited-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-excited.svelte +16 -0
- package/dist/icons/generated/emoticon-excited.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-frown-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-frown-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-frown.svelte +16 -0
- package/dist/icons/generated/emoticon-frown.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-happy-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-happy-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-happy.svelte +16 -0
- package/dist/icons/generated/emoticon-happy.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-neutral-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-neutral-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-neutral.svelte +16 -0
- package/dist/icons/generated/emoticon-neutral.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-sad-outline.svelte +16 -0
- package/dist/icons/generated/emoticon-sad-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon-sad.svelte +16 -0
- package/dist/icons/generated/emoticon-sad.svelte.d.ts +7 -0
- package/dist/icons/generated/emoticon.svelte +16 -0
- package/dist/icons/generated/emoticon.svelte.d.ts +7 -0
- package/dist/icons/generated/eye-closed.svelte +16 -0
- package/dist/icons/generated/eye-closed.svelte.d.ts +7 -0
- package/dist/icons/generated/eye-off-outline.svelte +16 -0
- package/dist/icons/generated/eye-off-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/eye-off.svelte +16 -0
- package/dist/icons/generated/eye-off.svelte.d.ts +7 -0
- package/dist/icons/generated/eye-outline.svelte +16 -0
- package/dist/icons/generated/eye-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/eye.svelte +16 -0
- package/dist/icons/generated/eye.svelte.d.ts +7 -0
- package/dist/icons/generated/eyedropper.svelte +16 -0
- package/dist/icons/generated/eyedropper.svelte.d.ts +7 -0
- package/dist/icons/generated/file-document-outline.svelte +16 -0
- package/dist/icons/generated/file-document-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/file-document.svelte +16 -0
- package/dist/icons/generated/file-document.svelte.d.ts +7 -0
- package/dist/icons/generated/file-star-outline.svelte +16 -0
- package/dist/icons/generated/file-star-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/flower-head.svelte +16 -0
- package/dist/icons/generated/flower-head.svelte.d.ts +7 -0
- package/dist/icons/generated/flower-tulip.svelte +16 -0
- package/dist/icons/generated/flower-tulip.svelte.d.ts +7 -0
- package/dist/icons/generated/flower.svelte +16 -0
- package/dist/icons/generated/flower.svelte.d.ts +7 -0
- package/dist/icons/generated/folder-open-outline.svelte +16 -0
- package/dist/icons/generated/folder-open-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/folder-open.svelte +16 -0
- package/dist/icons/generated/folder-open.svelte.d.ts +7 -0
- package/dist/icons/generated/folder-outline.svelte +16 -0
- package/dist/icons/generated/folder-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/folder.svelte +16 -0
- package/dist/icons/generated/folder.svelte.d.ts +7 -0
- package/dist/icons/generated/format-color-fill.svelte +16 -0
- package/dist/icons/generated/format-color-fill.svelte.d.ts +7 -0
- package/dist/icons/generated/format-color-highlight.svelte +16 -0
- package/dist/icons/generated/format-color-highlight.svelte.d.ts +7 -0
- package/dist/icons/generated/format-list-bulleted-square.svelte +16 -0
- package/dist/icons/generated/format-list-bulleted-square.svelte.d.ts +7 -0
- package/dist/icons/generated/format-list-bulleted.svelte +16 -0
- package/dist/icons/generated/format-list-bulleted.svelte.d.ts +7 -0
- package/dist/icons/generated/format-quote-close-outline.svelte +16 -0
- package/dist/icons/generated/format-quote-close-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/format-quote-close.svelte +16 -0
- package/dist/icons/generated/format-quote-close.svelte.d.ts +7 -0
- package/dist/icons/generated/format-quote-open-outline.svelte +16 -0
- package/dist/icons/generated/format-quote-open-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/format-quote-open.svelte +16 -0
- package/dist/icons/generated/format-quote-open.svelte.d.ts +7 -0
- package/dist/icons/generated/group.svelte +16 -0
- package/dist/icons/generated/group.svelte.d.ts +7 -0
- package/dist/icons/generated/handle-grip.svelte +16 -0
- package/dist/icons/generated/handle-grip.svelte.d.ts +7 -0
- package/dist/icons/generated/image-outline.svelte +16 -0
- package/dist/icons/generated/image-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/image.svelte +16 -0
- package/dist/icons/generated/image.svelte.d.ts +7 -0
- package/dist/icons/generated/index.d.ts +173 -0
- package/dist/icons/generated/index.js +173 -0
- package/dist/icons/generated/lead-pencil.svelte +16 -0
- package/dist/icons/generated/lead-pencil.svelte.d.ts +7 -0
- package/dist/icons/generated/lightbulb-outline.svelte +16 -0
- package/dist/icons/generated/lightbulb-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/lightbulb.svelte +16 -0
- package/dist/icons/generated/lightbulb.svelte.d.ts +7 -0
- package/dist/icons/generated/lock-open-outline.svelte +16 -0
- package/dist/icons/generated/lock-open-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/lock-open.svelte +16 -0
- package/dist/icons/generated/lock-open.svelte.d.ts +7 -0
- package/dist/icons/generated/lock-outline.svelte +16 -0
- package/dist/icons/generated/lock-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/lock.svelte +16 -0
- package/dist/icons/generated/lock.svelte.d.ts +7 -0
- package/dist/icons/generated/magic-wand.svelte +16 -0
- package/dist/icons/generated/magic-wand.svelte.d.ts +7 -0
- package/dist/icons/generated/magnify.svelte +16 -0
- package/dist/icons/generated/magnify.svelte.d.ts +7 -0
- package/dist/icons/generated/manifest.js +1464 -62
- package/dist/icons/generated/menu-down.svelte +16 -0
- package/dist/icons/generated/menu-down.svelte.d.ts +7 -0
- package/dist/icons/generated/menu-up.svelte +16 -0
- package/dist/icons/generated/menu-up.svelte.d.ts +7 -0
- package/dist/icons/generated/minus-thick.svelte +16 -0
- package/dist/icons/generated/minus-thick.svelte.d.ts +7 -0
- package/dist/icons/generated/minus.svelte +16 -0
- package/dist/icons/generated/minus.svelte.d.ts +7 -0
- package/dist/icons/generated/page-layout-header-footer.svelte +16 -0
- package/dist/icons/generated/page-layout-header-footer.svelte.d.ts +7 -0
- package/dist/icons/generated/palette-outline.svelte +16 -0
- package/dist/icons/generated/palette-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/palette.svelte +16 -0
- package/dist/icons/generated/palette.svelte.d.ts +7 -0
- package/dist/icons/generated/pause.svelte +16 -0
- package/dist/icons/generated/pause.svelte.d.ts +7 -0
- package/dist/icons/generated/pen.svelte +16 -0
- package/dist/icons/generated/pen.svelte.d.ts +7 -0
- package/dist/icons/generated/pencil-outline.svelte +16 -0
- package/dist/icons/generated/pencil-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/pencil.svelte +16 -0
- package/dist/icons/generated/pencil.svelte.d.ts +7 -0
- package/dist/icons/generated/percent.svelte +16 -0
- package/dist/icons/generated/percent.svelte.d.ts +7 -0
- package/dist/icons/generated/pine-tree-box.svelte +16 -0
- package/dist/icons/generated/pine-tree-box.svelte.d.ts +7 -0
- package/dist/icons/generated/pine-tree-variant-outline.svelte +16 -0
- package/dist/icons/generated/pine-tree-variant-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/play-pause.svelte +16 -0
- package/dist/icons/generated/play-pause.svelte.d.ts +7 -0
- package/dist/icons/generated/play.svelte +16 -0
- package/dist/icons/generated/play.svelte.d.ts +7 -0
- package/dist/icons/generated/plus-thick.svelte +16 -0
- package/dist/icons/generated/plus-thick.svelte.d.ts +7 -0
- package/dist/icons/generated/plus.svelte +16 -0
- package/dist/icons/generated/plus.svelte.d.ts +7 -0
- package/dist/icons/generated/reset-focus.svelte +16 -0
- package/dist/icons/generated/reset-focus.svelte.d.ts +7 -0
- package/dist/icons/generated/reset.svelte +16 -0
- package/dist/icons/generated/reset.svelte.d.ts +7 -0
- package/dist/icons/generated/ruler-square.svelte +16 -0
- package/dist/icons/generated/ruler-square.svelte.d.ts +7 -0
- package/dist/icons/generated/ruler.svelte +16 -0
- package/dist/icons/generated/ruler.svelte.d.ts +7 -0
- package/dist/icons/generated/star-outline.svelte +16 -0
- package/dist/icons/generated/star-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/star.svelte +16 -0
- package/dist/icons/generated/star.svelte.d.ts +7 -0
- package/dist/icons/generated/table-border.svelte +16 -0
- package/dist/icons/generated/table-border.svelte.d.ts +7 -0
- package/dist/icons/generated/tag-multiple-outline.svelte +16 -0
- package/dist/icons/generated/tag-multiple-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/tag-multiple.svelte +16 -0
- package/dist/icons/generated/tag-multiple.svelte.d.ts +7 -0
- package/dist/icons/generated/tag-outline.svelte +16 -0
- package/dist/icons/generated/tag-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/tag.svelte +16 -0
- package/dist/icons/generated/tag.svelte.d.ts +7 -0
- package/dist/icons/generated/text-box-outline.svelte +16 -0
- package/dist/icons/generated/text-box-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/text-box-plus-outline.svelte +16 -0
- package/dist/icons/generated/text-box-plus-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/text-box-plus.svelte +16 -0
- package/dist/icons/generated/text-box-plus.svelte.d.ts +7 -0
- package/dist/icons/generated/text-box.svelte +16 -0
- package/dist/icons/generated/text-box.svelte.d.ts +7 -0
- package/dist/icons/generated/thumb-down-outline.svelte +16 -0
- package/dist/icons/generated/thumb-down-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/thumb-down.svelte +16 -0
- package/dist/icons/generated/thumb-down.svelte.d.ts +7 -0
- package/dist/icons/generated/thumb-up-outline.svelte +16 -0
- package/dist/icons/generated/thumb-up-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/thumb-up.svelte +16 -0
- package/dist/icons/generated/thumb-up.svelte.d.ts +7 -0
- package/dist/icons/generated/tilde.svelte +16 -0
- package/dist/icons/generated/tilde.svelte.d.ts +7 -0
- package/dist/icons/generated/tooltip-image-outline.svelte +16 -0
- package/dist/icons/generated/tooltip-image-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/tooltip-question-outline.svelte +16 -0
- package/dist/icons/generated/tooltip-question-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/tooltip-question.svelte +16 -0
- package/dist/icons/generated/tooltip-question.svelte.d.ts +7 -0
- package/dist/icons/generated/tooltip-text-outline.svelte +16 -0
- package/dist/icons/generated/tooltip-text-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/tooltip-text.svelte +16 -0
- package/dist/icons/generated/tooltip-text.svelte.d.ts +7 -0
- package/dist/icons/generated/triangle-down-outline.svelte +16 -0
- package/dist/icons/generated/triangle-down-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/triangle-down.svelte +16 -0
- package/dist/icons/generated/triangle-down.svelte.d.ts +7 -0
- package/dist/icons/generated/triangle-outline.svelte +16 -0
- package/dist/icons/generated/triangle-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/triangle-small-down.svelte +16 -0
- package/dist/icons/generated/triangle-small-down.svelte.d.ts +7 -0
- package/dist/icons/generated/triangle-small.svelte +16 -0
- package/dist/icons/generated/triangle-small.svelte.d.ts +7 -0
- package/dist/icons/generated/triangle.svelte +16 -0
- package/dist/icons/generated/triangle.svelte.d.ts +7 -0
- package/dist/icons/generated/view-grid-outline.svelte +16 -0
- package/dist/icons/generated/view-grid-outline.svelte.d.ts +7 -0
- package/dist/icons/generated/view-grid.svelte +16 -0
- package/dist/icons/generated/view-grid.svelte.d.ts +7 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.js +6 -2
- package/dist/styles/tone-context.css +94 -0
- package/package.json +3 -3
- package/dist/components/framework/layout/container/sidebar/Sidebar.svelte +0 -134
- package/dist/components/framework/layout/container/sidebar/Sidebar.svelte.d.ts +0 -9
- package/dist/components/framework/navigation/sidenav/Sidenav.svelte +0 -86
- package/dist/components/framework/navigation/sidenav/Sidenav.svelte.d.ts +0 -8
- package/dist/components/framework/navigation/sidenav/SidenavTree.svelte +0 -265
- package/dist/components/framework/navigation/sidenav/SidenavTree.svelte.d.ts +0 -14
- package/dist/components/framework/navigation/sidenav/sidenav.d.ts +0 -6
- package/dist/components/framework/navigation/sidenav/sidenav.js +0 -1
package/README.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
[](https://seblify.com)
|
|
1
2
|
[](https://www.npmjs.com/package/seblify)
|
|
2
3
|
[](https://www.npmjs.com/package/seblify)
|
|
3
4
|
|
|
4
|
-
[](https://seblify.com)
|
|
5
|
-
|
|
6
5
|
# Seblify
|
|
7
6
|
|
|
8
7
|
[comment]: <> (==== ========================= ====)
|
|
@@ -13,6 +12,12 @@
|
|
|
13
12
|
|
|
14
13
|
Svelte UI component library for building themed interfaces.
|
|
15
14
|
|
|
15
|
+
### Feedback
|
|
16
|
+
|
|
17
|
+
Seblify is a work in progress, and I am very open to feedback. If you find a bug, hit a rough edge, or have an idea for a component, API, example, or design-system improvement, please let me know.
|
|
18
|
+
|
|
19
|
+
Ideas and bug reports are genuinely welcome: [support.seblify@gmail.com](mailto:support.seblify@gmail.com)
|
|
20
|
+
|
|
16
21
|
## Installation
|
|
17
22
|
|
|
18
23
|
```bash
|
|
@@ -28,12 +33,12 @@ import 'seblify/theme.css';
|
|
|
28
33
|
|
|
29
34
|
## Components
|
|
30
35
|
|
|
36
|
+
Explore the supported components in this library. Components are grouped by purpose and linked to their full documentation, including usage examples, props, accessibility notes, and design-system guidance.
|
|
37
|
+
|
|
31
38
|
[](https://seblify.com/components)
|
|
32
|
-
[](https://seblify.com/components)
|
|
33
40
|
[](https://seblify.com/components)
|
|
34
41
|
|
|
35
|
-
Explore the supported components in this library. Components are grouped by purpose and linked to their full documentation, including usage examples, props, accessibility notes, and design-system guidance.
|
|
36
|
-
|
|
37
42
|
### Quick links
|
|
38
43
|
|
|
39
44
|
- [Input Components](https://seblify.com/sections/action)
|
|
@@ -41,177 +46,164 @@ Explore the supported components in this library. Components are grouped by purp
|
|
|
41
46
|
- [Framework Components](https://seblify.com/sections/framework)
|
|
42
47
|
- [Design System](https://seblify.com/design-system)
|
|
43
48
|
|
|
44
|
-
|
|
49
|
+
<br />
|
|
45
50
|
|
|
46
|
-
|
|
51
|
+
### Input Components
|
|
52
|
+
|
|
53
|
+
_6 items_
|
|
47
54
|
|
|
48
55
|
Components that let users make choices, submit data, and trigger behavior.
|
|
49
56
|
|
|
50
57
|
<details>
|
|
51
|
-
<summary><strong>Input Fields</strong></summary>
|
|
58
|
+
<summary><strong>Input Fields · 1</strong></summary>
|
|
52
59
|
|
|
53
60
|
Text-like controls for entering structured user input.
|
|
54
61
|
|
|
55
62
|
| Component | Summary | Status |
|
|
56
63
|
| --- | --- | --- |
|
|
57
|
-
| [Pin Input](https://seblify.com/components/pin-input) | A segmented numeric input for short verification codes. |
|
|
58
|
-
|
|
64
|
+
| [Pin Input](https://seblify.com/components/pin-input) | A segmented numeric input for short verification codes. | Draft |
|
|
59
65
|
|
|
60
|
-
---
|
|
61
66
|
</details>
|
|
62
|
-
|
|
63
67
|
<br />
|
|
64
68
|
|
|
65
69
|
<details>
|
|
66
|
-
<summary><strong>Selectable</strong></summary>
|
|
70
|
+
<summary><strong>Selectable · 5</strong></summary>
|
|
67
71
|
|
|
68
72
|
Controls for selecting boolean, range, or option-based values.
|
|
69
73
|
|
|
70
74
|
| Component | Summary | Status |
|
|
71
75
|
| --- | --- | --- |
|
|
72
|
-
| [Checkbox](https://seblify.com/components/checkbox) | A boolean selection control for one option in a form or settings flow. |
|
|
73
|
-
| [SegmentControl](https://seblify.com/components/segment-control) | A compact single-selection control for switching between a small set of options. |
|
|
74
|
-
| [Slider](https://seblify.com/components/slider) | A range input for choosing an approximate numeric value. |
|
|
75
|
-
| [Switch](https://seblify.com/components/switch) | A two-state control for immediately turning a setting on or off. |
|
|
76
|
-
| [ThemeSwitch](https://seblify.com/components/theme-switch) | A segmented control for selecting system, light, or dark color mode. |
|
|
76
|
+
| [Checkbox](https://seblify.com/components/checkbox) | A boolean selection control for one option in a form or settings flow. | Draft |
|
|
77
|
+
| [SegmentControl](https://seblify.com/components/segment-control) | A compact single-selection control for switching between a small set of options. | Draft |
|
|
78
|
+
| [Slider](https://seblify.com/components/slider) | A range input for choosing an approximate numeric value. | Draft |
|
|
79
|
+
| [Switch](https://seblify.com/components/switch) | A two-state control for immediately turning a setting on or off. | Draft |
|
|
80
|
+
| [ThemeSwitch](https://seblify.com/components/theme-switch) | A segmented control for selecting system, light, or dark color mode. | Draft |
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
---
|
|
80
82
|
</details>
|
|
83
|
+
<br />
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
### Display Components
|
|
86
|
+
|
|
87
|
+
_10 items_
|
|
83
88
|
|
|
84
89
|
Components for showing content, feedback, media, and motion.
|
|
85
90
|
|
|
91
|
+
| Component | Summary | Status |
|
|
92
|
+
| --- | --- | --- |
|
|
93
|
+
| [Timeline](https://seblify.com/components/timeline) | Arranges connected timeline items vertically or horizontally with flexible content, labels, and markers. | Beta |
|
|
94
|
+
|
|
86
95
|
<details>
|
|
87
|
-
<summary><strong>Annotation</strong></summary>
|
|
96
|
+
<summary><strong>Annotation · 3</strong></summary>
|
|
88
97
|
|
|
89
98
|
Small attached indicators, labels, and supporting markers.
|
|
90
99
|
|
|
91
100
|
| Component | Summary | Status |
|
|
92
101
|
| --- | --- | --- |
|
|
93
|
-
| [Badge](https://seblify.com/components/badge) | A small attached indicator for counts, labels, and presence states around another item. |
|
|
94
|
-
| [Tag](https://seblify.com/components/tag) | A compact text marker for statuses, categories, and item labels. |
|
|
95
|
-
| [TagGroup](https://seblify.com/components/tag-group) | A wrapping inline group for tags with the standard tag spacing. |
|
|
96
|
-
|
|
102
|
+
| [Badge](https://seblify.com/components/badge) | A small attached indicator for counts, labels, and presence states around another item. | Draft |
|
|
103
|
+
| [Tag](https://seblify.com/components/tag) | A compact text marker for statuses, categories, and item labels. | Draft |
|
|
104
|
+
| [TagGroup](https://seblify.com/components/tag-group) | A wrapping inline group for tags with the standard tag spacing. | Draft |
|
|
97
105
|
|
|
98
|
-
---
|
|
99
106
|
</details>
|
|
100
|
-
|
|
101
107
|
<br />
|
|
102
108
|
|
|
103
109
|
<details>
|
|
104
|
-
<summary><strong>Loading</strong></summary>
|
|
110
|
+
<summary><strong>Loading · 2</strong></summary>
|
|
105
111
|
|
|
106
112
|
Progress indicators and waiting states.
|
|
107
113
|
|
|
108
114
|
| Component | Summary | Status |
|
|
109
115
|
| --- | --- | --- |
|
|
110
|
-
| [Loading Dots](https://seblify.com/components/loading-dots) | A compact animated loading indicator for inline waiting states. |
|
|
111
|
-
| [Spinner](https://seblify.com/components/spinner) | A circular loading indicator for indeterminate progress. |
|
|
112
|
-
|
|
116
|
+
| [Loading Dots](https://seblify.com/components/loading-dots) | A compact animated loading indicator for inline waiting states. | Draft |
|
|
117
|
+
| [Spinner](https://seblify.com/components/spinner) | A circular loading indicator for indeterminate progress. | Draft |
|
|
113
118
|
|
|
114
|
-
---
|
|
115
119
|
</details>
|
|
116
|
-
|
|
117
120
|
<br />
|
|
118
121
|
|
|
119
122
|
<details>
|
|
120
|
-
<summary><strong>Typography</strong></summary>
|
|
123
|
+
<summary><strong>Typography · 3</strong></summary>
|
|
121
124
|
|
|
122
125
|
Text primitives and typographic treatments for readable interfaces.
|
|
123
126
|
|
|
124
127
|
| Component | Summary | Status |
|
|
125
128
|
| --- | --- | --- |
|
|
126
|
-
| [
|
|
127
|
-
| [
|
|
128
|
-
|
|
129
|
+
| [CodeSnippet](https://seblify.com/components/code-snippet) | Displays formatted code snippets with Svelte-focused highlighting and optional line numbers. | Draft |
|
|
130
|
+
| [Eyebrow](https://seblify.com/components/eyebrow) | A short contextual label that sits above a heading or dense content block. | Draft |
|
|
131
|
+
| [Highlight](https://seblify.com/components/highlight) | Highlights case-insensitive text matches inside a plain text string. | Beta |
|
|
129
132
|
|
|
130
|
-
---
|
|
131
133
|
</details>
|
|
132
|
-
|
|
133
134
|
<br />
|
|
134
135
|
|
|
135
136
|
<details>
|
|
136
|
-
<summary><strong>Media</strong></summary>
|
|
137
|
+
<summary><strong>Media · 1</strong></summary>
|
|
137
138
|
|
|
138
139
|
Icons, images, video, and other visual media components.
|
|
139
140
|
|
|
140
141
|
| Component | Summary | Status |
|
|
141
142
|
| --- | --- | --- |
|
|
142
|
-
| [Icon](https://seblify.com/components/icon) | A convenient registry-based icon component for Seblify SVG icons. |
|
|
143
|
-
|
|
143
|
+
| [Icon](https://seblify.com/components/icon) | A convenient registry-based icon component for Seblify SVG icons. | Draft |
|
|
144
144
|
|
|
145
|
-
---
|
|
146
145
|
</details>
|
|
146
|
+
<br />
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
### Framework Components
|
|
149
|
+
|
|
150
|
+
_10 items_
|
|
149
151
|
|
|
150
152
|
Layout, navigation, overlays, and surface primitives.
|
|
151
153
|
|
|
152
154
|
<details>
|
|
153
|
-
<summary><strong>Align</strong></summary>
|
|
155
|
+
<summary><strong>Align · 4</strong></summary>
|
|
154
156
|
|
|
155
157
|
Small layout primitives for spacing and aligning content.
|
|
156
158
|
|
|
157
159
|
| Component | Summary | Status |
|
|
158
160
|
| --- | --- | --- |
|
|
159
|
-
| [Cluster](https://seblify.com/components/cluster) | A wrapping horizontal layout primitive that spaces items with a configurable gap. |
|
|
160
|
-
| [Grid](https://seblify.com/components/grid) | A responsive grid layout primitive with automatic columns or an explicit column count. |
|
|
161
|
-
| [Row](https://seblify.com/components/row) | A horizontal layout primitive that spaces items with a configurable gap. |
|
|
162
|
-
| [Stack](https://seblify.com/components/stack) | A vertical layout primitive that spaces items with a configurable gap. |
|
|
163
|
-
|
|
161
|
+
| [Cluster](https://seblify.com/components/cluster) | A wrapping horizontal layout primitive that spaces items with a configurable gap. | Draft |
|
|
162
|
+
| [Grid](https://seblify.com/components/grid) | A responsive grid layout primitive with automatic columns or an explicit column count. | Draft |
|
|
163
|
+
| [Row](https://seblify.com/components/row) | A horizontal layout primitive that spaces items with a configurable gap. | Draft |
|
|
164
|
+
| [Stack](https://seblify.com/components/stack) | A vertical layout primitive that spaces items with a configurable gap. | Draft |
|
|
164
165
|
|
|
165
|
-
---
|
|
166
166
|
</details>
|
|
167
|
-
|
|
168
167
|
<br />
|
|
169
168
|
|
|
170
169
|
<details>
|
|
171
|
-
<summary><strong>Container</strong></summary>
|
|
170
|
+
<summary><strong>Container · 2</strong></summary>
|
|
172
171
|
|
|
173
172
|
Page and region containers that define app structure.
|
|
174
173
|
|
|
175
174
|
| Component | Summary | Status |
|
|
176
175
|
| --- | --- | --- |
|
|
177
|
-
| [AppShell](https://seblify.com/components/app-shell) | A full-page application frame with sidebar, header, and content regions. |
|
|
178
|
-
| [PageHeader](https://seblify.com/components/page-header) | A page-level heading block with optional breadcrumb, eyebrow, summary, and actions. |
|
|
179
|
-
| [Sidebar](https://seblify.com/components/sidebar) | A responsive side container for persistent or overlay navigation. | ⚪ Draft |
|
|
180
|
-
|
|
176
|
+
| [AppShell](https://seblify.com/components/app-shell) | A full-page application frame with sidebar, header, and content regions. | Draft |
|
|
177
|
+
| [PageHeader](https://seblify.com/components/page-header) | A page-level heading block with optional breadcrumb, eyebrow, summary, and actions. | Draft |
|
|
181
178
|
|
|
182
|
-
---
|
|
183
179
|
</details>
|
|
184
|
-
|
|
185
180
|
<br />
|
|
186
181
|
|
|
187
182
|
<details>
|
|
188
|
-
<summary><strong>Navigation</strong></summary>
|
|
183
|
+
<summary><strong>Navigation · 3</strong></summary>
|
|
189
184
|
|
|
190
185
|
Components that help users understand location and move around.
|
|
191
186
|
|
|
192
187
|
| Component | Summary | Status |
|
|
193
188
|
| --- | --- | --- |
|
|
194
|
-
| [Breadcrumb](https://seblify.com/components/breadcrumb) | A contextual navigation trail for showing page hierarchy. |
|
|
195
|
-
| [
|
|
196
|
-
|
|
189
|
+
| [Breadcrumb](https://seblify.com/components/breadcrumb) | A contextual navigation trail for showing page hierarchy. | Draft |
|
|
190
|
+
| [Sidebar](https://seblify.com/components/sidebar) | An orchestrator for main and deep sidebar navigation panels, with optional brand, search, and footer content. | Draft |
|
|
191
|
+
| [Sidenav](https://seblify.com/components/sidenav) | A recursive side navigation that renders links, headers, dividers, and expandable branches from a data tree. | Draft |
|
|
197
192
|
|
|
198
|
-
---
|
|
199
193
|
</details>
|
|
200
|
-
|
|
201
194
|
<br />
|
|
202
195
|
|
|
203
196
|
<details>
|
|
204
|
-
<summary><strong>Surface</strong></summary>
|
|
197
|
+
<summary><strong>Surface · 1</strong></summary>
|
|
205
198
|
|
|
206
199
|
Framing primitives for cards, papers, tiles, and other contained regions.
|
|
207
200
|
|
|
208
201
|
| Component | Summary | Status |
|
|
209
202
|
| --- | --- | --- |
|
|
210
|
-
| [Paper](https://seblify.com/components/paper) | A themed container for grouping content with configurable variant, tone, padding, border, and elevation. |
|
|
203
|
+
| [Paper](https://seblify.com/components/paper) | A themed container for grouping content with configurable variant, tone, padding, border, and elevation. | Draft |
|
|
211
204
|
|
|
212
|
-
|
|
213
|
-
---
|
|
214
205
|
</details>
|
|
206
|
+
<br />
|
|
215
207
|
|
|
216
208
|
## Design System
|
|
217
209
|
|
|
@@ -221,14 +213,65 @@ Theme, tokens, and styling guidance for Seblify.
|
|
|
221
213
|
| --- | --- |
|
|
222
214
|
| [Component API](https://seblify.com/design-system/component-api) | Shared prop naming rules for variants, tones, size, slots, radius, placement, and contextual inheritance. |
|
|
223
215
|
| [Icons](https://seblify.com/design-system/icons) | Browse all generated Seblify icons, grouped automatically from the SVG source folders. |
|
|
216
|
+
| [Inheritance](https://seblify.com/design-system/inheritance) | Ambient CSS variables let components inherit tone and size from their context without hard-coded parent-child edge cases. |
|
|
224
217
|
| [Theme](https://seblify.com/design-system/theme) | Seblify themes use CSS variables for light, dark, system, and custom color modes. |
|
|
225
218
|
|
|
226
|
-
|
|
219
|
+
<br />
|
|
220
|
+
|
|
221
|
+
## Release Notes <small>· 0.2.1</small>
|
|
227
222
|
|
|
228
|
-
|
|
223
|
+
_June 3 2026_ · _9 items updated_
|
|
229
224
|
|
|
230
225
|
Recent changes are summarized below. For the full release history, see the [changelog](https://seblify.com/release-notes).
|
|
231
226
|
|
|
232
|
-
### [
|
|
227
|
+
### [CodeSnippet](https://seblify.com/components/code-snippet)
|
|
228
|
+
|
|
229
|
+
- Added code snippet component for readonly code formatting
|
|
230
|
+
- Long lines can now optionally wrap
|
|
231
|
+
- Changed tokenizer to track word context for smarter token detection
|
|
232
|
+
- CodeSnippet no longer enters infinite loop on trailing plain text
|
|
233
|
+
|
|
234
|
+
### [general](https://seblify.com/components/general)
|
|
235
|
+
|
|
236
|
+
- Documentation can now display code examples
|
|
237
|
+
|
|
238
|
+
### [Highlight](https://seblify.com/components/highlight)
|
|
239
|
+
|
|
240
|
+
- Added code examples to docs
|
|
241
|
+
|
|
242
|
+
### [inheritance](https://seblify.com/components/inheritance)
|
|
243
|
+
|
|
244
|
+
- Added tone inheritance with consuming and publishing css variables
|
|
245
|
+
|
|
246
|
+
### [SegmentControl](https://seblify.com/components/segment-control)
|
|
247
|
+
|
|
248
|
+
- Selected background moves smoothly between active option
|
|
249
|
+
|
|
250
|
+
### [Sidenav](https://seblify.com/components/sidenav)
|
|
251
|
+
|
|
252
|
+
- Item can execute a method with a payload
|
|
253
|
+
- Item can take custom trailing content
|
|
254
|
+
- Item groups can be forced expanded
|
|
255
|
+
- Selecting an already selected link item with expanded children will collapse its children
|
|
256
|
+
- Sidenav no longer auto-collapses sections
|
|
257
|
+
|
|
258
|
+
### [Spinner](https://seblify.com/components/spinner)
|
|
259
|
+
|
|
260
|
+
- Added code examples to documentation
|
|
261
|
+
|
|
262
|
+
### [Switch](https://seblify.com/components/switch)
|
|
263
|
+
|
|
264
|
+
- Added tone and variant options
|
|
265
|
+
- Radius prop
|
|
266
|
+
- Added size prop
|
|
267
|
+
- Added shapes Pill, Flat, Long, Floating, Line
|
|
268
|
+
- Added optional grip icon to shapes Pill, Floating and Line
|
|
269
|
+
- Added optional track I/O icons
|
|
270
|
+
- Added animation options
|
|
271
|
+
- Focus ring color matches selected tone
|
|
272
|
+
|
|
273
|
+
### [Timeline](https://seblify.com/components/timeline)
|
|
233
274
|
|
|
234
|
-
-
|
|
275
|
+
- Added timeline component
|
|
276
|
+
- Added node align options
|
|
277
|
+
- Timeline can use custom markers
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { SeblifyProps } from 'seblify';
|
|
3
|
+
import type { Component } from 'svelte';
|
|
3
4
|
|
|
4
5
|
export interface SegmentControlOption {
|
|
5
6
|
value: string;
|
|
6
|
-
label
|
|
7
|
+
label?: string;
|
|
8
|
+
ariaLabel?: string;
|
|
7
9
|
disabled?: boolean;
|
|
10
|
+
icon?: Component<{ size?: string }>;
|
|
8
11
|
}
|
|
9
12
|
|
|
10
13
|
type Props = SeblifyProps<{
|
|
@@ -24,6 +27,75 @@
|
|
|
24
27
|
name = 'segment-control',
|
|
25
28
|
disabled = false,
|
|
26
29
|
}: Props = $props();
|
|
30
|
+
|
|
31
|
+
let optionsElement = $state<HTMLDivElement>();
|
|
32
|
+
let indicatorLeft = $state(0);
|
|
33
|
+
let indicatorWidth = $state(0);
|
|
34
|
+
let indicatorVisible = $state(false);
|
|
35
|
+
const optionElements: Array<HTMLLabelElement | undefined> = [];
|
|
36
|
+
|
|
37
|
+
function measureIndicator() {
|
|
38
|
+
if (!optionsElement) {
|
|
39
|
+
indicatorVisible = false;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const selectedIndex = options.findIndex((option) => option.value === value);
|
|
44
|
+
const selectedElement =
|
|
45
|
+
selectedIndex >= 0 ? optionElements[selectedIndex] : undefined;
|
|
46
|
+
|
|
47
|
+
if (!selectedElement) {
|
|
48
|
+
indicatorVisible = false;
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const parentRect = optionsElement.getBoundingClientRect();
|
|
53
|
+
const selectedRect = selectedElement.getBoundingClientRect();
|
|
54
|
+
|
|
55
|
+
indicatorLeft = selectedRect.left - parentRect.left - optionsElement.clientLeft;
|
|
56
|
+
indicatorWidth = selectedRect.width;
|
|
57
|
+
indicatorVisible = true;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function registerOption(node: HTMLLabelElement, index: number) {
|
|
61
|
+
optionElements[index] = node;
|
|
62
|
+
queueMicrotask(measureIndicator);
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
destroy() {
|
|
66
|
+
if (optionElements[index] === node) {
|
|
67
|
+
optionElements[index] = undefined;
|
|
68
|
+
queueMicrotask(measureIndicator);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
$effect(() => {
|
|
75
|
+
value;
|
|
76
|
+
options;
|
|
77
|
+
queueMicrotask(measureIndicator);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
$effect(() => {
|
|
81
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const resizeObserver = new ResizeObserver(() => measureIndicator());
|
|
86
|
+
|
|
87
|
+
if (optionsElement) {
|
|
88
|
+
resizeObserver.observe(optionsElement);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
for (const optionElement of optionElements) {
|
|
92
|
+
if (optionElement) {
|
|
93
|
+
resizeObserver.observe(optionElement);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return () => resizeObserver.disconnect();
|
|
98
|
+
});
|
|
27
99
|
</script>
|
|
28
100
|
|
|
29
101
|
<fieldset class="segment-control" class:disabled>
|
|
@@ -38,20 +110,41 @@
|
|
|
38
110
|
</legend>
|
|
39
111
|
{/if}
|
|
40
112
|
|
|
41
|
-
<span
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
113
|
+
<span class="options" bind:this={optionsElement}>
|
|
114
|
+
{#if indicatorVisible}
|
|
115
|
+
<span
|
|
116
|
+
aria-hidden="true"
|
|
117
|
+
class="indicator"
|
|
118
|
+
style:left={`${indicatorLeft}px`}
|
|
119
|
+
style:width={`${indicatorWidth}px`}
|
|
120
|
+
></span>
|
|
121
|
+
{/if}
|
|
122
|
+
|
|
123
|
+
{#each options as option, index (option.value)}
|
|
124
|
+
<label use:registerOption={index}>
|
|
47
125
|
<input
|
|
126
|
+
aria-label={option.ariaLabel ?? option.label}
|
|
48
127
|
bind:group={value}
|
|
49
128
|
disabled={disabled || option.disabled}
|
|
50
129
|
{name}
|
|
51
130
|
type="radio"
|
|
52
131
|
value={option.value}
|
|
53
132
|
/>
|
|
54
|
-
|
|
133
|
+
|
|
134
|
+
<span
|
|
135
|
+
class="option-content"
|
|
136
|
+
data-icon-only={option.icon && !option.label ? 'true' : undefined}
|
|
137
|
+
>
|
|
138
|
+
{#if option.icon}
|
|
139
|
+
<span class="icon">
|
|
140
|
+
<option.icon size="1rem" />
|
|
141
|
+
</span>
|
|
142
|
+
{/if}
|
|
143
|
+
|
|
144
|
+
{#if option.label}
|
|
145
|
+
<span class="option-label">{option.label}</span>
|
|
146
|
+
{/if}
|
|
147
|
+
</span>
|
|
55
148
|
</label>
|
|
56
149
|
{/each}
|
|
57
150
|
</span>
|
|
@@ -86,20 +179,33 @@
|
|
|
86
179
|
}
|
|
87
180
|
|
|
88
181
|
.options {
|
|
89
|
-
|
|
90
|
-
|
|
182
|
+
position: relative;
|
|
183
|
+
display: inline-flex;
|
|
91
184
|
width: fit-content;
|
|
92
185
|
max-width: 100%;
|
|
186
|
+
align-items: stretch;
|
|
93
187
|
border: 1px solid var(--seblify-color-border-strong, #aab7c5);
|
|
94
188
|
border-radius: 999px;
|
|
95
189
|
background: var(--seblify-color-surface-muted, #d9e0e8);
|
|
96
190
|
padding: 3px;
|
|
191
|
+
gap: 4px;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.indicator {
|
|
195
|
+
position: absolute;
|
|
196
|
+
top: 3px;
|
|
197
|
+
bottom: 3px;
|
|
198
|
+
border-radius: 999px;
|
|
199
|
+
background: var(--seblify-color-fill-accent, #146a6f);
|
|
200
|
+
transition:
|
|
201
|
+
left 220ms cubic-bezier(0.22, 1, 0.36, 1),
|
|
202
|
+
width 220ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
97
203
|
}
|
|
98
204
|
|
|
99
205
|
label {
|
|
100
206
|
position: relative;
|
|
101
207
|
display: grid;
|
|
102
|
-
min-width:
|
|
208
|
+
min-width: max-content;
|
|
103
209
|
cursor: pointer;
|
|
104
210
|
}
|
|
105
211
|
|
|
@@ -114,32 +220,50 @@
|
|
|
114
220
|
white-space: nowrap;
|
|
115
221
|
}
|
|
116
222
|
|
|
117
|
-
|
|
118
|
-
|
|
223
|
+
.option-content {
|
|
224
|
+
position: relative;
|
|
225
|
+
z-index: 1;
|
|
226
|
+
display: inline-flex;
|
|
119
227
|
min-height: 32px;
|
|
120
|
-
|
|
228
|
+
align-items: center;
|
|
229
|
+
justify-content: center;
|
|
230
|
+
gap: 0.5rem;
|
|
121
231
|
border-radius: 999px;
|
|
122
232
|
padding: 6px 12px;
|
|
123
233
|
color: var(--seblify-color-text-muted, #516176);
|
|
124
234
|
font-size: 0.875rem;
|
|
125
235
|
font-weight: 800;
|
|
126
236
|
line-height: 1;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
237
|
+
user-select: none;
|
|
238
|
+
transition: color 160ms ease;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.option-content[data-icon-only='true'] {
|
|
242
|
+
min-width: 32px;
|
|
243
|
+
padding-inline: 8px;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.icon {
|
|
247
|
+
display: inline-flex;
|
|
248
|
+
align-items: center;
|
|
249
|
+
justify-content: center;
|
|
250
|
+
line-height: 0;
|
|
130
251
|
}
|
|
131
252
|
|
|
132
|
-
|
|
253
|
+
.option-label {
|
|
254
|
+
white-space: nowrap;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
input:checked + .option-content {
|
|
133
258
|
color: var(--seblify-color-fill-accent-text, #ffffff);
|
|
134
|
-
background: var(--seblify-color-fill-accent, #146a6f);
|
|
135
259
|
}
|
|
136
260
|
|
|
137
|
-
input:focus-visible
|
|
261
|
+
label:has(input:focus-visible) .option-content {
|
|
138
262
|
outline: 3px solid var(--seblify-color-focus-ring, #9bd4d8);
|
|
139
263
|
outline-offset: 2px;
|
|
140
264
|
}
|
|
141
265
|
|
|
142
|
-
input:disabled +
|
|
266
|
+
input:disabled + .option-content {
|
|
143
267
|
cursor: not-allowed;
|
|
144
268
|
opacity: var(--seblify-opacity-disabled, 0.56);
|
|
145
269
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import type { Component } from 'svelte';
|
|
1
2
|
export interface SegmentControlOption {
|
|
2
3
|
value: string;
|
|
3
|
-
label
|
|
4
|
+
label?: string;
|
|
5
|
+
ariaLabel?: string;
|
|
4
6
|
disabled?: boolean;
|
|
7
|
+
icon?: Component<{
|
|
8
|
+
size?: string;
|
|
9
|
+
}>;
|
|
5
10
|
}
|
|
6
|
-
declare const SegmentControl:
|
|
11
|
+
declare const SegmentControl: Component<{
|
|
7
12
|
value?: string | undefined;
|
|
8
13
|
options: SegmentControlOption[];
|
|
9
14
|
label?: string | undefined;
|