formagic 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/CONTRIBUTING.md +24 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE.md +21 -0
  6. data/README.md +29 -0
  7. data/Rakefile +1 -0
  8. data/app/assets/images/datedropper/done.png +0 -0
  9. data/app/assets/images/datedropper/done.svg +1 -0
  10. data/app/assets/images/datedropper/next.png +0 -0
  11. data/app/assets/images/datedropper/next.svg +1 -0
  12. data/app/assets/images/datedropper/prev.png +0 -0
  13. data/app/assets/images/datedropper/prev.svg +1 -0
  14. data/app/assets/javascripts/formagic/form.coffee +229 -0
  15. data/app/assets/javascripts/formagic/group.coffee +28 -0
  16. data/app/assets/javascripts/formagic/inputs/checkbox.coffee +83 -0
  17. data/app/assets/javascripts/formagic/inputs/color.coffee +55 -0
  18. data/app/assets/javascripts/formagic/inputs/date.coffee +69 -0
  19. data/app/assets/javascripts/formagic/inputs/datetime.coffee +130 -0
  20. data/app/assets/javascripts/formagic/inputs/document.coffee +0 -0
  21. data/app/assets/javascripts/formagic/inputs/documents.coffee +173 -0
  22. data/app/assets/javascripts/formagic/inputs/documents_reorder.coffee +67 -0
  23. data/app/assets/javascripts/formagic/inputs/file.coffee +114 -0
  24. data/app/assets/javascripts/formagic/inputs/hidden.coffee +57 -0
  25. data/app/assets/javascripts/formagic/inputs/html.coffee +81 -0
  26. data/app/assets/javascripts/formagic/inputs/image.coffee +28 -0
  27. data/app/assets/javascripts/formagic/inputs/list.coffee +154 -0
  28. data/app/assets/javascripts/formagic/inputs/list_reorder.coffee +39 -0
  29. data/app/assets/javascripts/formagic/inputs/list_typeahead.coffee +55 -0
  30. data/app/assets/javascripts/formagic/inputs/markdown.coffee +93 -0
  31. data/app/assets/javascripts/formagic/inputs/password.coffee +32 -0
  32. data/app/assets/javascripts/formagic/inputs/redactor.coffee +53 -0
  33. data/app/assets/javascripts/formagic/inputs/redactor_character.coffee +75 -0
  34. data/app/assets/javascripts/formagic/inputs/redactor_images.coffee +166 -0
  35. data/app/assets/javascripts/formagic/inputs/select.coffee +84 -0
  36. data/app/assets/javascripts/formagic/inputs/select2.coffee +33 -0
  37. data/app/assets/javascripts/formagic/inputs/string.coffee +160 -0
  38. data/app/assets/javascripts/formagic/inputs/text.coffee +43 -0
  39. data/app/assets/javascripts/formagic/inputs/time.coffee +0 -0
  40. data/app/assets/javascripts/formagic.coffee +22 -0
  41. data/app/assets/javascripts/vendor/ace.js +18280 -0
  42. data/app/assets/javascripts/vendor/datedropper.js +1005 -0
  43. data/app/assets/javascripts/vendor/jquery.scrollparent.js +14 -0
  44. data/app/assets/javascripts/vendor/jquery.textarea_autosize.js +55 -0
  45. data/app/assets/javascripts/vendor/jquery.typeahead.js +1782 -0
  46. data/app/assets/javascripts/vendor/marked.js +1272 -0
  47. data/app/assets/javascripts/vendor/mode-html.js +2436 -0
  48. data/app/assets/javascripts/vendor/mode-markdown.js +2820 -0
  49. data/app/assets/javascripts/vendor/moment.js +3083 -0
  50. data/app/assets/javascripts/vendor/redactor.fixedtoolbar.js +107 -0
  51. data/app/assets/javascripts/vendor/select2.js +5274 -0
  52. data/app/assets/stylesheets/formagic/checkbox.scss +8 -0
  53. data/app/assets/stylesheets/formagic/color.scss +12 -0
  54. data/app/assets/stylesheets/formagic/date.scss +37 -0
  55. data/app/assets/stylesheets/formagic/file.scss +29 -0
  56. data/app/assets/stylesheets/formagic/form.scss +36 -0
  57. data/app/assets/stylesheets/formagic/group.scss +22 -0
  58. data/app/assets/stylesheets/formagic/image.scss +19 -0
  59. data/app/assets/stylesheets/formagic/list.scss +39 -0
  60. data/app/assets/stylesheets/formagic/nested-form.scss +23 -0
  61. data/app/assets/stylesheets/formagic/redactor.scss +41 -0
  62. data/app/assets/stylesheets/formagic/select.scss +5 -0
  63. data/app/assets/stylesheets/formagic/select2.scss +95 -0
  64. data/app/assets/stylesheets/formagic/string.scss +14 -0
  65. data/app/assets/stylesheets/formagic/switch.scss +86 -0
  66. data/app/assets/stylesheets/formagic/text.scss +9 -0
  67. data/app/assets/stylesheets/formagic.scss +15 -0
  68. data/app/assets/stylesheets/vendor/datedropper.scss +523 -0
  69. data/app/assets/stylesheets/vendor/select2.scss +258 -0
  70. data/formagic.gemspec +30 -0
  71. data/lib/formagic/engine.rb +5 -0
  72. data/lib/formagic/version.rb +3 -0
  73. data/lib/formagic.rb +5 -0
  74. metadata +146 -0
