@wallarm-org/claude-design 0.0.0-stage → 4.9.0
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 +114 -2
- package/bin/claude-design.js +347 -0
- package/dist/SETUP.md +130 -0
- package/dist/UPDATE.md +84 -0
- package/dist/assets/Icons/activity.svg +1 -0
- package/dist/assets/Icons/alt.svg +1 -0
- package/dist/assets/Icons/android-neutral.svg +1 -0
- package/dist/assets/Icons/android.svg +1 -0
- package/dist/assets/Icons/api.svg +1 -0
- package/dist/assets/Icons/apple-music-neutral.svg +1 -0
- package/dist/assets/Icons/apple-music.svg +1 -0
- package/dist/assets/Icons/apple-neutral.svg +1 -0
- package/dist/assets/Icons/apple-podcasts-neutral.svg +1 -0
- package/dist/assets/Icons/apple-podcasts.svg +1 -0
- package/dist/assets/Icons/apple.svg +1 -0
- package/dist/assets/Icons/archive.svg +1 -0
- package/dist/assets/Icons/arrow-big-up-dash.svg +1 -0
- package/dist/assets/Icons/arrow-big-up.svg +1 -0
- package/dist/assets/Icons/arrow-down-left.svg +1 -0
- package/dist/assets/Icons/arrow-down-right.svg +1 -0
- package/dist/assets/Icons/arrow-down.svg +1 -0
- package/dist/assets/Icons/arrow-left.svg +1 -0
- package/dist/assets/Icons/arrow-right-alt.svg +1 -0
- package/dist/assets/Icons/arrow-right.svg +1 -0
- package/dist/assets/Icons/arrow-up-down.svg +1 -0
- package/dist/assets/Icons/arrow-up-left.svg +1 -0
- package/dist/assets/Icons/arrow-up-right.svg +1 -0
- package/dist/assets/Icons/arrow-up.svg +1 -0
- package/dist/assets/Icons/artstation-neutral.svg +1 -0
- package/dist/assets/Icons/artstation.svg +1 -0
- package/dist/assets/Icons/asterisk.svg +1 -0
- package/dist/assets/Icons/audio-waveform.svg +1 -0
- package/dist/assets/Icons/aws-neutral.svg +1 -0
- package/dist/assets/Icons/aws.svg +1 -0
- package/dist/assets/Icons/badge-check.svg +1 -0
- package/dist/assets/Icons/baidu-neutral.svg +1 -0
- package/dist/assets/Icons/baidu.svg +1 -0
- package/dist/assets/Icons/bandage.svg +1 -0
- package/dist/assets/Icons/behance-neutral.svg +1 -0
- package/dist/assets/Icons/behance.svg +1 -0
- package/dist/assets/Icons/bell-cog.svg +1 -0
- package/dist/assets/Icons/bell.svg +1 -0
- package/dist/assets/Icons/binary.svg +1 -0
- package/dist/assets/Icons/book-open.svg +1 -0
- package/dist/assets/Icons/book.svg +1 -0
- package/dist/assets/Icons/boosty-neutral.svg +1 -0
- package/dist/assets/Icons/boosty.svg +1 -0
- package/dist/assets/Icons/bot.svg +1 -0
- package/dist/assets/Icons/brain.svg +1 -0
- package/dist/assets/Icons/braze-neutral.svg +1 -0
- package/dist/assets/Icons/braze.svg +1 -0
- package/dist/assets/Icons/brevo-neutral.svg +1 -0
- package/dist/assets/Icons/brevo.svg +1 -0
- package/dist/assets/Icons/bug-off.svg +1 -0
- package/dist/assets/Icons/bug-play.svg +1 -0
- package/dist/assets/Icons/bug.svg +1 -0
- package/dist/assets/Icons/building.svg +1 -0
- package/dist/assets/Icons/building2.svg +1 -0
- package/dist/assets/Icons/calendar-check.svg +1 -0
- package/dist/assets/Icons/calendar-check2.svg +1 -0
- package/dist/assets/Icons/calendar-clock.svg +1 -0
- package/dist/assets/Icons/calendar-cog.svg +1 -0
- package/dist/assets/Icons/calendar-days.svg +1 -0
- package/dist/assets/Icons/calendar-fold.svg +1 -0
- package/dist/assets/Icons/calendar-heart.svg +1 -0
- package/dist/assets/Icons/calendar-minus.svg +1 -0
- package/dist/assets/Icons/calendar-minus2.svg +1 -0
- package/dist/assets/Icons/calendar-off.svg +1 -0
- package/dist/assets/Icons/calendar-plus.svg +1 -0
- package/dist/assets/Icons/calendar-plus2.svg +1 -0
- package/dist/assets/Icons/calendar-range.svg +1 -0
- package/dist/assets/Icons/calendar-search.svg +1 -0
- package/dist/assets/Icons/calendar-x.svg +1 -0
- package/dist/assets/Icons/calendar-x2.svg +1 -0
- package/dist/assets/Icons/calendar.svg +1 -0
- package/dist/assets/Icons/chart-area.svg +1 -0
- package/dist/assets/Icons/chart-bar.svg +1 -0
- package/dist/assets/Icons/chart-column.svg +1 -0
- package/dist/assets/Icons/chart-no-axes-column.svg +1 -0
- package/dist/assets/Icons/check-check.svg +1 -0
- package/dist/assets/Icons/check.svg +1 -0
- package/dist/assets/Icons/checkbox-indeterminate.svg +1 -0
- package/dist/assets/Icons/chevron-down.svg +1 -0
- package/dist/assets/Icons/chevron-first.svg +1 -0
- package/dist/assets/Icons/chevron-last.svg +1 -0
- package/dist/assets/Icons/chevron-left.svg +1 -0
- package/dist/assets/Icons/chevron-right.svg +1 -0
- package/dist/assets/Icons/chevron-up-down.svg +1 -0
- package/dist/assets/Icons/chevron-up.svg +1 -0
- package/dist/assets/Icons/chevrons-down-up.svg +1 -0
- package/dist/assets/Icons/chevrons-down.svg +1 -0
- package/dist/assets/Icons/chevrons-left-right.svg +1 -0
- package/dist/assets/Icons/chevrons-left.svg +1 -0
- package/dist/assets/Icons/chevrons-right-left.svg +1 -0
- package/dist/assets/Icons/chevrons-right.svg +1 -0
- package/dist/assets/Icons/chevrons-up-down.svg +1 -0
- package/dist/assets/Icons/chevrons-up.svg +1 -0
- package/dist/assets/Icons/circle-arrow-down.svg +1 -0
- package/dist/assets/Icons/circle-arrow-left.svg +1 -0
- package/dist/assets/Icons/circle-arrow-out-down-left.svg +1 -0
- package/dist/assets/Icons/circle-arrow-out-down-right.svg +1 -0
- package/dist/assets/Icons/circle-arrow-out-up-left.svg +1 -0
- package/dist/assets/Icons/circle-arrow-out-up-right.svg +1 -0
- package/dist/assets/Icons/circle-arrow-right.svg +1 -0
- package/dist/assets/Icons/circle-arrow-up.svg +1 -0
- package/dist/assets/Icons/circle-check-big.svg +1 -0
- package/dist/assets/Icons/circle-check.svg +1 -0
- package/dist/assets/Icons/circle-chevron-down.svg +1 -0
- package/dist/assets/Icons/circle-chevron-left.svg +1 -0
- package/dist/assets/Icons/circle-chevron-right.svg +1 -0
- package/dist/assets/Icons/circle-chevron-up.svg +1 -0
- package/dist/assets/Icons/circle-dashed.svg +1 -0
- package/dist/assets/Icons/circle-dot-dashed.svg +1 -0
- package/dist/assets/Icons/circle-ellipsis.svg +1 -0
- package/dist/assets/Icons/circle-gauge.svg +1 -0
- package/dist/assets/Icons/circle-help.svg +1 -0
- package/dist/assets/Icons/circle-minus.svg +1 -0
- package/dist/assets/Icons/circle-plus.svg +1 -0
- package/dist/assets/Icons/circle-slash.svg +1 -0
- package/dist/assets/Icons/circle-slash2.svg +1 -0
- package/dist/assets/Icons/circle-stop.svg +1 -0
- package/dist/assets/Icons/circle.svg +1 -0
- package/dist/assets/Icons/clipboard-check.svg +1 -0
- package/dist/assets/Icons/clipboard-x.svg +1 -0
- package/dist/assets/Icons/clipboard.svg +1 -0
- package/dist/assets/Icons/clock-fading.svg +1 -0
- package/dist/assets/Icons/clock.svg +1 -0
- package/dist/assets/Icons/cloud-off.svg +1 -0
- package/dist/assets/Icons/cloud-sync.svg +1 -0
- package/dist/assets/Icons/cloud.svg +1 -0
- package/dist/assets/Icons/code.svg +1 -0
- package/dist/assets/Icons/collapse.svg +1 -0
- package/dist/assets/Icons/columns3-cog.svg +1 -0
- package/dist/assets/Icons/command.svg +1 -0
- package/dist/assets/Icons/compass.svg +1 -0
- package/dist/assets/Icons/copy-slash.svg +1 -0
- package/dist/assets/Icons/copy.svg +1 -0
- package/dist/assets/Icons/corner-down-left.svg +1 -0
- package/dist/assets/Icons/corner-down-right.svg +1 -0
- package/dist/assets/Icons/corner-left-down.svg +1 -0
- package/dist/assets/Icons/corner-left-up.svg +1 -0
- package/dist/assets/Icons/corner-right-down.svg +1 -0
- package/dist/assets/Icons/corner-right-up.svg +1 -0
- package/dist/assets/Icons/corner-up-left.svg +1 -0
- package/dist/assets/Icons/corner-up-right.svg +1 -0
- package/dist/assets/Icons/cpu.svg +1 -0
- package/dist/assets/Icons/credit-card.svg +1 -0
- package/dist/assets/Icons/crosshair.svg +1 -0
- package/dist/assets/Icons/ctrl.svg +1 -0
- package/dist/assets/Icons/database.svg +1 -0
- package/dist/assets/Icons/devianart-neutral.svg +1 -0
- package/dist/assets/Icons/devianart.svg +1 -0
- package/dist/assets/Icons/discord-neutral.svg +1 -0
- package/dist/assets/Icons/discord.svg +1 -0
- package/dist/assets/Icons/dollar-sign.svg +1 -0
- package/dist/assets/Icons/dot.svg +1 -0
- package/dist/assets/Icons/download.svg +1 -0
- package/dist/assets/Icons/dprofile-neutral.svg +1 -0
- package/dist/assets/Icons/dprofile.svg +1 -0
- package/dist/assets/Icons/dribbble-neutral.svg +1 -0
- package/dist/assets/Icons/dribbble.svg +1 -0
- package/dist/assets/Icons/droplet.svg +1 -0
- package/dist/assets/Icons/duplicate.svg +1 -0
- package/dist/assets/Icons/dzen-neutral.svg +1 -0
- package/dist/assets/Icons/dzen.svg +1 -0
- package/dist/assets/Icons/earth-lock.svg +1 -0
- package/dist/assets/Icons/earth.svg +1 -0
- package/dist/assets/Icons/ellipsis.svg +1 -0
- package/dist/assets/Icons/expand.svg +1 -0
- package/dist/assets/Icons/external-link.svg +1 -0
- package/dist/assets/Icons/eye-off.svg +1 -0
- package/dist/assets/Icons/eye.svg +1 -0
- package/dist/assets/Icons/facebook-neutral.svg +1 -0
- package/dist/assets/Icons/facebook.svg +1 -0
- package/dist/assets/Icons/fast-forward.svg +1 -0
- package/dist/assets/Icons/figma-neutral.svg +1 -0
- package/dist/assets/Icons/figma.svg +1 -0
- package/dist/assets/Icons/file-down.svg +1 -0
- package/dist/assets/Icons/file-plus.svg +1 -0
- package/dist/assets/Icons/file-text.svg +1 -0
- package/dist/assets/Icons/file.svg +1 -0
- package/dist/assets/Icons/film.svg +1 -0
- package/dist/assets/Icons/filter-x.svg +1 -0
- package/dist/assets/Icons/filter.svg +1 -0
- package/dist/assets/Icons/fingerprint-pattern.svg +1 -0
- package/dist/assets/Icons/flag.svg +1 -0
- package/dist/assets/Icons/flask-conical.svg +1 -0
- package/dist/assets/Icons/folder.svg +1 -0
- package/dist/assets/Icons/funnel-plus.svg +1 -0
- package/dist/assets/Icons/ghost.svg +1 -0
- package/dist/assets/Icons/git-branch.svg +1 -0
- package/dist/assets/Icons/git-commit-horizontal.svg +1 -0
- package/dist/assets/Icons/git-commit-vertical.svg +1 -0
- package/dist/assets/Icons/git-compare-arrows-alt.svg +1 -0
- package/dist/assets/Icons/git-compare-arrows.svg +1 -0
- package/dist/assets/Icons/git-compare.svg +1 -0
- package/dist/assets/Icons/git-fork.svg +1 -0
- package/dist/assets/Icons/git-graph.svg +1 -0
- package/dist/assets/Icons/git-merge.svg +1 -0
- package/dist/assets/Icons/git-pull-request-arrow.svg +1 -0
- package/dist/assets/Icons/git-pull-request-closed.svg +1 -0
- package/dist/assets/Icons/git-pull-request-create-arrow.svg +1 -0
- package/dist/assets/Icons/git-pull-request-create.svg +1 -0
- package/dist/assets/Icons/git-pull-request-draft.svg +1 -0
- package/dist/assets/Icons/git-pull-request.svg +1 -0
- package/dist/assets/Icons/github-neutral.svg +1 -0
- package/dist/assets/Icons/github.svg +1 -0
- package/dist/assets/Icons/globe-lock.svg +1 -0
- package/dist/assets/Icons/globe.svg +1 -0
- package/dist/assets/Icons/gmail-neutral.svg +1 -0
- package/dist/assets/Icons/gmail.svg +1 -0
- package/dist/assets/Icons/google-meet-neutral.svg +1 -0
- package/dist/assets/Icons/google-meet.svg +1 -0
- package/dist/assets/Icons/google-neutral.svg +1 -0
- package/dist/assets/Icons/google-play-neutral.svg +1 -0
- package/dist/assets/Icons/google-play.svg +1 -0
- package/dist/assets/Icons/google-podcast-neutral.svg +1 -0
- package/dist/assets/Icons/google-podcast.svg +1 -0
- package/dist/assets/Icons/google.svg +1 -0
- package/dist/assets/Icons/grip-horizontal.svg +1 -0
- package/dist/assets/Icons/grip-vertical.svg +1 -0
- package/dist/assets/Icons/hammer.svg +1 -0
- package/dist/assets/Icons/heart-pulse.svg +1 -0
- package/dist/assets/Icons/history.svg +1 -0
- package/dist/assets/Icons/home.svg +1 -0
- package/dist/assets/Icons/imo-neutral.svg +1 -0
- package/dist/assets/Icons/imo.svg +1 -0
- package/dist/assets/Icons/infinity.svg +1 -0
- package/dist/assets/Icons/info.svg +1 -0
- package/dist/assets/Icons/infobip-neutral.svg +1 -0
- package/dist/assets/Icons/infobip.svg +1 -0
- package/dist/assets/Icons/instagram-neutral.svg +1 -0
- package/dist/assets/Icons/instagram.svg +1 -0
- package/dist/assets/Icons/key-round.svg +1 -0
- package/dist/assets/Icons/key-square.svg +1 -0
- package/dist/assets/Icons/keyboard.svg +1 -0
- package/dist/assets/Icons/kickstarter-neutral.svg +1 -0
- package/dist/assets/Icons/kickstarter.svg +1 -0
- package/dist/assets/Icons/laptop.svg +1 -0
- package/dist/assets/Icons/layers.svg +1 -0
- package/dist/assets/Icons/layers2.svg +1 -0
- package/dist/assets/Icons/layers3.svg +1 -0
- package/dist/assets/Icons/layout-dashboard.svg +1 -0
- package/dist/assets/Icons/layout-grid.svg +1 -0
- package/dist/assets/Icons/layout-list.svg +1 -0
- package/dist/assets/Icons/layout-panel-left.svg +1 -0
- package/dist/assets/Icons/layout-panel-top.svg +1 -0
- package/dist/assets/Icons/layout-template.svg +1 -0
- package/dist/assets/Icons/library-big.svg +1 -0
- package/dist/assets/Icons/life-buoy.svg +1 -0
- package/dist/assets/Icons/lightbulb-off.svg +1 -0
- package/dist/assets/Icons/lightbulb.svg +1 -0
- package/dist/assets/Icons/line-neutral.svg +1 -0
- package/dist/assets/Icons/line.svg +1 -0
- package/dist/assets/Icons/link.svg +1 -0
- package/dist/assets/Icons/link2-off.svg +1 -0
- package/dist/assets/Icons/link2.svg +1 -0
- package/dist/assets/Icons/linkedin-neutral.svg +1 -0
- package/dist/assets/Icons/linkedin.svg +1 -0
- package/dist/assets/Icons/list-checks.svg +1 -0
- package/dist/assets/Icons/list-collapse.svg +1 -0
- package/dist/assets/Icons/list-filter.svg +1 -0
- package/dist/assets/Icons/list-minus.svg +1 -0
- package/dist/assets/Icons/list-ordered.svg +1 -0
- package/dist/assets/Icons/list-plus.svg +1 -0
- package/dist/assets/Icons/list-restart.svg +1 -0
- package/dist/assets/Icons/list-start.svg +1 -0
- package/dist/assets/Icons/list-todo.svg +1 -0
- package/dist/assets/Icons/list-tree.svg +1 -0
- package/dist/assets/Icons/list-video.svg +1 -0
- package/dist/assets/Icons/list-x.svg +1 -0
- package/dist/assets/Icons/list.svg +1 -0
- package/dist/assets/Icons/loader-circle.svg +1 -0
- package/dist/assets/Icons/loader.svg +1 -0
- package/dist/assets/Icons/lock-open.svg +1 -0
- package/dist/assets/Icons/lock.svg +1 -0
- package/dist/assets/Icons/log-in.svg +1 -0
- package/dist/assets/Icons/log-out.svg +1 -0
- package/dist/assets/Icons/mail-check.svg +1 -0
- package/dist/assets/Icons/mail-minus.svg +1 -0
- package/dist/assets/Icons/mail-open.svg +1 -0
- package/dist/assets/Icons/mail-plus.svg +1 -0
- package/dist/assets/Icons/mail-question.svg +1 -0
- package/dist/assets/Icons/mail-search.svg +1 -0
- package/dist/assets/Icons/mail-warning.svg +1 -0
- package/dist/assets/Icons/mail-x.svg +1 -0
- package/dist/assets/Icons/mail.svg +1 -0
- package/dist/assets/Icons/mailbox.svg +1 -0
- package/dist/assets/Icons/mailersend-neutral.svg +1 -0
- package/dist/assets/Icons/mailersend.svg +1 -0
- package/dist/assets/Icons/mailgun-neutral.svg +1 -0
- package/dist/assets/Icons/mailgun.svg +1 -0
- package/dist/assets/Icons/mailjet-neutral.svg +1 -0
- package/dist/assets/Icons/mailjet.svg +1 -0
- package/dist/assets/Icons/mails.svg +1 -0
- package/dist/assets/Icons/mailtrap-neutral.svg +1 -0
- package/dist/assets/Icons/mailtrap.svg +1 -0
- package/dist/assets/Icons/mandrill-neutral.svg +1 -0
- package/dist/assets/Icons/mandrill.svg +1 -0
- package/dist/assets/Icons/map-pin.svg +1 -0
- package/dist/assets/Icons/maqsam-neutral.svg +1 -0
- package/dist/assets/Icons/maqsam.svg +1 -0
- package/dist/assets/Icons/mattermost-neutral.svg +1 -0
- package/dist/assets/Icons/mattermost.svg +1 -0
- package/dist/assets/Icons/maximize.svg +1 -0
- package/dist/assets/Icons/maximize2.svg +1 -0
- package/dist/assets/Icons/medium-neutral.svg +1 -0
- package/dist/assets/Icons/medium.svg +1 -0
- package/dist/assets/Icons/megaphone-off.svg +1 -0
- package/dist/assets/Icons/megaphone.svg +1 -0
- package/dist/assets/Icons/menu.svg +1 -0
- package/dist/assets/Icons/merge.svg +1 -0
- package/dist/assets/Icons/message-square-code.svg +1 -0
- package/dist/assets/Icons/message-square-dashed.svg +1 -0
- package/dist/assets/Icons/message-square-diff.svg +1 -0
- package/dist/assets/Icons/message-square-dot.svg +1 -0
- package/dist/assets/Icons/message-square-heart.svg +1 -0
- package/dist/assets/Icons/message-square-off.svg +1 -0
- package/dist/assets/Icons/message-square-plus.svg +1 -0
- package/dist/assets/Icons/message-square-quote.svg +1 -0
- package/dist/assets/Icons/message-square-reply.svg +1 -0
- package/dist/assets/Icons/message-square-share.svg +1 -0
- package/dist/assets/Icons/message-square-text.svg +1 -0
- package/dist/assets/Icons/message-square-warning.svg +1 -0
- package/dist/assets/Icons/message-square-x.svg +1 -0
- package/dist/assets/Icons/message-square.svg +1 -0
- package/dist/assets/Icons/messages-square.svg +1 -0
- package/dist/assets/Icons/messenger-neutral.svg +1 -0
- package/dist/assets/Icons/messenger.svg +1 -0
- package/dist/assets/Icons/microsoft-neutral.svg +1 -0
- package/dist/assets/Icons/microsoft-teams-neutral.svg +1 -0
- package/dist/assets/Icons/microsoft-teams.svg +1 -0
- package/dist/assets/Icons/microsoft.svg +1 -0
- package/dist/assets/Icons/minimize.svg +1 -0
- package/dist/assets/Icons/minimize2.svg +1 -0
- package/dist/assets/Icons/minus.svg +1 -0
- package/dist/assets/Icons/moon.svg +1 -0
- package/dist/assets/Icons/mouse-pointer-ban.svg +1 -0
- package/dist/assets/Icons/mouse-pointer-click.svg +1 -0
- package/dist/assets/Icons/mouse-pointer.svg +1 -0
- package/dist/assets/Icons/mouse-pointer2.svg +1 -0
- package/dist/assets/Icons/mouse.svg +1 -0
- package/dist/assets/Icons/move-diagonal.svg +1 -0
- package/dist/assets/Icons/move-diagonal2.svg +1 -0
- package/dist/assets/Icons/move-down-left.svg +1 -0
- package/dist/assets/Icons/move-down-right.svg +1 -0
- package/dist/assets/Icons/move-down.svg +1 -0
- package/dist/assets/Icons/move-horizontal.svg +1 -0
- package/dist/assets/Icons/move-left.svg +1 -0
- package/dist/assets/Icons/move-right.svg +1 -0
- package/dist/assets/Icons/move-up-left.svg +1 -0
- package/dist/assets/Icons/move-up-right.svg +1 -0
- package/dist/assets/Icons/move-up.svg +1 -0
- package/dist/assets/Icons/move-vertical.svg +1 -0
- package/dist/assets/Icons/move3-d.svg +1 -0
- package/dist/assets/Icons/netcore-neutral.svg +1 -0
- package/dist/assets/Icons/netcore.svg +1 -0
- package/dist/assets/Icons/notebook-pen.svg +1 -0
- package/dist/assets/Icons/notebook-tabs.svg +1 -0
- package/dist/assets/Icons/notebook-text.svg +1 -0
- package/dist/assets/Icons/notebook.svg +1 -0
- package/dist/assets/Icons/notepad-text-dashed.svg +1 -0
- package/dist/assets/Icons/notepad-text.svg +1 -0
- package/dist/assets/Icons/notion-neutral.svg +1 -0
- package/dist/assets/Icons/notion.svg +1 -0
- package/dist/assets/Icons/octagon-alert.svg +1 -0
- package/dist/assets/Icons/octagon-pause.svg +1 -0
- package/dist/assets/Icons/octagon-x.svg +1 -0
- package/dist/assets/Icons/octagon.svg +1 -0
- package/dist/assets/Icons/ok-neutral.svg +1 -0
- package/dist/assets/Icons/ok-only-sign-neutral.svg +1 -0
- package/dist/assets/Icons/ok-only-sign.svg +1 -0
- package/dist/assets/Icons/ok.svg +1 -0
- package/dist/assets/Icons/onlyfans-neutral.svg +1 -0
- package/dist/assets/Icons/onlyfans.svg +1 -0
- package/dist/assets/Icons/option.svg +1 -0
- package/dist/assets/Icons/outlook365-neutral.svg +1 -0
- package/dist/assets/Icons/outlook365.svg +1 -0
- package/dist/assets/Icons/paintbrush.svg +1 -0
- package/dist/assets/Icons/panel-bottom-open.svg +1 -0
- package/dist/assets/Icons/panel-bottom.svg +1 -0
- package/dist/assets/Icons/panel-left-close.svg +1 -0
- package/dist/assets/Icons/panel-left-dashed.svg +1 -0
- package/dist/assets/Icons/panel-left-open.svg +1 -0
- package/dist/assets/Icons/panel-left.svg +1 -0
- package/dist/assets/Icons/panel-right-animated.svg +1 -0
- package/dist/assets/Icons/panel-right-close.svg +1 -0
- package/dist/assets/Icons/panel-right-dashed.svg +1 -0
- package/dist/assets/Icons/panel-right-open.svg +1 -0
- package/dist/assets/Icons/panel-right.svg +1 -0
- package/dist/assets/Icons/panel-top-bottom-dashed.svg +1 -0
- package/dist/assets/Icons/panel-top-close.svg +1 -0
- package/dist/assets/Icons/panel-top-open.svg +1 -0
- package/dist/assets/Icons/panel-top.svg +1 -0
- package/dist/assets/Icons/panels-left-bottom.svg +1 -0
- package/dist/assets/Icons/panels-right-bottom.svg +1 -0
- package/dist/assets/Icons/panels-top-left.svg +1 -0
- package/dist/assets/Icons/paperclip.svg +1 -0
- package/dist/assets/Icons/patreon-neutral.svg +1 -0
- package/dist/assets/Icons/patreon.svg +1 -0
- package/dist/assets/Icons/paypal-neutral.svg +1 -0
- package/dist/assets/Icons/paypal.svg +1 -0
- package/dist/assets/Icons/pen-line.svg +1 -0
- package/dist/assets/Icons/pen-off.svg +1 -0
- package/dist/assets/Icons/pen-tool.svg +1 -0
- package/dist/assets/Icons/pen.svg +1 -0
- package/dist/assets/Icons/pencil-line.svg +1 -0
- package/dist/assets/Icons/pencil-off.svg +1 -0
- package/dist/assets/Icons/pencil-ruler.svg +1 -0
- package/dist/assets/Icons/pencil.svg +1 -0
- package/dist/assets/Icons/pentagon.svg +1 -0
- package/dist/assets/Icons/percentage.svg +1 -0
- package/dist/assets/Icons/phone.svg +1 -0
- package/dist/assets/Icons/pin-off.svg +1 -0
- package/dist/assets/Icons/pin.svg +1 -0
- package/dist/assets/Icons/pinterest-neutral.svg +1 -0
- package/dist/assets/Icons/pinterest.svg +1 -0
- package/dist/assets/Icons/play.svg +1 -0
- package/dist/assets/Icons/plug.svg +1 -0
- package/dist/assets/Icons/plunk-neutral.svg +1 -0
- package/dist/assets/Icons/plunk.svg +1 -0
- package/dist/assets/Icons/plus.svg +1 -0
- package/dist/assets/Icons/postmark-neutral.svg +1 -0
- package/dist/assets/Icons/postmark.svg +1 -0
- package/dist/assets/Icons/product-hunt-neutral.svg +1 -0
- package/dist/assets/Icons/product-hunt.svg +1 -0
- package/dist/assets/Icons/quora-neutral.svg +1 -0
- package/dist/assets/Icons/quora.svg +1 -0
- package/dist/assets/Icons/quote.svg +1 -0
- package/dist/assets/Icons/radar.svg +1 -0
- package/dist/assets/Icons/reddit-neutral.svg +1 -0
- package/dist/assets/Icons/reddit.svg +1 -0
- package/dist/assets/Icons/redo-dot.svg +1 -0
- package/dist/assets/Icons/redo.svg +1 -0
- package/dist/assets/Icons/redo2.svg +1 -0
- package/dist/assets/Icons/refresh-ccw.svg +1 -0
- package/dist/assets/Icons/refresh-cw-off.svg +1 -0
- package/dist/assets/Icons/resend-neutral.svg +1 -0
- package/dist/assets/Icons/resend.svg +1 -0
- package/dist/assets/Icons/rss.svg +1 -0
- package/dist/assets/Icons/rules.svg +1 -0
- package/dist/assets/Icons/scan-line.svg +1 -0
- package/dist/assets/Icons/scroll-text.svg +1 -0
- package/dist/assets/Icons/search-hint.svg +1 -0
- package/dist/assets/Icons/search-x.svg +1 -0
- package/dist/assets/Icons/search.svg +1 -0
- package/dist/assets/Icons/sendgrid-neutral.svg +1 -0
- package/dist/assets/Icons/sendgrid.svg +1 -0
- package/dist/assets/Icons/server.svg +1 -0
- package/dist/assets/Icons/ses-neutral.svg +1 -0
- package/dist/assets/Icons/ses.svg +1 -0
- package/dist/assets/Icons/settings.svg +1 -0
- package/dist/assets/Icons/settings2.svg +1 -0
- package/dist/assets/Icons/shapes.svg +1 -0
- package/dist/assets/Icons/share.svg +1 -0
- package/dist/assets/Icons/sheet.svg +1 -0
- package/dist/assets/Icons/shield-alert.svg +1 -0
- package/dist/assets/Icons/shield-ban.svg +1 -0
- package/dist/assets/Icons/shield-check.svg +1 -0
- package/dist/assets/Icons/shield-ellipsis.svg +1 -0
- package/dist/assets/Icons/shield-half.svg +1 -0
- package/dist/assets/Icons/shield-minus.svg +1 -0
- package/dist/assets/Icons/shield-off.svg +1 -0
- package/dist/assets/Icons/shield-plus.svg +1 -0
- package/dist/assets/Icons/shield-question.svg +1 -0
- package/dist/assets/Icons/shield-user.svg +1 -0
- package/dist/assets/Icons/shield-x.svg +1 -0
- package/dist/assets/Icons/shield.svg +1 -0
- package/dist/assets/Icons/shift.svg +1 -0
- package/dist/assets/Icons/signal-neutral.svg +1 -0
- package/dist/assets/Icons/signal.svg +1 -0
- package/dist/assets/Icons/signpost.svg +1 -0
- package/dist/assets/Icons/sina-weibo-neutral.svg +1 -0
- package/dist/assets/Icons/sina-weibo.svg +1 -0
- package/dist/assets/Icons/skull.svg +1 -0
- package/dist/assets/Icons/skype-neutral.svg +1 -0
- package/dist/assets/Icons/skype.svg +1 -0
- package/dist/assets/Icons/slack-neutral.svg +1 -0
- package/dist/assets/Icons/slack.svg +1 -0
- package/dist/assets/Icons/sliders-horizontal.svg +1 -0
- package/dist/assets/Icons/sliders-vertical.svg +1 -0
- package/dist/assets/Icons/smtp-neutral.svg +1 -0
- package/dist/assets/Icons/smtp.svg +1 -0
- package/dist/assets/Icons/snapchat-neutral.svg +1 -0
- package/dist/assets/Icons/snapchat.svg +1 -0
- package/dist/assets/Icons/soundcloud-neutral.svg +1 -0
- package/dist/assets/Icons/soundcloud.svg +1 -0
- package/dist/assets/Icons/space.svg +1 -0
- package/dist/assets/Icons/sparkpost-neutral.svg +1 -0
- package/dist/assets/Icons/sparkpost.svg +1 -0
- package/dist/assets/Icons/speed.svg +1 -0
- package/dist/assets/Icons/split.svg +1 -0
- package/dist/assets/Icons/spotify-neutral.svg +1 -0
- package/dist/assets/Icons/spotify.svg +1 -0
- package/dist/assets/Icons/square-arrow-out-up-right.svg +1 -0
- package/dist/assets/Icons/square-minus.svg +1 -0
- package/dist/assets/Icons/square-pen.svg +1 -0
- package/dist/assets/Icons/square-plus.svg +1 -0
- package/dist/assets/Icons/square-user-round.svg +1 -0
- package/dist/assets/Icons/stack-overflow-neutral.svg +1 -0
- package/dist/assets/Icons/stack-overflow.svg +1 -0
- package/dist/assets/Icons/star.svg +1 -0
- package/dist/assets/Icons/sun.svg +1 -0
- package/dist/assets/Icons/syringe.svg +1 -0
- package/dist/assets/Icons/tag.svg +1 -0
- package/dist/assets/Icons/target.svg +1 -0
- package/dist/assets/Icons/teams-neutral.svg +1 -0
- package/dist/assets/Icons/teams.svg +1 -0
- package/dist/assets/Icons/telegram-neutral.svg +1 -0
- package/dist/assets/Icons/telegram-only-sign-neutral.svg +1 -0
- package/dist/assets/Icons/telegram-only-sign.svg +1 -0
- package/dist/assets/Icons/telegram.svg +1 -0
- package/dist/assets/Icons/terminal.svg +1 -0
- package/dist/assets/Icons/test-policies.svg +1 -0
- package/dist/assets/Icons/threads-neutral.svg +1 -0
- package/dist/assets/Icons/threads.svg +1 -0
- package/dist/assets/Icons/thumbs-down.svg +1 -0
- package/dist/assets/Icons/thumbs-up.svg +1 -0
- package/dist/assets/Icons/tiktok-neutral.svg +1 -0
- package/dist/assets/Icons/tiktok.svg +1 -0
- package/dist/assets/Icons/tinder-neutral.svg +1 -0
- package/dist/assets/Icons/tinder.svg +1 -0
- package/dist/assets/Icons/trash.svg +1 -0
- package/dist/assets/Icons/trash2.svg +1 -0
- package/dist/assets/Icons/triangle-alert.svg +1 -0
- package/dist/assets/Icons/tumblr-neutral.svg +1 -0
- package/dist/assets/Icons/tumblr.svg +1 -0
- package/dist/assets/Icons/twitch-neutral.svg +1 -0
- package/dist/assets/Icons/twitch.svg +1 -0
- package/dist/assets/Icons/undo-dot.svg +1 -0
- package/dist/assets/Icons/undo.svg +1 -0
- package/dist/assets/Icons/undo2.svg +1 -0
- package/dist/assets/Icons/unplug.svg +1 -0
- package/dist/assets/Icons/user-check.svg +1 -0
- package/dist/assets/Icons/user-minus.svg +1 -0
- package/dist/assets/Icons/user-plus.svg +1 -0
- package/dist/assets/Icons/user-round-x.svg +1 -0
- package/dist/assets/Icons/user-round.svg +1 -0
- package/dist/assets/Icons/user.svg +1 -0
- package/dist/assets/Icons/username.svg +1 -0
- package/dist/assets/Icons/users-round.svg +1 -0
- package/dist/assets/Icons/users.svg +1 -0
- package/dist/assets/Icons/viber-neutral.svg +1 -0
- package/dist/assets/Icons/viber.svg +1 -0
- package/dist/assets/Icons/video.svg +1 -0
- package/dist/assets/Icons/vimeo-neutral.svg +1 -0
- package/dist/assets/Icons/vimeo.svg +1 -0
- package/dist/assets/Icons/vk-music-neutral.svg +1 -0
- package/dist/assets/Icons/vk-music.svg +1 -0
- package/dist/assets/Icons/vk-neutral.svg +1 -0
- package/dist/assets/Icons/vk-only-sign-neutral.svg +1 -0
- package/dist/assets/Icons/vk-only-sign.svg +1 -0
- package/dist/assets/Icons/vk.svg +1 -0
- package/dist/assets/Icons/webhook-neutral.svg +1 -0
- package/dist/assets/Icons/webhook.svg +1 -0
- package/dist/assets/Icons/wechat-neutral.svg +1 -0
- package/dist/assets/Icons/wechat.svg +1 -0
- package/dist/assets/Icons/whatsapp-badge-neutral.svg +1 -0
- package/dist/assets/Icons/whatsapp-badge.svg +1 -0
- package/dist/assets/Icons/whatsapp-neutral.svg +1 -0
- package/dist/assets/Icons/whatsapp.svg +1 -0
- package/dist/assets/Icons/workflow.svg +1 -0
- package/dist/assets/Icons/wrap-text.svg +1 -0
- package/dist/assets/Icons/wrench.svg +1 -0
- package/dist/assets/Icons/x-ex-twitter-neutral.svg +1 -0
- package/dist/assets/Icons/x-ex-twitter.svg +1 -0
- package/dist/assets/Icons/x.svg +1 -0
- package/dist/assets/Icons/xing-neutral.svg +1 -0
- package/dist/assets/Icons/xing.svg +1 -0
- package/dist/assets/Icons/yandex-music-neutral.svg +1 -0
- package/dist/assets/Icons/yandex-music.svg +1 -0
- package/dist/assets/Icons/yelp-neutral.svg +1 -0
- package/dist/assets/Icons/yelp.svg +1 -0
- package/dist/assets/Icons/youtube-music-neutral.svg +1 -0
- package/dist/assets/Icons/youtube-music.svg +1 -0
- package/dist/assets/Icons/youtube-neutral.svg +1 -0
- package/dist/assets/Icons/youtube-shorts-neutral.svg +1 -0
- package/dist/assets/Icons/youtube-shorts.svg +1 -0
- package/dist/assets/Icons/youtube.svg +1 -0
- package/dist/assets/Icons/zap.svg +1 -0
- package/dist/assets/Icons/zoom-in.svg +1 -0
- package/dist/assets/Icons/zoom-neutral.svg +1 -0
- package/dist/assets/Icons/zoom-out.svg +1 -0
- package/dist/assets/Icons/zoom.svg +1 -0
- package/dist/assets/Icons/zulip-neutral.svg +1 -0
- package/dist/assets/Icons/zulip.svg +1 -0
- package/dist/assets/Logos/wallarm.svg +1 -0
- package/dist/assets.json +4666 -0
- package/dist/project/README.md +265 -0
- package/dist/project/components/Accordion/README.md +354 -0
- package/dist/project/components/Accordion/preview.html +2 -0
- package/dist/project/components/Accordion/stories.js +12 -0
- package/dist/project/components/AgentAvatar/README.md +127 -0
- package/dist/project/components/AgentAvatar/preview.html +2 -0
- package/dist/project/components/AgentAvatar/stories.js +12 -0
- package/dist/project/components/AgentAvatar/stories.md +1805 -0
- package/dist/project/components/AgentGlyph/README.md +1182 -0
- package/dist/project/components/AgentGlyph/preview.html +2 -0
- package/dist/project/components/AgentGlyph/stories.js +12 -0
- package/dist/project/components/AgentLookBuilder/README.md +269 -0
- package/dist/project/components/AgentLookBuilder/preview.html +2 -0
- package/dist/project/components/AgentLookBuilder/stories.js +12 -0
- package/dist/project/components/Alert/README.md +492 -0
- package/dist/project/components/Alert/preview.html +2 -0
- package/dist/project/components/Alert/stories.js +12 -0
- package/dist/project/components/AnimatedBackground/README.md +124 -0
- package/dist/project/components/AnimatedBackground/preview.html +2 -0
- package/dist/project/components/AnimatedBackground/stories.js +12 -0
- package/dist/project/components/AppShell/README.md +75 -0
- package/dist/project/components/AppShell/preview.html +2 -0
- package/dist/project/components/AppShell/stories.js +28 -0
- package/dist/project/components/AppShell/stories.md +2878 -0
- package/dist/project/components/ApprovalCard/README.md +353 -0
- package/dist/project/components/ApprovalCard/preview.html +2 -0
- package/dist/project/components/ApprovalCard/stories.js +12 -0
- package/dist/project/components/AreaChart/README.md +673 -0
- package/dist/project/components/AreaChart/preview.html +2 -0
- package/dist/project/components/AreaChart/stories.js +12 -0
- package/dist/project/components/AssistantMessage/README.md +724 -0
- package/dist/project/components/AssistantMessage/preview.html +2 -0
- package/dist/project/components/AssistantMessage/stories.js +55 -0
- package/dist/project/components/Attribute/README.md +1174 -0
- package/dist/project/components/Attribute/preview.html +2 -0
- package/dist/project/components/Attribute/stories.js +12 -0
- package/dist/project/components/Avatar/README.md +416 -0
- package/dist/project/components/Avatar/preview.html +2 -0
- package/dist/project/components/Avatar/stories.js +12 -0
- package/dist/project/components/Badge/README.md +853 -0
- package/dist/project/components/Badge/preview.html +2 -0
- package/dist/project/components/Badge/stories.js +12 -0
- package/dist/project/components/Banner/README.md +341 -0
- package/dist/project/components/Banner/preview.html +2 -0
- package/dist/project/components/Banner/stories.js +12 -0
- package/dist/project/components/BarList/README.md +757 -0
- package/dist/project/components/BarList/preview.html +2 -0
- package/dist/project/components/BarList/stories.js +12 -0
- package/dist/project/components/Breadcrumbs/README.md +274 -0
- package/dist/project/components/Breadcrumbs/preview.html +2 -0
- package/dist/project/components/Breadcrumbs/stories.js +12 -0
- package/dist/project/components/BulkBar/README.md +19 -0
- package/dist/project/components/Button/README.md +467 -0
- package/dist/project/components/Button/preview.html +2 -0
- package/dist/project/components/Button/stories.js +12 -0
- package/dist/project/components/Calendar/README.md +654 -0
- package/dist/project/components/Calendar/preview.html +2 -0
- package/dist/project/components/Calendar/stories.js +12 -0
- package/dist/project/components/Card/README.md +367 -0
- package/dist/project/components/Card/preview.html +2 -0
- package/dist/project/components/Card/stories.js +12 -0
- package/dist/project/components/ChainOfThought/README.md +412 -0
- package/dist/project/components/ChainOfThought/preview.html +2 -0
- package/dist/project/components/ChainOfThought/stories.js +12 -0
- package/dist/project/components/Chart/README.md +224 -0
- package/dist/project/components/Chart/preview.html +2 -0
- package/dist/project/components/Chart/stories.js +12 -0
- package/dist/project/components/Chat/README.md +1244 -0
- package/dist/project/components/Chat/preview.html +2 -0
- package/dist/project/components/Chat/stories.js +12 -0
- package/dist/project/components/ChatInput/README.md +378 -0
- package/dist/project/components/ChatInput/preview.html +2 -0
- package/dist/project/components/ChatInput/stories.js +12 -0
- package/dist/project/components/ChatPermissions/README.md +218 -0
- package/dist/project/components/ChatPermissions/preview.html +2 -0
- package/dist/project/components/ChatPermissions/stories.js +12 -0
- package/dist/project/components/Checkbox/README.md +367 -0
- package/dist/project/components/Checkbox/preview.html +2 -0
- package/dist/project/components/Checkbox/stories.js +12 -0
- package/dist/project/components/Code/README.md +243 -0
- package/dist/project/components/Code/preview.html +2 -0
- package/dist/project/components/Code/stories.js +12 -0
- package/dist/project/components/CodeEditor/README.md +280 -0
- package/dist/project/components/CodeEditor/preview.html +2 -0
- package/dist/project/components/CodeEditor/stories.js +162 -0
- package/dist/project/components/CodeEditor/stories.md +1533 -0
- package/dist/project/components/CodeSnippet/README.md +1352 -0
- package/dist/project/components/CodeSnippet/preview.html +2 -0
- package/dist/project/components/CodeSnippet/stories.js +156 -0
- package/dist/project/components/ColumnChart/README.md +521 -0
- package/dist/project/components/ColumnChart/preview.html +2 -0
- package/dist/project/components/ColumnChart/stories.js +12 -0
- package/dist/project/components/Conversation/README.md +314 -0
- package/dist/project/components/Conversation/preview.html +2 -0
- package/dist/project/components/Conversation/stories.js +12 -0
- package/dist/project/components/Copyable/README.md +406 -0
- package/dist/project/components/Copyable/preview.html +2 -0
- package/dist/project/components/Copyable/stories.js +12 -0
- package/dist/project/components/Country/README.md +226 -0
- package/dist/project/components/Country/preview.html +2 -0
- package/dist/project/components/Country/stories.js +12 -0
- package/dist/project/components/Cover/preview.html +43 -0
- package/dist/project/components/DateInput/README.md +458 -0
- package/dist/project/components/DateInput/preview.html +2 -0
- package/dist/project/components/DateInput/stories.js +12 -0
- package/dist/project/components/DateRangeInput/README.md +412 -0
- package/dist/project/components/DateRangeInput/preview.html +2 -0
- package/dist/project/components/DateRangeInput/stories.js +12 -0
- package/dist/project/components/Dialog/README.md +1140 -0
- package/dist/project/components/Dialog/preview.html +2 -0
- package/dist/project/components/Dialog/stories.js +12 -0
- package/dist/project/components/Drawer/README.md +1163 -0
- package/dist/project/components/Drawer/preview.html +2 -0
- package/dist/project/components/Drawer/stories.js +12 -0
- package/dist/project/components/DropdownMenu/README.md +678 -0
- package/dist/project/components/DropdownMenu/preview.html +2 -0
- package/dist/project/components/DropdownMenu/stories.js +12 -0
- package/dist/project/components/EmptyState/README.md +276 -0
- package/dist/project/components/EmptyState/preview.html +2 -0
- package/dist/project/components/EmptyState/stories.js +12 -0
- package/dist/project/components/FeedbackPulse/README.md +125 -0
- package/dist/project/components/FeedbackPulse/preview.html +2 -0
- package/dist/project/components/FeedbackPulse/stories.js +12 -0
- package/dist/project/components/Field/README.md +676 -0
- package/dist/project/components/Field/preview.html +2 -0
- package/dist/project/components/Field/stories.js +12 -0
- package/dist/project/components/FileUpload/README.md +544 -0
- package/dist/project/components/FileUpload/preview.html +2 -0
- package/dist/project/components/FileUpload/stories.js +12 -0
- package/dist/project/components/FilterCascade/README.md +348 -0
- package/dist/project/components/FilterCascade/preview.html +2 -0
- package/dist/project/components/FilterCascade/stories.js +12 -0
- package/dist/project/components/FilterDropdown/README.md +542 -0
- package/dist/project/components/FilterDropdown/preview.html +2 -0
- package/dist/project/components/FilterDropdown/stories.js +12 -0
- package/dist/project/components/FilterInput/README.md +416 -0
- package/dist/project/components/FilterInput/preview.html +2 -0
- package/dist/project/components/FilterInput/stories.js +12 -0
- package/dist/project/components/FilterInput/stories.md +6682 -0
- package/dist/project/components/Flex/README.md +225 -0
- package/dist/project/components/Flex/preview.html +2 -0
- package/dist/project/components/Flex/stories.js +12 -0
- package/dist/project/components/FormatDateTime/README.md +315 -0
- package/dist/project/components/FormatDateTime/preview.html +2 -0
- package/dist/project/components/FormatDateTime/stories.js +12 -0
- package/dist/project/components/FormatNumber/README.md +317 -0
- package/dist/project/components/FormatNumber/preview.html +2 -0
- package/dist/project/components/FormatNumber/stories.js +12 -0
- package/dist/project/components/Heading/README.md +240 -0
- package/dist/project/components/Heading/preview.html +2 -0
- package/dist/project/components/Heading/stories.js +12 -0
- package/dist/project/components/HorizontalBarStack/README.md +281 -0
- package/dist/project/components/HorizontalBarStack/preview.html +2 -0
- package/dist/project/components/HorizontalBarStack/stories.js +12 -0
- package/dist/project/components/HttpMethod/README.md +137 -0
- package/dist/project/components/HttpMethod/preview.html +2 -0
- package/dist/project/components/HttpMethod/stories.js +12 -0
- package/dist/project/components/ImageCropper/README.md +332 -0
- package/dist/project/components/ImageCropper/preview.html +2 -0
- package/dist/project/components/ImageCropper/stories.js +33 -0
- package/dist/project/components/Indicator/README.md +110 -0
- package/dist/project/components/Indicator/preview.html +2 -0
- package/dist/project/components/Indicator/stories.js +12 -0
- package/dist/project/components/InlineEdit/README.md +977 -0
- package/dist/project/components/InlineEdit/preview.html +2 -0
- package/dist/project/components/InlineEdit/stories.js +12 -0
- package/dist/project/components/Input/README.md +187 -0
- package/dist/project/components/Input/preview.html +2 -0
- package/dist/project/components/Input/stories.js +12 -0
- package/dist/project/components/InputGroup/README.md +423 -0
- package/dist/project/components/InputGroup/preview.html +2 -0
- package/dist/project/components/InputGroup/stories.js +12 -0
- package/dist/project/components/InputOTP/README.md +201 -0
- package/dist/project/components/InputOTP/preview.html +2 -0
- package/dist/project/components/InputOTP/stories.js +12 -0
- package/dist/project/components/Ip/README.md +226 -0
- package/dist/project/components/Ip/preview.html +2 -0
- package/dist/project/components/Ip/stories.js +12 -0
- package/dist/project/components/Kbd/README.md +126 -0
- package/dist/project/components/Kbd/preview.html +2 -0
- package/dist/project/components/Kbd/stories.js +12 -0
- package/dist/project/components/LineChart/README.md +1479 -0
- package/dist/project/components/LineChart/preview.html +2 -0
- package/dist/project/components/LineChart/stories.js +12 -0
- package/dist/project/components/Link/README.md +160 -0
- package/dist/project/components/Link/preview.html +2 -0
- package/dist/project/components/Link/stories.js +12 -0
- package/dist/project/components/List/README.md +181 -0
- package/dist/project/components/List/preview.html +2 -0
- package/dist/project/components/List/stories.js +12 -0
- package/dist/project/components/Loader/README.md +145 -0
- package/dist/project/components/Loader/preview.html +2 -0
- package/dist/project/components/Loader/stories.js +12 -0
- package/dist/project/components/Logo/README.md +183 -0
- package/dist/project/components/Logo/preview.html +2 -0
- package/dist/project/components/Logo/stories.js +12 -0
- package/dist/project/components/MessageActions/README.md +255 -0
- package/dist/project/components/MessageActions/preview.html +2 -0
- package/dist/project/components/MessageActions/stories.js +12 -0
- package/dist/project/components/Metric/README.md +324 -0
- package/dist/project/components/Metric/preview.html +2 -0
- package/dist/project/components/Metric/stories.js +12 -0
- package/dist/project/components/NavRail/README.md +25 -0
- package/dist/project/components/NotificationCenter/README.md +91 -0
- package/dist/project/components/NotificationCenter/preview.html +2 -0
- package/dist/project/components/NotificationCenter/stories.js +12 -0
- package/dist/project/components/NotificationCenter/stories.md +2170 -0
- package/dist/project/components/NumberInput/README.md +177 -0
- package/dist/project/components/NumberInput/preview.html +2 -0
- package/dist/project/components/NumberInput/stories.js +12 -0
- package/dist/project/components/NumericBadge/README.md +252 -0
- package/dist/project/components/NumericBadge/preview.html +2 -0
- package/dist/project/components/NumericBadge/stories.js +12 -0
- package/dist/project/components/OverflowList/README.md +324 -0
- package/dist/project/components/OverflowList/preview.html +2 -0
- package/dist/project/components/OverflowList/stories.js +12 -0
- package/dist/project/components/OverflowTooltip/README.md +421 -0
- package/dist/project/components/OverflowTooltip/preview.html +2 -0
- package/dist/project/components/OverflowTooltip/stories.js +12 -0
- package/dist/project/components/Overlay/README.md +95 -0
- package/dist/project/components/Overlay/preview.html +2 -0
- package/dist/project/components/Overlay/stories.js +12 -0
- package/dist/project/components/Overview/README.md +445 -0
- package/dist/project/components/Overview/preview.html +2 -0
- package/dist/project/components/Overview/stories.js +12 -0
- package/dist/project/components/Page/README.md +215 -0
- package/dist/project/components/Page/preview.html +2 -0
- package/dist/project/components/Page/stories.js +12 -0
- package/dist/project/components/Pagination/README.md +302 -0
- package/dist/project/components/Pagination/preview.html +2 -0
- package/dist/project/components/Pagination/stories.js +12 -0
- package/dist/project/components/ParameterPath/README.md +284 -0
- package/dist/project/components/ParameterPath/preview.html +2 -0
- package/dist/project/components/ParameterPath/stories.js +12 -0
- package/dist/project/components/PasswordComplexity/README.md +171 -0
- package/dist/project/components/PasswordComplexity/preview.html +2 -0
- package/dist/project/components/PasswordComplexity/stories.js +12 -0
- package/dist/project/components/PasswordInput/README.md +254 -0
- package/dist/project/components/PasswordInput/preview.html +2 -0
- package/dist/project/components/PasswordInput/stories.js +12 -0
- package/dist/project/components/PieChart/README.md +895 -0
- package/dist/project/components/PieChart/preview.html +2 -0
- package/dist/project/components/PieChart/stories.js +12 -0
- package/dist/project/components/Popover/README.md +282 -0
- package/dist/project/components/Popover/preview.html +2 -0
- package/dist/project/components/Popover/stories.js +12 -0
- package/dist/project/components/Progress/README.md +174 -0
- package/dist/project/components/Progress/preview.html +2 -0
- package/dist/project/components/Progress/stories.js +12 -0
- package/dist/project/components/Radio/README.md +264 -0
- package/dist/project/components/Radio/preview.html +2 -0
- package/dist/project/components/Radio/stories.js +12 -0
- package/dist/project/components/RemoteShell/README.md +1758 -0
- package/dist/project/components/RemoteShell/preview.html +2 -0
- package/dist/project/components/RemoteShell/stories.js +28 -0
- package/dist/project/components/Resizable/README.md +290 -0
- package/dist/project/components/Resizable/preview.html +2 -0
- package/dist/project/components/Resizable/stories.js +12 -0
- package/dist/project/components/ResponseCode/README.md +205 -0
- package/dist/project/components/ResponseCode/preview.html +2 -0
- package/dist/project/components/ResponseCode/stories.js +12 -0
- package/dist/project/components/ScrollArea/README.md +234 -0
- package/dist/project/components/ScrollArea/preview.html +2 -0
- package/dist/project/components/ScrollArea/stories.js +12 -0
- package/dist/project/components/SearchInput/README.md +158 -0
- package/dist/project/components/SearchInput/preview.html +2 -0
- package/dist/project/components/SearchInput/stories.js +12 -0
- package/dist/project/components/SearchModal/README.md +836 -0
- package/dist/project/components/SearchModal/preview.html +2 -0
- package/dist/project/components/SearchModal/stories.js +12 -0
- package/dist/project/components/SegmentedControl/README.md +382 -0
- package/dist/project/components/SegmentedControl/preview.html +2 -0
- package/dist/project/components/SegmentedControl/stories.js +12 -0
- package/dist/project/components/SegmentedTabs/README.md +390 -0
- package/dist/project/components/SegmentedTabs/preview.html +2 -0
- package/dist/project/components/SegmentedTabs/stories.js +12 -0
- package/dist/project/components/Select/README.md +1311 -0
- package/dist/project/components/Select/preview.html +2 -0
- package/dist/project/components/Select/stories.js +12 -0
- package/dist/project/components/Selection/README.md +648 -0
- package/dist/project/components/Selection/preview.html +2 -0
- package/dist/project/components/Selection/stories.js +12 -0
- package/dist/project/components/Separator/README.md +77 -0
- package/dist/project/components/Separator/preview.html +2 -0
- package/dist/project/components/Separator/stories.js +12 -0
- package/dist/project/components/Skeleton/README.md +358 -0
- package/dist/project/components/Skeleton/preview.html +2 -0
- package/dist/project/components/Skeleton/stories.js +12 -0
- package/dist/project/components/Slider/README.md +433 -0
- package/dist/project/components/Slider/preview.html +2 -0
- package/dist/project/components/Slider/stories.js +12 -0
- package/dist/project/components/SplashScreen/README.md +192 -0
- package/dist/project/components/SplashScreen/preview.html +2 -0
- package/dist/project/components/SplashScreen/stories.js +12 -0
- package/dist/project/components/SplitButton/README.md +402 -0
- package/dist/project/components/SplitButton/preview.html +2 -0
- package/dist/project/components/SplitButton/stories.js +12 -0
- package/dist/project/components/Stack/README.md +269 -0
- package/dist/project/components/Stack/preview.html +2 -0
- package/dist/project/components/Stack/stories.js +12 -0
- package/dist/project/components/Stepper/README.md +682 -0
- package/dist/project/components/Stepper/preview.html +2 -0
- package/dist/project/components/Stepper/stories.js +12 -0
- package/dist/project/components/Switch/README.md +236 -0
- package/dist/project/components/Switch/preview.html +2 -0
- package/dist/project/components/Switch/stories.js +12 -0
- package/dist/project/components/Table/README.md +471 -0
- package/dist/project/components/Table/preview.html +2 -0
- package/dist/project/components/Table/stories.js +12 -0
- package/dist/project/components/Table/stories.md +3697 -0
- package/dist/project/components/Tabs/README.md +443 -0
- package/dist/project/components/Tabs/preview.html +2 -0
- package/dist/project/components/Tabs/stories.js +12 -0
- package/dist/project/components/Tag/README.md +324 -0
- package/dist/project/components/Tag/preview.html +2 -0
- package/dist/project/components/Tag/stories.js +12 -0
- package/dist/project/components/Text/README.md +200 -0
- package/dist/project/components/Text/preview.html +2 -0
- package/dist/project/components/Text/stories.js +12 -0
- package/dist/project/components/Textarea/README.md +273 -0
- package/dist/project/components/Textarea/preview.html +2 -0
- package/dist/project/components/Textarea/stories.js +12 -0
- package/dist/project/components/TimeInput/README.md +359 -0
- package/dist/project/components/TimeInput/preview.html +2 -0
- package/dist/project/components/TimeInput/stories.js +12 -0
- package/dist/project/components/Timeline/README.md +204 -0
- package/dist/project/components/Timeline/preview.html +2 -0
- package/dist/project/components/Timeline/stories.js +12 -0
- package/dist/project/components/Toast/README.md +718 -0
- package/dist/project/components/Toast/preview.html +2 -0
- package/dist/project/components/Toast/stories.js +12 -0
- package/dist/project/components/ToggleButton/README.md +292 -0
- package/dist/project/components/ToggleButton/preview.html +2 -0
- package/dist/project/components/ToggleButton/stories.js +12 -0
- package/dist/project/components/Tooltip/README.md +199 -0
- package/dist/project/components/Tooltip/preview.html +2 -0
- package/dist/project/components/Tooltip/stories.js +12 -0
- package/dist/project/components/TopHeader/README.md +21 -0
- package/dist/project/components/Tour/README.md +532 -0
- package/dist/project/components/Tour/preview.html +2 -0
- package/dist/project/components/Tour/stories.js +12 -0
- package/dist/project/components/Tree/README.md +450 -0
- package/dist/project/components/Tree/preview.html +2 -0
- package/dist/project/components/Tree/stories.js +12 -0
- package/dist/project/components/TreeView/README.md +531 -0
- package/dist/project/components/TreeView/preview.html +2 -0
- package/dist/project/components/TreeView/stories.js +12 -0
- package/dist/project/components/UTILITIES.md +647 -0
- package/dist/project/components/UserMessage/README.md +166 -0
- package/dist/project/components/UserMessage/preview.html +2 -0
- package/dist/project/components/UserMessage/stories.js +12 -0
- package/dist/project/components/UtilityPage/README.md +147 -0
- package/dist/project/components/UtilityPage/preview.html +2 -0
- package/dist/project/components/UtilityPage/stories.js +12 -0
- package/dist/project/components/WallyAssistant/README.md +1380 -0
- package/dist/project/components/WallyAssistant/preview.html +2 -0
- package/dist/project/components/WallyAssistant/stories.js +12 -0
- package/dist/project/components/WallyIcon/README.md +130 -0
- package/dist/project/components/WallyIcon/preview.html +2 -0
- package/dist/project/components/WallyIcon/stories.js +12 -0
- package/dist/project/components/WallySkeleton/README.md +96 -0
- package/dist/project/components/WallySkeleton/preview.html +2 -0
- package/dist/project/components/WallySkeleton/stories.js +12 -0
- package/dist/project/components/bundle.css +18734 -0
- package/dist/project/components/bundle.js +167 -0
- package/dist/project/components/index.d.ts +27226 -0
- package/dist/project/design-system.json +35 -0
- package/dist/project/fonts/Geist-Variable.woff2 +0 -0
- package/dist/project/fonts/GeistMono-Variable.woff2 +0 -0
- package/dist/project/fonts/GeistPixel-Square.woff2 +0 -0
- package/dist/project/sampler.dc.html +238 -0
- package/dist/project/tokens.css +1395 -0
- package/dist/project/tokens.json +5235 -0
- package/dist/wallarm-sampler.dc.html +239 -0
- package/package.json +67 -3
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
Sets an approximate, bounded value by dragging along a track — reach for `NumberInput` when the exact figure matters, since a slider is faster to move than it is to land. A slider should always show its value: pair it with `SliderInput` for entry, or `SliderValue` for a readout. It implies a continuum, so a few fixed choices belong in `SegmentedControl`, `Radio` or `Select`, and on/off in `Switch`.
|
|
2
|
+
|
|
3
|
+
## Props as canvas attributes
|
|
4
|
+
|
|
5
|
+
Use kebab-case attribute names. Pass non-string values through renderVals holes, including booleans. The full emitted API is in `components/index.d.ts`.
|
|
6
|
+
|
|
7
|
+
| Attribute | Type | Required | Default | Description |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| `error` | `boolean \| undefined` | no | `false` | Error state → maps to Ark `invalid` (repaints the handle; the message is the Field's job). |
|
|
10
|
+
| `on-value-change` | `((value: number[]) => void) \| undefined` | no | — | Fires live during drag with the current value array (`[n]` single, `[low, high]` range). |
|
|
11
|
+
| `on-value-change-end` | `((value: number[]) => void) \| undefined` | no | — | Fires once on drag release with the committed value array. |
|
|
12
|
+
| `form` | `string \| undefined` | no | — | The associate form of the underlying input element. |
|
|
13
|
+
| `default-value` | `number[] \| undefined` | no | `[50]` | The initial value of the slider when rendered. Use when you don't need to control the value of the slider. |
|
|
14
|
+
| `disabled` | `boolean \| undefined` | no | — | Whether the slider is disabled |
|
|
15
|
+
| `name` | `string \| undefined` | no | — | The name associated with each slider thumb (when used in a form) |
|
|
16
|
+
| `value` | `number[] \| undefined` | no | — | The controlled value of the slider |
|
|
17
|
+
| `max` | `number \| undefined` | no | — | The maximum value of the slider |
|
|
18
|
+
| `min` | `number \| undefined` | no | — | The minimum value of the slider |
|
|
19
|
+
| `read-only` | `boolean \| undefined` | no | — | Whether the slider is read-only |
|
|
20
|
+
| `step` | `number \| undefined` | no | — | The step value of the slider |
|
|
21
|
+
| `get-aria-value-text` | `((details: ValueTextDetails) => string) \| undefined` | no | — | Function that returns a human readable value for the slider thumb |
|
|
22
|
+
| `min-steps-between-thumbs` | `number \| undefined` | no | — | The minimum permitted steps between multiple thumbs. `minStepsBetweenThumbs` * `step` should reflect the gap between the thumbs. - `step: 1` and `minStepsBetweenThumbs: 10` => gap is `10` - `step: 10` and `minStepsBetweenThumbs: 2` => gap is `20` |
|
|
23
|
+
| `thumb-collision-behavior` | `"none" \| "push" \| "swap" \| undefined` | no | — | Controls how thumbs behave when they collide during pointer interactions. - `none` (default): Thumbs cannot move past each other; excess movement is ignored. - `push`: Thumbs push each other without restoring their previous positions when dragged back. - `swap`: Thumbs swap places when dragged past each other. |
|
|
24
|
+
| `data-testid` | `string \| undefined` | no | — | |
|
|
25
|
+
|
|
26
|
+
## Sub-components
|
|
27
|
+
|
|
28
|
+
- `WallarmDS.SliderControl` — `SliderControlProps` in the declaration bundle.
|
|
29
|
+
- `WallarmDS.SliderInput` — `SliderInputProps` in the declaration bundle.
|
|
30
|
+
- `WallarmDS.SliderMarks` — `SliderMarksProps` in the declaration bundle.
|
|
31
|
+
- `WallarmDS.SliderThumb` — `SliderThumbProps` in the declaration bundle.
|
|
32
|
+
- `WallarmDS.SliderValue` — `SliderValueProps` in the declaration bundle.
|
|
33
|
+
|
|
34
|
+
## Stories
|
|
35
|
+
|
|
36
|
+
### Basic
|
|
37
|
+
|
|
38
|
+
One handle on a track: arrow keys move by `step`, Page keys jump further, and Home and End go
|
|
39
|
+
to the bounds. `SliderThumb` is the real interactive node, so `aria-label` and analytics
|
|
40
|
+
attributes go on it, and its focus reuses the hover emphasis instead of drawing a ring.
|
|
41
|
+
|
|
42
|
+
Source: Slider/Slider.stories.tsx#Basic
|
|
43
|
+
|
|
44
|
+
### Range
|
|
45
|
+
|
|
46
|
+
Two entries in the value make two thumbs; render one `SliderThumb` per entry. The thumbs
|
|
47
|
+
cannot cross, so the pair always reads as a valid range.
|
|
48
|
+
|
|
49
|
+
Source: Slider/Slider.stories.tsx#Range
|
|
50
|
+
|
|
51
|
+
### Ticks
|
|
52
|
+
|
|
53
|
+
`SliderMarks` draws ticks along the scale. Keep `step` aligned to the marks, or the handle
|
|
54
|
+
lands between them and the ticks stop meaning anything.
|
|
55
|
+
|
|
56
|
+
Source: Slider/Slider.stories.tsx#Ticks
|
|
57
|
+
|
|
58
|
+
### TicksWithoutSnapping
|
|
59
|
+
|
|
60
|
+
The same marks used purely for orientation, with `step` finer than their spacing. Choose this
|
|
61
|
+
when the marks are a guide rather than the only valid answers.
|
|
62
|
+
|
|
63
|
+
Source: Slider/Slider.stories.tsx#TicksWithoutSnapping
|
|
64
|
+
|
|
65
|
+
### Labeled
|
|
66
|
+
|
|
67
|
+
Marks carrying text, for a scale whose steps are named rather than numeric. The handle snaps
|
|
68
|
+
to the labelled positions and announces the label rather than the number, so keep it to a
|
|
69
|
+
handful of rungs.
|
|
70
|
+
|
|
71
|
+
Source: Slider/Slider.stories.tsx#Labeled
|
|
72
|
+
|
|
73
|
+
### WithTooltip
|
|
74
|
+
|
|
75
|
+
`tooltip` on a `SliderThumb` shows the value while dragging, then hides it. It suits a value
|
|
76
|
+
only checked mid-gesture; anything needed afterwards wants a persistent readout instead,
|
|
77
|
+
never both.
|
|
78
|
+
|
|
79
|
+
Source: Slider/Slider.stories.tsx#WithTooltip
|
|
80
|
+
|
|
81
|
+
### WithInput
|
|
82
|
+
|
|
83
|
+
`SliderInput` is the precision escape hatch: the track for approximate moves, the field for
|
|
84
|
+
an exact figure. Typing commits on blur or Enter rather than live, so clamping never fights a
|
|
85
|
+
half-typed number.
|
|
86
|
+
|
|
87
|
+
Source: Slider/Slider.stories.tsx#WithInput
|
|
88
|
+
|
|
89
|
+
### RangeWithInput
|
|
90
|
+
|
|
91
|
+
A field at each end, low on the left and high on the right. Neither crosses the other, so the
|
|
92
|
+
fields cannot produce a range the track could not.
|
|
93
|
+
|
|
94
|
+
Source: Slider/Slider.stories.tsx#RangeWithInput
|
|
95
|
+
|
|
96
|
+
### Disabled
|
|
97
|
+
|
|
98
|
+
The whole control dims and stops responding, handle included. The value stays legible,
|
|
99
|
+
because a locked setting is usually one the reader still needs to read.
|
|
100
|
+
|
|
101
|
+
Source: Slider/Slider.stories.tsx#Disabled
|
|
102
|
+
|
|
103
|
+
### InField
|
|
104
|
+
|
|
105
|
+
Wrapped in `Field`, which is the form-field shape. The slider reads that context, so the
|
|
106
|
+
label and error attach without being passed anything.
|
|
107
|
+
|
|
108
|
+
Source: Slider/Slider.stories.tsx#InField
|
|
109
|
+
|
|
110
|
+
### FieldWithError
|
|
111
|
+
|
|
112
|
+
`invalid` on the `Field` cascades to the handle. The message is `FieldError`'s job, and it
|
|
113
|
+
matters here because a slider cannot show a wrong value the way a text field can.
|
|
114
|
+
|
|
115
|
+
Source: Slider/Slider.stories.tsx#FieldWithError
|
|
116
|
+
|
|
117
|
+
### FieldWithValue
|
|
118
|
+
|
|
119
|
+
The value beside the label, which is the readout Figma draws for a slider in a form — value
|
|
120
|
+
beside label is the drawn default, not one option among several.
|
|
121
|
+
|
|
122
|
+
Source: Slider/Slider.stories.tsx#FieldWithValue
|
|
123
|
+
|
|
124
|
+
### RangeFieldWithValue
|
|
125
|
+
|
|
126
|
+
Both ends beside the label, comma-separated. For a range this is the only way to read the
|
|
127
|
+
value without hovering each thumb.
|
|
128
|
+
|
|
129
|
+
Source: Slider/Slider.stories.tsx#RangeFieldWithValue
|
|
130
|
+
|
|
131
|
+
### WithValueReadout
|
|
132
|
+
|
|
133
|
+
`SliderValue` reads the slider's own context, so a live readout needs no controlled state of
|
|
134
|
+
its own.
|
|
135
|
+
|
|
136
|
+
Source: Slider/Slider.stories.tsx#WithValueReadout
|
|
137
|
+
|
|
138
|
+
## Story sources
|
|
139
|
+
|
|
140
|
+
### Slider/Slider.stories.tsx
|
|
141
|
+
|
|
142
|
+
```tsx
|
|
143
|
+
import { useState } from 'react';
|
|
144
|
+
import type { Meta, StoryFn } from 'storybook-react-rsbuild';
|
|
145
|
+
import { Field, FieldDescription, FieldError, FieldLabel } from '../Field';
|
|
146
|
+
import { Slider, type SliderProps } from './Slider';
|
|
147
|
+
import { SliderControl } from './SliderControl';
|
|
148
|
+
import { SliderInput } from './SliderInput';
|
|
149
|
+
import { SliderMarks } from './SliderMarks';
|
|
150
|
+
import { SliderThumb } from './SliderThumb';
|
|
151
|
+
import { SliderValue } from './SliderValue';
|
|
152
|
+
|
|
153
|
+
const DESCRIPTION = [
|
|
154
|
+
'Sets an approximate, bounded value by dragging along a track — reach for `NumberInput` when the exact figure matters, since a slider is faster to move than it is to land.',
|
|
155
|
+
'A slider should always show its value: pair it with `SliderInput` for entry, or `SliderValue` for a readout.',
|
|
156
|
+
'It implies a continuum, so a few fixed choices belong in `SegmentedControl`, `Radio` or `Select`, and on/off in `Switch`.',
|
|
157
|
+
].join(' ');
|
|
158
|
+
|
|
159
|
+
const meta = {
|
|
160
|
+
title: 'Inputs/Slider',
|
|
161
|
+
component: Slider,
|
|
162
|
+
parameters: {
|
|
163
|
+
layout: 'centered',
|
|
164
|
+
docs: {
|
|
165
|
+
description: {
|
|
166
|
+
component: DESCRIPTION,
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
args: {
|
|
171
|
+
defaultValue: [50],
|
|
172
|
+
min: 0,
|
|
173
|
+
max: 100,
|
|
174
|
+
step: 1,
|
|
175
|
+
disabled: false,
|
|
176
|
+
error: false,
|
|
177
|
+
},
|
|
178
|
+
argTypes: {
|
|
179
|
+
defaultValue: { control: 'object' },
|
|
180
|
+
value: { control: 'object' },
|
|
181
|
+
min: { control: 'number' },
|
|
182
|
+
max: { control: 'number' },
|
|
183
|
+
step: { control: 'number' },
|
|
184
|
+
disabled: { control: 'boolean' },
|
|
185
|
+
readOnly: { control: 'boolean' },
|
|
186
|
+
error: { control: 'boolean' },
|
|
187
|
+
onValueChange: { control: false },
|
|
188
|
+
onValueChangeEnd: { control: false },
|
|
189
|
+
ref: { control: false },
|
|
190
|
+
},
|
|
191
|
+
decorators: [
|
|
192
|
+
Story => (
|
|
193
|
+
<div style={{ width: 380 }}>
|
|
194
|
+
<Story />
|
|
195
|
+
</div>
|
|
196
|
+
),
|
|
197
|
+
],
|
|
198
|
+
} satisfies Meta<typeof Slider>;
|
|
199
|
+
|
|
200
|
+
export default meta;
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* One handle on a track: arrow keys move by `step`, Page keys jump further, and Home and End go
|
|
204
|
+
* to the bounds. `SliderThumb` is the real interactive node, so `aria-label` and analytics
|
|
205
|
+
* attributes go on it, and its focus reuses the hover emphasis instead of drawing a ring.
|
|
206
|
+
*/
|
|
207
|
+
export const Basic: StoryFn<SliderProps> = args => (
|
|
208
|
+
<Slider {...args}>
|
|
209
|
+
<SliderControl>
|
|
210
|
+
<SliderThumb aria-label='Value' />
|
|
211
|
+
</SliderControl>
|
|
212
|
+
</Slider>
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Two entries in the value make two thumbs; render one `SliderThumb` per entry. The thumbs
|
|
217
|
+
* cannot cross, so the pair always reads as a valid range.
|
|
218
|
+
*/
|
|
219
|
+
export const Range: StoryFn<SliderProps> = args => (
|
|
220
|
+
<Slider {...args} defaultValue={[20, 80]}>
|
|
221
|
+
<SliderControl>
|
|
222
|
+
<SliderThumb index={0} />
|
|
223
|
+
<SliderThumb index={1} />
|
|
224
|
+
</SliderControl>
|
|
225
|
+
</Slider>
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* `SliderMarks` draws ticks along the scale. Keep `step` aligned to the marks, or the handle
|
|
230
|
+
* lands between them and the ticks stop meaning anything.
|
|
231
|
+
*/
|
|
232
|
+
export const Ticks: StoryFn<SliderProps> = args => (
|
|
233
|
+
<Slider {...args} step={25} defaultValue={[50]}>
|
|
234
|
+
<SliderControl>
|
|
235
|
+
<SliderThumb aria-label='Volume' />
|
|
236
|
+
<SliderMarks
|
|
237
|
+
marks={[
|
|
238
|
+
{ value: 0, label: '0' },
|
|
239
|
+
{ value: 25, label: '25' },
|
|
240
|
+
{ value: 50, label: '50' },
|
|
241
|
+
{ value: 75, label: '75' },
|
|
242
|
+
{ value: 100, label: '100' },
|
|
243
|
+
]}
|
|
244
|
+
/>
|
|
245
|
+
</SliderControl>
|
|
246
|
+
</Slider>
|
|
247
|
+
);
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* The same marks used purely for orientation, with `step` finer than their spacing. Choose this
|
|
251
|
+
* when the marks are a guide rather than the only valid answers.
|
|
252
|
+
*/
|
|
253
|
+
export const TicksWithoutSnapping: StoryFn<SliderProps> = args => (
|
|
254
|
+
<Slider {...args} step={1} defaultValue={[40]}>
|
|
255
|
+
<SliderControl>
|
|
256
|
+
<SliderThumb aria-label='Volume' />
|
|
257
|
+
<SliderMarks
|
|
258
|
+
marks={[
|
|
259
|
+
{ value: 0, label: '0' },
|
|
260
|
+
{ value: 25, label: '25' },
|
|
261
|
+
{ value: 50, label: '50' },
|
|
262
|
+
{ value: 75, label: '75' },
|
|
263
|
+
{ value: 100, label: '100' },
|
|
264
|
+
]}
|
|
265
|
+
/>
|
|
266
|
+
</SliderControl>
|
|
267
|
+
</Slider>
|
|
268
|
+
);
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Marks carrying text, for a scale whose steps are named rather than numeric. The handle snaps
|
|
272
|
+
* to the labelled positions and announces the label rather than the number, so keep it to a
|
|
273
|
+
* handful of rungs.
|
|
274
|
+
*/
|
|
275
|
+
export const Labeled: StoryFn<SliderProps> = args => (
|
|
276
|
+
<Slider {...args} min={0} max={100} step={50} defaultValue={[50]}>
|
|
277
|
+
<SliderControl>
|
|
278
|
+
<SliderThumb aria-label='Risk level' />
|
|
279
|
+
<SliderMarks
|
|
280
|
+
marks={[
|
|
281
|
+
{ value: 0, label: 'Low' },
|
|
282
|
+
{ value: 50, label: 'Medium' },
|
|
283
|
+
{ value: 100, label: 'High' },
|
|
284
|
+
]}
|
|
285
|
+
/>
|
|
286
|
+
</SliderControl>
|
|
287
|
+
</Slider>
|
|
288
|
+
);
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* `tooltip` on a `SliderThumb` shows the value while dragging, then hides it. It suits a value
|
|
292
|
+
* only checked mid-gesture; anything needed afterwards wants a persistent readout instead,
|
|
293
|
+
* never both.
|
|
294
|
+
*/
|
|
295
|
+
export const WithTooltip: StoryFn<SliderProps> = args => (
|
|
296
|
+
<Slider {...args}>
|
|
297
|
+
<SliderControl>
|
|
298
|
+
<SliderThumb aria-label='Value' tooltip />
|
|
299
|
+
</SliderControl>
|
|
300
|
+
</Slider>
|
|
301
|
+
);
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* `SliderInput` is the precision escape hatch: the track for approximate moves, the field for
|
|
305
|
+
* an exact figure. Typing commits on blur or Enter rather than live, so clamping never fights a
|
|
306
|
+
* half-typed number.
|
|
307
|
+
*/
|
|
308
|
+
export const WithInput: StoryFn<SliderProps> = args => (
|
|
309
|
+
<Slider {...args} data-testid='slider-with-input'>
|
|
310
|
+
<SliderControl>
|
|
311
|
+
<SliderThumb aria-label='Value' />
|
|
312
|
+
</SliderControl>
|
|
313
|
+
<SliderInput />
|
|
314
|
+
</Slider>
|
|
315
|
+
);
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* A field at each end, low on the left and high on the right. Neither crosses the other, so the
|
|
319
|
+
* fields cannot produce a range the track could not.
|
|
320
|
+
*/
|
|
321
|
+
export const RangeWithInput: StoryFn<SliderProps> = args => (
|
|
322
|
+
<Slider {...args} defaultValue={[20, 80]} data-testid='slider-range-with-input'>
|
|
323
|
+
<SliderInput index={0} />
|
|
324
|
+
<SliderControl>
|
|
325
|
+
<SliderThumb index={0} />
|
|
326
|
+
<SliderThumb index={1} />
|
|
327
|
+
</SliderControl>
|
|
328
|
+
<SliderInput index={1} />
|
|
329
|
+
</Slider>
|
|
330
|
+
);
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* The whole control dims and stops responding, handle included. The value stays legible,
|
|
334
|
+
* because a locked setting is usually one the reader still needs to read.
|
|
335
|
+
*/
|
|
336
|
+
export const Disabled: StoryFn<SliderProps> = args => (
|
|
337
|
+
<Slider {...args} disabled>
|
|
338
|
+
<SliderControl>
|
|
339
|
+
<SliderThumb aria-label='Value' />
|
|
340
|
+
</SliderControl>
|
|
341
|
+
</Slider>
|
|
342
|
+
);
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Wrapped in `Field`, which is the form-field shape. The slider reads that context, so the
|
|
346
|
+
* label and error attach without being passed anything.
|
|
347
|
+
*/
|
|
348
|
+
export const InField: StoryFn<SliderProps> = args => (
|
|
349
|
+
<Field>
|
|
350
|
+
<FieldLabel>Risk threshold</FieldLabel>
|
|
351
|
+
<Slider {...args}>
|
|
352
|
+
<SliderControl>
|
|
353
|
+
<SliderThumb />
|
|
354
|
+
</SliderControl>
|
|
355
|
+
</Slider>
|
|
356
|
+
<FieldDescription>Approximate — fine-tune the exact value later.</FieldDescription>
|
|
357
|
+
</Field>
|
|
358
|
+
);
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* `invalid` on the `Field` cascades to the handle. The message is `FieldError`'s job, and it
|
|
362
|
+
* matters here because a slider cannot show a wrong value the way a text field can.
|
|
363
|
+
*/
|
|
364
|
+
export const FieldWithError: StoryFn<SliderProps> = args => (
|
|
365
|
+
<Field invalid>
|
|
366
|
+
<FieldLabel>Risk threshold</FieldLabel>
|
|
367
|
+
<Slider {...args}>
|
|
368
|
+
<SliderControl>
|
|
369
|
+
<SliderThumb />
|
|
370
|
+
</SliderControl>
|
|
371
|
+
</Slider>
|
|
372
|
+
<FieldError>Enter a value between 0 and 100.</FieldError>
|
|
373
|
+
</Field>
|
|
374
|
+
);
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* The value beside the label, which is the readout Figma draws for a slider in a form — value
|
|
378
|
+
* beside label is the drawn default, not one option among several.
|
|
379
|
+
*/
|
|
380
|
+
export const FieldWithValue: StoryFn<SliderProps> = args => {
|
|
381
|
+
const [value, setValue] = useState([40]);
|
|
382
|
+
return (
|
|
383
|
+
<Field>
|
|
384
|
+
<div className='flex w-full items-center justify-between'>
|
|
385
|
+
<FieldLabel>Risk threshold</FieldLabel>
|
|
386
|
+
<span className='text-sm font-medium text-text-primary tabular-nums'>{value[0]}</span>
|
|
387
|
+
</div>
|
|
388
|
+
<Slider {...args} value={value} onValueChange={setValue}>
|
|
389
|
+
<SliderControl>
|
|
390
|
+
<SliderThumb />
|
|
391
|
+
</SliderControl>
|
|
392
|
+
</Slider>
|
|
393
|
+
</Field>
|
|
394
|
+
);
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Both ends beside the label, comma-separated. For a range this is the only way to read the
|
|
399
|
+
* value without hovering each thumb.
|
|
400
|
+
*/
|
|
401
|
+
export const RangeFieldWithValue: StoryFn<SliderProps> = args => {
|
|
402
|
+
const [value, setValue] = useState([20, 80]);
|
|
403
|
+
return (
|
|
404
|
+
<Field>
|
|
405
|
+
<div className='flex w-full items-center justify-between'>
|
|
406
|
+
<FieldLabel>Risk range</FieldLabel>
|
|
407
|
+
<span className='text-sm font-medium text-text-primary tabular-nums'>
|
|
408
|
+
{value.join(', ')}
|
|
409
|
+
</span>
|
|
410
|
+
</div>
|
|
411
|
+
<Slider {...args} value={value} onValueChange={setValue}>
|
|
412
|
+
<SliderControl>
|
|
413
|
+
<SliderThumb index={0} />
|
|
414
|
+
<SliderThumb index={1} />
|
|
415
|
+
</SliderControl>
|
|
416
|
+
</Slider>
|
|
417
|
+
</Field>
|
|
418
|
+
);
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* `SliderValue` reads the slider's own context, so a live readout needs no controlled state of
|
|
423
|
+
* its own.
|
|
424
|
+
*/
|
|
425
|
+
export const WithValueReadout: StoryFn<SliderProps> = args => (
|
|
426
|
+
<Slider {...args} defaultValue={[60]}>
|
|
427
|
+
<SliderControl>
|
|
428
|
+
<SliderThumb aria-label='Volume' />
|
|
429
|
+
</SliderControl>
|
|
430
|
+
<SliderValue className='w-32 shrink-0 text-right font-medium' />
|
|
431
|
+
</Slider>
|
|
432
|
+
);
|
|
433
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var e={vD(e,t,r){let l,n;/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @lightSyntaxTransform
|
|
8
|
+
* @noflow
|
|
9
|
+
* @nolint
|
|
10
|
+
* @preventMunge
|
|
11
|
+
* @preserve-invariant-messages
|
|
12
|
+
*/var a,o,i=Object.create,c=Object.defineProperty,s=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,m=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,f=(e,t,r,l)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of u(t))d.call(e,n)||n===r||c(e,n,{get:()=>t[n],enumerable:!(l=s(t,n))||l.enumerable});return e},p={},h={$dispatcherGuard:()=>C,$makeReadOnly:()=>M,$reset:()=>k,$structuralCheck:()=>I,c:()=>R,clearRenderCounterRegistry:()=>D,renderCounterRegistry:()=>O,useRenderCounter:()=>V};for(var y in h)c(p,y,{get:h[y],enumerable:!0});e.exports=f(c({},"__esModule",{value:!0}),p);var b=(n=null!=(l=r("C"))?i(m(l)):{},f(l&&l.__esModule?n:c(n,"default",{value:l,enumerable:!0}),l)),{useRef:_,useEffect:S,isValidElement:w}=b,v=null!=(a=b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)?a:b.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,g=Symbol.for("react.memo_cache_sentinel"),R="function"==typeof(null==(o=b.__COMPILER_RUNTIME)?void 0:o.c)?b.__COMPILER_RUNTIME.c:function(e){return b.useMemo(()=>{let t=Array(e);for(let r=0;r<e;r++)t[r]=g;return t[g]=!0,t},[])},E={};["readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","getCacheSignal","getCacheForType","useCacheRefresh"].forEach(e=>{E[e]=()=>{throw Error(`[React] Unexpected React hook call (${e}) from a React compiled function. Check that all hooks are called directly and named according to convention ('use[A-Z]') `)}});var $=null;function N(e){return v.ReactCurrentDispatcher.current=e,v.ReactCurrentDispatcher.current}E.useMemoCache=e=>{if(null!=$)return $.useMemoCache(e);throw Error("React Compiler internal invariant violation: unexpected null dispatcher")};var x=[];function C(e){let t=v.ReactCurrentDispatcher.current;if(0===e){if(x.push(t),1===x.length&&($=t),t===E)throw Error("[React] Unexpected call to custom hook or component from a React compiled function. Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') and (2) components are returned as JSX instead of being directly invoked.");N(E)}else if(1===e){let e=x.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");0===x.length&&($=null),N(e)}else if(2===e)x.push(t),N($);else if(3===e){let e=x.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");N(e)}else throw Error("React Compiler internal error: unreachable block"+e)}function k(e){for(let t=0;t<e.length;t++)e[t]=g}function M(){throw Error("TODO: implement $makeReadOnly in react-compiler-runtime")}var O=new Map;function D(){for(let e of O.values())e.forEach(e=>{e.count=0})}function V(e){let t=_(null);null!=t.current&&(t.current.count+=1),S(()=>{if(null==t.current){let r,l={count:0};null==(r=O.get(e))&&(r=new Set,O.set(e,r)),r.add(l),t.current=l}return()=>{var r;let l;null!==t.current&&(r=t.current,null!=(l=O.get(e))&&l.delete(r))}})}var j=new Set;function I(e,t,r,l,n,a){function o(e,t,o,i){let c=`${l}:${a} [${n}] ${r}${o} changed from ${e} to ${t} at depth ${i}`;j.has(c)||(j.add(c),console.error(c))}!function e(t,r,l,n){if(!(n>2)){if(t!==r)if(typeof t!=typeof r)o(`type ${typeof t}`,`type ${typeof r}`,l,n);else if("object"==typeof t){let a=Array.isArray(t),i=Array.isArray(r);if(null===t&&null!==r)o("null",`type ${typeof r}`,l,n);else if(null===r)o(`type ${typeof t}`,"null",l,n);else if(t instanceof Map)if(r instanceof Map)if(t.size!==r.size)o(`Map instance with size ${t.size}`,`Map instance with size ${r.size}`,l,n);else for(let[a,i]of t)r.has(a)?e(i,r.get(a),`${l}.get(${a})`,n+1):o(`Map instance with key ${a}`,`Map instance without key ${a}`,l,n);else o("Map instance","other value",l,n);else if(r instanceof Map)o("other value","Map instance",l,n);else if(t instanceof Set)if(r instanceof Set)if(t.size!==r.size)o(`Set instance with size ${t.size}`,`Set instance with size ${r.size}`,l,n);else for(let e of r)t.has(e)||o(`Set instance without element ${e}`,`Set instance with element ${e}`,l,n);else o("Set instance","other value",l,n);else if(r instanceof Set)o("other value","Set instance",l,n);else if(a||i)if(a!==i)o(`type ${a?"array":"object"}`,`type ${i?"array":"object"}`,l,n);else if(t.length!==r.length)o(`array with length ${t.length}`,`array with length ${r.length}`,l,n);else for(let a=0;a<t.length;a++)e(t[a],r[a],`${l}[${a}]`,n+1);else if(w(t)||w(r))w(t)!==w(r)?o(`type ${w(t)?"React element":"object"}`,`type ${w(r)?"React element":"object"}`,l,n):t.type!==r.type?o(`React element of type ${t.type}`,`React element of type ${r.type}`,l,n):e(t.props,r.props,`[props of ${l}]`,n+1);else{for(let e in r)e in t||o(`object without key ${e}`,`object with key ${e}`,l,n);for(let a in t)a in r?e(t[a],r[a],`${l}.${a}`,n+1):o(`object with key ${a}`,`object without key ${a}`,l,n)}}else{if("function"==typeof t)return;isNaN(t)||isNaN(r)?isNaN(t)!==isNaN(r)&&o(`${isNaN(t)?"NaN":"non-NaN value"}`,`${isNaN(r)?"NaN":"non-NaN value"}`,l,n):t!==r&&o(t,r,l,n)}}}(e,t,"",0)}},p(e,t,r){let l=new WeakMap,n=new WeakMap;function a(e,t,r){let a=t,o=r;if("object"==typeof a&&null!==a&&"$$typeof"in a&&a.$$typeof===Symbol.for("react.context")&&"Provider"in a&&(a=a.Provider),"function"==typeof a&&null!=o.ref&&!a.prototype?.isReactComponent){let t=a,r=l.get(e);r||(r=new WeakMap,l.set(e,r));let n=r.get(t);n||((n=e.forwardRef((e,r)=>t({...e,ref:r}))).displayName=t.displayName??t.name,r.set(t,n)),a=n}if("string"==typeof a&&"boolean"==typeof o.inert&&((o={...o}).inert?o.inert="":delete o.inert),"string"==typeof a)for(let[e,t]of[["fill-rule","fillRule"],["clip-rule","clipRule"]])e in o&&(o={...o,[t]:o[e]},delete o[e]);return"string"==typeof a&&null!=o.ref&&(a=function(e,t){let r=n.get(e);r||(r=new Map,n.set(e,r));let l=r.get(t);if(l)return l;let a=e.forwardRef((r,l)=>{let n=e.useRef(null);if(!n.current||n.current.original!==l){let e;n.current={original:l,callback:t=>{if(null==t&&e){let t=e;e=void 0,t();return}if("function"==typeof l){let r=l(t);e="function"==typeof r?r:void 0}else l&&(l.current=t)}}}return e.createElement(t,{...r,ref:n.current.callback})});return a.displayName=`CanvasHost(${t})`,r.set(t,a),a}(e,a)),{type:a,props:o}}function o(e){let t=(t,r,l)=>{let n=a(e,t,r??{});return e.createElement(n.type,void 0===l?n.props:{...n.props,key:l})};return{jsx:t,jsxs:(t,r,l)=>{let n=a(e,t,r??{}),{children:o,...i}=n.props;return e.createElement(n.type,void 0===l?i:{...i,key:l},...Array.isArray(o)?o:[o])},jsxDEV:t,Fragment:e.Fragment}}function i(e){return{...e,createElement:(t,r,...l)=>{let n=a(e,t,r??{});return e.createElement(n.type,n.props,...l)},cloneElement:(t,r,...l)=>{let n=e.cloneElement(t,r??void 0,...l),o=n.ref,i=a(e,n.type,{...n.props,ref:o});return i.type===n.type&&"string"!=typeof n.type?n:e.createElement(i.type,{...i.props,key:n.key})}}}r.d(t,{MA:()=>o,YJ:()=>i})},C(e,t,r){r.r(t);let l=(0,r("p").YJ)(window.React),{Children:n,Component:a,Fragment:o,Profiler:i,PureComponent:c,StrictMode:s,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:m,act:d,cloneElement:f,createContext:p,createElement:h,createFactory:y,createRef:b,forwardRef:_,isValidElement:S,lazy:w,memo:v,startTransition:g,unstable_act:R,useCallback:E,useContext:$,useDebugValue:N,useDeferredValue:x,useEffect:C,useId:k,useImperativeHandle:M,useInsertionEffect:O,useLayoutEffect:D,useMemo:V,useReducer:j,useRef:I,useState:W,useSyncExternalStore:T,useTransition:A,version:P,use:F}=l;r.d(t,{},{Children:n,Component:a,Fragment:o,Profiler:i,PureComponent:c,StrictMode:s,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:m,act:d,cloneElement:f,createContext:p,createElement:h,createFactory:y,createRef:b,default:l,forwardRef:_,isValidElement:S,lazy:w,memo:v,startTransition:g,unstable_act:R,use:F,useCallback:E,useContext:$,useDebugValue:N,useDeferredValue:x,useEffect:C,useId:k,useImperativeHandle:M,useInsertionEffect:O,useLayoutEffect:D,useMemo:V,useReducer:j,useRef:I,useState:W,useSyncExternalStore:T,useTransition:A,version:P})}},t={};function r(l){var n=t[l];if(void 0!==n)return n.exports;var a=t[l]={exports:{}};return e[l](a,a.exports,r),a.exports}r.d=(e,t,l)=>{var n=(t,l)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,[l]:t[n]})};n(t,"get"),n(l,"value")},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{let{jsx:e,jsxs:t,jsxDEV:l,Fragment:n}=(0,r("p").MA)(window.React);var a=r("vD"),o=r("C");let i=window.WallarmDS.Field,c=window.WallarmDS.FieldDescription,s=window.WallarmDS.FieldError,u=window.WallarmDS.FieldLabel,m=window.WallarmDS.Slider,d=window.WallarmDS.SliderControl,f=window.WallarmDS.SliderInput,p=window.WallarmDS.SliderMarks,h=window.WallarmDS.SliderThumb,y=window.WallarmDS.SliderValue,b={title:"Inputs/Slider",component:m,parameters:{layout:"centered",docs:{description:{component:"Sets an approximate, bounded value by dragging along a track — reach for `NumberInput` when the exact figure matters, since a slider is faster to move than it is to land. A slider should always show its value: pair it with `SliderInput` for entry, or `SliderValue` for a readout. It implies a continuum, so a few fixed choices belong in `SegmentedControl`, `Radio` or `Select`, and on/off in `Switch`."}}},args:{defaultValue:[50],min:0,max:100,step:1,disabled:!1,error:!1},argTypes:{defaultValue:{control:"object"},value:{control:"object"},min:{control:"number"},max:{control:"number"},step:{control:"number"},disabled:{control:"boolean"},readOnly:{control:"boolean"},error:{control:"boolean"},onValueChange:{control:!1},onValueChangeEnd:{control:!1},ref:{control:!1}},decorators:[t=>e("div",{style:{width:380},children:e(t,{})})]},_=[{name:"Basic",story:t=>{let r,l,n=(0,a.c)(3);return n[0]===Symbol.for("react.memo_cache_sentinel")?(r=e(d,{children:e(h,{"aria-label":"Value"})}),n[0]=r):r=n[0],n[1]!==t?(l=e(m,{...t,children:r}),n[1]=t,n[2]=l):l=n[2],l},meta:b},{name:"Range",story:r=>{let l,n,o,i=(0,a.c)(4);return i[0]===Symbol.for("react.memo_cache_sentinel")?(l=[20,80],i[0]=l):l=i[0],i[1]===Symbol.for("react.memo_cache_sentinel")?(n=t(d,{children:[e(h,{index:0}),e(h,{index:1})]}),i[1]=n):n=i[1],i[2]!==r?(o=e(m,{...r,defaultValue:l,children:n}),i[2]=r,i[3]=o):o=i[3],o},meta:b},{name:"Ticks",story:r=>{let l,n,o,i,c=(0,a.c)(5);return c[0]===Symbol.for("react.memo_cache_sentinel")?(l=[50],c[0]=l):l=c[0],c[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(h,{"aria-label":"Volume"}),c[1]=n):n=c[1],c[2]===Symbol.for("react.memo_cache_sentinel")?(o=t(d,{children:[n,e(p,{marks:[{value:0,label:"0"},{value:25,label:"25"},{value:50,label:"50"},{value:75,label:"75"},{value:100,label:"100"}]})]}),c[2]=o):o=c[2],c[3]!==r?(i=e(m,{...r,step:25,defaultValue:l,children:o}),c[3]=r,c[4]=i):i=c[4],i},meta:b},{name:"TicksWithoutSnapping",story:r=>{let l,n,o,i,c=(0,a.c)(5);return c[0]===Symbol.for("react.memo_cache_sentinel")?(l=[40],c[0]=l):l=c[0],c[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(h,{"aria-label":"Volume"}),c[1]=n):n=c[1],c[2]===Symbol.for("react.memo_cache_sentinel")?(o=t(d,{children:[n,e(p,{marks:[{value:0,label:"0"},{value:25,label:"25"},{value:50,label:"50"},{value:75,label:"75"},{value:100,label:"100"}]})]}),c[2]=o):o=c[2],c[3]!==r?(i=e(m,{...r,step:1,defaultValue:l,children:o}),c[3]=r,c[4]=i):i=c[4],i},meta:b},{name:"Labeled",story:r=>{let l,n,o,i,c=(0,a.c)(5);return c[0]===Symbol.for("react.memo_cache_sentinel")?(l=[50],c[0]=l):l=c[0],c[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(h,{"aria-label":"Risk level"}),c[1]=n):n=c[1],c[2]===Symbol.for("react.memo_cache_sentinel")?(o=t(d,{children:[n,e(p,{marks:[{value:0,label:"Low"},{value:50,label:"Medium"},{value:100,label:"High"}]})]}),c[2]=o):o=c[2],c[3]!==r?(i=e(m,{...r,min:0,max:100,step:50,defaultValue:l,children:o}),c[3]=r,c[4]=i):i=c[4],i},meta:b},{name:"WithTooltip",story:t=>{let r,l,n=(0,a.c)(3);return n[0]===Symbol.for("react.memo_cache_sentinel")?(r=e(d,{children:e(h,{"aria-label":"Value",tooltip:!0})}),n[0]=r):r=n[0],n[1]!==t?(l=e(m,{...t,children:r}),n[1]=t,n[2]=l):l=n[2],l},meta:b},{name:"WithInput",story:r=>{let l,n,o,i=(0,a.c)(4);return i[0]===Symbol.for("react.memo_cache_sentinel")?(l=e(d,{children:e(h,{"aria-label":"Value"})}),n=e(f,{}),i[0]=l,i[1]=n):(l=i[0],n=i[1]),i[2]!==r?(o=t(m,{...r,"data-testid":"slider-with-input",children:[l,n]}),i[2]=r,i[3]=o):o=i[3],o},meta:b},{name:"RangeWithInput",story:r=>{let l,n,o,i,c,s=(0,a.c)(6);return s[0]===Symbol.for("react.memo_cache_sentinel")?(l=[20,80],s[0]=l):l=s[0],s[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(f,{index:0}),s[1]=n):n=s[1],s[2]===Symbol.for("react.memo_cache_sentinel")?(o=t(d,{children:[e(h,{index:0}),e(h,{index:1})]}),i=e(f,{index:1}),s[2]=o,s[3]=i):(o=s[2],i=s[3]),s[4]!==r?(c=t(m,{...r,defaultValue:l,"data-testid":"slider-range-with-input",children:[n,o,i]}),s[4]=r,s[5]=c):c=s[5],c},meta:b},{name:"Disabled",story:t=>{let r,l,n=(0,a.c)(3);return n[0]===Symbol.for("react.memo_cache_sentinel")?(r=e(d,{children:e(h,{"aria-label":"Value"})}),n[0]=r):r=n[0],n[1]!==t?(l=e(m,{...t,disabled:!0,children:r}),n[1]=t,n[2]=l):l=n[2],l},meta:b},{name:"InField",story:r=>{let l,n,o,s,f,p=(0,a.c)(7);return p[0]===Symbol.for("react.memo_cache_sentinel")?(l=e(u,{children:"Risk threshold"}),p[0]=l):l=p[0],p[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(d,{children:e(h,{})}),p[1]=n):n=p[1],p[2]!==r?(o=e(m,{...r,children:n}),p[2]=r,p[3]=o):o=p[3],p[4]===Symbol.for("react.memo_cache_sentinel")?(s=e(c,{children:"Approximate — fine-tune the exact value later."}),p[4]=s):s=p[4],p[5]!==o?(f=t(i,{children:[l,o,s]}),p[5]=o,p[6]=f):f=p[6],f},meta:b},{name:"FieldWithError",story:r=>{let l,n,o,c,f,p=(0,a.c)(7);return p[0]===Symbol.for("react.memo_cache_sentinel")?(l=e(u,{children:"Risk threshold"}),p[0]=l):l=p[0],p[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(d,{children:e(h,{})}),p[1]=n):n=p[1],p[2]!==r?(o=e(m,{...r,children:n}),p[2]=r,p[3]=o):o=p[3],p[4]===Symbol.for("react.memo_cache_sentinel")?(c=e(s,{children:"Enter a value between 0 and 100."}),p[4]=c):c=p[4],p[5]!==o?(f=t(i,{invalid:!0,children:[l,o,c]}),p[5]=o,p[6]=f):f=p[6],f},meta:b},{name:"FieldWithValue",story:r=>{let l,n,c,s,f,p,y=(0,a.c)(11);y[0]===Symbol.for("react.memo_cache_sentinel")?(l=[40],y[0]=l):l=y[0];let[b,_]=(0,o.useState)(l);return y[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(u,{children:"Risk threshold"}),y[1]=n):n=y[1],y[2]!==b[0]?(c=t("div",{className:"flex w-full items-center justify-between",children:[n,e("span",{className:"text-sm font-medium text-text-primary tabular-nums",children:b[0]})]}),y[2]=b[0],y[3]=c):c=y[3],y[4]===Symbol.for("react.memo_cache_sentinel")?(s=e(d,{children:e(h,{})}),y[4]=s):s=y[4],y[5]!==r||y[6]!==b?(f=e(m,{...r,value:b,onValueChange:_,children:s}),y[5]=r,y[6]=b,y[7]=f):f=y[7],y[8]!==c||y[9]!==f?(p=t(i,{children:[c,f]}),y[8]=c,y[9]=f,y[10]=p):p=y[10],p},meta:b},{name:"RangeFieldWithValue",story:r=>{let l,n,c,s,f,p,y,b=(0,a.c)(13);b[0]===Symbol.for("react.memo_cache_sentinel")?(l=[20,80],b[0]=l):l=b[0];let[_,S]=(0,o.useState)(l);return b[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(u,{children:"Risk range"}),b[1]=n):n=b[1],b[2]!==_?(c=_.join(", "),b[2]=_,b[3]=c):c=b[3],b[4]!==c?(s=t("div",{className:"flex w-full items-center justify-between",children:[n,e("span",{className:"text-sm font-medium text-text-primary tabular-nums",children:c})]}),b[4]=c,b[5]=s):s=b[5],b[6]===Symbol.for("react.memo_cache_sentinel")?(f=t(d,{children:[e(h,{index:0}),e(h,{index:1})]}),b[6]=f):f=b[6],b[7]!==r||b[8]!==_?(p=e(m,{...r,value:_,onValueChange:S,children:f}),b[7]=r,b[8]=_,b[9]=p):p=b[9],b[10]!==s||b[11]!==p?(y=t(i,{children:[s,p]}),b[10]=s,b[11]=p,b[12]=y):y=b[12],y},meta:b},{name:"WithValueReadout",story:r=>{let l,n,o,i,c=(0,a.c)(5);return c[0]===Symbol.for("react.memo_cache_sentinel")?(l=[60],c[0]=l):l=c[0],c[1]===Symbol.for("react.memo_cache_sentinel")?(n=e(d,{children:e(h,{"aria-label":"Volume"})}),o=e(y,{className:"w-32 shrink-0 text-right font-medium"}),c[1]=n,c[2]=o):(n=c[1],o=c[2]),c[3]!==r?(i=t(m,{...r,defaultValue:l,children:[n,o]}),c[3]=r,c[4]=i):i=c[4],i},meta:b}];function S({entry:e}){let{story:t,meta:r}=e,l={...r.args,...t.args},n="function"==typeof t||t.$$typeof?t:t.render||r.render||r.component,a=()=>o.default.createElement(n,l),i={args:l,globals:{theme:"light"},parameters:{...r.parameters,...t.parameters},viewMode:"story"};for(let e of[...r.decorators||[],...t.decorators||[]].reverse()){let t=a;a=()=>e(t,i)}return o.default.createElement("section",{"data-preview-story":e.name,className:"p-16"},o.default.createElement("h2",{className:"text-sm mb-12"},e.name),o.default.createElement(a))}window.WallarmPreview={mount(e){let t=window.ReactDOM.createRoot(e);return t.render(o.default.createElement(window.WallarmDS.Root,null,_.map((e,t)=>o.default.createElement(S,{key:t,entry:e})))),t}}})();
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
The full-screen entrance for a cold start — the brand `Logo` over an indeterminate bar, shown once while the app boots. Never on a route change and never as a general loading veil: in-app waits belong to `Loader`, `Skeleton` or `Progress`, and `AppShell` ships its own first-load reveal, so run one or the other rather than both. You drive `visible` and nothing else — the phases between are internal — and since it enforces no minimum on-screen time, guarding against a flash on a fast boot is the caller’s job.
|
|
2
|
+
|
|
3
|
+
## Props as canvas attributes
|
|
4
|
+
|
|
5
|
+
Use kebab-case attribute names. Pass non-string values through renderVals holes, including booleans. The full emitted API is in `components/index.d.ts`.
|
|
6
|
+
|
|
7
|
+
| Attribute | Type | Required | Default | Description |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| `visible` | `boolean \| undefined` | no | `true` | |
|
|
10
|
+
| `shrink-target` | `SplashScreenShrinkTarget \| undefined` | no | — | |
|
|
11
|
+
| `on-phase-change` | `((phase: PhaseType) => void) \| undefined` | no | — | |
|
|
12
|
+
| `default-checked` | `boolean \| undefined` | no | — | |
|
|
13
|
+
| `default-value` | `string \| number \| readonly string[] \| undefined` | no | — | |
|
|
14
|
+
| `auto-focus` | `boolean \| undefined` | no | — | |
|
|
15
|
+
| `id` | `string \| undefined` | no | — | |
|
|
16
|
+
| `tab-index` | `number \| undefined` | no | — | |
|
|
17
|
+
| `title` | `string \| undefined` | no | — | |
|
|
18
|
+
| `rel` | `string \| undefined` | no | — | |
|
|
19
|
+
| `on-change` | `ChangeEventHandler<T, Element> \| undefined` | no | — | |
|
|
20
|
+
|
|
21
|
+
## Stories
|
|
22
|
+
|
|
23
|
+
### Basic
|
|
24
|
+
|
|
25
|
+
The splash as it looks while the app boots. `visible` defaults to `true`, so this is the state you mount it in.
|
|
26
|
+
|
|
27
|
+
Source: SplashScreen/SplashScreen.stories.tsx#Basic
|
|
28
|
+
|
|
29
|
+
### Toggle
|
|
30
|
+
|
|
31
|
+
Flipping `visible` to false is the whole handover: with no `shrinkTarget` the splash fades out and unmounts, and any children are never shown.
|
|
32
|
+
|
|
33
|
+
Source: SplashScreen/SplashScreen.stories.tsx#Toggle
|
|
34
|
+
|
|
35
|
+
### ShrinkToCard
|
|
36
|
+
|
|
37
|
+
With a `shrinkTarget` it morphs into that box and reveals its children inside — the entrance becomes the first view, typically a sign-in card.
|
|
38
|
+
|
|
39
|
+
Source: SplashScreen/SplashScreen.stories.tsx#ShrinkToCard
|
|
40
|
+
|
|
41
|
+
### MeasuredHeight
|
|
42
|
+
|
|
43
|
+
The splash can measure its own content height when `shrinkTarget.height` is omitted — the animation shrinks to fit whatever you put inside, no hardcoded constant needed.
|
|
44
|
+
|
|
45
|
+
Source: SplashScreen/SplashScreen.stories.tsx#MeasuredHeight
|
|
46
|
+
|
|
47
|
+
## Story sources
|
|
48
|
+
|
|
49
|
+
### SplashScreen/SplashScreen.stories.tsx
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import { useEffect, useState } from 'react';
|
|
53
|
+
import type { Meta, StoryFn } from 'storybook-react-rsbuild';
|
|
54
|
+
import { AnimatedBackground } from '../AnimatedBackground';
|
|
55
|
+
import { Button } from '../Button';
|
|
56
|
+
import { Input } from '../Input';
|
|
57
|
+
import { VStack } from '../Stack';
|
|
58
|
+
import { Text } from '../Text';
|
|
59
|
+
import { SplashScreen } from './SplashScreen';
|
|
60
|
+
|
|
61
|
+
const DESCRIPTION = [
|
|
62
|
+
'The full-screen entrance for a cold start — the brand `Logo` over an indeterminate bar, shown once while the app boots.',
|
|
63
|
+
'Never on a route change and never as a general loading veil: in-app waits belong to `Loader`, `Skeleton` or `Progress`, and `AppShell` ships its own first-load reveal, so run one or the other rather than both.',
|
|
64
|
+
'You drive `visible` and nothing else — the phases between are internal — and since it enforces no minimum on-screen time, guarding against a flash on a fast boot is the caller’s job.',
|
|
65
|
+
].join(' ');
|
|
66
|
+
|
|
67
|
+
const meta = {
|
|
68
|
+
title: 'Loading/SplashScreen',
|
|
69
|
+
component: SplashScreen,
|
|
70
|
+
parameters: {
|
|
71
|
+
layout: 'centered',
|
|
72
|
+
docs: {
|
|
73
|
+
description: {
|
|
74
|
+
component: DESCRIPTION,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
} satisfies Meta<typeof SplashScreen>;
|
|
79
|
+
|
|
80
|
+
export default meta;
|
|
81
|
+
|
|
82
|
+
/** The splash as it looks while the app boots. `visible` defaults to `true`, so this is the state you mount it in. */
|
|
83
|
+
export const Basic: StoryFn = () => <SplashScreen />;
|
|
84
|
+
|
|
85
|
+
/** Flipping `visible` to false is the whole handover: with no `shrinkTarget` the splash fades out and unmounts, and any children are never shown. */
|
|
86
|
+
export const Toggle: StoryFn = () => {
|
|
87
|
+
const [visible, setVisible] = useState(true);
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<VStack align='center'>
|
|
91
|
+
<div className='flex h-400 w-400 items-center justify-center'>
|
|
92
|
+
<SplashScreen visible={visible} />
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<Button type='button' onClick={() => setVisible(v => !v)}>
|
|
96
|
+
{visible ? 'Hide' : 'Show'}
|
|
97
|
+
</Button>
|
|
98
|
+
</VStack>
|
|
99
|
+
);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/** With a `shrinkTarget` it morphs into that box and reveals its children inside — the entrance becomes the first view, typically a sign-in card. */
|
|
103
|
+
export const ShrinkToCard: StoryFn = () => {
|
|
104
|
+
const [visible, setVisible] = useState(true);
|
|
105
|
+
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (!visible) return;
|
|
108
|
+
|
|
109
|
+
const timer = window.setTimeout(() => {
|
|
110
|
+
setVisible(false);
|
|
111
|
+
}, 2000);
|
|
112
|
+
|
|
113
|
+
return () => window.clearTimeout(timer);
|
|
114
|
+
}, [visible]);
|
|
115
|
+
|
|
116
|
+
return (
|
|
117
|
+
<div className='relative h-screen w-screen'>
|
|
118
|
+
<AnimatedBackground />
|
|
119
|
+
|
|
120
|
+
<div className='absolute inset-0 flex items-center justify-center'>
|
|
121
|
+
<SplashScreen
|
|
122
|
+
visible={visible}
|
|
123
|
+
shrinkTarget={{ width: 480, height: 600, borderRadius: 12 }}
|
|
124
|
+
className='bg-bg-page-bg shadow-lg'
|
|
125
|
+
>
|
|
126
|
+
<div className='flex h-full flex-col items-center justify-center gap-4 p-8'>
|
|
127
|
+
<h2 className='text-lg font-semibold text-text-primary'>Welcome</h2>
|
|
128
|
+
<p className='text-center text-sm text-text-secondary'>
|
|
129
|
+
Content revealed after splash animation.
|
|
130
|
+
</p>
|
|
131
|
+
<Button type='button' onClick={() => setVisible(true)}>
|
|
132
|
+
Replay
|
|
133
|
+
</Button>
|
|
134
|
+
</div>
|
|
135
|
+
</SplashScreen>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
ShrinkToCard.parameters = {
|
|
142
|
+
layout: 'fullscreen',
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/** The splash can measure its own content height when `shrinkTarget.height` is omitted — the animation shrinks to fit whatever you put inside, no hardcoded constant needed. */
|
|
146
|
+
export const MeasuredHeight: StoryFn = () => {
|
|
147
|
+
const [visible, setVisible] = useState(true);
|
|
148
|
+
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
if (!visible) return;
|
|
151
|
+
|
|
152
|
+
const timer = window.setTimeout(() => {
|
|
153
|
+
setVisible(false);
|
|
154
|
+
}, 2000);
|
|
155
|
+
|
|
156
|
+
return () => window.clearTimeout(timer);
|
|
157
|
+
}, [visible]);
|
|
158
|
+
|
|
159
|
+
const handleSignIn = () => {
|
|
160
|
+
setVisible(true);
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
return (
|
|
164
|
+
<div className='relative h-screen w-screen'>
|
|
165
|
+
<AnimatedBackground />
|
|
166
|
+
|
|
167
|
+
<div className='absolute inset-0 flex items-center justify-center'>
|
|
168
|
+
<SplashScreen
|
|
169
|
+
visible={visible}
|
|
170
|
+
shrinkTarget={{ width: 480, borderRadius: 12 }}
|
|
171
|
+
className='bg-bg-page-bg shadow-lg'
|
|
172
|
+
>
|
|
173
|
+
<div className='flex h-full w-full flex-col items-center justify-center gap-16 p-24'>
|
|
174
|
+
<Text size='xl'>Sign In</Text>
|
|
175
|
+
<div className='flex w-full flex-col gap-12'>
|
|
176
|
+
<Input placeholder='Email' />
|
|
177
|
+
<Input placeholder='Password' type='password' />
|
|
178
|
+
</div>
|
|
179
|
+
<Button variant='primary' color='brand' className='w-full' onClick={handleSignIn}>
|
|
180
|
+
Sign In
|
|
181
|
+
</Button>
|
|
182
|
+
</div>
|
|
183
|
+
</SplashScreen>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
);
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
MeasuredHeight.parameters = {
|
|
190
|
+
layout: 'fullscreen',
|
|
191
|
+
};
|
|
192
|
+
```
|