diff --git a/public/testBooks/drag and drop games/Check Answer Symbol.svg b/public/testBooks/drag and drop games/Check Answer Symbol.svg new file mode 100644 index 0000000..da9cc31 --- /dev/null +++ b/public/testBooks/drag and drop games/Check Answer Symbol.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/testBooks/drag and drop games/Device-XMatter.css b/public/testBooks/drag and drop games/Device-XMatter.css new file mode 100644 index 0000000..e390b22 --- /dev/null +++ b/public/testBooks/drag and drop games/Device-XMatter.css @@ -0,0 +1,288 @@ +.bloom-frontMatter .pageLabel:before, +.bloom-backMatter .pageLabel:before { + content: "Device"; + display: none; +} +.bloom-frontMatter .pageLabel:after, +.bloom-backMatter .pageLabel:after { + content: ": " attr(data-after-content); +} +.insideFrontCover .bloom-translationGroup { + height: 100%; +} +.iso693Code * { + display: inline; +} +.frontCover .marginBox { + display: flex; + flex-direction: column; +} +.frontCover .Cover-Default-style { + font-size: 12pt; +} +.frontCover .bloom-translationGroup.bookTitle { + flex: 0 0 auto; + order: 0; + display: flex; + flex-direction: column; + row-gap: 10px; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable { + order: 0; + height: auto; + justify-content: center; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentNational1 { + order: 1; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentNational2 { + order: 2; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentFirst { + order: 0; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentSecond { + order: 1; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentThird { + order: 2; +} +.frontCover .placeholder, +.frontCover .bloom-imageContainer { + order: kFrontCoverImageOrder; + flex: 1 1 auto; + margin-top: 15px; + margin-bottom: 15px; +} +.frontCover .asideContainer { + order: kFrontCoverImageOrder; +} +.frontCover .asideContainer p:first-child { + margin-top: 0; +} +.frontCover .bottomBlock { + flex: 0 0 auto; + order: 2; + display: flex; + flex-direction: row; +} +.frontCover .bottomBlock .branding { + order: 0; + margin: 0; +} +.frontCover .bottomBlock .bottomTextContent { + flex: 1 0 100%; + order: 1; + display: flex; + flex-direction: column; +} +.frontCover .bottomBlock .bottomTextContent .creditsRow .bloom-editable.smallCoverCredits { + text-align: center; + line-height: 1.7em; + min-height: 1.7em; + height: auto; +} +.frontCover .bottomBlock .bottomTextContent .bottomRow { + display: flex; + flex-direction: row; + justify-content: space-between; +} +.frontCover .bottomBlock .bottomTextContent .bottomRow[data-have-topic="false"] .coverBottomLangName { + margin-left: auto; + margin-right: auto; +} +.frontCover .bottomBlock .bottomTextContent .bottomRow .coverBottomLangName { + line-height: 1.6em !important; +} +.frontCover .bottomBlock .bottomTextContent .bottomRow .coverBottomBookTopic { + height: 20px; + min-width: 1px; + text-align: right; +} +.frontCover .bottomBlock .bottomTextContent .bottomRow .coverBottomBookTopic .bloom-editable { + display: inline !important; + bottom: -4px; + padding-right: 1px; + text-align: right; +} +.frontCover .bottomBlock .bottomTextContent .bottomRow .coverBottomBookTopic .bloom-editable { + margin-top: 0; +} +.frontCover .topBlock, +.titlePage .topBlock { + flex: 0 0 auto; + order: 0; + display: flex; + flex-direction: row; + direction: ltr; +} +.frontCover .topBlock .branding, +.titlePage .topBlock .branding { + order: 0; + margin: 0; + margin-right: 10px; +} +.frontCover .topBlock .topContent, +.titlePage .topBlock .topContent { + flex: 1 1 100%; + order: 1; + display: flex; + flex-direction: column; + margin-left: 0; + margin-right: 0; + width: auto; +} +.credits .Credits-Page-style { + font-size: 10pt; + line-height: 1.4em; +} +.credits .originalAcknowledgments .bloom-editable { + margin-bottom: var(--MarginBetweenXMatterBlocks, 2em); +} +.credits .versionAcknowledgments .bloom-editable { + height: auto; + margin-bottom: 1em; +} +.credits .licenseUrl { + display: none; +} +.credits.Cm13Landscape .licenseImage, +.credits.A6Landscape .licenseImage, +.credits.A6Portrait .licenseImage, +.credits.QuarterLetterLandscape .licenseImage, +.credits.QuarterLetterPortrait .licenseImage { + width: 65px; +} +.credits.Cm13Landscape .copyright, +.credits.A6Landscape .copyright, +.credits.A6Portrait .copyright, +.credits.QuarterLetterLandscape .copyright, +.credits.QuarterLetterPortrait .copyright, +.credits.Cm13Landscape .ISBNContainer, +.credits.A6Landscape .ISBNContainer, +.credits.A6Portrait .ISBNContainer, +.credits.QuarterLetterLandscape .ISBNContainer, +.credits.QuarterLetterPortrait .ISBNContainer, +.credits.Cm13Landscape .licenseBlock, +.credits.A6Landscape .licenseBlock, +.credits.A6Portrait .licenseBlock, +.credits.QuarterLetterLandscape .licenseBlock, +.credits.QuarterLetterPortrait .licenseBlock, +.credits.Cm13Landscape .originalAcknowledgments .bloom-editable, +.credits.A6Landscape .originalAcknowledgments .bloom-editable, +.credits.A6Portrait .originalAcknowledgments .bloom-editable, +.credits.QuarterLetterLandscape .originalAcknowledgments .bloom-editable, +.credits.QuarterLetterPortrait .originalAcknowledgments .bloom-editable { + margin-bottom: 0.5em; +} +.credits [data-book="credits-page-branding-bottom-html"] { + position: absolute; + bottom: 0; + left: 0; + right: 0; +} +.titlePage #originalContributions .bloom-editable { + min-height: 3em; +} +.titlePage #funding .bloom-editable { + min-height: 3em; +} +.titlePage { + text-align: center; +} +.titlePage .Title-On-Title-Page-style { + font-size: 14pt; +} +.titlePage .Title-On-Title-Page-style[data-order="1"] { + font-size: 20pt; +} +.titlePage #titlePageTitleBlock .bloom-editable { + line-height: 1.4em; +} +.titlePage #languageInformation { + width: 100%; +} +.titlePage .marginBox { + display: flex; + flex-direction: column; +} +.titlePage [data-book="title-page-branding-bottom-html"] { + width: 100%; + flex: 0 2 1in; + min-height: 0.25in; +} +.titlePage [data-book="title-page-branding-bottom-html"] img { + height: 100%; + object-fit: contain; +} +.titlePage .smallFlexGap { + flex: 0 1 0.5em; +} +.titlePage .largeFlexGap { + flex: 0 4 3em; +} +.titlePage .fillPageFlexGap { + flex: 1 4 3em; +} +.insideBackCover .bloom-translationGroup { + height: 100%; +} +.outsideBackCover .marginBox { + display: flex; + flex-direction: column; +} +.outsideBackCover .marginBox .bloom-translationGroup { + min-height: 30%; + flex: 1; +} +.outsideBackCover .marginBox .bloom-translationGroup .bloom-editable { + text-align: center; +} +.outsideBackCover .marginBox [data-book="outside-back-cover-branding-bottom-html"] { + margin-top: 1em; +} +.ISBNContainer { + margin-bottom: var(--MarginBetweenXMatterBlocks, 2em); +} +.ISBNContainer .bloom-translationGroup { + display: inline-block; +} +.ISBNContainer .bloom-editable { + text-align: left !important; + width: 4.3cm !important; + max-height: 1.8em; + min-height: 1.8em; +} +.ISBNContainer .bloom-editable[lang="*"] { + display: inline-block; +} +.ISBNContainer .ISBNContainer span { + vertical-align: top; +} +.theEndPage { + /*.marginBox { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + [data-book="end-of-book-label"]{ + width: 100%; + font-size: 3em; + line-height: 100%; + text-align: center; + // put in the middle, pushing branding to bottom + margin-bottom: auto; + margin-top: auto; + }*/ +} +.theEndPage .marginBox { + display: block; +} +.theEndPage .marginBox [data-book="outside-back-cover-branding-bottom-html"] { + position: absolute; + bottom: 0; + left: 0; + right: 0; +} +/*# sourceMappingURL=Device-XMatter.css.map */ \ No newline at end of file diff --git a/public/testBooks/drag and drop games/Games.css b/public/testBooks/drag and drop games/Games.css new file mode 100644 index 0000000..8732de7 --- /dev/null +++ b/public/testBooks/drag and drop games/Games.css @@ -0,0 +1,276 @@ +.activityBlueOnTan { + --page-color: #e9d9bd; + --target-color: #f9e9cc; + --draggable-background-color: #2980bb; + --draggable-color: white; + --fixed-color: #fc8602; + --button-color: #2980bb; + --slider-button-color: #2980bb; + --slider-keyword-color: #902a90; + --text-background: #75d0ee; + --hover-button-border: #1d94a4; + --active-button-border: black; +} +.drag-item-correct, +.drag-item-wrong { + display: none; +} +.drag-activity-correct .drag-item-correct, +.drag-activity-wrong .drag-item-wrong { + display: block; +} +.drag-activity-play .bloom-imageContainer .bloom-textOverPicture div:focus, +.drag-activity-play .bloom-imageContainer .bloom-textOverPicture video:focus { + outline-color: transparent; + box-shadow: none; +} +.drag-activity-correct .bloom-textOverPicture:not(.drag-item-correct) img[src="placeHolder.png"], +.drag-activity-wrong .bloom-textOverPicture:not(.drag-item-wrong) img[src="placeHolder.png"], +.drag-activity-play .bloom-textOverPicture img[src="placeHolder.png"], +.drag-activity-solution .bloom-textOverPicture img[src="placeHolder.png"] { + display: none; +} +[data-bubble-id] { + display: flex; + flex-direction: column; + justify-content: center; +} +[data-bubble-id] .bloom-translationGroup { + height: auto; +} +.activeButton { + opacity: 1; + pointer-events: unset; +} +.drag-activity-play :not(.drag-activity-wrong) .try-again-button, +.drag-activity-play :not(.drag-activity-wrong) .show-correct-button { + display: none; +} +.drag-activity-play .drag-item-wrong, +.drag-activity-play .drag-item-correct { + z-index: 1003; +} +.drag-activity-play .bloom-videoContainer.bloom-selected { + border: none; +} +.drag-activity-play .bloom-ui-dragging { + outline: 1px solid rgba(255, 255, 255, 0.01); +} +.drag-activity-play .drag-item-order-sentence { + display: none; +} +.drag-activity-play .uibloomSourceTextsBubble { + display: none !important; +} +.drag-item-random-sentence { + display: flex; + flex-wrap: wrap; + row-gap: 5px; + position: absolute; +} +.drag-activity-play.drag-activity-correct .check-button, +.drag-activity-play.drag-activity-wrong .check-button, +.drag-activity-play.drag-activity-solution .check-button { + display: none; +} +.drag-activity-play.drag-activity-wrong .try-again-button, +.drag-activity-play.drag-activity-wrong .show-correct-button { + opacity: 1; + pointer-events: unset; +} +.drag-activity-play.drag-activity-wrong .try-again-button:hover, +.drag-activity-play.drag-activity-wrong .show-correct-button:hover { + border-color: var(--hover-button-border); +} +.drag-activity-play.drag-activity-wrong .try-again-button:hover:active, +.drag-activity-play.drag-activity-wrong .show-correct-button:hover:active { + border-color: var(--active-button-border); +} +.drag-activity-play #target-arrow, +.drag-activity-play .bloom-dragHandle, +.drag-activity-play .ui-resizable-handle { + display: none; +} +.drag-activity-play .check-button { + display: block; +} +.drag-activity-play.drag-activity-wrong .check-button { + display: none; +} +.drag-activity-play.drag-activity-wrong .try-again-button, +.drag-activity-play.drag-activity-wrong .show-correct-button { + display: block; +} +.drag-activity-play.drag-activity-correct .check-button { + display: none; +} +[data-target-of] { + position: absolute; + z-index: 1002; + box-sizing: border-box; +} +[data-target-of] > * { + opacity: 50%; +} +[data-target-of] .bloom-imageContainer img { + height: unset; +} +.drag-activity-play .bloom-textOverPicture .bloom-translationGroup .bloom-editable.bloom-editable.bloom-editable { + border: none; + box-shadow: none; + outline: none !important; +} +.drag-activity-play .bloom-textOverPicture .bloom-translationGroup .bloom-editable.bloom-editable.bloom-editable p:after { + content: unset; +} +.drag-activity-play .bloom-textOverPicture[data-bubble-id] { + z-index: 1003; +} +.drag-activity-play .bloom-textOverPicture[data-bubble-id].bloom-ui-dragging { + z-index: 1004; +} +.drag-activity-play .imageButton, +.drag-activity-play #formatButton, +.drag-activity-play .ui-tooltip-plain { + display: none !important; +} +.drag-activity-play .cke_editable { + cursor: default; +} +.drag-activity-play .marginBox { + border: none; +} +.drag-activity-play .marginBox .bloom-imageContainer.bloom-imageContainer:after { + border: none; +} +.drag-activity-play .check-button { + opacity: 1; + pointer-events: unset; +} +.drag-activity-play .check-button:hover { + border-color: var(--hover-button-border); +} +.drag-activity-play .check-button:hover:active { + border-color: var(--active-button-border); +} +.bloom-page[data-show-targets-during-play="false"] [data-target-of] { + background-color: transparent; +} +.drag-activity-play .bloom-page[data-show-targets-during-play="false"] [data-target-of] { + visibility: hidden; +} +.bloom-targetWrapper { + height: 100%; + width: 100%; + display: flex; + justify-content: center; + align-items: center; +} +.drag-item-order-sentence .bloom-editable { + border: none !important; + outline: none !important; + box-shadow: none !important; +} +.drag-item-order-sentence .bloom-editable p { + word-spacing: 16px; +} +.drag-item-order-word { + cursor: default; + box-sizing: border-box; +} +.game-button, +.page-turn-button { + position: absolute; + z-index: 1006; + border-color: transparent; + pointer-events: none; +} +.game-button { + height: 36px; + width: 50px; + opacity: 0.3; + pointer-events: none; +} +.page-turn-button { + background-color: transparent; + opacity: 10%; +} +.turn-left img { + transform: rotate(180deg); +} +[data-activity="drag-word-chooser-slider"] [data-txt-img] { + border: 8px solid var(--slider-keyword-color) !important; + border-radius: 18px; + background-color: var(--text-background); +} +.bloom-page { + background-color: var(--page-color); +} +.bloom-textOverPicture.draggable-text { + background-color: var(--draggable-background-color); + color: var(--draggable-color); +} +.bloom-textOverPicture.draggable-text.bloom-unused-in-lang { + display: none; +} +.drag-item-correct .bloom-translationGroup, +.drag-item-wrong .bloom-translationGroup { + background-color: transparent; + color: var(--fixed-color); +} +.drag-item-order-word, +.drag-item-order-sentence p { + background-color: var(--draggable-background-color); + color: var(--draggable-color); + border-radius: 10px; + padding: 0px 11px; + margin-right: 5px; +} +[data-target-of] { + border: dashed 2px var(--draggable-background-color); +} +[data-target-of]:focus { + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px var(--draggable-background-color); +} +[data-target-of].bloom-unused-in-lang { + display: none; +} +.bloom-change-page-button { + background-color: var(--draggable-background-color); + color: var(--draggable-color); + border-radius: 10px; + padding: 3px 2px 2px 10px; + box-sizing: border-box; + z-index: 1002; + cursor: default; +} +.check-button, +.try-again-button, +.show-correct-button { + cursor: pointer; + font-weight: bold; + text-decoration: none; + min-height: 36px; +} +.game-button { + background-color: var(--draggable-background-color); +} +.activeButton:hover { + border-color: var(--hover-button-border); +} +.activeButton:hover:active { + border-color: var(--active-button-border); +} +.bloom-game-prompt { + display: none; +} +#promptInput #formatButton { + display: none; +} +#promptButton { + visibility: hidden; +} +.drag-activity-start #promptButton { + visibility: unset; +} +/*# sourceMappingURL=Games.css.map */ \ No newline at end of file diff --git a/public/testBooks/drag and drop games/Page Nav.svg b/public/testBooks/drag and drop games/Page Nav.svg new file mode 100644 index 0000000..9983907 --- /dev/null +++ b/public/testBooks/drag and drop games/Page Nav.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/testBooks/drag and drop games/Show Answer Symbol.svg b/public/testBooks/drag and drop games/Show Answer Symbol.svg new file mode 100644 index 0000000..34d7111 --- /dev/null +++ b/public/testBooks/drag and drop games/Show Answer Symbol.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/testBooks/drag and drop games/Try Again Symbol.svg b/public/testBooks/drag and drop games/Try Again Symbol.svg new file mode 100644 index 0000000..0debbf9 --- /dev/null +++ b/public/testBooks/drag and drop games/Try Again Symbol.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/testBooks/drag and drop games/appearance.css b/public/testBooks/drag and drop games/appearance.css new file mode 100644 index 0000000..64d1940 --- /dev/null +++ b/public/testBooks/drag and drop games/appearance.css @@ -0,0 +1,285 @@ +/* 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: 10px; + /* 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; + /* 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 */ + --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-imageContainer (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 */ + --cover-margin-top: var(--page-margin); /* same default value as --page-margin-top, but used for outside cover pages */ + /* padding-bottom: value in .bloom-page.outsideFrontCover and .bloom-page.outsideBackCover */ + --cover-margin-bottom: var(--page-margin); /* same default value as --page-margin-bottom, but used for outside cover pages */ + /* 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.) */ + --marginBox-background-color: white; /* it is not transparent because at edit time we set the parent (the translationGroup) color to show padding + /* 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. */ + --formatButton-pageNumber-dodge: 0; +} + +/* 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*="Device"] { + --page-margin: 10px; +} + +.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*="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; +} + +/* The following rules are from the current appearance theme, 'zero-margin-ebook' */ +/* replaces the pre-v6.0 "EFL Template 1" custom CSS: which had no margins, no page numbers. +Note that hiding the page numbers is done by a setting in appearance.json, not here. */ + +[class*="Device"].bloom-frontMatter, +[class*="Device"].bloom-backMatter { + --page-margin: 3mm; +} + +/* This statement sets the margins on the numbered content pages */ + +:not(.bloom-interactive-page).numberedPage.Device16x9Landscape, +:not(.bloom-interactive-page).numberedPage.Device16x9Portrait { + --page-margin: 0mm; + + /* instead of a gap, we are using padding because the text should look centered between the image and edge of the screen */ + --page-verticalSplit-width: 0mm; /* we don't need this; removing it makes it simpler to just have the same spacing on left and right sides */ + --page-horizontalSplit-height: 0mm; +} + +/* The section below controls the page number and the white circle around it. */ +.Device16x9Landscape.numberedPage { + --pageNumber-extra-height: 0mm !important; /* we put the page number on top of the image so we don't need a margin boost */ +} +.Device16x9Portrait.numberedPage { + /* this rule will apply more generally than we'd prefer, but the common situation we're improving here + is picture on top, text on the bottom, we need to make room for the page number */ + --pageNumber-extra-height: 12mm !important; +} +.Device16x9Landscape.numberedPage::after { + --pageNumber-bottom: 0mm; + --pageNumber-top: unset; + --pageNumber-font-size: 11pt; + + border-radius: 50%; + --pageNumber-background-color: #ffffff; + --pageNumber-background-width: 33px; + --pageNumber-always-left-margin: var(--page-margin-left); + --pageNumber-right-margin: deliberately-invalid; /* prevents right being set at all. unset does not work. Prevent centering for this layout */ +} +.Device16x9Landscape.numberedPage.pictureOnRight.pictureOnRight::after { + --pageNumber-right-margin: var(--page-margin-right); + --pageNumber-left-margin: deliberately-invalid; /* prevents left being set at all. unset does not work. Prevent centering for this layout */ + --pageNumber-always-left-margin: deliberately-invalid; /* prevents left being set at all. unset does not work. Prevent centering for this layout */ +} + +/* using "where:" so that the user's custom appearance can override the theme if specified */ +.numberedPage:where([class*="Device"]:not(.bloom-interactive-page)) { + --topLevel-text-padding: 0.5em; +} +[class*="Device"].numberedPage:not(.bloom-interactive-page) { + /* move so that page number doesn't it hide it if the text box is in the lower left */ + --formatButton-pageNumber-dodge: 20px; +} + +/* From this book's appearance settings */ +.bloom-page { + --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; + --cover-background-color: #B0DEE4; + --pageNumber-show-multiplicand: 1; +} + diff --git a/public/testBooks/drag and drop games/appearance.json b/public/testBooks/drag and drop games/appearance.json new file mode 100644 index 0000000..493502b --- /dev/null +++ b/public/testBooks/drag and drop games/appearance.json @@ -0,0 +1,10 @@ +{ + "cssThemeName": "zero-margin-ebook", + "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, + "cover-background-color": "#B0DEE4" +} \ No newline at end of file diff --git a/public/testBooks/drag and drop games/audio/correct_tada-fanfare-a_pixabay.webm b/public/testBooks/drag and drop games/audio/correct_tada-fanfare-a_pixabay.webm new file mode 100644 index 0000000..915a82a Binary files /dev/null and b/public/testBooks/drag and drop games/audio/correct_tada-fanfare-a_pixabay.webm differ diff --git a/public/testBooks/drag and drop games/audio/wrong_twoDownElectronic2_pixabay.webm b/public/testBooks/drag and drop games/audio/wrong_twoDownElectronic2_pixabay.webm new file mode 100644 index 0000000..e6baeff Binary files /dev/null and b/public/testBooks/drag and drop games/audio/wrong_twoDownElectronic2_pixabay.webm differ diff --git a/public/testBooks/drag and drop games/basePage.css b/public/testBooks/drag and drop games/basePage.css new file mode 100644 index 0000000..8461267 --- /dev/null +++ b/public/testBooks/drag and drop games/basePage.css @@ -0,0 +1,1307 @@ +body { + line-height: 1.5; + font-family: Andika, "Andika New Basic", "Andika Basic", "Gentium Basic", "Gentium Book Basic", "Doulos SIL", Sans-Serif; +} +span.ui-audioCurrent, +div.ui-audioCurrent p, +.ui-audioCurrent .ui-enableHighlight { + background-color: #febf00; + color: black; +} +textarea, +.bloom-editable { + flex-direction: column; +} +.bloom-backgroundImage { + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +.bloom-imageContainer img { + width: 100%; + height: 100%; + object-fit: contain; +} +.bloom-imageContainer img.bloom-imageObjectFit-cover { + object-fit: cover; +} +.bloom-imageContainer.bloom-imageObjectFit-cover { + background-size: cover; +} +.bloom-textOverPicture .bloom-imageContainer img { + object-fit: unset; + height: unset; +} +.bloom-imageContainer.hasOverlay > img[src="placeHolder.png"] { + display: none; +} +.bloom-imageContainer .bloom-imageDescription { + display: none; +} +.bloom-alignImageTopLeft img { + object-position: 0 0; +} +.bloom-borderstyle-black, +.bloom-borderstyle-black-round, +.bloom-borderstyle-gray, +.bloom-borderstyle-gray-round { + padding: 7px; +} +.bloom-borderstyle-black .bloom-editable, +.bloom-borderstyle-black-round .bloom-editable, +.bloom-borderstyle-gray .bloom-editable, +.bloom-borderstyle-gray-round .bloom-editable { + border: none; +} +.bloom-borderstyle-black { + border: 1px solid black; + border-radius: 0px; + box-sizing: border-box; +} +.bloom-borderstyle-black-round { + border: 1px solid black; + border-radius: 10px; + box-sizing: border-box; +} +.bloom-borderstyle-gray { + border: 1px solid gray; + border-radius: 0px; + box-sizing: border-box; +} +.bloom-borderstyle-gray-round { + border: 1px solid gray; + border-radius: 10px; + box-sizing: border-box; +} +.bloom-top-border-off { + border-top: none; +} +.bloom-right-border-off { + border-right: none; +} +.bloom-bottom-border-off { + border-bottom: none; +} +.bloom-left-border-off { + border-left: none; +} +.bloom-background-none { + background-color: transparent; +} +.bloom-translationGroup.bloom-background-gray.bloom-background-gray.bloom-background-gray { + background-color: hsl(0, 0%, 86%) !important; +} +span.bloom-linebreak { + display: block; + text-indent: 0; +} +.bloom-page .bloom-editable.bloom-visibility-code-on { + overflow-wrap: break-word; + text-wrap: pretty; +} +.bloom-page .bloom-editable.bloom-visibility-code-on.Title-On-Cover-style, +.bloom-page .bloom-editable.bloom-visibility-code-on.Cover-Default-style, +.bloom-page .bloom-editable.bloom-visibility-code-on.Title-On-Title-Page-style { + text-wrap: balance; +} +.bloom-page .bloom-editable.bloom-visibility-code-on.Bubble-style { + text-wrap: wrap; + box-sizing: content-box; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable { + font-weight: bold; + line-height: 1.1; + min-height: auto; +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentFirst { + font-size: var(--DefaultCoverTitle1FontSize, 25pt); + margin-bottom: var(--MarginBetweenXMatterMinorItems, 5px); +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentSecond { + font-size: var(--DefaultCoverTitle2FontSize, 12pt); + margin-bottom: var(--MarginBetweenXMatterMinorItems, 5px); +} +.frontCover .bloom-translationGroup.bookTitle .bloom-editable.bloom-contentThird { + font-size: var(--DefaultCoverTitle3FontSize, 10pt); +} +.Title-On-Cover-style { + text-align: center; +} +.credits .licenseAndCopyrightBlock .copyright { + margin-bottom: var(--MarginBetweenXMatterBlocks, 2em); +} +.credits .licenseAndCopyrightBlock .licenseBlock { + margin-bottom: var(--MarginBetweenXMatterBlocks, 2em); +} +.credits .licenseAndCopyrightBlock img { + width: 94px; +} +.bloom-imageContainer.ui-ctrlDown .bloom-textOverPicture .ui-resizable-handle { + display: none !important; +} +.bloom-imageContainer .bloom-imageContainer { + z-index: auto !important; +} +.bloom-imageContainer.grabbable:not(.ui-jquery-resizing-in-progress), +.bloom-imageContainer.grabbable:not(.ui-jquery-resizing-in-progress) .bloom-textOverPicture .bloom-translationGroup .bloom-editable.cke_editable { + cursor: grab; +} +.bloom-imageContainer.grabbing:not(.ui-jquery-resizing-in-progress), +.bloom-imageContainer.grabbing:not(.ui-jquery-resizing-in-progress) .bloom-textOverPicture .bloom-translationGroup .bloom-editable.cke_editable { + cursor: grabbing; +} +.bloom-imageContainer .bloom-textOverPicture:not(.ui-resizable-resizing) .bloom-dragHandle { + cursor: grab; +} +.bloom-imageContainer .bloom-textOverPicture:not(.ui-resizable-resizing) .bloom-dragHandle.grabbing { + cursor: grabbing; +} +.bloom-imageContainer.ne-resizable, +.bloom-imageContainer.ne-resizable .bloom-textOverPicture .bloom-translationGroup .bloom-editable.cke_editable { + cursor: ne-resize; +} +.bloom-imageContainer.nw-resizable, +.bloom-imageContainer.nw-resizable .bloom-textOverPicture .bloom-translationGroup .bloom-editable.cke_editable { + cursor: nw-resize; +} +.bloom-imageContainer.sw-resizable, +.bloom-imageContainer.sw-resizable .bloom-textOverPicture .bloom-translationGroup .bloom-editable.cke_editable { + cursor: sw-resize; +} +.bloom-imageContainer.se-resizable, +.bloom-imageContainer.se-resizable .bloom-textOverPicture .bloom-translationGroup .bloom-editable.cke_editable { + cursor: se-resize; +} +.bloom-imageContainer .bloom-textOverPicture { + position: absolute; + width: 140px; + min-width: 30px; + min-height: 30px; + border-radius: 3px; + border: none !important; +} +.bloom-imageContainer .bloom-textOverPicture .bloom-translationGroup { + background: transparent; + border: none; + z-index: 1002; +} +.bloom-imageContainer .bloom-textOverPicture .bloom-translationGroup .bloom-editable { + min-width: 27px; + min-height: 27px !important; + text-align: center; + overflow: visible; +} +.bloom-imageContainer .bloom-textOverPicture .bloom-translationGroup .bloom-editable[contentEditable="true"][data-languageTipContent]:not([data-languageTipContent=""]):after { + display: none; +} +.bloom-imageContainer .bloom-textOverPicture .bloom-translationGroup .bloom-editable[contentEditable="true"][data-languageTipContent]:not([data-languageTipContent=""]):focus:after { + display: block; + left: unset; + text-align: right; + bottom: 3px; + color: #96668f; + background-color: white; + font-size: small; + cursor: auto; +} +.bloom-imageContainer .bloom-textOverPicture .bloom-translationGroup .bloom-editable[contentEditable="true"][data-languageTipContent]:not([data-languageTipContent=""]):focus:after:hover { + background-color: white; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]) .bloom-translationGroup .bloom-editable { + outline: none; + border: none; + box-shadow: none; +} +.bloom-showImageDescriptions .bloom-textOverPicture { + display: none !important; +} +.bloom-fullBleed .bloom-imageContainer .bloom-textOverPicture[data-bubble*="`style`:`none`"] { + display: flex; + flex-direction: column; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]):not(:has(.overflow)), +.bloom-imageContainer .bloom-textOverPicture[data-bubble*="backgroundColors"]:not([data-bubble*="`backgroundColors`:[`transparent`]"]):not(:has(.overflow)) { + display: flex; + align-items: center; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]):not(:has(.overflow)) .bloom-editable.bloom-visibility-code-on, +.bloom-imageContainer .bloom-textOverPicture[data-bubble*="backgroundColors"]:not([data-bubble*="`backgroundColors`:[`transparent`]"]):not(:has(.overflow)) .bloom-editable.bloom-visibility-code-on { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + align-content: center; + width: auto; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]):not(:has(.overflow)) .bloom-editable.bloom-visibility-code-on p, +.bloom-imageContainer .bloom-textOverPicture[data-bubble*="backgroundColors"]:not([data-bubble*="`backgroundColors`:[`transparent`]"]):not(:has(.overflow)) .bloom-editable.bloom-visibility-code-on p { + flex-basis: 100%; + flex-grow: 0; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]):not(:has(.overflow)) .bloom-vertical-align-top .bloom-editable, +.bloom-imageContainer .bloom-textOverPicture[data-bubble*="backgroundColors"]:not([data-bubble*="`backgroundColors`:[`transparent`]"]):not(:has(.overflow)) .bloom-vertical-align-top .bloom-editable { + align-items: flex-start; + align-content: flex-start; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]):not(:has(.overflow)) .bloom-vertical-align-center .bloom-editable, +.bloom-imageContainer .bloom-textOverPicture[data-bubble*="backgroundColors"]:not([data-bubble*="`backgroundColors`:[`transparent`]"]):not(:has(.overflow)) .bloom-vertical-align-center .bloom-editable { + align-items: center; + align-content: center; +} +.bloom-imageContainer .bloom-textOverPicture[data-bubble]:not([data-bubble*="`style`:`none`"]):not(:has(.overflow)) .bloom-vertical-align-bottom .bloom-editable, +.bloom-imageContainer .bloom-textOverPicture[data-bubble*="backgroundColors"]:not([data-bubble*="`backgroundColors`:[`transparent`]"]):not(:has(.overflow)) .bloom-vertical-align-bottom .bloom-editable { + align-items: flex-end; + align-content: flex-end; +} +.bloom-imageContainer .bloom-textOverPicture .bloom-imageContainer { + margin: 0; +} +/* Sizing rules that apply to the bloom-page div, media box, etc. */ +.bloom-fullBleed .bloom-page { + transform-origin: top left; + transition: 0.5s ease-in-out; +} +.bloom-fullBleed .bloom-page.A5Portrait { + transform: translate(0, -1.25675676mm) scale(1.04054054); +} +.bloom-fullBleed .bloom-page.A5Landscape { + transform: translate(-1.25675676mm, 0) scale(1.04054054); +} +.bloom-fullBleed .bloom-page.A4Portrait { + transform: translate(0, -1.24285714mm) scale(1.02857143); +} +.bloom-fullBleed .bloom-page.A4Landscape { + transform: translate(-1.24285714mm, 0) scale(1.02857143); +} +.bloom-fullBleed .bloom-page.A3Portrait { + transform: translate(0, -1.24242424mm) scale(1.02020202); +} +.bloom-fullBleed .bloom-page.A3Landscape { + transform: translate(-1.24242424mm, 0) scale(1.02020202); +} +.bloom-fullBleed .bloom-page.USComicPortrait { + transform: translate(0, -0.06462636in) scale(1.03565592); +} +.bloom-fullBleed .bloom-page.Size6x9Portrait { + transform: translate(0, -0.05905512in) scale(1.03937008); +} +.bloom-fullBleed .bloom-page.Size6x9Landscape { + transform: translate(-0.05905512in, 0) scale(1.03937008); +} +.bloom-fullBleed .bloom-page.numberedPage { + --pageNumber-bottom: calc(var(--pageNumber-bottom) + 3mm); +} +.bloom-mediaBox { + page-break-after: always; + overflow: hidden; +} +.bloom-mediaBox.A5Portrait { + width: 154mm; + height: 216mm; +} +.bloom-mediaBox.A5Landscape { + width: 216mm; + height: 154mm; +} +.bloom-mediaBox.A4Portrait { + width: 216mm; + height: 303mm; +} +.bloom-mediaBox.A4Landscape { + width: 303mm; + height: 216mm; +} +.bloom-mediaBox.A3Portrait { + width: 303mm; + height: 426mm; +} +.bloom-mediaBox.A3Landscape { + width: 426mm; + height: 303mm; +} +.bloom-mediaBox.Device16x9Portrait { + width: 100mm; + height: 177.77777778mm; +} +.bloom-mediaBox.Device16x9Landscape { + width: 177.77777778mm; + height: 100mm; +} +.bloom-mediaBox.USComicPortrait { + width: 6.86122047in; + height: 10.48622047in; +} +.bloom-mediaBox.Size6x9Portrait { + width: 6.23622047in; + height: 9.23622047in; +} +.bloom-mediaBox.Size6x9Landscape { + width: 9.23622047in; + height: 6.23622047in; +} +body.publishingWithoutFullBleed .bloom-mediaBox { + overflow: hidden; +} +body.publishingWithoutFullBleed .bloom-mediaBox.A5Portrait { + width: 148mm; + height: 210mm; +} +body.publishingWithoutFullBleed .bloom-mediaBox.A5Landscape { + width: 210mm; + height: 148mm; +} +body.publishingWithoutFullBleed .bloom-mediaBox.USComicPortrait { + width: 6.625in; + height: 10.25in; +} +body.publishingWithoutFullBleed .bloom-mediaBox.Size6x9Portrait { + width: 6in; + height: 9in; +} +body.publishingWithoutFullBleed .bloom-mediaBox.Size6x9Landscape { + width: 9in; + height: 6in; +} +.pdfPublishMode .bloom-page.A3Portrait { + min-width: 296.8625mm; + max-width: 296.8625mm; + min-height: 419.89375mm; + max-height: 419.89375mm; +} +.pdfPublishMode .bloom-page.A3Landscape { + min-width: 419.89375mm; + max-width: 419.89375mm; + min-height: 296.8625mm; + max-height: 296.8625mm; +} +.pdfPublishMode .bloom-page.A4Portrait { + min-width: 209.81458333mm; + max-width: 209.81458333mm; + min-height: 296.8625mm; + max-height: 296.8625mm; +} +.pdfPublishMode .bloom-page.A4Landscape { + min-width: 297.12708333mm; + max-width: 297.12708333mm; + min-height: 209.81458333mm; + max-height: 209.81458333mm; +} +.pdfPublishMode .bloom-page.A5Portrait { + min-width: 147.90208333mm; + max-width: 147.90208333mm; + min-height: 209.81458333mm; + max-height: 209.81458333mm; +} +.pdfPublishMode .bloom-page.A5Landscape { + min-width: 209.81458333mm; + max-width: 209.81458333mm; + min-height: 147.90208333mm; + max-height: 147.90208333mm; +} +.pdfPublishMode .bloom-page.A6Portrait { + min-width: 105.03958333mm; + max-width: 105.03958333mm; + min-height: 147.90208333mm; + max-height: 147.90208333mm; +} +.pdfPublishMode .bloom-page.A6Landscape { + min-width: 147.90208333mm; + max-width: 147.90208333mm; + min-height: 105.03958333mm; + max-height: 105.03958333mm; +} +.pdfPublishMode .bloom-page.B5Portrait { + min-width: 175.94791667mm; + max-width: 175.94791667mm; + min-height: 249.76666667mm; + max-height: 249.76666667mm; +} +.pdfPublishMode .bloom-page.Cm13Landscape { + min-width: 129.91041667mm; + max-width: 129.91041667mm; + min-height: 130.175mm; + max-height: 130.175mm; +} +.pdfPublishMode .bloom-page.Device16x9Portrait { + min-width: 99.74791667mm; + max-width: 99.74791667mm; + min-height: 177.53541667mm; + max-height: 177.53541667mm; +} +.pdfPublishMode .bloom-page.Device16x9Landscape { + min-width: 177.53541667mm; + max-width: 177.53541667mm; + min-height: 99.74791667mm; + max-height: 99.74791667mm; +} +.bloom-page.A5Portrait { + min-width: 148mm; + max-width: 148mm; + min-height: 210mm; + max-height: 210mm; + height: 210mm; +} +.bloom-page.A5Landscape { + min-width: 210mm; + max-width: 210mm; + min-height: 148mm; + max-height: 148mm; + height: 148mm; +} +.bloom-page.B5Portrait { + min-width: 176mm; + max-width: 176mm; + min-height: 250mm; + max-height: 250mm; + height: 250mm; +} +.bloom-page.A4Landscape { + min-width: 297mm; + max-width: 297mm; + min-height: 210mm; + max-height: 210mm; + height: 210mm; +} +.bloom-page.A4Portrait { + min-width: 210mm; + max-width: 210mm; + min-height: 297mm; + max-height: 297mm; + height: 297mm; +} +.bloom-page.A3Landscape { + min-width: 420mm; + max-width: 420mm; + min-height: 297mm; + max-height: 297mm; + height: 297mm; +} +.bloom-page.A3Portrait { + min-width: 297mm; + max-width: 297mm; + min-height: 420mm; + max-height: 420mm; + height: 420mm; +} +.bloom-page.A6Portrait { + min-width: 105mm; + max-width: 105mm; + min-height: 148mm; + max-height: 148mm; + height: 148mm; +} +.bloom-page.A6Landscape { + min-width: 148mm; + max-width: 148mm; + min-height: 105mm; + max-height: 105mm; + height: 105mm; +} +.bloom-page.QuarterLetterPortrait { + min-width: 4.25in; + max-width: 4.25in; + min-height: 5.5in; + max-height: 5.5in; + height: 5.5in; +} +.bloom-page.QuarterLetterLandscape { + min-width: 5.5in; + max-width: 5.5in; + min-height: 4.25in; + max-height: 4.25in; + height: 4.25in; +} +.bloom-page.HalfLetterPortrait { + min-width: 5.5in; + max-width: 5.5in; + min-height: 8.5in; + max-height: 8.5in; + height: 8.5in; +} +.bloom-page.HalfLetterLandscape { + min-width: 8.5in; + max-width: 8.5in; + min-height: 5.5in; + max-height: 5.5in; + height: 5.5in; +} +.bloom-page.LetterPortrait { + min-width: 8.5in; + max-width: 8.5in; + min-height: 11in; + max-height: 11in; + height: 11in; +} +.bloom-page.LetterLandscape { + min-width: 11in; + max-width: 11in; + min-height: 8.5in; + max-height: 8.5in; + height: 8.5in; +} +.bloom-page.HalfLegalPortrait { + min-width: 7in; + max-width: 7in; + min-height: 8.5in; + max-height: 8.5in; + height: 8.5in; +} +.bloom-page.HalfFolioPortrait { + min-width: 6.5in; + max-width: 6.5in; + min-height: 8.5in; + max-height: 8.5in; + height: 8.5in; +} +.bloom-page.HalfLegalLandscape { + min-width: 8.5in; + max-width: 8.5in; + min-height: 7in; + max-height: 7in; + height: 7in; +} +.bloom-page.LegalPortrait { + min-width: 8.5in; + max-width: 8.5in; + min-height: 14in; + max-height: 14in; + height: 14in; +} +.bloom-page.LegalLandscape { + min-width: 14in; + max-width: 14in; + min-height: 8.5in; + max-height: 8.5in; + height: 8.5in; +} +.bloom-page.Cm13Landscape { + min-width: 130mm; + max-width: 130mm; + min-height: 130mm; + max-height: 130mm; + height: 130mm; +} +.bloom-page.USComicPortrait { + min-width: 6.625in; + max-width: 6.625in; + min-height: 10.25in; + max-height: 10.25in; + height: 10.25in; +} +.bloom-page.Size6x9Portrait { + min-width: 6in; + max-width: 6in; + min-height: 9in; + max-height: 9in; + height: 9in; +} +.bloom-page.Size6x9Landscape { + min-width: 9in; + max-width: 9in; + min-height: 6in; + max-height: 6in; + height: 6in; +} +.bloom-page.Device16x9Portrait { + min-width: 100mm; + max-width: 100mm; + min-height: 177.77777778mm; + max-height: 177.77777778mm; + height: 177.77777778mm; +} +.bloom-page.Device16x9Landscape { + min-width: 177.77777778mm; + max-width: 177.77777778mm; + min-height: 100mm; + max-height: 100mm; + height: 100mm; +} +.bloom-page.PictureStoryLandscape { + min-width: 177.77777778mm; + max-width: 177.77777778mm; + min-height: 100mm; + max-height: 100mm; + height: 100mm; +} +/* Rules that apply DIRECTLY to the marginBox */ +.marginBox { + box-sizing: border-box; + width: 100%; + height: 100%; +} +/* Rules that come from appearance and effect only the content pages, not the xmatter */ +.numberedPage .marginBox { + border-radius: var(--marginBox-border-radius); + border-color: var(--marginBox-border-color); + border-style: var(--marginBox-border-style); + border-width: var(--marginBox-border-width); + background-color: var(--marginBox-background-color); + padding: var(--marginBox-padding); +} +/* REVIEW: why does this need anything special? +// Needed for Translation Instruction pages +.screen-only { + .marginBox { + left: 20px; + width: ~"calc(100% - 40px)"; + } +} +*/ +.bloom-page { + --pageNumber-extra-height: 0mm; +} +.numberedPage { + /* if pageNumber-always-left-margin and --pageNumber-right-margin are both set to zero, + * as we usually do for device page sizes, we get centering of the page number. + * To defeat that, either right: or left: must not be set, which I've only managed + * to achieve (since the default theme sets them both) by setting to something + * deliberately invalid. */ +} +.numberedPage:after { + content: attr(data-page-number); + display: var(--pageNumber-show); + font-size: var(--pageNumber-font-size); + position: absolute; + width: var(--pageNumber-background-width, fit-content); + height: var(--pageNumber-background-width); + bottom: var(--pageNumber-bottom); + top: var(--pageNumber-top); + background-color: var(--pageNumber-background-color); + border-radius: var(--pageNumber-border-radius); + z-index: 1000; + line-height: var(--pageNumber-background-width); + text-align: center; +} +.numberedPage[class*="Device"]:after, +.bloomPlayer-page .numberedPage:after, +.numberedPage.side-left:after { + left: var(--pageNumber-left-margin); +} +.numberedPage.side-right:after { + right: var(--pageNumber-right-margin); +} +.numberedPage[class*="Device"]:after, +.bloomPlayer-page .numberedPage:after { + left: var(--pageNumber-always-left-margin); +} +.numberedPage[class*="Device"]:after, +.bloomPlayer-page .numberedPage:after { + right: var(--pageNumber-right-margin); + margin: 0 auto; +} +/*+init {*/ +* { + position: relative; + margin: 0; + padding: 0; + font-size: 1em; +} +h1, +h2, +h3, +h4, +h5, +h6, +th { + font-weight: inherit; +} +address, +dfn, +var { + font-style: inherit; +} +caption, +code, +kbd, +pre, +samp, +tt, +input, +textarea, +select, +button { + font-family: inherit; +} +table { + border-spacing: 0; +} +th { + text-align: left; +} +html, +body, +thead, +tbody, +tfoot, +tr, +th, +td, +br { + position: static; +} +input[type="hidden"] { + display: none !important; +} +fieldset, +a img { + border: 0; +} +body, +div.bloomPlayer-page { + /* + We used to set font-size slightly larger in editPaneGlobal.less, to handle a mismatch between webkit + pdf generation and geckofx edit mode. That no longer seems to be necessary and the Browser-Reset() above + sets a base font-size of 1em, which seems to be used everywhere. Inexplicably, if we remove this rule + font-sizes everywhere jump up about 3px in size, so we'll leave this one here. + */ + font-size: 10pt; +} +.bloom-templateThumbnail { + overflow: clip; +} +.bloom-templateThumbnail .numberedPage:after { + display: none; +} +.bloom-templateThumbnail .bloom-translationGroup { + background: repeating-linear-gradient(to bottom, transparent, transparent 1em, grey 1em, grey 4em); + padding: 1em 0em; + box-sizing: border-box; + background-clip: content-box; + color: transparent; + display: flex; + gap: var(--multilingual-editable-vertical-gap); +} +/* gridItem means this is a page thumbnail */ +.gridItem .pageOverflowsIcon { + /* red triangle with exclamation point */ + background-image: url("/bloom/images/Attention.svg"); + background-position: bottom; + background-repeat: no-repeat; + background-size: 70%; + z-index: 3; + height: 100%; +} +div.ui-tooltip-content { + overflow: visible !important; + font-size: 10pt; + padding: 0px 9px; +} +.uibloomSourceTextsBubble .ui-tooltip-content { + /*This minimum height is for picture dictionary where the height of the target box is just one line high, not enough to show the language tabs at the top and then the content below*/ + min-height: 60px !important; +} +.bloom-imageContainer { + min-height: 0; + border-radius: var(--image-border-radius); +} +p { + min-height: 1.5em; +} +textarea, +.bloom-editable { + resize: none; + /*don't show those cute little resize controls in Firefox 4 and greater*/ + overflow: visible; + line-height: 1.5; + min-height: 1.8em; + width: 100%; + height: auto; + flex-grow: 1; + box-sizing: border-box; +} +/* The following has been split out from the above rule because it should probably be removed, + but at this point we are about to go release candidate with 3.1 so it will have to wait. + When we do remove it, the main things it could effect are the Story Primer template and the dozen or so SIL LEAD Uganda SHRP templates. +*/ +td { + resize: none; + /*don't show those cute little resize controls in Firefox 4 and greater*/ + overflow: visible; + font-size: 143%; + line-height: 1.5; + min-height: 1.8em; + width: 100%; +} +div#bloomDataDiv { + display: none; +} +.centered { + text-align: center; +} +.centerJustify { + text-align: center; +} +.pageDescription { + display: none; +} +/*Our javascript (bloomediting.js) uses