im_reader 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/Gemfile +9 -0
  4. data/Gemfile.lock +44 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +110 -0
  7. data/Rakefile +8 -0
  8. data/app/assets/fonts/im_reader/icons.ttf +0 -0
  9. data/app/assets/fonts/im_reader/icons.woff +0 -0
  10. data/app/assets/fonts/im_reader/icons.woff2 +0 -0
  11. data/app/assets/images/im_reader/logo_colore.svg +26 -0
  12. data/app/assets/javascripts/im_reader/epub.min.js +1 -0
  13. data/app/assets/javascripts/im_reader/jszip.min.js +13 -0
  14. data/app/assets/javascripts/im_reader/reader.js +144 -0
  15. data/app/assets/javascripts/im_reader/semantic/progress.js +793 -0
  16. data/app/assets/javascripts/im_reader/semantic/sidebar.js +1022 -0
  17. data/app/assets/javascripts/im_reader/semantic-ui.js +2 -0
  18. data/app/assets/stylesheets/im_reader/reader.scss +127 -0
  19. data/app/assets/stylesheets/im_reader/semantic/button.scss +3172 -0
  20. data/app/assets/stylesheets/im_reader/semantic/colors.scss +15 -0
  21. data/app/assets/stylesheets/im_reader/semantic/container.scss +154 -0
  22. data/app/assets/stylesheets/im_reader/semantic/grid.scss +2029 -0
  23. data/app/assets/stylesheets/im_reader/semantic/header.scss +719 -0
  24. data/app/assets/stylesheets/im_reader/semantic/icon.scss +2587 -0
  25. data/app/assets/stylesheets/im_reader/semantic/item.scss +482 -0
  26. data/app/assets/stylesheets/im_reader/semantic/menu.scss +2054 -0
  27. data/app/assets/stylesheets/im_reader/semantic/progress.scss +517 -0
  28. data/app/controllers/im_reader/application_controller.rb +8 -0
  29. data/app/controllers/im_reader/epub_reader_controller.rb +62 -0
  30. data/app/views/im_reader/epub_reader/show.html.erb +38 -0
  31. data/app/views/layouts/im_reader/epub_reader.html.erb +23 -0
  32. data/config/locales/de.yml +10 -0
  33. data/config/locales/en.yml +10 -0
  34. data/config/locales/es.yml +10 -0
  35. data/config/locales/fr.yml +10 -0
  36. data/config/locales/pt.yml +10 -0
  37. data/config/routes.rb +4 -0
  38. data/im_reader.gemspec +33 -0
  39. data/lib/im_reader/engine.rb +32 -0
  40. data/lib/im_reader/version.rb +5 -0
  41. data/lib/im_reader.rb +8 -0
  42. data/sig/im_reader.rbs +4 -0
  43. data/spec/im_reader_spec.rb +11 -0
  44. data/spec/spec_helper.rb +15 -0
  45. metadata +115 -0
