luca 0.8.599 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.rvmrc +1 -0
- data/CHANGELOG +51 -2
- data/README.md +10 -247
- data/ROADMAP +6 -2
- data/app.rb +16 -2
- data/assets/javascripts/dependencies/bootstrap.min.js +7 -1
- data/assets/javascripts/dependencies/codemirror-coffeescript.js +347 -0
- data/assets/javascripts/dependencies/codemirror-css.js +124 -0
- data/assets/javascripts/dependencies/codemirror-html.js +410 -0
- data/assets/javascripts/dependencies/codemirror-javascript.js +361 -0
- data/assets/javascripts/dependencies/codemirror-less.js +232 -0
- data/assets/javascripts/dependencies/codemirror-vim.js +500 -0
- data/assets/javascripts/dependencies/codemirror.js +3076 -0
- data/assets/javascripts/dependencies.coffee +0 -1
- data/assets/javascripts/luca-ui-base.coffee +10 -3
- data/assets/javascripts/luca-ui-bootstrap.js +1 -0
- data/assets/javascripts/luca-ui-development-tools.coffee +9 -0
- data/assets/javascripts/luca-ui.coffee +6 -1
- data/assets/javascripts/sandbox/application.coffee +51 -0
- data/assets/javascripts/sandbox/router.coffee +14 -0
- data/assets/javascripts/sandbox/templates/main.luca +33 -0
- data/assets/javascripts/sandbox/templates/sandbox/navigation.luca +1 -0
- data/assets/javascripts/sandbox/templates/sandbox.luca +1 -0
- data/assets/javascripts/sandbox/views/top_navigation.coffee +4 -0
- data/assets/javascripts/sandbox.coffee +2 -2
- data/assets/stylesheets/bootstrap.min.css +395 -297
- data/assets/stylesheets/codemirror-blackboard.css +25 -0
- data/assets/stylesheets/codemirror-monokai.css +33 -0
- data/assets/stylesheets/codemirror.css +126 -0
- data/assets/stylesheets/luca-ui-bootstrap.css +0 -1
- data/assets/stylesheets/luca-ui-development-tools.css +5 -0
- data/assets/stylesheets/sandbox/sandbox.scss +1 -3
- data/assets/stylesheets/themes/amelia-bootstrap.css +826 -0
- data/assets/stylesheets/themes/slate-bootstrap.css +797 -0
- data/assets/stylesheets/themes/superhero-bootstrap.css +830 -0
- data/lib/luca/code_browser.rb +55 -0
- data/lib/luca/rails/version.rb +1 -1
- data/lib/luca/rails.rb +1 -0
- data/spec/components/fields/checkbox_array_spec.coffee +46 -0
- data/spec/components/form_view_spec.coffee +10 -4
- data/spec/containers/card_view_spec.coffee +7 -0
- data/spec/core/collection_spec.coffee +58 -4
- data/spec/core/container_spec.coffee +6 -6
- data/spec/core/view_spec.coffee +93 -7
- data/spec/framework_spec.coffee +15 -12
- data/src/components/application.coffee +126 -18
- data/src/components/base_toolbar.coffee +2 -2
- data/src/components/collection_loader_view.coffee +1 -2
- data/src/components/collection_view.coffee +77 -0
- data/src/components/controller.coffee +1 -4
- data/src/components/fields/button_field.coffee +1 -1
- data/src/components/fields/checkbox_array.coffee +2 -2
- data/src/components/fields/checkbox_field.coffee +3 -1
- data/src/components/fields/file_upload_field.coffee +1 -1
- data/src/components/fields/hidden_field.coffee +1 -1
- data/src/components/fields/select_field.coffee +1 -1
- data/src/components/fields/text_area_field.coffee +1 -1
- data/src/components/fields/text_field.coffee +10 -6
- data/src/components/fields/type_ahead_field.coffee +18 -5
- data/src/components/form_button_toolbar.coffee +1 -2
- data/src/components/form_view.coffee +44 -62
- data/src/components/grid_view.coffee +27 -20
- data/src/components/load_mask.coffee +3 -0
- data/src/components/nav_bar.coffee +26 -0
- data/src/components/record_manager.coffee +1 -3
- data/src/components/router.coffee +1 -1
- data/src/components/template.coffee +3 -15
- data/src/components/toolbar_dialog.coffee +25 -0
- data/src/containers/card_view.coffee +22 -23
- data/src/containers/column_view.coffee +1 -6
- data/src/containers/modal_view.coffee +20 -71
- data/src/containers/panel_toolbar.coffee +156 -0
- data/src/containers/panel_view.coffee +1 -1
- data/src/containers/split_view.coffee +1 -3
- data/src/containers/tab_view.coffee +29 -29
- data/src/containers/viewport.coffee +38 -3
- data/src/core/collection.coffee +80 -48
- data/src/core/container.coffee +153 -72
- data/src/core/core.coffee +181 -0
- data/src/core/field.coffee +4 -2
- data/src/core/model.coffee +1 -1
- data/src/core/observer.coffee +3 -3
- data/src/core/panel.coffee +143 -0
- data/src/core/registry.coffee +104 -0
- data/src/core/util.coffee +82 -0
- data/src/core/view.coffee +158 -85
- data/src/framework.coffee +112 -178
- data/src/index.coffee +0 -255
- data/src/managers/collection_manager.coffee +1 -0
- data/src/samples/definition.coffee +49 -0
- data/src/stylesheets/base.scss +0 -78
- data/src/stylesheets/components/form_view.scss +8 -3
- data/src/stylesheets/components/grid_view.scss +3 -7
- data/src/stylesheets/components/load_mask.scss +14 -0
- data/src/stylesheets/components/toolbar.scss +0 -15
- data/src/stylesheets/containers/container.scss +14 -2
- data/src/stylesheets/containers/panels.scss +23 -0
- data/src/stylesheets/tools/class_browser.scss +32 -0
- data/src/stylesheets/tools/code_editor.scss +24 -0
- data/src/stylesheets/tools/component_tester.scss +8 -0
- data/src/stylesheets/tools/console.scss +26 -0
- data/src/templates/components/collection_loader_view.luca +1 -1
- data/src/templates/components/form_view.luca +2 -13
- data/src/templates/components/grid_view.luca +0 -2
- data/src/templates/components/load_mask.luca +3 -0
- data/src/templates/components/nav_bar.luca +2 -0
- data/src/templates/containers/tab_view.luca +1 -0
- data/src/templates/fields/text_field.luca +4 -1
- data/src/tools/class_browser.coffee +39 -0
- data/src/tools/code_editor.coffee +258 -0
- data/src/tools/code_mirror_field.coffee +57 -0
- data/src/tools/coffee_script_editor.coffee +60 -0
- data/src/tools/collection_inspector.coffee +4 -0
- data/src/tools/component_tester.coffee +472 -0
- data/src/tools/components/class_browser_detail.coffee +10 -0
- data/src/tools/components/class_browser_list.coffee +74 -0
- data/src/tools/console.coffee +147 -0
- data/src/tools/development_console.coffee +147 -0
- data/src/tools/models/components.coffee +63 -0
- data/src/tools/templates/component_tester/help.luca +14 -0
- data/vendor/assets/javascripts/luca-ui-base.js +1389 -611
- data/vendor/assets/javascripts/luca-ui-bootstrap.js +9 -0
- data/vendor/assets/javascripts/luca-ui-development-tools.js +18719 -0
- data/vendor/assets/javascripts/luca-ui-spec.js +2065 -878
- data/vendor/assets/javascripts/luca-ui.js +1759 -852
- data/vendor/assets/javascripts/luca-ui.min.js +3 -3
- data/vendor/assets/stylesheets/luca-ui-bootstrap.css +494 -440
- data/vendor/assets/stylesheets/luca-ui-development-tools.css +224 -0
- data/vendor/assets/stylesheets/luca-ui-spec.css +99 -140
- data/vendor/assets/stylesheets/luca-ui.css +99 -140
- data/views/index.erb +6 -3
- metadata +60 -18
- data/assets/javascripts/dependencies/jquery-console.js +0 -649
- data/assets/javascripts/development-console.coffee +0 -2
- data/assets/javascripts/sandbox/sandbox.coffee +0 -16
- data/assets/javascripts/sandbox/templates/features/collection_helpers.luca +0 -33
- data/assets/javascripts/sandbox/templates/features/form_demo_code.luca +0 -48
- data/assets/javascripts/sandbox/templates/features/grid_demo_code.luca +0 -24
- data/assets/javascripts/sandbox/templates/features/introduction.luca +0 -11
- data/assets/javascripts/sandbox/templates/features/view_helpers.luca +0 -43
- data/assets/javascripts/sandbox/templates/navigation.luca +0 -8
- data/assets/javascripts/sandbox/views/form_demo.coffee +0 -47
- data/assets/javascripts/sandbox/views/grid_demo.coffee +0 -23
- data/assets/javascripts/sandbox/views/pages/collection_events_sample.coffee +0 -1
- data/assets/javascripts/sandbox/views/pages/pages_controller.coffee +0 -38
- data/src/components/collection_inspector.coffee +0 -2
- data/src/components/development_console.coffee +0 -59
- 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;}
|