lookbook 2.0.0.beta.3 → 2.0.0.beta.5

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 (1011) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/lookbook/css/lookbook.css +6 -0
  3. data/app/assets/lookbook/css/themes/blue.css +4 -1
  4. data/app/assets/lookbook/css/themes/green.css +4 -1
  5. data/app/assets/lookbook/css/themes/indigo.css +4 -1
  6. data/app/assets/lookbook/css/themes/rose.css +4 -1
  7. data/app/assets/lookbook/css/themes/zinc.css +4 -1
  8. data/app/assets/lookbook/icons/accessibility.svg +1 -0
  9. data/app/assets/lookbook/icons/activity.svg +1 -0
  10. data/app/assets/lookbook/icons/air-vent.svg +1 -0
  11. data/app/assets/lookbook/icons/airplay.svg +1 -0
  12. data/app/assets/lookbook/icons/alarm-check.svg +1 -0
  13. data/app/assets/lookbook/icons/alarm-clock-off.svg +1 -0
  14. data/app/assets/lookbook/icons/alarm-clock.svg +1 -0
  15. data/app/assets/lookbook/icons/alarm-minus.svg +1 -0
  16. data/app/assets/lookbook/icons/alarm-plus.svg +1 -0
  17. data/app/assets/lookbook/icons/album.svg +1 -0
  18. data/app/assets/lookbook/icons/alert-circle.svg +1 -0
  19. data/app/assets/lookbook/icons/alert-octagon.svg +1 -0
  20. data/app/assets/lookbook/icons/alert-triangle.svg +1 -0
  21. data/app/assets/lookbook/icons/align-center-horizontal.svg +1 -0
  22. data/app/assets/lookbook/icons/align-center-vertical.svg +1 -0
  23. data/app/assets/lookbook/icons/align-center.svg +1 -0
  24. data/app/assets/lookbook/icons/align-end-horizontal.svg +1 -0
  25. data/app/assets/lookbook/icons/align-end-vertical.svg +1 -0
  26. data/app/assets/lookbook/icons/align-horizontal-distribute-center.svg +1 -0
  27. data/app/assets/lookbook/icons/align-horizontal-distribute-end.svg +1 -0
  28. data/app/assets/lookbook/icons/align-horizontal-distribute-start.svg +1 -0
  29. data/app/assets/lookbook/icons/align-horizontal-justify-center.svg +1 -0
  30. data/app/assets/lookbook/icons/align-horizontal-justify-end.svg +1 -0
  31. data/app/assets/lookbook/icons/align-horizontal-justify-start.svg +1 -0
  32. data/app/assets/lookbook/icons/align-horizontal-space-around.svg +1 -0
  33. data/app/assets/lookbook/icons/align-horizontal-space-between.svg +1 -0
  34. data/app/assets/lookbook/icons/align-justify.svg +1 -0
  35. data/app/assets/lookbook/icons/align-left.svg +1 -0
  36. data/app/assets/lookbook/icons/align-right.svg +1 -0
  37. data/app/assets/lookbook/icons/align-start-horizontal.svg +1 -0
  38. data/app/assets/lookbook/icons/align-start-vertical.svg +1 -0
  39. data/app/assets/lookbook/icons/align-vertical-distribute-center.svg +1 -0
  40. data/app/assets/lookbook/icons/align-vertical-distribute-end.svg +1 -0
  41. data/app/assets/lookbook/icons/align-vertical-distribute-start.svg +1 -0
  42. data/app/assets/lookbook/icons/align-vertical-justify-center.svg +1 -0
  43. data/app/assets/lookbook/icons/align-vertical-justify-end.svg +1 -0
  44. data/app/assets/lookbook/icons/align-vertical-justify-start.svg +1 -0
  45. data/app/assets/lookbook/icons/align-vertical-space-around.svg +1 -0
  46. data/app/assets/lookbook/icons/align-vertical-space-between.svg +1 -0
  47. data/app/assets/lookbook/icons/anchor.svg +1 -0
  48. data/app/assets/lookbook/icons/angry.svg +1 -0
  49. data/app/assets/lookbook/icons/annoyed.svg +1 -0
  50. data/app/assets/lookbook/icons/aperture.svg +1 -0
  51. data/app/assets/lookbook/icons/apple.svg +1 -0
  52. data/app/assets/lookbook/icons/archive-restore.svg +1 -0
  53. data/app/assets/lookbook/icons/archive.svg +1 -0
  54. data/app/assets/lookbook/icons/armchair.svg +1 -0
  55. data/app/assets/lookbook/icons/arrow-big-down.svg +1 -0
  56. data/app/assets/lookbook/icons/arrow-big-left.svg +1 -0
  57. data/app/assets/lookbook/icons/arrow-big-right.svg +1 -0
  58. data/app/assets/lookbook/icons/arrow-big-up.svg +1 -0
  59. data/app/assets/lookbook/icons/arrow-down-circle.svg +1 -0
  60. data/app/assets/lookbook/icons/arrow-down-left.svg +1 -0
  61. data/app/assets/lookbook/icons/arrow-down-right.svg +1 -0
  62. data/app/assets/lookbook/icons/arrow-down.svg +1 -0
  63. data/app/assets/lookbook/icons/arrow-left-circle.svg +1 -0
  64. data/app/assets/lookbook/icons/arrow-left-right.svg +1 -0
  65. data/app/assets/lookbook/icons/arrow-left.svg +1 -0
  66. data/app/assets/lookbook/icons/arrow-right-circle.svg +1 -0
  67. data/app/assets/lookbook/icons/arrow-right.svg +1 -0
  68. data/app/assets/lookbook/icons/arrow-up-circle.svg +1 -0
  69. data/app/assets/lookbook/icons/arrow-up-down.svg +1 -0
  70. data/app/assets/lookbook/icons/arrow-up-left.svg +1 -0
  71. data/app/assets/lookbook/icons/arrow-up-right.svg +1 -0
  72. data/app/assets/lookbook/icons/arrow-up.svg +1 -0
  73. data/app/assets/lookbook/icons/asterisk.svg +1 -0
  74. data/app/assets/lookbook/icons/at-sign.svg +1 -0
  75. data/app/assets/lookbook/icons/award.svg +1 -0
  76. data/app/assets/lookbook/icons/axe.svg +1 -0
  77. data/app/assets/lookbook/icons/axis-3d.svg +1 -0
  78. data/app/assets/lookbook/icons/baby.svg +1 -0
  79. data/app/assets/lookbook/icons/backpack.svg +1 -0
  80. data/app/assets/lookbook/icons/baggage-claim.svg +1 -0
  81. data/app/assets/lookbook/icons/banana.svg +1 -0
  82. data/app/assets/lookbook/icons/banknote.svg +1 -0
  83. data/app/assets/lookbook/icons/bar-chart-2.svg +1 -0
  84. data/app/assets/lookbook/icons/bar-chart-3.svg +1 -0
  85. data/app/assets/lookbook/icons/bar-chart-4.svg +1 -0
  86. data/app/assets/lookbook/icons/bar-chart-horizontal.svg +1 -0
  87. data/app/assets/lookbook/icons/bar-chart.svg +1 -0
  88. data/app/assets/lookbook/icons/baseline.svg +1 -0
  89. data/app/assets/lookbook/icons/bath.svg +1 -0
  90. data/app/assets/lookbook/icons/battery-charging.svg +1 -0
  91. data/app/assets/lookbook/icons/battery-full.svg +1 -0
  92. data/app/assets/lookbook/icons/battery-low.svg +1 -0
  93. data/app/assets/lookbook/icons/battery-medium.svg +1 -0
  94. data/app/assets/lookbook/icons/battery-warning.svg +1 -0
  95. data/app/assets/lookbook/icons/battery.svg +1 -0
  96. data/app/assets/lookbook/icons/beaker.svg +1 -0
  97. data/app/assets/lookbook/icons/bean-off.svg +1 -0
  98. data/app/assets/lookbook/icons/bean.svg +1 -0
  99. data/app/assets/lookbook/icons/bed-double.svg +1 -0
  100. data/app/assets/lookbook/icons/bed-single.svg +1 -0
  101. data/app/assets/lookbook/icons/bed.svg +1 -0
  102. data/app/assets/lookbook/icons/beef.svg +1 -0
  103. data/app/assets/lookbook/icons/beer.svg +1 -0
  104. data/app/assets/lookbook/icons/bell-minus.svg +1 -0
  105. data/app/assets/lookbook/icons/bell-off.svg +1 -0
  106. data/app/assets/lookbook/icons/bell-plus.svg +1 -0
  107. data/app/assets/lookbook/icons/bell-ring.svg +1 -0
  108. data/app/assets/lookbook/icons/bell.svg +1 -0
  109. data/app/assets/lookbook/icons/bike.svg +1 -0
  110. data/app/assets/lookbook/icons/binary.svg +1 -0
  111. data/app/assets/lookbook/icons/bird.svg +1 -0
  112. data/app/assets/lookbook/icons/bitcoin.svg +1 -0
  113. data/app/assets/lookbook/icons/blinds.svg +1 -0
  114. data/app/assets/lookbook/icons/bluetooth-connected.svg +1 -0
  115. data/app/assets/lookbook/icons/bluetooth-off.svg +1 -0
  116. data/app/assets/lookbook/icons/bluetooth-searching.svg +1 -0
  117. data/app/assets/lookbook/icons/bluetooth.svg +1 -0
  118. data/app/assets/lookbook/icons/bold.svg +1 -0
  119. data/app/assets/lookbook/icons/bomb.svg +1 -0
  120. data/app/assets/lookbook/icons/bone.svg +1 -0
  121. data/app/assets/lookbook/icons/book-open-check.svg +1 -0
  122. data/app/assets/lookbook/icons/book-open.svg +1 -0
  123. data/app/assets/lookbook/icons/book.svg +1 -0
  124. data/app/assets/lookbook/icons/bookmark-minus.svg +1 -0
  125. data/app/assets/lookbook/icons/bookmark-plus.svg +1 -0
  126. data/app/assets/lookbook/icons/bookmark.svg +1 -0
  127. data/app/assets/lookbook/icons/bot.svg +1 -0
  128. data/app/assets/lookbook/icons/box-select.svg +1 -0
  129. data/app/assets/lookbook/icons/box.svg +1 -0
  130. data/app/assets/lookbook/icons/boxes.svg +1 -0
  131. data/app/assets/lookbook/icons/briefcase.svg +1 -0
  132. data/app/assets/lookbook/icons/brush.svg +1 -0
  133. data/app/assets/lookbook/icons/bug.svg +1 -0
  134. data/app/assets/lookbook/icons/building-2.svg +1 -0
  135. data/app/assets/lookbook/icons/building.svg +1 -0
  136. data/app/assets/lookbook/icons/bus.svg +1 -0
  137. data/app/assets/lookbook/icons/cake.svg +1 -0
  138. data/app/assets/lookbook/icons/calculator.svg +1 -0
  139. data/app/assets/lookbook/icons/calendar-check-2.svg +1 -0
  140. data/app/assets/lookbook/icons/calendar-check.svg +1 -0
  141. data/app/assets/lookbook/icons/calendar-clock.svg +1 -0
  142. data/app/assets/lookbook/icons/calendar-days.svg +1 -0
  143. data/app/assets/lookbook/icons/calendar-heart.svg +1 -0
  144. data/app/assets/lookbook/icons/calendar-minus.svg +1 -0
  145. data/app/assets/lookbook/icons/calendar-off.svg +1 -0
  146. data/app/assets/lookbook/icons/calendar-plus.svg +1 -0
  147. data/app/assets/lookbook/icons/calendar-range.svg +1 -0
  148. data/app/assets/lookbook/icons/calendar-search.svg +1 -0
  149. data/app/assets/lookbook/icons/calendar-x-2.svg +1 -0
  150. data/app/assets/lookbook/icons/calendar-x.svg +1 -0
  151. data/app/assets/lookbook/icons/calendar.svg +1 -0
  152. data/app/assets/lookbook/icons/camera-off.svg +1 -0
  153. data/app/assets/lookbook/icons/camera.svg +1 -0
  154. data/app/assets/lookbook/icons/candy-off.svg +1 -0
  155. data/app/assets/lookbook/icons/candy.svg +1 -0
  156. data/app/assets/lookbook/icons/car.svg +1 -0
  157. data/app/assets/lookbook/icons/carrot.svg +1 -0
  158. data/app/assets/lookbook/icons/cast.svg +1 -0
  159. data/app/assets/lookbook/icons/cat.svg +1 -0
  160. data/app/assets/lookbook/icons/check-check.svg +1 -0
  161. data/app/assets/lookbook/icons/check-circle-2.svg +1 -0
  162. data/app/assets/lookbook/icons/check-circle.svg +1 -0
  163. data/app/assets/lookbook/icons/check-square.svg +1 -0
  164. data/app/assets/lookbook/icons/check.svg +1 -0
  165. data/app/assets/lookbook/icons/chef-hat.svg +1 -0
  166. data/app/assets/lookbook/icons/cherry.svg +1 -0
  167. data/app/assets/lookbook/icons/chevron-down.svg +1 -0
  168. data/app/assets/lookbook/icons/chevron-first.svg +1 -0
  169. data/app/assets/lookbook/icons/chevron-last.svg +1 -0
  170. data/app/assets/lookbook/icons/chevron-left.svg +1 -0
  171. data/app/assets/lookbook/icons/chevron-right.svg +1 -0
  172. data/app/assets/lookbook/icons/chevron-up.svg +1 -0
  173. data/app/assets/lookbook/icons/chevrons-down-up.svg +1 -0
  174. data/app/assets/lookbook/icons/chevrons-down.svg +1 -0
  175. data/app/assets/lookbook/icons/chevrons-left-right.svg +1 -0
  176. data/app/assets/lookbook/icons/chevrons-left.svg +1 -0
  177. data/app/assets/lookbook/icons/chevrons-right-left.svg +1 -0
  178. data/app/assets/lookbook/icons/chevrons-right.svg +1 -0
  179. data/app/assets/lookbook/icons/chevrons-up-down.svg +1 -0
  180. data/app/assets/lookbook/icons/chevrons-up.svg +1 -0
  181. data/app/assets/lookbook/icons/chrome.svg +1 -0
  182. data/app/assets/lookbook/icons/cigarette-off.svg +1 -0
  183. data/app/assets/lookbook/icons/cigarette.svg +1 -0
  184. data/app/assets/lookbook/icons/circle-dot.svg +1 -0
  185. data/app/assets/lookbook/icons/circle-ellipsis.svg +1 -0
  186. data/app/assets/lookbook/icons/circle-slashed.svg +1 -0
  187. data/app/assets/lookbook/icons/circle.svg +1 -0
  188. data/app/assets/lookbook/icons/citrus.svg +1 -0
  189. data/app/assets/lookbook/icons/clapperboard.svg +1 -0
  190. data/app/assets/lookbook/icons/clipboard-check.svg +1 -0
  191. data/app/assets/lookbook/icons/clipboard-copy.svg +1 -0
  192. data/app/assets/lookbook/icons/clipboard-edit.svg +1 -0
  193. data/app/assets/lookbook/icons/clipboard-list.svg +1 -0
  194. data/app/assets/lookbook/icons/clipboard-signature.svg +1 -0
  195. data/app/assets/lookbook/icons/clipboard-type.svg +1 -0
  196. data/app/assets/lookbook/icons/clipboard-x.svg +1 -0
  197. data/app/assets/lookbook/icons/clipboard.svg +1 -0
  198. data/app/assets/lookbook/icons/clock-1.svg +1 -0
  199. data/app/assets/lookbook/icons/clock-10.svg +1 -0
  200. data/app/assets/lookbook/icons/clock-11.svg +1 -0
  201. data/app/assets/lookbook/icons/clock-12.svg +1 -0
  202. data/app/assets/lookbook/icons/clock-2.svg +1 -0
  203. data/app/assets/lookbook/icons/clock-3.svg +1 -0
  204. data/app/assets/lookbook/icons/clock-4.svg +1 -0
  205. data/app/assets/lookbook/icons/clock-5.svg +1 -0
  206. data/app/assets/lookbook/icons/clock-6.svg +1 -0
  207. data/app/assets/lookbook/icons/clock-7.svg +1 -0
  208. data/app/assets/lookbook/icons/clock-8.svg +1 -0
  209. data/app/assets/lookbook/icons/clock-9.svg +1 -0
  210. data/app/assets/lookbook/icons/clock.svg +1 -0
  211. data/app/assets/lookbook/icons/cloud-cog.svg +1 -0
  212. data/app/assets/lookbook/icons/cloud-drizzle.svg +1 -0
  213. data/app/assets/lookbook/icons/cloud-fog.svg +1 -0
  214. data/app/assets/lookbook/icons/cloud-hail.svg +1 -0
  215. data/app/assets/lookbook/icons/cloud-lightning.svg +1 -0
  216. data/app/assets/lookbook/icons/cloud-moon-rain.svg +1 -0
  217. data/app/assets/lookbook/icons/cloud-moon.svg +1 -0
  218. data/app/assets/lookbook/icons/cloud-off.svg +1 -0
  219. data/app/assets/lookbook/icons/cloud-rain-wind.svg +1 -0
  220. data/app/assets/lookbook/icons/cloud-rain.svg +1 -0
  221. data/app/assets/lookbook/icons/cloud-snow.svg +1 -0
  222. data/app/assets/lookbook/icons/cloud-sun-rain.svg +1 -0
  223. data/app/assets/lookbook/icons/cloud-sun.svg +1 -0
  224. data/app/assets/lookbook/icons/cloud.svg +1 -0
  225. data/app/assets/lookbook/icons/cloudy.svg +1 -0
  226. data/app/assets/lookbook/icons/clover.svg +1 -0
  227. data/app/assets/lookbook/icons/code-2.svg +1 -0
  228. data/app/assets/lookbook/icons/code.svg +1 -0
  229. data/app/assets/lookbook/icons/codepen.svg +1 -0
  230. data/app/assets/lookbook/icons/codesandbox.svg +1 -0
  231. data/app/assets/lookbook/icons/coffee.svg +1 -0
  232. data/app/assets/lookbook/icons/cog.svg +1 -0
  233. data/app/assets/lookbook/icons/coins.svg +1 -0
  234. data/app/assets/lookbook/icons/columns.svg +1 -0
  235. data/app/assets/lookbook/icons/command.svg +1 -0
  236. data/app/assets/lookbook/icons/compass.svg +1 -0
  237. data/app/assets/lookbook/icons/component.svg +1 -0
  238. data/app/assets/lookbook/icons/concierge-bell.svg +1 -0
  239. data/app/assets/lookbook/icons/construction.svg +1 -0
  240. data/app/assets/lookbook/icons/contact.svg +1 -0
  241. data/app/assets/lookbook/icons/contrast.svg +1 -0
  242. data/app/assets/lookbook/icons/cookie.svg +1 -0
  243. data/app/assets/lookbook/icons/copy.svg +1 -0
  244. data/app/assets/lookbook/icons/copyleft.svg +1 -0
  245. data/app/assets/lookbook/icons/copyright.svg +1 -0
  246. data/app/assets/lookbook/icons/corner-down-left.svg +1 -0
  247. data/app/assets/lookbook/icons/corner-down-right.svg +1 -0
  248. data/app/assets/lookbook/icons/corner-left-down.svg +1 -0
  249. data/app/assets/lookbook/icons/corner-left-up.svg +1 -0
  250. data/app/assets/lookbook/icons/corner-right-down.svg +1 -0
  251. data/app/assets/lookbook/icons/corner-right-up.svg +1 -0
  252. data/app/assets/lookbook/icons/corner-up-left.svg +1 -0
  253. data/app/assets/lookbook/icons/corner-up-right.svg +1 -0
  254. data/app/assets/lookbook/icons/cpu.svg +1 -0
  255. data/app/assets/lookbook/icons/creative-commons.svg +1 -0
  256. data/app/assets/lookbook/icons/credit-card.svg +1 -0
  257. data/app/assets/lookbook/icons/croissant.svg +1 -0
  258. data/app/assets/lookbook/icons/crop.svg +1 -0
  259. data/app/assets/lookbook/icons/cross.svg +1 -0
  260. data/app/assets/lookbook/icons/crosshair.svg +1 -0
  261. data/app/assets/lookbook/icons/crown.svg +1 -0
  262. data/app/assets/lookbook/icons/cup-soda.svg +1 -0
  263. data/app/assets/lookbook/icons/curly-braces.svg +1 -0
  264. data/app/assets/lookbook/icons/currency.svg +1 -0
  265. data/app/assets/lookbook/icons/database-backup.svg +1 -0
  266. data/app/assets/lookbook/icons/database.svg +1 -0
  267. data/app/assets/lookbook/icons/delete.svg +1 -0
  268. data/app/assets/lookbook/icons/diamond.svg +1 -0
  269. data/app/assets/lookbook/icons/dice-1.svg +1 -0
  270. data/app/assets/lookbook/icons/dice-2.svg +1 -0
  271. data/app/assets/lookbook/icons/dice-3.svg +1 -0
  272. data/app/assets/lookbook/icons/dice-4.svg +1 -0
  273. data/app/assets/lookbook/icons/dice-5.svg +1 -0
  274. data/app/assets/lookbook/icons/dice-6.svg +1 -0
  275. data/app/assets/lookbook/icons/dices.svg +1 -0
  276. data/app/assets/lookbook/icons/diff.svg +1 -0
  277. data/app/assets/lookbook/icons/disc.svg +1 -0
  278. data/app/assets/lookbook/icons/divide-circle.svg +1 -0
  279. data/app/assets/lookbook/icons/divide-square.svg +1 -0
  280. data/app/assets/lookbook/icons/divide.svg +1 -0
  281. data/app/assets/lookbook/icons/dna-off.svg +1 -0
  282. data/app/assets/lookbook/icons/dna.svg +1 -0
  283. data/app/assets/lookbook/icons/dog.svg +1 -0
  284. data/app/assets/lookbook/icons/dollar-sign.svg +1 -0
  285. data/app/assets/lookbook/icons/download-cloud.svg +1 -0
  286. data/app/assets/lookbook/icons/download.svg +1 -0
  287. data/app/assets/lookbook/icons/dribbble.svg +1 -0
  288. data/app/assets/lookbook/icons/droplet.svg +1 -0
  289. data/app/assets/lookbook/icons/droplets.svg +1 -0
  290. data/app/assets/lookbook/icons/drumstick.svg +1 -0
  291. data/app/assets/lookbook/icons/dumbbell.svg +1 -0
  292. data/app/assets/lookbook/icons/ear-off.svg +1 -0
  293. data/app/assets/lookbook/icons/ear.svg +1 -0
  294. data/app/assets/lookbook/icons/edit-2.svg +1 -0
  295. data/app/assets/lookbook/icons/edit-3.svg +1 -0
  296. data/app/assets/lookbook/icons/edit.svg +1 -0
  297. data/app/assets/lookbook/icons/egg-fried.svg +1 -0
  298. data/app/assets/lookbook/icons/egg-off.svg +1 -0
  299. data/app/assets/lookbook/icons/egg.svg +1 -0
  300. data/app/assets/lookbook/icons/equal-not.svg +1 -0
  301. data/app/assets/lookbook/icons/equal.svg +1 -0
  302. data/app/assets/lookbook/icons/eraser.svg +1 -0
  303. data/app/assets/lookbook/icons/euro.svg +1 -0
  304. data/app/assets/lookbook/icons/expand.svg +1 -0
  305. data/app/assets/lookbook/icons/external-link.svg +1 -0
  306. data/app/assets/lookbook/icons/eye-off.svg +1 -0
  307. data/app/assets/lookbook/icons/eye.svg +1 -0
  308. data/app/assets/lookbook/icons/facebook.svg +1 -0
  309. data/app/assets/lookbook/icons/factory.svg +1 -0
  310. data/app/assets/lookbook/icons/fan.svg +1 -0
  311. data/app/assets/lookbook/icons/fast-forward.svg +1 -0
  312. data/app/assets/lookbook/icons/feather.svg +1 -0
  313. data/app/assets/lookbook/icons/figma.svg +1 -0
  314. data/app/assets/lookbook/icons/file-archive.svg +1 -0
  315. data/app/assets/lookbook/icons/file-audio-2.svg +1 -0
  316. data/app/assets/lookbook/icons/file-audio.svg +1 -0
  317. data/app/assets/lookbook/icons/file-axis-3d.svg +1 -0
  318. data/app/assets/lookbook/icons/file-badge-2.svg +1 -0
  319. data/app/assets/lookbook/icons/file-badge.svg +1 -0
  320. data/app/assets/lookbook/icons/file-bar-chart-2.svg +1 -0
  321. data/app/assets/lookbook/icons/file-bar-chart.svg +1 -0
  322. data/app/assets/lookbook/icons/file-box.svg +1 -0
  323. data/app/assets/lookbook/icons/file-check-2.svg +1 -0
  324. data/app/assets/lookbook/icons/file-check.svg +1 -0
  325. data/app/assets/lookbook/icons/file-clock.svg +1 -0
  326. data/app/assets/lookbook/icons/file-code.svg +1 -0
  327. data/app/assets/lookbook/icons/file-cog-2.svg +1 -0
  328. data/app/assets/lookbook/icons/file-cog.svg +1 -0
  329. data/app/assets/lookbook/icons/file-diff.svg +1 -0
  330. data/app/assets/lookbook/icons/file-digit.svg +1 -0
  331. data/app/assets/lookbook/icons/file-down.svg +1 -0
  332. data/app/assets/lookbook/icons/file-edit.svg +1 -0
  333. data/app/assets/lookbook/icons/file-heart.svg +1 -0
  334. data/app/assets/lookbook/icons/file-image.svg +1 -0
  335. data/app/assets/lookbook/icons/file-input.svg +1 -0
  336. data/app/assets/lookbook/icons/file-json-2.svg +1 -0
  337. data/app/assets/lookbook/icons/file-json.svg +1 -0
  338. data/app/assets/lookbook/icons/file-key-2.svg +1 -0
  339. data/app/assets/lookbook/icons/file-key.svg +1 -0
  340. data/app/assets/lookbook/icons/file-line-chart.svg +1 -0
  341. data/app/assets/lookbook/icons/file-lock-2.svg +1 -0
  342. data/app/assets/lookbook/icons/file-lock.svg +1 -0
  343. data/app/assets/lookbook/icons/file-minus-2.svg +1 -0
  344. data/app/assets/lookbook/icons/file-minus.svg +1 -0
  345. data/app/assets/lookbook/icons/file-output.svg +1 -0
  346. data/app/assets/lookbook/icons/file-pie-chart.svg +1 -0
  347. data/app/assets/lookbook/icons/file-plus-2.svg +1 -0
  348. data/app/assets/lookbook/icons/file-plus.svg +1 -0
  349. data/app/assets/lookbook/icons/file-question.svg +1 -0
  350. data/app/assets/lookbook/icons/file-scan.svg +1 -0
  351. data/app/assets/lookbook/icons/file-search-2.svg +1 -0
  352. data/app/assets/lookbook/icons/file-search.svg +1 -0
  353. data/app/assets/lookbook/icons/file-signature.svg +1 -0
  354. data/app/assets/lookbook/icons/file-spreadsheet.svg +1 -0
  355. data/app/assets/lookbook/icons/file-symlink.svg +1 -0
  356. data/app/assets/lookbook/icons/file-terminal.svg +1 -0
  357. data/app/assets/lookbook/icons/file-text.svg +1 -0
  358. data/app/assets/lookbook/icons/file-type-2.svg +1 -0
  359. data/app/assets/lookbook/icons/file-type.svg +1 -0
  360. data/app/assets/lookbook/icons/file-up.svg +1 -0
  361. data/app/assets/lookbook/icons/file-video-2.svg +1 -0
  362. data/app/assets/lookbook/icons/file-video.svg +1 -0
  363. data/app/assets/lookbook/icons/file-volume-2.svg +1 -0
  364. data/app/assets/lookbook/icons/file-volume.svg +1 -0
  365. data/app/assets/lookbook/icons/file-warning.svg +1 -0
  366. data/app/assets/lookbook/icons/file-x-2.svg +1 -0
  367. data/app/assets/lookbook/icons/file-x.svg +1 -0
  368. data/app/assets/lookbook/icons/file.svg +1 -0
  369. data/app/assets/lookbook/icons/files.svg +1 -0
  370. data/app/assets/lookbook/icons/film.svg +1 -0
  371. data/app/assets/lookbook/icons/filter-x.svg +1 -0
  372. data/app/assets/lookbook/icons/filter.svg +1 -0
  373. data/app/assets/lookbook/icons/fingerprint.svg +1 -0
  374. data/app/assets/lookbook/icons/fish-off.svg +1 -0
  375. data/app/assets/lookbook/icons/fish.svg +1 -0
  376. data/app/assets/lookbook/icons/flag-off.svg +1 -0
  377. data/app/assets/lookbook/icons/flag-triangle-left.svg +1 -0
  378. data/app/assets/lookbook/icons/flag-triangle-right.svg +1 -0
  379. data/app/assets/lookbook/icons/flag.svg +1 -0
  380. data/app/assets/lookbook/icons/flame.svg +1 -0
  381. data/app/assets/lookbook/icons/flashlight-off.svg +1 -0
  382. data/app/assets/lookbook/icons/flashlight.svg +1 -0
  383. data/app/assets/lookbook/icons/flask-conical-off.svg +1 -0
  384. data/app/assets/lookbook/icons/flask-conical.svg +1 -0
  385. data/app/assets/lookbook/icons/flask-round.svg +1 -0
  386. data/app/assets/lookbook/icons/flip-horizontal-2.svg +1 -0
  387. data/app/assets/lookbook/icons/flip-horizontal.svg +1 -0
  388. data/app/assets/lookbook/icons/flip-vertical-2.svg +1 -0
  389. data/app/assets/lookbook/icons/flip-vertical.svg +1 -0
  390. data/app/assets/lookbook/icons/flower-2.svg +1 -0
  391. data/app/assets/lookbook/icons/flower.svg +1 -0
  392. data/app/assets/lookbook/icons/focus.svg +1 -0
  393. data/app/assets/lookbook/icons/folder-archive.svg +1 -0
  394. data/app/assets/lookbook/icons/folder-check.svg +1 -0
  395. data/app/assets/lookbook/icons/folder-clock.svg +1 -0
  396. data/app/assets/lookbook/icons/folder-closed.svg +1 -0
  397. data/app/assets/lookbook/icons/folder-cog-2.svg +1 -0
  398. data/app/assets/lookbook/icons/folder-cog.svg +1 -0
  399. data/app/assets/lookbook/icons/folder-down.svg +1 -0
  400. data/app/assets/lookbook/icons/folder-edit.svg +1 -0
  401. data/app/assets/lookbook/icons/folder-heart.svg +1 -0
  402. data/app/assets/lookbook/icons/folder-input.svg +1 -0
  403. data/app/assets/lookbook/icons/folder-key.svg +1 -0
  404. data/app/assets/lookbook/icons/folder-lock.svg +1 -0
  405. data/app/assets/lookbook/icons/folder-minus.svg +1 -0
  406. data/app/assets/lookbook/icons/folder-open.svg +1 -0
  407. data/app/assets/lookbook/icons/folder-output.svg +1 -0
  408. data/app/assets/lookbook/icons/folder-plus.svg +1 -0
  409. data/app/assets/lookbook/icons/folder-search-2.svg +1 -0
  410. data/app/assets/lookbook/icons/folder-search.svg +1 -0
  411. data/app/assets/lookbook/icons/folder-symlink.svg +1 -0
  412. data/app/assets/lookbook/icons/folder-tree.svg +1 -0
  413. data/app/assets/lookbook/icons/folder-up.svg +1 -0
  414. data/app/assets/lookbook/icons/folder-x.svg +1 -0
  415. data/app/assets/lookbook/icons/folder.svg +1 -0
  416. data/app/assets/lookbook/icons/folders.svg +1 -0
  417. data/app/assets/lookbook/icons/footprints.svg +1 -0
  418. data/app/assets/lookbook/icons/forklift.svg +1 -0
  419. data/app/assets/lookbook/icons/form-input.svg +1 -0
  420. data/app/assets/lookbook/icons/forward.svg +1 -0
  421. data/app/assets/lookbook/icons/frame.svg +1 -0
  422. data/app/assets/lookbook/icons/framer.svg +1 -0
  423. data/app/assets/lookbook/icons/frown.svg +1 -0
  424. data/app/assets/lookbook/icons/fuel.svg +1 -0
  425. data/app/assets/lookbook/icons/function-square.svg +1 -0
  426. data/app/assets/lookbook/icons/gamepad-2.svg +1 -0
  427. data/app/assets/lookbook/icons/gamepad.svg +1 -0
  428. data/app/assets/lookbook/icons/gauge.svg +1 -0
  429. data/app/assets/lookbook/icons/gavel.svg +1 -0
  430. data/app/assets/lookbook/icons/gem.svg +1 -0
  431. data/app/assets/lookbook/icons/ghost.svg +1 -0
  432. data/app/assets/lookbook/icons/gift.svg +1 -0
  433. data/app/assets/lookbook/icons/git-branch-plus.svg +1 -0
  434. data/app/assets/lookbook/icons/git-branch.svg +1 -0
  435. data/app/assets/lookbook/icons/git-commit.svg +1 -0
  436. data/app/assets/lookbook/icons/git-compare.svg +1 -0
  437. data/app/assets/lookbook/icons/git-fork.svg +1 -0
  438. data/app/assets/lookbook/icons/git-merge.svg +1 -0
  439. data/app/assets/lookbook/icons/git-pull-request-closed.svg +1 -0
  440. data/app/assets/lookbook/icons/git-pull-request-draft.svg +1 -0
  441. data/app/assets/lookbook/icons/git-pull-request.svg +1 -0
  442. data/app/assets/lookbook/icons/github.svg +1 -0
  443. data/app/assets/lookbook/icons/gitlab.svg +1 -0
  444. data/app/assets/lookbook/icons/glass-water.svg +1 -0
  445. data/app/assets/lookbook/icons/glasses.svg +1 -0
  446. data/app/assets/lookbook/icons/globe-2.svg +1 -0
  447. data/app/assets/lookbook/icons/globe.svg +1 -0
  448. data/app/assets/lookbook/icons/grab.svg +1 -0
  449. data/app/assets/lookbook/icons/graduation-cap.svg +1 -0
  450. data/app/assets/lookbook/icons/grape.svg +1 -0
  451. data/app/assets/lookbook/icons/grid.svg +1 -0
  452. data/app/assets/lookbook/icons/grip-horizontal.svg +1 -0
  453. data/app/assets/lookbook/icons/grip-vertical.svg +1 -0
  454. data/app/assets/lookbook/icons/grip.svg +1 -0
  455. data/app/assets/lookbook/icons/hammer.svg +1 -0
  456. data/app/assets/lookbook/icons/hand-metal.svg +1 -0
  457. data/app/assets/lookbook/icons/hand.svg +1 -0
  458. data/app/assets/lookbook/icons/hard-drive.svg +1 -0
  459. data/app/assets/lookbook/icons/hard-hat.svg +1 -0
  460. data/app/assets/lookbook/icons/hash.svg +1 -0
  461. data/app/assets/lookbook/icons/haze.svg +1 -0
  462. data/app/assets/lookbook/icons/heading-1.svg +1 -0
  463. data/app/assets/lookbook/icons/heading-2.svg +1 -0
  464. data/app/assets/lookbook/icons/heading-3.svg +1 -0
  465. data/app/assets/lookbook/icons/heading-4.svg +1 -0
  466. data/app/assets/lookbook/icons/heading-5.svg +1 -0
  467. data/app/assets/lookbook/icons/heading-6.svg +1 -0
  468. data/app/assets/lookbook/icons/heading.svg +1 -0
  469. data/app/assets/lookbook/icons/headphones.svg +1 -0
  470. data/app/assets/lookbook/icons/heart-crack.svg +1 -0
  471. data/app/assets/lookbook/icons/heart-handshake.svg +1 -0
  472. data/app/assets/lookbook/icons/heart-off.svg +1 -0
  473. data/app/assets/lookbook/icons/heart-pulse.svg +1 -0
  474. data/app/assets/lookbook/icons/heart.svg +1 -0
  475. data/app/assets/lookbook/icons/help-circle.svg +1 -0
  476. data/app/assets/lookbook/icons/helping-hand.svg +1 -0
  477. data/app/assets/lookbook/icons/hexagon.svg +1 -0
  478. data/app/assets/lookbook/icons/highlighter.svg +1 -0
  479. data/app/assets/lookbook/icons/history.svg +1 -0
  480. data/app/assets/lookbook/icons/home.svg +1 -0
  481. data/app/assets/lookbook/icons/hop-off.svg +1 -0
  482. data/app/assets/lookbook/icons/hop.svg +1 -0
  483. data/app/assets/lookbook/icons/hourglass.svg +1 -0
  484. data/app/assets/lookbook/icons/ice-cream-2.svg +1 -0
  485. data/app/assets/lookbook/icons/ice-cream.svg +1 -0
  486. data/app/assets/lookbook/icons/image-minus.svg +1 -0
  487. data/app/assets/lookbook/icons/image-off.svg +1 -0
  488. data/app/assets/lookbook/icons/image-plus.svg +1 -0
  489. data/app/assets/lookbook/icons/image.svg +1 -0
  490. data/app/assets/lookbook/icons/import.svg +1 -0
  491. data/app/assets/lookbook/icons/inbox.svg +1 -0
  492. data/app/assets/lookbook/icons/indent.svg +1 -0
  493. data/app/assets/lookbook/icons/indian-rupee.svg +1 -0
  494. data/app/assets/lookbook/icons/infinity.svg +1 -0
  495. data/app/assets/lookbook/icons/info.svg +1 -0
  496. data/app/assets/lookbook/icons/inspect.svg +1 -0
  497. data/app/assets/lookbook/icons/instagram.svg +1 -0
  498. data/app/assets/lookbook/icons/italic.svg +1 -0
  499. data/app/assets/lookbook/icons/japanese-yen.svg +1 -0
  500. data/app/assets/lookbook/icons/joystick.svg +1 -0
  501. data/app/assets/lookbook/icons/key.svg +1 -0
  502. data/app/assets/lookbook/icons/keyboard.svg +1 -0
  503. data/app/assets/lookbook/icons/lamp-ceiling.svg +1 -0
  504. data/app/assets/lookbook/icons/lamp-desk.svg +1 -0
  505. data/app/assets/lookbook/icons/lamp-floor.svg +1 -0
  506. data/app/assets/lookbook/icons/lamp-wall-down.svg +1 -0
  507. data/app/assets/lookbook/icons/lamp-wall-up.svg +1 -0
  508. data/app/assets/lookbook/icons/lamp.svg +1 -0
  509. data/app/assets/lookbook/icons/landmark.svg +1 -0
  510. data/app/assets/lookbook/icons/languages.svg +1 -0
  511. data/app/assets/lookbook/icons/laptop-2.svg +1 -0
  512. data/app/assets/lookbook/icons/laptop.svg +1 -0
  513. data/app/assets/lookbook/icons/lasso-select.svg +1 -0
  514. data/app/assets/lookbook/icons/lasso.svg +1 -0
  515. data/app/assets/lookbook/icons/laugh.svg +1 -0
  516. data/app/assets/lookbook/icons/layers.svg +1 -0
  517. data/app/assets/lookbook/icons/layout-dashboard.svg +1 -0
  518. data/app/assets/lookbook/icons/layout-grid.svg +1 -0
  519. data/app/assets/lookbook/icons/layout-list.svg +1 -0
  520. data/app/assets/lookbook/icons/layout-template.svg +1 -0
  521. data/app/assets/lookbook/icons/layout.svg +1 -0
  522. data/app/assets/lookbook/icons/leaf.svg +1 -0
  523. data/app/assets/lookbook/icons/library.svg +1 -0
  524. data/app/assets/lookbook/icons/life-buoy.svg +1 -0
  525. data/app/assets/lookbook/icons/lightbulb-off.svg +1 -0
  526. data/app/assets/lookbook/icons/lightbulb.svg +1 -0
  527. data/app/assets/lookbook/icons/line-chart.svg +1 -0
  528. data/app/assets/lookbook/icons/link-2-off.svg +1 -0
  529. data/app/assets/lookbook/icons/link-2.svg +1 -0
  530. data/app/assets/lookbook/icons/link.svg +1 -0
  531. data/app/assets/lookbook/icons/linkedin.svg +1 -0
  532. data/app/assets/lookbook/icons/list-checks.svg +1 -0
  533. data/app/assets/lookbook/icons/list-end.svg +1 -0
  534. data/app/assets/lookbook/icons/list-minus.svg +1 -0
  535. data/app/assets/lookbook/icons/list-music.svg +1 -0
  536. data/app/assets/lookbook/icons/list-ordered.svg +1 -0
  537. data/app/assets/lookbook/icons/list-plus.svg +1 -0
  538. data/app/assets/lookbook/icons/list-start.svg +1 -0
  539. data/app/assets/lookbook/icons/list-video.svg +1 -0
  540. data/app/assets/lookbook/icons/list-x.svg +1 -0
  541. data/app/assets/lookbook/icons/list.svg +1 -0
  542. data/app/assets/lookbook/icons/loader-2.svg +1 -0
  543. data/app/assets/lookbook/icons/loader.svg +1 -0
  544. data/app/assets/lookbook/icons/locate-fixed.svg +1 -0
  545. data/app/assets/lookbook/icons/locate-off.svg +1 -0
  546. data/app/assets/lookbook/icons/locate.svg +1 -0
  547. data/app/assets/lookbook/icons/lock.svg +1 -0
  548. data/app/assets/lookbook/icons/log-in.svg +1 -0
  549. data/app/assets/lookbook/icons/log-out.svg +1 -0
  550. data/app/assets/lookbook/icons/luggage.svg +1 -0
  551. data/app/assets/lookbook/icons/magnet.svg +1 -0
  552. data/app/assets/lookbook/icons/mail-check.svg +1 -0
  553. data/app/assets/lookbook/icons/mail-minus.svg +1 -0
  554. data/app/assets/lookbook/icons/mail-open.svg +1 -0
  555. data/app/assets/lookbook/icons/mail-plus.svg +1 -0
  556. data/app/assets/lookbook/icons/mail-question.svg +1 -0
  557. data/app/assets/lookbook/icons/mail-search.svg +1 -0
  558. data/app/assets/lookbook/icons/mail-warning.svg +1 -0
  559. data/app/assets/lookbook/icons/mail-x.svg +1 -0
  560. data/app/assets/lookbook/icons/mail.svg +1 -0
  561. data/app/assets/lookbook/icons/mails.svg +1 -0
  562. data/app/assets/lookbook/icons/map-pin-off.svg +1 -0
  563. data/app/assets/lookbook/icons/map-pin.svg +1 -0
  564. data/app/assets/lookbook/icons/map.svg +1 -0
  565. data/app/assets/lookbook/icons/martini.svg +1 -0
  566. data/app/assets/lookbook/icons/maximize-2.svg +1 -0
  567. data/app/assets/lookbook/icons/maximize.svg +1 -0
  568. data/app/assets/lookbook/icons/medal.svg +1 -0
  569. data/app/assets/lookbook/icons/megaphone-off.svg +1 -0
  570. data/app/assets/lookbook/icons/megaphone.svg +1 -0
  571. data/app/assets/lookbook/icons/meh.svg +1 -0
  572. data/app/assets/lookbook/icons/menu.svg +1 -0
  573. data/app/assets/lookbook/icons/message-circle.svg +1 -0
  574. data/app/assets/lookbook/icons/message-square.svg +1 -0
  575. data/app/assets/lookbook/icons/mic-2.svg +1 -0
  576. data/app/assets/lookbook/icons/mic-off.svg +1 -0
  577. data/app/assets/lookbook/icons/mic.svg +1 -0
  578. data/app/assets/lookbook/icons/microscope.svg +1 -0
  579. data/app/assets/lookbook/icons/microwave.svg +1 -0
  580. data/app/assets/lookbook/icons/milestone.svg +1 -0
  581. data/app/assets/lookbook/icons/milk-off.svg +1 -0
  582. data/app/assets/lookbook/icons/milk.svg +1 -0
  583. data/app/assets/lookbook/icons/minimize-2.svg +1 -0
  584. data/app/assets/lookbook/icons/minimize.svg +1 -0
  585. data/app/assets/lookbook/icons/minus-circle.svg +1 -0
  586. data/app/assets/lookbook/icons/minus-square.svg +1 -0
  587. data/app/assets/lookbook/icons/minus.svg +1 -0
  588. data/app/assets/lookbook/icons/monitor-off.svg +1 -0
  589. data/app/assets/lookbook/icons/monitor-smartphone.svg +1 -0
  590. data/app/assets/lookbook/icons/monitor-speaker.svg +1 -0
  591. data/app/assets/lookbook/icons/monitor.svg +1 -0
  592. data/app/assets/lookbook/icons/moon.svg +1 -0
  593. data/app/assets/lookbook/icons/more-horizontal.svg +1 -0
  594. data/app/assets/lookbook/icons/more-vertical.svg +1 -0
  595. data/app/assets/lookbook/icons/mountain-snow.svg +1 -0
  596. data/app/assets/lookbook/icons/mountain.svg +1 -0
  597. data/app/assets/lookbook/icons/mouse-pointer-2.svg +1 -0
  598. data/app/assets/lookbook/icons/mouse-pointer-click.svg +1 -0
  599. data/app/assets/lookbook/icons/mouse-pointer.svg +1 -0
  600. data/app/assets/lookbook/icons/mouse.svg +1 -0
  601. data/app/assets/lookbook/icons/move-3d.svg +1 -0
  602. data/app/assets/lookbook/icons/move-diagonal-2.svg +1 -0
  603. data/app/assets/lookbook/icons/move-diagonal.svg +1 -0
  604. data/app/assets/lookbook/icons/move-horizontal.svg +1 -0
  605. data/app/assets/lookbook/icons/move-vertical.svg +1 -0
  606. data/app/assets/lookbook/icons/move.svg +1 -0
  607. data/app/assets/lookbook/icons/music-2.svg +1 -0
  608. data/app/assets/lookbook/icons/music-3.svg +1 -0
  609. data/app/assets/lookbook/icons/music-4.svg +1 -0
  610. data/app/assets/lookbook/icons/music.svg +1 -0
  611. data/app/assets/lookbook/icons/navigation-2-off.svg +1 -0
  612. data/app/assets/lookbook/icons/navigation-2.svg +1 -0
  613. data/app/assets/lookbook/icons/navigation-off.svg +1 -0
  614. data/app/assets/lookbook/icons/navigation.svg +1 -0
  615. data/app/assets/lookbook/icons/network.svg +1 -0
  616. data/app/assets/lookbook/icons/newspaper.svg +1 -0
  617. data/app/assets/lookbook/icons/nfc.svg +1 -0
  618. data/app/assets/lookbook/icons/nut-off.svg +1 -0
  619. data/app/assets/lookbook/icons/nut.svg +1 -0
  620. data/app/assets/lookbook/icons/octagon.svg +1 -0
  621. data/app/assets/lookbook/icons/option.svg +1 -0
  622. data/app/assets/lookbook/icons/outdent.svg +1 -0
  623. data/app/assets/lookbook/icons/package-2.svg +1 -0
  624. data/app/assets/lookbook/icons/package-check.svg +1 -0
  625. data/app/assets/lookbook/icons/package-minus.svg +1 -0
  626. data/app/assets/lookbook/icons/package-open.svg +1 -0
  627. data/app/assets/lookbook/icons/package-plus.svg +1 -0
  628. data/app/assets/lookbook/icons/package-search.svg +1 -0
  629. data/app/assets/lookbook/icons/package-x.svg +1 -0
  630. data/app/assets/lookbook/icons/package.svg +1 -0
  631. data/app/assets/lookbook/icons/paint-bucket.svg +1 -0
  632. data/app/assets/lookbook/icons/paintbrush-2.svg +1 -0
  633. data/app/assets/lookbook/icons/paintbrush.svg +1 -0
  634. data/app/assets/lookbook/icons/palette.svg +1 -0
  635. data/app/assets/lookbook/icons/palmtree.svg +1 -0
  636. data/app/assets/lookbook/icons/paperclip.svg +1 -0
  637. data/app/assets/lookbook/icons/party-popper.svg +1 -0
  638. data/app/assets/lookbook/icons/pause-circle.svg +1 -0
  639. data/app/assets/lookbook/icons/pause-octagon.svg +1 -0
  640. data/app/assets/lookbook/icons/pause.svg +1 -0
  641. data/app/assets/lookbook/icons/pen-tool.svg +1 -0
  642. data/app/assets/lookbook/icons/pencil.svg +1 -0
  643. data/app/assets/lookbook/icons/percent.svg +1 -0
  644. data/app/assets/lookbook/icons/person-standing.svg +1 -0
  645. data/app/assets/lookbook/icons/phone-call.svg +1 -0
  646. data/app/assets/lookbook/icons/phone-forwarded.svg +1 -0
  647. data/app/assets/lookbook/icons/phone-incoming.svg +1 -0
  648. data/app/assets/lookbook/icons/phone-missed.svg +1 -0
  649. data/app/assets/lookbook/icons/phone-off.svg +1 -0
  650. data/app/assets/lookbook/icons/phone-outgoing.svg +1 -0
  651. data/app/assets/lookbook/icons/phone.svg +1 -0
  652. data/app/assets/lookbook/icons/picture-in-picture-2.svg +1 -0
  653. data/app/assets/lookbook/icons/picture-in-picture.svg +1 -0
  654. data/app/assets/lookbook/icons/pie-chart.svg +1 -0
  655. data/app/assets/lookbook/icons/piggy-bank.svg +1 -0
  656. data/app/assets/lookbook/icons/pilcrow.svg +1 -0
  657. data/app/assets/lookbook/icons/pill.svg +1 -0
  658. data/app/assets/lookbook/icons/pin-off.svg +1 -0
  659. data/app/assets/lookbook/icons/pin.svg +1 -0
  660. data/app/assets/lookbook/icons/pipette.svg +1 -0
  661. data/app/assets/lookbook/icons/pizza.svg +1 -0
  662. data/app/assets/lookbook/icons/plane.svg +1 -0
  663. data/app/assets/lookbook/icons/play-circle.svg +1 -0
  664. data/app/assets/lookbook/icons/play.svg +1 -0
  665. data/app/assets/lookbook/icons/plug-2.svg +1 -0
  666. data/app/assets/lookbook/icons/plug-zap.svg +1 -0
  667. data/app/assets/lookbook/icons/plug.svg +1 -0
  668. data/app/assets/lookbook/icons/plus-circle.svg +1 -0
  669. data/app/assets/lookbook/icons/plus-square.svg +1 -0
  670. data/app/assets/lookbook/icons/plus.svg +1 -0
  671. data/app/assets/lookbook/icons/pocket.svg +1 -0
  672. data/app/assets/lookbook/icons/podcast.svg +1 -0
  673. data/app/assets/lookbook/icons/pointer.svg +1 -0
  674. data/app/assets/lookbook/icons/pound-sterling.svg +1 -0
  675. data/app/assets/lookbook/icons/power-off.svg +1 -0
  676. data/app/assets/lookbook/icons/power.svg +1 -0
  677. data/app/assets/lookbook/icons/printer.svg +1 -0
  678. data/app/assets/lookbook/icons/puzzle.svg +1 -0
  679. data/app/assets/lookbook/icons/qr-code.svg +1 -0
  680. data/app/assets/lookbook/icons/quote.svg +1 -0
  681. data/app/assets/lookbook/icons/radio-receiver.svg +1 -0
  682. data/app/assets/lookbook/icons/radio.svg +1 -0
  683. data/app/assets/lookbook/icons/rectangle-horizontal.svg +1 -0
  684. data/app/assets/lookbook/icons/rectangle-vertical.svg +1 -0
  685. data/app/assets/lookbook/icons/recycle.svg +1 -0
  686. data/app/assets/lookbook/icons/redo-2.svg +1 -0
  687. data/app/assets/lookbook/icons/redo.svg +1 -0
  688. data/app/assets/lookbook/icons/refresh-ccw.svg +1 -0
  689. data/app/assets/lookbook/icons/refresh-cw.svg +1 -0
  690. data/app/assets/lookbook/icons/refrigerator.svg +1 -0
  691. data/app/assets/lookbook/icons/regex.svg +1 -0
  692. data/app/assets/lookbook/icons/remove-formatting.svg +1 -0
  693. data/app/assets/lookbook/icons/repeat-1.svg +1 -0
  694. data/app/assets/lookbook/icons/repeat.svg +1 -0
  695. data/app/assets/lookbook/icons/reply-all.svg +1 -0
  696. data/app/assets/lookbook/icons/reply.svg +1 -0
  697. data/app/assets/lookbook/icons/rewind.svg +1 -0
  698. data/app/assets/lookbook/icons/rocket.svg +1 -0
  699. data/app/assets/lookbook/icons/rocking-chair.svg +1 -0
  700. data/app/assets/lookbook/icons/rotate-3d.svg +1 -0
  701. data/app/assets/lookbook/icons/rotate-ccw.svg +1 -0
  702. data/app/assets/lookbook/icons/rotate-cw.svg +1 -0
  703. data/app/assets/lookbook/icons/router.svg +1 -0
  704. data/app/assets/lookbook/icons/rss.svg +1 -0
  705. data/app/assets/lookbook/icons/ruler.svg +1 -0
  706. data/app/assets/lookbook/icons/russian-ruble.svg +1 -0
  707. data/app/assets/lookbook/icons/sailboat.svg +1 -0
  708. data/app/assets/lookbook/icons/salad.svg +1 -0
  709. data/app/assets/lookbook/icons/sandwich.svg +1 -0
  710. data/app/assets/lookbook/icons/save.svg +1 -0
  711. data/app/assets/lookbook/icons/scale-3d.svg +1 -0
  712. data/app/assets/lookbook/icons/scale.svg +1 -0
  713. data/app/assets/lookbook/icons/scaling.svg +1 -0
  714. data/app/assets/lookbook/icons/scan-face.svg +1 -0
  715. data/app/assets/lookbook/icons/scan-line.svg +1 -0
  716. data/app/assets/lookbook/icons/scan.svg +1 -0
  717. data/app/assets/lookbook/icons/scissors.svg +1 -0
  718. data/app/assets/lookbook/icons/screen-share-off.svg +1 -0
  719. data/app/assets/lookbook/icons/screen-share.svg +1 -0
  720. data/app/assets/lookbook/icons/scroll.svg +1 -0
  721. data/app/assets/lookbook/icons/search.svg +1 -0
  722. data/app/assets/lookbook/icons/send.svg +1 -0
  723. data/app/assets/lookbook/icons/separator-horizontal.svg +1 -0
  724. data/app/assets/lookbook/icons/separator-vertical.svg +1 -0
  725. data/app/assets/lookbook/icons/server-cog.svg +1 -0
  726. data/app/assets/lookbook/icons/server-crash.svg +1 -0
  727. data/app/assets/lookbook/icons/server-off.svg +1 -0
  728. data/app/assets/lookbook/icons/server.svg +1 -0
  729. data/app/assets/lookbook/icons/settings-2.svg +1 -0
  730. data/app/assets/lookbook/icons/settings.svg +1 -0
  731. data/app/assets/lookbook/icons/share-2.svg +1 -0
  732. data/app/assets/lookbook/icons/share.svg +1 -0
  733. data/app/assets/lookbook/icons/sheet.svg +1 -0
  734. data/app/assets/lookbook/icons/shield-alert.svg +1 -0
  735. data/app/assets/lookbook/icons/shield-check.svg +1 -0
  736. data/app/assets/lookbook/icons/shield-close.svg +1 -0
  737. data/app/assets/lookbook/icons/shield-off.svg +1 -0
  738. data/app/assets/lookbook/icons/shield.svg +1 -0
  739. data/app/assets/lookbook/icons/ship.svg +1 -0
  740. data/app/assets/lookbook/icons/shirt.svg +1 -0
  741. data/app/assets/lookbook/icons/shopping-bag.svg +1 -0
  742. data/app/assets/lookbook/icons/shopping-cart.svg +1 -0
  743. data/app/assets/lookbook/icons/shovel.svg +1 -0
  744. data/app/assets/lookbook/icons/shower-head.svg +1 -0
  745. data/app/assets/lookbook/icons/shrink.svg +1 -0
  746. data/app/assets/lookbook/icons/shrub.svg +1 -0
  747. data/app/assets/lookbook/icons/shuffle.svg +1 -0
  748. data/app/assets/lookbook/icons/sidebar-close.svg +1 -0
  749. data/app/assets/lookbook/icons/sidebar-open.svg +1 -0
  750. data/app/assets/lookbook/icons/sidebar.svg +1 -0
  751. data/app/assets/lookbook/icons/sigma.svg +1 -0
  752. data/app/assets/lookbook/icons/signal-high.svg +1 -0
  753. data/app/assets/lookbook/icons/signal-low.svg +1 -0
  754. data/app/assets/lookbook/icons/signal-medium.svg +1 -0
  755. data/app/assets/lookbook/icons/signal-zero.svg +1 -0
  756. data/app/assets/lookbook/icons/signal.svg +1 -0
  757. data/app/assets/lookbook/icons/siren.svg +1 -0
  758. data/app/assets/lookbook/icons/skip-back.svg +1 -0
  759. data/app/assets/lookbook/icons/skip-forward.svg +1 -0
  760. data/app/assets/lookbook/icons/skull.svg +1 -0
  761. data/app/assets/lookbook/icons/slack.svg +1 -0
  762. data/app/assets/lookbook/icons/slash.svg +1 -0
  763. data/app/assets/lookbook/icons/slice.svg +1 -0
  764. data/app/assets/lookbook/icons/sliders-horizontal.svg +1 -0
  765. data/app/assets/lookbook/icons/sliders.svg +1 -0
  766. data/app/assets/lookbook/icons/smartphone-charging.svg +1 -0
  767. data/app/assets/lookbook/icons/smartphone-nfc.svg +1 -0
  768. data/app/assets/lookbook/icons/smartphone.svg +1 -0
  769. data/app/assets/lookbook/icons/smile-plus.svg +1 -0
  770. data/app/assets/lookbook/icons/smile.svg +1 -0
  771. data/app/assets/lookbook/icons/snowflake.svg +1 -0
  772. data/app/assets/lookbook/icons/sofa.svg +1 -0
  773. data/app/assets/lookbook/icons/sort-asc.svg +1 -0
  774. data/app/assets/lookbook/icons/sort-desc.svg +1 -0
  775. data/app/assets/lookbook/icons/soup.svg +1 -0
  776. data/app/assets/lookbook/icons/speaker.svg +1 -0
  777. data/app/assets/lookbook/icons/spline.svg +1 -0
  778. data/app/assets/lookbook/icons/split-square-horizontal.svg +1 -0
  779. data/app/assets/lookbook/icons/split-square-vertical.svg +1 -0
  780. data/app/assets/lookbook/icons/sprout.svg +1 -0
  781. data/app/assets/lookbook/icons/square.svg +1 -0
  782. data/app/assets/lookbook/icons/stamp.svg +1 -0
  783. data/app/assets/lookbook/icons/star-half.svg +1 -0
  784. data/app/assets/lookbook/icons/star-off.svg +1 -0
  785. data/app/assets/lookbook/icons/star.svg +1 -0
  786. data/app/assets/lookbook/icons/stethoscope.svg +1 -0
  787. data/app/assets/lookbook/icons/sticker.svg +1 -0
  788. data/app/assets/lookbook/icons/sticky-note.svg +1 -0
  789. data/app/assets/lookbook/icons/stop-circle.svg +1 -0
  790. data/app/assets/lookbook/icons/stretch-horizontal.svg +1 -0
  791. data/app/assets/lookbook/icons/stretch-vertical.svg +1 -0
  792. data/app/assets/lookbook/icons/strikethrough.svg +1 -0
  793. data/app/assets/lookbook/icons/subscript.svg +1 -0
  794. data/app/assets/lookbook/icons/subtitles.svg +1 -0
  795. data/app/assets/lookbook/icons/sun-dim.svg +1 -0
  796. data/app/assets/lookbook/icons/sun-medium.svg +1 -0
  797. data/app/assets/lookbook/icons/sun-moon.svg +1 -0
  798. data/app/assets/lookbook/icons/sun-snow.svg +1 -0
  799. data/app/assets/lookbook/icons/sun.svg +1 -0
  800. data/app/assets/lookbook/icons/sunrise.svg +1 -0
  801. data/app/assets/lookbook/icons/sunset.svg +1 -0
  802. data/app/assets/lookbook/icons/superscript.svg +1 -0
  803. data/app/assets/lookbook/icons/swiss-franc.svg +1 -0
  804. data/app/assets/lookbook/icons/switch-camera.svg +1 -0
  805. data/app/assets/lookbook/icons/sword.svg +1 -0
  806. data/app/assets/lookbook/icons/swords.svg +1 -0
  807. data/app/assets/lookbook/icons/syringe.svg +1 -0
  808. data/app/assets/lookbook/icons/table-2.svg +1 -0
  809. data/app/assets/lookbook/icons/table.svg +1 -0
  810. data/app/assets/lookbook/icons/tablet.svg +1 -0
  811. data/app/assets/lookbook/icons/tablets.svg +1 -0
  812. data/app/assets/lookbook/icons/tag.svg +1 -0
  813. data/app/assets/lookbook/icons/tags.svg +1 -0
  814. data/app/assets/lookbook/icons/target.svg +1 -0
  815. data/app/assets/lookbook/icons/tent.svg +1 -0
  816. data/app/assets/lookbook/icons/terminal-square.svg +1 -0
  817. data/app/assets/lookbook/icons/terminal.svg +1 -0
  818. data/app/assets/lookbook/icons/text-cursor-input.svg +1 -0
  819. data/app/assets/lookbook/icons/text-cursor.svg +1 -0
  820. data/app/assets/lookbook/icons/thermometer-snowflake.svg +1 -0
  821. data/app/assets/lookbook/icons/thermometer-sun.svg +1 -0
  822. data/app/assets/lookbook/icons/thermometer.svg +1 -0
  823. data/app/assets/lookbook/icons/thumbs-down.svg +1 -0
  824. data/app/assets/lookbook/icons/thumbs-up.svg +1 -0
  825. data/app/assets/lookbook/icons/ticket.svg +1 -0
  826. data/app/assets/lookbook/icons/timer-off.svg +1 -0
  827. data/app/assets/lookbook/icons/timer-reset.svg +1 -0
  828. data/app/assets/lookbook/icons/timer.svg +1 -0
  829. data/app/assets/lookbook/icons/toggle-left.svg +1 -0
  830. data/app/assets/lookbook/icons/toggle-right.svg +1 -0
  831. data/app/assets/lookbook/icons/tornado.svg +1 -0
  832. data/app/assets/lookbook/icons/tower-control.svg +1 -0
  833. data/app/assets/lookbook/icons/toy-brick.svg +1 -0
  834. data/app/assets/lookbook/icons/train.svg +1 -0
  835. data/app/assets/lookbook/icons/trash-2.svg +1 -0
  836. data/app/assets/lookbook/icons/trash.svg +1 -0
  837. data/app/assets/lookbook/icons/tree-deciduous.svg +1 -0
  838. data/app/assets/lookbook/icons/tree-pine.svg +1 -0
  839. data/app/assets/lookbook/icons/trees.svg +1 -0
  840. data/app/assets/lookbook/icons/trello.svg +1 -0
  841. data/app/assets/lookbook/icons/trending-down.svg +1 -0
  842. data/app/assets/lookbook/icons/trending-up.svg +1 -0
  843. data/app/assets/lookbook/icons/triangle.svg +1 -0
  844. data/app/assets/lookbook/icons/trophy.svg +1 -0
  845. data/app/assets/lookbook/icons/truck.svg +1 -0
  846. data/app/assets/lookbook/icons/tv-2.svg +1 -0
  847. data/app/assets/lookbook/icons/tv.svg +1 -0
  848. data/app/assets/lookbook/icons/twitch.svg +1 -0
  849. data/app/assets/lookbook/icons/twitter.svg +1 -0
  850. data/app/assets/lookbook/icons/type.svg +1 -0
  851. data/app/assets/lookbook/icons/umbrella.svg +1 -0
  852. data/app/assets/lookbook/icons/underline.svg +1 -0
  853. data/app/assets/lookbook/icons/undo-2.svg +1 -0
  854. data/app/assets/lookbook/icons/undo.svg +1 -0
  855. data/app/assets/lookbook/icons/unlink-2.svg +1 -0
  856. data/app/assets/lookbook/icons/unlink.svg +1 -0
  857. data/app/assets/lookbook/icons/unlock.svg +1 -0
  858. data/app/assets/lookbook/icons/upload-cloud.svg +1 -0
  859. data/app/assets/lookbook/icons/upload.svg +1 -0
  860. data/app/assets/lookbook/icons/usb.svg +1 -0
  861. data/app/assets/lookbook/icons/user-check.svg +1 -0
  862. data/app/assets/lookbook/icons/user-cog.svg +1 -0
  863. data/app/assets/lookbook/icons/user-minus.svg +1 -0
  864. data/app/assets/lookbook/icons/user-plus.svg +1 -0
  865. data/app/assets/lookbook/icons/user-x.svg +1 -0
  866. data/app/assets/lookbook/icons/user.svg +1 -0
  867. data/app/assets/lookbook/icons/users.svg +1 -0
  868. data/app/assets/lookbook/icons/utensils-crossed.svg +1 -0
  869. data/app/assets/lookbook/icons/utensils.svg +1 -0
  870. data/app/assets/lookbook/icons/utility-pole.svg +1 -0
  871. data/app/assets/lookbook/icons/vegan.svg +1 -0
  872. data/app/assets/lookbook/icons/venetian-mask.svg +1 -0
  873. data/app/assets/lookbook/icons/verified.svg +1 -0
  874. data/app/assets/lookbook/icons/vibrate-off.svg +1 -0
  875. data/app/assets/lookbook/icons/vibrate.svg +1 -0
  876. data/app/assets/lookbook/icons/video-off.svg +1 -0
  877. data/app/assets/lookbook/icons/video.svg +1 -0
  878. data/app/assets/lookbook/icons/view.svg +1 -0
  879. data/app/assets/lookbook/icons/voicemail.svg +1 -0
  880. data/app/assets/lookbook/icons/volume-1.svg +1 -0
  881. data/app/assets/lookbook/icons/volume-2.svg +1 -0
  882. data/app/assets/lookbook/icons/volume-x.svg +1 -0
  883. data/app/assets/lookbook/icons/volume.svg +1 -0
  884. data/app/assets/lookbook/icons/vote.svg +1 -0
  885. data/app/assets/lookbook/icons/wallet.svg +1 -0
  886. data/app/assets/lookbook/icons/wand-2.svg +1 -0
  887. data/app/assets/lookbook/icons/wand.svg +1 -0
  888. data/app/assets/lookbook/icons/watch.svg +1 -0
  889. data/app/assets/lookbook/icons/waves.svg +1 -0
  890. data/app/assets/lookbook/icons/webcam.svg +1 -0
  891. data/app/assets/lookbook/icons/webhook.svg +1 -0
  892. data/app/assets/lookbook/icons/wheat-off.svg +1 -0
  893. data/app/assets/lookbook/icons/wheat.svg +1 -0
  894. data/app/assets/lookbook/icons/wifi-off.svg +1 -0
  895. data/app/assets/lookbook/icons/wifi.svg +1 -0
  896. data/app/assets/lookbook/icons/wind.svg +1 -0
  897. data/app/assets/lookbook/icons/wine-off.svg +1 -0
  898. data/app/assets/lookbook/icons/wine.svg +1 -0
  899. data/app/assets/lookbook/icons/wrap-text.svg +1 -0
  900. data/app/assets/lookbook/icons/wrench.svg +1 -0
  901. data/app/assets/lookbook/icons/x-circle.svg +1 -0
  902. data/app/assets/lookbook/icons/x-octagon.svg +1 -0
  903. data/app/assets/lookbook/icons/x-square.svg +1 -0
  904. data/app/assets/lookbook/icons/x.svg +1 -0
  905. data/app/assets/lookbook/icons/youtube.svg +1 -0
  906. data/app/assets/lookbook/icons/zap-off.svg +1 -0
  907. data/app/assets/lookbook/icons/zap.svg +1 -0
  908. data/app/assets/lookbook/icons/zoom-in.svg +1 -0
  909. data/app/assets/lookbook/icons/zoom-out.svg +1 -0
  910. data/app/assets/lookbook/img/favicon_dark.svg +1 -0
  911. data/app/assets/lookbook/img/favicon_light.svg +1 -0
  912. data/app/assets/lookbook/js/helpers/request.js +9 -11
  913. data/app/components/lookbook/code/highlight_github.css +16 -17
  914. data/app/components/lookbook/dimensions_display/component.js +4 -7
  915. data/app/components/lookbook/file_source/component.html.erb +9 -0
  916. data/app/components/lookbook/file_source/component.rb +73 -0
  917. data/app/components/lookbook/header/component.css +12 -0
  918. data/app/components/lookbook/header/component.html.erb +15 -8
  919. data/app/components/lookbook/header/component.rb +4 -2
  920. data/app/components/lookbook/icon/component.css +9 -1
  921. data/app/components/lookbook/icon/component.html.erb +2 -4
  922. data/app/components/lookbook/icon/component.rb +20 -5
  923. data/app/components/lookbook/logo/component.html.erb +6 -0
  924. data/app/components/lookbook/logo/component.rb +15 -0
  925. data/app/components/lookbook/message/component.css +33 -0
  926. data/app/components/lookbook/message/component.html.erb +26 -0
  927. data/app/components/lookbook/message/component.rb +13 -0
  928. data/app/components/lookbook/nav/directory/component.html.erb +4 -4
  929. data/app/components/lookbook/nav/entity/component.html.erb +5 -5
  930. data/app/components/lookbook/nav/entity/component.rb +1 -1
  931. data/app/components/lookbook/params/field/component.css +3 -3
  932. data/app/components/lookbook/prose/component.css +8 -1
  933. data/app/components/lookbook/prose/component.html.erb +6 -1
  934. data/app/components/lookbook/prose/component.rb +2 -2
  935. data/app/controllers/concerns/lookbook/targetable_concern.rb +2 -16
  936. data/app/controllers/lookbook/application_controller.rb +38 -14
  937. data/app/controllers/lookbook/embeds_controller.rb +3 -4
  938. data/app/controllers/lookbook/inspector_controller.rb +4 -12
  939. data/app/controllers/lookbook/pages_controller.rb +15 -27
  940. data/app/controllers/lookbook/preview_controller.rb +30 -2
  941. data/app/controllers/lookbook/previews_controller.rb +13 -15
  942. data/app/views/layouts/lookbook/application.html.erb +41 -42
  943. data/app/views/layouts/lookbook/skeleton.html.erb +3 -9
  944. data/app/views/lookbook/errors/default.html.erb +40 -0
  945. data/app/views/lookbook/errors/not_found.html.erb +10 -0
  946. data/app/views/lookbook/index.html.erb +29 -24
  947. data/app/views/lookbook/inspector/panels/_preview.html.erb +1 -0
  948. data/app/views/lookbook/inspector/show.html.erb +10 -2
  949. data/app/views/lookbook/pages/show.html.erb +6 -5
  950. data/app/views/lookbook/partials/_blank_slate.html.erb +7 -0
  951. data/config/app.yml +10 -1
  952. data/config/routes.rb +2 -0
  953. data/lib/lookbook/engine.rb +26 -21
  954. data/lib/lookbook/entities/concerns/annotatable_entity.rb +26 -1
  955. data/lib/lookbook/entities/concerns/inspectable_entity.rb +17 -2
  956. data/lib/lookbook/entities/concerns/locatable_entity.rb +51 -7
  957. data/lib/lookbook/entities/concerns/navigable_entity.rb +20 -2
  958. data/lib/lookbook/entities/entity.rb +34 -12
  959. data/lib/lookbook/entities/page_entity.rb +68 -10
  960. data/lib/lookbook/entities/page_section_entity.rb +4 -0
  961. data/lib/lookbook/entities/preview_entity.rb +130 -20
  962. data/lib/lookbook/entities/renderable_entity.rb +47 -9
  963. data/lib/lookbook/entities/rendered_scenario_entity.rb +17 -6
  964. data/lib/lookbook/entities/scenario_entity.rb +77 -16
  965. data/lib/lookbook/entities/scenario_group_entity.rb +87 -9
  966. data/lib/lookbook/helpers/page_helper.rb +26 -1
  967. data/lib/lookbook/helpers/ui_elements_helper.rb +0 -24
  968. data/lib/lookbook/param.rb +1 -1
  969. data/lib/lookbook/preview.rb +4 -0
  970. data/lib/lookbook/services/urls/data_uri_encoder.rb +14 -0
  971. data/lib/lookbook/services/urls/file_data_uri_encoder.rb +24 -0
  972. data/lib/lookbook/stores/config_store.rb +45 -12
  973. data/lib/lookbook/stores/hook_store.rb +0 -10
  974. data/lib/lookbook/stores/input_store.rb +7 -1
  975. data/lib/lookbook/stores/panel_store.rb +4 -1
  976. data/lib/lookbook/stores/tag_store.rb +6 -5
  977. data/lib/lookbook/support/errors/config_error.rb +1 -1
  978. data/lib/lookbook/support/errors/error.rb +64 -0
  979. data/lib/lookbook/support/errors/parser_error.rb +1 -1
  980. data/lib/lookbook/support/errors/preview_template_error.rb +1 -1
  981. data/lib/lookbook/support/errors/routing_error.rb +7 -0
  982. data/lib/lookbook/support/errors/template_error.rb +7 -0
  983. data/lib/lookbook/version.rb +1 -1
  984. data/lib/lookbook.rb +3 -3
  985. data/public/lookbook-assets/css/lookbook.css +497 -57
  986. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  987. data/public/lookbook-assets/css/themes/blue.css +4 -1
  988. data/public/lookbook-assets/css/themes/blue.css.map +1 -1
  989. data/public/lookbook-assets/css/themes/green.css +4 -1
  990. data/public/lookbook-assets/css/themes/green.css.map +1 -1
  991. data/public/lookbook-assets/css/themes/indigo.css +4 -1
  992. data/public/lookbook-assets/css/themes/indigo.css.map +1 -1
  993. data/public/lookbook-assets/css/themes/rose.css +4 -1
  994. data/public/lookbook-assets/css/themes/rose.css.map +1 -1
  995. data/public/lookbook-assets/css/themes/zinc.css +4 -1
  996. data/public/lookbook-assets/css/themes/zinc.css.map +1 -1
  997. data/public/lookbook-assets/img/lucide-sprite.svg +869 -869
  998. data/public/lookbook-assets/js/iframe.js +2 -1
  999. data/public/lookbook-assets/js/iframe.js.map +1 -1
  1000. data/public/lookbook-assets/js/index.js +188 -216
  1001. data/public/lookbook-assets/js/index.js.map +1 -1
  1002. data/public/lookbook-assets/js/lookbook.js +9 -8
  1003. metadata +923 -11
  1004. data/app/assets/lookbook/img/lucide-sprite.svg +0 -4960
  1005. data/app/components/lookbook/icon/component.js +0 -5
  1006. data/app/views/layouts/lookbook/shell.html.erb +0 -25
  1007. data/app/views/lookbook/404.html.erb +0 -15
  1008. data/app/views/lookbook/error.html.erb +0 -46
  1009. data/config/hooks.yml +0 -4
  1010. data/lib/lookbook/error.rb +0 -120
  1011. data/lib/lookbook/support/errors/lookbook_error.rb +0 -21