@@ -0,0 +1,482 @@
1
+ /*!
2
+ * # Semantic UI 2.1.4 - Item
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2015 Contributors
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+
13
+ /*******************************
14
+ Standard
15
+ *******************************/
16
+
17
+
18
+ /*--------------
19
+ Item
20
+ ---------------*/
21
+
22
+ .ui.items > .item {
23
+ display: -webkit-box;
24
+ display: -webkit-flex;
25
+ display: -ms-flexbox;
26
+ display: flex;
27
+ margin: 1em 0em;
28
+ width: 100%;
29
+ min-height: 0px;
30
+ background: transparent;
31
+ padding: 0em;
32
+ border: none;
33
+ border-radius: 0rem;
34
+ box-shadow: none;
35
+ -webkit-transition: box-shadow 0.1s ease;
36
+ transition: box-shadow 0.1s ease;
37
+ z-index: '';
38
+ }
39
+ .ui.items > .item a {
40
+ cursor: pointer;
41
+ }
42
+
43
+ /*--------------
44
+ Items
45
+ ---------------*/
46
+
47
+ .ui.items {
48
+ margin: 1.5em 0em;
49
+ }
50
+ .ui.items:first-child {
51
+ margin-top: 0em !important;
52
+ }
53
+ .ui.items:last-child {
54
+ margin-bottom: 0em !important;
55
+ }
56
+
57
+ /*--------------
58
+ Item
59
+ ---------------*/
60
+
61
+ .ui.items > .item:after {
62
+ display: block;
63
+ content: ' ';
64
+ height: 0px;
65
+ clear: both;
66
+ overflow: hidden;
67
+ visibility: hidden;
68
+ }
69
+ .ui.items > .item:first-child {
70
+ margin-top: 0em;
71
+ }
72
+ .ui.items > .item:last-child {
73
+ margin-bottom: 0em;
74
+ }
75
+
76
+ /*--------------
77
+ Images
78
+ ---------------*/
79
+
80
+ .ui.items > .item > .image {
81
+ position: relative;
82
+ -webkit-box-flex: 0;
83
+ -webkit-flex: 0 0 auto;
84
+ -ms-flex: 0 0 auto;
85
+ flex: 0 0 auto;
86
+ display: block;
87
+ float: none;
88
+ margin: 0em;
89
+ padding: 0em;
90
+ max-height: '';
91
+ -webkit-align-self: top;
92
+ -ms-flex-item-align: top;
93
+ align-self: top;
94
+ }
95
+ .ui.items > .item > .image > img {
96
+ display: block;
97
+ width: 100%;
98
+ height: auto;
99
+ border-radius: 0.125rem;
100
+ border: none;
101
+ }
102
+ .ui.items > .item > .image:only-child > img {
103
+ border-radius: 0rem;
104
+ }
105
+
106
+ /*--------------
107
+ Content
108
+ ---------------*/
109
+
110
+ .ui.items > .item > .content {
111
+ display: block;
112
+ -webkit-box-flex: 1;
113
+ -webkit-flex: 1 1 auto;
114
+ -ms-flex: 1 1 auto;
115
+ flex: 1 1 auto;
116
+ background: none;
117
+ margin: 0em;
118
+ padding: 0em;
119
+ box-shadow: none;
120
+ font-size: 1em;
121
+ border: none;
122
+ border-radius: 0em;
123
+ }
124
+ .ui.items > .item > .content:after {
125
+ display: block;
126
+ content: ' ';
127
+ height: 0px;
128
+ clear: both;
129
+ overflow: hidden;
130
+ visibility: hidden;
131
+ }
132
+ .ui.items > .item > .image + .content {
133
+ min-width: 0;
134
+ width: auto;
135
+ display: block;
136
+ margin-left: 0em;
137
+ -webkit-align-self: top;
138
+ -ms-flex-item-align: top;
139
+ align-self: top;
140
+ padding-left: 1.5em;
141
+ }
142
+ .ui.items > .item > .content > .header {
143
+ display: inline-block;
144
+ margin: -0.21425em 0em 0em;
145
+ font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
146
+ font-weight: bold;
147
+ color: rgba(0, 0, 0, 0.85);
148
+ }
149
+
150
+ /* Default Header Size */
151
+ .ui.items > .item > .content > .header:not(.ui) {
152
+ font-size: 1.28571429em;
153
+ }
154
+
155
+ /*--------------
156
+ Floated
157
+ ---------------*/
158
+
159
+ .ui.items > .item [class*="left floated"] {
160
+ float: left;
161
+ }
162
+ .ui.items > .item [class*="right floated"] {
163
+ float: right;
164
+ }
165
+
166
+ /*--------------
167
+ Content Image
168
+ ---------------*/
169
+
170
+ .ui.items > .item .content img {
171
+ -webkit-align-self: middle;
172
+ -ms-flex-item-align: middle;
173
+ align-self: middle;
174
+ width: '';
175
+ }
176
+ .ui.items > .item img.avatar,
177
+ .ui.items > .item .avatar img {
178
+ width: '';
179
+ height: '';
180
+ border-radius: 500rem;
181
+ }
182
+
183
+ /*--------------
184
+ Description
185
+ ---------------*/
186
+
187
+ .ui.items > .item > .content > .description {
188
+ margin-top: 0.6em;
189
+ max-width: auto;
190
+ font-size: 1em;
191
+ line-height: 1.4285em;
192
+ color: rgba(0, 0, 0, 0.87);
193
+ }
194
+
195
+ /*--------------
196
+ Paragraph
197
+ ---------------*/
198
+
199
+ .ui.items > .item > .content p {
200
+ margin: 0em 0em 0.5em;
201
+ }
202
+ .ui.items > .item > .content p:last-child {
203
+ margin-bottom: 0em;
204
+ }
205
+
206
+ /*--------------
207
+ Meta
208
+ ---------------*/
209
+
210
+ .ui.items > .item .meta {
211
+ margin: 0.5em 0em 0.5em;
212
+ font-size: 1em;
213
+ line-height: 1em;
214
+ color: rgba(0, 0, 0, 0.6);
215
+ }
216
+ .ui.items > .item .meta * {
217
+ margin-right: 0.3em;
218
+ }
219
+ .ui.items > .item .meta :last-child {
220
+ margin-right: 0em;
221
+ }
222
+ .ui.items > .item .meta [class*="right floated"] {
223
+ margin-right: 0em;
224
+ margin-left: 0.3em;
225
+ }
226
+
227
+ /*--------------
228
+ Links
229
+ ---------------*/
230
+
231
+
232
+ /* Generic */
233
+ .ui.items > .item > .content a:not(.ui) {
234
+ color: '';
235
+ -webkit-transition: color 0.1s ease;
236
+ transition: color 0.1s ease;
237
+ }
238
+ .ui.items > .item > .content a:not(.ui):hover {
239
+ color: '';
240
+ }
241
+
242
+ /* Header */
243
+ .ui.items > .item > .content > a.header {
244
+ color: rgba(0, 0, 0, 0.85);
245
+ }
246
+ .ui.items > .item > .content > a.header:hover {
247
+ color: #1e70bf;
248
+ }
249
+
250
+ /* Meta */
251
+ .ui.items > .item .meta > a:not(.ui) {
252
+ color: rgba(0, 0, 0, 0.4);
253
+ }
254
+ .ui.items > .item .meta > a:not(.ui):hover {
255
+ color: rgba(0, 0, 0, 0.87);
256
+ }
257
+
258
+ /*--------------
259
+ Labels
260
+ ---------------*/
261
+
262
+
263
+ /*-----Star----- */
264
+
265
+
266
+ /* Icon */
267
+ .ui.items > .item > .content .favorite.icon {
268
+ cursor: pointer;
269
+ opacity: 0.75;
270
+ -webkit-transition: color 0.1s ease;
271
+ transition: color 0.1s ease;
272
+ }
273
+ .ui.items > .item > .content .favorite.icon:hover {
274
+ opacity: 1;
275
+ color: #ffb70a;
276
+ }
277
+ .ui.items > .item > .content .active.favorite.icon {
278
+ color: #ffe623;
279
+ }
280
+
281
+ /*-----Like----- */
282
+
283
+
284
+ /* Icon */
285
+ .ui.items > .item > .content .like.icon {
286
+ cursor: pointer;
287
+ opacity: 0.75;
288
+ -webkit-transition: color 0.1s ease;
289
+ transition: color 0.1s ease;
290
+ }
291
+ .ui.items > .item > .content .like.icon:hover {
292
+ opacity: 1;
293
+ color: #ff2733;
294
+ }
295
+ .ui.items > .item > .content .active.like.icon {
296
+ color: #ff2733;
297
+ }
298
+
299
+ /*----------------
300
+ Extra Content
301
+ -----------------*/
302
+
303
+ .ui.items > .item .extra {
304
+ display: block;
305
+ position: relative;
306
+ background: none;
307
+ margin: 0.5rem 0em 0em;
308
+ width: 100%;
309
+ padding: 0em 0em 0em;
310
+ top: 0em;
311
+ left: 0em;
312
+ color: rgba(0, 0, 0, 0.4);
313
+ box-shadow: none;
314
+ -webkit-transition: color 0.1s ease;
315
+ transition: color 0.1s ease;
316
+ border-top: none;
317
+ }
318
+ .ui.items > .item .extra > * {
319
+ margin: 0.25rem 0.5rem 0.25rem 0em;
320
+ }
321
+ .ui.items > .item .extra > [class*="right floated"] {
322
+ margin: 0.25rem 0em 0.25rem 0.5rem;
323
+ }
324
+ .ui.items > .item .extra:after {
325
+ display: block;
326
+ content: ' ';
327
+ height: 0px;
328
+ clear: both;
329
+ overflow: hidden;
330
+ visibility: hidden;
331
+ }
332
+
333
+
334
+ /*******************************
335
+ Responsive
336
+ *******************************/
337
+
338
+
339
+ /* Default Image Width */
340
+ .ui.items > .item > .image:not(.ui) {
341
+ width: 175px;
342
+ }
343
+
344
+ /* Tablet Only */
345
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
346
+ .ui.items > .item {
347
+ margin: 1em 0em;
348
+ }
349
+ .ui.items > .item > .image:not(.ui) {
350
+ width: 150px;
351
+ }
352
+ .ui.items > .item > .image + .content {
353
+ display: block;
354
+ padding: 0em 0em 0em 1em;
355
+ }
356
+ }
357
+
358
+ /* Mobily Only */
359
+ @media only screen and (max-width: 767px) {
360
+ .ui.items > .item {
361
+ -webkit-box-orient: vertical;
362
+ -webkit-box-direction: normal;
363
+ -webkit-flex-direction: column;
364
+ -ms-flex-direction: column;
365
+ flex-direction: column;
366
+ margin: 2em 0em;
367
+ }
368
+ .ui.items > .item > .image {
369
+ display: block;
370
+ margin-left: auto;
371
+ margin-right: auto;
372
+ }
373
+ .ui.items > .item > .image,
374
+ .ui.items > .item > .image > img {
375
+ max-width: 100% !important;
376
+ width: auto !important;
377
+ max-height: 250px !important;
378
+ }
379
+ .ui.items > .item > .image + .content {
380
+ display: block;
381
+ padding: 1.5em 0em 0em;
382
+ }
383
+ }
384
+
385
+
386
+ /*******************************
387
+ Variations
388
+ *******************************/
389
+
390
+
391
+ /*-------------------
392
+ Aligned
393
+ --------------------*/
394
+
395
+ .ui.items > .item > .image + [class*="top aligned"].content {
396
+ -webkit-align-self: flex-start;
397
+ -ms-flex-item-align: start;
398
+ align-self: flex-start;
399
+ }
400
+ .ui.items > .item > .image + [class*="middle aligned"].content {
401
+ -webkit-align-self: center;
402
+ -ms-flex-item-align: center;
403
+ align-self: center;
404
+ }
405
+ .ui.items > .item > .image + [class*="bottom aligned"].content {
406
+ -webkit-align-self: flex-end;
407
+ -ms-flex-item-align: end;
408
+ align-self: flex-end;
409
+ }
410
+
411
+ /*--------------
412
+ Relaxed
413
+ ---------------*/
414
+
415
+ .ui.relaxed.items > .item {
416
+ margin: 1.5em 0em;
417
+ }
418
+ .ui[class*="very relaxed"].items > .item {
419
+ margin: 2em 0em;
420
+ }
421
+
422
+ /*-------------------
423
+ Divided
424
+ --------------------*/
425
+
426
+ .ui.divided.items > .item {
427
+ border-top: 1px solid rgba(34, 36, 38, 0.15);
428
+ margin: 0em;
429
+ padding: 1em 0em;
430
+ }
431
+ .ui.divided.items > .item:first-child {
432
+ border-top: none;
433
+ margin-top: 0em !important;
434
+ padding-top: 0em !important;
435
+ }
436
+ .ui.divided.items > .item:last-child {
437
+ margin-bottom: 0em !important;
438
+ padding-bottom: 0em !important;
439
+ }
440
+
441
+ /* Relaxed Divided */
442
+ .ui.relaxed.divided.items > .item {
443
+ margin: 0em;
444
+ padding: 1.5em 0em;
445
+ }
446
+ .ui[class*="very relaxed"].divided.items > .item {
447
+ margin: 0em;
448
+ padding: 2em 0em;
449
+ }
450
+
451
+ /*-------------------
452
+ Link
453
+ --------------------*/
454
+
455
+ .ui.items a.item:hover,
456
+ .ui.link.items > .item:hover {
457
+ cursor: pointer;
458
+ }
459
+ .ui.items a.item:hover .content .header,
460
+ .ui.link.items > .item:hover .content .header {
461
+ color: #1e70bf;
462
+ }
463
+
464
+ /*--------------
465
+ Size
466
+ ---------------*/
467
+
468
+ .ui.items > .item {
469
+ font-size: 1em;
470
+ }
471
+
472
+
473
+ /*******************************
474
+ Theme Overrides
475
+ *******************************/
476
+
477
+
478
+
479
+ /*******************************
480
+ User Variable Overrides
481
+ *******************************/
482
+