coveragebook_components 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/build/coco/app.css +260 -34
  3. data/app/assets/build/coco/app.js +70 -8
  4. data/app/assets/build/coco/book.css +26 -15
  5. data/app/assets/build/coco/book.js +16 -3
  6. data/app/assets/build/coco/img/slides/one-col-media-layout.svg +3 -0
  7. data/app/assets/build/coco/img/slides/one-col-text-layout.svg +3 -0
  8. data/app/assets/build/coco/img/slides/one-col-title-layout.svg +4 -0
  9. data/app/assets/build/coco/img/slides/two-col-media-layout.svg +3 -0
  10. data/app/assets/build/coco/img/slides/two-col-mixed-layout.svg +5 -0
  11. data/app/assets/build/coco/img/slides/two-col-text-layout.svg +3 -0
  12. data/app/assets/build/coco/img/test/cb-logo.svg +8 -0
  13. data/app/assets/img/slides/one-col-media-layout.svg +3 -0
  14. data/app/assets/img/slides/one-col-text-layout.svg +3 -0
  15. data/app/assets/img/slides/one-col-title-layout.svg +4 -0
  16. data/app/assets/img/slides/two-col-media-layout.svg +3 -0
  17. data/app/assets/img/slides/two-col-mixed-layout.svg +5 -0
  18. data/app/assets/img/slides/two-col-text-layout.svg +3 -0
  19. data/app/assets/img/test/cb-logo.svg +8 -0
  20. data/app/assets/js/libs/alpine/plugins/dropdown.js +1 -0
  21. data/app/components/coco/app/blocks/slide_editor/slide_editor.css +84 -12
  22. data/app/components/coco/app/blocks/slide_editor/slide_editor.html.erb +100 -0
  23. data/app/components/coco/app/blocks/slide_editor/slide_editor.js +32 -1
  24. data/app/components/coco/app/blocks/slide_editor/slide_editor.rb +40 -1
  25. data/app/components/coco/app/elements/button/button.css +10 -1
  26. data/app/components/coco/app/elements/button/button.rb +4 -0
  27. data/app/components/coco/app/elements/button_group/button_group.css +19 -0
  28. data/app/components/coco/app/elements/button_group/button_group.rb +10 -0
  29. data/app/components/coco/app/elements/image_picker_button/image_picker_button.rb +0 -20
  30. data/app/components/coco/app/elements/layout_picker_button/layout_picker_button.css +74 -0
  31. data/app/components/coco/app/elements/layout_picker_button/layout_picker_button.html.erb +30 -0
  32. data/app/components/coco/app/elements/layout_picker_button/layout_picker_button.js +23 -0
  33. data/app/components/coco/app/elements/layout_picker_button/layout_picker_button.rb +38 -0
  34. data/app/components/coco/base/button/button.js +15 -0
  35. data/app/components/coco/base/button/button.rb +0 -5
  36. data/app/components/coco/base/image_uploader/image_uploader.html.erb +1 -3
  37. data/app/components/coco/base/svg/svg.html.erb +1 -0
  38. data/app/components/coco/base/svg/svg.rb +29 -0
  39. data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.css +12 -9
  40. data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.html.erb +6 -4
  41. data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.rb +4 -4
  42. data/app/components/coco/concerns/acts_as_button_group.rb +5 -0
  43. data/app/helpers/coco/app_helper.rb +4 -0
  44. data/app/helpers/coco/base_helper.rb +4 -0
  45. data/config/locales/coco.en.yml +2 -0
  46. data/lib/coco/options/group.rb +1 -34
  47. data/lib/coco/options/option.rb +0 -13
  48. data/lib/coco.rb +1 -1
  49. metadata +23 -5
  50. data/config/credentials/production.key +0 -1
  51. data/config/credentials/production.yml.enc +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0f8a950e6efdf71c86bd953e001515a50f626eee3b399d9e1ab3e8641a414b8
4
- data.tar.gz: 5aa2c63fc4dc1b1c8dde15d375e42ea9b075295737c6fa343430329c1e0bfa4e
3
+ metadata.gz: 324d5f797b12a43ba287186f0bb292881a0b2d7fa3cebf348c66394b1ab56543
4
+ data.tar.gz: 8d890765e161085db340052746adbe5def80174e6b3c410829d7add5a40d29e3
5
5
  SHA512:
