@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.
Files changed (578) hide show
  1. package/README.md +2 -0
  2. package/components/box/box.module.scss +21 -0
  3. package/components/box/box.tsx +22 -0
  4. package/components/button/button.module.scss +47 -0
  5. package/components/button/button.tsx +23 -0
  6. package/components/buttonLink/buttonLink.module.scss +47 -0
  7. package/components/buttonLink/buttonLink.tsx +26 -0
  8. package/components/card/card.module.scss +78 -0
  9. package/components/card/card.tsx +61 -0
  10. package/components/contextMenu/contextMenu.tsx +55 -0
  11. package/components/contextMenu/contextMenuRoot.module.scss +31 -0
  12. package/components/contextMenu/contextMenuRoot.tsx +83 -0
  13. package/components/contextMenu/contextMenuRootContext.tsx +22 -0
  14. package/components/flex/flex.module.scss +19 -0
  15. package/components/flex/flex.tsx +13 -0
  16. package/components/heading/heading.module.scss +41 -0
  17. package/components/heading/heading.tsx +27 -0
  18. package/components/icon/icon.module.scss +26 -0
  19. package/components/icon/icon.tsx +30 -0
  20. package/components/icon/iconDictionary.ts +573 -0
  21. package/components/icon/icons/accessibility-16.svg +9 -0
  22. package/components/icon/icons/accessibility-inset-16.svg +9 -0
  23. package/components/icon/icons/alert-16.svg +9 -0
  24. package/components/icon/icons/alert-24.svg +10 -0
  25. package/components/icon/icons/alert-fill-12.svg +9 -0
  26. package/components/icon/icons/app-launcher-16.svg +11 -0
  27. package/components/icon/icons/apps-16.svg +9 -0
  28. package/components/icon/icons/archive-16.svg +9 -0
  29. package/components/icon/icons/archive-24.svg +12 -0
  30. package/components/icon/icons/arrow-both-16.svg +9 -0
  31. package/components/icon/icons/arrow-both-24.svg +6 -0
  32. package/components/icon/icons/arrow-down-16.svg +9 -0
  33. package/components/icon/icons/arrow-down-24.svg +9 -0
  34. package/components/icon/icons/arrow-down-left-24.svg +9 -0
  35. package/components/icon/icons/arrow-down-right-24.svg +9 -0
  36. package/components/icon/icons/arrow-left-16.svg +9 -0
  37. package/components/icon/icons/arrow-left-24.svg +9 -0
  38. package/components/icon/icons/arrow-right-16.svg +9 -0
  39. package/components/icon/icons/arrow-right-24.svg +9 -0
  40. package/components/icon/icons/arrow-switch-16.svg +6 -0
  41. package/components/icon/icons/arrow-switch-24.svg +6 -0
  42. package/components/icon/icons/arrow-up-16.svg +9 -0
  43. package/components/icon/icons/arrow-up-24.svg +9 -0
  44. package/components/icon/icons/arrow-up-left-24.svg +9 -0
  45. package/components/icon/icons/arrow-up-right-24.svg +9 -0
  46. package/components/icon/icons/beaker-16.svg +9 -0
  47. package/components/icon/icons/beaker-24.svg +9 -0
  48. package/components/icon/icons/bell-16.svg +10 -0
  49. package/components/icon/icons/bell-24.svg +9 -0
  50. package/components/icon/icons/bell-fill-16.svg +6 -0
  51. package/components/icon/icons/bell-fill-24.svg +9 -0
  52. package/components/icon/icons/bell-slash-16.svg +9 -0
  53. package/components/icon/icons/bell-slash-24.svg +11 -0
  54. package/components/icon/icons/blocked-16.svg +9 -0
  55. package/components/icon/icons/blocked-24.svg +9 -0
  56. package/components/icon/icons/bold-16.svg +9 -0
  57. package/components/icon/icons/bold-24.svg +9 -0
  58. package/components/icon/icons/book-16.svg +9 -0
  59. package/components/icon/icons/book-24.svg +9 -0
  60. package/components/icon/icons/bookmark-16.svg +9 -0
  61. package/components/icon/icons/bookmark-24.svg +9 -0
  62. package/components/icon/icons/bookmark-fill-24.svg +9 -0
  63. package/components/icon/icons/bookmark-slash-16.svg +9 -0
  64. package/components/icon/icons/bookmark-slash-24.svg +10 -0
  65. package/components/icon/icons/bookmark-slash-fill-24.svg +9 -0
  66. package/components/icon/icons/briefcase-16.svg +9 -0
  67. package/components/icon/icons/briefcase-24.svg +9 -0
  68. package/components/icon/icons/broadcast-16.svg +9 -0
  69. package/components/icon/icons/broadcast-24.svg +6 -0
  70. package/components/icon/icons/browser-16.svg +9 -0
  71. package/components/icon/icons/browser-24.svg +9 -0
  72. package/components/icon/icons/bug-16.svg +9 -0
  73. package/components/icon/icons/bug-24.svg +9 -0
  74. package/components/icon/icons/cache-16.svg +11 -0
  75. package/components/icon/icons/calendar-16.svg +9 -0
  76. package/components/icon/icons/calendar-24.svg +9 -0
  77. package/components/icon/icons/check-16.svg +9 -0
  78. package/components/icon/icons/check-24.svg +9 -0
  79. package/components/icon/icons/check-circle-16.svg +9 -0
  80. package/components/icon/icons/check-circle-24.svg +10 -0
  81. package/components/icon/icons/check-circle-fill-12.svg +9 -0
  82. package/components/icon/icons/check-circle-fill-16.svg +9 -0
  83. package/components/icon/icons/check-circle-fill-24.svg +9 -0
  84. package/components/icon/icons/checkbox-16.svg +9 -0
  85. package/components/icon/icons/checkbox-24.svg +10 -0
  86. package/components/icon/icons/checklist-16.svg +9 -0
  87. package/components/icon/icons/checklist-24.svg +6 -0
  88. package/components/icon/icons/chevron-down-16.svg +9 -0
  89. package/components/icon/icons/chevron-down-24.svg +9 -0
  90. package/components/icon/icons/chevron-left-16.svg +9 -0
  91. package/components/icon/icons/chevron-left-24.svg +9 -0
  92. package/components/icon/icons/chevron-right-16.svg +9 -0
  93. package/components/icon/icons/chevron-right-24.svg +9 -0
  94. package/components/icon/icons/chevron-up-16.svg +9 -0
  95. package/components/icon/icons/chevron-up-24.svg +9 -0
  96. package/components/icon/icons/circle-16.svg +8 -0
  97. package/components/icon/icons/circle-24.svg +9 -0
  98. package/components/icon/icons/circle-slash-16.svg +9 -0
  99. package/components/icon/icons/circle-slash-24.svg +9 -0
  100. package/components/icon/icons/clock-16.svg +9 -0
  101. package/components/icon/icons/clock-24.svg +10 -0
  102. package/components/icon/icons/cloud-16.svg +9 -0
  103. package/components/icon/icons/cloud-24.svg +9 -0
  104. package/components/icon/icons/cloud-offline-16.svg +11 -0
  105. package/components/icon/icons/cloud-offline-24.svg +11 -0
  106. package/components/icon/icons/code-16.svg +9 -0
  107. package/components/icon/icons/code-24.svg +9 -0
  108. package/components/icon/icons/code-of-conduct-16.svg +9 -0
  109. package/components/icon/icons/code-of-conduct-24.svg +9 -0
  110. package/components/icon/icons/code-review-16.svg +9 -0
  111. package/components/icon/icons/code-review-24.svg +11 -0
  112. package/components/icon/icons/code-square-16.svg +9 -0
  113. package/components/icon/icons/code-square-24.svg +11 -0
  114. package/components/icon/icons/codescan-16.svg +11 -0
  115. package/components/icon/icons/codescan-24.svg +11 -0
  116. package/components/icon/icons/codescan-checkmark-16.svg +10 -0
  117. package/components/icon/icons/codescan-checkmark-24.svg +10 -0
  118. package/components/icon/icons/codespaces-16.svg +11 -0
  119. package/components/icon/icons/codespaces-24.svg +11 -0
  120. package/components/icon/icons/columns-16.svg +9 -0
  121. package/components/icon/icons/columns-24.svg +9 -0
  122. package/components/icon/icons/command-palette-16.svg +6 -0
  123. package/components/icon/icons/command-palette-24.svg +6 -0
  124. package/components/icon/icons/comment-16.svg +9 -0
  125. package/components/icon/icons/comment-24.svg +9 -0
  126. package/components/icon/icons/comment-discussion-16.svg +9 -0
  127. package/components/icon/icons/comment-discussion-24.svg +11 -0
  128. package/components/icon/icons/commit-24.svg +10 -0
  129. package/components/icon/icons/container-16.svg +9 -0
  130. package/components/icon/icons/container-24.svg +9 -0
  131. package/components/icon/icons/copilot-16.svg +10 -0
  132. package/components/icon/icons/copilot-24.svg +10 -0
  133. package/components/icon/icons/copilot-48.svg +10 -0
  134. package/components/icon/icons/copilot-96.svg +10 -0
  135. package/components/icon/icons/copilot-error-16.svg +9 -0
  136. package/components/icon/icons/copilot-warning-16.svg +11 -0
  137. package/components/icon/icons/copy-16.svg +11 -0
  138. package/components/icon/icons/copy-24.svg +11 -0
  139. package/components/icon/icons/cpu-16.svg +9 -0
  140. package/components/icon/icons/cpu-24.svg +11 -0
  141. package/components/icon/icons/credit-card-16.svg +10 -0
  142. package/components/icon/icons/credit-card-24.svg +10 -0
  143. package/components/icon/icons/cross-reference-16.svg +9 -0
  144. package/components/icon/icons/cross-reference-24.svg +6 -0
  145. package/components/icon/icons/dash-16.svg +8 -0
  146. package/components/icon/icons/dash-24.svg +8 -0
  147. package/components/icon/icons/database-16.svg +9 -0
  148. package/components/icon/icons/database-24.svg +9 -0
  149. package/components/icon/icons/dependabot-16.svg +10 -0
  150. package/components/icon/icons/dependabot-24.svg +10 -0
  151. package/components/icon/icons/desktop-download-16.svg +6 -0
  152. package/components/icon/icons/desktop-download-24.svg +11 -0
  153. package/components/icon/icons/device-camera-16.svg +9 -0
  154. package/components/icon/icons/device-camera-video-16.svg +9 -0
  155. package/components/icon/icons/device-camera-video-24.svg +9 -0
  156. package/components/icon/icons/device-desktop-16.svg +9 -0
  157. package/components/icon/icons/device-desktop-24.svg +9 -0
  158. package/components/icon/icons/device-mobile-16.svg +9 -0
  159. package/components/icon/icons/device-mobile-24.svg +10 -0
  160. package/components/icon/icons/diamond-16.svg +9 -0
  161. package/components/icon/icons/diamond-24.svg +9 -0
  162. package/components/icon/icons/diff-16.svg +9 -0
  163. package/components/icon/icons/diff-24.svg +9 -0
  164. package/components/icon/icons/diff-added-16.svg +9 -0
  165. package/components/icon/icons/diff-ignored-16.svg +9 -0
  166. package/components/icon/icons/diff-modified-16.svg +9 -0
  167. package/components/icon/icons/diff-removed-16.svg +9 -0
  168. package/components/icon/icons/diff-renamed-16.svg +9 -0
  169. package/components/icon/icons/dot-16.svg +8 -0
  170. package/components/icon/icons/dot-24.svg +8 -0
  171. package/components/icon/icons/dot-fill-16.svg +8 -0
  172. package/components/icon/icons/dot-fill-24.svg +6 -0
  173. package/components/icon/icons/download-16.svg +9 -0
  174. package/components/icon/icons/download-24.svg +6 -0
  175. package/components/icon/icons/duplicate-16.svg +12 -0
  176. package/components/icon/icons/duplicate-24.svg +12 -0
  177. package/components/icon/icons/ellipsis-16.svg +9 -0
  178. package/components/icon/icons/ewsgit.svg +14 -0
  179. package/components/icon/icons/eye-16.svg +9 -0
  180. package/components/icon/icons/eye-24.svg +10 -0
  181. package/components/icon/icons/eye-closed-16.svg +9 -0
  182. package/components/icon/icons/eye-closed-24.svg +11 -0
  183. package/components/icon/icons/feed-discussion-16.svg +9 -0
  184. package/components/icon/icons/feed-forked-16.svg +9 -0
  185. package/components/icon/icons/feed-heart-16.svg +9 -0
  186. package/components/icon/icons/feed-merged-16.svg +9 -0
  187. package/components/icon/icons/feed-person-16.svg +9 -0
  188. package/components/icon/icons/feed-repo-16.svg +9 -0
  189. package/components/icon/icons/feed-rocket-16.svg +9 -0
  190. package/components/icon/icons/feed-star-16.svg +9 -0
  191. package/components/icon/icons/feed-tag-16.svg +10 -0
  192. package/components/icon/icons/feed-trophy-16.svg +10 -0
  193. package/components/icon/icons/file-16.svg +9 -0
  194. package/components/icon/icons/file-24.svg +9 -0
  195. package/components/icon/icons/file-added-16.svg +9 -0
  196. package/components/icon/icons/file-badge-16.svg +11 -0
  197. package/components/icon/icons/file-binary-16.svg +9 -0
  198. package/components/icon/icons/file-binary-24.svg +12 -0
  199. package/components/icon/icons/file-code-16.svg +9 -0
  200. package/components/icon/icons/file-code-24.svg +11 -0
  201. package/components/icon/icons/file-diff-16.svg +9 -0
  202. package/components/icon/icons/file-diff-24.svg +11 -0
  203. package/components/icon/icons/file-directory-16.svg +9 -0
  204. package/components/icon/icons/file-directory-24.svg +9 -0
  205. package/components/icon/icons/file-directory-fill-16.svg +6 -0
  206. package/components/icon/icons/file-directory-fill-24.svg +9 -0
  207. package/components/icon/icons/file-directory-open-fill-16.svg +6 -0
  208. package/components/icon/icons/file-media-24.svg +9 -0
  209. package/components/icon/icons/file-moved-16.svg +6 -0
  210. package/components/icon/icons/file-removed-16.svg +9 -0
  211. package/components/icon/icons/file-submodule-16.svg +9 -0
  212. package/components/icon/icons/file-submodule-24.svg +9 -0
  213. package/components/icon/icons/file-symlink-file-16.svg +9 -0
  214. package/components/icon/icons/file-symlink-file-24.svg +9 -0
  215. package/components/icon/icons/file-zip-16.svg +9 -0
  216. package/components/icon/icons/file-zip-24.svg +13 -0
  217. package/components/icon/icons/filter-16.svg +9 -0
  218. package/components/icon/icons/filter-24.svg +6 -0
  219. package/components/icon/icons/flame-16.svg +9 -0
  220. package/components/icon/icons/flame-24.svg +9 -0
  221. package/components/icon/icons/fold-16.svg +6 -0
  222. package/components/icon/icons/fold-24.svg +13 -0
  223. package/components/icon/icons/fold-down-16.svg +6 -0
  224. package/components/icon/icons/fold-down-24.svg +11 -0
  225. package/components/icon/icons/fold-up-16.svg +6 -0
  226. package/components/icon/icons/fold-up-24.svg +11 -0
  227. package/components/icon/icons/gear-16.svg +9 -0
  228. package/components/icon/icons/gear-24.svg +10 -0
  229. package/components/icon/icons/gift-16.svg +9 -0
  230. package/components/icon/icons/gift-24.svg +9 -0
  231. package/components/icon/icons/git-branch-16.svg +9 -0
  232. package/components/icon/icons/git-branch-24.svg +12 -0
  233. package/components/icon/icons/git-commit-16.svg +9 -0
  234. package/components/icon/icons/git-commit-24.svg +9 -0
  235. package/components/icon/icons/git-compare-16.svg +9 -0
  236. package/components/icon/icons/git-compare-24.svg +12 -0
  237. package/components/icon/icons/git-merge-16.svg +9 -0
  238. package/components/icon/icons/git-merge-24.svg +11 -0
  239. package/components/icon/icons/git-merge-queue-16.svg +11 -0
  240. package/components/icon/icons/git-pull-request-16.svg +9 -0
  241. package/components/icon/icons/git-pull-request-24.svg +11 -0
  242. package/components/icon/icons/git-pull-request-closed-16.svg +9 -0
  243. package/components/icon/icons/git-pull-request-closed-24.svg +11 -0
  244. package/components/icon/icons/git-pull-request-draft-16.svg +10 -0
  245. package/components/icon/icons/git-pull-request-draft-24.svg +10 -0
  246. package/components/icon/icons/globe-16.svg +9 -0
  247. package/components/icon/icons/globe-24.svg +9 -0
  248. package/components/icon/icons/grabber-16.svg +9 -0
  249. package/components/icon/icons/grabber-24.svg +9 -0
  250. package/components/icon/icons/graph-16.svg +9 -0
  251. package/components/icon/icons/graph-24.svg +6 -0
  252. package/components/icon/icons/hash-16.svg +9 -0
  253. package/components/icon/icons/hash-24.svg +9 -0
  254. package/components/icon/icons/heading-16.svg +9 -0
  255. package/components/icon/icons/heading-24.svg +9 -0
  256. package/components/icon/icons/heart-16.svg +9 -0
  257. package/components/icon/icons/heart-24.svg +9 -0
  258. package/components/icon/icons/heart-fill-16.svg +9 -0
  259. package/components/icon/icons/heart-fill-24.svg +6 -0
  260. package/components/icon/icons/history-16.svg +9 -0
  261. package/components/icon/icons/history-24.svg +6 -0
  262. package/components/icon/icons/home-16.svg +6 -0
  263. package/components/icon/icons/home-24.svg +9 -0
  264. package/components/icon/icons/home-fill-24.svg +6 -0
  265. package/components/icon/icons/horizontal-rule-16.svg +8 -0
  266. package/components/icon/icons/horizontal-rule-24.svg +8 -0
  267. package/components/icon/icons/hourglass-16.svg +9 -0
  268. package/components/icon/icons/hourglass-24.svg +9 -0
  269. package/components/icon/icons/hubot-16.svg +9 -0
  270. package/components/icon/icons/hubot-24.svg +11 -0
  271. package/components/icon/icons/id-badge-16.svg +11 -0
  272. package/components/icon/icons/image-16.svg +9 -0
  273. package/components/icon/icons/image-24.svg +9 -0
  274. package/components/icon/icons/inbox-16.svg +9 -0
  275. package/components/icon/icons/inbox-24.svg +9 -0
  276. package/components/icon/icons/infinity-16.svg +9 -0
  277. package/components/icon/icons/infinity-24.svg +9 -0
  278. package/components/icon/icons/info-16.svg +9 -0
  279. package/components/icon/icons/info-24.svg +11 -0
  280. package/components/icon/icons/issue-closed-16.svg +9 -0
  281. package/components/icon/icons/issue-closed-24.svg +10 -0
  282. package/components/icon/icons/issue-draft-16.svg +9 -0
  283. package/components/icon/icons/issue-draft-24.svg +9 -0
  284. package/components/icon/icons/issue-opened-16.svg +9 -0
  285. package/components/icon/icons/issue-opened-24.svg +9 -0
  286. package/components/icon/icons/issue-reopened-16.svg +6 -0
  287. package/components/icon/icons/issue-reopened-24.svg +6 -0
  288. package/components/icon/icons/italic-16.svg +9 -0
  289. package/components/icon/icons/italic-24.svg +9 -0
  290. package/components/icon/icons/iterations-16.svg +6 -0
  291. package/components/icon/icons/iterations-24.svg +6 -0
  292. package/components/icon/icons/kebab-horizontal-16.svg +6 -0
  293. package/components/icon/icons/kebab-horizontal-24.svg +8 -0
  294. package/components/icon/icons/key-16.svg +9 -0
  295. package/components/icon/icons/key-24.svg +10 -0
  296. package/components/icon/icons/key-asterisk-16.svg +11 -0
  297. package/components/icon/icons/law-16.svg +9 -0
  298. package/components/icon/icons/law-24.svg +9 -0
  299. package/components/icon/icons/light-bulb-16.svg +9 -0
  300. package/components/icon/icons/light-bulb-24.svg +9 -0
  301. package/components/icon/icons/link-16.svg +9 -0
  302. package/components/icon/icons/link-24.svg +6 -0
  303. package/components/icon/icons/link-external-16.svg +9 -0
  304. package/components/icon/icons/link-external-24.svg +6 -0
  305. package/components/icon/icons/list-ordered-16.svg +9 -0
  306. package/components/icon/icons/list-ordered-24.svg +6 -0
  307. package/components/icon/icons/list-unordered-16.svg +9 -0
  308. package/components/icon/icons/list-unordered-24.svg +9 -0
  309. package/components/icon/icons/location-16.svg +9 -0
  310. package/components/icon/icons/location-24.svg +10 -0
  311. package/components/icon/icons/lock-16.svg +9 -0
  312. package/components/icon/icons/lock-24.svg +9 -0
  313. package/components/icon/icons/log-16.svg +10 -0
  314. package/components/icon/icons/login.svg +9 -0
  315. package/components/icon/icons/logo-gist-16.svg +9 -0
  316. package/components/icon/icons/logo-github-16.svg +9 -0
  317. package/components/icon/icons/logout.svg +9 -0
  318. package/components/icon/icons/mail-16.svg +9 -0
  319. package/components/icon/icons/mail-24.svg +9 -0
  320. package/components/icon/icons/mark-github-16.svg +9 -0
  321. package/components/icon/icons/markdown-16.svg +9 -0
  322. package/components/icon/icons/megaphone-16.svg +14 -0
  323. package/components/icon/icons/megaphone-24.svg +9 -0
  324. package/components/icon/icons/mention-16.svg +9 -0
  325. package/components/icon/icons/mention-24.svg +9 -0
  326. package/components/icon/icons/meter-16.svg +9 -0
  327. package/components/icon/icons/milestone-16.svg +9 -0
  328. package/components/icon/icons/milestone-24.svg +9 -0
  329. package/components/icon/icons/mirror-16.svg +9 -0
  330. package/components/icon/icons/mirror-24.svg +9 -0
  331. package/components/icon/icons/moon-16.svg +9 -0
  332. package/components/icon/icons/moon-24.svg +9 -0
  333. package/components/icon/icons/mortar-board-16.svg +9 -0
  334. package/components/icon/icons/mortar-board-24.svg +9 -0
  335. package/components/icon/icons/multi-select-16.svg +10 -0
  336. package/components/icon/icons/multi-select-24.svg +10 -0
  337. package/components/icon/icons/mute-16.svg +9 -0
  338. package/components/icon/icons/mute-24.svg +11 -0
  339. package/components/icon/icons/no-entry-16.svg +9 -0
  340. package/components/icon/icons/no-entry-24.svg +9 -0
  341. package/components/icon/icons/no-entry-fill-12.svg +8 -0
  342. package/components/icon/icons/north-star-16.svg +6 -0
  343. package/components/icon/icons/north-star-24.svg +6 -0
  344. package/components/icon/icons/note-16.svg +9 -0
  345. package/components/icon/icons/note-24.svg +11 -0
  346. package/components/icon/icons/number-16.svg +9 -0
  347. package/components/icon/icons/number-24.svg +9 -0
  348. package/components/icon/icons/organization-16.svg +9 -0
  349. package/components/icon/icons/organization-24.svg +11 -0
  350. package/components/icon/icons/package-16.svg +9 -0
  351. package/components/icon/icons/package-24.svg +9 -0
  352. package/components/icon/icons/package-dependencies-16.svg +9 -0
  353. package/components/icon/icons/package-dependencies-24.svg +11 -0
  354. package/components/icon/icons/package-dependents-16.svg +9 -0
  355. package/components/icon/icons/package-dependents-24.svg +11 -0
  356. package/components/icon/icons/paintbrush-16.svg +9 -0
  357. package/components/icon/icons/paper-airplane-16.svg +9 -0
  358. package/components/icon/icons/paper-airplane-24.svg +9 -0
  359. package/components/icon/icons/paperclip-16.svg +9 -0
  360. package/components/icon/icons/paperclip-24.svg +9 -0
  361. package/components/icon/icons/paste-16.svg +9 -0
  362. package/components/icon/icons/paste-24.svg +11 -0
  363. package/components/icon/icons/pencil-16.svg +9 -0
  364. package/components/icon/icons/pencil-24.svg +9 -0
  365. package/components/icon/icons/people-16.svg +9 -0
  366. package/components/icon/icons/people-24.svg +11 -0
  367. package/components/icon/icons/person-16.svg +9 -0
  368. package/components/icon/icons/person-24.svg +9 -0
  369. package/components/icon/icons/person-add-16.svg +9 -0
  370. package/components/icon/icons/person-add-24.svg +9 -0
  371. package/components/icon/icons/person-fill-16.svg +6 -0
  372. package/components/icon/icons/person-fill-24.svg +6 -0
  373. package/components/icon/icons/pin-16.svg +9 -0
  374. package/components/icon/icons/pin-24.svg +9 -0
  375. package/components/icon/icons/play-16.svg +9 -0
  376. package/components/icon/icons/play-24.svg +10 -0
  377. package/components/icon/icons/plug-16.svg +9 -0
  378. package/components/icon/icons/plug-24.svg +9 -0
  379. package/components/icon/icons/plus-16.svg +9 -0
  380. package/components/icon/icons/plus-24.svg +9 -0
  381. package/components/icon/icons/plus-circle-16.svg +9 -0
  382. package/components/icon/icons/plus-circle-24.svg +10 -0
  383. package/components/icon/icons/project-16.svg +9 -0
  384. package/components/icon/icons/project-24.svg +11 -0
  385. package/components/icon/icons/pulse-16.svg +9 -0
  386. package/components/icon/icons/pulse-24.svg +9 -0
  387. package/components/icon/icons/question-16.svg +9 -0
  388. package/components/icon/icons/question-24.svg +11 -0
  389. package/components/icon/icons/quote-16.svg +9 -0
  390. package/components/icon/icons/quote-24.svg +9 -0
  391. package/components/icon/icons/reply-16.svg +9 -0
  392. package/components/icon/icons/reply-24.svg +6 -0
  393. package/components/icon/icons/repo-16.svg +9 -0
  394. package/components/icon/icons/repo-24.svg +10 -0
  395. package/components/icon/icons/repo-clone-16.svg +9 -0
  396. package/components/icon/icons/repo-deleted-16.svg +6 -0
  397. package/components/icon/icons/repo-forked-16.svg +9 -0
  398. package/components/icon/icons/repo-forked-24.svg +12 -0
  399. package/components/icon/icons/repo-locked-16.svg +11 -0
  400. package/components/icon/icons/repo-locked-24.svg +11 -0
  401. package/components/icon/icons/repo-pull-16.svg +9 -0
  402. package/components/icon/icons/repo-push-16.svg +9 -0
  403. package/components/icon/icons/repo-push-24.svg +6 -0
  404. package/components/icon/icons/repo-template-16.svg +9 -0
  405. package/components/icon/icons/repo-template-24.svg +6 -0
  406. package/components/icon/icons/report-16.svg +9 -0
  407. package/components/icon/icons/report-24.svg +9 -0
  408. package/components/icon/icons/rocket-16.svg +9 -0
  409. package/components/icon/icons/rocket-24.svg +9 -0
  410. package/components/icon/icons/rows-16.svg +9 -0
  411. package/components/icon/icons/rows-24.svg +9 -0
  412. package/components/icon/icons/rss-16.svg +9 -0
  413. package/components/icon/icons/rss-24.svg +9 -0
  414. package/components/icon/icons/ruby-16.svg +9 -0
  415. package/components/icon/icons/ruby-24.svg +9 -0
  416. package/components/icon/icons/screen-full-16.svg +9 -0
  417. package/components/icon/icons/screen-full-24.svg +9 -0
  418. package/components/icon/icons/screen-normal-16.svg +9 -0
  419. package/components/icon/icons/screen-normal-24.svg +9 -0
  420. package/components/icon/icons/search-16.svg +9 -0
  421. package/components/icon/icons/search-24.svg +9 -0
  422. package/components/icon/icons/server-16.svg +9 -0
  423. package/components/icon/icons/server-24.svg +11 -0
  424. package/components/icon/icons/server-error.svg +8 -0
  425. package/components/icon/icons/share-16.svg +9 -0
  426. package/components/icon/icons/share-24.svg +9 -0
  427. package/components/icon/icons/share-android-16.svg +9 -0
  428. package/components/icon/icons/share-android-24.svg +9 -0
  429. package/components/icon/icons/shield-16.svg +9 -0
  430. package/components/icon/icons/shield-24.svg +10 -0
  431. package/components/icon/icons/shield-check-16.svg +9 -0
  432. package/components/icon/icons/shield-check-24.svg +10 -0
  433. package/components/icon/icons/shield-lock-16.svg +9 -0
  434. package/components/icon/icons/shield-lock-24.svg +9 -0
  435. package/components/icon/icons/shield-slash-16.svg +11 -0
  436. package/components/icon/icons/shield-x-16.svg +9 -0
  437. package/components/icon/icons/shield-x-24.svg +11 -0
  438. package/components/icon/icons/sidebar-collapse-16.svg +10 -0
  439. package/components/icon/icons/sidebar-collapse-24.svg +10 -0
  440. package/components/icon/icons/sidebar-expand-16.svg +10 -0
  441. package/components/icon/icons/sidebar-expand-24.svg +10 -0
  442. package/components/icon/icons/sign-in-16.svg +9 -0
  443. package/components/icon/icons/sign-in-24.svg +9 -0
  444. package/components/icon/icons/sign-out-16.svg +9 -0
  445. package/components/icon/icons/sign-out-24.svg +9 -0
  446. package/components/icon/icons/single-select-16.svg +10 -0
  447. package/components/icon/icons/single-select-24.svg +10 -0
  448. package/components/icon/icons/skip-16.svg +9 -0
  449. package/components/icon/icons/skip-24.svg +10 -0
  450. package/components/icon/icons/sliders-16.svg +6 -0
  451. package/components/icon/icons/smiley-16.svg +9 -0
  452. package/components/icon/icons/smiley-24.svg +12 -0
  453. package/components/icon/icons/sort-asc-16.svg +9 -0
  454. package/components/icon/icons/sort-asc-24.svg +6 -0
  455. package/components/icon/icons/sort-desc-16.svg +10 -0
  456. package/components/icon/icons/sort-desc-24.svg +6 -0
  457. package/components/icon/icons/square-16.svg +9 -0
  458. package/components/icon/icons/square-24.svg +9 -0
  459. package/components/icon/icons/square-fill-16.svg +9 -0
  460. package/components/icon/icons/square-fill-24.svg +9 -0
  461. package/components/icon/icons/squirrel-16.svg +9 -0
  462. package/components/icon/icons/squirrel-24.svg +6 -0
  463. package/components/icon/icons/stack-16.svg +9 -0
  464. package/components/icon/icons/stack-24.svg +13 -0
  465. package/components/icon/icons/star-16.svg +9 -0
  466. package/components/icon/icons/star-24.svg +9 -0
  467. package/components/icon/icons/star-fill-16.svg +9 -0
  468. package/components/icon/icons/star-fill-24.svg +9 -0
  469. package/components/icon/icons/stop-16.svg +9 -0
  470. package/components/icon/icons/stop-24.svg +10 -0
  471. package/components/icon/icons/stopwatch-16.svg +9 -0
  472. package/components/icon/icons/stopwatch-24.svg +9 -0
  473. package/components/icon/icons/store.svg +10 -0
  474. package/components/icon/icons/strikethrough-16.svg +9 -0
  475. package/components/icon/icons/strikethrough-24.svg +9 -0
  476. package/components/icon/icons/sun-16.svg +9 -0
  477. package/components/icon/icons/sun-24.svg +9 -0
  478. package/components/icon/icons/sync-16.svg +9 -0
  479. package/components/icon/icons/sync-24.svg +6 -0
  480. package/components/icon/icons/tab-24.svg +6 -0
  481. package/components/icon/icons/tab-external-16.svg +6 -0
  482. package/components/icon/icons/table-16.svg +9 -0
  483. package/components/icon/icons/table-24.svg +9 -0
  484. package/components/icon/icons/tag-16.svg +9 -0
  485. package/components/icon/icons/tag-24.svg +10 -0
  486. package/components/icon/icons/tasklist-16.svg +9 -0
  487. package/components/icon/icons/tasklist-24.svg +10 -0
  488. package/components/icon/icons/telescope-16.svg +9 -0
  489. package/components/icon/icons/telescope-24.svg +11 -0
  490. package/components/icon/icons/telescope-fill-16.svg +9 -0
  491. package/components/icon/icons/telescope-fill-24.svg +11 -0
  492. package/components/icon/icons/terminal-16.svg +9 -0
  493. package/components/icon/icons/terminal-24.svg +11 -0
  494. package/components/icon/icons/three-bars-16.svg +9 -0
  495. package/components/icon/icons/thumbsdown-16.svg +9 -0
  496. package/components/icon/icons/thumbsdown-24.svg +9 -0
  497. package/components/icon/icons/thumbsup-16.svg +9 -0
  498. package/components/icon/icons/thumbsup-24.svg +9 -0
  499. package/components/icon/icons/tools-16.svg +9 -0
  500. package/components/icon/icons/tools-24.svg +9 -0
  501. package/components/icon/icons/trash-16.svg +9 -0
  502. package/components/icon/icons/trash-24.svg +13 -0
  503. package/components/icon/icons/triangle-down-16.svg +6 -0
  504. package/components/icon/icons/triangle-down-24.svg +6 -0
  505. package/components/icon/icons/triangle-left-16.svg +6 -0
  506. package/components/icon/icons/triangle-left-24.svg +6 -0
  507. package/components/icon/icons/triangle-right-16.svg +6 -0
  508. package/components/icon/icons/triangle-right-24.svg +6 -0
  509. package/components/icon/icons/triangle-up-16.svg +6 -0
  510. package/components/icon/icons/triangle-up-24.svg +6 -0
  511. package/components/icon/icons/trophy-16.svg +9 -0
  512. package/components/icon/icons/trophy-24.svg +9 -0
  513. package/components/icon/icons/typography-16.svg +9 -0
  514. package/components/icon/icons/typography-24.svg +9 -0
  515. package/components/icon/icons/unfold-16.svg +6 -0
  516. package/components/icon/icons/unfold-24.svg +12 -0
  517. package/components/icon/icons/unlock-16.svg +9 -0
  518. package/components/icon/icons/unlock-24.svg +9 -0
  519. package/components/icon/icons/unmute-16.svg +9 -0
  520. package/components/icon/icons/unmute-24.svg +11 -0
  521. package/components/icon/icons/unverified-16.svg +9 -0
  522. package/components/icon/icons/unverified-24.svg +11 -0
  523. package/components/icon/icons/upload-16.svg +9 -0
  524. package/components/icon/icons/upload-24.svg +9 -0
  525. package/components/icon/icons/verified-16.svg +9 -0
  526. package/components/icon/icons/verified-24.svg +10 -0
  527. package/components/icon/icons/versions-16.svg +9 -0
  528. package/components/icon/icons/versions-24.svg +9 -0
  529. package/components/icon/icons/video-16.svg +10 -0
  530. package/components/icon/icons/video-24.svg +10 -0
  531. package/components/icon/icons/webhook-16.svg +6 -0
  532. package/components/icon/icons/workflow-16.svg +9 -0
  533. package/components/icon/icons/workflow-24.svg +9 -0
  534. package/components/icon/icons/x-16.svg +9 -0
  535. package/components/icon/icons/x-24.svg +9 -0
  536. package/components/icon/icons/x-circle-16.svg +9 -0
  537. package/components/icon/icons/x-circle-24.svg +11 -0
  538. package/components/icon/icons/x-circle-fill-12.svg +9 -0
  539. package/components/icon/icons/x-circle-fill-16.svg +9 -0
  540. package/components/icon/icons/x-circle-fill-24.svg +9 -0
  541. package/components/icon/icons/yourdash.svg +64 -0
  542. package/components/icon/icons/zap-16.svg +9 -0
  543. package/components/icon/icons/zap-24.svg +9 -0
  544. package/components/iconButton/iconButton.module.scss +40 -0
  545. package/components/iconButton/iconButton.tsx +34 -0
  546. package/components/image/image.module.scss +10 -0
  547. package/components/image/image.tsx +28 -0
  548. package/components/link/link.module.scss +32 -0
  549. package/components/link/link.tsx +21 -0
  550. package/components/redirect/redirect.tsx +17 -0
  551. package/components/separator/separator.module.scss +28 -0
  552. package/components/separator/separator.tsx +14 -0
  553. package/components/spinner/spinner.module.scss +93 -0
  554. package/components/spinner/spinner.tsx +31 -0
  555. package/components/subtext/subtext.module.scss +17 -0
  556. package/components/subtext/subtext.tsx +14 -0
  557. package/components/text/text.module.scss +13 -0
  558. package/components/text/text.tsx +14 -0
  559. package/components/textButton/textButton.module.scss +30 -0
  560. package/components/textButton/textButton.tsx +22 -0
  561. package/components/textInput/textInput.module.scss +52 -0
  562. package/components/textInput/textInput.tsx +54 -0
  563. package/components/toast/toast.module.scss +31 -0
  564. package/components/toast/toast.tsx +65 -0
  565. package/components/toast/toastContext.ts +14 -0
  566. package/core/decrementLevel.tsx +13 -0
  567. package/core/incrementLevel.tsx +13 -0
  568. package/core/level.tsx +27 -0
  569. package/core/root.tsx +32 -0
  570. package/core/toast.ts +17 -0
  571. package/package.json +46 -6
  572. package/theme/defaultTheme.module.scss +349 -0
  573. package/theme/themeValues.scss +46 -0
  574. package/tsconfig.json +20 -0
  575. package/views/panAndZoom/panAndZoom.tsx +114 -0
  576. package/.idea/modules.xml +0 -8
  577. package/.idea/uikit.iml +0 -12
  578. package/.idea/vcs.xml +0 -12
package/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # YourDash UIKit
2
+ @yourdash/uikit is a reactjs ui library with element level hirearchy support, custom theme scss support and mobile adaptability
@@ -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
+ }