@@ -1,7 +1,6 @@
1
1
  module Lookbook
2
2
  # Represents a preview class
3
3
  #
4
- # @ignore methods
5
4
  # @api public
6
5
  class PreviewEntity < Entity
7
6
  include AnnotatableEntity
@@ -10,8 +9,10 @@ module Lookbook
10
9
 
11
10
  delegate :render_args, to: :preview_class
12
11
 
12
+ # @api private
13
13
  attr_reader :preview_class
14
14
 
15
+ # @api private
15
16
  def initialize(code_object)
16
17
  @code_object = code_object
17
18
  @preview_class = code_object.path.constantize
@@ -25,69 +26,178 @@ module Lookbook
25
26
  @lookup_path = PathUtils.to_lookup_path(cleaned_path)
26
27
  end
27
28
 
29
+ # @!group Scenarios
30
+
31
+ # Get all scenarios defined in the preview class.
32
+ #
33
+ # @example :ruby
34
+ # scenario_names = preview.scenarios.map(&:name)
35
+ #
36
+ # @return [Array<ScenarioEntity>] All scenarios for the preview
28
37
  def scenarios
29
38
  @_scenarios ||= ScenarioCollection.new(load_scenarios)
30
39
  end
31
40
 
41
+ alias_method :examples, :scenarios
42
+ deprecate examples: :scenarios, deprecator: Deprecation
43
+
44
+ # Find a specific scenario by (i.e. method) name
45
+ #
46
+ # @example :ruby
47
+ # default_scenario_preview_path = preview.scenario(:default).preview_path
48
+ #
49
+ # @param scenario_name [Symbol, String] Name of the scenario
50
+ # @return [ScenarioEntity] The matching scenario, if found
51
+ # @return [nil] if no matching scenario was found
32
52
  def scenario(scenario_name)