6
- metadata.gz: c6ea041857553ce066d7b013c4429c458812306c85f1977cc24d18d4f6ac259e2aff72200d4d3070fa33b7fefe5e8da7ec1c9d11668259d3eb62260b1cec1b72
7
- data.tar.gz: 5d647e5e78c06a0e484180644dfa62d59bc411c18990c53618ad984ce366677523904c6c4452f6877b456cbb80dc3965b208d3993af6bee81a6055bec4ed3846
6
+ metadata.gz: c8c4c8539446948b4b2da346ff121fd7420d755ff7a0c992a68b9c26c40d905c6531c476603ba250edfc5b3d2f97da27bf3a587cb82184a4f01966368fb89661
7
+ data.tar.gz: 9c954db0e3d53181459c812fdd0248f99f2fda517fead437da41be871ea6f2f38598b46d65ee742da0e2557a709bb6d867f61ba0a4c9f2aaa9de09c9b1dfa50e
@@ -1104,6 +1104,8 @@ select{
1104
1104
  margin-bottom: 1.5rem}}
1105
1105
  [data-coco][data-component="app-slide-editor"] .editor-form form{
1106
1106
  display: none}
1107
+ [data-coco][data-component="app-slide-editor"] .slide-media{
1108
+ position: relative}
1107
1109
  [data-coco][data-component="app-slide-editor"] .editor-slide{
1108
1110
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
1109
1111
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
@@ -1111,6 +1113,97 @@ select{
1111
1113
  [data-coco][data-component="app-slide-editor"] .editor-slide textarea{
1112
1114
  width: 100%;
1113
1115
  flex: none}
1116
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader{
1117
+ position: relative;
1118
+ height: 100%;
1119
+ width: 100%}
1120
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-foreground-image{
1121
+ position: relative;
1122
+ height: 100%;
1123
+ width: 100%;
1124
+ transition-property: outline-color;
1125
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1126
+ transition-duration: 100ms}
1127
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-foreground-image:hover{
1128
+ outline-style: solid;
1129
+ outline-width: 1px;
1130
+ outline-offset: 0px;
1131
+ outline-color: transparent}
1132
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-foreground-image img{
1133
+ height: 100%;
1134
+ width: 100%;
1135
+ -o-object-fit: contain;
1136
+ object-fit: contain}
1137
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder{
1138
+ inset: 0px;
1139
+ display: flex;
1140
+ flex-direction: column;
1141
+ align-items: center;
1142
+ justify-content: center;
1143
+ text-align: center}
1144
+ @supports (aspect-ratio: 1 / 1){
1145
+
1146
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder{
1147
+ aspect-ratio: 4/3}}
1148
+ @supports not (aspect-ratio: 1 / 1){
1149
+
1150
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder::before{
1151
+ content: "";
1152
+ float: left;
1153
+ padding-top: calc(100% / (4/3))}
1154
+
1155
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder::after{
1156
+ clear: left;
1157
+ content: "";
1158
+ display: block}}
1159
+ @container (min-width: 700px){
1160
+
1161
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder{
1162
+ position: absolute}
1163
+
1164
+ @supports (aspect-ratio: 1 / 1){
1165
+
1166
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder{
1167
+ aspect-ratio: auto}}
1168
+
1169
+ @supports not (aspect-ratio: 1 / 1){
1170
+
1171
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder::before{
1172
+ content: "";
1173
+ float: left;
1174
+ padding-top: calc(100% / (auto))}
1175
+
1176
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder::after{
1177
+ clear: left;
1178
+ content: "";
1179
+ display: block}}}
1180
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder{
1181
+ outline-style: solid;
1182
+ outline-width: 1px;
1183
+ outline-offset: 0px;
1184
+ outline-color: transparent;
1185
+ background-color: rgba(255, 255, 255, 0.1)}
1186
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder .coco-icon{
1187
+ color: currentColor;
1188
+ width: 3em;
1189
+ height: 3em;
1190
+ margin-bottom: 0.6em}
1191
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder .coco-icon,
1192
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-placeholder .editor-image-upload-placeholder-text{
1193
+ opacity: 0.5}
1194
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader .editor-image-upload-toolbar{
1195
+ position: absolute;
1196
+ left: 50%;
1197
+ top: 0px;
1198
+ --tw-translate-x: -50%;
1199
+ --tw-translate-y: -50%;
1200
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1201
+ opacity: 0;
1202
+ transition-property: opacity;
1203
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1204
+ transition-duration: 100ms}
1205
+ [data-coco][data-component="app-slide-editor"] .editor-foreground-image-uploader:hover .editor-image-upload-toolbar{
1206
+ opacity: 1}
1114
1207
  [data-coco][data-component="app-slide-editor"] .coco-button.editor-saving{
1115
1208
  cursor: not-allowed}
1116
1209
  [data-coco][data-component="app-slide-editor"] .editor-thumbnail-wrapper{
@@ -1122,7 +1215,13 @@ select{
1122
1215
  position: absolute;
1123
1216
  top: 0px;
1124
1217
  z-index: -1000;
1125
- width: 500px}
1218
+ width: 780px}
1219
+ [data-coco][data-component="app-slide-editor"] .editor-thumbnail-image{
1220
+ height: 100%;
1221
+ width: 100%;
1222
+ background-size: contain;
1223
+ background-position: center;
1224
+ background-repeat: no-repeat}
1126
1225
  [data-coco][data-component="app-slide-editor"] .editor-icon-bg-color{
1127
1226
  fill: currentColor;
1128
1227
  stroke: #111827;
@@ -1131,19 +1230,36 @@ select{
1131
1230
  outline-style: solid;
1132
1231
  outline-width: 1px;
1133
1232
  outline-offset: 0px;
1134
- outline-color: transparent}
1233
+ outline-color: transparent;
1234
+ transition-property: outline-color;
1235
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1236
+ transition-duration: 100ms}
1135
1237
  [data-coco][data-component="app-slide-editor"] [data-component="app-seamless-textarea"] textarea::-moz-placeholder{
1136
1238
  font-style: italic}
1137
1239
  [data-coco][data-component="app-slide-editor"] [data-component="app-seamless-textarea"] textarea::placeholder{
1138
1240
  font-style: italic}
1241
+ [data-coco][data-component="app-slide-editor"] .slide-bg-light .editor-foreground-image,
1242
+ [data-coco][data-component="app-slide-editor"] .slide-bg-light .editor-image-upload-placeholder {
1243
+ outline-color: rgba(0, 0, 0, 0.3) !important;
1244
+ }
1245
+ [data-coco][data-component="app-slide-editor"] .slide-bg-light .editor-image-upload-placeholder{
1246
+ --tw-text-opacity: 1;
1247
+ color: rgb(17 24 39 / var(--tw-text-opacity))}
1139
1248
  [data-coco][data-component="app-slide-editor"] .slide-bg-light [data-component="app-seamless-textarea"] textarea:hover,
1140
- [data-coco][data-component="app-slide-editor"] .slide-bg-light [data-component="app-seamless-textarea"] textarea:focus {
1141
- outline-color: rgba(0, 0, 0, 0.3);
1142
- }
1249
+ [data-coco][data-component="app-slide-editor"] .slide-bg-light [data-component="app-seamless-textarea"] textarea:focus {
1250
+ outline-color: rgba(0, 0, 0, 0.3);
1251
+ }
1252
+ [data-coco][data-component="app-slide-editor"] .slide-bg-dark .editor-foreground-image,
1253
+ [data-coco][data-component="app-slide-editor"] .slide-bg-dark .editor-image-upload-placeholder {
1254
+ outline-color: rgba(255, 255, 255, 0.3) !important;
1255
+ }
1256
+ [data-coco][data-component="app-slide-editor"] .slide-bg-dark .editor-image-upload-placeholder{
1257
+ --tw-text-opacity: 1;
1258
+ color: rgb(255 255 255 / var(--tw-text-opacity))}
1143
1259
  [data-coco][data-component="app-slide-editor"] .slide-bg-dark [data-component="app-seamless-textarea"] textarea:hover,
1144
- [data-coco][data-component="app-slide-editor"] .slide-bg-dark [data-component="app-seamless-textarea"] textarea:focus {
1145
- outline-color: rgba(255, 255, 255, 0.3);
1146
- }
1260
+ [data-coco][data-component="app-slide-editor"] .slide-bg-dark [data-component="app-seamless-textarea"] textarea:focus {
1261
+ outline-color: rgba(255, 255, 255, 0.3);
1262
+ }
1147
1263
  [data-coco][data-component="app-alert"]{
1148
1264
  overflow: hidden;
1149
1265
  border-radius: 0.75rem;
@@ -1461,30 +1577,47 @@ select{
1461
1577
  background-color: transparent;
1462
1578
  opacity: 0.3}
1463
1579
  [data-coco][data-component="app-button"][data-theme="secondary"],
1464
- [data-coco][data-component="app-button"][data-theme="toolbar"]{
1580
+ [data-coco][data-component="app-button"][data-theme="toolbar"],
1581
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"]{
1465
1582
  border-color: rgba(0, 12, 39, 0.18);
1466
1583
  background-color: transparent;
1467
1584
  --tw-text-opacity: 1;
1468
1585
  color: rgb(17 24 39 / var(--tw-text-opacity))}
1469
1586
  [data-coco][data-component="app-button"][data-theme="secondary"]:hover,
1470
- [data-coco][data-component="app-button"][data-theme="toolbar"]:hover{
1587
+ [data-coco][data-component="app-button"][data-theme="toolbar"]:hover,
1588
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"]:hover{
1471
1589
  background-color: rgba(0, 12, 39, 0.06);
1472
1590
  background-blend-mode: hard-light}
1473
1591
  [data-coco][data-component="app-button"][data-theme="secondary"]:active,
1474
- [data-coco][data-component="app-button"][data-theme="toolbar"]:active{
1592
+ [data-coco][data-component="app-button"][data-theme="toolbar"]:active,
1593
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"]:active{
1475
1594
  background-color: rgba(0, 12, 39, 0.1);
1476
1595
  background-blend-mode: hard-light}
1477
- [data-coco][data-component="app-button"][data-theme="secondary"][data-state="loading"], [data-coco][data-component="app-button"][data-theme="toolbar"][data-state="loading"]{
1596
+ [data-coco][data-component="app-button"][data-theme="secondary"][data-state="loading"], [data-coco][data-component="app-button"][data-theme="toolbar"][data-state="loading"], [data-coco][data-component="app-button"][data-theme="toolbar-floating"][data-state="loading"]{
1478
1597
  background-color: transparent}
1479
- [data-coco][data-component="app-button"][data-theme="secondary"][data-state="active"], [data-coco][data-component="app-button"][data-theme="toolbar"][data-state="active"]{
1598
+ [data-coco][data-component="app-button"][data-theme="secondary"][data-state="active"], [data-coco][data-component="app-button"][data-theme="toolbar"][data-state="active"], [data-coco][data-component="app-button"][data-theme="toolbar-floating"][data-state="active"]{
1480
1599
  background-color: rgba(0, 12, 39, 0.1);
1481
1600
  background-blend-mode: hard-light}
1482
- [data-coco][data-component="app-button"][data-theme="secondary"][data-state="loading"] > .button-element .button-icon, [data-coco][data-component="app-button"][data-theme="toolbar"][data-state="loading"] > .button-element .button-icon{
1601
+ [data-coco][data-component="app-button"][data-theme="secondary"][data-state="loading"] > .button-element .button-icon, [data-coco][data-component="app-button"][data-theme="toolbar"][data-state="loading"] > .button-element .button-icon, [data-coco][data-component="app-button"][data-theme="toolbar-floating"][data-state="loading"] > .button-element .button-icon{
1483
1602
  --tw-text-opacity: 1;
1484
1603
  color: rgb(118 184 170 / var(--tw-text-opacity))}
1485
- [data-coco][data-component="app-button"][data-theme="secondary"][data-disabled="true"], [data-coco][data-component="app-button"][data-theme="toolbar"][data-disabled="true"]{
1604
+ [data-coco][data-component="app-button"][data-theme="secondary"][data-disabled="true"], [data-coco][data-component="app-button"][data-theme="toolbar"][data-disabled="true"], [data-coco][data-component="app-button"][data-theme="toolbar-floating"][data-disabled="true"]{
1486
1605
  background-color: transparent;
1487
1606
  opacity: 0.3}
1607
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"]{
1608
+ --tw-border-opacity: 1;
1609
+ border-color: rgb(209 213 219 / var(--tw-border-opacity));
1610
+ --tw-bg-opacity: 1;
1611
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity))}
1612
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"]:hover{
1613
+ --tw-bg-opacity: 1;
1614
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity))}
1615
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"]:active{
1616
+ --tw-bg-opacity: 1;
1617
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity))}
1618
+ [data-coco][data-component="app-button"][data-theme="toolbar-floating"][data-state="active"]{
1619
+ --tw-bg-opacity: 1;
1620
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity))}
1488
1621
  [data-coco][data-component="app-button"][data-theme="text-secondary"],
