obsidian-dev-utils 88.3.0 → 88.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/integration-test-plugin/main.js +38046 -0
- package/dist/{dev → integration-test-plugin}/manifest.json +0 -1
- package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +13 -2
- package/dist/lib/cjs/__merged.cjs +25 -1
- package/dist/lib/cjs/__merged.d.cts +7 -3
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/html-element.cjs +7 -1
- package/dist/lib/cjs/html-element.d.cts +12 -0
- package/dist/lib/cjs/integration-test-setup.cjs +111 -0
- package/dist/lib/cjs/integration-test-setup.d.cts +33 -0
- package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +145 -0
- package/dist/lib/cjs/integration-test-vitest-global-setup.d.cts +39 -0
- package/dist/lib/cjs/obsidian/attachment-path.cjs +10 -5
- package/dist/lib/cjs/obsidian/attachment-path.d.cts +11 -1
- package/dist/lib/cjs/obsidian/components/index.cjs +4 -1
- package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/components/pointer-position-component.cjs +159 -0
- package/dist/lib/cjs/obsidian/components/pointer-position-component.d.cts +29 -0
- package/dist/lib/cjs/obsidian/css-class.cjs +2 -1
- package/dist/lib/cjs/obsidian/css-class.d.cts +4 -0
- package/dist/lib/cjs/obsidian/file-system.cjs +20 -1
- package/dist/lib/cjs/obsidian/file-system.d.cts +25 -0
- package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +4 -1
- package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +3 -0
- package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +3 -0
- package/dist/lib/cjs/obsidian/index.cjs +4 -1
- package/dist/lib/cjs/obsidian/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/path-settings.cjs +19 -5
- package/dist/lib/cjs/obsidian/path-settings.d.cts +13 -1
- package/dist/lib/cjs/obsidian/popovers/field-popover.cjs +175 -0
- package/dist/lib/cjs/obsidian/popovers/field-popover.d.cts +75 -0
- package/dist/lib/cjs/obsidian/popovers/index.cjs +152 -0
- package/dist/lib/cjs/obsidian/popovers/index.d.cts +4 -0
- package/dist/lib/cjs/obsidian/popovers/popover-anchor.cjs +178 -0
- package/dist/lib/cjs/obsidian/popovers/popover-anchor.d.cts +67 -0
- package/dist/lib/cjs/obsidian/popovers/popover.cjs +221 -0
- package/dist/lib/cjs/obsidian/popovers/popover.d.cts +78 -0
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +3 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +4 -0
- package/dist/lib/cjs/script-utils/test-runners/index.cjs +4 -1
- package/dist/lib/cjs/script-utils/test-runners/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/test-runners/integration-test-plugin.cjs +197 -0
- package/dist/lib/cjs/script-utils/test-runners/integration-test-plugin.d.cts +44 -0
- package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +13 -2
- package/dist/lib/esm/__merged.d.mts +7 -3
- package/dist/lib/esm/__merged.mjs +26 -2
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/html-element.d.mts +12 -0
- package/dist/lib/esm/html-element.mjs +6 -1
- package/dist/lib/esm/integration-test-setup.d.mts +33 -0
- package/dist/lib/esm/integration-test-setup.mjs +26 -0
- package/dist/lib/esm/integration-test-vitest-global-setup.d.mts +39 -0
- package/dist/lib/esm/integration-test-vitest-global-setup.mjs +39 -0
- package/dist/lib/esm/obsidian/attachment-path.d.mts +11 -1
- package/dist/lib/esm/obsidian/attachment-path.mjs +11 -5
- package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/components/index.mjs +3 -1
- package/dist/lib/esm/obsidian/components/pointer-position-component.d.mts +29 -0
- package/dist/lib/esm/obsidian/components/pointer-position-component.mjs +51 -0
- package/dist/lib/esm/obsidian/css-class.d.mts +4 -0
- package/dist/lib/esm/obsidian/css-class.mjs +2 -1
- package/dist/lib/esm/obsidian/file-system.d.mts +25 -0
- package/dist/lib/esm/obsidian/file-system.mjs +20 -1
- package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +3 -0
- package/dist/lib/esm/obsidian/i18n/locales/en.mjs +4 -1
- package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +3 -0
- package/dist/lib/esm/obsidian/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/index.mjs +3 -1
- package/dist/lib/esm/obsidian/path-settings.d.mts +13 -1
- package/dist/lib/esm/obsidian/path-settings.mjs +18 -4
- package/dist/lib/esm/obsidian/popovers/field-popover.d.mts +75 -0
- package/dist/lib/esm/obsidian/popovers/field-popover.mjs +70 -0
- package/dist/lib/esm/obsidian/popovers/index.d.mts +4 -0
- package/dist/lib/esm/obsidian/popovers/index.mjs +32 -0
- package/dist/lib/esm/obsidian/popovers/popover-anchor.d.mts +67 -0
- package/dist/lib/esm/obsidian/popovers/popover-anchor.mjs +67 -0
- package/dist/lib/esm/obsidian/popovers/popover.d.mts +78 -0
- package/dist/lib/esm/obsidian/popovers/popover.mjs +113 -0
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +4 -0
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
- package/dist/lib/esm/script-utils/test-runners/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/test-runners/index.mjs +3 -1
- package/dist/lib/esm/script-utils/test-runners/integration-test-plugin.d.mts +44 -0
- package/dist/lib/esm/script-utils/test-runners/integration-test-plugin.mjs +77 -0
- package/dist/styles.css +25 -1
- package/obsidian/components/pointer-position-component/package.json +6 -0
- package/obsidian/popovers/field-popover/package.json +6 -0
- package/obsidian/popovers/index/package.json +6 -0
- package/obsidian/popovers/package.json +6 -0
- package/obsidian/popovers/popover/package.json +6 -0
- package/obsidian/popovers/popover-anchor/package.json +6 -0
- package/package.json +53 -17
- package/patches/brace-expansion-callable/package.json +8 -0
- package/script-utils/test-runners/integration-test-plugin/package.json +6 -0
- package/dist/dev/main.js +0 -37772
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/// <reference path="../../library.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Wires the shipped integration-test harness plugin into a consumer plugin's integration tests, so every
|
|
6
|
+
* library helper is reachable as `lib.<helper>` inside an `evalInObsidian` closure.
|
|
7
|
+
*
|
|
8
|
+
* Two halves, and both must be wired or `lib.<helper>` fails:
|
|
9
|
+
*
|
|
10
|
+
* - {@link getIntegrationTestPluginPopulate} puts the harness plugin's binaries in the test vault. The
|
|
11
|
+
* harness plugin is what publishes the library on `window.__obsidianDevUtilsModule`; in this repo's own
|
|
12
|
+
* suite it IS the plugin-under-test, but in a consumer's suite the plugin-under-test is the consumer's own
|
|
13
|
+
* plugin, so the harness has to ride along as a second, test-only community plugin — seeded here, and
|
|
14
|
+
* turned on by `obsidian-integration-testing`'s `createSetup({ enableCommunityPlugins })`.
|
|
15
|
+
* - {@link registerIntegrationTestLibResolver} registers the renderer-side resolver that reads that global.
|
|
16
|
+
*
|
|
17
|
+
* `obsidian-dev-utils/integration-test-vitest-global-setup` and
|
|
18
|
+
* `obsidian-dev-utils/integration-test-setup` are the turnkey endpoints that call these for you.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* The id of the integration-test harness plugin — the folder name it is seeded into, and the value to pass
|
|
22
|
+
* to `createSetup({ enableCommunityPlugins })` so the harness enables it after the plugin-under-test.
|
|
23
|
+
*/
|
|
24
|
+
export declare const OBSIDIAN_DEV_UTILS_INTEGRATION_TEST_PLUGIN_ID = "obsidian-dev-utils-integration-test";
|
|
25
|
+
/**
|
|
26
|
+
* Builds the vault-relative file map that installs the shipped integration-test harness plugin, ready to
|
|
27
|
+
* hand to a global setup's `populate` (or to merge into a larger map the consumer already builds).
|
|
28
|
+
*
|
|
29
|
+
* The result is a `Record<string, Uint8Array>`, which is assignable to `obsidian-integration-testing`'s
|
|
30
|
+
* `PopulateFilesParams` — so it composes with `buildDemoVaultPopulate` and friends.
|
|
31
|
+
*
|
|
32
|
+
* @returns The map of vault-relative paths to file contents.
|
|
33
|
+
* @throws If the harness plugin was not built into this package — i.e. `npm run build` never ran.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getIntegrationTestPluginPopulate(): Record<string, Uint8Array>;
|
|
36
|
+
/**
|
|
37
|
+
* Registers the renderer-side resolver that merges the whole library into the `lib` argument of every
|
|
38
|
+
* `evalInObsidian` callback, reading it from the global the harness plugin publishes.
|
|
39
|
+
*
|
|
40
|
+
* Call once per test worker — the published `obsidian-dev-utils/integration-test-setup` endpoint does it
|
|
41
|
+
* for you when listed in `setupFiles`. Registration is idempotent (the harness dedupes resolvers by source
|
|
42
|
+
* text), so calling it more than once is safe.
|
|
43
|
+
*/
|
|
44
|
+
export declare function registerIntegrationTestLibResolver(): void;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initEsm() {
|
|
7
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
8
|
+
if (globalThis.process) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const browserProcess = {
|
|
13
|
+
browser: true,
|
|
14
|
+
cwd() {
|
|
15
|
+
return '/';
|
|
16
|
+
},
|
|
17
|
+
env: {},
|
|
18
|
+
platform: 'android'
|
|
19
|
+
};
|
|
20
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
21
|
+
globalThis.process = browserProcess;
|
|
22
|
+
})();
|
|
23
|
+
|
|
24
|
+
import { readFileSync } from "node:fs";
|
|
25
|
+
import { registerLibResolver } from "obsidian-integration-testing";
|
|
26
|
+
import { ObsidianPluginRepoPaths } from "../../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
|
|
27
|
+
import {
|
|
28
|
+
getFolderName,
|
|
29
|
+
join
|
|
30
|
+
} from "../../path.mjs";
|
|
31
|
+
import { ObsidianDevUtilsRepoPaths } from "../obsidian-dev-utils-repo-paths.mjs";
|
|
32
|
+
import { getRootFolder } from "../root.mjs";
|
|
33
|
+
const OBSIDIAN_DEV_UTILS_INTEGRATION_TEST_PLUGIN_ID = "obsidian-dev-utils-integration-test";
|
|
34
|
+
function getIntegrationTestPluginPopulate() {
|
|
35
|
+
const packageFolder = getRootFolder(getFolderName(import.meta.url));
|
|
36
|
+
if (!packageFolder) {
|
|
37
|
+
throw new Error("Could not resolve the obsidian-dev-utils package folder to seed the integration-test harness plugin.");
|
|
38
|
+
}
|
|
39
|
+
const pluginSourceFolder = join(packageFolder, ObsidianDevUtilsRepoPaths.DistIntegrationTestPlugin);
|
|
40
|
+
const pluginVaultFolder = join(
|
|
41
|
+
ObsidianPluginRepoPaths.DotObsidian,
|
|
42
|
+
ObsidianPluginRepoPaths.Plugins,
|
|
43
|
+
OBSIDIAN_DEV_UTILS_INTEGRATION_TEST_PLUGIN_ID
|
|
44
|
+
);
|
|
45
|
+
const populate = {};
|
|
46
|
+
for (const fileName of [ObsidianPluginRepoPaths.MainJs, ObsidianPluginRepoPaths.ManifestJson]) {
|
|
47
|
+
const sourcePath = join(pluginSourceFolder, fileName);
|
|
48
|
+
let content;
|
|
49
|
+
try {
|
|
50
|
+
content = readFileSync(sourcePath);
|
|
51
|
+
} catch (error) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
`Could not read ${sourcePath}. The integration-test harness plugin is missing from the installed obsidian-dev-utils package \u2014 run \`npm run build\` in obsidian-dev-utils, or reinstall it.`,
|
|
54
|
+
{ cause: error }
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
populate[join(pluginVaultFolder, fileName)] = content;
|
|
58
|
+
}
|
|
59
|
+
return populate;
|
|
60
|
+
}
|
|
61
|
+
function registerIntegrationTestLibResolver() {
|
|
62
|
+
registerLibResolver(() => {
|
|
63
|
+
const obsidianDevUtilsModule = window.__obsidianDevUtilsModule;
|
|
64
|
+
if (!obsidianDevUtilsModule) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
"The obsidian-dev-utils module is not exposed on `window`. Is the obsidian-dev-utils integration-test harness plugin installed and enabled in the test vault? See `obsidian-dev-utils/integration-test-vitest-global-setup`."
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
return obsidianDevUtilsModule.__merged;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
export {
|
|
73
|
+
OBSIDIAN_DEV_UTILS_INTEGRATION_TEST_PLUGIN_ID,
|
|
74
|
+
getIntegrationTestPluginPopulate,
|
|
75
|
+
registerIntegrationTestLibResolver
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy90ZXN0LXJ1bm5lcnMvaW50ZWdyYXRpb24tdGVzdC1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXaXJlcyB0aGUgc2hpcHBlZCBpbnRlZ3JhdGlvbi10ZXN0IGhhcm5lc3MgcGx1Z2luIGludG8gYSBjb25zdW1lciBwbHVnaW4ncyBpbnRlZ3JhdGlvbiB0ZXN0cywgc28gZXZlcnlcbiAqIGxpYnJhcnkgaGVscGVyIGlzIHJlYWNoYWJsZSBhcyBgbGliLjxoZWxwZXI+YCBpbnNpZGUgYW4gYGV2YWxJbk9ic2lkaWFuYCBjbG9zdXJlLlxuICpcbiAqIFR3byBoYWx2ZXMsIGFuZCBib3RoIG11c3QgYmUgd2lyZWQgb3IgYGxpYi48aGVscGVyPmAgZmFpbHM6XG4gKlxuICogLSB7QGxpbmsgZ2V0SW50ZWdyYXRpb25UZXN0UGx1Z2luUG9wdWxhdGV9IHB1dHMgdGhlIGhhcm5lc3MgcGx1Z2luJ3MgYmluYXJpZXMgaW4gdGhlIHRlc3QgdmF1bHQuIFRoZVxuICogICBoYXJuZXNzIHBsdWdpbiBpcyB3aGF0IHB1Ymxpc2hlcyB0aGUgbGlicmFyeSBvbiBgd2luZG93Ll9fb2JzaWRpYW5EZXZVdGlsc01vZHVsZWA7IGluIHRoaXMgcmVwbydzIG93blxuICogICBzdWl0ZSBpdCBJUyB0aGUgcGx1Z2luLXVuZGVyLXRlc3QsIGJ1dCBpbiBhIGNvbnN1bWVyJ3Mgc3VpdGUgdGhlIHBsdWdpbi11bmRlci10ZXN0IGlzIHRoZSBjb25zdW1lcidzIG93blxuICogICBwbHVnaW4sIHNvIHRoZSBoYXJuZXNzIGhhcyB0byByaWRlIGFsb25nIGFzIGEgc2Vjb25kLCB0ZXN0LW9ubHkgY29tbXVuaXR5IHBsdWdpbiBcdTIwMTQgc2VlZGVkIGhlcmUsIGFuZFxuICogICB0dXJuZWQgb24gYnkgYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgJ3MgYGNyZWF0ZVNldHVwKHsgZW5hYmxlQ29tbXVuaXR5UGx1Z2lucyB9KWAuXG4gKiAtIHtAbGluayByZWdpc3RlckludGVncmF0aW9uVGVzdExpYlJlc29sdmVyfSByZWdpc3RlcnMgdGhlIHJlbmRlcmVyLXNpZGUgcmVzb2x2ZXIgdGhhdCByZWFkcyB0aGF0IGdsb2JhbC5cbiAqXG4gKiBgb2JzaWRpYW4tZGV2LXV0aWxzL2ludGVncmF0aW9uLXRlc3Qtdml0ZXN0LWdsb2JhbC1zZXR1cGAgYW5kXG4gKiBgb2JzaWRpYW4tZGV2LXV0aWxzL2ludGVncmF0aW9uLXRlc3Qtc2V0dXBgIGFyZSB0aGUgdHVybmtleSBlbmRwb2ludHMgdGhhdCBjYWxsIHRoZXNlIGZvciB5b3UuXG4gKi9cblxuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyByZWdpc3RlckxpYlJlc29sdmVyIH0gZnJvbSAnb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZyc7XG5cbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIFRoZSBpZCBvZiB0aGUgaW50ZWdyYXRpb24tdGVzdCBoYXJuZXNzIHBsdWdpbiBcdTIwMTQgdGhlIGZvbGRlciBuYW1lIGl0IGlzIHNlZWRlZCBpbnRvLCBhbmQgdGhlIHZhbHVlIHRvIHBhc3NcbiAqIHRvIGBjcmVhdGVTZXR1cCh7IGVuYWJsZUNvbW11bml0eVBsdWdpbnMgfSlgIHNvIHRoZSBoYXJuZXNzIGVuYWJsZXMgaXQgYWZ0ZXIgdGhlIHBsdWdpbi11bmRlci10ZXN0LlxuICovXG5leHBvcnQgY29uc3QgT0JTSURJQU5fREVWX1VUSUxTX0lOVEVHUkFUSU9OX1RFU1RfUExVR0lOX0lEID0gJ29ic2lkaWFuLWRldi11dGlscy1pbnRlZ3JhdGlvbi10ZXN0JztcblxuLyoqXG4gKiBUaGUgZmxhdCBsaWJyYXJ5IGJhcnJlbCB0aGUgaGFybmVzcyBwbHVnaW4gcHVibGlzaGVzLlxuICovXG5pbnRlcmZhY2UgT2JzaWRpYW5EZXZVdGlsc01vZHVsZSB7XG4gIF9fbWVyZ2VkOiBvYmplY3Q7XG59XG5cbi8qKlxuICogVGhlIHNoYXBlIHRoZSBoYXJuZXNzIHBsdWdpbiBwdWJsaXNoZXMgb24gdGhlIHJlbmRlcmVyJ3MgYHdpbmRvd2AuXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkRldlV0aWxzTW9kdWxlV2luZG93IHtcbiAgX19vYnNpZGlhbkRldlV0aWxzTW9kdWxlOiBPYnNpZGlhbkRldlV0aWxzTW9kdWxlO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgdmF1bHQtcmVsYXRpdmUgZmlsZSBtYXAgdGhhdCBpbnN0YWxscyB0aGUgc2hpcHBlZCBpbnRlZ3JhdGlvbi10ZXN0IGhhcm5lc3MgcGx1Z2luLCByZWFkeSB0b1xuICogaGFuZCB0byBhIGdsb2JhbCBzZXR1cCdzIGBwb3B1bGF0ZWAgKG9yIHRvIG1lcmdlIGludG8gYSBsYXJnZXIgbWFwIHRoZSBjb25zdW1lciBhbHJlYWR5IGJ1aWxkcykuXG4gKlxuICogVGhlIHJlc3VsdCBpcyBhIGBSZWNvcmQ8c3RyaW5nLCBVaW50OEFycmF5PmAsIHdoaWNoIGlzIGFzc2lnbmFibGUgdG8gYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgJ3NcbiAqIGBQb3B1bGF0ZUZpbGVzUGFyYW1zYCBcdTIwMTQgc28gaXQgY29tcG9zZXMgd2l0aCBgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZWAgYW5kIGZyaWVuZHMuXG4gKlxuICogQHJldHVybnMgVGhlIG1hcCBvZiB2YXVsdC1yZWxhdGl2ZSBwYXRocyB0byBmaWxlIGNvbnRlbnRzLlxuICogQHRocm93cyBJZiB0aGUgaGFybmVzcyBwbHVnaW4gd2FzIG5vdCBidWlsdCBpbnRvIHRoaXMgcGFja2FnZSBcdTIwMTQgaS5lLiBgbnBtIHJ1biBidWlsZGAgbmV2ZXIgcmFuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZWdyYXRpb25UZXN0UGx1Z2luUG9wdWxhdGUoKTogUmVjb3JkPHN0cmluZywgVWludDhBcnJheT4ge1xuICBjb25zdCBwYWNrYWdlRm9sZGVyID0gZ2V0Um9vdEZvbGRlcihnZXRGb2xkZXJOYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICBpZiAoIXBhY2thZ2VGb2xkZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCByZXNvbHZlIHRoZSBvYnNpZGlhbi1kZXYtdXRpbHMgcGFja2FnZSBmb2xkZXIgdG8gc2VlZCB0aGUgaW50ZWdyYXRpb24tdGVzdCBoYXJuZXNzIHBsdWdpbi4nKTtcbiAgfVxuXG4gIGNvbnN0IHBsdWdpblNvdXJjZUZvbGRlciA9IGpvaW4ocGFja2FnZUZvbGRlciwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0SW50ZWdyYXRpb25UZXN0UGx1Z2luKTtcbiAgY29uc3QgcGx1Z2luVmF1bHRGb2xkZXIgPSBqb2luKFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRvdE9ic2lkaWFuLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlBsdWdpbnMsXG4gICAgT0JTSURJQU5fREVWX1VUSUxTX0lOVEVHUkFUSU9OX1RFU1RfUExVR0lOX0lEXG4gICk7XG5cbiAgY29uc3QgcG9wdWxhdGU6IFJlY29yZDxzdHJpbmcsIFVpbnQ4QXJyYXk+ID0ge307XG5cbiAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpbkpzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb25dKSB7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IGpvaW4ocGx1Z2luU291cmNlRm9sZGVyLCBmaWxlTmFtZSk7XG4gICAgbGV0IGNvbnRlbnQ6IFVpbnQ4QXJyYXk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnRlbnQgPSByZWFkRmlsZVN5bmMoc291cmNlUGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCByZWFkICR7c291cmNlUGF0aH0uIFRoZSBpbnRlZ3JhdGlvbi10ZXN0IGhhcm5lc3MgcGx1Z2luIGlzIG1pc3NpbmcgZnJvbSB0aGUgaW5zdGFsbGVkIGBcbiAgICAgICAgICArICdvYnNpZGlhbi1kZXYtdXRpbHMgcGFja2FnZSBcdTIwMTQgcnVuIGBucG0gcnVuIGJ1aWxkYCBpbiBvYnNpZGlhbi1kZXYtdXRpbHMsIG9yIHJlaW5zdGFsbCBpdC4nLFxuICAgICAgICB7IGNhdXNlOiBlcnJvciB9XG4gICAgICApO1xuICAgIH1cbiAgICBwb3B1bGF0ZVtqb2luKHBsdWdpblZhdWx0Rm9sZGVyLCBmaWxlTmFtZSldID0gY29udGVudDtcbiAgfVxuXG4gIHJldHVybiBwb3B1bGF0ZTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIHJlbmRlcmVyLXNpZGUgcmVzb2x2ZXIgdGhhdCBtZXJnZXMgdGhlIHdob2xlIGxpYnJhcnkgaW50byB0aGUgYGxpYmAgYXJndW1lbnQgb2YgZXZlcnlcbiAqIGBldmFsSW5PYnNpZGlhbmAgY2FsbGJhY2ssIHJlYWRpbmcgaXQgZnJvbSB0aGUgZ2xvYmFsIHRoZSBoYXJuZXNzIHBsdWdpbiBwdWJsaXNoZXMuXG4gKlxuICogQ2FsbCBvbmNlIHBlciB0ZXN0IHdvcmtlciBcdTIwMTQgdGhlIHB1Ymxpc2hlZCBgb2JzaWRpYW4tZGV2LXV0aWxzL2ludGVncmF0aW9uLXRlc3Qtc2V0dXBgIGVuZHBvaW50IGRvZXMgaXRcbiAqIGZvciB5b3Ugd2hlbiBsaXN0ZWQgaW4gYHNldHVwRmlsZXNgLiBSZWdpc3RyYXRpb24gaXMgaWRlbXBvdGVudCAodGhlIGhhcm5lc3MgZGVkdXBlcyByZXNvbHZlcnMgYnkgc291cmNlXG4gKiB0ZXh0KSwgc28gY2FsbGluZyBpdCBtb3JlIHRoYW4gb25jZSBpcyBzYWZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJJbnRlZ3JhdGlvblRlc3RMaWJSZXNvbHZlcigpOiB2b2lkIHtcbiAgcmVnaXN0ZXJMaWJSZXNvbHZlcigoKTogb2JqZWN0ID0+IHtcbiAgICBjb25zdCBvYnNpZGlhbkRldlV0aWxzTW9kdWxlID0gKHdpbmRvdyBhcyBQYXJ0aWFsPE9ic2lkaWFuRGV2VXRpbHNNb2R1bGVXaW5kb3c+KS5fX29ic2lkaWFuRGV2VXRpbHNNb2R1bGU7XG4gICAgaWYgKCFvYnNpZGlhbkRldlV0aWxzTW9kdWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdUaGUgb2JzaWRpYW4tZGV2LXV0aWxzIG1vZHVsZSBpcyBub3QgZXhwb3NlZCBvbiBgd2luZG93YC4gSXMgdGhlIG9ic2lkaWFuLWRldi11dGlscyBpbnRlZ3JhdGlvbi10ZXN0ICdcbiAgICAgICAgICArICdoYXJuZXNzIHBsdWdpbiBpbnN0YWxsZWQgYW5kIGVuYWJsZWQgaW4gdGhlIHRlc3QgdmF1bHQ/IFNlZSAnXG4gICAgICAgICAgKyAnYG9ic2lkaWFuLWRldi11dGlscy9pbnRlZ3JhdGlvbi10ZXN0LXZpdGVzdC1nbG9iYWwtc2V0dXBgLidcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvYnNpZGlhbkRldlV0aWxzTW9kdWxlLl9fbWVyZ2VkO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsMkJBQTJCO0FBRXBDLFNBQVMsK0JBQStCO0FBQ3hDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxpQ0FBaUM7QUFDMUMsU0FBUyxxQkFBcUI7QUFNdkIsTUFBTSxnREFBZ0Q7QUEwQnRELFNBQVMsbUNBQStEO0FBQzdFLFFBQU0sZ0JBQWdCLGNBQWMsY0FBYyxZQUFZLEdBQUcsQ0FBQztBQUNsRSxNQUFJLENBQUMsZUFBZTtBQUNsQixVQUFNLElBQUksTUFBTSxzR0FBc0c7QUFBQSxFQUN4SDtBQUVBLFFBQU0scUJBQXFCLEtBQUssZUFBZSwwQkFBMEIseUJBQXlCO0FBQ2xHLFFBQU0sb0JBQW9CO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEI7QUFBQSxFQUNGO0FBRUEsUUFBTSxXQUF1QyxDQUFDO0FBRTlDLGFBQVcsWUFBWSxDQUFDLHdCQUF3QixRQUFRLHdCQUF3QixZQUFZLEdBQUc7QUFDN0YsVUFBTSxhQUFhLEtBQUssb0JBQW9CLFFBQVE7QUFDcEQsUUFBSTtBQUNKLFFBQUk7QUFDRixnQkFBVSxhQUFhLFVBQVU7QUFBQSxJQUNuQyxTQUFTLE9BQWdCO0FBQ3ZCLFlBQU0sSUFBSTtBQUFBLFFBQ1Isa0JBQWtCLFVBQVU7QUFBQSxRQUU1QixFQUFFLE9BQU8sTUFBTTtBQUFBLE1BQ2pCO0FBQUEsSUFDRjtBQUNBLGFBQVMsS0FBSyxtQkFBbUIsUUFBUSxDQUFDLElBQUk7QUFBQSxFQUNoRDtBQUVBLFNBQU87QUFDVDtBQVVPLFNBQVMscUNBQTJDO0FBQ3pELHNCQUFvQixNQUFjO0FBQ2hDLFVBQU0seUJBQTBCLE9BQWlEO0FBQ2pGLFFBQUksQ0FBQyx3QkFBd0I7QUFDM0IsWUFBTSxJQUFJO0FBQUEsUUFDUjtBQUFBLE1BR0Y7QUFBQSxJQUNGO0FBQ0EsV0FBTyx1QkFBdUI7QUFBQSxFQUNoQyxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/styles.css
CHANGED
|
@@ -343,6 +343,30 @@ body:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {
|
|
|
343
343
|
outline: 2px solid var(--link-color);
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
+
.obsidian-dev-utils.popover {
|
|
347
|
+
max-width: min(420px, 90vw);
|
|
348
|
+
min-width: 320px;
|
|
349
|
+
padding: var(--size-4-2) var(--size-4-3);
|
|
350
|
+
position: absolute;
|
|
351
|
+
z-index: var(--layer-menu);
|
|
352
|
+
}
|
|
353
|
+
.obsidian-dev-utils.popover .setting-item {
|
|
354
|
+
align-items: center;
|
|
355
|
+
border-top: none;
|
|
356
|
+
gap: var(--size-4-2);
|
|
357
|
+
padding: var(--size-2-1) 0;
|
|
358
|
+
}
|
|
359
|
+
.obsidian-dev-utils.popover .setting-item-info {
|
|
360
|
+
margin-right: 0;
|
|
361
|
+
}
|
|
362
|
+
.obsidian-dev-utils.popover .setting-item-control {
|
|
363
|
+
flex-grow: 1;
|
|
364
|
+
justify-content: flex-end;
|
|
365
|
+
}
|
|
366
|
+
.obsidian-dev-utils.popover input[type=text] {
|
|
367
|
+
width: 100%;
|
|
368
|
+
}
|
|
369
|
+
|
|
346
370
|
.obsidian-dev-utils.prompt-modal .text-box {
|
|
347
371
|
width: 100%;
|
|
348
372
|
}
|
|
@@ -409,4 +433,4 @@ body button:not(.clickable-icon) {
|
|
|
409
433
|
width: max-content;
|
|
410
434
|
}
|
|
411
435
|
|
|
412
|
-
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;ACjDJ;EACE;;;ACFJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACxGJ;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACTN;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;AChCF;EACE;;;ACDF;EACE;;;ACON;EACE;;;ACTE;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-dev-utils%60.%5Cn.obsidian-dev-utils-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-dev-utils-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-dev-utils-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-dev-utils-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20with%20a%5Cn//%20%60body%60-prefixed%20selector%20(specificity%200,1,2)%20so%20it%20wins%20over%20tldraw's%20(0,1,1)%20while%5Cn//%20Staying%20correct%20for%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cnbody%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */
|
|
436
|
+
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;ACjDJ;EACE;;;ACFJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACxGJ;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACTN;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;AChCF;EACE;;;ACCJ;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACON;EACE;;;ACTE;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-dev-utils%60.%5Cn.obsidian-dev-utils-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-dev-utils-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-dev-utils-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-dev-utils-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20with%20a%5Cn//%20%60body%60-prefixed%20selector%20(specificity%200,1,2)%20so%20it%20wins%20over%20tldraw's%20(0,1,1)%20while%5Cn//%20Staying%20correct%20for%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cnbody%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/components/pointer-position-component.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/components/pointer-position-component.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/components/pointer-position-component.d.cts"
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-dev-utils",
|
|
3
|
-
"version": "88.
|
|
3
|
+
"version": "88.5.0",
|
|
4
4
|
"description": "This is the collection of useful functions that you can use for your Obsidian plugin development.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"obsidian"
|
|
@@ -361,6 +361,26 @@
|
|
|
361
361
|
"default": "./dist/lib/cjs/obsidian/plugin/*.cjs"
|
|
362
362
|
}
|
|
363
363
|
},
|
|
364
|
+
"./obsidian/popovers": {
|
|
365
|
+
"import": {
|
|
366
|
+
"types": "./dist/lib/esm/obsidian/popovers/index.d.mts",
|
|
367
|
+
"default": "./dist/lib/esm/obsidian/popovers/index.mjs"
|
|
368
|
+
},
|
|
369
|
+
"require": {
|
|
370
|
+
"types": "./dist/lib/cjs/obsidian/popovers/index.d.cts",
|
|
371
|
+
"default": "./dist/lib/cjs/obsidian/popovers/index.cjs"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
"./obsidian/popovers/*": {
|
|
375
|
+
"import": {
|
|
376
|
+
"types": "./dist/lib/esm/obsidian/popovers/*.d.mts",
|
|
377
|
+
"default": "./dist/lib/esm/obsidian/popovers/*.mjs"
|
|
378
|
+
},
|
|
379
|
+
"require": {
|
|
380
|
+
"types": "./dist/lib/cjs/obsidian/popovers/*.d.cts",
|
|
381
|
+
"default": "./dist/lib/cjs/obsidian/popovers/*.cjs"
|
|
382
|
+
}
|
|
383
|
+
},
|
|
364
384
|
"./obsidian/react": {
|
|
365
385
|
"import": {
|
|
366
386
|
"types": "./dist/lib/esm/obsidian/react/index.d.mts",
|
|
@@ -606,6 +626,7 @@
|
|
|
606
626
|
"CHANGELOG.md",
|
|
607
627
|
"dist/",
|
|
608
628
|
"!dist/*.tgz",
|
|
629
|
+
"!dist/dev/",
|
|
609
630
|
"LICENSE",
|
|
610
631
|
"README.md"
|
|
611
632
|
],
|
|
@@ -618,6 +639,7 @@
|
|
|
618
639
|
"build:generate-exports": "jiti scripts/build-generate-exports.ts",
|
|
619
640
|
"build:generate-index": "jiti scripts/build-generate-index.ts",
|
|
620
641
|
"build:generate-merged": "jiti scripts/build-generate-merged.ts",
|
|
642
|
+
"build:integration-test-plugin": "jiti scripts/build-integration-test-plugin.ts",
|
|
621
643
|
"build:lib": "jiti scripts/build-lib.ts",
|
|
622
644
|
"build:styles": "jiti scripts/build-styles.ts",
|
|
623
645
|
"build:templates": "jiti scripts/build-templates.ts",
|
|
@@ -647,9 +669,16 @@
|
|
|
647
669
|
"@typescript-eslint/eslint-plugin": "$@typescript-eslint/eslint-plugin",
|
|
648
670
|
"@typescript-eslint/parser": "$@typescript-eslint/parser",
|
|
649
671
|
"@vitest/coverage-v8": "$@vitest/coverage-v8",
|
|
672
|
+
"brace-expansion": "file:patches/brace-expansion-callable",
|
|
650
673
|
"eslint": "$eslint",
|
|
651
|
-
"
|
|
652
|
-
"
|
|
674
|
+
"eslint-plugin-import": "npm:eslint-plugin-import-x@^4.17.1",
|
|
675
|
+
"eslint-plugin-json-schema-validator": "^6.3.0",
|
|
676
|
+
"eslint-plugin-n": "$eslint-plugin-n",
|
|
677
|
+
"glob": "^13.0.6",
|
|
678
|
+
"js-yaml": "4.3.0",
|
|
679
|
+
"markdown-it": "^14.3.0",
|
|
680
|
+
"readdir-glob": "^3.0.0",
|
|
681
|
+
"test-exclude": "^8.0.0",
|
|
653
682
|
"typescript": "$typescript"
|
|
654
683
|
},
|
|
655
684
|
"dependencies": {
|
|
@@ -667,7 +696,7 @@
|
|
|
667
696
|
"@types/doctrine": "^0.0.9",
|
|
668
697
|
"@types/eslint": "^9.6.1",
|
|
669
698
|
"@types/luxon": "^3.7.2",
|
|
670
|
-
"@types/node": "^26.1.
|
|
699
|
+
"@types/node": "^26.1.2",
|
|
671
700
|
"@types/parsimmon": "^1.10.9",
|
|
672
701
|
"@types/path-browserify": "^1.0.3",
|
|
673
702
|
"@types/picomatch": "^4.0.3",
|
|
@@ -683,30 +712,30 @@
|
|
|
683
712
|
"cspell": "^10.0.1",
|
|
684
713
|
"debug": "^4.4.3",
|
|
685
714
|
"dprint": "^0.55.2",
|
|
686
|
-
"enhanced-resolve": "^5.24.
|
|
715
|
+
"enhanced-resolve": "^5.24.4",
|
|
687
716
|
"esbuild": "^0.28.1",
|
|
688
717
|
"esbuild-sass-plugin": "^3.7.0",
|
|
689
718
|
"esbuild-svelte": "^0.9.5",
|
|
690
719
|
"eslint": "^10.8.0",
|
|
691
720
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
692
721
|
"eslint-plugin-import-x": "^4.17.1",
|
|
693
|
-
"eslint-plugin-jsdoc": "^63.
|
|
722
|
+
"eslint-plugin-jsdoc": "^63.3.2",
|
|
694
723
|
"eslint-plugin-no-unsanitized": "^4.1.5",
|
|
695
724
|
"eslint-plugin-obsidianmd": "^0.4.1",
|
|
696
725
|
"eslint-plugin-perfectionist": "^5.10.0",
|
|
697
726
|
"eslint-plugin-tsdoc": "^0.5.2",
|
|
698
|
-
"globals": "^17.
|
|
727
|
+
"globals": "^17.8.0",
|
|
699
728
|
"i18next": "^26.3.6",
|
|
700
729
|
"jiti": "^2.7.0",
|
|
701
730
|
"localforage": "^1.10.0",
|
|
702
731
|
"lru-cache": "^11.5.2",
|
|
703
732
|
"markdownlint": "^0.41.1",
|
|
704
|
-
"markdownlint-cli2": "^0.23.
|
|
733
|
+
"markdownlint-cli2": "^0.23.2",
|
|
705
734
|
"markdownlint-rule-relative-links": "^5.1.2",
|
|
706
735
|
"monkey-around": "^3.0.0",
|
|
707
736
|
"obsidian": "^1.13.1",
|
|
708
737
|
"path-browserify": "^1.0.1",
|
|
709
|
-
"postcss": "^8.5.
|
|
738
|
+
"postcss": "^8.5.25",
|
|
710
739
|
"postcss-modules": "^9.0.1",
|
|
711
740
|
"preact": "^10.29.7",
|
|
712
741
|
"react": "^19.2.8",
|
|
@@ -716,15 +745,15 @@
|
|
|
716
745
|
"sass": "^1.102.0",
|
|
717
746
|
"semver": "^7.8.5",
|
|
718
747
|
"shell-quote": "^1.10.0",
|
|
719
|
-
"svelte-check": "^4.7.
|
|
748
|
+
"svelte-check": "^4.7.4",
|
|
720
749
|
"svelte-preprocess": "^6.0.5",
|
|
721
750
|
"type-fest": "^5.8.0",
|
|
722
751
|
"typescript": "6.0.3",
|
|
723
752
|
"typescript-eslint": "^8.65.0"
|
|
724
753
|
},
|
|
725
754
|
"devDependencies": {
|
|
726
|
-
"@astrojs/check": "^0.9.
|
|
727
|
-
"@astrojs/starlight": "^0.41.
|
|
755
|
+
"@astrojs/check": "^0.9.10",
|
|
756
|
+
"@astrojs/starlight": "^0.41.5",
|
|
728
757
|
"@commitlint/cli": "^21.2.1",
|
|
729
758
|
"@commitlint/config-conventional": "^21.2.0",
|
|
730
759
|
"@commitlint/types": "^21.2.0",
|
|
@@ -736,23 +765,22 @@
|
|
|
736
765
|
"@typescript-eslint/rule-tester": "^8.65.0",
|
|
737
766
|
"@vitest/coverage-v8": "^4.1.10",
|
|
738
767
|
"@vitest/runner": "^4.1.10",
|
|
739
|
-
"astro": "^7.1.
|
|
768
|
+
"astro": "^7.1.6",
|
|
740
769
|
"astro-eslint-parser": "^3.0.0",
|
|
741
770
|
"better-typescript-lib": "^2.12.0",
|
|
771
|
+
"brace-expansion-upstream": "npm:brace-expansion@^5.0.8",
|
|
742
772
|
"czg": "^1.13.1",
|
|
743
773
|
"dedent": "^1.7.2",
|
|
744
774
|
"eslint-plugin-astro": "^3.0.1",
|
|
745
|
-
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
746
775
|
"eslint-plugin-n": "^18.2.2",
|
|
747
|
-
"gray-matter": "^4.0.3",
|
|
748
776
|
"hast-util-from-html": "^2.0.3",
|
|
749
777
|
"hastscript": "^9.0.1",
|
|
750
778
|
"husky": "^9.1.7",
|
|
751
|
-
"jsdom": "^
|
|
779
|
+
"jsdom": "^30.0.1",
|
|
752
780
|
"moment": "^2.30.1",
|
|
753
781
|
"nano-staged": "^1.0.2",
|
|
754
782
|
"obsidian-integration-testing": "^9.1.1",
|
|
755
|
-
"obsidian-test-mocks": "^3.
|
|
783
|
+
"obsidian-test-mocks": "^3.9.0",
|
|
756
784
|
"satori": "^0.29.0",
|
|
757
785
|
"starlight-github-alerts": "^0.4.0",
|
|
758
786
|
"starlight-package-managers": "^0.12.0",
|
|
@@ -763,6 +791,14 @@
|
|
|
763
791
|
"vitest": "^4.1.10",
|
|
764
792
|
"yaml": "^2.9.0"
|
|
765
793
|
},
|
|
794
|
+
"peerDependencies": {
|
|
795
|
+
"obsidian-integration-testing": "^9.1.1"
|
|
796
|
+
},
|
|
797
|
+
"peerDependenciesMeta": {
|
|
798
|
+
"obsidian-integration-testing": {
|
|
799
|
+
"optional": true
|
|
800
|
+
}
|
|
801
|
+
},
|
|
766
802
|
"engines": {
|
|
767
803
|
"node": ">=22.0.0"
|
|
768
804
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/script-utils/test-runners/integration-test-plugin.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/script-utils/test-runners/integration-test-plugin.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/script-utils/test-runners/integration-test-plugin.d.cts"
|
|
6
|
+
}
|