@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
package/README.md
CHANGED
|
@@ -1,3 +1,115 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Wallarm Design System for Claude Design
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Install [Wallarm Design System](https://github.com/wallarm/design-system) in Claude Design from
|
|
4
|
+
one prompt. Paste the prompt from the [Claude Design guide](https://wallarm.github.io/design-system/ai/claude-design)
|
|
5
|
+
into a Claude Design chat; Claude runs:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx -y @wallarm-org/claude-design@latest export
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The command writes `wallarm-design-system/` and never prompts:
|
|
12
|
+
|
|
13
|
+
| Path | Contents |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `project/` | The system to publish as a Design System artifact: runtime bundle, tokens, CSS, fonts, component guides and previews. Its index lists no asset groups until `index` adds them |
|
|
16
|
+
| `assets/`, `assets.json` | The icon and logo SVGs for the system's galleries, uploaded as assets (not files), and their manifest (group, name, path, sha256, size, type, in gallery order) |
|
|
17
|
+
| `SETUP.md` | Claude's steps: publish the system, install it on a canvas, add and check the sampler |
|
|
18
|
+
| `UPDATE.md` | Claude's steps to update an installed system to this release (also written alone by `update`) |
|
|
19
|
+
| `wallarm-sampler.dc.html` | The sampler artboard, linked to the canvas's `ds/wallarm-design-system/` copy |
|
|
20
|
+
| `files.json` | Each written file with its sha256 |
|
|
21
|
+
| `removed.json` | With `--existing`: the paths an update drops |
|
|
22
|
+
|
|
23
|
+
Options: `--dir <folder>` (default `wallarm-design-system`), `--overwrite` (required when the
|
|
24
|
+
folder has files), `--existing <file>` (a JSON array of the artifact's current paths; writes
|
|
25
|
+
`removed.json`), `--index <file>` (the artifact's current `project/design-system.json`; the
|
|
26
|
+
written index keeps its keys and takes only the release's `title`, `namespace`, `libraries`,
|
|
27
|
+
`editing`, `groups`, `assetGroups` and `lastChange`, as `publish-plan.ts` does), `--json` (prints `{ ok, exitCode, data | error }`). Exit codes: `0` done,
|
|
28
|
+
`1` error, `2` usage, `3` done with a manual step (remove the paths in `removed.json`).
|
|
29
|
+
`--overwrite` replaces `project/`, `assets/`, `assets.json` and `upload.json`, and keeps only
|
|
30
|
+
the sha256 keys of `blobs.json`.
|
|
31
|
+
|
|
32
|
+
After the SVGs are uploaded, `index` writes the galleries into the exported index:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx -y @wallarm-org/claude-design@latest index [--blobs wallarm-design-system/blobs.json] [--index current-index.json] [--json]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`blobs.json` maps each SVG's path (anything ending in `assets/Icons/activity.svg`) or sha256 to
|
|
39
|
+
its 32-hex blob id or upload url (`…/_blob/<id>`); `index` rewrites it keyed by sha256. `--index` reuses the blob id of every SVG whose sha256 the system's current
|
|
40
|
+
index already has, so an update uploads only new and changed SVGs. Exit `0`: it wrote `groups`
|
|
41
|
+
and `assetGroups` (`{name, blob, size, type, sha256}` per file) into `project/design-system.json`.
|
|
42
|
+
Exit `3`: it wrote the local paths still to upload, one per unique sha256, to `upload.json` and left the
|
|
43
|
+
index alone.
|
|
44
|
+
|
|
45
|
+
To update an installed system, Claude runs `update` and follows the `UPDATE.md` it writes:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx -y @wallarm-org/claude-design@latest update [--dir wallarm-design-system] [--json]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
It writes `<dir>/UPDATE.md` (replacing an older one), deletes `blobs.json` and `upload.json` (their
|
|
52
|
+
ids may belong to another artifact) and exits `0`. It doesn't touch the artifact: `UPDATE.md` has
|
|
53
|
+
Claude save the system's file list, run `export --overwrite --existing` pinned to the same version,
|
|
54
|
+
publish the files, upload only new SVGs with `index --index` (which also merges the release into
|
|
55
|
+
the index read right before publishing), then remove dropped files and reinstall.
|
|
56
|
+
|
|
57
|
+
The package version is the design-system version it was built from.
|
|
58
|
+
|
|
59
|
+
## Maintainers
|
|
60
|
+
|
|
61
|
+
This package also builds the export. It reads the design-system sources, `scripts/metadata/`
|
|
62
|
+
and `dist/` from `../design-system` (`DESIGN_SYSTEM_DIR` in `src/config.ts`); the
|
|
63
|
+
`@wallarm-org/design-system` package is not affected. Each stable release publishes this package
|
|
64
|
+
from `deploy-site.yml` (job `claude-design`): it runs `export`, sets the version to the tag and
|
|
65
|
+
runs `pnpm publish`, whose `prepack` (`src/pack.ts`) packs `.claude-design/` into `dist/` with
|
|
66
|
+
the rendered `content/SETUP.md` and `content/UPDATE.md` and the canvas sampler. Wallarm's own artifact is synced by hand
|
|
67
|
+
with the [`claude-design-sync`](../../.claude/skills/claude-design-sync/SKILL.md) skill; the
|
|
68
|
+
designer guide is `apps/website/docs/ai/claude-design.mdx`. What Storybook does not show, and
|
|
69
|
+
so Claude Design cannot learn: [CLAUDE_DESIGN_GAP.md](./CLAUDE_DESIGN_GAP.md).
|
|
70
|
+
|
|
71
|
+
### Folders
|
|
72
|
+
|
|
73
|
+
All under `src/`. Outside it: `bin/claude-design.js` (the npm CLI, plain Node ESM) and `content/SETUP.md`, `content/UPDATE.md` (the guide templates).
|
|
74
|
+
|
|
75
|
+
| Folder | Does |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| `bundle/` | Rslib IIFE bundle (`WallarmDS` namespace, SWC React Compiler targeting React 18) |
|
|
78
|
+
| `css/` | Tailwind CSS for the canvas: the author layout kit (`safelist.ts`), wrapper-tolerant structural selectors (`wrapper-css.ts`) and the generated `components/UTILITIES.md` class list |
|
|
79
|
+
| `tokens/` | Design tokens |
|
|
80
|
+
| `docs/` | Component guides, prop types and the project README (embeds `design-system/src/guidelines/rules.md`) |
|
|
81
|
+
| `previews/` | Story previews |
|
|
82
|
+
| `sampler/` | The canonical screen `sampler.dc.html`, checked against the built CSS, tokens and exports, and shipped at the project root |
|
|
83
|
+
| `assets/` | Icons, fonts and the cover |
|
|
84
|
+
| `harness/` | React 18 tests that mount the built bundle and previews |
|
|
85
|
+
| `config.ts` | Artifact identity, namespace, budgets |
|
|
86
|
+
| `pack.ts` | `prepack`: `.claude-design/` → `dist/` for npm (SVGs moved to `dist/assets/` with `assets.json`, rendered `SETUP.md` and `UPDATE.md`, canvas sampler) |
|
|
87
|
+
| `build.ts`, `verify.ts` | Builder and repeatability check |
|
|
88
|
+
|
|
89
|
+
### Commands
|
|
90
|
+
|
|
91
|
+
`export`, `bundle`, `verify` and `test:export` need a built design system. Through turbo it is built first:
|
|
92
|
+
run them from the repo root as `pnpm turbo run <script> --filter=@wallarm-org/claude-design`.
|
|
93
|
+
After a `pnpm build`, `pnpm --filter @wallarm-org/claude-design run <script>` (or `pnpm run
|
|
94
|
+
<script>` in this folder) runs the script alone.
|
|
95
|
+
|
|
96
|
+
- `export` writes `.claude-design/project/`, `file-hashes.json` and `summary.json` (git-ignored). Fails over budget.
|
|
97
|
+
- `prepack` (also run by `pnpm pack` / `pnpm publish`) packs the export into `dist/`; run `export` first. Smoke test: `pnpm pack`, then `npx -y --package=<tgz> claude-design export --dir <tmp>`.
|
|
98
|
+
- `test:export` runs the producer unit tests and the React 18 harness (through turbo it runs `export` first).
|
|
99
|
+
- `verify` builds twice and compares every output file.
|
|
100
|
+
- `bundle` runs `rslib build` on `rslib.config.ts`: only `bundle.js`, unwrapped, into `.claude-design/rslib/`, for inspecting it (`RSDOCTOR=true` works). `export` builds through the same config.
|
|
101
|
+
- `typecheck` type-checks the exporter.
|
|
102
|
+
- `plan`, `check`, `fetch` build the publish diff against the remote artifact. Call `fetch` as `pnpm run fetch`: plain `pnpm fetch` is a pnpm built-in.
|
|
103
|
+
|
|
104
|
+
The export is not part of the root `pnpm build`.
|
|
105
|
+
|
|
106
|
+
### Which tests need a build
|
|
107
|
+
|
|
108
|
+
The harness tests (`src/harness/*.harness.test.ts`) and `src/build.test.ts` read the built
|
|
109
|
+
project: run `export` first. The other `*.test.ts` files test the producers against the
|
|
110
|
+
design-system sources and `dist/`.
|
|
111
|
+
|
|
112
|
+
### Budgets
|
|
113
|
+
|
|
114
|
+
Set in `src/config.ts`, enforced by `src/build.ts`: bundle `bundleBudgetBytes` (5.7 MB), CSS
|
|
115
|
+
`cssCapBytes` (2 MB), whole project 256 MiB.
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// `export` copies the packaged Claude Design export (../dist) into a folder for Claude to
|
|
3
|
+
// publish; `index` writes the asset groups into its index once the SVGs are uploaded; `update`
|
|
4
|
+
// writes UPDATE.md, the steps to update an installed system to this release.
|
|
5
|
+
// Never prompts. Exit codes: 0 done, 1 error, 2 usage, 3 done with manual steps.
|
|
6
|
+
import { createHash } from 'node:crypto';
|
|
7
|
+
import {
|
|
8
|
+
cpSync,
|
|
9
|
+
existsSync,
|
|
10
|
+
mkdirSync,
|
|
11
|
+
readdirSync,
|
|
12
|
+
readFileSync,
|
|
13
|
+
rmSync,
|
|
14
|
+
writeFileSync,
|
|
15
|
+
} from 'node:fs';
|
|
16
|
+
import { join, relative, resolve } from 'node:path';
|
|
17
|
+
import { fileURLToPath } from 'node:url';
|
|
18
|
+
import { parseArgs } from 'node:util';
|
|
19
|
+
|
|
20
|
+
const SOURCE = fileURLToPath(new URL('../dist/', import.meta.url));
|
|
21
|
+
const { version } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
22
|
+
const USAGE = [
|
|
23
|
+
'Usage: npx -y @wallarm-org/claude-design@latest export [--dir wallarm-design-system] [--overwrite] [--existing current-files.json] [--index current-index.json] [--json]',
|
|
24
|
+
' npx -y @wallarm-org/claude-design@latest index [--dir wallarm-design-system] [--blobs <dir>/blobs.json] [--index current-index.json] [--json]',
|
|
25
|
+
' npx -y @wallarm-org/claude-design@latest update [--dir wallarm-design-system] [--json]',
|
|
26
|
+
].join('\n');
|
|
27
|
+
// Files the Design System page writes itself; an update never removes them.
|
|
28
|
+
const PAGE_PATHS = ['project/manifest.json', 'project/api/'];
|
|
29
|
+
// Index keys a release owns; every other key stays as the Design System page wrote it.
|
|
30
|
+
// Mirrors REPLACED in src/publish-plan.ts.
|
|
31
|
+
const RELEASE_KEYS = [
|
|
32
|
+
'title',
|
|
33
|
+
'namespace',
|
|
34
|
+
'libraries',
|
|
35
|
+
'editing',
|
|
36
|
+
'groups',
|
|
37
|
+
'assetGroups',
|
|
38
|
+
'lastChange',
|
|
39
|
+
];
|
|
40
|
+
const INDEX = 'project/design-system.json';
|
|
41
|
+
// What `export` writes beside project/; --overwrite replaces it. blobs.json stays: `index` keys
|
|
42
|
+
// it by sha256, so an id never attaches to a changed SVG. `update` deletes it: its ids belong to
|
|
43
|
+
// the artifact the folder was exported for, which may not be the one being updated.
|
|
44
|
+
const OWNED = ['project', 'assets', 'assets.json', 'upload.json'];
|
|
45
|
+
// An uploaded asset's blob id, alone or at the end of its `/_blob/<id>` url.
|
|
46
|
+
const BLOB_ID = /^[0-9a-f]{32}$/;
|
|
47
|
+
const SHA256 = /^[0-9a-f]{64}$/;
|
|
48
|
+
// A blobs.json key: a sha256, or a path ending in `assets/<group>/<name>` (any prefix).
|
|
49
|
+
const assetPath = key => /(?:^|\/)(assets\/[^/]+\/[^/]+)$/.exec(key.split('\\').join('/'))?.[1];
|
|
50
|
+
const listed = items =>
|
|
51
|
+
items.length > 10
|
|
52
|
+
? `${items.slice(0, 10).join(', ')} and ${items.length - 10} more`
|
|
53
|
+
: items.join(', ');
|
|
54
|
+
const blobId = value =>
|
|
55
|
+
typeof value === 'string' ? (/\/_blob\/([^/?#]+)/.exec(value)?.[1] ?? value) : undefined;
|
|
56
|
+
|
|
57
|
+
class Failure extends Error {
|
|
58
|
+
constructor(message, exitCode) {
|
|
59
|
+
super(message);
|
|
60
|
+
this.exitCode = exitCode;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const filesUnder = dir =>
|
|
65
|
+
readdirSync(dir, { recursive: true, withFileTypes: true })
|
|
66
|
+
.filter(file => file.isFile())
|
|
67
|
+
.map(file => relative(dir, join(file.parentPath, file.name)).split('\\').join('/'))
|
|
68
|
+
.sort();
|
|
69
|
+
|
|
70
|
+
const readJson = (file, what) => {
|
|
71
|
+
try {
|
|
72
|
+
return JSON.parse(readFileSync(file, 'utf8'));
|
|
73
|
+
} catch (error) {
|
|
74
|
+
throw new Failure(`Could not read ${file} (${error.message}). Save ${what} there.`, 2);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/** The system's current index, as saved or wrapped in a `content` string. */
|
|
79
|
+
const readIndex = file => {
|
|
80
|
+
let remote = readJson(file, `the system's ${INDEX} as JSON`);
|
|
81
|
+
if (typeof remote?.content === 'string') remote = JSON.parse(remote.content);
|
|
82
|
+
if (!remote || typeof remote !== 'object' || Array.isArray(remote))
|
|
83
|
+
throw new Failure(`${file} must be the system's ${INDEX}, a JSON object.`, 2);
|
|
84
|
+
return remote;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/** The system's current index with this release's keys. */
|
|
88
|
+
const mergeIndex = (file, packed) => {
|
|
89
|
+
const merged = { ...readIndex(file) };
|
|
90
|
+
for (const key of RELEASE_KEYS) merged[key] = packed[key];
|
|
91
|
+
return merged;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const readPaths = file => {
|
|
95
|
+
const value = readJson(file, "the system's file paths as a JSON array");
|
|
96
|
+
if (!Array.isArray(value) || !value.every(path => typeof path === 'string'))
|
|
97
|
+
throw new Failure(
|
|
98
|
+
`${file} must be a JSON array of the system's file paths, such as ["project/tokens.css"].`,
|
|
99
|
+
2,
|
|
100
|
+
);
|
|
101
|
+
return value;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Adds every SVG in assets.json to the index's asset groups with its blob id: from blobs.json
|
|
106
|
+
* (asset path or sha256 to id or `/_blob/<id>` url) or, for unchanged bytes, from the current
|
|
107
|
+
* index. Rewrites blobs.json keyed by sha256.
|
|
108
|
+
*/
|
|
109
|
+
function writeAssetIndex(values, cwd) {
|
|
110
|
+
const out = resolve(cwd, values.dir);
|
|
111
|
+
const shown = relative(cwd, out) || '.';
|
|
112
|
+
if (!existsSync(join(out, 'assets.json')))
|
|
113
|
+
throw new Failure(
|
|
114
|
+
`${join(shown, 'assets.json')} is missing. Run the export first (same --dir).`,
|
|
115
|
+
2,
|
|
116
|
+
);
|
|
117
|
+
const assets = readJson(join(out, 'assets.json'), 'the export');
|
|
118
|
+
const blobsFile = resolve(cwd, values.blobs ?? join(out, 'blobs.json'));
|
|
119
|
+
const blobs = existsSync(blobsFile) ? readJson(blobsFile, 'a JSON object') : {};
|
|
120
|
+
if (!blobs || typeof blobs !== 'object' || Array.isArray(blobs))
|
|
121
|
+
throw new Failure(
|
|
122
|
+
`${blobsFile} must be a JSON object of asset path or sha256 to blob id, such as {"assets/Icons/activity.svg": "<id>"}.`,
|
|
123
|
+
2,
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
// Blob ids by sha256: the person's current index first, then this release's uploads.
|
|
127
|
+
const ids = new Map();
|
|
128
|
+
if (values.index)
|
|
129
|
+
for (const group of Object.values(readIndex(resolve(cwd, values.index)).assetGroups ?? {}))
|
|
130
|
+
for (const file of Object.values(group?.files ?? {}))
|
|
131
|
+
if (typeof file?.sha256 === 'string' && BLOB_ID.test(file.blob ?? ''))
|
|
132
|
+
ids.set(file.sha256, file.blob);
|
|
133
|
+
const reused = new Set(ids.keys());
|
|
134
|
+
const shaOf = new Map(assets.map(a => [a.path, a.sha256]));
|
|
135
|
+
const saved = {};
|
|
136
|
+
const kept = {};
|
|
137
|
+
const invalid = [];
|
|
138
|
+
for (const [key, value] of Object.entries(blobs)) {
|
|
139
|
+
const sha = SHA256.test(key) ? key : shaOf.get(assetPath(key));
|
|
140
|
+
const id = blobId(value);
|
|
141
|
+
if (sha && BLOB_ID.test(id ?? '')) {
|
|
142
|
+
ids.set(sha, id);
|
|
143
|
+
saved[sha] = id;
|
|
144
|
+
} else {
|
|
145
|
+
invalid.push(key);
|
|
146
|
+
kept[key] = value;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (existsSync(blobsFile))
|
|
150
|
+
writeFileSync(blobsFile, `${JSON.stringify({ ...saved, ...kept }, null, 2)}\n`);
|
|
151
|
+
// One path per missing sha256: identical SVGs share an upload.
|
|
152
|
+
const missing = [
|
|
153
|
+
...new Map(
|
|
154
|
+
assets
|
|
155
|
+
.filter(a => !ids.has(a.sha256))
|
|
156
|
+
.map(a => [a.sha256, join(shown, a.path)])
|
|
157
|
+
.reverse(),
|
|
158
|
+
).values(),
|
|
159
|
+
].reverse();
|
|
160
|
+
|
|
161
|
+
if (missing.length) {
|
|
162
|
+
writeFileSync(join(out, 'upload.json'), `${JSON.stringify(missing, null, 2)}\n`);
|
|
163
|
+
const lines = [
|
|
164
|
+
`${missing.length} of ${assets.length} assets have no blob id yet; ${join(shown, INDEX)} is unchanged.`,
|
|
165
|
+
];
|
|
166
|
+
if (invalid.length)
|
|
167
|
+
lines.push(
|
|
168
|
+
`These ${invalid.length} blobs.json entries match no asset or hold no 32-character blob id or /_blob/<id> url: ${listed(invalid)}.`,
|
|
169
|
+
);
|
|
170
|
+
lines.push(
|
|
171
|
+
`Upload the files listed in ${join(shown, 'upload.json')} to the system as assets, add each one's path (as listed) and returned url to ${relative(cwd, blobsFile)}, then run this command again.`,
|
|
172
|
+
);
|
|
173
|
+
return { exitCode: 3, lines, data: { assets: assets.length, missing, invalid } };
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
rmSync(join(out, 'upload.json'), { force: true });
|
|
177
|
+
const groups = [...new Set(assets.map(a => a.group))];
|
|
178
|
+
const assetGroups = Object.fromEntries(
|
|
179
|
+
groups.map(group => {
|
|
180
|
+
const own = assets.filter(a => a.group === group);
|
|
181
|
+
return [
|
|
182
|
+
group,
|
|
183
|
+
{
|
|
184
|
+
name: group,
|
|
185
|
+
order: own.map(a => a.name),
|
|
186
|
+
files: Object.fromEntries(
|
|
187
|
+
own.map(({ name, size, type, sha256 }) => [
|
|
188
|
+
name,
|
|
189
|
+
{ name, blob: ids.get(sha256), size, type, sha256 },
|
|
190
|
+
]),
|
|
191
|
+
),
|
|
192
|
+
},
|
|
193
|
+
];
|
|
194
|
+
}),
|
|
195
|
+
);
|
|
196
|
+
const packed = JSON.parse(readFileSync(join(SOURCE, INDEX), 'utf8'));
|
|
197
|
+
// With --index, the index read right before publishing: the page's keys stay current.
|
|
198
|
+
const index = values.index
|
|
199
|
+
? mergeIndex(resolve(cwd, values.index), packed)
|
|
200
|
+
: readJson(join(out, INDEX), 'the export');
|
|
201
|
+
index.createdOnFiles ??= packed.createdOnFiles;
|
|
202
|
+
writeFileSync(
|
|
203
|
+
join(out, INDEX),
|
|
204
|
+
`${JSON.stringify({ ...index, groups, assetGroups }, null, 2)}\n`,
|
|
205
|
+
);
|
|
206
|
+
const reusedCount = assets.filter(a => reused.has(a.sha256) && !(a.sha256 in saved)).length;
|
|
207
|
+
return {
|
|
208
|
+
exitCode: 0,
|
|
209
|
+
lines: [
|
|
210
|
+
`Wrote ${assets.length} assets in ${groups.join(', ')} to ${join(shown, INDEX)}${reusedCount ? ` (${reusedCount} unchanged since the current index)` : ''}. Publish it last.`,
|
|
211
|
+
],
|
|
212
|
+
data: { assets: assets.length, groups, reused: reusedCount, missing: [], invalid: [] },
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** Writes <dir>/UPDATE.md for this release and deletes blobs.json and upload.json: an update starts with nothing uploaded. */
|
|
217
|
+
function writeUpdateGuide(values, cwd) {
|
|
218
|
+
const guide = join(SOURCE, 'UPDATE.md');
|
|
219
|
+
if (!existsSync(guide))
|
|
220
|
+
throw new Failure(
|
|
221
|
+
`This @wallarm-org/claude-design ${version} has no UPDATE.md. Run the command again with @latest, or report it at https://github.com/wallarm/design-system/issues.`,
|
|
222
|
+
1,
|
|
223
|
+
);
|
|
224
|
+
const out = resolve(cwd, values.dir);
|
|
225
|
+
mkdirSync(out, { recursive: true });
|
|
226
|
+
cpSync(guide, join(out, 'UPDATE.md'));
|
|
227
|
+
for (const file of ['blobs.json', 'upload.json']) rmSync(join(out, file), { force: true });
|
|
228
|
+
const file = join(relative(cwd, out) || '.', 'UPDATE.md');
|
|
229
|
+
return {
|
|
230
|
+
exitCode: 0,
|
|
231
|
+
lines: [`Read ${file} and follow it to update the system to Wallarm Design System ${version}.`],
|
|
232
|
+
data: { version, dir: out, file: join(out, 'UPDATE.md') },
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
function run(argv, cwd) {
|
|
237
|
+
let parsed;
|
|
238
|
+
try {
|
|
239
|
+
parsed = parseArgs({
|
|
240
|
+
args: argv,
|
|
241
|
+
allowPositionals: true,
|
|
242
|
+
options: {
|
|
243
|
+
dir: { type: 'string', default: 'wallarm-design-system' },
|
|
244
|
+
overwrite: { type: 'boolean', default: false },
|
|
245
|
+
existing: { type: 'string' },
|
|
246
|
+
index: { type: 'string' },
|
|
247
|
+
blobs: { type: 'string' },
|
|
248
|
+
json: { type: 'boolean', default: false },
|
|
249
|
+
},
|
|
250
|
+
});
|
|
251
|
+
} catch (error) {
|
|
252
|
+
throw new Failure(`${error.message}\n${USAGE}`, 2);
|
|
253
|
+
}
|
|
254
|
+
const { values, positionals } = parsed;
|
|
255
|
+
if (positionals.length === 1 && positionals[0] === 'index') return writeAssetIndex(values, cwd);
|
|
256
|
+
if (positionals.length === 1 && positionals[0] === 'update') return writeUpdateGuide(values, cwd);
|
|
257
|
+
if (positionals.length !== 1 || positionals[0] !== 'export')
|
|
258
|
+
throw new Failure(`Unknown command ${positionals.join(' ') || '(none)'}.\n${USAGE}`, 2);
|
|
259
|
+
if (!existsSync(join(SOURCE, 'project/design-system.json')))
|
|
260
|
+
throw new Failure(
|
|
261
|
+
`This @wallarm-org/claude-design ${version} has no packaged export. Run the command again with @latest, or report it at https://github.com/wallarm/design-system/issues.`,
|
|
262
|
+
1,
|
|
263
|
+
);
|
|
264
|
+
|
|
265
|
+
const out = resolve(cwd, values.dir);
|
|
266
|
+
if (existsSync(out) && readdirSync(out).length > 0 && !values.overwrite)
|
|
267
|
+
throw new Failure(
|
|
268
|
+
`${out} already has files. Pass --overwrite to replace the export in it, or choose another --dir.`,
|
|
269
|
+
2,
|
|
270
|
+
);
|
|
271
|
+
const existing = values.existing ? readPaths(resolve(cwd, values.existing)) : undefined;
|
|
272
|
+
const packed = JSON.parse(readFileSync(join(SOURCE, INDEX), 'utf8'));
|
|
273
|
+
const index = values.index ? mergeIndex(resolve(cwd, values.index), packed) : undefined;
|
|
274
|
+
|
|
275
|
+
for (const path of OWNED) rmSync(join(out, path), { recursive: true, force: true });
|
|
276
|
+
// Path keys `index` hasn't turned into sha256 keys may name changed SVGs: drop them.
|
|
277
|
+
const blobsFile = join(out, 'blobs.json');
|
|
278
|
+
if (existsSync(blobsFile)) {
|
|
279
|
+
let blobs;
|
|
280
|
+
try {
|
|
281
|
+
blobs = JSON.parse(readFileSync(blobsFile, 'utf8'));
|
|
282
|
+
} catch {}
|
|
283
|
+
const bySha = Object.entries(blobs ?? {}).filter(([key]) => SHA256.test(key));
|
|
284
|
+
writeFileSync(blobsFile, `${JSON.stringify(Object.fromEntries(bySha), null, 2)}\n`);
|
|
285
|
+
}
|
|
286
|
+
cpSync(SOURCE, out, { recursive: true });
|
|
287
|
+
if (index) writeFileSync(join(out, INDEX), `${JSON.stringify(index, null, 2)}\n`);
|
|
288
|
+
const written = filesUnder(SOURCE);
|
|
289
|
+
const hashes = Object.fromEntries(
|
|
290
|
+
written.map(path => [
|
|
291
|
+
path,
|
|
292
|
+
createHash('sha256')
|
|
293
|
+
.update(readFileSync(join(out, path)))
|
|
294
|
+
.digest('hex'),
|
|
295
|
+
]),
|
|
296
|
+
);
|
|
297
|
+
writeFileSync(join(out, 'files.json'), `${JSON.stringify(hashes, null, 2)}\n`);
|
|
298
|
+
|
|
299
|
+
const exported = new Set(written);
|
|
300
|
+
const removed = (existing ?? [])
|
|
301
|
+
.filter(path => path.startsWith('project/') && !exported.has(path))
|
|
302
|
+
.filter(path => !PAGE_PATHS.some(page => path === page || path.startsWith(page)))
|
|
303
|
+
.sort();
|
|
304
|
+
if (existing) writeFileSync(join(out, 'removed.json'), `${JSON.stringify(removed, null, 2)}\n`);
|
|
305
|
+
else rmSync(join(out, 'removed.json'), { force: true });
|
|
306
|
+
|
|
307
|
+
const shown = relative(cwd, out) || '.';
|
|
308
|
+
const projectFiles = written.filter(path => path.startsWith('project/')).length;
|
|
309
|
+
const assets = written.filter(path => path.startsWith('assets/')).length;
|
|
310
|
+
const lines = [
|
|
311
|
+
`Exported Wallarm Design System ${version}: ${projectFiles} files in ${join(shown, 'project')} and ${assets} icons and logos in ${join(shown, 'assets')}.`,
|
|
312
|
+
];
|
|
313
|
+
if (removed.length)
|
|
314
|
+
lines.push(
|
|
315
|
+
`Remove the ${removed.length} files the system has and this release doesn't: they're listed in ${join(shown, 'removed.json')}.`,
|
|
316
|
+
);
|
|
317
|
+
lines.push(
|
|
318
|
+
existing
|
|
319
|
+
? `Carry on with ${join(shown, 'UPDATE.md')} from step 3; it points into ${join(shown, 'SETUP.md')}.`
|
|
320
|
+
: values.index
|
|
321
|
+
? `Carry on where you were: run the index command with --index, then publish ${join(shown, INDEX)}.`
|
|
322
|
+
: `Read ${join(shown, 'SETUP.md')} and follow it. It publishes the system, installs it on a canvas and checks it.`,
|
|
323
|
+
);
|
|
324
|
+
return {
|
|
325
|
+
exitCode: removed.length ? 3 : 0,
|
|
326
|
+
lines,
|
|
327
|
+
data: { version, dir: out, files: projectFiles, assets, removed },
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const json = process.argv.includes('--json');
|
|
332
|
+
try {
|
|
333
|
+
const { exitCode, lines, data } = run(process.argv.slice(2), process.cwd());
|
|
334
|
+
process.stdout.write(
|
|
335
|
+
json ? `${JSON.stringify({ ok: true, exitCode, data })}\n` : `${lines.join('\n')}\n`,
|
|
336
|
+
);
|
|
337
|
+
process.exitCode = exitCode;
|
|
338
|
+
} catch (error) {
|
|
339
|
+
const exitCode = error instanceof Failure ? error.exitCode : 1;
|
|
340
|
+
const message =
|
|
341
|
+
error instanceof Failure
|
|
342
|
+
? error.message
|
|
343
|
+
: `The export failed: ${error.message}. Show this output to the person.`;
|
|
344
|
+
if (json) process.stdout.write(`${JSON.stringify({ ok: false, exitCode, error: message })}\n`);
|
|
345
|
+
else process.stderr.write(`${message}\n`);
|
|
346
|
+
process.exitCode = exitCode;
|
|
347
|
+
}
|
package/dist/SETUP.md
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Install Wallarm Design System 4.9.0 in Claude Design
|
|
2
|
+
|
|
3
|
+
This guide ships with Wallarm Design System 4.9.0. Work through the steps in order and run each check before moving on.
|
|
4
|
+
|
|
5
|
+
The export wrote `wallarm-design-system/`:
|
|
6
|
+
|
|
7
|
+
| Path | Contents | Publish it |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `project/` | The design system: 373 files | Yes: every file, unchanged |
|
|
10
|
+
| `assets/` | The icon and logo galleries: 583 SVG files in Logos (1), Icons (582) | As assets, in step 1 |
|
|
11
|
+
| `assets.json` | Each SVG's group, name, path and sha256 | No |
|
|
12
|
+
| `SETUP.md` | This guide | No |
|
|
13
|
+
| `UPDATE.md` | The update guide, for a later release | No |
|
|
14
|
+
| `wallarm-sampler.dc.html` | The sampler artboard, for step 4 | To the canvas, in step 4 |
|
|
15
|
+
| `files.json` | Every file the export wrote, with its sha256 | No |
|
|
16
|
+
| `removed.json` | Paths an update drops. Written only with `--existing` | No |
|
|
17
|
+
| `blobs.json` | You write it in step 1: each SVG's path and the url its upload returned. The `index` command rewrites it keyed by sha256. The `update` command deletes it | No |
|
|
18
|
+
|
|
19
|
+
If the person already has a Wallarm Design System artifact and gave you its link, don't install a new one: [update it](#update-to-a-new-release).
|
|
20
|
+
|
|
21
|
+
## 1. Publish the system
|
|
22
|
+
|
|
23
|
+
Create a new **Design System** artifact titled `Wallarm Design System`, with the description "Wallarm's product UI: React components, light and dark tokens, Geist fonts and icons, generated from wallarm/design-system". Then, in this order:
|
|
24
|
+
|
|
25
|
+
1. **Files.** Publish the files of `wallarm-design-system/project/` to it, each at its path under `project/` (for example `project/tokens.css`), except `project/design-system.json`. Don't add, rename, edit or skip a file.
|
|
26
|
+
- Send `project/components/index.d.ts` with the content type `text/plain`; the artifact refuses it otherwise. Every other file's type follows its extension.
|
|
27
|
+
- A publish takes at most 255 files, so send the files in batches of up to 200.
|
|
28
|
+
2. **Icons and logos.** The galleries are asset uploads, not files: never publish anything from `wallarm-design-system/assets/` as a file under `project/`.
|
|
29
|
+
1. Run `npx -y @wallarm-org/claude-design@4.9.0 index --blobs wallarm-design-system/blobs.json`. It exits 3 and lists in `wallarm-design-system/upload.json` the local paths of the SVGs to upload (identical SVGs share one upload).
|
|
30
|
+
2. Upload them in the order listed: the Artifact tool's publish with the system's `url`, `asset: true` and `file_paths` set to the next 25 paths from `upload.json`, copied as they are. With `upload_asset`, if that is the tool you have, send at most 10 per call. The first install takes about 24 calls. If an upload is refused, show the person the error and stop.
|
|
31
|
+
3. After each call, add one entry per uploaded file to `wallarm-design-system/blobs.json`, a JSON object: the path as `upload.json` lists it, mapped to the `url` the result gives for that file, for example `{"wallarm-design-system/assets/Icons/activity.svg": "https://…/_blob/<id>"}`. Copy the url, not the asset's `id`. If the result has no url but gives each file's sha256 and id (as `upload_asset` does), key the entry by that sha256 instead.
|
|
32
|
+
4. Run the `index` command again. It rewrites `blobs.json` keyed by sha256; keep its entries and add new ones after them. Exit 3: upload the paths it lists now and run it again. Exit 0: it wrote the asset groups into `project/design-system.json`.
|
|
33
|
+
3. **Index.** Publish `project/design-system.json` last, alone, after the `index` command exited 0. It is the system's index; it carries the marker a new system needs.
|
|
34
|
+
|
|
35
|
+
In artboards, icons are still `WallarmDS.Icons.<Name>` and the logo `WallarmDS.Logo`, from `components/bundle.js`; the galleries show them on the system's page.
|
|
36
|
+
|
|
37
|
+
Check: every `project/` path in `wallarm-design-system/files.json` (373 files) is in the artifact, its title is `Wallarm Design System`, and `project/design-system.json` has a `lastChange.note` that starts with `v4.9.0:`. The Artifact tool's `list` with the system's `url` and `scope: "assets"` shows at least 580 assets. The system's page shows the asset groups Logos (1), Icons (582), with every icon drawn (no broken image). The page may add `project/manifest.json` and files under `project/api/`; they don't count. Give the person the artifact's link: they need it to install the system on other canvases and to update it.
|
|
38
|
+
|
|
39
|
+
If a publish is refused for a reason this step doesn't cover, show the person the error and stop. Don't edit or rename files to get past it.
|
|
40
|
+
|
|
41
|
+
## 2. Create a canvas and install the system
|
|
42
|
+
|
|
43
|
+
Create a Design canvas and install the system on it from the link in step 1.
|
|
44
|
+
|
|
45
|
+
The canvas copies the system into one folder under `project/ds/`. This guide expects `project/ds/wallarm-design-system/`. Check that the canvas has:
|
|
46
|
+
|
|
47
|
+
- `project/ds/wallarm-design-system/tokens.css`
|
|
48
|
+
- `project/ds/wallarm-design-system/tokens.json`
|
|
49
|
+
- `project/ds/wallarm-design-system/components/bundle.css`
|
|
50
|
+
- `project/ds/wallarm-design-system/components/bundle.js`
|
|
51
|
+
- `project/ds/wallarm-design-system/components/index.d.ts`
|
|
52
|
+
|
|
53
|
+
If the folder has another name, use that name in place of `wallarm-design-system` from here on, and in step 4.
|
|
54
|
+
|
|
55
|
+
If `index.d.ts` is missing, copy `project/components/index.d.ts` from the system to `project/ds/wallarm-design-system/components/index.d.ts` unchanged. The props panel reads it; without it no prop gets a control.
|
|
56
|
+
|
|
57
|
+
## 3. Read the canvas rules
|
|
58
|
+
|
|
59
|
+
Read `wallarm-design-system/project/README.md`, at least "Rules", "Layout on a canvas", "Consuming this system", "From a Storybook story to an artboard". They give the `WallarmDS` namespace, how to mount a component with `x-import`, how to pass props through `renderVals()` holes, the spacing scale and the dark theme. Follow them on every artboard you draw.
|
|
60
|
+
|
|
61
|
+
The README's paths, its load order and its `sampler.dc.html` are relative to the system, not to a canvas. An artboard sits in the canvas's `project/` folder, so start every new artboard's `<head>` with these lines, in this order, and add no other link lines for the system:
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<script src="./support.js"></script>
|
|
65
|
+
<link rel="stylesheet" href="ds/wallarm-design-system/tokens.css">
|
|
66
|
+
<link rel="stylesheet" href="ds/wallarm-design-system/components/bundle.css">
|
|
67
|
+
<script src="ds/wallarm-design-system/components/bundle.js"></script>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
When the README says to start a screen from the sampler, start from `project/wallarm-sampler.dc.html` on the canvas (step 4), not from the system's `sampler.dc.html`. Icons are `WallarmDS.Icons.<Name>` and the logo is `WallarmDS.Logo`; on a canvas, use them, not the gallery SVGs.
|
|
71
|
+
|
|
72
|
+
## 4. Add the sampler
|
|
73
|
+
|
|
74
|
+
`wallarm-design-system/wallarm-sampler.dc.html` is a Users settings screen built only from the system. It is also the install test. Put it on the canvas exactly as it is: don't retype, reformat or rename it, and don't add link lines or scripts; it has them. Its links point at `ds/wallarm-design-system/`. Only if step 2 found a different folder, replace `ds/wallarm-design-system/` with `ds/<that folder>/` in its three link lines and change nothing else.
|
|
75
|
+
|
|
76
|
+
A canvas keeps its files under `project/`. Its index is `project/canvas.json`, and each artboard is a `.dc.html` file in `project/`.
|
|
77
|
+
|
|
78
|
+
1. Publish the file to the canvas at `project/wallarm-sampler.dc.html`:
|
|
79
|
+
- If the Artifact tool takes `files` as a map, map `project/wallarm-sampler.dc.html` to the local file `wallarm-design-system/wallarm-sampler.dc.html`.
|
|
80
|
+
- If it takes a list of absolute paths, first copy the file unchanged into the canvas's `project/` folder: `cp wallarm-design-system/wallarm-sampler.dc.html /mnt/user-data/outputs/artifacts/<canvas id>/project/wallarm-sampler.dc.html`, then publish that path.
|
|
81
|
+
2. Merge this key into `boards` in `project/canvas.json`. `boards` is keyed by artboard file name, relative to `project/`; `x` and `y` place the board on an empty canvas.
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{"wallarm-sampler.dc.html":{"x":0,"y":0,"w":1440,"h":900,"title":"Wallarm sampler","expand":"fill"}}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
If the canvas has other boards, set `x` to the largest `x + w` among them plus 80. If `boards` already has `"wallarm-sampler.dc.html"`, keep its `x` and `y` and replace the rest.
|
|
88
|
+
3. Append `"wallarm-sampler.dc.html"` to `order` in `project/canvas.json` unless it is already there. Keep every other key and entry as it is.
|
|
89
|
+
|
|
90
|
+
Check: read `project/wallarm-sampler.dc.html` back from the canvas; it matches the export's copy. `project/canvas.json` has `"wallarm-sampler.dc.html"` in `boards` and exactly once in `order`. A board titled `Wallarm sampler` shows on the canvas.
|
|
91
|
+
|
|
92
|
+
## 5. Check the sampler
|
|
93
|
+
|
|
94
|
+
If you can't see the canvas or its console, ask the person to check each item and tell you what they see.
|
|
95
|
+
|
|
96
|
+
- The console has no `[WallarmDS]` warning and no error. A `[WallarmDS] class "…" has no CSS` warning means a class is missing from `components/bundle.css`.
|
|
97
|
+
- Every part renders: the top header with the Wallarm logo, the navigation rail (Home, Security, Settings), the `Users` page header with its `Create user` button, the toolbar with the search field and the `All` / `Active` / `Invited` / `Deactivated` tabs, the users table with five rows (status badges, roles, last active, an actions menu on each row), and the `Ana Ruiz` drawer on the right with its `API tokens` section and the `No API tokens yet` empty state.
|
|
98
|
+
- The text is in Geist, not the system font.
|
|
99
|
+
- Nothing is cut off at the bottom of the board and nothing spills out of the table or drawer. If the bottom is cut off, raise the board's `h` in `project/canvas.json` until it fits.
|
|
100
|
+
- Type `zzz` in the search field: the table shows `No results found` with a `Reset filters` button. Click it and the five rows come back.
|
|
101
|
+
- Open a row's actions menu: `Edit user` and `Delete user` show. Press Escape to close it.
|
|
102
|
+
- Select the `Create user` button: the props panel shows its props with controls (for example `variant` as a dropdown).
|
|
103
|
+
|
|
104
|
+
The sampler is light only. For a dark artboard, set `theme="dark"` on its `WallarmDS.Root`, as the README says.
|
|
105
|
+
|
|
106
|
+
When every check passes, tell the person the Wallarm Design System is ready, give them the system link, and wait for their design request.
|
|
107
|
+
|
|
108
|
+
## Update to a new release
|
|
109
|
+
|
|
110
|
+
To update a system the person already has, run `npx -y @wallarm-org/claude-design@latest update` and follow the `wallarm-design-system/UPDATE.md` it writes.
|
|
111
|
+
|
|
112
|
+
## When something looks wrong
|
|
113
|
+
|
|
114
|
+
| You see | Do this |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| The publish is refused for `index.d.ts` | Send `project/components/index.d.ts` as `text/plain`. |
|
|
117
|
+
| The publish is refused for too many files | Send smaller batches, as step 1 says. |
|
|
118
|
+
| The `index` command exits 3 | Upload the paths in `upload.json`, add their urls to `blobs.json` and run it again. An entry it names as invalid has a key that matches no SVG or a value that isn't a 32-character blob id or `/_blob/<id>` url: copy it again from `upload.json` and the upload result. |
|
|
119
|
+
| Publishing `project/design-system.json` is refused as stale | The system's page saved a newer index. Save the version the refusal hands back as `current-index.json` (copy it; don't retype it), run `npx -y @wallarm-org/claude-design@4.9.0 index --blobs wallarm-design-system/blobs.json --index current-index.json`, and publish the index again. Nothing needs uploading again. |
|
|
120
|
+
| The gallery is empty or shows broken images | `project/design-system.json` was published before the `index` command exited 0, or with a wrong url. Fix `blobs.json`, run `index` again and publish the index again. |
|
|
121
|
+
| No sampler board shows | The file isn't at `project/wallarm-sampler.dc.html`, or `project/canvas.json` has no `"wallarm-sampler.dc.html"` in `boards` or `order`. |
|
|
122
|
+
| Components render unstyled | The link lines don't reach `project/ds/wallarm-design-system/`. The artboard must sit directly in `project/`, and the folder name must match step 2. |
|
|
123
|
+
| `WallarmDS is not defined` | `components/bundle.js` isn't loaded: same cause as above. |
|
|
124
|
+
| Nothing renders and the console is empty | The sampler was changed. Publish the export's copy again, as step 4 says. |
|
|
125
|
+
| A `[WallarmDS] class "…" has no CSS` warning | The class doesn't exist on the canvas. Use one from `components/UTILITIES.md`; numeric utilities are in px (`p-16` is 16px). |
|
|
126
|
+
| A prop has no control | `project/ds/wallarm-design-system/components/index.d.ts` is missing. Copy it as step 2 says. |
|
|
127
|
+
| Text shows in the system font | The fonts in `project/fonts/` weren't published or installed. Check step 1's file check and step 2. |
|
|
128
|
+
| The export command fails or can't reach npm | Show the person its output and stop. |
|
|
129
|
+
|
|
130
|
+
Never edit a file in the system artifact or under `project/ds/wallarm-design-system/` on a canvas to make a check pass. If a check still fails, tell the person which check, what you saw and the version (4.9.0). Problems go to https://github.com/wallarm/design-system/issues.
|