1489
1622
  [data-coco][data-component="app-button"][data-theme="text-toolbar"]{
1490
1623
  background-color: transparent;
@@ -2129,6 +2262,7 @@ select{
2129
2262
  [data-coco][data-component="app-button-group"] {
2130
2263
  width: -moz-fit-content;
2131
2264
  width: fit-content;
2265
+ border-radius: 44px;
2132
2266
  }
2133
2267
  [data-coco][data-component="app-button-group"] .button-group-buttons{
2134
2268
  display: flex;
@@ -2145,6 +2279,20 @@ select{
2145
2279
  border-color: rgb(209 213 219 / var(--tw-border-opacity))}
2146
2280
  [data-coco][data-component="app-button-group"][data-align="end"] .button-group-buttons{
2147
2281
  margin-left: auto}
2282
+ [data-coco][data-component="app-button-group"][data-segmented="true"] .button-group-buttons{
2283
+ -moz-column-gap: 0px;
2284
+ column-gap: 0px}
2285
+ [data-coco][data-component="app-button-group"][data-segmented="true"] .coco-button:not(:first-child){
2286
+ border-top-left-radius: 0px;
2287
+ border-bottom-left-radius: 0px;
2288
+ border-left-width: 0px}
2289
+ [data-coco][data-component="app-button-group"][data-segmented="true"] .coco-button:not(:last-child){
2290
+ border-top-right-radius: 0px;
2291
+ border-bottom-right-radius: 0px}
2292
+ [data-coco][data-component="app-button-group"][data-segmented="true"][data-floating="true"]{
2293
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
2294
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
2295
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}
2148
2296
  [data-coco][data-component="app-color-picker"]{
2149
2297
  --tw-bg-opacity: 1;
2150
2298
  background-color: rgb(249 250 251 / var(--tw-bg-opacity))}
@@ -2660,8 +2808,81 @@ select{
2660
2808
  width: max-content}
2661
2809
  [data-coco][data-component="app-image-picker-button"] [data-component="app-image-picker"]{
2662
2810
  border-radius: 0.375rem}
2663
- [data-coco][data-component="app-image-picker-button"] .picker-file-input{
2664
- display: none}
2811
+ [data-coco][data-component="app-layout-picker-button"]{
2812
+ display: inline-flex;
2813
+ width: -moz-max-content;
2814
+ width: max-content}
2815
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker{
2816
+ display: grid;
2817
+ grid-template-columns: repeat(2, minmax(0, 1fr))}
2818
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker-option{
2819
+ overflow: hidden;
2820
+ border-radius: 0.5rem;
2821
+ border-width: 1px;
2822
+ border-color: rgba(0, 12, 39, 0.1);
2823
+ transition-property: all;
2824
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2825
+ transition-duration: 150ms}
2826
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker-option:hover{
2827
+ border-color: rgba(0, 12, 39, 0.18)}
2828
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker-option svg{
2829
+ width: 100%}
2830
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker-option-current{
2831
+ --tw-border-opacity: 1;
2832
+ border-color: rgb(26 136 113 / var(--tw-border-opacity))}
2833
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker-option-current:hover{
2834
+ --tw-border-opacity: 1;
2835
+ border-color: rgb(26 136 113 / var(--tw-border-opacity))}
2836
+ /* Sizes */
2837
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size="sm"] {
2838
+ width: 284px;
2839
+ gap: 1rem;
2840
+ padding: 1rem;
2841
+ }
2842
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size="md"] {
2843
+ width: 380px;
2844
+ gap: 1.5rem;
2845
+ padding: 1.5rem;
2846
+ }
2847
+ @media (min-width: 768px) {
2848
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size-md="sm"] {
2849
+ width: 284px;
2850
+ gap: 1rem;
2851
+ padding: 1rem;
2852
+ }
2853
+
2854
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size-md="md"] {
2855
+ width: 380px;
2856
+ gap: 1.5rem;
2857
+ padding: 1.5rem;
2858
+ }
2859
+ }
2860
+ @media (min-width: 992px) {
2861
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size-lg="sm"] {
2862
+ width: 284px;
2863
+ gap: 1rem;
2864
+ padding: 1rem;
2865
+ }
2866
+
2867
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size-lg="md"] {
2868
+ width: 380px;
2869
+ gap: 1.5rem;
2870
+ padding: 1.5rem;
2871
+ }
2872
+ }
2873
+ @media (min-width: 1200px) {
2874
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size-xl="sm"] {
2875
+ width: 284px;
2876
+ gap: 1rem;
2877
+ padding: 1rem;
2878
+ }
2879
+
2880
+ [data-coco][data-component="app-layout-picker-button"] .layout-picker[data-size-xl="md"] {
2881
+ width: 380px;
2882
+ gap: 1.5rem;
2883
+ padding: 1.5rem;
2884
+ }
2885
+ }
2665
2886
  [data-coco][data-component="app-link"]{
2666
2887
  text-decoration-line: none}
