@mnaoumov/obsidian-lib 10.5.1 → 10.6.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 (129) hide show
  1. package/codemirror/inline-token-widgets/package.json +6 -0
  2. package/codemirror/settings-facet/package.json +6 -0
  3. package/components/settings-facet-component/package.json +6 -0
  4. package/dist/lib/cjs/__merged.cjs +96 -1
  5. package/dist/lib/cjs/__merged.d.cts +17 -0
  6. package/dist/lib/cjs/anchored-suggest.cjs +232 -0
  7. package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
  8. package/dist/lib/cjs/bug-report.cjs +4 -2
  9. package/dist/lib/cjs/bug-report.d.cts +1 -1
  10. package/dist/lib/cjs/code-block-render-handoff.cjs +272 -0
  11. package/dist/lib/cjs/code-block-render-handoff.d.cts +131 -0
  12. package/dist/lib/cjs/codemirror/index.cjs +7 -1
  13. package/dist/lib/cjs/codemirror/index.d.cts +2 -0
  14. package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +250 -0
  15. package/dist/lib/cjs/codemirror/inline-token-widgets.d.cts +109 -0
  16. package/dist/lib/cjs/codemirror/settings-facet.cjs +132 -0
  17. package/dist/lib/cjs/codemirror/settings-facet.d.cts +19 -0
  18. package/dist/lib/cjs/components/index.cjs +4 -1
  19. package/dist/lib/cjs/components/index.d.cts +1 -0
  20. package/dist/lib/cjs/components/settings-facet-component.cjs +136 -0
  21. package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
  22. package/dist/lib/cjs/css-class.cjs +8 -1
  23. package/dist/lib/cjs/css-class.d.cts +28 -0
  24. package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
  25. package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
  26. package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
  27. package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
  28. package/dist/lib/cjs/editor-suggest.cjs +198 -0
  29. package/dist/lib/cjs/editor-suggest.d.cts +103 -0
  30. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  31. package/dist/lib/cjs/hotkey.cjs +185 -0
  32. package/dist/lib/cjs/hotkey.d.cts +59 -0
  33. package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
  34. package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
  35. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
  36. package/dist/lib/cjs/index.cjs +31 -1
  37. package/dist/lib/cjs/index.d.cts +10 -0
  38. package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
  39. package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
  40. package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
  41. package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
  42. package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
  43. package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
  44. package/dist/lib/cjs/markdown.cjs +6 -1
  45. package/dist/lib/cjs/markdown.d.cts +10 -1
  46. package/dist/lib/cjs/rendered-markdown.cjs +306 -0
  47. package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
  48. package/dist/lib/cjs/request-url.cjs +523 -0
  49. package/dist/lib/cjs/request-url.d.cts +233 -0
  50. package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
  51. package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
  52. package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
  53. package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
  54. package/dist/lib/cjs/setting-components/index.cjs +13 -1
  55. package/dist/lib/cjs/setting-components/index.d.cts +4 -0
  56. package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
  57. package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
  58. package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
  59. package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
  60. package/dist/lib/cjs/setting-ex.cjs +51 -1
  61. package/dist/lib/cjs/setting-ex.d.cts +35 -1
  62. package/dist/lib/cjs/settings-tabs.cjs +258 -0
  63. package/dist/lib/cjs/settings-tabs.d.cts +101 -0
  64. package/dist/lib/esm/__merged.d.mts +17 -0
  65. package/dist/lib/esm/__merged.mjs +99 -1
  66. package/dist/lib/esm/anchored-suggest.d.mts +116 -0
  67. package/dist/lib/esm/anchored-suggest.mjs +144 -0
  68. package/dist/lib/esm/bug-report.d.mts +1 -1
  69. package/dist/lib/esm/bug-report.mjs +4 -2
  70. package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
  71. package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
  72. package/dist/lib/esm/codemirror/index.d.mts +2 -0
  73. package/dist/lib/esm/codemirror/index.mjs +5 -1
  74. package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
  75. package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
  76. package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
  77. package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
  78. package/dist/lib/esm/components/index.d.mts +1 -0
  79. package/dist/lib/esm/components/index.mjs +3 -1
  80. package/dist/lib/esm/components/settings-facet-component.d.mts +68 -0
  81. package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
  82. package/dist/lib/esm/css-class.d.mts +28 -0
  83. package/dist/lib/esm/css-class.mjs +8 -1
  84. package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
  85. package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
  86. package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
  87. package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
  88. package/dist/lib/esm/editor-suggest.d.mts +103 -0
  89. package/dist/lib/esm/editor-suggest.mjs +109 -0
  90. package/dist/lib/esm/generated-during-build.mjs +2 -2
  91. package/dist/lib/esm/hotkey.d.mts +59 -0
  92. package/dist/lib/esm/hotkey.mjs +95 -0
  93. package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
  94. package/dist/lib/esm/i18n/locales/en.mjs +13 -1
  95. package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
  96. package/dist/lib/esm/index.d.mts +10 -0
  97. package/dist/lib/esm/index.mjs +21 -1
  98. package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
  99. package/dist/lib/esm/inline-token-renderer.mjs +59 -0
  100. package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
  101. package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
  102. package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
  103. package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
  104. package/dist/lib/esm/markdown.d.mts +10 -1
  105. package/dist/lib/esm/markdown.mjs +9 -1
  106. package/dist/lib/esm/rendered-markdown.d.mts +77 -0
  107. package/dist/lib/esm/rendered-markdown.mjs +219 -0
  108. package/dist/lib/esm/request-url.d.mts +233 -0
  109. package/dist/lib/esm/request-url.mjs +428 -0
  110. package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
  111. package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
  112. package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
  113. package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
  114. package/dist/lib/esm/setting-components/index.d.mts +4 -0
  115. package/dist/lib/esm/setting-components/index.mjs +9 -1
  116. package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
  117. package/dist/lib/esm/setting-components/list-component.mjs +206 -0
  118. package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
  119. package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
  120. package/dist/lib/esm/setting-ex.d.mts +35 -1
  121. package/dist/lib/esm/setting-ex.mjs +51 -1
  122. package/dist/lib/esm/settings-tabs.d.mts +101 -0
  123. package/dist/lib/esm/settings-tabs.mjs +170 -0
  124. package/dist/styles.css +83 -1
  125. package/package.json +1 -1
  126. package/setting-components/folder-list-component/package.json +6 -0
  127. package/setting-components/hotkey-component/package.json +6 -0
  128. package/setting-components/list-component/package.json +6 -0
  129. package/setting-components/tag-list-component/package.json +6 -0