33
53
  scenarios.find { |m| m.name == scenario_name.to_s }
34
54
  end
35
55
 
56
+ alias_method :example, :scenario
57
+ deprecate example: :scenario, deprecator: Deprecation
58
+
59
+ # Get all scenarios defined in the preview class that
60
+ # have not been hidden (by using the `@hidden` tag).
61
+ #
62
+ # @example :ruby
63
+ # visible_scenario_names = preview.visible_scenarios.map(&:name)
64
+ #
65
+ # @return [Array<ScenarioEntity>] All visible scenarios for the preview
36
66
  def visible_scenarios
37
67
  @_visible_scenarios ||= ScenarioCollection.new(scenarios.select(&:visible?))
38
68
  end
39
69
 
70
+ # Get all scenarios defined in the preview class
71
+ # that are hidden (using the `@hidden` tag) and so
72
+ # will not show up in the navigation.
73
+ #
74
+ # @example :ruby
75
+ # hidden_scenario_names = preview.hidden_scenarios.map(&:name)
76
+ #
77
+ # @return [Array<ScenarioEntity>] All hidden scenarios for the preview
78
+ def hidden_scenarios
79
+ @_hidden_scenarios ||= ScenarioCollection.new(scenarios.select(&:hidden?))
80
+ end
81
+
82
+ # The scenario used when a preview is rendered
83
+ # without explicity specifying a scenario.
84
+ #
85
+ # @example :ruby
86
+ # default_scenario_name = preview.default_scenario.name
87
+ #
88
+ # @return [ScenarioEntity] The default scenario for this preview
40
89
  def default_scenario
