lookbook 1.5.2 → 2.3.7

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 (1204) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -35
  3. data/app/components/lookbook/base_component.rb +3 -1
  4. data/app/components/lookbook/button/component.html.erb +14 -25
  5. data/app/components/lookbook/button/component.js +24 -7
  6. data/app/components/lookbook/button/component.rb +16 -25
  7. data/app/components/lookbook/code/component.rb +0 -2
  8. data/app/components/lookbook/code/highlight_github.css +16 -17
  9. data/app/components/lookbook/copy_button/component.html.erb +5 -5
  10. data/app/components/lookbook/copy_button/component.js +1 -1
  11. data/app/components/lookbook/copy_button/component.rb +6 -3
  12. data/app/components/lookbook/debug_menu/component.html.erb +3 -2
  13. data/app/components/lookbook/debug_menu/component.rb +12 -1
  14. data/app/components/lookbook/dimensions_display/component.html.erb +4 -4
  15. data/app/components/lookbook/dimensions_display/component.js +4 -7
  16. data/app/components/lookbook/display_options/editor/component.html.erb +1 -1
  17. data/app/components/lookbook/display_options/field/component.css +0 -26
  18. data/app/components/lookbook/display_options/field/component.html.erb +1 -1
  19. data/app/components/lookbook/display_options/field/component.js +1 -1
  20. data/app/components/lookbook/embed/component.html.erb +6 -51
  21. data/app/components/lookbook/embed/component.rb +17 -16
  22. data/app/components/lookbook/embed/inspector/component.html.erb +117 -0
  23. data/app/components/lookbook/embed/inspector/component.js +58 -0
  24. data/app/components/lookbook/embed/inspector/component.rb +64 -0
  25. data/app/components/lookbook/embed_code_dropdown/component.css +19 -0
  26. data/app/components/lookbook/embed_code_dropdown/component.html.erb +64 -0
  27. data/app/components/lookbook/embed_code_dropdown/component.js +3 -0
  28. data/app/components/lookbook/embed_code_dropdown/component.rb +51 -0
  29. data/app/components/lookbook/file_source/component.html.erb +9 -0
  30. data/app/components/lookbook/file_source/component.rb +73 -0
  31. data/app/components/lookbook/filter/component.html.erb +15 -15
  32. data/app/components/lookbook/header/component.css +12 -0
  33. data/app/components/lookbook/header/component.html.erb +28 -19
  34. data/app/components/lookbook/header/component.rb +9 -3
  35. data/app/components/lookbook/icon/component.css +9 -1
  36. data/app/components/lookbook/icon/component.html.erb +3 -3
  37. data/app/components/lookbook/icon/component.rb +7 -8
  38. data/app/components/lookbook/icon_button/component.html.erb +20 -0
  39. data/app/components/lookbook/icon_button/component.rb +46 -0
  40. data/app/components/lookbook/logo/component.html.erb +6 -0
  41. data/app/components/lookbook/logo/component.rb +15 -0
  42. data/app/components/lookbook/message/component.css +34 -0
  43. data/app/components/lookbook/message/component.html.erb +26 -0
  44. data/app/components/lookbook/message/component.rb +13 -0
  45. data/app/components/lookbook/nav/component.html.erb +1 -2
  46. data/app/components/lookbook/nav/directory/component.html.erb +4 -4
  47. data/app/components/lookbook/nav/entity/component.html.erb +9 -6
  48. data/app/components/lookbook/nav/entity/component.rb +3 -3
  49. data/app/components/lookbook/nav/item/component.js +9 -11
  50. data/app/components/lookbook/nav/item/component.rb +1 -1
  51. data/app/components/lookbook/page_tabs/component.html.erb +4 -4
  52. data/app/components/lookbook/params/editor/component.html.erb +1 -1
  53. data/app/components/lookbook/params/editor/component.rb +2 -1
  54. data/app/components/lookbook/params/field/component.css +3 -3
  55. data/app/components/lookbook/params/field/component.rb +2 -2
  56. data/app/components/lookbook/prose/component.css +14 -1
  57. data/app/components/lookbook/prose/component.html.erb +6 -1
  58. data/app/components/lookbook/prose/component.rb +3 -5
  59. data/app/components/lookbook/split_layout/component.html.erb +4 -4
  60. data/app/components/lookbook/tab_panels/component.rb +1 -1
  61. data/app/components/lookbook/tabs/component.html.erb +2 -2
  62. data/app/components/lookbook/tabs/component.js +2 -2
  63. data/app/components/lookbook/tabs/dropdown_tab/component.html.erb +1 -1
  64. data/app/components/lookbook/tabs/tab/component.html.erb +2 -2
  65. data/app/components/lookbook/tag_component.rb +10 -2
  66. data/app/components/lookbook/text_button/component.html.erb +26 -0
  67. data/app/components/lookbook/text_button/component.rb +42 -0
  68. data/app/components/lookbook/toolbar/component.html.erb +1 -1
  69. data/app/components/lookbook/viewport/component.html.erb +8 -8
  70. data/app/components/lookbook/viewport/component.rb +0 -4
  71. data/app/controllers/concerns/lookbook/targetable_concern.rb +27 -35
  72. data/app/controllers/concerns/lookbook/with_panels_concern.rb +30 -0
  73. data/app/controllers/concerns/lookbook/with_preview_controller_concern.rb +24 -5
  74. data/app/controllers/lookbook/application_controller.rb +55 -24
  75. data/app/controllers/lookbook/embeds_controller.rb +147 -0
  76. data/app/controllers/lookbook/inspector_controller.rb +5 -32
  77. data/app/controllers/lookbook/page_controller.rb +8 -7
  78. data/app/controllers/lookbook/pages_controller.rb +17 -30
  79. data/app/controllers/lookbook/preview_controller.rb +45 -0
  80. data/app/controllers/lookbook/previews_controller.rb +36 -32
  81. data/app/helpers/lookbook/application_helper.rb +12 -18
  82. data/app/views/layouts/lookbook/application.html.erb +104 -60
  83. data/app/views/layouts/lookbook/embed.html.erb +34 -0
  84. data/app/views/layouts/lookbook/skeleton.html.erb +16 -15
  85. data/app/views/lookbook/embeds/show.html.erb +12 -0
  86. data/app/views/lookbook/errors/default.html.erb +40 -0
  87. data/app/views/lookbook/errors/not_found.html.erb +10 -0
  88. data/app/views/lookbook/index.html.erb +39 -24
  89. data/app/views/lookbook/inspector/inputs/_color.html.erb +2 -1
  90. data/app/views/lookbook/inspector/inputs/_text_two_step.html.erb +19 -0
  91. data/app/views/lookbook/inspector/inputs/_toggle.html.erb +1 -1
  92. data/app/views/lookbook/inspector/panels/_notes.html.erb +1 -1
  93. data/app/views/lookbook/inspector/panels/_output.html.erb +3 -3
  94. data/app/views/lookbook/inspector/panels/_preview.html.erb +1 -0
  95. data/app/views/lookbook/inspector/panels/_source.html.erb +6 -6
  96. data/app/views/lookbook/inspector/show.html.erb +142 -123
  97. data/app/views/lookbook/pages/show.html.erb +91 -36
  98. data/app/views/lookbook/partials/_blank_slate.html.erb +7 -0
  99. data/app/views/lookbook/partials/_iframe_content_scripts.html.erb +1 -0
  100. data/app/views/lookbook/partials/_user_styles.html.erb +5 -0
  101. data/app/views/lookbook/previews/group.html.erb +15 -0
  102. data/app/views/lookbook/previews/preview.html.erb +13 -0
  103. data/app/views/lookbook/previews/show.html.erb +1 -0
  104. data/assets/css/fonts.css +33 -0
  105. data/{app/assets/lookbook → assets}/css/lookbook.css +23 -3
  106. data/{app/assets/lookbook → assets}/css/themes/blue.css +14 -1
  107. data/{app/assets/lookbook → assets}/css/themes/green.css +14 -1
  108. data/{app/assets/lookbook → assets}/css/themes/indigo.css +14 -1
  109. data/{app/assets/lookbook → assets}/css/themes/rose.css +14 -1
  110. data/{app/assets/lookbook → assets}/css/themes/zinc.css +14 -1
  111. data/{app/assets/lookbook → assets}/css/tooltip.css +9 -6
  112. data/assets/fonts/Inter-italic.var.woff2 +0 -0
  113. data/assets/fonts/Inter-roman.var.woff2 +0 -0
  114. data/assets/fonts/SourceCodeVariable-Italic.ttf.woff2 +0 -0
  115. data/assets/fonts/SourceCodeVariable-Roman.ttf.woff2 +0 -0
  116. data/assets/icons/accessibility.svg +1 -0
  117. data/assets/icons/activity.svg +1 -0
  118. data/assets/icons/air-vent.svg +1 -0
  119. data/assets/icons/airplay.svg +1 -0
  120. data/assets/icons/alarm-check.svg +1 -0
  121. data/assets/icons/alarm-clock-off.svg +1 -0
  122. data/assets/icons/alarm-clock.svg +1 -0
  123. data/assets/icons/alarm-minus.svg +1 -0
  124. data/assets/icons/alarm-plus.svg +1 -0
  125. data/assets/icons/album.svg +1 -0
  126. data/assets/icons/alert-circle.svg +1 -0
  127. data/assets/icons/alert-octagon.svg +1 -0
  128. data/assets/icons/alert-triangle.svg +1 -0
  129. data/assets/icons/align-center-horizontal.svg +1 -0
  130. data/assets/icons/align-center-vertical.svg +1 -0
  131. data/assets/icons/align-center.svg +1 -0
  132. data/assets/icons/align-end-horizontal.svg +1 -0
  133. data/assets/icons/align-end-vertical.svg +1 -0
  134. data/assets/icons/align-horizontal-distribute-center.svg +1 -0
  135. data/assets/icons/align-horizontal-distribute-end.svg +1 -0
  136. data/assets/icons/align-horizontal-distribute-start.svg +1 -0
  137. data/assets/icons/align-horizontal-justify-center.svg +1 -0
  138. data/assets/icons/align-horizontal-justify-end.svg +1 -0
  139. data/assets/icons/align-horizontal-justify-start.svg +1 -0
  140. data/assets/icons/align-horizontal-space-around.svg +1 -0
  141. data/assets/icons/align-horizontal-space-between.svg +1 -0
  142. data/assets/icons/align-justify.svg +1 -0
  143. data/assets/icons/align-left.svg +1 -0
  144. data/assets/icons/align-right.svg +1 -0
  145. data/assets/icons/align-start-horizontal.svg +1 -0
  146. data/assets/icons/align-start-vertical.svg +1 -0
  147. data/assets/icons/align-vertical-distribute-center.svg +1 -0
  148. data/assets/icons/align-vertical-distribute-end.svg +1 -0
  149. data/assets/icons/align-vertical-distribute-start.svg +1 -0
  150. data/assets/icons/align-vertical-justify-center.svg +1 -0
  151. data/assets/icons/align-vertical-justify-end.svg +1 -0
  152. data/assets/icons/align-vertical-justify-start.svg +1 -0
  153. data/assets/icons/align-vertical-space-around.svg +1 -0
  154. data/assets/icons/align-vertical-space-between.svg +1 -0
  155. data/assets/icons/anchor.svg +1 -0
  156. data/assets/icons/angry.svg +1 -0
  157. data/assets/icons/annoyed.svg +1 -0
  158. data/assets/icons/aperture.svg +1 -0
  159. data/assets/icons/apple.svg +1 -0
  160. data/assets/icons/archive-restore.svg +1 -0
  161. data/assets/icons/archive.svg +1 -0
  162. data/assets/icons/armchair.svg +1 -0
  163. data/assets/icons/arrow-big-down.svg +1 -0
  164. data/assets/icons/arrow-big-left.svg +1 -0
  165. data/assets/icons/arrow-big-right.svg +1 -0
  166. data/assets/icons/arrow-big-up.svg +1 -0
  167. data/assets/icons/arrow-down-circle.svg +1 -0
  168. data/assets/icons/arrow-down-left.svg +1 -0
  169. data/assets/icons/arrow-down-right.svg +1 -0
  170. data/assets/icons/arrow-down.svg +1 -0
  171. data/assets/icons/arrow-left-circle.svg +1 -0
  172. data/assets/icons/arrow-left-right.svg +1 -0
  173. data/assets/icons/arrow-left.svg +1 -0
  174. data/assets/icons/arrow-right-circle.svg +1 -0
  175. data/assets/icons/arrow-right.svg +1 -0
  176. data/assets/icons/arrow-up-circle.svg +1 -0
  177. data/assets/icons/arrow-up-down.svg +1 -0
  178. data/assets/icons/arrow-up-left.svg +1 -0
  179. data/assets/icons/arrow-up-right.svg +1 -0
  180. data/assets/icons/arrow-up.svg +1 -0
  181. data/assets/icons/asterisk.svg +1 -0
  182. data/assets/icons/at-sign.svg +1 -0
  183. data/assets/icons/award.svg +1 -0
  184. data/assets/icons/axe.svg +1 -0
  185. data/assets/icons/axis-3d.svg +1 -0
  186. data/assets/icons/baby.svg +1 -0
  187. data/assets/icons/backpack.svg +1 -0
  188. data/assets/icons/baggage-claim.svg +1 -0
  189. data/assets/icons/banana.svg +1 -0
  190. data/assets/icons/banknote.svg +1 -0
  191. data/assets/icons/bar-chart-2.svg +1 -0
  192. data/assets/icons/bar-chart-3.svg +1 -0
  193. data/assets/icons/bar-chart-4.svg +1 -0
  194. data/assets/icons/bar-chart-horizontal.svg +1 -0
  195. data/assets/icons/bar-chart.svg +1 -0
  196. data/assets/icons/baseline.svg +1 -0
  197. data/assets/icons/bath.svg +1 -0
  198. data/assets/icons/battery-charging.svg +1 -0
  199. data/assets/icons/battery-full.svg +1 -0
  200. data/assets/icons/battery-low.svg +1 -0
  201. data/assets/icons/battery-medium.svg +1 -0
  202. data/assets/icons/battery-warning.svg +1 -0
  203. data/assets/icons/battery.svg +1 -0
  204. data/assets/icons/beaker.svg +1 -0
  205. data/assets/icons/bean-off.svg +1 -0
  206. data/assets/icons/bean.svg +1 -0
  207. data/assets/icons/bed-double.svg +1 -0
  208. data/assets/icons/bed-single.svg +1 -0
  209. data/assets/icons/bed.svg +1 -0
  210. data/assets/icons/beef.svg +1 -0
  211. data/assets/icons/beer.svg +1 -0
  212. data/assets/icons/bell-minus.svg +1 -0
  213. data/assets/icons/bell-off.svg +1 -0
  214. data/assets/icons/bell-plus.svg +1 -0
  215. data/assets/icons/bell-ring.svg +1 -0
  216. data/assets/icons/bell.svg +1 -0
  217. data/assets/icons/bike.svg +1 -0
  218. data/assets/icons/binary.svg +1 -0
  219. data/assets/icons/bird.svg +1 -0
  220. data/assets/icons/bitcoin.svg +1 -0
  221. data/assets/icons/blinds.svg +1 -0
  222. data/assets/icons/bluetooth-connected.svg +1 -0
  223. data/assets/icons/bluetooth-off.svg +1 -0
  224. data/assets/icons/bluetooth-searching.svg +1 -0
  225. data/assets/icons/bluetooth.svg +1 -0
  226. data/assets/icons/bold.svg +1 -0
  227. data/assets/icons/bomb.svg +1 -0
  228. data/assets/icons/bone.svg +1 -0
  229. data/assets/icons/book-open-check.svg +1 -0
  230. data/assets/icons/book-open.svg +1 -0
  231. data/assets/icons/book.svg +1 -0
  232. data/assets/icons/bookmark-minus.svg +1 -0
  233. data/assets/icons/bookmark-plus.svg +1 -0
  234. data/assets/icons/bookmark.svg +1 -0
  235. data/assets/icons/bot.svg +1 -0
  236. data/assets/icons/box-select.svg +1 -0
  237. data/assets/icons/box.svg +1 -0
  238. data/assets/icons/boxes.svg +1 -0
  239. data/assets/icons/briefcase.svg +1 -0
  240. data/assets/icons/brush.svg +1 -0
  241. data/assets/icons/bug.svg +1 -0
  242. data/assets/icons/building-2.svg +1 -0
  243. data/assets/icons/building.svg +1 -0
  244. data/assets/icons/bus.svg +1 -0
  245. data/assets/icons/cake.svg +1 -0
  246. data/assets/icons/calculator.svg +1 -0
  247. data/assets/icons/calendar-check-2.svg +1 -0
  248. data/assets/icons/calendar-check.svg +1 -0
  249. data/assets/icons/calendar-clock.svg +1 -0
  250. data/assets/icons/calendar-days.svg +1 -0
  251. data/assets/icons/calendar-heart.svg +1 -0
  252. data/assets/icons/calendar-minus.svg +1 -0
  253. data/assets/icons/calendar-off.svg +1 -0
  254. data/assets/icons/calendar-plus.svg +1 -0
  255. data/assets/icons/calendar-range.svg +1 -0
  256. data/assets/icons/calendar-search.svg +1 -0
  257. data/assets/icons/calendar-x-2.svg +1 -0
  258. data/assets/icons/calendar-x.svg +1 -0
  259. data/assets/icons/calendar.svg +1 -0
  260. data/assets/icons/camera-off.svg +1 -0
  261. data/assets/icons/camera.svg +1 -0
  262. data/assets/icons/candy-off.svg +1 -0
  263. data/assets/icons/candy.svg +1 -0
  264. data/assets/icons/car.svg +1 -0
  265. data/assets/icons/carrot.svg +1 -0
  266. data/assets/icons/cast.svg +1 -0
  267. data/assets/icons/cat.svg +1 -0
  268. data/assets/icons/check-check.svg +1 -0
  269. data/assets/icons/check-circle-2.svg +1 -0
  270. data/assets/icons/check-circle.svg +1 -0
  271. data/assets/icons/check-square.svg +1 -0
  272. data/assets/icons/check.svg +1 -0
  273. data/assets/icons/chef-hat.svg +1 -0
  274. data/assets/icons/cherry.svg +1 -0
  275. data/assets/icons/chevron-down.svg +1 -0
  276. data/assets/icons/chevron-first.svg +1 -0
  277. data/assets/icons/chevron-last.svg +1 -0
  278. data/assets/icons/chevron-left.svg +1 -0
  279. data/assets/icons/chevron-right.svg +1 -0
  280. data/assets/icons/chevron-up.svg +1 -0
  281. data/assets/icons/chevrons-down-up.svg +1 -0
  282. data/assets/icons/chevrons-down.svg +1 -0
  283. data/assets/icons/chevrons-left-right.svg +1 -0
  284. data/assets/icons/chevrons-left.svg +1 -0
  285. data/assets/icons/chevrons-right-left.svg +1 -0
  286. data/assets/icons/chevrons-right.svg +1 -0
  287. data/assets/icons/chevrons-up-down.svg +1 -0
  288. data/assets/icons/chevrons-up.svg +1 -0
  289. data/assets/icons/chrome.svg +1 -0
  290. data/assets/icons/cigarette-off.svg +1 -0
  291. data/assets/icons/cigarette.svg +1 -0
  292. data/assets/icons/circle-dot.svg +1 -0
  293. data/assets/icons/circle-ellipsis.svg +1 -0
  294. data/assets/icons/circle-slashed.svg +1 -0
  295. data/assets/icons/circle.svg +1 -0
  296. data/assets/icons/citrus.svg +1 -0
  297. data/assets/icons/clapperboard.svg +1 -0
  298. data/assets/icons/clipboard-check.svg +1 -0
  299. data/assets/icons/clipboard-copy.svg +1 -0
  300. data/assets/icons/clipboard-edit.svg +1 -0
  301. data/assets/icons/clipboard-list.svg +1 -0
  302. data/assets/icons/clipboard-signature.svg +1 -0
  303. data/assets/icons/clipboard-type.svg +1 -0
  304. data/assets/icons/clipboard-x.svg +1 -0
  305. data/assets/icons/clipboard.svg +1 -0
  306. data/assets/icons/clock-1.svg +1 -0
  307. data/assets/icons/clock-10.svg +1 -0
  308. data/assets/icons/clock-11.svg +1 -0
  309. data/assets/icons/clock-12.svg +1 -0
  310. data/assets/icons/clock-2.svg +1 -0
  311. data/assets/icons/clock-3.svg +1 -0
  312. data/assets/icons/clock-4.svg +1 -0
  313. data/assets/icons/clock-5.svg +1 -0
  314. data/assets/icons/clock-6.svg +1 -0
  315. data/assets/icons/clock-7.svg +1 -0
  316. data/assets/icons/clock-8.svg +1 -0
  317. data/assets/icons/clock-9.svg +1 -0
  318. data/assets/icons/clock.svg +1 -0
  319. data/assets/icons/cloud-cog.svg +1 -0
  320. data/assets/icons/cloud-drizzle.svg +1 -0
  321. data/assets/icons/cloud-fog.svg +1 -0
  322. data/assets/icons/cloud-hail.svg +1 -0
  323. data/assets/icons/cloud-lightning.svg +1 -0
  324. data/assets/icons/cloud-moon-rain.svg +1 -0
  325. data/assets/icons/cloud-moon.svg +1 -0
  326. data/assets/icons/cloud-off.svg +1 -0
  327. data/assets/icons/cloud-rain-wind.svg +1 -0
  328. data/assets/icons/cloud-rain.svg +1 -0
  329. data/assets/icons/cloud-snow.svg +1 -0
  330. data/assets/icons/cloud-sun-rain.svg +1 -0
  331. data/assets/icons/cloud-sun.svg +1 -0
  332. data/assets/icons/cloud.svg +1 -0
  333. data/assets/icons/cloudy.svg +1 -0
  334. data/assets/icons/clover.svg +1 -0
  335. data/assets/icons/code-2.svg +1 -0
  336. data/assets/icons/code.svg +1 -0
  337. data/assets/icons/codepen.svg +1 -0
  338. data/assets/icons/codesandbox.svg +1 -0
  339. data/assets/icons/coffee.svg +1 -0
  340. data/assets/icons/cog.svg +1 -0
  341. data/assets/icons/coins.svg +1 -0
  342. data/assets/icons/columns.svg +1 -0
  343. data/assets/icons/command.svg +1 -0
  344. data/assets/icons/compass.svg +1 -0
  345. data/assets/icons/component.svg +1 -0
  346. data/assets/icons/concierge-bell.svg +1 -0
  347. data/assets/icons/construction.svg +1 -0
  348. data/assets/icons/contact.svg +1 -0
  349. data/assets/icons/contrast.svg +1 -0
  350. data/assets/icons/cookie.svg +1 -0
  351. data/assets/icons/copy.svg +1 -0
  352. data/assets/icons/copyleft.svg +1 -0
  353. data/assets/icons/copyright.svg +1 -0
  354. data/assets/icons/corner-down-left.svg +1 -0
  355. data/assets/icons/corner-down-right.svg +1 -0
  356. data/assets/icons/corner-left-down.svg +1 -0
  357. data/assets/icons/corner-left-up.svg +1 -0
  358. data/assets/icons/corner-right-down.svg +1 -0
  359. data/assets/icons/corner-right-up.svg +1 -0
  360. data/assets/icons/corner-up-left.svg +1 -0
  361. data/assets/icons/corner-up-right.svg +1 -0
  362. data/assets/icons/cpu.svg +1 -0
  363. data/assets/icons/creative-commons.svg +1 -0
  364. data/assets/icons/credit-card.svg +1 -0
  365. data/assets/icons/croissant.svg +1 -0
  366. data/assets/icons/crop.svg +1 -0
  367. data/assets/icons/cross.svg +1 -0
  368. data/assets/icons/crosshair.svg +1 -0
  369. data/assets/icons/crown.svg +1 -0
  370. data/assets/icons/cup-soda.svg +1 -0
  371. data/assets/icons/curly-braces.svg +1 -0
  372. data/assets/icons/currency.svg +1 -0
  373. data/assets/icons/database-backup.svg +1 -0
  374. data/assets/icons/database.svg +1 -0
  375. data/assets/icons/delete.svg +1 -0
  376. data/assets/icons/diamond.svg +1 -0
  377. data/assets/icons/dice-1.svg +1 -0
  378. data/assets/icons/dice-2.svg +1 -0
  379. data/assets/icons/dice-3.svg +1 -0
  380. data/assets/icons/dice-4.svg +1 -0
  381. data/assets/icons/dice-5.svg +1 -0
  382. data/assets/icons/dice-6.svg +1 -0
  383. data/assets/icons/dices.svg +1 -0
  384. data/assets/icons/diff.svg +1 -0
  385. data/assets/icons/disc.svg +1 -0
  386. data/assets/icons/divide-circle.svg +1 -0
  387. data/assets/icons/divide-square.svg +1 -0
  388. data/assets/icons/divide.svg +1 -0
  389. data/assets/icons/dna-off.svg +1 -0
  390. data/assets/icons/dna.svg +1 -0
  391. data/assets/icons/dog.svg +1 -0
  392. data/assets/icons/dollar-sign.svg +1 -0
  393. data/assets/icons/download-cloud.svg +1 -0
  394. data/assets/icons/download.svg +1 -0
  395. data/assets/icons/dribbble.svg +1 -0
  396. data/assets/icons/droplet.svg +1 -0
  397. data/assets/icons/droplets.svg +1 -0
  398. data/assets/icons/drumstick.svg +1 -0
  399. data/assets/icons/dumbbell.svg +1 -0
  400. data/assets/icons/ear-off.svg +1 -0
  401. data/assets/icons/ear.svg +1 -0
  402. data/assets/icons/edit-2.svg +1 -0
  403. data/assets/icons/edit-3.svg +1 -0
  404. data/assets/icons/edit.svg +1 -0
  405. data/assets/icons/egg-fried.svg +1 -0
  406. data/assets/icons/egg-off.svg +1 -0
  407. data/assets/icons/egg.svg +1 -0
  408. data/assets/icons/equal-not.svg +1 -0
  409. data/assets/icons/equal.svg +1 -0
  410. data/assets/icons/eraser.svg +1 -0
  411. data/assets/icons/euro.svg +1 -0
  412. data/assets/icons/expand.svg +1 -0
  413. data/assets/icons/external-link.svg +1 -0
  414. data/assets/icons/eye-off.svg +1 -0
  415. data/assets/icons/eye.svg +1 -0
  416. data/assets/icons/facebook.svg +1 -0
  417. data/assets/icons/factory.svg +1 -0
  418. data/assets/icons/fan.svg +1 -0
  419. data/assets/icons/fast-forward.svg +1 -0
  420. data/assets/icons/feather.svg +1 -0
  421. data/assets/icons/figma.svg +1 -0
  422. data/assets/icons/file-archive.svg +1 -0
  423. data/assets/icons/file-audio-2.svg +1 -0
  424. data/assets/icons/file-audio.svg +1 -0
  425. data/assets/icons/file-axis-3d.svg +1 -0
  426. data/assets/icons/file-badge-2.svg +1 -0
  427. data/assets/icons/file-badge.svg +1 -0
  428. data/assets/icons/file-bar-chart-2.svg +1 -0
  429. data/assets/icons/file-bar-chart.svg +1 -0
  430. data/assets/icons/file-box.svg +1 -0
  431. data/assets/icons/file-check-2.svg +1 -0
  432. data/assets/icons/file-check.svg +1 -0
  433. data/assets/icons/file-clock.svg +1 -0
  434. data/assets/icons/file-code.svg +1 -0
  435. data/assets/icons/file-cog-2.svg +1 -0
  436. data/assets/icons/file-cog.svg +1 -0
  437. data/assets/icons/file-diff.svg +1 -0
  438. data/assets/icons/file-digit.svg +1 -0
  439. data/assets/icons/file-down.svg +1 -0
  440. data/assets/icons/file-edit.svg +1 -0
  441. data/assets/icons/file-heart.svg +1 -0
  442. data/assets/icons/file-image.svg +1 -0
  443. data/assets/icons/file-input.svg +1 -0
  444. data/assets/icons/file-json-2.svg +1 -0
  445. data/assets/icons/file-json.svg +1 -0
  446. data/assets/icons/file-key-2.svg +1 -0
  447. data/assets/icons/file-key.svg +1 -0
  448. data/assets/icons/file-line-chart.svg +1 -0
  449. data/assets/icons/file-lock-2.svg +1 -0
  450. data/assets/icons/file-lock.svg +1 -0
  451. data/assets/icons/file-minus-2.svg +1 -0
  452. data/assets/icons/file-minus.svg +1 -0
  453. data/assets/icons/file-output.svg +1 -0
  454. data/assets/icons/file-pie-chart.svg +1 -0
  455. data/assets/icons/file-plus-2.svg +1 -0
  456. data/assets/icons/file-plus.svg +1 -0
  457. data/assets/icons/file-question.svg +1 -0
  458. data/assets/icons/file-scan.svg +1 -0
  459. data/assets/icons/file-search-2.svg +1 -0
  460. data/assets/icons/file-search.svg +1 -0
  461. data/assets/icons/file-signature.svg +1 -0
  462. data/assets/icons/file-spreadsheet.svg +1 -0
  463. data/assets/icons/file-symlink.svg +1 -0
  464. data/assets/icons/file-terminal.svg +1 -0
  465. data/assets/icons/file-text.svg +1 -0
  466. data/assets/icons/file-type-2.svg +1 -0
  467. data/assets/icons/file-type.svg +1 -0
  468. data/assets/icons/file-up.svg +1 -0
  469. data/assets/icons/file-video-2.svg +1 -0
  470. data/assets/icons/file-video.svg +1 -0
  471. data/assets/icons/file-volume-2.svg +1 -0
  472. data/assets/icons/file-volume.svg +1 -0
  473. data/assets/icons/file-warning.svg +1 -0
  474. data/assets/icons/file-x-2.svg +1 -0
  475. data/assets/icons/file-x.svg +1 -0
  476. data/assets/icons/file.svg +1 -0
  477. data/assets/icons/files.svg +1 -0
  478. data/assets/icons/film.svg +1 -0
  479. data/assets/icons/filter-x.svg +1 -0
  480. data/assets/icons/filter.svg +1 -0
  481. data/assets/icons/fingerprint.svg +1 -0
  482. data/assets/icons/fish-off.svg +1 -0
  483. data/assets/icons/fish.svg +1 -0
  484. data/assets/icons/flag-off.svg +1 -0
  485. data/assets/icons/flag-triangle-left.svg +1 -0
  486. data/assets/icons/flag-triangle-right.svg +1 -0
  487. data/assets/icons/flag.svg +1 -0
  488. data/assets/icons/flame.svg +1 -0
  489. data/assets/icons/flashlight-off.svg +1 -0
  490. data/assets/icons/flashlight.svg +1 -0
  491. data/assets/icons/flask-conical-off.svg +1 -0
  492. data/assets/icons/flask-conical.svg +1 -0
  493. data/assets/icons/flask-round.svg +1 -0
  494. data/assets/icons/flip-horizontal-2.svg +1 -0
  495. data/assets/icons/flip-horizontal.svg +1 -0
  496. data/assets/icons/flip-vertical-2.svg +1 -0
  497. data/assets/icons/flip-vertical.svg +1 -0
  498. data/assets/icons/flower-2.svg +1 -0
  499. data/assets/icons/flower.svg +1 -0
  500. data/assets/icons/focus.svg +1 -0
  501. data/assets/icons/folder-archive.svg +1 -0
  502. data/assets/icons/folder-check.svg +1 -0
  503. data/assets/icons/folder-clock.svg +1 -0
  504. data/assets/icons/folder-closed.svg +1 -0
  505. data/assets/icons/folder-cog-2.svg +1 -0
  506. data/assets/icons/folder-cog.svg +1 -0
  507. data/assets/icons/folder-down.svg +1 -0
  508. data/assets/icons/folder-edit.svg +1 -0
  509. data/assets/icons/folder-heart.svg +1 -0
  510. data/assets/icons/folder-input.svg +1 -0
  511. data/assets/icons/folder-key.svg +1 -0
  512. data/assets/icons/folder-lock.svg +1 -0
  513. data/assets/icons/folder-minus.svg +1 -0
  514. data/assets/icons/folder-open.svg +1 -0
  515. data/assets/icons/folder-output.svg +1 -0
  516. data/assets/icons/folder-plus.svg +1 -0
  517. data/assets/icons/folder-search-2.svg +1 -0
  518. data/assets/icons/folder-search.svg +1 -0
  519. data/assets/icons/folder-symlink.svg +1 -0
  520. data/assets/icons/folder-tree.svg +1 -0
  521. data/assets/icons/folder-up.svg +1 -0
  522. data/assets/icons/folder-x.svg +1 -0
  523. data/assets/icons/folder.svg +1 -0
  524. data/assets/icons/folders.svg +1 -0
  525. data/assets/icons/footprints.svg +1 -0
  526. data/assets/icons/forklift.svg +1 -0
  527. data/assets/icons/form-input.svg +1 -0
  528. data/assets/icons/forward.svg +1 -0
  529. data/assets/icons/frame.svg +1 -0
  530. data/assets/icons/framer.svg +1 -0
  531. data/assets/icons/frown.svg +1 -0
  532. data/assets/icons/fuel.svg +1 -0
  533. data/assets/icons/function-square.svg +1 -0
  534. data/assets/icons/gamepad-2.svg +1 -0
  535. data/assets/icons/gamepad.svg +1 -0
  536. data/assets/icons/gauge.svg +1 -0
  537. data/assets/icons/gavel.svg +1 -0
  538. data/assets/icons/gem.svg +1 -0
  539. data/assets/icons/ghost.svg +1 -0
  540. data/assets/icons/gift.svg +1 -0
  541. data/assets/icons/git-branch-plus.svg +1 -0
  542. data/assets/icons/git-branch.svg +1 -0
  543. data/assets/icons/git-commit.svg +1 -0
  544. data/assets/icons/git-compare.svg +1 -0
  545. data/assets/icons/git-fork.svg +1 -0
  546. data/assets/icons/git-merge.svg +1 -0
  547. data/assets/icons/git-pull-request-closed.svg +1 -0
  548. data/assets/icons/git-pull-request-draft.svg +1 -0
  549. data/assets/icons/git-pull-request.svg +1 -0
  550. data/assets/icons/github.svg +1 -0
  551. data/assets/icons/gitlab.svg +1 -0
  552. data/assets/icons/glass-water.svg +1 -0
  553. data/assets/icons/glasses.svg +1 -0
  554. data/assets/icons/globe-2.svg +1 -0
  555. data/assets/icons/globe.svg +1 -0
  556. data/assets/icons/grab.svg +1 -0
  557. data/assets/icons/graduation-cap.svg +1 -0
  558. data/assets/icons/grape.svg +1 -0
  559. data/assets/icons/grid.svg +1 -0
  560. data/assets/icons/grip-horizontal.svg +1 -0
  561. data/assets/icons/grip-vertical.svg +1 -0
  562. data/assets/icons/grip.svg +1 -0
  563. data/assets/icons/hammer.svg +1 -0
  564. data/assets/icons/hand-metal.svg +1 -0
  565. data/assets/icons/hand.svg +1 -0
  566. data/assets/icons/hard-drive.svg +1 -0
  567. data/assets/icons/hard-hat.svg +1 -0
  568. data/assets/icons/hash.svg +1 -0
  569. data/assets/icons/haze.svg +1 -0
  570. data/assets/icons/heading-1.svg +1 -0
  571. data/assets/icons/heading-2.svg +1 -0
  572. data/assets/icons/heading-3.svg +1 -0
  573. data/assets/icons/heading-4.svg +1 -0
  574. data/assets/icons/heading-5.svg +1 -0
  575. data/assets/icons/heading-6.svg +1 -0
  576. data/assets/icons/heading.svg +1 -0
  577. data/assets/icons/headphones.svg +1 -0
  578. data/assets/icons/heart-crack.svg +1 -0
  579. data/assets/icons/heart-handshake.svg +1 -0
  580. data/assets/icons/heart-off.svg +1 -0
  581. data/assets/icons/heart-pulse.svg +1 -0
  582. data/assets/icons/heart.svg +1 -0
  583. data/assets/icons/help-circle.svg +1 -0
  584. data/assets/icons/helping-hand.svg +1 -0
  585. data/assets/icons/hexagon.svg +1 -0
  586. data/assets/icons/highlighter.svg +1 -0
  587. data/assets/icons/history.svg +1 -0
  588. data/assets/icons/home.svg +1 -0
  589. data/assets/icons/hop-off.svg +1 -0
  590. data/assets/icons/hop.svg +1 -0
  591. data/assets/icons/hourglass.svg +1 -0
  592. data/assets/icons/ice-cream-2.svg +1 -0
  593. data/assets/icons/ice-cream.svg +1 -0
  594. data/assets/icons/image-minus.svg +1 -0
  595. data/assets/icons/image-off.svg +1 -0
  596. data/assets/icons/image-plus.svg +1 -0
  597. data/assets/icons/image.svg +1 -0
  598. data/assets/icons/import.svg +1 -0
  599. data/assets/icons/inbox.svg +1 -0
  600. data/assets/icons/indent.svg +1 -0
  601. data/assets/icons/indian-rupee.svg +1 -0
  602. data/assets/icons/infinity.svg +1 -0
  603. data/assets/icons/info.svg +1 -0
  604. data/assets/icons/inspect.svg +1 -0
  605. data/assets/icons/instagram.svg +1 -0
  606. data/assets/icons/italic.svg +1 -0
  607. data/assets/icons/japanese-yen.svg +1 -0
  608. data/assets/icons/joystick.svg +1 -0
  609. data/assets/icons/key.svg +1 -0
  610. data/assets/icons/keyboard.svg +1 -0
  611. data/assets/icons/lamp-ceiling.svg +1 -0
  612. data/assets/icons/lamp-desk.svg +1 -0
  613. data/assets/icons/lamp-floor.svg +1 -0
  614. data/assets/icons/lamp-wall-down.svg +1 -0
  615. data/assets/icons/lamp-wall-up.svg +1 -0
  616. data/assets/icons/lamp.svg +1 -0
  617. data/assets/icons/landmark.svg +1 -0
  618. data/assets/icons/languages.svg +1 -0
  619. data/assets/icons/laptop-2.svg +1 -0
  620. data/assets/icons/laptop.svg +1 -0
  621. data/assets/icons/lasso-select.svg +1 -0
  622. data/assets/icons/lasso.svg +1 -0
  623. data/assets/icons/laugh.svg +1 -0
  624. data/assets/icons/layers.svg +1 -0
  625. data/assets/icons/layout-dashboard.svg +1 -0
  626. data/assets/icons/layout-grid.svg +1 -0
  627. data/assets/icons/layout-list.svg +1 -0
  628. data/assets/icons/layout-template.svg +1 -0
  629. data/assets/icons/layout.svg +1 -0
  630. data/assets/icons/leaf.svg +1 -0
  631. data/assets/icons/library.svg +1 -0
  632. data/assets/icons/life-buoy.svg +1 -0
  633. data/assets/icons/lightbulb-off.svg +1 -0
  634. data/assets/icons/lightbulb.svg +1 -0
  635. data/assets/icons/line-chart.svg +1 -0
  636. data/assets/icons/link-2-off.svg +1 -0
  637. data/assets/icons/link-2.svg +1 -0
  638. data/assets/icons/link.svg +1 -0
  639. data/assets/icons/linkedin.svg +1 -0
  640. data/assets/icons/list-checks.svg +1 -0
  641. data/assets/icons/list-end.svg +1 -0
  642. data/assets/icons/list-minus.svg +1 -0
  643. data/assets/icons/list-music.svg +1 -0
  644. data/assets/icons/list-ordered.svg +1 -0
  645. data/assets/icons/list-plus.svg +1 -0
  646. data/assets/icons/list-start.svg +1 -0
  647. data/assets/icons/list-video.svg +1 -0
  648. data/assets/icons/list-x.svg +1 -0
  649. data/assets/icons/list.svg +1 -0
  650. data/assets/icons/loader-2.svg +1 -0
  651. data/assets/icons/loader.svg +1 -0
  652. data/assets/icons/locate-fixed.svg +1 -0
  653. data/assets/icons/locate-off.svg +1 -0
  654. data/assets/icons/locate.svg +1 -0
  655. data/assets/icons/lock.svg +1 -0
  656. data/assets/icons/log-in.svg +1 -0
  657. data/assets/icons/log-out.svg +1 -0
  658. data/assets/icons/luggage.svg +1 -0
  659. data/assets/icons/magnet.svg +1 -0
  660. data/assets/icons/mail-check.svg +1 -0
  661. data/assets/icons/mail-minus.svg +1 -0
  662. data/assets/icons/mail-open.svg +1 -0
  663. data/assets/icons/mail-plus.svg +1 -0
  664. data/assets/icons/mail-question.svg +1 -0
  665. data/assets/icons/mail-search.svg +1 -0
  666. data/assets/icons/mail-warning.svg +1 -0
  667. data/assets/icons/mail-x.svg +1 -0
  668. data/assets/icons/mail.svg +1 -0
  669. data/assets/icons/mails.svg +1 -0
  670. data/assets/icons/map-pin-off.svg +1 -0
  671. data/assets/icons/map-pin.svg +1 -0
  672. data/assets/icons/map.svg +1 -0
  673. data/assets/icons/martini.svg +1 -0
  674. data/assets/icons/maximize-2.svg +1 -0
  675. data/assets/icons/maximize.svg +1 -0
  676. data/assets/icons/medal.svg +1 -0
  677. data/assets/icons/megaphone-off.svg +1 -0
  678. data/assets/icons/megaphone.svg +1 -0
  679. data/assets/icons/meh.svg +1 -0
  680. data/assets/icons/menu.svg +1 -0
  681. data/assets/icons/message-circle.svg +1 -0
  682. data/assets/icons/message-square.svg +1 -0
  683. data/assets/icons/mic-2.svg +1 -0
  684. data/assets/icons/mic-off.svg +1 -0
  685. data/assets/icons/mic.svg +1 -0
  686. data/assets/icons/microscope.svg +1 -0
  687. data/assets/icons/microwave.svg +1 -0
  688. data/assets/icons/milestone.svg +1 -0
  689. data/assets/icons/milk-off.svg +1 -0
  690. data/assets/icons/milk.svg +1 -0
  691. data/assets/icons/minimize-2.svg +1 -0
  692. data/assets/icons/minimize.svg +1 -0
  693. data/assets/icons/minus-circle.svg +1 -0
  694. data/assets/icons/minus-square.svg +1 -0
  695. data/assets/icons/minus.svg +1 -0
  696. data/assets/icons/monitor-off.svg +1 -0
  697. data/assets/icons/monitor-smartphone.svg +1 -0
  698. data/assets/icons/monitor-speaker.svg +1 -0
  699. data/assets/icons/monitor.svg +1 -0
  700. data/assets/icons/moon.svg +1 -0
  701. data/assets/icons/more-horizontal.svg +1 -0
  702. data/assets/icons/more-vertical.svg +1 -0
  703. data/assets/icons/mountain-snow.svg +1 -0
  704. data/assets/icons/mountain.svg +1 -0
  705. data/assets/icons/mouse-pointer-2.svg +1 -0
  706. data/assets/icons/mouse-pointer-click.svg +1 -0
  707. data/assets/icons/mouse-pointer.svg +1 -0
  708. data/assets/icons/mouse.svg +1 -0
  709. data/assets/icons/move-3d.svg +1 -0
  710. data/assets/icons/move-diagonal-2.svg +1 -0
  711. data/assets/icons/move-diagonal.svg +1 -0
  712. data/assets/icons/move-horizontal.svg +1 -0
  713. data/assets/icons/move-vertical.svg +1 -0
  714. data/assets/icons/move.svg +1 -0
  715. data/assets/icons/music-2.svg +1 -0
  716. data/assets/icons/music-3.svg +1 -0
  717. data/assets/icons/music-4.svg +1 -0
  718. data/assets/icons/music.svg +1 -0
  719. data/assets/icons/navigation-2-off.svg +1 -0
  720. data/assets/icons/navigation-2.svg +1 -0
  721. data/assets/icons/navigation-off.svg +1 -0
  722. data/assets/icons/navigation.svg +1 -0
  723. data/assets/icons/network.svg +1 -0
  724. data/assets/icons/newspaper.svg +1 -0
  725. data/assets/icons/nfc.svg +1 -0
  726. data/assets/icons/nut-off.svg +1 -0
  727. data/assets/icons/nut.svg +1 -0
  728. data/assets/icons/octagon.svg +1 -0
  729. data/assets/icons/option.svg +1 -0
  730. data/assets/icons/outdent.svg +1 -0
  731. data/assets/icons/package-2.svg +1 -0
  732. data/assets/icons/package-check.svg +1 -0
  733. data/assets/icons/package-minus.svg +1 -0
  734. data/assets/icons/package-open.svg +1 -0
  735. data/assets/icons/package-plus.svg +1 -0
  736. data/assets/icons/package-search.svg +1 -0
  737. data/assets/icons/package-x.svg +1 -0
  738. data/assets/icons/package.svg +1 -0
  739. data/assets/icons/paint-bucket.svg +1 -0
  740. data/assets/icons/paintbrush-2.svg +1 -0
  741. data/assets/icons/paintbrush.svg +1 -0
  742. data/assets/icons/palette.svg +1 -0
  743. data/assets/icons/palmtree.svg +1 -0
  744. data/assets/icons/paperclip.svg +1 -0
  745. data/assets/icons/party-popper.svg +1 -0
  746. data/assets/icons/pause-circle.svg +1 -0
  747. data/assets/icons/pause-octagon.svg +1 -0
  748. data/assets/icons/pause.svg +1 -0
  749. data/assets/icons/pen-tool.svg +1 -0
  750. data/assets/icons/pencil.svg +1 -0
  751. data/assets/icons/percent.svg +1 -0
  752. data/assets/icons/person-standing.svg +1 -0
  753. data/assets/icons/phone-call.svg +1 -0
  754. data/assets/icons/phone-forwarded.svg +1 -0
  755. data/assets/icons/phone-incoming.svg +1 -0
  756. data/assets/icons/phone-missed.svg +1 -0
  757. data/assets/icons/phone-off.svg +1 -0
  758. data/assets/icons/phone-outgoing.svg +1 -0
  759. data/assets/icons/phone.svg +1 -0
  760. data/assets/icons/picture-in-picture-2.svg +1 -0
  761. data/assets/icons/picture-in-picture.svg +1 -0
  762. data/assets/icons/pie-chart.svg +1 -0
  763. data/assets/icons/piggy-bank.svg +1 -0
  764. data/assets/icons/pilcrow.svg +1 -0
  765. data/assets/icons/pill.svg +1 -0
  766. data/assets/icons/pin-off.svg +1 -0
  767. data/assets/icons/pin.svg +1 -0
  768. data/assets/icons/pipette.svg +1 -0
  769. data/assets/icons/pizza.svg +1 -0
  770. data/assets/icons/plane.svg +1 -0
  771. data/assets/icons/play-circle.svg +1 -0
  772. data/assets/icons/play.svg +1 -0
  773. data/assets/icons/plug-2.svg +1 -0
  774. data/assets/icons/plug-zap.svg +1 -0
  775. data/assets/icons/plug.svg +1 -0
  776. data/assets/icons/plus-circle.svg +1 -0
  777. data/assets/icons/plus-square.svg +1 -0
  778. data/assets/icons/plus.svg +1 -0
  779. data/assets/icons/pocket.svg +1 -0
  780. data/assets/icons/podcast.svg +1 -0
  781. data/assets/icons/pointer.svg +1 -0
  782. data/assets/icons/pound-sterling.svg +1 -0
  783. data/assets/icons/power-off.svg +1 -0
  784. data/assets/icons/power.svg +1 -0
  785. data/assets/icons/printer.svg +1 -0
  786. data/assets/icons/puzzle.svg +1 -0
  787. data/assets/icons/qr-code.svg +1 -0
  788. data/assets/icons/quote.svg +1 -0
  789. data/assets/icons/radio-receiver.svg +1 -0
  790. data/assets/icons/radio.svg +1 -0
  791. data/assets/icons/rectangle-horizontal.svg +1 -0
  792. data/assets/icons/rectangle-vertical.svg +1 -0
  793. data/assets/icons/recycle.svg +1 -0
  794. data/assets/icons/redo-2.svg +1 -0
  795. data/assets/icons/redo.svg +1 -0
  796. data/assets/icons/refresh-ccw.svg +1 -0
  797. data/assets/icons/refresh-cw.svg +1 -0
  798. data/assets/icons/refrigerator.svg +1 -0
  799. data/assets/icons/regex.svg +1 -0
  800. data/assets/icons/remove-formatting.svg +1 -0
  801. data/assets/icons/repeat-1.svg +1 -0
  802. data/assets/icons/repeat.svg +1 -0
  803. data/assets/icons/reply-all.svg +1 -0
  804. data/assets/icons/reply.svg +1 -0
  805. data/assets/icons/rewind.svg +1 -0
  806. data/assets/icons/rocket.svg +1 -0
  807. data/assets/icons/rocking-chair.svg +1 -0
  808. data/assets/icons/rotate-3d.svg +1 -0
  809. data/assets/icons/rotate-ccw.svg +1 -0
  810. data/assets/icons/rotate-cw.svg +1 -0
  811. data/assets/icons/router.svg +1 -0
  812. data/assets/icons/rss.svg +1 -0
  813. data/assets/icons/ruler.svg +1 -0
  814. data/assets/icons/russian-ruble.svg +1 -0
  815. data/assets/icons/sailboat.svg +1 -0
  816. data/assets/icons/salad.svg +1 -0
  817. data/assets/icons/sandwich.svg +1 -0
  818. data/assets/icons/save.svg +1 -0
  819. data/assets/icons/scale-3d.svg +1 -0
  820. data/assets/icons/scale.svg +1 -0
  821. data/assets/icons/scaling.svg +1 -0
  822. data/assets/icons/scan-face.svg +1 -0
  823. data/assets/icons/scan-line.svg +1 -0
  824. data/assets/icons/scan.svg +1 -0
  825. data/assets/icons/scissors.svg +1 -0
  826. data/assets/icons/screen-share-off.svg +1 -0
  827. data/assets/icons/screen-share.svg +1 -0
  828. data/assets/icons/scroll.svg +1 -0
  829. data/assets/icons/search.svg +1 -0
  830. data/assets/icons/send.svg +1 -0
  831. data/assets/icons/separator-horizontal.svg +1 -0
  832. data/assets/icons/separator-vertical.svg +1 -0
  833. data/assets/icons/server-cog.svg +1 -0
  834. data/assets/icons/server-crash.svg +1 -0
  835. data/assets/icons/server-off.svg +1 -0
  836. data/assets/icons/server.svg +1 -0
  837. data/assets/icons/settings-2.svg +1 -0
  838. data/assets/icons/settings.svg +1 -0
  839. data/assets/icons/share-2.svg +1 -0
  840. data/assets/icons/share.svg +1 -0
  841. data/assets/icons/sheet.svg +1 -0
  842. data/assets/icons/shield-alert.svg +1 -0
  843. data/assets/icons/shield-check.svg +1 -0
  844. data/assets/icons/shield-close.svg +1 -0
  845. data/assets/icons/shield-off.svg +1 -0
  846. data/assets/icons/shield.svg +1 -0
  847. data/assets/icons/ship.svg +1 -0
  848. data/assets/icons/shirt.svg +1 -0
  849. data/assets/icons/shopping-bag.svg +1 -0
  850. data/assets/icons/shopping-cart.svg +1 -0
  851. data/assets/icons/shovel.svg +1 -0
  852. data/assets/icons/shower-head.svg +1 -0
  853. data/assets/icons/shrink.svg +1 -0
  854. data/assets/icons/shrub.svg +1 -0
  855. data/assets/icons/shuffle.svg +1 -0
  856. data/assets/icons/sidebar-close.svg +1 -0
  857. data/assets/icons/sidebar-open.svg +1 -0
  858. data/assets/icons/sidebar.svg +1 -0
  859. data/assets/icons/sigma.svg +1 -0
  860. data/assets/icons/signal-high.svg +1 -0
  861. data/assets/icons/signal-low.svg +1 -0
  862. data/assets/icons/signal-medium.svg +1 -0
  863. data/assets/icons/signal-zero.svg +1 -0
  864. data/assets/icons/signal.svg +1 -0
  865. data/assets/icons/siren.svg +1 -0
  866. data/assets/icons/skip-back.svg +1 -0
  867. data/assets/icons/skip-forward.svg +1 -0
  868. data/assets/icons/skull.svg +1 -0
  869. data/assets/icons/slack.svg +1 -0
  870. data/assets/icons/slash.svg +1 -0
  871. data/assets/icons/slice.svg +1 -0
  872. data/assets/icons/sliders-horizontal.svg +1 -0
  873. data/assets/icons/sliders.svg +1 -0
  874. data/assets/icons/smartphone-charging.svg +1 -0
  875. data/assets/icons/smartphone-nfc.svg +1 -0
  876. data/assets/icons/smartphone.svg +1 -0
  877. data/assets/icons/smile-plus.svg +1 -0
  878. data/assets/icons/smile.svg +1 -0
  879. data/assets/icons/snowflake.svg +1 -0
  880. data/assets/icons/sofa.svg +1 -0
  881. data/assets/icons/sort-asc.svg +1 -0
  882. data/assets/icons/sort-desc.svg +1 -0
  883. data/assets/icons/soup.svg +1 -0
  884. data/assets/icons/speaker.svg +1 -0
  885. data/assets/icons/spline.svg +1 -0
  886. data/assets/icons/split-square-horizontal.svg +1 -0
  887. data/assets/icons/split-square-vertical.svg +1 -0
  888. data/assets/icons/sprout.svg +1 -0
  889. data/assets/icons/square.svg +1 -0
  890. data/assets/icons/stamp.svg +1 -0
  891. data/assets/icons/star-half.svg +1 -0
  892. data/assets/icons/star-off.svg +1 -0
  893. data/assets/icons/star.svg +1 -0
  894. data/assets/icons/stethoscope.svg +1 -0
  895. data/assets/icons/sticker.svg +1 -0
  896. data/assets/icons/sticky-note.svg +1 -0
  897. data/assets/icons/stop-circle.svg +1 -0
  898. data/assets/icons/stretch-horizontal.svg +1 -0
  899. data/assets/icons/stretch-vertical.svg +1 -0
  900. data/assets/icons/strikethrough.svg +1 -0
  901. data/assets/icons/subscript.svg +1 -0
  902. data/assets/icons/subtitles.svg +1 -0
  903. data/assets/icons/sun-dim.svg +1 -0
  904. data/assets/icons/sun-medium.svg +1 -0
  905. data/assets/icons/sun-moon.svg +1 -0
  906. data/assets/icons/sun-snow.svg +1 -0
  907. data/assets/icons/sun.svg +1 -0
  908. data/assets/icons/sunrise.svg +1 -0
  909. data/assets/icons/sunset.svg +1 -0
  910. data/assets/icons/superscript.svg +1 -0
  911. data/assets/icons/swiss-franc.svg +1 -0
  912. data/assets/icons/switch-camera.svg +1 -0
  913. data/assets/icons/sword.svg +1 -0
  914. data/assets/icons/swords.svg +1 -0
  915. data/assets/icons/syringe.svg +1 -0
  916. data/assets/icons/table-2.svg +1 -0
  917. data/assets/icons/table.svg +1 -0
  918. data/assets/icons/tablet.svg +1 -0
  919. data/assets/icons/tablets.svg +1 -0
  920. data/assets/icons/tag.svg +1 -0
  921. data/assets/icons/tags.svg +1 -0
  922. data/assets/icons/target.svg +1 -0
  923. data/assets/icons/tent.svg +1 -0
  924. data/assets/icons/terminal-square.svg +1 -0
  925. data/assets/icons/terminal.svg +1 -0
  926. data/assets/icons/text-cursor-input.svg +1 -0
  927. data/assets/icons/text-cursor.svg +1 -0
  928. data/assets/icons/thermometer-snowflake.svg +1 -0
  929. data/assets/icons/thermometer-sun.svg +1 -0
  930. data/assets/icons/thermometer.svg +1 -0
  931. data/assets/icons/thumbs-down.svg +1 -0
  932. data/assets/icons/thumbs-up.svg +1 -0
  933. data/assets/icons/ticket.svg +1 -0
  934. data/assets/icons/timer-off.svg +1 -0
  935. data/assets/icons/timer-reset.svg +1 -0
  936. data/assets/icons/timer.svg +1 -0
  937. data/assets/icons/toggle-left.svg +1 -0
  938. data/assets/icons/toggle-right.svg +1 -0
  939. data/assets/icons/tornado.svg +1 -0
  940. data/assets/icons/tower-control.svg +1 -0
  941. data/assets/icons/toy-brick.svg +1 -0
  942. data/assets/icons/train.svg +1 -0
  943. data/assets/icons/trash-2.svg +1 -0
  944. data/assets/icons/trash.svg +1 -0
  945. data/assets/icons/tree-deciduous.svg +1 -0
  946. data/assets/icons/tree-pine.svg +1 -0
  947. data/assets/icons/trees.svg +1 -0
  948. data/assets/icons/trello.svg +1 -0
  949. data/assets/icons/trending-down.svg +1 -0
  950. data/assets/icons/trending-up.svg +1 -0
  951. data/assets/icons/triangle.svg +1 -0
  952. data/assets/icons/trophy.svg +1 -0
  953. data/assets/icons/truck.svg +1 -0
  954. data/assets/icons/tv-2.svg +1 -0
  955. data/assets/icons/tv.svg +1 -0
  956. data/assets/icons/twitch.svg +1 -0
  957. data/assets/icons/twitter.svg +1 -0
  958. data/assets/icons/type.svg +1 -0
  959. data/assets/icons/umbrella.svg +1 -0
  960. data/assets/icons/underline.svg +1 -0
  961. data/assets/icons/undo-2.svg +1 -0
  962. data/assets/icons/undo.svg +1 -0
  963. data/assets/icons/unlink-2.svg +1 -0
  964. data/assets/icons/unlink.svg +1 -0
  965. data/assets/icons/unlock.svg +1 -0
  966. data/assets/icons/upload-cloud.svg +1 -0
  967. data/assets/icons/upload.svg +1 -0
  968. data/assets/icons/usb.svg +1 -0
  969. data/assets/icons/user-check.svg +1 -0
  970. data/assets/icons/user-cog.svg +1 -0
  971. data/assets/icons/user-minus.svg +1 -0
  972. data/assets/icons/user-plus.svg +1 -0
  973. data/assets/icons/user-x.svg +1 -0
  974. data/assets/icons/user.svg +1 -0
  975. data/assets/icons/users.svg +1 -0
  976. data/assets/icons/utensils-crossed.svg +1 -0
  977. data/assets/icons/utensils.svg +1 -0
  978. data/assets/icons/utility-pole.svg +1 -0
  979. data/assets/icons/vegan.svg +1 -0
  980. data/assets/icons/venetian-mask.svg +1 -0
  981. data/assets/icons/verified.svg +1 -0
  982. data/assets/icons/vibrate-off.svg +1 -0
  983. data/assets/icons/vibrate.svg +1 -0
  984. data/assets/icons/video-off.svg +1 -0
  985. data/assets/icons/video.svg +1 -0
  986. data/assets/icons/view.svg +1 -0
  987. data/assets/icons/voicemail.svg +1 -0
  988. data/assets/icons/volume-1.svg +1 -0
  989. data/assets/icons/volume-2.svg +1 -0
  990. data/assets/icons/volume-x.svg +1 -0
  991. data/assets/icons/volume.svg +1 -0
  992. data/assets/icons/vote.svg +1 -0
  993. data/assets/icons/wallet.svg +1 -0
  994. data/assets/icons/wand-2.svg +1 -0
  995. data/assets/icons/wand.svg +1 -0
  996. data/assets/icons/watch.svg +1 -0
  997. data/assets/icons/waves.svg +1 -0
  998. data/assets/icons/webcam.svg +1 -0
  999. data/assets/icons/webhook.svg +1 -0
  1000. data/assets/icons/wheat-off.svg +1 -0
  1001. data/assets/icons/wheat.svg +1 -0
  1002. data/assets/icons/wifi-off.svg +1 -0
  1003. data/assets/icons/wifi.svg +1 -0
  1004. data/assets/icons/wind.svg +1 -0
  1005. data/assets/icons/wine-off.svg +1 -0
  1006. data/assets/icons/wine.svg +1 -0
  1007. data/assets/icons/wrap-text.svg +1 -0
  1008. data/assets/icons/wrench.svg +1 -0
  1009. data/assets/icons/x-circle.svg +1 -0
  1010. data/assets/icons/x-octagon.svg +1 -0
  1011. data/assets/icons/x-square.svg +1 -0
  1012. data/assets/icons/x.svg +1 -0
  1013. data/assets/icons/youtube.svg +1 -0
  1014. data/assets/icons/zap-off.svg +1 -0
  1015. data/assets/icons/zap.svg +1 -0
  1016. data/assets/icons/zoom-in.svg +1 -0
  1017. data/assets/icons/zoom-out.svg +1 -0
  1018. data/assets/img/favicon_dark.svg +1 -0
  1019. data/assets/img/favicon_light.svg +1 -0
  1020. data/{app/assets/lookbook → assets}/js/app.js +35 -8
  1021. data/{app/assets/lookbook → assets}/js/helpers/dom.js +4 -7
  1022. data/assets/js/helpers/request.js +14 -0
  1023. data/{app/assets/lookbook → assets}/js/helpers/string.js +4 -11
  1024. data/{app/assets/lookbook/js/lookbook.js → assets/js/index.js} +2 -2
  1025. data/assets/js/lib/lookbook.js +125 -0
  1026. data/{app/assets/lookbook → assets}/js/lib/tippy.js +1 -0
  1027. data/assets/js/lookbook-core.js +1 -0
  1028. data/assets/js/lookbook.js +2 -0
  1029. data/config/app.yml +51 -18
  1030. data/config/inputs.yml +2 -2
  1031. data/config/panels.yml +23 -25
  1032. data/config/routes.rb +7 -1
  1033. data/config/tags.yml +10 -2
  1034. data/lib/lookbook/cable/cable.rb +53 -0
  1035. data/lib/lookbook/engine.rb +178 -86
  1036. data/lib/lookbook/entities/collections/concerns/hierarchical_collection.rb +9 -4
  1037. data/lib/lookbook/entities/collections/entity_collection.rb +11 -6
  1038. data/lib/lookbook/entities/collections/page_collection.rb +35 -8
  1039. data/lib/lookbook/entities/collections/preview_collection.rb +51 -17
  1040. data/lib/lookbook/entities/collections/render_target_collection.rb +4 -0
  1041. data/lib/lookbook/entities/collections/scenario_collection.rb +4 -0
  1042. data/lib/lookbook/entities/concerns/annotatable_entity.rb +84 -0
  1043. data/lib/lookbook/entities/concerns/{inspectable.rb → inspectable_entity.rb} +18 -2
  1044. data/lib/lookbook/entities/concerns/locatable_entity.rb +116 -0
  1045. data/lib/lookbook/entities/concerns/navigable_entity.rb +62 -0
  1046. data/lib/lookbook/entities/entity.rb +40 -9
  1047. data/lib/lookbook/entities/page_entity.rb +142 -0
  1048. data/lib/lookbook/entities/{page_section.rb → page_section_entity.rb} +5 -1
  1049. data/lib/lookbook/entities/preview_entity.rb +214 -0
  1050. data/lib/lookbook/entities/renderable_entity.rb +101 -0
  1051. data/lib/lookbook/entities/rendered_scenario_entity.rb +69 -0
  1052. data/lib/lookbook/entities/scenario_entity.rb +182 -0
  1053. data/lib/lookbook/entities/scenario_group_entity.rb +135 -0
  1054. data/lib/lookbook/file_watcher.rb +13 -35
  1055. data/lib/lookbook/helpers/class_names_helper.rb +28 -0
  1056. data/lib/lookbook/helpers/page_helper.rb +43 -0
  1057. data/{app/helpers/lookbook → lib/lookbook/helpers}/preview_helper.rb +3 -0
  1058. data/lib/lookbook/helpers/ui_elements_helper.rb +91 -0
  1059. data/lib/lookbook/param.rb +8 -2
  1060. data/lib/lookbook/preview.rb +85 -0
  1061. data/lib/lookbook/preview_after_render.rb +13 -0
  1062. data/lib/lookbook/preview_controller_actions.rb +64 -0
  1063. data/lib/lookbook/preview_parser.rb +4 -2
  1064. data/lib/lookbook/reloaders.rb +75 -0
  1065. data/lib/lookbook/runtime_context.rb +49 -0
  1066. data/lib/lookbook/services/data/resolvers/data_resolver.rb +5 -7
  1067. data/lib/lookbook/services/entities/page_tree_builder.rb +40 -0
  1068. data/lib/lookbook/services/entities/preview_tree_builder.rb +34 -0
  1069. data/lib/lookbook/services/list_resolver.rb +35 -0
  1070. data/lib/lookbook/services/markdown_renderer.rb +10 -2
  1071. data/lib/lookbook/services/priority_prefix_parser.rb +16 -0
  1072. data/lib/lookbook/services/tags/tag_options_parser.rb +13 -4
  1073. data/lib/lookbook/services/templates/action_view_config_handler.rb +50 -0
  1074. data/lib/lookbook/services/urls/data_uri_encoder.rb +14 -0
  1075. data/lib/lookbook/services/urls/file_data_uri_encoder.rb +24 -0
  1076. data/lib/lookbook/services/urls/search_param_encoder.rb +16 -0
  1077. data/lib/lookbook/services/urls/search_param_parser.rb +7 -6
  1078. data/lib/lookbook/stores/config_store.rb +63 -26
  1079. data/lib/lookbook/stores/hook_store.rb +0 -10
  1080. data/lib/lookbook/stores/input_store.rb +8 -4
  1081. data/lib/lookbook/stores/panel_store.rb +30 -49
  1082. data/lib/lookbook/stores/tag_store.rb +6 -5
  1083. data/lib/lookbook/support/deprecation.rb +5 -0
  1084. data/lib/lookbook/support/errors/config_error.rb +2 -2
  1085. data/lib/lookbook/support/errors/error.rb +64 -0
  1086. data/lib/lookbook/support/errors/parser_error.rb +2 -2
  1087. data/lib/lookbook/support/errors/preview_template_error.rb +7 -0
  1088. data/lib/lookbook/support/errors/routing_error.rb +7 -0
  1089. data/lib/lookbook/support/errors/template_error.rb +7 -0
  1090. data/lib/lookbook/support/evented_file_update_checker.rb +69 -0
  1091. data/lib/lookbook/support/null_websocket.rb +9 -0
  1092. data/lib/lookbook/support/store.rb +10 -1
  1093. data/lib/lookbook/support/tree_node.rb +7 -7
  1094. data/lib/lookbook/support/utils/path_utils.rb +9 -3
  1095. data/lib/lookbook/support/utils/utils.rb +9 -1
  1096. data/lib/lookbook/support/utils/where.rb +49 -0
  1097. data/lib/lookbook/tags/after_render_tag.rb +7 -0
  1098. data/lib/lookbook/tags/param_tag.rb +14 -4
  1099. data/lib/lookbook/tags/{position_tag.rb → priority_tag.rb} +4 -4
  1100. data/lib/lookbook/tags/renders_tag.rb +4 -0
  1101. data/lib/lookbook/tags/tag_provider.rb +3 -0
  1102. data/lib/lookbook/tags/type_tag.rb +7 -0
  1103. data/lib/lookbook/tags/yard_tag.rb +15 -11
  1104. data/lib/lookbook/theme.rb +2 -6
  1105. data/lib/lookbook/version.rb +1 -1
  1106. data/lib/lookbook/websocket.rb +6 -53
  1107. data/lib/lookbook.rb +180 -54
  1108. data/public/lookbook-assets/Inter-italic.var.53a0de5f.woff2 +0 -0
  1109. data/public/lookbook-assets/Inter-italic.var.69eb0fe1.woff2 +0 -0
  1110. data/public/lookbook-assets/Inter-italic.var.736a7044.woff2 +0 -0
  1111. data/public/lookbook-assets/Inter-roman.var.b695afbe.woff2 +0 -0
  1112. data/public/lookbook-assets/Inter-roman.var.d4f9805a.woff2 +0 -0
  1113. data/public/lookbook-assets/Inter-roman.var.fbdd51d0.woff2 +0 -0
  1114. data/public/lookbook-assets/SourceCodeVariable-Italic.cad97b83.otf +0 -0
  1115. data/public/lookbook-assets/SourceCodeVariable-Italic.ttf.09b4354a.woff2 +0 -0
  1116. data/public/lookbook-assets/SourceCodeVariable-Italic.ttf.a93fa22f.woff2 +0 -0
  1117. data/public/lookbook-assets/SourceCodeVariable-Italic.ttf.fcd7e9f4.woff2 +0 -0
  1118. data/public/lookbook-assets/SourceCodeVariable-Roman.185ddb17.otf +0 -0
  1119. data/public/lookbook-assets/SourceCodeVariable-Roman.ttf.118e9f22.woff2 +0 -0
  1120. data/public/lookbook-assets/SourceCodeVariable-Roman.ttf.91043609.woff2 +0 -0
  1121. data/public/lookbook-assets/SourceCodeVariable-Roman.ttf.f1c8fcce.woff2 +0 -0
  1122. data/public/lookbook-assets/css/lookbook.css +1538 -717
  1123. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  1124. data/public/lookbook-assets/css/themes/blue.css +14 -2
  1125. data/public/lookbook-assets/css/themes/blue.css.map +1 -1
  1126. data/public/lookbook-assets/css/themes/green.css +14 -2
  1127. data/public/lookbook-assets/css/themes/green.css.map +1 -1
  1128. data/public/lookbook-assets/css/themes/indigo.css +14 -2
  1129. data/public/lookbook-assets/css/themes/indigo.css.map +1 -1
  1130. data/public/lookbook-assets/css/themes/rose.css +14 -2
  1131. data/public/lookbook-assets/css/themes/rose.css.map +1 -1
  1132. data/public/lookbook-assets/css/themes/zinc.css +14 -2
  1133. data/public/lookbook-assets/css/themes/zinc.css.map +1 -1
  1134. data/public/lookbook-assets/img/lucide-sprite.svg +4960 -0
  1135. data/public/lookbook-assets/js/{embed.js → iframe.js} +196 -195
  1136. data/public/lookbook-assets/js/iframe.js.map +1 -0
  1137. data/public/lookbook-assets/js/index.js +13739 -0
  1138. data/public/lookbook-assets/js/index.js.map +1 -0
  1139. data/public/lookbook-assets/js/lookbook-core.js +87 -0
  1140. data/public/lookbook-assets/js/lookbook.js +248 -12835
  1141. metadata +1057 -118
  1142. data/app/assets/lookbook/js/helpers/request.js +0 -16
  1143. data/app/components/lookbook/embed/component.js +0 -39
  1144. data/app/components/lookbook/icon/component.js +0 -5
  1145. data/app/helpers/lookbook/component_helper.rb +0 -84
  1146. data/app/helpers/lookbook/output_helper.rb +0 -19
  1147. data/app/helpers/lookbook/page_helper.rb +0 -34
  1148. data/app/views/layouts/lookbook/inspector.html.erb +0 -7
  1149. data/app/views/layouts/lookbook/page.html.erb +0 -53
  1150. data/app/views/layouts/lookbook/shell.html.erb +0 -25
  1151. data/app/views/layouts/lookbook/standalone.html.erb +0 -5
  1152. data/app/views/lookbook/404.html.erb +0 -15
  1153. data/app/views/lookbook/error.html.erb +0 -46
  1154. data/app/views/lookbook/preview.html.erb +0 -14
  1155. data/config/hooks.yml +0 -4
  1156. data/lib/lookbook/entities/collections/component_collection.rb +0 -4
  1157. data/lib/lookbook/entities/collections/preview_example_collection.rb +0 -4
  1158. data/lib/lookbook/entities/component.rb +0 -31
  1159. data/lib/lookbook/entities/concerns/annotatable.rb +0 -58
  1160. data/lib/lookbook/entities/concerns/locatable.rb +0 -73
  1161. data/lib/lookbook/entities/concerns/navigable.rb +0 -43
  1162. data/lib/lookbook/entities/page.rb +0 -80
  1163. data/lib/lookbook/entities/preview.rb +0 -87
  1164. data/lib/lookbook/entities/preview_example.rb +0 -104
  1165. data/lib/lookbook/entities/preview_group.rb +0 -52
  1166. data/lib/lookbook/error.rb +0 -120
  1167. data/lib/lookbook/features.rb +0 -24
  1168. data/lib/lookbook/preview_actions.rb +0 -43
  1169. data/lib/lookbook/process.rb +0 -21
  1170. data/lib/lookbook/rendered_example.rb +0 -37
  1171. data/lib/lookbook/services/entities/entity_tree_builder.rb +0 -45
  1172. data/lib/lookbook/services/position_prefix_parser.rb +0 -16
  1173. data/lib/lookbook/services/templates/action_view_annotations_handler.rb +0 -21
  1174. data/lib/lookbook/services/urls/search_param_builder.rb +0 -13
  1175. data/lib/lookbook/support/errors/lookbook_error.rb +0 -21
  1176. data/lib/lookbook/tags/component_tag.rb +0 -13
  1177. data/lib/tasks/lookbook_tasks.rake +0 -10
  1178. data/public/lookbook-assets/css/app.css +0 -2341
  1179. data/public/lookbook-assets/css/app.css.map +0 -11
  1180. data/public/lookbook-assets/css/themes/zinc.css.map.91837.5 +0 -1
  1181. data/public/lookbook-assets/feather-sprite.svg +0 -1
  1182. data/public/lookbook-assets/js/app.js +0 -10862
  1183. data/public/lookbook-assets/js/app.js.map +0 -2571
  1184. data/public/lookbook-assets/js/embed.js.91837.6 +0 -0
  1185. data/public/lookbook-assets/js/embed.js.map +0 -1
  1186. data/public/lookbook-assets/js/lookbook.js.map +0 -1
  1187. /data/{app/assets/lookbook → assets}/js/components/clipboard.js +0 -0
  1188. /data/{app/assets/lookbook → assets}/js/components/params_input.js +0 -0
  1189. /data/{app/assets/lookbook → assets}/js/components/tooltip.js +0 -0
  1190. /data/{app/assets/lookbook → assets}/js/config.js +0 -0
  1191. /data/{app/assets/lookbook → assets}/js/helpers/build.js +0 -0
  1192. /data/{app/assets/lookbook → assets}/js/helpers/layout.js +0 -0
  1193. /data/{app/assets/lookbook/js/embed.js → assets/js/iframe.js} +0 -0
  1194. /data/{app/assets/lookbook → assets}/js/lib/socket.js +0 -0
  1195. /data/{app/assets/lookbook → assets}/js/plugins/logger.js +0 -0
  1196. /data/{app/assets/lookbook → assets}/js/stores/filter.js +0 -0
  1197. /data/{app/assets/lookbook → assets}/js/stores/inspector.js +0 -0
  1198. /data/{app/assets/lookbook → assets}/js/stores/layout.js +0 -0
  1199. /data/{app/assets/lookbook → assets}/js/stores/nav.js +0 -0
  1200. /data/{app/assets/lookbook → assets}/js/stores/pages.js +0 -0
  1201. /data/{app/assets/lookbook → assets}/js/stores/settings.js +0 -0
  1202. /data/{app/assets/lookbook → assets}/js/stores/workbench.js +0 -0
  1203. /data/{app/channels/lookbook → lib/lookbook/cable}/connection.rb +0 -0
  1204. /data/{app/channels/lookbook → lib/lookbook/cable}/reload_channel.rb +0 -0
