@leafygreen-ui/icon 13.2.1 → 13.3.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 (736) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +7 -7
  3. package/dist/ActivityFeed.js.map +1 -1
  4. package/dist/AddFile.js.map +1 -1
  5. package/dist/AllProducts.js.map +1 -1
  6. package/dist/AnalyticsNode.js.map +1 -1
  7. package/dist/Apps.js.map +1 -1
  8. package/dist/Array.js.map +1 -1
  9. package/dist/ArrowDown.js.map +1 -1
  10. package/dist/ArrowLeft.js.map +1 -1
  11. package/dist/ArrowRight.js.map +1 -1
  12. package/dist/ArrowUp.js.map +1 -1
  13. package/dist/Beaker.js.map +1 -1
  14. package/dist/Bell.js.map +1 -1
  15. package/dist/Biometric.js.map +1 -1
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Building.js.map +1 -1
  18. package/dist/Bulb.js.map +1 -1
  19. package/dist/Calendar.js.map +1 -1
  20. package/dist/Camera.js.map +1 -1
  21. package/dist/Cap.js.map +1 -1
  22. package/dist/CaretDown.js.map +1 -1
  23. package/dist/CaretLeft.js.map +1 -1
  24. package/dist/CaretRight.js.map +1 -1
  25. package/dist/CaretUp.js.map +1 -1
  26. package/dist/ChartFilled.js.map +1 -1
  27. package/dist/Charts.js.map +1 -1
  28. package/dist/Checkmark.js.map +1 -1
  29. package/dist/CheckmarkWithCircle.js.map +1 -1
  30. package/dist/ChevronDown.js.map +1 -1
  31. package/dist/ChevronLeft.js.map +1 -1
  32. package/dist/ChevronRight.js.map +1 -1
  33. package/dist/ChevronUp.js.map +1 -1
  34. package/dist/Circle.js.map +1 -1
  35. package/dist/Clock.js.map +1 -1
  36. package/dist/ClockWithArrow.js.map +1 -1
  37. package/dist/Clone.js.map +1 -1
  38. package/dist/Cloud.js.map +1 -1
  39. package/dist/Code.js.map +1 -1
  40. package/dist/CodeBlock.js.map +1 -1
  41. package/dist/Coin.js.map +1 -1
  42. package/dist/Colon.js.map +1 -1
  43. package/dist/Config.js.map +1 -1
  44. package/dist/Connect.js.map +1 -1
  45. package/dist/Copy.js.map +1 -1
  46. package/dist/CreditCard.js.map +1 -1
  47. package/dist/CurlyBraces.js.map +1 -1
  48. package/dist/Cursor.js.map +1 -1
  49. package/dist/Dashboard.js.map +1 -1
  50. package/dist/Database.js.map +1 -1
  51. package/dist/Diagram.js.map +1 -1
  52. package/dist/Diagram2.js.map +1 -1
  53. package/dist/Diagram3.js.map +1 -1
  54. package/dist/Disconnect.js.map +1 -1
  55. package/dist/Download.js.map +1 -1
  56. package/dist/Drag.js.map +1 -1
  57. package/dist/Edit.js.map +1 -1
  58. package/dist/Ellipsis.js.map +1 -1
  59. package/dist/Email.js.map +1 -1
  60. package/dist/EmptyDatabase.js.map +1 -1
  61. package/dist/EmptyFolder.js.map +1 -1
  62. package/dist/Eraser.js.map +1 -1
  63. package/dist/Escalation.js.map +1 -1
  64. package/dist/Export.js.map +1 -1
  65. package/dist/Favorite.js.map +1 -1
  66. package/dist/Federation.js.map +1 -1
  67. package/dist/File.js.map +1 -1
  68. package/dist/Filter.js.map +1 -1
  69. package/dist/Folder.js.map +1 -1
  70. package/dist/Format.js.map +1 -1
  71. package/dist/FullScreenEnter.js.map +1 -1
  72. package/dist/FullScreenExit.js.map +1 -1
  73. package/dist/Function.js.map +1 -1
  74. package/dist/Gauge.js.map +1 -1
  75. package/dist/GlobeAmericas.js.map +1 -1
  76. package/dist/GovernmentBuilding.js.map +1 -1
  77. package/dist/Guide.js +2 -0
  78. package/dist/Guide.js.map +1 -0
  79. package/dist/Hash.js.map +1 -1
  80. package/dist/HiddenSecondaryNode.js.map +1 -1
  81. package/dist/Highlight.js.map +1 -1
  82. package/dist/Home.js.map +1 -1
  83. package/dist/HorizontalDrag.js.map +1 -1
  84. package/dist/Import.js.map +1 -1
  85. package/dist/ImportantWithCircle.js.map +1 -1
  86. package/dist/InfoWithCircle.js.map +1 -1
  87. package/dist/InternalEmployee.js.map +1 -1
  88. package/dist/InviteUser.js.map +1 -1
  89. package/dist/Key.js.map +1 -1
  90. package/dist/Laptop.js.map +1 -1
  91. package/dist/LightningBolt.js.map +1 -1
  92. package/dist/Link.js.map +1 -1
  93. package/dist/List.js.map +1 -1
  94. package/dist/Lock.js.map +1 -1
  95. package/dist/LogIn.js.map +1 -1
  96. package/dist/LogOut.js.map +1 -1
  97. package/dist/MagnifyingGlass.js.map +1 -1
  98. package/dist/Megaphone.js.map +1 -1
  99. package/dist/Menu.js.map +1 -1
  100. package/dist/Minus.js.map +1 -1
  101. package/dist/Mobile.js.map +1 -1
  102. package/dist/Moon.js.map +1 -1
  103. package/dist/MultiDirectionArrow.js.map +1 -1
  104. package/dist/MultiLayers.js.map +1 -1
  105. package/dist/NavCollapse.js.map +1 -1
  106. package/dist/NavExpand.js.map +1 -1
  107. package/dist/NoFilter.js.map +1 -1
  108. package/dist/NotAllowed.js.map +1 -1
  109. package/dist/Note.js.map +1 -1
  110. package/dist/NumberedList.js.map +1 -1
  111. package/dist/OpenNewTab.js.map +1 -1
  112. package/dist/OutlineFavorite.js.map +1 -1
  113. package/dist/Package.js.map +1 -1
  114. package/dist/Pause.js.map +1 -1
  115. package/dist/Pending.js.map +1 -1
  116. package/dist/Person.js.map +1 -1
  117. package/dist/PersonGroup.js.map +1 -1
  118. package/dist/PersonWithLock.js.map +1 -1
  119. package/dist/Pin.js.map +1 -1
  120. package/dist/Play.js.map +1 -1
  121. package/dist/Plus.js.map +1 -1
  122. package/dist/PlusWithCircle.js.map +1 -1
  123. package/dist/Primary.js.map +1 -1
  124. package/dist/Project.js.map +1 -1
  125. package/dist/QuestionMarkWithCircle.js.map +1 -1
  126. package/dist/Read.js.map +1 -1
  127. package/dist/Recommended.js.map +1 -1
  128. package/dist/Redo.js.map +1 -1
  129. package/dist/Refresh.js.map +1 -1
  130. package/dist/Relationship.js.map +1 -1
  131. package/dist/ReplicaSet.js.map +1 -1
  132. package/dist/Resize.js.map +1 -1
  133. package/dist/Resource.js +2 -0
  134. package/dist/Resource.js.map +1 -0
  135. package/dist/Return.js.map +1 -1
  136. package/dist/Revert.js.map +1 -1
  137. package/dist/Router.js.map +1 -1
  138. package/dist/SMS.js.map +1 -1
  139. package/dist/Save.js.map +1 -1
  140. package/dist/SearchIndex.js.map +1 -1
  141. package/dist/Secondary.js.map +1 -1
  142. package/dist/Serverless.js.map +1 -1
  143. package/dist/Settings.js.map +1 -1
  144. package/dist/ShardedCluster.js.map +1 -1
  145. package/dist/Shell.js.map +1 -1
  146. package/dist/Shirt.js.map +1 -1
  147. package/dist/SortAscending.js.map +1 -1
  148. package/dist/SortDescending.js.map +1 -1
  149. package/dist/Sparkle.js.map +1 -1
  150. package/dist/SplitHorizontal.js.map +1 -1
  151. package/dist/SplitVertical.js.map +1 -1
  152. package/dist/Stitch.js.map +1 -1
  153. package/dist/Stop.js.map +1 -1
  154. package/dist/String.js.map +1 -1
  155. package/dist/Sun.js.map +1 -1
  156. package/dist/Support.js.map +1 -1
  157. package/dist/Sweep.js.map +1 -1
  158. package/dist/Table.js.map +1 -1
  159. package/dist/Tag.js.map +1 -1
  160. package/dist/TemporaryTable.js.map +1 -1
  161. package/dist/ThumbsDown.js.map +1 -1
  162. package/dist/ThumbsUp.js.map +1 -1
  163. package/dist/TimeSeries.js.map +1 -1
  164. package/dist/TimeSeriesCollection.js.map +1 -1
  165. package/dist/Trash.js.map +1 -1
  166. package/dist/Undo.js.map +1 -1
  167. package/dist/University.js.map +1 -1
  168. package/dist/Unlock.js.map +1 -1
  169. package/dist/Unsorted.js.map +1 -1
  170. package/dist/UpDownCarets.js.map +1 -1
  171. package/dist/Upload.js.map +1 -1
  172. package/dist/VerticalEllipsis.js.map +1 -1
  173. package/dist/View.js.map +1 -1
  174. package/dist/Visibility.js.map +1 -1
  175. package/dist/VisibilityOff.js.map +1 -1
  176. package/dist/Warning.js.map +1 -1
  177. package/dist/Wizard.js.map +1 -1
  178. package/dist/Wrench.js.map +1 -1
  179. package/dist/Write.js.map +1 -1
  180. package/dist/X.js.map +1 -1
  181. package/dist/XWithCircle.js.map +1 -1
  182. package/dist/esm/ActivityFeed.js.map +1 -1
  183. package/dist/esm/AddFile.js.map +1 -1
  184. package/dist/esm/AllProducts.js.map +1 -1
  185. package/dist/esm/AnalyticsNode.js.map +1 -1
  186. package/dist/esm/Apps.js.map +1 -1
  187. package/dist/esm/Array.js.map +1 -1
  188. package/dist/esm/ArrowDown.js.map +1 -1
  189. package/dist/esm/ArrowLeft.js.map +1 -1
  190. package/dist/esm/ArrowRight.js.map +1 -1
  191. package/dist/esm/ArrowUp.js.map +1 -1
  192. package/dist/esm/Beaker.js.map +1 -1
  193. package/dist/esm/Bell.js.map +1 -1
  194. package/dist/esm/Biometric.js.map +1 -1
  195. package/dist/esm/Boolean.js.map +1 -1
  196. package/dist/esm/Building.js.map +1 -1
  197. package/dist/esm/Bulb.js.map +1 -1
  198. package/dist/esm/Calendar.js.map +1 -1
  199. package/dist/esm/Camera.js.map +1 -1
  200. package/dist/esm/Cap.js.map +1 -1
  201. package/dist/esm/CaretDown.js.map +1 -1
  202. package/dist/esm/CaretLeft.js.map +1 -1
  203. package/dist/esm/CaretRight.js.map +1 -1
  204. package/dist/esm/CaretUp.js.map +1 -1
  205. package/dist/esm/ChartFilled.js.map +1 -1
  206. package/dist/esm/Charts.js.map +1 -1
  207. package/dist/esm/Checkmark.js.map +1 -1
  208. package/dist/esm/CheckmarkWithCircle.js.map +1 -1
  209. package/dist/esm/ChevronDown.js.map +1 -1
  210. package/dist/esm/ChevronLeft.js.map +1 -1
  211. package/dist/esm/ChevronRight.js.map +1 -1
  212. package/dist/esm/ChevronUp.js.map +1 -1
  213. package/dist/esm/Circle.js.map +1 -1
  214. package/dist/esm/Clock.js.map +1 -1
  215. package/dist/esm/ClockWithArrow.js.map +1 -1
  216. package/dist/esm/Clone.js.map +1 -1
  217. package/dist/esm/Cloud.js.map +1 -1
  218. package/dist/esm/Code.js.map +1 -1
  219. package/dist/esm/CodeBlock.js.map +1 -1
  220. package/dist/esm/Coin.js.map +1 -1
  221. package/dist/esm/Colon.js.map +1 -1
  222. package/dist/esm/Config.js.map +1 -1
  223. package/dist/esm/Connect.js.map +1 -1
  224. package/dist/esm/Copy.js.map +1 -1
  225. package/dist/esm/CreditCard.js.map +1 -1
  226. package/dist/esm/CurlyBraces.js.map +1 -1
  227. package/dist/esm/Cursor.js.map +1 -1
  228. package/dist/esm/Dashboard.js.map +1 -1
  229. package/dist/esm/Database.js.map +1 -1
  230. package/dist/esm/Diagram.js.map +1 -1
  231. package/dist/esm/Diagram2.js.map +1 -1
  232. package/dist/esm/Diagram3.js.map +1 -1
  233. package/dist/esm/Disconnect.js.map +1 -1
  234. package/dist/esm/Download.js.map +1 -1
  235. package/dist/esm/Drag.js.map +1 -1
  236. package/dist/esm/Edit.js.map +1 -1
  237. package/dist/esm/Ellipsis.js.map +1 -1
  238. package/dist/esm/Email.js.map +1 -1
  239. package/dist/esm/EmptyDatabase.js.map +1 -1
  240. package/dist/esm/EmptyFolder.js.map +1 -1
  241. package/dist/esm/Eraser.js.map +1 -1
  242. package/dist/esm/Escalation.js.map +1 -1
  243. package/dist/esm/Export.js.map +1 -1
  244. package/dist/esm/Favorite.js.map +1 -1
  245. package/dist/esm/Federation.js.map +1 -1
  246. package/dist/esm/File.js.map +1 -1
  247. package/dist/esm/Filter.js.map +1 -1
  248. package/dist/esm/Folder.js.map +1 -1
  249. package/dist/esm/Format.js.map +1 -1
  250. package/dist/esm/FullScreenEnter.js.map +1 -1
  251. package/dist/esm/FullScreenExit.js.map +1 -1
  252. package/dist/esm/Function.js.map +1 -1
  253. package/dist/esm/Gauge.js.map +1 -1
  254. package/dist/esm/GlobeAmericas.js.map +1 -1
  255. package/dist/esm/GovernmentBuilding.js.map +1 -1
  256. package/dist/esm/Guide.js +2 -0
  257. package/dist/esm/Guide.js.map +1 -0
  258. package/dist/esm/Hash.js.map +1 -1
  259. package/dist/esm/HiddenSecondaryNode.js.map +1 -1
  260. package/dist/esm/Highlight.js.map +1 -1
  261. package/dist/esm/Home.js.map +1 -1
  262. package/dist/esm/HorizontalDrag.js.map +1 -1
  263. package/dist/esm/Import.js.map +1 -1
  264. package/dist/esm/ImportantWithCircle.js.map +1 -1
  265. package/dist/esm/InfoWithCircle.js.map +1 -1
  266. package/dist/esm/InternalEmployee.js.map +1 -1
  267. package/dist/esm/InviteUser.js.map +1 -1
  268. package/dist/esm/Key.js.map +1 -1
  269. package/dist/esm/Laptop.js.map +1 -1
  270. package/dist/esm/LightningBolt.js.map +1 -1
  271. package/dist/esm/Link.js.map +1 -1
  272. package/dist/esm/List.js.map +1 -1
  273. package/dist/esm/Lock.js.map +1 -1
  274. package/dist/esm/LogIn.js.map +1 -1
  275. package/dist/esm/LogOut.js.map +1 -1
  276. package/dist/esm/MagnifyingGlass.js.map +1 -1
  277. package/dist/esm/Megaphone.js.map +1 -1
  278. package/dist/esm/Menu.js.map +1 -1
  279. package/dist/esm/Minus.js.map +1 -1
  280. package/dist/esm/Mobile.js.map +1 -1
  281. package/dist/esm/Moon.js.map +1 -1
  282. package/dist/esm/MultiDirectionArrow.js.map +1 -1
  283. package/dist/esm/MultiLayers.js.map +1 -1
  284. package/dist/esm/NavCollapse.js.map +1 -1
  285. package/dist/esm/NavExpand.js.map +1 -1
  286. package/dist/esm/NoFilter.js.map +1 -1
  287. package/dist/esm/NotAllowed.js.map +1 -1
  288. package/dist/esm/Note.js.map +1 -1
  289. package/dist/esm/NumberedList.js.map +1 -1
  290. package/dist/esm/OpenNewTab.js.map +1 -1
  291. package/dist/esm/OutlineFavorite.js.map +1 -1
  292. package/dist/esm/Package.js.map +1 -1
  293. package/dist/esm/Pause.js.map +1 -1
  294. package/dist/esm/Pending.js.map +1 -1
  295. package/dist/esm/Person.js.map +1 -1
  296. package/dist/esm/PersonGroup.js.map +1 -1
  297. package/dist/esm/PersonWithLock.js.map +1 -1
  298. package/dist/esm/Pin.js.map +1 -1
  299. package/dist/esm/Play.js.map +1 -1
  300. package/dist/esm/Plus.js.map +1 -1
  301. package/dist/esm/PlusWithCircle.js.map +1 -1
  302. package/dist/esm/Primary.js.map +1 -1
  303. package/dist/esm/Project.js.map +1 -1
  304. package/dist/esm/QuestionMarkWithCircle.js.map +1 -1
  305. package/dist/esm/Read.js.map +1 -1
  306. package/dist/esm/Recommended.js.map +1 -1
  307. package/dist/esm/Redo.js.map +1 -1
  308. package/dist/esm/Refresh.js.map +1 -1
  309. package/dist/esm/Relationship.js.map +1 -1
  310. package/dist/esm/ReplicaSet.js.map +1 -1
  311. package/dist/esm/Resize.js.map +1 -1
  312. package/dist/esm/Resource.js +2 -0
  313. package/dist/esm/Resource.js.map +1 -0
  314. package/dist/esm/Return.js.map +1 -1
  315. package/dist/esm/Revert.js.map +1 -1
  316. package/dist/esm/Router.js.map +1 -1
  317. package/dist/esm/SMS.js.map +1 -1
  318. package/dist/esm/Save.js.map +1 -1
  319. package/dist/esm/SearchIndex.js.map +1 -1
  320. package/dist/esm/Secondary.js.map +1 -1
  321. package/dist/esm/Serverless.js.map +1 -1
  322. package/dist/esm/Settings.js.map +1 -1
  323. package/dist/esm/ShardedCluster.js.map +1 -1
  324. package/dist/esm/Shell.js.map +1 -1
  325. package/dist/esm/Shirt.js.map +1 -1
  326. package/dist/esm/SortAscending.js.map +1 -1
  327. package/dist/esm/SortDescending.js.map +1 -1
  328. package/dist/esm/Sparkle.js.map +1 -1
  329. package/dist/esm/SplitHorizontal.js.map +1 -1
  330. package/dist/esm/SplitVertical.js.map +1 -1
  331. package/dist/esm/Stitch.js.map +1 -1
  332. package/dist/esm/Stop.js.map +1 -1
  333. package/dist/esm/String.js.map +1 -1
  334. package/dist/esm/Sun.js.map +1 -1
  335. package/dist/esm/Support.js.map +1 -1
  336. package/dist/esm/Sweep.js.map +1 -1
  337. package/dist/esm/Table.js.map +1 -1
  338. package/dist/esm/Tag.js.map +1 -1
  339. package/dist/esm/TemporaryTable.js.map +1 -1
  340. package/dist/esm/ThumbsDown.js.map +1 -1
  341. package/dist/esm/ThumbsUp.js.map +1 -1
  342. package/dist/esm/TimeSeries.js.map +1 -1
  343. package/dist/esm/TimeSeriesCollection.js.map +1 -1
  344. package/dist/esm/Trash.js.map +1 -1
  345. package/dist/esm/Undo.js.map +1 -1
  346. package/dist/esm/University.js.map +1 -1
  347. package/dist/esm/Unlock.js.map +1 -1
  348. package/dist/esm/Unsorted.js.map +1 -1
  349. package/dist/esm/UpDownCarets.js.map +1 -1
  350. package/dist/esm/Upload.js.map +1 -1
  351. package/dist/esm/VerticalEllipsis.js.map +1 -1
  352. package/dist/esm/View.js.map +1 -1
  353. package/dist/esm/Visibility.js.map +1 -1
  354. package/dist/esm/VisibilityOff.js.map +1 -1
  355. package/dist/esm/Warning.js.map +1 -1
  356. package/dist/esm/Wizard.js.map +1 -1
  357. package/dist/esm/Wrench.js.map +1 -1
  358. package/dist/esm/Write.js.map +1 -1
  359. package/dist/esm/X.js.map +1 -1
  360. package/dist/esm/XWithCircle.js.map +1 -1
  361. package/dist/esm/index.js +1 -1
  362. package/dist/esm/index.js.map +1 -1
  363. package/dist/generated/ActivityFeed.d.ts +2 -2
  364. package/dist/generated/AddFile.d.ts +2 -2
  365. package/dist/generated/AllProducts.d.ts +2 -2
  366. package/dist/generated/AnalyticsNode.d.ts +2 -2
  367. package/dist/generated/Apps.d.ts +2 -2
  368. package/dist/generated/Array.d.ts +2 -2
  369. package/dist/generated/ArrowDown.d.ts +2 -2
  370. package/dist/generated/ArrowLeft.d.ts +2 -2
  371. package/dist/generated/ArrowRight.d.ts +2 -2
  372. package/dist/generated/ArrowUp.d.ts +2 -2
  373. package/dist/generated/Beaker.d.ts +2 -2
  374. package/dist/generated/Bell.d.ts +2 -2
  375. package/dist/generated/Biometric.d.ts +2 -2
  376. package/dist/generated/Boolean.d.ts +2 -2
  377. package/dist/generated/Building.d.ts +2 -2
  378. package/dist/generated/Bulb.d.ts +2 -2
  379. package/dist/generated/Calendar.d.ts +2 -2
  380. package/dist/generated/Camera.d.ts +2 -2
  381. package/dist/generated/Cap.d.ts +2 -2
  382. package/dist/generated/CaretDown.d.ts +2 -2
  383. package/dist/generated/CaretLeft.d.ts +2 -2
  384. package/dist/generated/CaretRight.d.ts +2 -2
  385. package/dist/generated/CaretUp.d.ts +2 -2
  386. package/dist/generated/ChartFilled.d.ts +2 -2
  387. package/dist/generated/Charts.d.ts +2 -2
  388. package/dist/generated/Checkmark.d.ts +2 -2
  389. package/dist/generated/CheckmarkWithCircle.d.ts +2 -2
  390. package/dist/generated/ChevronDown.d.ts +2 -2
  391. package/dist/generated/ChevronLeft.d.ts +2 -2
  392. package/dist/generated/ChevronRight.d.ts +2 -2
  393. package/dist/generated/ChevronUp.d.ts +2 -2
  394. package/dist/generated/Circle.d.ts +2 -2
  395. package/dist/generated/Clock.d.ts +2 -2
  396. package/dist/generated/ClockWithArrow.d.ts +2 -2
  397. package/dist/generated/Clone.d.ts +2 -2
  398. package/dist/generated/Cloud.d.ts +2 -2
  399. package/dist/generated/Code.d.ts +2 -2
  400. package/dist/generated/CodeBlock.d.ts +2 -2
  401. package/dist/generated/Coin.d.ts +2 -2
  402. package/dist/generated/Colon.d.ts +2 -2
  403. package/dist/generated/Config.d.ts +2 -2
  404. package/dist/generated/Connect.d.ts +2 -2
  405. package/dist/generated/Copy.d.ts +2 -2
  406. package/dist/generated/CreditCard.d.ts +2 -2
  407. package/dist/generated/CurlyBraces.d.ts +2 -2
  408. package/dist/generated/Cursor.d.ts +2 -2
  409. package/dist/generated/Dashboard.d.ts +2 -2
  410. package/dist/generated/Database.d.ts +2 -2
  411. package/dist/generated/Diagram.d.ts +2 -2
  412. package/dist/generated/Diagram2.d.ts +2 -2
  413. package/dist/generated/Diagram3.d.ts +2 -2
  414. package/dist/generated/Disconnect.d.ts +2 -2
  415. package/dist/generated/Download.d.ts +2 -2
  416. package/dist/generated/Drag.d.ts +2 -2
  417. package/dist/generated/Edit.d.ts +2 -2
  418. package/dist/generated/Ellipsis.d.ts +2 -2
  419. package/dist/generated/Email.d.ts +2 -2
  420. package/dist/generated/EmptyDatabase.d.ts +2 -2
  421. package/dist/generated/EmptyFolder.d.ts +2 -2
  422. package/dist/generated/Eraser.d.ts +2 -2
  423. package/dist/generated/Escalation.d.ts +2 -2
  424. package/dist/generated/Export.d.ts +2 -2
  425. package/dist/generated/Favorite.d.ts +2 -2
  426. package/dist/generated/Federation.d.ts +2 -2
  427. package/dist/generated/File.d.ts +2 -2
  428. package/dist/generated/Filter.d.ts +2 -2
  429. package/dist/generated/Folder.d.ts +2 -2
  430. package/dist/generated/Format.d.ts +2 -2
  431. package/dist/generated/FullScreenEnter.d.ts +2 -2
  432. package/dist/generated/FullScreenExit.d.ts +2 -2
  433. package/dist/generated/Function.d.ts +2 -2
  434. package/dist/generated/Gauge.d.ts +2 -2
  435. package/dist/generated/GlobeAmericas.d.ts +2 -2
  436. package/dist/generated/GovernmentBuilding.d.ts +2 -2
  437. package/dist/generated/Guide.d.ts +17 -0
  438. package/dist/generated/Guide.d.ts.map +1 -0
  439. package/dist/generated/Hash.d.ts +2 -2
  440. package/dist/generated/HiddenSecondaryNode.d.ts +2 -2
  441. package/dist/generated/Highlight.d.ts +2 -2
  442. package/dist/generated/Home.d.ts +2 -2
  443. package/dist/generated/HorizontalDrag.d.ts +2 -2
  444. package/dist/generated/Import.d.ts +2 -2
  445. package/dist/generated/ImportantWithCircle.d.ts +2 -2
  446. package/dist/generated/InfoWithCircle.d.ts +2 -2
  447. package/dist/generated/InternalEmployee.d.ts +2 -2
  448. package/dist/generated/InviteUser.d.ts +2 -2
  449. package/dist/generated/Key.d.ts +2 -2
  450. package/dist/generated/Laptop.d.ts +2 -2
  451. package/dist/generated/LightningBolt.d.ts +2 -2
  452. package/dist/generated/Link.d.ts +2 -2
  453. package/dist/generated/List.d.ts +2 -2
  454. package/dist/generated/Lock.d.ts +2 -2
  455. package/dist/generated/LogIn.d.ts +2 -2
  456. package/dist/generated/LogOut.d.ts +2 -2
  457. package/dist/generated/MagnifyingGlass.d.ts +2 -2
  458. package/dist/generated/Megaphone.d.ts +2 -2
  459. package/dist/generated/Menu.d.ts +2 -2
  460. package/dist/generated/Minus.d.ts +2 -2
  461. package/dist/generated/Mobile.d.ts +2 -2
  462. package/dist/generated/Moon.d.ts +2 -2
  463. package/dist/generated/MultiDirectionArrow.d.ts +2 -2
  464. package/dist/generated/MultiLayers.d.ts +2 -2
  465. package/dist/generated/NavCollapse.d.ts +2 -2
  466. package/dist/generated/NavExpand.d.ts +2 -2
  467. package/dist/generated/NoFilter.d.ts +2 -2
  468. package/dist/generated/NotAllowed.d.ts +2 -2
  469. package/dist/generated/Note.d.ts +2 -2
  470. package/dist/generated/NumberedList.d.ts +2 -2
  471. package/dist/generated/OpenNewTab.d.ts +2 -2
  472. package/dist/generated/OutlineFavorite.d.ts +2 -2
  473. package/dist/generated/Package.d.ts +2 -2
  474. package/dist/generated/Pause.d.ts +2 -2
  475. package/dist/generated/Pending.d.ts +2 -2
  476. package/dist/generated/Person.d.ts +2 -2
  477. package/dist/generated/PersonGroup.d.ts +2 -2
  478. package/dist/generated/PersonWithLock.d.ts +2 -2
  479. package/dist/generated/Pin.d.ts +2 -2
  480. package/dist/generated/Play.d.ts +2 -2
  481. package/dist/generated/Plus.d.ts +2 -2
  482. package/dist/generated/PlusWithCircle.d.ts +2 -2
  483. package/dist/generated/Primary.d.ts +2 -2
  484. package/dist/generated/Project.d.ts +2 -2
  485. package/dist/generated/QuestionMarkWithCircle.d.ts +2 -2
  486. package/dist/generated/Read.d.ts +2 -2
  487. package/dist/generated/Recommended.d.ts +2 -2
  488. package/dist/generated/Redo.d.ts +2 -2
  489. package/dist/generated/Refresh.d.ts +2 -2
  490. package/dist/generated/Relationship.d.ts +2 -2
  491. package/dist/generated/ReplicaSet.d.ts +2 -2
  492. package/dist/generated/Resize.d.ts +2 -2
  493. package/dist/generated/Resource.d.ts +17 -0
  494. package/dist/generated/Resource.d.ts.map +1 -0
  495. package/dist/generated/Return.d.ts +2 -2
  496. package/dist/generated/Revert.d.ts +2 -2
  497. package/dist/generated/Router.d.ts +2 -2
  498. package/dist/generated/SMS.d.ts +2 -2
  499. package/dist/generated/Save.d.ts +2 -2
  500. package/dist/generated/SearchIndex.d.ts +2 -2
  501. package/dist/generated/Secondary.d.ts +2 -2
  502. package/dist/generated/Serverless.d.ts +2 -2
  503. package/dist/generated/Settings.d.ts +2 -2
  504. package/dist/generated/ShardedCluster.d.ts +2 -2
  505. package/dist/generated/Shell.d.ts +2 -2
  506. package/dist/generated/Shirt.d.ts +2 -2
  507. package/dist/generated/SortAscending.d.ts +2 -2
  508. package/dist/generated/SortDescending.d.ts +2 -2
  509. package/dist/generated/Sparkle.d.ts +2 -2
  510. package/dist/generated/SplitHorizontal.d.ts +2 -2
  511. package/dist/generated/SplitVertical.d.ts +2 -2
  512. package/dist/generated/Stitch.d.ts +2 -2
  513. package/dist/generated/Stop.d.ts +2 -2
  514. package/dist/generated/String.d.ts +2 -2
  515. package/dist/generated/Sun.d.ts +2 -2
  516. package/dist/generated/Support.d.ts +2 -2
  517. package/dist/generated/Sweep.d.ts +2 -2
  518. package/dist/generated/Table.d.ts +2 -2
  519. package/dist/generated/Tag.d.ts +2 -2
  520. package/dist/generated/TemporaryTable.d.ts +2 -2
  521. package/dist/generated/ThumbsDown.d.ts +2 -2
  522. package/dist/generated/ThumbsUp.d.ts +2 -2
  523. package/dist/generated/TimeSeries.d.ts +2 -2
  524. package/dist/generated/TimeSeriesCollection.d.ts +2 -2
  525. package/dist/generated/Trash.d.ts +2 -2
  526. package/dist/generated/Undo.d.ts +2 -2
  527. package/dist/generated/University.d.ts +2 -2
  528. package/dist/generated/Unlock.d.ts +2 -2
  529. package/dist/generated/Unsorted.d.ts +2 -2
  530. package/dist/generated/UpDownCarets.d.ts +2 -2
  531. package/dist/generated/Upload.d.ts +2 -2
  532. package/dist/generated/VerticalEllipsis.d.ts +2 -2
  533. package/dist/generated/View.d.ts +2 -2
  534. package/dist/generated/Visibility.d.ts +2 -2
  535. package/dist/generated/VisibilityOff.d.ts +2 -2
  536. package/dist/generated/Warning.d.ts +2 -2
  537. package/dist/generated/Wizard.d.ts +2 -2
  538. package/dist/generated/Wrench.d.ts +2 -2
  539. package/dist/generated/Write.d.ts +2 -2
  540. package/dist/generated/X.d.ts +2 -2
  541. package/dist/generated/XWithCircle.d.ts +2 -2
  542. package/dist/glyphs/index.d.ts +9 -1
  543. package/dist/glyphs/index.d.ts.map +1 -1
  544. package/dist/index.js +1 -1
  545. package/dist/index.js.map +1 -1
  546. package/package.json +10 -10
  547. package/scripts/checksum.ts +19 -0
  548. package/scripts/indexTemplate.ts +31 -0
  549. package/scripts/prebuild.ts +103 -122
  550. package/scripts/prebuild.types.ts +9 -0
  551. package/scripts/{template.ts → svgrTemplate.ts} +2 -2
  552. package/scripts/tsconfig.json +8 -0
  553. package/src/Icon.spec.tsx +3 -6
  554. package/src/generated/ActivityFeed.tsx +2 -2
  555. package/src/generated/AddFile.tsx +2 -2
  556. package/src/generated/AllProducts.tsx +2 -2
  557. package/src/generated/AnalyticsNode.tsx +2 -2
  558. package/src/generated/Apps.tsx +2 -2
  559. package/src/generated/Array.tsx +2 -2
  560. package/src/generated/ArrowDown.tsx +2 -2
  561. package/src/generated/ArrowLeft.tsx +2 -2
  562. package/src/generated/ArrowRight.tsx +2 -2
  563. package/src/generated/ArrowUp.tsx +2 -2
  564. package/src/generated/Beaker.tsx +2 -2
  565. package/src/generated/Bell.tsx +2 -2
  566. package/src/generated/Biometric.tsx +2 -2
  567. package/src/generated/Boolean.tsx +2 -2
  568. package/src/generated/Building.tsx +2 -2
  569. package/src/generated/Bulb.tsx +2 -2
  570. package/src/generated/Calendar.tsx +2 -2
  571. package/src/generated/Camera.tsx +2 -2
  572. package/src/generated/Cap.tsx +2 -2
  573. package/src/generated/CaretDown.tsx +2 -2
  574. package/src/generated/CaretLeft.tsx +2 -2
  575. package/src/generated/CaretRight.tsx +2 -2
  576. package/src/generated/CaretUp.tsx +2 -2
  577. package/src/generated/ChartFilled.tsx +2 -2
  578. package/src/generated/Charts.tsx +2 -2
  579. package/src/generated/Checkmark.tsx +2 -2
  580. package/src/generated/CheckmarkWithCircle.tsx +2 -2
  581. package/src/generated/ChevronDown.tsx +2 -2
  582. package/src/generated/ChevronLeft.tsx +2 -2
  583. package/src/generated/ChevronRight.tsx +2 -2
  584. package/src/generated/ChevronUp.tsx +2 -2
  585. package/src/generated/Circle.tsx +2 -2
  586. package/src/generated/Clock.tsx +2 -2
  587. package/src/generated/ClockWithArrow.tsx +2 -2
  588. package/src/generated/Clone.tsx +2 -2
  589. package/src/generated/Cloud.tsx +2 -2
  590. package/src/generated/Code.tsx +2 -2
  591. package/src/generated/CodeBlock.tsx +2 -2
  592. package/src/generated/Coin.tsx +2 -2
  593. package/src/generated/Colon.tsx +2 -2
  594. package/src/generated/Config.tsx +2 -2
  595. package/src/generated/Connect.tsx +2 -2
  596. package/src/generated/Copy.tsx +2 -2
  597. package/src/generated/CreditCard.tsx +2 -2
  598. package/src/generated/CurlyBraces.tsx +2 -2
  599. package/src/generated/Cursor.tsx +2 -2
  600. package/src/generated/Dashboard.tsx +2 -2
  601. package/src/generated/Database.tsx +2 -2
  602. package/src/generated/Diagram.tsx +2 -2
  603. package/src/generated/Diagram2.tsx +2 -2
  604. package/src/generated/Diagram3.tsx +2 -2
  605. package/src/generated/Disconnect.tsx +2 -2
  606. package/src/generated/Download.tsx +2 -2
  607. package/src/generated/Drag.tsx +2 -2
  608. package/src/generated/Edit.tsx +2 -2
  609. package/src/generated/Ellipsis.tsx +2 -2
  610. package/src/generated/Email.tsx +2 -2
  611. package/src/generated/EmptyDatabase.tsx +2 -2
  612. package/src/generated/EmptyFolder.tsx +2 -2
  613. package/src/generated/Eraser.tsx +2 -2
  614. package/src/generated/Escalation.tsx +2 -2
  615. package/src/generated/Export.tsx +2 -2
  616. package/src/generated/Favorite.tsx +2 -2
  617. package/src/generated/Federation.tsx +2 -2
  618. package/src/generated/File.tsx +2 -2
  619. package/src/generated/Filter.tsx +2 -2
  620. package/src/generated/Folder.tsx +2 -2
  621. package/src/generated/Format.tsx +2 -2
  622. package/src/generated/FullScreenEnter.tsx +2 -2
  623. package/src/generated/FullScreenExit.tsx +2 -2
  624. package/src/generated/Function.tsx +2 -2
  625. package/src/generated/Gauge.tsx +2 -2
  626. package/src/generated/GlobeAmericas.tsx +2 -2
  627. package/src/generated/GovernmentBuilding.tsx +2 -2
  628. package/src/generated/Guide.tsx +39 -0
  629. package/src/generated/Hash.tsx +2 -2
  630. package/src/generated/HiddenSecondaryNode.tsx +2 -2
  631. package/src/generated/Highlight.tsx +2 -2
  632. package/src/generated/Home.tsx +2 -2
  633. package/src/generated/HorizontalDrag.tsx +2 -2
  634. package/src/generated/Import.tsx +2 -2
  635. package/src/generated/ImportantWithCircle.tsx +2 -2
  636. package/src/generated/InfoWithCircle.tsx +2 -2
  637. package/src/generated/InternalEmployee.tsx +2 -2
  638. package/src/generated/InviteUser.tsx +2 -2
  639. package/src/generated/Key.tsx +2 -2
  640. package/src/generated/Laptop.tsx +2 -2
  641. package/src/generated/LightningBolt.tsx +2 -2
  642. package/src/generated/Link.tsx +2 -2
  643. package/src/generated/List.tsx +2 -2
  644. package/src/generated/Lock.tsx +2 -2
  645. package/src/generated/LogIn.tsx +2 -2
  646. package/src/generated/LogOut.tsx +2 -2
  647. package/src/generated/MagnifyingGlass.tsx +2 -2
  648. package/src/generated/Megaphone.tsx +2 -2
  649. package/src/generated/Menu.tsx +2 -2
  650. package/src/generated/Minus.tsx +2 -2
  651. package/src/generated/Mobile.tsx +2 -2
  652. package/src/generated/Moon.tsx +2 -2
  653. package/src/generated/MultiDirectionArrow.tsx +2 -2
  654. package/src/generated/MultiLayers.tsx +2 -2
  655. package/src/generated/NavCollapse.tsx +2 -2
  656. package/src/generated/NavExpand.tsx +2 -2
  657. package/src/generated/NoFilter.tsx +2 -2
  658. package/src/generated/NotAllowed.tsx +2 -2
  659. package/src/generated/Note.tsx +2 -2
  660. package/src/generated/NumberedList.tsx +2 -2
  661. package/src/generated/OpenNewTab.tsx +2 -2
  662. package/src/generated/OutlineFavorite.tsx +2 -2
  663. package/src/generated/Package.tsx +2 -2
  664. package/src/generated/Pause.tsx +2 -2
  665. package/src/generated/Pending.tsx +2 -2
  666. package/src/generated/Person.tsx +2 -2
  667. package/src/generated/PersonGroup.tsx +2 -2
  668. package/src/generated/PersonWithLock.tsx +2 -2
  669. package/src/generated/Pin.tsx +2 -2
  670. package/src/generated/Play.tsx +2 -2
  671. package/src/generated/Plus.tsx +2 -2
  672. package/src/generated/PlusWithCircle.tsx +2 -2
  673. package/src/generated/Primary.tsx +2 -2
  674. package/src/generated/Project.tsx +2 -2
  675. package/src/generated/QuestionMarkWithCircle.tsx +2 -2
  676. package/src/generated/Read.tsx +2 -2
  677. package/src/generated/Recommended.tsx +2 -2
  678. package/src/generated/Redo.tsx +2 -2
  679. package/src/generated/Refresh.tsx +2 -2
  680. package/src/generated/Relationship.tsx +2 -2
  681. package/src/generated/ReplicaSet.tsx +2 -2
  682. package/src/generated/Resize.tsx +2 -2
  683. package/src/generated/Resource.tsx +39 -0
  684. package/src/generated/Return.tsx +2 -2
  685. package/src/generated/Revert.tsx +2 -2
  686. package/src/generated/Router.tsx +2 -2
  687. package/src/generated/SMS.tsx +2 -2
  688. package/src/generated/Save.tsx +2 -2
  689. package/src/generated/SearchIndex.tsx +2 -2
  690. package/src/generated/Secondary.tsx +2 -2
  691. package/src/generated/Serverless.tsx +2 -2
  692. package/src/generated/Settings.tsx +2 -2
  693. package/src/generated/ShardedCluster.tsx +2 -2
  694. package/src/generated/Shell.tsx +2 -2
  695. package/src/generated/Shirt.tsx +2 -2
  696. package/src/generated/SortAscending.tsx +2 -2
  697. package/src/generated/SortDescending.tsx +2 -2
  698. package/src/generated/Sparkle.tsx +2 -2
  699. package/src/generated/SplitHorizontal.tsx +2 -2
  700. package/src/generated/SplitVertical.tsx +2 -2
  701. package/src/generated/Stitch.tsx +2 -2
  702. package/src/generated/Stop.tsx +2 -2
  703. package/src/generated/String.tsx +2 -2
  704. package/src/generated/Sun.tsx +2 -2
  705. package/src/generated/Support.tsx +2 -2
  706. package/src/generated/Sweep.tsx +2 -2
  707. package/src/generated/Table.tsx +2 -2
  708. package/src/generated/Tag.tsx +2 -2
  709. package/src/generated/TemporaryTable.tsx +2 -2
  710. package/src/generated/ThumbsDown.tsx +2 -2
  711. package/src/generated/ThumbsUp.tsx +2 -2
  712. package/src/generated/TimeSeries.tsx +2 -2
  713. package/src/generated/TimeSeriesCollection.tsx +2 -2
  714. package/src/generated/Trash.tsx +2 -2
  715. package/src/generated/Undo.tsx +2 -2
  716. package/src/generated/University.tsx +2 -2
  717. package/src/generated/Unlock.tsx +2 -2
  718. package/src/generated/Unsorted.tsx +2 -2
  719. package/src/generated/UpDownCarets.tsx +2 -2
  720. package/src/generated/Upload.tsx +2 -2
  721. package/src/generated/VerticalEllipsis.tsx +2 -2
  722. package/src/generated/View.tsx +2 -2
  723. package/src/generated/Visibility.tsx +2 -2
  724. package/src/generated/VisibilityOff.tsx +2 -2
  725. package/src/generated/Warning.tsx +2 -2
  726. package/src/generated/Wizard.tsx +2 -2
  727. package/src/generated/Wrench.tsx +2 -2
  728. package/src/generated/Write.tsx +2 -2
  729. package/src/generated/X.tsx +2 -2
  730. package/src/generated/XWithCircle.tsx +2 -2
  731. package/src/glyphs/Guide.svg +5 -0
  732. package/src/glyphs/Resource.svg +5 -0
  733. package/src/glyphs/index.ts +4 -0
  734. package/stories.js +1 -1
  735. package/tsconfig.json +0 -1
  736. package/turbo.json +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafygreen-ui/icon",
