diff --git a/collections/page-copy/Copy Destination/Copy Destination.htm b/collections/page-copy/Copy Destination/Copy Destination.htm new file mode 100644 index 0000000..553d26a --- /dev/null +++ b/collections/page-copy/Copy Destination/Copy Destination.htm @@ -0,0 +1,61 @@ + + + + + + + + Copy Destination + + + + + + + + +
+
0
+
en
+
False
+
English
+

Copy Destination

+
Copy Destination
+
+ +
+
+ Just Text +
+
+ +
+
+
+
+
+
+

This book starts with ordinary text and no media.

+
+

+
+
+
+
+
+
+
+
+

The test pastes the source book's page after this one.

+
+

+
+
+
+
+
+
+ + + diff --git a/collections/page-copy/Copy Destination/appearance.css b/collections/page-copy/Copy Destination/appearance.css new file mode 100644 index 0000000..e1babc5 --- /dev/null +++ b/collections/page-copy/Copy Destination/appearance.css @@ -0,0 +1,249 @@ +/* From appearance-theme-default.css */ +/* This is the default theme, not only in the sense that it is the one we use by default for new books, + * but also in the sense that it is copied to the start of each appearance.css file. Thus, the values + * set in this initial .bloom-page block are defaults for EVERY page in EVERY book, and this block is + * intended to provide a default for EVERY variable controlled by the appearance system. + * Some of these values are overridden for certain page sizes by other rules in this file. + * Intentionally, those rules are not more specific than this one, they just come later in the file + * and win for that reason. + * The rules for any other theme are copied later than the ones from this file in appearance.css, + * so anything in those files with the same (or of course greater) specificity can override these. + * For example, page-margin-right is set to 12mm in a .bloom-page block early in this file. + * For an A4Landscape page, a later rule in this file overrides the .bloom-page rule and makes it 15mm. + * If the book uses the large margins theme, a .bloom-page rule in that file overrides it again to 25mm. + * The rounded border theme overrides it to 2.5mm for Device page sizes, using a different selector again. + * These rules all have the same specificity even though they have different selectors, so the last one wins. + * I don't much like depending on the order of rules like this, or having rules left in the + * generated appearance.css file that we know will never apply to anything. But I don't see a better way + * to get the desired results: + * - a default for every property here that applies to every page in every book in every theme + * - a way to override default property values for certain page sizes + * - a way to override for certain themes (either for all page sizes or by page-size) + * Note: variables here set to zero representing a distance should have some unit, since they may + * be used in calc() expressions. For example, 0px, 0mm, 0in are all valid. 0 as a multiplier is fine. +*/ +.bloom-page { + --topLevel-text-padding: 1em; + + /* display: value in .numberedPage:after to display the page number */ + --pageNumber-show: doShow-css-will-ignore-this-and-use-default; /* default is number displaying (the value is a self-documenting trick) */ + + /* font-size: value in .numberedPage:after to display the page number */ + --pageNumber-font-size: 11pt; + /* Either --pageNumber-top or --pageNumber-bottom should be set to a value, but not both. */ + /* bottom: value in .numberedPage:after to display the page number */ + --pageNumber-bottom: 15px; /* Based on experiment with 5mm unprintable area for desktop printers (tested using boxes in Acrobat). + /* top: value in .numberedPage:after to display the page number */ + --pageNumber-top: unset; + /* used for both height: and width: values in .numberedPage:after to display the page number. + * Values like 20mm or 20vmin are valid. */ + --pageNumber-background-width: unset; /* for when we need to have a colored background, e.g. a circle */ + /* background-color: value in .numberedPage:after to display the page number */ + --pageNumber-background-color: transparent; + /* color: value in .numberedPage:after to display the page number */ + --pageNumber-color: black; + --pageNumber-outline-color: white; + /* border-radius: value in .numberedPage:after to display the page number */ + --pageNumber-border-radius: 0px; + /* left: value in .numberedPage.side-left:after to display the page number */ + --pageNumber-left-margin: auto; + --pageNumber-extra-height: 0mm; + + /* Themes should set to 0 if the marginBox is a different color than the page background. This affects the text padding. + Note that we could eventually figure this out in code, and probably need to once we provide a UI for + setting the marginBox border or page background color. */ + --page-and-marginBox-are-same-color-multiplicand: 1; + + /* right: value in .numberedPage.side-right:after to display the page number + * If this is used, --pageNumber-always-left-margin should be set to unset (a keyword). + * Note that if used, this should be set the same value as --page-margin-right, which is + * what this default value achieves. */ + --pageNumber-right-margin: var(--page-margin-right); + + /* left: value in .numberedPage.side-right:after to display the page number */ + /* This allows the page number to always be on the left, regardless of page side. + * If this is used, --pageNumber-right-margin must be set to unset (a keyword). + * Valid values would include auto (a keyword), 5px, or 8%. + * The unset keyword removes having any value associated with this variable. */ + --pageNumber-always-left-margin: unset; + + /* background-color: value in .bloom-page when a theme wants a decorative shell behind the page surface */ + /* DO WE NEED THIS? --page-frame-color: unset;*/ + + /* background-color: value in .bloom-page */ + --page-background-color: white; + + /* padding-left: value in .split-pane.vertical-percent + * .split-pane-component.position-right .split-pane-component-inner > div */ + --page-verticalSplit-width: 3px; /* 3px is matching Bloom 5.6's right margin for vertical split */ + /* padding-top: value in .split-pane.horizontal-percent + * .split-pane-component.position-bottom .split-pane-component-inner > div */ + --page-horizontalSplit-height: 0px; + /* gap: value for .bloom-translationGroup */ + /* When Bloom is configured to show each block of text in more than one language, this controls + the space between the different language sections of each block. */ + --multilingual-editable-vertical-gap: 1em; + /* border-radius: value in .bloom-canvas (picture added by user to front cover or content page) */ + --image-border-radius: 0px; /* 0px is the default, but we want to be explicit about square corners */ + /* Most Bloom books are too small to need a gutter. NB: THIS MUST HAVE UNITS even when 0, else calc() fails */ + --page-gutter: 0mm; + + --page-margin: 12mm; + + /* padding-top: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + /* same default value as --page-margin-top, but used for outside cover pages */ + --cover-margin-top: var(--page-margin); + /* padding-bottom: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + /* same default value as --page-margin-bottom, but used for outside cover pages */ + --cover-margin-bottom: var(--page-margin); + /* padding-left: and padding-right: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + --cover-margin-side: var( + --page-margin + ); /* same default value as --page-margin-left and --page-margin-right, but used for outside cover pages */ + /* display: value in .coverBottomBookTopic */ + --cover-topic-show: doShow-css-will-ignore-this-and-use-default; /* default is topic displaying (the value is a self-documenting trick) */ + /* display: value in .coverBottomLangName */ + --cover-languageName-show: doShow-css-will-ignore-this-and-use-defaultblock; /* default is language name displaying (the value is a self-documenting trick) */ + /* display: value in .cover .creditsRow */ + --cover-creditsRow-show: doShow-css-will-ignore-this-and-use-default; /* default is credits row displaying (the value is a self-documenting trick) */ + + /* background-color: value in .numberedPage .marginBox */ + /* This is not just for text boxes, but for everything inside the page margins. + (For example, the space between text boxes or the background of partly transparent images.) + It defaults to the page surface color rather than transparent, because in edit mode we set + the parent translationGroup color to show padding and still need the editable content area + itself to paint like the page surface. */ + --marginBox-background-color: var(--page-background-color); + /* padding: value in .numberedPage .marginBox */ + --marginBox-padding: 0px; + /* border-radius: value in .numberedPage .marginBox */ + --marginBox-border-radius: 0px; + /* border-color: value in .numberedPage .marginBox */ + --marginBox-border-color: black; + /* border-style: value in .numberedPage .marginBox */ + --marginBox-border-style: none; /* default is no border, but we want to be explicit. 'none' is a keyword. */ + /* border-width: value in .numberedPage .marginBox */ + --marginBox-border-width: medium; /* must not be 0px/0mm/0in to have a border. 'medium' is a keyword. */ + + /* In some themes, at edit- + time, the format button lands under the page number. See BL-13206. The name is is intentionally vague about direction and what we do with it. + Must have a unit: this feeds a calc() with px, where a unitless 0 makes the whole expression invalid (BL-14901). */ + --formatButton-pageNumber-dodge: 0px; +} + +/* this rule might not always be what we need for every kind of interactive page, but it's a good default. + E.g., it allows the blue of the Simple Choice to come through. */ +.bloom-page.bloom-interactive-page { + --marginBox-background-color: transparent; +} + +/* Beware of making these rules more specific. We want them to be able to be overridden by .bloom-page rules + * that come from other themes (and hence later in the generated appearance.css file). + */ +.A3Landscape, +.A3Portrait, +.A4Landscape, +.A4Portrait, +.B5Portrait, +.LetterLandscape, +.LetterPortrait, +.LegalLandscape, +.LegalLandscape { + --page-margin: 15mm; + --page-gutter: 10mm; +} +.HalfLetterPortrait,/* SIL Mexico says use same as A5 */ +.HalfLetterLandscape, +.A5Landscape, +.A5Portrait, +.Size6x9Landscape, +.Size6x9Portrait, +.USComicPortrait { + --page-margin: 12mm; +} +.QuarterLetterPortrait, +.QuarterLetterLandscape, +.A6Portrait, +.A6Landscape { + --page-margin: 10mm; +} +.Cm13Landscape { + --page-margin: 5mm; +} +.bloom-page[class*="Ebook"], +.bloom-page[class*="Device"] { + --page-margin: 10px; +} + +.bloom-page[class*="Ebook"], +.bloom-page[class*="Device"], +.bloomPlayer-page .bloom-page { + /* Deliberately set both of these, which combines with a special device/bloom-player rule + * in basePage.less which sets both left and right margin to auto, and we get + * centered as the default for device/bloom-player pages. (To override this, you need to + * set the margin you don't want to something like "deliberately-invalid".)*/ + --pageNumber-right-margin: 0px; + --pageNumber-always-left-margin: 0px; +} + +.numberedPage[class*="Ebook"], +.numberedPage[class*="Device"] { + /* These page sizes have small margins, so we need extra height on numbered ones. + (Note that this disappears if page numbers are turned off, because --pageNumber-show-multiplicand is 0.) */ + --pageNumber-extra-height: 8mm !important; +} + +/* We need a small margin (above) for xmatter pages (e.g., Robots Mali credits page, + * especially in landscape, comment in BL-13002). + * But we need more on numbered pages, so we can fit the page number. + * This unfortunately breaks our rule about keeping the specificity at one class so that + * the settings dialog can override. But currently we don't expect to make page margins + * a book setting, so for now we're OK.*/ +/*.numberedPage.Device16x9Portrait, +.numberedPage.Device16x9Landscape { + --page-margin-bottom: 45px; /* need room for page number, so not as small as others +}*/ + +/* classes are doubled in this rule because it needs to beat the one above that sets the + * bottom margin for numbered pages in Device page sizes. This makes it equally specific + * and thus the last one wins. */ +.no-margin-page.no-margin-page, +.comic.comic { + --page-margin-top: 0px; + --page-margin-bottom: 0px; + --page-margin-right: 0px; + --page-margin-left: 0px; + --pageNumber-font-size: 0px; /* review will this work to hide it? */ + --pageNumber-show-multiplicand: 0; /* no extra space for suppressed page number */ + --pageNumber-extra-height: 0mm !important; +} + +/***************************************************************************** + * These variables / rules are for xmatter pages. + */ +.bloom-frontMatter, +.bloom-backMatter { + --MarginBetweenXMatterBlocks: 2em; + --MarginBetweenXMatterMinorItems: 5px; + --DefaultCoverTitle1FontSize: 25pt; + --DefaultCoverTitle2FontSize: 12pt; + /* Same as our ordinary default, but we have to set it explicitly because of a trick + that copies the DefaultCoverTitle1FontSize to the translationGroup. */ + --DefaultCoverTitle3FontSize: 10pt; +} + +/* From this book's appearance settings */ +.bloom-page { + --pageNumber-show-multiplicand: 1; + --cover-creditsRow-show: doShow-css-will-ignore-this-and-use-default; + --cover-title-L1-show: doShow-css-will-ignore-this-and-use-default; + --cover-title-L2-show: doShow-css-will-ignore-this-and-use-default; + --cover-title-L3-show: none; + --cover-topic-show: doShow-css-will-ignore-this-and-use-default; + --cover-languageName-show: doShow-css-will-ignore-this-and-use-default; + --pageNumber-show: doShow-css-will-ignore-this-and-use-default; + --pageNumber-left-margin-override: unset; + --pageNumber-right-margin-override: unset; + --cover-background-color: #c6c6c6; +} + diff --git a/collections/page-copy/Copy Destination/appearance.json b/collections/page-copy/Copy Destination/appearance.json new file mode 100644 index 0000000..d3fd107 --- /dev/null +++ b/collections/page-copy/Copy Destination/appearance.json @@ -0,0 +1,15 @@ +{ + "cssThemeName": "default", + "fullBleed": false, + "pageNumber-position": "automatic", + "cover-creditsRow-show": true, + "cover-title-L1-show": true, + "cover-title-L2-show": true, + "cover-title-L3-show": false, + "cover-topic-show": true, + "cover-languageName-show": true, + "pageNumber-show": true, + "pageNumber-left-margin-override": "unset", + "pageNumber-right-margin-override": "unset", + "cover-background-color": "#c6c6c6" +} \ No newline at end of file diff --git a/collections/page-copy/Copy Destination/branding.css b/collections/page-copy/Copy Destination/branding.css new file mode 100644 index 0000000..d1c94da --- /dev/null +++ b/collections/page-copy/Copy Destination/branding.css @@ -0,0 +1,93 @@ +/*{ + label: "default branding"; + compatibleWithAppearanceVersion: 6.0; +}*/ +/***** +Note the following division of labor: +Rules that place branding on an xmatter page belong in bloom-xmatter-commons.less or the stylesheet of a particular xmatter. +Rules that format the branding go in branding-base.less, or in the branding.less of a particular branding. +****/ +[data-book*="branding"] { + display: flex; + flex-direction: column; +} +[data-book*="branding"] img { + margin-left: auto; + margin-right: auto; + width: auto; + max-width: 100%; + align-self: center; + object-fit: contain; +} +[data-book="outside-back-cover-branding-bottom-html"] { + width: 100%; +} +/* these rules allow different branding insertions depending on orientation */ +.portraitOnly, +.landscapeOnly { + display: none; +} +.Size6x9Portrait .portraitOnly, +.USComicPortrait .portraitOnly, +.Device16x9Portrait .portraitOnly, +.QuarterLetterPortrait .portraitOnly, +.HalfLetterPortrait .portraitOnly, +.LetterPortrait .portraitOnly, +.LegalPortrait .portraitOnly, +.A3Portrait .portraitOnly, +.A4Portrait .portraitOnly, +.A5Portrait .portraitOnly, +.B5Portrait .portraitOnly, +.A6Portrait .portraitOnly { + display: unset; +} +.Size6x9Landscape .landscapeOnly, +.Cm13Landscape .landscapeOnly, +.Device16x9Landscape .landscapeOnly, +.LetterLandscape .landscapeOnly, +.LegalLandscape .landscapeOnly, +.A3Landscape .landscapeOnly, +.A4Landscape .landscapeOnly, +.A5Landscape .landscapeOnly, +.A6Landscape .landscapeOnly { + display: unset; +} +.bloom-branding-wrapper { + border: 5px solid #d65649; + background-color: white; + border-radius: 8px; + width: fit-content; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.bloom-branding-wrapper img.branding { + width: 4.7cm; + padding: 10px; + box-sizing: border-box; + vertical-align: top; +} +.bloom-branding-wrapper .bloom-qrcode { + width: 2.8cm; + padding: 10px; + box-sizing: border-box; +} +.bloom-branding-wrapper .bloom-lang-on-blorg { + font-size: 9pt; + line-height: 1.2; + width: 100%; + box-sizing: border-box; + margin-left: 12px; + margin-right: 10px; + margin-bottom: 10px; + max-width: 7cm; +} +.bloom-branding-wrapper .bloom-lang-on-blorg .bloom-blorg-url { + color: #d65649; + font-weight: bold; +} +.bloom-page.bloom-customLayout[data-custom-layout-id] .marginBox .bloom-translationGroup:not(.bloom-imageDescription) { + display: flex !important; +} +/*# sourceMappingURL=branding.css.map */ +/*# sourceMappingURL=branding.css.map */ \ No newline at end of file diff --git a/collections/page-copy/Copy Destination/defaultLangStyles.css b/collections/page-copy/Copy Destination/defaultLangStyles.css new file mode 100644 index 0000000..285d600 --- /dev/null +++ b/collections/page-copy/Copy Destination/defaultLangStyles.css @@ -0,0 +1,29 @@ +@font-face { font-family: ABeeZee; src: url(./host/fonts/ABeeZee-Regular.woff2); } +@font-face { font-family: ABeeZee; font-style: italic; src: url(./host/fonts/ABeeZee-Italic.woff2); } +@font-face { font-family: Andika; src: url(./host/fonts/Andika-Regular.woff2); } +@font-face { font-family: Andika; font-weight: bold; src: url(./host/fonts/Andika-Bold.woff2); } +@font-face { font-family: Andika; font-style: italic; src: url(./host/fonts/Andika-Italic.woff2); } +@font-face { font-family: Andika; font-weight: bold; font-style: italic; src: url(./host/fonts/Andika-BoldItalic.woff2); } +@font-face { font-family: "Andika New Basic"; font-weight: normal; font-style: normal; src: url("./host/fonts/Andika New Basic"); } +@font-face { font-family: "Andika New Basic"; font-weight: bold; font-style: normal; src: url("./host/fonts/Andika New Basic Bold"); } +@font-face { font-family: "Andika New Basic"; font-weight: normal; font-style: italic; src: url("./host/fonts/Andika New Basic Italic"); } +@font-face { font-family: "Andika New Basic"; font-weight: bold; font-style: italic; src: url("./host/fonts/Andika New Basic Bold Italic") ; } +/* *** DO NOT EDIT! *** These styles are controlled by the Settings dialog box in Bloom. */ +/* They may be over-ridden by rules in customCollectionStyles.css, appearance.css or customBookStyles[2].css */ + +.numberedPage::after +{ + font-family: 'Andika'; + direction: ltr; +} + +[lang='en'] +{ + font-family: 'Andika'; + direction: ltr; +} + +.bloom-page:not(.bloom-frontMatter):not(.bloom-backMatter) [lang='*'] +{ + font-family: 'Andika'; +} diff --git a/collections/page-copy/Copy Destination/meta.json b/collections/page-copy/Copy Destination/meta.json new file mode 100644 index 0000000..c76e7a5 --- /dev/null +++ b/collections/page-copy/Copy Destination/meta.json @@ -0,0 +1 @@ +{"a11y_NoEssentialInfoByColor": false, "a11y_NoTextIncludedInAnyImages": false, "bookInstanceId": "3f8c1a52-6d24-4b09-9e35-71c8a4d5e002", "suitableForMakingShells": false, "suitableForMakingTemplates": false, "suitableForVernacularLibrary": true, "bloomdVersion": 0, "experimental": false, "brandingProjectName": "Default", "nameLocked": false, "folio": false, "isRtl": false, "title": "Copy Destination", "allTitles": "{\"en\": \"Copy Destination\"}", "originalTitle": "Copy Destination", "BaseUrl": null, "isbn": "", "bookLineage": "", "license": "cc-by", "formatVersion": "2.1", "licenseNotes": null, "copyright": null, "credits": "", "tags": [], "pageCount": 0, "languages": [], "languageDescriptors": null, "summary": null, "allowUploadingToBloomLibrary": true, "draft": false, "bookletMakingIsAppropriate": true, "country": "United States", "province": "", "district": "", "tools": [], "currentTool": null, "toolboxIsOpen": false, "author": null, "publisher": null, "originalPublisher": null, "subjects": null, "hazards": null, "a11yFeatures": null, "a11yLevel": null, "a11yCertifier": null, "readingLevelDescription": null, "typicalAgeRange": null, "features": [], "page-number-style": "Decimal", "language-display-names": {"en": "English"}, "internetLimits": null, "use-original-copyright": false, "imported-book-source-url": null, "phashOfFirstContentImage": null} \ No newline at end of file diff --git a/collections/page-copy/Copy Destination/origami.css b/collections/page-copy/Copy Destination/origami.css new file mode 100644 index 0000000..45b3b5f --- /dev/null +++ b/collections/page-copy/Copy Destination/origami.css @@ -0,0 +1,341 @@ +/*! + +Split Pane v0.4.0 + +Copyright (c) 2014 Simon Hagström + +Released under the MIT license +https://raw.github.com/shagstrom/split-pane/master/LICENSE + +*/ +.split-pane { + position: relative; + height: 100%; + width: 100%; + overflow: hidden; +} + +.split-pane.fixed-top > .split-pane-component, +.split-pane.fixed-bottom > .split-pane-component, +.split-pane.horizontal-percent > .split-pane-component { + position: absolute; + left: 0; + width: 100%; + overflow: auto; + top: auto; + bottom: 0; + z-index: 1; +} + +/* nicescroll looks for position:absolute to find where to place its elements. + * For "Just Text" pages, the .split-pane > .split-pane-component element layers + * are omitted, so we need to add a rule to set position:absolute on the + * .split-pane-component-inner element. + * This prevents the strange behavior reported in BL-15093. + * Note that position:absolute causes padding of the parent to be ignored, so we + * have to set the top, left, right, and bottom to what would be the padding value + * in order to get the correct layout. We also really want to restrict this rule + * to only "Just Text" pages. The ":has()" pseudo-class does that since the "Just + * a Picture" page will not have an immediate child with a visible + * .bloom-translationGroup class. (BL-15611, BL-15720) + */ +.marginBox + > .split-pane-component-inner:has(> .bloom-translationGroup:not(.box-header-off)) { + position: absolute; + top: var(--marginBox-padding); + left: var(--marginBox-padding); + right: var(--marginBox-padding); + bottom: var(--marginBox-padding); + width: initial; + height: initial; +} + +.split-pane.fixed-top > .split-pane-component:first-child, +.split-pane.fixed-bottom > .split-pane-component:first-child, +.split-pane.horizontal-percent > .split-pane-component:first-child { + top: 0; + bottom: auto; +} + +.split-pane.fixed-top > .split-pane-divider, +.split-pane.fixed-bottom > .split-pane-divider, +.split-pane.horizontal-percent > .split-pane-divider { + position: absolute; + width: 100%; + left: 0; + cursor: ns-resize; + z-index: 2; + + /* JohnT mod: this extra padding makes it impossible to grab the crop control right above the split. + padding-bottom: 5px; /* this actually enlarges the target area for the user trying to find the splitter, without changing the layout of the page (because the position is absolute)*/ +} + +.split-pane.fixed-left > .split-pane-component, +.split-pane.fixed-right > .split-pane-component, +.split-pane.vertical-percent > .split-pane-component { + position: absolute; + top: 0; + height: 100%; + overflow: auto; + left: auto; + right: 0; + z-index: 1; +} + +.split-pane.fixed-left > .split-pane-component:first-child, +.split-pane.fixed-right > .split-pane-component:first-child, +.split-pane.vertical-percent > .split-pane-component:first-child { + left: 0; + right: auto; +} + +.split-pane.fixed-left > .split-pane-divider, +.split-pane.fixed-right > .split-pane-divider, +.split-pane.vertical-percent > .split-pane-divider { + position: absolute; + height: 100%; + top: 0; + cursor: ew-resize; + z-index: 2; +} + +.split-pane-resize-shim { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 10000; + display: none; +} + +.split-pane.fixed-left > .split-pane-resize-shim, +.split-pane.fixed-right > .split-pane-resize-shim, +.split-pane.vertical-percent > .split-pane-resize-shim { + cursor: ew-resize; +} + +.split-pane.fixed-top > .split-pane-resize-shim, +.split-pane.fixed-bottom > .split-pane-resize-shim, +.split-pane.horizontal-percent > .split-pane-resize-shim { + cursor: ns-resize; +} + +.split-pane > .split-pane-component { + overflow: hidden !important; +} +.split-pane.vertical-percent > .split-pane-component.position-left { + right: 50%; + margin-right: var(--side-by-side-gap); +} +.split-pane.vertical-percent > .split-pane-component.position-right { + width: 50%; +} +.split-pane.horizontal-percent > .split-pane-component.position-top { + bottom: 50%; + margin-bottom: var(--top-bottom-gap); +} +.split-pane.horizontal-percent > .split-pane-component.position-bottom { + height: 50%; +} +.split-pane-divider { + visibility: hidden; +} +.split-pane.vertical-percent > .vertical-divider { + right: 50%; + border-right: 3px dashed transparent; +} +.split-pane.horizontal-percent > .horizontal-divider { + bottom: 50%; + border-bottom: 3px dashed transparent; +} +.origami-controls { + position: absolute; + top: 0; + right: 0; + z-index: 20000; + height: 99%; + width: 99%; +} +.origami-controls .close { + font-weight: bold; +} +.origami-controls .button, +.origami-controls .origami-controls .button:visited { + display: inline-block; + text-decoration: none; + position: relative; + height: 20px; + width: 20px; + text-align: center; + color: #d2d2d2; + background-color: transparent; + line-height: 1em; + font-size: 18px; +} +.origami-controls .close-button-wrapper { + float: left; + padding: 5px; + position: absolute; + right: 0; + top: 0; +} +.origami-controls .vertical-adders { + left: 0; + position: absolute; + top: 10%; +} +.origami-controls .vertical-adders .button { + position: absolute; + left: 10px; +} +.origami-controls .vertical-adders .button.add-top { + top: 10px; +} +.origami-controls .vertical-adders .button.add-bottom { + bottom: 10px; +} +.origami-controls .vertical-adders .separator { + border-bottom: 3px #d2d2d2 dashed; + width: 100%; + position: absolute; + top: 50%; +} +.origami-controls .horizontal-adders { + bottom: 0; + right: 10%; + position: absolute; +} +.origami-controls .horizontal-adders .button { + position: absolute; + bottom: 10px; +} +.origami-controls .horizontal-adders .button.add-left { + left: 10px; +} +.origami-controls .horizontal-adders .button.add-right { + right: 10px; +} +.origami-controls .horizontal-adders .separator { + border-right: 3px #d2d2d2 dashed; + height: 100%; + position: absolute; + left: 50%; +} +.origami-controls .horizontal-adders > div { + float: left; +} +/* I wasn't convinced this was helpful... may return to it +.adders{ + transition-property: width, height; + transition-duration: 0.5s; +}*/ +.origami-controls .vertical-adders, +.origami-controls .horizontal-adders { + /* -background-color: lightgrey;rgba(0,0,0,.1) ;*/ +} +.split-pane-component-inner { + position: relative; + width: 100%; + height: 100%; + padding: 0px; + box-sizing: border-box; + transition-property: font-size; + transition-duration: 0.5s; + font-size: 12pt; +} +.container-selector-links { + display: none; +} +.container-textBox-id { + display: none; +} +.selector-links { + top: 45%; + text-align: center; +} +.selector-links a { + z-index: 50000; +} +.selector-links div { + display: inline; +} +.split-pane-component-inner { + container-type: size; + container-name: split-pane-component-inner; +} +.split-pane-component-inner .vertical-adders { + display: none; +} +.split-pane-component-inner .horizontal-adders { + display: none; +} +@container split-pane-component-inner (min-width: 60px) { + .horizontal-adders { + width: 70px; + height: 50px; + } +} +@container split-pane-component-inner (min-height: 60px) { + .vertical-adders { + width: 50px; + height: 70px; + } +} +@container split-pane-component-inner (min-width: 150px) and (min-height: 150px) { + .textBox-identifier { + transition-property: font-size; + transition-duration: 0.5s; + font-size: 24pt; + } +} +@container split-pane-component-inner (min-height: 250px) { + .vertical-adders { + height: 100px; + } + .horizontal-adders { + height: 100px; + } +} +@container split-pane-component-inner (min-width: 250px) { + .vertical-adders { + width: 100px; + } + .horizontal-adders { + width: 100px; + } +} +.origami-layout-mode { + /*the commented line below would also add it to an empty bloom-content1 for re-entry to layout mode*/ + /*but that would be problematic/confusing in a multilingual context*/ + /*.origami-layout-mode .split-pane-component-inner .bloom-editable.bloom-content1:empty:before,*/ + /* not setting z-index in the upper layer allows the adder buttons to be visible and active when the */ + /* cursor is over the "Text Box" text, but not when it is over the .formatButton gearbox icon. (BL-9176) */ +} +.origami-layout-mode .bloom-editable p { + color: #ececec !important; +} +.origami-layout-mode .bloom-editable p span { + background-color: unset !important; +} +.origami-layout-mode .origami-ui .adders { + display: none; +} +.origami-layout-mode .split-pane-component-inner .textBox-identifier { + /*content: "Text Box";*/ + color: #7e7e7e; + white-space: normal; + transition-property: font-size; + transition-duration: 0.5s; + text-align: center; + width: 100%; + position: absolute; + top: 45%; +} +.origami-layout-mode .split-pane-component-inner .textBox-identifier .formatButton { + z-index: 60000; + padding-left: 10px; + display: inline-flex; +} +/*# sourceMappingURL=origami.css.map */ +/*# sourceMappingURL=origami.css.map */ \ No newline at end of file diff --git a/collections/page-copy/Copy Destination/publish-settings.json b/collections/page-copy/Copy Destination/publish-settings.json new file mode 100644 index 0000000..363661c --- /dev/null +++ b/collections/page-copy/Copy Destination/publish-settings.json @@ -0,0 +1 @@ +{"audioVideo":{"pageTurnDelay":3000,"format":"facebook","motion":false,"playerSettings":"","pageRange":[]},"epub":{"howToPublishImageDescriptions":0,"removeFontSizes":false,"mode":"fixed"},"bloomPUB":{"motion":true,"textLangs":{},"audioLangs":{},"signLangs":{},"imageSettings":{"maxWidth":600,"maxHeight":600}},"bloomLibrary":{"textLangs":{"en":"IncludeByDefault"},"audioLangs":{"en":"IncludeByDefault"},"signLangs":{}}} \ No newline at end of file diff --git a/collections/page-copy/Copy Source/Copy Source.htm b/collections/page-copy/Copy Source/Copy Source.htm new file mode 100644 index 0000000..42b6369 --- /dev/null +++ b/collections/page-copy/Copy Source/Copy Source.htm @@ -0,0 +1,112 @@ + + + + + + + + Copy Source + + + + + + + + +
+
0
+
en
+
False
+
English
+

Copy Source

+
Copy Source
+
+ +
+
+ Custom +
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+

The crow sings while the bird watches.

+
+

+
+
+
+
+
+
+
+
+
+ +
+
+ Just Text +
+
+ +
+
+
+
+
+
+

An ordinary page, so the page under test is not the only one.

+
+

+
+
+
+
+
+
+
+
+

Nothing on this page is copied by the test.

+
+

+
+
+
+
+
+
+ + + diff --git a/collections/page-copy/Copy Source/appearance.css b/collections/page-copy/Copy Source/appearance.css new file mode 100644 index 0000000..e1babc5 --- /dev/null +++ b/collections/page-copy/Copy Source/appearance.css @@ -0,0 +1,249 @@ +/* From appearance-theme-default.css */ +/* This is the default theme, not only in the sense that it is the one we use by default for new books, + * but also in the sense that it is copied to the start of each appearance.css file. Thus, the values + * set in this initial .bloom-page block are defaults for EVERY page in EVERY book, and this block is + * intended to provide a default for EVERY variable controlled by the appearance system. + * Some of these values are overridden for certain page sizes by other rules in this file. + * Intentionally, those rules are not more specific than this one, they just come later in the file + * and win for that reason. + * The rules for any other theme are copied later than the ones from this file in appearance.css, + * so anything in those files with the same (or of course greater) specificity can override these. + * For example, page-margin-right is set to 12mm in a .bloom-page block early in this file. + * For an A4Landscape page, a later rule in this file overrides the .bloom-page rule and makes it 15mm. + * If the book uses the large margins theme, a .bloom-page rule in that file overrides it again to 25mm. + * The rounded border theme overrides it to 2.5mm for Device page sizes, using a different selector again. + * These rules all have the same specificity even though they have different selectors, so the last one wins. + * I don't much like depending on the order of rules like this, or having rules left in the + * generated appearance.css file that we know will never apply to anything. But I don't see a better way + * to get the desired results: + * - a default for every property here that applies to every page in every book in every theme + * - a way to override default property values for certain page sizes + * - a way to override for certain themes (either for all page sizes or by page-size) + * Note: variables here set to zero representing a distance should have some unit, since they may + * be used in calc() expressions. For example, 0px, 0mm, 0in are all valid. 0 as a multiplier is fine. +*/ +.bloom-page { + --topLevel-text-padding: 1em; + + /* display: value in .numberedPage:after to display the page number */ + --pageNumber-show: doShow-css-will-ignore-this-and-use-default; /* default is number displaying (the value is a self-documenting trick) */ + + /* font-size: value in .numberedPage:after to display the page number */ + --pageNumber-font-size: 11pt; + /* Either --pageNumber-top or --pageNumber-bottom should be set to a value, but not both. */ + /* bottom: value in .numberedPage:after to display the page number */ + --pageNumber-bottom: 15px; /* Based on experiment with 5mm unprintable area for desktop printers (tested using boxes in Acrobat). + /* top: value in .numberedPage:after to display the page number */ + --pageNumber-top: unset; + /* used for both height: and width: values in .numberedPage:after to display the page number. + * Values like 20mm or 20vmin are valid. */ + --pageNumber-background-width: unset; /* for when we need to have a colored background, e.g. a circle */ + /* background-color: value in .numberedPage:after to display the page number */ + --pageNumber-background-color: transparent; + /* color: value in .numberedPage:after to display the page number */ + --pageNumber-color: black; + --pageNumber-outline-color: white; + /* border-radius: value in .numberedPage:after to display the page number */ + --pageNumber-border-radius: 0px; + /* left: value in .numberedPage.side-left:after to display the page number */ + --pageNumber-left-margin: auto; + --pageNumber-extra-height: 0mm; + + /* Themes should set to 0 if the marginBox is a different color than the page background. This affects the text padding. + Note that we could eventually figure this out in code, and probably need to once we provide a UI for + setting the marginBox border or page background color. */ + --page-and-marginBox-are-same-color-multiplicand: 1; + + /* right: value in .numberedPage.side-right:after to display the page number + * If this is used, --pageNumber-always-left-margin should be set to unset (a keyword). + * Note that if used, this should be set the same value as --page-margin-right, which is + * what this default value achieves. */ + --pageNumber-right-margin: var(--page-margin-right); + + /* left: value in .numberedPage.side-right:after to display the page number */ + /* This allows the page number to always be on the left, regardless of page side. + * If this is used, --pageNumber-right-margin must be set to unset (a keyword). + * Valid values would include auto (a keyword), 5px, or 8%. + * The unset keyword removes having any value associated with this variable. */ + --pageNumber-always-left-margin: unset; + + /* background-color: value in .bloom-page when a theme wants a decorative shell behind the page surface */ + /* DO WE NEED THIS? --page-frame-color: unset;*/ + + /* background-color: value in .bloom-page */ + --page-background-color: white; + + /* padding-left: value in .split-pane.vertical-percent + * .split-pane-component.position-right .split-pane-component-inner > div */ + --page-verticalSplit-width: 3px; /* 3px is matching Bloom 5.6's right margin for vertical split */ + /* padding-top: value in .split-pane.horizontal-percent + * .split-pane-component.position-bottom .split-pane-component-inner > div */ + --page-horizontalSplit-height: 0px; + /* gap: value for .bloom-translationGroup */ + /* When Bloom is configured to show each block of text in more than one language, this controls + the space between the different language sections of each block. */ + --multilingual-editable-vertical-gap: 1em; + /* border-radius: value in .bloom-canvas (picture added by user to front cover or content page) */ + --image-border-radius: 0px; /* 0px is the default, but we want to be explicit about square corners */ + /* Most Bloom books are too small to need a gutter. NB: THIS MUST HAVE UNITS even when 0, else calc() fails */ + --page-gutter: 0mm; + + --page-margin: 12mm; + + /* padding-top: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + /* same default value as --page-margin-top, but used for outside cover pages */ + --cover-margin-top: var(--page-margin); + /* padding-bottom: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + /* same default value as --page-margin-bottom, but used for outside cover pages */ + --cover-margin-bottom: var(--page-margin); + /* padding-left: and padding-right: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + --cover-margin-side: var( + --page-margin + ); /* same default value as --page-margin-left and --page-margin-right, but used for outside cover pages */ + /* display: value in .coverBottomBookTopic */ + --cover-topic-show: doShow-css-will-ignore-this-and-use-default; /* default is topic displaying (the value is a self-documenting trick) */ + /* display: value in .coverBottomLangName */ + --cover-languageName-show: doShow-css-will-ignore-this-and-use-defaultblock; /* default is language name displaying (the value is a self-documenting trick) */ + /* display: value in .cover .creditsRow */ + --cover-creditsRow-show: doShow-css-will-ignore-this-and-use-default; /* default is credits row displaying (the value is a self-documenting trick) */ + + /* background-color: value in .numberedPage .marginBox */ + /* This is not just for text boxes, but for everything inside the page margins. + (For example, the space between text boxes or the background of partly transparent images.) + It defaults to the page surface color rather than transparent, because in edit mode we set + the parent translationGroup color to show padding and still need the editable content area + itself to paint like the page surface. */ + --marginBox-background-color: var(--page-background-color); + /* padding: value in .numberedPage .marginBox */ + --marginBox-padding: 0px; + /* border-radius: value in .numberedPage .marginBox */ + --marginBox-border-radius: 0px; + /* border-color: value in .numberedPage .marginBox */ + --marginBox-border-color: black; + /* border-style: value in .numberedPage .marginBox */ + --marginBox-border-style: none; /* default is no border, but we want to be explicit. 'none' is a keyword. */ + /* border-width: value in .numberedPage .marginBox */ + --marginBox-border-width: medium; /* must not be 0px/0mm/0in to have a border. 'medium' is a keyword. */ + + /* In some themes, at edit- + time, the format button lands under the page number. See BL-13206. The name is is intentionally vague about direction and what we do with it. + Must have a unit: this feeds a calc() with px, where a unitless 0 makes the whole expression invalid (BL-14901). */ + --formatButton-pageNumber-dodge: 0px; +} + +/* this rule might not always be what we need for every kind of interactive page, but it's a good default. + E.g., it allows the blue of the Simple Choice to come through. */ +.bloom-page.bloom-interactive-page { + --marginBox-background-color: transparent; +} + +/* Beware of making these rules more specific. We want them to be able to be overridden by .bloom-page rules + * that come from other themes (and hence later in the generated appearance.css file). + */ +.A3Landscape, +.A3Portrait, +.A4Landscape, +.A4Portrait, +.B5Portrait, +.LetterLandscape, +.LetterPortrait, +.LegalLandscape, +.LegalLandscape { + --page-margin: 15mm; + --page-gutter: 10mm; +} +.HalfLetterPortrait,/* SIL Mexico says use same as A5 */ +.HalfLetterLandscape, +.A5Landscape, +.A5Portrait, +.Size6x9Landscape, +.Size6x9Portrait, +.USComicPortrait { + --page-margin: 12mm; +} +.QuarterLetterPortrait, +.QuarterLetterLandscape, +.A6Portrait, +.A6Landscape { + --page-margin: 10mm; +} +.Cm13Landscape { + --page-margin: 5mm; +} +.bloom-page[class*="Ebook"], +.bloom-page[class*="Device"] { + --page-margin: 10px; +} + +.bloom-page[class*="Ebook"], +.bloom-page[class*="Device"], +.bloomPlayer-page .bloom-page { + /* Deliberately set both of these, which combines with a special device/bloom-player rule + * in basePage.less which sets both left and right margin to auto, and we get + * centered as the default for device/bloom-player pages. (To override this, you need to + * set the margin you don't want to something like "deliberately-invalid".)*/ + --pageNumber-right-margin: 0px; + --pageNumber-always-left-margin: 0px; +} + +.numberedPage[class*="Ebook"], +.numberedPage[class*="Device"] { + /* These page sizes have small margins, so we need extra height on numbered ones. + (Note that this disappears if page numbers are turned off, because --pageNumber-show-multiplicand is 0.) */ + --pageNumber-extra-height: 8mm !important; +} + +/* We need a small margin (above) for xmatter pages (e.g., Robots Mali credits page, + * especially in landscape, comment in BL-13002). + * But we need more on numbered pages, so we can fit the page number. + * This unfortunately breaks our rule about keeping the specificity at one class so that + * the settings dialog can override. But currently we don't expect to make page margins + * a book setting, so for now we're OK.*/ +/*.numberedPage.Device16x9Portrait, +.numberedPage.Device16x9Landscape { + --page-margin-bottom: 45px; /* need room for page number, so not as small as others +}*/ + +/* classes are doubled in this rule because it needs to beat the one above that sets the + * bottom margin for numbered pages in Device page sizes. This makes it equally specific + * and thus the last one wins. */ +.no-margin-page.no-margin-page, +.comic.comic { + --page-margin-top: 0px; + --page-margin-bottom: 0px; + --page-margin-right: 0px; + --page-margin-left: 0px; + --pageNumber-font-size: 0px; /* review will this work to hide it? */ + --pageNumber-show-multiplicand: 0; /* no extra space for suppressed page number */ + --pageNumber-extra-height: 0mm !important; +} + +/***************************************************************************** + * These variables / rules are for xmatter pages. + */ +.bloom-frontMatter, +.bloom-backMatter { + --MarginBetweenXMatterBlocks: 2em; + --MarginBetweenXMatterMinorItems: 5px; + --DefaultCoverTitle1FontSize: 25pt; + --DefaultCoverTitle2FontSize: 12pt; + /* Same as our ordinary default, but we have to set it explicitly because of a trick + that copies the DefaultCoverTitle1FontSize to the translationGroup. */ + --DefaultCoverTitle3FontSize: 10pt; +} + +/* From this book's appearance settings */ +.bloom-page { + --pageNumber-show-multiplicand: 1; + --cover-creditsRow-show: doShow-css-will-ignore-this-and-use-default; + --cover-title-L1-show: doShow-css-will-ignore-this-and-use-default; + --cover-title-L2-show: doShow-css-will-ignore-this-and-use-default; + --cover-title-L3-show: none; + --cover-topic-show: doShow-css-will-ignore-this-and-use-default; + --cover-languageName-show: doShow-css-will-ignore-this-and-use-default; + --pageNumber-show: doShow-css-will-ignore-this-and-use-default; + --pageNumber-left-margin-override: unset; + --pageNumber-right-margin-override: unset; + --cover-background-color: #c6c6c6; +} + diff --git a/collections/page-copy/Copy Source/appearance.json b/collections/page-copy/Copy Source/appearance.json new file mode 100644 index 0000000..d3fd107 --- /dev/null +++ b/collections/page-copy/Copy Source/appearance.json @@ -0,0 +1,15 @@ +{ + "cssThemeName": "default", + "fullBleed": false, + "pageNumber-position": "automatic", + "cover-creditsRow-show": true, + "cover-title-L1-show": true, + "cover-title-L2-show": true, + "cover-title-L3-show": false, + "cover-topic-show": true, + "cover-languageName-show": true, + "pageNumber-show": true, + "pageNumber-left-margin-override": "unset", + "pageNumber-right-margin-override": "unset", + "cover-background-color": "#c6c6c6" +} \ No newline at end of file diff --git a/collections/page-copy/Copy Source/audio/i77c18c83-0224-405f-bb97-70d32078855c.mp3 b/collections/page-copy/Copy Source/audio/i77c18c83-0224-405f-bb97-70d32078855c.mp3 new file mode 100644 index 0000000..eb16c01 Binary files /dev/null and b/collections/page-copy/Copy Source/audio/i77c18c83-0224-405f-bb97-70d32078855c.mp3 differ diff --git a/collections/page-copy/Copy Source/bird.png b/collections/page-copy/Copy Source/bird.png new file mode 100644 index 0000000..d84da68 Binary files /dev/null and b/collections/page-copy/Copy Source/bird.png differ diff --git a/collections/page-copy/Copy Source/branding.css b/collections/page-copy/Copy Source/branding.css new file mode 100644 index 0000000..d1c94da --- /dev/null +++ b/collections/page-copy/Copy Source/branding.css @@ -0,0 +1,93 @@ +/*{ + label: "default branding"; + compatibleWithAppearanceVersion: 6.0; +}*/ +/***** +Note the following division of labor: +Rules that place branding on an xmatter page belong in bloom-xmatter-commons.less or the stylesheet of a particular xmatter. +Rules that format the branding go in branding-base.less, or in the branding.less of a particular branding. +****/ +[data-book*="branding"] { + display: flex; + flex-direction: column; +} +[data-book*="branding"] img { + margin-left: auto; + margin-right: auto; + width: auto; + max-width: 100%; + align-self: center; + object-fit: contain; +} +[data-book="outside-back-cover-branding-bottom-html"] { + width: 100%; +} +/* these rules allow different branding insertions depending on orientation */ +.portraitOnly, +.landscapeOnly { + display: none; +} +.Size6x9Portrait .portraitOnly, +.USComicPortrait .portraitOnly, +.Device16x9Portrait .portraitOnly, +.QuarterLetterPortrait .portraitOnly, +.HalfLetterPortrait .portraitOnly, +.LetterPortrait .portraitOnly, +.LegalPortrait .portraitOnly, +.A3Portrait .portraitOnly, +.A4Portrait .portraitOnly, +.A5Portrait .portraitOnly, +.B5Portrait .portraitOnly, +.A6Portrait .portraitOnly { + display: unset; +} +.Size6x9Landscape .landscapeOnly, +.Cm13Landscape .landscapeOnly, +.Device16x9Landscape .landscapeOnly, +.LetterLandscape .landscapeOnly, +.LegalLandscape .landscapeOnly, +.A3Landscape .landscapeOnly, +.A4Landscape .landscapeOnly, +.A5Landscape .landscapeOnly, +.A6Landscape .landscapeOnly { + display: unset; +} +.bloom-branding-wrapper { + border: 5px solid #d65649; + background-color: white; + border-radius: 8px; + width: fit-content; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.bloom-branding-wrapper img.branding { + width: 4.7cm; + padding: 10px; + box-sizing: border-box; + vertical-align: top; +} +.bloom-branding-wrapper .bloom-qrcode { + width: 2.8cm; + padding: 10px; + box-sizing: border-box; +} +.bloom-branding-wrapper .bloom-lang-on-blorg { + font-size: 9pt; + line-height: 1.2; + width: 100%; + box-sizing: border-box; + margin-left: 12px; + margin-right: 10px; + margin-bottom: 10px; + max-width: 7cm; +} +.bloom-branding-wrapper .bloom-lang-on-blorg .bloom-blorg-url { + color: #d65649; + font-weight: bold; +} +.bloom-page.bloom-customLayout[data-custom-layout-id] .marginBox .bloom-translationGroup:not(.bloom-imageDescription) { + display: flex !important; +} +/*# sourceMappingURL=branding.css.map */ +/*# sourceMappingURL=branding.css.map */ \ No newline at end of file diff --git a/collections/page-copy/Copy Source/defaultLangStyles.css b/collections/page-copy/Copy Source/defaultLangStyles.css new file mode 100644 index 0000000..285d600 --- /dev/null +++ b/collections/page-copy/Copy Source/defaultLangStyles.css @@ -0,0 +1,29 @@ +@font-face { font-family: ABeeZee; src: url(./host/fonts/ABeeZee-Regular.woff2); } +@font-face { font-family: ABeeZee; font-style: italic; src: url(./host/fonts/ABeeZee-Italic.woff2); } +@font-face { font-family: Andika; src: url(./host/fonts/Andika-Regular.woff2); } +@font-face { font-family: Andika; font-weight: bold; src: url(./host/fonts/Andika-Bold.woff2); } +@font-face { font-family: Andika; font-style: italic; src: url(./host/fonts/Andika-Italic.woff2); } +@font-face { font-family: Andika; font-weight: bold; font-style: italic; src: url(./host/fonts/Andika-BoldItalic.woff2); } +@font-face { font-family: "Andika New Basic"; font-weight: normal; font-style: normal; src: url("./host/fonts/Andika New Basic"); } +@font-face { font-family: "Andika New Basic"; font-weight: bold; font-style: normal; src: url("./host/fonts/Andika New Basic Bold"); } +@font-face { font-family: "Andika New Basic"; font-weight: normal; font-style: italic; src: url("./host/fonts/Andika New Basic Italic"); } +@font-face { font-family: "Andika New Basic"; font-weight: bold; font-style: italic; src: url("./host/fonts/Andika New Basic Bold Italic") ; } +/* *** DO NOT EDIT! *** These styles are controlled by the Settings dialog box in Bloom. */ +/* They may be over-ridden by rules in customCollectionStyles.css, appearance.css or customBookStyles[2].css */ + +.numberedPage::after +{ + font-family: 'Andika'; + direction: ltr; +} + +[lang='en'] +{ + font-family: 'Andika'; + direction: ltr; +} + +.bloom-page:not(.bloom-frontMatter):not(.bloom-backMatter) [lang='*'] +{ + font-family: 'Andika'; +} diff --git a/collections/page-copy/Copy Source/meta.json b/collections/page-copy/Copy Source/meta.json new file mode 100644 index 0000000..ba7c7fc --- /dev/null +++ b/collections/page-copy/Copy Source/meta.json @@ -0,0 +1 @@ +{"a11y_NoEssentialInfoByColor": false, "a11y_NoTextIncludedInAnyImages": false, "bookInstanceId": "3f8c1a52-6d24-4b09-9e35-71c8a4d5e001", "suitableForMakingShells": false, "suitableForMakingTemplates": false, "suitableForVernacularLibrary": true, "bloomdVersion": 0, "experimental": false, "brandingProjectName": "Default", "nameLocked": false, "folio": false, "isRtl": false, "title": "Copy Source", "allTitles": "{\"en\": \"Copy Source\"}", "originalTitle": "Copy Source", "BaseUrl": null, "isbn": "", "bookLineage": "", "license": "cc-by", "formatVersion": "2.1", "licenseNotes": null, "copyright": null, "credits": "", "tags": [], "pageCount": 0, "languages": [], "languageDescriptors": null, "summary": null, "allowUploadingToBloomLibrary": true, "draft": false, "bookletMakingIsAppropriate": true, "country": "United States", "province": "", "district": "", "tools": [], "currentTool": null, "toolboxIsOpen": false, "author": null, "publisher": null, "originalPublisher": null, "subjects": null, "hazards": null, "a11yFeatures": null, "a11yLevel": null, "a11yCertifier": null, "readingLevelDescription": null, "typicalAgeRange": null, "features": [], "page-number-style": "Decimal", "language-display-names": {"en": "English"}, "internetLimits": null, "use-original-copyright": false, "imported-book-source-url": null, "phashOfFirstContentImage": null} \ No newline at end of file diff --git a/collections/page-copy/Copy Source/origami.css b/collections/page-copy/Copy Source/origami.css new file mode 100644 index 0000000..45b3b5f --- /dev/null +++ b/collections/page-copy/Copy Source/origami.css @@ -0,0 +1,341 @@ +/*! + +Split Pane v0.4.0 + +Copyright (c) 2014 Simon Hagström + +Released under the MIT license +https://raw.github.com/shagstrom/split-pane/master/LICENSE + +*/ +.split-pane { + position: relative; + height: 100%; + width: 100%; + overflow: hidden; +} + +.split-pane.fixed-top > .split-pane-component, +.split-pane.fixed-bottom > .split-pane-component, +.split-pane.horizontal-percent > .split-pane-component { + position: absolute; + left: 0; + width: 100%; + overflow: auto; + top: auto; + bottom: 0; + z-index: 1; +} + +/* nicescroll looks for position:absolute to find where to place its elements. + * For "Just Text" pages, the .split-pane > .split-pane-component element layers + * are omitted, so we need to add a rule to set position:absolute on the + * .split-pane-component-inner element. + * This prevents the strange behavior reported in BL-15093. + * Note that position:absolute causes padding of the parent to be ignored, so we + * have to set the top, left, right, and bottom to what would be the padding value + * in order to get the correct layout. We also really want to restrict this rule + * to only "Just Text" pages. The ":has()" pseudo-class does that since the "Just + * a Picture" page will not have an immediate child with a visible + * .bloom-translationGroup class. (BL-15611, BL-15720) + */ +.marginBox + > .split-pane-component-inner:has(> .bloom-translationGroup:not(.box-header-off)) { + position: absolute; + top: var(--marginBox-padding); + left: var(--marginBox-padding); + right: var(--marginBox-padding); + bottom: var(--marginBox-padding); + width: initial; + height: initial; +} + +.split-pane.fixed-top > .split-pane-component:first-child, +.split-pane.fixed-bottom > .split-pane-component:first-child, +.split-pane.horizontal-percent > .split-pane-component:first-child { + top: 0; + bottom: auto; +} + +.split-pane.fixed-top > .split-pane-divider, +.split-pane.fixed-bottom > .split-pane-divider, +.split-pane.horizontal-percent > .split-pane-divider { + position: absolute; + width: 100%; + left: 0; + cursor: ns-resize; + z-index: 2; + + /* JohnT mod: this extra padding makes it impossible to grab the crop control right above the split. + padding-bottom: 5px; /* this actually enlarges the target area for the user trying to find the splitter, without changing the layout of the page (because the position is absolute)*/ +} + +.split-pane.fixed-left > .split-pane-component, +.split-pane.fixed-right > .split-pane-component, +.split-pane.vertical-percent > .split-pane-component { + position: absolute; + top: 0; + height: 100%; + overflow: auto; + left: auto; + right: 0; + z-index: 1; +} + +.split-pane.fixed-left > .split-pane-component:first-child, +.split-pane.fixed-right > .split-pane-component:first-child, +.split-pane.vertical-percent > .split-pane-component:first-child { + left: 0; + right: auto; +} + +.split-pane.fixed-left > .split-pane-divider, +.split-pane.fixed-right > .split-pane-divider, +.split-pane.vertical-percent > .split-pane-divider { + position: absolute; + height: 100%; + top: 0; + cursor: ew-resize; + z-index: 2; +} + +.split-pane-resize-shim { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 10000; + display: none; +} + +.split-pane.fixed-left > .split-pane-resize-shim, +.split-pane.fixed-right > .split-pane-resize-shim, +.split-pane.vertical-percent > .split-pane-resize-shim { + cursor: ew-resize; +} + +.split-pane.fixed-top > .split-pane-resize-shim, +.split-pane.fixed-bottom > .split-pane-resize-shim, +.split-pane.horizontal-percent > .split-pane-resize-shim { + cursor: ns-resize; +} + +.split-pane > .split-pane-component { + overflow: hidden !important; +} +.split-pane.vertical-percent > .split-pane-component.position-left { + right: 50%; + margin-right: var(--side-by-side-gap); +} +.split-pane.vertical-percent > .split-pane-component.position-right { + width: 50%; +} +.split-pane.horizontal-percent > .split-pane-component.position-top { + bottom: 50%; + margin-bottom: var(--top-bottom-gap); +} +.split-pane.horizontal-percent > .split-pane-component.position-bottom { + height: 50%; +} +.split-pane-divider { + visibility: hidden; +} +.split-pane.vertical-percent > .vertical-divider { + right: 50%; + border-right: 3px dashed transparent; +} +.split-pane.horizontal-percent > .horizontal-divider { + bottom: 50%; + border-bottom: 3px dashed transparent; +} +.origami-controls { + position: absolute; + top: 0; + right: 0; + z-index: 20000; + height: 99%; + width: 99%; +} +.origami-controls .close { + font-weight: bold; +} +.origami-controls .button, +.origami-controls .origami-controls .button:visited { + display: inline-block; + text-decoration: none; + position: relative; + height: 20px; + width: 20px; + text-align: center; + color: #d2d2d2; + background-color: transparent; + line-height: 1em; + font-size: 18px; +} +.origami-controls .close-button-wrapper { + float: left; + padding: 5px; + position: absolute; + right: 0; + top: 0; +} +.origami-controls .vertical-adders { + left: 0; + position: absolute; + top: 10%; +} +.origami-controls .vertical-adders .button { + position: absolute; + left: 10px; +} +.origami-controls .vertical-adders .button.add-top { + top: 10px; +} +.origami-controls .vertical-adders .button.add-bottom { + bottom: 10px; +} +.origami-controls .vertical-adders .separator { + border-bottom: 3px #d2d2d2 dashed; + width: 100%; + position: absolute; + top: 50%; +} +.origami-controls .horizontal-adders { + bottom: 0; + right: 10%; + position: absolute; +} +.origami-controls .horizontal-adders .button { + position: absolute; + bottom: 10px; +} +.origami-controls .horizontal-adders .button.add-left { + left: 10px; +} +.origami-controls .horizontal-adders .button.add-right { + right: 10px; +} +.origami-controls .horizontal-adders .separator { + border-right: 3px #d2d2d2 dashed; + height: 100%; + position: absolute; + left: 50%; +} +.origami-controls .horizontal-adders > div { + float: left; +} +/* I wasn't convinced this was helpful... may return to it +.adders{ + transition-property: width, height; + transition-duration: 0.5s; +}*/ +.origami-controls .vertical-adders, +.origami-controls .horizontal-adders { + /* -background-color: lightgrey;rgba(0,0,0,.1) ;*/ +} +.split-pane-component-inner { + position: relative; + width: 100%; + height: 100%; + padding: 0px; + box-sizing: border-box; + transition-property: font-size; + transition-duration: 0.5s; + font-size: 12pt; +} +.container-selector-links { + display: none; +} +.container-textBox-id { + display: none; +} +.selector-links { + top: 45%; + text-align: center; +} +.selector-links a { + z-index: 50000; +} +.selector-links div { + display: inline; +} +.split-pane-component-inner { + container-type: size; + container-name: split-pane-component-inner; +} +.split-pane-component-inner .vertical-adders { + display: none; +} +.split-pane-component-inner .horizontal-adders { + display: none; +} +@container split-pane-component-inner (min-width: 60px) { + .horizontal-adders { + width: 70px; + height: 50px; + } +} +@container split-pane-component-inner (min-height: 60px) { + .vertical-adders { + width: 50px; + height: 70px; + } +} +@container split-pane-component-inner (min-width: 150px) and (min-height: 150px) { + .textBox-identifier { + transition-property: font-size; + transition-duration: 0.5s; + font-size: 24pt; + } +} +@container split-pane-component-inner (min-height: 250px) { + .vertical-adders { + height: 100px; + } + .horizontal-adders { + height: 100px; + } +} +@container split-pane-component-inner (min-width: 250px) { + .vertical-adders { + width: 100px; + } + .horizontal-adders { + width: 100px; + } +} +.origami-layout-mode { + /*the commented line below would also add it to an empty bloom-content1 for re-entry to layout mode*/ + /*but that would be problematic/confusing in a multilingual context*/ + /*.origami-layout-mode .split-pane-component-inner .bloom-editable.bloom-content1:empty:before,*/ + /* not setting z-index in the upper layer allows the adder buttons to be visible and active when the */ + /* cursor is over the "Text Box" text, but not when it is over the .formatButton gearbox icon. (BL-9176) */ +} +.origami-layout-mode .bloom-editable p { + color: #ececec !important; +} +.origami-layout-mode .bloom-editable p span { + background-color: unset !important; +} +.origami-layout-mode .origami-ui .adders { + display: none; +} +.origami-layout-mode .split-pane-component-inner .textBox-identifier { + /*content: "Text Box";*/ + color: #7e7e7e; + white-space: normal; + transition-property: font-size; + transition-duration: 0.5s; + text-align: center; + width: 100%; + position: absolute; + top: 45%; +} +.origami-layout-mode .split-pane-component-inner .textBox-identifier .formatButton { + z-index: 60000; + padding-left: 10px; + display: inline-flex; +} +/*# sourceMappingURL=origami.css.map */ +/*# sourceMappingURL=origami.css.map */ \ No newline at end of file diff --git a/collections/page-copy/Copy Source/publish-settings.json b/collections/page-copy/Copy Source/publish-settings.json new file mode 100644 index 0000000..363661c --- /dev/null +++ b/collections/page-copy/Copy Source/publish-settings.json @@ -0,0 +1 @@ +{"audioVideo":{"pageTurnDelay":3000,"format":"facebook","motion":false,"playerSettings":"","pageRange":[]},"epub":{"howToPublishImageDescriptions":0,"removeFontSizes":false,"mode":"fixed"},"bloomPUB":{"motion":true,"textLangs":{},"audioLangs":{},"signLangs":{},"imageSettings":{"maxWidth":600,"maxHeight":600}},"bloomLibrary":{"textLangs":{"en":"IncludeByDefault"},"audioLangs":{"en":"IncludeByDefault"},"signLangs":{}}} \ No newline at end of file diff --git a/collections/page-copy/Copy Source/video/pagecopy.mp4 b/collections/page-copy/Copy Source/video/pagecopy.mp4 new file mode 100644 index 0000000..6f906c1 Binary files /dev/null and b/collections/page-copy/Copy Source/video/pagecopy.mp4 differ diff --git a/collections/page-copy/customCollectionStyles.css b/collections/page-copy/customCollectionStyles.css new file mode 100644 index 0000000..74ef922 --- /dev/null +++ b/collections/page-copy/customCollectionStyles.css @@ -0,0 +1,13 @@ +/* Some books may need control over aspects of layout that cannot yet be adjusted + from the Bloom interface. In those cases, Bloom provides this "under the hood" method + of creating style rules using the underlying "Cascading Stylesheets" system. + These rules are then applied to all books in this collection. EDIT THIS FILE ONLY + IN THE COLLECTION FOLDER: changes made to a copy found in the book folder will be + lost the next time the book is edited with Bloom! + + Note: you can also add a file named "customBookStyles.css" in the book folder, + to limit the effects of the rules to just that one book. + + You can learn about CSS from hundreds of books, or online. However chances are, if + you need this customization, you will need an expert to create a version of this file + for you, or give you rules that you can paste in below this line. */ diff --git a/collections/page-copy/page-copy.bloomCollection b/collections/page-copy/page-copy.bloomCollection new file mode 100644 index 0000000..83b7b84 --- /dev/null +++ b/collections/page-copy/page-copy.bloomCollection @@ -0,0 +1,51 @@ + + + 5b1f6d4a-9c02-4f3e-8a71-2d6c0e9b4477 + English + false + en + Andika + false + 0 + false + 0 + English + false + en + Andika + false + 0 + false + 0 + + false + + Andika + false + 0 + false + 0 + + false + + 1 + Factory + Decimal + Default + + United States + + + True + Sentence + 40 + 200 + + True + True + #B0DEE4 + + + + #c6c6c6 #6d6d6d + \ No newline at end of file diff --git a/manifest.json b/manifest.json index a895617..0044d60 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,16 @@ "collections": { "basic": { "purpose": "Two minimal books (A5 Portrait, 16x9 Landscape) with reference screenshots, used for visual regression across brandings and themes.", - "usedBy": ["BloomDesktop src/BloomVisualRegressionTests"], + "usedBy": [ + "BloomDesktop src/BloomVisualRegressionTests" + ], + "automation": "automated" + }, + "page-copy": { + "purpose": "Two books for the copy-page e2e test: \"Copy Source\", whose first content page carries a custom style, an image, a Talking Book recording, a video and a custom origami layout, and \"Copy Destination\", an ordinary book the page is pasted into.", + "usedBy": [ + "BloomDesktop src/BloomE2E" + ], "automation": "automated" } }