obsidian-dev-utils 88.3.0 → 88.4.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.
Files changed (76) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/lib/cjs/__merged.cjs +25 -1
  3. package/dist/lib/cjs/__merged.d.cts +7 -3
  4. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  5. package/dist/lib/cjs/html-element.cjs +7 -1
  6. package/dist/lib/cjs/html-element.d.cts +12 -0
  7. package/dist/lib/cjs/obsidian/attachment-path.cjs +10 -5
  8. package/dist/lib/cjs/obsidian/attachment-path.d.cts +11 -1
  9. package/dist/lib/cjs/obsidian/components/index.cjs +4 -1
  10. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  11. package/dist/lib/cjs/obsidian/components/pointer-position-component.cjs +159 -0
  12. package/dist/lib/cjs/obsidian/components/pointer-position-component.d.cts +29 -0
  13. package/dist/lib/cjs/obsidian/css-class.cjs +2 -1
  14. package/dist/lib/cjs/obsidian/css-class.d.cts +4 -0
  15. package/dist/lib/cjs/obsidian/file-system.cjs +20 -1
  16. package/dist/lib/cjs/obsidian/file-system.d.cts +25 -0
  17. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +4 -1
  18. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +3 -0
  19. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +3 -0
  20. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  21. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  22. package/dist/lib/cjs/obsidian/path-settings.cjs +19 -5
  23. package/dist/lib/cjs/obsidian/path-settings.d.cts +13 -1
  24. package/dist/lib/cjs/obsidian/popovers/field-popover.cjs +175 -0
  25. package/dist/lib/cjs/obsidian/popovers/field-popover.d.cts +75 -0
  26. package/dist/lib/cjs/obsidian/popovers/index.cjs +152 -0
  27. package/dist/lib/cjs/obsidian/popovers/index.d.cts +4 -0
  28. package/dist/lib/cjs/obsidian/popovers/popover-anchor.cjs +178 -0
  29. package/dist/lib/cjs/obsidian/popovers/popover-anchor.d.cts +67 -0
  30. package/dist/lib/cjs/obsidian/popovers/popover.cjs +221 -0
  31. package/dist/lib/cjs/obsidian/popovers/popover.d.cts +78 -0
  32. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +2 -1
  33. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +2 -0
  34. package/dist/lib/esm/__merged.d.mts +7 -3
  35. package/dist/lib/esm/__merged.mjs +26 -2
  36. package/dist/lib/esm/generated-during-build.mjs +2 -2
  37. package/dist/lib/esm/html-element.d.mts +12 -0
  38. package/dist/lib/esm/html-element.mjs +6 -1
  39. package/dist/lib/esm/obsidian/attachment-path.d.mts +11 -1
  40. package/dist/lib/esm/obsidian/attachment-path.mjs +11 -5
  41. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  42. package/dist/lib/esm/obsidian/components/index.mjs +3 -1
  43. package/dist/lib/esm/obsidian/components/pointer-position-component.d.mts +29 -0
  44. package/dist/lib/esm/obsidian/components/pointer-position-component.mjs +51 -0
  45. package/dist/lib/esm/obsidian/css-class.d.mts +4 -0
  46. package/dist/lib/esm/obsidian/css-class.mjs +2 -1
  47. package/dist/lib/esm/obsidian/file-system.d.mts +25 -0
  48. package/dist/lib/esm/obsidian/file-system.mjs +20 -1
  49. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +3 -0
  50. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +4 -1
  51. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +3 -0
  52. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  53. package/dist/lib/esm/obsidian/index.mjs +3 -1
  54. package/dist/lib/esm/obsidian/path-settings.d.mts +13 -1
  55. package/dist/lib/esm/obsidian/path-settings.mjs +18 -4
  56. package/dist/lib/esm/obsidian/popovers/field-popover.d.mts +75 -0
  57. package/dist/lib/esm/obsidian/popovers/field-popover.mjs +70 -0
  58. package/dist/lib/esm/obsidian/popovers/index.d.mts +4 -0
  59. package/dist/lib/esm/obsidian/popovers/index.mjs +32 -0
  60. package/dist/lib/esm/obsidian/popovers/popover-anchor.d.mts +67 -0
  61. package/dist/lib/esm/obsidian/popovers/popover-anchor.mjs +67 -0
  62. package/dist/lib/esm/obsidian/popovers/popover.d.mts +78 -0
  63. package/dist/lib/esm/obsidian/popovers/popover.mjs +113 -0
  64. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +2 -0
  65. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +2 -1
  66. package/dist/styles.css +25 -1
  67. package/obsidian/components/pointer-position-component/package.json +6 -0
  68. package/obsidian/popovers/field-popover/package.json +6 -0
  69. package/obsidian/popovers/index/package.json +6 -0
  70. package/obsidian/popovers/package.json +6 -0
  71. package/obsidian/popovers/popover/package.json +6 -0
  72. package/obsidian/popovers/popover-anchor/package.json +6 -0
  73. package/package.json +42 -16
  74. package/patches/brace-expansion-callable/package.json +8 -0
  75. package/dist/dev/main.js +0 -37772
  76. package/dist/dev/manifest.json +0 -9
