@lapis-notes/api 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/CHANGELOG.md +193 -0
  2. package/README.md +19 -0
  3. package/dist/__tests__/fixtures/indexed-mutations.json +6862 -0
  4. package/dist/__tests__/fixtures/memory-storage.json +309 -0
  5. package/dist/__tests__/fixtures/native-facade-contract.json +3224 -0
  6. package/dist/__tests__/fixtures/projection-query.json +195 -0
  7. package/dist/__tests__/fixtures/projection-values.json +60 -0
  8. package/dist/__tests__/fixtures/search-preparation.json +1513 -0
  9. package/dist/__tests__/fixtures/search-retrieval.json +15409 -0
  10. package/dist/__tests__/fixtures/search-semantic-model.json +3691 -0
  11. package/dist/__tests__/fixtures/search-semantic-retrieval.json +6603 -0
  12. package/dist/__tests__/fixtures/search-storage.json +409 -0
  13. package/dist/__tests__/fixtures/task-projection.json +428 -0
  14. package/dist/__tests__/indexed-mutation-support.js +262 -0
  15. package/dist/__tests__/projection-query-support.js +40 -0
  16. package/dist/__tests__/search-retrieval-support.js +47 -0
  17. package/dist/app-database-host.d.ts +1 -0
  18. package/dist/app-shell-plugin-persistence.d.ts +3 -2
  19. package/dist/app-shell-plugin-persistence.js +37 -3
  20. package/dist/cache.svelte.d.ts +8 -1
  21. package/dist/cache.svelte.js +103 -5
  22. package/dist/command.svelte.js +29 -2
  23. package/dist/components/editor/editor.css +4 -0
  24. package/dist/components/editor/editor.svelte +21 -9
  25. package/dist/components/editor/embedded-editor-surface.js +3 -1
  26. package/dist/components/editor/inline-title-alignment.d.ts +3 -0
  27. package/dist/components/editor/inline-title-alignment.js +57 -0
  28. package/dist/configuration.svelte.d.ts +270 -206
  29. package/dist/configuration.svelte.js +161 -86
  30. package/dist/context.svelte.d.ts +21 -3
  31. package/dist/context.svelte.js +63 -20
  32. package/dist/diagnostics.d.ts +8 -0
  33. package/dist/diagnostics.js +6 -0
  34. package/dist/editor-save-context.d.ts +12 -1
  35. package/dist/editor-save-context.js +32 -1
  36. package/dist/editor-view-registry.d.ts +10 -0
  37. package/dist/editor-view-registry.js +44 -4
  38. package/dist/editor.svelte.js +128 -37
  39. package/dist/embed-registry.d.ts +10 -0
  40. package/dist/embed-registry.js +15 -0
  41. package/dist/file-editing-failures.d.ts +2 -0
  42. package/dist/file-editing-failures.js +29 -0
  43. package/dist/file-editing-native-issues.d.ts +19 -0
  44. package/dist/file-editing-native-issues.js +65 -0
  45. package/dist/file-editing-sessions.d.ts +56 -8
  46. package/dist/file-editing-sessions.js +185 -15
  47. package/dist/file-manager.d.ts +8 -1
  48. package/dist/file-manager.js +37 -3
  49. package/dist/file-state-store.d.ts +5 -0
  50. package/dist/file-state-store.js +34 -0
  51. package/dist/file-text-conflicts.d.ts +25 -0
  52. package/dist/file-text-conflicts.js +35 -0
  53. package/dist/file-text-mutation.d.ts +13 -0
  54. package/dist/file-text-mutation.js +100 -0
  55. package/dist/file-text-persistence.d.ts +36 -0
  56. package/dist/file-text-persistence.js +234 -0
  57. package/dist/file-text-state-writer.d.ts +34 -0
  58. package/dist/file-text-state-writer.js +183 -0
  59. package/dist/files-configuration.d.ts +20 -0
  60. package/dist/files-configuration.js +47 -0
  61. package/dist/generated/plugin-host-modules.schema.generated.d.ts +87 -37
  62. package/dist/generated/plugin-host-modules.schema.generated.js +102 -37
  63. package/dist/glob.d.ts +3 -0
  64. package/dist/glob.js +2 -1
  65. package/dist/icons/changes.d.ts +3 -0
  66. package/dist/icons/changes.js +16 -0
  67. package/dist/icons/index.d.ts +5 -1
  68. package/dist/icons/index.js +44 -3
  69. package/dist/icons/registry.d.ts +35 -0
  70. package/dist/icons/registry.js +154 -0
  71. package/dist/icons/safe-svg.d.ts +2 -0
  72. package/dist/icons/safe-svg.js +44 -0
  73. package/dist/index.d.ts +5 -1
  74. package/dist/index.js +3 -1
  75. package/dist/lapis-extension.d.ts +6 -2
  76. package/dist/lapis-extension.js +2 -0
  77. package/dist/metadata.svelte.js +45 -2
  78. package/dist/native-background-indexing.d.ts +48 -0
  79. package/dist/native-background-indexing.js +208 -0
  80. package/dist/native-database-protocol.d.ts +29 -0
  81. package/dist/native-database-protocol.js +1 -0
  82. package/dist/native-editing-intent-lease.d.ts +17 -0
  83. package/dist/native-editing-intent-lease.js +188 -0
  84. package/dist/native-editing-intents-protocol.d.ts +70 -0
  85. package/dist/native-editing-intents-protocol.js +1 -0
  86. package/dist/native-editing-intents.d.ts +8 -0
  87. package/dist/native-editing-intents.js +1 -0
  88. package/dist/native-editing-problems.d.ts +3 -0
  89. package/dist/native-editing-problems.js +180 -0
  90. package/dist/native-editing-recovery.d.ts +24 -0
  91. package/dist/native-editing-recovery.js +198 -0
  92. package/dist/native-editing-session.d.ts +51 -0
  93. package/dist/native-editing-session.js +251 -0
  94. package/dist/native-history-index-protocol.d.ts +80 -0
  95. package/dist/native-history-index-protocol.js +1 -0
  96. package/dist/native-history-index.d.ts +6 -0
  97. package/dist/native-history-index.js +1 -0
  98. package/dist/native-indexing-protocol.d.ts +63 -0
  99. package/dist/native-indexing-protocol.js +1 -0
  100. package/dist/native-participant-protocol.d.ts +67 -0
  101. package/dist/native-participant-protocol.js +3 -0
  102. package/dist/native-queue-protocol.d.ts +73 -0
  103. package/dist/native-queue-protocol.js +3 -0
  104. package/dist/native-tasks-protocol.d.ts +264 -0
  105. package/dist/native-tasks-protocol.js +1 -0
  106. package/dist/native-tasks.d.ts +35 -0
  107. package/dist/native-tasks.js +79 -0
  108. package/dist/native-turn-protocol.d.ts +81 -0
  109. package/dist/native-turn-protocol.js +1 -0
  110. package/dist/native-turns.d.ts +29 -0
  111. package/dist/native-turns.js +2 -0
  112. package/dist/plugin-asset-server.js +3 -2
  113. package/dist/plugin-dependency-resolver.d.ts +1 -1
  114. package/dist/plugin-distribution/compatibility.d.ts +1 -1
  115. package/dist/plugin-distribution/compatibility.js +10 -5
  116. package/dist/plugin-distribution/installed-plugin-state.js +2 -1
  117. package/dist/plugin-distribution/installer.d.ts +6 -0
  118. package/dist/plugin-distribution/installer.js +90 -37
  119. package/dist/plugin-distribution/manager.d.ts +4 -1
  120. package/dist/plugin-distribution/manager.js +12 -5
  121. package/dist/plugin-distribution/registry-cache.js +2 -1
  122. package/dist/plugin-distribution/registry-source-state.js +2 -1
  123. package/dist/plugin-distribution/schemas.d.ts +26 -8
  124. package/dist/plugin-distribution/schemas.js +2 -1
  125. package/dist/plugin-distribution/types.d.ts +4 -0
  126. package/dist/plugin-manager.d.ts +20 -4
  127. package/dist/plugin-manager.js +228 -64
  128. package/dist/plugin-runtime-entry.d.ts +1 -1
  129. package/dist/plugin-runtime-entry.js +16 -0
  130. package/dist/plugin.d.ts +18 -2
  131. package/dist/plugin.js +93 -39
  132. package/dist/registry-schema/catalog-v1.d.ts +60 -9
  133. package/dist/registry-schema/catalog-v1.js +2 -1
  134. package/dist/registry-schema/catalog-v2.d.ts +60 -9
  135. package/dist/registry-schema/catalog-v2.js +1 -1
  136. package/dist/search-result-provider.d.ts +95 -0
  137. package/dist/search-result-provider.js +42 -0
  138. package/dist/status-bar.svelte.d.ts +26 -20
  139. package/dist/status-bar.svelte.js +1 -0
  140. package/dist/storage/app-database.d.ts +6 -2
  141. package/dist/storage/app-database.js +41 -34
  142. package/dist/storage/desktop-native.d.ts +5 -3
  143. package/dist/storage/desktop-native.js +59 -6
  144. package/dist/storage/directory-watcher.d.ts +27 -0
  145. package/dist/storage/directory-watcher.js +201 -0
  146. package/dist/storage/fs.d.ts +14 -27
  147. package/dist/storage/fs.js +2 -168
  148. package/dist/storage/index-projection.js +33 -15
  149. package/dist/storage/memory-vault-adapter.d.ts +2 -0
  150. package/dist/storage/memory-vault-adapter.js +14 -1
  151. package/dist/storage/path.d.ts +6 -2
  152. package/dist/storage/path.js +8 -2
  153. package/dist/storage/projection-query-candidates.d.ts +3 -0
  154. package/dist/storage/projection-query-candidates.js +69 -0
  155. package/dist/storage/remote-app-database.d.ts +2 -2
  156. package/dist/storage/remote-app-database.js +1 -1
  157. package/dist/storage/runtime.d.ts +3 -0
  158. package/dist/storage/runtime.js +3 -0
  159. package/dist/storage/search-embedding-record.d.ts +3 -0
  160. package/dist/storage/search-embedding-record.js +18 -0
  161. package/dist/storage/turso-app-database.d.ts +2 -0
  162. package/dist/storage/turso-app-database.js +67 -30
  163. package/dist/storage/vault-listing.d.ts +3 -0
  164. package/dist/storage/vault-listing.js +36 -0
  165. package/dist/storage/vault-reconciliation.d.ts +19 -0
  166. package/dist/storage/vault-reconciliation.js +137 -0
  167. package/dist/storage/vault-session.d.ts +8 -0
  168. package/dist/storage/vault-session.js +10 -2
  169. package/dist/storage/vault.svelte.d.ts +53 -4
  170. package/dist/storage/vault.svelte.js +223 -87
  171. package/dist/sync-host.d.ts +12 -3
  172. package/dist/sync-host.js +5 -1
  173. package/dist/vault-change-views.d.ts +4 -0
  174. package/dist/vault-change-views.js +43 -0
  175. package/dist/vault-changes.d.ts +37 -0
  176. package/dist/vault-changes.js +228 -0
  177. package/dist/view.svelte.d.ts +182 -149
  178. package/dist/view.svelte.js +11 -2
  179. package/dist/workspace-close-guard.d.ts +3 -0
  180. package/dist/workspace-close-guard.js +35 -0
  181. package/dist/workspace-host-internal.js +10 -2
  182. package/dist/workspace-layout-normalizer.d.ts +4 -2
  183. package/dist/workspace-layout-normalizer.js +5 -5
  184. package/dist/workspace-view-document.d.ts +3 -0
  185. package/dist/workspace-view-document.js +12 -0
  186. package/dist/workspace.svelte.d.ts +13 -2
  187. package/dist/workspace.svelte.js +371 -82
  188. package/package.json +45 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,198 @@