@@ -0,0 +1,523 @@
1
+ .dd_wrap a,.dd_wrap img,.dd_wrap ul,.dd_wrap li,.dd_wrap div {
2
+ margin:0;
3
+ padding:0;
4
+ list-style:none;
5
+ -webkit-box-sizing: initial !important;
6
+ -moz-box-sizing: initial !important;
7
+ box-sizing: initial !important;
8
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
9
+ font-family: sans-serif;
10
+ }
11
+
12
+ /* wrap */
13
+ .dd_wrap {
14
+ position: absolute;
15
+ -webkit-user-select: none;
16
+ -moz-user-select: none;
17
+ -ms-user-select: none;
18
+ -o-user-select: none;
19
+ user-select: none;
20
+ outline: none;
21
+ width: 100%;
22
+ height: 100%;
23
+ top: 0;
24
+ left: 0;
25
+ display:none;
26
+ z-index:99;
27
+ }
28
+
29
+
30
+ .dd_overlay {
31
+ position: fixed;
32
+ width: 100%;
33
+ height: 100%;
34
+ top: 0;
35
+ left: 0;
36
+ z-index:1;
37
+ }
38
+
39
+ /* window */
40
+ .dd_ {
41
+ border: 2px solid #000000;
42
+ background: #FFF;
43
+ border-radius: 8px;
44
+ -moz-border-radius: 8px;
45
+ -webkit-border-radius: 8px;
46
+ position: absolute;
47
+ width: 100px;
48
+ color:#000000;
49
+ display: none;
50
+ z-index: 10;
51
+ box-shadow: 0 0px 0px 6px rgba(0,0,0,0.05);
52
+ -webkit-box-shadow: 0 0px 0px 6px rgba(0,0,0,0.05);
53
+ -moz-box-shadow: 0 0px 0px 6px rgba(0,0,0,0.05);
54
+ -webkit-animation-fill-mode: both;
55
+ animation-fill-mode: both;
56
+ }
57
+ .dd_:after {
58
+ content: "";
59
+ width: 10px;
60
+ height: 10px;
61
+ transform: rotate(45deg);
62
+ -webkit-transform: rotate(45deg);
63
+ -moz-transform: rotate(45deg);
64
+ -ms-transform: rotate(45deg);
65
+ -sand-transform: rotate(45deg);
66
+ background: #FFF;
67
+ top: -7px;
68
+ left: 50%;
69
+ margin-left: -4px;
70
+ position: absolute;
71
+ border-top: 2px solid #000000;
72
+ border-left: 2px solid #000000;
73
+ border-radius: 1px;
74
+ -moz-border-radius: 1px;
75
+ -webkit-border-radius: 1px;
76
+ }
77
+
78
+ /* swiper */
79
+ .dd_ .dd_sw_ {
80
+ width:100px;
81
+ overflow:hidden;
82
+ position:relative;
83
+ z-index:1;
84
+ }
85
+ .dd_ .dd_sw_ .dd_sl_ {
86
+ overflow-x:scroll;
87
+ overflow-y:hidden;
88
+ }
89
+ .dd_ .dd_sw_ .dd_sl_ ul {
90
+ padding:0;
91
+ margin:0;
92
+ list-style:none;
93
+ color:inherit;
94
+ font-size:inherit;
95
+ }
96
+ .dd_ .dd_sw_ .dd_sl_ li {
97
+ width:100px;
98
+ float:left;
99
+ text-align:center;
100
+ font-weight:bold;
101
+ cursor:pointer;
102
+ }
103
+ .dd_ .dd_sw_ .dd_sl_ li:hover {
104
+ background: rgba(0,0,0,0.04);
105
+ }
106
+
107
+ .dd_ li.dd_sltd_{
108
+ position:relative;
109
+ }
110
+
111
+ /* nativagion buttons */
112
+ .dd_ .dd_sw_:hover .dd_nav_ {
113
+ display:block;
114
+ }
115
+ .dd_ .dd_sw_ .dd_nav_ {
116
+ position:absolute;
117
+ width:24px;
118
+ height:100%;
119
+ color:#ccc;
120
+ font-size:12px;
121
+ text-align:center;
122
+ z-index:11;
123
+ top:0;
124
+ cursor:pointer;
125
+ display:none;
126
+ background-size:12px 12px !important;
127
+ opacity:0.3;
128
+ }
129
+ .dd_ .dd_sw_ .dd_nav_.dd_prev_ {
130
+ left:0;
131
+ background:url(icons/prev.png) center no-repeat;
132
+ }
133
+ .dd_ .dd_sw_ .dd_nav_.dd_next_ {
134
+ right:0;
135
+ background:url(icons/next.png) center no-repeat;
136
+ }
137
+
138
+ /* month */
139
+ .dd_ .dd_m_ {
140
+ font-size:24px;
141
+ -webkit-border-top-left-radius: 8px;
142
+ -webkit-border-top-right-radius: 8px;
143
+ -moz-border-radius-topleft: 8px;
144
+ -moz-border-radius-topright: 8px;
145
+ border-top-left-radius: 8px;
146
+ border-top-right-radius: 8px;
147
+ }
148
+ .dd_ .dd_m_,.dd_ .dd_m_ .dd_sl_ ul,.dd_ .dd_m_ .dd_sl_ ul li {
149
+ height:30px;
150
+ }
151
+ .dd_ .dd_m_ .dd_sl_ ul li {
152
+ line-height:30px;
153
+ }
154
+
155
+ /* day */
156
+ .dd_ .dd_d_ {
157
+ font-size:44px;
158
+ border-bottom: 1px solid rgba(0,0,0,0.1);
159
+ border-top: 1px solid rgba(0,0,0,0.1);
160
+ }
161
+
162
+ .dd_ .dd_d_,.dd_ .dd_d_ .dd_sl_ ul,.dd_ .dd_d_ .dd_sl_ ul li {
163
+ height:60px;
164
+ }
165
+ .dd_ .dd_d_ .dd_sl_ ul li {
166
+ line-height:48px; position:relative;
167
+ }
168
+ .dd_ .dd_d_ .dd_sl_ ul li em {
169
+ position:absolute;
170
+ bottom:2px;
171
+ left:10px;
172
+ right:10px;
173
+ text-align:center;
174
+ font-style:normal;
175
+ font-size:14px;
176
+ line-height:normal;
177
+ color:#a5cedb;
178
+ }
179
+
180
+ .dd_ .dd_all_ {
181
+ position:absolute;
182
+ width:100%;
183
+ height:100%;
184
+ top:0;
185
+ left:0;
186
+ z-index:2;
187
+ color:#000;
188
+ background:#FFF;
189
+ border-radius:8px;
190
+ transform: scale3d(0,0,1);
191
+ -webkit-transform: scale3d(0,0,1);
192
+ -moz-transform: scale3d(0,0,1);
193
+ opacity:0;
194
+ }
195
+ .dd_ .dd_all_.dd_open_ {
196
+ transform: scale3d(1,1,1);
197
+ -webkit-transform: scale3d(1,1,1);
198
+ -moz-transform: scale3d(1,1,1);
199
+ opacity:1;
200
+ }
201
+ .dd_ .dd_all_ ul {
202
+ float:left;
203
+ padding: 1px 4px 4px 4px;
204
+ }
205
+ .dd_ .dd_all_ ul li {
206
+ width: 20.5%;
207
+ float: left;
208
+ margin: 0 2px;
209
+ padding: 3px 0 1px 0;
210
+ font-size: 10pt;
211
+ letter-spacing: -1px;
212
+ line-height: 10pt;
213
+ text-align: center;
214
+ font-weight: 900;
215
+ cursor: pointer;
216
+ border-bottom: 2px solid rgba(0,0,0,0.2);
217
+ color: rgba(0,0,0,0.2);
218
+ }
219
+ .dd_ .dd_all_ ul li.dd_sunday {
220
+ color:#FFF;
221
+ }
222
+ .dd_ .dd_all_ ul li:hover,.dd_ .dd_all_ ul li.dd_sltd_{
223
+ color:#000000;
224
+ border-bottom: 2px solid #000000;
225
+ }
226
+ .dd_ .dd_all_.dd_a_y_ ul li {
227
+ width: 45.5%;
228
+ }
229
+
230
+ /* year */
231
+ .dd_ .dd_y_ {
232
+ font-size:18px;
233
+ position:relative;
234
+ }
235
+ .dd_ .dd_y_,.dd_ .dd_y_ .dd_sl_ ul,.dd_ .dd_y_ .dd_sl_ ul li {
236
+ height:30px;
237
+ }
238
+ .dd_ .dd_y_ .dd_sl_ ul li {
239
+ line-height:30px;
240
+ }
241
+
242
+ /* range */
243
+ .dd_ .dd_r_ {
244
+ padding: 0 2px;
245
+ text-align: center;
246
+ margin: 0 0 6px 0px;
247
+ position:relative;
248
+ clear:both;
249
+ font-size: 0;
250
+ }
251
+ .dd_ .dd_r_:after {
252
+ left: 0;
253
+ right: 0;
254
+ border-bottom: 2px solid rgba(0,0,0,0.1);
255
+ content: "";
256
+ position: absolute;
257
+ top: 8px;
258
+ }
259
+ .dd_ .dd_r_ ul {
260
+ list-style: none;
261
+ margin: 0;
262
+ padding: 0;
263
+ text-align:center;
264
+ }
265
+ .dd_ .dd_r_ ul li {
266
+ display: inline-block;
267
+ border:2px solid;
268
+ position: relative;
269
+ cursor: pointer;
270
+ width:8px;
271
+ height: 8px;
272
+ z-index:1;
273
+ border-radius:50%;
274
+ background:#FFF;
275
+ text-align:center;
276
+ margin: 3px;
277
+ }
278
+ .dd_ .dd_r_ ul li {
279
+ -webkit-transition: all 0.2s cubic-bezier(.7, 0, .175, 1) 0s;
280
+ -moz-transition: all 0.2s cubic-bezier(.7, 0, .175, 1) 0s;
281
+ -ms-transition: all 0.2s cubic-bezier(.7, 0, .175, 1) 0s;
282
+ transition: all 0.2s cubic-bezier(.7, 0, .175, 1) 0s;
283
+ }
284
+ .dd_ .dd_all_ {
285
+ -webkit-transition: all 0.4s cubic-bezier(.7, 0, .175, 1) 0s;
286
+ -moz-transition: all 0.4s cubic-bezier(.7, 0, .175, 1) 0s;
287
+ -ms-transition: all 0.4s cubic-bezier(.7, 0, .175, 1) 0s;
288
+ transition: all 0.4s cubic-bezier(.7, 0, .175, 1) 0s;
289
+ }
290
+
291
+ .dd_ .dd_r_ ul li:hover {
292
+ transform:scale3d(2,2,1);
293
+ -webkit-transform:scale3d(2,2,1);
294
+ -moz-transform:scale3d(2,2,1);
295
+ z-index:11;
296
+ }
297
+ .dd_ .dd_r_ ul li.dd_sltd_ {
298
+ transform: scale3d(1,1,1);
299
+ -webkit-transform: scale3d(1,1,1);
300
+ -moz-transform: scale3d(1,1,1);
301
+
302
+ }
303
+
304
+ .dd_ .dd_d_ .dd_sl_{
305
+ height:80px;
306
+ }
307
+ .dd_ .dd_y_ .dd_sl_,.dd_ .dd_m_ .dd_sl_{
308
+ height:50px;
309
+ }
310
+
311
+ /* sybmit */
312
+ .dd_ .dd_submit {
313
+ -webkit-border-bottom-right-radius: 5px;
314
+ -webkit-border-bottom-left-radius: 5px;
315
+ -moz-border-radius-bottomright: 5px;
316
+ -moz-border-radius-bottomleft: 5px;
317
+ border-bottom-right-radius: 5px;
318
+ border-bottom-left-radius: 5px;
319
+ color:#fff;
320
+ text-align:center; padding:6px 0;
321
+ cursor:pointer;
322
+ height:20px;
323
+ background-image:url(icons/done.png);
324
+ background-position: center;
325
+ background-repeat:no-repeat;
326
+ background-size:16px 16px;
327
+ }
328
+
329
+
330
+
331
+ /* effects */
332
+ @-webkit-keyframes dd_bounce {
333
+ 0% {
334
+ -webkit-transform: scale3d(1, 1, 1);
335
+ transform: scale3d(1, 1, 1);
336
+ }
337
+
338
+ 20% {
339
+ -webkit-transform: scale3d(1.25, 0.75, 1);
340
+ transform: scale3d(1.25, 0.75, 1);
341
+ }
342
+
343
+ 30% {
344
+ -webkit-transform: scale3d(0.75, 1.25, 1);
345
+ transform: scale3d(0.75, 1.25, 1);
346
+ }
347
+
348
+ 60% {
349
+ -webkit-transform: scale3d(1.15, 0.85, 1);
350
+ transform: scale3d(1.15, 0.85, 1);
351
+ }
352
+
353
+ 70% {
354
+ -webkit-transform: scale3d(.95, 1.05, 1);
355
+ transform: scale3d(.95, 1.05, 1);
356
+ }
357
+
358
+ 80% {
359
+ -webkit-transform: scale3d(1.05, .95, 1);
360
+ transform: scale3d(1.05, .95, 1);
361
+ }
362
+
363
+ 100% {
364
+ -webkit-transform: scale3d(1, 1, 1);
365
+ transform: scale3d(1, 1, 1);
366
+ }
367
+ }
368
+
369
+ @keyframes dd_bounce {
370
+ 0% {
371
+ -webkit-transform: scale3d(1, 1, 1);
372
+ transform: scale3d(1, 1, 1);
373
+ }
374
+
375
+ 20% {
376
+ -webkit-transform: scale3d(1.25, 0.75, 1);
377
+ transform: scale3d(1.25, 0.75, 1);
378
+ }
379
+
380
+ 30% {
381
+ -webkit-transform: scale3d(0.75, 1.25, 1);
382
+ transform: scale3d(0.75, 1.25, 1);
383
+ }
384
+
385
+ 60% {
386
+ -webkit-transform: scale3d(1.15, 0.85, 1);
387
+ transform: scale3d(1.15, 0.85, 1);
388
+ }
389
+
390
+ 70% {
391
+ -webkit-transform: scale3d(.95, 1.05, 1);
392
+ transform: scale3d(.95, 1.05, 1);
393
+ }
394
+
395
+ 80% {
396
+ -webkit-transform: scale3d(1.05, .95, 1);
397
+ transform: scale3d(1.05, .95, 1);
398
+ }
399
+
400
+ 100% {
401
+ -webkit-transform: scale3d(1, 1, 1);
402
+ transform: scale3d(1, 1, 1);
403
+ }
404
+ }
405
+
406
+ .dd_.dd_bounce {
407
+ -webkit-animation-name: dd_bounce;
408
+ animation-name: dd_bounce;
409
+ -webkit-animation-duration: 1s;
410
+ animation-duration: 1s;
411
+ }
412
+
413
+ @-webkit-keyframes dd_fadein {
414
+ 0% {opacity: 0;}
415
+ 100% {opacity: 1;}
416
+ }
417
+
418
+ @keyframes dd_fadein {
419
+ 0% {opacity: 0;}
420
+ 100% {opacity: 1;}
421
+ }
422
+
423
+ .dd_.dd_fadein {
424
+ -webkit-animation-name: dd_fadein;
425
+ animation-name: dd_fadein;
426
+ -webkit-animation-duration: .3s;
427
+ animation-duration: .3s;
428
+ }
429
+
430
+ @-webkit-keyframes dd_fadeout {
431
+ 0% {opacity: 1;}
432
+ 100% {opacity: 0;}
433
+ }
434
+
435
+ @keyframes dd_fadeout {
436
+ 0% {opacity: 1;}
437
+ 100% {opacity: 0;}
438
+ }
439
+
440
+ .dd_.dd_fadeout {
441
+ -webkit-animation-name: dd_fadeout;
442
+ animation-name: dd_fadeout;
443
+ -webkit-animation-duration: .3s;
444
+ animation-duration: .3s;
445
+ }
446
+
447
+
448
+ @-webkit-keyframes dd_dropdown {
449
+ 0% {
450
+ opacity: 0;
451
+ -webkit-transform: translate3d(0, -30%, 0);
452
+ transform: translate3d(0, -30%, 0);
453
+ }
454
+
455
+ 100% {
456
+ opacity: 1;
457
+ -webkit-transform: none;
458
+ transform: none;
459
+ }
460
+ }
461
+
462
+ @keyframes dd_dropdown {
463
+ 0% {
464
+ opacity: 0;
465
+ -webkit-transform: translate3d(0, -30%, 0);
466
+ transform: translate3d(0, -30%, 0);
467
+ }
468
+
469
+ 100% {
470
+ opacity: 1;
471
+ -webkit-transform: none;
472
+ transform: none;
473
+ }
474
+ }
475
+
476
+ .dd_.dd_dropdown {
477
+ -webkit-animation-name: dd_dropdown;
478
+ animation-name: dd_dropdown;
479
+ -webkit-animation-duration: .5s;
480
+ animation-duration: .5s;
481
+ }
482
+
483
+ @-webkit-keyframes dd_alert {
484
+ 0%, 100% {
485
+ -webkit-transform: translate3d(0, 0, 0);
486
+ transform: translate3d(0, 0, 0);
487
+ }
488
+
489
+ 10%, 30%, 50%, 70%, 90% {
490
+ -webkit-transform: translate3d(-10px, 0, 0);
491
+ transform: translate3d(-10px, 0, 0);
492
+ }
493
+
494
+ 20%, 40%, 60%, 80% {
495
+ -webkit-transform: translate3d(10px, 0, 0);
496
+ transform: translate3d(10px, 0, 0);
497
+ }
498
+ }
499
+
500
+ @keyframes dd_alert {
501
+ 0%, 100% {
502
+ -webkit-transform: translate3d(0, 0, 0);
503
+ transform: translate3d(0, 0, 0);
504
+ }
505
+
506
+ 25% {
507
+ -webkit-transform: translate3d(-5px, 0, 0);
508
+ transform: translate3d(-5px, 0, 0);
509
+ }
510
+
511
+ 50% {
512
+ -webkit-transform: translate3d(5px, 0, 0);
513
+ transform: translate3d(5px, 0, 0);
514
+ }
515
+ }
516
+
517
+ .dd_alert {
518
+ -webkit-animation-name: dd_alert;
519
+ animation-name: dd_alert;
520
+ -webkit-animation-duration: .5s;
521
+ animation-duration: .5s;
522
+
523
+ }