@@ -0,0 +1,101 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /// <reference lib="dom" />
3
+ /**
4
+ * @file
5
+ *
6
+ * Tabbed sections inside a plugin's settings.
7
+ */
8
+ /**
9
+ * A tab of {@link SettingsTabs}.
10
+ */
11
+ export interface SettingsTab {
12
+ /**
13
+ * The name of an Obsidian icon shown before the name.
14
+ */
15
+ readonly icon?: string;
16
+ /**
17
+ * The id of the tab, unique among the tabs.
18
+ */
19
+ readonly id: string;
20
+ /**
21
+ * The name shown on the tab button.
22
+ */
23
+ readonly name: string;
24
+ /**
25
+ * Renders the tab's settings into the panel, which is empty each time the tab is selected.
26
+ *
27
+ * @param containerEl - The panel.
28
+ */
29
+ readonly render: (containerEl: HTMLElement) => void;
30
+ }
31
+ /**
32
+ * Tabbed sections inside a plugin's settings: a row of tab buttons and one panel, which renders only the selected tab.
33
+ * The arrow keys, Home and End move between tabs, as in the WAI-ARIA tabs pattern.
34
+ *
35
+ * ```ts
36
+ * public override display(): void {
37
+ * this.containerEl.empty();
38
+ * new SettingsTabs(this.containerEl)
39
+ * .addTab({ id: 'general', name: 'General', render: (el) => this.renderGeneral(el) })
40
+ * .addTab({ id: 'advanced', name: 'Advanced', render: (el) => this.renderAdvanced(el) })
41
+ * .selectTab(this.lastTabId)
42
+ * .onTabChange((tabId) => {
43
+ * this.lastTabId = tabId;
44
+ * });
45
+ * }
46
+ * ```
47
+ *
48
+ * In order to add the styles for the component, use {@link initPluginContext} in your plugin's `onload()` function.
49
+ *
50
+ * Alternatively, you can copy styles from {@link https://unpkg.com/@mnaoumov/obsidian-lib/dist/styles.css}.
51
+ */
52
+ export declare class SettingsTabs {
53
+ /**
54
+ * The panel the selected tab renders into.
55
+ */
56
+ readonly panelEl: HTMLElement;
57
+ /**
58
+ * The row of tab buttons.
59
+ */
60
+ readonly tabBarEl: HTMLElement;
61
+ private changeCallback?;
62
+ private readonly entries;
63
+ private selectedTabId;
64
+ /**
65
+ * Creates new settings tabs.
66
+ *
67
+ * @param containerEl - The container element.
68
+ */
69
+ constructor(containerEl: HTMLElement);
70
+ /**
71
+ * Adds a tab. The first tab added is selected.
72
+ *
73
+ * @param tab - The tab.
74
+ * @returns The tabs.
75
+ * @throws If a tab with the same id was already added.
76
+ */
77
+ addTab(tab: SettingsTab): this;
78
+ /**
79
+ * Gets the id of the selected tab.
80
+ *
81
+ * @returns The id, or `null` before any tab is added.
82
+ */
83
+ getSelectedTabId(): null | string;
84
+ /**
85
+ * Sets the callback to be called when the user selects another tab.
86
+ *
87
+ * @param callback - The callback, given the id of the selected tab.
88
+ * @returns The tabs.
89
+ */
90
+ onTabChange(callback: (tabId: string) => void): this;
91
+ /**
92
+ * Selects a tab and renders it into the panel. An unknown id, such as a stored id whose tab was since removed, leaves
93
+ * the selection as it is.
94
+ *
95
+ * @param tabId - The id of the tab.
96
+ * @returns The tabs.
97
+ */
98
+ selectTab(tabId: null | string | undefined): this;
99
+ private findEntry;
100
+ private onKeyDown;
101
+ }
@@ -1,5 +1,6 @@
1
1
  /// <reference path="./library-references.d.mts" />