2667
2888
  [data-coco][data-component="app-link"]:hover{
@@ -3105,7 +3326,7 @@ select{
3105
3326
  [data-coco][data-component="book-editable-slide"] [data-slide-region],
3106
3327
  [data-coco][data-component="book-editable-slide"] .slide-header,
3107
3328
  [data-coco][data-component="book-editable-slide"] .slide-text,
3108
- [data-coco][data-component="book-editable-slide"] .slide-image{
3329
+ [data-coco][data-component="book-editable-slide"] .slide-media{
3109
3330
  display: none}
3110
3331
  [data-coco][data-component="book-editable-slide"] .slide-group{
3111
3332
  display: contents}
@@ -3120,7 +3341,9 @@ select{
3120
3341
  line-height: 1.5;
3121
3342
  font-size: var(--text-font-size)}
3122
3343
  [data-coco][data-component="book-editable-slide"] .slide-media{
3123
- width: 100%}
3344
+ width: 100%;
3345
+ color: currentColor;
3346
+ font-size: var(--text-font-size)}
3124
3347
  [data-coco][data-component="book-editable-slide"] .slide-media img{
3125
3348
  height: 100%;
3126
3349
  width: 100%;
@@ -3187,6 +3410,14 @@ select{
3187
3410
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-title"] .slide-text {
3188
3411
  line-height: 1.4;
3189
3412
  }
3413
+ [data-coco][data-component="book-editable-slide"][data-layout="one-col-text"] .slide-container{
3414
+ padding-top: 1.5rem;
3415
+ padding-bottom: 1.5rem}
3416
+ @container (min-width: 700px){
3417
+
3418
+ [data-coco][data-component="book-editable-slide"][data-layout="one-col-text"] .slide-container{
3419
+ padding-top: var(--slide-padding-sm);
3420
+ padding-bottom: var(--slide-padding-sm)}}
3190
3421
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-text"] .slide-container{
3191
3422
  display: flex;
3192
3423
  align-items: center}
@@ -3221,13 +3452,11 @@ select{
3221
3452
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-text"] [data-slide-region="content-1"] .slide-text{
3222
3453
  display: block}
3223
3454
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-media"] .slide-container{
3224
- padding-top: 1.5rem;
3225
- padding-bottom: 1.5rem}
3455
+ padding: 1.5rem}
3226
3456
  @container (min-width: 700px){
3227
3457
 
3228
3458
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-media"] .slide-container{
3229
- padding-top: var(--slide-padding-sm);
3230
- padding-bottom: var(--slide-padding-sm)}}
3459
+ padding: var(--slide-padding-sm)}}
3231
3460
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-media"] .slide-layout,
3232
3461
  [data-coco][data-component="book-editable-slide"][data-layout="one-col-media"] .slide-content{
3233
3462
  height: 100%}
