vault backup: 2026-05-08 16:11:20

This commit is contained in:
Thomas Peetz
2026-05-08 16:11:19 +02:00
parent 6ad28f9cb4
commit 2df7a57cf2
26 changed files with 14046 additions and 11330 deletions
+105 -66
View File
@@ -31,26 +31,26 @@ module.exports = __toCommonJS(main_exports);
var import_obsidian25 = require("obsidian"); var import_obsidian25 = require("obsidian");
// node_modules/obsidian-extra/dist/esm/functions/getFloatingWindows.js // node_modules/obsidian-extra/dist/esm/functions/getFloatingWindows.js
function getFloatingWindows(app2) { function getFloatingWindows(app) {
var _a, _b, _c, _d; var _a, _b, _c, _d;
return (_d = (_c = (_b = (_a = app2 === null || app2 === void 0 ? void 0 : app2.workspace) === null || _a === void 0 ? void 0 : _a.floatingSplit) === null || _b === void 0 ? void 0 : _b.children) === null || _c === void 0 ? void 0 : _c.map((split) => split.win)) !== null && _d !== void 0 ? _d : []; return (_d = (_c = (_b = (_a = app === null || app === void 0 ? void 0 : app.workspace) === null || _a === void 0 ? void 0 : _a.floatingSplit) === null || _b === void 0 ? void 0 : _b.children) === null || _c === void 0 ? void 0 : _c.map((split) => split.win)) !== null && _d !== void 0 ? _d : [];
} }
// node_modules/obsidian-extra/dist/esm/functions/getCurrentThemeID.js // node_modules/obsidian-extra/dist/esm/functions/getCurrentThemeID.js
function getCurrentThemeID(app2) { function getCurrentThemeID(app) {
const theme = app2.customCss.theme; const theme = app.customCss.theme;
return theme === "" ? null : theme; return theme === "" ? null : theme;
} }
// node_modules/obsidian-extra/dist/esm/functions/getCurrentColorScheme.js // node_modules/obsidian-extra/dist/esm/functions/getCurrentColorScheme.js
function getCurrentThemeID2(app2) { function getCurrentThemeID2(app) {
const { body } = app2.workspace.containerEl.doc; const { body } = app.workspace.containerEl.doc;
return body.classList.contains("theme-dark") ? "dark" : "light"; return body.classList.contains("theme-dark") ? "dark" : "light";
} }
// node_modules/obsidian-extra/dist/esm/functions/getThemeManifest.js // node_modules/obsidian-extra/dist/esm/functions/getThemeManifest.js
function getThemeManifest(app2, themeID) { function getThemeManifest(app, themeID) {
const manifests = app2.customCss.themes; const manifests = app.customCss.themes;
if (!Object.prototype.hasOwnProperty.call(manifests, themeID)) { if (!Object.prototype.hasOwnProperty.call(manifests, themeID)) {
return null; return null;
} }
@@ -58,22 +58,22 @@ function getThemeManifest(app2, themeID) {
} }
// node_modules/obsidian-extra/dist/esm/functions/isThemeInstalled.js // node_modules/obsidian-extra/dist/esm/functions/isThemeInstalled.js
function isThemeInstalled(app2, themeID) { function isThemeInstalled(app, themeID) {
return getThemeManifest(app2, themeID) !== null; return getThemeManifest(app, themeID) !== null;
} }
// node_modules/obsidian-extra/dist/esm/functions/getThemeStyleElement.js // node_modules/obsidian-extra/dist/esm/functions/getThemeStyleElement.js
function getThemeStyleElement(app2) { function getThemeStyleElement(app) {
const currentTheme = getCurrentThemeID(app2); const currentTheme = getCurrentThemeID(app);
if (currentTheme == null || !isThemeInstalled(app2, currentTheme)) { if (currentTheme == null || !isThemeInstalled(app, currentTheme)) {
return null; return null;
} }
return app2.customCss.styleEl; return app.customCss.styleEl;
} }
// node_modules/obsidian-extra/dist/esm/functions/isSnippetEnabled.js // node_modules/obsidian-extra/dist/esm/functions/isSnippetEnabled.js
function isSnippetEnabled(app2, snippetID) { function isSnippetEnabled(app, snippetID) {
return app2.customCss.enabledSnippets.has(snippetID); return app.customCss.enabledSnippets.has(snippetID);
} }
// node_modules/obsidian-extra/dist/esm/functions/fetchObsidianStyleSheet.js // node_modules/obsidian-extra/dist/esm/functions/fetchObsidianStyleSheet.js
@@ -129,7 +129,7 @@ var __awaiter = function(thisArg, _arguments, P, generator) {
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
}; };
function fetchObsidianStyleSheet(app2) { function fetchObsidianStyleSheet(app) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
let errors = []; let errors = [];
const orElse = (cb) => (ex) => { const orElse = (cb) => (ex) => {
@@ -198,18 +198,18 @@ function viaDom(path) {
} }
// node_modules/obsidian-extra/dist/esm/functions/getInstalledSnippetIDs.js // node_modules/obsidian-extra/dist/esm/functions/getInstalledSnippetIDs.js
function getInstalledSnippetIDs(app2) { function getInstalledSnippetIDs(app) {
return app2.customCss.snippets; return app.customCss.snippets;
} }
// node_modules/obsidian-extra/dist/esm/functions/getSnippetStyleElements.js // node_modules/obsidian-extra/dist/esm/functions/getSnippetStyleElements.js
function getSnippetStyleElements(app2) { function getSnippetStyleElements(app) {
const styleManager = app2.customCss; const styleManager = app.customCss;
const snippets = getInstalledSnippetIDs(app2); const snippets = getInstalledSnippetIDs(app);
const map = /* @__PURE__ */ new Map(); const map = /* @__PURE__ */ new Map();
for (let i = 0, elI = 0; i < snippets.length; i++) { for (let i = 0, elI = 0; i < snippets.length; i++) {
const snippetID = styleManager.snippets[i]; const snippetID = styleManager.snippets[i];
if (isSnippetEnabled(app2, snippetID)) { if (isSnippetEnabled(app, snippetID)) {
map.set(snippetID, styleManager.extraStyleEls[elI]); map.set(snippetID, styleManager.extraStyleEls[elI]);
elI++; elI++;
} }
@@ -218,9 +218,9 @@ function getSnippetStyleElements(app2) {
} }
// node_modules/obsidian-extra/dist/esm/functions/openPluginSettings.js // node_modules/obsidian-extra/dist/esm/functions/openPluginSettings.js
function openPluginSettings(app2, plugin) { function openPluginSettings(app, plugin) {
var _a, _b; var _a, _b;
const settingManager = app2.setting; const settingManager = app.setting;
const pluginId = typeof plugin === "string" ? plugin : plugin.manifest.id; const pluginId = typeof plugin === "string" ? plugin : plugin.manifest.id;
if (((_a = settingManager.activeTab) === null || _a === void 0 ? void 0 : _a.id) !== pluginId) { if (((_a = settingManager.activeTab) === null || _a === void 0 ? void 0 : _a.id) !== pluginId) {
settingManager.openTabById(""); settingManager.openTabById("");
@@ -233,27 +233,27 @@ function openPluginSettings(app2, plugin) {
// node_modules/obsidian-extra/dist/esm/functions/createCustomStyleSheet.js // node_modules/obsidian-extra/dist/esm/functions/createCustomStyleSheet.js
var Counter = Symbol("CustomStylesheet count"); var Counter = Symbol("CustomStylesheet count");
function foreachWindow(app2, fn) { function foreachWindow(app, fn) {
fn(app2.workspace.containerEl.doc, true); fn(app.workspace.containerEl.doc, true);
for (const float of getFloatingWindows(app2)) { for (const float of getFloatingWindows(app)) {
fn(float.document, false); fn(float.document, false);
} }
} }
function createCustomStyleSheet(app2, plugin) { function createCustomStyleSheet(app, plugin) {
var _a; var _a;
let result; let result;
const pl = plugin; const pl = plugin;
const plId = plugin.manifest.id; const plId = plugin.manifest.id;
const ssId = ((_a = pl[Counter]) !== null && _a !== void 0 ? _a : pl[Counter] = 0).toString(); const ssId = ((_a = pl[Counter]) !== null && _a !== void 0 ? _a : pl[Counter] = 0).toString();
pl[Counter]++; pl[Counter]++;
const styleEl = app2.workspace.containerEl.doc.createElement("style"); const styleEl = app.workspace.containerEl.doc.createElement("style");
const styleElInFloats = []; const styleElInFloats = [];
styleEl.setAttribute("data-source-plugin", plId); styleEl.setAttribute("data-source-plugin", plId);
styleEl.setAttribute("data-source-id", ssId); styleEl.setAttribute("data-source-id", ssId);
function unapply() { function unapply() {
styleElInFloats.splice(0, styleElInFloats.length).forEach((el) => el.remove()); styleElInFloats.splice(0, styleElInFloats.length).forEach((el) => el.remove());
styleEl.detach(); styleEl.detach();
foreachWindow(app2, (doc) => { foreachWindow(app, (doc) => {
for (const styleEl2 of Array.from(doc.head.querySelectorAll("style"))) { for (const styleEl2 of Array.from(doc.head.querySelectorAll("style"))) {
if (result.is(styleEl2)) { if (result.is(styleEl2)) {
styleEl2.remove(); styleEl2.remove();
@@ -263,7 +263,7 @@ function createCustomStyleSheet(app2, plugin) {
} }
function reapply() { function reapply() {
unapply(); unapply();
foreachWindow(app2, (doc, isFloating) => { foreachWindow(app, (doc, isFloating) => {
let lastEl = doc.head.lastElementChild; let lastEl = doc.head.lastElementChild;
for (let el = lastEl; el != null; el = el.previousElementSibling) { for (let el = lastEl; el != null; el = el.previousElementSibling) {
lastEl = el; lastEl = el;
@@ -280,12 +280,12 @@ function createCustomStyleSheet(app2, plugin) {
lastEl === null || lastEl === void 0 ? void 0 : lastEl.insertAdjacentElement("afterend", styleElClone); lastEl === null || lastEl === void 0 ? void 0 : lastEl.insertAdjacentElement("afterend", styleElClone);
}); });
} }
app2.workspace.on("css-change", reapply); app.workspace.on("css-change", reapply);
app2.workspace.on("layout-change", reapply); app.workspace.on("layout-change", reapply);
result = Object.freeze(Object.defineProperties(() => { result = Object.freeze(Object.defineProperties(() => {
unapply(); unapply();
app2.workspace.off("css-change", reapply); app.workspace.off("css-change", reapply);
app2.workspace.off("layout-change", reapply); app.workspace.off("layout-change", reapply);
}, { }, {
css: { css: {
enumerable: true, enumerable: true,
@@ -351,17 +351,18 @@ var import_obsidian4 = require("obsidian");
var import_obsidian6 = require("obsidian"); var import_obsidian6 = require("obsidian");
// node_modules/obsidian-extra/dist/esm/functions/closeSettings.js // node_modules/obsidian-extra/dist/esm/functions/closeSettings.js
function closeSettings(app2) { function closeSettings(app) {
const settingManager = app2.setting; const settingManager = app.setting;
settingManager.close(); settingManager.close();
} }
// src/ui/pane-layers.ts // src/ui/pane-layers.ts
var import_obsidian5 = require("obsidian"); var import_obsidian5 = require("obsidian");
var UIPaneLayers = class { var UIPaneLayers = class {
constructor(options) { constructor(root, options) {
this.layers = []; this.layers = [];
this.closeParent = options.close; this.closeParent = options.close;
this.root = root;
this.navInstance = { this.navInstance = {
open: (pane) => this.push(pane), open: (pane) => this.push(pane),
close: () => this.pop(), close: () => this.pop(),
@@ -501,6 +502,11 @@ var UIPaneLayers = class {
configurable: true, configurable: true,
enumerable: true, enumerable: true,
get: attached ? () => this.controlsEl : notAttachedError get: attached ? () => this.controlsEl : notAttachedError
},
root: {
configurable: true,
enumerable: true,
get: attached ? () => this.root : notAttachedError
} }
}); });
} }
@@ -513,7 +519,7 @@ var UISettingTab = class extends import_obsidian6.PluginSettingTab {
this.plugin = plugin; this.plugin = plugin;
this.createDefault = createDefault; this.createDefault = createDefault;
this.initLayer = null; this.initLayer = null;
this.layers = new UIPaneLayers({ this.layers = new UIPaneLayers(plugin, {
close: () => closeSettings(this.app) close: () => closeSettings(this.app)
}); });
} }
@@ -540,12 +546,15 @@ var UISettingTab = class extends import_obsidian6.PluginSettingTab {
cls: "calloutmanager-setting-tab-viewport vertical-tab-content" cls: "calloutmanager-setting-tab-viewport vertical-tab-content"
}); });
layers.containerEl = layers.scrollEl.createDiv({ cls: "calloutmanager-setting-tab-content" }); layers.containerEl = layers.scrollEl.createDiv({ cls: "calloutmanager-setting-tab-content" });
controlsEl.createDiv({ cls: "modal-close-button" }, (closeButtonEl) => { const closeBtn = new import_obsidian6.ButtonComponent(controlsEl);
closeButtonEl.addEventListener("click", (ev) => { closeBtn.setIcon("lucide-x");
if (!ev.isTrusted) closeBtn.buttonEl.classList.add("modal-close-button");
return; closeBtn.buttonEl.classList.add("mod-raised");
closeSettings(this.app); closeBtn.buttonEl.classList.add("clickable-icon");
}); closeBtn.onClick((ev) => {
if (!ev.isTrusted)
return;
closeSettings(this.app);
}); });
layers.clear(); layers.clear();
const initLayer = this.initLayer ?? this.createDefault(); const initLayer = this.initLayer ?? this.createDefault();
@@ -1410,12 +1419,14 @@ var SHADOW_DOM_RESET_STYLES = `
/* Use transparent background color. */ /* Use transparent background color. */
body { body {
background-color: transparent !important; background-color: transparent !important;
contain: none;
} }
`; `;
// src/callout-resolver.ts // src/callout-resolver.ts
var CalloutResolver = class { var CalloutResolver = class {
constructor() { constructor(app) {
this.obsidianApp = app;
this.hostElement = document.body.createDiv({ this.hostElement = document.body.createDiv({
cls: "calloutmanager-callout-resolver" cls: "calloutmanager-callout-resolver"
}); });
@@ -1435,7 +1446,7 @@ var CalloutResolver = class {
* @param styles The new style elements to use. * @param styles The new style elements to use.
*/ */
reloadStyles() { reloadStyles() {
this.calloutPreview.setColorScheme(getCurrentThemeID2(app)); this.calloutPreview.setColorScheme(getCurrentThemeID2(this.obsidianApp));
this.calloutPreview.updateStyles(); this.calloutPreview.updateStyles();
this.calloutPreview.removeStyles((el) => el.getAttribute("data-callout-manager") === "style-overrides"); this.calloutPreview.removeStyles((el) => el.getAttribute("data-callout-manager") === "style-overrides");
} }
@@ -1478,11 +1489,11 @@ var CalloutResolver = class {
}; };
// src/callout-settings.ts // src/callout-settings.ts
function currentCalloutEnvironment(app2) { function currentCalloutEnvironment(app) {
const theme = getCurrentThemeID(app2) ?? "<default>"; const theme = getCurrentThemeID(app) ?? "<default>";
return { return {
theme, theme,
colorScheme: getCurrentThemeID2(app2) colorScheme: getCurrentThemeID2(app)
}; };
} }
function calloutSettingsToCSS(id, settings, environment) { function calloutSettingsToCSS(id, settings, environment) {
@@ -1578,8 +1589,8 @@ function getCalloutsFromCSS(css) {
// src/css-watcher.ts // src/css-watcher.ts
var StylesheetWatcher = class { var StylesheetWatcher = class {
constructor(app2) { constructor(app) {
this.app = app2; this.app = app;
this.listeners = /* @__PURE__ */ new Map(); this.listeners = /* @__PURE__ */ new Map();
this.cachedSnippets = /* @__PURE__ */ new Map(); this.cachedSnippets = /* @__PURE__ */ new Map();
this.cachedObsidian = null; this.cachedObsidian = null;
@@ -3309,7 +3320,7 @@ var MiscEditor = class {
}; };
// src/panes/edit-callout-pane/section-info.ts // src/panes/edit-callout-pane/section-info.ts
function renderInfo(app2, callout, containerEl) { function renderInfo(app, callout, containerEl) {
const frag = document.createDocumentFragment(); const frag = document.createDocumentFragment();
const contentEl = frag.createDiv({ cls: "calloutmanager-edit-callout-section" }); const contentEl = frag.createDiv({ cls: "calloutmanager-edit-callout-section" });
contentEl.createEl("h2", { text: "About this Callout" }); contentEl.createEl("h2", { text: "About this Callout" });
@@ -3327,7 +3338,7 @@ function renderInfo(app2, callout, containerEl) {
return; return;
} }
el.appendText(". It was added to Obsidian by the "); el.appendText(". It was added to Obsidian by the ");
appendSourceInfo(app2, el, callout.sources[0]); appendSourceInfo(app, el, callout.sources[0]);
el.appendText("."); el.appendText(".");
return; return;
} }
@@ -3336,7 +3347,7 @@ function renderInfo(app2, callout, containerEl) {
for (const source of callout.sources) { for (const source of callout.sources) {
const itemEl = sources.createEl("li"); const itemEl = sources.createEl("li");
itemEl.appendText("The "); itemEl.appendText("The ");
appendSourceInfo(app2, itemEl, source); appendSourceInfo(app, itemEl, source);
itemEl.appendText("."); itemEl.appendText(".");
} }
}); });
@@ -3364,7 +3375,7 @@ function appendColorInfo(el, callout) {
(colorEl) => colorEl.style.setProperty("--resolved-callout-color", callout.color) (colorEl) => colorEl.style.setProperty("--resolved-callout-color", callout.color)
); );
} }
function appendSourceInfo(app2, el, source) { function appendSourceInfo(app, el, source) {
switch (source.type) { switch (source.type) {
case "builtin": case "builtin":
el.appendText("built-in callouts"); el.appendText("built-in callouts");
@@ -3381,7 +3392,7 @@ function appendSourceInfo(app2, el, source) {
return true; return true;
case "theme": { case "theme": {
el.appendText("theme "); el.appendText("theme ");
const themeName = getThemeManifest(app2, source.theme)?.name ?? source.theme; const themeName = getThemeManifest(app, source.theme)?.name ?? source.theme;
el.createSpan({ cls: "calloutmanager-edit-callout--callout-source", text: themeName }); el.createSpan({ cls: "calloutmanager-edit-callout--callout-source", text: themeName });
return true; return true;
} }
@@ -3717,7 +3728,7 @@ var ManageCalloutsPane = class extends UIPane {
if (action === "edit") { if (action === "edit") {
this.nav.open(new EditCalloutPane(this.plugin, id, this.viewOnly)); this.nav.open(new EditCalloutPane(this.plugin, id, this.viewOnly));
} else if (action === "insert") { } else if (action === "insert") {
const view = app.workspace.getActiveViewOfType(import_obsidian22.MarkdownView); const view = this.plugin.app.workspace.getActiveViewOfType(import_obsidian22.MarkdownView);
if (view) { if (view) {
const cursor = view.editor.getCursor(); const cursor = view.editor.getCursor();
view.editor.replaceRange( view.editor.replaceRange(
@@ -3726,7 +3737,7 @@ var ManageCalloutsPane = class extends UIPane {
cursor cursor
); );
view.editor.setCursor(cursor.line + 1, 10); view.editor.setCursor(cursor.line + 1, 10);
closeSettings(app); closeSettings(this.plugin.app);
} }
} }
} }
@@ -3841,7 +3852,20 @@ var import_obsidian24 = require("obsidian");
var import_obsidian23 = require("obsidian"); var import_obsidian23 = require("obsidian");
// CHANGELOG.md // CHANGELOG.md
var CHANGELOG_default = `# Version 1.1.0 var CHANGELOG_default = `# Version 1.1.1
> [!new] Export Callouts as CSS
> There's now a button to copy your callout changes.
> [!fix] Callout Previews
> Previews are back!
>
> Thank you, [**@alythobani**](https://github.com/alythobani)!
> [!fix] Settings Pane (Mobile)
> It's moved slightly to accomodate the updated Obsidian mobile layout.
# Version 1.1.0
> [!new] In-App Changelogs > [!new] In-App Changelogs
> Learn about plugin changes and new features straight from the horse's mouth. > Learn about plugin changes and new features straight from the horse's mouth.
@@ -3878,10 +3902,10 @@ The first release available on Obsidian's community plugin browser!
`; `;
// src/changelog.ts // src/changelog.ts
function getSections() { function getSections(parent) {
const frag = document.createDocumentFragment(); const frag = document.createDocumentFragment();
const renderedEl = frag.createDiv(); const renderedEl = frag.createDiv();
import_obsidian23.MarkdownRenderer.renderMarkdown(CHANGELOG_default, renderedEl, "", null); import_obsidian23.MarkdownRenderer.renderMarkdown(CHANGELOG_default, renderedEl, "", parent);
const sections = /* @__PURE__ */ new Map(); const sections = /* @__PURE__ */ new Map();
let heading = null; let heading = null;
let sectionContainer = frag.createEl("details"); let sectionContainer = frag.createEl("details");
@@ -3937,7 +3961,7 @@ var ChangelogPane = class extends UIPane {
super(); super();
this.title = "Changelog"; this.title = "Changelog";
this.plugin = plugin; this.plugin = plugin;
const sections = getSections(); const sections = getSections(plugin);
const frag = document.createDocumentFragment(); const frag = document.createDocumentFragment();
this.changelogEl = frag.createDiv({ cls: "calloutmanager-changelog" }); this.changelogEl = frag.createDiv({ cls: "calloutmanager-changelog" });
Array.from(sections.values()).forEach(({ version, containerEl: el }) => { Array.from(sections.values()).forEach(({ version, containerEl: el }) => {
@@ -4004,12 +4028,25 @@ var ManagePluginPane = class extends UIPane {
new import_obsidian24.Setting(containerEl).setHeading().setName("What's New").setDesc(`Version ${this.plugin.manifest.version}`).addExtraButton((btn) => { new import_obsidian24.Setting(containerEl).setHeading().setName("What's New").setDesc(`Version ${this.plugin.manifest.version}`).addExtraButton((btn) => {
btn.setIcon("lucide-more-horizontal").setTooltip("More Changelogs").onClick(() => this.nav.open(new ChangelogPane(plugin))); btn.setIcon("lucide-more-horizontal").setTooltip("More Changelogs").onClick(() => this.nav.open(new ChangelogPane(plugin)));
}); });
const latestChanges = getSections().get(this.plugin.manifest.version); const latestChanges = getSections(this.root).get(this.plugin.manifest.version);
if (latestChanges != null) { if (latestChanges != null) {
const desc = document.createDocumentFragment(); const desc = document.createDocumentFragment();
desc.appendChild(latestChanges.contentsEl); desc.appendChild(latestChanges.contentsEl);
new import_obsidian24.Setting(containerEl).setDesc(desc).then((setting) => setting.controlEl.remove()).then((setting) => setting.settingEl.classList.add("calloutmanager-latest-changes")); new import_obsidian24.Setting(containerEl).setDesc(desc).then((setting) => setting.controlEl.remove()).then((setting) => setting.settingEl.classList.add("calloutmanager-latest-changes"));
} }
new import_obsidian24.Setting(containerEl).setHeading().setName("Export");
new import_obsidian24.Setting(containerEl).setName("Callout Styles").setDesc("Export your custom callouts and changes as CSS.").addButton((btn) => {
btn.setButtonText("Copy");
btn.onClick(async () => {
btn.setDisabled(true);
try {
await navigator.clipboard.writeText("/* Exported Styles from Obsidian Callout Manager */\n" + this.plugin.cssApplier.css);
btn.setButtonText("Copied!");
} catch (ex) {
btn.setButtonText("Error");
}
});
});
new import_obsidian24.Setting(containerEl).setHeading().setName("Reset"); new import_obsidian24.Setting(containerEl).setHeading().setName("Reset");
new import_obsidian24.Setting(containerEl).setName("Reset Callout Settings").setDesc("Reset all the changes you made to callouts.").addButton( new import_obsidian24.Setting(containerEl).setName("Reset Callout Settings").setDesc("Reset all the changes you made to callouts.").addButton(
withConfirm((btn) => { withConfirm((btn) => {
@@ -4098,7 +4135,7 @@ var CalloutManagerPlugin = class extends import_obsidian25.Plugin {
await this.loadSettings(); await this.loadSettings();
await this.saveSettings(); await this.saveSettings();
const { settings } = this; const { settings } = this;
this.calloutResolver = new CalloutResolver(); this.calloutResolver = new CalloutResolver(this.app);
this.register(() => this.calloutResolver.unload()); this.register(() => this.calloutResolver.unload());
this.callouts = new CalloutCollection((id) => { this.callouts = new CalloutCollection((id) => {
const { icon, color } = this.calloutResolver.getCalloutProperties(id); const { icon, color } = this.calloutResolver.getCalloutProperties(id);
@@ -4365,3 +4402,5 @@ var CalloutManagerPlugin = class extends import_obsidian25.Plugin {
return this.api.destroyHandle(version, consumerPlugin); return this.api.destroyHandle(version, consumerPlugin);
} }
}; };
/* nosourcemap */
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"id": "callout-manager", "id": "callout-manager",
"version": "1.1.0", "version": "1.1.1",
"description": "Easily create and customize callouts.", "description": "Easily create and customize callouts.",
"author": "eth-p", "author": "eth-p",
"authorUrl": "https://github.com/eth-p", "authorUrl": "https://github.com/eth-p",
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -9
View File
@@ -1,11 +1,11 @@
{ {
"id": "cmdr", "id": "cmdr",
"name": "Commander", "name": "Commander",
"version": "0.5.4", "version": "0.5.5",
"minAppVersion": "1.4.0", "minAppVersion": "1.4.0",
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.", "description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
"author": "jsmorabito & phibr0", "author": "jsmorabito & phibr0",
"authorUrl": "https://github.com/phibr0", "authorUrl": "https://github.com/phibr0",
"fundingUrl": "https://ko-fi.com/phibr0", "fundingUrl": "https://ko-fi.com/phibr0",
"isDesktopOnly": false "isDesktopOnly": false
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -24
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "datacore", "id": "datacore",
"name": "Datacore", "name": "Datacore",
"version": "0.1.28", "version": "0.1.29",
"minAppVersion": "1.4.11", "minAppVersion": "1.4.11",
"description": "Reactive query engine backed by Javascript or a custom query language.", "description": "Reactive query engine backed by Javascript or a custom query language.",
"author": "Michael Brenan", "author": "Michael Brenan",
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,11 +1,11 @@
{ {
"id": "external-file-embed-and-link", "id": "external-file-embed-and-link",
"name": "External File Embed and Link", "name": "External File Embed and Link",
"version": "1.5.6", "version": "1.5.9",
"minAppVersion": "0.15.0", "minAppVersion": "0.15.0",
"description": "Embed and link local files outside your vault with relative paths for cross-device and multi-platform compatibility.", "description": "Embed and link local files outside your vault with relative paths for cross-device and multi-platform compatibility.",
"author": "oylbin", "author": "oylbin",
"authorUrl": "https://github.com/oylbin", "authorUrl": "https://github.com/oylbin",
"fundingUrl": "https://buymeacoffee.com/oylbin", "fundingUrl": "https://buymeacoffee.com/oylbin",
"isDesktopOnly": true "isDesktopOnly": true
} }
+13 -15
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "janitor", "id": "janitor",
"name": "Janitor", "name": "Janitor",
"version": "1.1.1", "version": "1.1.3",
"minAppVersion": "0.15.0", "minAppVersion": "0.15.0",
"description": "Performs cleanup tasks on the Obsidian vault", "description": "Performs cleanup tasks on the Obsidian vault",
"author": "Gabriele Cannata", "author": "Gabriele Cannata",
+72 -6
View File
@@ -47,21 +47,78 @@ If your plugin does not need CSS, delete this file.
.janitor-file .openFileIcon { .janitor-file .openFileIcon {
right: 0px; right: 0px;
position: absolute; position: absolute;
/* cursor: pointer; */
visibility: hidden; visibility: hidden;
} }
.janitor-file label { .janitor-file label {
width: 100%; width: 100%;
/* cursor: pointer; */
display: flex; display: flex;
align-items: center;
} }
.janitor-file span { .janitor-file-name {
flex: 1;
min-width: 0;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; margin-right: 3.5em;
}
.janitor-icon {
display: flex;
align-items: center;
line-height: 1;
}
.janitor-icon svg {
width: 14px;
height: 14px;
}
.janitor-file-name-text {
display: inline-block;
white-space: nowrap; white-space: nowrap;
margin-right: 4em; }
.janitor-file:hover .janitor-file-name-text {
animation: janitor-marquee 4s ease-in-out infinite alternate;
}
@keyframes janitor-marquee {
0%, 15% { transform: translateX(0); }
85%, 100% { transform: translateX(var(--marquee-offset, 0px)); }
}
.janitor-md-preview-link {
display: contents;
}
.previewFileIcon {
right: 1.5em;
position: absolute;
visibility: hidden;
}
.janitor-file:hover .previewFileIcon {
visibility: visible;
}
.janitor-preview-overlay {
position: fixed;
z-index: 9999;
padding: 6px;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
pointer-events: none;
}
.janitor-preview-overlay img {
display: block;
max-width: 200px;
max-height: 200px;
object-fit: contain;
border-radius: 3px;
} }
.janitor-file:hover .openFileIcon { .janitor-file:hover .openFileIcon {
@@ -72,9 +129,18 @@ If your plugin does not need CSS, delete this file.
outline: auto; outline: auto;
} }
.janitor-main-modal {
width: min(700px, 90vw);
}
/* Ensure hover preview popover appears above the modal overlay */
.popover.hover-popover {
z-index: calc(var(--layer-modal, 200) + 10);
}
.janitor-scan-results { .janitor-scan-results {
overflow-y: auto; overflow-y: auto;
max-height:250px; max-height: 450px;
} }
.janitor-files-wrapper { .janitor-files-wrapper {
+254 -254
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,5 +6,5 @@
"description": "Integrate Git version control with automatic backup and other advanced features.", "description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false, "isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent", "fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.38.0" "version": "2.38.2"
} }
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,8 +1,8 @@
{ {
"id": "obsidian-tasks-plugin", "id": "obsidian-tasks-plugin",
"name": "Tasks", "name": "Tasks",
"version": "7.23.1", "version": "8.0.0",
"minAppVersion": "1.4.0", "minAppVersion": "1.8.7",
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.", "description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
"helpUrl": "https://publish.obsidian.md/tasks/", "helpUrl": "https://publish.obsidian.md/tasks/",
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)", "author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -5
View File
@@ -3,15 +3,13 @@
"name": "Advanced Tables", "name": "Advanced Tables",
"author": "Tony Grosinger", "author": "Tony Grosinger",
"authorUrl": "https://grosinger.net", "authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas", "description": "Improved table navigation, formatting, manipulation, and formulas.",
"isDesktopOnly": false, "isDesktopOnly": false,
"minAppVersion": "1.0.0", "minAppVersion": "1.0.0",
"version": "0.22.1", "version": "0.22.2",
"js": "main.js",
"fundingUrl": { "fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger", "Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger", "Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger" "Paypal": "https://paypal.me/tgrosinger"
}, }
"donation": "https://buymeacoffee.com/tgrosinger"
} }
+12908 -10736
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,10 +1,10 @@
{ {
"id": "task-list-kanban", "id": "task-list-kanban",
"name": "Task List Kanban", "name": "Task List Kanban",
"version": "1.8.0", "version": "1.11.0",
"minAppVersion": "1.5.3", "minAppVersion": "1.5.3",
"description": "Organizes all of the tasks within your files into a kanban view. Reduce duplication of effort when managing and prioritising tasks by simply using the task format in your files to automatically appear in your Task List Kanban.", "description": "Organizes all of the tasks within your files into a kanban view. Reduce duplication of effort when managing and prioritising tasks by simply using the task format in your files to automatically appear in your Task List Kanban.",
"author": "Chris Kerr, Erika Rice Scherpelz", "author": "Chris Kerr, Erika Rice Scherpelz",
"authorUrl": "https://github.com/erikars", "authorUrl": "https://github.com/erikars",
"isDesktopOnly": false "isDesktopOnly": false
} }
+429
View File
@@ -19,3 +19,432 @@ If your plugin does not need CSS, delete this file.
.setting-item.column .setting-item-control > input { .setting-item.column .setting-item-control > input {
width: 100%; width: 100%;
} }
/* Settings modal shell */
.task-list-kanban-settings-modal-container {
display: flex;
flex-direction: column;
overflow: hidden;
width: min(860px, calc(100vw - 48px));
max-width: 860px;
}
.task-list-kanban-settings-modal {
display: flex;
flex-direction: column;
flex: 1;
overflow: hidden;
}
.settings-scroll-wrapper {
flex: 1;
overflow-x: hidden;
overflow-y: auto;
min-height: 0;
padding-bottom: 8px;
padding-right: 2px;
}
/* Settings header */
.settings-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 18px;
}
.settings-header h1 {
margin: 0;
flex: 0 0 auto;
}
.settings-header-status {
display: flex;
align-items: center;
gap: 8px;
min-height: 24px;
flex-wrap: wrap;
}
.settings-status-pill {
--settings-pill-color: var(--text-muted);
--settings-pill-background: transparent;
--settings-pill-border: transparent;
display: none;
align-items: center;
max-width: min(520px, calc(100vw - 180px));
padding: 3px 10px;
border-radius: 999px;
color: var(--settings-pill-color);
background: var(--settings-pill-background);
border: 1px solid var(--settings-pill-border);
font-size: var(--font-ui-smaller);
font-weight: 600;
line-height: 1.3;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.settings-status-pill.is-visible {
display: inline-flex;
}
.settings-status-pill-validation {
--settings-pill-color: var(--text-error);
--settings-pill-background: rgba(var(--background-modifier-error-rgb), 0.14);
--settings-pill-border: color-mix(in srgb, var(--background-modifier-error) 75%, transparent);
}
.settings-status-pill-dirty {
--settings-pill-color: var(--text-accent);
--settings-pill-background: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
--settings-pill-border: color-mix(in srgb, var(--interactive-accent) 35%, transparent);
}
.settings-button-bar {
flex-shrink: 0;
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 0 0;
border-top: 1px solid var(--background-modifier-border);
}
/* Column editor layout */
.column-editor-section {
margin-bottom: 20px;
}
.column-editor-intro {
position: sticky;
top: 0;
z-index: 2;
padding: 0 0 10px;
background: linear-gradient(to bottom, var(--background-primary) 0%, var(--background-primary) 82%, transparent 100%);
}
.column-editor-intro h2 {
margin-bottom: 4px;
}
.column-editor-intro .setting-item-description {
margin: 0;
color: var(--text-muted);
}
.column-editor-list {
display: flex;
flex-direction: column;
margin-top: 12px;
border-top: 1px solid var(--background-modifier-border);
}
.column-editor-row {
display: flex;
position: relative;
align-items: center;
gap: 8px;
padding: 10px 8px;
border-bottom: 1px solid var(--background-modifier-border);
background: transparent;
transition: background-color 140ms ease, box-shadow 140ms ease;
overflow: visible;
min-width: 0;
}
.column-editor-row-content {
flex: 1 1 auto;
min-width: 0;
}
.column-editor-row:hover {
background: color-mix(in srgb, var(--background-primary) 86%, var(--background-modifier-hover));
}
.column-editor-row:focus-within {
background: color-mix(in srgb, var(--background-primary) 82%, var(--background-modifier-hover));
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--background-modifier-border-focus) 55%, transparent),
inset 0 -1px 0 color-mix(in srgb, var(--background-modifier-border-focus) 55%, transparent);
}
.column-editor-row.is-drop-target {
box-shadow: none;
}
.column-editor-row.is-dragging {
opacity: 0.4;
}
.column-editor-row.is-drop-before::before,
.column-editor-row.is-drop-after::before {
content: "";
position: absolute;
left: 8px;
right: 8px;
height: 2px;
background: var(--interactive-accent);
pointer-events: none;
}
.column-editor-row.is-drop-before::after,
.column-editor-row.is-drop-after::after {
content: "";
position: absolute;
left: 4px;
width: 10px;
height: 10px;
border-radius: 999px;
background: var(--interactive-accent);
pointer-events: none;
}
.column-editor-row.is-drop-before::before {
top: -2px;
}
.column-editor-row.is-drop-before::after {
top: -6px;
}
.column-editor-row.is-drop-after::before {
bottom: -2px;
}
.column-editor-row.is-drop-after::after {
bottom: -6px;
}
.column-editor-handle,
.column-editor-handle-spacer {
width: 20px;
height: 20px;
flex: 0 0 20px;
}
.column-editor-handle {
cursor: grab;
color: var(--text-muted);
font-size: 14px;
line-height: 1;
opacity: 0.7;
padding: 0;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.column-editor-handle:active {
cursor: grabbing;
}
.column-editor-fields {
display: flex;
gap: 10px;
min-width: 0;
}
.column-editor-fields.column-editor-fields-inline {
align-items: center;
flex: 1 1 auto;
flex-wrap: wrap;
width: 100%;
padding: 1px 0 2px;
}
.column-editor-field {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
flex: 0 1 auto;
}
.column-editor-fields.column-editor-fields-inline .column-editor-field {
align-self: center;
}
.column-editor-field input,
.column-editor-field select {
margin: 0;
}
.column-editor-field .setting-input,
.column-editor-field select {
height: 34px;
}
.column-editor-field-label {
flex: 1 1 220px;
min-width: 180px;
}
.column-editor-field-label .setting-input {
width: 100%;
text-overflow: ellipsis;
}
.column-editor-field-label .setting-input:focus {
text-overflow: clip;
}
.column-editor-field-tag {
flex: 1 1 180px;
min-width: 0;
position: relative;
overflow: visible;
}
.column-editor-tag-select-host {
display: flex;
width: 100%;
min-width: 0;
max-width: 100%;
overflow: visible;
}
.column-editor-field-match,
.column-editor-field-visibility {
flex: 0 1 auto;
}
.column-editor-field-match select {
width: auto;
min-width: 0;
padding-left: 10px;
padding-right: 28px;
}
.column-editor-field-visibility select {
min-width: 150px;
}
.column-editor-inline-label {
flex: 0 0 auto;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
font-weight: 600;
white-space: nowrap;
letter-spacing: 0.01em;
}
.column-editor-field-color .setting-input {
width: 96px;
}
.column-editor-color-swatch {
width: 14px;
height: 14px;
border-radius: 999px;
border: 1px solid var(--background-modifier-border);
appearance: none;
-webkit-appearance: none;
background-color: var(--column-editor-swatch-color, transparent) !important;
background-image: repeating-conic-gradient(
from 45deg,
var(--background-primary) 0deg 90deg,
var(--background-secondary) 90deg 180deg
);
background-blend-mode: overlay;
flex: 0 0 14px;
padding: 0;
cursor: pointer;
box-shadow: none;
}
.column-editor-color-swatch.has-color {
border-color: color-mix(in srgb, var(--background-modifier-border) 40%, var(--text-normal));
background-image: none;
}
.column-editor-color-picker {
position: absolute;
opacity: 0;
pointer-events: none;
width: 0;
height: 0;
padding: 0;
border: 0;
}
.column-editor-rename-option {
display: none;
align-items: center;
gap: 6px;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
white-space: nowrap;
flex: 0 0 auto;
}
.column-editor-remove-rail {
display: flex;
align-items: center;
justify-content: center;
margin-left: auto;
flex: 0 0 20px;
width: 20px;
}
.column-editor-remove-rail > button {
width: 20px;
height: 20px;
padding: 0;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-faint);
opacity: 0.75;
transition: color 140ms ease, background-color 140ms ease, opacity 140ms ease;
}
.column-editor-remove-rail > button:hover {
color: var(--text-muted);
background: var(--background-modifier-hover);
opacity: 1;
}
.column-editor-controls {
display: flex;
justify-content: flex-start;
margin-top: 10px;
}
/* Responsive layout */
@media (max-width: 720px) {
.column-editor-row {
align-items: flex-start;
}
.column-editor-fields.column-editor-fields-inline,
.column-editor-field {
flex-direction: column;
align-items: stretch;
}
.column-editor-fields.column-editor-fields-inline {
gap: 12px;
}
.column-editor-field-label,
.column-editor-field-tag,
.column-editor-field-match,
.column-editor-field-visibility,
.column-editor-field-color {
flex: 1 1 auto;
}
.column-editor-field-tag,
.column-editor-tag-select-host {
width: 100%;
}
.column-editor-field-match select,
.column-editor-field-visibility select,
.column-editor-field-color .setting-input {
width: 100%;
}
}
File diff suppressed because one or more lines are too long
+8 -2
View File
@@ -1,11 +1,17 @@
{ {
"id": "templater-obsidian", "id": "templater-obsidian",
"name": "Templater", "name": "Templater",
"version": "2.18.1", "version": "2.20.3",
"description": "Create and use templates", "description": "Create and use templates",
"minAppVersion": "1.5.0", "minAppVersion": "1.12.2",
"author": "SilentVoid", "author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13", "authorUrl": "https://github.com/SilentVoid13",
"fundingUrl": {
"GitHub Sponser (Zachatoo, maintainer)": "https://github.com/sponsors/Zachatoo",
"Ko-fi (Zachatoo, maintainer)": "https://ko-fi.com/zachatoo",
"GitHub Sponser (SilentVoid13, creator)": "https://github.com/sponsors/SilentVoid13",
"Paypal (SilentVoid13, creator)": "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"
},
"helpUrl": "https://silentvoid13.github.io/Templater/", "helpUrl": "https://silentvoid13.github.io/Templater/",
"isDesktopOnly": false "isDesktopOnly": false
} }