2
2
  export { AppActiveFileProvider } from './active-file-provider.mjs';
3
+ export { AnchoredSuggest } from './anchored-suggest.mjs';
3
4
  export { getApp } from './app.mjs';
4
5
  export { retryWithTimeoutNotice, runWithTimeoutNotice } from './async-with-notice.mjs';
5
6
  export { AttachmentPathContext, CUSTOM_ATTACHMENT_LOCATION_PLUGIN_ID, DUMMY_PATH, getAttachmentFilePath, getAttachmentFolderPath, getAttachmentFolderPathForAttachment, getAttachmentFolderPathSyncOrNull, getAvailablePathForAttachments, getCheckIsAttachmentUnitFolderFunction, hasOwnAttachmentFolder, isAtProperAttachmentPath } from './attachment-path.mjs';
@@ -14,9 +15,12 @@ export { CalloutMode, renderCallout, wrapForCallout } from './callout.mjs';
14
15
  export { getCanvasReferences } from './canvas.mjs';
15
16
  export { CaseInsensitiveFileIndex, getCaseInsensitiveFileIndex, setCaseInsensitiveFileIndex, unsetCaseInsensitiveFileIndex } from './case-insensitive-file-index.mjs';
16
17
  export { createCodeBlockRegExp } from './code-block-reg-exp.mjs';
18
+ export { captureCodeBlockFocus, claimCodeBlockRenderHandoff, CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS, recordCodeBlockRenderHandoff, restoreCodeBlockFocus } from './code-block-render-handoff.mjs';
17
19
  export { createIncrementalParseStateField } from './codemirror/incremental-parse-state-field.mjs';
20
+ export { createInlineTokenWidgetsExtension, execAll, toGlobalRegExp } from './codemirror/inline-token-widgets.mjs';
18
21
  export { dispatchToAllMarkdownEditorViews, getAllMarkdownEditorViews } from './codemirror/markdown-editor-views.mjs';
19
22
  export { rangeSetToArray } from './codemirror/range-set.mjs';
23
+ export { createSettingsFacet } from './codemirror/settings-facet.mjs';
20
24
  export { AbstractFileCommandHandler } from './command-handlers/abstract-file-command-handler.mjs';
21
25
  export { CommandHandlerComponent } from './command-handlers/command-handler-component.mjs';
22
26
  export { CommandHandler } from './command-handlers/command-handler.mjs';
@@ -62,6 +66,7 @@ export { RegistryComponent } from './components/registry-component.mjs';
62
66
  export { ReleaseNotesComponent } from './components/release-notes-component.mjs';
