diff --git a/src/core/menu/islands/Mod.mjs b/src/core/menu/islands/Mod.mjs
index 4491793..6b0ab1b 100644
--- a/src/core/menu/islands/Mod.mjs
+++ b/src/core/menu/islands/Mod.mjs
@@ -34,7 +34,7 @@ function Mod({
${thumbnail
? html`
`
: ""}
diff --git a/src/extensions/collapsible-properties/client.css b/src/extensions/collapsible-properties/client.css
deleted file mode 100644
index 84eba06..0000000
--- a/src/extensions/collapsible-properties/client.css
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * notion-enhancer: collapse properties
- * (c) 2021 dragonwocky
(https://dragonwocky.me/)
- * (https://notion-enhancer.github.io/) under the MIT license
- */
-
-#enhancer--collapse-properties {
- display: flex;
- background: var(--theme--ui_interactive-hover);
- border: 1px solid transparent;
- font-size: 14px;
- border-radius: 3px;
- line-height: 1.2;
- font-weight: 600;
- padding: 0.3em 0.5em;
- margin: 1em 0;
- width: 100%;
-}
-#enhancer--collapse-properties:focus,
-#enhancer--collapse-properties:hover {
- background: transparent;
- border: 1px solid var(--theme--ui_interactive-hover);
-}
-#enhancer--collapse-properties:active {
- background: var(--theme--ui_interactive-active);
-}
-
-#enhancer--collapse-properties > span {
- text-align: left;
- color: var(--theme--text);
-}
-#enhancer--collapse-properties > span:before {
- content: 'Properties';
-}
-#enhancer--collapse-properties > svg {
- fill: var(--theme--icon);
- height: 0.8em;
- width: 0.8em;
- margin: auto 0.5em auto 0;
- transition: transform 200ms ease-out 0s;
-}
-
-#enhancer--collapse-properties[data-collapsed='false'] > svg {
- transform: rotateZ(180deg);
-}
-#enhancer--collapse-properties[data-collapsed='true'] > svg {
- transform: rotateZ(90deg);
-}
-
-#enhancer--collapse-properties + div {
- overflow: hidden;
-}
-#enhancer--collapse-properties[data-collapsed='true'] + div {
- max-height: 0 !important;
- opacity: 0;
-}
diff --git a/src/extensions/collapsible-properties/client.mjs b/src/extensions/collapsible-properties/client.mjs
deleted file mode 100644
index 28f88e8..0000000
--- a/src/extensions/collapsible-properties/client.mjs
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * notion-enhancer: collapse properties
- * (c) 2021 dragonwocky (https://dragonwocky.me/)
- * (https://notion-enhancer.github.io/) under the MIT license
- */
-
-'use strict';
-
-export default function ({ web, notion }, db) {
- const propertyListSelector =
- '.notion-scroller.vertical [style*="env(safe-area-inset-left)"] > [style="width: 100%; font-size: 14px;"]',
- $collapseButton = web.html``;
- $collapseButton.addEventListener('click', async (event) => {
- if ($collapseButton.dataset.collapsed === 'true') {
- await db.set([notion.getPageID()], false);
- $collapseButton.dataset.collapsed = false;
- } else {
- await db.set([notion.getPageID()], true);
- $collapseButton.dataset.collapsed = true;
- }
- });
- const insertButton = async () => {
- if (document.contains($collapseButton)) return;
- const $propertyList = document.querySelector(propertyListSelector);
- if ($propertyList) {
- $collapseButton.dataset.collapsed = await db.get([notion.getPageID()], true);
- $propertyList.before($collapseButton);
- }
- };
- web.addDocumentObserver(insertButton, [propertyListSelector]);
- insertButton();
-}
diff --git a/src/extensions/collapsible-properties/collapsible-properties.jpg b/src/extensions/collapsible-properties/collapsible-properties.jpg
deleted file mode 100644
index 1489e8f..0000000
Binary files a/src/extensions/collapsible-properties/collapsible-properties.jpg and /dev/null differ
diff --git a/src/extensions/collapsible-properties/mod.json b/src/extensions/collapsible-properties/mod.json
deleted file mode 100644
index 7ef89df..0000000
--- a/src/extensions/collapsible-properties/mod.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "collapsible properties",
- "id": "4034a578-7dd3-4633-80c6-f47ac5b7b160",
- "version": "0.3.0",
- "description": "adds a button to quickly collapse/expand page properties that usually push down page content.",
- "preview": "collapsible-properties.jpg",
- "tags": ["extension", "layout"],
- "authors": [
- {
- "name": "dragonwocky",
- "email": "thedragonring.bod@gmail.com",
- "homepage": "https://dragonwocky.me/",
- "avatar": "https://dragonwocky.me/avatar.jpg"
- }
- ],
- "css": {
- "client": ["client.css"]
- },
- "js": {
- "client": ["client.mjs"]
- },
- "options": []
-}
diff --git a/src/extensions/global-block-links/client.css b/src/extensions/global-block-links/client.css
deleted file mode 100644
index 66dcc54..0000000
--- a/src/extensions/global-block-links/client.css
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * notion-enhancer: global block links
- * (c) 2021 admiraldus (https://github.com/admiraldus)
- * (c) 2021 dragonwocky (https://dragonwocky.me/)
- * (https://notion-enhancer.github.io/) under the MIT license
- */
-
-.global_block_links--topbar_copy {
- display: inline-flex;
- align-items: center;
- border-radius: 3px;
- height: 28px;
- min-width: 0px;
- padding-right: 8px;
- padding-left: 6px;
- font-size: 14px;
- line-height: 1.2;
- color: var(--theme--text);
- cursor: pointer;
- transition: background 20ms ease-in 0s;
- user-select: none;
-}
-.global_block_links--topbar_copy > svg {
- display: block;
- height: 16px;
- width: 16px;
- fill: var(--theme--icon);
-}
-.global_block_links--topbar_copy > span {
- margin-left: 2px;
- opacity: 1;
- transition: opacity 0.4s ease;
-}
-.global_block_links--topbar_copy > svg + span {
- margin-left: 6px;
-}
-
-.global_block_links--block_copy {
- display: flex;
- align-items: center;
- height: 28px;
- width: 100%;
- font-size: 14px;
- line-height: 1.2;
- cursor: pointer;
- transition: background 20ms ease-in 0s;
- user-select: none;
-}
-.global_block_links--block_copy > svg {
- display: block;
- margin-left: 14px;
- height: 17px;
- width: 17px;
- color: var(--theme--icon);
-}
-.global_block_links--block_copy > span {
- margin-right: 14px;
- margin-left: 8px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.global_block_links--topbar_copy:hover,
-.global_block_links--block_copy:hover {
- background: var(--theme--ui_interactive-hover);
-}
-
-.global_block_links--hidden {
- position: absolute;
- top: -9999px;
- opacity: 0 !important;
-}
diff --git a/src/extensions/global-block-links/client.mjs b/src/extensions/global-block-links/client.mjs
deleted file mode 100644
index 5cd864e..0000000
--- a/src/extensions/global-block-links/client.mjs
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * notion-enhancer: global block links
- * (c) 2021 admiraldus (https://github.com/admiraldus)
- * (c) 2021 dragonwocky (https://dragonwocky.me/)
- * (https://notion-enhancer.github.io/) under the MIT license
- */
-
-export default async function ({ web, components, notion }, db) {
- const topbarShareSelector = '.notion-topbar-share-menu',
- blockActionSelector =
- '.notion-overlay-container .notion-scroller.vertical .notion-focusable > div > div > [style*="text-overflow: ellipsis;"]',
- hoveredActionSelector =
- '.notion-overlay-container .notion-scroller.vertical .notion-focusable[style*="background:"]',
- topbarCopyClass = 'global_block_links--topbar_copy',
- blockCopyClass = 'global_block_links--block_copy',
- hiddenClass = 'global_block_links--hidden';
-
- const topbarCopyIcon = await db.get(['topbar_copy_icon']),
- topbarCopyText = await db.get(['topbar_copy_text']);
- if (topbarCopyIcon || topbarCopyText) {
- const $topbarCopyTemplate = web.render(
- web.html``,
- topbarCopyIcon
- ? web.html``
- : '',
- topbarCopyText
- ? web.html`
- Copy link
- Link copied!
- `
- : ''
- );
-
- const insertTopbarCopy = () => {
- const $btns = document.querySelectorAll(topbarShareSelector);
- $btns.forEach(($btn) => {
- if (!$btn.previousElementSibling?.classList?.contains?.(topbarCopyClass)) {
- const $copy = $topbarCopyTemplate.cloneNode(true);
- components.addTooltip($copy, '**Copy page link**');
- $btn.before($copy);
-
- let resetButtonDelay;
- $copy.addEventListener('click', () => {
- if (topbarCopyText) {
- const $copyText = $copy.querySelector('[data-copy]'),
- $copiedText = $copy.querySelector('[data-copied]');
- $copyText.classList.add(hiddenClass);
- $copiedText.classList.remove(hiddenClass);
- clearTimeout(resetButtonDelay);
- resetButtonDelay = setTimeout(() => {
- $copyText.classList.remove(hiddenClass);
- $copiedText.classList.add(hiddenClass);
- }, 1250);
- }
-
- web.copyToClipboard(`https://notion.so/${notion.getPageID().replace(/-/g, '')}`);
- });
- }
- });
- };
- insertTopbarCopy();
- web.addDocumentObserver(insertTopbarCopy, [topbarShareSelector]);
- }
-
- const $blockCopyTemplate = web.html`
-
- ${await components.feather('globe')}
- Global link
-
`;
-
- const getLinkButtons = () =>
- [...document.querySelectorAll(blockActionSelector)]
- .filter(($action) =>
- ['Copy link', '링크 복사', 'リンクをコピー'].includes($action.textContent)
- )
- .map(($action) => $action.closest('.notion-focusable')),
- insertBlockCopy = () => {
- const $btns = getLinkButtons();
- $btns.forEach(($btn) => {
- if (!$btn.previousElementSibling?.classList?.contains?.(blockCopyClass)) {
- const $copy = $blockCopyTemplate.cloneNode(true);
- $btn.before($copy);
-
- $copy.addEventListener('mouseover', () => {
- document.querySelectorAll(hoveredActionSelector).forEach(($action) => {
- $action.style.background = '';
- });
- });
-
- $copy.addEventListener('click', async () => {
- $btn.click();
- const link = await web.readFromClipboard(),
- id = link.replace(/.+#(?=\w+)/, '');
- web.copyToClipboard(id.length === 32 ? `https://notion.so/${id}` : link);
- });
- }
- });
- };
- insertBlockCopy();
- web.addDocumentObserver(insertBlockCopy, [blockActionSelector]);
-}
diff --git a/src/extensions/global-block-links/global-block-links.jpg b/src/extensions/global-block-links/global-block-links.jpg
deleted file mode 100644
index eb84be2..0000000
Binary files a/src/extensions/global-block-links/global-block-links.jpg and /dev/null differ
diff --git a/src/extensions/global-block-links/mod.json b/src/extensions/global-block-links/mod.json
deleted file mode 100644
index 698e9b2..0000000
--- a/src/extensions/global-block-links/mod.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "global block links",
- "id": "74856af4-6970-455d-bd86-0a385a402dd1",
- "version": "0.1.0",
- "description": "easily copy the global link of a page or block.",
- "preview": "global-block-links.jpg",
- "tags": ["extension", "shortcut"],
- "authors": [
- {
- "name": "admiraldus",
- "homepage": "https://github.com/admiraldus",
- "avatar": "https://raw.githubusercontent.com/admiraldus/admiraldus/main/module.gif"
- }
- ],
- "js": {
- "client": ["client.mjs"]
- },
- "css": {
- "client": ["client.css"]
- },
- "options": [
- {
- "key": "topbar_copy_icon",
- "label": "copy page links from the topbar (icon)",
- "type": "toggle",
- "value": true
- },
- {
- "key": "topbar_copy_text",
- "label": "copy page links from the topbar (text)",
- "type": "toggle",
- "value": true
- }
- ]
-}
diff --git a/src/extensions/tweaks/mod.json b/src/extensions/tweaks/mod.json
index d4ab170..9539c57 100644
--- a/src/extensions/tweaks/mod.json
+++ b/src/extensions/tweaks/mod.json
@@ -38,6 +38,12 @@
"description": "Hide the default page icons.",
"value": false
},
+ {
+ "type": "toggle",
+ "key": "hoverableTimelineTitles",
+ "description": "Shows the full title of a timeline item on hover if it has been truncated for being too long.",
+ "value": false
+ },
{
"type": "toggle",
"key": "snappyTransitions",
diff --git a/src/extensions/weekly-view/client.mjs b/src/extensions/weekly-view/client.mjs
deleted file mode 100644
index 426f5ba..0000000
--- a/src/extensions/weekly-view/client.mjs
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * notion-enhancer: weekly view
- * (c) 2021 dragonwocky (https://dragonwocky.me/)
- * (https://notion-enhancer.github.io/) under the MIT license
- */
-
-'use strict';
-
-export default async function ({ web }, db) {
- const pageSelector = '.notion-page-content',
- calendarSelector = '.notion-calendar-view',
- viewSelector =
- '.notion-page-content > .notion-selectable.notion-collection_view-block',
- viewControlSelector = ':scope>div>div>div>div>div',
- todaySelector = '.notion-calendar-view-day[style*="background"]',
- weekSelector = '[style^="position: relative; display: flex; height: "]',
- toolbarBtnSelector =
- '.notion-calendar-view > :first-child > :first-child > :first-child > :nth-last-child(2)';
-
- const transformCalendarView = () => {
- const $page = document.querySelector(pageSelector);
- document.querySelectorAll(viewSelector).forEach(async ($view) => {
- let currentText;
- // Get view controls children nodes, convert to array, filter out non-text
- const $viewNodes = []
- .slice.call($view.querySelector(viewControlSelector).children)
- .filter(node => node.tagName.toLowerCase().match(/(div|span)/g));
-
- // Find current view by analyzing children (which changes on viewport)
- if ($viewNodes.length === 1)
- {
- // Mobile: Simple dropdown button (like legacy), text is current view
- currentText = $viewNodes[0].innerText.toLowerCase();
- } else {
- // Wide/Desktop: Tabs listed, current view indicated by border style
- currentText = $viewNodes
- // Find selected view by border style (possibly fragile)
- .filter(($e) => $e.children[0].style.borderBottomWidth.toString() === '2px')[0]
- .innerText.toLowerCase();
- }
-
- if (currentText !== 'weekly') return;
-
- const $calendar = $view.parentElement.parentElement.parentElement.parentElement;
- if (!$calendar.querySelector(todaySelector)) {
- $calendar.querySelector(toolbarBtnSelector).click();
- }
- await new Promise((res, rej) => requestAnimationFrame(res));
- if ($page) {
- for (const $week of $calendar.querySelectorAll(weekSelector)) {
- if (!$week.querySelector(todaySelector)) {
- $week.style.height = 0;
- $week.style.visibility = 'hidden';
- }
- }
- } else {
- const $weekContainer = $calendar.querySelector(weekSelector).parentElement;
- for (const $week of $calendar.querySelectorAll(weekSelector)) {
- if ($week.querySelector(todaySelector)) {
- $weekContainer.style.maxHeight = $week.style.height;
- break;
- } else {
- $week.style.height = '0';
- $week.style.visibility = 'hidden';
- }
- }
- }
- });
- };
- web.addDocumentObserver(transformCalendarView, [calendarSelector]);
-}
diff --git a/src/extensions/weekly-view/mod.json b/src/extensions/weekly-view/mod.json
deleted file mode 100644
index 6128450..0000000
--- a/src/extensions/weekly-view/mod.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "weekly view",
- "id": "4c7acaea-6596-4590-85e5-8ac5a1455e8f",
- "version": "0.6.0",
- "description": "calendar views named \"weekly\" will show only the current week.",
- "preview": "weekly-view.jpg",
- "tags": ["extension", "layout"],
- "authors": [
- {
- "name": "dragonwocky",
- "email": "thedragonring.bod@gmail.com",
- "homepage": "https://dragonwocky.me/",
- "avatar": "https://dragonwocky.me/avatar.jpg"
- }
- ],
- "js": {
- "client": ["client.mjs"]
- },
- "css": {},
- "options": []
-}
diff --git a/src/extensions/weekly-view/weekly-view.jpg b/src/extensions/weekly-view/weekly-view.jpg
deleted file mode 100644
index 345d33d..0000000
Binary files a/src/extensions/weekly-view/weekly-view.jpg and /dev/null differ