luca 0.8.599 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/.gitignore +3 -0
  2. data/.rvmrc +1 -0
  3. data/CHANGELOG +51 -2
  4. data/README.md +10 -247
  5. data/ROADMAP +6 -2
  6. data/app.rb +16 -2
  7. data/assets/javascripts/dependencies/bootstrap.min.js +7 -1
  8. data/assets/javascripts/dependencies/codemirror-coffeescript.js +347 -0
  9. data/assets/javascripts/dependencies/codemirror-css.js +124 -0
  10. data/assets/javascripts/dependencies/codemirror-html.js +410 -0
  11. data/assets/javascripts/dependencies/codemirror-javascript.js +361 -0
  12. data/assets/javascripts/dependencies/codemirror-less.js +232 -0
  13. data/assets/javascripts/dependencies/codemirror-vim.js +500 -0
  14. data/assets/javascripts/dependencies/codemirror.js +3076 -0
  15. data/assets/javascripts/dependencies.coffee +0 -1
  16. data/assets/javascripts/luca-ui-base.coffee +10 -3
  17. data/assets/javascripts/luca-ui-bootstrap.js +1 -0
  18. data/assets/javascripts/luca-ui-development-tools.coffee +9 -0
  19. data/assets/javascripts/luca-ui.coffee +6 -1
  20. data/assets/javascripts/sandbox/application.coffee +51 -0
  21. data/assets/javascripts/sandbox/router.coffee +14 -0
  22. data/assets/javascripts/sandbox/templates/main.luca +33 -0
  23. data/assets/javascripts/sandbox/templates/sandbox/navigation.luca +1 -0
  24. data/assets/javascripts/sandbox/templates/sandbox.luca +1 -0
  25. data/assets/javascripts/sandbox/views/top_navigation.coffee +4 -0
  26. data/assets/javascripts/sandbox.coffee +2 -2
  27. data/assets/stylesheets/bootstrap.min.css +395 -297
  28. data/assets/stylesheets/codemirror-blackboard.css +25 -0
  29. data/assets/stylesheets/codemirror-monokai.css +33 -0
  30. data/assets/stylesheets/codemirror.css +126 -0
  31. data/assets/stylesheets/luca-ui-bootstrap.css +0 -1
  32. data/assets/stylesheets/luca-ui-development-tools.css +5 -0
  33. data/assets/stylesheets/sandbox/sandbox.scss +1 -3
  34. data/assets/stylesheets/themes/amelia-bootstrap.css +826 -0
  35. data/assets/stylesheets/themes/slate-bootstrap.css +797 -0
  36. data/assets/stylesheets/themes/superhero-bootstrap.css +830 -0
  37. data/lib/luca/code_browser.rb +55 -0
  38. data/lib/luca/rails/version.rb +1 -1
  39. data/lib/luca/rails.rb +1 -0
  40. data/spec/components/fields/checkbox_array_spec.coffee +46 -0
  41. data/spec/components/form_view_spec.coffee +10 -4
  42. data/spec/containers/card_view_spec.coffee +7 -0
  43. data/spec/core/collection_spec.coffee +58 -4
  44. data/spec/core/container_spec.coffee +6 -6
  45. data/spec/core/view_spec.coffee +93 -7
  46. data/spec/framework_spec.coffee +15 -12
  47. data/src/components/application.coffee +126 -18
  48. data/src/components/base_toolbar.coffee +2 -2
  49. data/src/components/collection_loader_view.coffee +1 -2
  50. data/src/components/collection_view.coffee +77 -0
  51. data/src/components/controller.coffee +1 -4
  52. data/src/components/fields/button_field.coffee +1 -1
  53. data/src/components/fields/checkbox_array.coffee +2 -2
  54. data/src/components/fields/checkbox_field.coffee +3 -1
  55. data/src/components/fields/file_upload_field.coffee +1 -1
  56. data/src/components/fields/hidden_field.coffee +1 -1
  57. data/src/components/fields/select_field.coffee +1 -1
  58. data/src/components/fields/text_area_field.coffee +1 -1
  59. data/src/components/fields/text_field.coffee +10 -6
  60. data/src/components/fields/type_ahead_field.coffee +18 -5
  61. data/src/components/form_button_toolbar.coffee +1 -2
  62. data/src/components/form_view.coffee +44 -62
  63. data/src/components/grid_view.coffee +27 -20
  64. data/src/components/load_mask.coffee +3 -0
  65. data/src/components/nav_bar.coffee +26 -0
  66. data/src/components/record_manager.coffee +1 -3
  67. data/src/components/router.coffee +1 -1
  68. data/src/components/template.coffee +3 -15
  69. data/src/components/toolbar_dialog.coffee +25 -0
  70. data/src/containers/card_view.coffee +22 -23
  71. data/src/containers/column_view.coffee +1 -6
  72. data/src/containers/modal_view.coffee +20 -71
  73. data/src/containers/panel_toolbar.coffee +156 -0
  74. data/src/containers/panel_view.coffee +1 -1
  75. data/src/containers/split_view.coffee +1 -3
  76. data/src/containers/tab_view.coffee +29 -29
  77. data/src/containers/viewport.coffee +38 -3
  78. data/src/core/collection.coffee +80 -48
  79. data/src/core/container.coffee +153 -72
  80. data/src/core/core.coffee +181 -0
  81. data/src/core/field.coffee +4 -2
  82. data/src/core/model.coffee +1 -1
  83. data/src/core/observer.coffee +3 -3
  84. data/src/core/panel.coffee +143 -0
  85. data/src/core/registry.coffee +104 -0
  86. data/src/core/util.coffee +82 -0
  87. data/src/core/view.coffee +158 -85
  88. data/src/framework.coffee +112 -178
  89. data/src/index.coffee +0 -255
  90. data/src/managers/collection_manager.coffee +1 -0
  91. data/src/samples/definition.coffee +49 -0
  92. data/src/stylesheets/base.scss +0 -78
  93. data/src/stylesheets/components/form_view.scss +8 -3
  94. data/src/stylesheets/components/grid_view.scss +3 -7
  95. data/src/stylesheets/components/load_mask.scss +14 -0
  96. data/src/stylesheets/components/toolbar.scss +0 -15
  97. data/src/stylesheets/containers/container.scss +14 -2
  98. data/src/stylesheets/containers/panels.scss +23 -0
  99. data/src/stylesheets/tools/class_browser.scss +32 -0
  100. data/src/stylesheets/tools/code_editor.scss +24 -0
  101. data/src/stylesheets/tools/component_tester.scss +8 -0
  102. data/src/stylesheets/tools/console.scss +26 -0
  103. data/src/templates/components/collection_loader_view.luca +1 -1
  104. data/src/templates/components/form_view.luca +2 -13
  105. data/src/templates/components/grid_view.luca +0 -2
  106. data/src/templates/components/load_mask.luca +3 -0
  107. data/src/templates/components/nav_bar.luca +2 -0
  108. data/src/templates/containers/tab_view.luca +1 -0
  109. data/src/templates/fields/text_field.luca +4 -1
  110. data/src/tools/class_browser.coffee +39 -0
  111. data/src/tools/code_editor.coffee +258 -0
  112. data/src/tools/code_mirror_field.coffee +57 -0
  113. data/src/tools/coffee_script_editor.coffee +60 -0
  114. data/src/tools/collection_inspector.coffee +4 -0
  115. data/src/tools/component_tester.coffee +472 -0
  116. data/src/tools/components/class_browser_detail.coffee +10 -0
  117. data/src/tools/components/class_browser_list.coffee +74 -0
  118. data/src/tools/console.coffee +147 -0
  119. data/src/tools/development_console.coffee +147 -0
  120. data/src/tools/models/components.coffee +63 -0
  121. data/src/tools/templates/component_tester/help.luca +14 -0
  122. data/vendor/assets/javascripts/luca-ui-base.js +1389 -611
  123. data/vendor/assets/javascripts/luca-ui-bootstrap.js +9 -0
  124. data/vendor/assets/javascripts/luca-ui-development-tools.js +18719 -0
  125. data/vendor/assets/javascripts/luca-ui-spec.js +2065 -878
  126. data/vendor/assets/javascripts/luca-ui.js +1759 -852
  127. data/vendor/assets/javascripts/luca-ui.min.js +3 -3
  128. data/vendor/assets/stylesheets/luca-ui-bootstrap.css +494 -440
  129. data/vendor/assets/stylesheets/luca-ui-development-tools.css +224 -0
  130. data/vendor/assets/stylesheets/luca-ui-spec.css +99 -140
  131. data/vendor/assets/stylesheets/luca-ui.css +99 -140
  132. data/views/index.erb +6 -3
  133. metadata +60 -18
  134. data/assets/javascripts/dependencies/jquery-console.js +0 -649
  135. data/assets/javascripts/development-console.coffee +0 -2
  136. data/assets/javascripts/sandbox/sandbox.coffee +0 -16
  137. data/assets/javascripts/sandbox/templates/features/collection_helpers.luca +0 -33
  138. data/assets/javascripts/sandbox/templates/features/form_demo_code.luca +0 -48
  139. data/assets/javascripts/sandbox/templates/features/grid_demo_code.luca +0 -24
  140. data/assets/javascripts/sandbox/templates/features/introduction.luca +0 -11
  141. data/assets/javascripts/sandbox/templates/features/view_helpers.luca +0 -43
  142. data/assets/javascripts/sandbox/templates/navigation.luca +0 -8
  143. data/assets/javascripts/sandbox/views/form_demo.coffee +0 -47
  144. data/assets/javascripts/sandbox/views/grid_demo.coffee +0 -23
  145. data/assets/javascripts/sandbox/views/pages/collection_events_sample.coffee +0 -1
  146. data/assets/javascripts/sandbox/views/pages/pages_controller.coffee +0 -38
  147. data/src/components/collection_inspector.coffee +0 -2
  148. data/src/components/development_console.coffee +0 -59
  149. data/src/stylesheets/components/development_console.scss +0 -47
