cybercore-css 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +479 -0
  3. package/dist/cybercore.css +3546 -0
  4. package/dist/cybercore.css.map +1 -0
  5. package/dist/cybercore.min.css +3 -0
  6. package/dist/cybercore.min.css.map +1 -0
  7. package/package.json +214 -0
  8. package/src/cybercore.d.ts +107 -0
  9. package/src/icons/README.md +378 -0
  10. package/src/icons/defs/_template.ts +27 -0
  11. package/src/icons/defs/actions/check.ts +36 -0
  12. package/src/icons/defs/actions/copy.ts +37 -0
  13. package/src/icons/defs/actions/cut.ts +44 -0
  14. package/src/icons/defs/actions/delete.ts +42 -0
  15. package/src/icons/defs/actions/download.ts +36 -0
  16. package/src/icons/defs/actions/drag.ts +60 -0
  17. package/src/icons/defs/actions/edit.ts +36 -0
  18. package/src/icons/defs/actions/filter.ts +33 -0
  19. package/src/icons/defs/actions/index.ts +28 -0
  20. package/src/icons/defs/actions/link.ts +40 -0
  21. package/src/icons/defs/actions/minus.ts +42 -0
  22. package/src/icons/defs/actions/paste.ts +39 -0
  23. package/src/icons/defs/actions/pin.ts +36 -0
  24. package/src/icons/defs/actions/plus.ts +46 -0
  25. package/src/icons/defs/actions/redo.ts +37 -0
  26. package/src/icons/defs/actions/refresh.ts +36 -0
  27. package/src/icons/defs/actions/save.ts +36 -0
  28. package/src/icons/defs/actions/search.ts +37 -0
  29. package/src/icons/defs/actions/share.ts +45 -0
  30. package/src/icons/defs/actions/sort.ts +39 -0
  31. package/src/icons/defs/actions/undo.ts +37 -0
  32. package/src/icons/defs/actions/unlink.ts +44 -0
  33. package/src/icons/defs/actions/upload.ts +36 -0
  34. package/src/icons/defs/actions/x.ts +40 -0
  35. package/src/icons/defs/communication/at-sign.ts +37 -0
  36. package/src/icons/defs/communication/bell-off.ts +44 -0
  37. package/src/icons/defs/communication/bell.ts +37 -0
  38. package/src/icons/defs/communication/inbox.ts +40 -0
  39. package/src/icons/defs/communication/index.ts +15 -0
  40. package/src/icons/defs/communication/mail.ts +40 -0
  41. package/src/icons/defs/communication/message.ts +42 -0
  42. package/src/icons/defs/communication/phone-off.ts +35 -0
  43. package/src/icons/defs/communication/phone.ts +36 -0
  44. package/src/icons/defs/communication/send.ts +37 -0
  45. package/src/icons/defs/communication/video-call.ts +44 -0
  46. package/src/icons/defs/data/calendar.ts +55 -0
  47. package/src/icons/defs/data/chart-bar.ts +48 -0
  48. package/src/icons/defs/data/chart-line.ts +41 -0
  49. package/src/icons/defs/data/chart-pie.ts +42 -0
  50. package/src/icons/defs/data/clock.ts +37 -0
  51. package/src/icons/defs/data/cloud-download.ts +41 -0
  52. package/src/icons/defs/data/cloud-upload.ts +41 -0
  53. package/src/icons/defs/data/cloud.ts +36 -0
  54. package/src/icons/defs/data/database.ts +50 -0
  55. package/src/icons/defs/data/hash.ts +43 -0
  56. package/src/icons/defs/data/index.ts +19 -0
  57. package/src/icons/defs/data/percent.ts +39 -0
  58. package/src/icons/defs/data/sync.ts +43 -0
  59. package/src/icons/defs/data/table.ts +50 -0
  60. package/src/icons/defs/data/timer.ts +47 -0
  61. package/src/icons/defs/files/archive.ts +39 -0
  62. package/src/icons/defs/files/attachment.ts +34 -0
  63. package/src/icons/defs/files/clipboard.ts +45 -0
  64. package/src/icons/defs/files/file-archive.ts +45 -0
  65. package/src/icons/defs/files/file-audio.ts +41 -0
  66. package/src/icons/defs/files/file-code.ts +41 -0
  67. package/src/icons/defs/files/file-image.ts +41 -0
  68. package/src/icons/defs/files/file-minus.ts +37 -0
  69. package/src/icons/defs/files/file-plus.ts +41 -0
  70. package/src/icons/defs/files/file-text.ts +41 -0
  71. package/src/icons/defs/files/file-video.ts +37 -0
  72. package/src/icons/defs/files/file.ts +34 -0
  73. package/src/icons/defs/files/folder-open.ts +34 -0
  74. package/src/icons/defs/files/folder-plus.ts +38 -0
  75. package/src/icons/defs/files/folder.ts +30 -0
  76. package/src/icons/defs/files/index.ts +20 -0
  77. package/src/icons/defs/index.ts +58 -0
  78. package/src/icons/defs/media/camera-off.ts +39 -0
  79. package/src/icons/defs/media/camera.ts +34 -0
  80. package/src/icons/defs/media/fast-forward.ts +34 -0
  81. package/src/icons/defs/media/image.ts +39 -0
  82. package/src/icons/defs/media/index.ts +22 -0
  83. package/src/icons/defs/media/mic-off.ts +44 -0
  84. package/src/icons/defs/media/mic.ts +39 -0
  85. package/src/icons/defs/media/music.ts +39 -0
  86. package/src/icons/defs/media/pause.ts +36 -0
  87. package/src/icons/defs/media/play.ts +34 -0
  88. package/src/icons/defs/media/rewind.ts +34 -0
  89. package/src/icons/defs/media/skip-back.ts +34 -0
  90. package/src/icons/defs/media/skip-forward.ts +34 -0
  91. package/src/icons/defs/media/stop.ts +34 -0
  92. package/src/icons/defs/media/video.ts +39 -0
  93. package/src/icons/defs/media/volume-high.ts +39 -0
  94. package/src/icons/defs/media/volume-low.ts +34 -0
  95. package/src/icons/defs/media/volume-off.ts +34 -0
  96. package/src/icons/defs/navigation/arrow-down.ts +34 -0
  97. package/src/icons/defs/navigation/arrow-left.ts +34 -0
  98. package/src/icons/defs/navigation/arrow-right.ts +34 -0
  99. package/src/icons/defs/navigation/arrow-up.ts +34 -0
  100. package/src/icons/defs/navigation/chevron-down.ts +31 -0
  101. package/src/icons/defs/navigation/chevron-left.ts +31 -0
  102. package/src/icons/defs/navigation/chevron-right.ts +31 -0
  103. package/src/icons/defs/navigation/chevron-up.ts +31 -0
  104. package/src/icons/defs/navigation/external-link.ts +37 -0
  105. package/src/icons/defs/navigation/home.ts +34 -0
  106. package/src/icons/defs/navigation/index.ts +19 -0
  107. package/src/icons/defs/navigation/maximize.ts +36 -0
  108. package/src/icons/defs/navigation/menu-dots.ts +42 -0
  109. package/src/icons/defs/navigation/menu.ts +42 -0
  110. package/src/icons/defs/navigation/minimize.ts +32 -0
  111. package/src/icons/defs/security/eye-off.ts +42 -0
  112. package/src/icons/defs/security/eye.ts +37 -0
  113. package/src/icons/defs/security/fingerprint.ts +51 -0
  114. package/src/icons/defs/security/index.ts +20 -0
  115. package/src/icons/defs/security/key.ts +43 -0
  116. package/src/icons/defs/security/lock.ts +40 -0
  117. package/src/icons/defs/security/log-in.ts +40 -0
  118. package/src/icons/defs/security/log-out.ts +40 -0
  119. package/src/icons/defs/security/shield-check.ts +34 -0
  120. package/src/icons/defs/security/shield-x.ts +38 -0
  121. package/src/icons/defs/security/shield.ts +36 -0
  122. package/src/icons/defs/security/unlock.ts +40 -0
  123. package/src/icons/defs/security/user-minus.ts +39 -0
  124. package/src/icons/defs/security/user-plus.ts +43 -0
  125. package/src/icons/defs/security/user.ts +41 -0
  126. package/src/icons/defs/security/users.ts +43 -0
  127. package/src/icons/defs/social/award.ts +41 -0
  128. package/src/icons/defs/social/bookmark-filled.ts +24 -0
  129. package/src/icons/defs/social/bookmark.ts +25 -0
  130. package/src/icons/defs/social/flag.ts +35 -0
  131. package/src/icons/defs/social/heart-filled.ts +24 -0
  132. package/src/icons/defs/social/heart.ts +25 -0
  133. package/src/icons/defs/social/index.ts +11 -0
  134. package/src/icons/defs/social/star-filled.ts +24 -0
  135. package/src/icons/defs/social/star.ts +25 -0
  136. package/src/icons/defs/social/thumbs-down.ts +42 -0
  137. package/src/icons/defs/social/thumbs-up.ts +42 -0
  138. package/src/icons/defs/social/trending.ts +36 -0
  139. package/src/icons/defs/status/battery-charging.ts +30 -0
  140. package/src/icons/defs/status/battery-full.ts +30 -0
  141. package/src/icons/defs/status/battery-low.ts +31 -0
  142. package/src/icons/defs/status/error.ts +31 -0
  143. package/src/icons/defs/status/help.ts +30 -0
  144. package/src/icons/defs/status/index.ts +12 -0
  145. package/src/icons/defs/status/info.ts +30 -0
  146. package/src/icons/defs/status/loading.ts +52 -0
  147. package/src/icons/defs/status/offline.ts +28 -0
  148. package/src/icons/defs/status/online.ts +30 -0
  149. package/src/icons/defs/status/progress.ts +31 -0
  150. package/src/icons/defs/status/success.ts +27 -0
  151. package/src/icons/defs/status/warning.ts +30 -0
  152. package/src/icons/defs/tech/api.ts +55 -0
  153. package/src/icons/defs/tech/bluetooth.ts +33 -0
  154. package/src/icons/defs/tech/bug.ts +58 -0
  155. package/src/icons/defs/tech/chip.ts +80 -0
  156. package/src/icons/defs/tech/circuit.ts +57 -0
  157. package/src/icons/defs/tech/code.ts +36 -0
  158. package/src/icons/defs/tech/cpu.ts +58 -0
  159. package/src/icons/defs/tech/git-branch.ts +41 -0
  160. package/src/icons/defs/tech/git-commit.ts +38 -0
  161. package/src/icons/defs/tech/git-merge.ts +46 -0
  162. package/src/icons/defs/tech/git-pull.ts +50 -0
  163. package/src/icons/defs/tech/globe.ts +36 -0
  164. package/src/icons/defs/tech/index.ts +27 -0
  165. package/src/icons/defs/tech/memory.ts +61 -0
  166. package/src/icons/defs/tech/qr-code.ts +81 -0
  167. package/src/icons/defs/tech/server.ts +45 -0
  168. package/src/icons/defs/tech/settings.ts +33 -0
  169. package/src/icons/defs/tech/signal.ts +43 -0
  170. package/src/icons/defs/tech/sliders.ts +63 -0
  171. package/src/icons/defs/tech/terminal.ts +36 -0
  172. package/src/icons/defs/tech/wifi-off.ts +43 -0
  173. package/src/icons/defs/tech/wifi.ts +38 -0
  174. package/src/icons/defs/tech/zap.ts +30 -0
  175. package/src/icons/icon-list.ts +305 -0
  176. package/src/icons/index.ts +95 -0
  177. package/src/icons/individual.ts +210 -0
  178. package/src/icons/registry.ts +2276 -0
  179. package/src/icons/svg/actions/check.svg +5 -0
  180. package/src/icons/svg/actions/copy.svg +6 -0
  181. package/src/icons/svg/actions/cut.svg +7 -0
  182. package/src/icons/svg/actions/delete.svg +7 -0
  183. package/src/icons/svg/actions/download.svg +5 -0
  184. package/src/icons/svg/actions/drag.svg +8 -0
  185. package/src/icons/svg/actions/edit.svg +5 -0
  186. package/src/icons/svg/actions/filter.svg +4 -0
  187. package/src/icons/svg/actions/link.svg +6 -0
  188. package/src/icons/svg/actions/minus.svg +7 -0
  189. package/src/icons/svg/actions/paste.svg +6 -0
  190. package/src/icons/svg/actions/pin.svg +5 -0
  191. package/src/icons/svg/actions/plus.svg +8 -0
  192. package/src/icons/svg/actions/redo.svg +5 -0
  193. package/src/icons/svg/actions/refresh.svg +5 -0
  194. package/src/icons/svg/actions/save.svg +5 -0
  195. package/src/icons/svg/actions/search.svg +5 -0
  196. package/src/icons/svg/actions/share.svg +7 -0
  197. package/src/icons/svg/actions/sort.svg +6 -0
  198. package/src/icons/svg/actions/undo.svg +5 -0
  199. package/src/icons/svg/actions/unlink.svg +7 -0
  200. package/src/icons/svg/actions/upload.svg +5 -0
  201. package/src/icons/svg/actions/x.svg +6 -0
  202. package/src/icons/svg/communication/at-sign.svg +5 -0
  203. package/src/icons/svg/communication/bell-off.svg +8 -0
  204. package/src/icons/svg/communication/bell.svg +5 -0
  205. package/src/icons/svg/communication/inbox.svg +6 -0
  206. package/src/icons/svg/communication/mail.svg +6 -0
  207. package/src/icons/svg/communication/message.svg +6 -0
  208. package/src/icons/svg/communication/phone-off.svg +4 -0
  209. package/src/icons/svg/communication/phone.svg +5 -0
  210. package/src/icons/svg/communication/send.svg +5 -0
  211. package/src/icons/svg/communication/video-call.svg +7 -0
  212. package/src/icons/svg/data/calendar.svg +11 -0
  213. package/src/icons/svg/data/chart-bar.svg +6 -0
  214. package/src/icons/svg/data/chart-line.svg +5 -0
  215. package/src/icons/svg/data/chart-pie.svg +6 -0
  216. package/src/icons/svg/data/clock.svg +5 -0
  217. package/src/icons/svg/data/cloud-download.svg +5 -0
  218. package/src/icons/svg/data/cloud-upload.svg +5 -0
  219. package/src/icons/svg/data/cloud.svg +4 -0
  220. package/src/icons/svg/data/database.svg +7 -0
  221. package/src/icons/svg/data/hash.svg +6 -0
  222. package/src/icons/svg/data/percent.svg +5 -0
  223. package/src/icons/svg/data/sync.svg +6 -0
  224. package/src/icons/svg/data/table.svg +7 -0
  225. package/src/icons/svg/data/timer.svg +7 -0
  226. package/src/icons/svg/files/archive.svg +5 -0
  227. package/src/icons/svg/files/attachment.svg +4 -0
  228. package/src/icons/svg/files/clipboard.svg +6 -0
  229. package/src/icons/svg/files/file-archive.svg +7 -0
  230. package/src/icons/svg/files/file-audio.svg +6 -0
  231. package/src/icons/svg/files/file-code.svg +6 -0
  232. package/src/icons/svg/files/file-image.svg +6 -0
  233. package/src/icons/svg/files/file-minus.svg +5 -0
  234. package/src/icons/svg/files/file-plus.svg +6 -0
  235. package/src/icons/svg/files/file-text.svg +6 -0
  236. package/src/icons/svg/files/file-video.svg +5 -0
  237. package/src/icons/svg/files/file.svg +4 -0
  238. package/src/icons/svg/files/folder-open.svg +4 -0
  239. package/src/icons/svg/files/folder-plus.svg +5 -0
  240. package/src/icons/svg/files/folder.svg +3 -0
  241. package/src/icons/svg/media/camera-off.svg +5 -0
  242. package/src/icons/svg/media/camera.svg +4 -0
  243. package/src/icons/svg/media/fast-forward.svg +4 -0
  244. package/src/icons/svg/media/image.svg +5 -0
  245. package/src/icons/svg/media/mic-off.svg +6 -0
  246. package/src/icons/svg/media/mic.svg +5 -0
  247. package/src/icons/svg/media/music.svg +5 -0
  248. package/src/icons/svg/media/pause.svg +4 -0
  249. package/src/icons/svg/media/play.svg +4 -0
  250. package/src/icons/svg/media/rewind.svg +4 -0
  251. package/src/icons/svg/media/skip-back.svg +4 -0
  252. package/src/icons/svg/media/skip-forward.svg +4 -0
  253. package/src/icons/svg/media/stop.svg +4 -0
  254. package/src/icons/svg/media/video.svg +5 -0
  255. package/src/icons/svg/media/volume-high.svg +5 -0
  256. package/src/icons/svg/media/volume-low.svg +4 -0
  257. package/src/icons/svg/media/volume-off.svg +4 -0
  258. package/src/icons/svg/navigation/arrow-down.svg +4 -0
  259. package/src/icons/svg/navigation/arrow-left.svg +4 -0
  260. package/src/icons/svg/navigation/arrow-right.svg +4 -0
  261. package/src/icons/svg/navigation/arrow-up.svg +4 -0
  262. package/src/icons/svg/navigation/chevron-down.svg +3 -0
  263. package/src/icons/svg/navigation/chevron-left.svg +3 -0
  264. package/src/icons/svg/navigation/chevron-right.svg +3 -0
  265. package/src/icons/svg/navigation/chevron-up.svg +3 -0
  266. package/src/icons/svg/navigation/external-link.svg +5 -0
  267. package/src/icons/svg/navigation/home.svg +4 -0
  268. package/src/icons/svg/navigation/maximize.svg +3 -0
  269. package/src/icons/svg/navigation/menu-dots.svg +5 -0
  270. package/src/icons/svg/navigation/menu.svg +5 -0
  271. package/src/icons/svg/navigation/minimize.svg +3 -0
  272. package/src/icons/svg/security/eye-off.svg +6 -0
  273. package/src/icons/svg/security/eye.svg +5 -0
  274. package/src/icons/svg/security/fingerprint.svg +9 -0
  275. package/src/icons/svg/security/key.svg +7 -0
  276. package/src/icons/svg/security/lock.svg +6 -0
  277. package/src/icons/svg/security/log-in.svg +6 -0
  278. package/src/icons/svg/security/log-out.svg +6 -0
  279. package/src/icons/svg/security/shield-check.svg +4 -0
  280. package/src/icons/svg/security/shield-x.svg +5 -0
  281. package/src/icons/svg/security/shield.svg +5 -0
  282. package/src/icons/svg/security/unlock.svg +6 -0
  283. package/src/icons/svg/security/user-minus.svg +5 -0
  284. package/src/icons/svg/security/user-plus.svg +6 -0
  285. package/src/icons/svg/security/user.svg +6 -0
  286. package/src/icons/svg/security/users.svg +6 -0
  287. package/src/icons/svg/social/award.svg +5 -0
  288. package/src/icons/svg/social/bookmark-filled.svg +3 -0
  289. package/src/icons/svg/social/bookmark.svg +3 -0
  290. package/src/icons/svg/social/flag.svg +4 -0
  291. package/src/icons/svg/social/heart-filled.svg +3 -0
  292. package/src/icons/svg/social/heart.svg +3 -0
  293. package/src/icons/svg/social/star-filled.svg +3 -0
  294. package/src/icons/svg/social/star.svg +3 -0
  295. package/src/icons/svg/social/thumbs-down.svg +5 -0
  296. package/src/icons/svg/social/thumbs-up.svg +5 -0
  297. package/src/icons/svg/social/trending.svg +4 -0
  298. package/src/icons/svg/status/battery-charging.svg +5 -0
  299. package/src/icons/svg/status/battery-full.svg +5 -0
  300. package/src/icons/svg/status/battery-low.svg +5 -0
  301. package/src/icons/svg/status/error.svg +5 -0
  302. package/src/icons/svg/status/help.svg +5 -0
  303. package/src/icons/svg/status/info.svg +5 -0
  304. package/src/icons/svg/status/loading.svg +10 -0
  305. package/src/icons/svg/status/offline.svg +4 -0
  306. package/src/icons/svg/status/online.svg +5 -0
  307. package/src/icons/svg/status/progress.svg +5 -0
  308. package/src/icons/svg/status/success.svg +4 -0
  309. package/src/icons/svg/status/warning.svg +5 -0
  310. package/src/icons/svg/tech/api.svg +10 -0
  311. package/src/icons/svg/tech/bluetooth.svg +4 -0
  312. package/src/icons/svg/tech/bug.svg +11 -0
  313. package/src/icons/svg/tech/chip.svg +16 -0
  314. package/src/icons/svg/tech/circuit.svg +15 -0
  315. package/src/icons/svg/tech/code.svg +5 -0
  316. package/src/icons/svg/tech/cpu.svg +12 -0
  317. package/src/icons/svg/tech/git-branch.svg +6 -0
  318. package/src/icons/svg/tech/git-commit.svg +5 -0
  319. package/src/icons/svg/tech/git-merge.svg +7 -0
  320. package/src/icons/svg/tech/git-pull.svg +8 -0
  321. package/src/icons/svg/tech/globe.svg +5 -0
  322. package/src/icons/svg/tech/memory.svg +12 -0
  323. package/src/icons/svg/tech/qr-code.svg +9 -0
  324. package/src/icons/svg/tech/server.svg +7 -0
  325. package/src/icons/svg/tech/settings.svg +4 -0
  326. package/src/icons/svg/tech/signal.svg +7 -0
  327. package/src/icons/svg/tech/sliders.svg +11 -0
  328. package/src/icons/svg/tech/terminal.svg +5 -0
  329. package/src/icons/svg/tech/wifi-off.svg +7 -0
  330. package/src/icons/svg/tech/wifi.svg +6 -0
  331. package/src/icons/svg/tech/zap.svg +3 -0
  332. package/src/icons/types.ts +73 -0
  333. package/src/icons/utils.ts +216 -0
  334. package/src/scss/components/_alerts.scss +76 -0
  335. package/src/scss/components/_badges.scss +198 -0
  336. package/src/scss/components/_buttons.scss +180 -0
  337. package/src/scss/components/_cards.scss +178 -0
  338. package/src/scss/components/_dropdown.scss +213 -0
  339. package/src/scss/components/_index.scss +19 -0
  340. package/src/scss/components/_inputs.scss +193 -0
  341. package/src/scss/components/_modal.scss +303 -0
  342. package/src/scss/components/_nav.scss +116 -0
  343. package/src/scss/components/_progress.scss +218 -0
  344. package/src/scss/components/_skeleton.scss +337 -0
  345. package/src/scss/components/_spinner.scss +300 -0
  346. package/src/scss/components/_tables.scss +244 -0
  347. package/src/scss/components/_tabs.scss +327 -0
  348. package/src/scss/components/_terminal.scss +259 -0
  349. package/src/scss/core/_base.scss +25 -0
  350. package/src/scss/core/_index.scss +6 -0
  351. package/src/scss/core/_layers.scss +5 -0
  352. package/src/scss/core/_mixins.scss +96 -0
  353. package/src/scss/core/_reset.scss +26 -0
  354. package/src/scss/core/_typography.scss +43 -0
  355. package/src/scss/core/_variables.scss +163 -0
  356. package/src/scss/cybercore.scss +46 -0
  357. package/src/scss/effects/_datastream.scss +43 -0
  358. package/src/scss/effects/_glitch.scss +389 -0
  359. package/src/scss/effects/_index.scss +9 -0
  360. package/src/scss/effects/_neon-border.scss +107 -0
  361. package/src/scss/effects/_noise.scss +75 -0
  362. package/src/scss/effects/_scanlines.scss +86 -0
  363. package/src/scss/utilities/_accessibility.scss +57 -0
  364. package/src/scss/utilities/_animation.scss +246 -0
  365. package/src/scss/utilities/_backgrounds.scss +201 -0
  366. package/src/scss/utilities/_borders.scss +198 -0
  367. package/src/scss/utilities/_display.scss +33 -0
  368. package/src/scss/utilities/_filters.scss +279 -0
  369. package/src/scss/utilities/_flex.scss +95 -0
  370. package/src/scss/utilities/_grid.scss +68 -0
  371. package/src/scss/utilities/_icons.scss +152 -0
  372. package/src/scss/utilities/_index.scss +35 -0
  373. package/src/scss/utilities/_interactivity.scss +186 -0
  374. package/src/scss/utilities/_layout.scss +202 -0
  375. package/src/scss/utilities/_position.scss +168 -0
  376. package/src/scss/utilities/_shadows.scss +164 -0
  377. package/src/scss/utilities/_sizing.scss +229 -0
  378. package/src/scss/utilities/_spacing.scss +185 -0
  379. package/src/scss/utilities/_text.scss +177 -0
  380. package/src/scss/utilities/_transforms.scss +212 -0
  381. package/src/scss/utilities/_transitions.scss +174 -0
