@leafygreen-ui/icon 11.7.0 → 11.10.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 (682) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +53 -5
  3. package/dist/ActivityFeed.js +1 -1
  4. package/dist/ActivityFeed.js.map +1 -1
  5. package/dist/AddFile.js +1 -1
  6. package/dist/AddFile.js.map +1 -1
  7. package/dist/Apps.js +1 -1
  8. package/dist/Apps.js.map +1 -1
  9. package/dist/Array.js +1 -1
  10. package/dist/Array.js.map +1 -1
  11. package/dist/ArrowDown.js +1 -1
  12. package/dist/ArrowDown.js.map +1 -1
  13. package/dist/ArrowLeft.js +1 -1
  14. package/dist/ArrowLeft.js.map +1 -1
  15. package/dist/ArrowRight.js +1 -1
  16. package/dist/ArrowRight.js.map +1 -1
  17. package/dist/ArrowUp.js +1 -1
  18. package/dist/ArrowUp.js.map +1 -1
  19. package/dist/Beaker.js +1 -1
  20. package/dist/Beaker.js.map +1 -1
  21. package/dist/Bell.js +1 -1
  22. package/dist/Bell.js.map +1 -1
  23. package/dist/Building.js +1 -1
  24. package/dist/Building.js.map +1 -1
  25. package/dist/Bulb.js +1 -1
  26. package/dist/Bulb.js.map +1 -1
  27. package/dist/Calendar.js +1 -1
  28. package/dist/Calendar.js.map +1 -1
  29. package/dist/CaretDown.js +1 -1
  30. package/dist/CaretDown.js.map +1 -1
  31. package/dist/CaretLeft.js +1 -1
  32. package/dist/CaretLeft.js.map +1 -1
  33. package/dist/CaretRight.js +1 -1
  34. package/dist/CaretRight.js.map +1 -1
  35. package/dist/CaretUp.js +1 -1
  36. package/dist/CaretUp.js.map +1 -1
  37. package/dist/Charts.js +1 -1
  38. package/dist/Charts.js.map +1 -1
  39. package/dist/Checkmark.js +1 -1
  40. package/dist/Checkmark.js.map +1 -1
  41. package/dist/CheckmarkWithCircle.js +1 -1
  42. package/dist/CheckmarkWithCircle.js.map +1 -1
  43. package/dist/ChevronDown.js +1 -1
  44. package/dist/ChevronDown.js.map +1 -1
  45. package/dist/ChevronLeft.js +1 -1
  46. package/dist/ChevronLeft.js.map +1 -1
  47. package/dist/ChevronRight.js +1 -1
  48. package/dist/ChevronRight.js.map +1 -1
  49. package/dist/ChevronUp.js +1 -1
  50. package/dist/ChevronUp.js.map +1 -1
  51. package/dist/Clock.js +1 -1
  52. package/dist/Clock.js.map +1 -1
  53. package/dist/ClockWithArrow.js +1 -1
  54. package/dist/ClockWithArrow.js.map +1 -1
  55. package/dist/Clone.js +1 -1
  56. package/dist/Clone.js.map +1 -1
  57. package/dist/Cloud.js +1 -1
  58. package/dist/Cloud.js.map +1 -1
  59. package/dist/Code.js +1 -1
  60. package/dist/Code.js.map +1 -1
  61. package/dist/Connect.js +1 -1
  62. package/dist/Connect.js.map +1 -1
  63. package/dist/Copy.js +1 -1
  64. package/dist/Copy.js.map +1 -1
  65. package/dist/CreditCard.js +1 -1
  66. package/dist/CreditCard.js.map +1 -1
  67. package/dist/CurlyBraces.js +1 -1
  68. package/dist/CurlyBraces.js.map +1 -1
  69. package/dist/Cursor.js +2 -0
  70. package/dist/Cursor.js.map +1 -0
  71. package/dist/Database.js +1 -1
  72. package/dist/Database.js.map +1 -1
  73. package/dist/Diagram.js +1 -1
  74. package/dist/Diagram.js.map +1 -1
  75. package/dist/Diagram2.js +2 -0
  76. package/dist/Diagram2.js.map +1 -0
  77. package/dist/Diagram3.js +2 -0
  78. package/dist/Diagram3.js.map +1 -0
  79. package/dist/Disconnect.js +1 -1
  80. package/dist/Disconnect.js.map +1 -1
  81. package/dist/Download.js +1 -1
  82. package/dist/Download.js.map +1 -1
  83. package/dist/Edit.js +1 -1
  84. package/dist/Edit.js.map +1 -1
  85. package/dist/Ellipsis.js +1 -1
  86. package/dist/Ellipsis.js.map +1 -1
  87. package/dist/Export.js +1 -1
  88. package/dist/Export.js.map +1 -1
  89. package/dist/Favorite.js +1 -1
  90. package/dist/Favorite.js.map +1 -1
  91. package/dist/File.js +1 -1
  92. package/dist/File.js.map +1 -1
  93. package/dist/Filter.js +1 -1
  94. package/dist/Filter.js.map +1 -1
  95. package/dist/Folder.js +1 -1
  96. package/dist/Folder.js.map +1 -1
  97. package/dist/FullScreenEnter.js +1 -1
  98. package/dist/FullScreenEnter.js.map +1 -1
  99. package/dist/FullScreenExit.js +1 -1
  100. package/dist/FullScreenExit.js.map +1 -1
  101. package/dist/GlobeAmericas.js +1 -1
  102. package/dist/GlobeAmericas.js.map +1 -1
  103. package/dist/GovernmentBuilding.js +1 -1
  104. package/dist/GovernmentBuilding.js.map +1 -1
  105. package/dist/Home.js +1 -1
  106. package/dist/Home.js.map +1 -1
  107. package/dist/ImportantWithCircle.js +1 -1
  108. package/dist/ImportantWithCircle.js.map +1 -1
  109. package/dist/InfoWithCircle.js +1 -1
  110. package/dist/InfoWithCircle.js.map +1 -1
  111. package/dist/InviteUser.js +1 -1
  112. package/dist/InviteUser.js.map +1 -1
  113. package/dist/Key.js +1 -1
  114. package/dist/Key.js.map +1 -1
  115. package/dist/Laptop.js +1 -1
  116. package/dist/Laptop.js.map +1 -1
  117. package/dist/Link.js +2 -0
  118. package/dist/Link.js.map +1 -0
  119. package/dist/Lock.js +1 -1
  120. package/dist/Lock.js.map +1 -1
  121. package/dist/MagnifyingGlass.js +1 -1
  122. package/dist/MagnifyingGlass.js.map +1 -1
  123. package/dist/Megaphone.js +1 -1
  124. package/dist/Megaphone.js.map +1 -1
  125. package/dist/Menu.js +1 -1
  126. package/dist/Menu.js.map +1 -1
  127. package/dist/Minus.js +1 -1
  128. package/dist/Minus.js.map +1 -1
  129. package/dist/NotAllowed.js +1 -1
  130. package/dist/NotAllowed.js.map +1 -1
  131. package/dist/Note.js +1 -1
  132. package/dist/Note.js.map +1 -1
  133. package/dist/OpenNewTab.js +1 -1
  134. package/dist/OpenNewTab.js.map +1 -1
  135. package/dist/Pause.js +1 -1
  136. package/dist/Pause.js.map +1 -1
  137. package/dist/Person.js +1 -1
  138. package/dist/Person.js.map +1 -1
  139. package/dist/PersonGroup.js +1 -1
  140. package/dist/PersonGroup.js.map +1 -1
  141. package/dist/PersonWithLock.js +1 -1
  142. package/dist/PersonWithLock.js.map +1 -1
  143. package/dist/Play.js +1 -1
  144. package/dist/Play.js.map +1 -1
  145. package/dist/Plus.js +1 -1
  146. package/dist/Plus.js.map +1 -1
  147. package/dist/PlusWithCircle.js +1 -1
  148. package/dist/PlusWithCircle.js.map +1 -1
  149. package/dist/QuestionMarkWithCircle.js +1 -1
  150. package/dist/QuestionMarkWithCircle.js.map +1 -1
  151. package/dist/Redo.js +1 -1
  152. package/dist/Redo.js.map +1 -1
  153. package/dist/Refresh.js +1 -1
  154. package/dist/Refresh.js.map +1 -1
  155. package/dist/ReplicaSet.js +1 -1
  156. package/dist/ReplicaSet.js.map +1 -1
  157. package/dist/Save.js +1 -1
  158. package/dist/Save.js.map +1 -1
  159. package/dist/Serverless.js +1 -1
  160. package/dist/Serverless.js.map +1 -1
  161. package/dist/Settings.js +1 -1
  162. package/dist/Settings.js.map +1 -1
  163. package/dist/ShardedCluster.js +1 -1
  164. package/dist/ShardedCluster.js.map +1 -1
  165. package/dist/Shell.js +1 -1
  166. package/dist/Shell.js.map +1 -1
  167. package/dist/SortAscending.js +1 -1
  168. package/dist/SortAscending.js.map +1 -1
  169. package/dist/SortDescending.js +1 -1
  170. package/dist/SortDescending.js.map +1 -1
  171. package/dist/SplitHorizontal.js +2 -0
  172. package/dist/SplitHorizontal.js.map +1 -0
  173. package/dist/SplitVertical.js +2 -0
  174. package/dist/SplitVertical.js.map +1 -0
  175. package/dist/Stitch.js +1 -1
  176. package/dist/Stitch.js.map +1 -1
  177. package/dist/Support.js +1 -1
  178. package/dist/Support.js.map +1 -1
  179. package/dist/Sweep.js +2 -0
  180. package/dist/Sweep.js.map +1 -0
  181. package/dist/Table.js +1 -1
  182. package/dist/Table.js.map +1 -1
  183. package/dist/TimeSeries.js +1 -1
  184. package/dist/TimeSeries.js.map +1 -1
  185. package/dist/Trash.js +1 -1
  186. package/dist/Trash.js.map +1 -1
  187. package/dist/Undo.js +1 -1
  188. package/dist/Undo.js.map +1 -1
  189. package/dist/University.js +1 -1
  190. package/dist/University.js.map +1 -1
  191. package/dist/Unlock.js +1 -1
  192. package/dist/Unlock.js.map +1 -1
  193. package/dist/Unsorted.js +1 -1
  194. package/dist/Unsorted.js.map +1 -1
  195. package/dist/UpDownCarets.js +1 -1
  196. package/dist/UpDownCarets.js.map +1 -1
  197. package/dist/Upload.js +1 -1
  198. package/dist/Upload.js.map +1 -1
  199. package/dist/VerticalEllipsis.js +1 -1
  200. package/dist/VerticalEllipsis.js.map +1 -1
  201. package/dist/Visibility.js +1 -1
  202. package/dist/Visibility.js.map +1 -1
  203. package/dist/VisibilityOff.js +1 -1
  204. package/dist/VisibilityOff.js.map +1 -1
  205. package/dist/Warning.js +1 -1
  206. package/dist/Warning.js.map +1 -1
  207. package/dist/X.js +1 -1
  208. package/dist/X.js.map +1 -1
  209. package/dist/XWithCircle.js +1 -1
  210. package/dist/XWithCircle.js.map +1 -1
  211. package/dist/createGlyphComponent.d.ts +7 -0
  212. package/dist/createGlyphComponent.d.ts.map +1 -1
  213. package/dist/createIconComponent.d.ts +6 -0
  214. package/dist/createIconComponent.d.ts.map +1 -1
  215. package/dist/esm/ActivityFeed.js +1 -1
  216. package/dist/esm/ActivityFeed.js.map +1 -1
  217. package/dist/esm/AddFile.js +1 -1
  218. package/dist/esm/AddFile.js.map +1 -1
  219. package/dist/esm/Apps.js +1 -1
  220. package/dist/esm/Apps.js.map +1 -1
  221. package/dist/esm/Array.js +1 -1
  222. package/dist/esm/Array.js.map +1 -1
  223. package/dist/esm/ArrowDown.js +1 -1
  224. package/dist/esm/ArrowDown.js.map +1 -1
  225. package/dist/esm/ArrowLeft.js +1 -1
  226. package/dist/esm/ArrowLeft.js.map +1 -1
  227. package/dist/esm/ArrowRight.js +1 -1
  228. package/dist/esm/ArrowRight.js.map +1 -1
  229. package/dist/esm/ArrowUp.js +1 -1
  230. package/dist/esm/ArrowUp.js.map +1 -1
  231. package/dist/esm/Beaker.js +1 -1
  232. package/dist/esm/Beaker.js.map +1 -1
  233. package/dist/esm/Bell.js +1 -1
  234. package/dist/esm/Bell.js.map +1 -1
  235. package/dist/esm/Building.js +1 -1
  236. package/dist/esm/Building.js.map +1 -1
  237. package/dist/esm/Bulb.js +1 -1
  238. package/dist/esm/Bulb.js.map +1 -1
  239. package/dist/esm/Calendar.js +1 -1
  240. package/dist/esm/Calendar.js.map +1 -1
  241. package/dist/esm/CaretDown.js +1 -1
  242. package/dist/esm/CaretDown.js.map +1 -1
  243. package/dist/esm/CaretLeft.js +1 -1
  244. package/dist/esm/CaretLeft.js.map +1 -1
  245. package/dist/esm/CaretRight.js +1 -1
  246. package/dist/esm/CaretRight.js.map +1 -1
  247. package/dist/esm/CaretUp.js +1 -1
  248. package/dist/esm/CaretUp.js.map +1 -1
  249. package/dist/esm/Charts.js +1 -1
  250. package/dist/esm/Charts.js.map +1 -1
  251. package/dist/esm/Checkmark.js +1 -1
  252. package/dist/esm/Checkmark.js.map +1 -1
  253. package/dist/esm/CheckmarkWithCircle.js +1 -1
  254. package/dist/esm/CheckmarkWithCircle.js.map +1 -1
  255. package/dist/esm/ChevronDown.js +1 -1
  256. package/dist/esm/ChevronDown.js.map +1 -1
  257. package/dist/esm/ChevronLeft.js +1 -1
  258. package/dist/esm/ChevronLeft.js.map +1 -1
  259. package/dist/esm/ChevronRight.js +1 -1
  260. package/dist/esm/ChevronRight.js.map +1 -1
  261. package/dist/esm/ChevronUp.js +1 -1
  262. package/dist/esm/ChevronUp.js.map +1 -1
  263. package/dist/esm/Clock.js +1 -1
  264. package/dist/esm/Clock.js.map +1 -1
  265. package/dist/esm/ClockWithArrow.js +1 -1
  266. package/dist/esm/ClockWithArrow.js.map +1 -1
  267. package/dist/esm/Clone.js +1 -1
  268. package/dist/esm/Clone.js.map +1 -1
  269. package/dist/esm/Cloud.js +1 -1
  270. package/dist/esm/Cloud.js.map +1 -1
  271. package/dist/esm/Code.js +1 -1
  272. package/dist/esm/Code.js.map +1 -1
  273. package/dist/esm/Connect.js +1 -1
  274. package/dist/esm/Connect.js.map +1 -1
  275. package/dist/esm/Copy.js +1 -1
  276. package/dist/esm/Copy.js.map +1 -1
  277. package/dist/esm/CreditCard.js +1 -1
  278. package/dist/esm/CreditCard.js.map +1 -1
  279. package/dist/esm/CurlyBraces.js +1 -1
  280. package/dist/esm/CurlyBraces.js.map +1 -1
  281. package/dist/esm/Cursor.js +2 -0
  282. package/dist/esm/Cursor.js.map +1 -0
  283. package/dist/esm/Database.js +1 -1
  284. package/dist/esm/Database.js.map +1 -1
  285. package/dist/esm/Diagram.js +1 -1
  286. package/dist/esm/Diagram.js.map +1 -1
  287. package/dist/esm/Diagram2.js +2 -0
  288. package/dist/esm/Diagram2.js.map +1 -0
  289. package/dist/esm/Diagram3.js +2 -0
  290. package/dist/esm/Diagram3.js.map +1 -0
  291. package/dist/esm/Disconnect.js +1 -1
  292. package/dist/esm/Disconnect.js.map +1 -1
  293. package/dist/esm/Download.js +1 -1
  294. package/dist/esm/Download.js.map +1 -1
  295. package/dist/esm/Edit.js +1 -1
  296. package/dist/esm/Edit.js.map +1 -1
  297. package/dist/esm/Ellipsis.js +1 -1
  298. package/dist/esm/Ellipsis.js.map +1 -1
  299. package/dist/esm/Export.js +1 -1
  300. package/dist/esm/Export.js.map +1 -1
  301. package/dist/esm/Favorite.js +1 -1
  302. package/dist/esm/Favorite.js.map +1 -1
  303. package/dist/esm/File.js +1 -1
  304. package/dist/esm/File.js.map +1 -1
  305. package/dist/esm/Filter.js +1 -1
  306. package/dist/esm/Filter.js.map +1 -1
  307. package/dist/esm/Folder.js +1 -1
  308. package/dist/esm/Folder.js.map +1 -1
  309. package/dist/esm/FullScreenEnter.js +1 -1
  310. package/dist/esm/FullScreenEnter.js.map +1 -1
  311. package/dist/esm/FullScreenExit.js +1 -1
  312. package/dist/esm/FullScreenExit.js.map +1 -1
  313. package/dist/esm/GlobeAmericas.js +1 -1
  314. package/dist/esm/GlobeAmericas.js.map +1 -1
  315. package/dist/esm/GovernmentBuilding.js +1 -1
  316. package/dist/esm/GovernmentBuilding.js.map +1 -1
  317. package/dist/esm/Home.js +1 -1
  318. package/dist/esm/Home.js.map +1 -1
  319. package/dist/esm/ImportantWithCircle.js +1 -1
  320. package/dist/esm/ImportantWithCircle.js.map +1 -1
  321. package/dist/esm/InfoWithCircle.js +1 -1
  322. package/dist/esm/InfoWithCircle.js.map +1 -1
  323. package/dist/esm/InviteUser.js +1 -1
  324. package/dist/esm/InviteUser.js.map +1 -1
  325. package/dist/esm/Key.js +1 -1
  326. package/dist/esm/Key.js.map +1 -1
  327. package/dist/esm/Laptop.js +1 -1
  328. package/dist/esm/Laptop.js.map +1 -1
  329. package/dist/esm/Link.js +2 -0
  330. package/dist/esm/Link.js.map +1 -0
  331. package/dist/esm/Lock.js +1 -1
  332. package/dist/esm/Lock.js.map +1 -1
  333. package/dist/esm/MagnifyingGlass.js +1 -1
  334. package/dist/esm/MagnifyingGlass.js.map +1 -1
  335. package/dist/esm/Megaphone.js +1 -1
  336. package/dist/esm/Megaphone.js.map +1 -1
  337. package/dist/esm/Menu.js +1 -1
  338. package/dist/esm/Menu.js.map +1 -1
  339. package/dist/esm/Minus.js +1 -1
  340. package/dist/esm/Minus.js.map +1 -1
  341. package/dist/esm/NotAllowed.js +1 -1
  342. package/dist/esm/NotAllowed.js.map +1 -1
  343. package/dist/esm/Note.js +1 -1
  344. package/dist/esm/Note.js.map +1 -1
  345. package/dist/esm/OpenNewTab.js +1 -1
  346. package/dist/esm/OpenNewTab.js.map +1 -1
  347. package/dist/esm/Pause.js +1 -1
  348. package/dist/esm/Pause.js.map +1 -1
  349. package/dist/esm/Person.js +1 -1
  350. package/dist/esm/Person.js.map +1 -1
  351. package/dist/esm/PersonGroup.js +1 -1
  352. package/dist/esm/PersonGroup.js.map +1 -1
  353. package/dist/esm/PersonWithLock.js +1 -1
  354. package/dist/esm/PersonWithLock.js.map +1 -1
  355. package/dist/esm/Play.js +1 -1
  356. package/dist/esm/Play.js.map +1 -1
  357. package/dist/esm/Plus.js +1 -1
  358. package/dist/esm/Plus.js.map +1 -1
  359. package/dist/esm/PlusWithCircle.js +1 -1
  360. package/dist/esm/PlusWithCircle.js.map +1 -1
  361. package/dist/esm/QuestionMarkWithCircle.js +1 -1
  362. package/dist/esm/QuestionMarkWithCircle.js.map +1 -1
  363. package/dist/esm/Redo.js +1 -1
  364. package/dist/esm/Redo.js.map +1 -1
  365. package/dist/esm/Refresh.js +1 -1
  366. package/dist/esm/Refresh.js.map +1 -1
  367. package/dist/esm/ReplicaSet.js +1 -1
  368. package/dist/esm/ReplicaSet.js.map +1 -1
  369. package/dist/esm/Save.js +1 -1
  370. package/dist/esm/Save.js.map +1 -1
  371. package/dist/esm/Serverless.js +1 -1
  372. package/dist/esm/Serverless.js.map +1 -1
  373. package/dist/esm/Settings.js +1 -1
  374. package/dist/esm/Settings.js.map +1 -1
  375. package/dist/esm/ShardedCluster.js +1 -1
  376. package/dist/esm/ShardedCluster.js.map +1 -1
  377. package/dist/esm/Shell.js +1 -1
  378. package/dist/esm/Shell.js.map +1 -1
  379. package/dist/esm/SortAscending.js +1 -1
  380. package/dist/esm/SortAscending.js.map +1 -1
  381. package/dist/esm/SortDescending.js +1 -1
  382. package/dist/esm/SortDescending.js.map +1 -1
  383. package/dist/esm/SplitHorizontal.js +2 -0
  384. package/dist/esm/SplitHorizontal.js.map +1 -0
  385. package/dist/esm/SplitVertical.js +2 -0
  386. package/dist/esm/SplitVertical.js.map +1 -0
  387. package/dist/esm/Stitch.js +1 -1
  388. package/dist/esm/Stitch.js.map +1 -1
  389. package/dist/esm/Support.js +1 -1
  390. package/dist/esm/Support.js.map +1 -1
  391. package/dist/esm/Sweep.js +2 -0
  392. package/dist/esm/Sweep.js.map +1 -0
  393. package/dist/esm/Table.js +1 -1
  394. package/dist/esm/Table.js.map +1 -1
  395. package/dist/esm/TimeSeries.js +1 -1
  396. package/dist/esm/TimeSeries.js.map +1 -1
  397. package/dist/esm/Trash.js +1 -1
  398. package/dist/esm/Trash.js.map +1 -1
  399. package/dist/esm/Undo.js +1 -1
  400. package/dist/esm/Undo.js.map +1 -1
  401. package/dist/esm/University.js +1 -1
  402. package/dist/esm/University.js.map +1 -1
  403. package/dist/esm/Unlock.js +1 -1
  404. package/dist/esm/Unlock.js.map +1 -1
  405. package/dist/esm/Unsorted.js +1 -1
  406. package/dist/esm/Unsorted.js.map +1 -1
  407. package/dist/esm/UpDownCarets.js +1 -1
  408. package/dist/esm/UpDownCarets.js.map +1 -1
  409. package/dist/esm/Upload.js +1 -1
  410. package/dist/esm/Upload.js.map +1 -1
  411. package/dist/esm/VerticalEllipsis.js +1 -1
  412. package/dist/esm/VerticalEllipsis.js.map +1 -1
  413. package/dist/esm/Visibility.js +1 -1
  414. package/dist/esm/Visibility.js.map +1 -1
  415. package/dist/esm/VisibilityOff.js +1 -1
  416. package/dist/esm/VisibilityOff.js.map +1 -1
  417. package/dist/esm/Warning.js +1 -1
  418. package/dist/esm/Warning.js.map +1 -1
  419. package/dist/esm/X.js +1 -1
  420. package/dist/esm/X.js.map +1 -1
  421. package/dist/esm/XWithCircle.js +1 -1
  422. package/dist/esm/XWithCircle.js.map +1 -1
  423. package/dist/esm/index.js +1 -1
  424. package/dist/esm/index.js.map +1 -1
  425. package/dist/generated/ActivityFeed.d.ts +2 -8
  426. package/dist/generated/ActivityFeed.d.ts.map +1 -1
  427. package/dist/generated/AddFile.d.ts +2 -8
  428. package/dist/generated/AddFile.d.ts.map +1 -1
  429. package/dist/generated/Apps.d.ts +2 -8
  430. package/dist/generated/Apps.d.ts.map +1 -1
  431. package/dist/generated/Array.d.ts +2 -8
  432. package/dist/generated/Array.d.ts.map +1 -1
  433. package/dist/generated/ArrowDown.d.ts +2 -8
  434. package/dist/generated/ArrowDown.d.ts.map +1 -1
  435. package/dist/generated/ArrowLeft.d.ts +2 -8
  436. package/dist/generated/ArrowLeft.d.ts.map +1 -1
  437. package/dist/generated/ArrowRight.d.ts +2 -8
  438. package/dist/generated/ArrowRight.d.ts.map +1 -1
  439. package/dist/generated/ArrowUp.d.ts +2 -8
  440. package/dist/generated/ArrowUp.d.ts.map +1 -1
  441. package/dist/generated/Beaker.d.ts +2 -8
  442. package/dist/generated/Beaker.d.ts.map +1 -1
  443. package/dist/generated/Bell.d.ts +2 -8
  444. package/dist/generated/Bell.d.ts.map +1 -1
  445. package/dist/generated/Building.d.ts +2 -8
  446. package/dist/generated/Building.d.ts.map +1 -1
  447. package/dist/generated/Bulb.d.ts +2 -8
  448. package/dist/generated/Bulb.d.ts.map +1 -1
  449. package/dist/generated/Calendar.d.ts +2 -8
  450. package/dist/generated/Calendar.d.ts.map +1 -1
  451. package/dist/generated/CaretDown.d.ts +2 -8
  452. package/dist/generated/CaretDown.d.ts.map +1 -1
  453. package/dist/generated/CaretLeft.d.ts +2 -8
  454. package/dist/generated/CaretLeft.d.ts.map +1 -1
  455. package/dist/generated/CaretRight.d.ts +2 -8
  456. package/dist/generated/CaretRight.d.ts.map +1 -1
  457. package/dist/generated/CaretUp.d.ts +2 -8
  458. package/dist/generated/CaretUp.d.ts.map +1 -1
  459. package/dist/generated/Charts.d.ts +2 -8
  460. package/dist/generated/Charts.d.ts.map +1 -1
  461. package/dist/generated/Checkmark.d.ts +2 -8
  462. package/dist/generated/Checkmark.d.ts.map +1 -1
  463. package/dist/generated/CheckmarkWithCircle.d.ts +2 -8
  464. package/dist/generated/CheckmarkWithCircle.d.ts.map +1 -1
  465. package/dist/generated/ChevronDown.d.ts +2 -8
  466. package/dist/generated/ChevronDown.d.ts.map +1 -1
  467. package/dist/generated/ChevronLeft.d.ts +2 -8
  468. package/dist/generated/ChevronLeft.d.ts.map +1 -1
  469. package/dist/generated/ChevronRight.d.ts +2 -8
  470. package/dist/generated/ChevronRight.d.ts.map +1 -1
  471. package/dist/generated/ChevronUp.d.ts +2 -8
  472. package/dist/generated/ChevronUp.d.ts.map +1 -1
  473. package/dist/generated/Clock.d.ts +2 -8
  474. package/dist/generated/Clock.d.ts.map +1 -1
  475. package/dist/generated/ClockWithArrow.d.ts +2 -8
  476. package/dist/generated/ClockWithArrow.d.ts.map +1 -1
  477. package/dist/generated/Clone.d.ts +2 -8
  478. package/dist/generated/Clone.d.ts.map +1 -1
  479. package/dist/generated/Cloud.d.ts +2 -8
  480. package/dist/generated/Cloud.d.ts.map +1 -1
  481. package/dist/generated/Code.d.ts +2 -8
  482. package/dist/generated/Code.d.ts.map +1 -1
  483. package/dist/generated/Connect.d.ts +2 -8
  484. package/dist/generated/Connect.d.ts.map +1 -1
  485. package/dist/generated/Copy.d.ts +2 -8
  486. package/dist/generated/Copy.d.ts.map +1 -1
  487. package/dist/generated/CreditCard.d.ts +2 -8
  488. package/dist/generated/CreditCard.d.ts.map +1 -1
  489. package/dist/generated/CurlyBraces.d.ts +2 -8
  490. package/dist/generated/CurlyBraces.d.ts.map +1 -1
  491. package/dist/generated/Cursor.d.ts +17 -0
  492. package/dist/generated/Cursor.d.ts.map +1 -0
  493. package/dist/generated/Database.d.ts +2 -8
  494. package/dist/generated/Database.d.ts.map +1 -1
  495. package/dist/generated/Diagram.d.ts +2 -8
  496. package/dist/generated/Diagram.d.ts.map +1 -1
  497. package/dist/generated/Diagram2.d.ts +17 -0
  498. package/dist/generated/Diagram2.d.ts.map +1 -0
  499. package/dist/generated/Diagram3.d.ts +17 -0
  500. package/dist/generated/Diagram3.d.ts.map +1 -0
  501. package/dist/generated/Disconnect.d.ts +2 -8
  502. package/dist/generated/Disconnect.d.ts.map +1 -1
  503. package/dist/generated/Download.d.ts +2 -8
  504. package/dist/generated/Download.d.ts.map +1 -1
  505. package/dist/generated/Edit.d.ts +2 -8
  506. package/dist/generated/Edit.d.ts.map +1 -1
  507. package/dist/generated/Ellipsis.d.ts +2 -8
  508. package/dist/generated/Ellipsis.d.ts.map +1 -1
  509. package/dist/generated/Export.d.ts +2 -8
  510. package/dist/generated/Export.d.ts.map +1 -1
  511. package/dist/generated/Favorite.d.ts +2 -8
  512. package/dist/generated/Favorite.d.ts.map +1 -1
  513. package/dist/generated/File.d.ts +2 -8
  514. package/dist/generated/File.d.ts.map +1 -1
  515. package/dist/generated/Filter.d.ts +2 -8
  516. package/dist/generated/Filter.d.ts.map +1 -1
  517. package/dist/generated/Folder.d.ts +2 -8
  518. package/dist/generated/Folder.d.ts.map +1 -1
  519. package/dist/generated/FullScreenEnter.d.ts +2 -8
  520. package/dist/generated/FullScreenEnter.d.ts.map +1 -1
  521. package/dist/generated/FullScreenExit.d.ts +2 -8
  522. package/dist/generated/FullScreenExit.d.ts.map +1 -1
  523. package/dist/generated/GlobeAmericas.d.ts +2 -8
  524. package/dist/generated/GlobeAmericas.d.ts.map +1 -1
  525. package/dist/generated/GovernmentBuilding.d.ts +2 -8
  526. package/dist/generated/GovernmentBuilding.d.ts.map +1 -1
  527. package/dist/generated/Home.d.ts +2 -8
  528. package/dist/generated/Home.d.ts.map +1 -1
  529. package/dist/generated/ImportantWithCircle.d.ts +2 -8
  530. package/dist/generated/ImportantWithCircle.d.ts.map +1 -1
  531. package/dist/generated/InfoWithCircle.d.ts +2 -8
  532. package/dist/generated/InfoWithCircle.d.ts.map +1 -1
  533. package/dist/generated/InviteUser.d.ts +2 -8
  534. package/dist/generated/InviteUser.d.ts.map +1 -1
  535. package/dist/generated/Key.d.ts +2 -8
  536. package/dist/generated/Key.d.ts.map +1 -1
  537. package/dist/generated/Laptop.d.ts +2 -8
  538. package/dist/generated/Laptop.d.ts.map +1 -1
  539. package/dist/generated/Link.d.ts +17 -0
  540. package/dist/generated/Link.d.ts.map +1 -0
  541. package/dist/generated/Lock.d.ts +2 -8
  542. package/dist/generated/Lock.d.ts.map +1 -1
  543. package/dist/generated/MagnifyingGlass.d.ts +2 -8
  544. package/dist/generated/MagnifyingGlass.d.ts.map +1 -1
  545. package/dist/generated/Megaphone.d.ts +2 -8
  546. package/dist/generated/Megaphone.d.ts.map +1 -1
  547. package/dist/generated/Menu.d.ts +2 -8
  548. package/dist/generated/Menu.d.ts.map +1 -1
  549. package/dist/generated/Minus.d.ts +2 -8
  550. package/dist/generated/Minus.d.ts.map +1 -1
  551. package/dist/generated/NotAllowed.d.ts +2 -8
  552. package/dist/generated/NotAllowed.d.ts.map +1 -1
  553. package/dist/generated/Note.d.ts +2 -8
  554. package/dist/generated/Note.d.ts.map +1 -1
  555. package/dist/generated/OpenNewTab.d.ts +2 -8
  556. package/dist/generated/OpenNewTab.d.ts.map +1 -1
  557. package/dist/generated/Pause.d.ts +2 -8
  558. package/dist/generated/Pause.d.ts.map +1 -1
  559. package/dist/generated/Person.d.ts +2 -8
  560. package/dist/generated/Person.d.ts.map +1 -1
  561. package/dist/generated/PersonGroup.d.ts +2 -8
  562. package/dist/generated/PersonGroup.d.ts.map +1 -1
  563. package/dist/generated/PersonWithLock.d.ts +2 -8
  564. package/dist/generated/PersonWithLock.d.ts.map +1 -1
  565. package/dist/generated/Play.d.ts +2 -8
  566. package/dist/generated/Play.d.ts.map +1 -1
  567. package/dist/generated/Plus.d.ts +2 -8
  568. package/dist/generated/Plus.d.ts.map +1 -1
  569. package/dist/generated/PlusWithCircle.d.ts +2 -8
  570. package/dist/generated/PlusWithCircle.d.ts.map +1 -1
  571. package/dist/generated/QuestionMarkWithCircle.d.ts +2 -8
  572. package/dist/generated/QuestionMarkWithCircle.d.ts.map +1 -1
  573. package/dist/generated/Redo.d.ts +2 -8
  574. package/dist/generated/Redo.d.ts.map +1 -1
  575. package/dist/generated/Refresh.d.ts +2 -8
  576. package/dist/generated/Refresh.d.ts.map +1 -1
  577. package/dist/generated/ReplicaSet.d.ts +2 -8
  578. package/dist/generated/ReplicaSet.d.ts.map +1 -1
  579. package/dist/generated/Save.d.ts +2 -8
  580. package/dist/generated/Save.d.ts.map +1 -1
  581. package/dist/generated/Serverless.d.ts +2 -8
  582. package/dist/generated/Serverless.d.ts.map +1 -1
  583. package/dist/generated/Settings.d.ts +2 -8
  584. package/dist/generated/Settings.d.ts.map +1 -1
  585. package/dist/generated/ShardedCluster.d.ts +2 -8
  586. package/dist/generated/ShardedCluster.d.ts.map +1 -1
  587. package/dist/generated/Shell.d.ts +2 -8
  588. package/dist/generated/Shell.d.ts.map +1 -1
  589. package/dist/generated/SortAscending.d.ts +2 -8
  590. package/dist/generated/SortAscending.d.ts.map +1 -1
  591. package/dist/generated/SortDescending.d.ts +2 -8
  592. package/dist/generated/SortDescending.d.ts.map +1 -1
  593. package/dist/generated/SplitHorizontal.d.ts +17 -0
  594. package/dist/generated/SplitHorizontal.d.ts.map +1 -0
  595. package/dist/generated/SplitVertical.d.ts +17 -0
  596. package/dist/generated/SplitVertical.d.ts.map +1 -0
  597. package/dist/generated/Stitch.d.ts +2 -8
  598. package/dist/generated/Stitch.d.ts.map +1 -1
  599. package/dist/generated/Support.d.ts +2 -8
  600. package/dist/generated/Support.d.ts.map +1 -1
  601. package/dist/generated/Sweep.d.ts +17 -0
  602. package/dist/generated/Sweep.d.ts.map +1 -0
  603. package/dist/generated/Table.d.ts +2 -8
  604. package/dist/generated/Table.d.ts.map +1 -1
  605. package/dist/generated/TimeSeries.d.ts +2 -8
  606. package/dist/generated/TimeSeries.d.ts.map +1 -1
  607. package/dist/generated/Trash.d.ts +2 -8
  608. package/dist/generated/Trash.d.ts.map +1 -1
  609. package/dist/generated/Undo.d.ts +2 -8
  610. package/dist/generated/Undo.d.ts.map +1 -1
  611. package/dist/generated/University.d.ts +2 -8
  612. package/dist/generated/University.d.ts.map +1 -1
  613. package/dist/generated/Unlock.d.ts +2 -8
  614. package/dist/generated/Unlock.d.ts.map +1 -1
  615. package/dist/generated/Unsorted.d.ts +2 -8
  616. package/dist/generated/Unsorted.d.ts.map +1 -1
  617. package/dist/generated/UpDownCarets.d.ts +2 -8
  618. package/dist/generated/UpDownCarets.d.ts.map +1 -1
  619. package/dist/generated/Upload.d.ts +2 -8
  620. package/dist/generated/Upload.d.ts.map +1 -1
  621. package/dist/generated/VerticalEllipsis.d.ts +2 -8
  622. package/dist/generated/VerticalEllipsis.d.ts.map +1 -1
  623. package/dist/generated/Visibility.d.ts +2 -8
  624. package/dist/generated/Visibility.d.ts.map +1 -1
  625. package/dist/generated/VisibilityOff.d.ts +2 -8
  626. package/dist/generated/VisibilityOff.d.ts.map +1 -1
  627. package/dist/generated/Warning.d.ts +2 -8
  628. package/dist/generated/Warning.d.ts.map +1 -1
  629. package/dist/generated/X.d.ts +2 -8
  630. package/dist/generated/X.d.ts.map +1 -1
  631. package/dist/generated/XWithCircle.d.ts +2 -8
  632. package/dist/generated/XWithCircle.d.ts.map +1 -1
  633. package/dist/glyphs/index.d.ts +1 -2
  634. package/dist/glyphs/index.d.ts.map +1 -1
  635. package/dist/index.d.ts +4 -1
  636. package/dist/index.d.ts.map +1 -1
  637. package/dist/index.js +1 -1
  638. package/dist/index.js.map +1 -1
  639. package/dist/isComponentGlyph.d.ts +7 -2
  640. package/dist/isComponentGlyph.d.ts.map +1 -1
  641. package/dist/types/LGGlyph.d.ts +10 -0
  642. package/dist/types/LGGlyph.d.ts.map +1 -0
  643. package/dist/types/SVGR.d.ts +7 -0
  644. package/dist/types/SVGR.d.ts.map +1 -0
  645. package/dist/types/index.d.ts +3 -0
  646. package/dist/types/index.d.ts.map +1 -0
  647. package/package.json +12 -4
  648. package/scripts/build.ts +1 -1
  649. package/{src → scripts}/template.ts +4 -3
  650. package/src/Icon.spec.tsx +135 -32
  651. package/src/Icon.story.tsx +21 -19
  652. package/src/createGlyphComponent.tsx +10 -3
  653. package/src/createIconComponent.tsx +9 -2
  654. package/src/generated/Cursor.tsx +68 -0
  655. package/src/generated/Diagram2.tsx +66 -0
  656. package/src/generated/Diagram3.tsx +68 -0
  657. package/src/generated/Link.tsx +70 -0
  658. package/src/generated/SplitHorizontal.tsx +68 -0
  659. package/src/generated/SplitVertical.tsx +68 -0
  660. package/src/generated/Sweep.tsx +68 -0
  661. package/src/glyphs/Cursor.svg +3 -0
  662. package/src/glyphs/Diagram2.svg +3 -0
  663. package/src/glyphs/Diagram3.svg +3 -0
  664. package/src/glyphs/Link.svg +4 -0
  665. package/src/glyphs/SplitHorizontal.svg +3 -0
  666. package/src/glyphs/SplitVertical.svg +3 -0
  667. package/src/glyphs/Sweep.svg +3 -0
  668. package/src/glyphs/index.ts +14 -0
  669. package/src/index.ts +3 -1
  670. package/src/isComponentGlyph.ts +27 -6
  671. package/src/types/LGGlyph.ts +10 -0
  672. package/src/types/SVGR.ts +8 -0
  673. package/src/types/index.ts +2 -0
  674. package/src/{svg.d.ts → types/svg.d.ts} +0 -0
  675. package/{typings → src/types}/svgr.d.ts +0 -0
  676. package/tsconfig.json +1 -1
  677. package/tsconfig.tsbuildinfo +1 -4760
  678. package/dist/template.d.ts +0 -19
  679. package/dist/template.d.ts.map +0 -1
  680. package/dist/types.d.ts +0 -15
  681. package/dist/types.d.ts.map +0 -1
  682. package/src/types.ts +0 -17
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafygreen-ui/icon",
3
- "version": "11.7.0",
3
+ "version": "11.10.0",
4
4
  "description": "LeafyGreen UI Kit Icons",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -24,7 +24,15 @@