@@ -0,0 +1,221 @@
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 initCjs() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function name(obj) {
44
+ return obj;
45
+ }
46
+
47
+ function extractDefault(module) {
48
+ return module && module.__esModule && 'default' in module ? module.default : module;
49
+ }
50
+
51
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
52
+ 'obsidian',
53
+ '@codemirror/autocomplete',
54
+ '@codemirror/collab',
55
+ '@codemirror/commands',
56
+ '@codemirror/language',
57
+ '@codemirror/lint',
58
+ '@codemirror/search',
59
+ '@codemirror/state',
60
+ '@codemirror/text',
61
+ '@codemirror/view',
62
+ '@lezer/common',
63
+ '@lezer/lr',
64
+ '@lezer/highlight'];
65
+
66
+
67
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
68
+ '@codemirror/closebrackets',
69
+ '@codemirror/comment',
70
+ '@codemirror/fold',
71
+ '@codemirror/gutter',
72
+ '@codemirror/highlight',
73
+ '@codemirror/history',
74
+ '@codemirror/matchbrackets',
75
+ '@codemirror/panel',
76
+ '@codemirror/rangeset',
77
+ '@codemirror/rectangular-selection',
78
+ '@codemirror/stream-parser',
79
+ '@codemirror/tooltip'];
80
+
81
+
82
+ function requirePatched(id) {
83
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
84
+ return originalRequire?.(id);
85
+ }
86
+
87
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
88
+ if (globalThis.app.isMobile) {
89
+ if (id === 'process' || id === 'node:process') {
90
+ // eslint-disable-next-line no-console -- Valid usage.
91
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
92
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
93
+ return globalThis.process;
94
+ }
95
+ } else {
96
+ const module = originalRequire?.(id);
97
+ if (module) {
98
+ return extractDefault(module);
99
+ }
100
+ }
101
+
102
+ // eslint-disable-next-line no-console -- Valid usage.
103
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
104
+ return {};
105
+ }
106
+ })();
107
+
108
+ "use strict";
109
+ var __defProp = Object.defineProperty;
110
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
+ var __getOwnPropNames = Object.getOwnPropertyNames;
112
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
113
+ var __export = (target, all) => {
114
+ for (var name in all)
115
+ __defProp(target, name, { get: all[name], enumerable: true });
116
+ };
117
+ var __copyProps = (to, from, except, desc) => {
118
+ if (from && typeof from === "object" || typeof from === "function") {
119
+ for (let key of __getOwnPropNames(from))
120
+ if (!__hasOwnProp.call(to, key) && key !== except)
121
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122
+ }
123
+ return to;
124
+ };
125
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
+ var popover_exports = {};
127
+ __export(popover_exports, {
128
+ showPopover: () => showPopover
129
+ });
130
+ module.exports = __toCommonJS(popover_exports);
131
+ var import_obsidian = require('obsidian');
132
+ var import_html_element = require('../../html-element.cjs');
133
+ var import_css_class = require('../css-class.cjs');
134
+ var import_i18n = require('../i18n/i18n.cjs');
135
+ var import_plugin_context = require('../plugin/plugin-context.cjs');
136
+ const ANCHOR_GAP_IN_PIXELS = 4;
137
+ const VIEWPORT_MARGIN_IN_PIXELS = 8;
138
+ async function showPopover(params) {
139
+ const {
140
+ anchor,
141
+ build,
142
+ cancelButtonText,
143
+ cssClasses,
144
+ okButtonText
145
+ } = params;
146
+ const doc = anchor.doc;
147
+ const win = (0, import_html_element.getDocumentWindow)(doc);
148
+ const popoverEl = doc.body.createDiv({ cls: "menu" });
149
+ (0, import_plugin_context.addPluginCssClasses)(popoverEl, [import_css_class.CssClass.Popover, ...cssClasses ?? []]);
150
+ return await new Promise((resolve) => {
151
+ const state = { isClosed: false };
152
+ function close(result) {
153
+ if (state.isClosed) {
154
+ return;
155
+ }
156
+ state.isClosed = true;
157
+ doc.removeEventListener("pointerdown", handlePointerDown, true);
158
+ popoverEl.remove();
159
+ resolve(result);
160
+ }
161
+ function handleCancel() {
162
+ close(null);
163
+ }
164
+ function handleOk() {
165
+ close(getValue());
166
+ }
167
+ function handlePointerDown(evt) {
168
+ if (evt.composedPath().includes(popoverEl)) {
169
+ return;
170
+ }
171
+ close(null);
172
+ }
173
+ const getValue = build({
174
+ cancel: handleCancel,
175
+ confirm: handleOk,
176
+ contentEl: popoverEl
177
+ });
178
+ popoverEl.addEventListener("keydown", (evt) => {
179
+ if (evt.key === "Enter") {
180
+ evt.preventDefault();
181
+ handleOk();
182
+ return;
183
+ }
184
+ if (evt.key === "Escape") {
185
+ evt.preventDefault();
186
+ handleCancel();
187
+ }
188
+ });
189
+ const buttonsSetting = new import_obsidian.Setting(popoverEl);
190
+ buttonsSetting.addButton((button) => {
191
+ button.setButtonText(okButtonText ?? (0, import_i18n.t)(($) => $.obsidianDevUtils.buttons.ok)).setCta().setClass(import_css_class.CssClass.OkButton).onClick(handleOk);
192
+ });
193
+ buttonsSetting.addButton((button) => {
194
+ button.setButtonText(cancelButtonText ?? (0, import_i18n.t)(($) => $.obsidianDevUtils.buttons.cancel)).setClass(import_css_class.CssClass.CancelButton).onClick(handleCancel);
195
+ });
196
+ doc.addEventListener("pointerdown", handlePointerDown, true);
197
+ positionAtAnchor(popoverEl, anchor, win);
198
+ focusFirstInput(popoverEl);
199
+ });
200
+ }
201
+ function focusFirstInput(popoverEl) {
202
+ const inputEl = popoverEl.querySelector("input");
203
+ if (!inputEl) {
204
+ return;
205
+ }
206
+ inputEl.focus();
207
+ inputEl.select();
208
+ }
209
+ function positionAtAnchor(popoverEl, anchor, win) {
210
+ const maxLeft = Math.max(VIEWPORT_MARGIN_IN_PIXELS, win.innerWidth - popoverEl.offsetWidth - VIEWPORT_MARGIN_IN_PIXELS);
211
+ const maxTop = Math.max(VIEWPORT_MARGIN_IN_PIXELS, win.innerHeight - popoverEl.offsetHeight - VIEWPORT_MARGIN_IN_PIXELS);
212
+ const left = Math.min(Math.max(anchor.left, VIEWPORT_MARGIN_IN_PIXELS), maxLeft);
213
+ const top = Math.min(Math.max(anchor.bottom + ANCHOR_GAP_IN_PIXELS, VIEWPORT_MARGIN_IN_PIXELS), maxTop);
214
+ popoverEl.style.left = `${String(Math.round(left + win.scrollX))}px`;
215
+ popoverEl.style.top = `${String(Math.round(top + win.scrollY))}px`;
216
+ }
217
+ // Annotate the CommonJS export names for ESM import in node:
218
+ 0 && (module.exports = {
219
+ showPopover
220
+ });
221
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BvcG92ZXJzL3BvcG92ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIHNtYWxsIGZsb2F0aW5nIHBhbmVsIGFuY2hvcmVkIGF0IGEgcG9pbnQsIGNvbGxlY3RpbmcgYSB2YWx1ZSBhbmQgcmVzb2x2aW5nIGEgcHJvbWlzZSB3aXRoIGl0LlxuICpcbiAqIFRoaXMgaXMgdGhlIHBvcG92ZXIgY291bnRlcnBhcnQgb2YgYG1vZGFscy9tb2RhbC50c2A6IHRoZSBzYW1lIFwiYXNrIHRoZSB1c2VyIGZvciBhIHZhbHVlLCByZXNvbHZlIGFcbiAqIHByb21pc2VcIiBzaGFwZSwgZm9yIHRoZSBjYXNlcyBhIG1vZGFsIGNhbm5vdCBzZXJ2ZS4gQSBtb2RhbCBkaW1zIHRoZSBzY3JlZW4gYW5kIGlzIHBvc2l0aW9uZWQgYnlcbiAqIE9ic2lkaWFuLCBuZWl0aGVyIG9mIHdoaWNoIHN1aXRzIGFuIGVkaXRvciB0aGF0IG11c3QgYXBwZWFyICphdCogdGhlIHRoaW5nIGl0IGVkaXRzIFx1MjAxNCBhIGNsaWNrZWRcbiAqIGxpbmssIHRoZSBjYXJldCwgb3Igd2hlcmV2ZXIgYSBjb250ZXh0IG1lbnUgd2FzIHJhaXNlZC5cbiAqXG4gKiBUaGUgcGFuZWwgcmlkZXMgT2JzaWRpYW4ncyBgLm1lbnVgIGNsYXNzIGZvciBpdHMgYmFja2dyb3VuZCwgYm9yZGVyIGFuZCBzaGFkb3csIHNvIG9ubHkgbGF5b3V0IGlzXG4gKiBzdHlsZWQgYnkgdGhpcyBsaWJyYXJ5LlxuICovXG5cbmltcG9ydCB7IFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUG9wb3ZlckFuY2hvciB9IGZyb20gJy4vcG9wb3Zlci1hbmNob3IudHMnO1xuXG5pbXBvcnQgeyBnZXREb2N1bWVudFdpbmRvdyB9IGZyb20gJy4uLy4uL2h0bWwtZWxlbWVudC50cyc7XG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIFRoZSBnYXAgaW4gcGl4ZWxzIGJldHdlZW4gdGhlIGFuY2hvciBhbmQgdGhlIHBvcG92ZXIuXG4gKi9cbmNvbnN0IEFOQ0hPUl9HQVBfSU5fUElYRUxTID0gNDtcblxuLyoqXG4gKiBUaGUgbWluaW11bSBnYXAgaW4gcGl4ZWxzIHRoZSBwb3BvdmVyIGtlZXBzIGZyb20gdGhlIGVkZ2VzIG9mIHRoZSB3aW5kb3cgd2hlbiBpdCBoYXMgdG8gYmUgY2xhbXBlZFxuICogYmFjayBpbnRvIHZpZXcuXG4gKi9cbmNvbnN0IFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMgPSA4O1xuXG4vKipcbiAqIFJlYWRzIHRoZSB2YWx1ZSB0aGUgcG9wb3ZlciByZXNvbHZlcyB3aXRoIHdoZW4gaXQgaXMgY29uZmlybWVkLlxuICpcbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcmVzb2x2ZWQgYnkgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBUaGUgY3VycmVudCB2YWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgUG9wb3ZlclZhbHVlR2V0dGVyPFZhbHVlPiA9ICh0aGlzOiB2b2lkKSA9PiBWYWx1ZTtcblxuLyoqXG4gKiBUaGUgdG9vbHMgaGFuZGVkIHRvIHtAbGluayBTaG93UG9wb3ZlclBhcmFtcy5idWlsZH0gZm9yIHBvcHVsYXRpbmcgYSBwb3BvdmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dQb3BvdmVyQnVpbGRQYXJhbXMge1xuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCBgbnVsbGAsIGFzIHRoZSBDYW5jZWwgYnV0dG9uIGRvZXMuXG4gICAqL1xuICBjYW5jZWwodGhpczogdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbmZpcm1zIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIGFzIHRoZSBPSyBidXR0b24gZG9lcy5cbiAgICovXG4gIGNvbmZpcm0odGhpczogdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGFkZCB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgdG8uIFRoZSBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMgYXJlIGFwcGVuZGVkIGFmdGVyIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEVsOiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvd1BvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcmVzb2x2ZWQgYnkgdGhlIHBvcG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHBvcG92ZXIncyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRvb2xzIGZvciBwb3B1bGF0aW5nIHRoZSBwb3BvdmVyLlxuICAgKiBAcmV0dXJucyBBIGdldHRlciByZWFkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgYnVpbGQodGhpczogdm9pZCwgcGFyYW1zOiBTaG93UG9wb3ZlckJ1aWxkUGFyYW1zKTogUG9wb3ZlclZhbHVlR2V0dGVyPFZhbHVlPjtcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJDYW5jZWxcIiBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY3NzQ2xhc3Nlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIk9LXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2tCdXR0b25UZXh0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgcG9wb3ZlciBhdCB0aGUgZ2l2ZW4gYW5jaG9yIGFuZCByZXNvbHZlcyB3aXRoIHRoZSBidWlsdCB2YWx1ZSwgb3IgYG51bGxgIGlmIGl0IHdhc1xuICogZGlzbWlzc2VkIHdpdGhvdXQgY29uZmlybWluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHJlc29sdmVkIGJ5IHRoZSBwb3BvdmVyLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcG9wb3Zlci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIG9yIGBudWxsYCBpZiBkaXNtaXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93UG9wb3ZlcjxWYWx1ZT4ocGFyYW1zOiBTaG93UG9wb3ZlclBhcmFtczxWYWx1ZT4pOiBQcm9taXNlPG51bGwgfCBWYWx1ZT4ge1xuICBjb25zdCB7XG4gICAgYW5jaG9yLFxuICAgIGJ1aWxkLFxuICAgIGNhbmNlbEJ1dHRvblRleHQsXG4gICAgY3NzQ2xhc3NlcyxcbiAgICBva0J1dHRvblRleHRcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBkb2MgPSBhbmNob3IuZG9jO1xuICBjb25zdCB3aW4gPSBnZXREb2N1bWVudFdpbmRvdyhkb2MpO1xuICBjb25zdCBwb3BvdmVyRWwgPSBkb2MuYm9keS5jcmVhdGVEaXYoeyBjbHM6ICdtZW51JyB9KTtcbiAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhwb3BvdmVyRWwsIFtDc3NDbGFzcy5Qb3BvdmVyLCAuLi5jc3NDbGFzc2VzID8/IFtdXSk7XG5cbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPG51bGwgfCBWYWx1ZT4oKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHsgaXNDbG9zZWQ6IGZhbHNlIH07XG5cbiAgICBmdW5jdGlvbiBjbG9zZShyZXN1bHQ6IG51bGwgfCBWYWx1ZSk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlLmlzQ2xvc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHN0YXRlLmlzQ2xvc2VkID0gdHJ1ZTtcbiAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duLCB0cnVlKTtcbiAgICAgIHBvcG92ZXJFbC5yZW1vdmUoKTtcbiAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVDYW5jZWwoKTogdm9pZCB7XG4gICAgICBjbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVPaygpOiB2b2lkIHtcbiAgICAgIGNsb3NlKGdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc21pc3NlcyB0aGUgcG9wb3ZlciB3aGVuIHRoZSBuZXh0IGdlc3R1cmUgc3RhcnRzIG91dHNpZGUgaXQuIExpc3RlbmluZyBmb3IgYHBvaW50ZXJkb3duYFxuICAgICAqIHJhdGhlciB0aGFuIGBjbGlja2AgbWF0dGVyczogYSBwb3BvdmVyIGlzIHR5cGljYWxseSBvcGVuZWQgZnJvbSBhIGBjbGlja2AgaGFuZGxlciwgYW5kIHRoZSB2ZXJ5XG4gICAgICogc2FtZSBjbGljayB3b3VsZCBvdGhlcndpc2UgcmVhY2ggdGhpcyBsaXN0ZW5lciBhbmQgY2xvc2UgdGhlIHBvcG92ZXIgdGhlIGluc3RhbnQgaXQgYXBwZWFycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldnQgLSBUaGUgcG9pbnRlciBldmVudC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYW5kbGVQb2ludGVyRG93bihldnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgICAgaWYgKGV2dC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhwb3BvdmVyRWwpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNsb3NlKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IGdldFZhbHVlID0gYnVpbGQoe1xuICAgICAgY2FuY2VsOiBoYW5kbGVDYW5jZWwsXG4gICAgICBjb25maXJtOiBoYW5kbGVPayxcbiAgICAgIGNvbnRlbnRFbDogcG9wb3ZlckVsXG4gICAgfSk7XG5cbiAgICBwb3BvdmVyRWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBoYW5kbGVPaygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlQ2FuY2VsKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBidXR0b25zU2V0dGluZyA9IG5ldyBTZXR0aW5nKHBvcG92ZXJFbCk7XG4gICAgYnV0dG9uc1NldHRpbmcuYWRkQnV0dG9uKChidXR0b24pID0+IHtcbiAgICAgIGJ1dHRvblxuICAgICAgICAuc2V0QnV0dG9uVGV4dChva0J1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMub2spKVxuICAgICAgICAuc2V0Q3RhKClcbiAgICAgICAgLnNldENsYXNzKENzc0NsYXNzLk9rQnV0dG9uKVxuICAgICAgICAub25DbGljayhoYW5kbGVPayk7XG4gICAgfSk7XG4gICAgYnV0dG9uc1NldHRpbmcuYWRkQnV0dG9uKChidXR0b24pID0+IHtcbiAgICAgIGJ1dHRvblxuICAgICAgICAuc2V0QnV0dG9uVGV4dChjYW5jZWxCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLmNhbmNlbCkpXG4gICAgICAgIC5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pXG4gICAgICAgIC5vbkNsaWNrKGhhbmRsZUNhbmNlbCk7XG4gICAgfSk7XG5cbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgcG9zaXRpb25BdEFuY2hvcihwb3BvdmVyRWwsIGFuY2hvciwgd2luKTtcbiAgICBmb2N1c0ZpcnN0SW5wdXQocG9wb3ZlckVsKTtcbiAgfSk7XG59XG5cbi8qKlxuICogRm9jdXNlcyBhbmQgc2VsZWN0cyB0aGUgcG9wb3ZlcidzIGZpcnN0IHRleHQgaW5wdXQsIHNvIHRoZSB1c2VyIGNhbiB0eXBlIHN0cmFpZ2h0IGF3YXkuXG4gKlxuICogQHBhcmFtIHBvcG92ZXJFbCAtIFRoZSBwb3BvdmVyIHRvIGZvY3VzIHdpdGhpbi5cbiAqL1xuZnVuY3Rpb24gZm9jdXNGaXJzdElucHV0KHBvcG92ZXJFbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgY29uc3QgaW5wdXRFbCA9IHBvcG92ZXJFbC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICBpZiAoIWlucHV0RWwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbnB1dEVsLmZvY3VzKCk7XG4gIGlucHV0RWwuc2VsZWN0KCk7XG59XG5cbi8qKlxuICogUGxhY2VzIHRoZSBwb3BvdmVyIGp1c3QgYmVsb3cgdGhlIGFuY2hvciwgcHVsbGluZyBpdCBiYWNrIGluc2lkZSB0aGUgd2luZG93IHdoZW4gaXQgd291bGQgb3RoZXJ3aXNlXG4gKiBvdmVyZmxvdyBcdTIwMTQgYW4gYW5jaG9yIG5lYXIgdGhlIHJpZ2h0IG9yIGJvdHRvbSBlZGdlIGlzIGV4YWN0bHkgd2hlcmUgYW4gdW5jbGFtcGVkIHBvcG92ZXIgd291bGRcbiAqIHJlbmRlciBvZmYtc2NyZWVuLlxuICpcbiAqIEBwYXJhbSBwb3BvdmVyRWwgLSBUaGUgcG9wb3ZlciB0byBwb3NpdGlvbi5cbiAqIEBwYXJhbSBhbmNob3IgLSBXaGVyZSB0aGUgcG9wb3ZlciBiZWxvbmdzLlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdGhlIGFuY2hvciBsaXZlcyBpbiAoYSBwb3Atb3V0IHdpbmRvdyBoYXMgaXRzIG93bikuXG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uQXRBbmNob3IocG9wb3ZlckVsOiBIVE1MRWxlbWVudCwgYW5jaG9yOiBQb3BvdmVyQW5jaG9yLCB3aW46IFdpbmRvdyk6IHZvaWQge1xuICBjb25zdCBtYXhMZWZ0ID0gTWF0aC5tYXgoVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUywgd2luLmlubmVyV2lkdGggLSBwb3BvdmVyRWwub2Zmc2V0V2lkdGggLSBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTKTtcbiAgY29uc3QgbWF4VG9wID0gTWF0aC5tYXgoVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUywgd2luLmlubmVySGVpZ2h0IC0gcG9wb3ZlckVsLm9mZnNldEhlaWdodCAtIFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMpO1xuXG4gIGNvbnN0IGxlZnQgPSBNYXRoLm1pbihNYXRoLm1heChhbmNob3IubGVmdCwgVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyksIG1heExlZnQpO1xuICBjb25zdCB0b3AgPSBNYXRoLm1pbihNYXRoLm1heChhbmNob3IuYm90dG9tICsgQU5DSE9SX0dBUF9JTl9QSVhFTFMsIFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMpLCBtYXhUb3ApO1xuXG4gIHBvcG92ZXJFbC5zdHlsZS5sZWZ0ID0gYCR7U3RyaW5nKE1hdGgucm91bmQobGVmdCArIHdpbi5zY3JvbGxYKSl9cHhgO1xuICBwb3BvdmVyRWwuc3R5bGUudG9wID0gYCR7U3RyaW5nKE1hdGgucm91bmQodG9wICsgd2luLnNjcm9sbFkpKX1weGA7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSxzQkFBd0I7QUFJeEIsMEJBQWtDO0FBQ2xDLHVCQUF5QjtBQUN6QixrQkFBa0I7QUFDbEIsNEJBQW9DO0FBS3BDLE1BQU0sdUJBQXVCO0FBTTdCLE1BQU0sNEJBQTRCO0FBeUVsQyxlQUFzQixZQUFtQixRQUF5RDtBQUNoRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLE1BQU0sT0FBTztBQUNuQixRQUFNLFVBQU0sdUNBQWtCLEdBQUc7QUFDakMsUUFBTSxZQUFZLElBQUksS0FBSyxVQUFVLEVBQUUsS0FBSyxPQUFPLENBQUM7QUFDcEQsaURBQW9CLFdBQVcsQ0FBQywwQkFBUyxTQUFTLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUV0RSxTQUFPLE1BQU0sSUFBSSxRQUFzQixDQUFDLFlBQVk7QUFDbEQsVUFBTSxRQUFRLEVBQUUsVUFBVSxNQUFNO0FBRWhDLGFBQVMsTUFBTSxRQUE0QjtBQUN6QyxVQUFJLE1BQU0sVUFBVTtBQUNsQjtBQUFBLE1BQ0Y7QUFDQSxZQUFNLFdBQVc7QUFDakIsVUFBSSxvQkFBb0IsZUFBZSxtQkFBbUIsSUFBSTtBQUM5RCxnQkFBVSxPQUFPO0FBQ2pCLGNBQVEsTUFBTTtBQUFBLElBQ2hCO0FBRUEsYUFBUyxlQUFxQjtBQUM1QixZQUFNLElBQUk7QUFBQSxJQUNaO0FBRUEsYUFBUyxXQUFpQjtBQUN4QixZQUFNLFNBQVMsQ0FBQztBQUFBLElBQ2xCO0FBU0EsYUFBUyxrQkFBa0IsS0FBeUI7QUFDbEQsVUFBSSxJQUFJLGFBQWEsRUFBRSxTQUFTLFNBQVMsR0FBRztBQUMxQztBQUFBLE1BQ0Y7QUFDQSxZQUFNLElBQUk7QUFBQSxJQUNaO0FBRUEsVUFBTSxXQUFXLE1BQU07QUFBQSxNQUNyQixRQUFRO0FBQUEsTUFDUixTQUFTO0FBQUEsTUFDVCxXQUFXO0FBQUEsSUFDYixDQUFDO0FBRUQsY0FBVSxpQkFBaUIsV0FBVyxDQUFDLFFBQXVCO0FBQzVELFVBQUksSUFBSSxRQUFRLFNBQVM7QUFDdkIsWUFBSSxlQUFlO0FBQ25CLGlCQUFTO0FBQ1Q7QUFBQSxNQUNGO0FBRUEsVUFBSSxJQUFJLFFBQVEsVUFBVTtBQUN4QixZQUFJLGVBQWU7QUFDbkIscUJBQWE7QUFBQSxNQUNmO0FBQUEsSUFDRixDQUFDO0FBRUQsVUFBTSxpQkFBaUIsSUFBSSx3QkFBUSxTQUFTO0FBQzVDLG1CQUFlLFVBQVUsQ0FBQyxXQUFXO0FBQ25DLGFBQ0csY0FBYyxvQkFBZ0IsZUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxFQUFFLENBQUMsRUFDckUsT0FBTyxFQUNQLFNBQVMsMEJBQVMsUUFBUSxFQUMxQixRQUFRLFFBQVE7QUFBQSxJQUNyQixDQUFDO0FBQ0QsbUJBQWUsVUFBVSxDQUFDLFdBQVc7QUFDbkMsYUFDRyxjQUFjLHdCQUFvQixlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixRQUFRLE1BQU0sQ0FBQyxFQUM3RSxTQUFTLDBCQUFTLFlBQVksRUFDOUIsUUFBUSxZQUFZO0FBQUEsSUFDekIsQ0FBQztBQUVELFFBQUksaUJBQWlCLGVBQWUsbUJBQW1CLElBQUk7QUFDM0QscUJBQWlCLFdBQVcsUUFBUSxHQUFHO0FBQ3ZDLG9CQUFnQixTQUFTO0FBQUEsRUFDM0IsQ0FBQztBQUNIO0FBT0EsU0FBUyxnQkFBZ0IsV0FBOEI7QUFDckQsUUFBTSxVQUFVLFVBQVUsY0FBYyxPQUFPO0FBQy9DLE1BQUksQ0FBQyxTQUFTO0FBQ1o7QUFBQSxFQUNGO0FBRUEsVUFBUSxNQUFNO0FBQ2QsVUFBUSxPQUFPO0FBQ2pCO0FBV0EsU0FBUyxpQkFBaUIsV0FBd0IsUUFBdUIsS0FBbUI7QUFDMUYsUUFBTSxVQUFVLEtBQUssSUFBSSwyQkFBMkIsSUFBSSxhQUFhLFVBQVUsY0FBYyx5QkFBeUI7QUFDdEgsUUFBTSxTQUFTLEtBQUssSUFBSSwyQkFBMkIsSUFBSSxjQUFjLFVBQVUsZUFBZSx5QkFBeUI7QUFFdkgsUUFBTSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUksT0FBTyxNQUFNLHlCQUF5QixHQUFHLE9BQU87QUFDL0UsUUFBTSxNQUFNLEtBQUssSUFBSSxLQUFLLElBQUksT0FBTyxTQUFTLHNCQUFzQix5QkFBeUIsR0FBRyxNQUFNO0FBRXRHLFlBQVUsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLE1BQU0sT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLFlBQVUsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,78 @@
1
+ /// <reference path="../../library.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A small floating panel anchored at a point, collecting a value and resolving a promise with it.
6
+ *
7
+ * This is the popover counterpart of `modals/modal.ts`: the same "ask the user for a value, resolve a
8
+ * promise" shape, for the cases a modal cannot serve. A modal dims the screen and is positioned by
9
+ * Obsidian, neither of which suits an editor that must appear *at* the thing it edits — a clicked
10
+ * link, the caret, or wherever a context menu was raised.
11
+ *
12
+ * The panel rides Obsidian's `.menu` class for its background, border and shadow, so only layout is
13
+ * styled by this library.
14
+ */
15
+ import type { PopoverAnchor } from './popover-anchor.cjs';
16
+ /**
17
+ * Reads the value the popover resolves with when it is confirmed.
18
+ *
19
+ * @typeParam Value - The type of the value resolved by the popover.
20
+ * @returns The current value.
21
+ */
22
+ export type PopoverValueGetter<Value> = (this: void) => Value;
23
+ /**
24
+ * The tools handed to {@link ShowPopoverParams.build} for populating a popover.
25
+ */
26
+ export interface ShowPopoverBuildParams {
27
+ /**
28
+ * Dismisses the popover, resolving it with `null`, as the Cancel button does.
29
+ */
30
+ cancel(this: void): void;
31
+ /**
32
+ * Confirms the popover, resolving it with the built value, as the OK button does.
33
+ */
34
+ confirm(this: void): void;
35
+ /**
36
+ * The element to add the popover's content to. The OK and Cancel buttons are appended after it.
37
+ */
38
+ readonly contentEl: HTMLElement;
39
+ }
40
+ /**
41
+ * Parameters for {@link showPopover}.
42
+ *
43
+ * @typeParam Value - The type of the value resolved by the popover.
44
+ */
45
+ export interface ShowPopoverParams<Value> {
46
+ /**
47
+ * Where to place the popover.
48
+ */
49
+ readonly anchor: PopoverAnchor;
50
+ /**
51
+ * Populates the popover's content.
52
+ *
53
+ * @param params - The tools for populating the popover.
54
+ * @returns A getter read when the popover is confirmed.
55
+ */
56
+ build(this: void, params: ShowPopoverBuildParams): PopoverValueGetter<Value>;
57
+ /**
58
+ * A text for the "Cancel" button.
59
+ */
60
+ readonly cancelButtonText?: string;
61
+ /**
62
+ * Additional CSS classes to apply to the popover.
63
+ */
64
+ readonly cssClasses?: string[];
65
+ /**
66
+ * A text for the "OK" button.
67
+ */
68
+ readonly okButtonText?: string;
69
+ }
70
+ /**
71
+ * Displays a popover at the given anchor and resolves with the built value, or `null` if it was
72
+ * dismissed without confirming.
73
+ *
74
+ * @typeParam Value - The type of the value resolved by the popover.
75
+ * @param params - The parameters for the popover.
76
+ * @returns A {@link Promise} that resolves with the built value, or `null` if dismissed.
77
+ */
78
+ export declare function showPopover<Value>(params: ShowPopoverParams<Value>): Promise<null | Value>;
@@ -169,6 +169,7 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
169
169
  ObsidianDevUtilsRepoPaths2["MjsExtension"] = ".mjs";