@@ -0,0 +1,378 @@
1
+ # Cyber Icons
2
+
3
+ Cyberpunk-themed SVG icon system for CYBERCORE CSS. Production-ready,
4
+ tree-shakeable, and fully typed.
5
+
6
+ ## Features
7
+
8
+ - **150+ icon specs** across 10 categories
9
+ - **Stroke-based design** - scales perfectly at any size
10
+ - **currentColor** - inherits text color automatically
11
+ - **Zero dependencies** - pure SVG
12
+ - **Tree-shakeable** - import only what you need
13
+ - **TypeScript** - full type definitions
14
+ - **Accessible** - aria-label support built-in
15
+
16
+ ## Installation
17
+
18
+ Icons are included with CYBERCORE CSS:
19
+
20
+ ```bash
21
+ npm install cybercore-css
22
+ ```
23
+
24
+ ## Quick Start
25
+
26
+ ### Simple HTML/CSS (No Build Tools)
27
+
28
+ Copy SVG files directly from `node_modules/cybercore-css/src/icons/svg/` or use
29
+ the CDN:
30
+
31
+ ```html
32
+ <!-- Include CSS for icon utilities -->
33
+ <link
34
+ rel="stylesheet"
35
+ href="https://unpkg.com/cybercore-css/dist/cybercore.min.css"
36
+ />
37
+
38
+ <!-- Option 1: Copy SVG inline -->
39
+ <span class="cyber-icon cyber-icon--cyan" style="width: 24px; height: 24px;">
40
+ <svg
41
+ xmlns="http://www.w3.org/2000/svg"
42
+ viewBox="0 0 24 24"
43
+ fill="none"
44
+ stroke="currentColor"
45
+ stroke-width="1.5"
46
+ stroke-linecap="round"
47
+ stroke-linejoin="round"
48
+ >
49
+ <polyline points="4 17 10 11 4 5" />
50
+ <line x1="12" y1="19" x2="20" y2="19" />
51
+ </svg>
52
+ </span>
53
+
54
+ <!-- Option 2: Use as background image -->
55
+ <span class="my-icon"></span>
56
+ <style>
57
+ .my-icon {
58
+ width: 24px;
59
+ height: 24px;
60
+ background-image: url('path/to/terminal.svg');
61
+ background-size: contain;
62
+ }
63
+ </style>
64
+ ```
65
+
66
+ **Icon CSS Classes:**
67
+
68
+ - `.cyber-icon--cyan` / `--magenta` / `--yellow` / `--green` - Color variants
69
+ - `.cyber-icon--sm` (16px) / `--md` (24px) / `--lg` (32px) / `--xl` (48px) -
70
+ Sizes
71
+ - `.cyber-icon--spin` / `--pulse` / `--glitch` - Animations
72
+
73
+ ### React / Next.js / Vite
74
+
75
+ ```tsx
76
+ import { renderIcon, getRegisteredIcons } from 'cybercore-css/icons';
77
+
78
+ function App() {
79
+ return (
80
+ <div>
81
+ {/* Method 1: Render as HTML string */}
82
+ <span
83
+ dangerouslySetInnerHTML={{
84
+ __html: renderIcon('terminal', { size: 24, color: 'cyan' }),
85
+ }}
86
+ />
87
+
88
+ {/* Method 2: Create a reusable Icon component */}
89
+ <Icon name="shield" size={32} color="magenta" />
90
+ </div>
91
+ );
92
+ }
93
+
94
+ // Reusable Icon Component
95
+ function Icon({ name, size = 24, color = 'current', className = '' }) {
96
+ return (
97
+ <span
98
+ className={`cyber-icon ${className}`}
99
+ style={{
100
+ color: color !== 'current' ? `var(--cyber-${color}-500)` : undefined,
101
+ }}
102
+ dangerouslySetInnerHTML={{ __html: renderIcon(name, { size }) }}
103
+ />
104
+ );
105
+ }
106
+ ```
107
+
108
+ ### Vue.js
109
+
110
+ ```vue
111
+ <template>
112
+ <span v-html="iconHtml" class="cyber-icon"></span>
113
+ </template>
114
+
115
+ <script setup>
116
+ import { computed } from 'vue';
117
+ import { renderIcon } from 'cybercore-css/icons';
118
+
119
+ const props = defineProps({
120
+ name: String,
121
+ size: { type: Number, default: 24 },
122
+ color: { type: String, default: 'cyan' },
123
+ });
124
+
125
+ const iconHtml = computed(() =>
126
+ renderIcon(props.name, { size: props.size, color: props.color })
127
+ );
128
+ </script>
129
+ ```
130
+
131
+ ### Svelte
132
+
133
+ ```svelte
134
+ <script>
135
+ import { renderIcon } from 'cybercore-css/icons';
136
+
137
+ export let name = 'terminal';
138
+ export let size = 24;
139
+ export let color = 'cyan';
140
+
141
+ $: html = renderIcon(name, { size, color });
142
+ </script>
143
+
144
+ <span class="cyber-icon" {@html html}></span>
145
+ ```
146
+
147
+ ## Usage
148
+
149
+ ### Import Everything
150
+
151
+ ```ts
152
+ import * as CyberIcons from 'cybercore-css/icons';
153
+
154
+ // Render an icon
155
+ const html = CyberIcons.renderIcon('terminal', {
156
+ size: 24,
157
+ color: 'cyan',
158
+ });
159
+ ```
160
+
161
+ ### Import Specific Functions
162
+
163
+ ```ts
164
+ import { renderIcon, getIcon, icons } from 'cybercore-css/icons';
165
+
166
+ // Get raw SVG string
167
+ const svg = getIcon('terminal');
168
+
169
+ // Render with options
170
+ const html = renderIcon('terminal', { size: 32, color: 'magenta' });
171
+
172
+ // Access registry directly
173
+ const chipSvg = icons.chip.svg;
174
+ ```
175
+
176
+ ### Tree-Shakeable Imports (Optimal Bundle Size)
177
+
178
+ For the smallest bundle, import icons directly and use `renderIconDef`:
179
+
180
+ ```ts
181
+ // Import only the icons you need
182
+ import { renderIconDef } from 'cybercore-css/icons';
183
+ import { terminal, chip } from 'cybercore-css/icons/defs/tech';
184
+ import { arrowUp } from 'cybercore-css/icons/defs/navigation';
185
+
186
+ // Render with full options - bundler only includes these 3 icons
187
+ const html = renderIconDef(terminal, { size: 24, color: 'cyan' });
188
+ const chipHtml = renderIconDef(chip, { size: 32, variant: 'solid' });
189
+
190
+ // Access SVG directly
191
+ element.innerHTML = arrowUp.svg;
192
+ ```
193
+
194
+ **Why this works for tree-shaking:**
195
+
196
+ - `renderIcon('terminal')` - NOT tree-shakeable (needs full registry for string
197
+ lookup)
198
+ - `renderIconDef(terminal)` - Tree-shakeable (bundler sees the direct import)
199
+
200
+ ### Legacy Individual Imports
201
+
202
+ ```ts
203
+ import {
204
+ ChipIcon,
205
+ TerminalIcon,
206
+ SignalIcon,
207
+ } from 'cybercore-css/icons/individual';
208
+
209
+ // Each export is the raw SVG string
210
+ element.innerHTML = ChipIcon;
211
+ ```
212
+
213
+ ### Sprite Sheet (For Many Icons)
214
+
215
+ ```ts
216
+ import { createSpriteSheet, renderIconRef } from 'cybercore-css/icons';
217
+
218
+ // Add sprite sheet once to your HTML
219
+ document.body.insertAdjacentHTML('beforeend', createSpriteSheet());
220
+
221
+ // Then reference icons by ID (smaller HTML)
222
+ const html = renderIconRef('terminal', { size: 24 });
223
+ // Output: <svg><use href="#cyber-icon-terminal"/></svg>
224
+ ```
225
+
226
+ ### Data URI (For CSS)
227
+
228
+ ```ts
229
+ import { getIconDataUri } from 'cybercore-css/icons';
230
+
231
+ const uri = getIconDataUri('chip', '#00f0ff');
232
+ // Use in CSS: background-image: url(${uri});
233
+ ```
234
+
235
+ ## API Reference
236
+
237
+ ### `renderIcon(name, options?)`
238
+
239
+ Renders an icon as an HTML string. **Not tree-shakeable** - use for convenience
240
+ when bundle size isn't critical.
241
+
242
+ | Option | Type | Default | Description |
243
+ | ------------- | --------------------------------------------------------- | ----------- | ------------------------ |
244
+ | `size` | `16 \| 20 \| 24 \| 32 \| 48 \| 64` | `24` | Icon size in pixels |
245
+ | `color` | `'cyan' \| 'magenta' \| 'yellow' \| 'green' \| 'current'` | `'current'` | Color variant |
246
+ | `variant` | `'outline' \| 'solid' \| 'duotone' \| 'glitch'` | `'outline'` | Icon variant |
247
+ | `className` | `string` | `''` | Additional CSS classes |
248
+ | `aria-label` | `string` | - | Accessibility label |
249
+ | `aria-hidden` | `boolean` | `true` | Hide from screen readers |
250
+
251
+ ### `renderIconDef(icon, options?)`
252
+
253
+ Renders an icon from its definition. **Tree-shakeable** - bundler only includes
254
+ icons you import.
255
+
256
+ ```ts
257
+ import { renderIconDef } from 'cybercore-css/icons';
258
+ import { terminal } from 'cybercore-css/icons/defs/tech';
259
+
260
+ const html = renderIconDef(terminal, { size: 24, color: 'cyan' });
261
+ ```
262
+
263
+ Same options as `renderIcon`.
264
+
265
+ ### `getIconSvg(icon, variant?)`
266
+
267
+ Returns the SVG string from an icon definition. **Tree-shakeable**.
268
+
269
+ ```ts
270
+ import { getIconSvg } from 'cybercore-css/icons';
271
+ import { shield } from 'cybercore-css/icons/defs/security';
272
+
273
+ const svg = getIconSvg(shield, 'solid');
274
+ ```
275
+
276
+ ### `getIcon(name, variant?)`
277
+
278
+ Returns the raw SVG string for an icon by name, or `null` if not found. **Not
279
+ tree-shakeable**.
280
+
281
+ ### `iconExists(name)`
282
+
283
+ Returns `true` if the icon exists in the registry.
284
+
285
+ ### `createSpriteSheet()`
286
+
287
+ Generates an SVG sprite sheet containing all icons.
288
+
289
+ ### `getIconDataUri(name, color?)`
290
+
291
+ Returns a data URI for use in CSS `background-image`.
292
+
293
+ ## Icon Categories
294
+
295
+ | Category | Description | Examples |
296
+ | --------------- | ----------------- | ---------------------------------------- |
297
+ | `navigation` | UI navigation | arrow-up, chevron-right, home, menu |
298
+ | `actions` | User interactions | search, edit, delete, copy, download |
299
+ | `media` | Audio/video | play, pause, volume-high, camera |
300
+ | `communication` | Messaging | bell, message, mail, send |
301
+ | `data` | Analytics | chart-bar, database, calendar, clock |
302
+ | `security` | Auth & privacy | lock, key, shield, eye, user |
303
+ | `tech` | Development | terminal, code, chip, server, git-branch |
304
+ | `files` | Documents | file, folder, clipboard, attachment |
305
+ | `status` | Feedback | info, warning, error, success, loading |
306
+ | `social` | Social | heart, star, thumbs-up, bookmark |
307
+
308
+ ## Design Guidelines
309
+
310
+ When creating new icons, follow these rules:
311
+
312
+ ### Structure
313
+
314
+ - **ViewBox**: Always `0 0 24 24`
315
+ - **Stroke-based**: Use `fill="none" stroke="currentColor"`
316
+ - **Stroke width**: Always `1.5`
317
+ - **Line caps**: Use `stroke-linecap="round" stroke-linejoin="round"`
318
+
319
+ ### Template
320
+
321
+ ```svg
322
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
323
+ <!-- Icon paths here -->
324
+ </svg>
325
+ ```
326
+
327
+ ### Style
328
+
329
+ - Keep it simple - icons should be recognizable at 16px
330
+ - Use geometric shapes with subtle cyber/tech details
331
+ - Avoid complex gradients or effects
332
+ - Test at multiple sizes: 16, 24, 32, 48px
333
+
334
+ ### Don'ts
335
+
336
+ - No inline styles
337
+ - No embedded scripts
338
+ - No raster images
339
+ - No external references
340
+ - No proprietary fonts
341
+
342
+ ## Validation
343
+
344
+ Run the validation script to check all icons:
345
+
346
+ ```bash
347
+ npm run validate:icons
348
+ ```
349
+
350
+ This checks:
351
+
352
+ - SVG structure and attributes
353
+ - Security (no scripts or event handlers)
354
+ - Consistency (stroke width, viewBox)
355
+ - Coverage (implemented vs. specified)
356
+
357
+ ## Contributing Icons
358
+
359
+ 1. Check `icon-list.ts` for icons that need to be created
360
+ 2. Create the SVG following the design guidelines
361
+ 3. Add to `registry.ts` with proper metadata
362
+ 4. Add individual export to `individual.ts`
363
+ 5. Run validation and tests
364
+
365
+ ## Color Palette
366
+
367
+ Icons work with the CYBERCORE color system:
368
+
369
+ | Color | CSS Variable | Hex |
370
+ | ------- | --------------------- | --------- |
371
+ | Cyan | `--cyber-cyan-500` | `#00f0ff` |
372
+ | Magenta | `--cyber-magenta-500` | `#ff00aa` |
373
+ | Yellow | `--cyber-yellow-500` | `#f0ff00` |
374
+ | Green | `--cyber-green-500` | `#00ff88` |
375
+
376
+ ## License
377
+
378
+ MIT - Part of CYBERCORE CSS
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Icon Name
3
+ * @category category-name
4
+ *
5
+ * TEMPLATE FILE - Copy this to create a new icon definition
6
+ * Filename: icon-name.ts (kebab-case)
7
+ * Export name: iconName (camelCase)
8
+ */
9
+ import type { IconDefinition } from '../types';
10
+
11
+ export const iconName: IconDefinition = {
12
+ name: 'icon-name', // kebab-case, matches filename
13
+ category: 'navigation', // navigation|actions|media|communication|data|security|tech|files|status|social
14
+ description: 'Brief description of the icon',
15
+ tags: ['tag1', 'tag2', 'tag3'],
16
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
17
+ <!-- Icon paths here -->
18
+ </svg>`,
19
+ // Optional: Add variants
20
+ // variants: {
21
+ // solid: `<svg>...</svg>`,
22
+ // duotone: `<svg>...</svg>`,
23
+ // glitch: `<svg>...</svg>`,
24
+ // },
25
+ };
26
+
27
+ export default iconName;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Check Icon
3
+ * @category actions
4
+ */
5
+ import type { IconDefinition } from '../../types';
6
+
7
+ export const check: IconDefinition = {
8
+ name: 'check',
9
+ category: 'actions',
10
+ description: 'Confirm or mark complete',
11
+ tags: ['check', 'checkmark', 'confirm', 'done', 'success'],
12
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
13
+ <path d="M20 6L9 17l-5-5"/>
14
+ <circle cx="9" cy="17" r="1"/>
15
+ <line x1="7" y1="10" x2="9" y2="12"/>
16
+ </svg>`,
17
+ variants: {
18
+ solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
19
+ <path d="M20.71 5.29a1 1 0 0 1 0 1.42l-11 11a1 1 0 0 1-1.42 0l-5-5a1 1 0 1 1 1.42-1.42L9 15.59l10.29-10.3a1 1 0 0 1 1.42 0z"/>
20
+ </svg>`,
21
+ duotone: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
22
+ <path d="M4 12l5 5L20 6" fill="currentColor" opacity="0.3"/>
23
+ <path d="M20 6L9 17l-5-5"/>
24
+ <circle cx="9" cy="17" r="1"/>
25
+ <line x1="7" y1="10" x2="9" y2="12"/>
26
+ </svg>`,
27
+ glitch: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
28
+ <path d="M20 6L9 17l-5-5" transform="translate(1,-1)" opacity="0.5"/>
29
+ <path d="M20 6L9 17l-5-5"/>
30
+ <circle cx="9" cy="17" r="1"/>
31
+ <line x1="7" y1="10" x2="9" y2="12"/>
32
+ </svg>`,
33
+ },
34
+ };
35
+
36
+ export default check;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copy Icon
3
+ * @category actions
4
+ */
5
+ import type { IconDefinition } from '../../types';
6
+
7
+ export const copy: IconDefinition = {
8
+ name: 'copy',
9
+ category: 'actions',
10
+ description: 'Copy to clipboard',
11
+ tags: ['copy', 'clipboard', 'duplicate', 'clone', 'paste'],
12
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
13
+ <rect x="9" y="8" width="11" height="11" rx="2"/>
14
+ <path d="M5 15H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
15
+ </svg>`,
16
+ variants: {
17
+ solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
18
+ <path d="M11 2a2 2 0 0 0-2 2v1H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9V4a2 2 0 0 0-2-2zm0 7h8a2 2 0 0 1 2 2v8H7V9h4zm2 3a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0v-3a1 1 0 0 0-1-1zm2 1a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2z"/>
19
+ </svg>`,
20
+ duotone: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
21
+ <rect x="9" y="9" width="12" height="12" rx="2" fill="currentColor" opacity="0.3"/>
22
+ <rect x="9" y="9" width="12" height="12" rx="2"/>
23
+ <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
24
+ <line x1="12" y1="13" x2="12" y2="17"/>
25
+ <line x1="15" y1="15" x2="18" y2="15"/>
26
+ </svg>`,
27
+ glitch: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
28
+ <rect x="9" y="9" width="12" height="12" rx="2" transform="translate(1,-1)" opacity="0.5"/>
29
+ <rect x="9" y="9" width="12" height="12" rx="2"/>
30
+ <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
31
+ <line x1="12" y1="13" x2="12" y2="17"/>
32
+ <line x1="15" y1="15" x2="18" y2="15"/>
33
+ </svg>`,
34
+ },
35
+ };
36
+
37
+ export default copy;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Cut Icon
3
+ * @category actions
4
+ */
5
+ import type { IconDefinition } from '../../types';
6
+
7
+ export const cut: IconDefinition = {
8
+ name: 'cut',
9
+ category: 'actions',
10
+ description: 'Cut to clipboard',
11
+ tags: ['cut', 'scissors', 'clipboard', 'remove', 'snip'],
12
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
13
+ <circle cx="6" cy="18" r="2"/>
14
+ <circle cx="18" cy="18" r="2"/>
15
+ <path d="M8 18l4-9 4 9"/>
16
+ <path d="M12 9l8-6"/>
17
+ <line x1="8" y1="3" x2="12" y2="9"/>
18
+ </svg>`,
19
+ variants: {
20
+ solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
21
+ <path d="M6 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm12 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm-9.5 1.5l3.5-7.5 3.5 7.5h-7zm3.5-8.5l7.5-5.5a1 1 0 0 1 1.2 1.6l-8 5.9a1 1 0 0 1-1.4 0L4.3 3.6a1 1 0 1 1 1.2-1.6L12 7.5z"/>
22
+ </svg>`,
23
+ duotone: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
24
+ <circle cx="6" cy="18" r="2" fill="currentColor" opacity="0.3"/>
25
+ <circle cx="18" cy="18" r="2" fill="currentColor" opacity="0.3"/>
26
+ <circle cx="6" cy="18" r="2"/>
27
+ <circle cx="18" cy="18" r="2"/>
28
+ <path d="M8 18l4-9 4 9"/>
29
+ <path d="M12 9l8-6"/>
30
+ <line x1="8" y1="3" x2="12" y2="9"/>
31
+ </svg>`,
32
+ glitch: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
33
+ <circle cx="6" cy="18" r="2" transform="translate(1,-1)" opacity="0.5"/>
34
+ <circle cx="18" cy="18" r="2" transform="translate(1,-1)" opacity="0.5"/>
35
+ <circle cx="6" cy="18" r="2"/>
36
+ <circle cx="18" cy="18" r="2"/>
37
+ <path d="M8 18l4-9 4 9"/>
38
+ <path d="M12 9l8-6"/>
39
+ <line x1="8" y1="3" x2="12" y2="9"/>
40
+ </svg>`,
41
+ },
42
+ };
43
+
44
+ export default cut;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Delete Icon
3
+ * @category actions
4
+ */
5
+ import type { IconDefinition } from '../../types';
6
+
7
+ export const deleteIcon: IconDefinition = {
8
+ name: 'delete',
9
+ category: 'actions',
10
+ description: 'Delete or remove content',
11
+ tags: ['delete', 'trash', 'remove', 'discard', 'bin'],
12
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
13
+ <path d="M3 6h18"/>
14
+ <path d="M8 6V4h8v2"/>
15
+ <path d="M19 6v14H5V6"/>
16
+ <line x1="10" y1="11" x2="10" y2="16"/>
17
+ <line x1="14" y1="11" x2="14" y2="16"/>
18
+ </svg>`,
19
+ variants: {
20
+ solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
21
+ <path d="M3 5a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2H3zm5 0V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v1H8zM5 8v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8H5zm5 2a1 1 0 0 1 1 1v5a1 1 0 0 1-2 0v-5a1 1 0 0 1 1-1zm4 0a1 1 0 0 1 1 1v5a1 1 0 0 1-2 0v-5a1 1 0 0 1 1-1z"/>
22
+ </svg>`,
23
+ duotone: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
24
+ <path d="M19 6v14H5V6" fill="currentColor" opacity="0.3"/>
25
+ <path d="M3 6h18"/>
26
+ <path d="M8 6V4h8v2"/>
27
+ <path d="M19 6v14H5V6"/>
28
+ <line x1="10" y1="11" x2="10" y2="16"/>
29
+ <line x1="14" y1="11" x2="14" y2="16"/>
30
+ </svg>`,
31
+ glitch: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
32
+ <path d="M19 6v14H5V6" transform="translate(1,-1)" opacity="0.5"/>
33
+ <path d="M3 6h18"/>
34
+ <path d="M8 6V4h8v2"/>
35
+ <path d="M19 6v14H5V6"/>
36
+ <line x1="10" y1="11" x2="10" y2="16"/>
37
+ <line x1="14" y1="11" x2="14" y2="16"/>
38
+ </svg>`,
39
+ },
40
+ };
41
+
42
+ export default deleteIcon;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Download Icon
3
+ * @category actions
4
+ */
5
+ import type { IconDefinition } from '../../types';
6
+
7
+ export const download: IconDefinition = {
8
+ name: 'download',
9
+ category: 'actions',
10
+ description: 'Download file or data',
11
+ tags: ['download', 'save', 'export', 'arrow-down', 'fetch'],
12
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
13
+ <path d="M12 3v12m0 0l-4-4m4 4l4-4"/>
14
+ <path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
15
+ <line x1="7" y1="21" x2="17" y2="21"/>
16
+ </svg>`,
17
+ variants: {
18
+ solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
19
+ <path d="M12 2a1 1 0 0 1 1 1v9.59l2.29-2.3a1 1 0 1 1 1.42 1.42l-4 4a1 1 0 0 1-1.42 0l-4-4a1 1 0 1 1 1.42-1.42L11 12.59V3a1 1 0 0 1 1-1zM3 16a1 1 0 0 1 1 1v2a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-2a1 1 0 0 1 2 0v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-2a1 1 0 0 1 1-1z"/>
20
+ </svg>`,
21
+ duotone: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
22
+ <path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2" fill="currentColor" opacity="0.3"/>
23
+ <path d="M12 3v12m0 0l-4-4m4 4l4-4"/>
24
+ <path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
25
+ <line x1="7" y1="21" x2="17" y2="21"/>
26
+ </svg>`,
27
+ glitch: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
28
+ <path d="M12 3v12m0 0l-4-4m4 4l4-4" transform="translate(1,-1)" opacity="0.5"/>
29
+ <path d="M12 3v12m0 0l-4-4m4 4l4-4"/>
30
+ <path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
31
+ <line x1="7" y1="21" x2="17" y2="21"/>
32
+ </svg>`,
33
+ },
34
+ };
35
+
36
+ export default download;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Drag Icon
3
+ * @category actions
4
+ */
5
+ import type { IconDefinition } from '../../types';
6
+
7
+ export const drag: IconDefinition = {
8
+ name: 'drag',
9
+ category: 'actions',
10
+ description: 'Drag handle for reordering',
11
+ tags: ['drag', 'handle', 'grip', 'move', 'reorder'],
12
+ svg: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
13
+ <circle cx="9" cy="6" r="1"/>
14
+ <circle cx="15" cy="6" r="1"/>
15
+ <circle cx="9" cy="12" r="1"/>
16
+ <circle cx="15" cy="12" r="1"/>
17
+ <circle cx="9" cy="18" r="1"/>
18
+ <circle cx="15" cy="18" r="1"/>
19
+ </svg>`,
20
+ variants: {
21
+ solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
22
+ <circle cx="9" cy="6" r="1.5"/>
23
+ <circle cx="15" cy="6" r="1.5"/>
24
+ <circle cx="9" cy="12" r="1.5"/>
25
+ <circle cx="15" cy="12" r="1.5"/>
26
+ <circle cx="9" cy="18" r="1.5"/>
27
+ <circle cx="15" cy="18" r="1.5"/>
28
+ </svg>`,
29
+ duotone: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
30
+ <circle cx="9" cy="6" r="1" fill="currentColor" opacity="0.3"/>
31
+ <circle cx="15" cy="6" r="1" fill="currentColor" opacity="0.3"/>
32
+ <circle cx="9" cy="12" r="1" fill="currentColor" opacity="0.3"/>
33
+ <circle cx="15" cy="12" r="1" fill="currentColor" opacity="0.3"/>
34
+ <circle cx="9" cy="18" r="1" fill="currentColor" opacity="0.3"/>
35
+ <circle cx="15" cy="18" r="1" fill="currentColor" opacity="0.3"/>
36
+ <circle cx="9" cy="6" r="1"/>
37
+ <circle cx="15" cy="6" r="1"/>
38
+ <circle cx="9" cy="12" r="1"/>
39
+ <circle cx="15" cy="12" r="1"/>
40
+ <circle cx="9" cy="18" r="1"/>
41
+ <circle cx="15" cy="18" r="1"/>
42
+ </svg>`,
43
+ glitch: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
44
+ <circle cx="9" cy="6" r="1" transform="translate(1,-1)" opacity="0.5"/>
45
+ <circle cx="15" cy="6" r="1" transform="translate(1,-1)" opacity="0.5"/>
46
+ <circle cx="9" cy="12" r="1" transform="translate(1,-1)" opacity="0.5"/>
47
+ <circle cx="15" cy="12" r="1" transform="translate(1,-1)" opacity="0.5"/>
48
+ <circle cx="9" cy="18" r="1" transform="translate(1,-1)" opacity="0.5"/>
49
+ <circle cx="15" cy="18" r="1" transform="translate(1,-1)" opacity="0.5"/>
50
+ <circle cx="9" cy="6" r="1"/>
51
+ <circle cx="15" cy="6" r="1"/>
52
+ <circle cx="9" cy="12" r="1"/>
53
+ <circle cx="15" cy="12" r="1"/>
54
+ <circle cx="9" cy="18" r="1"/>
55
+ <circle cx="15" cy="18" r="1"/>
56
+ </svg>`,
57
+ },
58
+ };
59
+
60
+ export default drag;