63
67
  export { EmptyFolderBehavior, RenameDeleteHandlerComponent } from './components/rename-delete-handler-component.mjs';
64
68
  export { NOT_EMPTY_DIRECTORY_ERROR_CODE, RmdirGuardComponent } from './components/rmdir-guard-component.mjs';
69
+ export { SettingsFacetComponent } from './components/settings-facet-component.mjs';
65
70
  export { SettingsMigrationComponent } from './components/settings-migration-component.mjs';
66
71
  export { SyntaxHighlightingComponent } from './components/syntax-highlighting-component.mjs';
67
72
  export { TemplatesLanguageComponent } from './components/templates-language-component.mjs';
@@ -81,8 +86,10 @@ export { getDemoVaultArchiveFileName, getDemoVaultFolderName } from './demo-vaul
81
86
  export { BulkOperationGitRepo, GitCommandError } from './desktop-bulk-operation-git.mjs';
82
87
  export { openDemoVault } from './desktop-demo-vault-opener.mjs';
83
88
  export { getDesktopOperatingSystem } from './desktop-operating-system.mjs';
89
+ export { openDesktopRequestUrlStream } from './desktop-request-url-stream.mjs';
84
90
  export { PluginEditorExtensionRegistrar } from './editor-extension-registrar.mjs';
85
91
  export { PluginEditorSuggestRegistrar } from './editor-suggest-registrar.mjs';
92
+ export { CommandEditorSuggest, prioritizeEditorSuggest } from './editor-suggest.mjs';
86
93
  export { syncOpenEditorBuffersForPath, toggleEditorReadOnly } from './editor.mjs';
87
94
  export { EventRefDisposable, subscribeDisposableEvent, subscribeEvent } from './events.mjs';
88
95
  export { PluginExtensionsRegistrar } from './extensions-registrar.mjs';