@@ -10,24 +10,24 @@ var $b2e1fd3e30ab1f5c$exports = {};
10
10
  *
11
11
  */ // eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names
12
12
  (function(undefined) {
13
- if (typeof window === "undefined") return; // don't run for server side render
14
- var autoResize = true, base = 10, bodyBackground = "", bodyMargin = 0, bodyMarginStr = "", bodyObserver = null, bodyPadding = "", calculateWidth = false, doubleEventList = {
13
+ if (typeof window === 'undefined') return; // don't run for server side render
14
+ var autoResize = true, base = 10, bodyBackground = '', bodyMargin = 0, bodyMarginStr = '', bodyObserver = null, bodyPadding = '', calculateWidth = false, doubleEventList = {
15
15
  resize: 1,
16
16
  click: 1
17
- }, eventCancelTimer = 128, firstRun = true, height = 1, heightCalcModeDefault = "bodyOffset", heightCalcMode = heightCalcModeDefault, initLock = true, initMsg = "", inPageLinks = {}, interval = 32, intervalTimer = null, logging = false, mouseEvents = false, msgID = "[iFrameSizer]", msgIdLen = msgID.length, myID = "", resetRequiredMethods = {
17
+ }, eventCancelTimer = 128, firstRun = true, height = 1, heightCalcModeDefault = 'bodyOffset', heightCalcMode = heightCalcModeDefault, initLock = true, initMsg = '', inPageLinks = {}, interval = 32, intervalTimer = null, logging = false, mouseEvents = false, msgID = '[iFrameSizer]', msgIdLen = msgID.length, myID = '', resetRequiredMethods = {
18
18
  max: 1,
19
19
  min: 1,
20
20
  bodyScroll: 1,
21
21
  documentElementScroll: 1
22
- }, resizeFrom = "child", sendPermit = true, target = window.parent, targetOriginDefault = "*", tolerance = 0, triggerLocked = false, triggerLockedTimer = null, throttledTimer = 16, width = 1, widthCalcModeDefault = "scroll", widthCalcMode = widthCalcModeDefault, win = window, onMessage = function() {
23
- warn("onMessage function not defined");
22
+ }, resizeFrom = 'child', sendPermit = true, target = window.parent, targetOriginDefault = '*', tolerance = 0, triggerLocked = false, triggerLockedTimer = null, throttledTimer = 16, width = 1, widthCalcModeDefault = 'scroll', widthCalcMode = widthCalcModeDefault, win = window, onMessage = function() {
23
+ warn('onMessage function not defined');
24
24
  }, onReady = function() {}, onPageInfo = function() {}, customCalcMethods = {
25
25
  height: function() {
26
- warn("Custom height calculation function not defined");
26
+ warn('Custom height calculation function not defined');
27
27
  return document.documentElement.offsetHeight;
28
28
  },
29
29
  width: function() {
30
- warn("Custom width calculation function not defined");
30
+ warn('Custom width calculation function not defined');
31
31
  return document.body.scrollWidth;
32
32
  }
33
33
  }, eventHandlersByName = {}, passiveSupported = false;
@@ -35,13 +35,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
35
35
  try {
36
36
  var options = Object.create({}, {
37
37
  passive: {
38
+ // eslint-disable-next-line getter-return
38
39
  get: function() {
39
40
  passiveSupported = true;
40
41
  }
41
42
  }
42
43
  });
43
- window.addEventListener("test", noop, options);
44
- window.removeEventListener("test", noop, options);
44
+ window.addEventListener('test', noop, options);
45
+ window.removeEventListener('test', noop, options);
45
46
  } catch (error) {
46
47
  /* */ }
47
48
  function addEventListener(el, evt, func, options) {
@@ -82,23 +83,23 @@ var $b2e1fd3e30ab1f5c$exports = {};
82
83
  };
83
84
  }
84
85
  function formatLogMsg(msg) {
85
- return msgID + "[" + myID + "] " + msg;
86
+ return msgID + '[' + myID + '] ' + msg;
86
87
  }
87
88
  function log(msg) {
88
- if (logging && "object" === typeof window.console) // eslint-disable-next-line no-console
89
+ if (logging && 'object' === typeof window.console) // eslint-disable-next-line no-console
89
90
  console.log(formatLogMsg(msg));
90
91
  }
91
92
  function warn(msg) {
92
- if ("object" === typeof window.console) // eslint-disable-next-line no-console
93
+ if ('object' === typeof window.console) // eslint-disable-next-line no-console
93
94
  console.warn(formatLogMsg(msg));
94
95
  }
95
96
  function init() {
96
97
  readDataFromParent();
97
- log("Initialising iFrame (" + window.location.href + ")");
98
+ log('Initialising iFrame (' + window.location.href + ')');
98
99
  readDataFromPage();
99
100
  setMargin();
100
- setBodyStyle("background", bodyBackground);
101
- setBodyStyle("padding", bodyPadding);
101
+ setBodyStyle('background', bodyBackground);
102
+ setBodyStyle('padding', bodyPadding);
102
103
  injectClearFixIntoBodyElement();
103
104
  checkHeightMode();
104
105
  checkWidthMode();
@@ -107,14 +108,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
107
108
  setupMouseEvents();
108
109
  startEventListeners();
109
110
  inPageLinks = setupInPageLinks();
110
- sendSize("init", "Init message from host page");
111
+ sendSize('init', 'Init message from host page');
111
112
  onReady();
112
113
  }
113
114
  function readDataFromParent() {
114
115
  function strBool(str) {
115
- return "true" === str;
116
+ return 'true' === str;
116
117
  }
117
- var data = initMsg.slice(msgIdLen).split(":");
118
+ var data = initMsg.slice(msgIdLen).split(':');
118
119
  myID = data[0];
119
120
  bodyMargin = undefined === data[1] ? bodyMargin : Number(data[1]) // For V1 compatibility
120
121
  ;
@@ -130,12 +131,12 @@ var $b2e1fd3e30ab1f5c$exports = {};
130
131
  inPageLinks.enable = undefined === data[12] ? false : strBool(data[12]);
131
132
  resizeFrom = undefined === data[13] ? resizeFrom : data[13];
132
133
  widthCalcMode = undefined === data[14] ? widthCalcMode : data[14];
133
- mouseEvents = undefined === data[15] ? mouseEvents : Boolean(data[15]);
134
+ mouseEvents = undefined === data[15] ? mouseEvents : strBool(data[15]);
134
135
  }
135
136
  function depricate(key) {
136
- var splitName = key.split("Callback");
137
+ var splitName = key.split('Callback');
137
138
  if (splitName.length === 2) {
138
- var name = "on" + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);
139
+ var name = 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);
139
140
  this[name] = this[key];
140
141
  delete this[key];
141
142
  warn("Deprecated: '" + key + "' has been renamed '" + name + "'. The old method will be removed in the next major version.");
@@ -144,50 +145,50 @@ var $b2e1fd3e30ab1f5c$exports = {};
144
145
  function readDataFromPage() {
145
146
  function readData() {
146
147
  var data = window.iFrameResizer;
147
- log("Reading data from page: " + JSON.stringify(data));
148
+ log('Reading data from page: ' + JSON.stringify(data));
148
149
  Object.keys(data).forEach(depricate, data);
149
- onMessage = "onMessage" in data ? data.onMessage : onMessage;
150
- onReady = "onReady" in data ? data.onReady : onReady;
151
- targetOriginDefault = "targetOrigin" in data ? data.targetOrigin : targetOriginDefault;
152
- heightCalcMode = "heightCalculationMethod" in data ? data.heightCalculationMethod : heightCalcMode;
153
- widthCalcMode = "widthCalculationMethod" in data ? data.widthCalculationMethod : widthCalcMode;
150
+ onMessage = 'onMessage' in data ? data.onMessage : onMessage;
151
+ onReady = 'onReady' in data ? data.onReady : onReady;
152
+ targetOriginDefault = 'targetOrigin' in data ? data.targetOrigin : targetOriginDefault;
153
+ heightCalcMode = 'heightCalculationMethod' in data ? data.heightCalculationMethod : heightCalcMode;
154
+ widthCalcMode = 'widthCalculationMethod' in data ? data.widthCalculationMethod : widthCalcMode;
154
155
  }
155
156
  function setupCustomCalcMethods(calcMode, calcFunc) {
156
- if ("function" === typeof calcMode) {
157
- log("Setup custom " + calcFunc + "CalcMethod");
157
+ if ('function' === typeof calcMode) {
158
+ log('Setup custom ' + calcFunc + 'CalcMethod');
158
159
  customCalcMethods[calcFunc] = calcMode;
159
- calcMode = "custom";
160
+ calcMode = 'custom';
160
161
  }
161
162
  return calcMode;
162
163
  }
163
- if ("iFrameResizer" in window && Object === window.iFrameResizer.constructor) {
164
+ if ('iFrameResizer' in window && Object === window.iFrameResizer.constructor) {
164
165
  readData();
165
- heightCalcMode = setupCustomCalcMethods(heightCalcMode, "height");
166
- widthCalcMode = setupCustomCalcMethods(widthCalcMode, "width");
166
+ heightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height');
167
+ widthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width');
167
168
  }
168
- log("TargetOrigin for parent set to: " + targetOriginDefault);
169
+ log('TargetOrigin for parent set to: ' + targetOriginDefault);
169
170
  }
170
171
  function chkCSS(attr, value) {
171
- if (-1 !== value.indexOf("-")) {
172
- warn("Negative CSS value ignored for " + attr);
173
- value = "";
172
+ if (-1 !== value.indexOf('-')) {
173
+ warn('Negative CSS value ignored for ' + attr);
174
+ value = '';
174
175
  }
175
176
  return value;
176
177
  }
177
178
  function setBodyStyle(attr, value) {
178
- if (undefined !== value && "" !== value && "null" !== value) {
179
+ if (undefined !== value && '' !== value && 'null' !== value) {
179
180
  document.body.style[attr] = value;
180
- log("Body " + attr + ' set to "' + value + '"');
181
+ log('Body ' + attr + ' set to "' + value + '"');
181
182
  }
182
183
  }
183
184
  function setMargin() {
184
185
  // If called via V1 script, convert bodyMargin from int to str
185
- if (undefined === bodyMarginStr) bodyMarginStr = bodyMargin + "px";
186
- setBodyStyle("margin", chkCSS("margin", bodyMarginStr));
186
+ if (undefined === bodyMarginStr) bodyMarginStr = bodyMargin + 'px';
187
+ setBodyStyle('margin', chkCSS('margin', bodyMarginStr));
187
188
  }
188
189
  function stopInfiniteResizingOfIFrame() {
189
- document.documentElement.style.height = "";
190
- document.body.style.height = "";
190
+ document.documentElement.style.height = '';
191
+ document.body.style.height = '';
191
192
  log('HTML & body height set to "auto"');
192
193
  }
193
194
  function manageTriggerEvent(options) {
@@ -211,124 +212,124 @@ var $b2e1fd3e30ab1f5c$exports = {};
211
212
  options.eventName = options.eventNames[0];
212
213
  options.eventNames.map(listener[options.method]);
213
214
  } else listener[options.method](options.eventName);
214
- log(capitalizeFirstLetter(options.method) + " event listener: " + options.eventType);
215
+ log(capitalizeFirstLetter(options.method) + ' event listener: ' + options.eventType);
215
216
  }
216
217
  function manageEventListeners(method) {
217
218
  manageTriggerEvent({
218
219
  method: method,
219
- eventType: "Animation Start",
220
+ eventType: 'Animation Start',
220
221
  eventNames: [
221
- "animationstart",
222
- "webkitAnimationStart"
222
+ 'animationstart',
223
+ 'webkitAnimationStart'
223
224
  ]
224
225
  });
225
226
  manageTriggerEvent({
226
227
  method: method,
227
- eventType: "Animation Iteration",
228
+ eventType: 'Animation Iteration',
228
229
  eventNames: [
229
- "animationiteration",
230
- "webkitAnimationIteration"
230
+ 'animationiteration',
231
+ 'webkitAnimationIteration'
231
232
  ]
232
233
  });
233
234
  manageTriggerEvent({
234
235
  method: method,
235
- eventType: "Animation End",
236
+ eventType: 'Animation End',
236
237
  eventNames: [
237
- "animationend",
238
- "webkitAnimationEnd"
238
+ 'animationend',
239
+ 'webkitAnimationEnd'
239
240
  ]
240
241
  });
241
242
  manageTriggerEvent({
242
243
  method: method,
243
- eventType: "Input",
244
- eventName: "input"
244
+ eventType: 'Input',
245
+ eventName: 'input'
245
246
  });
246
247
  manageTriggerEvent({
247
248
  method: method,
248
- eventType: "Mouse Up",
249
- eventName: "mouseup"
249
+ eventType: 'Mouse Up',
250
+ eventName: 'mouseup'
250
251
  });
251
252
  manageTriggerEvent({
252
253
  method: method,
253
- eventType: "Mouse Down",
254
- eventName: "mousedown"
254
+ eventType: 'Mouse Down',
255
+ eventName: 'mousedown'
255
256
  });
256
257
  manageTriggerEvent({
257
258
  method: method,
258
- eventType: "Orientation Change",
259
- eventName: "orientationchange"
259
+ eventType: 'Orientation Change',
260
+ eventName: 'orientationchange'
260
261
  });
261
262
  manageTriggerEvent({
262
263
  method: method,
263
- eventType: "Print",
264
+ eventType: 'Print',
264
265
  eventNames: [
265
- "afterprint",
266
- "beforeprint"
266
+ 'afterprint',
267
+ 'beforeprint'
267
268
  ]
268
269
  });
269
270
  manageTriggerEvent({
270
271
  method: method,
271
- eventType: "Ready State Change",
272
- eventName: "readystatechange"
272
+ eventType: 'Ready State Change',
273
+ eventName: 'readystatechange'
273
274
  });
274
275
  manageTriggerEvent({
275
276
  method: method,
276
- eventType: "Touch Start",
277
- eventName: "touchstart"
277
+ eventType: 'Touch Start',
278
+ eventName: 'touchstart'
278
279
  });
279
280
  manageTriggerEvent({
280
281
  method: method,
281
- eventType: "Touch End",
282
- eventName: "touchend"
282
+ eventType: 'Touch End',
283
+ eventName: 'touchend'
283
284
  });
284
285
  manageTriggerEvent({
285
286
  method: method,
286
- eventType: "Touch Cancel",
287
- eventName: "touchcancel"
287
+ eventType: 'Touch Cancel',
288
+ eventName: 'touchcancel'
288
289
  });
289
290
  manageTriggerEvent({
290
291
  method: method,
291
- eventType: "Transition Start",
292
+ eventType: 'Transition Start',
292
293
  eventNames: [
293
- "transitionstart",
294
- "webkitTransitionStart",
295
- "MSTransitionStart",
296
- "oTransitionStart",
297
- "otransitionstart"
294
+ 'transitionstart',
295
+ 'webkitTransitionStart',
296
+ 'MSTransitionStart',
297
+ 'oTransitionStart',
298
+ 'otransitionstart'
298
299
  ]
299
300
  });
300
301
  manageTriggerEvent({
301
302
  method: method,
302
- eventType: "Transition Iteration",
303
+ eventType: 'Transition Iteration',
303
304
  eventNames: [
304
- "transitioniteration",
305
- "webkitTransitionIteration",
306
- "MSTransitionIteration",
307
- "oTransitionIteration",
308
- "otransitioniteration"
305
+ 'transitioniteration',
306
+ 'webkitTransitionIteration',
307
+ 'MSTransitionIteration',
308
+ 'oTransitionIteration',
309
+ 'otransitioniteration'
309
310
  ]
310
311
  });
311
312
  manageTriggerEvent({
312
313
  method: method,
313
- eventType: "Transition End",
314
+ eventType: 'Transition End',
314
315
  eventNames: [
315
- "transitionend",
316
- "webkitTransitionEnd",
317
- "MSTransitionEnd",
318
- "oTransitionEnd",
319
- "otransitionend"
316
+ 'transitionend',
317
+ 'webkitTransitionEnd',
318
+ 'MSTransitionEnd',
319
+ 'oTransitionEnd',
320
+ 'otransitionend'
320
321
  ]
321
322
  });
322
- if ("child" === resizeFrom) manageTriggerEvent({
323
+ if ('child' === resizeFrom) manageTriggerEvent({
323
324
  method: method,
324
- eventType: "IFrame Resized",
325
- eventName: "resize"
325
+ eventType: 'IFrame Resized',
326
+ eventName: 'resize'
326
327
  });
327
328
  }
328
329
  function checkCalcMode(calcMode, calcModeDefault, modes, type) {
329
330
  if (calcModeDefault !== calcMode) {
330
331
  if (!(calcMode in modes)) {
331
- warn(calcMode + " is not a valid option for " + type + "CalculationMethod.");
332
+ warn(calcMode + ' is not a valid option for ' + type + 'CalculationMethod.');
332
333
  calcMode = calcModeDefault;
333
334
  }
334
335
  log(type + ' calculation method set to "' + calcMode + '"');
@@ -336,16 +337,16 @@ var $b2e1fd3e30ab1f5c$exports = {};
336
337
  return calcMode;
337
338
  }
338
339
  function checkHeightMode() {
339
- heightCalcMode = checkCalcMode(heightCalcMode, heightCalcModeDefault, getHeight, "height");
340
+ heightCalcMode = checkCalcMode(heightCalcMode, heightCalcModeDefault, getHeight, 'height');
340
341
  }
341
342
  function checkWidthMode() {
342
- widthCalcMode = checkCalcMode(widthCalcMode, widthCalcModeDefault, getWidth, "width");
343
+ widthCalcMode = checkCalcMode(widthCalcMode, widthCalcModeDefault, getWidth, 'width');
343
344
  }
344
345
  function startEventListeners() {
345
346
  if (true === autoResize) {
346
- manageEventListeners("add");
347
+ manageEventListeners('add');
347
348
  setupMutationObserver();
348
- } else log("Auto Resize disabled");
349
+ } else log('Auto Resize disabled');
349
350
  }
350
351
  // function stopMsgsToParent() {
351
352
  // log('Disable outgoing messages')
@@ -360,7 +361,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
360
361
  bodyObserver.disconnect();
361
362
  }
362
363
  function stopEventListeners() {
363
- manageEventListeners("remove");
364
+ manageEventListeners('remove');
364
365
  disconnectMutationObserver();
365
366
  clearInterval(intervalTimer);
366
367
  }
@@ -370,11 +371,11 @@ var $b2e1fd3e30ab1f5c$exports = {};
370
371
  // if (true === autoResize) stopEventListeners()
371
372
  // }
372
373
  function injectClearFixIntoBodyElement() {
373
- var clearFix = document.createElement("div");
374
- clearFix.style.clear = "both";
374
+ var clearFix = document.createElement('div');
375
+ clearFix.style.clear = 'both';
375
376
  // Guard against the following having been globally redefined in CSS.
376
- clearFix.style.display = "block";
377
- clearFix.style.height = "0";
377
+ clearFix.style.display = 'block';
378
+ clearFix.style.height = '0';
378
379
  document.body.appendChild(clearFix);
379
380
  }
380
381
  function setupInPageLinks() {
@@ -394,33 +395,33 @@ var $b2e1fd3e30ab1f5c$exports = {};
394
395
  function findTarget(location) {
395
396
  function jumpToTarget(target) {
396
397
  var jumpPosition = getElementPosition(target);
397
- log("Moving to in page link (#" + hash + ") at x: " + jumpPosition.x + " y: " + jumpPosition.y);
398
- sendMsg(jumpPosition.y, jumpPosition.x, "scrollToOffset") // X&Y reversed at sendMsg uses height/width
398
+ log('Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);
399
+ sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width
399
400
  ;
400
401
  }
401
- var hash = location.split("#")[1] || location, hashData = decodeURIComponent(hash), target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
402
+ var hash = location.split('#')[1] || location, hashData = decodeURIComponent(hash), target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
402
403
  if (undefined === target) {
403
- log("In page link (#" + hash + ") not found in iFrame, so sending to parent");
404
- sendMsg(0, 0, "inPageLink", "#" + hash);
404
+ log('In page link (#' + hash + ') not found in iFrame, so sending to parent');
405
+ sendMsg(0, 0, 'inPageLink', '#' + hash);
405
406
  } else jumpToTarget(target);
406
407
  }
407
408
  function checkLocationHash() {
408
409
  var hash = window.location.hash;
409
410
  var href = window.location.href;
410
- if ("" !== hash && "#" !== hash) findTarget(href);
411
+ if ('' !== hash && '#' !== hash) findTarget(href);
411
412
  }
412
413
  function bindAnchors() {
413
414
  function setupLink(el) {
414
415
  function linkClicked(e) {
415
416
  e.preventDefault();
416
- /* jshint validthis:true */ findTarget(this.getAttribute("href"));
417
+ /* jshint validthis:true */ findTarget(this.getAttribute('href'));
417
418
  }
418
- if ("#" !== el.getAttribute("href")) addEventListener(el, "click", linkClicked);
419
+ if ('#' !== el.getAttribute('href')) addEventListener(el, 'click', linkClicked);
419
420
  }
420
421
  Array.prototype.forEach.call(document.querySelectorAll('a[href^="#"]'), setupLink);
421
422
  }
422
423
  function bindLocationHash() {
423
- addEventListener(window, "hashchange", checkLocationHash);
424
+ addEventListener(window, 'hashchange', checkLocationHash);
424
425
  }
425
426
  function initCheck() {
426
427
  // Check if page loaded with location hash after init resize
@@ -429,14 +430,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
429
430
  function enableInPageLinks() {
430
431
  /* istanbul ignore else */ // Not testable in phantonJS
431
432
  if (Array.prototype.forEach && document.querySelectorAll) {
432
- log("Setting up location.hash handlers");
433
+ log('Setting up location.hash handlers');
433
434
  bindAnchors();
434
435
  bindLocationHash();
435
436
  initCheck();
436
- } else warn("In page linking not fully supported in this browser! (See README.md for IE8 workaround)");
437
+ } else warn('In page linking not fully supported in this browser! (See README.md for IE8 workaround)');
437
438
  }
438
439
  if (inPageLinks.enable) enableInPageLinks();
439
- else log("In page linking not enabled");
440
+ else log('In page linking not enabled');
440
441
  return {
441
442
  findTarget: findTarget
442
443
  };
@@ -444,17 +445,17 @@ var $b2e1fd3e30ab1f5c$exports = {};
444
445
  function setupMouseEvents() {
445
446
  if (mouseEvents !== true) return;
446
447
  function sendMouse(e) {
447
- sendMsg(0, 0, e.type, e.screenY + ":" + e.screenX);
448
+ sendMsg(0, 0, e.type, e.screenY + ':' + e.screenX);
448
449
  }
449
450
  function addMouseListener(evt, name) {
450
- log("Add event listener: " + name);
451
+ log('Add event listener: ' + name);
451
452
  addEventListener(window.document, evt, sendMouse);
452
453
  }
453
- addMouseListener("mouseenter", "Mouse Enter");
454
- addMouseListener("mouseleave", "Mouse Leave");
454
+ addMouseListener('mouseenter', 'Mouse Enter');
455
+ addMouseListener('mouseleave', 'Mouse Leave');
455
456
  }
456
457
  function setupPublicMethods() {
457
- log("Enable public methods");
458
+ log('Enable public methods');
458
459
  win.parentIFrame = {
459
460
  autoResize: function autoResizeF(resize) {
460
461
  if (true === resize && false === autoResize) {
@@ -464,41 +465,41 @@ var $b2e1fd3e30ab1f5c$exports = {};
464
465
  autoResize = false;
465
466
  stopEventListeners();
466
467
  }
467
- sendMsg(0, 0, "autoResize", JSON.stringify(autoResize));
468
+ sendMsg(0, 0, 'autoResize', JSON.stringify(autoResize));
468
469
  return autoResize;
469
470
  },
470
471
  close: function closeF() {
471
- sendMsg(0, 0, "close");
472
+ sendMsg(0, 0, 'close');
472
473
  // teardown()
473
474
  },
474
475
  getId: function getIdF() {
475
476
  return myID;
476
477
  },
477
478
  getPageInfo: function getPageInfoF(callback) {
478
- if ("function" === typeof callback) {
479
+ if ('function' === typeof callback) {
479
480
  onPageInfo = callback;
480
- sendMsg(0, 0, "pageInfo");
481
+ sendMsg(0, 0, 'pageInfo');
481
482
  } else {
482
483
  onPageInfo = function() {};
483
- sendMsg(0, 0, "pageInfoStop");
484
+ sendMsg(0, 0, 'pageInfoStop');
484
485
  }
485
486
  },
486
487
  moveToAnchor: function moveToAnchorF(hash) {
487
488
  inPageLinks.findTarget(hash);
488
489
  },
489
490
  reset: function resetF() {
490
- resetIFrame("parentIFrame.reset");
491
+ resetIFrame('parentIFrame.reset');
491
492
  },
492
493
  scrollTo: function scrollToF(x, y) {
493
- sendMsg(y, x, "scrollTo") // X&Y reversed at sendMsg uses height/width
494
+ sendMsg(y, x, 'scrollTo') // X&Y reversed at sendMsg uses height/width
494
495
  ;
495
496
  },
496
497
  scrollToOffset: function scrollToF(x, y) {
497
- sendMsg(y, x, "scrollToOffset") // X&Y reversed at sendMsg uses height/width
498
+ sendMsg(y, x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width
498
499
  ;
499
500
  },
500
501
  sendMessage: function sendMessageF(msg, targetOrigin) {
501
- sendMsg(0, 0, "message", JSON.stringify(msg), targetOrigin);
502
+ sendMsg(0, 0, 'message', JSON.stringify(msg), targetOrigin);
502
503
  },
503
504
  setHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod) {
504
505
  heightCalcMode = heightCalculationMethod;
@@ -509,20 +510,20 @@ var $b2e1fd3e30ab1f5c$exports = {};
509
510
  checkWidthMode();
510
511
  },
511
512
  setTargetOrigin: function setTargetOriginF(targetOrigin) {
512
- log("Set targetOrigin: " + targetOrigin);
513
+ log('Set targetOrigin: ' + targetOrigin);
513
514
  targetOriginDefault = targetOrigin;
514
515
  },
515
516
  size: function sizeF(customHeight, customWidth) {
516
- var valString = "" + (customHeight || "") + (customWidth ? "," + customWidth : "");
517
- sendSize("size", "parentIFrame.size(" + valString + ")", customHeight, customWidth);
517
+ var valString = '' + (customHeight || '') + (customWidth ? ',' + customWidth : '');
518
+ sendSize('size', 'parentIFrame.size(' + valString + ')', customHeight, customWidth);
518
519
  }
519
520
  };
520
521
  }
521
522
  function initInterval() {
522
523
  if (0 !== interval) {
523
- log("setInterval: " + interval + "ms");
524
+ log('setInterval: ' + interval + 'ms');
524
525
  intervalTimer = setInterval(function() {
525
- sendSize("interval", "setInterval: " + interval);
526
+ sendSize('interval', 'setInterval: ' + interval);
526
527
  }, Math.abs(interval));
527
528
  }
528
529
  }
@@ -531,41 +532,41 @@ var $b2e1fd3e30ab1f5c$exports = {};
531
532
  function addImageLoadListners(mutation) {
532
533
  function addImageLoadListener(element) {
533
534
  if (false === element.complete) {
534
- log("Attach listeners to " + element.src);
535
- element.addEventListener("load", imageLoaded, false);
536
- element.addEventListener("error", imageError, false);
535
+ log('Attach listeners to ' + element.src);
536
+ element.addEventListener('load', imageLoaded, false);
537
+ element.addEventListener('error', imageError, false);
537
538
  elements.push(element);
538
539
  }
539
540
  }
540
- if (mutation.type === "attributes" && mutation.attributeName === "src") addImageLoadListener(mutation.target);
541
- else if (mutation.type === "childList") Array.prototype.forEach.call(mutation.target.querySelectorAll("img"), addImageLoadListener);
541
+ if (mutation.type === 'attributes' && mutation.attributeName === 'src') addImageLoadListener(mutation.target);
542
+ else if (mutation.type === 'childList') Array.prototype.forEach.call(mutation.target.querySelectorAll('img'), addImageLoadListener);
542
543
  }
543
544
  function removeFromArray(element) {
544
545
  elements.splice(elements.indexOf(element), 1);
545
546
  }
546
547
  function removeImageLoadListener(element) {
547
- log("Remove listeners from " + element.src);
548
- element.removeEventListener("load", imageLoaded, false);
549
- element.removeEventListener("error", imageError, false);
548
+ log('Remove listeners from ' + element.src);
549
+ element.removeEventListener('load', imageLoaded, false);
550
+ element.removeEventListener('error', imageError, false);
550
551
  removeFromArray(element);
551
552
  }
552
553
  function imageEventTriggered(event, type, typeDesc) {
553
554
  removeImageLoadListener(event.target);
554
- sendSize(type, typeDesc + ": " + event.target.src);
555
+ sendSize(type, typeDesc + ': ' + event.target.src);
555
556
  }
556
557
  function imageLoaded(event) {
557
- imageEventTriggered(event, "imageLoad", "Image loaded");
558
+ imageEventTriggered(event, 'imageLoad', 'Image loaded');
558
559
  }
559
560
  function imageError(event) {
560
- imageEventTriggered(event, "imageLoadFailed", "Image load failed");
561
+ imageEventTriggered(event, 'imageLoadFailed', 'Image load failed');
561
562
  }
562
563
  function mutationObserved(mutations) {
563
- sendSize("mutationObserver", "mutationObserver: " + mutations[0].target + " " + mutations[0].type);
564
+ sendSize('mutationObserver', 'mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type);
564
565
  // Deal with WebKit / Blink asyncing image loading when tags are injected into the page
565
566
  mutations.forEach(addImageLoadListners);
566
567
  }
567
568
  function createMutationObserver() {
568
- var target = document.querySelector("body"), config = {
569
+ var target = document.querySelector('body'), config = {
569
570
  attributes: true,
570
571
  attributeOldValue: false,
571
572
  characterData: true,
@@ -574,15 +575,15 @@ var $b2e1fd3e30ab1f5c$exports = {};
574
575
  subtree: true
575
576
  };
576
577
  observer = new MutationObserver(mutationObserved);
577
- log("Create body MutationObserver");
578
+ log('Create body MutationObserver');
578
579
  observer.observe(target, config);
579
580
  return observer;
580
581
  }
581
582
  var elements = [], MutationObserver = window.MutationObserver || window.WebKitMutationObserver, observer = createMutationObserver();
582
583
  return {
583
584
  disconnect: function() {
584
- if ("disconnect" in observer) {
585
- log("Disconnect body MutationObserver");
585
+ if ('disconnect' in observer) {
586
+ log('Disconnect body MutationObserver');
586
587
  observer.disconnect();
587
588
  elements.forEach(removeImageLoadListener);
588
589
  }
@@ -596,7 +597,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
596
597
  if (forceIntervalTimer) initInterval();
597
598
  else bodyObserver = setupBodyMutationObserver();
598
599
  } else {
599
- log("MutationObserver not supported in this browser!");
600
+ log('MutationObserver not supported in this browser!');
600
601
  initInterval();
601
602
  }
602
603
  }
@@ -613,19 +614,19 @@ var $b2e1fd3e30ab1f5c$exports = {};
613
614
  function chkEventThottle(timer) {
614
615
  if (timer > throttledTimer / 2) {
615
616
  throttledTimer = 2 * timer;
616
- log("Event throttle increased to " + throttledTimer + "ms");
617
+ log('Event throttle increased to ' + throttledTimer + 'ms');
617
618
  }
618
619
  }
619
620
  // Idea from https://github.com/guardian/iframe-messenger
620
621
  function getMaxElement(side, elements) {
621
622
  var elementsLength = elements.length, elVal = 0, maxVal = 0, Side = capitalizeFirstLetter(side), timer = Date.now();
622
623
  for(var i = 0; i < elementsLength; i++){
623
- elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle("margin" + Side, elements[i]);
624
+ elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('margin' + Side, elements[i]);
624
625
  if (elVal > maxVal) maxVal = elVal;
625
626
  }
626
627
  timer = Date.now() - timer;
627
- log("Parsed " + elementsLength + " HTML elements");
628
- log("Element position calculated in " + timer + "ms");
628
+ log('Parsed ' + elementsLength + ' HTML elements');
629
+ log('Element position calculated in ' + timer + 'ms');
629
630
  chkEventThottle(timer);
630
631
  return maxVal;
631
632
  }
@@ -639,19 +640,19 @@ var $b2e1fd3e30ab1f5c$exports = {};
639
640
  }
640
641
  function getTaggedElements(side, tag) {
641
642
  function noTaggedElementsFound() {
642
- warn("No tagged elements (" + tag + ") found on page");
643
- return document.querySelectorAll("body *");
643
+ warn('No tagged elements (' + tag + ') found on page');
644
+ return document.querySelectorAll('body *');
644
645
  }
645
- var elements = document.querySelectorAll("[" + tag + "]");
646
+ var elements = document.querySelectorAll('[' + tag + ']');
646
647
  if (elements.length === 0) noTaggedElementsFound();
647
648
  return getMaxElement(side, elements);
648
649
  }
649
650
  function getAllElements() {
650
- return document.querySelectorAll("body *");
651
+ return document.querySelectorAll('body *');
651
652
  }
652
653
  var getHeight = {
653
654
  bodyOffset: function getBodyOffsetHeight() {
654
- return document.body.offsetHeight + getComputedStyle("marginTop") + getComputedStyle("marginBottom");
655
+ return document.body.offsetHeight + getComputedStyle('marginTop') + getComputedStyle('marginBottom');
655
656
  },
656
657
  offset: function() {
657
658
  return getHeight.bodyOffset() // Backwards compatibility
@@ -680,10 +681,10 @@ var $b2e1fd3e30ab1f5c$exports = {};
680
681
  ;
681
682
  },
682
683
  lowestElement: function getBestHeight() {
683
- return Math.max(getHeight.bodyOffset() || getHeight.documentElementOffset(), getMaxElement("bottom", getAllElements()));
684
+ return Math.max(getHeight.bodyOffset() || getHeight.documentElementOffset(), getMaxElement('bottom', getAllElements()));
684
685
  },
685
686
  taggedElement: function getTaggedElementsHeight() {
686
- return getTaggedElements("bottom", "data-iframe-height");
687
+ return getTaggedElements('bottom', 'data-iframe-height');
687
688
  }
688
689
  }, getWidth = {
689
690
  bodyScroll: function getBodyScrollWidth() {
@@ -711,10 +712,10 @@ var $b2e1fd3e30ab1f5c$exports = {};
711
712
  return Math.min.apply(null, getAllMeasurements(getWidth));
712
713
  },
713
714
  rightMostElement: function rightMostElement() {
714
- return getMaxElement("right", getAllElements());
715
+ return getMaxElement('right', getAllElements());
715
716
  },
716
717
  taggedElement: function getTaggedElementsWidth() {
717
- return getTaggedElements("right", "data-iframe-width");
718
+ return getTaggedElements('right', 'data-iframe-width');
718
719
  }
719
720
  };
720
721
  function sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth) {
@@ -743,7 +744,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
743
744
  return heightCalcMode in resetRequiredMethods || calculateWidth && widthCalcMode in resetRequiredMethods;
744
745
  }
745
746
  function logIgnored() {
746
- log("No change in size detected");
747
+ log('No change in size detected');
747
748
  }
748
749
  function checkDownSizing() {
749
750
  if (isForceResizableEvent() && isForceResizableCalcMode()) resetIFrame(triggerEventDesc);
@@ -752,7 +753,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
752
753
  })) logIgnored();
753
754
  }
754
755
  var currentHeight, currentWidth;
755
- if (isSizeChangeDetected() || "init" === triggerEvent) {
756
+ if (isSizeChangeDetected() || 'init' === triggerEvent) {
756
757
  lockTrigger();
757
758
  resizeIFrame();
758
759
  } else checkDownSizing();
@@ -764,28 +765,28 @@ var $b2e1fd3e30ab1f5c$exports = {};
764
765
  reset: 1,
765
766
  resetPage: 1,
766
767
  init: 1
767
- })) log("Trigger event: " + triggerEventDesc);
768
+ })) log('Trigger event: ' + triggerEventDesc);
768
769
  }
769
770
  function isDoubleFiredEvent() {
770
771
  return triggerLocked && triggerEvent in doubleEventList;
771
772
  }
772
- if (isDoubleFiredEvent()) log("Trigger event cancelled: " + triggerEvent);
773
+ if (isDoubleFiredEvent()) log('Trigger event cancelled: ' + triggerEvent);
773
774
  else {
774
775
  recordTrigger();
775
- if (triggerEvent === "init") sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth);
776
+ if (triggerEvent === 'init') sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth);
776
777
  else sizeIFrameThrottled(triggerEvent, triggerEventDesc, customHeight, customWidth);
