diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 1016ffff0..14e614f8d 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1 +1,4 @@
-- ntp: prevent gradients bleeding through (#1382)
\ No newline at end of file
+- ntp: ensure cross-window sections collapse (#1387)
+- Revert "removed the restriction on config subscription"
+- removed the restriction on config subscription
+- ntp: support multiple release-note lists (#1385)
\ No newline at end of file
diff --git a/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.css b/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.css
index f486a30f2..48d08007d 100644
--- a/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.css
+++ b/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.css
@@ -954,6 +954,7 @@ body[data-animate-background=true] {
outline: none;
padding-left: var(--sp-3);
padding-right: var(--sp-3);
+ height: 96px;
}
.Tile_item:focus-visible .Tile_icon {
box-shadow: var(--focus-ring);
@@ -981,7 +982,7 @@ body[data-animate-background=true] {
justify-items: center;
width: var(--icon-width);
height: var(--icon-width);
- margin-bottom: 4px;
+ margin-bottom: 6px;
border-radius: var(--border-radius-lg);
}
.Tile_draggable {
@@ -1030,7 +1031,7 @@ body[data-animate-background=true] {
width: var(--icon-width);
text-align: center;
font-size: calc(10 * var(--px-in-rem));
- line-height: 1.1;
+ line-height: calc(13 * var(--px-in-rem));
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
@@ -1965,12 +1966,17 @@ body:not([data-platform-name]) .Button_button:active {
display: none;
}
.UpdateNotification_detailsContent {
- padding-inline: var(--sp-2);
- margin-top: var(--sp-2);
+ margin-top: var(--sp-4);
text-align: left;
+ max-width: 380px;
+ margin-left: auto;
+ margin-right: auto;
+}
+.UpdateNotification_title {
+ padding: 0.5rem 0;
}
.UpdateNotification_list {
- margin-left: var(--sp-20);
+ margin-left: 1.5rem;
}
.UpdateNotification_list li {
list-style: disc;
diff --git a/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.js b/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.js
index 0b6405acf..33f98aefd 100644
--- a/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.js
+++ b/Sources/ContentScopeScripts/dist/pages/new-tab/dist/index.js
@@ -2525,9 +2525,7 @@
(cb) => {
if (!service.current) return;
return service.current.onConfig((event) => {
- if (event.source === "manual") {
- cb(event.data);
- }
+ cb(event.data);
});
},
[service]
@@ -5889,7 +5887,7 @@
init_signals_module();
FavoritesMemo = C3(Favorites);
ROW_CAPACITY = 6;
- ITEM_HEIGHT = 90;
+ ITEM_HEIGHT = 96;
ROW_GAP = 8;
}
});
@@ -7320,6 +7318,7 @@
inlineLink: "UpdateNotification_inlineLink",
summary: "UpdateNotification_summary",
detailsContent: "UpdateNotification_detailsContent",
+ title: "UpdateNotification_title",
list: "UpdateNotification_list",
dismiss: "UpdateNotification_dismiss"
};
@@ -7468,13 +7467,24 @@
}
}
);
- return /* @__PURE__ */ _("details", { ref }, /* @__PURE__ */ _("summary", { tabIndex: -1, className: UpdateNotification_default.summary }, t4("updateNotification_updated_version", { version }), " ", inlineLink), /* @__PURE__ */ _("div", { id, class: UpdateNotification_default.detailsContent }, /* @__PURE__ */ _("ul", { class: UpdateNotification_default.list }, notes.map((note, index) => {
- let trimmed = note.trim();
+ const chunks = [{ title: "", notes: [] }];
+ let index = 0;
+ for (const note of notes) {
+ const trimmed = note.trim();
+ if (!trimmed) continue;
if (trimmed.startsWith("\u2022")) {
- trimmed = trimmed.slice(1).trim();
+ const bullet = trimmed.slice(1).trim();
+ chunks[index].notes.push(bullet);
+ } else {
+ chunks.push({ title: trimmed, notes: [] });
+ index += 1;
}
- return /* @__PURE__ */ _("li", { key: note + index }, trimmed);
- }))));
+ }
+ return /* @__PURE__ */ _("details", { ref }, /* @__PURE__ */ _("summary", { tabIndex: -1, className: UpdateNotification_default.summary }, t4("updateNotification_updated_version", { version }), " ", inlineLink), /* @__PURE__ */ _("div", { id, class: UpdateNotification_default.detailsContent }, chunks.map((chunk, index2) => {
+ return /* @__PURE__ */ _(b, { key: chunk.title + index2 }, chunk.title && /* @__PURE__ */ _("p", { class: UpdateNotification_default.title }, chunk.title), /* @__PURE__ */ _("ul", { class: UpdateNotification_default.list }, chunk.notes.map((note, index3) => {
+ return /* @__PURE__ */ _("li", { key: note + index3 }, note);
+ })));
+ })));
}
function WithoutNotes({ version }) {
const { t: t4 } = useTypedTranslationWith(
@@ -7511,7 +7521,7 @@
factory: () => factory6
});
function factory6() {
- return /* @__PURE__ */ _(UpdateNotificationProvider, { "data-entry-point": "updateNotification" }, /* @__PURE__ */ _(UpdateNotificationConsumer, null));
+ return /* @__PURE__ */ _("div", { "data-entry-point": "updateNotification" }, /* @__PURE__ */ _(UpdateNotificationProvider, null, /* @__PURE__ */ _(UpdateNotificationConsumer, null)));
}
var init_updateNotification = __esm({
"pages/new-tab/app/entry-points/updateNotification.js"() {
diff --git a/build/integration/pages/new-tab/dist/index.css b/build/integration/pages/new-tab/dist/index.css
index f486a30f2..48d08007d 100644
--- a/build/integration/pages/new-tab/dist/index.css
+++ b/build/integration/pages/new-tab/dist/index.css
@@ -954,6 +954,7 @@ body[data-animate-background=true] {
outline: none;
padding-left: var(--sp-3);
padding-right: var(--sp-3);
+ height: 96px;
}
.Tile_item:focus-visible .Tile_icon {
box-shadow: var(--focus-ring);
@@ -981,7 +982,7 @@ body[data-animate-background=true] {
justify-items: center;
width: var(--icon-width);
height: var(--icon-width);
- margin-bottom: 4px;
+ margin-bottom: 6px;
border-radius: var(--border-radius-lg);
}
.Tile_draggable {
@@ -1030,7 +1031,7 @@ body[data-animate-background=true] {
width: var(--icon-width);
text-align: center;
font-size: calc(10 * var(--px-in-rem));
- line-height: 1.1;
+ line-height: calc(13 * var(--px-in-rem));
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
@@ -1965,12 +1966,17 @@ body:not([data-platform-name]) .Button_button:active {
display: none;
}
.UpdateNotification_detailsContent {
- padding-inline: var(--sp-2);
- margin-top: var(--sp-2);
+ margin-top: var(--sp-4);
text-align: left;
+ max-width: 380px;
+ margin-left: auto;
+ margin-right: auto;
+}
+.UpdateNotification_title {
+ padding: 0.5rem 0;
}
.UpdateNotification_list {
- margin-left: var(--sp-20);
+ margin-left: 1.5rem;
}
.UpdateNotification_list li {
list-style: disc;
diff --git a/build/integration/pages/new-tab/dist/index.js b/build/integration/pages/new-tab/dist/index.js
index 288530e2b..10c64b15f 100644
--- a/build/integration/pages/new-tab/dist/index.js
+++ b/build/integration/pages/new-tab/dist/index.js
@@ -2525,9 +2525,7 @@
(cb) => {
if (!service.current) return;
return service.current.onConfig((event) => {
- if (event.source === "manual") {
- cb(event.data);
- }
+ cb(event.data);
});
},
[service]
@@ -5894,7 +5892,7 @@
init_signals_module();
FavoritesMemo = C3(Favorites);
ROW_CAPACITY = 6;
- ITEM_HEIGHT = 90;
+ ITEM_HEIGHT = 96;
ROW_GAP = 8;
}
});
@@ -7325,6 +7323,7 @@
inlineLink: "UpdateNotification_inlineLink",
summary: "UpdateNotification_summary",
detailsContent: "UpdateNotification_detailsContent",
+ title: "UpdateNotification_title",
list: "UpdateNotification_list",
dismiss: "UpdateNotification_dismiss"
};
@@ -7473,13 +7472,24 @@
}
}
);
- return /* @__PURE__ */ _("details", { ref }, /* @__PURE__ */ _("summary", { tabIndex: -1, className: UpdateNotification_default.summary }, t4("updateNotification_updated_version", { version }), " ", inlineLink), /* @__PURE__ */ _("div", { id, class: UpdateNotification_default.detailsContent }, /* @__PURE__ */ _("ul", { class: UpdateNotification_default.list }, notes.map((note, index) => {
- let trimmed = note.trim();
+ const chunks = [{ title: "", notes: [] }];
+ let index = 0;
+ for (const note of notes) {
+ const trimmed = note.trim();
+ if (!trimmed) continue;
if (trimmed.startsWith("\u2022")) {
- trimmed = trimmed.slice(1).trim();
+ const bullet = trimmed.slice(1).trim();
+ chunks[index].notes.push(bullet);
+ } else {
+ chunks.push({ title: trimmed, notes: [] });
+ index += 1;
}
- return /* @__PURE__ */ _("li", { key: note + index }, trimmed);
- }))));
+ }
+ return /* @__PURE__ */ _("details", { ref }, /* @__PURE__ */ _("summary", { tabIndex: -1, className: UpdateNotification_default.summary }, t4("updateNotification_updated_version", { version }), " ", inlineLink), /* @__PURE__ */ _("div", { id, class: UpdateNotification_default.detailsContent }, chunks.map((chunk, index2) => {
+ return /* @__PURE__ */ _(b, { key: chunk.title + index2 }, chunk.title && /* @__PURE__ */ _("p", { class: UpdateNotification_default.title }, chunk.title), /* @__PURE__ */ _("ul", { class: UpdateNotification_default.list }, chunk.notes.map((note, index3) => {
+ return /* @__PURE__ */ _("li", { key: note + index3 }, note);
+ })));
+ })));
}
function WithoutNotes({ version }) {
const { t: t4 } = useTypedTranslationWith(
@@ -7516,7 +7526,7 @@
factory: () => factory6
});
function factory6() {
- return /* @__PURE__ */ _(UpdateNotificationProvider, { "data-entry-point": "updateNotification" }, /* @__PURE__ */ _(UpdateNotificationConsumer, null));
+ return /* @__PURE__ */ _("div", { "data-entry-point": "updateNotification" }, /* @__PURE__ */ _(UpdateNotificationProvider, null, /* @__PURE__ */ _(UpdateNotificationConsumer, null)));
}
var init_updateNotification = __esm({
"pages/new-tab/app/entry-points/updateNotification.js"() {
@@ -11383,6 +11393,20 @@
],
version: "1.91"
}
+ },
+ multipleSections: {
+ content: {
+ // prettier-ignore
+ notes: [
+ `\u2022 We're excited to introduce a new browsing feature - Fire Windows. These special windows work the same way as normal windows, except they isolate your activity from other browsing data and self-destruct when closed. This means you can use a Fire Window to browse without saving local history or to sign into a site with a different account. You can open a new Fire Window anytime from the Fire Button menu.`,
+ `\u2022 Try the new bookmark management view that opens in a tab for more robust bookmark organization.`,
+ `For Privacy Pro subscribers`,
+ `\u2022 VPN notifications are now available to help communicate VPN status.`,
+ `\u2022 Some apps aren't compatible with VPNs. You can now exclude these apps to use them while connected to the VPN.`,
+ `\u2022 Visit https://duckduckgo.com/pro for more information.`
+ ],
+ version: "0.98.4"
+ }
}
};
@@ -11966,11 +11990,11 @@
];
let updateNotification = { content: null };
const isDelayed = url3.searchParams.has("update-notification-delay");
- if (!isDelayed && url3.searchParams.get("update-notification") === "empty") {
- updateNotification = updateNotificationExamples2.empty;
- }
- if (!isDelayed && url3.searchParams.get("update-notification") === "populated") {
- updateNotification = updateNotificationExamples2.populated;
+ if (!isDelayed && url3.searchParams.has("update-notification")) {
+ const value = url3.searchParams.get("update-notification");
+ if (value && value in updateNotificationExamples2) {
+ updateNotification = updateNotificationExamples2[value];
+ }
}
const initial = {
widgets: widgetsFromStorage,
diff --git a/build/windows/pages/new-tab/dist/index.css b/build/windows/pages/new-tab/dist/index.css
index f486a30f2..48d08007d 100644
--- a/build/windows/pages/new-tab/dist/index.css
+++ b/build/windows/pages/new-tab/dist/index.css
@@ -954,6 +954,7 @@ body[data-animate-background=true] {
outline: none;
padding-left: var(--sp-3);
padding-right: var(--sp-3);
+ height: 96px;
}
.Tile_item:focus-visible .Tile_icon {
box-shadow: var(--focus-ring);
@@ -981,7 +982,7 @@ body[data-animate-background=true] {
justify-items: center;
width: var(--icon-width);
height: var(--icon-width);
- margin-bottom: 4px;
+ margin-bottom: 6px;
border-radius: var(--border-radius-lg);
}
.Tile_draggable {
@@ -1030,7 +1031,7 @@ body[data-animate-background=true] {
width: var(--icon-width);
text-align: center;
font-size: calc(10 * var(--px-in-rem));
- line-height: 1.1;
+ line-height: calc(13 * var(--px-in-rem));
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
@@ -1965,12 +1966,17 @@ body:not([data-platform-name]) .Button_button:active {
display: none;
}
.UpdateNotification_detailsContent {
- padding-inline: var(--sp-2);
- margin-top: var(--sp-2);
+ margin-top: var(--sp-4);
text-align: left;
+ max-width: 380px;
+ margin-left: auto;
+ margin-right: auto;
+}
+.UpdateNotification_title {
+ padding: 0.5rem 0;
}
.UpdateNotification_list {
- margin-left: var(--sp-20);
+ margin-left: 1.5rem;
}
.UpdateNotification_list li {
list-style: disc;
diff --git a/build/windows/pages/new-tab/dist/index.js b/build/windows/pages/new-tab/dist/index.js
index fef03457b..62f28e90a 100644
--- a/build/windows/pages/new-tab/dist/index.js
+++ b/build/windows/pages/new-tab/dist/index.js
@@ -2525,9 +2525,7 @@
(cb) => {
if (!service.current) return;
return service.current.onConfig((event) => {
- if (event.source === "manual") {
- cb(event.data);
- }
+ cb(event.data);
});
},
[service]
@@ -5889,7 +5887,7 @@
init_signals_module();
FavoritesMemo = C3(Favorites);
ROW_CAPACITY = 6;
- ITEM_HEIGHT = 90;
+ ITEM_HEIGHT = 96;
ROW_GAP = 8;
}
});
@@ -7320,6 +7318,7 @@
inlineLink: "UpdateNotification_inlineLink",
summary: "UpdateNotification_summary",
detailsContent: "UpdateNotification_detailsContent",
+ title: "UpdateNotification_title",
list: "UpdateNotification_list",
dismiss: "UpdateNotification_dismiss"
};
@@ -7468,13 +7467,24 @@
}
}
);
- return /* @__PURE__ */ _("details", { ref }, /* @__PURE__ */ _("summary", { tabIndex: -1, className: UpdateNotification_default.summary }, t4("updateNotification_updated_version", { version }), " ", inlineLink), /* @__PURE__ */ _("div", { id, class: UpdateNotification_default.detailsContent }, /* @__PURE__ */ _("ul", { class: UpdateNotification_default.list }, notes.map((note, index) => {
- let trimmed = note.trim();
+ const chunks = [{ title: "", notes: [] }];
+ let index = 0;
+ for (const note of notes) {
+ const trimmed = note.trim();
+ if (!trimmed) continue;
if (trimmed.startsWith("\u2022")) {
- trimmed = trimmed.slice(1).trim();
+ const bullet = trimmed.slice(1).trim();
+ chunks[index].notes.push(bullet);
+ } else {
+ chunks.push({ title: trimmed, notes: [] });
+ index += 1;
}
- return /* @__PURE__ */ _("li", { key: note + index }, trimmed);
- }))));
+ }
+ return /* @__PURE__ */ _("details", { ref }, /* @__PURE__ */ _("summary", { tabIndex: -1, className: UpdateNotification_default.summary }, t4("updateNotification_updated_version", { version }), " ", inlineLink), /* @__PURE__ */ _("div", { id, class: UpdateNotification_default.detailsContent }, chunks.map((chunk, index2) => {
+ return /* @__PURE__ */ _(b, { key: chunk.title + index2 }, chunk.title && /* @__PURE__ */ _("p", { class: UpdateNotification_default.title }, chunk.title), /* @__PURE__ */ _("ul", { class: UpdateNotification_default.list }, chunk.notes.map((note, index3) => {
+ return /* @__PURE__ */ _("li", { key: note + index3 }, note);
+ })));
+ })));
}
function WithoutNotes({ version }) {
const { t: t4 } = useTypedTranslationWith(
@@ -7511,7 +7521,7 @@
factory: () => factory6
});
function factory6() {
- return /* @__PURE__ */ _(UpdateNotificationProvider, { "data-entry-point": "updateNotification" }, /* @__PURE__ */ _(UpdateNotificationConsumer, null));
+ return /* @__PURE__ */ _("div", { "data-entry-point": "updateNotification" }, /* @__PURE__ */ _(UpdateNotificationProvider, null, /* @__PURE__ */ _(UpdateNotificationConsumer, null)));
}
var init_updateNotification = __esm({
"pages/new-tab/app/entry-points/updateNotification.js"() {
diff --git a/special-pages/pages/new-tab/app/entry-points/updateNotification.js b/special-pages/pages/new-tab/app/entry-points/updateNotification.js
index 4824f8d05..64c197573 100644
--- a/special-pages/pages/new-tab/app/entry-points/updateNotification.js
+++ b/special-pages/pages/new-tab/app/entry-points/updateNotification.js
@@ -4,8 +4,10 @@ import { UpdateNotificationProvider } from '../update-notification/UpdateNotific
export function factory() {
return (
-
{chunk.title}
} +