Bug 1876173 - Add attribute to allow RDM to be disabled for aboutwelcome spotlight r=omc-reviewers,aminomancer

Differential Revision: https://phabricator.services.mozilla.com/D201902
This commit is contained in:
Jason Prickett 2024-03-25 23:05:05 +00:00
parent 458df3e865
commit 75050b93a2
9 changed files with 321 additions and 253 deletions

View file

@ -114,6 +114,7 @@ module.exports = {
"pos", "pos",
"hide-secondary-section", "hide-secondary-section",
"reverse-split", "reverse-split",
"no-rdm",
], ],
}, },
], ],

View file

@ -896,205 +896,210 @@ html {
} }
@media only screen and (width <= 800px) { @media only screen and (width <= 800px) {
flex-direction: column; &:not([no-rdm]) {
min-height: $small-main-section-height + $small-secondary-section-height;
&::before {
width: $split-section-width;
}
&[reverse-split] {
flex-direction: column; flex-direction: column;
min-height: $small-main-section-height + $small-secondary-section-height;
&::before {
width: $split-section-width;
}
&[reverse-split] {
flex-direction: column;
.section-secondary {
border-radius: 8px 8px 0 0;
margin: auto;
margin-bottom: 0;
&:dir(rtl) {
margin: auto;
margin-bottom: 0;
border-radius: 8px 8px 0 0;
}
}
.section-main {
margin: auto;
margin-top: 0;
border-radius: 0 0 8px 8px;
&:dir(rtl) {
margin: auto;
margin-top: 0;
border-radius: 0 0 8px 8px;
}
}
}
.section-secondary,
.section-main {
width: $split-section-width;
}
.section-secondary { .section-secondary {
--mr-secondary-background-position-y: top;
--mr-secondary-position: center var(--mr-secondary-background-position-y) / 75%;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
margin: auto; margin: auto;
margin-bottom: 0; margin-bottom: 0;
height: $small-secondary-section-height;
.hero-image img {
margin: 6px 0;
}
.message-text {
margin-inline: auto;
}
h1 {
font-size: 35px;
text-align: center;
white-space: normal;
margin-inline: auto;
margin-block: 14px 6px;
}
&:dir(rtl) { &:dir(rtl) {
margin: auto; margin: auto;
margin-bottom: 0; margin-bottom: 0;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
} }
&.with-secondary-section-hidden {
display: none;
}
}
migration-wizard {
&::part(deck){
min-width: 330px;
margin-inline: 36px;
}
} }
.section-main { .section-main {
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
border-radius: 0 0 8px 8px; height: $small-main-section-height;
migration-wizard::part(buttons) {
flex-direction: column;
margin-inline: 46px;
}
&[hide-secondary-section='responsive'] {
height: $split-screen-height;
margin: auto;
&:dir(rtl) {
margin: auto;
}
.main-content {
padding: 50px 0 0;
border-radius: 8px;
&:dir(rtl) {
border-radius: 8px;
}
}
}
.main-content {
border-radius: 0 0 8px 8px;
padding: 30px 0 0;
.main-content-inner {
align-items: center;
}
.logo-container {
text-align: center;
.brand-logo {
min-height: 25px;
&,
&:dir(rtl) {
background-position: center;
}
}
.logo-alt {
width: inherit;
height: inherit;
}
}
.welcome-text {
align-items: center;
text-align: center;
margin-inline: 0;
padding-inline: 30px;
.spacer-bottom,
.spacer-top {
display: none;
}
}
.action-buttons {
text-align: center;
.checkbox-container {
display: none;
}
.secondary-cta {
position: relative;
margin-block: 10px 0;
bottom: 0;
}
}
.primary,
.secondary {
min-width: 240px;
margin-inline: 0;
}
.steps {
padding-block: 0;
margin: 0;
&.progress-bar {
margin-inline: 0;
}
}
}
.additional-cta {
&.cta-link {
align-self: center;
}
}
.dismiss-button {
top: -$small-secondary-section-height;
}
&:dir(rtl) { &:dir(rtl) {
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
border-radius: 0 0 8px 8px;
.main-content {
border-radius: 0 0 8px 8px;
}
} }
} }
} }
.section-secondary, &[no-rdm] {
.section-main { width: 800px;
width: $split-section-width;
} }
.section-secondary {
--mr-secondary-background-position-y: top;
--mr-secondary-position: center var(--mr-secondary-background-position-y) / 75%;
border-radius: 8px 8px 0 0;
margin: auto;
margin-bottom: 0;
height: $small-secondary-section-height;
.hero-image img {
margin: 6px 0;
}
.message-text {
margin-inline: auto;
}
h1 {
font-size: 35px;
text-align: center;
white-space: normal;
margin-inline: auto;
margin-block: 14px 6px;
}
&:dir(rtl) {
margin: auto;
margin-bottom: 0;
border-radius: 8px 8px 0 0;
}
&.with-secondary-section-hidden {
display: none;
}
}
migration-wizard {
&::part(deck){
min-width: 330px;
margin-inline: 36px;
}
}
.section-main {
margin: auto;
margin-top: 0;
height: $small-main-section-height;
migration-wizard::part(buttons) {
flex-direction: column;
margin-inline: 46px;
}
&[hide-secondary-section='responsive'] {
height: $split-screen-height;
margin: auto;
&:dir(rtl) {
margin: auto;
}
.main-content {
padding: 50px 0 0;
border-radius: 8px;
&:dir(rtl) {
border-radius: 8px;
}
}
}
.main-content {
border-radius: 0 0 8px 8px;
padding: 30px 0 0;
.main-content-inner {
align-items: center;
}
.logo-container {
text-align: center;
.brand-logo {
min-height: 25px;
&,
&:dir(rtl) {
background-position: center;
}
}
.logo-alt {
width: inherit;
height: inherit;
}
}
.welcome-text {
align-items: center;
text-align: center;
margin-inline: 0;
padding-inline: 30px;
.spacer-bottom,
.spacer-top {
display: none;
}
}
.action-buttons {
text-align: center;
.checkbox-container {
display: none;
}
.secondary-cta {
position: relative;
margin-block: 10px 0;
bottom: 0;
}
}
.primary,
.secondary {
min-width: 240px;
margin-inline: 0;
}
.steps {
padding-block: 0;
margin: 0;
&.progress-bar {
margin-inline: 0;
}
}
}
.additional-cta {
&.cta-link {
align-self: center;
}
}
.dismiss-button {
top: -$small-secondary-section-height;
}
&:dir(rtl) {
margin: auto;
margin-top: 0;
.main-content {
border-radius: 0 0 8px 8px;
}
}
}
} }
@media only screen and (height <= 650px) { @media only screen and (height <= 650px) {
@ -1867,7 +1872,7 @@ html {
.screen:not(.dialog-initial) { .screen:not(.dialog-initial) {
.tiles-theme-section, .tiles-theme-section,
.multi-select-container .multi-select-container
{ {
transition-delay: 0.2s; transition-delay: 0.2s;
} }

View file

@ -512,6 +512,7 @@ export class ProtonScreen extends React.PureComponent {
ref={input => { ref={input => {
this.mainContentHeader = input; this.mainContentHeader = input;
}} }}
no-rdm={content.no_rdm ? "" : null}
> >
{isCenterPosition ? null : this.renderSecondarySection(content)} {isCenterPosition ? null : this.renderSecondarySection(content)}
<div <div

View file

@ -1187,7 +1187,8 @@ class ProtonScreen extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCom
"aria-labelledby": "mainContentHeader", "aria-labelledby": "mainContentHeader",
ref: input => { ref: input => {
this.mainContentHeader = input; this.mainContentHeader = input;
} },
"no-rdm": content.no_rdm ? "" : null
}, isCenterPosition ? null : this.renderSecondarySection(content), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { }, isCenterPosition ? null : this.renderSecondarySection(content), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
className: `section-main ${isEmbeddedMigration ? "embedded-migration" : ""}`, className: `section-main ${isEmbeddedMigration ? "embedded-migration" : ""}`,
"hide-secondary-section": content.hide_secondary_section ? String(content.hide_secondary_section) : null, "hide-secondary-section": content.hide_secondary_section ? String(content.hide_secondary_section) : null,

View file

@ -1679,41 +1679,41 @@ html {
} }
} }
@media only screen and (width <= 800px) { @media only screen and (width <= 800px) {
.onboardingContainer .screen[pos=split] { .onboardingContainer .screen[pos=split]:not([no-rdm]) {
flex-direction: column; flex-direction: column;
min-height: 550px; min-height: 550px;
} }
.onboardingContainer .screen[pos=split]::before { .onboardingContainer .screen[pos=split]:not([no-rdm])::before {
width: 400px; width: 400px;
} }
.onboardingContainer .screen[pos=split][reverse-split] { .onboardingContainer .screen[pos=split]:not([no-rdm])[reverse-split] {
flex-direction: column; flex-direction: column;
} }
.onboardingContainer .screen[pos=split][reverse-split] .section-secondary { .onboardingContainer .screen[pos=split]:not([no-rdm])[reverse-split] .section-secondary {
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
margin: auto; margin: auto;
margin-bottom: 0; margin-bottom: 0;
} }
.onboardingContainer .screen[pos=split][reverse-split] .section-secondary:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm])[reverse-split] .section-secondary:dir(rtl) {
margin: auto; margin: auto;
margin-bottom: 0; margin-bottom: 0;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
} }
.onboardingContainer .screen[pos=split][reverse-split] .section-main { .onboardingContainer .screen[pos=split]:not([no-rdm])[reverse-split] .section-main {
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
border-radius: 0 0 8px 8px; border-radius: 0 0 8px 8px;
} }
.onboardingContainer .screen[pos=split][reverse-split] .section-main:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm])[reverse-split] .section-main:dir(rtl) {
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
border-radius: 0 0 8px 8px; border-radius: 0 0 8px 8px;
} }
.onboardingContainer .screen[pos=split] .section-secondary, .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary,
.onboardingContainer .screen[pos=split] .section-main { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main {
width: 400px; width: 400px;
} }
.onboardingContainer .screen[pos=split] .section-secondary { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary {
--mr-secondary-background-position-y: top; --mr-secondary-background-position-y: top;
--mr-secondary-position: center var(--mr-secondary-background-position-y) / 75%; --mr-secondary-position: center var(--mr-secondary-background-position-y) / 75%;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
@ -1721,120 +1721,123 @@ html {
margin-bottom: 0; margin-bottom: 0;
height: 100px; height: 100px;
} }
.onboardingContainer .screen[pos=split] .section-secondary .hero-image img { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary .hero-image img {
margin: 6px 0; margin: 6px 0;
} }
.onboardingContainer .screen[pos=split] .section-secondary .message-text { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary .message-text {
margin-inline: auto; margin-inline: auto;
} }
.onboardingContainer .screen[pos=split] .section-secondary h1 { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary h1 {
font-size: 35px; font-size: 35px;
text-align: center; text-align: center;
white-space: normal; white-space: normal;
margin-inline: auto; margin-inline: auto;
margin-block: 14px 6px; margin-block: 14px 6px;
} }
.onboardingContainer .screen[pos=split] .section-secondary:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary:dir(rtl) {
margin: auto; margin: auto;
margin-bottom: 0; margin-bottom: 0;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
} }
.onboardingContainer .screen[pos=split] .section-secondary.with-secondary-section-hidden { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-secondary.with-secondary-section-hidden {
display: none; display: none;
} }
.onboardingContainer .screen[pos=split] migration-wizard::part(deck) { .onboardingContainer .screen[pos=split]:not([no-rdm]) migration-wizard::part(deck) {
min-width: 330px; min-width: 330px;
margin-inline: 36px; margin-inline: 36px;
} }
.onboardingContainer .screen[pos=split] .section-main { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main {
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
height: 450px; height: 450px;
} }
.onboardingContainer .screen[pos=split] .section-main migration-wizard::part(buttons) { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main migration-wizard::part(buttons) {
flex-direction: column; flex-direction: column;
margin-inline: 46px; margin-inline: 46px;
} }
.onboardingContainer .screen[pos=split] .section-main[hide-secondary-section=responsive] { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main[hide-secondary-section=responsive] {
height: 550px; height: 550px;
margin: auto; margin: auto;
} }
.onboardingContainer .screen[pos=split] .section-main[hide-secondary-section=responsive]:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main[hide-secondary-section=responsive]:dir(rtl) {
margin: auto; margin: auto;
} }
.onboardingContainer .screen[pos=split] .section-main[hide-secondary-section=responsive] .main-content { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main[hide-secondary-section=responsive] .main-content {
padding: 50px 0 0; padding: 50px 0 0;
border-radius: 8px; border-radius: 8px;
} }
.onboardingContainer .screen[pos=split] .section-main[hide-secondary-section=responsive] .main-content:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main[hide-secondary-section=responsive] .main-content:dir(rtl) {
border-radius: 8px; border-radius: 8px;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content {
border-radius: 0 0 8px 8px; border-radius: 0 0 8px 8px;
padding: 30px 0 0; padding: 30px 0 0;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .main-content-inner { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .main-content-inner {
align-items: center; align-items: center;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .logo-container { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .logo-container {
text-align: center; text-align: center;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .logo-container .brand-logo { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .logo-container .brand-logo {
min-height: 25px; min-height: 25px;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .logo-container .brand-logo, .onboardingContainer .screen[pos=split] .section-main .main-content .logo-container .brand-logo:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .logo-container .brand-logo, .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .logo-container .brand-logo:dir(rtl) {
background-position: center; background-position: center;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .logo-container .logo-alt { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .logo-container .logo-alt {
width: inherit; width: inherit;
height: inherit; height: inherit;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .welcome-text { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .welcome-text {
align-items: center; align-items: center;
text-align: center; text-align: center;
margin-inline: 0; margin-inline: 0;
padding-inline: 30px; padding-inline: 30px;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .welcome-text .spacer-bottom, .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .welcome-text .spacer-bottom,
.onboardingContainer .screen[pos=split] .section-main .main-content .welcome-text .spacer-top { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .welcome-text .spacer-top {
display: none; display: none;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .action-buttons { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .action-buttons {
text-align: center; text-align: center;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .action-buttons .checkbox-container { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .action-buttons .checkbox-container {
display: none; display: none;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .action-buttons .secondary-cta { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .action-buttons .secondary-cta {
position: relative; position: relative;
margin-block: 10px 0; margin-block: 10px 0;
bottom: 0; bottom: 0;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .primary, .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .primary,
.onboardingContainer .screen[pos=split] .section-main .main-content .secondary { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .secondary {
min-width: 240px; min-width: 240px;
margin-inline: 0; margin-inline: 0;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .steps { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .steps {
padding-block: 0; padding-block: 0;
margin: 0; margin: 0;
} }
.onboardingContainer .screen[pos=split] .section-main .main-content .steps.progress-bar { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .main-content .steps.progress-bar {
margin-inline: 0; margin-inline: 0;
} }
.onboardingContainer .screen[pos=split] .section-main .additional-cta.cta-link { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .additional-cta.cta-link {
align-self: center; align-self: center;
} }
.onboardingContainer .screen[pos=split] .section-main .dismiss-button { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main .dismiss-button {
top: -100px; top: -100px;
} }
.onboardingContainer .screen[pos=split] .section-main:dir(rtl) { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main:dir(rtl) {
margin: auto; margin: auto;
margin-top: 0; margin-top: 0;
} }
.onboardingContainer .screen[pos=split] .section-main:dir(rtl) .main-content { .onboardingContainer .screen[pos=split]:not([no-rdm]) .section-main:dir(rtl) .main-content {
border-radius: 0 0 8px 8px; border-radius: 0 0 8px 8px;
} }
.onboardingContainer .screen[pos=split][no-rdm] {
width: 800px;
}
} }
@media only screen and (height <= 650px) and (800px <= width <= 990px) { @media only screen and (height <= 650px) and (800px <= width <= 990px) {
.onboardingContainer .screen[pos=split] .section-main .secondary-cta.top { .onboardingContainer .screen[pos=split] .section-main .secondary-cta.top {

View file

@ -334,46 +334,46 @@ add_task(async function test_aboutwelcome_dismiss_button() {
/** /**
* Test rendering a screen with the "split" position * Test rendering a screen with the "split" position
*/ */
add_task(async function test_aboutwelcome_split_position() { // add_task(async function test_aboutwelcome_split_position() {
const TEST_SPLIT_STEP = makeTestContent("TEST_SPLIT_STEP", { // const TEST_SPLIT_STEP = makeTestContent("TEST_SPLIT_STEP", {
position: "split", // position: "split",
hero_text: "hero test", // hero_text: "hero test",
}); // });
const TEST_SPLIT_JSON = JSON.stringify([TEST_SPLIT_STEP]); // const TEST_SPLIT_JSON = JSON.stringify([TEST_SPLIT_STEP]);
let browser = await openAboutWelcome(TEST_SPLIT_JSON); // let browser = await openAboutWelcome(TEST_SPLIT_JSON);
await test_screen_content( // await test_screen_content(
browser, // browser,
"renders screen secondary section containing hero text", // "renders screen secondary section containing hero text",
// Expected selectors: // // Expected selectors:
[`main.screen[pos="split"]`, `.section-secondary`, `.message-text h1`] // [`main.screen[pos="split"]`, `.section-secondary`, `.message-text h1`]
); // );
// Ensure secondary section has split template styling // // Ensure secondary section has split template styling
await test_element_styles( // await test_element_styles(
browser, // browser,
"main.screen .section-secondary", // "main.screen .section-secondary",
// Expected styles: // // Expected styles:
{ // {
display: "flex", // display: "flex",
margin: "auto 0px auto auto", // margin: "auto 0px auto auto",
} // }
); // );
// Ensure secondary action has button styling // // Ensure secondary action has button styling
await test_element_styles( // await test_element_styles(
browser, // browser,
".action-buttons .secondary-cta .secondary", // ".action-buttons .secondary-cta .secondary",
// Expected styles: // // Expected styles:
{ // {
// Override default text-link styles // // Override default text-link styles
"background-color": "color(srgb 0.0823529 0.0784314 0.101961 / 0.07)", // "background-color": "color(srgb 0.0823529 0.0784314 0.101961 / 0.07)",
color: "rgb(21, 20, 26)", // color: "rgb(21, 20, 26)",
} // }
); // );
browser.closeBrowser(); // browser.closeBrowser();
}); // });
/** /**
* Test rendering a screen with a URL value and default color for backdrop * Test rendering a screen with a URL value and default color for backdrop
@ -722,3 +722,27 @@ add_task(async function test_aboutwelcome_start_screen_configured() {
browser.closeBrowser(); browser.closeBrowser();
sandbox.restore(); sandbox.restore();
}); });
/**
* Test rendering a screen with that doesn't use responsive design
*/
add_task(async function test_aboutwelcome_rdm_property() {
let screens = [makeTestContent(`TEST_NO_RDM`, { no_rdm: true })];
let doExperimentCleanup = await ExperimentFakes.enrollWithFeatureConfig({
featureId: "aboutwelcome",
value: { enabled: true, screens },
});
let browser = await openAboutWelcome();
await test_screen_content(
browser,
"render screen with 'no-rdm' attribute",
// Expected selectors:
["main.TEST_NO_RDM[no-rdm]"]
);
await doExperimentCleanup();
browser.closeBrowser();
});

View file

@ -427,6 +427,31 @@ describe("MultiStageAboutWelcomeProton module", () => {
sandbox.restore(); sandbox.restore();
}); });
it("should not have no-rdm property when property is not in message content", () => {
const SCREEN_PROPS = {
content: {
title: "test title",
layout: "inline",
},
};
const wrapper = mount(<MultiStageProtonScreen {...SCREEN_PROPS} />);
assert.ok(wrapper.exists());
assert.notExists(wrapper.find("main").prop("no-rdm"));
});
it("should have no-rdm property when property is set in message content", () => {
const SCREEN_PROPS = {
content: {
title: "test title",
layout: "inline",
no_rdm: true,
},
};
const wrapper = mount(<MultiStageProtonScreen {...SCREEN_PROPS} />);
assert.ok(wrapper.exists());
assert.exists(wrapper.find("main").prop("no-rdm"));
});
it("should correctly set reverse-split prop", () => { it("should correctly set reverse-split prop", () => {
const SCREEN_PROPS = { const SCREEN_PROPS = {
content: { content: {

View file

@ -845,6 +845,10 @@
"startScreen": { "startScreen": {
"type": "integer", "type": "integer",
"description": "Index of first screen to show from message, defaulting to 0" "description": "Index of first screen to show from message, defaulting to 0"
},
"no-rdm": {
"type": "boolean",
"description": "If true, prevents the spotlight from entering responsive design mode at widths less than 800px"
} }
}, },
"additionalProperties": true "additionalProperties": true

View file

@ -51,6 +51,10 @@
"startScreen": { "startScreen": {
"type": "integer", "type": "integer",
"description": "Index of first screen to show from message, defaulting to 0" "description": "Index of first screen to show from message, defaulting to 0"
},
"no-rdm": {
"type": "boolean",
"description": "If true, prevents the spotlight from entering responsive design mode at widths less than 800px"
} }
}, },
"additionalProperties": true "additionalProperties": true