24
24
  "xml2json": "^0.11.2"
25
25
  },
26
26
  "dependencies": {
27
- "@leafygreen-ui/lib": "^9.0.1"
27
+ "@leafygreen-ui/lib": "^9.2.0"
28
28
  },
29
- "gitHead": "dd71a2d404218ccec2e657df9c0263dc1c15b9e0"
30
- }
29
+ "gitHead": "dd71a2d404218ccec2e657df9c0263dc1c15b9e0",
30
+ "homepage": "https://github.com/mongodb/leafygreen-ui/tree/main/packages/icon",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/mongodb/leafygreen-ui"
34
+ },
35
+ "bugs": {
36
+ "url": "https://jira.mongodb.org/projects/PD/summary"
37
+ }
38
+ }
package/scripts/build.ts CHANGED
@@ -8,7 +8,7 @@ const { CLIEngine } = require('eslint');
8
8
  const meow = require('meow');
9
9
  const prettier = require('prettier');
10
10
 
11
- const template = require('../src/template');
11
+ const template = require('./template');
12
12
 
13
13
  const cli = meow(
14
14
  `
@@ -43,9 +43,10 @@ module.exports = function template(
43
43
  />`;
44
44
 
45
45
  // Augment the `<svg attributes />` so we can customize it with the values above.
46
- jsx.openingElement.attributes = jsxAttributes.expression.openingElement.attributes.concat(
47
- jsx.openingElement.attributes[2],
48
- );
46
+ jsx.openingElement.attributes =
47
+ jsxAttributes.expression.openingElement.attributes.concat(
48
+ jsx.openingElement.attributes[2],
49
+ );
49
50
 
50
51
  return typeScriptTpl(`
51
52
  %%imports%%
package/src/Icon.spec.tsx CHANGED
@@ -10,6 +10,8 @@ import { SVGR } from './types';
10
10
  import { createIconComponent, glyphs } from '.';
11
11
  import createGlyphComponent from './createGlyphComponent';
12
12
  import EditIcon from '@leafygreen-ui/icon/dist/Edit';
13
+ import { Size } from './glyphCommon';
14
+ import { isComponentGlyph } from './isComponentGlyph';
13
15
 
14
16
  function getBaseName(filePath: string): string {
15
17
  return path.basename(filePath, path.extname(filePath));
@@ -31,6 +33,50 @@ fs.readdirSync(generatedFilesDirectory).forEach(filePath => {
31
33
  baseNameToGeneratedFilePath[getBaseName(filePath)] = filePath;
32
34
  });
33
35
 
36
+ const MyTestSVGRGlyph: SVGR.Component = props => (
37
+ <svg data-testid="my-glyph" {...props}></svg>
38
+ );
39
+
40
+ const customTestGlyphs = {
41
+ MyTestSVGRGlyph: createGlyphComponent('MyTestSVGRGlyph', MyTestSVGRGlyph),
42
+ };
43
+
44
+ describe('packages/Icon/isComponentGlyph', () => {
45
+ test('returns `true` for a rendered component', () => {
46
+ const TestNode: React.ComponentType<any> & { isGlyph?: boolean } = () => (
47
+ <div />
48
+ );
49
+ TestNode.isGlyph = true;
50
+ const renderedTestNode = <TestNode />;
51
+ expect(isComponentGlyph(renderedTestNode)).toBeTruthy();
52
+ });
53
+
54
+ test('returns `true` for a component function', () => {
55
+ const TestNode: React.ComponentType<any> & { isGlyph?: boolean } = () => (
56
+ <div />
57
+ );
58
+ TestNode.isGlyph = true;
59
+ expect(isComponentGlyph(TestNode)).toBeTruthy();
60
+ });
61
+
62
+ test('returns `false` if isGlyph is false', () => {
63
+ const TestNode: React.ComponentType<any> & { isGlyph?: boolean } = () => (
64
+ <div />
65
+ );
66
+ TestNode.isGlyph = false;
67
+ const renderedTestNode = <TestNode />;
68
+ expect(isComponentGlyph(TestNode)).toBeFalsy();
69
+ expect(isComponentGlyph(renderedTestNode)).toBeFalsy();
70
+ });
71
+
72
+ test('returns `false` if isGlyph is not set', () => {
73
+ const TestNode: React.ComponentType<any> = () => <div />;
74
+ const renderedTestNode = <TestNode />;
75
+ expect(isComponentGlyph(TestNode)).toBeFalsy();
76
+ expect(isComponentGlyph(renderedTestNode)).toBeFalsy();
77
+ });
78
+ });
79
+
34
80
  describe('packages/Icon/glyphs/', () => {
35
81
  describe('a11y', () => {
36
82
  test('does not have basic accessibility issues', async () => {
@@ -85,58 +131,119 @@ describe('packages/Icon/glyphs/', () => {
85
131
  });
86
132
  });
87
133
 
88
- const text = 'Hello world';
134
+ describe('packages/Icon/createGlyphComponent', () => {
135
+ const GlyphComponent = createGlyphComponent(
136
+ 'MyTestSVGRGlyph',
137
+ MyTestSVGRGlyph,
138
+ );
89
139
 
90
- // eslint-disable-next-line react/display-name
91
- const MyGlyph: SVGR.Component = () => <div>{text}</div>;
140
+ test('returns a LGGlyph component', () => {
141
+ expect(typeof GlyphComponent).toBe('function');
142
+ expect(isComponentGlyph(GlyphComponent)).toBeTruthy();
143
+ });
92
144
 
93
- describe('packages/Icon/createGlyphComponent createGlyphComponent()', () => {
94
- const GlyphComponent = createGlyphComponent('MyGlyph', MyGlyph);
145
+ test('returned component has correct display name', () => {
146
+ expect(GlyphComponent.displayName).toBe('MyTestSVGRGlyph');
147
+ });
95
148
 
96
- test('createGlyphComponent returns a function', () => {
97
- expect(typeof GlyphComponent).toBe('function');
149
+ test('returned component has the property `isGlyph`', () => {
150
+ expect(GlyphComponent).toHaveProperty('isGlyph');
151
+ expect(GlyphComponent.isGlyph).toBeTruthy();
98
152
  });
99
153
 
100
- test('The function returned by createGlyphComponent has the displayName: "MyGlyph"', () => {
101
- expect(GlyphComponent.displayName).toBe('MyGlyph');
154
+ test('returned function passes `isComponentGlyph`', () => {
155
+ expect(isComponentGlyph(GlyphComponent)).toBeTruthy();
102
156
  });
103
157
 
104
- const { container } = render(<GlyphComponent />);
105
- const glyph = container.firstChild;
158
+ test('returned function renders the glyph specified', () => {
159
+ const { getByTestId } = render(<GlyphComponent />);
160
+ const glyph = getByTestId('my-glyph');
106
161
 
107
- test('The function returned by createGlyphComponent renders the glyph specified', () => {
108
162
  if (!typeIs.element(glyph)) {
109
163
  throw new Error('Glyph was not rendered');
110
164
  }
165
+ expect(glyph.nodeName.toLowerCase()).toBe('svg');
166
+ });
167
+
168
+ describe('returned funcion passes through props', () => {
169
+ test('`size` prop as number', () => {
170
+ const { getByTestId } = render(<GlyphComponent size={20} />);
171
+ const glyph = getByTestId('my-glyph');
172
+ expect(glyph).toHaveAttribute('height', '20');
173
+ expect(glyph).toHaveAttribute('width', '20');
174
+ });
175
+
176
+ test('`size` prop as Size', () => {
177
+ const { getByTestId } = render(<GlyphComponent size={Size.Large} />);
178
+ const glyph = getByTestId('my-glyph');
179
+ expect(glyph).toHaveAttribute('height', '20');
180
+ expect(glyph).toHaveAttribute('width', '20');
181
+ });
111
182
 
112
- expect(glyph.nodeName.toLowerCase()).toBe('div');
113
- expect(glyph.textContent).toBe(text);
183
+ test('`role`', () => {
184
+ const { getByTestId } = render(<GlyphComponent role="presentation" />);
185
+ const glyph = getByTestId('my-glyph');
186
+ expect(glyph).toHaveAttribute('role', 'presentation');
187
+ });
114
188
  });
115
189
  });
116
190
 
117
- const customGlyphs = { MyGlyph };
118
-
119
191
  describe('packages/Icon/createIconComponent', () => {
120
- const IconComponent = createIconComponent(customGlyphs);
192
+ const IconComponent = createIconComponent(customTestGlyphs);
121
193
 
122
- test('createIconComponent returns a function', () => {
194
+ test('returns a function', () => {
123
195
  expect(typeof IconComponent).toBe('function');
124
196
  });
125
197
 
126
- test('The function returned by createIconComponent has the displayName: "Icon"', () => {
198
+ test('returned function has the displayName: "Icon"', () => {
127
199
  expect(IconComponent.displayName).toBe('Icon');
128
200
  });
129
201
 
130
- const renderedIcon = render(<IconComponent glyph="MyGlyph" />);
131
- const glyph = renderedIcon.container.firstChild;
202
+ test('returned function has the property: `isGlyph`', () => {
203
+ expect(IconComponent).toHaveProperty('isGlyph');
204
+ expect(IconComponent.isGlyph).toBeTruthy();
205
+ });
206
+
207
+ test('returned function passes `isComponentGlyph`', () => {
208
+ expect(isComponentGlyph(IconComponent)).toBeTruthy();
209
+ });
210
+
211
+ test('returned funciton renders the glyph specified', () => {
212
+ const { getByTestId } = render(<IconComponent glyph="MyTestSVGRGlyph" />);
213
+ const glyph = getByTestId('my-glyph');
132
214
 
133
- test('The function returned by createIconComponent renders the glyph specified', () => {
134
215
  if (!typeIs.element(glyph)) {
135
216
  throw new Error('Glyph was not rendered');
136
217
  }
218
+ expect(glyph.nodeName.toLowerCase()).toBe('svg');
219
+ });
220
+
221
+ describe('returned funcion passes through props', () => {
222
+ test('`size` prop as number', () => {
223
+ const { getByTestId } = render(
224
+ <IconComponent glyph="MyTestSVGRGlyph" size={20} />,
225
+ );
226
+ const glyph = getByTestId('my-glyph');
227
+ expect(glyph).toHaveAttribute('height', '20');
228
+ expect(glyph).toHaveAttribute('width', '20');
229
+ });
137
230
 
138
- expect(glyph.nodeName.toLowerCase()).toBe('div');
139
- expect(glyph.textContent).toBe(text);
231
+ test('`size` prop as Size', () => {
232
+ const { getByTestId } = render(
233
+ <IconComponent glyph="MyTestSVGRGlyph" size={Size.Large} />,
234
+ );
235
+ const glyph = getByTestId('my-glyph');
236
+ expect(glyph).toHaveAttribute('height', '20');
237
+ expect(glyph).toHaveAttribute('width', '20');
238
+ });
239
+
240
+ test('`role`', () => {
241
+ const { getByTestId } = render(
242
+ <IconComponent glyph="MyTestSVGRGlyph" role="presentation" />,
243
+ );
244
+ const glyph = getByTestId('my-glyph');
245
+ expect(glyph).toHaveAttribute('role', 'presentation');
246
+ });
140
247
  });
141
248
  });
142
249
 
@@ -180,14 +287,10 @@ describe('Generated glyphs', () => {
180
287
  },
181
288
  );
182
289
 
183
- const [
184
- ,
185
- script,
186
- checksum,
187
- checkedContents,
188
- ] = /^\/\*.*@script ([^\n]*).*@checksum ([^\n]*).*\*\/\n(.*)$/s.exec(
189
- generatedFileContents,
190
- )!;
290
+ const [, script, checksum, checkedContents] =
291
+ /^\/\*.*@script ([^\n]*).*@checksum ([^\n]*).*\*\/\n(.*)$/s.exec(
292
+ generatedFileContents,
293
+ )!;
191
294
 
192
295
  const expectedChecksum = createHash('md5')
193
296
  .update(script)
@@ -1,16 +1,21 @@
1
+ // TODO: Generate Icon props with controls
1
2
  import React from 'react';
2
- import Icon, { glyphs, Size } from '.';
3
+ import Icon, { glyphs } from '.';
3
4
  import { css } from '@leafygreen-ui/emotion';
4
- import { storiesOf } from '@storybook/react';
5
- import { color, select } from '@storybook/addon-knobs';
6
- import { uiColors } from '@leafygreen-ui/palette';
5
+ import { ComponentStory, Meta } from '@storybook/react';
6
+ import { palette } from '@leafygreen-ui/palette';
7
+
8
+ export default {
9
+ title: 'Packages/Icons',
10
+ component: Icon,
11
+ } as Meta<typeof Icon>;
7
12
 
8
13
  const containerStyle = css`
9
14
  width: 150px;
10
15
  height: 70px;
11
16
  flex-shrink: 0;
12
17
  text-align: center;
13
- border: 1px solid #babdbe;
18
+ border: 1px solid ${palette.gray.light1};
14
19
  border-radius: 5px;
15
20
  display: flex;
16
21
  align-items: center;
@@ -21,20 +26,17 @@ const containerStyle = css`
21
26
 
22
27
  const textStyle = css`
23
28
  font-size: 12px;
24
- color: ${uiColors.gray.base};
29
+ color: ${palette.gray.base};
25
30
  margin-top: 0.5rem;
26
31
  `;
27
32
 
28
- storiesOf('Icons', module).add('Icon', () => {
29
- const fill = color('Fill', '#000000');
30
- const size = select('size', Object.values(Size), Size.Default);
31
-
32
- const renderGlyph = (glyph: string) => (
33
- <div key={glyph} className={containerStyle}>
34
- <Icon glyph={glyph} fill={fill} size={size} />
35
- <div className={textStyle}>{glyph}</div>
36
- </div>
37
- );
38
-
39
- return <>{Object.keys(glyphs).map(renderGlyph)}</>;
40
- });
33
+ export const AllIcons: ComponentStory<typeof Icon> = args => (
34
+ <>
35
+ {Object.keys(glyphs).map(glyph => (
36
+ <div key={glyph} className={containerStyle}>
37
+ <Icon {...args} glyph={glyph} />
38
+ <div className={textStyle}>{glyph}</div>
39
+ </div>
40
+ ))}
41
+ </>
42
+ );
@@ -4,11 +4,18 @@ import { SVGR, LGGlyph } from './types';
4
4
  import { css, cx } from '@leafygreen-ui/emotion';
5
5
  import { generateAccessibleProps, sizeMap, Size } from './glyphCommon';
6
6
 
7
+ /**
8
+ * Returns a single glyph component.
9
+ * Process custom glyphs to ensure consistent behavior between custom and built-in icons
10
+ * @param glyphName: string - the display name of the icon
11
+ * @param Glyph: SVGR.Component - the SVG icon component
12
+ * @returns LGGlyph.Component
13
+ */
7
14
  export default function createGlyphComponent(
8
15
  glyphName: string,
9
16
  Glyph: SVGR.Component,
10
17
  ): LGGlyph.Component {
11
- function GlyphComponent({
18
+ const GlyphComponent: LGGlyph.Component = ({
12
19
  className,
13
20
  size = Size.Default,
14
21
  fill,
@@ -17,7 +24,7 @@ export default function createGlyphComponent(
17
24
  'aria-label': ariaLabel,
18
25
  role = 'img',
19
26
  ...rest
20
- }: LGGlyph.ComponentProps) {
27
+ }: LGGlyph.ComponentProps) => {
21
28
  const fillStyle = css`
22
29
  color: ${fill};
23
30
  `;
@@ -49,7 +56,7 @@ export default function createGlyphComponent(
49
56
  {...rest}
50
57
  />
51
58
  );
52
- }
59
+ };
53
60
 
54
61
  GlyphComponent.displayName = glyphName;
55
62
 
@@ -11,17 +11,24 @@ export interface IconProps extends Omit<LGGlyph.ComponentProps, 'size'> {
11
11
 
12
12
  type GlyphObject = Record<string, LGGlyph.Component>;
13
13
 
14
+ /**
15
+ * Returns a single component with a `glyph` prop to select the glyph
16
+ * @param glyphs The set of glyphs
17
+ * @returns Icon component
18
+ */
14
19
  export default function createIconComponent<
15
- G extends GlyphObject = GlyphObject
20
+ G extends GlyphObject = GlyphObject,
16
21
  >(glyphs: G) {
17
22
  const Icon = ({ glyph, ...rest }: IconProps) => {
18
23
  const SVGComponent = glyphs[glyph];
19
-
24
+ SVGComponent.isGlyph = true;
20
25
  return <SVGComponent {...rest} />;
21
26
  };
22
27
 
23
28
  Icon.displayName = 'Icon';
24
29
 
30
+ Icon.isGlyph = true;
31
+
25
32
  Icon.propTypes = {
26
33
  glyph: PropTypes.oneOf(Object.keys(glyphs)).isRequired,
27
34
  size: PropTypes.oneOfType([
@@ -0,0 +1,68 @@
1
+ /**
2
+ * This is a generated file. Do not modify it manually.
3
+ *
4
+ * @script ./node_modules/.bin/ts-node packages/icon/scripts/build.ts
5
+ * @checksum 1b8979dfc4d8c6e3992b7c104991dfb8
6
+ */
7
+ import * as React from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { css, cx } from '@leafygreen-ui/emotion';
10
+ import { generateAccessibleProps, sizeMap } from '../glyphCommon';
11
+ import { LGGlyph } from '../types';
12
+ export interface CursorProps extends LGGlyph.ComponentProps {}
13
+
14
+ const Cursor = ({
15
+ className,
16
+ size = 16,
17
+ title,
18
+ ['aria-label']: ariaLabel,
19
+ ['aria-labelledby']: ariaLabelledby,
20
+ fill,
21
+ role = 'img',
22
+ ...props
23
+ }: CursorProps) => {
24
+ const fillStyle = css`
25
+ color: ${fill};
26
+ `;
27
+ const noFlexShrink = css`
28
+ flex-shrink: 0;
29
+ `;
30
+ const accessibleProps = generateAccessibleProps(role, 'Cursor', {
31
+ title,
32
+ ['aria-label']: ariaLabel,
33
+ ['aria-labelledby']: ariaLabelledby,
34
+ });
35
+ return (
36
+ <svg
37
+ className={cx(
38
+ {
39
+ [fillStyle]: fill != null,
40
+ },
41
+ noFlexShrink,
42
+ className,
43
+ )}
44
+ height={typeof size === 'number' ? size : sizeMap[size]}
45
+ width={typeof size === 'number' ? size : sizeMap[size]}
46
+ role={role}
47
+ {...accessibleProps}
48
+ {...props}
49
+ viewBox="0 0 16 16"
50
+ >
51
+ <path
52
+ fillRule="evenodd"
53
+ clipRule="evenodd"
54
+ d="M8.53436 8.53438L9.00697 8.26403L11.3957 6.89757L4.64845 4.64847L6.89754 11.3958L8.26401 9.00699L8.53436 8.53438ZM10 10.0001L14.4801 7.4373C15.2139 7.10378 15.1582 6.04354 14.3936 5.78866L3.16879 2.04707C2.47551 1.81597 1.81595 2.47553 2.04704 3.16881L5.78864 14.3936C6.04352 15.1582 7.10375 15.2139 7.43728 14.4801L10 10.0001Z"
55
+ fill={'currentColor'}
56
+ />
57
+ </svg>
58
+ );
59
+ };
60
+
61
+ Cursor.displayName = 'Cursor';
62
+ Cursor.isGlyph = true;
63
+ Cursor.propTypes = {
64
+ fill: PropTypes.string,
65
+ size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
66
+ className: PropTypes.string,
67
+ };
68
+ export default Cursor;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * This is a generated file. Do not modify it manually.
3
+ *
4
+ * @script ./node_modules/.bin/ts-node packages/icon/scripts/build.ts
5
+ * @checksum 8e515220dd6e2c7b9ab03d7a94d3ec34
6
+ */
7
+ import * as React from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { css, cx } from '@leafygreen-ui/emotion';
10
+ import { generateAccessibleProps, sizeMap } from '../glyphCommon';
11
+ import { LGGlyph } from '../types';
12
+ export interface Diagram2Props extends LGGlyph.ComponentProps {}
13
+
14
+ const Diagram2 = ({
15
+ className,
16
+ size = 16,
17
+ title,
18
+ ['aria-label']: ariaLabel,
19
+ ['aria-labelledby']: ariaLabelledby,
20
+ fill,
21
+ role = 'img',
22
+ ...props
23
+ }: Diagram2Props) => {
24
+ const fillStyle = css`
25
+ color: ${fill};
26
+ `;
27
+ const noFlexShrink = css`
28
+ flex-shrink: 0;
29
+ `;
30
+ const accessibleProps = generateAccessibleProps(role, 'Diagram2', {
31
+ title,
32
+ ['aria-label']: ariaLabel,
33
+ ['aria-labelledby']: ariaLabelledby,
34
+ });
35
+ return (
36
+ <svg
37
+ className={cx(
38
+ {
39
+ [fillStyle]: fill != null,
40
+ },
41
+ noFlexShrink,
42
+ className,
43
+ )}
44
+ height={typeof size === 'number' ? size : sizeMap[size]}
45
+ width={typeof size === 'number' ? size : sizeMap[size]}
46
+ role={role}
47
+ {...accessibleProps}
48
+ {...props}
49
+ viewBox="0 0 16 16"
50
+ >
51
+ <path
52
+ d="M10.72 1C10.3224 1 10 1.33579 10 1.75V2H7.48C7.2149 2 7 2.22386 7 2.5V7H5V6.75C5 6.33579 4.67765 6 4.28 6H1.72C1.32235 6 1 6.33579 1 6.75V8.25C1 8.66421 1.32235 9 1.72 9H4.28C4.67765 9 5 8.66421 5 8.25V8H7V12.5C7 12.7761 7.2149 13 7.48 13H10V13.25C10 13.6642 10.3224 14 10.72 14H12.78C13.1776 14 13.5 13.6642 13.5 13.25V11.75C13.5 11.3358 13.1776 11 12.78 11H10.72C10.3224 11 10 11.3358 10 11.75V12H8V8H10V8.25C10 8.66421 10.3224 9 10.72 9H12.78C13.1776 9 13.5 8.66421 13.5 8.25V6.75C13.5 6.33579 13.1776 6 12.78 6H10.72C10.3224 6 10 6.33579 10 6.75V7H8V3H10V3.25C10 3.66421 10.3224 4 10.72 4H12.78C13.1776 4 13.5 3.66421 13.5 3.25V1.75C13.5 1.33579 13.1776 1 12.78 1L10.72 1Z"
53
+ fill={'currentColor'}
54
+ />
55
+ </svg>
56
+ );
57
+ };
58
+
59
+ Diagram2.displayName = 'Diagram2';
60
+ Diagram2.isGlyph = true;
61
+ Diagram2.propTypes = {
62
+ fill: PropTypes.string,
63
+ size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
64
+ className: PropTypes.string,
65
+ };
66
+ export default Diagram2;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * This is a generated file. Do not modify it manually.
3
+ *
4
+ * @script ./node_modules/.bin/ts-node packages/icon/scripts/build.ts
5
+ * @checksum a55f4f87ce97dfcb1d8337797e4ea72b
6
+ */
7
+ import * as React from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { css, cx } from '@leafygreen-ui/emotion';
10
+ import { generateAccessibleProps, sizeMap } from '../glyphCommon';
11
+ import { LGGlyph } from '../types';
12
+ export interface Diagram3Props extends LGGlyph.ComponentProps {}
13
+
14
+ const Diagram3 = ({
15
+ className,
16
+ size = 16,
17
+ title,
18
+ ['aria-label']: ariaLabel,
19
+ ['aria-labelledby']: ariaLabelledby,
20
+ fill,
21
+ role = 'img',
22
+ ...props
23
+ }: Diagram3Props) => {
24
+ const fillStyle = css`
25
+ color: ${fill};
26
+ `;
27
+ const noFlexShrink = css`
28
+ flex-shrink: 0;
29
+ `;
30
+ const accessibleProps = generateAccessibleProps(role, 'Diagram3', {
31
+ title,
32
+ ['aria-label']: ariaLabel,
33
+ ['aria-labelledby']: ariaLabelledby,
34
+ });
35
+ return (
36
+ <svg
37
+ className={cx(
38
+ {
39
+ [fillStyle]: fill != null,
40
+ },
41
+ noFlexShrink,
42
+ className,
43
+ )}
44
+ height={typeof size === 'number' ? size : sizeMap[size]}
45
+ width={typeof size === 'number' ? size : sizeMap[size]}
46
+ role={role}
47
+ {...accessibleProps}
48
+ {...props}
49
+ viewBox="0 0 16 16"
50
+ >
51
+ <path
52
+ fillRule="evenodd"
53
+ clipRule="evenodd"
54
+ d="M1.75 1C1.33579 1 1 1.33579 1 1.75V3.25C1 3.66421 1.33579 4 1.75 4H4.25C4.66421 4 5 3.66421 5 3.25V1.75C5 1.33579 4.66421 1 4.25 1H1.75ZM11 1.75C11 1.33579 11.3358 1 11.75 1H14.25C14.6642 1 15 1.33579 15 1.75V3.25C15 3.66421 14.6642 4 14.25 4H11.75C11.3358 4 11 3.66421 11 3.25V1.75ZM11 10.75C11 10.3358 11.3358 10 11.75 10H14.25C14.6642 10 15 10.3358 15 10.75V12.25C15 12.6642 14.6642 13 14.25 13H11.75C11.3358 13 11 12.6642 11 12.25V10.75ZM1 10.75C1 10.3358 1.33579 10 1.75 10H4.25C4.66421 10 5 10.3358 5 10.75V12.25C5 12.6642 4.66421 13 4.25 13H1.75C1.33579 13 1 12.6642 1 12.25V10.75ZM6 5C5.44772 5 5 5.44772 5 6V8C5 8.55228 5.44772 9 6 9H10C10.5523 9 11 8.55228 11 8V6C11 5.44772 10.5523 5 10 5H6Z"
55
+ fill={'currentColor'}
56
+ />
57
+ </svg>
58
+ );
59
+ };
60
+
61
+ Diagram3.displayName = 'Diagram3';
62
+ Diagram3.isGlyph = true;
63
+ Diagram3.propTypes = {
64
+ fill: PropTypes.string,
65
+ size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
66
+ className: PropTypes.string,
67
+ };
68
+ export default Diagram3;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * This is a generated file. Do not modify it manually.
3
+ *
4
+ * @script ./node_modules/.bin/ts-node packages/icon/scripts/build.ts
5
+ * @checksum 8429e954355cc3ddfe12fb35674f8c40
6
+ */
7
+ import * as React from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { css, cx } from '@leafygreen-ui/emotion';
10
+ import { generateAccessibleProps, sizeMap } from '../glyphCommon';
11
+ import { LGGlyph } from '../types';
12
+ export interface LinkProps extends LGGlyph.ComponentProps {}
13
+
14
+ const Link = ({
15
+ className,
16
+ size = 16,
17
+ title,
18
+ ['aria-label']: ariaLabel,
19
+ ['aria-labelledby']: ariaLabelledby,
20
+ fill,
21
+ role = 'img',
22
+ ...props
23
+ }: LinkProps) => {
24
+ const fillStyle = css`
25
+ color: ${fill};
26
+ `;
27
+ const noFlexShrink = css`
28
+ flex-shrink: 0;
29
+ `;
30
+ const accessibleProps = generateAccessibleProps(role, 'Link', {
31
+ title,
32
+ ['aria-label']: ariaLabel,
33
+ ['aria-labelledby']: ariaLabelledby,
34
+ });
35
+ return (
36
+ <svg
37
+ className={cx(
38
+ {
39
+ [fillStyle]: fill != null,
40
+ },
41
+ noFlexShrink,
42
+ className,
43
+ )}
44
+ height={typeof size === 'number' ? size : sizeMap[size]}
45
+ width={typeof size === 'number' ? size : sizeMap[size]}
46
+ role={role}
47
+ {...accessibleProps}
48
+ {...props}
49
+ viewBox="0 0 16 16"
50
+ >
51
+ <path
52
+ d="M6.03867 9.95309C5.91948 9.8323 5.81065 9.70512 5.71217 9.57265L7.16282 8.12843C7.2355 8.27756 7.33323 8.41753 7.45605 8.54199C8.06167 9.15571 9.04795 9.1601 9.65896 8.55179L12.5432 5.68033C13.1542 5.07203 13.1586 4.08138 12.553 3.46767C11.9473 2.85395 10.9611 2.84956 10.3501 3.45786L9.97109 3.83515C9.5797 4.22481 8.94791 4.222 8.55996 3.82887C8.17202 3.43574 8.17482 2.80115 8.56622 2.41149L8.94518 2.03421C10.339 0.646579 12.5888 0.656589 13.9703 2.05657C15.3519 3.45655 15.3419 5.71635 13.9481 7.10399L11.0638 9.97545C9.67003 11.3631 7.42018 11.3531 6.03867 9.95309Z"
53
+ fill={'currentColor'}
54
+ />
55
+ <path
56
+ d="M9.96133 6.04691C10.0805 6.1677 10.1894 6.29488 10.2878 6.42735L8.83718 7.87157C8.7645 7.72244 8.66677 7.58247 8.54395 7.45801C7.93833 6.84429 6.95205 6.83991 6.34104 7.44821L3.45679 10.3197C2.84578 10.928 2.84141 11.9186 3.44703 12.5323C4.05265 13.1461 5.03893 13.1504 5.64994 12.5421L6.02891 12.1649C6.4203 11.7752 7.05209 11.778 7.44004 12.1711C7.82798 12.5643 7.82518 13.1988 7.43378 13.5885L7.05482 13.9658C5.66101 15.3534 3.41117 15.3434 2.02965 13.9434C0.648136 12.5435 0.658103 10.2836 2.05191 8.89601L4.93616 6.02455C6.32997 4.63692 8.57982 4.64693 9.96133 6.04691Z"
57
+ fill={'currentColor'}
58
+ />
59
+ </svg>
60
+ );
61
+ };
62
+
63
+ Link.displayName = 'Link';
64
+ Link.isGlyph = true;
65
+ Link.propTypes = {
66
+ fill: PropTypes.string,
67
+ size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
68
+ className: PropTypes.string,
69
+ };
70
+ export default Link;