3
- "version": "13.2.1",
3
+ "version": "13.3.0",
4
4
  "description": "LeafyGreen UI Kit Icons",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -16,19 +16,19 @@
16
16
  "publishConfig": {
17
17
  "access": "public"
18
18
  },
19
+ "dependencies": {
20
+ "lodash": "^4.17.21",
21
+ "@leafygreen-ui/emotion": "^4.1.1"
22
+ },
19
23
  "devDependencies": {
20
24
  "@svgr/core": "^5.3.1",
21
- "@types/meow": "^6.0.0",
22
25
  "@types/xml2json": "^0.11.0",
23
- "meow": "^6.1.0",
26
+ "commander": "^11.0.0",
24
27
  "ts-node": "^10.9.2",
25
28
  "xml2json": "^0.12.0",
26
- "@leafygreen-ui/lib": "^14.2.0",
27
- "@leafygreen-ui/palette": "^4.1.4"
28
- },
29
- "dependencies": {
30
- "lodash": "^4.17.21",
31
- "@leafygreen-ui/emotion": "^4.1.0"
29
+ "@leafygreen-ui/palette": "^4.1.4",
30
+ "@lg-tools/lint": "^2.1.1",
31
+ "@leafygreen-ui/lib": "^14.2.0"
32
32
  },
