obsidian-dev-utils 82.0.0 → 83.0.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 (134) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/dev/main.js +322 -188
  3. package/dist/lib/cjs/blob.cjs +3 -3
  4. package/dist/lib/cjs/debug.cjs +4 -11
  5. package/dist/lib/cjs/generated-during-build.cjs +139 -0
  6. package/dist/lib/cjs/generated-during-build.d.cts +19 -0
  7. package/dist/lib/cjs/html-element.cjs +103 -31
  8. package/dist/lib/cjs/html-element.d.cts +8 -8
  9. package/dist/lib/cjs/index.cjs +4 -4
  10. package/dist/lib/cjs/index.d.cts +1 -1
  11. package/dist/lib/cjs/library.cjs +58 -7
  12. package/dist/lib/cjs/library.d.cts +65 -6
  13. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +5 -1
  14. package/dist/lib/cjs/obsidian/css-class.cjs +180 -0
  15. package/dist/lib/cjs/{css-class.d.cts → obsidian/css-class.d.cts} +9 -1
  16. package/dist/lib/cjs/obsidian/editor-lock.cjs +9 -11
  17. package/dist/lib/cjs/obsidian/editor-lock.d.cts +10 -7
  18. package/dist/lib/cjs/obsidian/{plugin/plugin-id.cjs → html-element.cjs} +11 -19
  19. package/dist/lib/cjs/obsidian/html-element.d.cts +18 -0
  20. package/dist/lib/cjs/obsidian/index.cjs +7 -1
  21. package/dist/lib/cjs/obsidian/index.d.cts +2 -0
  22. package/dist/lib/cjs/obsidian/modals/alert.cjs +2 -2
  23. package/dist/lib/cjs/obsidian/modals/confirm.cjs +2 -2
  24. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +2 -2
  25. package/dist/lib/cjs/obsidian/modals/prompt.cjs +2 -2
  26. package/dist/lib/cjs/obsidian/modals/select-item.cjs +2 -2
  27. package/dist/lib/cjs/obsidian/plugin/index.cjs +1 -4
  28. package/dist/lib/cjs/obsidian/plugin/index.d.cts +0 -1
  29. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +15 -8
  30. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +2 -2
  31. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +2 -2
  32. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +2 -2
  33. package/dist/lib/cjs/obsidian/setting-components/date-component.cjs +2 -2
  34. package/dist/lib/cjs/obsidian/setting-components/date-time-component.cjs +2 -2
  35. package/dist/lib/cjs/obsidian/setting-components/email-component.cjs +2 -2
  36. package/dist/lib/cjs/obsidian/setting-components/file-component.cjs +2 -2
  37. package/dist/lib/cjs/obsidian/setting-components/month-component.cjs +2 -2
  38. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +2 -2
  39. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.cjs +2 -2
  40. package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.cjs +2 -2
  41. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +2 -2
  42. package/dist/lib/cjs/obsidian/setting-components/number-component.cjs +2 -2
  43. package/dist/lib/cjs/obsidian/setting-components/password-component.cjs +2 -2
  44. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.cjs +2 -2
  45. package/dist/lib/cjs/obsidian/setting-components/telephone-component.cjs +2 -2
  46. package/dist/lib/cjs/obsidian/setting-components/time-component.cjs +2 -2
  47. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +2 -2
  48. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +2 -2
  49. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +2 -2
  50. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +2 -2
  51. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +1 -1
  52. package/dist/lib/cjs/obsidian/setting-components/url-component.cjs +2 -2
  53. package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +2 -2
  54. package/dist/lib/cjs/obsidian/setting-components/week-component.cjs +2 -2
  55. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +60 -8
  56. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.cjs +145 -0
  57. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.d.cts +32 -0
  58. package/dist/lib/cjs/script-utils/linters/index.cjs +4 -1
  59. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  60. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +3 -3
  61. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +4 -4
  62. package/dist/lib/cjs/setup.cjs +3 -1
  63. package/dist/lib/cjs/setup.d.cts +6 -4
  64. package/dist/lib/esm/blob.mjs +3 -3
  65. package/dist/lib/esm/debug.mjs +8 -15
  66. package/dist/lib/esm/generated-during-build.d.mts +19 -0
  67. package/dist/lib/esm/generated-during-build.mjs +30 -0
  68. package/dist/lib/esm/html-element.d.mts +8 -8
  69. package/dist/lib/esm/html-element.mjs +103 -30
  70. package/dist/lib/esm/index.d.mts +1 -1
  71. package/dist/lib/esm/index.mjs +3 -3
  72. package/dist/lib/esm/library.d.mts +65 -6
  73. package/dist/lib/esm/library.mjs +57 -5
  74. package/dist/lib/esm/obsidian/components/plugin-context-component.mjs +5 -1
  75. package/dist/lib/esm/{css-class.d.mts → obsidian/css-class.d.mts} +9 -1
  76. package/dist/lib/esm/obsidian/css-class.mjs +72 -0
  77. package/dist/lib/esm/obsidian/editor-lock.d.mts +10 -7
  78. package/dist/lib/esm/obsidian/editor-lock.mjs +9 -11
  79. package/dist/lib/esm/obsidian/html-element.d.mts +18 -0
  80. package/dist/lib/esm/obsidian/html-element.mjs +33 -0
  81. package/dist/lib/esm/obsidian/index.d.mts +2 -0
  82. package/dist/lib/esm/obsidian/index.mjs +5 -1
  83. package/dist/lib/esm/obsidian/modals/alert.mjs +2 -2
  84. package/dist/lib/esm/obsidian/modals/confirm.mjs +2 -2
  85. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +2 -2
  86. package/dist/lib/esm/obsidian/modals/prompt.mjs +2 -2
  87. package/dist/lib/esm/obsidian/modals/select-item.mjs +2 -2
  88. package/dist/lib/esm/obsidian/plugin/index.d.mts +0 -1
  89. package/dist/lib/esm/obsidian/plugin/index.mjs +1 -3
  90. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +15 -9
  91. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +2 -2
  92. package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +2 -2
  93. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +2 -2
  94. package/dist/lib/esm/obsidian/setting-components/date-component.mjs +2 -2
  95. package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +2 -2
  96. package/dist/lib/esm/obsidian/setting-components/email-component.mjs +2 -2
  97. package/dist/lib/esm/obsidian/setting-components/file-component.mjs +2 -2
  98. package/dist/lib/esm/obsidian/setting-components/month-component.mjs +2 -2
  99. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +2 -2
  100. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +2 -2
  101. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +2 -2
  102. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +2 -2
  103. package/dist/lib/esm/obsidian/setting-components/number-component.mjs +2 -2
  104. package/dist/lib/esm/obsidian/setting-components/password-component.mjs +2 -2
  105. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +2 -2
  106. package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +2 -2
  107. package/dist/lib/esm/obsidian/setting-components/time-component.mjs +2 -2
  108. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +2 -2
  109. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +2 -2
  110. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +2 -2
  111. package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +1 -1
  112. package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +2 -2
  113. package/dist/lib/esm/obsidian/setting-components/url-component.mjs +2 -2
  114. package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +2 -2
  115. package/dist/lib/esm/obsidian/setting-components/week-component.mjs +2 -2
  116. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +54 -9
  117. package/dist/lib/esm/script-utils/linters/eslint-agnostic-core-boundary.d.mts +32 -0
  118. package/dist/lib/esm/script-utils/linters/eslint-agnostic-core-boundary.mjs +37 -0
  119. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  120. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  121. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +4 -4
  122. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -3
  123. package/dist/lib/esm/setup.d.mts +6 -4
  124. package/dist/lib/esm/setup.mjs +3 -1
  125. package/obsidian/css-class/package.json +6 -0
  126. package/obsidian/html-element/package.json +6 -0
  127. package/package.json +1 -1
  128. package/script-utils/linters/eslint-agnostic-core-boundary/package.json +6 -0
  129. package/dist/lib/cjs/css-class.cjs +0 -178
  130. package/dist/lib/cjs/obsidian/plugin/plugin-id.d.cts +0 -22
  131. package/dist/lib/esm/css-class.mjs +0 -70
  132. package/dist/lib/esm/obsidian/plugin/plugin-id.d.mts +0 -22
  133. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +0 -39
  134. package/obsidian/Plugin/plugin-id/package.json +0 -6
