lookbook 2.1.1 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (412) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -10
  3. data/app/components/lookbook/header/component.html.erb +1 -1
  4. data/app/components/lookbook/icon/component.html.erb +4 -2
  5. data/app/components/lookbook/icon/component.rb +0 -16
  6. data/app/components/lookbook/nav/entity/component.html.erb +3 -0
  7. data/app/components/lookbook/nav/item/component.js +8 -10
  8. data/app/controllers/lookbook/application_controller.rb +11 -1
  9. data/app/controllers/lookbook/embeds_controller.rb +1 -1
  10. data/app/controllers/lookbook/page_controller.rb +1 -1
  11. data/app/controllers/lookbook/previews_controller.rb +1 -1
  12. data/app/helpers/lookbook/application_helper.rb +10 -0
  13. data/app/views/layouts/lookbook/application.html.erb +102 -82
  14. data/app/views/layouts/lookbook/embed.html.erb +29 -17
  15. data/app/views/lookbook/index.html.erb +21 -11
  16. data/assets/icons/activity-square.svg +1 -0
  17. data/assets/icons/ampersand.svg +1 -0
  18. data/assets/icons/ampersands.svg +1 -0
  19. data/assets/icons/antenna.svg +1 -0
  20. data/assets/icons/app-window.svg +1 -0
  21. data/assets/icons/archive-x.svg +1 -0
  22. data/assets/icons/area-chart.svg +1 -0
  23. data/assets/icons/arrow-big-down-dash.svg +1 -0
  24. data/assets/icons/arrow-big-left-dash.svg +1 -0
  25. data/assets/icons/arrow-big-right-dash.svg +1 -0
  26. data/assets/icons/arrow-big-up-dash.svg +1 -0
  27. data/assets/icons/arrow-down-0-1.svg +1 -0
  28. data/assets/icons/arrow-down-1-0.svg +1 -0
  29. data/assets/icons/arrow-down-a-z.svg +1 -0
  30. data/assets/icons/arrow-down-from-line.svg +1 -0
  31. data/assets/icons/arrow-down-left-from-circle.svg +1 -0
  32. data/assets/icons/arrow-down-left-square.svg +1 -0
  33. data/assets/icons/arrow-down-narrow-wide.svg +1 -0
  34. data/assets/icons/arrow-down-right-from-circle.svg +1 -0
  35. data/assets/icons/arrow-down-right-square.svg +1 -0
  36. data/assets/icons/arrow-down-square.svg +1 -0
  37. data/assets/icons/arrow-down-to-dot.svg +1 -0
  38. data/assets/icons/arrow-down-to-line.svg +1 -0
  39. data/assets/icons/arrow-down-up.svg +1 -0
  40. data/assets/icons/arrow-down-wide-narrow.svg +1 -0
  41. data/assets/icons/arrow-down-z-a.svg +1 -0
  42. data/assets/icons/arrow-left-from-line.svg +1 -0
  43. data/assets/icons/arrow-left-square.svg +1 -0
  44. data/assets/icons/arrow-left-to-line.svg +1 -0
  45. data/assets/icons/arrow-right-from-line.svg +1 -0
  46. data/assets/icons/arrow-right-left.svg +1 -0
  47. data/assets/icons/arrow-right-square.svg +1 -0
  48. data/assets/icons/arrow-right-to-line.svg +1 -0
  49. data/assets/icons/arrow-up-0-1.svg +1 -0
  50. data/assets/icons/arrow-up-1-0.svg +1 -0
  51. data/assets/icons/arrow-up-a-z.svg +1 -0
  52. data/assets/icons/arrow-up-from-dot.svg +1 -0
  53. data/assets/icons/arrow-up-from-line.svg +1 -0
  54. data/assets/icons/arrow-up-left-from-circle.svg +1 -0
  55. data/assets/icons/arrow-up-left-square.svg +1 -0
  56. data/assets/icons/arrow-up-narrow-wide.svg +1 -0
  57. data/assets/icons/arrow-up-right-from-circle.svg +1 -0
  58. data/assets/icons/arrow-up-right-square.svg +1 -0
  59. data/assets/icons/arrow-up-square.svg +1 -0
  60. data/assets/icons/arrow-up-to-line.svg +1 -0
  61. data/assets/icons/arrow-up-wide-narrow.svg +1 -0
  62. data/assets/icons/arrow-up-z-a.svg +1 -0
  63. data/assets/icons/arrows-up-from-line.svg +1 -0
  64. data/assets/icons/atom.svg +1 -0
  65. data/assets/icons/badge-alert.svg +1 -0
  66. data/assets/icons/badge-cent.svg +1 -0
  67. data/assets/icons/badge-check.svg +1 -0
  68. data/assets/icons/badge-dollar-sign.svg +1 -0
  69. data/assets/icons/badge-euro.svg +1 -0
  70. data/assets/icons/badge-help.svg +1 -0
  71. data/assets/icons/badge-indian-rupee.svg +1 -0
  72. data/assets/icons/badge-info.svg +1 -0
  73. data/assets/icons/badge-japanese-yen.svg +1 -0
  74. data/assets/icons/badge-minus.svg +1 -0
  75. data/assets/icons/badge-percent.svg +1 -0
  76. data/assets/icons/badge-plus.svg +1 -0
  77. data/assets/icons/badge-pound-sterling.svg +1 -0
  78. data/assets/icons/badge-russian-ruble.svg +1 -0
  79. data/assets/icons/badge-swiss-franc.svg +1 -0
  80. data/assets/icons/badge-x.svg +1 -0
  81. data/assets/icons/badge.svg +1 -0
  82. data/assets/icons/ban.svg +1 -0
  83. data/assets/icons/bar-chart-big.svg +1 -0
  84. data/assets/icons/bar-chart-horizontal-big.svg +1 -0
  85. data/assets/icons/bell-dot.svg +1 -0
  86. data/assets/icons/biohazard.svg +1 -0
  87. data/assets/icons/blocks.svg +1 -0
  88. data/assets/icons/book-copy.svg +1 -0
  89. data/assets/icons/book-down.svg +1 -0
  90. data/assets/icons/book-key.svg +1 -0
  91. data/assets/icons/book-lock.svg +1 -0
  92. data/assets/icons/book-marked.svg +1 -0
  93. data/assets/icons/book-minus.svg +1 -0
  94. data/assets/icons/book-plus.svg +1 -0
  95. data/assets/icons/book-template.svg +1 -0
  96. data/assets/icons/book-up-2.svg +1 -0
  97. data/assets/icons/book-up.svg +1 -0
  98. data/assets/icons/book-x.svg +1 -0
  99. data/assets/icons/bookmark-check.svg +1 -0
  100. data/assets/icons/bookmark-x.svg +1 -0
  101. data/assets/icons/boom-box.svg +1 -0
  102. data/assets/icons/braces.svg +1 -0
  103. data/assets/icons/brackets.svg +1 -0
  104. data/assets/icons/brain-circuit.svg +1 -0
  105. data/assets/icons/brain-cog.svg +1 -0
  106. data/assets/icons/brain.svg +1 -0
  107. data/assets/icons/bring-to-front.svg +1 -0
  108. data/assets/icons/bug-off.svg +1 -0
  109. data/assets/icons/bug-play.svg +1 -0
  110. data/assets/icons/bus-front.svg +1 -0
  111. data/assets/icons/cable-car.svg +1 -0
  112. data/assets/icons/cable.svg +1 -0
  113. data/assets/icons/cake-slice.svg +1 -0
  114. data/assets/icons/candlestick-chart.svg +1 -0
  115. data/assets/icons/candy-cane.svg +1 -0
  116. data/assets/icons/car-front.svg +1 -0
  117. data/assets/icons/car-taxi-front.svg +1 -0
  118. data/assets/icons/case-lower.svg +1 -0
  119. data/assets/icons/case-sensitive.svg +1 -0
  120. data/assets/icons/case-upper.svg +1 -0
  121. data/assets/icons/cassette-tape.svg +1 -0
  122. data/assets/icons/castle.svg +1 -0
  123. data/assets/icons/chevron-down-circle.svg +1 -0
  124. data/assets/icons/chevron-down-square.svg +1 -0
  125. data/assets/icons/chevron-left-circle.svg +1 -0
  126. data/assets/icons/chevron-left-square.svg +1 -0
  127. data/assets/icons/chevron-right-circle.svg +1 -0
  128. data/assets/icons/chevron-right-square.svg +1 -0
  129. data/assets/icons/chevron-up-circle.svg +1 -0
  130. data/assets/icons/chevron-up-square.svg +1 -0
  131. data/assets/icons/church.svg +1 -0
  132. data/assets/icons/circle-dashed.svg +1 -0
  133. data/assets/icons/circle-dollar-sign.svg +1 -0
  134. data/assets/icons/circle-dot-dashed.svg +1 -0
  135. data/assets/icons/circle-equal.svg +1 -0
  136. data/assets/icons/circle-off.svg +1 -0
  137. data/assets/icons/circle-slash-2.svg +1 -0
  138. data/assets/icons/circle-slash.svg +1 -0
  139. data/assets/icons/circuit-board.svg +1 -0
  140. data/assets/icons/clipboard-paste.svg +1 -0
  141. data/assets/icons/club.svg +1 -0
  142. data/assets/icons/combine.svg +1 -0
  143. data/assets/icons/computer.svg +1 -0
  144. data/assets/icons/contact-2.svg +1 -0
  145. data/assets/icons/container.svg +1 -0
  146. data/assets/icons/copy-check.svg +1 -0
  147. data/assets/icons/copy-minus.svg +1 -0
  148. data/assets/icons/copy-plus.svg +1 -0
  149. data/assets/icons/copy-slash.svg +1 -0
  150. data/assets/icons/copy-x.svg +1 -0
  151. data/assets/icons/database-zap.svg +1 -0
  152. data/assets/icons/dessert.svg +1 -0
  153. data/assets/icons/disc-2.svg +1 -0
  154. data/assets/icons/disc-3.svg +1 -0
  155. data/assets/icons/donut.svg +1 -0
  156. data/assets/icons/door-closed.svg +1 -0
  157. data/assets/icons/door-open.svg +1 -0
  158. data/assets/icons/dot.svg +1 -0
  159. data/assets/icons/drama.svg +1 -0
  160. data/assets/icons/ferris-wheel.svg +1 -0
  161. data/assets/icons/file-code-2.svg +1 -0
  162. data/assets/icons/file-stack.svg +1 -0
  163. data/assets/icons/fish-symbol.svg +1 -0
  164. data/assets/icons/fold-horizontal.svg +1 -0
  165. data/assets/icons/fold-vertical.svg +1 -0
  166. data/assets/icons/folder-dot.svg +1 -0
  167. data/assets/icons/folder-git-2.svg +1 -0
  168. data/assets/icons/folder-git.svg +1 -0
  169. data/assets/icons/folder-kanban.svg +1 -0
  170. data/assets/icons/folder-open-dot.svg +1 -0
  171. data/assets/icons/folder-root.svg +1 -0
  172. data/assets/icons/folder-sync.svg +1 -0
  173. data/assets/icons/gallery-horizontal-end.svg +1 -0
  174. data/assets/icons/gallery-horizontal.svg +1 -0
  175. data/assets/icons/gallery-thumbnails.svg +1 -0
  176. data/assets/icons/gallery-vertical-end.svg +1 -0
  177. data/assets/icons/gallery-vertical.svg +1 -0
  178. data/assets/icons/gantt-chart-square.svg +1 -0
  179. data/assets/icons/gantt-chart.svg +1 -0
  180. data/assets/icons/gauge-circle.svg +1 -0
  181. data/assets/icons/goal.svg +1 -0
  182. data/assets/icons/grid-2x2.svg +1 -0
  183. data/assets/icons/grid-3x3.svg +1 -0
  184. data/assets/icons/group.svg +1 -0
  185. data/assets/icons/hard-drive-download.svg +1 -0
  186. data/assets/icons/hard-drive-upload.svg +1 -0
  187. data/assets/icons/hdmi-port.svg +1 -0
  188. data/assets/icons/hotel.svg +1 -0
  189. data/assets/icons/iteration-ccw.svg +1 -0
  190. data/assets/icons/iteration-cw.svg +1 -0
  191. data/assets/icons/kanban-square-dashed.svg +1 -0
  192. data/assets/icons/kanban-square.svg +1 -0
  193. data/assets/icons/kanban.svg +1 -0
  194. data/assets/icons/key-round.svg +1 -0
  195. data/assets/icons/key-square.svg +1 -0
  196. data/assets/icons/layout-panel-left.svg +1 -0
  197. data/assets/icons/layout-panel-top.svg +1 -0
  198. data/assets/icons/leafy-green.svg +1 -0
  199. data/assets/icons/ligature.svg +1 -0
  200. data/assets/icons/list-filter.svg +1 -0
  201. data/assets/icons/list-restart.svg +1 -0
  202. data/assets/icons/list-todo.svg +1 -0
  203. data/assets/icons/list-tree.svg +1 -0
  204. data/assets/icons/lollipop.svg +1 -0
  205. data/assets/icons/m-square.svg +1 -0
  206. data/assets/icons/mailbox.svg +1 -0
  207. data/assets/icons/memory-stick.svg +1 -0
  208. data/assets/icons/menu-square.svg +1 -0
  209. data/assets/icons/merge.svg +1 -0
  210. data/assets/icons/message-square-dashed.svg +1 -0
  211. data/assets/icons/message-square-plus.svg +1 -0
  212. data/assets/icons/messages-square.svg +1 -0
  213. data/assets/icons/monitor-check.svg +1 -0
  214. data/assets/icons/monitor-dot.svg +1 -0
  215. data/assets/icons/monitor-down.svg +1 -0
  216. data/assets/icons/monitor-pause.svg +1 -0
  217. data/assets/icons/monitor-play.svg +1 -0
  218. data/assets/icons/monitor-stop.svg +1 -0
  219. data/assets/icons/monitor-up.svg +1 -0
  220. data/assets/icons/monitor-x.svg +1 -0
  221. data/assets/icons/moon-star.svg +1 -0
  222. data/assets/icons/mouse-pointer-square-dashed.svg +1 -0
  223. data/assets/icons/mouse-pointer-square.svg +1 -0
  224. data/assets/icons/move-down-left.svg +1 -0
  225. data/assets/icons/move-down-right.svg +1 -0
  226. data/assets/icons/move-down.svg +1 -0
  227. data/assets/icons/move-left.svg +1 -0
  228. data/assets/icons/move-right.svg +1 -0
  229. data/assets/icons/move-up-left.svg +1 -0
  230. data/assets/icons/move-up-right.svg +1 -0
  231. data/assets/icons/move-up.svg +1 -0
  232. data/assets/icons/orbit.svg +1 -0
  233. data/assets/icons/panel-bottom-close.svg +1 -0
  234. data/assets/icons/panel-bottom-inactive.svg +1 -0
  235. data/assets/icons/panel-bottom-open.svg +1 -0
  236. data/assets/icons/panel-bottom.svg +1 -0
  237. data/assets/icons/panel-left-close.svg +1 -0
  238. data/assets/icons/panel-left-inactive.svg +1 -0
  239. data/assets/icons/panel-left-open.svg +1 -0
  240. data/assets/icons/panel-left.svg +1 -0
  241. data/assets/icons/panel-right-close.svg +1 -0
  242. data/assets/icons/panel-right-inactive.svg +1 -0
  243. data/assets/icons/panel-right-open.svg +1 -0
  244. data/assets/icons/panel-right.svg +1 -0
  245. data/assets/icons/panel-top-close.svg +1 -0
  246. data/assets/icons/panel-top-inactive.svg +1 -0
  247. data/assets/icons/panel-top-open.svg +1 -0
  248. data/assets/icons/panel-top.svg +1 -0
  249. data/assets/icons/parentheses.svg +1 -0
  250. data/assets/icons/parking-circle-off.svg +1 -0
  251. data/assets/icons/parking-circle.svg +1 -0
  252. data/assets/icons/parking-meter.svg +1 -0
  253. data/assets/icons/parking-square-off.svg +1 -0
  254. data/assets/icons/parking-square.svg +1 -0
  255. data/assets/icons/paw-print.svg +1 -0
  256. data/assets/icons/pc-case.svg +1 -0
  257. data/assets/icons/pen-line.svg +1 -0
  258. data/assets/icons/pen-square.svg +1 -0
  259. data/assets/icons/pen.svg +1 -0
  260. data/assets/icons/pencil-line.svg +1 -0
  261. data/assets/icons/pencil-ruler.svg +1 -0
  262. data/assets/icons/percent-circle.svg +1 -0
  263. data/assets/icons/percent-diamond.svg +1 -0
  264. data/assets/icons/percent-square.svg +1 -0
  265. data/assets/icons/pi-square.svg +1 -0
  266. data/assets/icons/pi.svg +1 -0
  267. data/assets/icons/pilcrow-square.svg +1 -0
  268. data/assets/icons/plane-landing.svg +1 -0
  269. data/assets/icons/plane-takeoff.svg +1 -0
  270. data/assets/icons/play-square.svg +1 -0
  271. data/assets/icons/plug-zap-2.svg +1 -0
  272. data/assets/icons/pocket-knife.svg +1 -0
  273. data/assets/icons/popcorn.svg +1 -0
  274. data/assets/icons/popsicle.svg +1 -0
  275. data/assets/icons/presentation.svg +1 -0
  276. data/assets/icons/projector.svg +1 -0
  277. data/assets/icons/rabbit.svg +1 -0
  278. data/assets/icons/radar.svg +1 -0
  279. data/assets/icons/radiation.svg +1 -0
  280. data/assets/icons/radio-tower.svg +1 -0
  281. data/assets/icons/rail-symbol.svg +1 -0
  282. data/assets/icons/rainbow.svg +1 -0
  283. data/assets/icons/rat.svg +1 -0
  284. data/assets/icons/ratio.svg +1 -0
  285. data/assets/icons/receipt.svg +1 -0
  286. data/assets/icons/redo-dot.svg +1 -0
  287. data/assets/icons/refresh-ccw-dot.svg +1 -0
  288. data/assets/icons/refresh-cw-off.svg +1 -0
  289. data/assets/icons/repeat-2.svg +1 -0
  290. data/assets/icons/replace-all.svg +1 -0
  291. data/assets/icons/replace.svg +1 -0
  292. data/assets/icons/roller-coaster.svg +1 -0
  293. data/assets/icons/rows.svg +1 -0
  294. data/assets/icons/satellite-dish.svg +1 -0
  295. data/assets/icons/satellite.svg +1 -0
  296. data/assets/icons/save-all.svg +1 -0
  297. data/assets/icons/scatter-chart.svg +1 -0
  298. data/assets/icons/school-2.svg +1 -0
  299. data/assets/icons/school.svg +1 -0
  300. data/assets/icons/scissors-line-dashed.svg +1 -0
  301. data/assets/icons/scissors-square-dashed-bottom.svg +1 -0
  302. data/assets/icons/scissors-square.svg +1 -0
  303. data/assets/icons/scroll-text.svg +1 -0
  304. data/assets/icons/search-check.svg +1 -0
  305. data/assets/icons/search-code.svg +1 -0
  306. data/assets/icons/search-slash.svg +1 -0
  307. data/assets/icons/search-x.svg +1 -0
  308. data/assets/icons/send-horizontal.svg +1 -0
  309. data/assets/icons/send-to-back.svg +1 -0
  310. data/assets/icons/shapes.svg +1 -0
  311. data/assets/icons/shell.svg +1 -0
  312. data/assets/icons/shield-ban.svg +1 -0
  313. data/assets/icons/shield-ellipsis.svg +1 -0
  314. data/assets/icons/shield-half.svg +1 -0
  315. data/assets/icons/shield-minus.svg +1 -0
  316. data/assets/icons/shield-plus.svg +1 -0
  317. data/assets/icons/shield-question.svg +1 -0
  318. data/assets/icons/shield-x.svg +1 -0
  319. data/assets/icons/ship-wheel.svg +1 -0
  320. data/assets/icons/shopping-basket.svg +1 -0
  321. data/assets/icons/sigma-square.svg +1 -0
  322. data/assets/icons/snail.svg +1 -0
  323. data/assets/icons/space.svg +1 -0
  324. data/assets/icons/spade.svg +1 -0
  325. data/assets/icons/sparkle.svg +1 -0
  326. data/assets/icons/sparkles.svg +1 -0
  327. data/assets/icons/speech.svg +1 -0
  328. data/assets/icons/spell-check-2.svg +1 -0
  329. data/assets/icons/spell-check.svg +1 -0
  330. data/assets/icons/split.svg +1 -0
  331. data/assets/icons/spray-can.svg +1 -0
  332. data/assets/icons/square-asterisk.svg +1 -0
  333. data/assets/icons/square-code.svg +1 -0
  334. data/assets/icons/square-dashed-bottom-code.svg +1 -0
  335. data/assets/icons/square-dashed-bottom.svg +1 -0
  336. data/assets/icons/square-dot.svg +1 -0
  337. data/assets/icons/square-equal.svg +1 -0
  338. data/assets/icons/square-slash.svg +1 -0
  339. data/assets/icons/square-stack.svg +1 -0
  340. data/assets/icons/squirrel.svg +1 -0
  341. data/assets/icons/step-back.svg +1 -0
  342. data/assets/icons/step-forward.svg +1 -0
  343. data/assets/icons/store.svg +1 -0
  344. data/assets/icons/table-properties.svg +1 -0
  345. data/assets/icons/tablet-smartphone.svg +1 -0
  346. data/assets/icons/tally-1.svg +1 -0
  347. data/assets/icons/tally-2.svg +1 -0
  348. data/assets/icons/tally-3.svg +1 -0
  349. data/assets/icons/tally-4.svg +1 -0
  350. data/assets/icons/tally-5.svg +1 -0
  351. data/assets/icons/test-tube-2.svg +1 -0
  352. data/assets/icons/test-tube.svg +1 -0
  353. data/assets/icons/test-tubes.svg +1 -0
  354. data/assets/icons/text-quote.svg +1 -0
  355. data/assets/icons/text-select.svg +1 -0
  356. data/assets/icons/text.svg +1 -0
  357. data/assets/icons/theater.svg +1 -0
  358. data/assets/icons/touchpad-off.svg +1 -0
  359. data/assets/icons/touchpad.svg +1 -0
  360. data/assets/icons/tractor.svg +1 -0
  361. data/assets/icons/traffic-cone.svg +1 -0
  362. data/assets/icons/train-front-tunnel.svg +1 -0
  363. data/assets/icons/train-front.svg +1 -0
  364. data/assets/icons/train-track.svg +1 -0
  365. data/assets/icons/tram-front.svg +1 -0
  366. data/assets/icons/triangle-right.svg +1 -0
  367. data/assets/icons/turtle.svg +1 -0
  368. data/assets/icons/undo-dot.svg +1 -0
  369. data/assets/icons/unfold-horizontal.svg +1 -0
  370. data/assets/icons/unfold-vertical.svg +1 -0
  371. data/assets/icons/ungroup.svg +1 -0
  372. data/assets/icons/unplug.svg +1 -0
  373. data/assets/icons/user-2.svg +1 -0
  374. data/assets/icons/user-check-2.svg +1 -0
  375. data/assets/icons/user-circle-2.svg +1 -0
  376. data/assets/icons/user-circle.svg +1 -0
  377. data/assets/icons/user-cog-2.svg +1 -0
  378. data/assets/icons/user-minus-2.svg +1 -0
  379. data/assets/icons/user-plus-2.svg +1 -0
  380. data/assets/icons/user-square-2.svg +1 -0
  381. data/assets/icons/user-square.svg +1 -0
  382. data/assets/icons/user-x-2.svg +1 -0
  383. data/assets/icons/users-2.svg +1 -0
  384. data/assets/icons/variable.svg +1 -0
  385. data/assets/icons/videotape.svg +1 -0
  386. data/assets/icons/wallet-2.svg +1 -0
  387. data/assets/icons/wallet-cards.svg +1 -0
  388. data/assets/icons/wallpaper.svg +1 -0
  389. data/assets/icons/warehouse.svg +1 -0
  390. data/assets/icons/whole-word.svg +1 -0
  391. data/assets/icons/workflow.svg +1 -0
  392. data/assets/js/app.js +7 -4
  393. data/assets/js/helpers/request.js +2 -2
  394. data/config/app.yml +6 -1
  395. data/lib/lookbook/entities/page_entity.rb +1 -1
  396. data/lib/lookbook/preview.rb +1 -0
  397. data/lib/lookbook/preview_controller_actions.rb +18 -15
  398. data/lib/lookbook/services/data/resolvers/data_resolver.rb +1 -1
  399. data/lib/lookbook/services/templates/action_view_config_handler.rb +50 -0
  400. data/lib/lookbook/stores/config_store.rb +4 -0
  401. data/lib/lookbook/theme.rb +2 -6
  402. data/lib/lookbook/version.rb +1 -1
  403. data/public/lookbook-assets/css/lookbook.css +538 -395
  404. data/public/lookbook-assets/css/lookbook.css.map +1 -1
  405. data/public/lookbook-assets/img/lucide-sprite.svg +1 -1
  406. data/public/lookbook-assets/js/iframe.js.map +1 -1
  407. data/public/lookbook-assets/js/index.js +979 -827
  408. data/public/lookbook-assets/js/index.js.map +1 -1
  409. data/public/lookbook-assets/js/lookbook-core.js +38 -1
  410. data/public/lookbook-assets/js/lookbook.js +121 -84
  411. metadata +383 -7
  412. data/lib/lookbook/services/templates/action_view_annotations_handler.rb +0 -21
