@yourdash/uikit 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -0
- package/components/box/box.module.scss +21 -0
- package/components/box/box.tsx +22 -0
- package/components/button/button.module.scss +47 -0
- package/components/button/button.tsx +23 -0
- package/components/buttonLink/buttonLink.module.scss +47 -0
- package/components/buttonLink/buttonLink.tsx +26 -0
- package/components/card/card.module.scss +78 -0
- package/components/card/card.tsx +61 -0
- package/components/contextMenu/contextMenu.tsx +55 -0
- package/components/contextMenu/contextMenuRoot.module.scss +31 -0
- package/components/contextMenu/contextMenuRoot.tsx +83 -0
- package/components/contextMenu/contextMenuRootContext.tsx +22 -0
- package/components/flex/flex.module.scss +19 -0
- package/components/flex/flex.tsx +13 -0
- package/components/heading/heading.module.scss +41 -0
- package/components/heading/heading.tsx +27 -0
- package/components/icon/icon.module.scss +26 -0
- package/components/icon/icon.tsx +30 -0
- package/components/icon/iconDictionary.ts +573 -0
- package/components/icon/icons/accessibility-16.svg +9 -0
- package/components/icon/icons/accessibility-inset-16.svg +9 -0
- package/components/icon/icons/alert-16.svg +9 -0
- package/components/icon/icons/alert-24.svg +10 -0
- package/components/icon/icons/alert-fill-12.svg +9 -0
- package/components/icon/icons/app-launcher-16.svg +11 -0
- package/components/icon/icons/apps-16.svg +9 -0
- package/components/icon/icons/archive-16.svg +9 -0
- package/components/icon/icons/archive-24.svg +12 -0
- package/components/icon/icons/arrow-both-16.svg +9 -0
- package/components/icon/icons/arrow-both-24.svg +6 -0
- package/components/icon/icons/arrow-down-16.svg +9 -0
- package/components/icon/icons/arrow-down-24.svg +9 -0
- package/components/icon/icons/arrow-down-left-24.svg +9 -0
- package/components/icon/icons/arrow-down-right-24.svg +9 -0
- package/components/icon/icons/arrow-left-16.svg +9 -0
- package/components/icon/icons/arrow-left-24.svg +9 -0
- package/components/icon/icons/arrow-right-16.svg +9 -0
- package/components/icon/icons/arrow-right-24.svg +9 -0
- package/components/icon/icons/arrow-switch-16.svg +6 -0
- package/components/icon/icons/arrow-switch-24.svg +6 -0
- package/components/icon/icons/arrow-up-16.svg +9 -0
- package/components/icon/icons/arrow-up-24.svg +9 -0
- package/components/icon/icons/arrow-up-left-24.svg +9 -0
- package/components/icon/icons/arrow-up-right-24.svg +9 -0
- package/components/icon/icons/beaker-16.svg +9 -0
- package/components/icon/icons/beaker-24.svg +9 -0
- package/components/icon/icons/bell-16.svg +10 -0
- package/components/icon/icons/bell-24.svg +9 -0
- package/components/icon/icons/bell-fill-16.svg +6 -0
- package/components/icon/icons/bell-fill-24.svg +9 -0
- package/components/icon/icons/bell-slash-16.svg +9 -0
- package/components/icon/icons/bell-slash-24.svg +11 -0
- package/components/icon/icons/blocked-16.svg +9 -0
- package/components/icon/icons/blocked-24.svg +9 -0
- package/components/icon/icons/bold-16.svg +9 -0
- package/components/icon/icons/bold-24.svg +9 -0
- package/components/icon/icons/book-16.svg +9 -0
- package/components/icon/icons/book-24.svg +9 -0
- package/components/icon/icons/bookmark-16.svg +9 -0
- package/components/icon/icons/bookmark-24.svg +9 -0
- package/components/icon/icons/bookmark-fill-24.svg +9 -0
- package/components/icon/icons/bookmark-slash-16.svg +9 -0
- package/components/icon/icons/bookmark-slash-24.svg +10 -0
- package/components/icon/icons/bookmark-slash-fill-24.svg +9 -0
- package/components/icon/icons/briefcase-16.svg +9 -0
- package/components/icon/icons/briefcase-24.svg +9 -0
- package/components/icon/icons/broadcast-16.svg +9 -0
- package/components/icon/icons/broadcast-24.svg +6 -0
- package/components/icon/icons/browser-16.svg +9 -0
- package/components/icon/icons/browser-24.svg +9 -0
- package/components/icon/icons/bug-16.svg +9 -0
- package/components/icon/icons/bug-24.svg +9 -0
- package/components/icon/icons/cache-16.svg +11 -0
- package/components/icon/icons/calendar-16.svg +9 -0
- package/components/icon/icons/calendar-24.svg +9 -0
- package/components/icon/icons/check-16.svg +9 -0
- package/components/icon/icons/check-24.svg +9 -0
- package/components/icon/icons/check-circle-16.svg +9 -0
- package/components/icon/icons/check-circle-24.svg +10 -0
- package/components/icon/icons/check-circle-fill-12.svg +9 -0
- package/components/icon/icons/check-circle-fill-16.svg +9 -0
- package/components/icon/icons/check-circle-fill-24.svg +9 -0
- package/components/icon/icons/checkbox-16.svg +9 -0
- package/components/icon/icons/checkbox-24.svg +10 -0
- package/components/icon/icons/checklist-16.svg +9 -0
- package/components/icon/icons/checklist-24.svg +6 -0
- package/components/icon/icons/chevron-down-16.svg +9 -0
- package/components/icon/icons/chevron-down-24.svg +9 -0
- package/components/icon/icons/chevron-left-16.svg +9 -0
- package/components/icon/icons/chevron-left-24.svg +9 -0
- package/components/icon/icons/chevron-right-16.svg +9 -0
- package/components/icon/icons/chevron-right-24.svg +9 -0
- package/components/icon/icons/chevron-up-16.svg +9 -0
- package/components/icon/icons/chevron-up-24.svg +9 -0
- package/components/icon/icons/circle-16.svg +8 -0
- package/components/icon/icons/circle-24.svg +9 -0
- package/components/icon/icons/circle-slash-16.svg +9 -0
- package/components/icon/icons/circle-slash-24.svg +9 -0
- package/components/icon/icons/clock-16.svg +9 -0
- package/components/icon/icons/clock-24.svg +10 -0
- package/components/icon/icons/cloud-16.svg +9 -0
- package/components/icon/icons/cloud-24.svg +9 -0
- package/components/icon/icons/cloud-offline-16.svg +11 -0
- package/components/icon/icons/cloud-offline-24.svg +11 -0
- package/components/icon/icons/code-16.svg +9 -0
- package/components/icon/icons/code-24.svg +9 -0
- package/components/icon/icons/code-of-conduct-16.svg +9 -0
- package/components/icon/icons/code-of-conduct-24.svg +9 -0
- package/components/icon/icons/code-review-16.svg +9 -0
- package/components/icon/icons/code-review-24.svg +11 -0
- package/components/icon/icons/code-square-16.svg +9 -0
- package/components/icon/icons/code-square-24.svg +11 -0
- package/components/icon/icons/codescan-16.svg +11 -0
- package/components/icon/icons/codescan-24.svg +11 -0
- package/components/icon/icons/codescan-checkmark-16.svg +10 -0
- package/components/icon/icons/codescan-checkmark-24.svg +10 -0
- package/components/icon/icons/codespaces-16.svg +11 -0
- package/components/icon/icons/codespaces-24.svg +11 -0
- package/components/icon/icons/columns-16.svg +9 -0
- package/components/icon/icons/columns-24.svg +9 -0
- package/components/icon/icons/command-palette-16.svg +6 -0
- package/components/icon/icons/command-palette-24.svg +6 -0
- package/components/icon/icons/comment-16.svg +9 -0
- package/components/icon/icons/comment-24.svg +9 -0
- package/components/icon/icons/comment-discussion-16.svg +9 -0
- package/components/icon/icons/comment-discussion-24.svg +11 -0
- package/components/icon/icons/commit-24.svg +10 -0
- package/components/icon/icons/container-16.svg +9 -0
- package/components/icon/icons/container-24.svg +9 -0
- package/components/icon/icons/copilot-16.svg +10 -0
- package/components/icon/icons/copilot-24.svg +10 -0
- package/components/icon/icons/copilot-48.svg +10 -0
- package/components/icon/icons/copilot-96.svg +10 -0
- package/components/icon/icons/copilot-error-16.svg +9 -0
- package/components/icon/icons/copilot-warning-16.svg +11 -0
- package/components/icon/icons/copy-16.svg +11 -0
- package/components/icon/icons/copy-24.svg +11 -0
- package/components/icon/icons/cpu-16.svg +9 -0
- package/components/icon/icons/cpu-24.svg +11 -0
- package/components/icon/icons/credit-card-16.svg +10 -0
- package/components/icon/icons/credit-card-24.svg +10 -0
- package/components/icon/icons/cross-reference-16.svg +9 -0
- package/components/icon/icons/cross-reference-24.svg +6 -0
- package/components/icon/icons/dash-16.svg +8 -0
- package/components/icon/icons/dash-24.svg +8 -0
- package/components/icon/icons/database-16.svg +9 -0
- package/components/icon/icons/database-24.svg +9 -0
- package/components/icon/icons/dependabot-16.svg +10 -0
- package/components/icon/icons/dependabot-24.svg +10 -0
- package/components/icon/icons/desktop-download-16.svg +6 -0
- package/components/icon/icons/desktop-download-24.svg +11 -0
- package/components/icon/icons/device-camera-16.svg +9 -0
- package/components/icon/icons/device-camera-video-16.svg +9 -0
- package/components/icon/icons/device-camera-video-24.svg +9 -0
- package/components/icon/icons/device-desktop-16.svg +9 -0
- package/components/icon/icons/device-desktop-24.svg +9 -0
- package/components/icon/icons/device-mobile-16.svg +9 -0
- package/components/icon/icons/device-mobile-24.svg +10 -0
- package/components/icon/icons/diamond-16.svg +9 -0
- package/components/icon/icons/diamond-24.svg +9 -0
- package/components/icon/icons/diff-16.svg +9 -0
- package/components/icon/icons/diff-24.svg +9 -0
- package/components/icon/icons/diff-added-16.svg +9 -0
- package/components/icon/icons/diff-ignored-16.svg +9 -0
- package/components/icon/icons/diff-modified-16.svg +9 -0
- package/components/icon/icons/diff-removed-16.svg +9 -0
- package/components/icon/icons/diff-renamed-16.svg +9 -0
- package/components/icon/icons/dot-16.svg +8 -0
- package/components/icon/icons/dot-24.svg +8 -0
- package/components/icon/icons/dot-fill-16.svg +8 -0
- package/components/icon/icons/dot-fill-24.svg +6 -0
- package/components/icon/icons/download-16.svg +9 -0
- package/components/icon/icons/download-24.svg +6 -0
- package/components/icon/icons/duplicate-16.svg +12 -0
- package/components/icon/icons/duplicate-24.svg +12 -0
- package/components/icon/icons/ellipsis-16.svg +9 -0
- package/components/icon/icons/ewsgit.svg +14 -0
- package/components/icon/icons/eye-16.svg +9 -0
- package/components/icon/icons/eye-24.svg +10 -0
- package/components/icon/icons/eye-closed-16.svg +9 -0
- package/components/icon/icons/eye-closed-24.svg +11 -0
- package/components/icon/icons/feed-discussion-16.svg +9 -0
- package/components/icon/icons/feed-forked-16.svg +9 -0
- package/components/icon/icons/feed-heart-16.svg +9 -0
- package/components/icon/icons/feed-merged-16.svg +9 -0
- package/components/icon/icons/feed-person-16.svg +9 -0
- package/components/icon/icons/feed-repo-16.svg +9 -0
- package/components/icon/icons/feed-rocket-16.svg +9 -0
- package/components/icon/icons/feed-star-16.svg +9 -0
- package/components/icon/icons/feed-tag-16.svg +10 -0
- package/components/icon/icons/feed-trophy-16.svg +10 -0
- package/components/icon/icons/file-16.svg +9 -0
- package/components/icon/icons/file-24.svg +9 -0
- package/components/icon/icons/file-added-16.svg +9 -0
- package/components/icon/icons/file-badge-16.svg +11 -0
- package/components/icon/icons/file-binary-16.svg +9 -0
- package/components/icon/icons/file-binary-24.svg +12 -0
- package/components/icon/icons/file-code-16.svg +9 -0
- package/components/icon/icons/file-code-24.svg +11 -0
- package/components/icon/icons/file-diff-16.svg +9 -0
- package/components/icon/icons/file-diff-24.svg +11 -0
- package/components/icon/icons/file-directory-16.svg +9 -0
- package/components/icon/icons/file-directory-24.svg +9 -0
- package/components/icon/icons/file-directory-fill-16.svg +6 -0
- package/components/icon/icons/file-directory-fill-24.svg +9 -0
- package/components/icon/icons/file-directory-open-fill-16.svg +6 -0
- package/components/icon/icons/file-media-24.svg +9 -0
- package/components/icon/icons/file-moved-16.svg +6 -0
- package/components/icon/icons/file-removed-16.svg +9 -0
- package/components/icon/icons/file-submodule-16.svg +9 -0
- package/components/icon/icons/file-submodule-24.svg +9 -0
- package/components/icon/icons/file-symlink-file-16.svg +9 -0
- package/components/icon/icons/file-symlink-file-24.svg +9 -0
- package/components/icon/icons/file-zip-16.svg +9 -0
- package/components/icon/icons/file-zip-24.svg +13 -0
- package/components/icon/icons/filter-16.svg +9 -0
- package/components/icon/icons/filter-24.svg +6 -0
- package/components/icon/icons/flame-16.svg +9 -0
- package/components/icon/icons/flame-24.svg +9 -0
- package/components/icon/icons/fold-16.svg +6 -0
- package/components/icon/icons/fold-24.svg +13 -0
- package/components/icon/icons/fold-down-16.svg +6 -0
- package/components/icon/icons/fold-down-24.svg +11 -0
- package/components/icon/icons/fold-up-16.svg +6 -0
- package/components/icon/icons/fold-up-24.svg +11 -0
- package/components/icon/icons/gear-16.svg +9 -0
- package/components/icon/icons/gear-24.svg +10 -0
- package/components/icon/icons/gift-16.svg +9 -0
- package/components/icon/icons/gift-24.svg +9 -0
- package/components/icon/icons/git-branch-16.svg +9 -0
- package/components/icon/icons/git-branch-24.svg +12 -0
- package/components/icon/icons/git-commit-16.svg +9 -0
- package/components/icon/icons/git-commit-24.svg +9 -0
- package/components/icon/icons/git-compare-16.svg +9 -0
- package/components/icon/icons/git-compare-24.svg +12 -0
- package/components/icon/icons/git-merge-16.svg +9 -0
- package/components/icon/icons/git-merge-24.svg +11 -0
- package/components/icon/icons/git-merge-queue-16.svg +11 -0
- package/components/icon/icons/git-pull-request-16.svg +9 -0
- package/components/icon/icons/git-pull-request-24.svg +11 -0
- package/components/icon/icons/git-pull-request-closed-16.svg +9 -0
- package/components/icon/icons/git-pull-request-closed-24.svg +11 -0
- package/components/icon/icons/git-pull-request-draft-16.svg +10 -0
- package/components/icon/icons/git-pull-request-draft-24.svg +10 -0
- package/components/icon/icons/globe-16.svg +9 -0
- package/components/icon/icons/globe-24.svg +9 -0
- package/components/icon/icons/grabber-16.svg +9 -0
- package/components/icon/icons/grabber-24.svg +9 -0
- package/components/icon/icons/graph-16.svg +9 -0
- package/components/icon/icons/graph-24.svg +6 -0
- package/components/icon/icons/hash-16.svg +9 -0
- package/components/icon/icons/hash-24.svg +9 -0
- package/components/icon/icons/heading-16.svg +9 -0
- package/components/icon/icons/heading-24.svg +9 -0
- package/components/icon/icons/heart-16.svg +9 -0
- package/components/icon/icons/heart-24.svg +9 -0
- package/components/icon/icons/heart-fill-16.svg +9 -0
- package/components/icon/icons/heart-fill-24.svg +6 -0
- package/components/icon/icons/history-16.svg +9 -0
- package/components/icon/icons/history-24.svg +6 -0
- package/components/icon/icons/home-16.svg +6 -0
- package/components/icon/icons/home-24.svg +9 -0
- package/components/icon/icons/home-fill-24.svg +6 -0
- package/components/icon/icons/horizontal-rule-16.svg +8 -0
- package/components/icon/icons/horizontal-rule-24.svg +8 -0
- package/components/icon/icons/hourglass-16.svg +9 -0
- package/components/icon/icons/hourglass-24.svg +9 -0
- package/components/icon/icons/hubot-16.svg +9 -0
- package/components/icon/icons/hubot-24.svg +11 -0
- package/components/icon/icons/id-badge-16.svg +11 -0
- package/components/icon/icons/image-16.svg +9 -0
- package/components/icon/icons/image-24.svg +9 -0
- package/components/icon/icons/inbox-16.svg +9 -0
- package/components/icon/icons/inbox-24.svg +9 -0
- package/components/icon/icons/infinity-16.svg +9 -0
- package/components/icon/icons/infinity-24.svg +9 -0
- package/components/icon/icons/info-16.svg +9 -0
- package/components/icon/icons/info-24.svg +11 -0
- package/components/icon/icons/issue-closed-16.svg +9 -0
- package/components/icon/icons/issue-closed-24.svg +10 -0
- package/components/icon/icons/issue-draft-16.svg +9 -0
- package/components/icon/icons/issue-draft-24.svg +9 -0
- package/components/icon/icons/issue-opened-16.svg +9 -0
- package/components/icon/icons/issue-opened-24.svg +9 -0
- package/components/icon/icons/issue-reopened-16.svg +6 -0
- package/components/icon/icons/issue-reopened-24.svg +6 -0
- package/components/icon/icons/italic-16.svg +9 -0
- package/components/icon/icons/italic-24.svg +9 -0
- package/components/icon/icons/iterations-16.svg +6 -0
- package/components/icon/icons/iterations-24.svg +6 -0
- package/components/icon/icons/kebab-horizontal-16.svg +6 -0
- package/components/icon/icons/kebab-horizontal-24.svg +8 -0
- package/components/icon/icons/key-16.svg +9 -0
- package/components/icon/icons/key-24.svg +10 -0
- package/components/icon/icons/key-asterisk-16.svg +11 -0
- package/components/icon/icons/law-16.svg +9 -0
- package/components/icon/icons/law-24.svg +9 -0
- package/components/icon/icons/light-bulb-16.svg +9 -0
- package/components/icon/icons/light-bulb-24.svg +9 -0
- package/components/icon/icons/link-16.svg +9 -0
- package/components/icon/icons/link-24.svg +6 -0
- package/components/icon/icons/link-external-16.svg +9 -0
- package/components/icon/icons/link-external-24.svg +6 -0
- package/components/icon/icons/list-ordered-16.svg +9 -0
- package/components/icon/icons/list-ordered-24.svg +6 -0
- package/components/icon/icons/list-unordered-16.svg +9 -0
- package/components/icon/icons/list-unordered-24.svg +9 -0
- package/components/icon/icons/location-16.svg +9 -0
- package/components/icon/icons/location-24.svg +10 -0
- package/components/icon/icons/lock-16.svg +9 -0
- package/components/icon/icons/lock-24.svg +9 -0
- package/components/icon/icons/log-16.svg +10 -0
- package/components/icon/icons/login.svg +9 -0
- package/components/icon/icons/logo-gist-16.svg +9 -0
- package/components/icon/icons/logo-github-16.svg +9 -0
- package/components/icon/icons/logout.svg +9 -0
- package/components/icon/icons/mail-16.svg +9 -0
- package/components/icon/icons/mail-24.svg +9 -0
- package/components/icon/icons/mark-github-16.svg +9 -0
- package/components/icon/icons/markdown-16.svg +9 -0
- package/components/icon/icons/megaphone-16.svg +14 -0
- package/components/icon/icons/megaphone-24.svg +9 -0
- package/components/icon/icons/mention-16.svg +9 -0
- package/components/icon/icons/mention-24.svg +9 -0
- package/components/icon/icons/meter-16.svg +9 -0
- package/components/icon/icons/milestone-16.svg +9 -0
- package/components/icon/icons/milestone-24.svg +9 -0
- package/components/icon/icons/mirror-16.svg +9 -0
- package/components/icon/icons/mirror-24.svg +9 -0
- package/components/icon/icons/moon-16.svg +9 -0
- package/components/icon/icons/moon-24.svg +9 -0
- package/components/icon/icons/mortar-board-16.svg +9 -0
- package/components/icon/icons/mortar-board-24.svg +9 -0
- package/components/icon/icons/multi-select-16.svg +10 -0
- package/components/icon/icons/multi-select-24.svg +10 -0
- package/components/icon/icons/mute-16.svg +9 -0
- package/components/icon/icons/mute-24.svg +11 -0
- package/components/icon/icons/no-entry-16.svg +9 -0
- package/components/icon/icons/no-entry-24.svg +9 -0
- package/components/icon/icons/no-entry-fill-12.svg +8 -0
- package/components/icon/icons/north-star-16.svg +6 -0
- package/components/icon/icons/north-star-24.svg +6 -0
- package/components/icon/icons/note-16.svg +9 -0
- package/components/icon/icons/note-24.svg +11 -0
- package/components/icon/icons/number-16.svg +9 -0
- package/components/icon/icons/number-24.svg +9 -0
- package/components/icon/icons/organization-16.svg +9 -0
- package/components/icon/icons/organization-24.svg +11 -0
- package/components/icon/icons/package-16.svg +9 -0
- package/components/icon/icons/package-24.svg +9 -0
- package/components/icon/icons/package-dependencies-16.svg +9 -0
- package/components/icon/icons/package-dependencies-24.svg +11 -0
- package/components/icon/icons/package-dependents-16.svg +9 -0
- package/components/icon/icons/package-dependents-24.svg +11 -0
- package/components/icon/icons/paintbrush-16.svg +9 -0
- package/components/icon/icons/paper-airplane-16.svg +9 -0
- package/components/icon/icons/paper-airplane-24.svg +9 -0
- package/components/icon/icons/paperclip-16.svg +9 -0
- package/components/icon/icons/paperclip-24.svg +9 -0
- package/components/icon/icons/paste-16.svg +9 -0
- package/components/icon/icons/paste-24.svg +11 -0
- package/components/icon/icons/pencil-16.svg +9 -0
- package/components/icon/icons/pencil-24.svg +9 -0
- package/components/icon/icons/people-16.svg +9 -0
- package/components/icon/icons/people-24.svg +11 -0
- package/components/icon/icons/person-16.svg +9 -0
- package/components/icon/icons/person-24.svg +9 -0
- package/components/icon/icons/person-add-16.svg +9 -0
- package/components/icon/icons/person-add-24.svg +9 -0
- package/components/icon/icons/person-fill-16.svg +6 -0
- package/components/icon/icons/person-fill-24.svg +6 -0
- package/components/icon/icons/pin-16.svg +9 -0
- package/components/icon/icons/pin-24.svg +9 -0
- package/components/icon/icons/play-16.svg +9 -0
- package/components/icon/icons/play-24.svg +10 -0
- package/components/icon/icons/plug-16.svg +9 -0
- package/components/icon/icons/plug-24.svg +9 -0
- package/components/icon/icons/plus-16.svg +9 -0
- package/components/icon/icons/plus-24.svg +9 -0
- package/components/icon/icons/plus-circle-16.svg +9 -0
- package/components/icon/icons/plus-circle-24.svg +10 -0
- package/components/icon/icons/project-16.svg +9 -0
- package/components/icon/icons/project-24.svg +11 -0
- package/components/icon/icons/pulse-16.svg +9 -0
- package/components/icon/icons/pulse-24.svg +9 -0
- package/components/icon/icons/question-16.svg +9 -0
- package/components/icon/icons/question-24.svg +11 -0
- package/components/icon/icons/quote-16.svg +9 -0
- package/components/icon/icons/quote-24.svg +9 -0
- package/components/icon/icons/reply-16.svg +9 -0
- package/components/icon/icons/reply-24.svg +6 -0
- package/components/icon/icons/repo-16.svg +9 -0
- package/components/icon/icons/repo-24.svg +10 -0
- package/components/icon/icons/repo-clone-16.svg +9 -0
- package/components/icon/icons/repo-deleted-16.svg +6 -0
- package/components/icon/icons/repo-forked-16.svg +9 -0
- package/components/icon/icons/repo-forked-24.svg +12 -0
- package/components/icon/icons/repo-locked-16.svg +11 -0
- package/components/icon/icons/repo-locked-24.svg +11 -0
- package/components/icon/icons/repo-pull-16.svg +9 -0
- package/components/icon/icons/repo-push-16.svg +9 -0
- package/components/icon/icons/repo-push-24.svg +6 -0
- package/components/icon/icons/repo-template-16.svg +9 -0
- package/components/icon/icons/repo-template-24.svg +6 -0
- package/components/icon/icons/report-16.svg +9 -0
- package/components/icon/icons/report-24.svg +9 -0
- package/components/icon/icons/rocket-16.svg +9 -0
- package/components/icon/icons/rocket-24.svg +9 -0
- package/components/icon/icons/rows-16.svg +9 -0
- package/components/icon/icons/rows-24.svg +9 -0
- package/components/icon/icons/rss-16.svg +9 -0
- package/components/icon/icons/rss-24.svg +9 -0
- package/components/icon/icons/ruby-16.svg +9 -0
- package/components/icon/icons/ruby-24.svg +9 -0
- package/components/icon/icons/screen-full-16.svg +9 -0
- package/components/icon/icons/screen-full-24.svg +9 -0
- package/components/icon/icons/screen-normal-16.svg +9 -0
- package/components/icon/icons/screen-normal-24.svg +9 -0
- package/components/icon/icons/search-16.svg +9 -0
- package/components/icon/icons/search-24.svg +9 -0
- package/components/icon/icons/server-16.svg +9 -0
- package/components/icon/icons/server-24.svg +11 -0
- package/components/icon/icons/server-error.svg +8 -0
- package/components/icon/icons/share-16.svg +9 -0
- package/components/icon/icons/share-24.svg +9 -0
- package/components/icon/icons/share-android-16.svg +9 -0
- package/components/icon/icons/share-android-24.svg +9 -0
- package/components/icon/icons/shield-16.svg +9 -0
- package/components/icon/icons/shield-24.svg +10 -0
- package/components/icon/icons/shield-check-16.svg +9 -0
- package/components/icon/icons/shield-check-24.svg +10 -0
- package/components/icon/icons/shield-lock-16.svg +9 -0
- package/components/icon/icons/shield-lock-24.svg +9 -0
- package/components/icon/icons/shield-slash-16.svg +11 -0
- package/components/icon/icons/shield-x-16.svg +9 -0
- package/components/icon/icons/shield-x-24.svg +11 -0
- package/components/icon/icons/sidebar-collapse-16.svg +10 -0
- package/components/icon/icons/sidebar-collapse-24.svg +10 -0
- package/components/icon/icons/sidebar-expand-16.svg +10 -0
- package/components/icon/icons/sidebar-expand-24.svg +10 -0
- package/components/icon/icons/sign-in-16.svg +9 -0
- package/components/icon/icons/sign-in-24.svg +9 -0
- package/components/icon/icons/sign-out-16.svg +9 -0
- package/components/icon/icons/sign-out-24.svg +9 -0
- package/components/icon/icons/single-select-16.svg +10 -0
- package/components/icon/icons/single-select-24.svg +10 -0
- package/components/icon/icons/skip-16.svg +9 -0
- package/components/icon/icons/skip-24.svg +10 -0
- package/components/icon/icons/sliders-16.svg +6 -0
- package/components/icon/icons/smiley-16.svg +9 -0
- package/components/icon/icons/smiley-24.svg +12 -0
- package/components/icon/icons/sort-asc-16.svg +9 -0
- package/components/icon/icons/sort-asc-24.svg +6 -0
- package/components/icon/icons/sort-desc-16.svg +10 -0
- package/components/icon/icons/sort-desc-24.svg +6 -0
- package/components/icon/icons/square-16.svg +9 -0
- package/components/icon/icons/square-24.svg +9 -0
- package/components/icon/icons/square-fill-16.svg +9 -0
- package/components/icon/icons/square-fill-24.svg +9 -0
- package/components/icon/icons/squirrel-16.svg +9 -0
- package/components/icon/icons/squirrel-24.svg +6 -0
- package/components/icon/icons/stack-16.svg +9 -0
- package/components/icon/icons/stack-24.svg +13 -0
- package/components/icon/icons/star-16.svg +9 -0
- package/components/icon/icons/star-24.svg +9 -0
- package/components/icon/icons/star-fill-16.svg +9 -0
- package/components/icon/icons/star-fill-24.svg +9 -0
- package/components/icon/icons/stop-16.svg +9 -0
- package/components/icon/icons/stop-24.svg +10 -0
- package/components/icon/icons/stopwatch-16.svg +9 -0
- package/components/icon/icons/stopwatch-24.svg +9 -0
- package/components/icon/icons/store.svg +10 -0
- package/components/icon/icons/strikethrough-16.svg +9 -0
- package/components/icon/icons/strikethrough-24.svg +9 -0
- package/components/icon/icons/sun-16.svg +9 -0
- package/components/icon/icons/sun-24.svg +9 -0
- package/components/icon/icons/sync-16.svg +9 -0
- package/components/icon/icons/sync-24.svg +6 -0
- package/components/icon/icons/tab-24.svg +6 -0
- package/components/icon/icons/tab-external-16.svg +6 -0
- package/components/icon/icons/table-16.svg +9 -0
- package/components/icon/icons/table-24.svg +9 -0
- package/components/icon/icons/tag-16.svg +9 -0
- package/components/icon/icons/tag-24.svg +10 -0
- package/components/icon/icons/tasklist-16.svg +9 -0
- package/components/icon/icons/tasklist-24.svg +10 -0
- package/components/icon/icons/telescope-16.svg +9 -0
- package/components/icon/icons/telescope-24.svg +11 -0
- package/components/icon/icons/telescope-fill-16.svg +9 -0
- package/components/icon/icons/telescope-fill-24.svg +11 -0
- package/components/icon/icons/terminal-16.svg +9 -0
- package/components/icon/icons/terminal-24.svg +11 -0
- package/components/icon/icons/three-bars-16.svg +9 -0
- package/components/icon/icons/thumbsdown-16.svg +9 -0
- package/components/icon/icons/thumbsdown-24.svg +9 -0
- package/components/icon/icons/thumbsup-16.svg +9 -0
- package/components/icon/icons/thumbsup-24.svg +9 -0
- package/components/icon/icons/tools-16.svg +9 -0
- package/components/icon/icons/tools-24.svg +9 -0
- package/components/icon/icons/trash-16.svg +9 -0
- package/components/icon/icons/trash-24.svg +13 -0
- package/components/icon/icons/triangle-down-16.svg +6 -0
- package/components/icon/icons/triangle-down-24.svg +6 -0
- package/components/icon/icons/triangle-left-16.svg +6 -0
- package/components/icon/icons/triangle-left-24.svg +6 -0
- package/components/icon/icons/triangle-right-16.svg +6 -0
- package/components/icon/icons/triangle-right-24.svg +6 -0
- package/components/icon/icons/triangle-up-16.svg +6 -0
- package/components/icon/icons/triangle-up-24.svg +6 -0
- package/components/icon/icons/trophy-16.svg +9 -0
- package/components/icon/icons/trophy-24.svg +9 -0
- package/components/icon/icons/typography-16.svg +9 -0
- package/components/icon/icons/typography-24.svg +9 -0
- package/components/icon/icons/unfold-16.svg +6 -0
- package/components/icon/icons/unfold-24.svg +12 -0
- package/components/icon/icons/unlock-16.svg +9 -0
- package/components/icon/icons/unlock-24.svg +9 -0
- package/components/icon/icons/unmute-16.svg +9 -0
- package/components/icon/icons/unmute-24.svg +11 -0
- package/components/icon/icons/unverified-16.svg +9 -0
- package/components/icon/icons/unverified-24.svg +11 -0
- package/components/icon/icons/upload-16.svg +9 -0
- package/components/icon/icons/upload-24.svg +9 -0
- package/components/icon/icons/verified-16.svg +9 -0
- package/components/icon/icons/verified-24.svg +10 -0
- package/components/icon/icons/versions-16.svg +9 -0
- package/components/icon/icons/versions-24.svg +9 -0
- package/components/icon/icons/video-16.svg +10 -0
- package/components/icon/icons/video-24.svg +10 -0
- package/components/icon/icons/webhook-16.svg +6 -0
- package/components/icon/icons/workflow-16.svg +9 -0
- package/components/icon/icons/workflow-24.svg +9 -0
- package/components/icon/icons/x-16.svg +9 -0
- package/components/icon/icons/x-24.svg +9 -0
- package/components/icon/icons/x-circle-16.svg +9 -0
- package/components/icon/icons/x-circle-24.svg +11 -0
- package/components/icon/icons/x-circle-fill-12.svg +9 -0
- package/components/icon/icons/x-circle-fill-16.svg +9 -0
- package/components/icon/icons/x-circle-fill-24.svg +9 -0
- package/components/icon/icons/yourdash.svg +64 -0
- package/components/icon/icons/zap-16.svg +9 -0
- package/components/icon/icons/zap-24.svg +9 -0
- package/components/iconButton/iconButton.module.scss +40 -0
- package/components/iconButton/iconButton.tsx +34 -0
- package/components/image/image.module.scss +10 -0
- package/components/image/image.tsx +28 -0
- package/components/link/link.module.scss +32 -0
- package/components/link/link.tsx +21 -0
- package/components/redirect/redirect.tsx +17 -0
- package/components/separator/separator.module.scss +28 -0
- package/components/separator/separator.tsx +14 -0
- package/components/spinner/spinner.module.scss +93 -0
- package/components/spinner/spinner.tsx +31 -0
- package/components/subtext/subtext.module.scss +17 -0
- package/components/subtext/subtext.tsx +14 -0
- package/components/text/text.module.scss +13 -0
- package/components/text/text.tsx +14 -0
- package/components/textButton/textButton.module.scss +30 -0
- package/components/textButton/textButton.tsx +22 -0
- package/components/textInput/textInput.module.scss +52 -0
- package/components/textInput/textInput.tsx +54 -0
- package/components/toast/toast.module.scss +31 -0
- package/components/toast/toast.tsx +65 -0
- package/components/toast/toastContext.ts +14 -0
- package/core/decrementLevel.tsx +13 -0
- package/core/incrementLevel.tsx +13 -0
- package/core/level.tsx +27 -0
- package/core/root.tsx +32 -0
- package/core/toast.ts +17 -0
- package/package.json +46 -6
- package/theme/defaultTheme.module.scss +349 -0
- package/theme/themeValues.scss +46 -0
- package/tsconfig.json +20 -0
- package/views/panAndZoom/panAndZoom.tsx +114 -0
- package/.idea/modules.xml +0 -8
- package/.idea/uikit.iml +0 -12
- package/.idea/vcs.xml +0 -12
package/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
box-sizing: border-box;
|
10
|
+
display: flex;
|
11
|
+
flex-direction: column;
|
12
|
+
|
13
|
+
font-weight: var(#{$theme}#{$font}#{$weight});
|
14
|
+
font-size: var(#{$theme}#{$font}#{$size});
|
15
|
+
font-family: var(#{$theme}#{$font}#{$family});
|
16
|
+
background: var(#{$theme}#{$background});
|
17
|
+
border: var(#{$theme}#{$border});
|
18
|
+
padding: var(#{$theme}#{$padding});
|
19
|
+
border-radius: 0;
|
20
|
+
gap: var(#{$theme}#{$gap});
|
21
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import clippy from "@yourdash/shared/web/helpers/clippy.js";
|
7
|
+
import { FC, ReactNode } from "react";
|
8
|
+
import IncrementLevel from "../../core/incrementLevel.js";
|
9
|
+
import { useLevel, useLevelClass } from "../../core/level.js";
|
10
|
+
import styles from "./box.module.scss";
|
11
|
+
|
12
|
+
const Box: FC<{ className?: string; level?: 0 | 1 | 2 | 3; children: ReactNode | ReactNode[] }> = (props) => {
|
13
|
+
const level = props.level || useLevel();
|
14
|
+
|
15
|
+
return (
|
16
|
+
<div className={clippy(styles.component, props.className, useLevelClass(level))}>
|
17
|
+
<IncrementLevel>{props.children}</IncrementLevel>
|
18
|
+
</div>
|
19
|
+
);
|
20
|
+
};
|
21
|
+
|
22
|
+
export default Box;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
font-family: var(#{$theme}#{$font}#{$family});
|
10
|
+
text-align: center;
|
11
|
+
min-width: 6rem;
|
12
|
+
padding: 0 var(#{$theme}#{$button}#{$padding}#{$horizontal});
|
13
|
+
color: var(#{$theme}#{$button}#{$color});
|
14
|
+
border: var(#{$theme}#{$button}#{$border});
|
15
|
+
border-radius: var(#{$theme}#{$button}#{$radius});
|
16
|
+
background: var(#{$theme}#{$button}#{$background});
|
17
|
+
transition: var(#{$theme}#{$button}#{$transition});
|
18
|
+
height: var(#{$theme+$input+$height});
|
19
|
+
width: max-content;
|
20
|
+
cursor: pointer;
|
21
|
+
|
22
|
+
&:hover {
|
23
|
+
color: var(#{$theme}#{$button}#{$hover}#{$color});
|
24
|
+
border: var(#{$theme}#{$button}#{$hover}#{$border});
|
25
|
+
border-radius: var(#{$theme}#{$button}#{$hover}#{$radius});
|
26
|
+
background: var(#{$theme}#{$button}#{$hover}#{$background});
|
27
|
+
transition: var(#{$theme}#{$button}#{$hover}#{$transition});
|
28
|
+
}
|
29
|
+
|
30
|
+
&:active {
|
31
|
+
color: var(#{$theme}#{$button}#{$active}#{$color});
|
32
|
+
border: var(#{$theme}#{$button}#{$active}#{$border});
|
33
|
+
border-radius: var(#{$theme}#{$button}#{$active}#{$radius});
|
34
|
+
background: var(#{$theme}#{$button}#{$active}#{$background});
|
35
|
+
transition: var(#{$theme}#{$button}#{$active}#{$transition});
|
36
|
+
}
|
37
|
+
|
38
|
+
&:disabled {
|
39
|
+
opacity: 0.8;
|
40
|
+
|
41
|
+
color: var(#{$theme}#{$button}#{$color});
|
42
|
+
border: var(#{$theme}#{$button}#{$border});
|
43
|
+
border-radius: var(#{$theme}#{$button}#{$radius});
|
44
|
+
background: var(#{$theme}#{$button}#{$background});
|
45
|
+
cursor: not-allowed;
|
46
|
+
}
|
47
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import clippy from "@yourdash/shared/web/helpers/clippy.js";
|
7
|
+
import styles from "./button.module.scss";
|
8
|
+
import { FC } from "react";
|
9
|
+
|
10
|
+
const Button: FC<{ onClick: () => void; text: string; className?: string; disabled?: boolean }> = (props) => {
|
11
|
+
return (
|
12
|
+
<button
|
13
|
+
className={clippy(styles.component, props.className)}
|
14
|
+
onClick={props.onClick}
|
15
|
+
aria-label={props.text}
|
16
|
+
disabled={props.disabled}
|
17
|
+
>
|
18
|
+
{props.text}
|
19
|
+
</button>
|
20
|
+
);
|
21
|
+
};
|
22
|
+
|
23
|
+
export default Button;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
font-family: var(#{$theme}#{$font}#{$family});
|
10
|
+
text-align: center;
|
11
|
+
min-width: 6rem;
|
12
|
+
padding: 0 var(#{$theme}#{$button}#{$padding}#{$horizontal});
|
13
|
+
color: var(#{$theme}#{$button}#{$color});
|
14
|
+
border: var(#{$theme}#{$button}#{$border});
|
15
|
+
border-radius: var(#{$theme}#{$button}#{$radius});
|
16
|
+
background: var(#{$theme}#{$button}#{$background});
|
17
|
+
transition: var(#{$theme}#{$button}#{$transition});
|
18
|
+
height: var(#{$theme+$input+$height});
|
19
|
+
width: max-content;
|
20
|
+
cursor: pointer;
|
21
|
+
|
22
|
+
&:hover {
|
23
|
+
color: var(#{$theme}#{$button}#{$hover}#{$color});
|
24
|
+
border: var(#{$theme}#{$button}#{$hover}#{$border});
|
25
|
+
border-radius: var(#{$theme}#{$button}#{$hover}#{$radius});
|
26
|
+
background: var(#{$theme}#{$button}#{$hover}#{$background});
|
27
|
+
transition: var(#{$theme}#{$button}#{$hover}#{$transition});
|
28
|
+
}
|
29
|
+
|
30
|
+
&:active {
|
31
|
+
color: var(#{$theme}#{$button}#{$active}#{$color});
|
32
|
+
border: var(#{$theme}#{$button}#{$active}#{$border});
|
33
|
+
border-radius: var(#{$theme}#{$button}#{$active}#{$radius});
|
34
|
+
background: var(#{$theme}#{$button}#{$active}#{$background});
|
35
|
+
transition: var(#{$theme}#{$button}#{$active}#{$transition});
|
36
|
+
}
|
37
|
+
|
38
|
+
&:disabled {
|
39
|
+
opacity: 0.8;
|
40
|
+
|
41
|
+
color: var(#{$theme}#{$button}#{$color});
|
42
|
+
border: var(#{$theme}#{$button}#{$border});
|
43
|
+
border-radius: var(#{$theme}#{$button}#{$radius});
|
44
|
+
background: var(#{$theme}#{$button}#{$background});
|
45
|
+
cursor: not-allowed;
|
46
|
+
}
|
47
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import clippy from "@yourdash/shared/web/helpers/clippy.js";
|
7
|
+
import Button from "../button/button.js";
|
8
|
+
import { Link } from "react-router-dom";
|
9
|
+
import styles from "./buttonLink.module.scss";
|
10
|
+
import { FC } from "react";
|
11
|
+
|
12
|
+
const ButtonLink: FC<{ text: string; to: string; className?: string }> = (props) => {
|
13
|
+
return (
|
14
|
+
<Link to={props.to}>
|
15
|
+
<Button
|
16
|
+
onClick={() => {
|
17
|
+
return 0;
|
18
|
+
}}
|
19
|
+
text={props.text}
|
20
|
+
className={clippy(styles.component, props.className)}
|
21
|
+
/>
|
22
|
+
</Link>
|
23
|
+
);
|
24
|
+
};
|
25
|
+
|
26
|
+
export default ButtonLink;
|
@@ -0,0 +1,78 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
box-sizing: border-box;
|
10
|
+
display: flex;
|
11
|
+
flex-direction: column;
|
12
|
+
font-weight: var(#{$theme+$font+$weight});
|
13
|
+
font-size: var(#{$theme+$font+$size});
|
14
|
+
font-family: var(#{$theme+$font+$family});
|
15
|
+
background: var(#{$theme+$background});
|
16
|
+
color: var(#{$theme+$color});
|
17
|
+
border: var(#{$theme+$border});
|
18
|
+
padding: 0;
|
19
|
+
border-radius: var(#{$theme+$radius});
|
20
|
+
overflow: hidden;
|
21
|
+
}
|
22
|
+
|
23
|
+
.clickable {
|
24
|
+
display: flex;
|
25
|
+
width: 100%;
|
26
|
+
cursor: pointer;
|
27
|
+
|
28
|
+
color: var(#{$theme+$button+$color});
|
29
|
+
background: var(#{$theme+$button+$background});
|
30
|
+
border: var(#{$theme+$button+$border});
|
31
|
+
font-size: var(#{$theme+$button+$font+$size});
|
32
|
+
font-weight: var(#{$theme+$button+$font+$weight});
|
33
|
+
border-radius: var(#{$theme+$button+$radius});
|
34
|
+
transition: var(#{$theme+$button+$transition});
|
35
|
+
|
36
|
+
&:hover {
|
37
|
+
color: var(#{$theme+$button+$hover+$color});
|
38
|
+
background: var(#{$theme+$button+$hover+$background});
|
39
|
+
border: var(#{$theme+$button+$hover+$border});
|
40
|
+
border-radius: var(#{$theme+$button+$hover+$radius});
|
41
|
+
transition: var(#{$theme+$button+$hover+$transition});
|
42
|
+
}
|
43
|
+
|
44
|
+
&:active {
|
45
|
+
color: var(#{$theme+$button+$active+$color});
|
46
|
+
background: var(#{$theme+$button+$active+$background});
|
47
|
+
border: var(#{$theme+$button+$active+$border});
|
48
|
+
border-radius: var(#{$theme+$button+$active+$radius});
|
49
|
+
transition: var(#{$theme+$button+$active+$transition});
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
.header {
|
54
|
+
border-left: none;
|
55
|
+
border-right: none;
|
56
|
+
border-top: none;
|
57
|
+
width: 100%;
|
58
|
+
}
|
59
|
+
|
60
|
+
.actions {
|
61
|
+
border-left: none;
|
62
|
+
border-right: none;
|
63
|
+
border-bottom: none;
|
64
|
+
display: flex;
|
65
|
+
align-items: flex-end;
|
66
|
+
width: 100%;
|
67
|
+
}
|
68
|
+
|
69
|
+
.content {
|
70
|
+
display: flex;
|
71
|
+
flex-direction: column;
|
72
|
+
gap: var(#{$theme+$gap});
|
73
|
+
padding: var(#{$theme+$padding});
|
74
|
+
padding-top: var(#{$theme+$gap});
|
75
|
+
padding-bottom: var(#{$theme+$gap});
|
76
|
+
height: 100%;
|
77
|
+
width: 100%;
|
78
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import clippy from "@yourdash/shared/web/helpers/clippy.js";
|
7
|
+
import IncrementLevel from "../../core/incrementLevel.js";
|
8
|
+
import { useLevel, useLevelClass } from "../../core/level.js";
|
9
|
+
import Box from "../box/box.js";
|
10
|
+
import styles from "./card.module.scss";
|
11
|
+
import { FC, Ref } from "react";
|
12
|
+
|
13
|
+
const Card: FC<{
|
14
|
+
level?: 0 | 1 | 2 | 3;
|
15
|
+
containerClassName?: string;
|
16
|
+
onClick?: () => void;
|
17
|
+
className?: string;
|
18
|
+
actionsClassName?: string;
|
19
|
+
headerClassName?: string;
|
20
|
+
children: React.ReactNode | React.ReactNode[];
|
21
|
+
actions?: React.ReactNode | React.ReactNode[];
|
22
|
+
header?: React.ReactNode | React.ReactNode[];
|
23
|
+
style?: React.CSSProperties;
|
24
|
+
}> = (props) => {
|
25
|
+
const level = props.level || useLevel();
|
26
|
+
|
27
|
+
if (props.onClick) {
|
28
|
+
return (
|
29
|
+
<>
|
30
|
+
<button
|
31
|
+
style={props.style}
|
32
|
+
className={clippy(styles.component, useLevelClass(level), props.containerClassName, styles.clickable)}
|
33
|
+
onClick={props.onClick}
|
34
|
+
>
|
35
|
+
<IncrementLevel>
|
36
|
+
{props.header && <Box className={clippy(styles.header, props.headerClassName)}>{props.header}</Box>}
|
37
|
+
<div className={clippy(styles.content, props.className)}>{props.children}</div>
|
38
|
+
{props.actions && <Box className={clippy(styles.actions, props.actionsClassName)}>{props.actions}</Box>}
|
39
|
+
</IncrementLevel>
|
40
|
+
</button>
|
41
|
+
</>
|
42
|
+
);
|
43
|
+
}
|
44
|
+
|
45
|
+
return (
|
46
|
+
<>
|
47
|
+
<div
|
48
|
+
style={props.style}
|
49
|
+
className={clippy(styles.component, useLevelClass(level), props.containerClassName)}
|
50
|
+
>
|
51
|
+
<IncrementLevel>
|
52
|
+
{props.header && <Box className={clippy(styles.header, props.headerClassName)}>{props.header}</Box>}
|
53
|
+
<div className={clippy(styles.content, props.className)}>{props.children}</div>
|
54
|
+
{props.actions && <Box className={clippy(styles.actions, props.actionsClassName)}>{props.actions}</Box>}
|
55
|
+
</IncrementLevel>
|
56
|
+
</div>
|
57
|
+
</>
|
58
|
+
);
|
59
|
+
};
|
60
|
+
|
61
|
+
export default Card;
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import { FC } from "react";
|
7
|
+
import contextMenuRootContext from "./contextMenuRootContext.js";
|
8
|
+
|
9
|
+
const ContextMenu: FC<{
|
10
|
+
items: { label: string; onClick: () => void }[];
|
11
|
+
children: React.ReactNode | React.ReactNode[];
|
12
|
+
className?: string;
|
13
|
+
}> = ({ items, children, className }) => {
|
14
|
+
return (
|
15
|
+
<contextMenuRootContext.Consumer>
|
16
|
+
{(rootContext) => {
|
17
|
+
return (
|
18
|
+
<div
|
19
|
+
className={className}
|
20
|
+
onContextMenu={(e) => {
|
21
|
+
e.stopPropagation();
|
22
|
+
e.preventDefault();
|
23
|
+
|
24
|
+
const menuRect = e.currentTarget.getBoundingClientRect();
|
25
|
+
|
26
|
+
rootContext.createMenu({
|
27
|
+
x: e.pageX,
|
28
|
+
y: e.pageY,
|
29
|
+
width: menuRect.width,
|
30
|
+
height: menuRect.height,
|
31
|
+
items: items,
|
32
|
+
});
|
33
|
+
|
34
|
+
const listener = (ev: MouseEvent) => {
|
35
|
+
ev.preventDefault();
|
36
|
+
|
37
|
+
rootContext.destroyMenu();
|
38
|
+
|
39
|
+
window.removeEventListener("click", listener);
|
40
|
+
window.removeEventListener("contextmenu", listener);
|
41
|
+
};
|
42
|
+
|
43
|
+
window.addEventListener("click", listener);
|
44
|
+
window.addEventListener("contextmenu", listener);
|
45
|
+
}}
|
46
|
+
>
|
47
|
+
{children}
|
48
|
+
</div>
|
49
|
+
);
|
50
|
+
}}
|
51
|
+
</contextMenuRootContext.Consumer>
|
52
|
+
);
|
53
|
+
};
|
54
|
+
|
55
|
+
export default ContextMenu;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
position: fixed;
|
10
|
+
z-index: 10000000;
|
11
|
+
overflow: hidden;
|
12
|
+
flex-direction: column;
|
13
|
+
width: 200px;
|
14
|
+
box-shadow: 0 0 0.5rem #00000088;
|
15
|
+
box-sizing: border-box;
|
16
|
+
display: flex;
|
17
|
+
font-weight: var(#{$theme+$font+$weight});
|
18
|
+
font-size: var(#{$theme+$font+$size});
|
19
|
+
font-family: var(#{$theme+$font+$family});
|
20
|
+
background: var(#{$theme+$background});
|
21
|
+
color: var(#{$theme+$color});
|
22
|
+
border: var(#{$theme+$border});
|
23
|
+
border-radius: var(#{$theme+$radius});
|
24
|
+
gap: calc(var(#{$theme+$gap}) / 2);
|
25
|
+
padding: 0.5rem;
|
26
|
+
|
27
|
+
.button {
|
28
|
+
min-width: 100%;
|
29
|
+
text-align: start;
|
30
|
+
}
|
31
|
+
}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import React, { ReactNode } from "react";
|
7
|
+
import { FC, useEffect, useRef } from "react";
|
8
|
+
import Button from "../button/button.js";
|
9
|
+
import ContextMenuRootContext from "./contextMenuRootContext.js";
|
10
|
+
import styles from "./contextMenuRoot.module.scss";
|
11
|
+
|
12
|
+
const ContextMenuRoot: FC<{ children: ReactNode | ReactNode[] }> = ({ children }) => {
|
13
|
+
const [position, setPosition] = React.useState({ x: 0, y: 0 });
|
14
|
+
const [visible, setVisible] = React.useState(false);
|
15
|
+
const [items, setItems] = React.useState([] as { label: string; onClick: () => void }[]);
|
16
|
+
const ref = useRef<HTMLDivElement>(null);
|
17
|
+
|
18
|
+
useEffect(() => {
|
19
|
+
window.addEventListener("resize", () => {
|
20
|
+
setVisible(false);
|
21
|
+
});
|
22
|
+
}, []);
|
23
|
+
|
24
|
+
return (
|
25
|
+
<ContextMenuRootContext.Provider
|
26
|
+
value={{
|
27
|
+
createMenu: ({ x, y, width, height, items: i }) => {
|
28
|
+
const screenWidth = window.innerWidth;
|
29
|
+
const screenHeight = window.innerHeight;
|
30
|
+
|
31
|
+
const MENU_WIDTH = ref.current?.getBoundingClientRect().width || 200;
|
32
|
+
const MENU_HEIGHT = ref.current?.getBoundingClientRect().height || 200;
|
33
|
+
|
34
|
+
let resultX = x;
|
35
|
+
let resultY = y;
|
36
|
+
|
37
|
+
if (x + MENU_WIDTH >= screenWidth) {
|
38
|
+
resultX = screenWidth - MENU_WIDTH;
|
39
|
+
}
|
40
|
+
|
41
|
+
if (y + MENU_HEIGHT >= screenHeight) {
|
42
|
+
resultY = screenHeight - MENU_HEIGHT;
|
43
|
+
}
|
44
|
+
|
45
|
+
setPosition({
|
46
|
+
x: resultX,
|
47
|
+
y: resultY,
|
48
|
+
});
|
49
|
+
|
50
|
+
setItems(i);
|
51
|
+
setVisible(true);
|
52
|
+
},
|
53
|
+
destroyMenu: () => {
|
54
|
+
setVisible(false);
|
55
|
+
},
|
56
|
+
}}
|
57
|
+
>
|
58
|
+
<div
|
59
|
+
ref={ref}
|
60
|
+
style={{
|
61
|
+
display: visible ? "flex" : "none",
|
62
|
+
left: position.x,
|
63
|
+
top: position.y,
|
64
|
+
}}
|
65
|
+
className={styles.component}
|
66
|
+
>
|
67
|
+
{items.map((item) => {
|
68
|
+
return (
|
69
|
+
<Button
|
70
|
+
className={styles.button}
|
71
|
+
text={item.label}
|
72
|
+
onClick={item.onClick}
|
73
|
+
key={item.label}
|
74
|
+
/>
|
75
|
+
);
|
76
|
+
})}
|
77
|
+
</div>
|
78
|
+
{children}
|
79
|
+
</ContextMenuRootContext.Provider>
|
80
|
+
);
|
81
|
+
};
|
82
|
+
|
83
|
+
export default ContextMenuRoot;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import { createContext } from "react";
|
7
|
+
|
8
|
+
export default createContext({
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
10
|
+
createMenu: (data: {
|
11
|
+
x: number;
|
12
|
+
y: number;
|
13
|
+
width: number;
|
14
|
+
height: number;
|
15
|
+
items: { label: string; onClick: () => void }[];
|
16
|
+
}) => {
|
17
|
+
/* empty function */
|
18
|
+
},
|
19
|
+
destroyMenu: () => {
|
20
|
+
/* empty function */
|
21
|
+
},
|
22
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
display: flex;
|
10
|
+
gap: var(#{$theme}#{$gap});
|
11
|
+
}
|
12
|
+
|
13
|
+
.row {
|
14
|
+
flex-direction: row;
|
15
|
+
}
|
16
|
+
|
17
|
+
.column {
|
18
|
+
flex-direction: column;
|
19
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import styles from "./flex.module.scss";
|
7
|
+
import { FC, ReactNode } from "react";
|
8
|
+
|
9
|
+
const Flex: FC<{ direction: "row" | "column"; className?: string; children: ReactNode | ReactNode[] }> = (props) => {
|
10
|
+
return <div className={`${styles.component} ${styles[props.direction]} ${props.className}`}>{props.children}</div>;
|
11
|
+
};
|
12
|
+
|
13
|
+
export default Flex;
|
@@ -0,0 +1,41 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "../../theme/themeValues";
|
7
|
+
|
8
|
+
.component {
|
9
|
+
display: inline-block;
|
10
|
+
text-align: center;
|
11
|
+
}
|
12
|
+
|
13
|
+
.h1component {
|
14
|
+
font-size: var(#{$theme}#{$heading}#{$h1}#{$size});
|
15
|
+
font-weight: var(#{$theme}#{$heading}#{$h1}#{$weight});
|
16
|
+
}
|
17
|
+
|
18
|
+
.h2component {
|
19
|
+
font-size: var(#{$theme}#{$heading}#{$h2}#{$size});
|
20
|
+
font-weight: var(#{$theme}#{$heading}#{$h2}#{$weight});
|
21
|
+
}
|
22
|
+
|
23
|
+
.h3component {
|
24
|
+
font-size: var(#{$theme}#{$heading}#{$h3}#{$size});
|
25
|
+
font-weight: var(#{$theme}#{$heading}#{$h3}#{$weight});
|
26
|
+
}
|
27
|
+
|
28
|
+
.h4component {
|
29
|
+
font-size: var(#{$theme}#{$heading}#{$h4}#{$size});
|
30
|
+
font-weight: var(#{$theme}#{$heading}#{$h4}#{$weight});
|
31
|
+
}
|
32
|
+
|
33
|
+
.h5component {
|
34
|
+
font-size: var(#{$theme}#{$heading}#{$h5}#{$size});
|
35
|
+
font-weight: var(#{$theme}#{$heading}#{$h5}#{$weight});
|
36
|
+
}
|
37
|
+
|
38
|
+
.h6component {
|
39
|
+
font-size: var(#{$theme}#{$heading}#{$h6}#{$size});
|
40
|
+
font-weight: var(#{$theme}#{$heading}#{$h6}#{$weight});
|
41
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
import styles from "./heading.module.scss";
|
7
|
+
import clippy from "@yourdash/shared/web/helpers/clippy";
|
8
|
+
import { FC } from "react";
|
9
|
+
|
10
|
+
const Heading: FC<{ text: string; level?: 1 | 2 | 3 | 4 | 5 | 6; className?: string }> = (props) => {
|
11
|
+
switch (props.level || 1) {
|
12
|
+
case 1:
|
13
|
+
return <h1 className={clippy(styles.component, styles.h1component, props.className)}>{props.text}</h1>;
|
14
|
+
case 2:
|
15
|
+
return <h2 className={clippy(styles.component, styles.h2component, props.className)}>{props.text}</h2>;
|
16
|
+
case 3:
|
17
|
+
return <h3 className={clippy(styles.component, styles.h3component, props.className)}>{props.text}</h3>;
|
18
|
+
case 4:
|
19
|
+
return <h4 className={clippy(styles.component, styles.h4component, props.className)}>{props.text}</h4>;
|
20
|
+
case 5:
|
21
|
+
return <h5 className={clippy(styles.component, styles.h5component, props.className)}>{props.text}</h5>;
|
22
|
+
case 6:
|
23
|
+
return <h6 className={clippy(styles.component, styles.h6component, props.className)}>{props.text}</h6>;
|
24
|
+
}
|
25
|
+
};
|
26
|
+
|
27
|
+
export default Heading;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright ©2024 Ewsgit<https://github.com/ewsgit> and YourDash<https://github.com/yourdash> contributors.
|
3
|
+
* YourDash is licensed under the MIT License. (https://ewsgit.mit-license.org)
|
4
|
+
*/
|
5
|
+
|
6
|
+
.component {
|
7
|
+
aspect-ratio: 1 / 1;
|
8
|
+
width: var(--size);
|
9
|
+
|
10
|
+
background-color: var(--color, currentColor);
|
11
|
+
-webkit-mask-image: var(--icon);
|
12
|
+
-webkit-mask-position: center;
|
13
|
+
-webkit-mask-repeat: no-repeat;
|
14
|
+
-webkit-mask-size: cover;
|
15
|
+
mask-image: var(--icon);
|
16
|
+
mask-position: center;
|
17
|
+
mask-repeat: no-repeat;
|
18
|
+
mask-size: cover;
|
19
|
+
}
|
20
|
+
|
21
|
+
.preserveColor {
|
22
|
+
background-image: var(--icon);
|
23
|
+
background-position: center;
|
24
|
+
background-repeat: no-repeat;
|
25
|
+
background-size: cover;
|
26
|
+
}
|