41
90
  visible_scenarios.first
42
91
  end
43
92
 
93
+ # @!endgroup
94
+
95
+ # @!group Render Targets
96
+
97
+ # All 'render targets' (i.e. components or partials) that are known
98
+ # to be rendered within the scenarios defined within this preview.
99
+ #
100
+ # Render targets are guessed where possible (based on the preview class name)
101
+ # but can also be manually specified using the `@renders` tag.
102
+ #
103
+ # @example :ruby
104
+ # "This preview renders: #{preview.render_targets.map(&:label).join(", ")}"
105
+ #
106
+ # @return [Array<RenderableEntity>] All known render targets used in the preview
44
107
  def render_targets
45
108
  @_render_targets ||= RenderTargetCollection.new(scenarios.flat_map(&:render_targets).uniq(&:lookup_path))
46
109
  end
47
110
 
111
+ alias_method :components, :render_targets
112
+
113
+ # @api private
48
114
  def render_target
49
115
  render_targets.first
50
116
  end
51
117
 
52
- def display_options
53
- global_options = Lookbook.config.preview_display_options
54
- global_options.deep_merge(fetch_config(:display_options, {}))
55
- end
118
+ # @api private
119
+ alias_method :component, :render_target
56
120
 
57
- def layout
58
- preview_class.instance_variable_get(:@layout)
59
- end
121
+ # @!endgroup
60
122
 
