vault backup: 2026-05-08 16:11:20
This commit is contained in:
+105
-66
@@ -31,26 +31,26 @@ module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian25 = require("obsidian");
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/getFloatingWindows.js
|
||||
function getFloatingWindows(app2) {
|
||||
function getFloatingWindows(app) {
|
||||
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
|
||||
function getCurrentThemeID(app2) {
|
||||
const theme = app2.customCss.theme;
|
||||
function getCurrentThemeID(app) {
|
||||
const theme = app.customCss.theme;
|
||||
return theme === "" ? null : theme;
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/getCurrentColorScheme.js
|
||||
function getCurrentThemeID2(app2) {
|
||||
const { body } = app2.workspace.containerEl.doc;
|
||||
function getCurrentThemeID2(app) {
|
||||
const { body } = app.workspace.containerEl.doc;
|
||||
return body.classList.contains("theme-dark") ? "dark" : "light";
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/getThemeManifest.js
|
||||
function getThemeManifest(app2, themeID) {
|
||||
const manifests = app2.customCss.themes;
|
||||
function getThemeManifest(app, themeID) {
|
||||
const manifests = app.customCss.themes;
|
||||
if (!Object.prototype.hasOwnProperty.call(manifests, themeID)) {
|
||||
return null;
|
||||
}
|
||||
@@ -58,22 +58,22 @@ function getThemeManifest(app2, themeID) {
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/isThemeInstalled.js
|
||||
function isThemeInstalled(app2, themeID) {
|
||||
return getThemeManifest(app2, themeID) !== null;
|
||||
function isThemeInstalled(app, themeID) {
|
||||
return getThemeManifest(app, themeID) !== null;
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/getThemeStyleElement.js
|
||||
function getThemeStyleElement(app2) {
|
||||
const currentTheme = getCurrentThemeID(app2);
|
||||
if (currentTheme == null || !isThemeInstalled(app2, currentTheme)) {
|
||||
function getThemeStyleElement(app) {
|
||||
const currentTheme = getCurrentThemeID(app);
|
||||
if (currentTheme == null || !isThemeInstalled(app, currentTheme)) {
|
||||
return null;
|
||||
}
|
||||
return app2.customCss.styleEl;
|
||||
return app.customCss.styleEl;
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/isSnippetEnabled.js
|
||||
function isSnippetEnabled(app2, snippetID) {
|
||||
return app2.customCss.enabledSnippets.has(snippetID);
|
||||
function isSnippetEnabled(app, snippetID) {
|
||||
return app.customCss.enabledSnippets.has(snippetID);
|
||||
}
|
||||
|
||||
// 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());
|
||||
});
|
||||
};
|
||||
function fetchObsidianStyleSheet(app2) {
|
||||
function fetchObsidianStyleSheet(app) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let errors = [];
|
||||
const orElse = (cb) => (ex) => {
|
||||
@@ -198,18 +198,18 @@ function viaDom(path) {
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/getInstalledSnippetIDs.js
|
||||
function getInstalledSnippetIDs(app2) {
|
||||
return app2.customCss.snippets;
|
||||
function getInstalledSnippetIDs(app) {
|
||||
return app.customCss.snippets;
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/getSnippetStyleElements.js
|
||||
function getSnippetStyleElements(app2) {
|
||||
const styleManager = app2.customCss;
|
||||
const snippets = getInstalledSnippetIDs(app2);
|
||||
function getSnippetStyleElements(app) {
|
||||
const styleManager = app.customCss;
|
||||
const snippets = getInstalledSnippetIDs(app);
|
||||
const map = /* @__PURE__ */ new Map();
|
||||
for (let i = 0, elI = 0; i < snippets.length; i++) {
|
||||
const snippetID = styleManager.snippets[i];
|
||||
if (isSnippetEnabled(app2, snippetID)) {
|
||||
if (isSnippetEnabled(app, snippetID)) {
|
||||
map.set(snippetID, styleManager.extraStyleEls[elI]);
|
||||
elI++;
|
||||
}
|
||||
@@ -218,9 +218,9 @@ function getSnippetStyleElements(app2) {
|
||||
}
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/openPluginSettings.js
|
||||
function openPluginSettings(app2, plugin) {
|
||||
function openPluginSettings(app, plugin) {
|
||||
var _a, _b;
|
||||
const settingManager = app2.setting;
|
||||
const settingManager = app.setting;
|
||||
const pluginId = typeof plugin === "string" ? plugin : plugin.manifest.id;
|
||||
if (((_a = settingManager.activeTab) === null || _a === void 0 ? void 0 : _a.id) !== pluginId) {
|
||||
settingManager.openTabById("");
|
||||
@@ -233,27 +233,27 @@ function openPluginSettings(app2, plugin) {
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/createCustomStyleSheet.js
|
||||
var Counter = Symbol("CustomStylesheet count");
|
||||
function foreachWindow(app2, fn) {
|
||||
fn(app2.workspace.containerEl.doc, true);
|
||||
for (const float of getFloatingWindows(app2)) {
|
||||
function foreachWindow(app, fn) {
|
||||
fn(app.workspace.containerEl.doc, true);
|
||||
for (const float of getFloatingWindows(app)) {
|
||||
fn(float.document, false);
|
||||
}
|
||||
}
|
||||
function createCustomStyleSheet(app2, plugin) {
|
||||
function createCustomStyleSheet(app, plugin) {
|
||||
var _a;
|
||||
let result;
|
||||
const pl = plugin;
|
||||
const plId = plugin.manifest.id;
|
||||
const ssId = ((_a = pl[Counter]) !== null && _a !== void 0 ? _a : pl[Counter] = 0).toString();
|
||||
pl[Counter]++;
|
||||
const styleEl = app2.workspace.containerEl.doc.createElement("style");
|
||||
const styleEl = app.workspace.containerEl.doc.createElement("style");
|
||||
const styleElInFloats = [];
|
||||
styleEl.setAttribute("data-source-plugin", plId);
|
||||
styleEl.setAttribute("data-source-id", ssId);
|
||||
function unapply() {
|
||||
styleElInFloats.splice(0, styleElInFloats.length).forEach((el) => el.remove());
|
||||
styleEl.detach();
|
||||
foreachWindow(app2, (doc) => {
|
||||
foreachWindow(app, (doc) => {
|
||||
for (const styleEl2 of Array.from(doc.head.querySelectorAll("style"))) {
|
||||
if (result.is(styleEl2)) {
|
||||
styleEl2.remove();
|
||||
@@ -263,7 +263,7 @@ function createCustomStyleSheet(app2, plugin) {
|
||||
}
|
||||
function reapply() {
|
||||
unapply();
|
||||
foreachWindow(app2, (doc, isFloating) => {
|
||||
foreachWindow(app, (doc, isFloating) => {
|
||||
let lastEl = doc.head.lastElementChild;
|
||||
for (let el = lastEl; el != null; el = el.previousElementSibling) {
|
||||
lastEl = el;
|
||||
@@ -280,12 +280,12 @@ function createCustomStyleSheet(app2, plugin) {
|
||||
lastEl === null || lastEl === void 0 ? void 0 : lastEl.insertAdjacentElement("afterend", styleElClone);
|
||||
});
|
||||
}
|
||||
app2.workspace.on("css-change", reapply);
|
||||
app2.workspace.on("layout-change", reapply);
|
||||
app.workspace.on("css-change", reapply);
|
||||
app.workspace.on("layout-change", reapply);
|
||||
result = Object.freeze(Object.defineProperties(() => {
|
||||
unapply();
|
||||
app2.workspace.off("css-change", reapply);
|
||||
app2.workspace.off("layout-change", reapply);
|
||||
app.workspace.off("css-change", reapply);
|
||||
app.workspace.off("layout-change", reapply);
|
||||
}, {
|
||||
css: {
|
||||
enumerable: true,
|
||||
@@ -351,17 +351,18 @@ var import_obsidian4 = require("obsidian");
|
||||
var import_obsidian6 = require("obsidian");
|
||||
|
||||
// node_modules/obsidian-extra/dist/esm/functions/closeSettings.js
|
||||
function closeSettings(app2) {
|
||||
const settingManager = app2.setting;
|
||||
function closeSettings(app) {
|
||||
const settingManager = app.setting;
|
||||
settingManager.close();
|
||||
}
|
||||
|
||||
// src/ui/pane-layers.ts
|
||||
var import_obsidian5 = require("obsidian");
|
||||
var UIPaneLayers = class {
|
||||
constructor(options) {
|
||||
constructor(root, options) {
|
||||
this.layers = [];
|
||||
this.closeParent = options.close;
|
||||
this.root = root;
|
||||
this.navInstance = {
|
||||
open: (pane) => this.push(pane),
|
||||
close: () => this.pop(),
|
||||
@@ -501,6 +502,11 @@ var UIPaneLayers = class {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
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.createDefault = createDefault;
|
||||
this.initLayer = null;
|
||||
this.layers = new UIPaneLayers({
|
||||
this.layers = new UIPaneLayers(plugin, {
|
||||
close: () => closeSettings(this.app)
|
||||
});
|
||||
}
|
||||
@@ -540,12 +546,15 @@ var UISettingTab = class extends import_obsidian6.PluginSettingTab {
|
||||
cls: "calloutmanager-setting-tab-viewport vertical-tab-content"
|
||||
});
|
||||
layers.containerEl = layers.scrollEl.createDiv({ cls: "calloutmanager-setting-tab-content" });
|
||||
controlsEl.createDiv({ cls: "modal-close-button" }, (closeButtonEl) => {
|
||||
closeButtonEl.addEventListener("click", (ev) => {
|
||||
if (!ev.isTrusted)
|
||||
return;
|
||||
closeSettings(this.app);
|
||||
});
|
||||
const closeBtn = new import_obsidian6.ButtonComponent(controlsEl);
|
||||
closeBtn.setIcon("lucide-x");
|
||||
closeBtn.buttonEl.classList.add("modal-close-button");
|
||||
closeBtn.buttonEl.classList.add("mod-raised");
|
||||
closeBtn.buttonEl.classList.add("clickable-icon");
|
||||
closeBtn.onClick((ev) => {
|
||||
if (!ev.isTrusted)
|
||||
return;
|
||||
closeSettings(this.app);
|
||||
});
|
||||
layers.clear();
|
||||
const initLayer = this.initLayer ?? this.createDefault();
|
||||
@@ -1410,12 +1419,14 @@ var SHADOW_DOM_RESET_STYLES = `
|
||||
/* Use transparent background color. */
|
||||
body {
|
||||
background-color: transparent !important;
|
||||
contain: none;
|
||||
}
|
||||
`;
|
||||
|
||||
// src/callout-resolver.ts
|
||||
var CalloutResolver = class {
|
||||
constructor() {
|
||||
constructor(app) {
|
||||
this.obsidianApp = app;
|
||||
this.hostElement = document.body.createDiv({
|
||||
cls: "calloutmanager-callout-resolver"
|
||||
});
|
||||
@@ -1435,7 +1446,7 @@ var CalloutResolver = class {
|
||||
* @param styles The new style elements to use.
|
||||
*/
|
||||
reloadStyles() {
|
||||
this.calloutPreview.setColorScheme(getCurrentThemeID2(app));
|
||||
this.calloutPreview.setColorScheme(getCurrentThemeID2(this.obsidianApp));
|
||||
this.calloutPreview.updateStyles();
|
||||
this.calloutPreview.removeStyles((el) => el.getAttribute("data-callout-manager") === "style-overrides");
|
||||
}
|
||||
@@ -1478,11 +1489,11 @@ var CalloutResolver = class {
|
||||
};
|
||||
|
||||
// src/callout-settings.ts
|
||||
function currentCalloutEnvironment(app2) {
|
||||
const theme = getCurrentThemeID(app2) ?? "<default>";
|
||||
function currentCalloutEnvironment(app) {
|
||||
const theme = getCurrentThemeID(app) ?? "<default>";
|
||||
return {
|
||||
theme,
|
||||
colorScheme: getCurrentThemeID2(app2)
|
||||
colorScheme: getCurrentThemeID2(app)
|
||||
};
|
||||
}
|
||||
function calloutSettingsToCSS(id, settings, environment) {
|
||||
@@ -1578,8 +1589,8 @@ function getCalloutsFromCSS(css) {
|
||||
|
||||
// src/css-watcher.ts
|
||||
var StylesheetWatcher = class {
|
||||
constructor(app2) {
|
||||
this.app = app2;
|
||||
constructor(app) {
|
||||
this.app = app;
|
||||
this.listeners = /* @__PURE__ */ new Map();
|
||||
this.cachedSnippets = /* @__PURE__ */ new Map();
|
||||
this.cachedObsidian = null;
|
||||
@@ -3309,7 +3320,7 @@ var MiscEditor = class {
|
||||
};
|
||||
|
||||
// src/panes/edit-callout-pane/section-info.ts
|
||||
function renderInfo(app2, callout, containerEl) {
|
||||
function renderInfo(app, callout, containerEl) {
|
||||
const frag = document.createDocumentFragment();
|
||||
const contentEl = frag.createDiv({ cls: "calloutmanager-edit-callout-section" });
|
||||
contentEl.createEl("h2", { text: "About this Callout" });
|
||||
@@ -3327,7 +3338,7 @@ function renderInfo(app2, callout, containerEl) {
|
||||
return;
|
||||
}
|
||||
el.appendText(". It was added to Obsidian by the ");
|
||||
appendSourceInfo(app2, el, callout.sources[0]);
|
||||
appendSourceInfo(app, el, callout.sources[0]);
|
||||
el.appendText(".");
|
||||
return;
|
||||
}
|
||||
@@ -3336,7 +3347,7 @@ function renderInfo(app2, callout, containerEl) {
|
||||
for (const source of callout.sources) {
|
||||
const itemEl = sources.createEl("li");
|
||||
itemEl.appendText("The ");
|
||||
appendSourceInfo(app2, itemEl, source);
|
||||
appendSourceInfo(app, itemEl, source);
|
||||
itemEl.appendText(".");
|
||||
}
|
||||
});
|
||||
@@ -3364,7 +3375,7 @@ function appendColorInfo(el, callout) {
|
||||
(colorEl) => colorEl.style.setProperty("--resolved-callout-color", callout.color)
|
||||
);
|
||||
}
|
||||
function appendSourceInfo(app2, el, source) {
|
||||
function appendSourceInfo(app, el, source) {
|
||||
switch (source.type) {
|
||||
case "builtin":
|
||||
el.appendText("built-in callouts");
|
||||
@@ -3381,7 +3392,7 @@ function appendSourceInfo(app2, el, source) {
|
||||
return true;
|
||||
case "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 });
|
||||
return true;
|
||||
}
|
||||
@@ -3717,7 +3728,7 @@ var ManageCalloutsPane = class extends UIPane {
|
||||
if (action === "edit") {
|
||||
this.nav.open(new EditCalloutPane(this.plugin, id, this.viewOnly));
|
||||
} else if (action === "insert") {
|
||||
const view = app.workspace.getActiveViewOfType(import_obsidian22.MarkdownView);
|
||||
const view = this.plugin.app.workspace.getActiveViewOfType(import_obsidian22.MarkdownView);
|
||||
if (view) {
|
||||
const cursor = view.editor.getCursor();
|
||||
view.editor.replaceRange(
|
||||
@@ -3726,7 +3737,7 @@ var ManageCalloutsPane = class extends UIPane {
|
||||
cursor
|
||||
);
|
||||
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");
|
||||
|
||||
// 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
|
||||
> 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
|
||||
function getSections() {
|
||||
function getSections(parent) {
|
||||
const frag = document.createDocumentFragment();
|
||||
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();
|
||||
let heading = null;
|
||||
let sectionContainer = frag.createEl("details");
|
||||
@@ -3937,7 +3961,7 @@ var ChangelogPane = class extends UIPane {
|
||||
super();
|
||||
this.title = "Changelog";
|
||||
this.plugin = plugin;
|
||||
const sections = getSections();
|
||||
const sections = getSections(plugin);
|
||||
const frag = document.createDocumentFragment();
|
||||
this.changelogEl = frag.createDiv({ cls: "calloutmanager-changelog" });
|
||||
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) => {
|
||||
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) {
|
||||
const desc = document.createDocumentFragment();
|
||||
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).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).setName("Reset Callout Settings").setDesc("Reset all the changes you made to callouts.").addButton(
|
||||
withConfirm((btn) => {
|
||||
@@ -4098,7 +4135,7 @@ var CalloutManagerPlugin = class extends import_obsidian25.Plugin {
|
||||
await this.loadSettings();
|
||||
await this.saveSettings();
|
||||
const { settings } = this;
|
||||
this.calloutResolver = new CalloutResolver();
|
||||
this.calloutResolver = new CalloutResolver(this.app);
|
||||
this.register(() => this.calloutResolver.unload());
|
||||
this.callouts = new CalloutCollection((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);
|
||||
}
|
||||
};
|
||||
|
||||
/* nosourcemap */
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"id": "callout-manager",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"description": "Easily create and customize callouts.",
|
||||
"author": "eth-p",
|
||||
"authorUrl": "https://github.com/eth-p",
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+9
-9
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"id": "cmdr",
|
||||
"name": "Commander",
|
||||
"version": "0.5.4",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
|
||||
"author": "jsmorabito & phibr0",
|
||||
"authorUrl": "https://github.com/phibr0",
|
||||
"fundingUrl": "https://ko-fi.com/phibr0",
|
||||
"isDesktopOnly": false
|
||||
"id": "cmdr",
|
||||
"name": "Commander",
|
||||
"version": "0.5.5",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
|
||||
"author": "jsmorabito & phibr0",
|
||||
"authorUrl": "https://github.com/phibr0",
|
||||
"fundingUrl": "https://ko-fi.com/phibr0",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+9
-24
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "datacore",
|
||||
"name": "Datacore",
|
||||
"version": "0.1.28",
|
||||
"version": "0.1.29",
|
||||
"minAppVersion": "1.4.11",
|
||||
"description": "Reactive query engine backed by Javascript or a custom query language.",
|
||||
"author": "Michael Brenan",
|
||||
|
||||
+1
File diff suppressed because one or more lines are too long
+48
-48
File diff suppressed because one or more lines are too long
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"id": "external-file-embed-and-link",
|
||||
"name": "External File Embed and Link",
|
||||
"version": "1.5.6",
|
||||
"version": "1.5.9",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Embed and link local files outside your vault with relative paths for cross-device and multi-platform compatibility.",
|
||||
"author": "oylbin",
|
||||
"authorUrl": "https://github.com/oylbin",
|
||||
"fundingUrl": "https://buymeacoffee.com/oylbin",
|
||||
"isDesktopOnly": true
|
||||
}
|
||||
}
|
||||
Vendored
+13
-15
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "janitor",
|
||||
"name": "Janitor",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.3",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Performs cleanup tasks on the Obsidian vault",
|
||||
"author": "Gabriele Cannata",
|
||||
|
||||
Vendored
+72
-6
@@ -47,21 +47,78 @@ If your plugin does not need CSS, delete this file.
|
||||
.janitor-file .openFileIcon {
|
||||
right: 0px;
|
||||
position: absolute;
|
||||
/* cursor: pointer; */
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.janitor-file label {
|
||||
width: 100%;
|
||||
/* cursor: pointer; */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.janitor-file span {
|
||||
.janitor-file-name {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
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;
|
||||
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 {
|
||||
@@ -72,9 +129,18 @@ If your plugin does not need CSS, delete this file.
|
||||
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 {
|
||||
overflow-y: auto;
|
||||
max-height:250px;
|
||||
max-height: 450px;
|
||||
}
|
||||
|
||||
.janitor-files-wrapper {
|
||||
|
||||
+254
-254
File diff suppressed because one or more lines are too long
+1
-1
@@ -6,5 +6,5 @@
|
||||
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||
"version": "2.38.0"
|
||||
"version": "2.38.2"
|
||||
}
|
||||
|
||||
+141
-127
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "7.23.1",
|
||||
"minAppVersion": "1.4.0",
|
||||
"version": "8.0.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.",
|
||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
File diff suppressed because one or more lines are too long
+3
-5
@@ -3,15 +3,13 @@
|
||||
"name": "Advanced Tables",
|
||||
"author": "Tony Grosinger",
|
||||
"authorUrl": "https://grosinger.net",
|
||||
"description": "Improved table navigation, formatting, manipulation, and formulas",
|
||||
"description": "Improved table navigation, formatting, manipulation, and formulas.",
|
||||
"isDesktopOnly": false,
|
||||
"minAppVersion": "1.0.0",
|
||||
"version": "0.22.1",
|
||||
"js": "main.js",
|
||||
"version": "0.22.2",
|
||||
"fundingUrl": {
|
||||
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
|
||||
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
||||
"Paypal": "https://paypal.me/tgrosinger"
|
||||
},
|
||||
"donation": "https://buymeacoffee.com/tgrosinger"
|
||||
}
|
||||
}
|
||||
|
||||
+12908
-10736
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "task-list-kanban",
|
||||
"name": "Task List Kanban",
|
||||
"version": "1.8.0",
|
||||
"version": "1.11.0",
|
||||
"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.",
|
||||
"author": "Chris Kerr, Erika Rice Scherpelz",
|
||||
"authorUrl": "https://github.com/erikars",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
}
|
||||
|
||||
+429
@@ -19,3 +19,432 @@ If your plugin does not need CSS, delete this file.
|
||||
.setting-item.column .setting-item-control > input {
|
||||
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%;
|
||||
}
|
||||
}
|
||||
|
||||
+30
-22
File diff suppressed because one or more lines are too long
+8
-2
@@ -1,11 +1,17 @@
|
||||
{
|
||||
"id": "templater-obsidian",
|
||||
"name": "Templater",
|
||||
"version": "2.18.1",
|
||||
"version": "2.20.3",
|
||||
"description": "Create and use templates",
|
||||
"minAppVersion": "1.5.0",
|
||||
"minAppVersion": "1.12.2",
|
||||
"author": "SilentVoid",
|
||||
"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/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user