obsidian-typings 4.25.0 → 4.26.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.
@@ -6,9 +6,10 @@ import type { ChangeDesc, Extension, Transaction } from '@codemirror/state';
6
6
  import type { EditorView, ViewUpdate } from '@codemirror/view';
7
7
  import type { Tree as LezerTree } from '@lezer/common';
8
8
  import type { App as App$1, BrowserWindow } from 'electron';
9
+ import moment$1 from 'moment';
9
10
  import type { default as moment$1 } from 'moment';
10
11
  import type { FSWatcher } from 'node:fs';
11
- import type { App, BlockCache, CacheItem, CachedMetadata, CloseableComponent, ColorComponent, Command, Component, DataAdapter, Debouncer, EditableFileView, Editor, EditorPosition, EditorRange, EditorRangeOrCaret, EditorSuggest, EmbedCache, EventRef, Events, FileStats, FileView, FrontmatterLinkCache, FuzzySuggestModal, HoverLinkSource, HoverPopover, IconName, ItemView, KeymapInfo, LinkCache, MarkdownEditView, MarkdownFileInfo, MarkdownPostProcessorContext, MarkdownPreviewView, MarkdownView, Menu, Modal, PaneType, Plugin as Plugin, PluginManifest, PluginSettingTab, Reference, ReferenceCache, Scope, SearchComponent, SearchResult, Setting, SettingTab, SplitDirection, TAbstractFile, TFile, TFolder, TextComponent, TextFileView, Vault, View, ViewCreator, ViewState, Workspace, WorkspaceLeaf, WorkspaceTabs } from 'obsidian';
12
+ import type { App, BlockCache, CacheItem, CachedMetadata, CloseableComponent, ColorComponent, Command, Component, DataAdapter, Debouncer, EditableFileView, Editor, EditorPosition, EditorRange, EditorRangeOrCaret, EditorSuggest, EmbedCache, EventRef, Events, FileStats, FileView, FrontmatterLinkCache, FuzzySuggestModal, HoverLinkSource, HoverPopover, IconName, ItemView, KeymapInfo, LinkCache, MarkdownEditView, MarkdownFileInfo, MarkdownPostProcessorContext, MarkdownPreviewView, MarkdownView, Menu, Modal, PaneType, Plugin as Plugin, PluginManifest, PluginSettingTab, PopoverSuggest, Reference, ReferenceCache, Scope, SearchComponent, SearchResult, Setting, SettingTab, SplitDirection, TAbstractFile, TFile, TFolder, TextComponent, TextFileView, Vault, View, ViewCreator, ViewState, Workspace, WorkspaceLeaf, WorkspaceTabs } from 'obsidian';
12
13
  import type { Application, Container, Graphics, ICanvas, Sprite, Text as Text$1, TextStyle } from 'pixi.js';
13
14
 
14
15
  /**
@@ -572,21 +573,20 @@ export interface AddOverlayOptions {
572
573
  query: RegExp;
573
574
  }
574
575
  /**
575
- * @todo Documentation incomplete.
576
+ * Property widget component for aliases.
577
+ *
576
578
  * @public
577
579
  * @unofficial
578
580
  */
