@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,1140 @@
|
|
|
1
|
+
A panel the reader has to resolve before carrying on — reach for `Drawer` when they should be able to keep it open and keep working, and `Popover` when the content is a detail rather than a task. It is `Drawer` with `kind='dialog'`, which shares the panel but keeps the two families' nesting separate: a dialog only steps back for another dialog.
|
|
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
|
+
| `kind` | `DrawerKind \| undefined` | no | — | Which overlay family this root belongs to. Drives the same-kind nesting counter behind the pushed-back animation: a Drawer only pushes back for a nested Drawer, a Dialog only for a nested Dialog. Set to 'dialog' by the Dialog component — consumers should not need to touch this. |
|
|
10
|
+
| `open` | `boolean \| undefined` | no | — | Controlled open state |
|
|
11
|
+
| `on-open-change` | `((open: boolean) => void) \| undefined` | no | — | Controlled open change handler |
|
|
12
|
+
| `close-on-escape` | `boolean \| undefined` | no | — | Whether ESC key closes the drawer (default: true) |
|
|
13
|
+
| `close-on-outside-click` | `boolean \| undefined` | no | — | Whether clicking outside closes the drawer (default: true) |
|
|
14
|
+
| `overlay` | `boolean \| undefined` | no | — | Overlay visibility (default: true) |
|
|
15
|
+
| `modal` | `boolean \| undefined` | no | — | Whether the drawer is modal — blocks interaction with the rest of the page (default: true) |
|
|
16
|
+
| `width` | `string \| number \| undefined` | no | `DIALOG_SIZES.medium` | Width - number for pixels, string for percentage (e.g., "50%") |
|
|
17
|
+
| `min-width` | `number \| undefined` | no | `DIALOG_WIDTH_CONSTRAINTS.min` | Minimum width in pixels |
|
|
18
|
+
| `max-width` | `number \| undefined` | no | `DIALOG_WIDTH_CONSTRAINTS.max` | Maximum width in pixels |
|
|
19
|
+
| `on-interact-outside` | `complex` | no | — | Fired when the user interacts outside the drawer (e.g. clicks the backdrop). |
|
|
20
|
+
| `on-escape-key-down` | `((event: KeyboardEvent) => void) \| undefined` | no | — | Fired when the user presses the Escape key while the drawer is open. |
|
|
21
|
+
| `data-testid` | `string \| undefined` | no | — | |
|
|
22
|
+
|
|
23
|
+
## Sub-components
|
|
24
|
+
|
|
25
|
+
- `WallarmDS.DialogBody` — `DialogBodyProps` in the declaration bundle.
|
|
26
|
+
- `WallarmDS.DialogClose` — `DialogCloseProps` in the declaration bundle.
|
|
27
|
+
- `WallarmDS.DialogContent` — `DialogContentProps` in the declaration bundle.
|
|
28
|
+
- `WallarmDS.DialogDescription` — `DialogDescriptionProps` in the declaration bundle.
|
|
29
|
+
- `WallarmDS.DialogFooter` — `DialogFooterProps` in the declaration bundle.
|
|
30
|
+
- `WallarmDS.DialogFooterControls` — `DialogFooterControlsProps` in the declaration bundle.
|
|
31
|
+
- `WallarmDS.DialogHeader` — `DialogHeaderProps` in the declaration bundle.
|
|
32
|
+
- `WallarmDS.DialogPositioner` — `DialogPositionerProps` in the declaration bundle.
|
|
33
|
+
- `WallarmDS.DialogTitle` — `DialogTitleProps` in the declaration bundle.
|
|
34
|
+
- `WallarmDS.DialogTrigger` — `DialogTriggerProps` in the declaration bundle.
|
|
35
|
+
|
|
36
|
+
## Stories
|
|
37
|
+
|
|
38
|
+
### Basic
|
|
39
|
+
|
|
40
|
+
The minimum: trigger, content, and a title. Every dialog needs a title — it is what a screen
|
|
41
|
+
reader announces on open.
|
|
42
|
+
|
|
43
|
+
Source: Dialog/Dialog.stories.tsx#Basic
|
|
44
|
+
|
|
45
|
+
### WithFooter
|
|
46
|
+
|
|
47
|
+
`DialogFooter` holds the decision. Put the confirming action last, since that is where the
|
|
48
|
+
eye finishes.
|
|
49
|
+
|
|
50
|
+
Source: Dialog/Dialog.stories.tsx#WithFooter
|
|
51
|
+
|
|
52
|
+
### WithDescription
|
|
53
|
+
|
|
54
|
+
`DialogDescription` states the consequence, which is what turns a confirmation from a speed
|
|
55
|
+
bump into a decision. `DialogHeader` finds the title and description among its children and
|
|
56
|
+
stacks them, so the close button stays right-aligned however many it gets.
|
|
57
|
+
|
|
58
|
+
Source: Dialog/Dialog.stories.tsx#WithDescription
|
|
59
|
+
|
|
60
|
+
### WithFooterLeftActions
|
|
61
|
+
|
|
62
|
+
A left-aligned action for the escape route — cancel, learn more — kept away from the
|
|
63
|
+
confirming pair on the right.
|
|
64
|
+
|
|
65
|
+
Source: Dialog/Dialog.stories.tsx#WithFooterLeftActions
|
|
66
|
+
|
|
67
|
+
### Sizes
|
|
68
|
+
|
|
69
|
+
The standard widths. Pick by the content, not the importance: a wide dialog for a short
|
|
70
|
+
question reads as a mistake.
|
|
71
|
+
|
|
72
|
+
Source: Dialog/Dialog.stories.tsx#Sizes
|
|
73
|
+
|
|
74
|
+
### CustomSizes
|
|
75
|
+
|
|
76
|
+
Explicit `width`, `minWidth` and `maxWidth` for content the standard steps do not fit.
|
|
77
|
+
|
|
78
|
+
Source: Dialog/Dialog.stories.tsx#CustomSizes
|
|
79
|
+
|
|
80
|
+
### Scrollable
|
|
81
|
+
|
|
82
|
+
The body scrolls while header and footer stay put, so the decision never scrolls out of
|
|
83
|
+
reach.
|
|
84
|
+
|
|
85
|
+
Source: Dialog/Dialog.stories.tsx#Scrollable
|
|
86
|
+
|
|
87
|
+
### WithInputAtEdge
|
|
88
|
+
|
|
89
|
+
A field against the panel edge, which is where focus rings and shadows get clipped if the
|
|
90
|
+
padding is wrong.
|
|
91
|
+
|
|
92
|
+
Source: Dialog/Dialog.stories.tsx#WithInputAtEdge
|
|
93
|
+
|
|
94
|
+
### WithInputAtEdgeScrollable
|
|
95
|
+
|
|
96
|
+
The same, with scrolling — the case where a focus ring can be cut by the scroll container
|
|
97
|
+
rather than the panel.
|
|
98
|
+
|
|
99
|
+
Source: Dialog/Dialog.stories.tsx#WithInputAtEdgeScrollable
|
|
100
|
+
|
|
101
|
+
### WithNestedDrawer
|
|
102
|
+
|
|
103
|
+
A drawer opened from a dialog. Different families, so neither pushes the other back; they
|
|
104
|
+
stack.
|
|
105
|
+
|
|
106
|
+
Source: Dialog/Dialog.stories.tsx#WithNestedDrawer
|
|
107
|
+
|
|
108
|
+
### WithNestedSelect
|
|
109
|
+
|
|
110
|
+
A `Select` inside a dialog, checking that its menu escapes the panel rather than being
|
|
111
|
+
clipped by it.
|
|
112
|
+
|
|
113
|
+
Source: Dialog/Dialog.stories.tsx#WithNestedSelect
|
|
114
|
+
|
|
115
|
+
### WithNestedCalendar
|
|
116
|
+
|
|
117
|
+
A `Calendar` inside a dialog, the same check for a popover that is taller than the panel.
|
|
118
|
+
|
|
119
|
+
Source: Dialog/Dialog.stories.tsx#WithNestedCalendar
|
|
120
|
+
|
|
121
|
+
### Controlled
|
|
122
|
+
|
|
123
|
+
Owning `open`, which is what you need when something outside the dialog decides it should
|
|
124
|
+
close.
|
|
125
|
+
|
|
126
|
+
Source: Dialog/Dialog.stories.tsx#Controlled
|
|
127
|
+
|
|
128
|
+
### NoClosableOnEsc
|
|
129
|
+
|
|
130
|
+
Escape disabled, for a decision that must not be dismissed by reflex. Use it sparingly — it
|
|
131
|
+
takes away the exit readers expect.
|
|
132
|
+
|
|
133
|
+
Source: Dialog/Dialog.stories.tsx#NoClosableOnEsc
|
|
134
|
+
|
|
135
|
+
### NoOverlay
|
|
136
|
+
|
|
137
|
+
Without the backdrop. The panel stops reading as blocking, which is usually the wrong signal
|
|
138
|
+
for a dialog.
|
|
139
|
+
|
|
140
|
+
Source: Dialog/Dialog.stories.tsx#NoOverlay
|
|
141
|
+
|
|
142
|
+
### WithNested
|
|
143
|
+
|
|
144
|
+
A dialog inside a dialog: the outer one steps back so the depth is visible. Two is the most a
|
|
145
|
+
reader can follow.
|
|
146
|
+
|
|
147
|
+
Source: Dialog/Dialog.stories.tsx#WithNested
|
|
148
|
+
|
|
149
|
+
### WithTabs
|
|
150
|
+
|
|
151
|
+
Tabs inside a dialog, for a task with a couple of facets — not as a way to fit a whole form
|
|
152
|
+
into one panel.
|
|
153
|
+
|
|
154
|
+
Source: Dialog/Dialog.stories.tsx#WithTabs
|
|
155
|
+
|
|
156
|
+
## Story sources
|
|
157
|
+
|
|
158
|
+
### Dialog/Dialog.stories.tsx
|
|
159
|
+
|
|
160
|
+
```tsx
|
|
161
|
+
import { useState } from 'react';
|
|
162
|
+
import { createListCollection } from '@ark-ui/react/collection';
|
|
163
|
+
import type { Meta, StoryFn } from 'storybook-react-rsbuild';
|
|
164
|
+
import { PanelRight } from '../../icons';
|
|
165
|
+
import { Button } from '../Button';
|
|
166
|
+
import {
|
|
167
|
+
Calendar,
|
|
168
|
+
CalendarBody,
|
|
169
|
+
CalendarContent,
|
|
170
|
+
CalendarGrids,
|
|
171
|
+
CalendarTrigger,
|
|
172
|
+
} from '../Calendar';
|
|
173
|
+
import {
|
|
174
|
+
Drawer,
|
|
175
|
+
DrawerBody,
|
|
176
|
+
DrawerContent,
|
|
177
|
+
DrawerHeader,
|
|
178
|
+
DrawerTitle,
|
|
179
|
+
DrawerTrigger,
|
|
180
|
+
} from '../Drawer';
|
|
181
|
+
import {
|
|
182
|
+
DropdownMenu,
|
|
183
|
+
DropdownMenuContent,
|
|
184
|
+
DropdownMenuItem,
|
|
185
|
+
DropdownMenuTrigger,
|
|
186
|
+
} from '../DropdownMenu';
|
|
187
|
+
import { Input } from '../Input';
|
|
188
|
+
import {
|
|
189
|
+
Select,
|
|
190
|
+
SelectButton,
|
|
191
|
+
SelectContent,
|
|
192
|
+
SelectOption,
|
|
193
|
+
SelectOptionIndicator,
|
|
194
|
+
SelectOptionText,
|
|
195
|
+
SelectPositioner,
|
|
196
|
+
} from '../Select';
|
|
197
|
+
import { HStack, VStack } from '../Stack';
|
|
198
|
+
import { Switch, SwitchControl, SwitchLabel } from '../Switch';
|
|
199
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '../Tabs';
|
|
200
|
+
import { Text } from '../Text';
|
|
201
|
+
import { DIALOG_SIZES, DIALOG_WIDTH_CONSTRAINTS } from './constants';
|
|
202
|
+
import { Dialog, type DialogProps } from './Dialog';
|
|
203
|
+
import { DialogBody } from './DialogBody';
|
|
204
|
+
import { DialogClose } from './DialogClose';
|
|
205
|
+
import { DialogContent } from './DialogContent';
|
|
206
|
+
import { DialogDescription } from './DialogDescription';
|
|
207
|
+
import { DialogFooter } from './DialogFooter';
|
|
208
|
+
import { DialogFooterControls } from './DialogFooterControls';
|
|
209
|
+
import { DialogHeader } from './DialogHeader';
|
|
210
|
+
import { DialogTitle } from './DialogTitle';
|
|
211
|
+
import { DialogTrigger } from './DialogTrigger';
|
|
212
|
+
|
|
213
|
+
const DESCRIPTION = [
|
|
214
|
+
'A panel the reader has to resolve before carrying on — reach for `Drawer` when they should be able to keep it open and keep working, and `Popover` when the content is a detail rather than a task.',
|
|
215
|
+
"It is `Drawer` with `kind='dialog'`, which shares the panel but keeps the two families' nesting separate: a dialog only steps back for another dialog.",
|
|
216
|
+
].join(' ');
|
|
217
|
+
|
|
218
|
+
const meta = {
|
|
219
|
+
title: 'Overlay/Dialog',
|
|
220
|
+
component: Dialog,
|
|
221
|
+
subcomponents: {
|
|
222
|
+
DialogTrigger,
|
|
223
|
+
DialogContent,
|
|
224
|
+
DialogHeader,
|
|
225
|
+
DialogTitle,
|
|
226
|
+
DialogDescription,
|
|
227
|
+
DialogBody,
|
|
228
|
+
DialogFooter,
|
|
229
|
+
DialogFooterControls,
|
|
230
|
+
DialogClose,
|
|
231
|
+
},
|
|
232
|
+
parameters: {
|
|
233
|
+
layout: 'centered',
|
|
234
|
+
docs: {
|
|
235
|
+
description: {
|
|
236
|
+
component: DESCRIPTION,
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
argTypes: {
|
|
241
|
+
open: {
|
|
242
|
+
control: { type: 'boolean' },
|
|
243
|
+
description: 'Whether the dialog is open',
|
|
244
|
+
},
|
|
245
|
+
width: {
|
|
246
|
+
control: { type: 'number' },
|
|
247
|
+
description: `Initial width of the dialog. Presets: small=${DIALOG_SIZES.small}, medium=${DIALOG_SIZES.medium}, large=${DIALOG_SIZES.large}`,
|
|
248
|
+
defaultValue: DIALOG_SIZES.small,
|
|
249
|
+
},
|
|
250
|
+
minWidth: {
|
|
251
|
+
control: { type: 'number' },
|
|
252
|
+
description: 'Minimum width',
|
|
253
|
+
defaultValue: DIALOG_WIDTH_CONSTRAINTS.min,
|
|
254
|
+
},
|
|
255
|
+
maxWidth: {
|
|
256
|
+
control: { type: 'number' },
|
|
257
|
+
description: 'Maximum width',
|
|
258
|
+
defaultValue: DIALOG_WIDTH_CONSTRAINTS.max,
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
decorators: [],
|
|
262
|
+
} satisfies Meta<typeof Dialog>;
|
|
263
|
+
|
|
264
|
+
export default meta;
|
|
265
|
+
|
|
266
|
+
/** Content placeholder styled like Figma designs - fills available space */
|
|
267
|
+
const ContentPlaceholder = ({ height }: { fillHeight?: boolean; height?: number }) => (
|
|
268
|
+
<div
|
|
269
|
+
className='w-full rounded-12 bg-bg-surface-5'
|
|
270
|
+
style={height ? { height: `${height}px` } : { height: '200px' }}
|
|
271
|
+
/>
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* The minimum: trigger, content, and a title. Every dialog needs a title — it is what a screen
|
|
276
|
+
* reader announces on open.
|
|
277
|
+
*/
|
|
278
|
+
export const Basic: StoryFn<DialogProps> = () => {
|
|
279
|
+
return (
|
|
280
|
+
<Dialog data-testid='dialog'>
|
|
281
|
+
<DialogTrigger asChild>
|
|
282
|
+
<Button variant='outline' color='neutral'>
|
|
283
|
+
Open Dialog
|
|
284
|
+
</Button>
|
|
285
|
+
</DialogTrigger>
|
|
286
|
+
|
|
287
|
+
<DialogContent>
|
|
288
|
+
<DialogHeader>
|
|
289
|
+
<DialogTitle>Dialog Title</DialogTitle>
|
|
290
|
+
</DialogHeader>
|
|
291
|
+
|
|
292
|
+
<DialogBody>
|
|
293
|
+
<ContentPlaceholder />
|
|
294
|
+
</DialogBody>
|
|
295
|
+
</DialogContent>
|
|
296
|
+
</Dialog>
|
|
297
|
+
);
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* `DialogFooter` holds the decision. Put the confirming action last, since that is where the
|
|
302
|
+
* eye finishes.
|
|
303
|
+
*/
|
|
304
|
+
export const WithFooter: StoryFn<DialogProps> = () => {
|
|
305
|
+
return (
|
|
306
|
+
<Dialog>
|
|
307
|
+
<DialogTrigger asChild>
|
|
308
|
+
<Button variant='outline' color='neutral'>
|
|
309
|
+
Open Dialog
|
|
310
|
+
</Button>
|
|
311
|
+
</DialogTrigger>
|
|
312
|
+
|
|
313
|
+
<DialogContent>
|
|
314
|
+
<DialogHeader>
|
|
315
|
+
<DialogTitle>Dialog's title</DialogTitle>
|
|
316
|
+
</DialogHeader>
|
|
317
|
+
|
|
318
|
+
<DialogBody>
|
|
319
|
+
<ContentPlaceholder />
|
|
320
|
+
</DialogBody>
|
|
321
|
+
|
|
322
|
+
<DialogFooter>
|
|
323
|
+
<DialogFooterControls>
|
|
324
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
325
|
+
Button
|
|
326
|
+
</Button>
|
|
327
|
+
<Button variant='primary' color='brand' size='large'>
|
|
328
|
+
Button
|
|
329
|
+
</Button>
|
|
330
|
+
</DialogFooterControls>
|
|
331
|
+
</DialogFooter>
|
|
332
|
+
</DialogContent>
|
|
333
|
+
</Dialog>
|
|
334
|
+
);
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* `DialogDescription` states the consequence, which is what turns a confirmation from a speed
|
|
339
|
+
* bump into a decision. `DialogHeader` finds the title and description among its children and
|
|
340
|
+
* stacks them, so the close button stays right-aligned however many it gets.
|
|
341
|
+
*/
|
|
342
|
+
export const WithDescription: StoryFn<DialogProps> = () => {
|
|
343
|
+
return (
|
|
344
|
+
<Dialog>
|
|
345
|
+
<DialogTrigger asChild>
|
|
346
|
+
<Button variant='outline' color='neutral'>
|
|
347
|
+
Open Dialog
|
|
348
|
+
</Button>
|
|
349
|
+
</DialogTrigger>
|
|
350
|
+
|
|
351
|
+
<DialogContent>
|
|
352
|
+
<DialogHeader>
|
|
353
|
+
<DialogTitle>Dialog's title</DialogTitle>
|
|
354
|
+
<DialogDescription>Description</DialogDescription>
|
|
355
|
+
</DialogHeader>
|
|
356
|
+
|
|
357
|
+
<DialogBody>
|
|
358
|
+
<ContentPlaceholder />
|
|
359
|
+
</DialogBody>
|
|
360
|
+
|
|
361
|
+
<DialogFooter>
|
|
362
|
+
<DialogFooterControls>
|
|
363
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
364
|
+
Button
|
|
365
|
+
</Button>
|
|
366
|
+
<Button variant='primary' color='brand' size='large'>
|
|
367
|
+
Button
|
|
368
|
+
</Button>
|
|
369
|
+
</DialogFooterControls>
|
|
370
|
+
</DialogFooter>
|
|
371
|
+
</DialogContent>
|
|
372
|
+
</Dialog>
|
|
373
|
+
);
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* A left-aligned action for the escape route — cancel, learn more — kept away from the
|
|
378
|
+
* confirming pair on the right.
|
|
379
|
+
*/
|
|
380
|
+
export const WithFooterLeftActions: StoryFn<DialogProps> = () => (
|
|
381
|
+
<Dialog>
|
|
382
|
+
<DialogTrigger asChild>
|
|
383
|
+
<Button variant='outline' color='neutral'>
|
|
384
|
+
Open with Footer Actions
|
|
385
|
+
</Button>
|
|
386
|
+
</DialogTrigger>
|
|
387
|
+
<DialogContent>
|
|
388
|
+
<DialogHeader>
|
|
389
|
+
<DialogTitle>Footer with Left Actions</DialogTitle>
|
|
390
|
+
</DialogHeader>
|
|
391
|
+
|
|
392
|
+
<DialogBody>
|
|
393
|
+
<ContentPlaceholder />
|
|
394
|
+
</DialogBody>
|
|
395
|
+
|
|
396
|
+
<DialogFooter>
|
|
397
|
+
<DialogFooterControls placement='left'>
|
|
398
|
+
<Switch>
|
|
399
|
+
<SwitchControl />
|
|
400
|
+
<SwitchLabel>Remember choice</SwitchLabel>
|
|
401
|
+
</Switch>
|
|
402
|
+
</DialogFooterControls>
|
|
403
|
+
|
|
404
|
+
<DialogClose asChild>
|
|
405
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
406
|
+
Cancel
|
|
407
|
+
</Button>
|
|
408
|
+
</DialogClose>
|
|
409
|
+
<Button variant='primary' color='brand' size='large'>
|
|
410
|
+
Apply
|
|
411
|
+
</Button>
|
|
412
|
+
</DialogFooter>
|
|
413
|
+
</DialogContent>
|
|
414
|
+
</Dialog>
|
|
415
|
+
);
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* The standard widths. Pick by the content, not the importance: a wide dialog for a short
|
|
419
|
+
* question reads as a mistake.
|
|
420
|
+
*/
|
|
421
|
+
export const Sizes: StoryFn<DialogProps> = () => (
|
|
422
|
+
<HStack gap={8} justify='center'>
|
|
423
|
+
<Dialog width={DIALOG_SIZES.small}>
|
|
424
|
+
<DialogTrigger asChild>
|
|
425
|
+
<Button variant='outline' color='neutral'>
|
|
426
|
+
Open Small ({DIALOG_SIZES.small}px)
|
|
427
|
+
</Button>
|
|
428
|
+
</DialogTrigger>
|
|
429
|
+
<DialogContent>
|
|
430
|
+
<DialogHeader>
|
|
431
|
+
<DialogTitle>Small Dialog ({DIALOG_SIZES.small}px)</DialogTitle>
|
|
432
|
+
</DialogHeader>
|
|
433
|
+
|
|
434
|
+
<DialogBody>
|
|
435
|
+
<ContentPlaceholder />
|
|
436
|
+
</DialogBody>
|
|
437
|
+
</DialogContent>
|
|
438
|
+
</Dialog>
|
|
439
|
+
|
|
440
|
+
<Dialog width={DIALOG_SIZES.medium}>
|
|
441
|
+
<DialogTrigger asChild>
|
|
442
|
+
<Button variant='outline' color='neutral'>
|
|
443
|
+
Open Medium ({DIALOG_SIZES.medium}px)
|
|
444
|
+
</Button>
|
|
445
|
+
</DialogTrigger>
|
|
446
|
+
<DialogContent>
|
|
447
|
+
<DialogHeader>
|
|
448
|
+
<DialogTitle>Medium Dialog ({DIALOG_SIZES.medium}px)</DialogTitle>
|
|
449
|
+
</DialogHeader>
|
|
450
|
+
|
|
451
|
+
<DialogBody>
|
|
452
|
+
<ContentPlaceholder />
|
|
453
|
+
</DialogBody>
|
|
454
|
+
</DialogContent>
|
|
455
|
+
</Dialog>
|
|
456
|
+
|
|
457
|
+
<Dialog width={DIALOG_SIZES.large}>
|
|
458
|
+
<DialogTrigger asChild>
|
|
459
|
+
<Button variant='outline' color='neutral'>
|
|
460
|
+
Open Large ({DIALOG_SIZES.large}px)
|
|
461
|
+
</Button>
|
|
462
|
+
</DialogTrigger>
|
|
463
|
+
<DialogContent>
|
|
464
|
+
<DialogHeader>
|
|
465
|
+
<DialogTitle>Large Dialog ({DIALOG_SIZES.large}px)</DialogTitle>
|
|
466
|
+
</DialogHeader>
|
|
467
|
+
|
|
468
|
+
<DialogBody>
|
|
469
|
+
<ContentPlaceholder />
|
|
470
|
+
</DialogBody>
|
|
471
|
+
</DialogContent>
|
|
472
|
+
</Dialog>
|
|
473
|
+
</HStack>
|
|
474
|
+
);
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Explicit `width`, `minWidth` and `maxWidth` for content the standard steps do not fit.
|
|
478
|
+
*/
|
|
479
|
+
export const CustomSizes: StoryFn<DialogProps> = () => {
|
|
480
|
+
return (
|
|
481
|
+
<HStack gap={8} justify='center'>
|
|
482
|
+
<Dialog width='50%'>
|
|
483
|
+
<DialogTrigger asChild>
|
|
484
|
+
<Button variant='outline' color='neutral'>
|
|
485
|
+
50% Width
|
|
486
|
+
</Button>
|
|
487
|
+
</DialogTrigger>
|
|
488
|
+
|
|
489
|
+
<DialogContent>
|
|
490
|
+
<DialogHeader>
|
|
491
|
+
<DialogTitle>50% Width Dialog</DialogTitle>
|
|
492
|
+
</DialogHeader>
|
|
493
|
+
|
|
494
|
+
<DialogBody>
|
|
495
|
+
<div className='py-12'>
|
|
496
|
+
<p>This dialog takes 50% of the viewport width.</p>
|
|
497
|
+
</div>
|
|
498
|
+
</DialogBody>
|
|
499
|
+
</DialogContent>
|
|
500
|
+
</Dialog>
|
|
501
|
+
|
|
502
|
+
<Dialog width={1000}>
|
|
503
|
+
<DialogTrigger asChild>
|
|
504
|
+
<Button variant='outline' color='neutral'>
|
|
505
|
+
1000px Width
|
|
506
|
+
</Button>
|
|
507
|
+
</DialogTrigger>
|
|
508
|
+
|
|
509
|
+
<DialogContent>
|
|
510
|
+
<DialogHeader>
|
|
511
|
+
<DialogTitle>1000px Width Dialog</DialogTitle>
|
|
512
|
+
</DialogHeader>
|
|
513
|
+
|
|
514
|
+
<DialogBody>
|
|
515
|
+
<div className='py-12'>
|
|
516
|
+
<p>This dialog has a fixed width of 1000px.</p>
|
|
517
|
+
</div>
|
|
518
|
+
</DialogBody>
|
|
519
|
+
</DialogContent>
|
|
520
|
+
</Dialog>
|
|
521
|
+
</HStack>
|
|
522
|
+
);
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* The body scrolls while header and footer stay put, so the decision never scrolls out of
|
|
527
|
+
* reach.
|
|
528
|
+
*/
|
|
529
|
+
export const Scrollable: StoryFn<DialogProps> = () => {
|
|
530
|
+
return (
|
|
531
|
+
<Dialog>
|
|
532
|
+
<DialogTrigger asChild>
|
|
533
|
+
<Button variant='outline' color='neutral'>
|
|
534
|
+
Open Dialog with Scroll
|
|
535
|
+
</Button>
|
|
536
|
+
</DialogTrigger>
|
|
537
|
+
|
|
538
|
+
<DialogContent>
|
|
539
|
+
<DialogHeader>
|
|
540
|
+
<DialogTitle>Scrollable Content</DialogTitle>
|
|
541
|
+
</DialogHeader>
|
|
542
|
+
|
|
543
|
+
<DialogBody>
|
|
544
|
+
<div className='flex flex-col gap-16'>
|
|
545
|
+
{Array.from({ length: 20 }).map((_, i) => (
|
|
546
|
+
<ContentPlaceholder key={i} height={100} />
|
|
547
|
+
))}
|
|
548
|
+
</div>
|
|
549
|
+
</DialogBody>
|
|
550
|
+
|
|
551
|
+
<DialogFooter>
|
|
552
|
+
<DialogClose asChild>
|
|
553
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
554
|
+
Close
|
|
555
|
+
</Button>
|
|
556
|
+
</DialogClose>
|
|
557
|
+
<Button variant='primary' color='brand' size='large'>
|
|
558
|
+
Confirm
|
|
559
|
+
</Button>
|
|
560
|
+
</DialogFooter>
|
|
561
|
+
</DialogContent>
|
|
562
|
+
</Dialog>
|
|
563
|
+
);
|
|
564
|
+
};
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* A field against the panel edge, which is where focus rings and shadows get clipped if the
|
|
568
|
+
* padding is wrong.
|
|
569
|
+
*/
|
|
570
|
+
export const WithInputAtEdge: StoryFn<DialogProps> = () => {
|
|
571
|
+
return (
|
|
572
|
+
<Dialog>
|
|
573
|
+
<DialogTrigger asChild>
|
|
574
|
+
<Button variant='outline' color='neutral'>
|
|
575
|
+
Open Dialog with Edge Input
|
|
576
|
+
</Button>
|
|
577
|
+
</DialogTrigger>
|
|
578
|
+
|
|
579
|
+
<DialogContent>
|
|
580
|
+
<DialogHeader>
|
|
581
|
+
<DialogTitle>Delete account</DialogTitle>
|
|
582
|
+
</DialogHeader>
|
|
583
|
+
|
|
584
|
+
<DialogBody>
|
|
585
|
+
<Input placeholder='Type your email to confirm' data-testid='edge-input' />
|
|
586
|
+
</DialogBody>
|
|
587
|
+
|
|
588
|
+
<DialogFooter>
|
|
589
|
+
<DialogClose asChild>
|
|
590
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
591
|
+
Cancel
|
|
592
|
+
</Button>
|
|
593
|
+
</DialogClose>
|
|
594
|
+
<Button variant='primary' color='destructive' size='large'>
|
|
595
|
+
Delete
|
|
596
|
+
</Button>
|
|
597
|
+
</DialogFooter>
|
|
598
|
+
</DialogContent>
|
|
599
|
+
</Dialog>
|
|
600
|
+
);
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* The same, with scrolling — the case where a focus ring can be cut by the scroll container
|
|
605
|
+
* rather than the panel.
|
|
606
|
+
*/
|
|
607
|
+
export const WithInputAtEdgeScrollable: StoryFn<DialogProps> = () => {
|
|
608
|
+
return (
|
|
609
|
+
<Dialog>
|
|
610
|
+
<DialogTrigger asChild>
|
|
611
|
+
<Button variant='outline' color='neutral'>
|
|
612
|
+
Open Scrollable Dialog with Edge Input
|
|
613
|
+
</Button>
|
|
614
|
+
</DialogTrigger>
|
|
615
|
+
|
|
616
|
+
<DialogContent>
|
|
617
|
+
<DialogHeader>
|
|
618
|
+
<DialogTitle>Delete account</DialogTitle>
|
|
619
|
+
</DialogHeader>
|
|
620
|
+
|
|
621
|
+
<DialogBody>
|
|
622
|
+
<div className='flex flex-col gap-16'>
|
|
623
|
+
{Array.from({ length: 10 }).map((_, i) => (
|
|
624
|
+
<ContentPlaceholder key={i} height={100} />
|
|
625
|
+
))}
|
|
626
|
+
|
|
627
|
+
<Input placeholder='Type your email to confirm' data-testid='edge-input' />
|
|
628
|
+
</div>
|
|
629
|
+
</DialogBody>
|
|
630
|
+
|
|
631
|
+
<DialogFooter>
|
|
632
|
+
<DialogClose asChild>
|
|
633
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
634
|
+
Cancel
|
|
635
|
+
</Button>
|
|
636
|
+
</DialogClose>
|
|
637
|
+
<Button variant='primary' color='destructive' size='large'>
|
|
638
|
+
Delete
|
|
639
|
+
</Button>
|
|
640
|
+
</DialogFooter>
|
|
641
|
+
</DialogContent>
|
|
642
|
+
</Dialog>
|
|
643
|
+
);
|
|
644
|
+
};
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* A drawer opened from a dialog. Different families, so neither pushes the other back; they
|
|
648
|
+
* stack.
|
|
649
|
+
*/
|
|
650
|
+
export const WithNestedDrawer: StoryFn<DialogProps> = () => {
|
|
651
|
+
return (
|
|
652
|
+
<Dialog>
|
|
653
|
+
<DialogTrigger asChild>
|
|
654
|
+
<Button variant='outline' color='neutral'>
|
|
655
|
+
Open dialog with drawer inside
|
|
656
|
+
</Button>
|
|
657
|
+
</DialogTrigger>
|
|
658
|
+
|
|
659
|
+
<DialogContent>
|
|
660
|
+
<DialogHeader>
|
|
661
|
+
<DialogTitle>Dialog stays in place</DialogTitle>
|
|
662
|
+
</DialogHeader>
|
|
663
|
+
|
|
664
|
+
<DialogBody>
|
|
665
|
+
<VStack gap={12} align='start'>
|
|
666
|
+
<Text>Opening the drawer below must not scale or shift this dialog.</Text>
|
|
667
|
+
|
|
668
|
+
<Drawer>
|
|
669
|
+
<DrawerTrigger asChild>
|
|
670
|
+
<Button variant='outline' color='neutral'>
|
|
671
|
+
<PanelRight />
|
|
672
|
+
Open drawer
|
|
673
|
+
</Button>
|
|
674
|
+
</DrawerTrigger>
|
|
675
|
+
|
|
676
|
+
<DrawerContent>
|
|
677
|
+
<DrawerHeader>
|
|
678
|
+
<DrawerTitle>Drawer over a dialog</DrawerTitle>
|
|
679
|
+
</DrawerHeader>
|
|
680
|
+
|
|
681
|
+
<DrawerBody>
|
|
682
|
+
<ContentPlaceholder height={200} />
|
|
683
|
+
</DrawerBody>
|
|
684
|
+
</DrawerContent>
|
|
685
|
+
</Drawer>
|
|
686
|
+
</VStack>
|
|
687
|
+
</DialogBody>
|
|
688
|
+
</DialogContent>
|
|
689
|
+
</Dialog>
|
|
690
|
+
);
|
|
691
|
+
};
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* A `Select` inside a dialog, checking that its menu escapes the panel rather than being
|
|
695
|
+
* clipped by it.
|
|
696
|
+
*/
|
|
697
|
+
export const WithNestedSelect: StoryFn<DialogProps> = () => {
|
|
698
|
+
const collection = createListCollection({
|
|
699
|
+
items: [
|
|
700
|
+
{ label: 'React', value: 'react' },
|
|
701
|
+
{ label: 'Vue', value: 'vue' },
|
|
702
|
+
{ label: 'Angular', value: 'angular' },
|
|
703
|
+
],
|
|
704
|
+
});
|
|
705
|
+
|
|
706
|
+
return (
|
|
707
|
+
<Dialog>
|
|
708
|
+
<DialogTrigger asChild>
|
|
709
|
+
<Button variant='outline' color='neutral'>
|
|
710
|
+
Open dialog with nested select
|
|
711
|
+
</Button>
|
|
712
|
+
</DialogTrigger>
|
|
713
|
+
|
|
714
|
+
<DialogContent>
|
|
715
|
+
<DialogHeader>
|
|
716
|
+
<DialogTitle>[Level 1] Main Dialog</DialogTitle>
|
|
717
|
+
|
|
718
|
+
<Dialog>
|
|
719
|
+
<DialogTrigger asChild>
|
|
720
|
+
<Button variant='ghost' color='neutral' size='small'>
|
|
721
|
+
<PanelRight />
|
|
722
|
+
Open nested dialog
|
|
723
|
+
</Button>
|
|
724
|
+
</DialogTrigger>
|
|
725
|
+
|
|
726
|
+
<DialogContent>
|
|
727
|
+
<DialogHeader>
|
|
728
|
+
<DialogTitle>[Level 2] With Select</DialogTitle>
|
|
729
|
+
</DialogHeader>
|
|
730
|
+
|
|
731
|
+
<DialogBody>
|
|
732
|
+
<VStack gap={12} align='start'>
|
|
733
|
+
<Select collection={collection} data-testid='nested-select'>
|
|
734
|
+
<SelectButton />
|
|
735
|
+
|
|
736
|
+
<SelectPositioner>
|
|
737
|
+
<SelectContent>
|
|
738
|
+
{collection.items.map(item => (
|
|
739
|
+
<SelectOption key={item.value} item={item}>
|
|
740
|
+
<SelectOptionText>{item.label}</SelectOptionText>
|
|
741
|
+
<SelectOptionIndicator />
|
|
742
|
+
</SelectOption>
|
|
743
|
+
))}
|
|
744
|
+
</SelectContent>
|
|
745
|
+
</SelectPositioner>
|
|
746
|
+
</Select>
|
|
747
|
+
|
|
748
|
+
<DropdownMenu data-testid='nested-dropdown'>
|
|
749
|
+
<DropdownMenuTrigger asChild>
|
|
750
|
+
<Button variant='outline' color='neutral'>
|
|
751
|
+
Open menu
|
|
752
|
+
</Button>
|
|
753
|
+
</DropdownMenuTrigger>
|
|
754
|
+
<DropdownMenuContent>
|
|
755
|
+
<DropdownMenuItem>First action</DropdownMenuItem>
|
|
756
|
+
<DropdownMenuItem>Second action</DropdownMenuItem>
|
|
757
|
+
</DropdownMenuContent>
|
|
758
|
+
</DropdownMenu>
|
|
759
|
+
</VStack>
|
|
760
|
+
</DialogBody>
|
|
761
|
+
</DialogContent>
|
|
762
|
+
</Dialog>
|
|
763
|
+
</DialogHeader>
|
|
764
|
+
|
|
765
|
+
<DialogBody>
|
|
766
|
+
<ContentPlaceholder height={200} />
|
|
767
|
+
</DialogBody>
|
|
768
|
+
</DialogContent>
|
|
769
|
+
</Dialog>
|
|
770
|
+
);
|
|
771
|
+
};
|
|
772
|
+
|
|
773
|
+
/**
|
|
774
|
+
* A `Calendar` inside a dialog, the same check for a popover that is taller than the panel.
|
|
775
|
+
*/
|
|
776
|
+
export const WithNestedCalendar: StoryFn<DialogProps> = () => {
|
|
777
|
+
return (
|
|
778
|
+
<Dialog>
|
|
779
|
+
<DialogTrigger asChild>
|
|
780
|
+
<Button variant='outline' color='neutral'>
|
|
781
|
+
Open dialog with nested calendar
|
|
782
|
+
</Button>
|
|
783
|
+
</DialogTrigger>
|
|
784
|
+
|
|
785
|
+
<DialogContent>
|
|
786
|
+
<DialogHeader>
|
|
787
|
+
<DialogTitle>[Level 1] Main Dialog</DialogTitle>
|
|
788
|
+
|
|
789
|
+
<Dialog>
|
|
790
|
+
<DialogTrigger asChild>
|
|
791
|
+
<Button variant='ghost' color='neutral' size='small'>
|
|
792
|
+
<PanelRight />
|
|
793
|
+
Open nested dialog
|
|
794
|
+
</Button>
|
|
795
|
+
</DialogTrigger>
|
|
796
|
+
|
|
797
|
+
<DialogContent>
|
|
798
|
+
<DialogHeader>
|
|
799
|
+
<DialogTitle>[Level 2] With Calendar</DialogTitle>
|
|
800
|
+
</DialogHeader>
|
|
801
|
+
|
|
802
|
+
<DialogBody>
|
|
803
|
+
<Calendar type='single'>
|
|
804
|
+
<CalendarTrigger asChild>
|
|
805
|
+
<Button variant='outline' color='neutral'>
|
|
806
|
+
Open calendar
|
|
807
|
+
</Button>
|
|
808
|
+
</CalendarTrigger>
|
|
809
|
+
<CalendarContent>
|
|
810
|
+
<CalendarBody>
|
|
811
|
+
<CalendarGrids />
|
|
812
|
+
</CalendarBody>
|
|
813
|
+
</CalendarContent>
|
|
814
|
+
</Calendar>
|
|
815
|
+
</DialogBody>
|
|
816
|
+
</DialogContent>
|
|
817
|
+
</Dialog>
|
|
818
|
+
</DialogHeader>
|
|
819
|
+
|
|
820
|
+
<DialogBody>
|
|
821
|
+
<ContentPlaceholder height={200} />
|
|
822
|
+
</DialogBody>
|
|
823
|
+
</DialogContent>
|
|
824
|
+
</Dialog>
|
|
825
|
+
);
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
/**
|
|
829
|
+
* Owning `open`, which is what you need when something outside the dialog decides it should
|
|
830
|
+
* close.
|
|
831
|
+
*/
|
|
832
|
+
export const Controlled: StoryFn<DialogProps> = () => {
|
|
833
|
+
const [open, setOpen] = useState(false);
|
|
834
|
+
|
|
835
|
+
return (
|
|
836
|
+
<>
|
|
837
|
+
<Button variant='outline' color='neutral' onClick={() => setOpen(true)}>
|
|
838
|
+
Open Controlled Dialog
|
|
839
|
+
</Button>
|
|
840
|
+
|
|
841
|
+
<Dialog open={open} onOpenChange={setOpen}>
|
|
842
|
+
<DialogContent>
|
|
843
|
+
<DialogHeader>
|
|
844
|
+
<DialogTitle>Controlled Dialog</DialogTitle>
|
|
845
|
+
</DialogHeader>
|
|
846
|
+
|
|
847
|
+
<DialogBody>
|
|
848
|
+
<div className='py-12'>
|
|
849
|
+
<p className='mb-16'>This dialog is controlled externally.</p>
|
|
850
|
+
<ContentPlaceholder />
|
|
851
|
+
</div>
|
|
852
|
+
</DialogBody>
|
|
853
|
+
|
|
854
|
+
<DialogFooter>
|
|
855
|
+
<DialogClose asChild>
|
|
856
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
857
|
+
Cancel
|
|
858
|
+
</Button>
|
|
859
|
+
</DialogClose>
|
|
860
|
+
<Button variant='primary' color='brand' size='large'>
|
|
861
|
+
Save Changes
|
|
862
|
+
</Button>
|
|
863
|
+
</DialogFooter>
|
|
864
|
+
</DialogContent>
|
|
865
|
+
</Dialog>
|
|
866
|
+
</>
|
|
867
|
+
);
|
|
868
|
+
};
|
|
869
|
+
|
|
870
|
+
/**
|
|
871
|
+
* Escape disabled, for a decision that must not be dismissed by reflex. Use it sparingly — it
|
|
872
|
+
* takes away the exit readers expect.
|
|
873
|
+
*/
|
|
874
|
+
export const NoClosableOnEsc: StoryFn<DialogProps> = () => {
|
|
875
|
+
return (
|
|
876
|
+
<Dialog closeOnEscape={false}>
|
|
877
|
+
<DialogTrigger asChild>
|
|
878
|
+
<Button variant='outline' color='neutral'>
|
|
879
|
+
Open Dialog
|
|
880
|
+
</Button>
|
|
881
|
+
</DialogTrigger>
|
|
882
|
+
|
|
883
|
+
<DialogContent>
|
|
884
|
+
<DialogHeader>
|
|
885
|
+
<DialogTitle>Dialog Title</DialogTitle>
|
|
886
|
+
</DialogHeader>
|
|
887
|
+
|
|
888
|
+
<DialogBody>
|
|
889
|
+
<ContentPlaceholder />
|
|
890
|
+
</DialogBody>
|
|
891
|
+
</DialogContent>
|
|
892
|
+
</Dialog>
|
|
893
|
+
);
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
/**
|
|
897
|
+
* Without the backdrop. The panel stops reading as blocking, which is usually the wrong signal
|
|
898
|
+
* for a dialog.
|
|
899
|
+
*/
|
|
900
|
+
export const NoOverlay: StoryFn<DialogProps> = () => {
|
|
901
|
+
return (
|
|
902
|
+
<VStack gap={12}>
|
|
903
|
+
<Text>
|
|
904
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has
|
|
905
|
+
been the industry's standard dummy text ever since the 1500s, when an unknown printer took a
|
|
906
|
+
galley of type and scrambled it to make a type specimen book. It has survived not only five
|
|
907
|
+
centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
|
|
908
|
+
It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum
|
|
909
|
+
passages, and more recently with desktop publishing software like Aldus PageMaker including
|
|
910
|
+
versions of Lorem Ipsum. Why do we use it? It is a long established fact that a reader will
|
|
911
|
+
be distracted by the readable content of a page when looking at its layout. The point of
|
|
912
|
+
using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed
|
|
913
|
+
to using 'Content here, content here', making it look like readable English. Many desktop
|
|
914
|
+
publishing packages and web page editors now use Lorem Ipsum as their default model text,
|
|
915
|
+
and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various
|
|
916
|
+
versions have evolved over the years, sometimes by accident, sometimes on purpose (injected
|
|
917
|
+
humour and the like).
|
|
918
|
+
</Text>
|
|
919
|
+
|
|
920
|
+
<Dialog overlay={false}>
|
|
921
|
+
<DialogTrigger asChild>
|
|
922
|
+
<Button variant='outline' color='neutral'>
|
|
923
|
+
Open without Overlay
|
|
924
|
+
</Button>
|
|
925
|
+
</DialogTrigger>
|
|
926
|
+
|
|
927
|
+
<DialogContent>
|
|
928
|
+
<DialogHeader>
|
|
929
|
+
<DialogTitle>No Overlay</DialogTitle>
|
|
930
|
+
</DialogHeader>
|
|
931
|
+
|
|
932
|
+
<DialogBody>
|
|
933
|
+
<div className='py-12'>
|
|
934
|
+
<p>This dialog has no overlay backdrop.</p>
|
|
935
|
+
</div>
|
|
936
|
+
</DialogBody>
|
|
937
|
+
</DialogContent>
|
|
938
|
+
</Dialog>
|
|
939
|
+
|
|
940
|
+
<Text>
|
|
941
|
+
Where does it come from? Contrary to popular belief, Lorem Ipsum is not simply random text.
|
|
942
|
+
It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years
|
|
943
|
+
old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up
|
|
944
|
+
one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going
|
|
945
|
+
through the cites of the word in classical literature, discovered the undoubtable source.
|
|
946
|
+
Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The
|
|
947
|
+
Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the
|
|
948
|
+
theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem
|
|
949
|
+
ipsum dolor sit amet..", comes from a line in section 1.10.32. The standard chunk of Lorem
|
|
950
|
+
Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and
|
|
951
|
+
1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact
|
|
952
|
+
original form, accompanied by English versions from the 1914 translation by H. Rackham.
|
|
953
|
+
</Text>
|
|
954
|
+
</VStack>
|
|
955
|
+
);
|
|
956
|
+
};
|
|
957
|
+
|
|
958
|
+
/**
|
|
959
|
+
* A dialog inside a dialog: the outer one steps back so the depth is visible. Two is the most a
|
|
960
|
+
* reader can follow.
|
|
961
|
+
*/
|
|
962
|
+
export const WithNested: StoryFn<DialogProps> = () => {
|
|
963
|
+
return (
|
|
964
|
+
<Dialog>
|
|
965
|
+
<DialogTrigger asChild>
|
|
966
|
+
<Button variant='outline' color='neutral'>
|
|
967
|
+
1st level dialog
|
|
968
|
+
</Button>
|
|
969
|
+
</DialogTrigger>
|
|
970
|
+
|
|
971
|
+
<DialogContent>
|
|
972
|
+
<DialogHeader>
|
|
973
|
+
<DialogTitle>[Level 1] Main Dialog</DialogTitle>
|
|
974
|
+
|
|
975
|
+
{/* Level 2 dialog */}
|
|
976
|
+
<Dialog>
|
|
977
|
+
<DialogTrigger asChild>
|
|
978
|
+
<Button variant='ghost' color='neutral' size='small'>
|
|
979
|
+
<PanelRight />
|
|
980
|
+
2nd level dialog
|
|
981
|
+
</Button>
|
|
982
|
+
</DialogTrigger>
|
|
983
|
+
|
|
984
|
+
<DialogContent>
|
|
985
|
+
<DialogHeader>
|
|
986
|
+
<DialogTitle>[Level 2] Detail View</DialogTitle>
|
|
987
|
+
{/* Level 3 dialog */}
|
|
988
|
+
<Dialog>
|
|
989
|
+
<DialogTrigger asChild>
|
|
990
|
+
<Button variant='ghost' color='neutral' size='small'>
|
|
991
|
+
<PanelRight />
|
|
992
|
+
3nd level dialog
|
|
993
|
+
</Button>
|
|
994
|
+
</DialogTrigger>
|
|
995
|
+
|
|
996
|
+
<DialogContent>
|
|
997
|
+
<DialogHeader>
|
|
998
|
+
<DialogTitle>[Level 3] Deep Nested</DialogTitle>
|
|
999
|
+
</DialogHeader>
|
|
1000
|
+
|
|
1001
|
+
<DialogBody>
|
|
1002
|
+
<VStack gap={12} align='start'>
|
|
1003
|
+
<Text>Level 3! Unlimited nesting works.</Text>
|
|
1004
|
+
<ContentPlaceholder height={150} />
|
|
1005
|
+
</VStack>
|
|
1006
|
+
</DialogBody>
|
|
1007
|
+
|
|
1008
|
+
<DialogFooter>
|
|
1009
|
+
<DialogClose asChild>
|
|
1010
|
+
<Button size='large' variant='ghost' color='neutral'>
|
|
1011
|
+
Back
|
|
1012
|
+
</Button>
|
|
1013
|
+
</DialogClose>
|
|
1014
|
+
</DialogFooter>
|
|
1015
|
+
</DialogContent>
|
|
1016
|
+
</Dialog>
|
|
1017
|
+
</DialogHeader>
|
|
1018
|
+
|
|
1019
|
+
<DialogBody>
|
|
1020
|
+
<VStack gap={12} align='start'>
|
|
1021
|
+
<Text>This is Level 2 dialog. Main dialog is pushed back.</Text>
|
|
1022
|
+
|
|
1023
|
+
<ContentPlaceholder height={150} />
|
|
1024
|
+
</VStack>
|
|
1025
|
+
</DialogBody>
|
|
1026
|
+
|
|
1027
|
+
<DialogFooter>
|
|
1028
|
+
<DialogClose asChild>
|
|
1029
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
1030
|
+
Back
|
|
1031
|
+
</Button>
|
|
1032
|
+
</DialogClose>
|
|
1033
|
+
<Button variant='primary' color='brand' size='large'>
|
|
1034
|
+
Apply
|
|
1035
|
+
</Button>
|
|
1036
|
+
</DialogFooter>
|
|
1037
|
+
</DialogContent>
|
|
1038
|
+
</Dialog>
|
|
1039
|
+
</DialogHeader>
|
|
1040
|
+
|
|
1041
|
+
<DialogBody>
|
|
1042
|
+
<VStack gap={12} align='start'>
|
|
1043
|
+
<Text>This is Level 1 dialog. Click above to open nested dialogs:</Text>
|
|
1044
|
+
|
|
1045
|
+
<ContentPlaceholder height={150} />
|
|
1046
|
+
</VStack>
|
|
1047
|
+
</DialogBody>
|
|
1048
|
+
|
|
1049
|
+
<DialogFooter>
|
|
1050
|
+
<DialogClose asChild>
|
|
1051
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
1052
|
+
Cancel
|
|
1053
|
+
</Button>
|
|
1054
|
+
</DialogClose>
|
|
1055
|
+
<Button variant='primary' color='brand' size='large'>
|
|
1056
|
+
Save
|
|
1057
|
+
</Button>
|
|
1058
|
+
</DialogFooter>
|
|
1059
|
+
</DialogContent>
|
|
1060
|
+
</Dialog>
|
|
1061
|
+
);
|
|
1062
|
+
};
|
|
1063
|
+
|
|
1064
|
+
/**
|
|
1065
|
+
* Tabs inside a dialog, for a task with a couple of facets — not as a way to fit a whole form
|
|
1066
|
+
* into one panel.
|
|
1067
|
+
*/
|
|
1068
|
+
export const WithTabs: StoryFn<DialogProps> = () => {
|
|
1069
|
+
const [activeTab, setActiveTab] = useState('tab1');
|
|
1070
|
+
|
|
1071
|
+
return (
|
|
1072
|
+
<Dialog width={960}>
|
|
1073
|
+
<DialogTrigger asChild>
|
|
1074
|
+
<Button variant='outline' color='neutral'>
|
|
1075
|
+
Open Dialog with Tabs
|
|
1076
|
+
</Button>
|
|
1077
|
+
</DialogTrigger>
|
|
1078
|
+
|
|
1079
|
+
<DialogContent>
|
|
1080
|
+
<Tabs value={activeTab} onChange={setActiveTab} asChild>
|
|
1081
|
+
<DialogHeader>
|
|
1082
|
+
<DialogTitle>Tabbed Content</DialogTitle>
|
|
1083
|
+
</DialogHeader>
|
|
1084
|
+
|
|
1085
|
+
<TabsList>
|
|
1086
|
+
<TabsTrigger value='tab1'>General</TabsTrigger>
|
|
1087
|
+
<TabsTrigger value='tab2'>Settings</TabsTrigger>
|
|
1088
|
+
<TabsTrigger value='tab3'>Advanced</TabsTrigger>
|
|
1089
|
+
</TabsList>
|
|
1090
|
+
|
|
1091
|
+
<DialogBody>
|
|
1092
|
+
<div className='pt-12'>
|
|
1093
|
+
<TabsContent value='tab1'>
|
|
1094
|
+
<h3 className='text-lg font-medium mb-8'>General Settings</h3>
|
|
1095
|
+
<ContentPlaceholder height={300} />
|
|
1096
|
+
</TabsContent>
|
|
1097
|
+
<TabsContent value='tab2'>
|
|
1098
|
+
<h3 className='text-lg font-medium mb-8'>Configuration</h3>
|
|
1099
|
+
<ContentPlaceholder height={300} />
|
|
1100
|
+
</TabsContent>
|
|
1101
|
+
<TabsContent value='tab3'>
|
|
1102
|
+
<h3 className='text-lg font-medium mb-8'>Advanced Options</h3>
|
|
1103
|
+
<ContentPlaceholder height={300} />
|
|
1104
|
+
</TabsContent>
|
|
1105
|
+
</div>
|
|
1106
|
+
</DialogBody>
|
|
1107
|
+
</Tabs>
|
|
1108
|
+
|
|
1109
|
+
<DialogFooter>
|
|
1110
|
+
<DialogClose asChild>
|
|
1111
|
+
<Button variant='ghost' color='neutral' size='large'>
|
|
1112
|
+
Cancel
|
|
1113
|
+
</Button>
|
|
1114
|
+
</DialogClose>
|
|
1115
|
+
<Button variant='primary' color='brand' size='large'>
|
|
1116
|
+
Apply Settings
|
|
1117
|
+
</Button>
|
|
1118
|
+
</DialogFooter>
|
|
1119
|
+
</DialogContent>
|
|
1120
|
+
</Dialog>
|
|
1121
|
+
);
|
|
1122
|
+
};
|
|
1123
|
+
```
|
|
1124
|
+
|
|
1125
|
+
### Dialog/constants.ts
|
|
1126
|
+
|
|
1127
|
+
```tsx
|
|
1128
|
+
/** Preset drawer widths in pixels */
|
|
1129
|
+
export const DIALOG_SIZES = {
|
|
1130
|
+
small: 400,
|
|
1131
|
+
medium: 560,
|
|
1132
|
+
large: 960,
|
|
1133
|
+
} as const;
|
|
1134
|
+
|
|
1135
|
+
/** Default min/max width constraints */
|
|
1136
|
+
export const DIALOG_WIDTH_CONSTRAINTS = {
|
|
1137
|
+
min: 400,
|
|
1138
|
+
max: 1130,
|
|
1139
|
+
} as const;
|
|
1140
|
+
```
|