61
- def url_path
123
+ # @!group URLs
124
+
125
+ # The inspector URL path for this preview
126
+ #
127
+ # @return [String] URL path
128
+ def inspect_path
62
129
  lookbook_inspect_path(lookup_path)
63
130
  end
64
131
 
132
+ alias_method :url_path, :inspect_path
133
+
134
+ # The standalone preview URL path for this preview
135
+ #
136
+ # @return [String] URL path
137
+ def preview_path
138
+ lookbook_preview_path(lookup_path)
139
+ end
140
+
141
+ # @!endgroup
142
+
143
+ # The name of the associated preview class
144
+ #
145
+ # @return [String] Class name
65
146
  def preview_class_name
66
147
  preview_class.name
67
148
  end
68
149
 
150
+ # @api private
151
+ def file_name_base
152
+ @_file_name_slug ||= file_name(true).gsub(/(_component_preview|component_preview|preview)$/, "")
153
+ end
154
+
155
+ # @api private
156
+ def display_options
157
+ global_options = Lookbook.config.preview_display_options
158
+ global_options.deep_merge(fetch_config(:display_options, {}))
159
+ end
160
+
161
+ # @api private
162
+ def layout
163
+ preview_class.instance_variable_get(:@layout)
164
+ end
165
+
166
+ # @api private
69
167
  def guess_render_targets
