@yourdash/uikit 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (609) hide show
  1. package/README.md +2 -2
  2. package/components/box/box.module.scss +21 -21
  3. package/components/box/box.tsx +22 -22
  4. package/components/button/button.module.scss +46 -47
  5. package/components/button/button.tsx +24 -23
  6. package/components/buttonLink/buttonLink.module.scss +51 -47
  7. package/components/buttonLink/buttonLink.tsx +27 -26
  8. package/components/buttonWithIcon/buttonWithIcon.module.scss +56 -0
  9. package/components/buttonWithIcon/buttonWithIcon.tsx +36 -0
  10. package/components/card/card.module.scss +78 -78
  11. package/components/card/card.tsx +64 -61
  12. package/components/container/container.module.scss +20 -0
  13. package/components/container/container.tsx +22 -0
  14. package/components/contextMenu/contextMenu.tsx +55 -55
  15. package/components/contextMenu/contextMenuRoot.module.scss +31 -31
  16. package/components/contextMenu/contextMenuRoot.tsx +4 -4
  17. package/components/contextMenu/contextMenuRootContext.tsx +22 -22
  18. package/components/flex/flex.module.scss +12 -0
  19. package/components/flex/flex.tsx +34 -13
  20. package/components/heading/heading.module.scss +41 -41
  21. package/components/heading/heading.tsx +27 -27
  22. package/components/icon/icon.module.scss +26 -26
  23. package/components/icon/icon.tsx +30 -30
  24. package/components/icon/iconDictionary.ts +573 -573
  25. package/components/icon/icons/accessibility-16.svg +8 -8
  26. package/components/icon/icons/accessibility-inset-16.svg +8 -8
  27. package/components/icon/icons/alert-16.svg +8 -8
  28. package/components/icon/icons/alert-24.svg +9 -9
  29. package/components/icon/icons/alert-fill-12.svg +8 -8
  30. package/components/icon/icons/app-launcher-16.svg +11 -11
  31. package/components/icon/icons/apps-16.svg +8 -8
  32. package/components/icon/icons/archive-16.svg +8 -8
  33. package/components/icon/icons/archive-24.svg +11 -11
  34. package/components/icon/icons/arrow-both-16.svg +8 -8
  35. package/components/icon/icons/arrow-both-24.svg +5 -5
  36. package/components/icon/icons/arrow-down-16.svg +8 -8
  37. package/components/icon/icons/arrow-down-24.svg +8 -8
  38. package/components/icon/icons/arrow-down-left-24.svg +8 -8
  39. package/components/icon/icons/arrow-down-right-24.svg +8 -8
  40. package/components/icon/icons/arrow-left-16.svg +8 -8
  41. package/components/icon/icons/arrow-left-24.svg +8 -8
  42. package/components/icon/icons/arrow-right-16.svg +8 -8
  43. package/components/icon/icons/arrow-right-24.svg +8 -8
  44. package/components/icon/icons/arrow-switch-16.svg +5 -5
  45. package/components/icon/icons/arrow-switch-24.svg +5 -5
  46. package/components/icon/icons/arrow-up-16.svg +8 -8
  47. package/components/icon/icons/arrow-up-24.svg +8 -8
  48. package/components/icon/icons/arrow-up-left-24.svg +8 -8
  49. package/components/icon/icons/arrow-up-right-24.svg +8 -8
  50. package/components/icon/icons/beaker-16.svg +8 -8
  51. package/components/icon/icons/beaker-24.svg +8 -8
  52. package/components/icon/icons/bell-16.svg +9 -9
  53. package/components/icon/icons/bell-24.svg +8 -8
  54. package/components/icon/icons/bell-fill-16.svg +5 -5
  55. package/components/icon/icons/bell-fill-24.svg +8 -8
  56. package/components/icon/icons/bell-slash-16.svg +8 -8
  57. package/components/icon/icons/bell-slash-24.svg +10 -10
  58. package/components/icon/icons/blocked-16.svg +8 -8
  59. package/components/icon/icons/blocked-24.svg +8 -8
  60. package/components/icon/icons/bold-16.svg +8 -8
  61. package/components/icon/icons/bold-24.svg +8 -8
  62. package/components/icon/icons/book-16.svg +8 -8
  63. package/components/icon/icons/book-24.svg +8 -8
  64. package/components/icon/icons/bookmark-16.svg +8 -8
  65. package/components/icon/icons/bookmark-24.svg +8 -8
  66. package/components/icon/icons/bookmark-fill-24.svg +8 -8
  67. package/components/icon/icons/bookmark-slash-16.svg +8 -8
  68. package/components/icon/icons/bookmark-slash-24.svg +9 -9
  69. package/components/icon/icons/bookmark-slash-fill-24.svg +8 -8
  70. package/components/icon/icons/briefcase-16.svg +8 -8
  71. package/components/icon/icons/briefcase-24.svg +8 -8
  72. package/components/icon/icons/broadcast-16.svg +8 -8
  73. package/components/icon/icons/broadcast-24.svg +5 -5
  74. package/components/icon/icons/browser-16.svg +8 -8
  75. package/components/icon/icons/browser-24.svg +8 -8
  76. package/components/icon/icons/bug-16.svg +8 -8
  77. package/components/icon/icons/bug-24.svg +8 -8
  78. package/components/icon/icons/cache-16.svg +10 -10
  79. package/components/icon/icons/calendar-16.svg +8 -8
  80. package/components/icon/icons/calendar-24.svg +8 -8
  81. package/components/icon/icons/check-16.svg +8 -8
  82. package/components/icon/icons/check-24.svg +8 -8
  83. package/components/icon/icons/check-circle-16.svg +8 -8
  84. package/components/icon/icons/check-circle-24.svg +9 -9
  85. package/components/icon/icons/check-circle-fill-12.svg +8 -8
  86. package/components/icon/icons/check-circle-fill-16.svg +8 -8
  87. package/components/icon/icons/check-circle-fill-24.svg +8 -8
  88. package/components/icon/icons/checkbox-16.svg +8 -8
  89. package/components/icon/icons/checkbox-24.svg +9 -9
  90. package/components/icon/icons/checklist-16.svg +8 -8
  91. package/components/icon/icons/checklist-24.svg +5 -5
  92. package/components/icon/icons/chevron-down-16.svg +8 -8
  93. package/components/icon/icons/chevron-down-24.svg +8 -8
  94. package/components/icon/icons/chevron-left-16.svg +8 -8
  95. package/components/icon/icons/chevron-left-24.svg +8 -8
  96. package/components/icon/icons/chevron-right-16.svg +8 -8
  97. package/components/icon/icons/chevron-right-24.svg +8 -8
  98. package/components/icon/icons/chevron-up-16.svg +8 -8
  99. package/components/icon/icons/chevron-up-24.svg +8 -8
  100. package/components/icon/icons/circle-16.svg +7 -7
  101. package/components/icon/icons/circle-24.svg +8 -8
  102. package/components/icon/icons/circle-slash-16.svg +8 -8
  103. package/components/icon/icons/circle-slash-24.svg +8 -8
  104. package/components/icon/icons/clock-16.svg +8 -8
  105. package/components/icon/icons/clock-24.svg +9 -9
  106. package/components/icon/icons/cloud-16.svg +8 -8
  107. package/components/icon/icons/cloud-24.svg +8 -8
  108. package/components/icon/icons/cloud-offline-16.svg +10 -10
  109. package/components/icon/icons/cloud-offline-24.svg +10 -10
  110. package/components/icon/icons/code-16.svg +8 -8
  111. package/components/icon/icons/code-24.svg +8 -8
  112. package/components/icon/icons/code-of-conduct-16.svg +8 -8
  113. package/components/icon/icons/code-of-conduct-24.svg +8 -8
  114. package/components/icon/icons/code-review-16.svg +8 -8
  115. package/components/icon/icons/code-review-24.svg +10 -10
  116. package/components/icon/icons/code-square-16.svg +8 -8
  117. package/components/icon/icons/code-square-24.svg +10 -10
  118. package/components/icon/icons/codescan-16.svg +10 -10
  119. package/components/icon/icons/codescan-24.svg +10 -10
  120. package/components/icon/icons/codescan-checkmark-16.svg +9 -9
  121. package/components/icon/icons/codescan-checkmark-24.svg +9 -9
  122. package/components/icon/icons/codespaces-16.svg +10 -10
  123. package/components/icon/icons/codespaces-24.svg +10 -10
  124. package/components/icon/icons/columns-16.svg +8 -8
  125. package/components/icon/icons/columns-24.svg +8 -8
  126. package/components/icon/icons/command-palette-16.svg +5 -5
  127. package/components/icon/icons/command-palette-24.svg +5 -5
  128. package/components/icon/icons/comment-16.svg +8 -8
  129. package/components/icon/icons/comment-24.svg +8 -8
  130. package/components/icon/icons/comment-discussion-16.svg +8 -8
  131. package/components/icon/icons/comment-discussion-24.svg +10 -10
  132. package/components/icon/icons/commit-24.svg +9 -9
  133. package/components/icon/icons/container-16.svg +8 -8
  134. package/components/icon/icons/container-24.svg +8 -8
  135. package/components/icon/icons/copilot-16.svg +9 -9
  136. package/components/icon/icons/copilot-24.svg +9 -9
  137. package/components/icon/icons/copilot-48.svg +9 -9
  138. package/components/icon/icons/copilot-96.svg +9 -9
  139. package/components/icon/icons/copilot-error-16.svg +8 -8
  140. package/components/icon/icons/copilot-warning-16.svg +10 -10
  141. package/components/icon/icons/copy-16.svg +10 -10
  142. package/components/icon/icons/copy-24.svg +10 -10
  143. package/components/icon/icons/cpu-16.svg +8 -8
  144. package/components/icon/icons/cpu-24.svg +10 -10
  145. package/components/icon/icons/credit-card-16.svg +9 -9
  146. package/components/icon/icons/credit-card-24.svg +9 -9
  147. package/components/icon/icons/cross-reference-16.svg +8 -8
  148. package/components/icon/icons/cross-reference-24.svg +5 -5
  149. package/components/icon/icons/dash-16.svg +7 -7
  150. package/components/icon/icons/dash-24.svg +7 -7
  151. package/components/icon/icons/database-16.svg +8 -8
  152. package/components/icon/icons/database-24.svg +8 -8
  153. package/components/icon/icons/dependabot-16.svg +9 -9
  154. package/components/icon/icons/dependabot-24.svg +9 -9
  155. package/components/icon/icons/desktop-download-16.svg +5 -5
  156. package/components/icon/icons/desktop-download-24.svg +10 -10
  157. package/components/icon/icons/device-camera-16.svg +8 -8
  158. package/components/icon/icons/device-camera-video-16.svg +8 -8
  159. package/components/icon/icons/device-camera-video-24.svg +8 -8
  160. package/components/icon/icons/device-desktop-16.svg +8 -8
  161. package/components/icon/icons/device-desktop-24.svg +8 -8
  162. package/components/icon/icons/device-mobile-16.svg +8 -8
  163. package/components/icon/icons/device-mobile-24.svg +9 -9
  164. package/components/icon/icons/diamond-16.svg +8 -8
  165. package/components/icon/icons/diamond-24.svg +8 -8
  166. package/components/icon/icons/diff-16.svg +8 -8
  167. package/components/icon/icons/diff-24.svg +8 -8
  168. package/components/icon/icons/diff-added-16.svg +8 -8
  169. package/components/icon/icons/diff-ignored-16.svg +8 -8
  170. package/components/icon/icons/diff-modified-16.svg +8 -8
  171. package/components/icon/icons/diff-removed-16.svg +8 -8
  172. package/components/icon/icons/diff-renamed-16.svg +8 -8
  173. package/components/icon/icons/dot-16.svg +7 -7
  174. package/components/icon/icons/dot-24.svg +7 -7
  175. package/components/icon/icons/dot-fill-16.svg +7 -7
  176. package/components/icon/icons/dot-fill-24.svg +5 -5
  177. package/components/icon/icons/download-16.svg +8 -8
  178. package/components/icon/icons/download-24.svg +5 -5
  179. package/components/icon/icons/duplicate-16.svg +11 -11
  180. package/components/icon/icons/duplicate-24.svg +11 -11
  181. package/components/icon/icons/ellipsis-16.svg +8 -8
  182. package/components/icon/icons/ewsgit.svg +14 -14
  183. package/components/icon/icons/eye-16.svg +8 -8
  184. package/components/icon/icons/eye-24.svg +9 -9
  185. package/components/icon/icons/eye-closed-16.svg +8 -8
  186. package/components/icon/icons/eye-closed-24.svg +10 -10
  187. package/components/icon/icons/feed-discussion-16.svg +8 -8
  188. package/components/icon/icons/feed-forked-16.svg +8 -8
  189. package/components/icon/icons/feed-heart-16.svg +8 -8
  190. package/components/icon/icons/feed-merged-16.svg +8 -8
  191. package/components/icon/icons/feed-person-16.svg +8 -8
  192. package/components/icon/icons/feed-repo-16.svg +8 -8
  193. package/components/icon/icons/feed-rocket-16.svg +8 -8
  194. package/components/icon/icons/feed-star-16.svg +8 -8
  195. package/components/icon/icons/feed-tag-16.svg +9 -9
  196. package/components/icon/icons/feed-trophy-16.svg +9 -9
  197. package/components/icon/icons/file-16.svg +8 -8
  198. package/components/icon/icons/file-24.svg +8 -8
  199. package/components/icon/icons/file-added-16.svg +8 -8
  200. package/components/icon/icons/file-badge-16.svg +10 -10
  201. package/components/icon/icons/file-binary-16.svg +8 -8
  202. package/components/icon/icons/file-binary-24.svg +11 -11
  203. package/components/icon/icons/file-code-16.svg +8 -8
  204. package/components/icon/icons/file-code-24.svg +10 -10
  205. package/components/icon/icons/file-diff-16.svg +8 -8
  206. package/components/icon/icons/file-diff-24.svg +10 -10
  207. package/components/icon/icons/file-directory-16.svg +8 -8
  208. package/components/icon/icons/file-directory-24.svg +8 -8
  209. package/components/icon/icons/file-directory-fill-16.svg +5 -5
  210. package/components/icon/icons/file-directory-fill-24.svg +8 -8
  211. package/components/icon/icons/file-directory-open-fill-16.svg +5 -5
  212. package/components/icon/icons/file-media-24.svg +8 -8
  213. package/components/icon/icons/file-moved-16.svg +5 -5
  214. package/components/icon/icons/file-removed-16.svg +8 -8
  215. package/components/icon/icons/file-submodule-16.svg +8 -8
  216. package/components/icon/icons/file-submodule-24.svg +8 -8
  217. package/components/icon/icons/file-symlink-file-16.svg +8 -8
  218. package/components/icon/icons/file-symlink-file-24.svg +8 -8
  219. package/components/icon/icons/file-zip-16.svg +8 -8
  220. package/components/icon/icons/file-zip-24.svg +12 -12
  221. package/components/icon/icons/filter-16.svg +8 -8
  222. package/components/icon/icons/filter-24.svg +5 -5
  223. package/components/icon/icons/flame-16.svg +8 -8
  224. package/components/icon/icons/flame-24.svg +8 -8
  225. package/components/icon/icons/fold-16.svg +5 -5
  226. package/components/icon/icons/fold-24.svg +12 -12
  227. package/components/icon/icons/fold-down-16.svg +5 -5
  228. package/components/icon/icons/fold-down-24.svg +10 -10
  229. package/components/icon/icons/fold-up-16.svg +5 -5
  230. package/components/icon/icons/fold-up-24.svg +10 -10
  231. package/components/icon/icons/gear-16.svg +8 -8
  232. package/components/icon/icons/gear-24.svg +9 -9
  233. package/components/icon/icons/gift-16.svg +8 -8
  234. package/components/icon/icons/gift-24.svg +8 -8
  235. package/components/icon/icons/git-branch-16.svg +8 -8
  236. package/components/icon/icons/git-branch-24.svg +11 -11
  237. package/components/icon/icons/git-commit-16.svg +8 -8
  238. package/components/icon/icons/git-commit-24.svg +8 -8
  239. package/components/icon/icons/git-compare-16.svg +8 -8
  240. package/components/icon/icons/git-compare-24.svg +11 -11
  241. package/components/icon/icons/git-merge-16.svg +8 -8
  242. package/components/icon/icons/git-merge-24.svg +10 -10
  243. package/components/icon/icons/git-merge-queue-16.svg +10 -10
  244. package/components/icon/icons/git-pull-request-16.svg +8 -8
  245. package/components/icon/icons/git-pull-request-24.svg +10 -10
  246. package/components/icon/icons/git-pull-request-closed-16.svg +8 -8
  247. package/components/icon/icons/git-pull-request-closed-24.svg +10 -10
  248. package/components/icon/icons/git-pull-request-draft-16.svg +9 -9
  249. package/components/icon/icons/git-pull-request-draft-24.svg +9 -9
  250. package/components/icon/icons/globe-16.svg +8 -8
  251. package/components/icon/icons/globe-24.svg +8 -8
  252. package/components/icon/icons/grabber-16.svg +8 -8
  253. package/components/icon/icons/grabber-24.svg +8 -8
  254. package/components/icon/icons/graph-16.svg +8 -8
  255. package/components/icon/icons/graph-24.svg +5 -5
  256. package/components/icon/icons/hash-16.svg +8 -8
  257. package/components/icon/icons/hash-24.svg +8 -8
  258. package/components/icon/icons/heading-16.svg +8 -8
  259. package/components/icon/icons/heading-24.svg +8 -8
  260. package/components/icon/icons/heart-16.svg +8 -8
  261. package/components/icon/icons/heart-24.svg +8 -8
  262. package/components/icon/icons/heart-fill-16.svg +8 -8
  263. package/components/icon/icons/heart-fill-24.svg +5 -5
  264. package/components/icon/icons/history-16.svg +8 -8
  265. package/components/icon/icons/history-24.svg +5 -5
  266. package/components/icon/icons/home-16.svg +5 -5
  267. package/components/icon/icons/home-24.svg +8 -8
  268. package/components/icon/icons/home-fill-24.svg +5 -5
  269. package/components/icon/icons/horizontal-rule-16.svg +7 -7
  270. package/components/icon/icons/horizontal-rule-24.svg +7 -7
  271. package/components/icon/icons/hourglass-16.svg +8 -8
  272. package/components/icon/icons/hourglass-24.svg +8 -8
  273. package/components/icon/icons/hubot-16.svg +8 -8
  274. package/components/icon/icons/hubot-24.svg +10 -10
  275. package/components/icon/icons/id-badge-16.svg +10 -10
  276. package/components/icon/icons/image-16.svg +8 -8
  277. package/components/icon/icons/image-24.svg +8 -8
  278. package/components/icon/icons/inbox-16.svg +8 -8
  279. package/components/icon/icons/inbox-24.svg +8 -8
  280. package/components/icon/icons/infinity-16.svg +8 -8
  281. package/components/icon/icons/infinity-24.svg +8 -8
  282. package/components/icon/icons/info-16.svg +8 -8
  283. package/components/icon/icons/info-24.svg +10 -10
  284. package/components/icon/icons/issue-closed-16.svg +8 -8
  285. package/components/icon/icons/issue-closed-24.svg +9 -9
  286. package/components/icon/icons/issue-draft-16.svg +8 -8
  287. package/components/icon/icons/issue-draft-24.svg +8 -8
  288. package/components/icon/icons/issue-opened-16.svg +8 -8
  289. package/components/icon/icons/issue-opened-24.svg +8 -8
  290. package/components/icon/icons/issue-reopened-16.svg +5 -5
  291. package/components/icon/icons/issue-reopened-24.svg +5 -5
  292. package/components/icon/icons/italic-16.svg +8 -8
  293. package/components/icon/icons/italic-24.svg +8 -8
  294. package/components/icon/icons/iterations-16.svg +5 -5
  295. package/components/icon/icons/iterations-24.svg +5 -5
  296. package/components/icon/icons/kebab-horizontal-16.svg +5 -5
  297. package/components/icon/icons/kebab-horizontal-24.svg +7 -7
  298. package/components/icon/icons/key-16.svg +8 -8
  299. package/components/icon/icons/key-24.svg +9 -9
  300. package/components/icon/icons/key-asterisk-16.svg +10 -10
  301. package/components/icon/icons/law-16.svg +8 -8
  302. package/components/icon/icons/law-24.svg +8 -8
  303. package/components/icon/icons/light-bulb-16.svg +8 -8
  304. package/components/icon/icons/light-bulb-24.svg +8 -8
  305. package/components/icon/icons/link-16.svg +8 -8
  306. package/components/icon/icons/link-24.svg +5 -5
  307. package/components/icon/icons/link-external-16.svg +8 -8
  308. package/components/icon/icons/link-external-24.svg +5 -5
  309. package/components/icon/icons/list-ordered-16.svg +8 -8
  310. package/components/icon/icons/list-ordered-24.svg +5 -5
  311. package/components/icon/icons/list-unordered-16.svg +8 -8
  312. package/components/icon/icons/list-unordered-24.svg +8 -8
  313. package/components/icon/icons/location-16.svg +8 -8
  314. package/components/icon/icons/location-24.svg +9 -9
  315. package/components/icon/icons/lock-16.svg +8 -8
  316. package/components/icon/icons/lock-24.svg +8 -8
  317. package/components/icon/icons/log-16.svg +9 -9
  318. package/components/icon/icons/login.svg +9 -9
  319. package/components/icon/icons/logo-gist-16.svg +8 -8
  320. package/components/icon/icons/logo-github-16.svg +8 -8
  321. package/components/icon/icons/logout.svg +9 -9
  322. package/components/icon/icons/mail-16.svg +8 -8
  323. package/components/icon/icons/mail-24.svg +8 -8
  324. package/components/icon/icons/mark-github-16.svg +8 -8
  325. package/components/icon/icons/markdown-16.svg +8 -8
  326. package/components/icon/icons/megaphone-16.svg +13 -13
  327. package/components/icon/icons/megaphone-24.svg +8 -8
  328. package/components/icon/icons/mention-16.svg +8 -8
  329. package/components/icon/icons/mention-24.svg +8 -8
  330. package/components/icon/icons/meter-16.svg +8 -8
  331. package/components/icon/icons/milestone-16.svg +8 -8
  332. package/components/icon/icons/milestone-24.svg +8 -8
  333. package/components/icon/icons/mirror-16.svg +8 -8
  334. package/components/icon/icons/mirror-24.svg +8 -8
  335. package/components/icon/icons/moon-16.svg +8 -8
  336. package/components/icon/icons/moon-24.svg +8 -8
  337. package/components/icon/icons/mortar-board-16.svg +8 -8
  338. package/components/icon/icons/mortar-board-24.svg +8 -8
  339. package/components/icon/icons/multi-select-16.svg +9 -9
  340. package/components/icon/icons/multi-select-24.svg +9 -9
  341. package/components/icon/icons/mute-16.svg +8 -8
  342. package/components/icon/icons/mute-24.svg +10 -10
  343. package/components/icon/icons/no-entry-16.svg +8 -8
  344. package/components/icon/icons/no-entry-24.svg +8 -8
  345. package/components/icon/icons/no-entry-fill-12.svg +7 -7
  346. package/components/icon/icons/north-star-16.svg +5 -5
  347. package/components/icon/icons/north-star-24.svg +5 -5
  348. package/components/icon/icons/note-16.svg +8 -8
  349. package/components/icon/icons/note-24.svg +10 -10
  350. package/components/icon/icons/number-16.svg +8 -8
  351. package/components/icon/icons/number-24.svg +8 -8
  352. package/components/icon/icons/organization-16.svg +8 -8
  353. package/components/icon/icons/organization-24.svg +10 -10
  354. package/components/icon/icons/package-16.svg +8 -8
  355. package/components/icon/icons/package-24.svg +8 -8
  356. package/components/icon/icons/package-dependencies-16.svg +8 -8
  357. package/components/icon/icons/package-dependencies-24.svg +10 -10
  358. package/components/icon/icons/package-dependents-16.svg +8 -8
  359. package/components/icon/icons/package-dependents-24.svg +10 -10
  360. package/components/icon/icons/paintbrush-16.svg +8 -8
  361. package/components/icon/icons/paper-airplane-16.svg +8 -8
  362. package/components/icon/icons/paper-airplane-24.svg +8 -8
  363. package/components/icon/icons/paperclip-16.svg +8 -8
  364. package/components/icon/icons/paperclip-24.svg +8 -8
  365. package/components/icon/icons/paste-16.svg +8 -8
  366. package/components/icon/icons/paste-24.svg +10 -10
  367. package/components/icon/icons/pencil-16.svg +8 -8
  368. package/components/icon/icons/pencil-24.svg +8 -8
  369. package/components/icon/icons/people-16.svg +8 -8
  370. package/components/icon/icons/people-24.svg +10 -10
  371. package/components/icon/icons/person-16.svg +8 -8
  372. package/components/icon/icons/person-24.svg +8 -8
  373. package/components/icon/icons/person-add-16.svg +8 -8
  374. package/components/icon/icons/person-add-24.svg +8 -8
  375. package/components/icon/icons/person-fill-16.svg +5 -5
  376. package/components/icon/icons/person-fill-24.svg +5 -5
  377. package/components/icon/icons/pin-16.svg +8 -8
  378. package/components/icon/icons/pin-24.svg +8 -8
  379. package/components/icon/icons/play-16.svg +8 -8
  380. package/components/icon/icons/play-24.svg +9 -9
  381. package/components/icon/icons/plug-16.svg +8 -8
  382. package/components/icon/icons/plug-24.svg +8 -8
  383. package/components/icon/icons/plus-16.svg +8 -8
  384. package/components/icon/icons/plus-24.svg +8 -8
  385. package/components/icon/icons/plus-circle-16.svg +8 -8
  386. package/components/icon/icons/plus-circle-24.svg +9 -9
  387. package/components/icon/icons/project-16.svg +8 -8
  388. package/components/icon/icons/project-24.svg +10 -10
  389. package/components/icon/icons/pulse-16.svg +8 -8
  390. package/components/icon/icons/pulse-24.svg +8 -8
  391. package/components/icon/icons/question-16.svg +8 -8
  392. package/components/icon/icons/question-24.svg +10 -10
  393. package/components/icon/icons/quote-16.svg +8 -8
  394. package/components/icon/icons/quote-24.svg +8 -8
  395. package/components/icon/icons/reply-16.svg +8 -8
  396. package/components/icon/icons/reply-24.svg +5 -5
  397. package/components/icon/icons/repo-16.svg +8 -8
  398. package/components/icon/icons/repo-24.svg +9 -9
  399. package/components/icon/icons/repo-clone-16.svg +8 -8
  400. package/components/icon/icons/repo-deleted-16.svg +5 -5
  401. package/components/icon/icons/repo-forked-16.svg +8 -8
  402. package/components/icon/icons/repo-forked-24.svg +11 -11
  403. package/components/icon/icons/repo-locked-16.svg +10 -10
  404. package/components/icon/icons/repo-locked-24.svg +10 -10
  405. package/components/icon/icons/repo-pull-16.svg +8 -8
  406. package/components/icon/icons/repo-push-16.svg +8 -8
  407. package/components/icon/icons/repo-push-24.svg +5 -5
  408. package/components/icon/icons/repo-template-16.svg +8 -8
  409. package/components/icon/icons/repo-template-24.svg +5 -5
  410. package/components/icon/icons/report-16.svg +8 -8
  411. package/components/icon/icons/report-24.svg +8 -8
  412. package/components/icon/icons/rocket-16.svg +8 -8
  413. package/components/icon/icons/rocket-24.svg +8 -8
  414. package/components/icon/icons/rows-16.svg +8 -8
  415. package/components/icon/icons/rows-24.svg +8 -8
  416. package/components/icon/icons/rss-16.svg +8 -8
  417. package/components/icon/icons/rss-24.svg +8 -8
  418. package/components/icon/icons/ruby-16.svg +8 -8
  419. package/components/icon/icons/ruby-24.svg +8 -8
  420. package/components/icon/icons/screen-full-16.svg +8 -8
  421. package/components/icon/icons/screen-full-24.svg +8 -8
  422. package/components/icon/icons/screen-normal-16.svg +8 -8
  423. package/components/icon/icons/screen-normal-24.svg +8 -8
  424. package/components/icon/icons/search-16.svg +8 -8
  425. package/components/icon/icons/search-24.svg +8 -8
  426. package/components/icon/icons/server-16.svg +8 -8
  427. package/components/icon/icons/server-24.svg +10 -10
  428. package/components/icon/icons/server-error.svg +8 -8
  429. package/components/icon/icons/share-16.svg +8 -8
  430. package/components/icon/icons/share-24.svg +8 -8
  431. package/components/icon/icons/share-android-16.svg +8 -8
  432. package/components/icon/icons/share-android-24.svg +8 -8
  433. package/components/icon/icons/shield-16.svg +8 -8
  434. package/components/icon/icons/shield-24.svg +9 -9
  435. package/components/icon/icons/shield-check-16.svg +8 -8
  436. package/components/icon/icons/shield-check-24.svg +9 -9
  437. package/components/icon/icons/shield-lock-16.svg +8 -8
  438. package/components/icon/icons/shield-lock-24.svg +8 -8
  439. package/components/icon/icons/shield-slash-16.svg +10 -10
  440. package/components/icon/icons/shield-x-16.svg +8 -8
  441. package/components/icon/icons/shield-x-24.svg +10 -10
  442. package/components/icon/icons/sidebar-collapse-16.svg +9 -9
  443. package/components/icon/icons/sidebar-collapse-24.svg +9 -9
  444. package/components/icon/icons/sidebar-expand-16.svg +9 -9
  445. package/components/icon/icons/sidebar-expand-24.svg +9 -9
  446. package/components/icon/icons/sign-in-16.svg +8 -8
  447. package/components/icon/icons/sign-in-24.svg +8 -8
  448. package/components/icon/icons/sign-out-16.svg +8 -8
  449. package/components/icon/icons/sign-out-24.svg +8 -8
  450. package/components/icon/icons/single-select-16.svg +9 -9
  451. package/components/icon/icons/single-select-24.svg +9 -9
  452. package/components/icon/icons/skip-16.svg +8 -8
  453. package/components/icon/icons/skip-24.svg +9 -9
  454. package/components/icon/icons/sliders-16.svg +5 -5
  455. package/components/icon/icons/smiley-16.svg +8 -8
  456. package/components/icon/icons/smiley-24.svg +11 -11
  457. package/components/icon/icons/sort-asc-16.svg +8 -8
  458. package/components/icon/icons/sort-asc-24.svg +5 -5
  459. package/components/icon/icons/sort-desc-16.svg +9 -9
  460. package/components/icon/icons/sort-desc-24.svg +5 -5
  461. package/components/icon/icons/square-16.svg +8 -8
  462. package/components/icon/icons/square-24.svg +8 -8
  463. package/components/icon/icons/square-fill-16.svg +8 -8
  464. package/components/icon/icons/square-fill-24.svg +8 -8
  465. package/components/icon/icons/squirrel-16.svg +8 -8
  466. package/components/icon/icons/squirrel-24.svg +5 -5
  467. package/components/icon/icons/stack-16.svg +8 -8
  468. package/components/icon/icons/stack-24.svg +12 -12
  469. package/components/icon/icons/star-16.svg +8 -8
  470. package/components/icon/icons/star-24.svg +8 -8
  471. package/components/icon/icons/star-fill-16.svg +8 -8
  472. package/components/icon/icons/star-fill-24.svg +8 -8
  473. package/components/icon/icons/stop-16.svg +8 -8
  474. package/components/icon/icons/stop-24.svg +9 -9
  475. package/components/icon/icons/stopwatch-16.svg +8 -8
  476. package/components/icon/icons/stopwatch-24.svg +8 -8
  477. package/components/icon/icons/store.svg +10 -10
  478. package/components/icon/icons/strikethrough-16.svg +8 -8
  479. package/components/icon/icons/strikethrough-24.svg +8 -8
  480. package/components/icon/icons/sun-16.svg +8 -8
  481. package/components/icon/icons/sun-24.svg +8 -8
  482. package/components/icon/icons/sync-16.svg +8 -8
  483. package/components/icon/icons/sync-24.svg +5 -5
  484. package/components/icon/icons/tab-24.svg +5 -5
  485. package/components/icon/icons/tab-external-16.svg +5 -5
  486. package/components/icon/icons/table-16.svg +8 -8
  487. package/components/icon/icons/table-24.svg +8 -8
  488. package/components/icon/icons/tag-16.svg +8 -8
  489. package/components/icon/icons/tag-24.svg +9 -9
  490. package/components/icon/icons/tasklist-16.svg +8 -8
  491. package/components/icon/icons/tasklist-24.svg +9 -9
  492. package/components/icon/icons/telescope-16.svg +8 -8
  493. package/components/icon/icons/telescope-24.svg +10 -10
  494. package/components/icon/icons/telescope-fill-16.svg +8 -8
  495. package/components/icon/icons/telescope-fill-24.svg +10 -10
  496. package/components/icon/icons/terminal-16.svg +8 -8
  497. package/components/icon/icons/terminal-24.svg +10 -10
  498. package/components/icon/icons/three-bars-16.svg +8 -8
  499. package/components/icon/icons/thumbsdown-16.svg +8 -8
  500. package/components/icon/icons/thumbsdown-24.svg +8 -8
  501. package/components/icon/icons/thumbsup-16.svg +8 -8
  502. package/components/icon/icons/thumbsup-24.svg +8 -8
  503. package/components/icon/icons/tools-16.svg +8 -8
  504. package/components/icon/icons/tools-24.svg +8 -8
  505. package/components/icon/icons/trash-16.svg +8 -8
  506. package/components/icon/icons/trash-24.svg +12 -12
  507. package/components/icon/icons/triangle-down-16.svg +5 -5
  508. package/components/icon/icons/triangle-down-24.svg +5 -5
  509. package/components/icon/icons/triangle-left-16.svg +5 -5
  510. package/components/icon/icons/triangle-left-24.svg +5 -5
  511. package/components/icon/icons/triangle-right-16.svg +5 -5
  512. package/components/icon/icons/triangle-right-24.svg +5 -5
  513. package/components/icon/icons/triangle-up-16.svg +5 -5
  514. package/components/icon/icons/triangle-up-24.svg +5 -5
  515. package/components/icon/icons/trophy-16.svg +8 -8
  516. package/components/icon/icons/trophy-24.svg +8 -8
  517. package/components/icon/icons/typography-16.svg +8 -8
  518. package/components/icon/icons/typography-24.svg +8 -8
  519. package/components/icon/icons/unfold-16.svg +5 -5
  520. package/components/icon/icons/unfold-24.svg +11 -11
  521. package/components/icon/icons/unlock-16.svg +8 -8
  522. package/components/icon/icons/unlock-24.svg +8 -8
  523. package/components/icon/icons/unmute-16.svg +8 -8
  524. package/components/icon/icons/unmute-24.svg +10 -10
  525. package/components/icon/icons/unverified-16.svg +8 -8
  526. package/components/icon/icons/unverified-24.svg +10 -10
  527. package/components/icon/icons/upload-16.svg +8 -8
  528. package/components/icon/icons/upload-24.svg +8 -8
  529. package/components/icon/icons/verified-16.svg +8 -8
  530. package/components/icon/icons/verified-24.svg +9 -9
  531. package/components/icon/icons/versions-16.svg +8 -8
  532. package/components/icon/icons/versions-24.svg +8 -8
  533. package/components/icon/icons/video-16.svg +9 -9
  534. package/components/icon/icons/video-24.svg +9 -9
  535. package/components/icon/icons/webhook-16.svg +5 -5
  536. package/components/icon/icons/workflow-16.svg +8 -8
  537. package/components/icon/icons/workflow-24.svg +8 -8
  538. package/components/icon/icons/x-16.svg +8 -8
  539. package/components/icon/icons/x-24.svg +8 -8
  540. package/components/icon/icons/x-circle-16.svg +8 -8
  541. package/components/icon/icons/x-circle-24.svg +10 -10
  542. package/components/icon/icons/x-circle-fill-12.svg +8 -8
  543. package/components/icon/icons/x-circle-fill-16.svg +8 -8
  544. package/components/icon/icons/x-circle-fill-24.svg +8 -8
  545. package/components/icon/icons/yourdash.svg +64 -64
  546. package/components/icon/icons/zap-16.svg +8 -8
  547. package/components/icon/icons/zap-24.svg +8 -8
  548. package/components/iconButton/iconButton.module.scss +40 -40
  549. package/components/iconButton/iconButton.tsx +34 -34
  550. package/components/image/image.module.scss +81 -10
  551. package/components/image/image.tsx +62 -9
  552. package/components/link/link.module.scss +32 -32
  553. package/components/link/link.tsx +21 -21
  554. package/components/progressBar/progressBar.module.scss +25 -0
  555. package/components/progressBar/progressBar.tsx +21 -0
  556. package/components/redirect/redirect.tsx +17 -17
  557. package/components/separator/separator.module.scss +33 -28
  558. package/components/separator/separator.tsx +14 -14
  559. package/components/spinner/spinner.module.scss +93 -93
  560. package/components/spinner/spinner.tsx +31 -31
  561. package/components/subtext/subtext.module.scss +17 -17
  562. package/components/subtext/subtext.tsx +14 -14
  563. package/components/tag/tag.module.scss +13 -0
  564. package/components/tag/tag.tsx +21 -0
  565. package/components/text/text.module.scss +13 -13
  566. package/components/text/text.tsx +14 -14
  567. package/components/textButton/textButton.module.scss +30 -30
  568. package/components/textButton/textButton.tsx +22 -22
  569. package/components/textInput/textInput.module.scss +52 -52
  570. package/components/textInput/textInput.tsx +84 -54
  571. package/components/toast/toast.module.scss +48 -8
  572. package/components/toast/toast.ts +12 -0
  573. package/components/toast/toastAction.ts +12 -0
  574. package/components/toast/toastContext.ts +16 -14
  575. package/components/toast/toasts.tsx +99 -0
  576. package/core/decrementLevel.tsx +1 -1
  577. package/core/incrementLevel.tsx +13 -13
  578. package/core/level.tsx +27 -27
  579. package/core/remToPx.ts +8 -0
  580. package/core/root.tsx +13 -19
  581. package/core/toast.ts +5 -4
  582. package/imports.d.ts +81 -0
  583. package/package.json +19 -49
  584. package/theme/defaultTheme.module.scss +361 -349
  585. package/theme/themeValues.scss +49 -46
  586. package/tsconfig.json +30 -20
  587. package/utilityComponent/hasBeenShown/hasBeenShown.tsx +47 -0
  588. package/utilityComponent/onInView/onInView.tsx +83 -0
  589. package/views/carousel/carousel.module.scss +77 -0
  590. package/views/carousel/carousel.tsx +138 -0
  591. package/views/header/header.module.scss +16 -0
  592. package/views/header/header.tsx +28 -0
  593. package/views/infiniteScroll/infiniteScroll.module.scss +26 -0
  594. package/views/infiniteScroll/infiniteScroll.tsx +90 -0
  595. package/views/navBar/components/navImage/navImage.module.scss +7 -0
  596. package/views/navBar/components/navImage/navImage.tsx +15 -0
  597. package/views/navBar/components/navTitle/navTitle.tsx +13 -0
  598. package/views/navBar/navBar.module.scss +22 -0
  599. package/views/navBar/navBar.tsx +37 -0
  600. package/views/onBoarding/onBoarding.module.scss +79 -0
  601. package/views/onBoarding/onBoarding.tsx +138 -0
  602. package/views/panAndZoom/panAndZoom.tsx +9 -2
  603. package/views/sidebar/Sidebar.module.scss +49 -0
  604. package/views/sidebar/Sidebar.tsx +30 -0
  605. package/views/sidebar/SidebarContainer.module.scss +22 -0
  606. package/views/sidebar/SidebarContainer.tsx +38 -0
  607. package/views/sidebar/SidebarContext.tsx +15 -0
  608. package/views/sidebar/SidebarToggleButton.tsx +25 -0
  609. package/components/toast/toast.tsx +0 -65