777
778
  }
778
779
  }
779
780
  function lockTrigger() {
780
781
  if (!triggerLocked) {
781
782
  triggerLocked = true;
782
- log("Trigger event lock on");
783
+ log('Trigger event lock on');
783
784
  }
784
785
  clearTimeout(triggerLockedTimer);
785
786
  triggerLockedTimer = setTimeout(function() {
786
787
  triggerLocked = false;
787
- log("Trigger event lock off");
788
- log("--");
788
+ log('Trigger event lock off');
789
+ log('--');
789
790
  }, eventCancelTimer);
790
791
  }
791
792
  function triggerReset(triggerEvent) {
@@ -796,19 +797,19 @@ var $b2e1fd3e30ab1f5c$exports = {};
796
797
  function resetIFrame(triggerEventDesc) {
797
798
  var hcm = heightCalcMode;
798
799
  heightCalcMode = heightCalcModeDefault;
799
- log("Reset trigger event: " + triggerEventDesc);
800
+ log('Reset trigger event: ' + triggerEventDesc);
800
801
  lockTrigger();
801
- triggerReset("reset");
802
+ triggerReset('reset');
802
803
  heightCalcMode = hcm;
803
804
  }
804
805
  function sendMsg(height, width, triggerEvent, msg, targetOrigin) {
805
806
  function setTargetOrigin() {
806
807
  if (undefined === targetOrigin) targetOrigin = targetOriginDefault;
807
- else log("Message targetOrigin: " + targetOrigin);
808
+ else log('Message targetOrigin: ' + targetOrigin);
808
809
  }
809
810
  function sendToParent() {
810
- var size = height + ":" + width, message = myID + ":" + size + ":" + triggerEvent + (undefined === msg ? "" : ":" + msg);
811
- log("Sending message to host page (" + message + ")");
811
+ var size = height + ':' + width, message = myID + ':' + size + ':' + triggerEvent + (undefined === msg ? '' : ':' + msg);
812
+ log('Sending message to host page (' + message + ')');
812
813
  target.postMessage(msgID + message, targetOrigin);
813
814
  }
814
815
  if (true === sendPermit) {
@@ -828,14 +829,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
828
829
  }, eventCancelTimer);
829
830
  },