170
170
  ObsidianDevUtilsRepoPaths2["NodeModules"] = "node_modules";
171
171
  ObsidianDevUtilsRepoPaths2["PackageJson"] = "package.json";
172
+ ObsidianDevUtilsRepoPaths2["Patches"] = "patches";
172
173
  ObsidianDevUtilsRepoPaths2["RootFolder"] = "/";
173
174
  ObsidianDevUtilsRepoPaths2["Scripts"] = "scripts";
174
175
  ObsidianDevUtilsRepoPaths2["ScriptUtils"] = "script-utils";
@@ -188,4 +189,4 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
188
189
  0 && (module.exports = {
189
190
  ObsidianDevUtilsRepoPaths
190
191
  });
191
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQXN0cm8gY29uZmlndXJhdGlvbiBmaWxlIChkb2N1bWVudGF0aW9uIHNpdGUpIGF0IHRoZSByZXBvIHJvb3QuICovXG4gIEFzdHJvQ29uZmlnVHMgPSAnYXN0cm8uY29uZmlnLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYnVpbHQgYGRlbW8tdmF1bHQtaGVscGVyYCBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBpbmplY3RlZCBpbnRvIGRlbW8gdmF1bHRzIGF0IHJlbGVhc2UgdGltZS4gKi9cbiAgRGlzdERlbW9WYXVsdEhlbHBlciA9ICdkaXN0L2RlbW8tdmF1bHQtaGVscGVyJyxcblxuICAvKiogQSBwYXRoIHRvIHRoZSBgbGliYCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiAqL1xuICBEaXN0TGliID0gJ2Rpc3QvbGliJyxcblxuICAvKiogQSBwYXRoIHRvIHRoZSBgdGVtcGxhdGVzYCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBob2xkaW5nIHRoZSBjb25zdW1lci1mYWNpbmcgdGVtcGxhdGVzLiAqL1xuICBEaXN0VGVtcGxhdGVzID0gJ2Rpc3QvdGVtcGxhdGVzJyxcblxuICAvKiogVHJhbnNwaWxlZCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEanNFeHRlbnNpb24gPSAnLmQuanMnLFxuXG4gIC8qKiBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRG10c0V4dGVuc2lvbiA9ICcuZC5tdHMnLFxuXG4gIC8qKiBEb2N1bWVudGF0aW9uIHNpdGUgZm9sZGVyIChBc3RybyArIFN0YXJsaWdodCBBUEktZG9jcyBzdWItcHJvamVjdCkuICovXG4gIERvY3MgPSAnZG9jcycsXG5cbiAgLyoqIEJ1aWxkIG91dHB1dCBmb2xkZXIgb2YgdGhlIGRvY3VtZW50YXRpb24gc2l0ZS4gKi9cbiAgRG9jc0Rpc3QgPSAnZG9jcy9kaXN0JyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgQ29tbW9uSlMgZmlsZS4gKi9cbiAgR2VuZXJhdGVkRHVyaW5nQnVpbGRDanMgPSAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZC5janMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKiogQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleENqcyA9ICdpbmRleC5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEY3RzID0gJ2luZGV4LmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleE1qcyA9ICdpbmRleC5tanMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4VHMgPSAnaW5kZXgudHMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tanMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQgZmxhdCByZS1leHBvcnQgYmFycmVsIGZpbGUuICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFJvb3QgZm9sZGVyLiAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0VXRpbHMgZm9sZGVyLiAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3R5bGVzIGZvbGRlci4gKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqIFN0eWxlcyBDU1MgZmlsZS4gKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKiBUZW1wbGF0ZXMgZm9sZGVyLiAqL1xuICBUZW1wbGF0ZXMgPSAndGVtcGxhdGVzJyxcblxuICAvKiogVGVzdCBoZWxwZXJzIGZvbGRlci4gKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBDb21tb25KUyBkZWNsYXJhdGlvbnMuICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNDanNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy1janMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgRVNNIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBUc0V4dGVuc2lvbiA9ICcudHMnLFxuXG4gIC8qKiBUeXBlcyBmb2xkZXIuICovXG4gIFR5cGVzID0gJ0B0eXBlcydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdPLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBRUwsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFdBQVE7QUFHUixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsVUFBTztBQUdQLEVBQUFBLDJCQUFBLHlCQUFzQjtBQUd0QixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLFVBQU87QUFHUCxFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsNkJBQTBCO0FBRzFCLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUcxQixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLDJCQUFBLHNEQUFtRDtBQUduRCxFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUd0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFHbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxXQUFRO0FBOUpFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
192
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQXN0cm8gY29uZmlndXJhdGlvbiBmaWxlIChkb2N1bWVudGF0aW9uIHNpdGUpIGF0IHRoZSByZXBvIHJvb3QuICovXG4gIEFzdHJvQ29uZmlnVHMgPSAnYXN0cm8uY29uZmlnLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYnVpbHQgYGRlbW8tdmF1bHQtaGVscGVyYCBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBpbmplY3RlZCBpbnRvIGRlbW8gdmF1bHRzIGF0IHJlbGVhc2UgdGltZS4gKi9cbiAgRGlzdERlbW9WYXVsdEhlbHBlciA9ICdkaXN0L2RlbW8tdmF1bHQtaGVscGVyJyxcblxuICAvKiogQSBwYXRoIHRvIHRoZSBgbGliYCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiAqL1xuICBEaXN0TGliID0gJ2Rpc3QvbGliJyxcblxuICAvKiogQSBwYXRoIHRvIHRoZSBgdGVtcGxhdGVzYCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBob2xkaW5nIHRoZSBjb25zdW1lci1mYWNpbmcgdGVtcGxhdGVzLiAqL1xuICBEaXN0VGVtcGxhdGVzID0gJ2Rpc3QvdGVtcGxhdGVzJyxcblxuICAvKiogVHJhbnNwaWxlZCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEanNFeHRlbnNpb24gPSAnLmQuanMnLFxuXG4gIC8qKiBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRG10c0V4dGVuc2lvbiA9ICcuZC5tdHMnLFxuXG4gIC8qKiBEb2N1bWVudGF0aW9uIHNpdGUgZm9sZGVyIChBc3RybyArIFN0YXJsaWdodCBBUEktZG9jcyBzdWItcHJvamVjdCkuICovXG4gIERvY3MgPSAnZG9jcycsXG5cbiAgLyoqIEJ1aWxkIG91dHB1dCBmb2xkZXIgb2YgdGhlIGRvY3VtZW50YXRpb24gc2l0ZS4gKi9cbiAgRG9jc0Rpc3QgPSAnZG9jcy9kaXN0JyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgQ29tbW9uSlMgZmlsZS4gKi9cbiAgR2VuZXJhdGVkRHVyaW5nQnVpbGRDanMgPSAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZC5janMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKiogQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleENqcyA9ICdpbmRleC5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEY3RzID0gJ2luZGV4LmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleE1qcyA9ICdpbmRleC5tanMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4VHMgPSAnaW5kZXgudHMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tanMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQgZmxhdCByZS1leHBvcnQgYmFycmVsIGZpbGUuICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIEZvbGRlciBob2xkaW5nIGhhbmQtd3JpdHRlbiBwYXRjaGVkIGNvcGllcyBvZiB0aGlyZC1wYXJ0eSBwYWNrYWdlcy4gKi9cbiAgUGF0Y2hlcyA9ICdwYXRjaGVzJyxcblxuICAvKiogUm9vdCBmb2xkZXIuICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTY3JpcHRVdGlscyBmb2xkZXIuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NjcmlwdC11dGlscycsXG5cbiAgLyoqIFNvdXJjZSBmb2xkZXIuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBTdHlsZXMgZm9sZGVyLiAqL1xuICBTdHlsZXMgPSAnc3R5bGVzJyxcblxuICAvKiogU3R5bGVzIENTUyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFRlbXBsYXRlcyBmb2xkZXIuICovXG4gIFRlbXBsYXRlcyA9ICd0ZW1wbGF0ZXMnLFxuXG4gIC8qKiBUZXN0IGhlbHBlcnMgZm9sZGVyLiAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIENvbW1vbkpTIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLWNqcy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBFU00gZGVjbGFyYXRpb25zLiAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIFRzRXh0ZW5zaW9uID0gJy50cycsXG5cbiAgLyoqIFR5cGVzIGZvbGRlci4gKi9cbiAgVHlwZXMgPSAnQHR5cGVzJ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV08sSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFFTCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsV0FBUTtBQUdSLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxVQUFPO0FBR1AsRUFBQUEsMkJBQUEseUJBQXNCO0FBR3RCLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsVUFBTztBQUdQLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSw2QkFBMEI7QUFHMUIsRUFBQUEsMkJBQUEsNkJBQTBCO0FBRzFCLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEsMkJBQUEsc0RBQW1EO0FBR25ELEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUd0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFHbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxXQUFRO0FBaktFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
@@ -90,6 +90,8 @@ export declare enum ObsidianDevUtilsRepoPaths {
90
90
  NodeModules = "node_modules",
91
91
  /** Package JSON file. */
92
92
  PackageJson = "package.json",
93
+ /** Folder holding hand-written patched copies of third-party packages. */
94
+ Patches = "patches",
93
95
  /** Root folder. */
94
96
  RootFolder = "/",
95
97
  /** Scripts folder. */
@@ -11,7 +11,7 @@ export { getEnumKey, getEnumValue } from './enum.mjs';
11
11
  export { ASYNC_WRAPPER_ERROR_MESSAGE, CustomStackTraceError, emitAsyncErrorEvent, errorToString, ErrorWrapper, getStackTrace, isAsyncErrorIgnoreContextActive, printError, registerAsyncErrorEventHandler, SilentError, startAsyncErrorIgnoreContext, startCollectingUnhandledAsyncErrors, stopCollectingUnhandledAsyncErrors, throwExpression } from './error.mjs';
12
12
  export { cloneFunction, createFunction, getFunctionExpressionString, noop, noopAsync, noopAsyncSingletonPromise, omitAsyncReturnType, omitReturnType } from './function.mjs';
13
13
  export { LIBRARY_STYLES, LIBRARY_VERSION } from './generated-during-build.mjs';
14
- export { createDivAsync, createElAsync, createFragmentAsync, createSpanAsync, createSvgAsync, ensureLoaded, getZIndex, isElementVisibleInOffsetParent, isLoaded, onAncestorScrollOrResize, toPx, waitUntilConnected } from './html-element.mjs';
14
+ export { createDivAsync, createElAsync, createFragmentAsync, createSpanAsync, createSvgAsync, ensureLoaded, getDocumentWindow, getZIndex, isElementVisibleInOffsetParent, isLoaded, onAncestorScrollOrResize, toPx, waitUntilConnected } from './html-element.mjs';
15
15
  export { Library, LIBRARY_NAME } from './library.mjs';
16
16
  export { assignWithNonEnumerableProperties, castTo, cloneWithNonEnumerableProperties, deepEqual, deleteProperties, deleteProperty, extractDefaultExportInterop, FunctionHandlingMode, getAllEntries, getAllKeys, getNestedPropertyValue, getPrototypeOf, nameof, normalizeOptionalProperties, removeUndefinedProperties, setNestedPropertyValue, toJson } from './object-utils.mjs';
17
17
  export { getObsidianDevUtilsState, resetObsidianDevUtilsState } from './obsidian-dev-utils-state.mjs';
@@ -54,6 +54,7 @@ export { PluginContextComponent } from './obsidian/components/plugin-context-com
54
54
  export { PluginNoticeComponent } from './obsidian/components/plugin-notice-component.mjs';
55
55
  export { PluginSettingsComponentBase } from './obsidian/components/plugin-settings-component.mjs';
56
56
  export { PluginSettingsTabComponent } from './obsidian/components/plugin-settings-tab-component.mjs';
57
+ export { PointerPositionComponent } from './obsidian/components/pointer-position-component.mjs';
57
58
  export { RegistryComponent } from './obsidian/components/registry-component.mjs';
58
59
  export { EmptyFolderBehavior, RenameDeleteHandlerComponent } from './obsidian/components/rename-delete-handler-component.mjs';
59
60
  export { getDomEventsHandlersConstructor } from './obsidian/constructors/get-dom-events-handlers-constructor.mjs';
@@ -71,7 +72,7 @@ export { EventRefDisposable, subscribeDisposableEvent, subscribeEvent } from './
71
72
  export { PluginExtensionsRegistrar } from './obsidian/extensions-registrar.mjs';
72
73
  export { applyContentChanges, applyFileChanges, isCanvasChange, isCanvasFileNodeChange, isCanvasTextNodeChange, isContentChange, isFrontmatterChange, isFrontmatterChangeWithOffsets, toFrontmatterChangeWithOffsets } from './obsidian/file-change.mjs';
73
74
  export { addAlias, deleteAlias, processFrontmatter } from './obsidian/file-manager.mjs';
74
- export { asArrayOfFiles, asArrayOfFolders, asFile, asFileOrNull, asFolder, asFolderOrNull, BASE_FILE_EXTENSION, CANVAS_FILE_EXTENSION, checkExtension, exists, FileSystemType, getAbstractFile, getAbstractFileOrNull, getFile, getFileOrNull, getFileSystemType, getFolder, getFolderOrNull, getMarkdownFiles, getOrCreateFile, getOrCreateFolder, getPath, isAbstractFile, isBaseFile, isCanvasFile, isFile, isFolder, isMarkdownFile, isNote, MARKDOWN_FILE_EXTENSION, trimMarkdownExtension } from './obsidian/file-system.mjs';
75
+ export { asArrayOfFiles, asArrayOfFolders, asFile, asFileOrNull, asFolder, asFolderOrNull, BASE_FILE_EXTENSION, CANVAS_FILE_EXTENSION, checkExtension, exists, FileSystemType, getAbstractFile, getAbstractFileOrNull, getFile, getFileOrNull, getFileSystemType, getFolder, getFolderOrNull, getMarkdownFiles, getOrCreateFile, getOrCreateFolder, getPath, isAbstractFile, isBaseFile, isCanvasFile, isFile, isFolder, isMarkdownFile, isNote, isTreatedAsAttachment, MARKDOWN_FILE_EXTENSION, trimMarkdownExtension } from './obsidian/file-system.mjs';
75
76
  export { isFrontmatterLinkCacheWithOffsets, toFrontmatterLinkCacheWithOffsets } from './obsidian/frontmatter-link-cache-with-offsets.mjs';
76
77
  export { parseFrontmatter, setFrontmatter } from './obsidian/frontmatter.mjs';
77
78
  export { PluginHoverLinkSourceRegistrar } from './obsidian/hover-link-source-registrar.mjs';
@@ -100,7 +101,7 @@ export { SuggestModalCommandBuilder } from './obsidian/modals/suggest-modal-comm
100
101
  export { PluginObsidianProtocolHandlerRegistrar } from './obsidian/obsidian-protocol-handler-registrar.mjs';
101
102
  export { getNewLinkFormat, shouldUseWikilinks } from './obsidian/obsidian-settings.mjs';
102
103
  export { encodeUrl, escapeAlias, isParseLinkFrontmatterReference, isParseLinkReference, parseFrontmatterLinks, parseLink, parseLinks, toParseLinkReference, unescapeAlias } from './obsidian/parse-link.mjs';
103
- export { PathSettings } from './obsidian/path-settings.mjs';
104
+ export { PathSettings, pathsValidator } from './obsidian/path-settings.mjs';
104
105
  export { printToPdf } from './obsidian/pdf.mjs';
105
106
  export { PluginCliHandlerRegistrar } from './obsidian/plugin-cli-handler-registrar.mjs';
106
107
  export { ObsidianPluginRepoPaths } from './obsidian/plugin/obsidian-plugin-repo-paths.mjs';
@@ -108,6 +109,9 @@ export { addPluginCssClasses, initDebugController, initPluginContext } from './o
108
109
  export { PluginEventSourceImpl } from './obsidian/plugin/plugin-event-source.mjs';
109
110
  export { PluginSettingsTabBase, SAVE_TO_FILE_CONTEXT } from './obsidian/plugin/plugin-settings-tab.mjs';
110
111
  export { PluginBase, reloadPlugin, showErrorAndDisablePlugin } from './obsidian/plugin/plugin.mjs';
112
+ export { editFieldsInPopover } from './obsidian/popovers/field-popover.mjs';
113
+ export { createAnchorFromDocumentCenter, createAnchorFromElement, createAnchorFromPoint, createAnchorFromSelection } from './obsidian/popovers/popover-anchor.mjs';
114
+ export { showPopover } from './obsidian/popovers/popover.mjs';
111
115
  export { addToQueue, addToQueueAndWait, flushQueue } from './obsidian/queue.mjs';
112
116
  export { AppContext, useApp } from './obsidian/react/app-context.mjs';
113
117
  export { isCanvasFileNodeReference, isCanvasReference, isCanvasTextNodeReference, referenceToFileChange, sortReferences } from './obsidian/reference.mjs';