roamjs-components 0.88.0 → 0.88.2

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.
@@ -1,5 +1,9 @@
1
+ import { Tooltip } from "@blueprintjs/core";
1
2
  import React from "react";
2
- declare const Description: ({ description, }: {
3
+ declare type TooltipInteractionKind = React.ComponentProps<typeof Tooltip>["interactionKind"];
4
+ declare type DescriptionProps = {
3
5
  description: React.ReactNode;
4
- }) => React.ReactElement;
6
+ interactionKind?: TooltipInteractionKind;
7
+ };
8
+ declare const Description: ({ description, interactionKind, }: DescriptionProps) => React.ReactElement;
5
9
  export default Description;
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const core_1 = require("@blueprintjs/core");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const Description = ({ description, }) => {
6
+ const Description = ({ description, interactionKind = core_1.PopoverInteractionKind.HOVER_TARGET_ONLY, }) => {
7
7
  return (react_1.default.createElement("span", { style: {
8
8
  marginLeft: 12,
9
9
  display: "inline-block",
10
10
  opacity: 0.8,
11
11
  verticalAlign: "text-bottom",
12
12
  } },
13
- react_1.default.createElement(core_1.Tooltip, { content: react_1.default.createElement("span", { style: { maxWidth: 400, display: "inline-block" } }, description) },
13
+ react_1.default.createElement(core_1.Tooltip, { interactionKind: interactionKind, content: react_1.default.createElement("span", { style: { maxWidth: 400, display: "inline-block" } }, description) },
14
14
  react_1.default.createElement(core_1.Icon, { icon: "info-sign", iconSize: 12 }))));
15
15
  };
16
16
  exports.default = Description;
@@ -1 +1 @@
1
- {"version":3,"file":"Description.js","sourceRoot":"","sources":["../../src/components/Description.tsx"],"names":[],"mappings":";;;AAAA,4CAAkD;AAClD,0DAA0B;AAE1B,MAAM,WAAW,GAAG,CAAC,EACnB,WAAW,GAGZ,EAAsB,EAAE;IACvB,OAAO,CACL,wCACE,KAAK,EAAE;YACL,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,GAAG;YACZ,aAAa,EAAE,aAAa;SAC7B;QAED,8BAAC,cAAO,IACN,OAAO,EACL,wCAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,IACpD,WAAW,CACP;YAGT,8BAAC,WAAI,IAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAI,CACjC,CACL,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import { Tooltip, Icon } from \"@blueprintjs/core\";\nimport React from \"react\";\n\nconst Description = ({\n description,\n}: {\n description: React.ReactNode;\n}): React.ReactElement => {\n return (\n <span\n style={{\n marginLeft: 12,\n display: \"inline-block\",\n opacity: 0.8,\n verticalAlign: \"text-bottom\",\n }}\n >\n <Tooltip\n content={\n <span style={{ maxWidth: 400, display: \"inline-block\" }}>\n {description}\n </span>\n }\n >\n <Icon icon={\"info-sign\"} iconSize={12} />\n </Tooltip>\n </span>\n );\n};\n\nexport default Description;\n"]}
1
+ {"version":3,"file":"Description.js","sourceRoot":"","sources":["../../src/components/Description.tsx"],"names":[],"mappings":";;;AAAA,4CAA0E;AAC1E,0DAA0B;AAW1B,MAAM,WAAW,GAAG,CAAC,EACnB,WAAW,EACX,eAAe,GAAG,6BAAsB,CAAC,iBAAiB,GACzC,EAAsB,EAAE;IACzC,OAAO,CACL,wCACE,KAAK,EAAE;YACL,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,GAAG;YACZ,aAAa,EAAE,aAAa;SAC7B;QAED,8BAAC,cAAO,IACN,eAAe,EAAE,eAAe,EAChC,OAAO,EACL,wCAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,IACpD,WAAW,CACP;YAGT,8BAAC,WAAI,IAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAI,CACjC,CACL,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import { Tooltip, Icon, PopoverInteractionKind } from \"@blueprintjs/core\";\nimport React from \"react\";\n\ntype TooltipInteractionKind = React.ComponentProps<\n typeof Tooltip\n>[\"interactionKind\"];\n\ntype DescriptionProps = {\n description: React.ReactNode;\n interactionKind?: TooltipInteractionKind;\n};\n\nconst Description = ({\n description,\n interactionKind = PopoverInteractionKind.HOVER_TARGET_ONLY,\n}: DescriptionProps): React.ReactElement => {\n return (\n <span\n style={{\n marginLeft: 12,\n display: \"inline-block\",\n opacity: 0.8,\n verticalAlign: \"text-bottom\",\n }}\n >\n <Tooltip\n interactionKind={interactionKind}\n content={\n <span style={{ maxWidth: 400, display: \"inline-block\" }}>\n {description}\n </span>\n }\n >\n <Icon icon={\"info-sign\"} iconSize={12} />\n </Tooltip>\n </span>\n );\n};\n\nexport default Description;\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "roamjs-components",
3
3
  "description": "Expansive toolset, utilities, & components for developing RoamJS extensions.",
4
- "version": "0.88.0",
4
+ "version": "0.88.2",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
7
7
  "scripts": {
package/types/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { AddPullWatch, PullBlock, SidebarAction, SidebarWindow, SidebarWindowInput, WriteAction } from "./native";
2
+ import { AddPullWatch, PullBlock, SemanticSearch, SidebarAction, SidebarWindow, SidebarWindowInput, WriteAction } from "./native";
3
3
  import { RunQuery, ListActiveQueries, RunQuerySync, IsDiscourseNode } from "./query-builder";
4
4
  import { RegisterCommand, UnregisterCommand } from "./smartblocks";
5
5
  import type marked from "marked";
@@ -76,6 +76,7 @@ declare global {
76
76
  };
77
77
  data: {
78
78
  addPullWatch: AddPullWatch;
79
+ semanticSearchEnabled: () => boolean;
79
80
  block: {
80
81
  create: WriteAction;
81
82
  update: WriteAction;
@@ -95,6 +96,7 @@ declare global {
95
96
  q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;
96
97
  pull: (selector: string, id: number | string | [string, string]) => Promise<PullBlock>;
97
98
  pull_many: (pattern: string, eids: string[][]) => Promise<PullBlock[]>;
99
+ semanticSearch: SemanticSearch;
98
100
  fast: {
99
101
  q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;
100
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAmBA,mDAAyB","sourcesContent":["import {\n AddPullWatch,\n PullBlock,\n SidebarAction,\n SidebarWindow,\n SidebarWindowInput,\n WriteAction,\n} from \"./native\";\nimport {\n RunQuery,\n ListActiveQueries,\n RunQuerySync,\n IsDiscourseNode,\n} from \"./query-builder\";\nimport { RegisterCommand, UnregisterCommand } from \"./smartblocks\";\nimport type marked from \"marked\";\nimport type Markdown from \"marked-react\";\nimport type JSZip from \"jszip\";\nimport type cytoscape from \"cytoscape\";\nexport * from \"./native\";\n\nexport type Registry = {\n elements: HTMLElement[];\n reactRoots: HTMLElement[];\n observers: MutationObserver[];\n domListeners: (\n | {\n el: Window;\n type: keyof WindowEventMap;\n listener: (\n this: Window,\n ev: WindowEventMap[keyof WindowEventMap],\n ) => void;\n }\n | {\n el: Document;\n type: keyof DocumentEventMap;\n listener: (\n this: Document,\n ev: DocumentEventMap[keyof DocumentEventMap],\n ) => void;\n }\n | {\n el: HTMLElement;\n type: keyof HTMLElementEventMap | `roamjs:${string}`;\n listener: (\n this: HTMLElement,\n ev: HTMLElementEventMap[keyof HTMLElementEventMap],\n ) => void;\n }\n )[];\n commands: string[];\n timeouts: { timeout: number }[];\n};\n\ndeclare global {\n interface Window {\n // TODO remove\n RoamLazy?: {\n JSZip: () => Promise<typeof JSZip>;\n Marked: () => Promise<typeof marked>;\n MarkedReact: () => Promise<typeof Markdown>;\n Cytoscape: () => Promise<typeof cytoscape>;\n Insect: () => Promise<{\n // insect uses purescript instead of typescript -.-\n commands: string[];\n fmtConsole: (M: unknown) => unknown;\n fmtJqueryTerminal: (M: unknown) => unknown;\n fmtPlain: (M: unknown) => unknown;\n functions: (M: unknown) => unknown;\n identifiers: (M: unknown) => unknown;\n initialEnvironment: { values: unknown; functions: unknown };\n repl: (\n fmt: (M: unknown) => unknown,\n ) => (env: {\n values: unknown;\n functions: unknown;\n }) => (s: string) => { msg: string };\n }>;\n };\n // END TODO remove\n\n roamAlphaAPI: {\n q: (query: string, ...params: unknown[]) => unknown[][];\n pull: (\n selector: string,\n id: number | string | [string, string],\n ) => PullBlock;\n createBlock: WriteAction;\n updateBlock: WriteAction;\n createPage: WriteAction;\n moveBlock: WriteAction;\n deleteBlock: WriteAction;\n updatePage: WriteAction;\n deletePage: WriteAction;\n util: {\n generateUID: () => string;\n dateToPageTitle: (date: Date) => string;\n dateToPageUid: (date: Date) => string;\n pageTitleToDate: (title: string) => Date | null;\n uploadFile: (args: { file: File }) => Promise<string>;\n };\n data: {\n addPullWatch: AddPullWatch;\n block: {\n create: WriteAction;\n update: WriteAction;\n move: WriteAction;\n delete: WriteAction;\n reorderBlocks: (args: {\n location: { \"parent-uid\": string };\n blocks: string[];\n }) => Promise<void>;\n };\n fast: {\n q: (query: string, ...params: unknown[]) => unknown[][];\n };\n async: {\n q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;\n pull: (\n selector: string,\n id: number | string | [string, string],\n ) => Promise<PullBlock>;\n pull_many: (\n pattern: string,\n eids: string[][],\n ) => Promise<PullBlock[]>;\n fast: {\n q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;\n };\n };\n backend: {\n q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;\n };\n page: {\n create: WriteAction;\n update: WriteAction;\n delete: WriteAction;\n };\n pull: (\n selector: string,\n id: number | string | [string, string],\n ) => PullBlock;\n pull_many: (pattern: string, eids: string[][]) => PullBlock[];\n q: (query: string, ...params: unknown[]) => unknown[][];\n removePullWatch: (\n pullPattern: string,\n entityId: string,\n callback?: (before: PullBlock, after: PullBlock) => void,\n ) => boolean;\n redo: () => void;\n undo: () => void;\n user: {\n upsert: () => void;\n };\n };\n ui: {\n leftSidebar: {\n open: () => Promise<void>;\n close: () => Promise<void>;\n };\n rightSidebar: {\n open: () => Promise<void>;\n close: () => Promise<void>;\n getWindows: () => SidebarWindow[];\n addWindow: SidebarAction;\n setWindowOrder: SidebarAction;\n collapseWindow: SidebarAction;\n pinWindow: (action: {\n window: SidebarWindowInput;\n \"pin-to-top?\"?: boolean;\n }) => Promise<void>;\n expandWindow: SidebarAction;\n removeWindow: SidebarAction;\n unpinWindow: SidebarAction;\n };\n commandPalette: {\n addCommand: (action: {\n label: string;\n callback: () => void;\n \"disable-hotkey\"?: boolean;\n \"default-hotkey\"?: string | string[];\n }) => Promise<void>;\n removeCommand: (action: { label: string }) => Promise<void>;\n };\n blockContextMenu: {\n addCommand: (action: {\n label: string;\n callback: (props: {\n \"block-string\": string;\n \"block-uid\": string;\n heading: 0 | 1 | 2 | 3 | null;\n \"page-uid\": string;\n \"read-only?\": boolean;\n \"window-id\": string;\n }) => void;\n }) => void;\n removeCommand: (action: { label: string }) => void;\n };\n individualMultiselect: {\n getSelectedUids: () => string[];\n };\n msContextMenu: {\n addCommand: (action: {\n label: string;\n callback: () => void;\n \"display-conditional\"?: () => boolean;\n }) => void;\n removeCommand: (action: { label: string }) => void;\n };\n filters: {\n addGlobalFilter: (args: {\n title: string;\n type: \"includes\" | \"removes\";\n }) => Promise<void>;\n removeGlobalFilter: (args: {\n title: string;\n type: \"includes\" | \"removes\";\n }) => Promise<void>;\n getGlobalFilters: () => { includes: string[]; removes: string[] };\n getPageFilters: (args: {\n page: { uid?: string; title?: string };\n }) => {\n includes: string[];\n removes: string[];\n };\n getPageLinkedRefsFilters: (args: {\n page: { uid?: string; title?: string };\n }) => {\n includes: string[];\n removes: string[];\n };\n getSidebarWindowFilters: (args: { window: SidebarWindowInput }) => {\n includes: string[];\n removes: string[];\n };\n setPageFilters: (args: {\n page: { uid?: string; title?: string };\n filters: { includes?: string[]; removes?: string[] };\n }) => Promise<void>;\n setPageLinkedRefsFilters: (args: {\n page: { uid?: string; title?: string };\n filters: { includes?: string[]; removes?: string[] };\n }) => Promise<void>;\n setSidebarWindowFilters: (args: {\n window: SidebarWindowInput;\n filters: { includes?: string[]; removes?: string[] };\n }) => Promise<void>;\n };\n getFocusedBlock: () => null | {\n \"window-id\": string;\n \"block-uid\": string;\n };\n components: {\n renderBlock: (args: {\n uid: string;\n el: HTMLElement;\n \"zoom-path?\"?: boolean;\n \"open?\"?: boolean;\n }) => Promise<null>;\n renderPage: (args: {\n uid: string;\n el: HTMLElement;\n \"hide-mentions?\"?: boolean;\n }) => Promise<null>;\n renderSearch: (args: {\n \"search-query-str\": string;\n el: HTMLElement;\n \"closed?\"?: boolean;\n \"group-by-page?\"?: boolean;\n \"hide-paths?\"?: boolean;\n \"config-changed-callback\"?: (config: unknown) => void;\n }) => Promise<null>;\n renderString: (args: {\n string: string;\n el: HTMLElement;\n }) => Promise<null>;\n unmountNode: (args: { el: HTMLElement }) => Promise<null>;\n };\n react: {\n Block: (props: {\n uid: string;\n open?: boolean;\n zoomPath?: boolean;\n zoomStartAfterUid?: string;\n }) => JSX.Element;\n Page: (props:\n | {\n uid: string;\n title?: never;\n hideMentions?: boolean;\n }\n | {\n uid?: never;\n title: string;\n hideMentions?: boolean;\n }) => JSX.Element;\n Search: (props: {\n searchQueryStr: string;\n closed?: boolean;\n groupByPage?: boolean;\n hidePaths?: boolean;\n onConfigChange?: (config: {\n closed?: boolean;\n groupByPage?: boolean;\n hidePaths?: boolean;\n }) => void;\n }) => JSX.Element;\n BlockString: (props: {\n string: string;\n }) => JSX.Element;\n };\n graphView: {\n addCallback: (props: {\n label: string;\n callback: (context: {\n cytoscape: unknown;\n elements: unknown[];\n type: \"page\" | \"all-pages\";\n }) => void;\n type?: \"page\" | \"all-pages\";\n }) => Promise<void>;\n removeCallback: (props: { label: string }) => Promise<void>;\n wholeGraph: {\n addCallback: (props: {\n label: string;\n callback: (arg: { \"sigma-renderer\": unknown }) => void;\n }) => any;\n removeCallback: (props: { label: string }) => void;\n setExplorePages: (pages: string[]) => void;\n getExplorePages: () => string[];\n setMode: (mode: \"Whole Graph\" | \"Explore\") => void;\n };\n };\n mainWindow: {\n focusFirstBlock: () => Promise<void>;\n openBlock: (p: { block: { uid: string } }) => Promise<void>;\n openPage: (p: {\n page: { uid: string } | { title: string };\n }) => Promise<void>;\n getOpenPageOrBlockUid: () => Promise<string | null>;\n openDailyNotes: () => Promise<void>;\n };\n setBlockFocusAndSelection: (a: {\n location?: { \"block-uid\": string; \"window-id\": string };\n selection?: { start: number; end?: number };\n }) => Promise<void>;\n };\n platform: {\n isDesktop: boolean;\n isIOS: boolean;\n isMobile: boolean;\n isMobileApp: boolean;\n isPC: boolean;\n isTouchDevice: boolean;\n };\n graph: {\n name: string;\n type: \"hosted\" | \"offline\";\n isEncrypted: boolean;\n };\n file: {\n upload: (args: {\n file: File;\n toast?: { hide: boolean };\n }) => Promise<string>;\n get: (args: { url: string }) => Promise<File>;\n delete: (args: { url: string }) => Promise<void>;\n };\n user: {\n uid: () => string | null;\n };\n constants: {\n corsAnywhereProxyUrl: string;\n };\n };\n\n // roamjs namespace should only be used for methods that must be accessed across extension scripts\n roamjs: {\n loaded: Set<string>;\n extension: {\n queryBuilder?: {\n runQuery: RunQuery;\n runQuerySync: RunQuerySync;\n listActiveQueries: ListActiveQueries;\n isDiscourseNode: IsDiscourseNode;\n };\n smartblocks?: {\n registerCommand: RegisterCommand;\n unregisterCommand: UnregisterCommand;\n triggerSmartblock: (args: {\n srcName?: string;\n srcUid?: string;\n targetName?: string;\n targetUid?: string;\n variables?: Record<string, string>;\n }) => Promise<unknown>;\n };\n [id: string]: Record<string, unknown> | undefined;\n };\n version: { [id: string]: string };\n actions: Record<string, number>;\n };\n }\n}\n\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAoBA,mDAAyB","sourcesContent":["import {\n AddPullWatch,\n PullBlock,\n SemanticSearch,\n SidebarAction,\n SidebarWindow,\n SidebarWindowInput,\n WriteAction,\n} from \"./native\";\nimport {\n RunQuery,\n ListActiveQueries,\n RunQuerySync,\n IsDiscourseNode,\n} from \"./query-builder\";\nimport { RegisterCommand, UnregisterCommand } from \"./smartblocks\";\nimport type marked from \"marked\";\nimport type Markdown from \"marked-react\";\nimport type JSZip from \"jszip\";\nimport type cytoscape from \"cytoscape\";\nexport * from \"./native\";\n\nexport type Registry = {\n elements: HTMLElement[];\n reactRoots: HTMLElement[];\n observers: MutationObserver[];\n domListeners: (\n | {\n el: Window;\n type: keyof WindowEventMap;\n listener: (\n this: Window,\n ev: WindowEventMap[keyof WindowEventMap],\n ) => void;\n }\n | {\n el: Document;\n type: keyof DocumentEventMap;\n listener: (\n this: Document,\n ev: DocumentEventMap[keyof DocumentEventMap],\n ) => void;\n }\n | {\n el: HTMLElement;\n type: keyof HTMLElementEventMap | `roamjs:${string}`;\n listener: (\n this: HTMLElement,\n ev: HTMLElementEventMap[keyof HTMLElementEventMap],\n ) => void;\n }\n )[];\n commands: string[];\n timeouts: { timeout: number }[];\n};\n\ndeclare global {\n interface Window {\n // TODO remove\n RoamLazy?: {\n JSZip: () => Promise<typeof JSZip>;\n Marked: () => Promise<typeof marked>;\n MarkedReact: () => Promise<typeof Markdown>;\n Cytoscape: () => Promise<typeof cytoscape>;\n Insect: () => Promise<{\n // insect uses purescript instead of typescript -.-\n commands: string[];\n fmtConsole: (M: unknown) => unknown;\n fmtJqueryTerminal: (M: unknown) => unknown;\n fmtPlain: (M: unknown) => unknown;\n functions: (M: unknown) => unknown;\n identifiers: (M: unknown) => unknown;\n initialEnvironment: { values: unknown; functions: unknown };\n repl: (\n fmt: (M: unknown) => unknown,\n ) => (env: {\n values: unknown;\n functions: unknown;\n }) => (s: string) => { msg: string };\n }>;\n };\n // END TODO remove\n\n roamAlphaAPI: {\n q: (query: string, ...params: unknown[]) => unknown[][];\n pull: (\n selector: string,\n id: number | string | [string, string],\n ) => PullBlock;\n createBlock: WriteAction;\n updateBlock: WriteAction;\n createPage: WriteAction;\n moveBlock: WriteAction;\n deleteBlock: WriteAction;\n updatePage: WriteAction;\n deletePage: WriteAction;\n util: {\n generateUID: () => string;\n dateToPageTitle: (date: Date) => string;\n dateToPageUid: (date: Date) => string;\n pageTitleToDate: (title: string) => Date | null;\n uploadFile: (args: { file: File }) => Promise<string>;\n };\n data: {\n addPullWatch: AddPullWatch;\n semanticSearchEnabled: () => boolean;\n block: {\n create: WriteAction;\n update: WriteAction;\n move: WriteAction;\n delete: WriteAction;\n reorderBlocks: (args: {\n location: { \"parent-uid\": string };\n blocks: string[];\n }) => Promise<void>;\n };\n fast: {\n q: (query: string, ...params: unknown[]) => unknown[][];\n };\n async: {\n q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;\n pull: (\n selector: string,\n id: number | string | [string, string],\n ) => Promise<PullBlock>;\n pull_many: (\n pattern: string,\n eids: string[][],\n ) => Promise<PullBlock[]>;\n semanticSearch: SemanticSearch;\n fast: {\n q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;\n };\n };\n backend: {\n q: (query: string, ...params: unknown[]) => Promise<unknown[][]>;\n };\n page: {\n create: WriteAction;\n update: WriteAction;\n delete: WriteAction;\n };\n pull: (\n selector: string,\n id: number | string | [string, string],\n ) => PullBlock;\n pull_many: (pattern: string, eids: string[][]) => PullBlock[];\n q: (query: string, ...params: unknown[]) => unknown[][];\n removePullWatch: (\n pullPattern: string,\n entityId: string,\n callback?: (before: PullBlock, after: PullBlock) => void,\n ) => boolean;\n redo: () => void;\n undo: () => void;\n user: {\n upsert: () => void;\n };\n };\n ui: {\n leftSidebar: {\n open: () => Promise<void>;\n close: () => Promise<void>;\n };\n rightSidebar: {\n open: () => Promise<void>;\n close: () => Promise<void>;\n getWindows: () => SidebarWindow[];\n addWindow: SidebarAction;\n setWindowOrder: SidebarAction;\n collapseWindow: SidebarAction;\n pinWindow: (action: {\n window: SidebarWindowInput;\n \"pin-to-top?\"?: boolean;\n }) => Promise<void>;\n expandWindow: SidebarAction;\n removeWindow: SidebarAction;\n unpinWindow: SidebarAction;\n };\n commandPalette: {\n addCommand: (action: {\n label: string;\n callback: () => void;\n \"disable-hotkey\"?: boolean;\n \"default-hotkey\"?: string | string[];\n }) => Promise<void>;\n removeCommand: (action: { label: string }) => Promise<void>;\n };\n blockContextMenu: {\n addCommand: (action: {\n label: string;\n callback: (props: {\n \"block-string\": string;\n \"block-uid\": string;\n heading: 0 | 1 | 2 | 3 | null;\n \"page-uid\": string;\n \"read-only?\": boolean;\n \"window-id\": string;\n }) => void;\n }) => void;\n removeCommand: (action: { label: string }) => void;\n };\n individualMultiselect: {\n getSelectedUids: () => string[];\n };\n msContextMenu: {\n addCommand: (action: {\n label: string;\n callback: () => void;\n \"display-conditional\"?: () => boolean;\n }) => void;\n removeCommand: (action: { label: string }) => void;\n };\n filters: {\n addGlobalFilter: (args: {\n title: string;\n type: \"includes\" | \"removes\";\n }) => Promise<void>;\n removeGlobalFilter: (args: {\n title: string;\n type: \"includes\" | \"removes\";\n }) => Promise<void>;\n getGlobalFilters: () => { includes: string[]; removes: string[] };\n getPageFilters: (args: {\n page: { uid?: string; title?: string };\n }) => {\n includes: string[];\n removes: string[];\n };\n getPageLinkedRefsFilters: (args: {\n page: { uid?: string; title?: string };\n }) => {\n includes: string[];\n removes: string[];\n };\n getSidebarWindowFilters: (args: { window: SidebarWindowInput }) => {\n includes: string[];\n removes: string[];\n };\n setPageFilters: (args: {\n page: { uid?: string; title?: string };\n filters: { includes?: string[]; removes?: string[] };\n }) => Promise<void>;\n setPageLinkedRefsFilters: (args: {\n page: { uid?: string; title?: string };\n filters: { includes?: string[]; removes?: string[] };\n }) => Promise<void>;\n setSidebarWindowFilters: (args: {\n window: SidebarWindowInput;\n filters: { includes?: string[]; removes?: string[] };\n }) => Promise<void>;\n };\n getFocusedBlock: () => null | {\n \"window-id\": string;\n \"block-uid\": string;\n };\n components: {\n renderBlock: (args: {\n uid: string;\n el: HTMLElement;\n \"zoom-path?\"?: boolean;\n \"open?\"?: boolean;\n }) => Promise<null>;\n renderPage: (args: {\n uid: string;\n el: HTMLElement;\n \"hide-mentions?\"?: boolean;\n }) => Promise<null>;\n renderSearch: (args: {\n \"search-query-str\": string;\n el: HTMLElement;\n \"closed?\"?: boolean;\n \"group-by-page?\"?: boolean;\n \"hide-paths?\"?: boolean;\n \"config-changed-callback\"?: (config: unknown) => void;\n }) => Promise<null>;\n renderString: (args: {\n string: string;\n el: HTMLElement;\n }) => Promise<null>;\n unmountNode: (args: { el: HTMLElement }) => Promise<null>;\n };\n react: {\n Block: (props: {\n uid: string;\n open?: boolean;\n zoomPath?: boolean;\n zoomStartAfterUid?: string;\n }) => JSX.Element;\n Page: (props:\n | {\n uid: string;\n title?: never;\n hideMentions?: boolean;\n }\n | {\n uid?: never;\n title: string;\n hideMentions?: boolean;\n }) => JSX.Element;\n Search: (props: {\n searchQueryStr: string;\n closed?: boolean;\n groupByPage?: boolean;\n hidePaths?: boolean;\n onConfigChange?: (config: {\n closed?: boolean;\n groupByPage?: boolean;\n hidePaths?: boolean;\n }) => void;\n }) => JSX.Element;\n BlockString: (props: {\n string: string;\n }) => JSX.Element;\n };\n graphView: {\n addCallback: (props: {\n label: string;\n callback: (context: {\n cytoscape: unknown;\n elements: unknown[];\n type: \"page\" | \"all-pages\";\n }) => void;\n type?: \"page\" | \"all-pages\";\n }) => Promise<void>;\n removeCallback: (props: { label: string }) => Promise<void>;\n wholeGraph: {\n addCallback: (props: {\n label: string;\n callback: (arg: { \"sigma-renderer\": unknown }) => void;\n }) => any;\n removeCallback: (props: { label: string }) => void;\n setExplorePages: (pages: string[]) => void;\n getExplorePages: () => string[];\n setMode: (mode: \"Whole Graph\" | \"Explore\") => void;\n };\n };\n mainWindow: {\n focusFirstBlock: () => Promise<void>;\n openBlock: (p: { block: { uid: string } }) => Promise<void>;\n openPage: (p: {\n page: { uid: string } | { title: string };\n }) => Promise<void>;\n getOpenPageOrBlockUid: () => Promise<string | null>;\n openDailyNotes: () => Promise<void>;\n };\n setBlockFocusAndSelection: (a: {\n location?: { \"block-uid\": string; \"window-id\": string };\n selection?: { start: number; end?: number };\n }) => Promise<void>;\n };\n platform: {\n isDesktop: boolean;\n isIOS: boolean;\n isMobile: boolean;\n isMobileApp: boolean;\n isPC: boolean;\n isTouchDevice: boolean;\n };\n graph: {\n name: string;\n type: \"hosted\" | \"offline\";\n isEncrypted: boolean;\n };\n file: {\n upload: (args: {\n file: File;\n toast?: { hide: boolean };\n }) => Promise<string>;\n get: (args: { url: string }) => Promise<File>;\n delete: (args: { url: string }) => Promise<void>;\n };\n user: {\n uid: () => string | null;\n };\n constants: {\n corsAnywhereProxyUrl: string;\n };\n };\n\n // roamjs namespace should only be used for methods that must be accessed across extension scripts\n roamjs: {\n loaded: Set<string>;\n extension: {\n queryBuilder?: {\n runQuery: RunQuery;\n runQuerySync: RunQuerySync;\n listActiveQueries: ListActiveQueries;\n isDiscourseNode: IsDiscourseNode;\n };\n smartblocks?: {\n registerCommand: RegisterCommand;\n unregisterCommand: UnregisterCommand;\n triggerSmartblock: (args: {\n srcName?: string;\n srcUid?: string;\n targetName?: string;\n targetUid?: string;\n variables?: Record<string, string>;\n }) => Promise<unknown>;\n };\n [id: string]: Record<string, unknown> | undefined;\n };\n version: { [id: string]: string };\n actions: Record<string, number>;\n };\n }\n}\n\n"]}
package/types/native.d.ts CHANGED
@@ -220,6 +220,17 @@ export declare type RoamError = {
220
220
  raw: string;
221
221
  "status-code": number;
222
222
  };
223
+ export declare type SemanticSearchArgs = {
224
+ "search-str": string;
225
+ k?: number;
226
+ "hide-code-blocks"?: boolean;
227
+ };
228
+ export declare type SemanticSearchHit = {
229
+ type: "chunk" | "block" | "page";
230
+ uid: string;
231
+ topUids: string[];
232
+ };
233
+ export declare type SemanticSearch = (args: SemanticSearchArgs) => Promise<SemanticSearchHit[]>;
223
234
  export declare type TreeNode = {
224
235
  text: string;
225
236
  order: number;
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/types/native.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,4EAA4E","sourcesContent":["// emulating Datalog Grammar\n// https://docs.datomic.com/cloud/query/query-data-reference.html#or-clauses\n\nimport { ChangeEvent } from \"react\";\n\nexport type DatalogSrcVar = {\n type: \"src-var\";\n value: string;\n};\n\nexport type DatalogVariable = {\n type: \"variable\";\n value: string;\n};\n\nexport type DatalogAndClause = {\n type: \"and-clause\";\n clauses: DatalogClause[];\n};\n\nexport type DatalogExpressionClause =\n | DatalogDataPattern\n | DatalogPredExpr\n | DatalogFnExpr\n | DatalogRuleExpr;\n\nexport type DatalogRuleExpr = {\n type: \"rule-expr\";\n srcVar?: DatalogSrcVar;\n ruleName: DatalogRuleName;\n arguments: DatalogArgument[];\n};\n\nexport type DatalogNotClause = {\n type: \"not-clause\";\n srcVar?: DatalogSrcVar;\n clauses: DatalogClause[];\n};\n\nexport type DatalogNotJoinClause = {\n type: \"not-join-clause\";\n srcVar?: DatalogSrcVar;\n variables: DatalogVariable[];\n clauses: DatalogClause[];\n};\n\nexport type DatalogOrClause = {\n type: \"or-clause\";\n srcVar?: DatalogSrcVar;\n clauses: DatalogClause[];\n};\n\nexport type DatalogOrJoinClause = {\n type: \"or-join-clause\";\n srcVar?: DatalogSrcVar;\n variables: DatalogVariable[];\n clauses: DatalogClause[];\n};\n\nexport type DatalogClause =\n | DatalogNotClause\n | DatalogOrJoinClause\n | DatalogExpressionClause\n | DatalogOrClause\n | DatalogNotJoinClause\n | DatalogAndClause;\n\nexport type DatalogDataPattern = {\n type: \"data-pattern\";\n srcVar?: DatalogSrcVar;\n arguments: DatalogArgument[];\n};\n\nexport type DatalogArgument =\n | DatalogSrcVar\n | DatalogVariable\n | DatalogConstant\n | DatalogUnderscore;\n\nexport type DatalogConstant = {\n type: \"constant\";\n value: string;\n};\n\nexport type DatalogPredExpr = {\n type: \"pred-expr\";\n pred:\n | \"=\"\n | \"==\"\n | \"not=\"\n | \"!=\"\n | \"<\"\n | \">\"\n | \"<=\"\n | \">=\"\n | \"+\"\n | \"-\"\n | \"*\"\n | \"/\"\n | \"quot\"\n | \"rem\"\n | \"mod\"\n | \"inc\"\n | \"dec\"\n | \"max\"\n | \"min\"\n | \"zero?\"\n | \"pos?\"\n | \"neg?\"\n | \"even?\"\n | \"odd?\"\n | \"compare\"\n | \"rand\"\n | \"rand-int\"\n | \"true?\"\n | \"false?\"\n | \"nil?\"\n | \"some?\"\n | \"not\"\n | \"and\"\n | \"or\"\n | \"complement\"\n | \"identical?\"\n | \"identity\"\n | \"keyword\"\n | \"meta\"\n | \"name\"\n | \"namespace\"\n | \"type\"\n | \"vector\"\n | \"list\"\n | \"set\"\n | \"hash-map\"\n | \"array-map\"\n | \"count\"\n | \"range\"\n | \"not-empty\"\n | \"empty?\"\n | \"contains?\"\n | \"str\"\n | \"subs\"\n | \"get\"\n | \"pr-str\"\n | \"print-str\"\n | \"println-str\"\n | \"prn-str\"\n | \"re-find\"\n | \"re-matches\"\n | \"re-seq\"\n | \"re-pattern\"\n | \"-differ?\"\n | \"get-else\"\n | \"get-some\"\n | \"missing?\"\n | \"ground\"\n | \"clojure.string/blank?\"\n | \"clojure.string/includes?\"\n | \"clojure.string/ends-with?\"\n | \"clojure.string/starts-with?\"\n | \"tuple\"\n | \"untuple\";\n arguments: DatalogArgument[];\n};\n\nexport type DatalogFnExpr = {\n type: \"fn-expr\";\n fn: \"re-pattern\" | \"get\";\n arguments: DatalogArgument[];\n binding: DatalogBinding;\n};\n\nexport type DatalogBinding =\n | DatalogBindScalar\n | DatalogBindTuple\n | DatalogBindColl\n | DatalogBindRel;\n\nexport type DatalogBindScalar = {\n type: \"bind-scalar\";\n variable: DatalogVariable;\n};\nexport type DatalogBindTuple = {\n type: \"bind-tuple\";\n args: (DatalogVariable | DatalogUnderscore)[];\n};\nexport type DatalogBindColl = {\n type: \"bind-col\";\n variable: DatalogVariable;\n};\n\nexport type DatalogBindRel = {\n type: \"bind-rel\";\n args: (DatalogVariable | DatalogUnderscore)[];\n};\n\nexport type DatalogUnderscore = {\n type: \"underscore\";\n value: \"_\";\n};\n\nexport type DatalogRuleName = {\n type: \"rulename\";\n value: string;\n};\n\nexport type RoamBasicBlock = {\n string: string;\n uid: string;\n};\n\nexport type RoamBasicPage = { title: string; uid: string };\n\nexport type RoamBasicNode = {\n text: string;\n uid: string;\n children: RoamBasicNode[];\n};\n\nexport type RoamPull = {\n \"block/children\"?: RoamNode[];\n \"block/heading\"?: number;\n \"block/open\"?: boolean;\n \"block/order\"?: number;\n \"block/page\"?: RoamNode;\n \"block/parents\"?: RoamNode[];\n \"block/refs\"?: RoamNode[];\n \"block/string\"?: string;\n \"block/view-type\"?: `:${BlockViewType}`;\n \"block/uid\"?: string;\n \"children/view-type\"?: `:${ViewType}`;\n \"create/time\"?: number;\n \"create/user\"?: RoamNode;\n \"edit/time\"?: number;\n \"edit/user\"?: RoamNode;\n \"log/id\"?: number;\n \"node/title\"?: string;\n} & RoamNode;\n\nexport type PullBlock = {\n \":attrs/lookup\"?: PullBlock[];\n \":entity/attrs\"?: [\n { \":source\": [\":block/uid\", string]; \":value\": [\":block/uid\", string] },\n { \":source\": [\":block/uid\", string]; \":value\": [\":block/uid\", string] },\n {\n \":source\": [\":block/uid\", string];\n \":value\": string | [\":block/uid\", string];\n }\n ][];\n \":block/children\"?: PullBlock[];\n \":block/heading\"?: number;\n \":block/open\"?: boolean;\n \":block/order\"?: number;\n \":block/page\"?: { \":db/id\": number };\n \":block/parents\"?: PullBlock[];\n \":block/props\"?: {\n \":image-size\"?: {\n [p: string]: {\n \":height\": number;\n \":width\": number;\n };\n };\n \":iframe\"?: {\n [p: string]: {\n \":size\": {\n \":height\": number;\n \":width\": number;\n };\n };\n };\n [k: `:roamjs-${string}`]: Record<string, unknown>;\n };\n \":block/refs\"?: { \":db/id\": number }[];\n \":block/string\"?: string;\n \":block/view-type\"?: `:${BlockViewType}`;\n \":block/text-align\"?: TextAlignment;\n \":block/uid\"?: string;\n \":children/view-type\"?: `:${ViewType}`;\n \":create/time\"?: number;\n \":create/user\"?: { \":db/id\": number };\n \":edit/time\"?: number;\n \":edit/user\"?: { \":db/id\": number };\n \":db/id\"?: number;\n \":log/id\"?: number;\n \":node/title\"?: string;\n \":user/display-name\"?: string;\n \":user/display-page\"?: { \":db/id\": number };\n \":user/settings\"?: {\n \":namespace-options\": [\":none\", \":partial\", \":full\"];\n \":link-brackets?\": boolean;\n \":showing-inline-references?\": boolean;\n \":right-sidebar-pinned\": {\n [uuid: string]: SidebarWindow;\n };\n \":showing-own-icons?\": boolean;\n \":showing-user-icons?\": boolean;\n \":first-day-of-week\"?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n };\n \":user/uid\"?: string;\n \":user/email\"?: string;\n};\n\nexport type RoamPullResult = RoamPull | null;\n\nexport type ViewType = \"document\" | \"bullet\" | \"numbered\";\n\nexport type BlockViewType =\n | \"tabs\"\n | \"outline\"\n | \"horizontal\"\n | \"horizontal-outline\"\n | \"popout\"\n | \"comment\"\n | \"side\"\n | \"vertical\";\n\nexport type TextAlignment = \"left\" | \"center\" | \"right\" | \"justify\";\n\nexport type RoamBlock = {\n attrs?: { source: string[] }[][];\n children?: { id: number }[];\n id?: number;\n string?: string;\n title?: string;\n time?: number;\n uid?: string;\n order?: number;\n \"view-type\"?: ViewType;\n};\n\nexport type RoamError = {\n raw: string;\n \"status-code\": number;\n};\n\nexport type TreeNode = {\n text: string;\n order: number;\n children: TreeNode[];\n parents: number[];\n uid: string;\n heading: number;\n open: boolean;\n viewType: ViewType;\n blockViewType: BlockViewType;\n editTime: Date;\n textAlign: TextAlignment;\n props: {\n imageResize: {\n [link: string]: {\n height: number;\n width: number;\n };\n };\n iframe: {\n [link: string]: {\n height: number;\n width: number;\n };\n };\n };\n};\n\nexport type TextNode = {\n text: string;\n children: TextNode[];\n};\n\nexport type InputTextNode = {\n text: string;\n children?: InputTextNode[];\n uid?: string;\n heading?: number;\n textAlign?: TextAlignment;\n viewType?: ViewType;\n blockViewType?: BlockViewType;\n open?: boolean;\n props?: Record<string, unknown>;\n};\n\ntype PlusType = [number, string];\n\nexport type RoamNode = { \"db/id\": number };\n\nexport type RoamQuery = RoamPull & {\n \"block/graph\"?: RoamNode;\n \"node/graph+title\"?: PlusType;\n \"block/graph+uid\"?: PlusType;\n \"node/graph\"?: RoamNode;\n \"edit/email\"?: string;\n \"entity/graph\"?: RoamNode;\n};\n\nexport type RoamQueryResult = number & RoamQuery;\n\nexport type ClientParams = {\n action:\n | \"pull\"\n | \"q\"\n | \"create-block\"\n | \"update-block\"\n | \"create-page\"\n | \"move-block\"\n | \"delete-block\"\n | \"delete-page\"\n | \"update-page\";\n selector?: string;\n uid?: string;\n query?: string;\n inputs?: string[];\n} & ActionParams;\n\nexport type ActionParams = {\n location?: {\n \"parent-uid\": string;\n order: number | \"last\";\n };\n block?: {\n string?: string;\n uid?: string;\n open?: boolean;\n heading?: number;\n \"text-align\"?: TextAlignment;\n \"children-view-type\"?: ViewType;\n \"block-view-type\"?: BlockViewType;\n props?: Record<string, unknown>;\n };\n page?: {\n title?: string;\n uid?: string;\n props?: Record<string, unknown>;\n };\n};\n\nexport type WriteAction = (a: ActionParams) => Promise<void>;\n\nexport type UserSettings = {\n \"global-filters\": {\n includes: string[];\n removes: string[];\n };\n};\n\ntype SidebarWindowType =\n | SidebarBlockWindow\n | SidebarMentionsWindow\n | SidebarGraphWindow\n | SidebarOutlineWindow\n | SidebarSearchQueryWindow;\n\nexport type SidebarWindowInput = SidebarWindowType & {\n order?: number;\n};\n\ntype SidebarBlockWindow = {\n type: \"block\";\n \"block-uid\": string;\n};\n\ntype SidebarOutlineWindow = {\n type: \"outline\";\n \"page-uid\": string;\n};\n\ntype SidebarMentionsWindow = {\n type: \"mentions\";\n \"mentions-uid\": string;\n};\n\ntype SidebarGraphWindow = {\n type: \"graph\";\n // \"page-uid\": string; Currently not working despite documentation\n \"block-uid\": string;\n};\n\ntype SidebarSearchQueryWindow = {\n type: \"search-query\";\n \"search-query-uid\": string;\n};\n\nexport type SidebarAction = (action: {\n window: SidebarWindowInput;\n}) => Promise<void>;\n\nexport type SidebarWindow = {\n \"collapsed?\": boolean;\n order: number;\n \"pinned?\": boolean;\n \"window-id\": string;\n} & SidebarWindowType;\n\nexport type AddPullWatch = (\n pullPattern: string,\n entityId: string,\n callback: (before: PullBlock | null, after: PullBlock | null) => void\n) => boolean;\n\ntype ButtonAction = {\n type: \"button\";\n onClick?: (e: MouseEvent) => void;\n content: string;\n};\n\ntype SwitchAction = {\n type: \"switch\";\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype InputAction = {\n type: \"input\";\n placeholder: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype SelectAction = {\n type: \"select\";\n items: string[];\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype CustomAction = {\n type: \"reactComponent\";\n component: React.FC;\n};\n\nexport type Action =\n | ButtonAction\n | SwitchAction\n | InputAction\n | SelectAction\n | CustomAction;\n\ntype PanelConfig = {\n tabTitle: string;\n settings: {\n id: string;\n name: string;\n description: string;\n action: Action;\n }[];\n};\n\nexport type AddCommandOptions = {\n label: string;\n callback: () => void;\n disableHotkey?: boolean;\n defaultHotkey?: string | string[];\n};\n\ntype RemoveCommandOptions = {\n label: string;\n};\n\nexport type OnloadArgs = {\n extensionAPI: {\n settings: {\n get: (k: string) => unknown;\n getAll: () => Record<string, unknown>;\n panel: {\n create: (c: PanelConfig) => void;\n };\n set: (k: string, v: unknown) => Promise<void>;\n };\n ui: {\n commandPalette: {\n addCommand: (c: AddCommandOptions) => Promise<void>;\n removeCommand: (c: RemoveCommandOptions) => Promise<void>;\n };\n };\n };\n extension: {\n version: string;\n };\n};\n"]}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/types/native.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,4EAA4E","sourcesContent":["// emulating Datalog Grammar\n// https://docs.datomic.com/cloud/query/query-data-reference.html#or-clauses\n\nimport { ChangeEvent } from \"react\";\n\nexport type DatalogSrcVar = {\n type: \"src-var\";\n value: string;\n};\n\nexport type DatalogVariable = {\n type: \"variable\";\n value: string;\n};\n\nexport type DatalogAndClause = {\n type: \"and-clause\";\n clauses: DatalogClause[];\n};\n\nexport type DatalogExpressionClause =\n | DatalogDataPattern\n | DatalogPredExpr\n | DatalogFnExpr\n | DatalogRuleExpr;\n\nexport type DatalogRuleExpr = {\n type: \"rule-expr\";\n srcVar?: DatalogSrcVar;\n ruleName: DatalogRuleName;\n arguments: DatalogArgument[];\n};\n\nexport type DatalogNotClause = {\n type: \"not-clause\";\n srcVar?: DatalogSrcVar;\n clauses: DatalogClause[];\n};\n\nexport type DatalogNotJoinClause = {\n type: \"not-join-clause\";\n srcVar?: DatalogSrcVar;\n variables: DatalogVariable[];\n clauses: DatalogClause[];\n};\n\nexport type DatalogOrClause = {\n type: \"or-clause\";\n srcVar?: DatalogSrcVar;\n clauses: DatalogClause[];\n};\n\nexport type DatalogOrJoinClause = {\n type: \"or-join-clause\";\n srcVar?: DatalogSrcVar;\n variables: DatalogVariable[];\n clauses: DatalogClause[];\n};\n\nexport type DatalogClause =\n | DatalogNotClause\n | DatalogOrJoinClause\n | DatalogExpressionClause\n | DatalogOrClause\n | DatalogNotJoinClause\n | DatalogAndClause;\n\nexport type DatalogDataPattern = {\n type: \"data-pattern\";\n srcVar?: DatalogSrcVar;\n arguments: DatalogArgument[];\n};\n\nexport type DatalogArgument =\n | DatalogSrcVar\n | DatalogVariable\n | DatalogConstant\n | DatalogUnderscore;\n\nexport type DatalogConstant = {\n type: \"constant\";\n value: string;\n};\n\nexport type DatalogPredExpr = {\n type: \"pred-expr\";\n pred:\n | \"=\"\n | \"==\"\n | \"not=\"\n | \"!=\"\n | \"<\"\n | \">\"\n | \"<=\"\n | \">=\"\n | \"+\"\n | \"-\"\n | \"*\"\n | \"/\"\n | \"quot\"\n | \"rem\"\n | \"mod\"\n | \"inc\"\n | \"dec\"\n | \"max\"\n | \"min\"\n | \"zero?\"\n | \"pos?\"\n | \"neg?\"\n | \"even?\"\n | \"odd?\"\n | \"compare\"\n | \"rand\"\n | \"rand-int\"\n | \"true?\"\n | \"false?\"\n | \"nil?\"\n | \"some?\"\n | \"not\"\n | \"and\"\n | \"or\"\n | \"complement\"\n | \"identical?\"\n | \"identity\"\n | \"keyword\"\n | \"meta\"\n | \"name\"\n | \"namespace\"\n | \"type\"\n | \"vector\"\n | \"list\"\n | \"set\"\n | \"hash-map\"\n | \"array-map\"\n | \"count\"\n | \"range\"\n | \"not-empty\"\n | \"empty?\"\n | \"contains?\"\n | \"str\"\n | \"subs\"\n | \"get\"\n | \"pr-str\"\n | \"print-str\"\n | \"println-str\"\n | \"prn-str\"\n | \"re-find\"\n | \"re-matches\"\n | \"re-seq\"\n | \"re-pattern\"\n | \"-differ?\"\n | \"get-else\"\n | \"get-some\"\n | \"missing?\"\n | \"ground\"\n | \"clojure.string/blank?\"\n | \"clojure.string/includes?\"\n | \"clojure.string/ends-with?\"\n | \"clojure.string/starts-with?\"\n | \"tuple\"\n | \"untuple\";\n arguments: DatalogArgument[];\n};\n\nexport type DatalogFnExpr = {\n type: \"fn-expr\";\n fn: \"re-pattern\" | \"get\";\n arguments: DatalogArgument[];\n binding: DatalogBinding;\n};\n\nexport type DatalogBinding =\n | DatalogBindScalar\n | DatalogBindTuple\n | DatalogBindColl\n | DatalogBindRel;\n\nexport type DatalogBindScalar = {\n type: \"bind-scalar\";\n variable: DatalogVariable;\n};\nexport type DatalogBindTuple = {\n type: \"bind-tuple\";\n args: (DatalogVariable | DatalogUnderscore)[];\n};\nexport type DatalogBindColl = {\n type: \"bind-col\";\n variable: DatalogVariable;\n};\n\nexport type DatalogBindRel = {\n type: \"bind-rel\";\n args: (DatalogVariable | DatalogUnderscore)[];\n};\n\nexport type DatalogUnderscore = {\n type: \"underscore\";\n value: \"_\";\n};\n\nexport type DatalogRuleName = {\n type: \"rulename\";\n value: string;\n};\n\nexport type RoamBasicBlock = {\n string: string;\n uid: string;\n};\n\nexport type RoamBasicPage = { title: string; uid: string };\n\nexport type RoamBasicNode = {\n text: string;\n uid: string;\n children: RoamBasicNode[];\n};\n\nexport type RoamPull = {\n \"block/children\"?: RoamNode[];\n \"block/heading\"?: number;\n \"block/open\"?: boolean;\n \"block/order\"?: number;\n \"block/page\"?: RoamNode;\n \"block/parents\"?: RoamNode[];\n \"block/refs\"?: RoamNode[];\n \"block/string\"?: string;\n \"block/view-type\"?: `:${BlockViewType}`;\n \"block/uid\"?: string;\n \"children/view-type\"?: `:${ViewType}`;\n \"create/time\"?: number;\n \"create/user\"?: RoamNode;\n \"edit/time\"?: number;\n \"edit/user\"?: RoamNode;\n \"log/id\"?: number;\n \"node/title\"?: string;\n} & RoamNode;\n\nexport type PullBlock = {\n \":attrs/lookup\"?: PullBlock[];\n \":entity/attrs\"?: [\n { \":source\": [\":block/uid\", string]; \":value\": [\":block/uid\", string] },\n { \":source\": [\":block/uid\", string]; \":value\": [\":block/uid\", string] },\n {\n \":source\": [\":block/uid\", string];\n \":value\": string | [\":block/uid\", string];\n }\n ][];\n \":block/children\"?: PullBlock[];\n \":block/heading\"?: number;\n \":block/open\"?: boolean;\n \":block/order\"?: number;\n \":block/page\"?: { \":db/id\": number };\n \":block/parents\"?: PullBlock[];\n \":block/props\"?: {\n \":image-size\"?: {\n [p: string]: {\n \":height\": number;\n \":width\": number;\n };\n };\n \":iframe\"?: {\n [p: string]: {\n \":size\": {\n \":height\": number;\n \":width\": number;\n };\n };\n };\n [k: `:roamjs-${string}`]: Record<string, unknown>;\n };\n \":block/refs\"?: { \":db/id\": number }[];\n \":block/string\"?: string;\n \":block/view-type\"?: `:${BlockViewType}`;\n \":block/text-align\"?: TextAlignment;\n \":block/uid\"?: string;\n \":children/view-type\"?: `:${ViewType}`;\n \":create/time\"?: number;\n \":create/user\"?: { \":db/id\": number };\n \":edit/time\"?: number;\n \":edit/user\"?: { \":db/id\": number };\n \":db/id\"?: number;\n \":log/id\"?: number;\n \":node/title\"?: string;\n \":user/display-name\"?: string;\n \":user/display-page\"?: { \":db/id\": number };\n \":user/settings\"?: {\n \":namespace-options\": [\":none\", \":partial\", \":full\"];\n \":link-brackets?\": boolean;\n \":showing-inline-references?\": boolean;\n \":right-sidebar-pinned\": {\n [uuid: string]: SidebarWindow;\n };\n \":showing-own-icons?\": boolean;\n \":showing-user-icons?\": boolean;\n \":first-day-of-week\"?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n };\n \":user/uid\"?: string;\n \":user/email\"?: string;\n};\n\nexport type RoamPullResult = RoamPull | null;\n\nexport type ViewType = \"document\" | \"bullet\" | \"numbered\";\n\nexport type BlockViewType =\n | \"tabs\"\n | \"outline\"\n | \"horizontal\"\n | \"horizontal-outline\"\n | \"popout\"\n | \"comment\"\n | \"side\"\n | \"vertical\";\n\nexport type TextAlignment = \"left\" | \"center\" | \"right\" | \"justify\";\n\nexport type RoamBlock = {\n attrs?: { source: string[] }[][];\n children?: { id: number }[];\n id?: number;\n string?: string;\n title?: string;\n time?: number;\n uid?: string;\n order?: number;\n \"view-type\"?: ViewType;\n};\n\nexport type RoamError = {\n raw: string;\n \"status-code\": number;\n};\n\nexport type SemanticSearchArgs = {\n \"search-str\": string;\n k?: number;\n \"hide-code-blocks\"?: boolean;\n};\n\nexport type SemanticSearchHit = {\n type: \"chunk\" | \"block\" | \"page\";\n uid: string;\n topUids: string[];\n};\n\nexport type SemanticSearch = (\n args: SemanticSearchArgs\n) => Promise<SemanticSearchHit[]>;\n\nexport type TreeNode = {\n text: string;\n order: number;\n children: TreeNode[];\n parents: number[];\n uid: string;\n heading: number;\n open: boolean;\n viewType: ViewType;\n blockViewType: BlockViewType;\n editTime: Date;\n textAlign: TextAlignment;\n props: {\n imageResize: {\n [link: string]: {\n height: number;\n width: number;\n };\n };\n iframe: {\n [link: string]: {\n height: number;\n width: number;\n };\n };\n };\n};\n\nexport type TextNode = {\n text: string;\n children: TextNode[];\n};\n\nexport type InputTextNode = {\n text: string;\n children?: InputTextNode[];\n uid?: string;\n heading?: number;\n textAlign?: TextAlignment;\n viewType?: ViewType;\n blockViewType?: BlockViewType;\n open?: boolean;\n props?: Record<string, unknown>;\n};\n\ntype PlusType = [number, string];\n\nexport type RoamNode = { \"db/id\": number };\n\nexport type RoamQuery = RoamPull & {\n \"block/graph\"?: RoamNode;\n \"node/graph+title\"?: PlusType;\n \"block/graph+uid\"?: PlusType;\n \"node/graph\"?: RoamNode;\n \"edit/email\"?: string;\n \"entity/graph\"?: RoamNode;\n};\n\nexport type RoamQueryResult = number & RoamQuery;\n\nexport type ClientParams = {\n action:\n | \"pull\"\n | \"q\"\n | \"create-block\"\n | \"update-block\"\n | \"create-page\"\n | \"move-block\"\n | \"delete-block\"\n | \"delete-page\"\n | \"update-page\";\n selector?: string;\n uid?: string;\n query?: string;\n inputs?: string[];\n} & ActionParams;\n\nexport type ActionParams = {\n location?: {\n \"parent-uid\": string;\n order: number | \"last\";\n };\n block?: {\n string?: string;\n uid?: string;\n open?: boolean;\n heading?: number;\n \"text-align\"?: TextAlignment;\n \"children-view-type\"?: ViewType;\n \"block-view-type\"?: BlockViewType;\n props?: Record<string, unknown>;\n };\n page?: {\n title?: string;\n uid?: string;\n props?: Record<string, unknown>;\n };\n};\n\nexport type WriteAction = (a: ActionParams) => Promise<void>;\n\nexport type UserSettings = {\n \"global-filters\": {\n includes: string[];\n removes: string[];\n };\n};\n\ntype SidebarWindowType =\n | SidebarBlockWindow\n | SidebarMentionsWindow\n | SidebarGraphWindow\n | SidebarOutlineWindow\n | SidebarSearchQueryWindow;\n\nexport type SidebarWindowInput = SidebarWindowType & {\n order?: number;\n};\n\ntype SidebarBlockWindow = {\n type: \"block\";\n \"block-uid\": string;\n};\n\ntype SidebarOutlineWindow = {\n type: \"outline\";\n \"page-uid\": string;\n};\n\ntype SidebarMentionsWindow = {\n type: \"mentions\";\n \"mentions-uid\": string;\n};\n\ntype SidebarGraphWindow = {\n type: \"graph\";\n // \"page-uid\": string; Currently not working despite documentation\n \"block-uid\": string;\n};\n\ntype SidebarSearchQueryWindow = {\n type: \"search-query\";\n \"search-query-uid\": string;\n};\n\nexport type SidebarAction = (action: {\n window: SidebarWindowInput;\n}) => Promise<void>;\n\nexport type SidebarWindow = {\n \"collapsed?\": boolean;\n order: number;\n \"pinned?\": boolean;\n \"window-id\": string;\n} & SidebarWindowType;\n\nexport type AddPullWatch = (\n pullPattern: string,\n entityId: string,\n callback: (before: PullBlock | null, after: PullBlock | null) => void\n) => boolean;\n\ntype ButtonAction = {\n type: \"button\";\n onClick?: (e: MouseEvent) => void;\n content: string;\n};\n\ntype SwitchAction = {\n type: \"switch\";\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype InputAction = {\n type: \"input\";\n placeholder: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype SelectAction = {\n type: \"select\";\n items: string[];\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype CustomAction = {\n type: \"reactComponent\";\n component: React.FC;\n};\n\nexport type Action =\n | ButtonAction\n | SwitchAction\n | InputAction\n | SelectAction\n | CustomAction;\n\ntype PanelConfig = {\n tabTitle: string;\n settings: {\n id: string;\n name: string;\n description: string;\n action: Action;\n }[];\n};\n\nexport type AddCommandOptions = {\n label: string;\n callback: () => void;\n disableHotkey?: boolean;\n defaultHotkey?: string | string[];\n};\n\ntype RemoveCommandOptions = {\n label: string;\n};\n\nexport type OnloadArgs = {\n extensionAPI: {\n settings: {\n get: (k: string) => unknown;\n getAll: () => Record<string, unknown>;\n panel: {\n create: (c: PanelConfig) => void;\n };\n set: (k: string, v: unknown) => Promise<void>;\n };\n ui: {\n commandPalette: {\n addCommand: (c: AddCommandOptions) => Promise<void>;\n removeCommand: (c: RemoveCommandOptions) => Promise<void>;\n };\n };\n };\n extension: {\n version: string;\n };\n};\n"]}