trestle 0.10.0.pre → 0.10.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +26 -0
  3. data/.github/workflows/rspec.yml +6 -2
  4. data/Gemfile +14 -5
  5. data/app/assets/bundle/trestle/admin.css +4 -4
  6. data/app/assets/bundle/trestle/admin.js +2 -2
  7. data/app/controllers/concerns/trestle/controller/turbo_stream.rb +12 -0
  8. data/app/controllers/concerns/trestle/resource/controller/actions.rb +3 -3
  9. data/app/controllers/trestle/application_controller.rb +1 -1
  10. data/app/helpers/trestle/modal_helper.rb +0 -5
  11. data/app/helpers/trestle/turbo/frame_helper.rb +29 -0
  12. data/app/helpers/trestle/turbo/stream_helper.rb +9 -0
  13. data/app/helpers/trestle/turbo/tag_builder.rb +21 -0
  14. data/app/helpers/trestle/url_helper.rb +1 -1
  15. data/app/views/layouts/trestle/admin.html.erb +1 -1
  16. data/app/views/layouts/trestle/admin.turbo_stream.erb +2 -9
  17. data/app/views/trestle/application/_header.html.erb +12 -10
  18. data/app/views/trestle/resource/create.turbo_stream.erb +1 -5
  19. data/app/views/trestle/resource/destroy.turbo_stream.erb +1 -1
  20. data/app/views/trestle/resource/edit.html.erb +2 -0
  21. data/app/views/trestle/resource/index.html.erb +5 -0
  22. data/app/views/trestle/resource/new.html.erb +5 -0
  23. data/app/views/trestle/resource/show.html.erb +2 -0
  24. data/app/views/trestle/resource/update.turbo_stream.erb +1 -5
  25. data/app/views/trestle/shared/_sidebar.html.erb +2 -2
  26. data/frontend/css/components/_alerts.scss +22 -20
  27. data/frontend/css/components/_avatar.scss +12 -12
  28. data/frontend/css/components/_background.scss +1 -1
  29. data/frontend/css/components/_breadcrumbs.scss +8 -29
  30. data/frontend/css/components/_buttons.scss +3 -3
  31. data/frontend/css/components/_datepicker.scss +3 -3
  32. data/frontend/css/components/_dropdown.scss +18 -26
  33. data/frontend/css/components/_forms.scss +4 -4
  34. data/frontend/css/components/_grid.scss +29 -0
  35. data/frontend/css/components/_media-grid.scss +1 -1
  36. data/frontend/css/components/_modal.scss +4 -4
  37. data/frontend/css/components/_pagination.scss +4 -8
  38. data/frontend/css/components/_popover.scss +1 -1
  39. data/frontend/css/components/_scopes.scss +4 -10
  40. data/frontend/css/components/_select.scss +8 -9
  41. data/frontend/css/components/_sort.scss +1 -1
  42. data/frontend/css/components/_table.scss +5 -5
  43. data/frontend/css/components/_tabs.scss +11 -18
  44. data/frontend/css/components/_tags.scss +16 -6
  45. data/frontend/css/components/_toolbars.scss +9 -9
  46. data/frontend/css/core/_functions.scss +0 -8
  47. data/frontend/css/core/_theme.scss +3 -0
  48. data/frontend/css/core/_typography.scss +12 -19
  49. data/frontend/css/index.scss +3 -1
  50. data/frontend/css/layout/_base.scss +4 -2
  51. data/frontend/css/layout/_content-header.scss +71 -0
  52. data/frontend/css/layout/_footer.scss +5 -7
  53. data/frontend/css/layout/_main-content.scss +107 -0
  54. data/frontend/css/layout/_navigation.scss +111 -49
  55. data/frontend/css/layout/_sidebar.scss +58 -34
  56. data/frontend/css/variables/_bootstrap.scss +30 -21
  57. data/frontend/css/variables/_trestle.scss +17 -17
  58. data/frontend/js/controllers/batch_action_controller.js +59 -0
  59. data/frontend/js/controllers/checkbox_select_controller.js +3 -0
  60. data/lib/trestle/engine.rb +18 -16
  61. data/lib/trestle/resource/toolbar.rb +18 -8
  62. data/lib/trestle/sprockets_compressor.rb +16 -0
  63. data/lib/trestle/toolbar/context.rb +7 -4
  64. data/lib/trestle/toolbar/menu.rb +8 -5
  65. data/lib/trestle/version.rb +1 -1
  66. data/package.json +1 -1
  67. data/trestle.gemspec +5 -9
  68. data/yarn.lock +17 -32
  69. metadata +34 -69
  70. data/app/controllers/concerns/trestle/controller/turbo.rb +0 -21
  71. data/app/helpers/trestle/turbo_frame_helper.rb +0 -34
  72. data/frontend/css/layout/_content.scss +0 -173