@@ -1,46 +1,49 @@
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
- $theme: "--ut";
7
- $button: "btn";
8
- $hover: "hvr";
9
- $active: "atv";
10
- $padding: "pdn";
11
- $border: "brd";
12
- $radius: "rad";
13
- $accent: "acn";
14
- $subcolor: "scl";
15
- $color: "col";
16
- $background: "bgn";
17
- $gap: "gap";
18
- $transition: "trn";
19
- $font: "fnt";
20
- $size: "siz";
21
- $weight: "wgt";
22
- $family: "fam";
23
- $vertical: "vrt";
24
- $horizontal: "hrt";
25
- $header: "hed";
26
- $separator: "sep";
27
- $height: "hei";
28
- $heading: "hed";
29
- $input: "inp";
30
- $focus: "foc";
31
- $textbutton: "txb";
32
- $h1: "he1";
33
- $h2: "he2";
34
- $h3: "he3";
35
- $h4: "he4";
36
- $h5: "he5";
37
- $h6: "he6";
38
-
39
- $sizeMobile: 440px;
40
- $sizeLargeMobile: 560px;
41
- $sizeTablet: 768px;
42
- $sizeLargeTablet: 960px;
43
- $sizeSmallDesktop: 1200px;
44
- $sizeMediumDesktop: 1440px;
45
- $sizeLargeDesktop: 1920px;
46
- $sizeWideDesktop: 2560px;
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
+ $theme: "--ut";
7
+ $button: "btn";
8
+ $hover: "hvr";
9
+ $active: "atv";
10
+ $padding: "pdn";
11
+ $border: "brd";
12
+ $radius: "rad";
13
+ $accent: "acn";
14
+ $subcolor: "scl";
15
+ $color: "col";
16
+ $background: "bgn";
17
+ $gap: "gap";
18
+ $transition: "trans";
19
+ $font: "font";
20
+ $size: "size";
21
+ $weight: "wgt";
22
+ $family: "fam";
23
+ $vertical: "vert";
24
+ $horizontal: "horiz";
25
+ $header: "hed";
26
+ $separator: "sep";
27
+ $height: "hei";
28
+ $width: "wid";
29
+ $heading: "hed";
30
+ $input: "inp";
31
+ $focus: "foc";
32
+ $textbutton: "txb";
33
+ $h1: "he1";
34
+ $h2: "he2";
35
+ $h3: "he3";
36
+ $h4: "he4";
37
+ $h5: "he5";
38
+ $h6: "he6";
39
+ $scrollbar: "scrlbr";
40
+
41
+
42
+ $sizeMobile: 440px;
43
+ $sizeLargeMobile: 560px;
44
+ $sizeTablet: 768px;
45
+ $sizeLargeTablet: 960px;
46
+ $sizeSmallDesktop: 1200px;
47
+ $sizeMediumDesktop: 1440px;
48
+ $sizeLargeDesktop: 1920px;
49
+ $sizeWideDesktop: 2560px;
package/tsconfig.json CHANGED
@@ -1,20 +1,30 @@
1
- {
2
- "compilerOptions": {
3
- "strict": true,
4
- "target": "ESNext",
5
- "module": "ESNext",
6
- "moduleResolution": "node",
7
- "allowSyntheticDefaultImports": true,
8
- "esModuleInterop": true,
9
- "jsx": "preserve",
10
- "jsxImportSource": "react",
11
- "types": ["vite/client"],
12
- "noEmit": true,
13
- "isolatedModules": true,
14
- },
15
- "include": [
16
- "./**/*",
17
- "../applications/**/frontend/**/*",
18
- "../shared/**/*"
19
- ]
20
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "module": "ESNext",
5
+ "useDefineForClassFields": true,
6
+ "lib": [
7
+ "DOM",
8
+ "DOM.Iterable",
9
+ "ESNext"
10
+ ],
11
+ "allowJs": false,
12
+ "skipLibCheck": true,
13
+ "esModuleInterop": false,
14
+ "allowSyntheticDefaultImports": true,
15
+ "strict": true,
16
+ "forceConsistentCasingInFileNames": true,
17
+ "resolveJsonModule": true,
18
+ "moduleResolution": "bundler",
19
+ "allowImportingTsExtensions": true,
20
+ "isolatedModules": true,
21
+ "moduleDetection": "force",
22
+ "noEmit": true,
23
+ "jsx": "react-jsx"
24
+ },
25
+ "include": [
26
+ "./**/*",
27
+ "../shared/**/*",
28
+ "../web"
29
+ ]
30
+ }
@@ -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 { FC, useEffect, useRef, useState } from "react";
7
+
8
+ const HasBeenShown: FC<{
9
+ className?: string;
10
+ onSeen: () => void;
11
+ }> = ({ className, onSeen }) => {
12
+ const [hasBeenSeen, setHasBeenSeen] = useState(false);
13
+ const ref = useRef<HTMLDivElement>(null);
14
+
15
+ useEffect(() => {
16
+ if (!ref.current) return;
17
+
18
+ const current = ref.current;
19
+
20
+ const observer = new IntersectionObserver((interaction) => {
21
+ if (interaction[0].isIntersecting) {
22
+ onSeen();
23
+ observer.disconnect();
24
+ setHasBeenSeen(true);
25
+ }
26
+ });
27
+
28
+ observer.observe(current);
29
+
30
+ return () => {
31
+ observer.disconnect();
32
+ };
33
+ }, []);
34
+
35
+ if (hasBeenSeen) {
36
+ return null;
37
+ }
38
+
39
+ return (
40
+ <div
41
+ ref={ref}
42
+ className={className}
43
+ />
44
+ );
45
+ };
46
+
47
+ export default HasBeenShown;
@@ -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 { FC, useEffect, useRef } from "react";
7
+
8
+ const OnInView: FC<{
9
+ className?: string;
10
+ onEnterView?: (direction: "up" | "down" | "left" | "right") => void;
11
+ onLeaveView?: (direction: "up" | "down" | "left" | "right") => void;
12
+ }> = ({ className, onEnterView, onLeaveView }) => {
13
+ const isInView = useRef(false);
14
+ const ref = useRef<HTMLDivElement>(null);
15
+
16
+ useEffect(() => {
17
+ if (!ref.current) return;
18
+
19
+ const current = ref.current;
20
+
21
+ const handleScroll = () => {
22
+ const { top, bottom, left, right } = current.getBoundingClientRect();
23
+
24
+ if (!isInView.current) {
25
+ if (top < 0) {
26
+ onEnterView?.("up");
27
+ isInView.current = true;
28
+ return;
29
+ } else if (bottom > window.innerHeight) {
30
+ onEnterView?.("down");
31
+ isInView.current = true;
32
+ return;
33
+ } else if (left < 0) {
34
+ onEnterView?.("left");
35
+ isInView.current = true;
36
+ return;
37
+ } else if (right > window.innerWidth) {
38
+ onEnterView?.("right");
39
+ isInView.current = true;
40
+ return;
41
+ }
42
+ }
43
+
44
+ if (top > window.innerHeight) {
45
+ onLeaveView?.("down");
46
+ isInView.current = false;
47
+ return;
48
+ } else if (bottom < 0) {
49
+ onLeaveView?.("up");
50
+ isInView.current = false;
51
+ return;
52
+ } else if (left > window.innerWidth) {
53
+ onLeaveView?.("right");
54
+ isInView.current = false;
55
+ return;
56
+ } else if (right < 0) {
57
+ onLeaveView?.("left");
58
+ isInView.current = false;
59
+ return;
60
+ }
61
+ };
62
+
63
+ const observer = new IntersectionObserver(() => {
64
+ handleScroll();
65
+ });
66
+
67
+ observer.observe(current);
68
+
69
+ return () => {
70
+ observer.disconnect();
71
+ };
72
+ }, []);
73
+
74
+ return (
75
+ <div
76
+ ref={ref}
77
+ style={{ height: 1, width: 1 }}
78
+ className={className}
79
+ />
80
+ );
81
+ };
82
+
83
+ export default OnInView;
@@ -0,0 +1,77 @@
1
+ @import "@yourdash/uikit/theme/themeValues";
2
+
3
+ .containerComponent {
4
+ display: flex;
5
+ flex-direction: row;
6
+ max-width: 100%;
7
+ height: 24rem;
8
+ position: relative;
9
+ padding: 0;
10
+ overflow: hidden;
11
+ }
12
+
13
+ .component {
14
+ display: flex;
15
+ align-items: center;
16
+ max-width: 100%;
17
+ height: 24rem;
18
+ gap: 0.5rem;
19
+ padding: var(#{$theme+$padding});
20
+ flex-direction: row;
21
+ overflow-x: auto;
22
+ scroll-snap-type: x mandatory;
23
+ scroll-snap-stop: always;
24
+ scrollbar-width: none;
25
+ padding-bottom: 2.5rem;
26
+
27
+ &::-webkit-scrollbar {
28
+ display: none;
29
+ }
30
+ }
31
+
32
+ .page {
33
+ display: flex;
34
+ width: 80%;
35
+ height: 100%;
36
+ flex-shrink: 0;
37
+ scroll-snap-align: center;
38
+
39
+ &:first-of-type {
40
+ margin-left: calc(20% + var(#{$theme+$gap}));
41
+ }
42
+
43
+ &:last-of-type {
44
+ margin-right: calc(20% + var(#{$theme+$gap}));
45
+ }
46
+ }
47
+
48
+ .controls {
49
+ position: absolute;
50
+ bottom: 0;
51
+ left: 50%;
52
+ transform: translateX(-50%);
53
+ display: flex;
54
+ flex-direction: row;
55
+ gap: var(#{$theme+$gap});
56
+ }
57
+
58
+ .indicator {
59
+ display: flex;
60
+ flex-direction: row;
61
+ gap: var(#{$theme+$gap});
62
+ padding: calc(var(#{$theme+$padding}) / 2);
63
+ border-radius: var(#{$theme+$radius});
64
+
65
+ .pageIndicator {
66
+ background-color: var(#{$theme+$color});
67
+ padding: 0.5rem;
68
+ border-radius: var(#{$theme+$radius});
69
+ transition: var(#{$theme+$transition});
70
+ position: relative;
71
+
72
+ &.selected {
73
+ padding-right: 1.5rem;
74
+ padding-left: 1.5rem;
75
+ }
76
+ }
77
+ }
@@ -0,0 +1,138 @@
1
+ import page from "@yourdash/web/src/deprecatedLogin/Page.tsx";
2
+ import React, { useEffect, useRef, useState } from "react";
3
+ import Card from "../../components/card/card.tsx";
4
+ import Container from "../../components/container/container.tsx";
5
+ import { UKIcon } from "../../components/icon/iconDictionary.ts";
6
+ import IconButton from "../../components/iconButton/iconButton.tsx";
7
+ import styles from "./carousel.module.scss";
8
+ import clippy from "@yourdash/shared/web/helpers/clippy.ts";
9
+
10
+ const Carousel: React.FC<{
11
+ items: { element: React.ReactElement; id: string }[];
12
+ className?: string;
13
+ }> = ({ items, className }) => {
14
+ const scrollRef = useRef<HTMLDivElement>(null);
15
+ const [currentPage, setCurrentPage] = useState<number>(0);
16
+
17
+ useEffect(() => {
18
+ const scrollElement = scrollRef.current;
19
+
20
+ if (!scrollElement) return;
21
+
22
+ console.log(Array.from(scrollElement.children));
23
+
24
+ let timer: Timer;
25
+ let listener = () => {
26
+ clearTimeout(timer);
27
+ timer = setTimeout(function () {
28
+ Array.from(scrollElement.children).forEach((ele: Element, index: number) => {
29
+ if (
30
+ Math.abs(
31
+ ele.getBoundingClientRect().left +
32
+ ele.getBoundingClientRect().width / 2 -
33
+ (scrollElement.getBoundingClientRect().left + scrollElement.getBoundingClientRect().width / 2),
34
+ ) <
35
+ ele.getBoundingClientRect().width / 2
36
+ ) {
37
+ setCurrentPage(index);
38
+ return;
39
+ }
40
+ });
41
+ }, 25);
42
+ };
43
+
44
+ scrollElement.addEventListener("scroll", listener);
45
+
46
+ return () => {
47
+ scrollElement.removeEventListener("scroll", listener);
48
+ clearTimeout(timer);
49
+ };
50
+ }, []);
51
+
52
+ return (
53
+ <Container className={clippy(styles.containerComponent, className)}>
54
+ <div
55
+ className={styles.component}
56
+ ref={scrollRef}
57
+ >
58
+ {items.map((child) => {
59
+ return (
60
+ <div
61
+ key={child.id}
62
+ className={styles.page}
63
+ >
64
+ {child.element}
65
+ </div>
66
+ );
67
+ })}
68
+ </div>
69
+ <div className={styles.controls}>
70
+ <IconButton
71
+ accessibleLabel={"previous page"}
72
+ icon={UKIcon.ChevronLeft}
73
+ className={styles.pageControl}
74
+ onClick={() => {
75
+ const scrollElement = scrollRef.current;
76
+
77
+ if (!scrollElement) {
78
+ return;
79
+ }
80
+
81
+ const carouselTargetPage = scrollElement.children[currentPage - 1] as HTMLDivElement;
82
+
83
+ if (!carouselTargetPage) {
84
+ return;
85
+ }
86
+
87
+ carouselTargetPage.scrollIntoView({ behavior: "smooth" });
88
+ }}
89
+ />
90
+ <Card className={styles.indicator}>
91
+ {items.map((page, index) => {
92
+ return (
93
+ <button
94
+ key={page.id}
95
+ className={clippy(styles.pageIndicator, index === currentPage && styles.selected)}
96
+ onClick={() => {
97
+ const scrollElement = scrollRef.current;
98
+
99
+ if (!scrollElement) {
100
+ return;
101
+ }
102
+
103
+ scrollElement.scrollIntoView({ behavior: "smooth" });
104
+
105
+ const carouselTargetPage = scrollElement.children[index] as HTMLDivElement;
106
+
107
+ carouselTargetPage.scrollIntoView({ behavior: "smooth" });
108
+ }}
109
+ />
110
+ );
111
+ })}
112
+ </Card>
113
+ <IconButton
114
+ accessibleLabel={"next page"}
115
+ icon={UKIcon.ChevronRight}
116
+ className={styles.pageControl}
117
+ onClick={() => {
118
+ const scrollElement = scrollRef.current;
119
+
120
+ if (!scrollElement) {
121
+ return;
122
+ }
123
+
124
+ const carouselTargetPage = scrollElement.children[currentPage + 1] as HTMLDivElement;
125
+
126
+ if (!carouselTargetPage) {
127
+ return;
128
+ }
129
+
130
+ carouselTargetPage.scrollIntoView({ behavior: "smooth" });
131
+ }}
132
+ />
133
+ </div>
134
+ </Container>
135
+ );
136
+ };
137
+
138
+ export default Carousel;
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright ©2024 Ewsgit <https://ewsgit.uk> and YourDash <https://yourdash.ewsgit.uk> contributors.
3
+ * YourDash is licensed under the MIT License. (https://mit.ewsgit.uk)
4
+ */
5
+
6
+ @import "@yourdash/uikit/theme/themeValues";
7
+
8
+ .view {
9
+ width: 100%;
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ padding: var(#{$theme+$padding});
14
+ padding-top: calc(var(#{$theme+$padding}) * 4);
15
+ padding-bottom: calc(var(#{$theme+$padding}) * 4);
16
+ }
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright ©2024 Ewsgit <https://ewsgit.uk> and YourDash <https://yourdash.ewsgit.uk> contributors.
3
+ * YourDash is licensed under the MIT License. (https://mit.ewsgit.uk)
4
+ */
5
+
6
+ import React from "react";
7
+ import Heading from "../../components/heading/heading.tsx";
8
+ import styles from "./header.module.scss";
9
+
10
+ const Header: React.FC<{ backgroundImage?: string; heading: string }> = ({ backgroundImage, heading }) => {
11
+ return (
12
+ <>
13
+ <div
14
+ className={styles.view}
15
+ style={
16
+ backgroundImage ? { backgroundImage: backgroundImage } : { backgroundImage: "linear-gradient(-45deg, #ff8093aa, #ffd264aa)" }
17
+ }
18
+ >
19
+ <Heading
20
+ level={1}
21
+ text={heading}
22
+ />
23
+ </div>
24
+ </>
25
+ );
26
+ };
27
+
28
+ export default Header;
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * Copyright ©2024 Ewsgit<https://ewsgit.uk> and YourDash<https://yourdash.ewsgit.uk> contributors.
3
+ * YourDash is licensed under the MIT License. (https://mit.ewsgit.uk)
4
+ */
5
+
6
+ @import "@yourdash/uikit/theme/themeValues";
7
+
8
+ .component {
9
+ display: flex;
10
+ flex-direction: column;
11
+ width: 100%;
12
+ height: 100%;
13
+ gap: 1rem;
14
+ align-items: center;
15
+ }
16
+
17
+ .items {
18
+ height: 100%;
19
+ }
20
+
21
+ .endOfItems {
22
+ text-align: center;
23
+ padding: var(#{$theme+$padding});
24
+ gap: var(#{$theme+$gap});
25
+ width: calc(100% - calc(var(#{$theme+$padding}) * 2));
26
+ }
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Copyright ©2024 Ewsgit<https://ewsgit.uk> and YourDash<https://yourdash.ewsgit.uk> contributors.
3
+ * YourDash is licensed under the MIT License. (https://mit.ewsgit.uk)
4
+ */
5
+
6
+ import clippy from "@yourdash/shared/web/helpers/clippy.ts";
7
+ import React, { useEffect, useState } from "react";
8
+ import Heading from "../../components/heading/heading.tsx";
9
+ import Separator from "../../components/separator/separator.tsx";
10
+ import Text from "../../components/text/text.tsx";
11
+ import styles from "./infiniteScroll.module.scss";
12
+
13
+ const InfiniteScroll: React.FC<{
14
+ children: React.ReactNode | React.ReactNode[];
15
+ fetchNextPage: (nextPageNumber: number) => Promise<{ hasAnotherPage?: boolean }>;
16
+ containerClassName?: string;
17
+ className?: string;
18
+ resetState?: string;
19
+ }> = ({ children, fetchNextPage, containerClassName, className, resetState }) => {
20
+ const endOfItemsRef = React.useRef<HTMLDivElement>(null);
21
+ const lastFetchedPage = React.useRef<number>(-1);
22
+ const [isLoading, setIsLoading] = useState<boolean>(false);
23
+ const [isLastPage, setIsLastPage] = useState<boolean>(false);
24
+
25
+ useEffect(() => {
26
+ lastFetchedPage.current = -1;
27
+ setIsLoading(false);
28
+ setIsLastPage(false);
29
+ fetchNextPageWrapper();
30
+ }, [resetState]);
31
+
32
+ async function fetchNextPageWrapper() {
33
+ if (isLoading) return;
34
+ setIsLoading(true);
35
+ const { hasAnotherPage } = await fetchNextPage(lastFetchedPage.current + 1);
36
+ lastFetchedPage.current++;
37
+ setIsLoading(false);
38
+ setIsLastPage(hasAnotherPage || false);
39
+ }
40
+
41
+ useEffect(() => {
42
+ if (!endOfItemsRef.current) return;
43
+
44
+ const element: HTMLDivElement = endOfItemsRef.current;
45
+
46
+ const observer = new IntersectionObserver((elem) => {
47
+ console.log("observer update");
48
+ const isVisible = elem[0].isIntersecting;
49
+
50
+ if (isVisible) fetchNextPageWrapper();
51
+ });
52
+
53
+ observer.observe(element);
54
+ }, []);
55
+
56
+ // TODO: Use interaction observer to detect when the last item is shown on the screen and fetch the next page
57
+
58
+ return (
59
+ <div className={clippy(containerClassName, styles.component)}>
60
+ {/* @ts-ignore */}
61
+ {children?.length > 0 ? (
62
+ <div className={clippy(className, styles.items)}>{children}</div>
63
+ ) : (
64
+ <div className={"text-center"}>
65
+ <Heading
66
+ level={1}
67
+ text={"Whoops."}
68
+ />
69
+ <Separator direction={"column"} />
70
+ <Text text={"It looks like nothing could be found..."} />
71
+ </div>
72
+ )}
73
+ <div
74
+ ref={endOfItemsRef}
75
+ className={styles.endOfItems}
76
+ >
77
+ {isLoading && <Text text={"Loading more content"} />}
78
+ <Separator direction={"column"} />
79
+ {isLastPage && (
80
+ <Text
81
+ text={"No more items to load"}
82
+ className={styles.endOfItems}
83
+ />
84
+ )}
85
+ </div>
86
+ </div>
87
+ );
88
+ };
89
+
90
+ export default InfiniteScroll;
@@ -0,0 +1,7 @@
1
+ @import "../../../../theme/themeValues";
2
+
3
+ .component {
4
+ height: calc(var(--nav-height) - var(#{$theme+$padding}));
5
+ aspect-ratio: 1 / 1;
6
+ border-radius: 0;
7
+ }
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import Image from "../../../../components/image/image.tsx";
3
+ import styles from "./navImage.module.scss";
4
+
5
+ const NavImage: React.FC<{ src: string }> = ({ src }) => {
6
+ return (
7
+ <Image
8
+ accessibleLabel=""
9
+ src={src}
10
+ className={styles.component}
11
+ />
12
+ );
13
+ };
14
+
15
+ export default NavImage;