worldorbit 3.2.1 → 3.2.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.
Files changed (81) hide show
  1. package/dist/browser/obsidian-plugin/dist/diagnostics.d.ts +3 -0
  2. package/dist/browser/obsidian-plugin/dist/diagnostics.js +23 -0
  3. package/dist/browser/obsidian-plugin/dist/examples.d.ts +3 -0
  4. package/dist/browser/obsidian-plugin/dist/examples.js +77 -0
  5. package/dist/browser/obsidian-plugin/dist/index.d.ts +9 -0
  6. package/dist/browser/obsidian-plugin/dist/index.js +8 -0
  7. package/dist/browser/obsidian-plugin/dist/main.d.ts +2 -0
  8. package/dist/browser/obsidian-plugin/dist/main.js +2 -0
  9. package/dist/browser/obsidian-plugin/dist/navigation.d.ts +6 -0
  10. package/dist/browser/obsidian-plugin/dist/navigation.js +44 -0
  11. package/dist/browser/obsidian-plugin/dist/plugin.d.ts +8 -0
  12. package/dist/browser/obsidian-plugin/dist/plugin.js +508 -0
  13. package/dist/browser/obsidian-plugin/dist/positions.d.ts +7 -0
  14. package/dist/browser/obsidian-plugin/dist/positions.js +14 -0
  15. package/dist/browser/obsidian-plugin/dist/settings.d.ts +2 -0
  16. package/dist/browser/obsidian-plugin/dist/settings.js +5 -0
  17. package/dist/browser/obsidian-plugin/dist/theme.d.ts +2 -0
  18. package/dist/browser/obsidian-plugin/dist/theme.js +31 -0
  19. package/dist/browser/obsidian-plugin/dist/types.d.ts +42 -0
  20. package/dist/browser/obsidian-plugin/dist/types.js +1 -0
  21. package/dist/browser/obsidian-plugin/dist/viewer-host.d.ts +14 -0
  22. package/dist/browser/obsidian-plugin/dist/viewer-host.js +110 -0
  23. package/dist/browser/viewer/dist/index.d.ts +1 -0
  24. package/dist/browser/viewer/dist/index.js +1 -0
  25. package/dist/browser/viewer/dist/interactive-2d.d.ts +21 -0
  26. package/dist/browser/viewer/dist/interactive-2d.js +201 -0
  27. package/dist/browser/viewer/dist/render.d.ts +1 -1
  28. package/dist/browser/viewer/dist/render.js +2 -1
  29. package/dist/browser/viewer/dist/viewer-state.d.ts +1 -1
  30. package/dist/browser/viewer/dist/viewer-state.js +1 -1
  31. package/dist/obsidian-plugin/LICENSE +21 -0
  32. package/dist/obsidian-plugin/README.md +124 -0
  33. package/dist/obsidian-plugin/main.js +108 -0
  34. package/dist/obsidian-plugin/manifest.json +9 -0
  35. package/dist/obsidian-plugin/obsidian_scsh_1.png +0 -0
  36. package/dist/obsidian-plugin/obsidian_scsh_2.png +0 -0
  37. package/dist/obsidian-plugin/styles.css +164 -0
  38. package/dist/unpkg/obsidian-plugin/dist/diagnostics.d.ts +3 -0
  39. package/dist/unpkg/obsidian-plugin/dist/diagnostics.js +23 -0
  40. package/dist/unpkg/obsidian-plugin/dist/examples.d.ts +3 -0
  41. package/dist/unpkg/obsidian-plugin/dist/examples.js +77 -0
  42. package/dist/unpkg/obsidian-plugin/dist/index.d.ts +9 -0
  43. package/dist/unpkg/obsidian-plugin/dist/index.js +8 -0
  44. package/dist/unpkg/obsidian-plugin/dist/main.d.ts +2 -0
  45. package/dist/unpkg/obsidian-plugin/dist/main.js +2 -0
  46. package/dist/unpkg/obsidian-plugin/dist/navigation.d.ts +6 -0
  47. package/dist/unpkg/obsidian-plugin/dist/navigation.js +44 -0
  48. package/dist/unpkg/obsidian-plugin/dist/plugin.d.ts +8 -0
  49. package/dist/unpkg/obsidian-plugin/dist/plugin.js +508 -0
  50. package/dist/unpkg/obsidian-plugin/dist/positions.d.ts +7 -0
  51. package/dist/unpkg/obsidian-plugin/dist/positions.js +14 -0
  52. package/dist/unpkg/obsidian-plugin/dist/settings.d.ts +2 -0
  53. package/dist/unpkg/obsidian-plugin/dist/settings.js +5 -0
  54. package/dist/unpkg/obsidian-plugin/dist/theme.d.ts +2 -0
  55. package/dist/unpkg/obsidian-plugin/dist/theme.js +31 -0
  56. package/dist/unpkg/obsidian-plugin/dist/types.d.ts +42 -0
  57. package/dist/unpkg/obsidian-plugin/dist/types.js +1 -0
  58. package/dist/unpkg/obsidian-plugin/dist/viewer-host.d.ts +14 -0
  59. package/dist/unpkg/obsidian-plugin/dist/viewer-host.js +110 -0
  60. package/dist/unpkg/viewer/dist/index.d.ts +1 -0
  61. package/dist/unpkg/viewer/dist/index.js +1 -0
  62. package/dist/unpkg/viewer/dist/interactive-2d.d.ts +21 -0
  63. package/dist/unpkg/viewer/dist/interactive-2d.js +201 -0
  64. package/dist/unpkg/viewer/dist/render.d.ts +1 -1
  65. package/dist/unpkg/viewer/dist/render.js +2 -1
  66. package/dist/unpkg/viewer/dist/viewer-state.d.ts +1 -1
  67. package/dist/unpkg/viewer/dist/viewer-state.js +1 -1
  68. package/dist/unpkg/worldorbit-editor.min.js +56 -56
  69. package/dist/unpkg/worldorbit-markdown.min.js +15 -15
  70. package/dist/unpkg/worldorbit-viewer.min.js +207 -207
  71. package/dist/unpkg/worldorbit.js +200 -0
  72. package/dist/unpkg/worldorbit.min.js +210 -210
  73. package/package.json +18 -1
  74. package/packages/viewer/dist/index.d.ts +1 -0
  75. package/packages/viewer/dist/index.js +1 -0
  76. package/packages/viewer/dist/interactive-2d.d.ts +21 -0
  77. package/packages/viewer/dist/interactive-2d.js +201 -0
  78. package/packages/viewer/dist/render.d.ts +1 -1
  79. package/packages/viewer/dist/render.js +2 -1
  80. package/packages/viewer/dist/viewer-state.d.ts +1 -1
  81. package/packages/viewer/dist/viewer-state.js +1 -1