579
- export interface AliasesPropertyWidgetComponent extends PropertyWidgetComponentBase {
580
- /** @todo Documentation incomplete. */
581
+ export interface AliasesPropertyWidgetComponent extends PropertyWidgetComponentBase<string | string[]> {
582
+ /** The render context for the property widget. */
581
583
  ctx: PropertyRenderContext;
582
- /** @todo Documentation incomplete. */
584
+ /** The hover popover for the property widget. */
583
585
  hoverPopover: HoverPopover | null;
584
- /** @todo Documentation incomplete. */
586
+ /** The multiselect component for the property widget. */
585
587
  multiselect: Multiselect;
586
- /** @todo Documentation incomplete. */
588
+ /** The type of the property widget. */
587
589
  type: "aliases";
588
- /** @todo Documentation incomplete. */
589
- setValue(value: string | string[]): void;
590
590
  }
591
591
  /**
592
592
  * @todo Documentation incomplete.
@@ -2986,17 +2986,16 @@ export interface CapacitorFileEntry extends Partial<FileStats> {
2986
2986
  export interface CeilFunction extends BasesFunction, HasGetDisplayName {
2987
2987
  }
2988
2988
  /**
2989
- * @todo Documentation incomplete.
2989
+ * Property widget component for checkboxes.
2990
+ *
2990
2991
  * @public
2991
2992
  * @unofficial
2992
2993
  */
2993
- export interface CheckboxPropertyWidgetComponent extends PropertyWidgetComponentBase {
2994
- /** @todo Documentation incomplete. */
2994
+ export interface CheckboxPropertyWidgetComponent extends PropertyWidgetComponentBase<boolean> {
2995
+ /** The checkbox element for the property widget. */
2995
2996
  checkboxEl: HTMLInputElement;
2996
- /** @todo Documentation incomplete. */
2997
+ /** The type of the property widget. */
2997
2998
  type: "checkbox";
2998
- /** @todo Documentation incomplete. */
2999
- setValue(value: boolean | null): void;
3000
2999
  }
3001
3000
  /**
3002
3001
  * @todo Documentation incomplete.
@@ -3878,34 +3877,65 @@ export interface DateOnOrAfterFunction extends BasesFunction, HasGetDisplayName,
3878
3877
  export interface DateOnOrBeforeFunction extends BasesFunction, HasGetDisplayName, HasCompare, HasGetRHSWidgetType {
3879
3878
  }
3880
3879
  /**
3881
- * @todo Documentation incomplete.
3880
+ * Property widget component for dates.
3881
+ *
3882
3882
  * @public
3883
3883
  * @unofficial
3884
3884
  */
3885
- export interface DatePropertyWidgetComponent extends PropertyWidgetComponentBase {
3886
- /** @todo Documentation incomplete. */
3887
- inputEl: HTMLInputElement;
3888
- /** @todo Documentation incomplete. */
3885
+ export interface DatePropertyWidgetComponent extends DatePropertyWidgetComponentBase {
3886
+ /** The button element for the property widget. */
3887
+ buttonEl: HTMLDivElement | null;
3888
+ /** The type of the property widget. */
3889
3889
  type: "date";
3890
- /** @todo Documentation incomplete. */
3891
- parseDate(input: moment$1.MomentInput): string;
3892
- /** @todo Documentation incomplete. */
3893
- setValue(value: string | null): void;
3894
3890
  }
3895
3891
  /**
3896
- * @todo Documentation incomplete.
3892
+ * Base interface for date property widget components.
3893
+ *
3897
3894
  * @public
3898
3895
  * @unofficial
3899
3896
  */
3900
- export interface DatetimePropertyWidgetComponent extends PropertyWidgetComponentBase {
3901
- /** @todo Documentation incomplete. */
3897
+ export interface DatePropertyWidgetComponentBase extends PropertyWidgetComponentBase<moment$1.MomentInput> {
3898
+ /** The date of the property widget. */
3899
+ date?: moment$1.Moment;
3900
+ /** Whether the property widget is dirty. */
3901
+ dirty: boolean;
3902
+ /** The hover popup for the property widget. */
3903
+ hoverPopup: HoverPopover | null;
3904
+ /** The input element for the property widget. */
3902
3905
  inputEl: HTMLInputElement;
3903
- /** @todo Documentation incomplete. */
3906
+ /** The value of the property widget. */
3907
+ value: string;
3908
+ /**
3909
+ * Build the input element for the property widget.
3910
+ *
3911
+ * @param parentEl - The parent element.
3912
+ * @returns The input element.
3913
+ */
3914
+ buildInput(parentEl: HTMLElement): HTMLInputElement;
3915
+ /**
3916
+ * Format the date input.
3917
+ *
3918
+ * @param input - The input to format.
3919
+ * @returns The formatted date.
3920
+ */
3921
+ format(input: moment$1.Moment): string;
3922
+ /**
3923
+ * Parse the date input.
3924
+ *
3925
+ * @param input - The input to parse.
3926
+ * @returns The parsed date.
3927
+ */
3928
+ parse(input: moment$1.MomentInput): void;
3929
+ }
3930
+ /**
3931
+ * Property widget component for datetimes.
3932
+ *
3933
+ * @public
3934
+ * @unofficial
3935
+ */
3936
+ export interface DatetimePropertyWidgetComponent extends DatePropertyWidgetComponentBase {
3937
+ /** The type of the property widget. */
3904
3938
  type: "datetime";
3905
- /** @todo Documentation incomplete. */
3906
- parseDateTime(input: moment$1.MomentInput): string;
3907
- /** @todo Documentation incomplete. */
3908
- setValue(value: string | null): void;
3909
3939
  }
3910
3940
  /**
3911
3941
  * @todo Documentation incomplete.
@@ -5185,17 +5215,16 @@ export interface FilePropertiesViewConstructor extends TypedViewConstructor<File
5185
5215
  ]> {
5186
5216
  }
5187
5217
  /**
5188
- * @todo Documentation incomplete.
5218
+ * Property widget component for files.
5219
+ *
5189
5220
  * @public
5190
5221
  * @unofficial
5191
5222
  */
5192
- export interface FilePropertyWidgetComponent extends PropertyWidgetComponentBase {
5193
- /** @todo Documentation incomplete. */
5223
+ export interface FilePropertyWidgetComponent extends PropertyWidgetComponentBase<string | null> {
5224
+ /** The input element for the property widget. */
5194
5225
  inputEl: HTMLInputElement;
5195
- /** @todo Documentation incomplete. */
5226
+ /** The type of the property widget. */
5196
5227
  type: "file";
5197
- /** @todo Documentation incomplete. */
5198
- setValue(value: string | null): void;
5199
5228
  }
5200
5229
  /**
5201
5230
  * @todo Documentation incomplete.
@@ -5412,17 +5441,16 @@ export interface FolderBookmarkItem extends BookmarkItem {
5412
5441
  type: "folder";
5413
5442
  }
5414
5443
  /**
5415
- * @todo Documentation incomplete.
5444
+ * Property widget component for folders.
5445
+ *
5416
5446
  * @public
5417
5447
  * @unofficial
5418
5448
  */
5419
- export interface FolderPropertyWidgetComponent extends PropertyWidgetComponentBase {
5420
- /** @todo Documentation incomplete. */
5449
+ export interface FolderPropertyWidgetComponent extends PropertyWidgetComponentBase<string> {
5450
+ /** The input element for the property widget. */
5421
5451
  inputEl: HTMLInputElement;
5422
- /** @todo Documentation incomplete. */
5452
+ /** The type of the property widget. */
5423
5453
  type: "folder";
5424
- /** @todo Documentation incomplete. */
5425
- setValue(value: string | null): void;
5426
5454
  }
5427
5455
  /**
5428
5456
  * @todo Documentation incomplete.
@@ -7802,6 +7830,14 @@ export interface MetadataTypeManager extends Events {
7802
7830
  * Reference to App.
7803
7831
  */
7804
7832
  app: App;
7833
+ /**
7834
+ * Associated widget types for each property.
7835
+ */
7836
+ assignedWidgets: MetadataTypeManagerTypesRecord;
7837
+ /**
7838
+ * Unix timestamp of the last save
7839
+ */
7840
+ lastSave: number;
7805
7841
  /** @todo Documentation incomplete. */
7806
7842
  onConfigFileChange: Debouncer<[
7807
7843
  ], Promise<void>>;
@@ -7813,10 +7849,6 @@ export interface MetadataTypeManager extends Events {
7813
7849
  * Registered type widgets.
7814
7850
  */
7815
7851
  registeredTypeWidgets: MetadataTypeManagerRegisteredTypeWidgetsRecord;
7816
- /**
7817
- * Associated widget types for each property.
7818
- */
7819
- types: MetadataTypeManagerTypesRecord;
7820
7852
  /**
7821
7853
  * Get all registered properties of the vault.
7822
7854
  */
@@ -7824,7 +7856,7 @@ export interface MetadataTypeManager extends Events {
7824
7856
  /**
7825
7857
  * Get assigned widget type for property.
7826
7858
  */
7827
- getAssignedType(property: string): PropertyWidgetType | null;
7859
+ getAssignedWidget(property: string): PropertyWidgetType | null;
7828
7860
  /**
7829
7861
  * Get info for property.
7830
7862
  */
@@ -7834,9 +7866,9 @@ export interface MetadataTypeManager extends Events {
7834
7866
  */
7835
7867
  getTypeInfo(options: GetTypeInfoOptions): TypeInfo;
7836
7868
  /**
7837
- * Get all properties with an assigned widget type.
7869
+ * Get property widget.
7838
7870
  */
7839
- getTypes(): string[];
7871
+ getWidget(type: string): PropertyWidget<unknown>;
7840
7872
  /**
7841
7873
  * Load property types from config.
7842
7874
  */
@@ -7849,10 +7881,6 @@ export interface MetadataTypeManager extends Events {
7849
7881
  * Save property types to config.
7850
7882
  */
7851
7883
  save(): Promise<void>;
7852
- /**
7853
- * Get all properties from metadata cache.
7854
- */
7855
- savePropertyInfo(): void;
7856
7884
  /**
7857
7885
  * Set widget type for property.
7858
7886
  */
@@ -7861,6 +7889,10 @@ export interface MetadataTypeManager extends Events {
7861
7889
  * Unset widget type for property.
7862
7890
  */
7863
7891
  unsetType(property: string): Promise<void>;
7892
+ /**
7893
+ * Updates `this.properties` to match the MetadataCache
7894
+ */
7895
+ updatePropertyInfoCache(): void;
7864
7896
  }
7865
7897
  /**
7866
7898
  * @todo Documentation incomplete.
@@ -7870,31 +7902,34 @@ export interface MetadataTypeManager extends Events {
7870
7902
  export interface MetadataTypeManagerPropertiesRecord extends Record<string, PropertyInfo> {
7871
7903
  }
7872
7904
  /**
7873
- * @todo Documentation incomplete.
7905
+ * Registered type widgets.
7906
+ *
7874
7907
  * @public
7875
7908
  * @unofficial
7876
7909
  */
7877
7910
  export interface MetadataTypeManagerRegisteredTypeWidgetsRecord extends Record<PropertyWidgetType, PropertyWidget<unknown>> {
7878
- /** @todo Documentation incomplete. */
7911
+ /** Property widget for aliases. */
7879
7912
  aliases: PropertyWidget<string | string[], AliasesPropertyWidgetComponent>;
7880
- /** @todo Documentation incomplete. */
7881
- checkbox: PropertyWidget<boolean | null, CheckboxPropertyWidgetComponent>;
7882
- /** @todo Documentation incomplete. */
7913
+ /** Property widget for checkboxes. */
7914
+ checkbox: PropertyWidget<boolean, CheckboxPropertyWidgetComponent>;
7915
+ /** Property widget for dates. */
7883
7916
  date: PropertyWidget<moment$1.MomentInput, DatePropertyWidgetComponent>;
7884
- /** @todo Documentation incomplete. */
7917
+ /** Property widget for datetimes. */
7885
7918
  datetime: PropertyWidget<moment$1.MomentInput, DatetimePropertyWidgetComponent>;
7886
- /** @todo Documentation incomplete. */
7919
+ /** Property widget for files. */
7887
7920
  file: PropertyWidget<string, FilePropertyWidgetComponent>;
7888
- /** @todo Documentation incomplete. */
7921
+ /** Property widget for folders. */
7889
7922
  folder: PropertyWidget<string, FolderPropertyWidgetComponent>;
7890
- /** @todo Documentation incomplete. */
7891
- multitext: PropertyWidget<string[], MultitextPropertyWidgetComponent>;
7892
- /** @todo Documentation incomplete. */
7923
+ /** Property widget for multitexts. */
7924
+ multitext: PropertyWidget<string[] | string, MultitextPropertyWidgetComponent>;
7925
+ /** Property widget for numbers. */
7893
7926
  number: PropertyWidget<number, NumberPropertyWidgetComponent>;
7894
- /** @todo Documentation incomplete. */
7895
- tags: PropertyWidget<string[], TagsPropertyWidgetComponent>;
7896
- /** @todo Documentation incomplete. */
7897
- text: PropertyWidget<null | string, TextPropertyWidgetComponent>;
7927
+ /** Property widget for properties. */
7928
+ property: PropertyWidget<string, PropertyPropertyWidgetComponent>;
7929
+ /** Property widget for tags. */
7930
+ tags: PropertyWidget<string[] | string, TagsPropertyWidgetComponent>;
7931
+ /** Property widget for text. */
7932
+ text: PropertyWidget<string, TextPropertyWidgetComponent>;
7898
7933
  }
7899
7934
  /**
7900
7935
  * @todo Documentation incomplete.
@@ -7993,82 +8028,178 @@ export interface MobileToolbar {
7993
8028
  export interface MonthFunction extends BasesFunction, HasExtract {
7994
8029
  }
7995
8030
  /**
7996
- * @todo Documentation incomplete.
8031
+ * Multiselect component.
8032
+ *
7997
8033
  * @public
7998
8034
  * @unofficial
7999
8035
  */
8000
8036
  export interface Multiselect {
8001
- /** @todo Documentation incomplete. */
8002
- changeCallback?: (values: string[]) => void;
8003
- /** @todo Documentation incomplete. */
8037
+ /** The elements of the multiselect. */
8004
8038
  elements: HTMLDivElement[];
8005
- /** @todo Documentation incomplete. */
8039
+ /** The input element of the multiselect. */
8006
8040
  inputEl: HTMLDivElement;
8007
- /** @todo Documentation incomplete. */
8041
+ /** The text of the input element of the multiselect. */
8008
8042
  readonly inputText: string;
8009
- /** @todo Documentation incomplete. */
8010
- optionRenderer?: (value: string, ctx: OptionContext) => void;
8011
- /** @todo Documentation incomplete. */
8043
+ /** The root element of the multiselect. */
8012
8044
  rootEl: HTMLDivElement;
8013
- /** @todo Documentation incomplete. */
8014
- setupInput: (this: Multiselect, inputEl: HTMLDivElement, initializer: (value: string, shouldFocus?: boolean) => unknown) => void;
8015
- /** @todo Documentation incomplete. */
8045
+ /** The values of the multiselect. */
8016
8046
  values: string[];
8017
- /** @todo Documentation incomplete. */
8047
+ /**
8048
+ * Create a new element for the multiselect.
8049
+ *
8050
+ * @param value - the value of the element.
8051
+ * @returns the created element or `null` if the value is not valid.
8052
+ */
8018
8053
  _createElement(value: string): string | null;
8019
- /** @todo Documentation incomplete. */
8054
+ /** Create a new input element for the multiselect. */
8020
8055
  _createInputEl(): HTMLDivElement;
8021
- /** @todo Documentation incomplete. */
8056
+ /**
8057
+ * Add a new element to the multiselect.
8058
+ *
8059
+ * @param value - the value of the element.
8060
+ * @returns `true` if the element was added, `false` otherwise.
8061
+ */
8022
8062
  addElement(value: string): boolean;
8023
- /** @todo Documentation incomplete. */
8063
+ /**
8064
+ * Allow creating options for the multiselect.
8065
+ *
8066
+ * @param createOption - the function to create an option.
8067
+ * @returns the multiselect.
8068
+ */
8024
8069
  allowCreatingOptions(createOption: (this: Multiselect, value: string) => string | undefined): this;
8025
- /** @todo Documentation incomplete. */
8070
+ /**
8071
+ * The callback for the change event.
8072
+ *
8073
+ * @param values - the values of the multiselect.
8074
+ */
8075
+ changeCallback?(values: string[]): void;
8076
+ /**
8077
+ * Create a new option for the multiselect.
8078
+ *
8079
+ * @param value - the value of the option.
8080
+ * @returns the created option or `undefined` if the value is not valid.
8081
+ */
8026
8082
  createOption?(this: Multiselect, value: string): string | undefined;
8027
- /** @todo Documentation incomplete. */
8083
+ /**
8084
+ * Edit an element of the multiselect.
8085
+ *
8086
+ * @param index - the index of the element.
8087
+ */
8028
8088
  editElement(index: number): void;
8029
- /** @todo Documentation incomplete. */
8089
+ /**
8090
+ * Find a duplicate in the multiselect.
8091
+ *
8092
+ * @param values - the values to find a duplicate in.
8093
+ * @returns `true` if a duplicate was found, `false` otherwise.
8094
+ */
8030
8095
  findDuplicate?(this: Multiselect, values: string[]): boolean;
8031
- /** @todo Documentation incomplete. */
8096
+ /**
8097
+ * Focus an element of the multiselect.
8098
+ *
8099
+ * @param index - the index of the element.
8100
+ */
8032
8101
  focusElement(index: number): void;
8033
- /** @todo Documentation incomplete. */
8102
+ /**
8103
+ * Handle the change event of the multiselect.
8104
+ *
8105
+ * @param changeCallback - the callback to handle the change event.
8106
+ */
8034
8107
  onChange(changeCallback: (values: string[]) => void): void;
8035
- /** @todo Documentation incomplete. */
8036
- onOptionContextmenu?(this: Multiselect, menu: Menu, value: string, ctx: OptionContext): void;
8037
- /** @todo Documentation incomplete. */
8108
+ /**
8109
+ * Handle the context menu event of the multiselect.
8110
+ *
8111
+ * @param menu - the menu to handle the context menu event.
8112
+ * @param value - the value of the element.
8113
+ */
8114
+ onOptionContextmenu?(this: Multiselect, menu: Menu, value: string, ctx: MultiselectOptionContextMenuContext): void;
8115
+ /** The renderer for the options of the multiselect. */
8116
+ optionRenderer?(value: string, ctx: MultiselectOptionContextMenuContext): void;
8117
+ /**
8118
+ * Prevent duplicates in the multiselect.
8119
+ *
8120
+ * @param findDuplicate - the function to find a duplicate.
8121
+ * @returns the multiselect.
8122
+ */
8038
8123
  preventDuplicates(findDuplicate: (this: Multiselect, values: string[]) => number): this;
8039
- /** @todo Documentation incomplete. */
8124
+ /**
8125
+ * Remove an element of the multiselect.
8126
+ *
8127
+ * @param index - the index of the element.
8128
+ */
8040
8129
  removeElement(index: number, shouldFocus?: boolean): void;
8041
- /** @todo Documentation incomplete. */
8130
+ /** Render the values of the multiselect. */
8042
8131
  renderValues(): void;
8043
- /** @todo Documentation incomplete. */
8132
+ /**
8133
+ * Set the text of the input element of the multiselect.
8134
+ *
8135
+ * @param text - the text to set.
8136
+ */
8044
8137
  setInputText(text: string): void;
8045
- /** @todo Documentation incomplete. */
8046
- setOptionContextmenuHandler(onOptionContextmenu: (this: Multiselect, menu: Menu, value: string, ctx: OptionContext) => void): this;
8047
- /** @todo Documentation incomplete. */
8048
- setOptionRenderer(optionRenderer: (value: string, ctx: OptionContext) => void): this;
8049
- /** @todo Documentation incomplete. */
8138
+ /**
8139
+ * Set the context menu handler of the multiselect.
8140
+ *
8141
+ * @param onOptionContextmenu - the function to handle the context menu event.
8142
+ * @returns the multiselect.
8143
+ */
8144
+ setOptionContextmenuHandler(onOptionContextmenu: (this: Multiselect, menu: Menu, value: string, ctx: MultiselectOptionContextMenuContext) => void): this;
8145
+ /**
8146
+ * Set the option renderer of the multiselect.
8147
+ *
8148
+ * @param optionRenderer - the function to render the options.
8149
+ * @returns the multiselect.
8150
+ */
8151
+ setOptionRenderer(optionRenderer: (value: string, ctx: MultiselectOptionContextMenuContext) => void): this;
8152
+ /**
8153
+ * The setup function for the input element of the multiselect.
8154
+ *
8155
+ * @param inputEl - the input element.
8156
+ * @param initializer - the initializer function.
8157
+ */
8158
+ setupInput?(this: Multiselect, inputEl: HTMLDivElement, initializer: (value: string, shouldFocus?: boolean) => unknown): void;
8159
+ /**
8160
+ * Set the setup function for the input element of the multiselect.
8161
+ *
8162
+ * @param setupInput - the function to setup the input element.
8163
+ * @returns the multiselect.
8164
+ */
8050
8165
  setupInputEl(setupInput: (this: Multiselect, inputEl: HTMLDivElement, initializer: (value: string, shouldFocus?: boolean) => unknown) => void): this;
8051
- /** @todo Documentation incomplete. */
8166
+ /**
8167
+ * Set the values of the multiselect.
8168
+ *
8169
+ * @param values - the values to set.
8170
+ * @returns the multiselect.
8171
+ */
8052
8172
  setValues(values: string[] | null): this;
8053
- /** @todo Documentation incomplete. */
8173
+ /** Trigger the change event of the multiselect. */
8054
8174
  triggerChange(): void;
8055
8175
  }
8056
8176
  /**
8057
- * @todo Documentation incomplete.
8177
+ * Multiselect option context menu context.
8178
+ *
8058
8179
  * @public
8059
8180
  * @unofficial
8060
8181
  */
8061
- export interface MultitextPropertyWidgetComponent extends PropertyWidgetComponentBase {
8062
- /** @todo Documentation incomplete. */
8182
+ export interface MultiselectOptionContextMenuContext {
8183
+ /** The element of the option context. */
8184
+ el: HTMLDivElement;
8185
+ /** The pill element of the option context. */
8186
+ pillEl: HTMLDivElement;
8187
+ }
8188
+ /**
8189
+ * Property widget component for multiple texts.
8190
+ *
8191
+ * @public
8192
+ * @unofficial
8193
+ */
8194
+ export interface MultitextPropertyWidgetComponent extends PropertyWidgetComponentBase<string[] | string> {
8195
+ /** The hover popover for the property widget. */
8063
8196
  hoverPopover: HoverPopover | null;
8064
- /** @todo Documentation incomplete. */
8197
+ /** The multiselect component for the property widget. */
8065
8198
  multiselect: Multiselect;
8066
- /** @todo Documentation incomplete. */
8199
+ /** The type of the property widget. */
8067
8200
  type: "multitext";
8068
- /** @todo Documentation incomplete. */
8201
+ /** The values of the property widget. */
8069
8202
  valueSet: Set<string>;
8070
- /** @todo Documentation incomplete. */
8071
- setValue(value: string[] | string): void;
8072
8203
  }
8073
8204
  /**
8074
8205
  * @todo Documentation incomplete.
@@ -8172,17 +8303,18 @@ export interface NoteComposerPluginOptions {
8172
8303
  export interface NowFunction extends BasesFunction {
8173
8304
  }
8174
8305
  /**
8175
- * @todo Documentation incomplete.
8306
+ * Property widget component for numbers.
8307
+ *
8176
8308
  * @public
8177
8309
  * @unofficial
8178
8310
  */
8179
- export interface NumberPropertyWidgetComponent extends PropertyWidgetComponentBase {
8180
- /** @todo Documentation incomplete. */
8311
+ export interface NumberPropertyWidgetComponent extends PropertyWidgetComponentBase<number> {
8312
+ /** The input element for the property widget. */
8181
8313
  inputEl: HTMLInputElement;
8182
- /** @todo Documentation incomplete. */
8314
+ /** The type of the property widget. */
8183
8315
  type: "number";
8184
- /** @todo Documentation incomplete. */
8185
- setValue(value: number | null): void;
8316
+ /** Show the error message. */
8317
+ showError(): void;
8186
8318
  }
8187
8319
  /**
8188
8320
  * @todo Documentation incomplete.
@@ -8283,17 +8415,6 @@ export interface OpenNotificationOptions {
8283
8415
  /** @todo Documentation incomplete. */
8284
8416
  duration?: number;
8285
8417
  }
8286
- /**
8287
- * @todo Documentation incomplete.
8288
- * @public
8289
- * @unofficial
8290
- */
8291
- export interface OptionContext {
8292
- /** @todo Documentation incomplete. */
8293
- el: HTMLDivElement;
8294
- /** @todo Documentation incomplete. */
8295
- pillEl: HTMLDivElement;
8296
- }
8297
8418
  /**
8298
8419
  * @todo Documentation incomplete.
8299
8420
  * @public
@@ -8503,7 +8624,6 @@ export interface PdfViewConstructor extends TypedViewConstructor<PdfView> {
8503
8624
  * @unofficial
8504
8625
  *
8505
8626
  * Due to limitations of TypeScript, we cannot extend the `Platform` constant directly.
8506
- *
8507
8627
  * @example
8508
8628
  *
8509
8629
  * ```ts
@@ -8858,18 +8978,164 @@ export interface PropertyEntryData<T> {
8858
8978
  * @unofficial
8859
8979
  */
8860
8980
  export interface PropertyInfo {
8861
- /**
8862
- * Usage count of property.
8863
- */
8864
- count: number;
8865
8981
  /**
8866
8982
  * Name of property.
8867
8983
  */
8868
8984
  name: string;
8985
+ /**
8986
+ * Usage count of property.
8987
+ */
8988
+ occurrences: number;
8869
8989
  /**
8870
8990
  * Type of property.
8871
8991
  */
8872
- type: string;
8992
+ widget: string;
8993
+ }
8994
+ /**
8995
+ * Property widget component for properties.
8996
+ *
8997
+ * @public
8998
+ * @unofficial
8999
+ */
9000
+ export interface PropertyPropertyWidgetComponent extends PropertyWidgetComponentBase<string> {
9001
+ /** The combobox component for the property widget. */
9002
+ combobox: PropertyPropertyWidgetComponentComboBox;
9003
+ /** The input element for the property widget. */
9004
+ inputEl: HTMLInputElement;
9005
+ /** The type of the property widget. */
9006
+ type: "property";
9007
+ }
9008
+ /**
9009
+ * Combobox component for {@link PropertyPropertyWidgetComponent}.
9010
+ *
9011
+ * @public
9012
+ * @unofficial
9013
+ */
9014
+ export interface PropertyPropertyWidgetComponentComboBox extends PopoverSuggest<PropertyPropertyWidgetComponentComboBoxItem> {
9015
+ /** The items of the combobox. */
9016
+ _items: PropertyPropertyWidgetComponentComboBoxItem[];
9017
+ /** The background element of the combobox. */
9018
+ bgEl: HTMLDivElement;
9019
+ /** The button element of the combobox. */
9020
+ buttonEl: HTMLDivElement;
9021
+ /** Whether the combobox is clearable. */
9022
+ clearable: boolean;
9023
+ /** The icon element of the combobox. */
9024
+ iconEl: HTMLDivElement;
9025
+ /** The label element of the combobox. */
9026
+ labelEl: HTMLDivElement;
9027
+ /** The search component of the combobox. */
9028
+ searchComponent: SearchComponent;
9029
+ /** The current value of the combobox. */
9030
+ value: PropertyPropertyWidgetComponentComboBoxItem | null;
9031
+ /**
9032
+ * Callback for `onClose`.
9033
+ */
9034
+ _onClose?(): void;
9035
+ /**
9036
+ * Callback for `onOpen`.
9037
+ */
9038
+ _onOpen?(): void;
9039
+ /** Attach the DOM of the combobox. */
9040
+ attachDom(): void;
9041
+ /** Detach the DOM of the combobox. */
9042
+ detachDom(): Promise<void>;
9043
+ /** Focus the combobox. */
9044
+ focus(): void;
9045
+ /** Get the items of the combobox. */
9046
+ getItems(): PropertyPropertyWidgetComponentComboBoxItem[];
9047
+ /**
9048
+ * Callback for `getSuggestions`.
9049
+ */
9050
+ getSuggestions(query: string): SearchResult[];
9051
+ /**
9052
+ * Register a callback for `close` event.
9053
+ *
9054
+ * @param callback - the callback to register.
9055
+ */
9056
+ onClose(callback: () => void): this;
9057
+ /**
9058
+ * Handle the input change event of the combobox.
9059
+ *
9060
+ * @param query - the query to handle.
9061
+ */
9062
+ onInputChange(query: string): void;
9063
+ /**
9064
+ * Register a callback for `open` event.
9065
+ *
9066
+ * @param callback - the callback to register.
9067
+ */
9068
+ onOpen(callback: () => void): this;
9069
+ /**
9070
+ * Register a callback for `select` event.
9071
+ *
9072
+ * @param callback - the callback to register.
9073
+ */
9074
+ onSelect(callback: (item: PropertyPropertyWidgetComponentComboBoxItem) => void): this;
9075
+ /** Render the label of the combobox. */
9076
+ renderLabel(): void;
9077
+ /**
9078
+ * Callback for `onSelect`.
9079
+ *
9080
+ * @param item - the item that was selected.
9081
+ */
9082
+ selectCb?(item: PropertyPropertyWidgetComponentComboBoxItem): void;
9083
+ /**
9084
+ * Set the clearable state of the combobox.
9085
+ *
9086
+ * @param clearable - whether the combobox should be clearable.
9087
+ * @returns the combobox.
9088
+ */
9089
+ setClearable(clearable: boolean): this;
9090
+ /**
9091
+ * Set the items of the combobox.
9092
+ *
9093
+ * @param items - the items to set.
9094
+ * @returns the combobox.
9095
+ */
9096
+ setItems(items: PropertyPropertyWidgetComponentComboBoxItem[]): this;
9097
+ /**
9098
+ * Set the placeholder of the combobox.
9099
+ *
9100
+ * @param placeholder - the placeholder to set.
9101
+ * @returns the combobox.
9102
+ */
9103
+ setPlaceholder(placeholder: string): this;
9104
+ /**
9105
+ * Set the value of the combobox.
9106
+ *
9107
+ * @param value - the value to set.
9108
+ * @returns the combobox.
9109
+ */
9110
+ setValue(value: PropertyPropertyWidgetComponentComboBoxItem): this;
9111
+ /**
9112
+ * Set the value of the combobox by its id.
9113
+ *
9114
+ * @param id - the id of the value to set.
9115
+ * @returns the combobox.
9116
+ */
9117
+ setValueById(id: string): this;
9118
+ /** Toggle the combobox. */
9119
+ toggle(): unknown;
9120
+ /**
9121
+ * Update the value of the combobox.
9122
+ *
9123
+ * @param value - the value to update.
9124
+ * @returns the combobox.
9125
+ */
9126
+ updateValue(value: PropertyPropertyWidgetComponentComboBoxItem): this;
9127
+ }
9128
+ /**
9129
+ * Combo box item for {@link PropertyPropertyWidgetComponentComboBox}.
9130
+ *
9131
+ * @public
9132
+ * @unofficial
9133
+ */
9134
+ export interface PropertyPropertyWidgetComponentComboBoxItem {
9135
+ /** The icon of the item. */
9136
+ icon: string;
9137
+ /** The value of the item. */
9138
+ value: string;
8873
9139
  }
8874
9140
  /**
8875
9141
  * @todo Documentation incomplete.
@@ -8885,10 +9151,6 @@ export interface PropertyRenderContext {
8885
9151
  * Key of the property field.
8886
9152
  */
8887
9153
  key: string;
8888
- /**
8889
- * Reference to the metadata editor.
8890
- */
8891
- metadataEditor: MetadataEditor;
8892
9154
  /**
8893
9155
  * Determine the source path of current context.
8894
9156
  */
@@ -8903,11 +9165,12 @@ export interface PropertyRenderContext {
8903
9165
  onChange(value: unknown): void;
8904
9166
  }
8905
9167
  /**
8906
- * @todo Documentation incomplete.
9168
+ * Property widget.
9169
+ *
8907
9170
  * @public
8908
9171
  * @unofficial
8909
9172
  */
8910
- export interface PropertyWidget<Value = unknown, ComponentType extends Component = Component> {
9173
+ export interface PropertyWidget<Value = unknown, ComponentType extends PropertyWidgetComponentBase<Value> = PropertyWidgetComponentBase<Value>> {
8911
9174
  /**
8912
9175
  * Lucide-dev icon associated with the widget.
8913
9176
  */
@@ -8934,19 +9197,34 @@ export interface PropertyWidget<Value = unknown, ComponentType extends Component
8934
9197
  validate(value: unknown): boolean;
8935
9198
  }
8936
9199
  /**
8937
- * @todo Documentation incomplete.
9200
+ * Base class for property widget components.
9201
+ *
8938
9202
  * @public
8939
9203
  * @unofficial
8940
9204
  */
8941
- export interface PropertyWidgetComponentBase extends Component {
8942
- /** @todo Documentation incomplete. */
9205
+ export interface PropertyWidgetComponentBase<Value = unknown> {
9206
+ /** The container element for the property widget. */
8943
9207
  containerEl: HTMLElement;
8944
- /** @todo Documentation incomplete. */
9208
+ /** The type of the property widget. */
8945
9209
  type: string;
8946
- /** @todo Documentation incomplete. */
9210
+ /**
9211
+ * Focus the property widget.
9212
+ *
9213
+ * @param mode - The focus mode.
9214
+ */
8947
9215
  focus(mode?: FocusMode): void;
8948
- /** @todo Documentation incomplete. */
9216
+ /**
9217
+ * Handle focus event.
9218
+ *
9219
+ * @param mode - The focus mode.
9220
+ */
8949
9221
  onFocus(mode: FocusMode): void;
9222
+ /**
9223
+ * Set the value of the property widget.
9224
+ *
9225
+ * @param value - The value to set.
9226
+ */
9227
+ setValue(value: Value | null): void;
8950
9228
  }
8951
9229
  /**
8952
9230
  * @todo Documentation incomplete.
@@ -8957,7 +9235,7 @@ export interface PropertyWidgetEntry {
8957
9235
  /** @todo Documentation incomplete. */
8958
9236
  name: string;
8959
9237
  /** @todo Documentation incomplete. */
8960
- type: PropertyWidgetType;
9238
+ widget: PropertyWidgetType;
8961
9239
  }
8962
9240
  /**
8963
9241
  * @todo Documentation incomplete.
@@ -8977,6 +9255,27 @@ export interface PublishPluginInstance extends InternalPluginInstance<PublishPlu
8977
9255
  /** @todo Documentation incomplete. */
8978
9256
  plugin: PublishPlugin;
8979
9257
  }
9258
+ /**
9259
+ * Query for fuzzy search.
9260
+ *
9261
+ * @public
9262
+ * @unofficial
9263
+ */
9264
+ export interface QueryForFuzzySearch {
9265
+ /** */
9266
+ /**
9267
+ * The fuzzy tokens of the query.
9268
+ */
9269
+ fuzzy: string[];
9270
+ /**
9271
+ * The query string.
9272
+ */
9273
+ query: string;
9274
+ /**
9275
+ * The tokens of the query.
9276
+ */
9277
+ tokens: string[];
9278
+ }
8980
9279
  /**
8981
9280
  * @todo Documentation incomplete.
8982
9281
  * @public
@@ -10186,17 +10485,16 @@ export interface TagViewConstructor extends TypedViewConstructor<TagView> {
10186
10485
  export interface TaggedWithFunction extends BasesFunction, HasGetDisplayName, HasGetRHSWidgetType {
10187
10486
  }
10188
10487
  /**
10189
- * @todo Documentation incomplete.
10488
+ * Property widget component for tags.
10489
+ *
10190
10490
  * @public
10191
10491
  * @unofficial
10192
10492
  */
10193
- export interface TagsPropertyWidgetComponent extends PropertyWidgetComponentBase {
10194
- /** @todo Documentation incomplete. */
10493
+ export interface TagsPropertyWidgetComponent extends PropertyWidgetComponentBase<string[] | string> {
10494
+ /** The multiselect component for the property widget. */
10195
10495
  multiselect: Multiselect;
10196
- /** @todo Documentation incomplete. */
10496
+ /** The type of the property widget. */
10197
10497
  type: "tags";
10198
- /** @todo Documentation incomplete. */
10199
- setValue(value: string[] | string): void;
10200
10498
  }
10201
10499
  /**
10202
10500
  * @todo Documentation incomplete.
@@ -10219,37 +10517,52 @@ export interface TemplatesPluginInstance extends InternalPluginInstance<Template
10219
10517
  plugin: TemplatesPlugin;
10220
10518
  }
10221
10519
  /**
10222
- * @todo Documentation incomplete.
10520
+ * Property widget component for text.
10521
+ *
10223
10522
  * @public
10224
10523
  * @unofficial
10225
10524
  */
10226
- export interface TextPropertyWidgetComponent extends PropertyWidgetComponentBase {
10227
- /** @todo Documentation incomplete. */
10525
+ export interface TextPropertyWidgetComponent extends PropertyWidgetComponentBase<string> {
10526
+ /** The render context for the property widget. */
10228
10527
  ctx: PropertyRenderContext;
10229
- /** @todo Documentation incomplete. */
10528
+ /** The input element for the property widget. */
10230
10529
  inputEl: HTMLInputElement;
10231
- /** @todo Documentation incomplete. */
10530
+ /** The link element for the property widget. */
10232
10531
  linkEl: HTMLDivElement;
10233
- /** @todo Documentation incomplete. */
10532
+ /** The link text element for the property widget. */
10234
10533
  linkTextEl: HTMLDivElement;
10235
- /** @todo Documentation incomplete. */
10534
+ /** The type of the property widget. */
10236
10535
  type: "text";
10237
- /** @todo Documentation incomplete. */
10536
+ /** The value of the property widget. */
10238
10537
  value: string;
10239
- /** @todo Documentation incomplete. */
10538
+ /**
10539
+ * Get the display text of the link from the property widget.
10540
+ *
10541
+ * @returns The display text.
10542
+ */
10240
10543
  getDisplayText(): string;
10241
- /** @todo Documentation incomplete. */
10544
+ /**
10545
+ * Get the link text of the property widget.
10546
+ *
10547
+ * @returns The link text.
10548
+ */
10242
10549
  getLinkText(): string;
10243
- /** @todo Documentation incomplete. */
10550
+ /**
10551
+ * Check if the property widget link has an alias.
10552
+ *
10553
+ * @returns Whether the property widget link has an alias.
10554
+ */
10244
10555
  isAlias(): boolean;
10245
- /** @todo Documentation incomplete. */
10556
+ /**
10557
+ * Check if the property widget link is a wikilink.
10558
+ *
10559
+ * @returns Whether the property widget link is a wikilink.
10560
+ */
10246
10561
  isWikilink(): boolean;
10247
- /** @todo Documentation incomplete. */
10562
+ /**
10563
+ * Render the property widget.
10564
+ */
10248
10565
  render(): void;
10249
- /** @todo Documentation incomplete. */
10250
- setValue(value: string | null): void;
10251
- /** @todo Documentation incomplete. */
10252
- setValue(value: string | null): void;
10253
10566
  }
10254
10567
  /**
10255
10568
  * @todo Documentation incomplete.
@@ -10651,6 +10964,18 @@ export interface TypedWorkspaceLeaf<TView extends View> extends WorkspaceLeaf {
10651
10964
  */
10652
10965
  export interface UniqueFunction extends BasesFunction {
10653
10966
  }
10967
+ /**
10968
+ * Property widget component for unknown types.
10969
+ *
10970
+ * @public
10971
+ * @unofficial
10972
+ */
10973
+ export interface UnknownPropertyWidgetComponent extends PropertyWidgetComponentBase<unknown> {
10974
+ /** The element of the property widget. */
10975
+ el: HTMLSpanElement;
10976
+ /** The type of the property widget. */
10977
+ type: "unknown";
10978
+ }
10654
10979
  /**
10655
10980
  * Views of plugins that have been deactivated become an UnknownView.
10656
10981
  * @todo This is probably not the right term.