@@ -3287,21 +3516,15 @@ select{
3287
3516
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-1"],
3288
3517
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-2"]{
3289
3518
  display: block}
3290
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] [data-slide-region="content-1"] .slide-text,
3291
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] [data-slide-region="content-1"] .slide-media,
3292
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] [data-slide-region="content-2"] .slide-text,
3293
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] [data-slide-region="content-2"] .slide-media,
3294
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-1"] .slide-text,
3295
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-1"] .slide-media,
3296
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-2"] .slide-text,
3297
- [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-2"] .slide-media{
3298
- display: block}
3299
3519
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] [data-slide-region="content-1"], [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-1"]{
3300
3520
  margin-bottom: var(--slide-padding-sm)}
3301
3521
  @container (min-width: 700px){
3302
3522
 
3303
3523
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] [data-slide-region="content-1"], [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] [data-slide-region="content-1"]{
3304
- margin-bottom: 0px}
3524
+ margin-bottom: 0px}}
3525
+ [data-coco][data-component="book-editable-slide"][data-layout="two-col-text"] .slide-text{
3526
+ display: block}
3527
+ @container (min-width: 700px){
3305
3528
 
3306
3529
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] .slide-layout{
3307
3530
  height: 100%}}
@@ -3312,7 +3535,10 @@ select{
3312
3535
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] .slide-content{
3313
3536
  display: flex;
3314
3537
  height: 100%;
3315
- align-items: center}
3538
+ align-items: center}}
3539
+ [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] .slide-media{
3540
+ display: block}
3541
+ @container (min-width: 700px){
3316
3542
 
3317
3543
  [data-coco][data-component="book-editable-slide"][data-layout="two-col-media"] .slide-media{
3318
3544
  position: absolute;
@@ -14604,7 +14604,7 @@
14604
14604
  var package_default = {
14605
14605
  name: "coveragebook-components",
14606
14606
  type: "module",
14607
- version: "0.5.6",
14607
+ version: "0.6.0",
14608
14608
  main: "index.js",
14609
14609
  repository: "git@github.com:coveragebook/coco.git",
14610
14610
  author: "Mark Perkins <mark@coveragebook.com>",
@@ -28847,6 +28847,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
28847
28847
  trigger: "click",
28848
28848
  interactive: true,
28849
28849
  animation: false,
28850
+ maxWidth: 380,
28850
28851
  triggerTarget,
28851
28852
  content,
28852
28853
  onShow: (...args) => {
@@ -29275,7 +29276,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29275
29276
  confirmed: true,
29276
29277
  lastState: null,
29277
29278
  stateTooltips: data2.tooltips || {},
29278
- tooltipText: null
29279
+ tooltipText: null,
29280
+ dropdown: null
29279
29281
  }, data2.props || {}), {
29280
29282
  init() {
29281
29283
  this.lastState = this.state;
@@ -29315,6 +29317,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29315
29317
  set disabled(value) {
29316
29318
  this.$options.disabled = value;
29317
29319
  },
29320
+ /* dropdown */
29321
+ hideDropdown() {
29322
+ if (this.dropdown) {
29323
+ this.dropdown.hide();
29324
+ }
29325
+ },
29326
+ showDropdown() {
29327
+ if (this.dropdown) {
29328
+ this.dropdown.show();
29329
+ }
29330
+ },
29318
29331
  /* confirmation */
29319
29332
  checkConfirmation(event) {
29320
29333
  if (!this.confirmed) {
@@ -29511,14 +29524,14 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29511
29524
  };
29512
29525
  });
29513
29526
 
29514
- // import-glob:/Users/mark/Projects/coveragebook/coco/app/assets/js/base|@baseComponents/**/*.js
29527
+ // import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/base|@baseComponents/**/*.js
29515
29528
  var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports];
29516
29529
  var __default = modules;
29517
29530
 
29518
29531
  // base/components.js
29519
29532
  var components_default = registerComponents(__default);
29520
29533
 
29521
- // import-glob:/Users/mark/Projects/coveragebook/coco/app/assets/js/book|@bookComponents/**/*.js
29534
+ // import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/book|@bookComponents/**/*.js
29522
29535
  var modules2 = [];
29523
29536
  var __default2 = modules2;
29524
29537
 
@@ -29664,11 +29677,20 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29664
29677
  layout: data2.layout,
29665
29678
  title: data2.title,
29666
29679
  text1: data2.text1,
29680
+ text2: data2.text2,
29667
29681
  bgColor: data2.bgColor,
29668
29682
  textColor: data2.textColor,
29669
29683
  bgImage: {
29670
29684
  name: data2.bgImage,
29671
29685
  data: data2.bgImage
29686
+ },
29687
+ image1: {
29688
+ name: data2.image1,
29689
+ data: data2.image1
29690
+ },
29691
+ image2: {
29692
+ name: data2.image2,
29693
+ data: data2.image2
29672
29694
  }
29673
29695
  };
29674
29696
  return __spreadProps(__spreadValues({
@@ -29683,6 +29705,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29683
29705
  get bgImagePicker() {
29684
29706
  return getData(this.$root.querySelector("[data-role='bg-image-picker']"));
29685
29707
  },
29708
+ get layoutPicker() {
29709
+ return getData(this.$root.querySelector("[data-role='layout-picker']"));
29710
+ },
29686
29711
  init() {
29687
29712
  this.$watch("errors", (errors) => {
29688
29713
  errors.forEach((error2) => console.error(error2.message));
@@ -29711,6 +29736,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29711
29736
  );
29712
29737
  Array.from(inputs).forEach((el) => getData(el).onResize());
29713
29738
  },
29739
+ setLayout(layout) {
29740
+ this.layout = layout;
29741
+ },
29714
29742
  handleImageDrop(event) {
29715
29743
  this.dragging = false;
29716
29744
  if (this.bgImagePicker) {
@@ -29781,6 +29809,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29781
29809
  get hasBgImage() {
29782
29810
  return !!(this.bgImage && this.bgImage.data);
29783
29811
  },
29812
+ get hasImage1() {
29813
+ return !!(this.image1 && this.image1.data);
29814
+ },
29815
+ get hasImage2() {
29816
+ return !!(this.image2 && this.image2.data);
29817
+ },
29784
29818
  get bgColorHex() {
29785
29819
  return this.bgColor.replace("#", "");
29786
29820
  },
@@ -29817,16 +29851,22 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
29817
29851
  "slide-bg-dark": this.isDarkBg,
29818
29852
  "slide-bg-light": !this.isDarkBg
29819
29853
  };
29820
- }
29854
+ },
29855
+ [":data-layout"]: "layout"
29821
29856
  },
29822
29857
  input: {
29823
- layout: { "x-model.fill": "layout" },
29858
+ layout: { "x-model.fill": "layout.replace(/-/g,'_')" },
29824
29859
  title: { "x-model.fill": "title" },
29825
29860
  text1: { "x-model.fill": "text1" },
29861
+ text2: { "x-model.fill": "text2" },
29826
29862
  bgColor: { "x-model.fill": "bgColorHex" },
29827
29863
  textColor: { "x-model.fill": "textColorHex" },
29828
29864
  bgImage: { "x-effect": "syncFileInput($el, bgImage.file)" },
29829
29865
  bgImagePurge: { ":checked": "!hasBgImage" },
29866
+ image1: { "x-effect": "syncFileInput($el, image1.file)" },
29867
+ image1Purge: { ":checked": "!hasImage1" },
29868
+ image2: { "x-effect": "syncFileInput($el, image2.file)" },
29869
+ image2Purge: { ":checked": "!hasImage2" },
29830
29870
  thumbnailImage: { "x-effect": "syncFileInput($el, thumbnailFile)" }
29831
29871
  }
29832
29872
  });
@@ -31869,6 +31909,28 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
31869
31909
  };
