jekyll-theme-clean-blog 4.0.5 → 4.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (333) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +94 -85
  4. data/_includes/footer.html +21 -1
  5. data/_includes/google-analytics.html +10 -0
  6. data/_includes/navbar.html +1 -1
  7. data/_includes/read_time.html +1 -1
  8. data/_layouts/default.html +9 -7
  9. data/_layouts/home.html +3 -2
  10. data/_layouts/page.html +18 -18
  11. data/_layouts/post.html +4 -5
  12. data/assets/vendor/bootstrap/css/bootstrap.css +790 -399
  13. data/assets/vendor/bootstrap/css/bootstrap.css.map +1 -1
  14. data/assets/vendor/bootstrap/css/bootstrap.min.css +4 -4
  15. data/assets/vendor/bootstrap/css/bootstrap.min.css.map +1 -1
  16. data/assets/vendor/bootstrap/js/bootstrap.bundle.js +1111 -896
  17. data/assets/vendor/bootstrap/js/bootstrap.bundle.js.map +1 -1
  18. data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js +3 -3
  19. data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js.map +1 -1
  20. data/assets/vendor/bootstrap/js/bootstrap.js +1043 -872
  21. data/assets/vendor/bootstrap/js/bootstrap.js.map +1 -1
  22. data/assets/vendor/bootstrap/js/bootstrap.min.js +3 -3
  23. data/assets/vendor/bootstrap/js/bootstrap.min.js.map +1 -1
  24. data/assets/vendor/fontawesome-free/css/all.css +278 -12
  25. data/assets/vendor/fontawesome-free/css/all.min.css +2 -2
  26. data/assets/vendor/fontawesome-free/css/brands.css +8 -3
  27. data/assets/vendor/fontawesome-free/css/brands.min.css +5 -1
  28. data/assets/vendor/fontawesome-free/css/fontawesome.css +275 -6
  29. data/assets/vendor/fontawesome-free/css/fontawesome.min.css +5 -1
  30. data/assets/vendor/fontawesome-free/css/regular.css +5 -1
  31. data/assets/vendor/fontawesome-free/css/regular.min.css +5 -1
  32. data/assets/vendor/fontawesome-free/css/solid.css +5 -1
  33. data/assets/vendor/fontawesome-free/css/solid.min.css +5 -1
  34. data/assets/vendor/fontawesome-free/css/svg-with-js.css +29 -0
  35. data/assets/vendor/fontawesome-free/css/svg-with-js.min.css +5 -1
  36. data/assets/vendor/fontawesome-free/css/v4-shims.css +19 -9
  37. data/assets/vendor/fontawesome-free/css/v4-shims.min.css +5 -1
  38. data/assets/vendor/fontawesome-free/js/all.js +410 -224
  39. data/assets/vendor/fontawesome-free/js/all.min.js +5 -1
  40. data/assets/vendor/fontawesome-free/js/brands.js +97 -65
  41. data/assets/vendor/fontawesome-free/js/brands.min.js +5 -1
  42. data/assets/vendor/fontawesome-free/js/conflict-detection.js +998 -0
  43. data/assets/vendor/fontawesome-free/js/conflict-detection.min.js +5 -0
  44. data/assets/vendor/fontawesome-free/js/fontawesome.js +181 -83
  45. data/assets/vendor/fontawesome-free/js/fontawesome.min.js +5 -1
  46. data/assets/vendor/fontawesome-free/js/regular.js +5 -1
  47. data/assets/vendor/fontawesome-free/js/regular.min.js +5 -1
  48. data/assets/vendor/fontawesome-free/js/solid.js +139 -75
  49. data/assets/vendor/fontawesome-free/js/solid.min.js +5 -1
  50. data/assets/vendor/fontawesome-free/js/v4-shims.js +5 -1
  51. data/assets/vendor/fontawesome-free/js/v4-shims.min.js +5 -1
  52. data/assets/vendor/fontawesome-free/less/_core.less +1 -1
  53. data/assets/vendor/fontawesome-free/less/_icons.less +90 -2
  54. data/assets/vendor/fontawesome-free/less/_list.less +1 -1
  55. data/assets/vendor/fontawesome-free/less/_mixins.less +0 -1
  56. data/assets/vendor/fontawesome-free/less/_shims.less +13 -9
  57. data/assets/vendor/fontawesome-free/less/_variables.less +101 -11
  58. data/assets/vendor/fontawesome-free/less/brands.less +6 -1
  59. data/assets/vendor/fontawesome-free/less/fontawesome.less +4 -0
  60. data/assets/vendor/fontawesome-free/less/regular.less +4 -0
  61. data/assets/vendor/fontawesome-free/less/solid.less +4 -0
  62. data/assets/vendor/fontawesome-free/less/v4-shims.less +4 -0
  63. data/assets/vendor/fontawesome-free/metadata/categories.yml +2562 -0
  64. data/assets/vendor/fontawesome-free/metadata/icons.yml +21485 -0
  65. data/assets/vendor/fontawesome-free/metadata/shims.yml +298 -0
  66. data/assets/vendor/fontawesome-free/metadata/sponsors.yml +688 -0
  67. data/assets/vendor/fontawesome-free/package.json +31 -53
  68. data/assets/vendor/fontawesome-free/scss/_core.scss +1 -0
  69. data/assets/vendor/fontawesome-free/scss/_icons.scss +90 -2
  70. data/assets/vendor/fontawesome-free/scss/_mixins.scss +0 -1
  71. data/assets/vendor/fontawesome-free/scss/_shims.scss +13 -9
  72. data/assets/vendor/fontawesome-free/scss/_variables.scss +101 -11
  73. data/assets/vendor/fontawesome-free/scss/brands.scss +6 -1
  74. data/assets/vendor/fontawesome-free/scss/fontawesome.scss +4 -0
  75. data/assets/vendor/fontawesome-free/scss/regular.scss +4 -0
  76. data/assets/vendor/fontawesome-free/scss/solid.scss +4 -0
  77. data/assets/vendor/fontawesome-free/scss/v4-shims.scss +4 -0
  78. data/assets/vendor/fontawesome-free/sprites/brands.svg +213 -540
  79. data/assets/vendor/fontawesome-free/sprites/regular.svg +5 -153
  80. data/assets/vendor/fontawesome-free/sprites/solid.svg +273 -1025
  81. data/assets/vendor/fontawesome-free/svgs/brands/acquisitions-incorporated.svg +1 -1
  82. data/assets/vendor/fontawesome-free/svgs/brands/adobe.svg +1 -1
  83. data/assets/vendor/fontawesome-free/svgs/brands/airbnb.svg +1 -0
  84. data/assets/vendor/fontawesome-free/svgs/brands/amazon-pay.svg +1 -1
  85. data/assets/vendor/fontawesome-free/svgs/brands/android.svg +1 -1
  86. data/assets/vendor/fontawesome-free/svgs/brands/angular.svg +1 -1
  87. data/assets/vendor/fontawesome-free/svgs/brands/apple.svg +1 -1
  88. data/assets/vendor/fontawesome-free/svgs/brands/artstation.svg +1 -1
  89. data/assets/vendor/fontawesome-free/svgs/brands/battle-net.svg +1 -0
  90. data/assets/vendor/fontawesome-free/svgs/brands/bitbucket.svg +1 -1
  91. data/assets/vendor/fontawesome-free/svgs/brands/bootstrap.svg +1 -0
  92. data/assets/vendor/fontawesome-free/svgs/brands/buffer.svg +1 -0
  93. data/assets/vendor/fontawesome-free/svgs/brands/buy-n-large.svg +1 -0
  94. data/assets/vendor/fontawesome-free/svgs/brands/canadian-maple-leaf.svg +1 -1
  95. data/assets/vendor/fontawesome-free/svgs/brands/centos.svg +1 -1
  96. data/assets/vendor/fontawesome-free/svgs/brands/chromecast.svg +1 -0
  97. data/assets/vendor/fontawesome-free/svgs/brands/cotton-bureau.svg +1 -0
  98. data/assets/vendor/fontawesome-free/svgs/brands/critical-role.svg +1 -1
  99. data/assets/vendor/fontawesome-free/svgs/brands/dailymotion.svg +1 -0
  100. data/assets/vendor/fontawesome-free/svgs/brands/diaspora.svg +1 -1
  101. data/assets/vendor/fontawesome-free/svgs/brands/edge.svg +1 -1
  102. data/assets/vendor/fontawesome-free/svgs/brands/evernote.svg +1 -0
  103. data/assets/vendor/fontawesome-free/svgs/brands/facebook-f.svg +1 -1
  104. data/assets/vendor/fontawesome-free/svgs/brands/facebook-messenger.svg +1 -1
  105. data/assets/vendor/fontawesome-free/svgs/brands/facebook-square.svg +1 -1
  106. data/assets/vendor/fontawesome-free/svgs/brands/facebook.svg +1 -1
  107. data/assets/vendor/fontawesome-free/svgs/brands/fedora.svg +1 -1
  108. data/assets/vendor/fontawesome-free/svgs/brands/figma.svg +1 -1
  109. data/assets/vendor/fontawesome-free/svgs/brands/firefox-browser.svg +1 -0
  110. data/assets/vendor/fontawesome-free/svgs/brands/firefox.svg +1 -1
  111. data/assets/vendor/fontawesome-free/svgs/brands/free-code-camp.svg +1 -1
  112. data/assets/vendor/fontawesome-free/svgs/brands/fulcrum.svg +1 -1
  113. data/assets/vendor/fontawesome-free/svgs/brands/git-alt.svg +1 -0
  114. data/assets/vendor/fontawesome-free/svgs/brands/git-square.svg +1 -1
  115. data/assets/vendor/fontawesome-free/svgs/brands/git.svg +1 -1
  116. data/assets/vendor/fontawesome-free/svgs/brands/hackerrank.svg +1 -1
  117. data/assets/vendor/fontawesome-free/svgs/brands/hornbill.svg +1 -1
  118. data/assets/vendor/fontawesome-free/svgs/brands/houzz.svg +1 -1
  119. data/assets/vendor/fontawesome-free/svgs/brands/ideal.svg +1 -0
  120. data/assets/vendor/fontawesome-free/svgs/brands/instagram-square.svg +1 -0
  121. data/assets/vendor/fontawesome-free/svgs/brands/itch-io.svg +1 -0
  122. data/assets/vendor/fontawesome-free/svgs/brands/java.svg +1 -1
  123. data/assets/vendor/fontawesome-free/svgs/brands/kaggle.svg +1 -1
  124. data/assets/vendor/fontawesome-free/svgs/brands/keybase.svg +1 -1
  125. data/assets/vendor/fontawesome-free/svgs/brands/laravel.svg +1 -1
  126. data/assets/vendor/fontawesome-free/svgs/brands/linkedin-in.svg +1 -1
  127. data/assets/vendor/fontawesome-free/svgs/brands/mailchimp.svg +1 -1
  128. data/assets/vendor/fontawesome-free/svgs/brands/mandalorian.svg +1 -1
  129. data/assets/vendor/fontawesome-free/svgs/brands/mastodon.svg +1 -1
  130. data/assets/vendor/fontawesome-free/svgs/brands/mdb.svg +1 -0
  131. data/assets/vendor/fontawesome-free/svgs/brands/microblog.svg +1 -0
  132. data/assets/vendor/fontawesome-free/svgs/brands/mixer.svg +1 -0
  133. data/assets/vendor/fontawesome-free/svgs/brands/neos.svg +1 -1
  134. data/assets/vendor/fontawesome-free/svgs/brands/nimblr.svg +1 -1
  135. data/assets/vendor/fontawesome-free/svgs/brands/orcid.svg +1 -0
  136. data/assets/vendor/fontawesome-free/svgs/brands/osi.svg +1 -1
  137. data/assets/vendor/fontawesome-free/svgs/brands/phoenix-squadron.svg +1 -1
  138. data/assets/vendor/fontawesome-free/svgs/brands/pied-piper-square.svg +1 -0
  139. data/assets/vendor/fontawesome-free/svgs/brands/pied-piper.svg +1 -1
  140. data/assets/vendor/fontawesome-free/svgs/brands/quinscape.svg +1 -1
  141. data/assets/vendor/fontawesome-free/svgs/brands/reacteurope.svg +1 -1
  142. data/assets/vendor/fontawesome-free/svgs/brands/redhat.svg +1 -1
  143. data/assets/vendor/fontawesome-free/svgs/brands/rev.svg +1 -1
  144. data/assets/vendor/fontawesome-free/svgs/brands/rocketchat.svg +1 -1
  145. data/assets/vendor/fontawesome-free/svgs/brands/safari.svg +1 -1
  146. data/assets/vendor/fontawesome-free/svgs/brands/salesforce.svg +1 -0
  147. data/assets/vendor/fontawesome-free/svgs/brands/sass.svg +1 -1
  148. data/assets/vendor/fontawesome-free/svgs/brands/shopify.svg +1 -0
  149. data/assets/vendor/fontawesome-free/svgs/brands/shopware.svg +1 -1
  150. data/assets/vendor/fontawesome-free/svgs/brands/sketch.svg +1 -1
  151. data/assets/vendor/fontawesome-free/svgs/brands/sourcetree.svg +1 -1
  152. data/assets/vendor/fontawesome-free/svgs/brands/speakap.svg +1 -1
  153. data/assets/vendor/fontawesome-free/svgs/brands/speaker-deck.svg +1 -0
  154. data/assets/vendor/fontawesome-free/svgs/brands/stackpath.svg +1 -0
  155. data/assets/vendor/fontawesome-free/svgs/brands/strava.svg +1 -1
  156. data/assets/vendor/fontawesome-free/svgs/brands/stripe-s.svg +1 -1
  157. data/assets/vendor/fontawesome-free/svgs/brands/suse.svg +1 -1
  158. data/assets/vendor/fontawesome-free/svgs/brands/swift.svg +1 -0
  159. data/assets/vendor/fontawesome-free/svgs/brands/symfony.svg +1 -0
  160. data/assets/vendor/fontawesome-free/svgs/brands/teamspeak.svg +1 -1
  161. data/assets/vendor/fontawesome-free/svgs/brands/the-red-yeti.svg +1 -1
  162. data/assets/vendor/fontawesome-free/svgs/brands/themeco.svg +1 -1
  163. data/assets/vendor/fontawesome-free/svgs/brands/think-peaks.svg +1 -1
  164. data/assets/vendor/fontawesome-free/svgs/brands/twitch.svg +1 -1
  165. data/assets/vendor/fontawesome-free/svgs/brands/typo3.svg +1 -1
  166. data/assets/vendor/fontawesome-free/svgs/brands/umbraco.svg +1 -0
  167. data/assets/vendor/fontawesome-free/svgs/brands/unity.svg +1 -0
  168. data/assets/vendor/fontawesome-free/svgs/brands/ups.svg +1 -1
  169. data/assets/vendor/fontawesome-free/svgs/brands/usps.svg +1 -1
  170. data/assets/vendor/fontawesome-free/svgs/brands/waze.svg +1 -0
  171. data/assets/vendor/fontawesome-free/svgs/brands/wolf-pack-battalion.svg +1 -1
  172. data/assets/vendor/fontawesome-free/svgs/brands/yammer.svg +1 -0
  173. data/assets/vendor/fontawesome-free/svgs/brands/yelp.svg +1 -1
  174. data/assets/vendor/fontawesome-free/svgs/regular/hand-spock.svg +1 -1
  175. data/assets/vendor/fontawesome-free/svgs/solid/align-center.svg +1 -1
  176. data/assets/vendor/fontawesome-free/svgs/solid/align-justify.svg +1 -1
  177. data/assets/vendor/fontawesome-free/svgs/solid/align-left.svg +1 -1
  178. data/assets/vendor/fontawesome-free/svgs/solid/align-right.svg +1 -1
  179. data/assets/vendor/fontawesome-free/svgs/solid/atom.svg +1 -1
  180. data/assets/vendor/fontawesome-free/svgs/solid/bahai.svg +1 -0
  181. data/assets/vendor/fontawesome-free/svgs/solid/balance-scale-left.svg +1 -0
  182. data/assets/vendor/fontawesome-free/svgs/solid/balance-scale-right.svg +1 -0
  183. data/assets/vendor/fontawesome-free/svgs/solid/bath.svg +1 -1
  184. data/assets/vendor/fontawesome-free/svgs/solid/biking.svg +1 -0
  185. data/assets/vendor/fontawesome-free/svgs/solid/bold.svg +1 -1
  186. data/assets/vendor/fontawesome-free/svgs/solid/border-all.svg +1 -0
  187. data/assets/vendor/fontawesome-free/svgs/solid/border-none.svg +1 -0
  188. data/assets/vendor/fontawesome-free/svgs/solid/border-style.svg +1 -0
  189. data/assets/vendor/fontawesome-free/svgs/solid/box-tissue.svg +1 -0
  190. data/assets/vendor/fontawesome-free/svgs/solid/brain.svg +1 -1
  191. data/assets/vendor/fontawesome-free/svgs/solid/caravan.svg +1 -0
  192. data/assets/vendor/fontawesome-free/svgs/solid/check-double.svg +1 -1
  193. data/assets/vendor/fontawesome-free/svgs/solid/chess-bishop.svg +1 -1
  194. data/assets/vendor/fontawesome-free/svgs/solid/chess-board.svg +1 -1
  195. data/assets/vendor/fontawesome-free/svgs/solid/chess-king.svg +1 -1
  196. data/assets/vendor/fontawesome-free/svgs/solid/chess-knight.svg +1 -1
  197. data/assets/vendor/fontawesome-free/svgs/solid/chess-pawn.svg +1 -1
  198. data/assets/vendor/fontawesome-free/svgs/solid/chess-queen.svg +1 -1
  199. data/assets/vendor/fontawesome-free/svgs/solid/chess-rook.svg +1 -1
  200. data/assets/vendor/fontawesome-free/svgs/solid/chess.svg +1 -1
  201. data/assets/vendor/fontawesome-free/svgs/solid/clock.svg +1 -1
  202. data/assets/vendor/fontawesome-free/svgs/solid/compress-alt.svg +1 -0
  203. data/assets/vendor/fontawesome-free/svgs/solid/disease.svg +1 -0
  204. data/assets/vendor/fontawesome-free/svgs/solid/dog.svg +1 -1
  205. data/assets/vendor/fontawesome-free/svgs/solid/drum.svg +1 -1
  206. data/assets/vendor/fontawesome-free/svgs/solid/expand-alt.svg +1 -0
  207. data/assets/vendor/fontawesome-free/svgs/solid/expand-arrows-alt.svg +1 -1
  208. data/assets/vendor/fontawesome-free/svgs/solid/external-link-alt.svg +1 -1
  209. data/assets/vendor/fontawesome-free/svgs/solid/fan.svg +1 -0
  210. data/assets/vendor/fontawesome-free/svgs/solid/faucet.svg +1 -0
  211. data/assets/vendor/fontawesome-free/svgs/solid/fax.svg +1 -1
  212. data/assets/vendor/fontawesome-free/svgs/solid/folder-plus.svg +1 -1
  213. data/assets/vendor/fontawesome-free/svgs/solid/font.svg +1 -1
  214. data/assets/vendor/fontawesome-free/svgs/solid/gamepad.svg +1 -1
  215. data/assets/vendor/fontawesome-free/svgs/solid/guitar.svg +1 -1
  216. data/assets/vendor/fontawesome-free/svgs/solid/hand-holding-medical.svg +1 -0
  217. data/assets/vendor/fontawesome-free/svgs/solid/hand-holding-usd.svg +1 -1
  218. data/assets/vendor/fontawesome-free/svgs/solid/hand-holding-water.svg +1 -0
  219. data/assets/vendor/fontawesome-free/svgs/solid/hand-sparkles.svg +1 -0
  220. data/assets/vendor/fontawesome-free/svgs/solid/hand-spock.svg +1 -1
  221. data/assets/vendor/fontawesome-free/svgs/solid/hands-wash.svg +1 -0
  222. data/assets/vendor/fontawesome-free/svgs/solid/handshake-alt-slash.svg +1 -0
  223. data/assets/vendor/fontawesome-free/svgs/solid/handshake-slash.svg +1 -0
  224. data/assets/vendor/fontawesome-free/svgs/solid/hat-cowboy-side.svg +1 -0
  225. data/assets/vendor/fontawesome-free/svgs/solid/hat-cowboy.svg +1 -0
  226. data/assets/vendor/fontawesome-free/svgs/solid/head-side-cough-slash.svg +1 -0
  227. data/assets/vendor/fontawesome-free/svgs/solid/head-side-cough.svg +1 -0
  228. data/assets/vendor/fontawesome-free/svgs/solid/head-side-mask.svg +1 -0
  229. data/assets/vendor/fontawesome-free/svgs/solid/head-side-virus.svg +1 -0
  230. data/assets/vendor/fontawesome-free/svgs/solid/heading.svg +1 -1
  231. data/assets/vendor/fontawesome-free/svgs/solid/hospital-user.svg +1 -0
  232. data/assets/vendor/fontawesome-free/svgs/solid/house-user.svg +1 -0
  233. data/assets/vendor/fontawesome-free/svgs/solid/icons.svg +1 -0
  234. data/assets/vendor/fontawesome-free/svgs/solid/indent.svg +1 -1
  235. data/assets/vendor/fontawesome-free/svgs/solid/italic.svg +1 -1
  236. data/assets/vendor/fontawesome-free/svgs/solid/jedi.svg +1 -1
  237. data/assets/vendor/fontawesome-free/svgs/solid/journal-whills.svg +1 -1
  238. data/assets/vendor/fontawesome-free/svgs/solid/laptop-house.svg +1 -0
  239. data/assets/vendor/fontawesome-free/svgs/solid/list-ol.svg +1 -1
  240. data/assets/vendor/fontawesome-free/svgs/solid/list-ul.svg +1 -1
  241. data/assets/vendor/fontawesome-free/svgs/solid/list.svg +1 -1
  242. data/assets/vendor/fontawesome-free/svgs/solid/lungs-virus.svg +1 -0
  243. data/assets/vendor/fontawesome-free/svgs/solid/lungs.svg +1 -0
  244. data/assets/vendor/fontawesome-free/svgs/solid/magnet.svg +1 -1
  245. data/assets/vendor/fontawesome-free/svgs/solid/meteor.svg +1 -1
  246. data/assets/vendor/fontawesome-free/svgs/solid/mouse.svg +1 -0
  247. data/assets/vendor/fontawesome-free/svgs/solid/music.svg +1 -1
  248. data/assets/vendor/fontawesome-free/svgs/solid/outdent.svg +1 -1
  249. data/assets/vendor/fontawesome-free/svgs/solid/paragraph.svg +1 -1
  250. data/assets/vendor/fontawesome-free/svgs/solid/people-arrows.svg +1 -0
  251. data/assets/vendor/fontawesome-free/svgs/solid/phone-alt.svg +1 -0
  252. data/assets/vendor/fontawesome-free/svgs/solid/phone-square-alt.svg +1 -0
  253. data/assets/vendor/fontawesome-free/svgs/solid/photo-video.svg +1 -0
  254. data/assets/vendor/fontawesome-free/svgs/solid/plane-slash.svg +1 -0
  255. data/assets/vendor/fontawesome-free/svgs/solid/plug.svg +1 -1
  256. data/assets/vendor/fontawesome-free/svgs/solid/pump-medical.svg +1 -0
  257. data/assets/vendor/fontawesome-free/svgs/solid/pump-soap.svg +1 -0
  258. data/assets/vendor/fontawesome-free/svgs/solid/radiation-alt.svg +1 -1
  259. data/assets/vendor/fontawesome-free/svgs/solid/radiation.svg +1 -1
  260. data/assets/vendor/fontawesome-free/svgs/solid/record-vinyl.svg +1 -0
  261. data/assets/vendor/fontawesome-free/svgs/solid/redo.svg +1 -1
  262. data/assets/vendor/fontawesome-free/svgs/solid/remove-format.svg +1 -0
  263. data/assets/vendor/fontawesome-free/svgs/solid/robot.svg +1 -1
  264. data/assets/vendor/fontawesome-free/svgs/solid/rocket.svg +1 -1
  265. data/assets/vendor/fontawesome-free/svgs/solid/satellite-dish.svg +1 -1
  266. data/assets/vendor/fontawesome-free/svgs/solid/satellite.svg +1 -1
  267. data/assets/vendor/fontawesome-free/svgs/solid/shapes.svg +1 -1
  268. data/assets/vendor/fontawesome-free/svgs/solid/shield-virus.svg +1 -0
  269. data/assets/vendor/fontawesome-free/svgs/solid/shower.svg +1 -1
  270. data/assets/vendor/fontawesome-free/svgs/solid/sim-card.svg +1 -1
  271. data/assets/vendor/fontawesome-free/svgs/solid/soap.svg +1 -0
  272. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-down-alt.svg +1 -0
  273. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-down.svg +1 -1
  274. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-up-alt.svg +1 -0
  275. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-up.svg +1 -1
  276. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-down-alt.svg +1 -0
  277. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-down.svg +1 -1
  278. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-up-alt.svg +1 -0
  279. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-up.svg +1 -1
  280. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-down-alt.svg +1 -0
  281. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-down.svg +1 -1
  282. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-up-alt.svg +1 -0
  283. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-up.svg +1 -1
  284. data/assets/vendor/fontawesome-free/svgs/solid/spell-check.svg +1 -0
  285. data/assets/vendor/fontawesome-free/svgs/solid/stopwatch-20.svg +1 -0
  286. data/assets/vendor/fontawesome-free/svgs/solid/store-alt-slash.svg +1 -0
  287. data/assets/vendor/fontawesome-free/svgs/solid/store-slash.svg +1 -0
  288. data/assets/vendor/fontawesome-free/svgs/solid/strikethrough.svg +1 -1
  289. data/assets/vendor/fontawesome-free/svgs/solid/subscript.svg +1 -1
  290. data/assets/vendor/fontawesome-free/svgs/solid/superscript.svg +1 -1
  291. data/assets/vendor/fontawesome-free/svgs/solid/swatchbook.svg +1 -1
  292. data/assets/vendor/fontawesome-free/svgs/solid/sync.svg +1 -1
  293. data/assets/vendor/fontawesome-free/svgs/solid/tasks.svg +1 -1
  294. data/assets/vendor/fontawesome-free/svgs/solid/text-height.svg +1 -1
  295. data/assets/vendor/fontawesome-free/svgs/solid/text-width.svg +1 -1
  296. data/assets/vendor/fontawesome-free/svgs/solid/toilet-paper-slash.svg +1 -0
  297. data/assets/vendor/fontawesome-free/svgs/solid/torah.svg +1 -1
  298. data/assets/vendor/fontawesome-free/svgs/solid/trailer.svg +1 -0
  299. data/assets/vendor/fontawesome-free/svgs/solid/tv.svg +1 -1
  300. data/assets/vendor/fontawesome-free/svgs/solid/underline.svg +1 -1
  301. data/assets/vendor/fontawesome-free/svgs/solid/user-lock.svg +1 -1
  302. data/assets/vendor/fontawesome-free/svgs/solid/user-nurse.svg +1 -1
  303. data/assets/vendor/fontawesome-free/svgs/solid/virus-slash.svg +1 -0
  304. data/assets/vendor/fontawesome-free/svgs/solid/virus.svg +1 -0
  305. data/assets/vendor/fontawesome-free/svgs/solid/viruses.svg +1 -0
  306. data/assets/vendor/fontawesome-free/svgs/solid/voicemail.svg +1 -0
  307. data/assets/vendor/fontawesome-free/svgs/solid/volleyball-ball.svg +1 -1
  308. data/assets/vendor/fontawesome-free/svgs/solid/volume-off.svg +1 -1
  309. data/assets/vendor/fontawesome-free/svgs/solid/wave-square.svg +1 -0
  310. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.eot +0 -0
  311. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.svg +966 -692
  312. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.ttf +0 -0
  313. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.woff +0 -0
  314. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.woff2 +0 -0
  315. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.eot +0 -0
  316. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.svg +22 -18
  317. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.ttf +0 -0
  318. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.woff +0 -0
  319. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.woff2 +0 -0
  320. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.eot +0 -0
  321. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.svg +852 -430
  322. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.ttf +0 -0
  323. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.woff +0 -0
  324. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.woff2 +0 -0
  325. data/assets/vendor/jquery/jquery.js +1150 -642
  326. data/assets/vendor/jquery/jquery.min.js +2 -2
  327. data/assets/vendor/jquery/jquery.min.map +1 -1
  328. data/assets/vendor/jquery/jquery.slim.js +1116 -608
  329. data/assets/vendor/jquery/jquery.slim.min.js +2 -2
  330. data/assets/vendor/jquery/jquery.slim.min.map +1 -1
  331. data/assets/vendor/startbootstrap-clean-blog/js/clean-blog.min.js +3 -3
  332. data/assets/vendor/startbootstrap-clean-blog/scss/_contact.scss +0 -2
  333. metadata +103 -6
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ var e,t;e=this,t=function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(r){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},t=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),t.forEach(function(e){var t,n,o;t=r,o=i[n=e],n in t?Object.defineProperty(t,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[n]=o})}return r}var n={},o={};try{"undefined"!=typeof window&&(n=window),"undefined"!=typeof document&&(o=document)}catch(e){}var r=(n.navigator||{}).userAgent,i=void 0===r?"":r,l=n,u=o,c=!!l.document,s=!!u.documentElement&&!!u.head&&"function"==typeof u.addEventListener&&"function"==typeof u.createElement,f=(~i.indexOf("MSIE")||i.indexOf("Trident/"),[]),d=!1;function m(e){s&&(d?setTimeout(e,0):f.push(e))}s&&((d=(u.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(u.readyState))||u.addEventListener("DOMContentLoaded",function e(){u.removeEventListener("DOMContentLoaded",e),d=1,f.map(function(e){return e()})}));var h="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var g,p=(function(c){!function(e){function u(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e,t,n,o,r,i){return u((c=u(u(t,e),u(o,i)))<<(a=r)|c>>>32-a,n);var c,a}function d(e,t,n,o,r,i,c){return a(t&n|~t&o,e,t,r,i,c)}function m(e,t,n,o,r,i,c){return a(t&o|n&~o,e,t,r,i,c)}function h(e,t,n,o,r,i,c){return a(t^n^o,e,t,r,i,c)}function g(e,t,n,o,r,i,c){return a(n^(t|~o),e,t,r,i,c)}function s(e,t){var n,o,r,i,c;e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;var a=1732584193,s=-271733879,f=-1732584194,l=271733878;for(n=0;n<e.length;n+=16)s=g(s=g(s=g(s=g(s=h(s=h(s=h(s=h(s=m(s=m(s=m(s=m(s=d(s=d(s=d(s=d(r=s,f=d(i=f,l=d(c=l,a=d(o=a,s,f,l,e[n],7,-680876936),s,f,e[n+1],12,-389564586),a,s,e[n+2],17,606105819),l,a,e[n+3],22,-1044525330),f=d(f,l=d(l,a=d(a,s,f,l,e[n+4],7,-176418897),s,f,e[n+5],12,1200080426),a,s,e[n+6],17,-1473231341),l,a,e[n+7],22,-45705983),f=d(f,l=d(l,a=d(a,s,f,l,e[n+8],7,1770035416),s,f,e[n+9],12,-1958414417),a,s,e[n+10],17,-42063),l,a,e[n+11],22,-1990404162),f=d(f,l=d(l,a=d(a,s,f,l,e[n+12],7,1804603682),s,f,e[n+13],12,-40341101),a,s,e[n+14],17,-1502002290),l,a,e[n+15],22,1236535329),f=m(f,l=m(l,a=m(a,s,f,l,e[n+1],5,-165796510),s,f,e[n+6],9,-1069501632),a,s,e[n+11],14,643717713),l,a,e[n],20,-373897302),f=m(f,l=m(l,a=m(a,s,f,l,e[n+5],5,-701558691),s,f,e[n+10],9,38016083),a,s,e[n+15],14,-660478335),l,a,e[n+4],20,-405537848),f=m(f,l=m(l,a=m(a,s,f,l,e[n+9],5,568446438),s,f,e[n+14],9,-1019803690),a,s,e[n+3],14,-187363961),l,a,e[n+8],20,1163531501),f=m(f,l=m(l,a=m(a,s,f,l,e[n+13],5,-1444681467),s,f,e[n+2],9,-51403784),a,s,e[n+7],14,1735328473),l,a,e[n+12],20,-1926607734),f=h(f,l=h(l,a=h(a,s,f,l,e[n+5],4,-378558),s,f,e[n+8],11,-2022574463),a,s,e[n+11],16,1839030562),l,a,e[n+14],23,-35309556),f=h(f,l=h(l,a=h(a,s,f,l,e[n+1],4,-1530992060),s,f,e[n+4],11,1272893353),a,s,e[n+7],16,-155497632),l,a,e[n+10],23,-1094730640),f=h(f,l=h(l,a=h(a,s,f,l,e[n+13],4,681279174),s,f,e[n],11,-358537222),a,s,e[n+3],16,-722521979),l,a,e[n+6],23,76029189),f=h(f,l=h(l,a=h(a,s,f,l,e[n+9],4,-640364487),s,f,e[n+12],11,-421815835),a,s,e[n+15],16,530742520),l,a,e[n+2],23,-995338651),f=g(f,l=g(l,a=g(a,s,f,l,e[n],6,-198630844),s,f,e[n+7],10,1126891415),a,s,e[n+14],15,-1416354905),l,a,e[n+5],21,-57434055),f=g(f,l=g(l,a=g(a,s,f,l,e[n+12],6,1700485571),s,f,e[n+3],10,-1894986606),a,s,e[n+10],15,-1051523),l,a,e[n+1],21,-2054922799),f=g(f,l=g(l,a=g(a,s,f,l,e[n+8],6,1873313359),s,f,e[n+15],10,-30611744),a,s,e[n+6],15,-1560198380),l,a,e[n+13],21,1309151649),f=g(f,l=g(l,a=g(a,s,f,l,e[n+4],6,-145523070),s,f,e[n+11],10,-1120210379),a,s,e[n+2],15,718787259),l,a,e[n+9],21,-343485551),a=u(a,o),s=u(s,r),f=u(f,i),l=u(l,c);return[a,s,f,l]}function f(e){var t,n="",o=32*e.length;for(t=0;t<o;t+=8)n+=String.fromCharCode(e[t>>5]>>>t%32&255);return n}function l(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t<n.length;t+=1)n[t]=0;var o=8*e.length;for(t=0;t<o;t+=8)n[t>>5]|=(255&e.charCodeAt(t/8))<<t%32;return n}function o(e){var t,n,o="0123456789abcdef",r="";for(n=0;n<e.length;n+=1)t=e.charCodeAt(n),r+=o.charAt(t>>>4&15)+o.charAt(15&t);return r}function n(e){return unescape(encodeURIComponent(e))}function r(e){return f(s(l(t=n(e)),8*t.length));var t}function i(e,t){return function(e,t){var n,o,r=l(e),i=[],c=[];for(i[15]=c[15]=void 0,16<r.length&&(r=s(r,8*e.length)),n=0;n<16;n+=1)i[n]=909522486^r[n],c[n]=1549556828^r[n];return o=s(i.concat(l(t)),512+8*t.length),f(s(c.concat(o),640))}(n(e),n(t))}function t(e,t,n){return t?n?i(t,e):o(i(t,e)):n?r(e):o(r(e))}c.exports?c.exports=t:e.md5=t}(h)}(g={exports:{}},g.exports),g.exports);function v(e){if(null!==e&&"object"===t(e))return e.src?p(e.src):e.href?p(e.href):e.innerText&&""!==e.innerText?p(e.innerText):void 0}var y="fa-kits-diag",b="fa-kits-node-under-test",w="data-md5",x="data-fa-detection-ignore",A="data-fa-detection-timeout",T="data-fa-detection-results-collection-max-wait",D=function(e){e.preventDefault(),e.stopPropagation()};function E(e){var t=e.fn,c=void 0===t?function(){return!0}:t,n=e.initialDuration,o=void 0===n?1:n,r=e.maxDuration,a=void 0===r?l.FontAwesomeDetection.timeout:r,i=e.showProgress,s=void 0!==i&&i,f=e.progressIndicator;return new Promise(function(r,i){!function n(e,o){setTimeout(function(){var e=c();if(s&&console.info(f),e)r(e);else{var t=250+o;t<=a?n(250,t):i("timeout")}},e)}(o,0)})}function C(e){var t=e.nodesTested,n=e.nodesFound;l.FontAwesomeDetection=l.FontAwesomeDetection||{},l.FontAwesomeDetection.nodesTested=t,l.FontAwesomeDetection.nodesFound=n,l.FontAwesomeDetection.detectionDone=!0}function F(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:function(){},n={conflict:{},noConflict:{}};l.onmessage=function(e){"file://"!==l.location.origin&&e.origin!==l.location.origin||e&&e.data&&("fontawesome-conflict"===e.data.type?n.conflict[e.data.md5]=e.data:"no-conflict"===e.data.type&&(n.noConflict[e.data.md5]=e.data))};var e=function(t){for(var c=Array.from(u.scripts).filter(function(e){return!e.hasAttribute(x)&&e!==t}),a={},e=function(e){var t=u.createElement("iframe");t.setAttribute("style","display:none;");var n=u.createElement("script");n.setAttribute("id",b);var o=v(c[e]);n.setAttribute(w,o),a[o]=c[e],""!==c[e].src&&(n.src=c[e].src),""!==c[e].innerText&&(n.innerText=c[e].innerText),n.async=!0;var r=u.createElement("script");r.setAttribute("id",y);var i="file://"===l.location.origin?"*":l.location.origin;r.innerText="(".concat(function(n,o,r){parent.FontAwesomeDetection.__pollUntil({fn:function(){return!!window.FontAwesomeConfig}}).then(function(){var e=document.getElementById(n);parent.postMessage({type:"fontawesome-conflict",technology:"js",src:e.src,innerText:e.innerText,tagName:e.tagName,md5:o},r)}).catch(function(e){var t=document.getElementById(n);"timeout"===e?parent.postMessage({type:"no-conflict",src:t.src,innerText:t.innerText,tagName:t.tagName,md5:o},r):console.error(e)})}.toString(),")('").concat(b,"', '").concat(o,"', '").concat(i,"');"),t.onload=function(){t.contentWindow.addEventListener("error",D,!0),t.contentDocument.head.appendChild(r),t.contentDocument.head.appendChild(n)},m(function(){return u.body.appendChild(t)})},n=0;n<c.length;n++)e(n);return a}(u.currentScript),o=function(){var e=Array.from(u.getElementsByTagName("link")).filter(function(e){return!e.hasAttribute(x)}),t=Array.from(u.getElementsByTagName("style")).filter(function(e){return!(e.hasAttribute(x)||l.FontAwesomeConfig&&e.innerText.match(new RegExp("svg:not\\(:root\\)\\.".concat(l.FontAwesomeConfig.replacementClass))))});function n(e,t){var n=u.createElement("iframe");n.setAttribute("style","visibility: hidden; position: absolute; height: 0; width: 0;");var o="fa-test-icon-"+t,r=u.createElement("i");r.setAttribute("class","fa fa-coffee"),r.setAttribute("id",o);var i=u.createElement("script");i.setAttribute("id",y);var c="file://"===l.location.origin?"*":l.location.origin;i.innerText="(".concat(function(n,o,r,i){parent.FontAwesomeDetection.__pollUntil({fn:function(){var e=document.getElementById(o),t=window.getComputedStyle(e).getPropertyValue("font-family");return!(!t.match(/FontAwesome/)&&!t.match(/Font Awesome 5/))}}).then(function(){var e=document.getElementById(n);parent.postMessage({type:"fontawesome-conflict",technology:"webfont",href:e.href,innerText:e.innerText,tagName:e.tagName,md5:r},i)}).catch(function(e){var t=document.getElementById(n);"timeout"===e?parent.postMessage({type:"no-conflict",technology:"webfont",href:t.src,innerText:t.innerText,tagName:t.tagName,md5:r},i):console.error(e)})}.toString(),")('").concat(b,"', '").concat(o||"foo","', '").concat(t,"', '").concat(c,"');"),n.onload=function(){n.contentWindow.addEventListener("error",D,!0),n.contentDocument.head.appendChild(i),n.contentDocument.head.appendChild(e),n.contentDocument.body.appendChild(r)},m(function(){return u.body.appendChild(n)})}for(var o={},r=0;r<e.length;r++){var i=u.createElement("link");i.setAttribute("id",b),i.setAttribute("href",e[r].href),i.setAttribute("rel",e[r].rel);var c=v(e[r]);i.setAttribute(w,c),o[c]=e[r],n(i,c)}for(var a=0;a<t.length;a++){var s=u.createElement("style");s.setAttribute("id",b);var f=v(t[a]);s.setAttribute(w,f),s.innerText=t[a].innerText,o[f]=t[a],n(s,f)}return o}(),r=a({},e,o),i=Object.keys(e).length+Object.keys(o).length,c=l.FontAwesomeDetection.timeout+l.FontAwesomeDetection.resultsCollectionMaxWait;console.group("Font Awesome Detector"),0===i?(console.info("%cAll Good!","color: green; font-size: large"),console.info("We didn't find anything that needs testing for conflicts. Ergo, no conflicts.")):(console.info("Testing ".concat(i," possible conflicts.")),console.info("We'll wait about ".concat(Math.round(l.FontAwesomeDetection.timeout/10)/100," seconds while testing these and\n")+"then up to another ".concat(Math.round(l.FontAwesomeDetection.resultsCollectionMaxWait/10)/100," to allow the browser time\n")+"to accumulate the results. But we'll probably be outta here way before then.\n\n"),console.info("You can adjust those durations by assigning values to these attributes on the <script> element that loads this detection:"),console.info("\t%c".concat(A,"%c: milliseconds to wait for each test before deciding whether it's a conflict."),"font-weight: bold;","font-size: normal;"),console.info("\t%c".concat(T,"%c: milliseconds to wait for the browser to accumulate test results before giving up."),"font-weight: bold;","font-size: normal;"),E({maxDuration:c,showProgress:!0,progressIndicator:"waiting...",fn:function(){return Object.keys(n.conflict).length+Object.keys(n.noConflict).length>=i}}).then(function(){console.info("DONE!"),C({nodesTested:n,nodesFound:r}),t({nodesTested:n,nodesFound:r}),console.groupEnd()}).catch(function(e){"timeout"===e?console.info("TIME OUT! We waited until we got tired. Here's what we found:"):(console.info("Whoops! We hit an error:",e),console.info("Here's what we'd found up until that error:")),C({nodesTested:n,nodesFound:r}),t({nodesTested:n,nodesFound:r}),console.groupEnd()}))}var O=l.FontAwesomeDetection||{},N=a({},{report:function(e){var t=e.nodesTested,n=e.nodesFound,o={};for(var r in n)t.conflict[r]||t.noConflict[r]||(o[r]=n[r]);var i=Object.keys(t.conflict).length;if(0<i){console.info("%cConflict".concat(1<i?"s":""," found:"),"color: darkred; font-size: large");var c={};for(var a in t.conflict){var s=t.conflict[a];c[a]={tagName:s.tagName,"src/href":s.src||s.href||"n/a","innerText excerpt":s.innerText&&""!==s.innerText?s.innerText.slice(0,200)+"...":"(empty)"}}console.table(c)}var f=Object.keys(t.noConflict).length;if(0<f){console.info("%cNo conflict".concat(1<f?"s":""," found with ").concat(1==f?"this":"these",":"),"color: green; font-size: large");var l={};for(var u in t.noConflict){var d=t.noConflict[u];l[u]={tagName:d.tagName,"src/href":d.src||d.href||"n/a","innerText excerpt":d.innerText&&""!==d.innerText?d.innerText.slice(0,200)+"...":"(empty)"}}console.table(l)}var m=Object.keys(o).length;if(0<m){console.info("%cLeftovers--we timed out before collecting test results for ".concat(1==m?"this":"these",":"),"color: blue; font-size: large");var h={};for(var g in o){var p=o[g];h[g]={tagName:p.tagName,"src/href":p.src||p.href||"n/a","innerText excerpt":p.innerText&&""!==p.innerText?p.innerText.slice(0,200)+"...":"(empty)"}}console.table(h)}},timeout:+(u.currentScript.getAttribute(A)||"2000"),resultsCollectionMaxWait:+(u.currentScript.getAttribute(T)||"5000")},O,{__pollUntil:E,md5ForNode:v,detectionDone:!1,nodesTested:null,nodesFound:null});l.FontAwesomeDetection=N;var j=function(){try{return"production"===process.env.NODE_ENV}catch(e){return!1}}();!function(e){try{e()}catch(e){if(!j)throw e}}(function(){c&&s&&F(window.FontAwesomeDetection.report)}),e.conflictDetection=F,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e["fontawesome-free-conflict-detection"]={});
@@ -1,3 +1,7 @@
1
+ /*!
2
+ * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
1
5
  (function () {
2
6
  'use strict';
3
7
 
@@ -168,6 +172,7 @@
168
172
  var DATA_PREFIX = 'data-prefix';
169
173
  var DATA_ICON = 'data-icon';
170
174
  var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
175
+ var MUTATION_APPROACH_ASYNC = 'async';
171
176
  var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
172
177
  var PRODUCTION = function () {
173
178
  try {
@@ -180,6 +185,7 @@
180
185
  'fas': 'solid',
181
186
  'far': 'regular',
182
187
  'fal': 'light',
188
+ 'fad': 'duotone',
183
189
  'fab': 'brands',
184
190
  'fa': 'solid'
185
191
  };
@@ -187,10 +193,11 @@
187
193
  'solid': 'fas',
188
194
  'regular': 'far',
189
195
  'light': 'fal',
196
+ 'duotone': 'fad',
190
197
  'brands': 'fab'
191
198
  };
192
199
  var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
193
- var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/;
200
+ var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Duotone|Brands|Free|Pro)/;
194
201
  var FONT_WEIGHT_TO_PREFIX = {
195
202
  '900': 'fas',
196
203
  '400': 'far',
@@ -200,7 +207,13 @@
200
207
  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
201
208
  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
202
209
  var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
203
- var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
210
+ var DUOTONE_CLASSES = {
211
+ GROUP: 'group',
212
+ SWAP_OPACITY: 'swap-opacity',
213
+ PRIMARY: 'primary',
214
+ SECONDARY: 'secondary'
215
+ };
216
+ var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {
204
217
  return "".concat(n, "x");
205
218
  })).concat(oneToTwenty.map(function (n) {
206
219
  return "w-".concat(n);
@@ -227,7 +240,7 @@
227
240
  }
228
241
 
229
242
  if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
230
- var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
243
+ var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
231
244
  attrs.forEach(function (_ref) {
232
245
  var _ref2 = _slicedToArray(_ref, 2),
233
246
  attr = _ref2[0],
@@ -249,6 +262,7 @@
249
262
  autoA11y: true,
250
263
  searchPseudoElements: false,
251
264
  observeMutations: true,
265
+ mutateApproach: 'async',
252
266
  keepOriginalSource: true,
253
267
  measurePerformance: false,
254
268
  showMissingIcons: true
@@ -463,7 +477,7 @@
463
477
  throw new TypeError('Promise resolver ' + resolver + ' is not a function');
464
478
  }
465
479
 
466
- if (this instanceof Promise === false) {
480
+ if (this instanceof P === false) {
467
481
  throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');
468
482
  }
469
483
 
@@ -733,11 +747,31 @@
733
747
  width: '100%',
734
748
  height: '100%'
735
749
  };
750
+
751
+ function fillBlack(abstract) {
752
+ var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
753
+
754
+ if (abstract.attributes && (abstract.attributes.fill || force)) {
755
+ abstract.attributes.fill = 'black';
756
+ }
757
+
758
+ return abstract;
759
+ }
760
+
761
+ function deGroup(abstract) {
762
+ if (abstract.tag === 'g') {
763
+ return abstract.children;
764
+ } else {
765
+ return [abstract];
766
+ }
767
+ }
768
+
736
769
  function makeIconMasking (_ref) {
737
770
  var children = _ref.children,
738
771
  attributes = _ref.attributes,
739
772
  main = _ref.main,
740
773
  mask = _ref.mask,
774
+ explicitMaskId = _ref.maskId,
741
775
  transform = _ref.transform;
742
776
  var mainWidth = main.width,
743
777
  mainPath = main.icon;
@@ -754,23 +788,24 @@
754
788
  fill: 'white'
755
789
  })
756
790
  };
791
+ var maskInnerGroupChildrenMixin = mainPath.children ? {
792
+ children: mainPath.children.map(fillBlack)
793
+ } : {};
757
794
  var maskInnerGroup = {
758
795
  tag: 'g',
759
796
  attributes: _objectSpread({}, trans.inner),
760
- children: [{
761
- tag: 'path',
762
- attributes: _objectSpread({}, mainPath.attributes, trans.path, {
763
- fill: 'black'
764
- })
765
- }]
797
+ children: [fillBlack(_objectSpread({
798
+ tag: mainPath.tag,
799
+ attributes: _objectSpread({}, mainPath.attributes, trans.path)
800
+ }, maskInnerGroupChildrenMixin))]
766
801
  };
767
802
  var maskOuterGroup = {
768
803
  tag: 'g',
769
804
  attributes: _objectSpread({}, trans.outer),
770
805
  children: [maskInnerGroup]
771
806
  };
772
- var maskId = "mask-".concat(nextUniqueId());
773
- var clipId = "clip-".concat(nextUniqueId());
807
+ var maskId = "mask-".concat(explicitMaskId || nextUniqueId());
808
+ var clipId = "clip-".concat(explicitMaskId || nextUniqueId());
774
809
  var maskTag = {
775
810
  tag: 'mask',
776
811
  attributes: _objectSpread({}, ALL_SPACE, {
@@ -787,7 +822,7 @@
787
822
  attributes: {
788
823
  id: clipId
789
824
  },
790
- children: [maskPath]
825
+ children: deGroup(maskPath)
791
826
  }, maskTag]
792
827
  };
793
828
  children.push(defs, {
@@ -903,6 +938,8 @@
903
938
  transform = params.transform,
904
939
  symbol = params.symbol,
905
940
  title = params.title,
941
+ maskId = params.maskId,
942
+ titleId = params.titleId,
906
943
  extra = params.extra,
907
944
  _params$watchable = params.watchable,
908
945
  watchable = _params$watchable === void 0 ? false : _params$watchable;
@@ -921,7 +958,7 @@
921
958
  'data-prefix': prefix,
922
959
  'data-icon': iconName,
923
960
  'class': attrClass,
924
- 'role': 'img',
961
+ 'role': extra.attributes.role || 'img',
925
962
  'xmlns': 'http://www.w3.org/2000/svg',
926
963
  'viewBox': "0 0 ".concat(width, " ").concat(height)
927
964
  })
@@ -934,7 +971,7 @@
934
971
  if (title) content.children.push({
935
972
  tag: 'title',
936
973
  attributes: {
937
- id: content.attributes['aria-labelledby'] || "title-".concat(nextUniqueId())
974
+ id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId())
938
975
  },
939
976
  children: [title]
940
977
  });
@@ -944,6 +981,7 @@
944
981
  iconName: iconName,
945
982
  main: main,
946
983
  mask: mask,
984
+ maskId: maskId,
947
985
  transform: transform,
948
986
  symbol: symbol,
949
987
  styles: extra.styles
@@ -1062,7 +1100,7 @@
1062
1100
  mark: noop$1,
1063
1101
  measure: noop$1
1064
1102
  };
1065
- var preamble = "FA \"5.7.0\"";
1103
+ var preamble = "FA \"5.13.0\"";
1066
1104
 
1067
1105
  var begin = function begin(name) {
1068
1106
  p.mark("".concat(preamble, " ").concat(name, " begins"));
@@ -1129,6 +1167,17 @@
1129
1167
  return result;
1130
1168
  };
1131
1169
 
1170
+ function toHex(unicode) {
1171
+ var result = '';
1172
+
1173
+ for (var i = 0; i < unicode.length; i++) {
1174
+ var hex = unicode.charCodeAt(i).toString(16);
1175
+ result += ('000' + hex).slice(-4);
1176
+ }
1177
+
1178
+ return result;
1179
+ }
1180
+
1132
1181
  function defineIcons(prefix, icons) {
1133
1182
  var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1134
1183
  var _params$skipHooks = params.skipHooks,
@@ -1211,10 +1260,10 @@
1211
1260
  };
1212
1261
  build();
1213
1262
  function byUnicode(prefix, unicode) {
1214
- return _byUnicode[prefix][unicode];
1263
+ return (_byUnicode[prefix] || {})[unicode];
1215
1264
  }
1216
1265
  function byLigature(prefix, ligature) {
1217
- return _byLigature[prefix][ligature];
1266
+ return (_byLigature[prefix] || {})[ligature];
1218
1267
  }
1219
1268
  function byOldName(name) {
1220
1269
  return _byOldName[name] || {
@@ -1237,7 +1286,7 @@
1237
1286
 
1238
1287
  if (styles$1[cls]) {
1239
1288
  acc.prefix = cls;
1240
- } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fab', 'fa'].indexOf(cls) > -1) {
1289
+ } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {
1241
1290
  acc.prefix = cls;
1242
1291
  } else if (iconName) {
1243
1292
  var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};
@@ -1317,6 +1366,7 @@
1317
1366
 
1318
1367
  var forSvg = new RegExp("".concat(config.familyPrefix, "-.*"));
1319
1368
  delete abstract[0].attributes.style;
1369
+ delete abstract[0].attributes.id;
1320
1370
  var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {
1321
1371
  if (cls === config.replacementClass || cls.match(forSvg)) {
1322
1372
  acc.toSvg.push(cls);
@@ -1338,15 +1388,22 @@
1338
1388
  node.innerHTML = newInnerHTML;
1339
1389
  }
1340
1390
  };
1391
+
1392
+ function performOperationSync(op) {
1393
+ op();
1394
+ }
1395
+
1341
1396
  function perform(mutations, callback) {
1342
1397
  var callbackFunction = typeof callback === 'function' ? callback : noop$2;
1343
1398
 
1344
1399
  if (mutations.length === 0) {
1345
1400
  callbackFunction();
1346
1401
  } else {
1347
- var frame = WINDOW.requestAnimationFrame || function (op) {
1348
- return op();
1349
- };
1402
+ var frame = performOperationSync;
1403
+
1404
+ if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {
1405
+ frame = WINDOW.requestAnimationFrame || performOperationSync;
1406
+ }
1350
1407
 
1351
1408
  frame(function () {
1352
1409
  var mutator = getMutator();
@@ -1442,17 +1499,6 @@
1442
1499
  return val;
1443
1500
  }
1444
1501
 
1445
- function toHex(unicode) {
1446
- var result = '';
1447
-
1448
- for (var i = 0; i < unicode.length; i++) {
1449
- var hex = unicode.charCodeAt(i).toString(16);
1450
- result += ('000' + hex).slice(-4);
1451
- }
1452
-
1453
- return result;
1454
- }
1455
-
1456
1502
  function classParser (node) {
1457
1503
  var existingPrefix = node.getAttribute('data-prefix');
1458
1504
  var existingIconName = node.getAttribute('data-icon');
@@ -1559,10 +1605,11 @@
1559
1605
  return acc;
1560
1606
  }, {});
1561
1607
  var title = node.getAttribute('title');
1608
+ var titleId = node.getAttribute('data-fa-title-id');
1562
1609
 
1563
1610
  if (config.autoA11y) {
1564
1611
  if (title) {
1565
- extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(nextUniqueId());
1612
+ extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
1566
1613
  } else {
1567
1614
  extraAttributes['aria-hidden'] = 'true';
1568
1615
  extraAttributes['focusable'] = 'false';
@@ -1588,10 +1635,12 @@
1588
1635
  return {
1589
1636
  iconName: null,
1590
1637
  title: null,
1638
+ titleId: null,
1591
1639
  prefix: null,
1592
1640
  transform: meaninglessTransform,
1593
1641
  symbol: false,
1594
1642
  mask: null,
1643
+ maskId: null,
1595
1644
  extra: {
1596
1645
  classes: [],
1597
1646
  styles: {},
@@ -1613,10 +1662,12 @@
1613
1662
  return {
1614
1663
  iconName: iconName,
1615
1664
  title: node.getAttribute('title'),
1665
+ titleId: node.getAttribute('data-fa-title-id'),
1616
1666
  prefix: prefix,
1617
1667
  transform: transform,
1618
1668
  symbol: symbol,
1619
1669
  mask: mask,
1670
+ maskId: node.getAttribute('data-fa-mask-id'),
1620
1671
  extra: {
1621
1672
  classes: extraClasses,
1622
1673
  styles: extraStyles,
@@ -1704,6 +1755,55 @@
1704
1755
  };
1705
1756
 
1706
1757
  var styles$2 = namespace.styles;
1758
+ function asFoundIcon(icon) {
1759
+ var width = icon[0];
1760
+ var height = icon[1];
1761
+
1762
+ var _icon$slice = icon.slice(4),
1763
+ _icon$slice2 = _slicedToArray(_icon$slice, 1),
1764
+ vectorData = _icon$slice2[0];
1765
+
1766
+ var element = null;
1767
+
1768
+ if (Array.isArray(vectorData)) {
1769
+ element = {
1770
+ tag: 'g',
1771
+ attributes: {
1772
+ class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.GROUP)
1773
+ },
1774
+ children: [{
1775
+ tag: 'path',
1776
+ attributes: {
1777
+ class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY),
1778
+ fill: 'currentColor',
1779
+ d: vectorData[0]
1780
+ }
1781
+ }, {
1782
+ tag: 'path',
1783
+ attributes: {
1784
+ class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY),
1785
+ fill: 'currentColor',
1786
+ d: vectorData[1]
1787
+ }
1788
+ }]
1789
+ };
1790
+ } else {
1791
+ element = {
1792
+ tag: 'path',
1793
+ attributes: {
1794
+ fill: 'currentColor',
1795
+ d: vectorData
1796
+ }
1797
+ };
1798
+ }
1799
+
1800
+ return {
1801
+ found: true,
1802
+ width: width,
1803
+ height: height,
1804
+ icon: element
1805
+ };
1806
+ }
1707
1807
  function findIcon(iconName, prefix) {
1708
1808
  return new picked(function (resolve, reject) {
1709
1809
  var val = {
@@ -1715,22 +1815,13 @@
1715
1815
 
1716
1816
  if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {
1717
1817
  var icon = styles$2[prefix][iconName];
1718
- var width = icon[0];
1719
- var height = icon[1];
1720
- var vectorData = icon.slice(4);
1721
- val = {
1722
- found: true,
1723
- width: width,
1724
- height: height,
1725
- icon: {
1726
- tag: 'path',
1727
- attributes: {
1728
- fill: 'currentColor',
1729
- d: vectorData[0]
1730
- }
1731
- }
1732
- };
1733
- return resolve(val);
1818
+ return resolve(asFoundIcon(icon));
1819
+ }
1820
+
1821
+ var headers = {};
1822
+
1823
+ if (_typeof(WINDOW.FontAwesomeKitConfig) === 'object' && typeof window.FontAwesomeKitConfig.token === 'string') {
1824
+ headers['fa-kit-token'] = WINDOW.FontAwesomeKitConfig.token;
1734
1825
  }
1735
1826
 
1736
1827
  if (iconName && prefix && !config.showMissingIcons) {
@@ -1746,10 +1837,12 @@
1746
1837
  function generateSvgReplacementMutation(node, nodeMeta) {
1747
1838
  var iconName = nodeMeta.iconName,
1748
1839
  title = nodeMeta.title,
1840
+ titleId = nodeMeta.titleId,
1749
1841
  prefix = nodeMeta.prefix,
1750
1842
  transform = nodeMeta.transform,
1751
1843
  symbol = nodeMeta.symbol,
1752
1844
  mask = nodeMeta.mask,
1845
+ maskId = nodeMeta.maskId,
1753
1846
  extra = nodeMeta.extra;
1754
1847
  return new picked(function (resolve, reject) {
1755
1848
  picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {
@@ -1767,7 +1860,9 @@
1767
1860
  transform: transform,
1768
1861
  symbol: symbol,
1769
1862
  mask: mask,
1863
+ maskId: maskId,
1770
1864
  title: title,
1865
+ titleId: titleId,
1771
1866
  extra: extra,
1772
1867
  watchable: true
1773
1868
  })]);
@@ -1836,7 +1931,12 @@
1836
1931
  return;
1837
1932
  }
1838
1933
 
1839
- var candidates = toArray(root.querySelectorAll(prefixesDomQuery));
1934
+ var candidates = [];
1935
+
1936
+ try {
1937
+ candidates = toArray(root.querySelectorAll(prefixesDomQuery));
1938
+ } catch (e) {// noop
1939
+ }
1840
1940
 
1841
1941
  if (candidates.length > 0) {
1842
1942
  hclAdd('pending');
@@ -1870,9 +1970,13 @@
1870
1970
  hclAdd('complete');
1871
1971
  hclRemove('pending');
1872
1972
  if (typeof callback === 'function') callback();
1973
+ mark();
1873
1974
  resolve();
1874
1975
  });
1875
- }).catch(reject).finally(mark);
1976
+ }).catch(function () {
1977
+ mark();
1978
+ reject();
1979
+ });
1876
1980
  });
1877
1981
  }
1878
1982
  function onNode(node) {
@@ -1899,6 +2003,7 @@
1899
2003
  var styles = WINDOW.getComputedStyle(node, position);
1900
2004
  var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);
1901
2005
  var fontWeight = styles.getPropertyValue('font-weight');
2006
+ var content = styles.getPropertyValue('content');
1902
2007
 
1903
2008
  if (alreadyProcessedPseudoElement && !fontFamily) {
1904
2009
  // If we've already processed it but the current computed style does not result in a font-family,
@@ -1906,14 +2011,15 @@
1906
2011
  // removed. So we now should delete the icon.
1907
2012
  node.removeChild(alreadyProcessedPseudoElement);
1908
2013
  return resolve();
1909
- } else if (fontFamily) {
1910
- var content = styles.getPropertyValue('content');
1911
- var prefix = ~['Light', 'Regular', 'Solid', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];
1912
- var iconName = byUnicode(prefix, toHex(content.length === 3 ? content.substr(1, 1) : content)); // Only convert the pseudo element in this :before/:after position into an icon if we haven't
2014
+ } else if (fontFamily && content !== 'none' && content !== '') {
2015
+ var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];
2016
+ var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);
2017
+ var iconName = byUnicode(prefix, hexValue);
2018
+ var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't
1913
2019
  // already done so with the same prefix and iconName
1914
2020
 
1915
- if (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconName) {
1916
- node.setAttribute(pendingAttribute, iconName);
2021
+ if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {
2022
+ node.setAttribute(pendingAttribute, iconIdentifier);
1917
2023
 
1918
2024
  if (alreadyProcessedPseudoElement) {
1919
2025
  // Delete the old one, since we're replacing it with a new one
@@ -1930,7 +2036,7 @@
1930
2036
  mask: emptyCanonicalIcon()
1931
2037
  },
1932
2038
  prefix: prefix,
1933
- iconName: iconName,
2039
+ iconName: iconIdentifier,
1934
2040
  extra: extra,
1935
2041
  watchable: true
1936
2042
  }));
@@ -1983,7 +2089,7 @@
1983
2089
  });
1984
2090
  }
1985
2091
 
1986
- var baseStyles = "svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";
2092
+ var baseStyles = "svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}";
1987
2093
 
1988
2094
  function css () {
1989
2095
  var dfp = DEFAULT_FAMILY_PREFIX;
@@ -1994,8 +2100,9 @@
1994
2100
 
1995
2101
  if (fp !== dfp || rc !== drc) {
1996
2102
  var dPatt = new RegExp("\\.".concat(dfp, "\\-"), 'g');
2103
+ var customPropPatt = new RegExp("\\--".concat(dfp, "\\-"), 'g');
1997
2104
  var rPatt = new RegExp("\\.".concat(drc), 'g');
1998
- s = s.replace(dPatt, ".".concat(fp, "-")).replace(rPatt, ".".concat(rc));
2105
+ s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc));
1999
2106
  }
2000
2107
 
2001
2108
  return s;
@@ -2052,24 +2159,6 @@
2052
2159
  return Library;
2053
2160
  }();
2054
2161
 
2055
- function prepIcon(icon) {
2056
- var width = icon[0];
2057
- var height = icon[1];
2058
- var vectorData = icon.slice(4);
2059
- return {
2060
- found: true,
2061
- width: width,
2062
- height: height,
2063
- icon: {
2064
- tag: 'path',
2065
- attributes: {
2066
- fill: 'currentColor',
2067
- d: vectorData[0]
2068
- }
2069
- }
2070
- };
2071
- }
2072
-
2073
2162
  function ensureCss() {
2074
2163
  if (config.autoAddCss && !_cssInserted) {
2075
2164
  insertCss(css());
@@ -2195,8 +2284,12 @@
2195
2284
  symbol = _params$symbol === void 0 ? false : _params$symbol,
2196
2285
  _params$mask = params.mask,
2197
2286
  mask = _params$mask === void 0 ? null : _params$mask,
2287
+ _params$maskId = params.maskId,
2288
+ maskId = _params$maskId === void 0 ? null : _params$maskId,
2198
2289
  _params$title = params.title,
2199
2290
  title = _params$title === void 0 ? null : _params$title,
2291
+ _params$titleId = params.titleId,
2292
+ titleId = _params$titleId === void 0 ? null : _params$titleId,
2200
2293
  _params$classes = params.classes,
2201
2294
  classes = _params$classes === void 0 ? [] : _params$classes,
2202
2295
  _params$attributes = params.attributes,
@@ -2214,7 +2307,7 @@
2214
2307
 
2215
2308
  if (config.autoA11y) {
2216
2309
  if (title) {
2217
- attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(nextUniqueId());
2310
+ attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
2218
2311
  } else {
2219
2312
  attributes['aria-hidden'] = 'true';
2220
2313
  attributes['focusable'] = 'false';
@@ -2223,8 +2316,8 @@
2223
2316
 
2224
2317
  return makeInlineSvgAbstract({
2225
2318
  icons: {
2226
- main: prepIcon(icon),
2227
- mask: mask ? prepIcon(mask.icon) : {
2319
+ main: asFoundIcon(icon),
2320
+ mask: mask ? asFoundIcon(mask.icon) : {
2228
2321
  found: false,
2229
2322
  width: null,
2230
2323
  height: null,
@@ -2236,6 +2329,8 @@
2236
2329
  transform: _objectSpread({}, meaninglessTransform, transform),
2237
2330
  symbol: symbol,
2238
2331
  title: title,
2332
+ maskId: maskId,
2333
+ titleId: titleId,
2239
2334
  extra: {
2240
2335
  attributes: attributes,
2241
2336
  styles: styles,
@@ -2300,6 +2395,9 @@
2300
2395
  });
2301
2396
  };
2302
2397
  var layer = function layer(assembler) {
2398
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2399
+ var _params$classes4 = params.classes,
2400
+ classes = _params$classes4 === void 0 ? [] : _params$classes4;
2303
2401
  return apiObject({
2304
2402
  type: 'layer'
2305
2403
  }, function () {
@@ -2313,7 +2411,7 @@
2313
2411
  return [{
2314
2412
  tag: 'span',
2315
2413
  attributes: {
2316
- class: "".concat(config.familyPrefix, "-layers")
2414
+ class: ["".concat(config.familyPrefix, "-layers")].concat(_toConsumableArray(classes)).join(' ')
2317
2415
  },
2318
2416
  children: children
2319
2417
  }];