33
33
  "gitHead": "dd71a2d404218ccec2e657df9c0263dc1c15b9e0",
34
34
  "homepage": "https://github.com/mongodb/leafygreen-ui/tree/main/packages/icon",
@@ -40,7 +40,7 @@
40
40
  "url": "https://jira.mongodb.org/projects/PD/summary"
41
41
  },
42
42
  "scripts": {
43
- "prebuild": "ts-node ./scripts/prebuild.ts --files",
43
+ "prebuild": "ts-node ./scripts/prebuild.ts",
44
44
  "build": "lg build-package",
45
45
  "tsc": "lg build-ts",
46
46
  "docs": "lg build-tsdoc"
@@ -0,0 +1,19 @@
1
+ import { createHash } from 'crypto';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+
5
+ export function getChecksum(svgContent: string, processedSVGR: string): string {
6
+ const scriptPath = path.resolve(__dirname, './prebuild.ts');
7
+ const scriptContent = fs.readFileSync(scriptPath, 'utf8');
8
+ const checksumContent = fs.readFileSync(__filename, 'utf8');
9
+
10
+ // Calculate the checksum
11
+ const checksum = createHash('md5')
12
+ .update(checksumContent)
13
+ .update(scriptContent)
14
+ .update(svgContent)
15
+ .update(processedSVGR)
16
+ .digest('hex');
17
+
18
+ return checksum;
19
+ }
@@ -0,0 +1,31 @@
1
+ import { FileObject } from './prebuild.types';
2
+
3
+ export async function indexTemplate(svgFiles: Array<FileObject>) {
4
+ const imports = svgFiles
5
+ .map(({ name }) => `import ${name} from './${name}.svg';`)
6
+ .join('\n');
7
+
8
+ const _glyphs = `{
9
+ ${svgFiles.map(({ name }) => `${name}`).join(',\n')}
10
+ }`;
11
+
12
+ return `
13
+ import { createGlyphComponent } from '../createGlyphComponent';
14
+ import { LGGlyph } from '../types';
15
+
16
+ // Glyphs
17
+ ${imports}
18
+
19
+ const _glyphs = ${_glyphs} as const;
20
+
21
+ export type GlyphName = keyof typeof _glyphs;
22
+
23
+ const glyphKeys = Object.keys(_glyphs) as Array<GlyphName>;
24
+
25
+ export const glyphs = glyphKeys.reduce((acc, name) => {
26
+ acc[name] = createGlyphComponent(name, _glyphs[name]);
27
+
28
+ return acc;
29
+ }, {} as Record<GlyphName, LGGlyph.Component>);
30
+ `;
31
+ }
@@ -1,129 +1,99 @@
1
- const { createHash } = require('crypto');
2
- const fs = require('fs');
3
- const path = require('path');
4
- const { promisify } = require('util');
5
- const { default: svgr } = require('@svgr/core');
6
- const meow = require('meow');
7
- const template = require('./template');
8
- const svgrrc = require('../.svgrrc');
9
-
10
- interface Flags {
11
- outDir?: string;
1
+ /* eslint-disable no-console */
2
+ import { formatLG } from '@lg-tools/lint';
3
+ // @ts-expect-error - no types in svgr v5.5
4
+ import { default as svgr } from '@svgr/core';
5
+ import { Command } from 'commander';
6
+ import fs from 'fs';
7
+ import path from 'path';
8
+
9
+ import svgrrc from '../.svgrrc';
10
+
11
+ import { getChecksum } from './checksum';
12
+ import { indexTemplate } from './indexTemplate';
13
+ import { FileObject, PrebuildOptions } from './prebuild.types';
14
+ import { svgrTemplate } from './svgrTemplate';
15
+
16
+ const program = new Command()
17
+ .description('Process SVG files and generate React components')
18
+ .option('-o, --outDir <path>', 'Output directory for built SVG components')
19
+ .option('-v, --verbose', 'Enable verbose output', false)
20
+ .parse();
21
+
22
+ const options = program.opts() as PrebuildOptions;
23
+
24
+ async function buildSvgFiles(options: PrebuildOptions): Promise<void> {
25
+ const svgFiles: Array<FileObject> = await getSVGFiles(options);
26
+ const outputDir = await createOutputDirectory(options);
27
+ const processFile = makeFileProcessor(outputDir, options);
28
+ options?.verbose && console.log('Processing SVG files...\n');
29
+ await Promise.all(svgFiles.map(processFile));
30
+ await createIndexFile(svgFiles, options);
12
31
  }
13
32
 
14
- interface FileObject {
15
- name: string;
16
- path: string;
17
- }
18
-
19
- const usageString = `
20
- Usage
21
- $ ts-node ./prebuild.ts <filename(s)>
22
-
23
- Options
24
- --outDir, -o Output directory for built SVG components
25
- `;
26
-
27
- const cliConfig = {
28
- flags: {
29
- outDir: {
30
- type: 'string',
31
- alias: 'o',
32
- },
33
- },
34
- };
35
-
36
- const cli = meow(usageString, cliConfig);
37
-
38
- async function buildSvgFiles(
39
- input: Array<string>,
40
- flags: Flags,
41
- ): Promise<void> {
42
- const svgFiles: Array<FileObject> = await (async () => {
43
- if (input?.length) {
44
- const filteredSvgFiles = input.filter(filterSvgFiles);
45
-
46
- return filteredSvgFiles.map(filePath => ({
47
- name: path.basename(filePath, '.svg'),
48
- path: path.resolve(process.cwd(), filePath),
49
- }));
50
- }
51
-
52
- const glyphsDir: string = path.resolve(__dirname, '..', 'src', 'glyphs');
53
- const svgFiles = await promisify(fs.readdir)(glyphsDir);
54
- const filteredSvgFiles = svgFiles.filter(filterSvgFiles);
55
-
56
- return filteredSvgFiles.map((fileName: string) => ({
57
- name: fileName.replace('.svg', ''),
58
- path: path.resolve(glyphsDir, fileName),
59
- }));
60
- })();
61
-
62
- const outputDir = await createOutputDirectory(flags);
63
-
64
- await Promise.all(svgFiles.map(processFile(outputDir)));
65
-
66
- await createIndexFile(svgFiles);
33
+ /**
34
+ * Get all SVG files from the glyphs directory
35
+ */
36
+ async function getSVGFiles(
37
+ options?: PrebuildOptions,
38
+ ): Promise<Array<FileObject>> {
39
+ const glyphsDir = path.resolve(__dirname, '..', 'src', 'glyphs');
40
+ const filePaths = fs.readdirSync(glyphsDir);
41
+ const svgFilePaths = filePaths.filter(filterSvgFiles);
42
+
43
+ options?.verbose &&
44
+ console.log(svgFilePaths.length, `SVG files found in ${glyphsDir}`);
45
+
46
+ const svgFiles = svgFilePaths.map((fileName: string) => ({
47
+ name: fileName.replace('.svg', ''),
48
+ path: path.resolve(glyphsDir, fileName),
49
+ }));
50
+
51
+ return svgFiles;
67
52
  }
68
53
 
54
+ /**
55
+ * Filter function to check if a string contains '.svg'
56
+ */
69
57
  function filterSvgFiles(str: string): boolean {
70
58
  return str.includes('.svg');
71
59
  }
72
60
 
73
- async function createOutputDirectory(flags: Flags) {
74
- let outputDir = path.resolve(__dirname, '..', 'src/generated');
75
-
76
- if (flags.outDir) {
77
- outputDir = path.resolve(process.cwd(), flags.outDir);
78
- }
61
+ /**
62
+ * Create the output directory if it doesn't exist
63
+ */
64
+ async function createOutputDirectory(options: PrebuildOptions) {
65
+ const outputDir = options.outDir
66
+ ? path.resolve(process.cwd(), options.outDir)
67
+ : path.resolve(__dirname, '..', 'src/generated');
79
68
 
80
- const outputDirectoryExists = await promisify(fs.exists)(outputDir);
69
+ const outputDirectoryExists = fs.existsSync(outputDir);
81
70
 
82
71
  if (!outputDirectoryExists) {
83
- await promisify(fs.mkdir)(outputDir, { recursive: true });
72
+ options.verbose && console.log(`Creating directory: ${outputDir}`);
73
+ fs.mkdirSync(outputDir, { recursive: true });
84
74
  }
85
75
 
76
+ options.verbose && console.log(`Using output directory: ${outputDir}`);
86
77
  return outputDir;
87
78
  }
88
79
 
89
- async function indexTemplate(svgFiles: Array<FileObject>) {
90
- const imports = svgFiles
91
- .map(({ name }) => `import ${name} from './${name}.svg';`)
92
- .join('\n');
93
-
94
- const _glyphs = `{
95
- ${svgFiles.map(({ name }) => `${name}`).join(',\n')}
96
- }`;
97
-
98
- return `
99
- import { createGlyphComponent } from '../createGlyphComponent';
100
- import { LGGlyph } from '../types';
101
-
102
- // Glyphs
103
- ${imports}
104
-
105
- const _glyphs = ${_glyphs} as const;
106
-
107
- export type GlyphName = keyof typeof _glyphs;
108
-
109
- const glyphKeys = Object.keys(_glyphs) as Array<GlyphName>;
110
-
111
- export const glyphs = glyphKeys.reduce((acc, name) => {
112
- acc[name] = createGlyphComponent(name, _glyphs[name]);
113
-
114
- return acc;
115
- }, {} as Record<GlyphName, LGGlyph.Component>);
116
- `;
117
- }
118
-
119
- async function createIndexFile(svgFiles: Array<FileObject>) {
80
+ /**
81
+ * Create the index file for the generated components
82
+ */
83
+ async function createIndexFile(
84
+ svgFiles: Array<FileObject>,
85
+ options?: PrebuildOptions,
86
+ ) {
120
87
  const indexPath = path.resolve(__dirname, '..', 'src/glyphs', 'index.ts');
121
-
88
+ options?.verbose && console.log('Writing index file...', indexPath);
122
89
  const indexContent = await indexTemplate(svgFiles);
123
-
124
- await promisify(fs.writeFile)(indexPath, indexContent, { encoding: 'utf8' });
90
+ const formattedIndexContent = await formatLG(indexContent, indexPath);
91
+ fs.writeFileSync(indexPath, formattedIndexContent, { encoding: 'utf8' });
125
92
  }
126
93
 
94
+ /**
95
+ * Annotate the generated file with script and checksum information
96
+ */
127
97
  function annotateFileContent(
128
98
  script: string,
129
99
  checksum: string,
@@ -138,37 +108,48 @@ function annotateFileContent(
138
108
  ${moduleCode}`;
139
109
  }
140
110
 
141
- function processFile(outputDir: string) {
111
+ /**
112
+ * Returns an async function that processes a single SVG file
113
+ */
114
+ function makeFileProcessor(outputDir: string, options?: PrebuildOptions) {
142
115
  return async (file: FileObject) => {
143
- const fileContent = await promisify(fs.readFile)(file.path, {
116
+ const svgContent = fs.readFileSync(file.path, {
144
117
  encoding: 'utf8',
145
118
  });
146
119
 
147
- const moduleCode = await svgr(
148
- fileContent,
120
+ const processedSVGR = await svgr(
121
+ svgContent,
149
122
  {
150
123
  ...svgrrc,
151
- template,
124
+ template: svgrTemplate,
152
125
  },
153
126
  {
154
127
  componentName: file.name,
155
128
  },
156
129
  );
157
130
 
158
- const script =
159
- './node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts';
131
+ const scriptPath =
132
+ 'packages/icon/' +
133
+ path.relative(path.resolve(__dirname, process.cwd()), __filename);
160
134
 
161
- const checksum = createHash('md5')
162
- .update(script)
163
- .update(fileContent)
164
- .update(moduleCode)
165
- .digest('hex');
135
+ const checksum = getChecksum(svgContent, processedSVGR);
166
136
 
167
- await promisify(fs.writeFile)(
168
- path.resolve(outputDir, `${file.name}.tsx`),
169
- annotateFileContent(script, checksum, moduleCode),
137
+ const outfilePath = path.resolve(outputDir, `${file.name}.tsx`);
138
+ const annotatedFileContent = annotateFileContent(
139
+ scriptPath,
140
+ checksum,
141
+ processedSVGR,
170
142
  );
143
+
144
+ if (options?.verbose) {
145
+ console.log(`Processed ${file.name}.svg`);
146
+ console.log(`Checksum: ${checksum}`);
147
+ console.log(`Writing to ${outfilePath}\n`);
148
+ }
149
+
150
+ // We intentionally don't format the generated .tsx files
151
+ fs.writeFileSync(outfilePath, annotatedFileContent);
171
152
  };
172
153
  }
173
154
 
174
- buildSvgFiles(cli.input, cli.flags);
155
+ buildSvgFiles(options);
@@ -0,0 +1,9 @@
1
+ export interface PrebuildOptions {
2
+ outDir?: string;
3
+ verbose?: boolean;
4
+ }
5
+
6
+ export interface FileObject {
7
+ name: string;
8
+ path: string;
9
+ }
@@ -19,7 +19,7 @@ interface ASTParts extends Record<string, any> {
19
19
  props: string;
20
20
  }
21
21
 
22
- module.exports = function template(
22
+ export function svgrTemplate(
23
23
  { template }: BabelAPI,
24
24
  { state: { componentName } }: SVGROptions,
25
25
  { imports, jsx, exports }: ASTParts,
@@ -89,4 +89,4 @@ module.exports = function template(
89
89
  jsx: jsx,
90
90
  exports: exports,
91
91
  });
92
- };
92
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "@lg-tools/build/config/root.tsconfig.json",
3
+ "compilerOptions": {
4
+ "noUnusedLocals": false,
5
+ "strict": true,
6
+ "baseUrl": ".",
7
+ }
8
+ }
package/src/Icon.spec.tsx CHANGED
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { render, screen } from '@testing-library/react';
3
- import { createHash } from 'crypto';
4
3
  import fs from 'fs';
5
4
  import { axe } from 'jest-axe';
6
5
  import path from 'path';
@@ -8,6 +7,8 @@ import { toJson } from 'xml2json';
8
7
 
9
8
  import { typeIs } from '@leafygreen-ui/lib';
10
9
 
10
+ import { getChecksum } from '../scripts/checksum';
11
+
11
12
  import EditIcon from './generated/Edit';
12
13
  import { Size } from './glyphCommon';
13
14
  import { isComponentGlyph } from './isComponentGlyph';
@@ -300,11 +301,7 @@ describe('Generated glyphs', () => {
300
301
  generatedFileContents,
301
302
  )!;
302
303
 
303
- const expectedChecksum = createHash('md5')
304
- .update(script)
305
- .update(svgFileContents)
306
- .update(checkedContents)
307
- .digest('hex');
304
+ const expectedChecksum = getChecksum(svgFileContents, checkedContents);
308
305
 
309
306
  try {
310
307
  expect(checksum).toEqual(expectedChecksum);
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 710e484afa428e912ba4f64c4b67fe01
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum b1462a08eab913e10b9385a55440e940
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 0b5784a92dc689bd7e6fb60fe62ba250
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 94edbcbd977952688b9a5d82257d4fa3
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 9c7685193748f0622060501d20b647da
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 67ed4c533b73b9b1b257b35240dfaff8
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum a31c1711ca9859701cbae4602be32c4e
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum bc0ab82c383fd31eea4164abede50674
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum da931e2449f5c7dadff04e5eb0de1c64
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 5d856100c7e247557d0ba97e21ab352d
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 7df980367ca0e9404ef8e83ea9998825
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum d5134087d2cfe0f3188172858bdbe02d
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 6fe7a2fb33a9317cdb0eb623b4a512f1
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 92fbf01559fe81dbe74fb88c7927657d
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum f58b7f77e7f9e0c2a69696b267c5648e
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum ab6295f4bf5903fd581d1f700da3e92b
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum c6afd5ce1da7a6b2013f496c87bd1ba4
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum f6533dcd9bd5793b72b02125be632550
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum fbedd1960b8db8e53e861a106dd0bde5
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 819e62e41a663df9983c700be78f249b
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 5ac6ebd47ecff6ced573826b1763b0ce
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum eb17c76d71695771a1bc6e3c421d237b
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum e7569f0858dd2ad021a256a8ddf7741d
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 3bcabd9054dad5769d6088a816079008
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 6f3784b482d9d43312208d0d3c2ff9a2
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 28181e476135f27a919e10ac176afd9f
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 6e0debf05432e1898e40f6821a2f0d86
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 0bee3168ba1dd004d4de7fd42e3df0d0
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum d9bb32cae8b8ecceae5fbadae79efb0c
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum aeddf9ec2b27c582e0a08aebc3646212
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 25ac240d7e0dc31a60013ab9d109a1d3
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 02bf7244c0ddf3650d5b3fc5d17e6190
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 2e43e49bccc80ca611fb1ebdb9c440f8
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 9e5fd2432147d2f4c3afdf8b2b446847
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * This is a generated file. Do not modify it manually.
3
3
  *
4
- * @script ./node_modules/.bin/ts-node packages/icon/scripts/prebuild.ts
5
- * @checksum 661a0a5de5f9f5067318cd359ad8b746
4
+ * @script packages/icon/scripts/prebuild.ts
5
+ * @checksum 274e44b9d7f7791de831d837f16ce386
6
6
  */
7
7
  import * as React from "react";
8
8
  import { css, cx } from '@leafygreen-ui/emotion';