31870
31910
  });
31871
31911
 
31912
+ // ../../components/coco/app/elements/layout_picker_button/layout_picker_button.js
31913
+ var layout_picker_button_exports = {};
31914
+ __export(layout_picker_button_exports, {
31915
+ default: () => layout_picker_button_default
31916
+ });
31917
+ var layout_picker_button_default = CocoComponent("appLayoutPickerButton", ({ selected }) => {
31918
+ return {
31919
+ selectedLayout: selected,
31920
+ getPicker() {
31921
+ return getData(
31922
+ this.$root.querySelector("[data-role='layout-picker']").firstElementChild
31923
+ );
31924
+ },
31925
+ getButton() {
31926
+ return getData(this.$root.querySelector(".layout-picker-trigger"));
31927
+ },
31928
+ init() {
31929
+ this.$watch("selectedLayout", () => this.getButton().hideDropdown());
31930
+ }
31931
+ };
31932
+ });
31933
+
31872
31934
  // ../../components/coco/app/elements/menu_button/menu_button.js
31873
31935
  var menu_button_exports = {};
31874
31936
  __export(menu_button_exports, {
@@ -32032,8 +32094,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
32032
32094
  };
32033
32095
  });
32034
32096
 
32035
- // import-glob:/Users/mark/Projects/coveragebook/coco/app/assets/js/app|@appComponents/**/*.js
32036
- var modules3 = [nav_bar_exports, nav_drawer_exports, slide_editor_exports, alert_exports, button_group_exports, color_picker_exports, color_picker_button_exports, confirm_panel_exports, image_picker_exports, image_picker_button_exports, menu_button_exports, notice_exports, seamless_textarea_exports, snackbar_exports, system_banner_exports, toast_exports, toolbar_exports];
32097
+ // import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/app|@appComponents/**/*.js
32098
+ var modules3 = [nav_bar_exports, nav_drawer_exports, slide_editor_exports, alert_exports, button_group_exports, color_picker_exports, color_picker_button_exports, confirm_panel_exports, image_picker_exports, image_picker_button_exports, layout_picker_button_exports, menu_button_exports, notice_exports, seamless_textarea_exports, snackbar_exports, system_banner_exports, toast_exports, toolbar_exports];
32037
32099
  var __default3 = modules3;
32038
32100
 
32039
32101
  // app/components.js