70
168
  [preview_class.name.chomp("Preview").constantize&.name]
71
169
  rescue
72
170
  []
73
171
  end
74
172
 
75
- alias_method :components, :render_targets
76
- alias_method :component, :render_target
77
- alias_method :examples, :scenarios
78
- alias_method :example, :scenario
79
-
80
- deprecate examples: :scenarios, deprecator: Deprecation
81
- deprecate example: :scenario, deprecator: Deprecation
82
-
83
173
  protected
84
174
 
85
175
  def load_scenarios
86
- return scenario_entities unless code_object.groups.any?
176
+ code_object.groups.any? ? grouped_scenario_entities : scenario_entities
177
+ end
87
178
 
88
- scenario_entities.group_by(&:group).flat_map do |group_name, grouped_scenarios|
89
- group_name.nil? ? grouped_scenarios : ScenarioGroupEntity.new(group_name.presence || label.pluralize, grouped_scenarios, self)
179
+ def grouped_scenario_entities
180
+ scenarios = []
181
+ scenario_entities.each.with_index(1) do |entity, i|
182
+ if entity.group.nil?
183
+ entity.default_priority = i
184
+ scenarios << entity
185
+ else
186
+ group_name = entity.group.presence || entity.parent.name.pluralize
187
+ group = scenarios.find do |s|
188
+ s.is_a?(ScenarioGroupEntity) && s.name == Utils.name(group_name)
189
+ end
190
+
191
+ if group
192
+ group.add_scenario(entity)
193
+ else
194
+ group = ScenarioGroupEntity.new(group_name, [entity], self)
195
+ group.default_priority = i
196
+ scenarios << group
197
+ end
198
+ end
90
199
  end