@@ -0,0 +1,3 @@
1
+ import type { WorldOrbitDiagnostic } from "@worldorbit/core/types";
2
+ export declare function formatDiagnosticLocation(diagnostic: WorldOrbitDiagnostic): string;
3
+ export declare function summarizeDiagnostics(diagnostics: WorldOrbitDiagnostic[]): string;
@@ -0,0 +1,23 @@
1
+ export function formatDiagnosticLocation(diagnostic) {
2
+ if (!diagnostic.line) {
3
+ return "No position";
4
+ }
5
+ if (!diagnostic.column) {
6
+ return `Line ${diagnostic.line}`;
7
+ }
8
+ return `Line ${diagnostic.line}, Column ${diagnostic.column}`;
9
+ }
10
+ export function summarizeDiagnostics(diagnostics) {
11
+ const errors = diagnostics.filter((diagnostic) => diagnostic.severity === "error").length;
12
+ const warnings = diagnostics.filter((diagnostic) => diagnostic.severity === "warning").length;
13
+ if (!errors && !warnings) {
14
+ return "Ready";
15
+ }
16
+ if (errors && warnings) {
17
+ return `${errors} error${errors === 1 ? "" : "s"}, ${warnings} warning${warnings === 1 ? "" : "s"}`;
18
+ }
19
+ if (errors) {
20
+ return `${errors} error${errors === 1 ? "" : "s"}`;
21
+ }
22
+ return `${warnings} warning${warnings === 1 ? "" : "s"}`;
23
+ }
@@ -0,0 +1,3 @@
1
+ export declare const WORLDORBIT_HELP_TITLE = "WorldOrbit Quick Start";
2
+ export declare function buildSolarSystemExampleBlock(): string;
3
+ export declare function getQuickStartMarkdown(): string;
@@ -0,0 +1,77 @@
1
+ export const WORLDORBIT_HELP_TITLE = "WorldOrbit Quick Start";
2
+ export function buildSolarSystemExampleBlock() {
3
+ return [
4
+ "```worldorbit",
5
+ "schema 2.5",
6
+ "",
7
+ "system Sol",
8
+ ' title "Solar System"',
9
+ " referencePlane ecliptic",
10
+ "",
11
+ "defaults",
12
+ " view orthographic",
13
+ " preset atlas-card",
14
+ "",
15
+ 'group inner-system',
16
+ ' label "Inner System"',
17
+ "",
18
+ "object star Sun",
19
+ " mass 1sol",
20
+ "",
21
+ "object planet Mercury",
22
+ " orbit Sun",
23
+ " semiMajor 0.39au",
24
+ " color #b7b1a7",
25
+ " groups inner-system",
26
+ "",
27
+ "object planet Venus",
28
+ " orbit Sun",
29
+ " semiMajor 0.72au",
30
+ " color #d9b37a",
31
+ " groups inner-system",
32
+ "",
33
+ "object planet Earth",
34
+ " orbit Sun",
35
+ " semiMajor 1au",
36
+ " color #6fa8ff",
37
+ " atmosphere nitrogen-oxygen",
38
+ " groups inner-system",
39
+ "",
40
+ "object moon Luna",
41
+ " orbit Earth",
42
+ " distance 384400km",
43
+ "",
44
+ "object planet Mars",
45
+ " orbit Sun",
46
+ " semiMajor 1.52au",
47
+ " color #d97c52",
48
+ " groups inner-system",
49
+ "```",
50
+ ].join("\n");
51
+ }
52
+ export function getQuickStartMarkdown() {
53
+ return [
54
+ "Paste this into a note:",
55
+ "",
56
+ "```worldorbit",
57
+ "schema 2.5",
58
+ "",
59
+ "system Sol",
60
+ "",
61
+ "object star Sun",
62
+ "",
63
+ "object planet Earth",
64
+ " orbit Sun",
65
+ " semiMajor 1au",
66
+ "```",
67
+ "",
68
+ "Useful fields:",
69
+ "- `object planet NAME` creates a body",
70
+ "- `orbit TARGET` places it around another object",
71
+ "- `semiMajor 1au` or `distance 384400km` controls placement",
72
+ "- `color #6fa8ff` sets a display color hint",
73
+ "- `radius`, `mass`, `kind`, and `atmosphere` add more detail",
74
+ "",
75
+ "Locked mode keeps scrolling safe in notes. Activate interaction only when you want to pan or zoom the diagram.",
76
+ ].join("\n");
77
+ }
@@ -0,0 +1,9 @@
1
+ export { WorldOrbitObsidianPlugin } from "./plugin.js";
2
+ export { DEFAULT_SETTINGS } from "./settings.js";
3
+ export { formatDiagnosticLocation, summarizeDiagnostics } from "./diagnostics.js";
4
+ export { buildSolarSystemExampleBlock, getQuickStartMarkdown, WORLDORBIT_HELP_TITLE, } from "./examples.js";
5
+ export { inferFenceContentStartLine, resolveDiagnosticEditorPosition, } from "./positions.js";
6
+ export { createDiagnosticNavigationTarget, navigateToWorldOrbitDiagnostic, resolveFenceNavigationContext, } from "./navigation.js";
7
+ export { createObsidianViewerTheme } from "./theme.js";
8
+ export { WorldOrbitEmbeddedView } from "./viewer-host.js";
9
+ export type * from "./types.js";
@@ -0,0 +1,8 @@
1
+ export { WorldOrbitObsidianPlugin } from "./plugin.js";
2
+ export { DEFAULT_SETTINGS } from "./settings.js";
3
+ export { formatDiagnosticLocation, summarizeDiagnostics } from "./diagnostics.js";
4
+ export { buildSolarSystemExampleBlock, getQuickStartMarkdown, WORLDORBIT_HELP_TITLE, } from "./examples.js";
5
+ export { inferFenceContentStartLine, resolveDiagnosticEditorPosition, } from "./positions.js";
6
+ export { createDiagnosticNavigationTarget, navigateToWorldOrbitDiagnostic, resolveFenceNavigationContext, } from "./navigation.js";
7
+ export { createObsidianViewerTheme } from "./theme.js";
8
+ export { WorldOrbitEmbeddedView } from "./viewer-host.js";
@@ -0,0 +1,2 @@
1
+ import { WorldOrbitObsidianPlugin } from "./plugin.js";
2
+ export default WorldOrbitObsidianPlugin;
@@ -0,0 +1,2 @@
1
+ import { WorldOrbitObsidianPlugin } from "./plugin.js";
2
+ export default WorldOrbitObsidianPlugin;
@@ -0,0 +1,6 @@
1
+ import type { WorldOrbitDiagnostic } from "@worldorbit/core/types";
2
+ import { type App, type MarkdownPostProcessorContext } from "obsidian";
3
+ import type { BlockNavigationContext, DiagnosticNavigationTarget } from "./types.js";
4
+ export declare function resolveFenceNavigationContext(ctx: MarkdownPostProcessorContext, el: HTMLElement): BlockNavigationContext | null;
5
+ export declare function createDiagnosticNavigationTarget(contentStartLine: number | null, diagnostic: WorldOrbitDiagnostic): DiagnosticNavigationTarget;
6
+ export declare function navigateToWorldOrbitDiagnostic(app: App, sourcePath: string, contentStartLine: number, diagnostic: WorldOrbitDiagnostic): Promise<boolean>;
@@ -0,0 +1,44 @@
1
+ import { MarkdownView, TFile, } from "obsidian";
2
+ import { inferFenceContentStartLine, resolveDiagnosticEditorPosition, } from "./positions.js";
3
+ export function resolveFenceNavigationContext(ctx, el) {
4
+ if (!ctx.sourcePath) {
5
+ return null;
6
+ }
7
+ const sectionInfo = ctx.getSectionInfo(el);
8
+ if (!sectionInfo) {
9
+ return null;
10
+ }
11
+ return {
12
+ sourcePath: ctx.sourcePath,
13
+ contentStartLine: inferFenceContentStartLine(sectionInfo),
14
+ };
15
+ }
16
+ export function createDiagnosticNavigationTarget(contentStartLine, diagnostic) {
17
+ return {
18
+ diagnostic,
19
+ position: contentStartLine === null
20
+ ? null
21
+ : resolveDiagnosticEditorPosition(contentStartLine, diagnostic),
22
+ };
23
+ }
24
+ export async function navigateToWorldOrbitDiagnostic(app, sourcePath, contentStartLine, diagnostic) {
25
+ const position = resolveDiagnosticEditorPosition(contentStartLine, diagnostic);
26
+ if (!position) {
27
+ return false;
28
+ }
29
+ const file = app.vault.getAbstractFileByPath(sourcePath);
30
+ if (!(file instanceof TFile)) {
31
+ return false;
32
+ }
33
+ const leaf = app.workspace.getMostRecentLeaf() ?? app.workspace.getLeaf(true);
34
+ await leaf.openFile(file);
35
+ const view = leaf.view instanceof MarkdownView
36
+ ? leaf.view
37
+ : app.workspace.getActiveViewOfType(MarkdownView);
38
+ if (!view) {
39
+ return false;
40
+ }
41
+ view.editor.setCursor(position);
42
+ view.editor.focus();
43
+ return true;
44
+ }
@@ -0,0 +1,8 @@
1
+ import { Plugin } from "obsidian";
2
+ import type { WorldOrbitObsidianPluginSettings } from "./types.js";
3
+ export declare class WorldOrbitObsidianPlugin extends Plugin {
4
+ settings: WorldOrbitObsidianPluginSettings;
5
+ onload(): Promise<void>;
6
+ loadSettings(): Promise<void>;
7
+ saveSettings(): Promise<void>;
8
+ }