coveragebook_components 0.6.2 → 0.6.4
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 +252 -212
- data/app/assets/build/coco/app.js +19 -2
- data/app/assets/build/coco/book.css +466 -218
- data/app/assets/build/coco/icons/custom/eye-off-red.svg +17 -0
- data/app/assets/build/coco/icons/custom/google-sso.svg +9 -0
- data/app/assets/build/coco/icons/custom/layout-overlay.svg +7 -0
- data/app/assets/build/coco/icons/custom/layout-split.svg +8 -0
- data/app/assets/build/coco/icons/custom/layout-stacked.svg +7 -0
- data/app/assets/build/coco/icons/custom/microsoft-sso.svg +6 -0
- data/app/assets/build/coco/icons/custom/montage.svg +10 -0
- data/app/assets/css/base/utils/icons.css +6 -5
- data/app/assets/css/book.css +1 -0
- data/app/assets/custom_icons/other/eye-off-red.svg +17 -0
- data/app/assets/custom_icons/other/google-sso.svg +9 -0
- data/app/assets/custom_icons/other/layout-overlay.svg +7 -0
- data/app/assets/custom_icons/other/layout-split.svg +8 -0
- data/app/assets/custom_icons/other/layout-stacked.svg +7 -0
- data/app/assets/custom_icons/other/microsoft-sso.svg +6 -0
- data/app/assets/custom_icons/other/montage.svg +10 -0
- data/app/components/coco/app/blocks/slide_editor/slide_editor.css +27 -18
- data/app/components/coco/app/blocks/slide_editor/slide_editor.html.erb +5 -3
- data/app/components/coco/app/blocks/slide_editor/slide_editor.js +23 -0
- data/app/components/coco/app/elements/seamless_textarea/seamless_textarea.js +1 -1
- data/app/components/coco/base/icon/icon.css +6 -2
- data/app/components/coco/base/icon/icon.html.erb +1 -1
- data/app/components/coco/base/icon/icon.rb +32 -9
- data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.css +156 -140
- data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.html.erb +25 -21
- data/lib/coco.rb +1 -1
- metadata +17 -3
@@ -0,0 +1,17 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<defs>
|
3
|
+
<path d="M8.9 4.5c-.1-.6.2-1.1.8-1.2.7-.2 1.5-.3 2.3-.3 7.5 0 11.7 8.2 11.9 8.6.1.3.1.6 0 .9-.6 1.2-1.4 2.3-2.3 3.4-.2.2-.5.4-.8.4-.2 0-.5-.1-.6-.2-.4-.4-.5-1-.1-1.4.7-.8 1.3-1.6 1.8-2.5-.9-1.6-4.5-7-9.9-7-.6 0-1.3.1-1.9.2-.5-.1-1-.4-1.2-.9Zm14.8 19.2c-.2.2-.4.3-.7.3-.3 0-.5-.1-.7-.3l-4.5-4.5C16.1 20.4 14.1 21 12 21 4.5 21 .3 12.8.1 12.4c-.1-.3-.1-.6 0-.9 1.1-2.1 2.7-4 4.5-5.5L.3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0l22 22c.4.4.4 1 0 1.4ZM9.9 12.1c0 .5.2 1 .6 1.4.6.5 1.3.6 2 .4L10 11.4c0 .3-.1.5-.1.7Zm6.5 5.7L14 15.5c-.6.4-1.4.6-2.1.6-1 0-2-.4-2.7-1.1-.8-.7-1.2-1.7-1.3-2.8 0-.8.2-1.6.6-2.3L6 7.4C4.5 8.7 3.2 10.2 2.1 12c.9 1.6 4.5 7 9.9 7 1.5 0 3-.4 4.4-1.2Z" id="a"/>
|
4
|
+
</defs>
|
5
|
+
<g fill="none" fill-rule="evenodd">
|
6
|
+
<g transform="translate(1 1)">
|
7
|
+
<mask id="b" fill="#fff">
|
8
|
+
<use xlink:href="#a"/>
|
9
|
+
</mask>
|
10
|
+
<use fill="#000" fill-rule="nonzero" xlink:href="#a"/>
|
11
|
+
<g mask="url(#b)" fill="#000">
|
12
|
+
<path d="M0 0h24v24H0z"/>
|
13
|
+
</g>
|
14
|
+
</g>
|
15
|
+
<path stroke="#DF5861" stroke-width="2" stroke-linecap="round" d="m1.5 1.5 23 23"/>
|
16
|
+
</g>
|
17
|
+
</svg>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<mask id="a" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance">
|
3
|
+
<path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask>
|
4
|
+
<g mask="url(#a)">
|
5
|
+
<path fill="#FBBC05" d="M-1.09 19.09V4.91L8.181 12l-9.273 7.09Z"/>
|
6
|
+
</g>
|
7
|
+
<mask id="b" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance">
|
8
|
+
<path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask><g mask="url(#b)"><path fill="#EA4335" d="M-1.09 4.91 8.181 12 12 8.673l13.09-2.128V-1.09H-1.09v6Z"/></g><mask id="c" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask><g mask="url(#c)"><path fill="#34A853" d="M-1.09 19.09 15.272 6.546l4.309.546 5.509-8.182v26.182H-1.091v-6Z"/></g><mask id="d" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask><g mask="url(#d)"><path fill="#4285F4" d="M25.09 25.09 8.183 12 6 10.364l19.09-5.455v20.182Z"/></g>
|
9
|
+
</svg>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<rect stroke="#028871" stroke-width="2" fill="#EBF7F5" x="1" y="1" width="22" height="22" rx="4"/>
|
4
|
+
<rect fill="#028871" x="4" y="9" width="8" height="2" rx="1"/>
|
5
|
+
<rect fill="#028871" x="4" y="13" width="6" height="2" rx="1"/>
|
6
|
+
</g>
|
7
|
+
</svg>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<rect stroke="#028871" stroke-width="2" fill="#FAFAFA" x="1" y="1" width="22" height="22" rx="4"/>
|
4
|
+
<rect fill="#028871" opacity=".4" x="12" y="7" width="8" height="10" rx="2"/>
|
5
|
+
<rect fill="#028871" x="4" y="9" width="6" height="2" rx="1"/>
|
6
|
+
<rect fill="#028871" x="4" y="13" width="5" height="2" rx="1"/>
|
7
|
+
</g>
|
8
|
+
</svg>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<rect stroke="#028871" stroke-width="2" fill="#FAFAFA" x="1" y="1" width="22" height="22" rx="4"/>
|
4
|
+
<rect fill="#028871" x="4.94" y="5.174" width="14" height="2" rx="1"/>
|
5
|
+
<rect fill="#028871" opacity=".4" x="4" y="10" width="16" height="10" rx="2"/>
|
6
|
+
</g>
|
7
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21">
|
2
|
+
<rect x="1" y="1" width="9" height="9" fill="#f25022"/>
|
3
|
+
<rect x="1" y="11" width="9" height="9" fill="#00a4ef"/>
|
4
|
+
<rect x="11" y="1" width="9" height="9" fill="#7fba00"/>
|
5
|
+
<rect x="11" y="11" width="9" height="9" fill="#ffb900"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<path d="M0 0h24v24H0z"/>
|
4
|
+
<g transform="translate(2 2)" stroke="currentColor" stroke-width="2">
|
5
|
+
<rect x="12" y="3" width="7" height="12" rx="2.105"/>
|
6
|
+
<rect x="1" y="1" width="7" height="7" rx="2.105"/>
|
7
|
+
<rect x="1" y="12" width="7" height="7" rx="2.105"/>
|
8
|
+
</g>
|
9
|
+
</g>
|
10
|
+
</svg>
|
@@ -1,15 +1,16 @@
|
|
1
1
|
@layer utilities {
|
2
2
|
.icon {
|
3
|
-
@apply text-current;
|
4
|
-
stroke-linecap: round;
|
5
|
-
stroke-linejoin: round;
|
6
3
|
}
|
7
4
|
|
8
5
|
.icon-stroke {
|
9
|
-
@apply fill-none stroke-2 stroke-current;
|
6
|
+
@apply fill-none stroke-2 stroke-current text-current;
|
7
|
+
stroke-linecap: round;
|
8
|
+
stroke-linejoin: round;
|
10
9
|
}
|
11
10
|
|
12
11
|
.icon-fill {
|
13
|
-
@apply fill-current;
|
12
|
+
@apply fill-current text-current;
|
13
|
+
stroke-linecap: round;
|
14
|
+
stroke-linejoin: round;
|
14
15
|
}
|
15
16
|
}
|
data/app/assets/css/book.css
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<defs>
|
3
|
+
<path d="M8.9 4.5c-.1-.6.2-1.1.8-1.2.7-.2 1.5-.3 2.3-.3 7.5 0 11.7 8.2 11.9 8.6.1.3.1.6 0 .9-.6 1.2-1.4 2.3-2.3 3.4-.2.2-.5.4-.8.4-.2 0-.5-.1-.6-.2-.4-.4-.5-1-.1-1.4.7-.8 1.3-1.6 1.8-2.5-.9-1.6-4.5-7-9.9-7-.6 0-1.3.1-1.9.2-.5-.1-1-.4-1.2-.9Zm14.8 19.2c-.2.2-.4.3-.7.3-.3 0-.5-.1-.7-.3l-4.5-4.5C16.1 20.4 14.1 21 12 21 4.5 21 .3 12.8.1 12.4c-.1-.3-.1-.6 0-.9 1.1-2.1 2.7-4 4.5-5.5L.3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0l22 22c.4.4.4 1 0 1.4ZM9.9 12.1c0 .5.2 1 .6 1.4.6.5 1.3.6 2 .4L10 11.4c0 .3-.1.5-.1.7Zm6.5 5.7L14 15.5c-.6.4-1.4.6-2.1.6-1 0-2-.4-2.7-1.1-.8-.7-1.2-1.7-1.3-2.8 0-.8.2-1.6.6-2.3L6 7.4C4.5 8.7 3.2 10.2 2.1 12c.9 1.6 4.5 7 9.9 7 1.5 0 3-.4 4.4-1.2Z" id="a"/>
|
4
|
+
</defs>
|
5
|
+
<g fill="none" fill-rule="evenodd">
|
6
|
+
<g transform="translate(1 1)">
|
7
|
+
<mask id="b" fill="#fff">
|
8
|
+
<use xlink:href="#a"/>
|
9
|
+
</mask>
|
10
|
+
<use fill="#000" fill-rule="nonzero" xlink:href="#a"/>
|
11
|
+
<g mask="url(#b)" fill="#000">
|
12
|
+
<path d="M0 0h24v24H0z"/>
|
13
|
+
</g>
|
14
|
+
</g>
|
15
|
+
<path stroke="#DF5861" stroke-width="2" stroke-linecap="round" d="m1.5 1.5 23 23"/>
|
16
|
+
</g>
|
17
|
+
</svg>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<mask id="a" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance">
|
3
|
+
<path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask>
|
4
|
+
<g mask="url(#a)">
|
5
|
+
<path fill="#FBBC05" d="M-1.09 19.09V4.91L8.181 12l-9.273 7.09Z"/>
|
6
|
+
</g>
|
7
|
+
<mask id="b" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance">
|
8
|
+
<path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask><g mask="url(#b)"><path fill="#EA4335" d="M-1.09 4.91 8.181 12 12 8.673l13.09-2.128V-1.09H-1.09v6Z"/></g><mask id="c" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask><g mask="url(#c)"><path fill="#34A853" d="M-1.09 19.09 15.272 6.546l4.309.546 5.509-8.182v26.182H-1.091v-6Z"/></g><mask id="d" width="24" height="24" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M23.182 9.818H12v4.636h6.436c-.6 2.946-3.109 4.637-6.436 4.637A7.077 7.077 0 0 1 4.91 12 7.077 7.077 0 0 1 12 4.91c1.69 0 3.218.6 4.418 1.58L19.91 3C17.782 1.145 15.055 0 12 0 5.345 0 0 5.345 0 12c0 6.654 5.345 12 12 12 6 0 11.454-4.364 11.454-12 0-.71-.108-1.473-.272-2.182Z"/></mask><g mask="url(#d)"><path fill="#4285F4" d="M25.09 25.09 8.183 12 6 10.364l19.09-5.455v20.182Z"/></g>
|
9
|
+
</svg>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<rect stroke="#028871" stroke-width="2" fill="#EBF7F5" x="1" y="1" width="22" height="22" rx="4"/>
|
4
|
+
<rect fill="#028871" x="4" y="9" width="8" height="2" rx="1"/>
|
5
|
+
<rect fill="#028871" x="4" y="13" width="6" height="2" rx="1"/>
|
6
|
+
</g>
|
7
|
+
</svg>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<rect stroke="#028871" stroke-width="2" fill="#FAFAFA" x="1" y="1" width="22" height="22" rx="4"/>
|
4
|
+
<rect fill="#028871" opacity=".4" x="12" y="7" width="8" height="10" rx="2"/>
|
5
|
+
<rect fill="#028871" x="4" y="9" width="6" height="2" rx="1"/>
|
6
|
+
<rect fill="#028871" x="4" y="13" width="5" height="2" rx="1"/>
|
7
|
+
</g>
|
8
|
+
</svg>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<rect stroke="#028871" stroke-width="2" fill="#FAFAFA" x="1" y="1" width="22" height="22" rx="4"/>
|
4
|
+
<rect fill="#028871" x="4.94" y="5.174" width="14" height="2" rx="1"/>
|
5
|
+
<rect fill="#028871" opacity=".4" x="4" y="10" width="16" height="10" rx="2"/>
|
6
|
+
</g>
|
7
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21">
|
2
|
+
<rect x="1" y="1" width="9" height="9" fill="#f25022"/>
|
3
|
+
<rect x="1" y="11" width="9" height="9" fill="#00a4ef"/>
|
4
|
+
<rect x="11" y="1" width="9" height="9" fill="#7fba00"/>
|
5
|
+
<rect x="11" y="11" width="9" height="9" fill="#ffb900"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
2
|
+
<g fill-rule="nonzero" fill="none">
|
3
|
+
<path d="M0 0h24v24H0z"/>
|
4
|
+
<g transform="translate(2 2)" stroke="currentColor" stroke-width="2">
|
5
|
+
<rect x="12" y="3" width="7" height="12" rx="2.105"/>
|
6
|
+
<rect x="1" y="1" width="7" height="7" rx="2.105"/>
|
7
|
+
<rect x="1" y="12" width="7" height="7" rx="2.105"/>
|
8
|
+
</g>
|
9
|
+
</g>
|
10
|
+
</svg>
|
@@ -87,13 +87,12 @@
|
|
87
87
|
stroke-width: 2px;
|
88
88
|
}
|
89
89
|
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
.slide-title,
|
91
|
+
.slide-text {
|
92
|
+
@apply outline outline-1 outline-transparent outline-offset-0 transition-[outline-color] duration-100;
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
}
|
94
|
+
textarea::placeholder {
|
95
|
+
@apply italic;
|
97
96
|
}
|
98
97
|
}
|
99
98
|
|
@@ -107,14 +106,19 @@
|
|
107
106
|
@apply text-content-dark-1;
|
108
107
|
}
|
109
108
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
}
|
109
|
+
.slide-title,
|
110
|
+
.slide-text {
|
111
|
+
&:hover,
|
112
|
+
&:focus {
|
113
|
+
outline-color: rgba(0, 0, 0, 0.3);
|
116
114
|
}
|
117
115
|
}
|
116
|
+
|
117
|
+
&[data-placeholders~="title"] [data-role="title"],
|
118
|
+
&[data-placeholders~="text1"] [data-role="text-primary"],
|
119
|
+
&[data-placeholders~="text2"] [data-role="text-secondary"] {
|
120
|
+
outline-color: rgba(0, 0, 0, 0.3) !important;
|
121
|
+
}
|
118
122
|
}
|
119
123
|
|
120
124
|
.slide-bg-dark {
|
@@ -127,14 +131,19 @@
|
|
127
131
|
@apply text-content-light-1;
|
128
132
|
}
|
129
133
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
}
|
134
|
+
.slide-title,
|
135
|
+
.slide-text {
|
136
|
+
&:hover,
|
137
|
+
&:focus {
|
138
|
+
outline-color: rgba(255, 255, 255, 0.3);
|
136
139
|
}
|
137
140
|
}
|
141
|
+
|
142
|
+
&[data-placeholders~="title"] [data-role="title"],
|
143
|
+
&[data-placeholders~="text1"] [data-role="text-primary"],
|
144
|
+
&[data-placeholders~="text2"] [data-role="text-secondary"] {
|
145
|
+
outline-color: rgba(255, 255, 255, 0.3) !important;
|
146
|
+
}
|
138
147
|
}
|
139
148
|
}
|
140
149
|
}
|
@@ -156,14 +156,16 @@
|
|
156
156
|
@dragenter.stop.prevent="dragging = true"
|
157
157
|
@dragover.stop.prevent="dragging = true"
|
158
158
|
@dragleave.stop.prevent="dragging = false"
|
159
|
-
@drop.stop.prevent="handleImageDrop($event)"
|
159
|
+
@drop.stop.prevent="handleImageDrop($event)"
|
160
|
+
@click="handleSlideClick">
|
160
161
|
<%= coco_editable_slide(
|
161
162
|
**slide_args,
|
162
163
|
data: {
|
163
164
|
role: "slide"
|
164
165
|
},
|
165
166
|
x: {
|
166
|
-
bind: "slide"
|
167
|
+
bind: "slide",
|
168
|
+
":data-placeholders": "blankTextAreasList",
|
167
169
|
}
|
168
170
|
) do |slide| %>
|
169
171
|
<% if title? %>
|
@@ -271,7 +273,7 @@
|
|
271
273
|
|
272
274
|
<% if image_1? %>
|
273
275
|
<% slide.with_image_1 do %>
|
274
|
-
<div class="editor-thumbnail-image" :style="
|
276
|
+
<div class="editor-thumbnail-image" :style="image1.data && `background-image: url('${image1.data}')`"></div>
|
275
277
|
<% end %>
|
276
278
|
<% end %>
|
277
279
|
|
@@ -64,6 +64,16 @@ export default CocoComponent("appSlideEditor", (data) => {
|
|
64
64
|
|
65
65
|
this.ready = true;
|
66
66
|
});
|
67
|
+
|
68
|
+
this.$watch("history.undoable", (undoable) => {
|
69
|
+
if (undoable) {
|
70
|
+
window.onbeforeunload = () => {
|
71
|
+
return true;
|
72
|
+
};
|
73
|
+
} else {
|
74
|
+
window.onbeforeunload = null;
|
75
|
+
}
|
76
|
+
});
|
67
77
|
},
|
68
78
|
|
69
79
|
undo(name, value) {
|
@@ -170,6 +180,19 @@ export default CocoComponent("appSlideEditor", (data) => {
|
|
170
180
|
input.files = dataTransfer.files;
|
171
181
|
},
|
172
182
|
|
183
|
+
handleSlideClick(event) {
|
184
|
+
if (Array.from(event.target.classList).includes("slide-text")) {
|
185
|
+
event.target.querySelector("textarea").focus();
|
186
|
+
}
|
187
|
+
},
|
188
|
+
|
189
|
+
get blankTextAreasList() {
|
190
|
+
return ["title", "text1", "text2"]
|
191
|
+
.map((textareaName) => (this[textareaName] === "" ? textareaName : ""))
|
192
|
+
.join(" ")
|
193
|
+
.trim();
|
194
|
+
},
|
195
|
+
|
173
196
|
get hasBgImage() {
|
174
197
|
return !!(this.bgImage && this.bgImage.data);
|
175
198
|
},
|
@@ -31,7 +31,7 @@ export default CocoComponent("appSeamlessTextarea", () => {
|
|
31
31
|
const fontSize = styles.getPropertyValue("font-size");
|
32
32
|
|
33
33
|
textarea.style.height = "4px";
|
34
|
-
let newHeight = textarea.scrollHeight
|
34
|
+
let newHeight = textarea.scrollHeight;
|
35
35
|
textarea.style.height = `${newHeight}px`;
|
36
36
|
|
37
37
|
if (this.height !== newHeight) {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
@layer components {
|
2
2
|
[data-coco][data-component="icon"] {
|
3
|
-
@apply inline-flex flex-none w-6 h-6 text-current;
|
3
|
+
@apply inline-flex flex-none w-6 h-6 text-current overflow-hidden;
|
4
4
|
|
5
5
|
svg {
|
6
6
|
@apply icon w-full h-full;
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
/* Styles */
|
10
10
|
|
11
|
-
&[data-icon]:not([data-style="fill"]) svg {
|
11
|
+
&[data-icon]:not([data-style="fill"]):not([data-style="custom"]) svg {
|
12
12
|
@apply icon-stroke;
|
13
13
|
}
|
14
14
|
|
@@ -18,6 +18,10 @@
|
|
18
18
|
|
19
19
|
/* Sizes */
|
20
20
|
|
21
|
+
&[data-size="xs"] {
|
22
|
+
@apply w-3 h-3;
|
23
|
+
}
|
24
|
+
|
21
25
|
&[data-size="sm"] {
|
22
26
|
@apply w-4 h-4;
|
23
27
|
}
|
@@ -6,13 +6,19 @@ module Coco
|
|
6
6
|
|
7
7
|
InvalidIconError = Class.new(StandardError)
|
8
8
|
|
9
|
-
accepts_option :size, from: %i[sm md lg xl xxl]
|
9
|
+
accepts_option :size, from: %i[xs sm md lg xl xxl]
|
10
10
|
accepts_option :spin, from: [true, false]
|
11
|
-
accepts_option :style, from: [:line, :fill]
|
11
|
+
accepts_option :style, from: [:line, :fill, :custom]
|
12
|
+
|
13
|
+
before_render do
|
14
|
+
if name
|
15
|
+
set_tag_data_attr(:icon, name)
|
16
|
+
set_option_value(:style, :custom) if icon_data[:custom]
|
17
|
+
end
|
18
|
+
end
|
12
19
|
|
13
20
|
def initialize(name: nil, **kwargs)
|
14
21
|
@icon_name = name&.to_s&.tr("_", "-")
|
15
|
-
set_tag_data_attr(:icon, name) if name
|
16
22
|
end
|
17
23
|
|
18
24
|
def name
|
@@ -20,19 +26,36 @@ module Coco
|
|
20
26
|
end
|
21
27
|
|
22
28
|
def svg
|
23
|
-
|
29
|
+
content || icon_data[:svg]
|
30
|
+
end
|
31
|
+
|
32
|
+
def icon_data
|
33
|
+
ICON_CACHE[name] ||= {
|
34
|
+
custom: custom?,
|
35
|
+
svg: read_svg
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
def custom?
|
40
|
+
@_custom ||= File.exist?(custom_icon_path)
|
24
41
|
end
|
25
42
|
|
26
43
|
def read_svg
|
27
|
-
|
28
|
-
|
29
|
-
|
44
|
+
if custom?
|
45
|
+
File.read(custom_icon_path).html_safe
|
46
|
+
elsif File.exist?(icon_path)
|
47
|
+
File.read(icon_path).html_safe
|
48
|
+
elsif Rails.env.development? || Rails.env.test?
|
30
49
|
raise InvalidIconError, "`#{name}` is not a valid icon name"
|
31
50
|
end
|
32
51
|
end
|
33
52
|
|
34
|
-
def
|
35
|
-
Coco::Engine.root.join("app/assets/build/coco/icons/#{name}.svg")
|
53
|
+
def icon_path
|
54
|
+
@_icon_path ||= Coco::Engine.root.join("app/assets/build/coco/icons/#{name}.svg")
|
55
|
+
end
|
56
|
+
|
57
|
+
def custom_icon_path
|
58
|
+
@_custom_icon_path ||= Coco::Engine.root.join("app/assets/build/coco/icons/custom/#{name}.svg")
|
36
59
|
end
|
37
60
|
end
|
38
61
|
end
|