200
+ scenarios
91
201
  end
92
202
 
93
203
  def scenario_entities
@@ -2,49 +2,87 @@ module Lookbook
2
2
  # Represents the component or view template partial
3
3
  # that is being rendered in a preview.
4
4
  #
5
- # @ignore methods
6
5
  # @api public
7
6
  class RenderableEntity < Entity
8
7
  include LocatableEntity
9
8
 
9
+ # @api private
10
10
  def initialize(identifier)
11
11
  @identifier = identifier
12
12
  @base_directories = Engine.component_paths
13
13
  @file_path = PathUtils.determine_full_path(component? ? "#{name}.rb" : identifier, @base_directories)
14
14
  unless @file_path && File.exist?(@file_path)
15
- raise LookbookError, "The render target #{@identifier} was not found."
15
+ raise Lookbook::Error, "The render target #{@identifier} was not found."
16
16
  end
17
17
  @lookup_path = PathUtils.to_lookup_path(relative_file_path)
18
18
  end
19
19
 
20
- def component_class
21
- @identifier.constantize if component?
22
- end
20
+ # @!group Identity
23
21
 
22
+ # Parameter-safe entity name.
23
+ #
24
+ # @return [String]
24
25
  def name
25
26
  component? ? component_class.name.underscore : @identifier
26
27
  end
27
28
 
28
- def template_file_path
29
- component? ? Dir.glob("#{directory_path}/#{file_name(true)}.*.erb").first : file_path
29
+ # Entity type identifier.
30
+ # Returns `:component` for components and
31
+ # `:template` for view templates/partials.
32
+ #
33
+ # @return [Symbol] The entity type
34
+ def type
35
+ component? ? :component : :template
36
+ end
37
+
38
+ # @!endgroup
39
+
40
+ # @!group Components
41
+
42
+ # The associated component class (if the renderable is a component).
43
+ #
44
+ # @return [Class] The component class
45
+ def component_class
46
+ @identifier.constantize if component?
30
47
  end
31
48
 
49
+ # Whether or not the renderable is a component without a template.
50
+ #
51
+ # @return [Boolean] True if no template is present
32
52
  def inline?
33
53
  component? ? template_file_path.present? : false
34
54
  end
35
55
 
56
+ # Whether or not the renderable is a component
57
+ # (as opposed to a view template/partial).
58
+ #
59
+ # @return [Boolean] True if component
36
60
  def component?
37
61
  @identifier.first.upcase == @identifier.first &&
38
62
  !@identifier.include?(".") &&
39
63
  !@identifier.include?("/")
40
64
  end
41
65
 
66
+ # Whether or not the renderable is a view template/partial
67
+ # (as opposed to a component).
68
+ #
69
+ # @return [Boolean] True if component
42
70
  def template?
43
71
  !component?
44
72
  end
45
73
 
46
- def type
47
- component? ? :component : :template
74
+ # @!endgroup
75
+
76
+ # @!group Paths
77
+
78
+ # Full path to the component template (if present)
79
+ # or view template/partial.
80
+ #
81
+ # @return [Class] The component class
82
+ def template_file_path
83
+ component? ? Dir.glob("#{directory_path}/#{file_name(true)}.*.erb").first : file_path
48
84
  end