830
831
  reset: function resetFromParent() {
831
- if (initLock) log("Page reset ignored by init");
832
+ if (initLock) log('Page reset ignored by init');
832
833
  else {
833
- log("Page size reset by host page");
834
- triggerReset("resetPage");
834
+ log('Page size reset by host page');
835
+ triggerReset('resetPage');
835
836
  }
836
837
  },
837
838
  resize: function resizeFromParent() {
838
- sendSize("resizeParent", "Parent window requested size check");
839
+ sendSize('resizeParent', 'Parent window requested size check');
839
840
  },
840
841
  moveToAnchor: function moveToAnchorF() {
841
842
  inPageLinks.findTarget(getData());
@@ -845,35 +846,35 @@ var $b2e1fd3e30ab1f5c$exports = {};
845
846
  },
846
847
  pageInfo: function pageInfoFromParent() {
847
848
  var msgBody = getData();
848
- log("PageInfoFromParent called from parent: " + msgBody);
849
+ log('PageInfoFromParent called from parent: ' + msgBody);
849
850
  onPageInfo(JSON.parse(msgBody));
850
- log(" --");
851
+ log(' --');
851
852
  },
852
853
  message: function messageFromParent() {
853
854
  var msgBody = getData();
854
- log("onMessage called from parent: " + msgBody);
855
+ log('onMessage called from parent: ' + msgBody);
855
856
  // eslint-disable-next-line sonarjs/no-extra-arguments
856
857
  onMessage(JSON.parse(msgBody));
857
- log(" --");
858
+ log(' --');
858
859
  }