@@ -1,173 +0,0 @@
1
- .content-header {
2
- display: flex;
3
- justify-content: space-between;
4
-
5
- background: $content-header-bg;
6
- padding: 20px;
7
-
8
- h1 {
9
- font-size: 2.5rem;
10
- font-weight: 200;
11
-
12
- margin-top: 0;
13
- margin-bottom: 0.5rem;
14
-
15
- @include media-breakpoint-down(md) {
16
- font-size: 2.25rem;
17
- }
18
- }
19
-
20
- .breadcrumb {
21
- margin-bottom: 0;
22
- }
23
-
24
- .content-header-title {
25
- margin: 5px 0;
26
-
27
- @include media-breakpoint-down(md) {
28
- margin: 2px 0;
29
- }
30
- }
31
-
32
- .btn {
33
- white-space: nowrap;
34
- }
35
-
36
- .btn-toolbar {
37
- flex-direction: row-reverse;
38
- }
39
-
40
- .secondary-toolbar {
41
- margin-top: 8px;
42
- }
43
- }
44
-
45
- .main-content-area {
46
- margin: 20px;
47
- scroll-margin: 20px;
48
- }
49
-
50
- .main-content-container {
51
- background: white;
52
- display: flex;
53
- margin-bottom: 20px;
54
- }
55
-
56
- .main-content,
57
- .main-content-sidebar {
58
- padding: 20px;
59
- }
60
-
61
- .main-content {
62
- // Allow nesting of tab panes directly within
63
- @extend .tab-content;
64
-
65
- flex: 1;
66
- min-width: 0;
67
- }
68
-
69
- .main-content-header,
70
- .main-content-footer {
71
- display: flex;
72
- justify-content: space-between;
73
- }
74
-
75
- .main-content-header {
76
- margin: -20px -20px 20px !important;
77
- padding: $main-content-header-padding;
78
- background: $main-content-header-bg;
79
- border-bottom: $main-content-header-border;
80
- }
81
-
82
- .main-content-footer {
83
- margin: 20px -20px -20px !important;
84
- padding: $main-content-footer-padding;
85
- background: $main-content-footer-bg;
86
- border-top: $main-content-footer-border;
87
- }
88
-
89
- .main-content,
90
- .main-content-sidebar,
91
- .tab-pane {
92
- > *:first-child {
93
- margin-top: 0;
94
- }
95
-
96
- > *:last-child {
97
- margin-bottom: 0;
98
- }
99
- }
100
-
101
- .main-content-sidebar {
102
- background: $content-sidebar-bg;
103
- flex: 0 0 $content-sidebar-width;
104
- max-width: $content-sidebar-width;
105
- }
106
-
107
- .utilities {
108
- display: flex;
109
- justify-content: flex-start;
110
- margin-bottom: 10px;
111
- }
112
-
113
- .error-iframe {
114
- display: block;
115
- width: 100%;
116
- border: 0;
117
- flex: 1;
118
- min-height: 60vh;
119
- max-height: 75vh;
120
- }
121
-
122
- @include media-breakpoint-down(lg) {
123
- .main-content-container {
124
- flex-direction: column;
125
- }
126
-
127
- .main-content-sidebar {
128
- flex-basis: 0;
129
- max-width: none;
130
- }
131
- }
132
-
133
- @include media-breakpoint-down(md) {
134
- .content-header {
135
- padding: 10px;
136
- }
137
-
138
- .main-content-area {
139
- margin: 10px;
140
- scroll-margin: 10px;
141
- }
142
-
143
- .main-content-container {
144
- margin-bottom: 10px;
145
- }
146
-
147
- .main-content,
148
- .main-content-sidebar {
149
- padding: 15px;
150
- }
151
-
152
- .utilities {
153
- margin-bottom: 10px;
154
- }
155
-
156
- .main-content-header,
157
- .main-content-footer {
158
- flex-direction: column;
159
- align-items: center;
160
- }
161
-
162
- .main-content-header {
163
- margin: -15px -15px 15px !important;
164
- padding-left: 15px;
165
- padding-right: 15px;
166
- }
167
-
168
- .main-content-footer {
169
- margin: 15px -15px -15px !important;
170
- padding-left: 15px;
171
- padding-right: 15px;
172
- }
173
- }