85
+
86
+ # @!endgroup
49
87
  end
50
88
  end
@@ -1,31 +1,42 @@
1
1
  module Lookbook
2
- # Represents a **rendered** preview scenario
2
+ # Represents a **rendered** preview scenario.
3
+ #
4
+ # Extends ScenarioEntity with an `output`
5
+ # method that returns the rendered HTML output.
6
+ #
7
+ # See the [ScenarioEntity](./scenario_entity) docs for other available methods.
3
8
  #
4
- # @ignore methods
5
9
  # @api public
6
10
  class RenderedScenarioEntity
7
11
  delegate_missing_to :scenario
8
12
 
13
+ # @api private
9
14
  attr_reader :scenario
10
15
 
16
+ # @api private
11
17
  def initialize(scenario, output, params)
12
18
  @scenario = scenario
13
19
  @params = params
14
20
  @output = output
15
21
  end
16
22
 
23
+ # HTML output of the rendered scenario.
24
+ #
25
+ # @return [String] Rendered output
26
+ def output
27
+ @_output ||= CodeBeautifier.call(@output)
28
+ end
29
+
30
+ # @api private
17
31
  def source
18
32
  has_custom_template? ? template_source(template) : scenario.source
19
33
  end
20
34
 
35
+ # @api private
21
36
  def source_lang
22
37
  has_custom_template? ? template_lang(template) : scenario.source_lang
23
38
  end
24
39
 
25
- def output
26
- @_output ||= CodeBeautifier.call(@output)
27
- end
28
-
29
40
  protected
30
41
 
31
42
  attr_reader :params
@@ -1,7 +1,6 @@
1
1
  module Lookbook
2
2
  # Represents a preview scenario method within a preview class
3
3
  #
4
- # @ignore methods
5
4
  # @api public
6
5
  class ScenarioEntity < Entity
7
6
  include InspectableEntity
@@ -10,8 +9,15 @@ module Lookbook
10
9
 
11
10
  delegate :group, to: :code_object
12
11
 
12
+ # The preview that this scenario belongs to.
13
+ #
14
+ # @return [PreviewEntity] The parent preview entity
13
15
  attr_reader :preview
14
16
 
17
+ # @api private
18
+ alias_method :parent, :preview
19
+
20
+ # @api private
15
21
  def initialize(code_object, preview, priority: nil)
16
22
  @code_object = code_object
17
23
  @preview = preview
@@ -19,61 +25,116 @@ module Lookbook
19
25
  @lookup_path = "#{parent.lookup_path}/#{name}"
20
26
  end
21
27
 
28
+ # @!group Identity
29
+
30
+ # Human-readable unique scenario ID
31
+ #
32
+ # @return [String] The ID
22
33
  def id
23
34
  @_id ||= Utils.id(fetch_config(:id) { "#{parent.id}-#{code_object.name}" })
24
35
  end
25
36
 
37
+ # Parameter-safe scenario name.
38
+ #
39
+ # @return [String] The name
26
40
  def name
27
41
  @_name ||= Utils.name(code_object.name)
28
42
  end
29
43
 
44
+ # Entity type identifier.
45
+ # Returns `:scenario` for scenarios.
46
+ #
47
+ # @return [Symbol] The entity type
48
+ def type
49
+ :scenario
50
+ end
51
+
52
+ # @!endgroup
53
+
54
+ # @!group Display options
55
+
56
+ # Display options hash.
57
+ #
58
+ # Contains all display options defined via the `@display` tag
59
+ # merged with any globally-defined options.
60
+ #
61
+ # @return [Hash] The resolved display options
30
62
  def display_options
31
63
  parent.display_options.merge(fetch_config(:display_options, {}))
32
64
  end
33
65
 
66
+ # @!endgroup
67
+
68
+ # @!group Render Targets
69
+
70
+ # @api private
34
71
  def render_targets
35
72
  @_render_targets ||= RenderTargetCollection.new(load_render_targets)
36
73
  end
37
74
 
75
+ # @api private
76
+ alias_method :components, :render_targets
77
+
78
+ # The item (component or partial) that the scenario renders.
79
+ #
80
+ # The render target is guessed where possible (based on the preview class name)
81
+ # but can also be manually specified using the `@renders` tag.
82
+ #
83
+ # @example :ruby
84
+ # "This scenario renders: #{scenario.render_target.label}"
85
+ #
86
+ # @return [RenderableEntity] The render target
38
87
  def render_target
39
88
  render_targets.first
40
89
  end
41
90
 
91
+ alias_method :component, :render_target
92
+
93
+ # @!endgroup
94
+
95
+ # @!group URLs
96
+
97
+ # The inspector URL path for this preview
98
+ #
99
+ # @return [String] URL path
100
+ def inspect_path
101
+ lookbook_inspect_path(lookup_path)
102
+ end
103
+
104
+ # The standalone preview URL path for this preview
105
+ #
106
+ # @return [String] URL path
107
+ def preview_path
108
+ lookbook_preview_path(lookup_path)
109
+ end
110
+
111
+ # @!endgroup
112
+
113
+ # @api private
42
114
  def scenarios
43
115
  [self]
44
116
  end
45
117
 
118
+ # @api private
46
119
  def template_source(template_path)
47
120
  source_path = template_file_path(template_path)
48
121
  source_path ? File.read(source_path) : nil
49
122
  end
50
123
 
124
+ # @api private
51
125
  def template_lang(template_path)
52
126
  path = template_file_path(template_path)
53
127
  Lookbook::Lang.guess(path) || Lookbook::Lang.find(:html)
54
128
  end
55
129
 
130
+ # @api private
56
131
  def search_terms
57
132
  [parent.label, label]
58
133
  end
59
134
 
60
- def url_path
61
- lookbook_inspect_path(lookup_path)
62
- end
63
-
64
- def preview_path
65
- lookbook_preview_path(lookup_path)
66
- end
67
-
68
- def type
69
- :scenario
70
- end
71
-
72
- alias_method :parent, :preview
73
- alias_method :components, :render_targets
74
- alias_method :component, :render_target
75
135
  alias_method :lang, :source_lang
76
136
  alias_method :examples, :scenarios
137
+ alias_method :url_path, :inspect_path
77
138
 
78
139
  deprecate lang: :source_lang, deprecator: Deprecation
79
140
  deprecate examples: :scenarios, deprecator: Deprecation
@@ -1,13 +1,28 @@
1
1
  module Lookbook
2
2
  # Represents a group of preview scenarios within a preview class
3
3
  #
4
- # @ignore methods
5
4
  # @api public
6
5
  class ScenarioGroupEntity < Entity
7
6
  include NavigableEntity
8
7
 
9
- attr_reader :scenarios, :preview
8
+ # @!group Scenarios
10
9
 
10
+ # Returns all scenarios within the group.
11
+ #
12
+ # @return [Array<ScenarioEntity>] All scenarios
13
+ attr_reader :scenarios
14
+
15
+ # @!endgroup
16
+
17
+ # The preview that this scenario belongs to.
18
+ #
19
+ # @return [PreviewEntity] The parent preview entity
20
+ attr_reader :preview
21
+
22
+ # @api private
23
+ alias_method :parent, :preview
24
+
25
+ # @api private
11
26
  def initialize(name, scenarios, preview)
12
27
  @name = Utils.name(name)
13
28
  @scenarios = ScenarioCollection.new(scenarios)
@@ -15,6 +30,14 @@ module Lookbook
15
30
  @lookup_path = "#{parent.lookup_path}/#{@name}"
16
31
  end
17
32
 
33
+ # @!group Display options
34
+
35
+ # Display options hash.
36
+ #
37
+ # Contains all display options defined via the `@display` tag
38
+ # for each scenario in the group, merged with any globally-defined options.
39
+ #
40
+ # @return [Hash] The resolved display options
18
41
  def display_options
19
42
  merged = {}
20
43
  scenarios.to_a.reverse.map do |scenario|
@@ -23,35 +46,90 @@ module Lookbook
23
46
  merged
24
47
  end
25
48
 
49
+ # @!endgroup
50
+
51
+ # @!group Render Targets
52
+
53
+ # Collection of render targets (components or partials)
54
+ # from each of the scenarios in the group.
55
+ #
56
+ # Render targets are guessed where possible (based on the preview class name)
57
+ # but can also be manually specified using the `@renders` tag.
58
+ #
59
+ # @example :ruby
60
+ # "This group renders: #{group.render_targets.map(&:label).join(", ")}"
61
+ #
62
+ # @return [Array<RenderableEntity>] Render target entities
26
63
  def render_targets
27
64
  @_render_targets ||= RenderTargetCollection.new(scenarios.flat_map(&:render_targets).uniq(&:lookup_path))
28
65
  end
29
66
 
30
- def search_terms
31
- [parent.label, label]
32
- end
67
+ alias_method :components, :render_targets
68
+
69
+ # @!endgroup
70
+
71
+ # @!group Annotations
33
72
 
73
+ # Collection of tags from each of the scenarios in the group.
74
+ # Can be filtered by tag name by providing the name as an argument.
75
+ #
76
+ # @example :ruby
77
+ # all_tags = group.tags
78
+ # display_tags = group.tags(:display)
79
+ #
80
+ # @param tag_name [Symbol] Optional tag type to filter by
81
+ # @return [Array<YardTag>] Array of tags
34
82
  def tags(tag_name = nil)
35
83
  scenarios.flat_map { |scenario| scenario.tags(tag_name) }
36
84
  end
37
85
 
86
+ # @api private
38
87
  def tag(tag_name = nil)
39
88
  tags(tag_name).first
40
89
  end
41
90
 
42
- def url_path
91
+ # @!endgroup
92
+
93
+ # @!group URLs
94
+
95
+ # The inspector URL path for this scenario group
96
+ #
97
+ # @return [String] URL path
98
+ def inspect_path
43
99
  lookbook_inspect_path(lookup_path)
44
100
  end
45
101
 
102
+ # The standalone preview URL path for this scenario group
103
+ #
104
+ # @return [String] URL path
46
105
  def preview_path
47
106
  lookbook_preview_path(lookup_path)
48
107
  end
49
108
 
109
+ alias_method :url_path, :inspect_path
110
+
111
+ # @!endgroup
112
+
113
+ # @!group Identity
114
+
115
+ # Entity type identifier.
116
+ # Returns `:scenario_group` for scenario groups.
117
+ #
118
+ # @return [Symbol] The entity type
50
119
  def type
51
- :group
120
+ :scenario_group
52
121
  end
53
122
 
54
- alias_method :parent, :preview
55
- alias_method :components, :render_targets
123
+ # @!endgroup
124
+
125
+ # @api private
126
+ def search_terms
127
+ [parent.label, label]
128
+ end
129
+
130
+ # @api private
131
+ def add_scenario(scenario)
132
+ @scenarios.add(scenario)
133
+ end
56
134
  end
57
135
  end
@@ -5,14 +5,39 @@ module Lookbook
5
5
  module PageHelper
6
6
  # Returns the URL path to a page.
7
7
  #
8
+ # @api private
8
9
  # @param id [String, PageEntity] The id or PageEntity instance to generate a URL path for
9
10
  def page_path(id)
10
11
  page = id.is_a?(PageEntity) ? id : Engine.pages.find_by_id(id)
11
12
  if page.present?
12
- lookbook_page_path page.lookup_path
13
+ page.docs_path
13
14
  else
14
15
  Lookbook.logger.warn "Could not find page with id ':#{id}'"
15
16
  end
16
17
  end
18
+
19
+ # Render a 'live' embed of a component preview.
20
+ #
21
+ # If no scenario name is provided then the default (first) preview
22
+ # scenario will be rendered in the embed.
23
+ #
24
+ # @param preview [String] Name of the preview class to embed
25
+ # @param scenario [String] Example method name
26
+ # @param opts [Hash] Options hash
27
+ def embed(preview, scenario = nil, **opts)
28
+ preview_entity = if preview.is_a?(Symbol)
29
+ Engine.previews.find_by_path(preview)
30
+ else
31
+ Engine.previews.find_by_preview_class(preview)
32
+ end
33
+ scenario_entity = scenario ? preview_entity&.scenario(scenario) : preview_entity&.default_scenario
34
+ opts[:actions] ||= ["inspect", "open"]
35
+
36
+ lookbook_render Embed::Component.new(
37
+ scenario: scenario_entity,
38
+ params: opts.fetch(:params, {}),
39
+ options: opts.except(:params)
40
+ )
41
+ end
17
42
  end
18
43
  end