1
1
  # @lapis-notes/api
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`bdd4923`](https://github.com/lapismd/lapis-notes/commit/bdd492357135de2cc0175fa42413709b2a38cd63)
8
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose optional native
9
+ watch registration readiness and preserve it through DirectoryWatcher and
10
+ array subscriptions, allowing an initial reconciliation to run after native
11
+ observation is established.
12
+
13
+ - [`86e85f6`](https://github.com/lapismd/lapis-notes/commit/86e85f6e814430c1755147c913eb91090a439bf4)
14
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose
15
+ `Workspace.flushLayout()` for hosts to await the latest serialized layout
16
+ write before closing or reloading. Retain normal debounced persistence, report
17
+ and retry failures, and drain accepted writes before disposing the host.
18
+
19
+ - [`fdee7e4`](https://github.com/lapismd/lapis-notes/commit/fdee7e4defde17a1009e16138d78c93c3ead8e2f)
20
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose an optional
21
+ conditional text-write port and an explicit native capability. Supporting
22
+ native hosts receive the caller's exact text snapshot or expected absence.
23
+ Unsupported hosts reject without falling back to an ordinary write.
24
+
25
+ - [`d8946b9`](https://github.com/lapismd/lapis-notes/commit/d8946b941569484b813eb0c1e8b1c5729fffc1a7)
26
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Add owned
27
+ diagnostic-resource navigation and themed recovery-banner actions. Accept
28
+ Design Core 0.5.1 alongside the existing 0.4 range.
29
+
30
+ - [`ebf033a`](https://github.com/lapismd/lapis-notes/commit/ebf033af0fc0752be5ce5ffa7d55784163d291b4)
31
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Retain document-owned
32
+ conditional save baselines and expose App-owned text conflicts with explicit,
33
+ snapshot-checked recovery for supporting vaults.
34
+
35
+ - [`978b987`](https://github.com/lapismd/lapis-notes/commit/978b987ba4c95408a63e49fad11bc44bab020758)
36
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose an explicit
37
+ AppDatabase provider runtime and retain the deprecated runtime value for
38
+ existing consumers.
39
+
40
+ - [`ad4490c`](https://github.com/lapismd/lapis-notes/commit/ad4490ca1cd808002765582a17a5c81fa5335e0d)
41
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose optional rename
42
+ hints and awaitable native watch cleanup. Retire replaced or closed
43
+ DirectoryWatcher generations before awaiting cleanup, retain failures for
44
+ retry, and preserve complete polling state after read failures.
45
+
46
+ - [`55be8dc`](https://github.com/lapismd/lapis-notes/commit/55be8dce6f7b19b0e8036be86a3cf5305db25317)
47
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Let file-view plugins
48
+ contribute a fileIcon ID for their filename patterns or registered extensions.
49
+ Add App-owned SVG and icon-pack registration with plugin lifecycle cleanup,
50
+ preserve legacy icon registrations, and refresh Explorer artwork on editor,
51
+ plugin and file changes.
52
+
53
+ Release the scoped Design Core resolver first and raise the dependent minimum
54
+ ranges to the releases containing these contracts before publishing consumers.
55
+
56
+ Upgrade API-owned Zod to the patched package while retaining its public v3
57
+ schema entry for compatibility.
58
+
59
+ - [`8a27bc3`](https://github.com/lapismd/lapis-notes/commit/8a27bc36a7a7fa81594e517908a6f5ed8ca77313)
60
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose captured, guarded
61
+ merged-text conflict recovery for desktop review.
62
+
63
+ - [`1e64589`](https://github.com/lapismd/lapis-notes/commit/1e6458922b486c07f36a5bc7d85d020b5805cd49)
64
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Use `.lapis` as the
65
+ shared application-state default and recognize the Tauri desktop runtime.
66
+ Tauri database sessions require an injected native provider. Expose runtime
67
+ classification independently of database and model services. Unreleased state
68
+ is not imported from the old directory.
69
+
70
+ ### Patch Changes
71
+
72
+ - [`631aeec`](https://github.com/lapismd/lapis-notes/commit/631aeec539e2fb061dc80c5c3a30a248ee15c529)
73
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Preserve newer plugin
74
+ views and activation when an older workspace controller snapshot is still
75
+ queued.
76
+
77
+ - [`a91d5e2`](https://github.com/lapismd/lapis-notes/commit/a91d5e2eb5ec037029f6a7a2df316a9bd9440af7)
78
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Attach controller-opened
79
+ views after their API workspace projection completes, and cancel deferred
80
+ attachment when the view host closes.
81
+
82
+ - [`fbba8d4`](https://github.com/lapismd/lapis-notes/commit/fbba8d48498c34939fec475e6bed67a682045820)
83
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Retain plugin-state and
84
+ compatibility-file drafts through close and conflict recovery, drain admitted
85
+ plugin/file operations before teardown, and preserve Properties mutations
86
+ after initial read failures.
87
+
88
+ - [`023259d`](https://github.com/lapismd/lapis-notes/commit/023259d96d4ff0414fec6427924ed917f89405a3)
89
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Add an optional exclusive
90
+ file-creation transport and route Explorer new-note actions through the
91
+ FileManager creation intent. Preserve existing destinations on collisions and
92
+ keep legacy Vault creation semantics explicit.
93
+
94
+ - Require released Design Core 0.6 for the close-guard, plugin-flush and
95
+ centered panel contracts used by current source. Retain portable registry
96
+ dependency ranges for the shared application runtime.
97
+
98
+ - [`63a5e7f`](https://github.com/lapismd/lapis-notes/commit/63a5e7fe40eea45762b5842b588c742076c7dd1d)
99
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Rebind clean file views
100
+ after their rename or move releases editing protection, so the open editor
101
+ continues saving to the new path. Preserve ordered App-owned projection and
102
+ dirty external-file recovery.
103
+
104
+ - [`2bffe48`](https://github.com/lapismd/lapis-notes/commit/2bffe484b38761af197afe7ab9b0d7b3affb50d7)
105
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Serialize configuration
106
+ changes and retain pending or failed settings and hotkey drafts in the owning
107
+ App's conditional persistence lifecycle. Admit shared Workspace Settings
108
+ changes before presentation debounce so immediate close cannot lose them.
109
+
110
+ - [`86f6316`](https://github.com/lapismd/lapis-notes/commit/86f63166c3d5be648c595ef4e230ea6c4081bc48)
111
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Protect frontmatter and
112
+ metadata type mutations with the App-owned writer lifecycle, authoritative
113
+ conditional baselines and retained text-conflict recovery.
114
+
115
+ - [`edf1d76`](https://github.com/lapismd/lapis-notes/commit/edf1d76f4f3aa0442c1d9153d812f29b7d14e5c2)
116
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Allow read-only
117
+ configuration baseline reconciliation after a guarded native mutation without
118
+ materializing defaults or adding another persistence operation.
119
+
120
+ - [`b3be91d`](https://github.com/lapismd/lapis-notes/commit/b3be91daecbd43187bacf8cfdc39f8311d700720)
121
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Reconcile a clean
122
+ interactive producer's drifted authoritative saved bytes under held protection
123
+ before the guarded native-yield saved-baseline comparison (LN-CORE-028). An
124
+ external file change that a lagging watch projection has not acknowledged no
125
+ longer aborts an admitted frontmatter/state mutation with a bare ECONFLICT
126
+ notice; producers that cannot acknowledge, and dirty writers, keep the
127
+ fail-closed handoff fence with its observable explicit retry.
128
+
129
+ - [`5ef0a63`](https://github.com/lapismd/lapis-notes/commit/5ef0a6331c1b846b70357f990d919977a561112c)
130
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Qualify the shared editor
131
+ against Mira 0.0.5 so native hosts can consume the source-owned accessible
132
+ block-control repair through verified local archives during migration.
133
+
134
+ Retain direct Turso connection ownership after a failed close, drain accepted
135
+ mutations, and share concurrent close completion so native teardown can be
136
+ retried safely.
137
+
138
+ - [`bac3e5e`](https://github.com/lapismd/lapis-notes/commit/bac3e5eda6f467dbc86ec88c9f27a275f2b27953)
139
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose optional
140
+ implemented system trash through the neutral native adapter with explicit
141
+ unsupported fallback and validated acknowledgements. Attribute Explorer
142
+ native/copy feedback to its owning App and reject unavailable clipboard
143
+ support without reporting success.
144
+
145
+ - [`74f544e`](https://github.com/lapismd/lapis-notes/commit/74f544e2aa8a967524c0c218f3db7e1a495a1a17)
146
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Add an explicitly started
147
+ App-owned watch service with bounded reconciliation and awaitable
148
+ stop/restart. Project external changes through existing workspace/editor
149
+ lifecycles, preserving dirty views and retained writers while clean views
150
+ follow file moves and removals.
151
+
152
+ - [`501c50e`](https://github.com/lapismd/lapis-notes/commit/501c50e049264560e13e29c75a74c089922c7297)
153
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Project owned App notices
154
+ through the existing workspace notification UI and retire their subscription
155
+ on host disposal. Pass the explicit Explorer App when reporting file-action
156
+ failures.
157
+
158
+ - [`98b333f`](https://github.com/lapismd/lapis-notes/commit/98b333f73ff5ba8d5f28c52e4e3a2ceaa5ade0fb)
159
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Protect and flush
160
+ registered file writers before FileManager trash or deletion, including folder
161
+ descendants. Route Explorer deletion through that guard so failed writes
162
+ retain the file and dirty draft until explicit recovery.
163
+
164
+ - [`535a6cc`](https://github.com/lapismd/lapis-notes/commit/535a6cc7b39f397cf8761a06db7b831386121928)
165
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose document-owned
166
+ conditional text persistence with asynchronous, operation-owned recovery
167
+ leases for independent file writers.
168
+
169
+ - [`109e208`](https://github.com/lapismd/lapis-notes/commit/109e208a63253dcc1a7abad3fd5a9b13c39d3def)
170
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Reconcile complete
171
+ bounded disk snapshots while preserving canonical Vault resource identities,
172
+ descendant lifecycle events and filename indexes. Serialize mutations through
173
+ projection and keep existing binary/text writes coherent with cached content
174
+ and tree children.
175
+
176
+ - [`f828eae`](https://github.com/lapismd/lapis-notes/commit/f828eaeba8411aa342d7ab4954393e84612af2f3)
177
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Expose core file
178
+ discovery exclusions as an editable list under Workspace settings.
179
+ - Updated dependencies
180
+ [[`d8946b9`](https://github.com/lapismd/lapis-notes/commit/d8946b941569484b813eb0c1e8b1c5729fffc1a7)]:
181
+ - @lapis-notes/ui@0.1.4
182
+
183
+ ## 0.1.5
184
+
185
+ ### Patch Changes
186
+
187
+ - [#36](https://github.com/lapismd/lapis-notes/pull/36)
188
+ [`17060a1`](https://github.com/lapismd/lapis-notes/commit/17060a1df152c9fc2302c93767cd7172868ff030)
189
+ Thanks [@stevejuma](https://github.com/stevejuma)! - Consume published Design
190
+ Core 0.5.0 with prepared browser CSS and bundled font assets through normal
191
+ npm ranges.
192
+ - Updated dependencies
193
+ [[`17060a1`](https://github.com/lapismd/lapis-notes/commit/17060a1df152c9fc2302c93767cd7172868ff030)]:
194
+ - @lapis-notes/ui@0.1.4
195
+
3
196
  ## 0.1.4
4
197
 
5
198
  ### Patch Changes
package/README.md CHANGED
@@ -46,3 +46,22 @@ pnpm --filter @lapis-notes/api test
46
46
  - [Package spec](spec.md)
47
47
  - [Canonical spec](../../spec/src/20-packages/api/index.md)
48
48
  - [App state model](../../spec/src/20-packages/api/app-state-and-workspace-model.md)
49
+
50
+ ### Plugin file icons
51
+
52
+ File-view plugins may set `fileIcon` on `registerEditorView` contributions, or
53
+ pass `{ fileIcon }` as the third `registerExtensions` argument. The value is an
54
+ icon ID: built-in Lucide names, existing `addIcon` IDs, and registered icon-pack
55
+ entries work through the same resolver.
56
+
57
+ Use `const fileIcon = this.registerIcon("diagram", diagramSvg)` to register
58
+ custom SVG artwork in the owning App. The returned ID is namespaced and the
59
+ plugin automatically releases it on unload. `this.registerIconPack({ name,
60
+ icons })` or an asynchronous `loader` returns the owned pack prefix; reference
61
+ its entries as `prefix:icon`. Legacy global registrations retain their existing
62
+ shared-name behavior and caller-owned cleanup.
63
+
64
+ Explorer uses editor associations and pattern priority to choose the
65
+ contribution, then resolves artwork through `app.icons`. Pending, missing or
66
+ failed artwork retains the filename icon. Changes repaint existing rows;
67
+ rendering an icon never activates a plugin or constructs its file view.