859
860
  };
860
861
  function isMessageForUs() {
861
- return msgID === ("" + event.data).slice(0, msgIdLen) // ''+ Protects against non-string messages
862
+ return msgID === ('' + event.data).slice(0, msgIdLen) // ''+ Protects against non-string messages
862
863
  ;
863
864
  }
864
865
  function getMessageType() {
865
- return event.data.split("]")[1].split(":")[0];
866
+ return event.data.split(']')[1].split(':')[0];
866
867
  }
867
868
  function getData() {
868
- return event.data.slice(event.data.indexOf(":") + 1);
869
+ return event.data.slice(event.data.indexOf(':') + 1);
869
870
  }
870
871
  function isMiddleTier() {
871
- return !(0, $b2e1fd3e30ab1f5c$exports) && "iFrameResize" in window || window.jQuery !== undefined && "iFrameResize" in window.jQuery.prototype;
872
+ return !(0, $b2e1fd3e30ab1f5c$exports) && 'iFrameResize' in window || window.jQuery !== undefined && 'iFrameResize' in window.jQuery.prototype;
872
873
  }
873
874
  function isInitMsg() {
874
875
  // Test if this message is from a child below us. This is an ugly test, however, updating
875
876
  // the message format would break backwards compatibility.
876
- return event.data.split(":")[2] in {
877
+ return event.data.split(':')[2] in {
877
878
  true: 1,
878
879
  false: 1
879
880
  };
@@ -881,7 +882,7 @@ var $b2e1fd3e30ab1f5c$exports = {};
881
882
  function callFromParent() {
882
883
  var messageType = getMessageType();
883
884
  if (messageType in processRequestFromParent) processRequestFromParent[messageType]();
884
- else if (!isMiddleTier() && !isInitMsg()) warn("Unexpected message (" + event.data + ")");
885
+ else if (!isMiddleTier() && !isInitMsg()) warn('Unexpected message (' + event.data + ')');
885
886
  }
886
887
  function processMessage() {
887
888
  if (false === firstRun) callFromParent();
@@ -893,14 +894,14 @@ var $b2e1fd3e30ab1f5c$exports = {};
893
894
  // Normally the parent kicks things off when it detects the iFrame has loaded.
894
895
  // If this script is async-loaded, then tell parent page to retry init.
895
896
  function chkLateLoaded() {
896
- if ("loading" !== document.readyState) window.parent.postMessage("[iFrameResizerChild]Ready", "*");
897
+ if ('loading' !== document.readyState) window.parent.postMessage('[iFrameResizerChild]Ready', '*');
897
898
  }
898
- addEventListener(window, "message", receiver);
899
- addEventListener(window, "readystatechange", chkLateLoaded);
899
+ addEventListener(window, 'message', receiver);
900
+ addEventListener(window, 'readystatechange', chkLateLoaded);
900
901
  chkLateLoaded();
901
902
  })();
902
903
 
903
904
 
904
905
 
905
906
  })();
906
- //# sourceMappingURL=embed.js.map
907
+ //# sourceMappingURL=iframe.js.map