@@ -0,0 +1,25 @@
1
+ /* Port of TextMate's Blackboard theme */
2
+
3
+ .cm-s-blackboard { background: #0C1021; color: #F8F8F8; }
4
+ .cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; }
5
+ .cm-s-blackboard .CodeMirror-gutter { background: #0C1021; border-right: 0; }
6
+ .cm-s-blackboard .CodeMirror-gutter-text { color: #888; }
7
+ .cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }
8
+
9
+ .cm-s-blackboard .cm-keyword { color: #FBDE2D; }
10
+ .cm-s-blackboard .cm-atom { color: #D8FA3C; }
11
+ .cm-s-blackboard .cm-number { color: #D8FA3C; }
12
+ .cm-s-blackboard .cm-def { color: #8DA6CE; }
13
+ .cm-s-blackboard .cm-variable { color: #FF6400; }
14
+ .cm-s-blackboard .cm-operator { color: #FBDE2D;}
15
+ .cm-s-blackboard .cm-comment { color: #AEAEAE; }
16
+ .cm-s-blackboard .cm-string { color: #61CE3C; }
17
+ .cm-s-blackboard .cm-string-2 { color: #61CE3C; }
18
+ .cm-s-blackboard .cm-meta { color: #D8FA3C; }
19
+ .cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
20
+ .cm-s-blackboard .cm-builtin { color: #8DA6CE; }
21
+ .cm-s-blackboard .cm-tag { color: #8DA6CE; }
22
+ .cm-s-blackboard .cm-attribute { color: #8DA6CE; }
23
+ .cm-s-blackboard .cm-header { color: #FF6400; }
24
+ .cm-s-blackboard .cm-hr { color: #AEAEAE; }
25
+ .cm-s-blackboard .cm-link { color: #8DA6CE; }
@@ -0,0 +1,33 @@
1
+ /* Based on Sublime Text's Monokai theme */
2
+
3
+
4
+ .CodeMirror {
5
+ font-family: "Monaco";
6
+ }
7
+
8
+ .cm-s-monokai {background: #272822; color: #f8f8f2;}
9
+ .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;}
10
+ .cm-s-monokai .CodeMirror-gutter {background: #272822; border-right: 0px;}
11
+ .cm-s-monokai .CodeMirror-gutter-text {color: #d0d0d0;}
12
+ .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}
13
+
14
+ .cm-s-monokai span.cm-comment {color: #75715e;}
15
+ .cm-s-monokai span.cm-atom {color: #ae81ff;}
16
+ .cm-s-monokai span.cm-number {color: #ae81ff;}
17
+
18
+ .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;}
19
+ .cm-s-monokai span.cm-keyword {color: #f92672;}
20
+ .cm-s-monokai span.cm-string {color: #e6db74;}
21
+
22
+ .cm-s-monokai span.cm-variable {color: #a6e22e;}
23
+ .cm-s-monokai span.cm-variable-2 {color: #9effff;}
24
+ .cm-s-monokai span.cm-def {color: #fd971f;}
25
+ .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
26
+ .cm-s-monokai span.cm-bracket {color: #f8f8f2;}
27
+ .cm-s-monokai span.cm-tag {color: #f92672;}
28
+ .cm-s-monokai span.cm-link {color: #ae81ff;}
29
+
30
+ .cm-s-monokai .CodeMirror-matchingbracket {
31
+ text-decoration: underline;
32
+ color: white !important;
33
+ }
@@ -0,0 +1,126 @@
1
+ .CodeMirror {
2
+ line-height: 1em;
3
+ font-family: monospace;
4
+ }
5
+
6
+ .CodeMirror-scroll {
7
+ overflow: auto;
8
+ height: 300px;
9
+ /* This is needed to prevent an IE[67] bug where the scrolled content
10
+ is visible outside of the scrolling box. */
11
+ position: relative;
12
+ outline: none;
13
+ }
14
+
15
+ .CodeMirror-gutter {
16
+ position: absolute; left: 0; top: 0;
17
+ z-index: 10;
18
+ background-color: #f7f7f7;
19
+ border-right: 1px solid #eee;
20
+ min-width: 2em;
21
+ height: 100%;
22
+ }
23
+ .CodeMirror-gutter-text {
24
+ color: #aaa;
25
+ text-align: right;
26
+ padding: .4em .2em .4em .4em;
27
+ white-space: pre !important;
28
+ }
29
+ .CodeMirror-lines {
30
+ padding: .4em;
31
+ white-space: pre;
32
+ }
33
+
34
+ .CodeMirror pre {
35
+ -moz-border-radius: 0;
36
+ -webkit-border-radius: 0;
37
+ -o-border-radius: 0;
38
+ border-radius: 0;
39
+ border-width: 0; margin: 0; padding: 0; background: transparent;
40
+ font-family: inherit;
41
+ font-size: inherit;
42
+ padding: 0; margin: 0;
43
+ white-space: pre;
44
+ word-wrap: normal;
45
+ line-height: inherit;
46
+ color: inherit;
47
+ }
48
+
49
+ .CodeMirror-wrap pre {
50
+ word-wrap: break-word;
51
+ white-space: pre-wrap;
52
+ word-break: normal;
53
+ }
54
+ .CodeMirror-wrap .CodeMirror-scroll {
55
+ overflow-x: hidden;
56
+ }
57
+
58
+ .CodeMirror textarea {
59
+ outline: none !important;
60
+ }
61
+
62
+ .CodeMirror pre.CodeMirror-cursor {
63
+ z-index: 10;
64
+ position: absolute;
65
+ visibility: hidden;
66
+ border-left: 1px solid black;
67
+ border-right: none;
68
+ width: 0;
69
+ }
70
+ .cm-keymap-fat-cursor pre.CodeMirror-cursor {
71
+ width: auto;
72
+ border: 0;
73
+ background: transparent;
74
+ background: rgba(0, 200, 0, .4);
75
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800);
76
+ }
77
+ /* Kludge to turn off filter in ie9+, which also accepts rgba */
78
+ .cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) {
79
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
80
+ }
81
+ .CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}
82
+ .CodeMirror-focused pre.CodeMirror-cursor {
83
+ visibility: visible;
84
+ }
85
+
86
+ div.CodeMirror-selected { background: #d9d9d9; }
87
+ .CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; }
88
+
89
+ .CodeMirror-searching {
90
+ background: #ffa;
91
+ background: rgba(255, 255, 0, .4);
92
+ }
93
+
94
+ /* Default theme */
95
+
96
+ .cm-s-default span.cm-keyword {color: #708;}
97
+ .cm-s-default span.cm-atom {color: #219;}
98
+ .cm-s-default span.cm-number {color: #164;}
99
+ .cm-s-default span.cm-def {color: #00f;}
100
+ .cm-s-default span.cm-variable {color: black;}
101
+ .cm-s-default span.cm-variable-2 {color: #05a;}
102
+ .cm-s-default span.cm-variable-3 {color: #085;}
103
+ .cm-s-default span.cm-property {color: black;}
104
+ .cm-s-default span.cm-operator {color: black;}
105
+ .cm-s-default span.cm-comment {color: #a50;}
106
+ .cm-s-default span.cm-string {color: #a11;}
107
+ .cm-s-default span.cm-string-2 {color: #f50;}
108
+ .cm-s-default span.cm-meta {color: #555;}
109
+ .cm-s-default span.cm-error {color: #f00;}
110
+ .cm-s-default span.cm-qualifier {color: #555;}
111
+ .cm-s-default span.cm-builtin {color: #30a;}
112
+ .cm-s-default span.cm-bracket {color: #cc7;}
113
+ .cm-s-default span.cm-tag {color: #170;}
114
+ .cm-s-default span.cm-attribute {color: #00c;}
115
+ .cm-s-default span.cm-header {color: blue;}
116
+ .cm-s-default span.cm-quote {color: #090;}
117
+ .cm-s-default span.cm-hr {color: #999;}
118
+ .cm-s-default span.cm-link {color: #00c;}
119
+
120
+ span.cm-header, span.cm-strong {font-weight: bold;}
121
+ span.cm-em {font-style: italic;}
122
+ span.cm-emstrong {font-style: italic; font-weight: bold;}
123
+ span.cm-link {text-decoration: underline;}
124
+
125
+ div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
126
+ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
@@ -1,5 +1,4 @@
1
1
  /*
2
- *= require ./bootstrap-responsive.min
3
2
  *= require ./bootstrap.min
4
3
  *= require_tree ./luca-ui
5
4
  */
@@ -0,0 +1,5 @@
1
+ /*
2
+ *= require ./codemirror.css
3
+ #= require ./codemirror-monokai.css
4
+ #= require_tree ./luca-ui/tools
5
+ */
@@ -1,4 +1,2 @@
1
- #container, #viewport {
2
- width: 1024px;
3
- margin: 40px auto;
1
+ #viewport {
4
2
  }