coveragebook_components 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/build/coco/app.css +128 -106
- data/app/assets/build/coco/app.js +18 -12
- data/app/assets/build/coco/book.css +1 -8
- data/app/assets/build/coco/book.js +1 -1
- data/app/assets/css/base/base.css +1 -0
- data/app/assets/css/base/components/coco.css +0 -9
- data/app/assets/css/base/utils/text.css +79 -0
- data/app/components/coco/app/elements/alert/alert.css +14 -46
- data/app/components/coco/app/elements/alert/alert.html.erb +2 -2
- data/app/components/coco/app/elements/alert/alert.rb +11 -16
- data/app/components/coco/app/elements/button_group/button_group.css +6 -3
- data/app/components/coco/app/elements/button_group/button_group.js +8 -6
- data/app/components/coco/app/elements/stamp/stamp.css +103 -0
- data/app/components/coco/app/elements/stamp/stamp.html.erb +3 -0
- data/app/components/coco/app/elements/stamp/stamp.rb +29 -0
- data/app/components/coco/app/layouts/application/application.css +1 -1
- data/app/components/coco/app/layouts/page/page.css +4 -0
- data/app/components/coco/app/layouts/page/page.html.erb +5 -0
- data/app/components/coco/app/layouts/page/page.rb +4 -0
- data/app/components/coco/base/modal/modal.html.erb +2 -2
- data/app/components/coco/base/modal/modal.js +1 -1
- data/app/components/coco/base/modal/modal.rb +6 -4
- data/app/components/coco/base/placeholder/placeholder.html.erb +1 -1
- data/app/components/coco/base/placeholder/placeholder.rb +6 -0
- data/app/helpers/coco/app_helper.rb +17 -0
- data/app/helpers/coco/base_helper.rb +2 -2
- data/config/tailwind.app.config.cjs +1 -1
- data/config/tailwind.book.config.cjs +1 -0
- data/config/tokens.cjs +9 -4
- data/lib/coco/engine.rb +4 -2
- data/lib/coco.rb +1 -1
- metadata +6 -4
- data/app/components/coco/app/blocks/slat/slat.css +0 -9
- data/app/components/coco/app/blocks/slat/slat.rb +0 -13
@@ -5,14 +5,14 @@
|
|
5
5
|
.alert-container {
|
6
6
|
@apply flex items-start px-4 py-2 relative;
|
7
7
|
}
|
8
|
-
|
8
|
+
/*
|
9
9
|
.alert-icon {
|
10
10
|
@apply flex items-center p-2 rounded-full;
|
11
11
|
|
12
12
|
.coco-icon {
|
13
13
|
@apply w-5 h-5;
|
14
14
|
}
|
15
|
-
}
|
15
|
+
} */
|
16
16
|
|
17
17
|
.alert-body {
|
18
18
|
@apply pl-4 pr-2;
|
@@ -58,6 +58,14 @@
|
|
58
58
|
.alert-body {
|
59
59
|
@apply @[1000px]:w-auto;
|
60
60
|
}
|
61
|
+
|
62
|
+
.alert-stamp .coco-icon {
|
63
|
+
@apply text-content-light-1;
|
64
|
+
}
|
65
|
+
|
66
|
+
&[data-theme="warning-vivid"] .alert-stamp .coco-icon {
|
67
|
+
@apply text-content-dark-1;
|
68
|
+
}
|
61
69
|
}
|
62
70
|
|
63
71
|
/* Dismissable */
|
@@ -80,10 +88,6 @@
|
|
80
88
|
@apply py-1.5;
|
81
89
|
}
|
82
90
|
|
83
|
-
.alert-icon {
|
84
|
-
@apply p-0 !bg-transparent;
|
85
|
-
}
|
86
|
-
|
87
91
|
.alert-body {
|
88
92
|
@apply pl-3;
|
89
93
|
}
|
@@ -122,10 +126,6 @@
|
|
122
126
|
@apply text-content-light-1;
|
123
127
|
}
|
124
128
|
|
125
|
-
.alert-icon {
|
126
|
-
@apply text-content-light-1;
|
127
|
-
}
|
128
|
-
|
129
129
|
.coco_link:not([data-theme]) {
|
130
130
|
@apply app-link-neutral-light;
|
131
131
|
}
|
@@ -133,26 +133,14 @@
|
|
133
133
|
|
134
134
|
&[data-theme="positive"] {
|
135
135
|
@apply bg-background-positive-light border-positive-300 hover:border-positive-400;
|
136
|
-
|
137
|
-
.alert-icon {
|
138
|
-
@apply text-content-positive bg-positive-200;
|
139
|
-
}
|
140
136
|
}
|
141
137
|
|
142
138
|
&[data-theme="positive-vivid"] {
|
143
139
|
@apply bg-background-positive;
|
144
|
-
|
145
|
-
.alert-icon {
|
146
|
-
@apply bg-positive-700;
|
147
|
-
}
|
148
140
|
}
|
149
141
|
|
150
142
|
&[data-theme="warning"] {
|
151
143
|
@apply bg-background-warning-light border-warning-300 hover:border-warning-400;
|
152
|
-
|
153
|
-
.alert-icon {
|
154
|
-
@apply text-content-warning bg-warning-100;
|
155
|
-
}
|
156
144
|
}
|
157
145
|
|
158
146
|
&[data-theme="warning-vivid"] {
|
@@ -162,10 +150,6 @@
|
|
162
150
|
@apply text-content-dark-1;
|
163
151
|
}
|
164
152
|
|
165
|
-
.alert-icon {
|
166
|
-
@apply bg-warning-600;
|
167
|
-
}
|
168
|
-
|
169
153
|
.coco-link:not([data-theme]) {
|
170
154
|
@apply app-link-neutral-dark;
|
171
155
|
}
|
@@ -173,34 +157,18 @@
|
|
173
157
|
|
174
158
|
&[data-theme="negative"] {
|
175
159
|
@apply bg-background-negative-light border-negative-300 hover:border-negative-400;
|
176
|
-
|
177
|
-
.alert-icon {
|
178
|
-
@apply text-content-negative bg-negative-200;
|
179
|
-
}
|
180
160
|
}
|
181
161
|
|
182
162
|
&[data-theme="negative-vivid"] {
|
183
163
|
@apply bg-background-negative;
|
184
|
-
|
185
|
-
.alert-icon {
|
186
|
-
@apply bg-negative-700;
|
187
|
-
}
|
188
164
|
}
|
189
165
|
|
190
166
|
&[data-theme="info"] {
|
191
167
|
@apply bg-background-info-light border-info-300 hover:border-info-400;
|
192
|
-
|
193
|
-
.alert-icon {
|
194
|
-
@apply text-content-info bg-info-200;
|
195
|
-
}
|
196
168
|
}
|
197
169
|
|
198
170
|
&[data-theme="info-vivid"] {
|
199
171
|
@apply bg-background-info;
|
200
|
-
|
201
|
-
.alert-icon {
|
202
|
-
@apply bg-info-700;
|
203
|
-
}
|
204
172
|
}
|
205
173
|
}
|
206
174
|
}
|
@@ -224,7 +192,7 @@
|
|
224
192
|
@apply py-3;
|
225
193
|
}
|
226
194
|
|
227
|
-
.coco-
|
195
|
+
.coco-stamp {
|
228
196
|
@apply mt-1.5;
|
229
197
|
}
|
230
198
|
|
@@ -249,7 +217,7 @@
|
|
249
217
|
@apply items-center;
|
250
218
|
}
|
251
219
|
|
252
|
-
.alert-
|
220
|
+
.alert-stamp {
|
253
221
|
@apply self-center;
|
254
222
|
}
|
255
223
|
|
@@ -267,7 +235,7 @@
|
|
267
235
|
@apply items-center py-2.5;
|
268
236
|
}
|
269
237
|
|
270
|
-
.alert-
|
238
|
+
.alert-stamp {
|
271
239
|
@apply self-center;
|
272
240
|
}
|
273
241
|
|
@@ -292,7 +260,7 @@
|
|
292
260
|
@apply py-2;
|
293
261
|
}
|
294
262
|
|
295
|
-
.coco-
|
263
|
+
.coco-stamp {
|
296
264
|
@apply mt-0;
|
297
265
|
}
|
298
266
|
|
@@ -2,22 +2,11 @@ module Coco
|
|
2
2
|
module App
|
3
3
|
module Elements
|
4
4
|
class Alert < Coco::Component
|
5
|
-
include Concerns::
|
5
|
+
include Concerns::AcceptsOptions
|
6
6
|
include Concerns::AcceptsTheme
|
7
7
|
|
8
8
|
THEMES = %W[positive warning negative info positive-vivid warning-vivid negative-vivid info-vivid]
|
9
9
|
|
10
|
-
THEME_ICONS = {
|
11
|
-
positive: :check_circle,
|
12
|
-
positive_vivid: :check_circle,
|
13
|
-
warning: :alert_triangle,
|
14
|
-
warning_vivid: :alert_triangle,
|
15
|
-
negative: :alert_circle,
|
16
|
-
negative_vivid: :alert_circle,
|
17
|
-
info: :info,
|
18
|
-
info_vivid: :info
|
19
|
-
}.freeze
|
20
|
-
|
21
10
|
accepts_option :dismissable, from: [true, false], default: false
|
22
11
|
accepts_option :dismiss_after_action, from: [true, false], default: true
|
23
12
|
accepts_option :banner, from: [true, false], default: false
|
@@ -45,13 +34,9 @@ module Coco
|
|
45
34
|
end
|
46
35
|
|
47
36
|
before_render do
|
48
|
-
theme = get_option_value(:theme)
|
49
|
-
|
50
37
|
unless tag_attr?(:id)
|
51
38
|
set_tag_attr(:id, "alert-#{rand(1000)}")
|
52
39
|
end
|
53
|
-
|
54
|
-
icon(name: THEME_ICONS[theme.tr("-", "_").to_sym])
|
55
40
|
end
|
56
41
|
|
57
42
|
def dismissable?
|
@@ -78,6 +63,16 @@ module Coco
|
|
78
63
|
def button_size
|
79
64
|
get_option_value(:condensed) ? :xs : :sm
|
80
65
|
end
|
66
|
+
|
67
|
+
def stamp
|
68
|
+
type = unvividify(get_option_value(:theme))&.to_sym
|
69
|
+
style = if get_option_value(:banner)
|
70
|
+
:compact
|
71
|
+
else
|
72
|
+
vivid? ? :inverse : :subtle
|
73
|
+
end
|
74
|
+
coco_stamp(type, style:)
|
75
|
+
end
|
81
76
|
end
|
82
77
|
end
|
83
78
|
end
|
@@ -2,10 +2,13 @@
|
|
2
2
|
[data-coco][data-component="app-button-group"] {
|
3
3
|
width: fit-content;
|
4
4
|
border-radius: 44px;
|
5
|
-
@apply opacity-0;
|
6
5
|
|
7
|
-
|
8
|
-
@apply opacity-
|
6
|
+
&[data-collapsible="true"] {
|
7
|
+
@apply opacity-0;
|
8
|
+
|
9
|
+
&.button-group-ready {
|
10
|
+
@apply opacity-100;
|
11
|
+
}
|
9
12
|
}
|
10
13
|
|
11
14
|
.button-group-buttons {
|
@@ -29,13 +29,15 @@ export default CocoComponent("appButtonGroup", () => {
|
|
29
29
|
},
|
30
30
|
|
31
31
|
init() {
|
32
|
-
this
|
33
|
-
|
32
|
+
if (this.collapsible) {
|
33
|
+
this.$nextTick(() => {
|
34
|
+
this.onResize();
|
35
|
+
this.createSingletonTooltip();
|
36
|
+
this.ready = true;
|
37
|
+
});
|
38
|
+
} else {
|
34
39
|
this.ready = true;
|
35
|
-
|
36
|
-
this.onResize();
|
37
|
-
this.createSingletonTooltip();
|
38
|
-
});
|
40
|
+
}
|
39
41
|
|
40
42
|
this.$watch("collapsed", (value) => {
|
41
43
|
this.buttons.forEach((button) => {
|
@@ -0,0 +1,103 @@
|
|
1
|
+
@layer components {
|
2
|
+
[data-coco][data-component="app-stamp"] {
|
3
|
+
&:not([data-style="compact"]) {
|
4
|
+
@apply rounded-full relative;
|
5
|
+
|
6
|
+
.coco-icon {
|
7
|
+
@apply absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2;
|
8
|
+
}
|
9
|
+
|
10
|
+
/* Sizes */
|
11
|
+
|
12
|
+
&[data-size="xs"] {
|
13
|
+
@apply w-6 h-6;
|
14
|
+
}
|
15
|
+
|
16
|
+
&[data-size="sm"] {
|
17
|
+
@apply w-7 h-7;
|
18
|
+
}
|
19
|
+
|
20
|
+
&[data-size="md"] {
|
21
|
+
@apply w-9 h-9;
|
22
|
+
}
|
23
|
+
|
24
|
+
&[data-size="lg"] {
|
25
|
+
@apply w-11 h-11;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
/* Themes */
|
30
|
+
|
31
|
+
&[data-theme="positive"] {
|
32
|
+
&[data-style="subtle"] {
|
33
|
+
@apply bg-green-200 text-content-positive;
|
34
|
+
}
|
35
|
+
|
36
|
+
&[data-style="vivid"] {
|
37
|
+
@apply bg-background-positive text-content-light-1;
|
38
|
+
}
|
39
|
+
|
40
|
+
&[data-style="inverse"] {
|
41
|
+
@apply bg-green-700 text-content-light-1;
|
42
|
+
}
|
43
|
+
|
44
|
+
&[data-style="compact"] {
|
45
|
+
@apply text-content-positive;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
&[data-theme="negative"] {
|
50
|
+
&[data-style="subtle"] {
|
51
|
+
@apply bg-red-200 text-content-negative;
|
52
|
+
}
|
53
|
+
|
54
|
+
&[data-style="vivid"] {
|
55
|
+
@apply bg-background-negative text-content-light-1;
|
56
|
+
}
|
57
|
+
|
58
|
+
&[data-style="inverse"] {
|
59
|
+
@apply bg-red-700 text-content-light-1;
|
60
|
+
}
|
61
|
+
|
62
|
+
&[data-style="compact"] {
|
63
|
+
@apply text-content-negative;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
&[data-theme="warning"] {
|
68
|
+
&[data-style="subtle"] {
|
69
|
+
@apply bg-amber-100 text-content-warning;
|
70
|
+
}
|
71
|
+
|
72
|
+
&[data-style="vivid"] {
|
73
|
+
@apply bg-background-warning text-content-light-1;
|
74
|
+
}
|
75
|
+
|
76
|
+
&[data-style="inverse"] {
|
77
|
+
@apply bg-amber-600 text-content-light-1;
|
78
|
+
}
|
79
|
+
|
80
|
+
&[data-style="compact"] {
|
81
|
+
@apply text-content-warning;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
&[data-theme="info"] {
|
86
|
+
&[data-style="subtle"] {
|
87
|
+
@apply bg-blue-200 text-content-info;
|
88
|
+
}
|
89
|
+
|
90
|
+
&[data-style="vivid"] {
|
91
|
+
@apply bg-background-info text-content-light-1;
|
92
|
+
}
|
93
|
+
|
94
|
+
&[data-style="inverse"] {
|
95
|
+
@apply bg-blue-700 text-content-light-1;
|
96
|
+
}
|
97
|
+
|
98
|
+
&[data-style="compact"] {
|
99
|
+
@apply text-content-info;
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Coco
|
2
|
+
module App
|
3
|
+
module Elements
|
4
|
+
class Stamp < Coco::Component
|
5
|
+
include Concerns::AcceptsOptions
|
6
|
+
include Concerns::AcceptsTheme
|
7
|
+
|
8
|
+
THEMES = [
|
9
|
+
"positive",
|
10
|
+
"negative",
|
11
|
+
"warning",
|
12
|
+
"info"
|
13
|
+
]
|
14
|
+
|
15
|
+
DEFAULT_THEME = "info"
|
16
|
+
|
17
|
+
accepts_option :size, from: %i[xs sm md lg], default: :md
|
18
|
+
accepts_option :style, from: %i[subtle vivid inverse compact], default: :subtle
|
19
|
+
accepts_option :theme, from: THEMES, default: DEFAULT_THEME
|
20
|
+
|
21
|
+
attr_reader :icon_name
|
22
|
+
|
23
|
+
def initialize(icon:, **kwargs)
|
24
|
+
@icon_name = icon
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -11,6 +11,10 @@ module Coco
|
|
11
11
|
renders_one :header
|
12
12
|
renders_many :hidden_sections
|
13
13
|
|
14
|
+
renders_many :sections, ->(**kwargs, &block) do
|
15
|
+
coco_tag(:section, **kwargs, &block)
|
16
|
+
end
|
17
|
+
|
14
18
|
renders_one :previous_link, ->(**kwargs) do
|
15
19
|
Coco::PagerLink.new(**kwargs, direction: :previous, class: "page-control-previous")
|
16
20
|
end
|
@@ -24,11 +24,11 @@
|
|
24
24
|
<% else %>
|
25
25
|
<div data-role="inline-modal-content">
|
26
26
|
<% if container_type == :dialog %>
|
27
|
-
<%= render Coco::ModalDialog.new(title: title.to_s, dismissable: false) do %>
|
27
|
+
<%= render Coco::ModalDialog.new(id: @container_id, title: title.to_s, dismissable: false) do %>
|
28
28
|
<%= content %>
|
29
29
|
<% end %>
|
30
30
|
<% else %>
|
31
|
-
<%= coco_panel do %>
|
31
|
+
<%= coco_panel(id: @container_id) do %>
|
32
32
|
<%= content %>
|
33
33
|
<% end %>
|
34
34
|
<% end %>
|
@@ -9,15 +9,17 @@ module Coco
|
|
9
9
|
renders_one :title
|
10
10
|
|
11
11
|
renders_one :container, types: {
|
12
|
-
dialog: ->(**kwargs, &block) do
|
12
|
+
dialog: ->(id: nil, **kwargs, &block) do
|
13
13
|
@container_content = block
|
14
|
+
@container_id = id
|
14
15
|
@container_type = :dialog
|
15
|
-
Coco::ModalDialog.new(dismissable: get_option_value(:dismissable), **kwargs)
|
16
|
+
Coco::ModalDialog.new(dismissable: get_option_value(:dismissable), id:, **kwargs)
|
16
17
|
end,
|
17
18
|
|
18
|
-
lightbox: ->(**kwargs, &block) do
|
19
|
+
lightbox: ->(id: nil, **kwargs, &block) do
|
19
20
|
@container_type = :lightbox
|
20
|
-
|
21
|
+
@container_id = id
|
22
|
+
Coco::ModalLightbox.new(dismissable: get_option_value(:dismissable), id:, **kwargs)
|
21
23
|
end
|
22
24
|
}
|
23
25
|
|
@@ -5,5 +5,11 @@ module Coco
|
|
5
5
|
accepts_option :size, from: [:auto, :full], default: :auto
|
6
6
|
accepts_option :prose, from: [true, false], default: false
|
7
7
|
accepts_option :boxed, from: [true, false], default: true
|
8
|
+
|
9
|
+
attr_reader :text_content
|
10
|
+
|
11
|
+
def initialize(text_content: nil, **)
|
12
|
+
@text_content = text_content
|
13
|
+
end
|
8
14
|
end
|
9
15
|
end
|
@@ -68,6 +68,23 @@ module Coco
|
|
68
68
|
render Coco::App::Elements::SeamlessTextarea.new(**), &block
|
69
69
|
end
|
70
70
|
|
71
|
+
def coco_stamp(type = nil, **)
|
72
|
+
props = case type
|
73
|
+
when :success, :positive
|
74
|
+
{icon: :check_circle, theme: :positive}
|
75
|
+
when :error, :negative
|
76
|
+
{icon: :alert_circle, theme: :negative}
|
77
|
+
when :warning
|
78
|
+
{icon: :alert_triangle, theme: :warning}
|
79
|
+
when :info
|
80
|
+
{icon: :info, theme: :info}
|
81
|
+
else
|
82
|
+
{}
|
83
|
+
end
|
84
|
+
|
85
|
+
render Coco::App::Elements::Stamp.new(**props, **)
|
86
|
+
end
|
87
|
+
|
71
88
|
def coco_snackbar(**, &block)
|
72
89
|
render Coco::App::Elements::Snackbar.new(**), &block
|
73
90
|
end
|
@@ -29,8 +29,8 @@ module Coco
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def coco_placeholder(
|
33
|
-
render Coco::Placeholder.new(
|
32
|
+
def coco_placeholder(text_content = nil, **, &block)
|
33
|
+
render Coco::Placeholder.new(text_content:, **), &block
|
34
34
|
end
|
35
35
|
|
36
36
|
def coco_modal(name = "default", **, &block)
|
@@ -12,7 +12,7 @@ module.exports = merge(baseConfig, {
|
|
12
12
|
fontFamily: {
|
13
13
|
display: [fontFamily.displaySans, ...defaultTheme.fontFamily.sans],
|
14
14
|
body: [fontFamily.bodySans, ...defaultTheme.fontFamily.sans],
|
15
|
-
|
15
|
+
branded: [fontFamily.displaySerif, ...defaultTheme.fontFamily.serif],
|
16
16
|
},
|
17
17
|
extend: {
|
18
18
|
fontSize,
|
@@ -12,6 +12,7 @@ module.exports = merge(baseConfig, {
|
|
12
12
|
fontFamily: {
|
13
13
|
display: [fontFamily.displaySans, ...defaultTheme.fontFamily.sans],
|
14
14
|
body: [fontFamily.bodySans, ...defaultTheme.fontFamily.sans],
|
15
|
+
branded: [fontFamily.displaySerif, ...defaultTheme.fontFamily.serif],
|
15
16
|
},
|
16
17
|
extend: {
|
17
18
|
fontSize,
|
data/config/tokens.cjs
CHANGED
@@ -199,11 +199,16 @@ const fontSize = {
|
|
199
199
|
"display-3": ["64px", "68px"],
|
200
200
|
"display-4": ["48px", "52px"],
|
201
201
|
|
202
|
-
"
|
203
|
-
"
|
204
|
-
"
|
202
|
+
"relaxed-display-1": ["96px", "104px"],
|
203
|
+
"relaxed-display-2": ["80px", "88px"],
|
204
|
+
"relaxed-display-3": ["64px", "72px"],
|
205
|
+
"relaxed-display-4": ["48px", "56px"],
|
206
|
+
|
207
|
+
"heading-1": ["40px", "48px"],
|
208
|
+
"heading-2": ["32px", "40px"],
|
209
|
+
"heading-3": ["28px", "36px"],
|
205
210
|
"heading-4": ["24px", "30px"],
|
206
|
-
"heading-5": ["20px", "
|
211
|
+
"heading-5": ["20px", "24px"],
|
207
212
|
"heading-6": ["16px", "20px"],
|
208
213
|
|
209
214
|
"subheading-1": ["32px", "40px"],
|
data/lib/coco/engine.rb
CHANGED
@@ -30,8 +30,10 @@ module Coco
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
Rails.
|
34
|
-
Rails.
|
33
|
+
if Rails.env.production?
|
34
|
+
Rails.application.config.to_prepare do
|
35
|
+
Rails.autoloaders.main.eager_load_dir(coco_dir)
|
36
|
+
end
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
data/lib/coco.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coveragebook_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Perkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -1423,6 +1423,7 @@ files:
|
|
1423
1423
|
- app/assets/css/base/components/tooltip.css
|
1424
1424
|
- app/assets/css/base/utils/colors.css
|
1425
1425
|
- app/assets/css/base/utils/icons.css
|
1426
|
+
- app/assets/css/base/utils/text.css
|
1426
1427
|
- app/assets/css/book.css
|
1427
1428
|
- app/assets/css/book/config.css
|
1428
1429
|
- app/assets/css/libs/tippy.css
|
@@ -1492,8 +1493,6 @@ files:
|
|
1492
1493
|
- app/components/coco/app/blocks/sidebar_nav/navbar/navbar.html.erb
|
1493
1494
|
- app/components/coco/app/blocks/sidebar_nav/navbar/navbar.js
|
1494
1495
|
- app/components/coco/app/blocks/sidebar_nav/navbar/navbar.rb
|
1495
|
-
- app/components/coco/app/blocks/slat/slat.css
|
1496
|
-
- app/components/coco/app/blocks/slat/slat.rb
|
1497
1496
|
- app/components/coco/app/blocks/slide_editor/slide_editor.css
|
1498
1497
|
- app/components/coco/app/blocks/slide_editor/slide_editor.html.erb
|
1499
1498
|
- app/components/coco/app/blocks/slide_editor/slide_editor.js
|
@@ -1559,6 +1558,9 @@ files:
|
|
1559
1558
|
- app/components/coco/app/elements/snackbar/snackbar.html.erb
|
1560
1559
|
- app/components/coco/app/elements/snackbar/snackbar.js
|
1561
1560
|
- app/components/coco/app/elements/snackbar/snackbar.rb
|
1561
|
+
- app/components/coco/app/elements/stamp/stamp.css
|
1562
|
+
- app/components/coco/app/elements/stamp/stamp.html.erb
|
1563
|
+
- app/components/coco/app/elements/stamp/stamp.rb
|
1562
1564
|
- app/components/coco/app/elements/system_banner/system_banner.css
|
1563
1565
|
- app/components/coco/app/elements/system_banner/system_banner.html.erb
|
1564
1566
|
- app/components/coco/app/elements/system_banner/system_banner.js
|