@@ -1,4 +1,39 @@
1
1
  (() => {
2
+
3
+ var $parcel$global = globalThis;
4
+
5
+ var $parcel$modules = {};
6
+ var $parcel$inits = {};
7
+
8
+ var parcelRequire = $parcel$global["parcelRequirea49c"];
9
+
10
+ if (parcelRequire == null) {
11
+ parcelRequire = function(id) {
12
+ if (id in $parcel$modules) {
13
+ return $parcel$modules[id].exports;
14
+ }
15
+ if (id in $parcel$inits) {
16
+ var init = $parcel$inits[id];
17
+ delete $parcel$inits[id];
18
+ var module = {id: id, exports: {}};
19
+ $parcel$modules[id] = module;
20
+ init.call(module.exports, module, module.exports);
21
+ return module.exports;
22
+ }
23
+ var err = new Error("Cannot find module '" + id + "'");
24
+ err.code = 'MODULE_NOT_FOUND';
25
+ throw err;
26
+ };
27
+
28
+ parcelRequire.register = function register(id, init) {
29
+ $parcel$inits[id] = init;
30
+ };
31
+
32
+ $parcel$global["parcelRequirea49c"] = parcelRequire;
33
+ }
34
+
35
+ var parcelRegister = parcelRequire.register;
36
+ parcelRegister("6RQZy", function(module, exports) {
2
37
  window.Lookbook = window.Lookbook || {};
3
38
  window.Lookbook.initEmbeds = $5000cc5d1e9e824a$var$initEmbeds;
4
39
  const $5000cc5d1e9e824a$var$embedUrlPrefix = "embed";
@@ -53,7 +88,7 @@ function $5000cc5d1e9e824a$var$createIframe(attrs) {
53
88
  function $5000cc5d1e9e824a$var$buildSrc(attrs) {
54
89
  const appPath = $5000cc5d1e9e824a$var$attrValue(attrs, "app") || $5000cc5d1e9e824a$var$guessBasePath();
55
90
  const props = {};
56
- $5000cc5d1e9e824a$var$permittedAttrs(attrs).forEach(({ name: name , value: value })=>{
91
+ $5000cc5d1e9e824a$var$permittedAttrs(attrs).forEach(({ name: name, value: value })=>{
57
92
  name = name.replace("-", "_").toLowerCase();
58
93
  props[name] = value;
59
94
  });
@@ -82,6 +117,8 @@ function $5000cc5d1e9e824a$var$guessBasePath() {
82
117
  }
83
118
  document.addEventListener("DOMContentLoaded", ()=>$5000cc5d1e9e824a$var$initEmbeds());
84
119
 
120
+ });
85
121
 
122
+ parcelRequire("6RQZy");
86
123
 
87
124
  })();
@@ -1,4 +1,124 @@
1
1
  (() => {
2
+
3
+ var $parcel$global = globalThis;
4
+
5
+ var $parcel$modules = {};
6
+ var $parcel$inits = {};
7
+
8
+ var parcelRequire = $parcel$global["parcelRequirea49c"];
9
+
10
+ if (parcelRequire == null) {
11
+ parcelRequire = function(id) {
12
+ if (id in $parcel$modules) {
13
+ return $parcel$modules[id].exports;
14
+ }
15
+ if (id in $parcel$inits) {
16
+ var init = $parcel$inits[id];
17
+ delete $parcel$inits[id];
18
+ var module = {id: id, exports: {}};
19
+ $parcel$modules[id] = module;
20
+ init.call(module.exports, module, module.exports);
21
+ return module.exports;
22
+ }
23
+ var err = new Error("Cannot find module '" + id + "'");
24
+ err.code = 'MODULE_NOT_FOUND';
25
+ throw err;
26
+ };
27
+
28
+ parcelRequire.register = function register(id, init) {
29
+ $parcel$inits[id] = init;
30
+ };
31
+
32
+ $parcel$global["parcelRequirea49c"] = parcelRequire;
33
+ }
34
+
35
+ var parcelRegister = parcelRequire.register;
36
+ parcelRegister("6RQZy", function(module, exports) {
37
+ window.Lookbook = window.Lookbook || {};
38
+ window.Lookbook.initEmbeds = $5000cc5d1e9e824a$var$initEmbeds;
39
+ const $5000cc5d1e9e824a$var$embedUrlPrefix = "embed";
40
+ const $5000cc5d1e9e824a$var$whiteListedAttributes = [
41
+ "preview",
42
+ "scenario",
43
+ "panels",
44
+ "actions",
45
+ "param-*"
46
+ ];
47
+ function $5000cc5d1e9e824a$var$initEmbeds(root = document) {
48
+ if (typeof window.iFrameResize !== "function") {
49
+ console.error("Lookbook embeds require the 'iframe-resizer' library to be available. Skipping embed instantiation.");
50
+ return;
51
+ }
52
+ if (typeof root === "string") root = document.querySelector(root);
53
+ if (!root) return console.error("Could not initialize Lookbook embeds. Root node not found.");
54
+ const embeds = Array.from(root.querySelectorAll("lookbook-embed"));
55
+ embeds.forEach((embed)=>{
56
+ const attrs = Array.from(embed.attributes);
57
+ const wrapper = $5000cc5d1e9e824a$var$createWrapper();
58
+ const iframe = $5000cc5d1e9e824a$var$createIframe(attrs);
59
+ wrapper.appendChild(iframe);
60
+ embed.replaceWith(wrapper);
61
+ });
62
+ window.iFrameResize({
63
+ checkOrigin: false
64
+ }, "[data-lookbook-embed-iframe]");
65
+ }
66
+ function $5000cc5d1e9e824a$var$createWrapper() {
67
+ const wrapper = document.createElement("div");
68
+ wrapper.setAttribute("data-lookbook-embed", "");
69
+ wrapper.classList.add("lookbook-embed");
70
+ return wrapper;
71
+ }
72
+ function $5000cc5d1e9e824a$var$createIframe(attrs) {
73
+ const src = $5000cc5d1e9e824a$var$buildSrc(attrs);
74
+ const id = $5000cc5d1e9e824a$var$attrValue(attrs, "id");
75
+ const styles = $5000cc5d1e9e824a$var$attrValue(attrs, "style");
76
+ const classes = $5000cc5d1e9e824a$var$attrValue(attrs, "class", "").split(" ").map((c)=>c.trim()).filter((c)=>c.length);
77
+ const iframe = document.createElement("iframe");
78
+ iframe.src = src;
79
+ if (id) iframe.id = id;
80
+ iframe.setAttribute("frameborder", 0);
81
+ iframe.setAttribute("data-lookbook-embed-iframe", "");
82
+ if (classes.length) iframe.classList.add(...classes);
83
+ if (styles) iframe.style.cssText = styles;
84
+ iframe.style.width = "100%";
85
+ iframe.style.transition = "height 0.3s";
86
+ return iframe;
87
+ }
88
+ function $5000cc5d1e9e824a$var$buildSrc(attrs) {
89
+ const appPath = $5000cc5d1e9e824a$var$attrValue(attrs, "app") || $5000cc5d1e9e824a$var$guessBasePath();
90
+ const props = {};
91
+ $5000cc5d1e9e824a$var$permittedAttrs(attrs).forEach(({ name: name, value: value })=>{
92
+ name = name.replace("-", "_").toLowerCase();
93
+ props[name] = value;
94
+ });
95
+ return encodeURI([
96
+ appPath,
97
+ $5000cc5d1e9e824a$var$embedUrlPrefix
98
+ ].join("/") + `?props=${JSON.stringify(props)}`);
99
+ }
100
+ function $5000cc5d1e9e824a$var$attrValue(attrs, name, fallback = null) {
101
+ const attr = attrs.find((attr)=>attr.name === name);
102
+ return attr ? attr.value : fallback;
103
+ }
104
+ function $5000cc5d1e9e824a$var$permittedAttrs(attrs) {
105
+ return attrs.filter((attr)=>{
106
+ return $5000cc5d1e9e824a$var$whiteListedAttributes.find((key)=>{
107
+ const name = attr.name;
108
+ return key === name || key.includes("*") && name.startsWith(key.replace("*", ""));
109
+ });
110
+ });
111
+ }
112
+ function $5000cc5d1e9e824a$var$guessBasePath() {
113
+ const script = document.currentScript || document.querySelector('script[src*="lookbook.js"]');
114
+ const scriptSrc = script.src;
115
+ if (scriptSrc && scriptSrc.includes("lookbook-assets")) return scriptSrc.split("?")[0].replace("lookbook-assets/js/lookbook.js", "lookbook");
116
+ return `//${location.host}/lookbook`;
117
+ }
118
+ document.addEventListener("DOMContentLoaded", ()=>$5000cc5d1e9e824a$var$initEmbeds());
119
+
120
+ });
121
+
2
122
  var $5180433265c858be$exports = {};
3
123
  /*
4
124
  * File: iframeResizer.js
@@ -839,89 +959,6 @@ var $5180433265c858be$exports = {};
839
959
  })();
840
960
 
841
961
 
842
- window.Lookbook = window.Lookbook || {};
843
- window.Lookbook.initEmbeds = $5000cc5d1e9e824a$var$initEmbeds;
844
- const $5000cc5d1e9e824a$var$embedUrlPrefix = "embed";
845
- const $5000cc5d1e9e824a$var$whiteListedAttributes = [
846
- "preview",
847
- "scenario",
848
- "panels",
849
- "actions",
850
- "param-*"
851
- ];
852
- function $5000cc5d1e9e824a$var$initEmbeds(root = document) {
853
- if (typeof window.iFrameResize !== "function") {
854
- console.error("Lookbook embeds require the 'iframe-resizer' library to be available. Skipping embed instantiation.");
855
- return;
856
- }
857
- if (typeof root === "string") root = document.querySelector(root);
858
- if (!root) return console.error("Could not initialize Lookbook embeds. Root node not found.");
859
- const embeds = Array.from(root.querySelectorAll("lookbook-embed"));
860
- embeds.forEach((embed)=>{
861
- const attrs = Array.from(embed.attributes);
862
- const wrapper = $5000cc5d1e9e824a$var$createWrapper();
863
- const iframe = $5000cc5d1e9e824a$var$createIframe(attrs);
864
- wrapper.appendChild(iframe);
865
- embed.replaceWith(wrapper);
866
- });
867
- window.iFrameResize({
868
- checkOrigin: false
869
- }, "[data-lookbook-embed-iframe]");
870
- }
871
- function $5000cc5d1e9e824a$var$createWrapper() {
872
- const wrapper = document.createElement("div");
873
- wrapper.setAttribute("data-lookbook-embed", "");
874
- wrapper.classList.add("lookbook-embed");
875
- return wrapper;
876
- }
877
- function $5000cc5d1e9e824a$var$createIframe(attrs) {
878
- const src = $5000cc5d1e9e824a$var$buildSrc(attrs);
879
- const id = $5000cc5d1e9e824a$var$attrValue(attrs, "id");
880
- const styles = $5000cc5d1e9e824a$var$attrValue(attrs, "style");
881
- const classes = $5000cc5d1e9e824a$var$attrValue(attrs, "class", "").split(" ").map((c)=>c.trim()).filter((c)=>c.length);
882
- const iframe = document.createElement("iframe");
883
- iframe.src = src;
884
- if (id) iframe.id = id;
885
- iframe.setAttribute("frameborder", 0);
886
- iframe.setAttribute("data-lookbook-embed-iframe", "");
887
- if (classes.length) iframe.classList.add(...classes);
888
- if (styles) iframe.style.cssText = styles;
889
- iframe.style.width = "100%";
890
- iframe.style.transition = "height 0.3s";
891
- return iframe;
892
- }
893
- function $5000cc5d1e9e824a$var$buildSrc(attrs) {
894
- const appPath = $5000cc5d1e9e824a$var$attrValue(attrs, "app") || $5000cc5d1e9e824a$var$guessBasePath();
895
- const props = {};
896
- $5000cc5d1e9e824a$var$permittedAttrs(attrs).forEach(({ name: name , value: value })=>{
897
- name = name.replace("-", "_").toLowerCase();
898
- props[name] = value;
899
- });
900
- return encodeURI([
901
- appPath,
902
- $5000cc5d1e9e824a$var$embedUrlPrefix
903
- ].join("/") + `?props=${JSON.stringify(props)}`);
904
- }
905
- function $5000cc5d1e9e824a$var$attrValue(attrs, name, fallback = null) {
906
- const attr = attrs.find((attr)=>attr.name === name);
907
- return attr ? attr.value : fallback;
908
- }
909
- function $5000cc5d1e9e824a$var$permittedAttrs(attrs) {
910
- return attrs.filter((attr)=>{
911
- return $5000cc5d1e9e824a$var$whiteListedAttributes.find((key)=>{
912
- const name = attr.name;
913
- return key === name || key.includes("*") && name.startsWith(key.replace("*", ""));
914
- });
915
- });
916
- }
917
- function $5000cc5d1e9e824a$var$guessBasePath() {
918
- const script = document.currentScript || document.querySelector('script[src*="lookbook.js"]');
919
- const scriptSrc = script.src;
920
- if (scriptSrc && scriptSrc.includes("lookbook-assets")) return scriptSrc.split("?")[0].replace("lookbook-assets/js/lookbook.js", "lookbook");
921
- return `//${location.host}/lookbook`;
922
- }
923
- document.addEventListener("DOMContentLoaded", ()=>$5000cc5d1e9e824a$var$initEmbeds());
924
-
925
-
962
+ parcelRequire("6RQZy");
926
963
 
927
964
  })();