@@ -95,14 +102,17 @@ export { enableFrontmatterFormattingPreservation, preserveFrontmatterFormatting
95
102
  export { isFrontmatterLinkCacheWithOffsets, toFrontmatterLinkCacheWithOffsets } from './frontmatter-link-cache-with-offsets.mjs';
96
103
  export { checkIsPlainObject, parseFrontmatter, registerFrontmatterFormattingPreserver, removeEmptyFrontmatterValues, setFrontmatter } from './frontmatter.mjs';
97
104
  export { LIBRARY_STYLES, LIBRARY_VERSION } from './generated-during-build.mjs';
105
+ export { formatHotkey, getHotkeyFromKeyboardEvent, isSameHotkey } from './hotkey.mjs';
98
106
  export { PluginHoverLinkSourceRegistrar } from './hover-link-source-registrar.mjs';
99
107
  export { appendCodeBlock, appendTextOrFragmentClone, applySpellcheckMode, asCodeBlock, createFragmentWithCodeBlocks } from './html-element.mjs';
100
108
  export { DEFAULT_NS, initI18N, t } from './i18n/i18n.mjs';
101
109
  export { en } from './i18n/locales/en.mjs';
102
110
  export { DEFAULT_LANGUAGE, defaultTranslationsMap } from './i18n/locales/translations-map.mjs';
111
+ export { createInlineTokenPostProcessor, DEFAULT_INLINE_TOKEN_SKIP_SELECTOR, registerInlineTokenRenderer } from './inline-token-renderer.mjs';
103
112
  export { isInObsidian } from './is-in-obsidian.mjs';
104
113
  export { injectLibraryStyles, LAST_LIBRARY_VERSION_KEY, LIBRARY_STYLES_ELEMENT_ID } from './library-styles.mjs';
105
114
  export { OBSIDIAN_LIBRARY_NAME, ObsidianLibrary } from './library.mjs';
115
+ export { getLinkAndTagCompletionTrigger, getVaultTagSuggestions, LinkAndTagCompletionKind, LinkAndTagInputSuggest } from './link-and-tag-input-suggest.mjs';
106
116
  export { normalizeLinkName } from './link-name.mjs';
107
117
  export { buildBacklinksSnapshot, convertLink, editBacklinks, editBacklinksSnapshot, editReferences, editReferencesInContent, extractReferenceFile, generateMarkdownLink, generateRawMarkdownLink, getGenerateMarkdownLinkDefaultParamsFns, hasAngleBrackets, hasEmbedSyntax, hasLeadingDot, hasLeadingSlash, hasWikilinkSyntax, LinkPathStyle, LinkStyle, shouldResetAlias, splitSubpath, updateFileUrlLinksInContent, updateFileUrlLinksInFile, updateLink, updateReferencesInContent, updateReferencesInFile } from './link.mjs';
108
118
  export { invokeAsyncAndLog } from './logger.mjs';
@@ -150,6 +160,8 @@ export { checkPropertyEntryMatches, isPropertyEntry, PROPERTY_ENTRY_PREFIX } fro
150
160
  export { addToQueue, addToQueueAndWait, flushQueue } from './queue.mjs';
151
161
  export { AppContext, useApp } from './react/app-context.mjs';
152
162
  export { getReferenceLinkText, isCanvasFileNodeReference, isCanvasReference, isCanvasTextNodeReference, isReferenceInHeading, isReferenceInOffsetRange, referenceToFileChange, sortReferences } from './reference.mjs';
163
+ export { isOwnedByRenderedMarkdown, registerFoldHandlers, registerFootnoteLinkHandler } from './rendered-markdown.mjs';
164
+ export { createRequestUrlFetch, encodeRequestUrlRequest, RequestUrlError, requestUrlEx, requestUrlStream } from './request-url.mjs';
153
165
  export { isResourceLockedForPath, isResourceLockedForPathByAncestor, lockResourceForPath, requestResourceUnlockForPath, ResourceLockComponent, ResourceLockedError, unlockResourceForPath } from './resource-lock.mjs';
154
166
  export { relativePathToResourceUrl } from './resource-url.mjs';
155
167
  export { PluginRibbonIconRegistrar } from './ribbon-icon-registrar.mjs';
@@ -159,6 +171,9 @@ export { DateComponent } from './setting-components/date-component.mjs';
159
171
  export { DateTimeComponent } from './setting-components/date-time-component.mjs';
160
172
  export { EmailComponent } from './setting-components/email-component.mjs';
161
173
  export { FileComponent } from './setting-components/file-component.mjs';
174
+ export { FolderInputSuggest, FolderListComponent } from './setting-components/folder-list-component.mjs';
175
+ export { HotkeyComponent } from './setting-components/hotkey-component.mjs';
176
+ export { ListComponent } from './setting-components/list-component.mjs';
162
177
  export { MonthComponent } from './setting-components/month-component.mjs';
163
178
  export { MultipleDropdownComponent } from './setting-components/multiple-dropdown-component.mjs';
164
179
  export { MultipleEmailComponent } from './setting-components/multiple-email-component.mjs';
@@ -167,6 +182,7 @@ export { MultipleTextComponent } from './setting-components/multiple-text-compon
167
182
  export { NumberComponent } from './setting-components/number-component.mjs';
168
183
  export { PasswordComponent } from './setting-components/password-component.mjs';
169
184
  export { ensureWrapped } from './setting-components/setting-component-wrapper.mjs';
185
+ export { TagInputSuggest, TagListComponent } from './setting-components/tag-list-component.mjs';
170
186
  export { TelephoneComponent } from './setting-components/telephone-component.mjs';
171
187
  export { getTextBasedComponentValue } from './setting-components/text-based-component.mjs';
172
188
  export { TimeComponent } from './setting-components/time-component.mjs';
@@ -181,6 +197,7 @@ export { WeekComponent } from './setting-components/week-component.mjs';
181
197
  export { adoptSettingEx, SettingEx } from './setting-ex.mjs';
182
198
  export { SettingGroupEx } from './setting-group-ex.mjs';
183
199
  export { openSettingTab } from './settings-modal.mjs';
200
+ export { SettingsTabs } from './settings-tabs.mjs';
184
201
  export { PluginStatusBarItemRegistrar } from './status-bar-item-registrar.mjs';
185
202
  export { getTemplaterFunctions, getTemplaterRenderTargetFile, parseTemplate, requireTemplaterApi, resolveTemplaterApi, TEMPLATER_PLUGIN_ID, TemplaterActiveFileProvider, TemplaterRunMode, TemplaterUnavailabilityReason, TemplaterUnavailableError } from './templater.mjs';
186
203
  export { DurationTransformer } from './transformers/duration-transformer.mjs';