@@ -27,13 +27,13 @@ import * as async_events from "./async-events.mjs";
27
27
  import * as async from "./async.mjs";
28
28
  import * as blob from "./blob.mjs";
29
29
  import * as codemirror from "./codemirror/index.mjs";
30
- import * as css_class from "./css-class.mjs";
31
30
  import * as debug_controller from "./debug-controller.mjs";
32
31
  import * as debug from "./debug.mjs";
33
32
  import * as disposable from "./disposable.mjs";
34
33
  import * as enum2 from "./enum.mjs";
35
34
  import * as error from "./error.mjs";
36
35
  import * as function2 from "./function.mjs";
36
+ import * as generated_during_build from "./generated-during-build.mjs";
37
37
  import * as html_element from "./html-element.mjs";
38
38
  import * as library from "./library.mjs";
39
39
  import * as object_utils from "./object-utils.mjs";
@@ -57,13 +57,13 @@ export {
57
57
  async_events as "async-events",
58
58
  blob,
59
59
  codemirror,
60
- css_class as "css-class",
61
60
  debug,
62
61
  debug_controller as "debug-controller",
63
62
  disposable,
64
63
  enum2 as enum,
65
64
  error,
66
65
  function2 as function,
66
+ generated_during_build as "generated-during-build",
67
67
  html_element as "html-element",
68
68
  library,
69
69
  object_utils as "object-utils",
@@ -81,4 +81,4 @@ export {
81
81
  value_provider as "value-provider",
82
82
  value_wrapper as "value-wrapper"
83
83
  };
84
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2Fib3J0LWNvbnRyb2xsZXInIGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQgKiBhcyAnYXJyYXknIGZyb20gJy4vYXJyYXkudHMnO1xuZXhwb3J0ICogYXMgJ2FzeW5jLWV2ZW50cycgZnJvbSAnLi9hc3luYy1ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2FzeW5jJyBmcm9tICcuL2FzeW5jLnRzJztcbmV4cG9ydCAqIGFzICdibG9iJyBmcm9tICcuL2Jsb2IudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGVtaXJyb3InIGZyb20gJy4vY29kZW1pcnJvci9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGVidWctY29udHJvbGxlcicgZnJvbSAnLi9kZWJ1Zy1jb250cm9sbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZWJ1ZycgZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZScgZnJvbSAnLi9kaXNwb3NhYmxlLnRzJztcbmV4cG9ydCAqIGFzICdlbnVtJyBmcm9tICcuL2VudW0udHMnO1xuZXhwb3J0ICogYXMgJ2Vycm9yJyBmcm9tICcuL2Vycm9yLnRzJztcbmV4cG9ydCAqIGFzICdmdW5jdGlvbicgZnJvbSAnLi9mdW5jdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnaHRtbC1lbGVtZW50JyBmcm9tICcuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeScgZnJvbSAnLi9saWJyYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdvYmplY3QtdXRpbHMnIGZyb20gJy4vb2JqZWN0LXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbicgZnJvbSAnLi9vYnNpZGlhbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlJyBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1zdGF0ZS50cyc7XG5leHBvcnQgKiBhcyAncGF0aCcgZnJvbSAnLi9wYXRoLnRzJztcbmV4cG9ydCAqIGFzICdyZWctZXhwJyBmcm9tICcuL3JlZy1leHAudHMnO1xuZXhwb3J0ICogYXMgJ3N0cmljdC1wcm94eScgZnJvbSAnLi9zdHJpY3QtcHJveHkudHMnO1xuZXhwb3J0ICogYXMgJ3N0cmluZycgZnJvbSAnLi9zdHJpbmcudHMnO1xuZXhwb3J0ICogYXMgJ3RyYW5zZm9ybWVycycgZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3R3by13YXktbWFwJyBmcm9tICcuL3R3by13YXktbWFwLnRzJztcbmV4cG9ydCAqIGFzICd0eXBlLWd1YXJkcycgZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5leHBvcnQgKiBhcyAndHlwZScgZnJvbSAnLi90eXBlLnRzJztcbmV4cG9ydCAqIGFzICd1cmwnIGZyb20gJy4vdXJsLnRzJztcbmV4cG9ydCAqIGFzICd2YWx1ZS1wcm92aWRlcicgZnJvbSAnLi92YWx1ZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyAndmFsdWUtd3JhcHBlcicgZnJvbSAnLi92YWx1ZS13cmFwcGVyLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsWUFBWUEsc0JBQXdCO0FBQ3BDLFlBQVksV0FBYTtBQUN6QixZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWSxXQUFhO0FBQ3pCLFlBQVksVUFBWTtBQUN4QixZQUFZLGdCQUFrQjtBQUM5QixZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxzQkFBd0I7QUFDcEMsWUFBWSxXQUFhO0FBQ3pCLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVlDLFdBQVk7QUFDeEIsWUFBWSxXQUFhO0FBQ3pCLFlBQVlDLGVBQWdCO0FBQzVCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLGFBQWU7QUFDM0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxhQUFlO0FBQzNCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFlBQWM7QUFDMUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZLFVBQVk7QUFDeEIsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQyxtQkFBcUI7IiwKICAibmFtZXMiOiBbImFib3J0LWNvbnRyb2xsZXIiLCAiYXN5bmMtZXZlbnRzIiwgImNzcy1jbGFzcyIsICJkZWJ1Zy1jb250cm9sbGVyIiwgImVudW0iLCAiZnVuY3Rpb24iLCAiaHRtbC1lbGVtZW50IiwgIm9iamVjdC11dGlscyIsICJvYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUiLCAicmVnLWV4cCIsICJzdHJpY3QtcHJveHkiLCAidHdvLXdheS1tYXAiLCAidHlwZS1ndWFyZHMiLCAidmFsdWUtcHJvdmlkZXIiLCAidmFsdWUtd3JhcHBlciJdCn0K
84
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2Fib3J0LWNvbnRyb2xsZXInIGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQgKiBhcyAnYXJyYXknIGZyb20gJy4vYXJyYXkudHMnO1xuZXhwb3J0ICogYXMgJ2FzeW5jLWV2ZW50cycgZnJvbSAnLi9hc3luYy1ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2FzeW5jJyBmcm9tICcuL2FzeW5jLnRzJztcbmV4cG9ydCAqIGFzICdibG9iJyBmcm9tICcuL2Jsb2IudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGVtaXJyb3InIGZyb20gJy4vY29kZW1pcnJvci9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZGVidWctY29udHJvbGxlcicgZnJvbSAnLi9kZWJ1Zy1jb250cm9sbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZWJ1ZycgZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZScgZnJvbSAnLi9kaXNwb3NhYmxlLnRzJztcbmV4cG9ydCAqIGFzICdlbnVtJyBmcm9tICcuL2VudW0udHMnO1xuZXhwb3J0ICogYXMgJ2Vycm9yJyBmcm9tICcuL2Vycm9yLnRzJztcbmV4cG9ydCAqIGFzICdmdW5jdGlvbicgZnJvbSAnLi9mdW5jdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZCcgZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdodG1sLWVsZW1lbnQnIGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5JyBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgJ29iamVjdC11dGlscycgZnJvbSAnLi9vYmplY3QtdXRpbHMudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuJyBmcm9tICcuL29ic2lkaWFuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUnIGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcbmV4cG9ydCAqIGFzICdwYXRoJyBmcm9tICcuL3BhdGgudHMnO1xuZXhwb3J0ICogYXMgJ3JlZy1leHAnIGZyb20gJy4vcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnc3RyaWN0LXByb3h5JyBmcm9tICcuL3N0cmljdC1wcm94eS50cyc7XG5leHBvcnQgKiBhcyAnc3RyaW5nJyBmcm9tICcuL3N0cmluZy50cyc7XG5leHBvcnQgKiBhcyAndHJhbnNmb3JtZXJzJyBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAndHdvLXdheS1tYXAnIGZyb20gJy4vdHdvLXdheS1tYXAudHMnO1xuZXhwb3J0ICogYXMgJ3R5cGUtZ3VhcmRzJyBmcm9tICcuL3R5cGUtZ3VhcmRzLnRzJztcbmV4cG9ydCAqIGFzICd0eXBlJyBmcm9tICcuL3R5cGUudHMnO1xuZXhwb3J0ICogYXMgJ3VybCcgZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbHVlLXByb3ZpZGVyJyBmcm9tICcuL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICd2YWx1ZS13cmFwcGVyJyBmcm9tICcuL3ZhbHVlLXdyYXBwZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZQSxzQkFBd0I7QUFDcEMsWUFBWSxXQUFhO0FBQ3pCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFdBQWE7QUFDekIsWUFBWSxVQUFZO0FBQ3hCLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZLFdBQWE7QUFDekIsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsV0FBWTtBQUN4QixZQUFZLFdBQWE7QUFDekIsWUFBWUMsZUFBZ0I7QUFDNUIsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLGFBQWU7QUFDM0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxhQUFlO0FBQzNCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFlBQWM7QUFDMUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZLFVBQVk7QUFDeEIsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQyxtQkFBcUI7IiwKICAibmFtZXMiOiBbImFib3J0LWNvbnRyb2xsZXIiLCAiYXN5bmMtZXZlbnRzIiwgImRlYnVnLWNvbnRyb2xsZXIiLCAiZW51bSIsICJmdW5jdGlvbiIsICJnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIiwgImh0bWwtZWxlbWVudCIsICJvYmplY3QtdXRpbHMiLCAib2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlIiwgInJlZy1leHAiLCAic3RyaWN0LXByb3h5IiwgInR3by13YXktbWFwIiwgInR5cGUtZ3VhcmRzIiwgInZhbHVlLXByb3ZpZGVyIiwgInZhbHVlLXdyYXBwZXIiXQp9Cg==
@@ -8,15 +8,74 @@
8
8
  *
9
9
  * Helpers for working with the `obsidian-dev-utils` library.
10
10
  */
11
- /**
12
- * A version of the `obsidian-dev-utils` library.
13
- */
14
- export declare const LIBRARY_VERSION = "$(LIBRARY_VERSION)";
15
11
  /**
16
12
  * A name of the `obsidian-dev-utils` library.
17
13
  */
18
14
  export declare const LIBRARY_NAME = "obsidian-dev-utils";
19
15
  /**
20
- * A styles of the `obsidian-dev-utils` library.
16
+ * Parameters for {@link Library.init}.
17
+ *
18
+ * These are purely cosmetic values the host plugin injects once at initialization — deliberately NOT
19
+ * the plugin ID itself, so the agnostic core cannot reconstruct a capability from them.
20
+ */
21
+ export interface LibraryInitParams {
22
+ /**
23
+ * The per-plugin CSS class scope applied alongside the library class by `addPluginCssClasses`.
24
+ */
25
+ readonly cssClassScope: string;
26
+ /**
27
+ * The namespace prefix prepended to the library's debug namespaces (e.g. `${pluginId}:`).
28
+ */
29
+ readonly debugPrefixNamespace: string;
30
+ /**
31
+ * Whether debug logging should append a rich DevTools stack trace.
32
+ */
33
+ readonly shouldPrintStackTrace: boolean;
34
+ }
35
+ /**
36
+ * The single, deterministic initialization entry point for the `obsidian-dev-utils` library.
37
+ *
38
+ * The host plugin calls {@link Library.init} exactly once (via `initPluginContext`) to push the
39
+ * cosmetic per-plugin configuration; the Obsidian-runtime-agnostic core only reads it through the
40
+ * getters. Calling {@link Library.init} more than once throws — {@link Library.resetToDefault} clears
41
+ * the state (e.g. between tests, or on plugin unload) and allows re-initialization.
42
+ */
43
+ declare class LibraryContext {
44
+ /**
45
+ * The per-plugin CSS class scope applied alongside the library class by `addPluginCssClasses`.
46
+ * Empty until {@link init} is called.
47
+ *
48
+ * @returns The CSS class scope.
49
+ */
50
+ get cssClassScope(): string;
51
+ /**
52
+ * The namespace prefix prepended to the library's debug namespaces. Empty until {@link init} is called.
53
+ *
54
+ * @returns The debug namespace prefix.
55
+ */
56
+ get debugPrefixNamespace(): string;
57
+ /**
58
+ * Whether debug logging should append a rich DevTools stack trace. `false` until {@link init} is called.
59
+ *
60
+ * @returns Whether to print stack traces.
61
+ */
62
+ get shouldPrintStackTrace(): boolean;
63
+ private isInitialized;
64
+ private params;
65
+ /**
66
+ * Initializes the library with the host plugin's cosmetic configuration. Must be called exactly
67
+ * once; calling it again before {@link resetToDefault} throws.
68
+ *
69
+ * @param params - The cosmetic configuration to inject.
70
+ */
71
+ init(params: LibraryInitParams): void;
72
+ /**
73
+ * Resets the library back to its default (uninitialized) state, allowing {@link init} to be called again.
74
+ */
75
+ resetToDefault(): void;
76
+ }
77
+ /**
78
+ * The single {@link LibraryContext} instance — the library's deterministic initialization entry point.
21
79
  */
22
- export declare const LIBRARY_STYLES = "$(LIBRARY_STYLES)";
80
+ export declare const Library: LibraryContext;
81
+ export {};
@@ -21,12 +21,64 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
- const LIBRARY_VERSION = "82.0.0";
25
24
  const LIBRARY_NAME = "obsidian-dev-utils";
26
- const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils-lock-indicator {\n display: inline-flex;\n align-items: center;\n color: var(--text-muted);\n}\n.obsidian-dev-utils-lock-indicator .svg-icon {\n width: var(--icon-s);\n height: var(--icon-s);\n}\n\n@keyframes obsidian-dev-utils-lock-indicator-flash {\n 40% {\n color: var(--text-error);\n transform: scale(1.4);\n }\n}\n.obsidian-dev-utils-lock-indicator-flash {\n animation: obsidian-dev-utils-lock-indicator-flash 0.35s ease-in-out;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utilsprogress.loop {\n min-width: 200px;\n}\n\n@keyframes obsidian-dev-utils-minimized-modal-bar-pulse {\n 0%, 100% {\n box-shadow: var(--shadow-s);\n }\n 50% {\n box-shadow: 0 0 0 2px var(--interactive-accent);\n }\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button {\n position: absolute;\n top: var(--size-4-2);\n right: calc(var(--size-4-2) + var(--size-4-9));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n.obsidian-dev-utils.minimized-modal-bar {\n position: fixed;\n right: var(--size-4-4);\n bottom: calc(var(--size-4-4) + var(--size-4-8));\n z-index: var(--layer-modal);\n display: flex;\n align-items: center;\n gap: var(--size-4-2);\n padding: var(--size-4-2) var(--size-4-3);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-m);\n background: var(--background-secondary);\n box-shadow: var(--shadow-s);\n animation: obsidian-dev-utils-minimized-modal-bar-pulse 2s ease-in-out infinite;\n}\n.obsidian-dev-utils.minimized-modal-bar .minimized-modal-bar-title {\n font-weight: var(--font-medium);\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\nbody button:not(.clickable-icon) {\n color: var(--text-color);\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid, .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid, .obsidian-dev-utils input.metadata-input-text:focus:invalid,\n.obsidian-dev-utils input[type=date]:active:invalid,\n.obsidian-dev-utils input[type=date]:focus-visible:invalid,\n.obsidian-dev-utils input[type=date]:focus:invalid,\n.obsidian-dev-utils input[type=datetime-local]:active:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid,\n.obsidian-dev-utils input[type=email]:active:invalid,\n.obsidian-dev-utils input[type=email]:focus-visible:invalid,\n.obsidian-dev-utils input[type=email]:focus:invalid,\n.obsidian-dev-utils input[type=number]:active:invalid,\n.obsidian-dev-utils input[type=number]:focus-visible:invalid,\n.obsidian-dev-utils input[type=number]:focus:invalid,\n.obsidian-dev-utils input[type=password]:active:invalid,\n.obsidian-dev-utils input[type=password]:focus-visible:invalid,\n.obsidian-dev-utils input[type=password]:focus:invalid,\n.obsidian-dev-utils input[type=search]:active:invalid,\n.obsidian-dev-utils input[type=search]:focus-visible:invalid,\n.obsidian-dev-utils input[type=search]:focus:invalid,\n.obsidian-dev-utils input[type=text]:active:invalid,\n.obsidian-dev-utils input[type=text]:focus-visible:invalid,\n.obsidian-dev-utils input[type=text]:focus:invalid,\n.obsidian-dev-utils textarea:active:invalid,\n.obsidian-dev-utils textarea:focus-visible:invalid,\n.obsidian-dev-utils textarea:focus:invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# 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-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;;;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;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACvEJ;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACRJ;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.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%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%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%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-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 */\n";
25
+ const DEFAULT_PARAMS = {
26
+ cssClassScope: "",
27
+ debugPrefixNamespace: "",
28
+ shouldPrintStackTrace: false
29
+ };
30
+ class LibraryContext {
31
+ /**
32
+ * The per-plugin CSS class scope applied alongside the library class by `addPluginCssClasses`.
33
+ * Empty until {@link init} is called.
34
+ *
35
+ * @returns The CSS class scope.
36
+ */
37
+ get cssClassScope() {
38
+ return this.params.cssClassScope;
39
+ }
40
+ /**
41
+ * The namespace prefix prepended to the library's debug namespaces. Empty until {@link init} is called.
42
+ *
43
+ * @returns The debug namespace prefix.
44
+ */
45
+ get debugPrefixNamespace() {
46
+ return this.params.debugPrefixNamespace;
47
+ }
48
+ /**
49
+ * Whether debug logging should append a rich DevTools stack trace. `false` until {@link init} is called.
50
+ *
51
+ * @returns Whether to print stack traces.
52
+ */
53
+ get shouldPrintStackTrace() {
54
+ return this.params.shouldPrintStackTrace;
55
+ }
56
+ isInitialized = false;
57
+ params = { ...DEFAULT_PARAMS };
58
+ /**
59
+ * Initializes the library with the host plugin's cosmetic configuration. Must be called exactly
60
+ * once; calling it again before {@link resetToDefault} throws.
61
+ *
62
+ * @param params - The cosmetic configuration to inject.
63
+ */
64
+ init(params) {
65
+ if (this.isInitialized) {
66
+ throw new Error(`${LIBRARY_NAME} is already initialized. Call Library.resetToDefault() before initializing again.`);
67
+ }
68
+ this.isInitialized = true;
69
+ this.params = { ...params };
70
+ }
71
+ /**
72
+ * Resets the library back to its default (uninitialized) state, allowing {@link init} to be called again.
73
+ */
74
+ resetToDefault() {
75
+ this.isInitialized = false;
76
+ this.params = { ...DEFAULT_PARAMS };
77
+ }
78
+ }
79
+ const Library = new LibraryContext();
27
80
  export {
28
81
  LIBRARY_NAME,
29
- LIBRARY_STYLES,
30
- LIBRARY_VERSION
82
+ Library
31
83
  };
32
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xpYnJhcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBBIHZlcnNpb24gb2YgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnJChMSUJSQVJZX1ZFUlNJT04pJztcblxuLyoqXG4gKiBBIG5hbWUgb2YgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBMSUJSQVJZX05BTUUgPSAnb2JzaWRpYW4tZGV2LXV0aWxzJztcblxuLyoqXG4gKiBBIHN0eWxlcyBvZiB0aGUgYG9ic2lkaWFuLWRldi11dGlsc2AgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IExJQlJBUllfU1RZTEVTID0gJyQoTElCUkFSWV9TVFlMRVMpJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sTUFBTSxrQkFBa0I7QUFLeEIsTUFBTSxlQUFlO0FBS3JCLE1BQU0saUJBQWlCOyIsCiAgIm5hbWVzIjogW10KfQo=
84
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xpYnJhcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBBIG5hbWUgb2YgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBMSUJSQVJZX05BTUUgPSAnb2JzaWRpYW4tZGV2LXV0aWxzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgTGlicmFyeS5pbml0fS5cbiAqXG4gKiBUaGVzZSBhcmUgcHVyZWx5IGNvc21ldGljIHZhbHVlcyB0aGUgaG9zdCBwbHVnaW4gaW5qZWN0cyBvbmNlIGF0IGluaXRpYWxpemF0aW9uIFx1MjAxNCBkZWxpYmVyYXRlbHkgTk9UXG4gKiB0aGUgcGx1Z2luIElEIGl0c2VsZiwgc28gdGhlIGFnbm9zdGljIGNvcmUgY2Fubm90IHJlY29uc3RydWN0IGEgY2FwYWJpbGl0eSBmcm9tIHRoZW0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlicmFyeUluaXRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHBlci1wbHVnaW4gQ1NTIGNsYXNzIHNjb3BlIGFwcGxpZWQgYWxvbmdzaWRlIHRoZSBsaWJyYXJ5IGNsYXNzIGJ5IGBhZGRQbHVnaW5Dc3NDbGFzc2VzYC5cbiAgICovXG4gIHJlYWRvbmx5IGNzc0NsYXNzU2NvcGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBwcmVmaXggcHJlcGVuZGVkIHRvIHRoZSBsaWJyYXJ5J3MgZGVidWcgbmFtZXNwYWNlcyAoZS5nLiBgJHtwbHVnaW5JZH06YCkuXG4gICAqL1xuICByZWFkb25seSBkZWJ1Z1ByZWZpeE5hbWVzcGFjZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGRlYnVnIGxvZ2dpbmcgc2hvdWxkIGFwcGVuZCBhIHJpY2ggRGV2VG9vbHMgc3RhY2sgdHJhY2UuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmludFN0YWNrVHJhY2U6IGJvb2xlYW47XG59XG5cbmNvbnN0IERFRkFVTFRfUEFSQU1TOiBMaWJyYXJ5SW5pdFBhcmFtcyA9IHtcbiAgY3NzQ2xhc3NTY29wZTogJycsXG4gIGRlYnVnUHJlZml4TmFtZXNwYWNlOiAnJyxcbiAgc2hvdWxkUHJpbnRTdGFja1RyYWNlOiBmYWxzZVxufTtcblxuLyoqXG4gKiBUaGUgc2luZ2xlLCBkZXRlcm1pbmlzdGljIGluaXRpYWxpemF0aW9uIGVudHJ5IHBvaW50IGZvciB0aGUgYG9ic2lkaWFuLWRldi11dGlsc2AgbGlicmFyeS5cbiAqXG4gKiBUaGUgaG9zdCBwbHVnaW4gY2FsbHMge0BsaW5rIExpYnJhcnkuaW5pdH0gZXhhY3RseSBvbmNlICh2aWEgYGluaXRQbHVnaW5Db250ZXh0YCkgdG8gcHVzaCB0aGVcbiAqIGNvc21ldGljIHBlci1wbHVnaW4gY29uZmlndXJhdGlvbjsgdGhlIE9ic2lkaWFuLXJ1bnRpbWUtYWdub3N0aWMgY29yZSBvbmx5IHJlYWRzIGl0IHRocm91Z2ggdGhlXG4gKiBnZXR0ZXJzLiBDYWxsaW5nIHtAbGluayBMaWJyYXJ5LmluaXR9IG1vcmUgdGhhbiBvbmNlIHRocm93cyBcdTIwMTQge0BsaW5rIExpYnJhcnkucmVzZXRUb0RlZmF1bHR9IGNsZWFyc1xuICogdGhlIHN0YXRlIChlLmcuIGJldHdlZW4gdGVzdHMsIG9yIG9uIHBsdWdpbiB1bmxvYWQpIGFuZCBhbGxvd3MgcmUtaW5pdGlhbGl6YXRpb24uXG4gKi9cbmNsYXNzIExpYnJhcnlDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBwZXItcGx1Z2luIENTUyBjbGFzcyBzY29wZSBhcHBsaWVkIGFsb25nc2lkZSB0aGUgbGlicmFyeSBjbGFzcyBieSBgYWRkUGx1Z2luQ3NzQ2xhc3Nlc2AuXG4gICAqIEVtcHR5IHVudGlsIHtAbGluayBpbml0fSBpcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBDU1MgY2xhc3Mgc2NvcGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNzc0NsYXNzU2NvcGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuY3NzQ2xhc3NTY29wZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIHByZWZpeCBwcmVwZW5kZWQgdG8gdGhlIGxpYnJhcnkncyBkZWJ1ZyBuYW1lc3BhY2VzLiBFbXB0eSB1bnRpbCB7QGxpbmsgaW5pdH0gaXMgY2FsbGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVidWcgbmFtZXNwYWNlIHByZWZpeC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVidWdQcmVmaXhOYW1lc3BhY2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuZGVidWdQcmVmaXhOYW1lc3BhY2U7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBkZWJ1ZyBsb2dnaW5nIHNob3VsZCBhcHBlbmQgYSByaWNoIERldlRvb2xzIHN0YWNrIHRyYWNlLiBgZmFsc2VgIHVudGlsIHtAbGluayBpbml0fSBpcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gcHJpbnQgc3RhY2sgdHJhY2VzLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG91bGRQcmludFN0YWNrVHJhY2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLnNob3VsZFByaW50U3RhY2tUcmFjZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcGFyYW1zOiBMaWJyYXJ5SW5pdFBhcmFtcyA9IHsgLi4uREVGQVVMVF9QQVJBTVMgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGxpYnJhcnkgd2l0aCB0aGUgaG9zdCBwbHVnaW4ncyBjb3NtZXRpYyBjb25maWd1cmF0aW9uLiBNdXN0IGJlIGNhbGxlZCBleGFjdGx5XG4gICAqIG9uY2U7IGNhbGxpbmcgaXQgYWdhaW4gYmVmb3JlIHtAbGluayByZXNldFRvRGVmYXVsdH0gdGhyb3dzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGNvc21ldGljIGNvbmZpZ3VyYXRpb24gdG8gaW5qZWN0LlxuICAgKi9cbiAgcHVibGljIGluaXQocGFyYW1zOiBMaWJyYXJ5SW5pdFBhcmFtcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtMSUJSQVJZX05BTUV9IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuIENhbGwgTGlicmFyeS5yZXNldFRvRGVmYXVsdCgpIGJlZm9yZSBpbml0aWFsaXppbmcgYWdhaW4uYCk7XG4gICAgfVxuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMgPSB7IC4uLnBhcmFtcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgbGlicmFyeSBiYWNrIHRvIGl0cyBkZWZhdWx0ICh1bmluaXRpYWxpemVkKSBzdGF0ZSwgYWxsb3dpbmcge0BsaW5rIGluaXR9IHRvIGJlIGNhbGxlZCBhZ2Fpbi5cbiAgICovXG4gIHB1YmxpYyByZXNldFRvRGVmYXVsdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBhcmFtcyA9IHsgLi4uREVGQVVMVF9QQVJBTVMgfTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBzaW5nbGUge0BsaW5rIExpYnJhcnlDb250ZXh0fSBpbnN0YW5jZSBcdTIwMTQgdGhlIGxpYnJhcnkncyBkZXRlcm1pbmlzdGljIGluaXRpYWxpemF0aW9uIGVudHJ5IHBvaW50LlxuICovXG5leHBvcnQgY29uc3QgTGlicmFyeSA9IG5ldyBMaWJyYXJ5Q29udGV4dCgpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTTyxNQUFNLGVBQWU7QUF5QjVCLE1BQU0saUJBQW9DO0FBQUEsRUFDeEMsZUFBZTtBQUFBLEVBQ2Ysc0JBQXNCO0FBQUEsRUFDdEIsdUJBQXVCO0FBQ3pCO0FBVUEsTUFBTSxlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPbkIsSUFBVyxnQkFBd0I7QUFDakMsV0FBTyxLQUFLLE9BQU87QUFBQSxFQUNyQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsdUJBQStCO0FBQ3hDLFdBQU8sS0FBSyxPQUFPO0FBQUEsRUFDckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLHdCQUFpQztBQUMxQyxXQUFPLEtBQUssT0FBTztBQUFBLEVBQ3JCO0FBQUEsRUFFUSxnQkFBZ0I7QUFBQSxFQUVoQixTQUE0QixFQUFFLEdBQUcsZUFBZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWpELEtBQUssUUFBaUM7QUFDM0MsUUFBSSxLQUFLLGVBQWU7QUFDdEIsWUFBTSxJQUFJLE1BQU0sR0FBRyxZQUFZLG1GQUFtRjtBQUFBLElBQ3BIO0FBQ0EsU0FBSyxnQkFBZ0I7QUFDckIsU0FBSyxTQUFTLEVBQUUsR0FBRyxPQUFPO0FBQUEsRUFDNUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLGlCQUF1QjtBQUM1QixTQUFLLGdCQUFnQjtBQUNyQixTQUFLLFNBQVMsRUFBRSxHQUFHLGVBQWU7QUFBQSxFQUNwQztBQUNGO0FBS08sTUFBTSxVQUFVLElBQUksZUFBZTsiLAogICJuYW1lcyI6IFtdCn0K
@@ -21,6 +21,7 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
+ import { Library } from "../../library.mjs";
24
25
  import {
25
26
  initDebugController,
26
27
  initPluginContext
@@ -45,6 +46,9 @@ class PluginContextComponent extends ComponentEx {
45
46
  */
46
47
  onload() {
47
48
  initPluginContext(this.pluginId);
49
+ this.register(() => {
50
+ Library.resetToDefault();
51
+ });
48
52
  this.addChild(new AllWindowsEventComponent(this.app)).registerAllWindowsHandler((win) => {
49
53
  initDebugController(win, this);
50
54
  });
@@ -53,4 +57,4 @@ class PluginContextComponent extends ComponentEx {
53
57
  export {
54
58
  PluginContextComponent
55
59
  };
56
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LCBkZWJ1ZyBjb250cm9sbGVyLCBhbmQgbGlicmFyeSBzdHlsZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5pbXBvcnQgeyBBbGxXaW5kb3dzRXZlbnRDb21wb25lbnQgfSBmcm9tICcuL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHBsdWdpbiBjb250ZXh0IChwbHVnaW4gSUQsIGRlYnVnIGNvbnRyb2xsZXIsIGxpYnJhcnkgc3R5bGVzKSBvbiBsb2FkLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQ29udGV4dENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHA6IEFwcDtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUGx1Z2luQ29udGV4dENvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wbHVnaW5JZCA9IHBhcmFtcy5wbHVnaW5JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgcGx1Z2luIGNvbnRleHQgYW5kIGRlYnVnIGNvbnRyb2xsZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIGluaXRQbHVnaW5Db250ZXh0KHRoaXMucGx1Z2luSWQpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCh0aGlzLmFwcCkpLnJlZ2lzdGVyQWxsV2luZG93c0hhbmRsZXIoKHdpbikgPT4ge1xuICAgICAgaW5pdERlYnVnQ29udHJvbGxlcih3aW4sIHRoaXMpO1xuICAgIH0pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyxtQkFBbUI7QUFVckIsTUFBTSwrQkFBK0IsWUFBWTtBQUFBLEVBQ3JDO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBaUQ7QUFDbEUsVUFBTTtBQUNOLFNBQUssTUFBTSxPQUFPO0FBQ2xCLFNBQUssV0FBVyxPQUFPO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixTQUFlO0FBQzdCLHNCQUFrQixLQUFLLFFBQVE7QUFDL0IsU0FBSyxTQUFTLElBQUkseUJBQXlCLEtBQUssR0FBRyxDQUFDLEVBQUUsMEJBQTBCLENBQUMsUUFBUTtBQUN2RiwwQkFBb0IsS0FBSyxJQUFJO0FBQUEsSUFDL0IsQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
60
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LCBkZWJ1ZyBjb250cm9sbGVyLCBhbmQgbGlicmFyeSBzdHlsZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICcuLi8uLi9saWJyYXJ5LnRzJztcbmltcG9ydCB7XG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5pbXBvcnQgeyBBbGxXaW5kb3dzRXZlbnRDb21wb25lbnQgfSBmcm9tICcuL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHBsdWdpbiBjb250ZXh0IChwbHVnaW4gSUQsIGRlYnVnIGNvbnRyb2xsZXIsIGxpYnJhcnkgc3R5bGVzKSBvbiBsb2FkLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQ29udGV4dENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHA6IEFwcDtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUGx1Z2luQ29udGV4dENvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wbHVnaW5JZCA9IHBhcmFtcy5wbHVnaW5JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgcGx1Z2luIGNvbnRleHQgYW5kIGRlYnVnIGNvbnRyb2xsZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIGluaXRQbHVnaW5Db250ZXh0KHRoaXMucGx1Z2luSWQpO1xuICAgIC8vIFJlc2V0IG9uIHVubG9hZCBzbyBhIHBsdWdpbiByZWxvYWQgY2FuIHJlLWluaXRpYWxpemUgd2l0aG91dCB0cmlwcGluZyB0aGUgb25jZS1vbmx5IGBMaWJyYXJ5LmluaXRgIGd1YXJkLlxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgTGlicmFyeS5yZXNldFRvRGVmYXVsdCgpO1xuICAgIH0pO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCh0aGlzLmFwcCkpLnJlZ2lzdGVyQWxsV2luZG93c0hhbmRsZXIoKHdpbikgPT4ge1xuICAgICAgaW5pdERlYnVnQ29udHJvbGxlcih3aW4sIHRoaXMpO1xuICAgIH0pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsZUFBZTtBQUN4QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZ0NBQWdDO0FBQ3pDLFNBQVMsbUJBQW1CO0FBVXJCLE1BQU0sK0JBQStCLFlBQVk7QUFBQSxFQUNyQztBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVixZQUFZLFFBQWlEO0FBQ2xFLFVBQU07QUFDTixTQUFLLE1BQU0sT0FBTztBQUNsQixTQUFLLFdBQVcsT0FBTztBQUFBLEVBQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsU0FBZTtBQUM3QixzQkFBa0IsS0FBSyxRQUFRO0FBRS9CLFNBQUssU0FBUyxNQUFNO0FBQ2xCLGNBQVEsZUFBZTtBQUFBLElBQ3pCLENBQUM7QUFDRCxTQUFLLFNBQVMsSUFBSSx5QkFBeUIsS0FBSyxHQUFHLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxRQUFRO0FBQ3ZGLDBCQUFvQixLQUFLLElBQUk7QUFBQSxJQUMvQixDQUFDO0FBQUEsRUFDSDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,4 +1,4 @@
1
- /// <reference path="./library.d.mts" />
1
+ /// <reference path="../library.d.mts" />
2
2
  /**
3
3
  * @file
4
4
  *
@@ -20,6 +20,10 @@ export declare enum CssClass {
20
20
  * A CSS class for the checkbox component.
21
21
  */
22
22
  CheckboxComponent = "checkbox-component",
23
+ /**
24
+ * Obsidian's class for an inline code element (used by `appendCodeBlock`).
25
+ */
26
+ Code = "code",
23
27
  /**
24
28
  * A CSS class for the code highlighter component.
25
29
  */
@@ -52,6 +56,10 @@ export declare enum CssClass {
52
56
  * A CSS class for the library name.
53
57
  */
54
58
  LibraryName = "obsidian-dev-utils",
59
+ /**
60
+ * Obsidian's class marking rendered-markdown content (used by `appendCodeBlock`).
61
+ */
62
+ MarkdownRendered = "markdown-rendered",
55
63
  /**
56
64
  * A CSS class for the minimizable modal.
57
65
  */
@@ -0,0 +1,72 @@
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
+ var CssClass = /* @__PURE__ */ ((CssClass2) => {
25
+ CssClass2["AlertModal"] = "alert-modal";
26
+ CssClass2["CancelButton"] = "cancel-button";
27
+ CssClass2["CheckboxComponent"] = "checkbox-component";
28
+ CssClass2["Code"] = "code";
29
+ CssClass2["CodeHighlighterComponent"] = "code-highlighter-component";
30
+ CssClass2["ConfirmModal"] = "confirm-modal";
31
+ CssClass2["DateComponent"] = "date-component";
32
+ CssClass2["DateTimeComponent"] = "datetime-component";
33
+ CssClass2["EmailComponent"] = "email-component";
34
+ CssClass2["FileComponent"] = "file-component";
35
+ CssClass2["IsPlaceholder"] = "is-placeholder";
36
+ CssClass2["LibraryName"] = "obsidian-dev-utils";
37
+ CssClass2["MarkdownRendered"] = "markdown-rendered";
38
+ CssClass2["MinimizableModal"] = "minimizable-modal";
39
+ CssClass2["MinimizeButton"] = "minimize-button";
40
+ CssClass2["MinimizedModalBar"] = "minimized-modal-bar";
41
+ CssClass2["MinimizedModalBarTitle"] = "minimized-modal-bar-title";
42
+ CssClass2["MonthComponent"] = "month-component";
43
+ CssClass2["MultipleDropdownComponent"] = "multiple-dropdown-component";
44
+ CssClass2["MultipleEmailComponent"] = "multiple-email-component";
45
+ CssClass2["MultipleFileComponent"] = "multiple-file-component";
46
+ CssClass2["MultipleTextComponent"] = "multiple-text-component";
47
+ CssClass2["NumberComponent"] = "number-component";
48
+ CssClass2["OkButton"] = "ok-button";
49
+ CssClass2["OverlayValidator"] = "overlay-validator";
50
+ CssClass2["PasswordComponent"] = "password-component";
51
+ CssClass2["PluginSettingsTab"] = "plugin-settings-tab";
52
+ CssClass2["PromptModal"] = "prompt-modal";
53
+ CssClass2["RestoreButton"] = "restore-button";
54
+ CssClass2["SelectItemModal"] = "select-item-modal";
55
+ CssClass2["SettingComponentWrapper"] = "setting-component-wrapper";
56
+ CssClass2["TelephoneComponent"] = "telephone-component";
57
+ CssClass2["TextBox"] = "text-box";
58
+ CssClass2["TimeComponent"] = "time-component";
59
+ CssClass2["Tooltip"] = "tooltip";
60
+ CssClass2["TooltipArrow"] = "tooltip-arrow";
61
+ CssClass2["TooltipValidator"] = "tooltip-validator";
62
+ CssClass2["TriStateCheckboxComponent"] = "tri-state-checkbox-component";
63
+ CssClass2["TypedDropdownComponent"] = "typed-dropdown-component";
64
+ CssClass2["TypedMultipleDropdownComponent"] = "typed-multiple-dropdown-component";
65
+ CssClass2["UrlComponent"] = "url-component";
66
+ CssClass2["WeekComponent"] = "week-component";
67
+ return CssClass2;
68
+ })(CssClass || {});
69
+ export {
70
+ CssClass
71
+ };
72
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Nzcy1jbGFzcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBDU1MgY2xhc3NlcyB1c2VkIGJ5IHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZW51bSBDc3NDbGFzcyB7XG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGFsZXJ0IG1vZGFsLlxuICAgKi9cbiAgQWxlcnRNb2RhbCA9ICdhbGVydC1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICovXG4gIENhbmNlbEJ1dHRvbiA9ICdjYW5jZWwtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBDaGVja2JveENvbXBvbmVudCA9ICdjaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBPYnNpZGlhbidzIGNsYXNzIGZvciBhbiBpbmxpbmUgY29kZSBlbGVtZW50ICh1c2VkIGJ5IGBhcHBlbmRDb2RlQmxvY2tgKS5cbiAgICovXG4gIENvZGUgPSAnY29kZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY29kZSBoaWdobGlnaHRlciBjb21wb25lbnQuXG4gICAqL1xuICBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgPSAnY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGNvbmZpcm0gbW9kYWwuXG4gICAqL1xuICBDb25maXJtTW9kYWwgPSAnY29uZmlybS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZGF0ZSBjb21wb25lbnQuXG4gICAqL1xuICBEYXRlQ29tcG9uZW50ID0gJ2RhdGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGFuZCB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVUaW1lQ29tcG9uZW50ID0gJ2RhdGV0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgRW1haWxDb21wb25lbnQgPSAnZW1haWwtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBmaWxlIGNvbXBvbmVudC5cbiAgICovXG4gIEZpbGVDb21wb25lbnQgPSAnZmlsZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgSXNQbGFjZWhvbGRlciA9ICdpcy1wbGFjZWhvbGRlcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbGlicmFyeSBuYW1lLlxuICAgKi9cbiAgTGlicmFyeU5hbWUgPSAnb2JzaWRpYW4tZGV2LXV0aWxzJyxcblxuICAvKipcbiAgICogT2JzaWRpYW4ncyBjbGFzcyBtYXJraW5nIHJlbmRlcmVkLW1hcmtkb3duIGNvbnRlbnQgKHVzZWQgYnkgYGFwcGVuZENvZGVCbG9ja2ApLlxuICAgKi9cbiAgTWFya2Rvd25SZW5kZXJlZCA9ICdtYXJrZG93bi1yZW5kZXJlZCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbWluaW1pemFibGUgbW9kYWwuXG4gICAqL1xuICBNaW5pbWl6YWJsZU1vZGFsID0gJ21pbmltaXphYmxlLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6ZSBidXR0b24gb2YgdGhlIG1pbmltaXphYmxlIG1vZGFsLlxuICAgKi9cbiAgTWluaW1pemVCdXR0b24gPSAnbWluaW1pemUtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyID0gJ21pbmltaXplZC1tb2RhbC1iYXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRpdGxlIG9mIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyVGl0bGUgPSAnbWluaW1pemVkLW1vZGFsLWJhci10aXRsZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbW9udGggY29tcG9uZW50LlxuICAgKi9cbiAgTW9udGhDb21wb25lbnQgPSAnbW9udGgtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50ID0gJ211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVFbWFpbENvbXBvbmVudCA9ICdtdWx0aXBsZS1lbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG11bHRpcGxlIGZpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVGaWxlQ29tcG9uZW50ID0gJ211bHRpcGxlLWZpbGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSB0ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIE11bHRpcGxlVGV4dENvbXBvbmVudCA9ICdtdWx0aXBsZS10ZXh0LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIE51bWJlckNvbXBvbmVudCA9ICdudW1iZXItY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBvayBidXR0b24uXG4gICAqL1xuICBPa0J1dHRvbiA9ICdvay1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgdmFsaWRhdG9yLlxuICAgKi9cbiAgT3ZlcmxheVZhbGlkYXRvciA9ICdvdmVybGF5LXZhbGlkYXRvcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcGFzc3dvcmQgY29tcG9uZW50LlxuICAgKi9cbiAgUGFzc3dvcmRDb21wb25lbnQgPSAncGFzc3dvcmQtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICAgKi9cbiAgUGx1Z2luU2V0dGluZ3NUYWIgPSAncGx1Z2luLXNldHRpbmdzLXRhYicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcHJvbXB0IG1vZGFsLlxuICAgKi9cbiAgUHJvbXB0TW9kYWwgPSAncHJvbXB0LW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSByZXN0b3JlIGJ1dHRvbiBvZiB0aGUgbWluaW1pemVkIG1vZGFsIGJhci5cbiAgICovXG4gIFJlc3RvcmVCdXR0b24gPSAncmVzdG9yZS1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHNlbGVjdCBpdGVtIG1vZGFsLlxuICAgKi9cbiAgU2VsZWN0SXRlbU1vZGFsID0gJ3NlbGVjdC1pdGVtLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBzZXR0aW5nIGNvbXBvbmVudCB3cmFwcGVyLlxuICAgKi9cbiAgU2V0dGluZ0NvbXBvbmVudFdyYXBwZXIgPSAnc2V0dGluZy1jb21wb25lbnQtd3JhcHBlcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdGVsZXBob25lIGNvbXBvbmVudC5cbiAgICovXG4gIFRlbGVwaG9uZUNvbXBvbmVudCA9ICd0ZWxlcGhvbmUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0ZXh0IGJveC5cbiAgICovXG4gIFRleHRCb3ggPSAndGV4dC1ib3gnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRpbWUgY29tcG9uZW50LlxuICAgKi9cbiAgVGltZUNvbXBvbmVudCA9ICd0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdG9vbHRpcC5cbiAgICovXG4gIFRvb2x0aXAgPSAndG9vbHRpcCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdG9vbHRpcCBhcnJvdy5cbiAgICovXG4gIFRvb2x0aXBBcnJvdyA9ICd0b29sdGlwLWFycm93JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwIHZhbGlkYXRvci5cbiAgICovXG4gIFRvb2x0aXBWYWxpZGF0b3IgPSAndG9vbHRpcC12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRyaS1zdGF0ZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50ID0gJ3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHR5cGVkIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICovXG4gIFR5cGVkRHJvcGRvd25Db21wb25lbnQgPSAndHlwZWQtZHJvcGRvd24tY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgPSAndHlwZWQtbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB1cmwgY29tcG9uZW50LlxuICAgKi9cbiAgVXJsQ29tcG9uZW50ID0gJ3VybC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHdlZWsgY29tcG9uZW50LlxuICAgKi9cbiAgV2Vla0NvbXBvbmVudCA9ICd3ZWVrLWNvbXBvbmVudCdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBSUwsRUFBQUEsVUFBQSxnQkFBYTtBQUtiLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLFVBQU87QUFLUCxFQUFBQSxVQUFBLDhCQUEyQjtBQUszQixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEscUJBQWtCO0FBS2xCLEVBQUFBLFVBQUEsY0FBVztBQUtYLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsaUJBQWM7QUFLZCxFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLHFCQUFrQjtBQUtsQixFQUFBQSxVQUFBLDZCQUEwQjtBQUsxQixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSxvQ0FBaUM7QUFLakMsRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsbUJBQWdCO0FBak5OLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiQ3NzQ2xhc3MiXQp9Cg==
@@ -16,7 +16,7 @@
16
16
  * that releases automatically at scope exit (including on throw):
17
17
  *
18
18
  * ```ts
19
- * using _lock = lockEditorForPath(app, path);
19
+ * using _lock = lockEditorForPath(app, path, this.manifest.id);
20
20
  * // ... long-running work (process, processFrontMatter, merge/split) ...
21
21
  * // auto-unlocked at scope exit
22
22
  * ```
@@ -54,11 +54,10 @@ export declare class EditorLockComponent extends ComponentEx {
54
54
  * Creates an editor-lock handle owned by a plugin.
55
55
  *
56
56
  * @param app - The Obsidian app instance.
57
- * @param pluginId - The id of the owning plugin. Defaults to the current plugin context's id; pass
58
- * it explicitly (e.g. from a plugin's `manifest.id`) when constructing before the plugin context is
59
- * initialized, such as inside `PluginBase.onload`.
57
+ * @param pluginId - The id of the owning plugin (e.g. its `manifest.id`). Locks are attributed to
58
+ * it for reference-counting and the indicators' "locked by" tooltip.
60
59
  */
61
- constructor(app: App, pluginId?: string);
60
+ constructor(app: App, pluginId: string);
62
61
  /**
63
62
  * Checks whether the note at the given path is currently locked by any plugin.
64
63
  *
@@ -110,9 +109,11 @@ export declare function isEditorLockedForPath(app: App, pathOrFile: PathOrFile):
110
109
  *
111
110
  * @param app - The Obsidian app instance.
112
111
  * @param pathOrFile - The path or file of the note to lock.
112
+ * @param pluginId - The id of the locking plugin (e.g. its `manifest.id`). The lock is attributed to
113
+ * it for reference-counting and the indicators' "locked by" tooltip.
113
114
  * @returns A {@link Disposable} that releases this lock when disposed. Disposing more than once is a no-op.
114
115
  */
115
- export declare function lockEditorForPath(app: App, pathOrFile: PathOrFile): Disposable;
116
+ export declare function lockEditorForPath(app: App, pathOrFile: PathOrFile, pluginId: string): Disposable;
116
117
  /**
117
118
  * Requests an unlock of the note at the given path by aborting every {@link AbortController} that was
118
119
  * associated with a lock on it (via {@link EditorLockComponent.lockForPath}'s
@@ -135,5 +136,7 @@ export declare function requestEditorUnlockForPath(app: App, pathOrFile: PathOrF
135
136
  *
136
137
  * @param app - The Obsidian app instance.
137
138
  * @param pathOrFile - The path or file of the note to unlock.
139
+ * @param pluginId - The id of the plugin that holds the lock (e.g. its `manifest.id`); one of its
140
+ * locks on the note is released.
138
141
  */
139
- export declare function unlockEditorForPath(app: App, pathOrFile: PathOrFile): void;
142
+ export declare function unlockEditorForPath(app: App, pathOrFile: PathOrFile, pluginId: string): void;