arcane-os 0.1.0-dev.5

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 (248) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/COMMERCIAL-LICENSE.md +13 -0
  3. package/LICENSE +661 -0
  4. package/NOTICE +70 -0
  5. package/README.md +448 -0
  6. package/bin/arcane-test.mjs +741 -0
  7. package/bin/arcane.mjs +5 -0
  8. package/docs/architecture.md +234 -0
  9. package/docs/compatibility.md +36 -0
  10. package/docs/event-manager.md +166 -0
  11. package/docs/platform-targets.md +108 -0
  12. package/docs/publishing.md +203 -0
  13. package/docs/reference/README.md +117 -0
  14. package/docs/reference/arcane-ollama.md +288 -0
  15. package/docs/reference/availability-and-normalization.md +123 -0
  16. package/docs/reference/behavioral-testing.md +86 -0
  17. package/docs/reference/cli.md +569 -0
  18. package/docs/reference/core/README.md +62 -0
  19. package/docs/reference/core/arcane-ai-contracts.md +873 -0
  20. package/docs/reference/core/arcane-api.md +601 -0
  21. package/docs/reference/core/arcane-entities.md +65 -0
  22. package/docs/reference/core/arcane-events.md +134 -0
  23. package/docs/reference/core/ollama-module.md +181 -0
  24. package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +1909 -0
  25. package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +1057 -0
  26. package/docs/reference/core/reference/arcane-api/core-and-events.md +320 -0
  27. package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +610 -0
  28. package/docs/reference/core/reference/arcane-api/namespaces.md +1157 -0
  29. package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +1423 -0
  30. package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +315 -0
  31. package/docs/reference/event-manager.md +957 -0
  32. package/docs/reference/inventory/package-api.json +2632 -0
  33. package/docs/reference/inventory/runtime-components.json +934 -0
  34. package/docs/reference/inventory/runtime-entities.json +26 -0
  35. package/docs/reference/inventory/runtime-modules.json +1249 -0
  36. package/docs/reference/protocols.md +242 -0
  37. package/docs/reference/runtime-components.md +1098 -0
  38. package/docs/reference/runtime-entities.md +303 -0
  39. package/docs/reference/runtime-modules.md +2010 -0
  40. package/docs/reference/sdk-api.md +4901 -0
  41. package/docs/roadmap.md +79 -0
  42. package/docs/work-amplification.md +124 -0
  43. package/node_modules/event-pubsub/CHANGELOG.md +55 -0
  44. package/node_modules/event-pubsub/MIGRATION.md +70 -0
  45. package/node_modules/event-pubsub/README.md +363 -0
  46. package/node_modules/event-pubsub/SECURITY.md +37 -0
  47. package/node_modules/event-pubsub/index.js +141 -0
  48. package/node_modules/event-pubsub/licence +21 -0
  49. package/node_modules/event-pubsub/package.json +59 -0
  50. package/node_modules/strong-type/README.md +408 -0
  51. package/node_modules/strong-type/assets/strong-type-header.png +0 -0
  52. package/node_modules/strong-type/index.js +1151 -0
  53. package/node_modules/strong-type/licence +21 -0
  54. package/node_modules/strong-type/node.js +125 -0
  55. package/node_modules/strong-type/package.json +61 -0
  56. package/package.json +95 -0
  57. package/runtime/ARCANE_RUNTIME_RELEASE.json +791 -0
  58. package/runtime/arcane/components/app-bar.html +468 -0
  59. package/runtime/arcane/components/assistant-panel.html +715 -0
  60. package/runtime/arcane/components/calculator.html +8 -0
  61. package/runtime/arcane/components/chart.html +655 -0
  62. package/runtime/arcane/components/chat.html +1225 -0
  63. package/runtime/arcane/components/conversation-view.html +13 -0
  64. package/runtime/arcane/components/dashboard-config.html +341 -0
  65. package/runtime/arcane/components/data-maintenance.html +112 -0
  66. package/runtime/arcane/components/data-view.html +92 -0
  67. package/runtime/arcane/components/directory-picker.html +197 -0
  68. package/runtime/arcane/components/document-inspector.html +252 -0
  69. package/runtime/arcane/components/file-drop.html +264 -0
  70. package/runtime/arcane/components/file-inspector.html +293 -0
  71. package/runtime/arcane/components/file-manager.html +1715 -0
  72. package/runtime/arcane/components/header.html +142 -0
  73. package/runtime/arcane/components/integration-settings.html +14 -0
  74. package/runtime/arcane/components/local-ai-status.html +360 -0
  75. package/runtime/arcane/components/markdown-document.html +1048 -0
  76. package/runtime/arcane/components/markdown-editor.html +360 -0
  77. package/runtime/arcane/components/media-embed.html +8 -0
  78. package/runtime/arcane/components/modal.html +402 -0
  79. package/runtime/arcane/components/output-panel.html +259 -0
  80. package/runtime/arcane/components/preferences-form.html +135 -0
  81. package/runtime/arcane/components/record-timeline.html +105 -0
  82. package/runtime/arcane/components/relationship-board.html +116 -0
  83. package/runtime/arcane/components/screen-capture.html +8 -0
  84. package/runtime/arcane/components/source-code-viewer.html +441 -0
  85. package/runtime/arcane/components/source-explanation.html +124 -0
  86. package/runtime/arcane/components/speech.html +365 -0
  87. package/runtime/arcane/components/summary-strip.html +177 -0
  88. package/runtime/arcane/components/table.html +77 -0
  89. package/runtime/arcane/components/task-progress.html +282 -0
  90. package/runtime/arcane/components/terminal-workspace.html +65 -0
  91. package/runtime/arcane/components/theme-editor.html +41 -0
  92. package/runtime/arcane/components/theme-switcher.html +46 -0
  93. package/runtime/arcane/components/unified-inbox.html +20 -0
  94. package/runtime/arcane/components/voice-transcription.html +476 -0
  95. package/runtime/arcane/components/weather-widget.html +8 -0
  96. package/runtime/arcane/components/web-navigator.html +239 -0
  97. package/runtime/arcane/css/communications.css +1 -0
  98. package/runtime/arcane/css/dashboard-config.css +45 -0
  99. package/runtime/arcane/css/document-site.css +981 -0
  100. package/runtime/arcane/css/layout.css +438 -0
  101. package/runtime/arcane/css/primitives.css +321 -0
  102. package/runtime/arcane/css/theme.css +112 -0
  103. package/runtime/arcane/css/utility-workspace.css +1 -0
  104. package/runtime/arcane/entities/ApiModelRecord.js +20 -0
  105. package/runtime/arcane/entities/Calculation.js +13 -0
  106. package/runtime/arcane/entities/Chat.js +581 -0
  107. package/runtime/arcane/entities/CommunicationMessage.js +29 -0
  108. package/runtime/arcane/entities/CommunicationThread.js +21 -0
  109. package/runtime/arcane/entities/Document.js +10 -0
  110. package/runtime/arcane/entities/File.js +143 -0
  111. package/runtime/arcane/entities/Image.js +135 -0
  112. package/runtime/arcane/entities/IntentEnvelope.js +834 -0
  113. package/runtime/arcane/entities/Preference.js +83 -0
  114. package/runtime/arcane/entities/TWiNPolicyDecision.js +1092 -0
  115. package/runtime/arcane/entities/TerminalSession.js +46 -0
  116. package/runtime/arcane/entities/Theme.js +107 -0
  117. package/runtime/arcane/entities/User.js +1046 -0
  118. package/runtime/arcane/entities/Weather.js +23 -0
  119. package/runtime/arcane/img/arcane-os-everywhere.png +0 -0
  120. package/runtime/arcane/img/arrow-left.png +0 -0
  121. package/runtime/arcane/img/arrow-right.png +0 -0
  122. package/runtime/arcane/img/doc.svg +5 -0
  123. package/runtime/arcane/img/folder.svg +4 -0
  124. package/runtime/arcane/img/image.svg +5 -0
  125. package/runtime/arcane/img/refresh.png +0 -0
  126. package/runtime/arcane/img/send.svg +9 -0
  127. package/runtime/arcane/img/trash.svg +5 -0
  128. package/runtime/arcane/img/upload.svg +5 -0
  129. package/runtime/arcane/modules/AI.js +2048 -0
  130. package/runtime/arcane/modules/AIPreferenceRuntime.js +32 -0
  131. package/runtime/arcane/modules/AIPreferenceTuple.js +92 -0
  132. package/runtime/arcane/modules/AIResponseLength.js +42 -0
  133. package/runtime/arcane/modules/AIResponseURLPolicy.js +626 -0
  134. package/runtime/arcane/modules/AnsiText.js +53 -0
  135. package/runtime/arcane/modules/ApiModelDatabase.js +25 -0
  136. package/runtime/arcane/modules/AppDataScope.js +245 -0
  137. package/runtime/arcane/modules/AppearancePreferences.js +28 -0
  138. package/runtime/arcane/modules/ArcaneCommunicationBridge.js +22 -0
  139. package/runtime/arcane/modules/ArcaneNavigationPolicy.js +135 -0
  140. package/runtime/arcane/modules/ArcaneNetworkPolicy.js +255 -0
  141. package/runtime/arcane/modules/AsyncBoundary.js +161 -0
  142. package/runtime/arcane/modules/BrowserTestSuite.js +326 -0
  143. package/runtime/arcane/modules/CalculatorEngine.js +20 -0
  144. package/runtime/arcane/modules/CaseEvidenceIndexer.js +134 -0
  145. package/runtime/arcane/modules/ChartLibrary.js +35 -0
  146. package/runtime/arcane/modules/ChatRecords.js +13 -0
  147. package/runtime/arcane/modules/CommunicationAppController.js +43 -0
  148. package/runtime/arcane/modules/CommunicationHub.js +16 -0
  149. package/runtime/arcane/modules/CommunicationPreferences.js +13 -0
  150. package/runtime/arcane/modules/CommunicationProviderRegistry.js +16 -0
  151. package/runtime/arcane/modules/ComponentContracts.js +586 -0
  152. package/runtime/arcane/modules/ConfiguredAIChatSession.js +288 -0
  153. package/runtime/arcane/modules/ConversationActionItems.js +488 -0
  154. package/runtime/arcane/modules/ConversationClosingReport.js +274 -0
  155. package/runtime/arcane/modules/ConversationTimebox.js +527 -0
  156. package/runtime/arcane/modules/CoreLocalModelCatalog.js +255 -0
  157. package/runtime/arcane/modules/DBLS.js +171 -0
  158. package/runtime/arcane/modules/DBOPFS.js +1154 -0
  159. package/runtime/arcane/modules/DBOPFSWorker.js +116 -0
  160. package/runtime/arcane/modules/DataMaintenance.js +91 -0
  161. package/runtime/arcane/modules/DevelopmentWorkspace.js +74 -0
  162. package/runtime/arcane/modules/DirectoryPicker.js +109 -0
  163. package/runtime/arcane/modules/DocumentNavigation.js +223 -0
  164. package/runtime/arcane/modules/Errors.js +1025 -0
  165. package/runtime/arcane/modules/GifEncoder.js +29 -0
  166. package/runtime/arcane/modules/HTMLImport.js +114 -0
  167. package/runtime/arcane/modules/InMemoryCommunicationProvider.js +14 -0
  168. package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +275 -0
  169. package/runtime/arcane/modules/LocalAIReadiness.js +870 -0
  170. package/runtime/arcane/modules/LocalAIReadinessController.js +156 -0
  171. package/runtime/arcane/modules/MD.js +111 -0
  172. package/runtime/arcane/modules/Mail.js +352 -0
  173. package/runtime/arcane/modules/MailTransport.mjs +180 -0
  174. package/runtime/arcane/modules/Marked.min.js +71 -0
  175. package/runtime/arcane/modules/MemoryRecords.js +44 -0
  176. package/runtime/arcane/modules/MessageAdvisory.js +38 -0
  177. package/runtime/arcane/modules/ModelDefinition.js +189 -0
  178. package/runtime/arcane/modules/Ollama.js +74 -0
  179. package/runtime/arcane/modules/OllamaModelIdentifier.js +21 -0
  180. package/runtime/arcane/modules/OllamaSettings.js +24 -0
  181. package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +14 -0
  182. package/runtime/arcane/modules/PreferenceStore.js +109 -0
  183. package/runtime/arcane/modules/QRCode.min.js +1 -0
  184. package/runtime/arcane/modules/Questionnaire.js +61 -0
  185. package/runtime/arcane/modules/RecordLinkIndex.js +24 -0
  186. package/runtime/arcane/modules/RecordPassageIndex.js +222 -0
  187. package/runtime/arcane/modules/RecordReviewStore.js +94 -0
  188. package/runtime/arcane/modules/RevocableProjectionLedger.js +1623 -0
  189. package/runtime/arcane/modules/RiskSignalAnalyzer.js +37 -0
  190. package/runtime/arcane/modules/ScamRiskPolicy.js +62 -0
  191. package/runtime/arcane/modules/ScopedOPFSCache.js +183 -0
  192. package/runtime/arcane/modules/ScreenCapture.js +20 -0
  193. package/runtime/arcane/modules/SpeechPlayback.js +581 -0
  194. package/runtime/arcane/modules/StaticDocumentCatalog.js +1248 -0
  195. package/runtime/arcane/modules/SystemAppearance.js +20 -0
  196. package/runtime/arcane/modules/SystemPlatformPresentation.js +51 -0
  197. package/runtime/arcane/modules/SystemToolRegistry.js +28 -0
  198. package/runtime/arcane/modules/TerminalClient.js +52 -0
  199. package/runtime/arcane/modules/TerminalCommandRegistry.js +50 -0
  200. package/runtime/arcane/modules/ThemeBootstrap.js +26 -0
  201. package/runtime/arcane/modules/ThemeManager.js +131 -0
  202. package/runtime/arcane/modules/TimeGuard.js +149 -0
  203. package/runtime/arcane/modules/ToolCallRouter.js +83 -0
  204. package/runtime/arcane/modules/WaitForComponent.js +102 -0
  205. package/runtime/arcane/modules/YouTubeMedia.js +16 -0
  206. package/runtime/arcane/modules/uPlot.LICENSE.txt +21 -0
  207. package/runtime/arcane/modules/uPlot.iife.min.js +2 -0
  208. package/runtime/arcane/modules/uPlot.min.css +1 -0
  209. package/runtime/arcane/security/arcane-network-policy.json +6 -0
  210. package/runtime/strong-type/index.js +352 -0
  211. package/runtime/strong-type/licence +21 -0
  212. package/runtime/strong-type/package.json +45 -0
  213. package/schemas/arcane-app-bundle.schema.json +125 -0
  214. package/schemas/arcane-app.schema.json +329 -0
  215. package/schemas/arcane-lock.schema.json +86 -0
  216. package/schemas/arcane-package.schema.json +224 -0
  217. package/schemas/cli-event.schema.json +122 -0
  218. package/schemas/event-stack.schema.json +152 -0
  219. package/schemas/native-build-plan.schema.json +176 -0
  220. package/schemas/target-adapter.schema.json +117 -0
  221. package/src/app-descriptor.mjs +500 -0
  222. package/src/cli/main.mjs +561 -0
  223. package/src/constants.mjs +31 -0
  224. package/src/dev-server.mjs +718 -0
  225. package/src/doctor.mjs +315 -0
  226. package/src/dom-event-instrumentation.mjs +594 -0
  227. package/src/errors.mjs +75 -0
  228. package/src/event-manager.mjs +1342 -0
  229. package/src/event-queue.mjs +138 -0
  230. package/src/events.mjs +219 -0
  231. package/src/index.mjs +177 -0
  232. package/src/integrated-provider-loader.mjs +432 -0
  233. package/src/native-plan.mjs +698 -0
  234. package/src/native-provider-loader.mjs +1126 -0
  235. package/src/packager/core.mjs +2691 -0
  236. package/src/process.mjs +353 -0
  237. package/src/release-bundle.mjs +2523 -0
  238. package/src/repository.mjs +90 -0
  239. package/src/runtime.mjs +452 -0
  240. package/src/scaffold.mjs +380 -0
  241. package/src/targets/index.mjs +436 -0
  242. package/src/templates/assets/app-icon.png +0 -0
  243. package/src/templates/workspace-template.mjs +388 -0
  244. package/src/testing-loader.mjs +9 -0
  245. package/src/testing.mjs +427 -0
  246. package/src/toolchain.mjs +1335 -0
  247. package/src/update-check.mjs +307 -0
  248. package/src/workspace.mjs +449 -0
@@ -0,0 +1,981 @@
1
+ /* Reusable, progressively enhanced documentation-site layout.
2
+ * Load after Arcane theme.css and primitives.css.
3
+ */
4
+
5
+ *,
6
+ *::before,
7
+ *::after{
8
+ box-sizing:border-box;
9
+ }
10
+
11
+ html{
12
+ min-height:100%;
13
+ scroll-behavior:smooth;
14
+ }
15
+
16
+ body.static-doc-site{
17
+ background:
18
+ radial-gradient(circle at 12% -8%,color-mix(in srgb,var(--arcane-focus) 14%,transparent),transparent 32rem),
19
+ var(--arcane-surface);
20
+ color:var(--text-color);
21
+ font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
22
+ line-height:1.6;
23
+ margin:0;
24
+ min-height:100vh;
25
+ text-rendering:optimizeLegibility;
26
+ }
27
+
28
+ .static-doc-site a{
29
+ color:var(--arcane-focus);
30
+ text-decoration-thickness:.08em;
31
+ text-underline-offset:.16em;
32
+ }
33
+
34
+ .static-doc-site :where(a,button,input,summary):focus-visible{
35
+ border-radius:var(--arcane-radius-small);
36
+ outline:3px solid color-mix(in srgb,var(--arcane-focus) 48%,transparent);
37
+ outline-offset:.2rem;
38
+ }
39
+
40
+ .skip-link{
41
+ background:var(--arcane-surface-raised);
42
+ border:2px solid var(--arcane-focus);
43
+ border-radius:var(--arcane-radius-medium);
44
+ color:var(--text-color);
45
+ font-weight:700;
46
+ inset-block-start:var(--arcane-space-3);
47
+ inset-inline-start:var(--arcane-space-3);
48
+ padding:var(--arcane-space-3) var(--arcane-space-4);
49
+ position:fixed;
50
+ transform:translateY(-180%);
51
+ z-index:1000;
52
+ }
53
+
54
+ .skip-link:focus{
55
+ transform:translateY(0);
56
+ }
57
+
58
+ .static-site-header{
59
+ backdrop-filter:blur(1rem);
60
+ background:color-mix(in srgb,var(--arcane-surface) 86%,transparent);
61
+ border-block-end:1px solid var(--arcane-border);
62
+ position:sticky;
63
+ top:0;
64
+ z-index:20;
65
+ }
66
+
67
+ .static-site-header__inner,
68
+ .static-site-footer__inner,
69
+ .static-site-main{
70
+ margin-inline:auto;
71
+ max-inline-size:96rem;
72
+ padding-inline:clamp(1rem,3.5vw,3.5rem);
73
+ }
74
+
75
+ .static-site-header__inner{
76
+ align-items:center;
77
+ display:flex;
78
+ gap:clamp(.75rem,2vw,1.5rem);
79
+ min-block-size:4.5rem;
80
+ padding-block:.65rem;
81
+ }
82
+
83
+ .static-site-brand{
84
+ align-items:center;
85
+ color:var(--text-color) !important;
86
+ display:inline-flex;
87
+ flex:0 0 auto;
88
+ font-size:1rem;
89
+ font-weight:800;
90
+ gap:.7rem;
91
+ letter-spacing:-.01em;
92
+ text-decoration:none;
93
+ }
94
+
95
+ .static-site-brand__mark{
96
+ align-items:center;
97
+ aspect-ratio:1;
98
+ background:linear-gradient(145deg,var(--arcane-focus),var(--arcane-review));
99
+ border:1px solid color-mix(in srgb,var(--arcane-focus) 56%,var(--arcane-border));
100
+ border-radius:.62rem;
101
+ box-shadow:var(--arcane-shadow-small);
102
+ color:var(--arcane-action-text);
103
+ display:inline-flex;
104
+ font:800 1rem/1 ui-monospace,"Cascadia Code",monospace;
105
+ justify-content:center;
106
+ inline-size:2.25rem;
107
+ }
108
+
109
+ .static-site-nav{
110
+ align-items:center;
111
+ display:flex;
112
+ flex:1 1 auto;
113
+ gap:.2rem;
114
+ justify-content:center;
115
+ }
116
+
117
+ .static-site-nav a{
118
+ border-radius:var(--arcane-radius-medium);
119
+ color:var(--arcane-muted);
120
+ font-size:.9rem;
121
+ font-weight:680;
122
+ padding:.55rem .7rem;
123
+ text-decoration:none;
124
+ white-space:nowrap;
125
+ }
126
+
127
+ .static-site-nav a:is(:hover,[aria-current="page"]){
128
+ background:var(--arcane-secondary);
129
+ color:var(--text-color);
130
+ }
131
+
132
+ .static-site-main{
133
+ min-block-size:calc(100vh - 13rem);
134
+ padding-block:clamp(1.5rem,4vw,4rem) clamp(3rem,7vw,6rem);
135
+ }
136
+
137
+ .eyebrow{
138
+ color:var(--arcane-muted);
139
+ font-size:.75rem;
140
+ font-weight:780;
141
+ letter-spacing:.14em;
142
+ margin:0 0 .35rem;
143
+ text-transform:uppercase;
144
+ }
145
+
146
+ .static-hero{
147
+ align-items:center;
148
+ display:grid;
149
+ gap:clamp(2rem,5vw,5rem);
150
+ grid-template-columns:minmax(0,1fr) minmax(20rem,.82fr);
151
+ min-block-size:min(44rem,calc(100vh - 8rem));
152
+ padding-block:clamp(1rem,5vw,4.5rem);
153
+ }
154
+
155
+ .static-hero__copy{
156
+ max-inline-size:48rem;
157
+ }
158
+
159
+ .static-hero h1,
160
+ .static-page-heading h1,
161
+ .static-document__header h1,
162
+ .static-not-found h1{
163
+ font-family:Georgia,"Times New Roman",serif;
164
+ font-weight:650;
165
+ letter-spacing:-.035em;
166
+ line-height:1.02;
167
+ text-wrap:balance;
168
+ }
169
+
170
+ .static-hero h1{
171
+ font-size:clamp(2.65rem,6vw,5rem);
172
+ margin:.3rem 0 1.25rem;
173
+ max-inline-size:14ch;
174
+ }
175
+
176
+ .static-hero__lede{
177
+ color:var(--arcane-muted);
178
+ font-size:clamp(1.05rem,2vw,1.3rem);
179
+ line-height:1.7;
180
+ margin:0;
181
+ max-inline-size:44rem;
182
+ }
183
+
184
+ .static-hero__actions{
185
+ display:flex;
186
+ flex-wrap:wrap;
187
+ gap:var(--arcane-space-3);
188
+ margin-block-start:var(--arcane-space-6);
189
+ }
190
+
191
+ .static-status-badges{
192
+ align-items:center;
193
+ display:flex;
194
+ flex-wrap:wrap;
195
+ gap:var(--arcane-space-2);
196
+ margin-block-start:var(--arcane-space-4);
197
+ }
198
+
199
+ .static-status-badges a{
200
+ display:inline-flex;
201
+ }
202
+
203
+ .static-status-badges img{
204
+ block-size:1.25rem;
205
+ inline-size:auto;
206
+ }
207
+
208
+ .static-hero__visual{
209
+ margin:0;
210
+ overflow:hidden;
211
+ padding:.55rem;
212
+ transform:rotate(1deg);
213
+ }
214
+
215
+ .static-hero__visual img{
216
+ aspect-ratio:16/9;
217
+ block-size:auto;
218
+ border-radius:calc(var(--arcane-radius-large) - .25rem);
219
+ display:block;
220
+ inline-size:100%;
221
+ object-fit:cover;
222
+ }
223
+
224
+ .static-hero__visual figcaption{
225
+ color:var(--arcane-muted);
226
+ font-size:.82rem;
227
+ padding:.65rem .5rem .25rem;
228
+ }
229
+
230
+ .static-section-directory,
231
+ .static-catalog,
232
+ .static-catalog-section,
233
+ .static-related{
234
+ display:grid;
235
+ gap:var(--arcane-space-5);
236
+ }
237
+
238
+ .static-section-directory{
239
+ padding-block:clamp(2rem,6vw,5rem);
240
+ }
241
+
242
+ .static-section-heading{
243
+ max-inline-size:52rem;
244
+ }
245
+
246
+ .static-section-heading h2,
247
+ .static-related h2{
248
+ font-size:clamp(1.55rem,3vw,2.35rem);
249
+ letter-spacing:-.025em;
250
+ line-height:1.16;
251
+ margin:.25rem 0 0;
252
+ text-wrap:balance;
253
+ }
254
+
255
+ .static-section-heading p:last-child{
256
+ color:var(--arcane-muted);
257
+ margin:.65rem 0 0;
258
+ }
259
+
260
+ .static-section-grid{
261
+ display:grid;
262
+ gap:var(--arcane-space-4);
263
+ grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));
264
+ }
265
+
266
+ .static-section-card{
267
+ color:var(--text-color) !important;
268
+ display:grid;
269
+ gap:.45rem;
270
+ min-block-size:12rem;
271
+ padding:clamp(1.1rem,3vw,1.75rem);
272
+ text-decoration:none;
273
+ transition:border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease;
274
+ }
275
+
276
+ .static-section-card:is(:hover,:focus-visible){
277
+ border-color:color-mix(in srgb,var(--arcane-focus) 65%,var(--arcane-border));
278
+ box-shadow:var(--arcane-shadow-medium);
279
+ transform:translateY(-.18rem);
280
+ }
281
+
282
+ .static-section-card strong{
283
+ font-size:1.3rem;
284
+ }
285
+
286
+ .static-section-card>span:last-child{
287
+ color:var(--arcane-muted);
288
+ }
289
+
290
+ .static-development-note{
291
+ border-inline-start:.35rem solid var(--arcane-review);
292
+ margin-block-start:clamp(1rem,4vw,3rem);
293
+ max-inline-size:62rem;
294
+ }
295
+
296
+ .static-development-note .arcane-card__body,
297
+ .static-document-callout .arcane-card__body,
298
+ .static-on-this-page .arcane-card__body,
299
+ .static-document-card .arcane-card__body{
300
+ padding:clamp(1rem,2.5vw,1.5rem);
301
+ }
302
+
303
+ .static-development-note h2,
304
+ .static-document-callout h2,
305
+ .static-on-this-page h2{
306
+ font-size:1.05rem;
307
+ margin:0;
308
+ }
309
+
310
+ .static-development-note p:last-child{
311
+ color:var(--arcane-muted);
312
+ margin-block-end:0;
313
+ }
314
+
315
+ .static-breadcrumbs{
316
+ align-items:center;
317
+ color:var(--arcane-muted);
318
+ display:flex;
319
+ flex-wrap:wrap;
320
+ font-size:.88rem;
321
+ gap:.55rem;
322
+ margin-block-end:clamp(1.5rem,4vw,3rem);
323
+ }
324
+
325
+ .static-breadcrumbs a{
326
+ color:inherit;
327
+ }
328
+
329
+ .static-page-heading{
330
+ margin-block-end:clamp(2rem,6vw,5rem);
331
+ max-inline-size:58rem;
332
+ }
333
+
334
+ .static-page-heading h1{
335
+ font-size:clamp(2.5rem,5vw,4.25rem);
336
+ margin:.25rem 0 1rem;
337
+ }
338
+
339
+ .static-page-heading>p:last-child{
340
+ color:var(--arcane-muted);
341
+ font-size:clamp(1rem,2vw,1.2rem);
342
+ margin:0;
343
+ max-inline-size:50rem;
344
+ }
345
+
346
+ .static-catalog{
347
+ gap:clamp(3rem,7vw,6rem);
348
+ }
349
+
350
+ .static-document-grid,
351
+ .static-related__grid{
352
+ display:grid;
353
+ gap:var(--arcane-space-4);
354
+ grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));
355
+ }
356
+
357
+ .static-document-card{
358
+ block-size:100%;
359
+ }
360
+
361
+ .static-document-card .arcane-card__body{
362
+ display:flex;
363
+ flex-direction:column;
364
+ gap:.65rem;
365
+ }
366
+
367
+ .static-document-card h3{
368
+ font-size:1.2rem;
369
+ line-height:1.25;
370
+ margin:0;
371
+ }
372
+
373
+ .static-document-card h3 a{
374
+ color:var(--text-color);
375
+ }
376
+
377
+ .static-document-card p:last-child{
378
+ color:var(--arcane-muted);
379
+ margin:0;
380
+ }
381
+
382
+ .static-section-all{
383
+ margin-block-start:clamp(2rem,5vw,4rem);
384
+ }
385
+
386
+ .static-site-main--document{
387
+ max-inline-size:104rem;
388
+ }
389
+
390
+ .static-document-layout{
391
+ align-items:start;
392
+ display:grid;
393
+ gap:clamp(2rem,5vw,5rem);
394
+ grid-template-columns:minmax(12rem,17rem) minmax(0,1fr);
395
+ }
396
+
397
+ .static-section-nav{
398
+ border-inline-end:1px solid var(--arcane-border);
399
+ max-block-size:calc(100vh - 7rem);
400
+ overflow-y:auto;
401
+ padding-inline-end:clamp(1rem,3vw,2rem);
402
+ position:sticky;
403
+ scrollbar-gutter:stable;
404
+ top:6rem;
405
+ }
406
+
407
+ .static-section-nav>p{
408
+ font-size:.75rem;
409
+ font-weight:800;
410
+ letter-spacing:.12em;
411
+ margin:0 0 var(--arcane-space-3);
412
+ text-transform:uppercase;
413
+ }
414
+
415
+ .static-section-nav ol{
416
+ list-style:none;
417
+ margin:0;
418
+ padding:0;
419
+ }
420
+
421
+ .static-section-nav__filter{
422
+ display:grid;
423
+ gap:.45rem;
424
+ margin-block:0 var(--arcane-space-4);
425
+ }
426
+
427
+ .static-section-nav__filter label{
428
+ color:var(--arcane-muted);
429
+ font-size:.78rem;
430
+ font-weight:720;
431
+ }
432
+
433
+ .static-section-nav__filter-control{
434
+ display:grid;
435
+ gap:.4rem;
436
+ grid-template-columns:minmax(0,1fr) auto;
437
+ }
438
+
439
+ .static-section-nav__filter input{
440
+ background:var(--arcane-surface-raised);
441
+ border:1px solid var(--arcane-border);
442
+ border-radius:var(--arcane-radius-small);
443
+ color:var(--text-color);
444
+ inline-size:100%;
445
+ min-inline-size:0;
446
+ padding:.55rem .65rem;
447
+ }
448
+
449
+ .static-section-nav__filter button{
450
+ background:var(--arcane-secondary);
451
+ border:1px solid var(--arcane-border);
452
+ border-radius:var(--arcane-radius-small);
453
+ color:var(--text-color);
454
+ cursor:pointer;
455
+ font-weight:680;
456
+ padding:.45rem .6rem;
457
+ }
458
+
459
+ .static-section-nav__status{
460
+ color:var(--arcane-muted);
461
+ font-size:.72rem;
462
+ }
463
+
464
+ .static-section-nav>ol{
465
+ display:grid;
466
+ gap:.2rem;
467
+ }
468
+
469
+ .static-section-nav>ol>li{
470
+ display:grid;
471
+ gap:.25rem;
472
+ }
473
+
474
+ .static-section-nav details{
475
+ display:grid;
476
+ gap:.2rem;
477
+ }
478
+
479
+ .static-section-nav summary{
480
+ border-radius:var(--arcane-radius-small);
481
+ color:var(--text-color);
482
+ cursor:pointer;
483
+ font-size:.78rem;
484
+ font-weight:760;
485
+ letter-spacing:.04em;
486
+ padding:.48rem .55rem;
487
+ }
488
+
489
+ .static-section-nav summary:is(:hover,[aria-current="location"]){
490
+ background:var(--arcane-secondary);
491
+ }
492
+
493
+ .static-section-nav__section-link{
494
+ font-size:.76rem !important;
495
+ margin-inline:.55rem;
496
+ }
497
+
498
+ .static-section-nav a{
499
+ border-radius:var(--arcane-radius-small);
500
+ color:var(--arcane-muted);
501
+ display:block;
502
+ font-size:.87rem;
503
+ line-height:1.35;
504
+ overflow-wrap:anywhere;
505
+ padding:.45rem .55rem;
506
+ text-decoration:none;
507
+ }
508
+
509
+ .static-section-nav a:is(:hover,[aria-current="location"],[aria-current="page"]){
510
+ background:var(--arcane-secondary);
511
+ color:var(--text-color);
512
+ }
513
+
514
+ .static-section-nav a[aria-current="page"]{
515
+ border-inline-start:.2rem solid var(--arcane-focus);
516
+ font-weight:720;
517
+ }
518
+
519
+ .static-section-nav li ol{
520
+ border-inline-start:1px solid var(--arcane-border);
521
+ margin:.1rem 0 .6rem .55rem;
522
+ padding-inline-start:.55rem;
523
+ }
524
+
525
+ .static-section-nav--collection>ol{
526
+ gap:.45rem;
527
+ }
528
+
529
+ .static-section-nav--collection summary{
530
+ text-transform:none;
531
+ }
532
+
533
+ .static-document{
534
+ --static-reading-measure:78ch;
535
+ inline-size:100%;
536
+ min-inline-size:0;
537
+ }
538
+
539
+ .static-document>:not(.static-document__content),
540
+ .static-document__content>:not(table){
541
+ max-inline-size:min(100%,var(--static-reading-measure));
542
+ }
543
+
544
+ .static-document__header{
545
+ border-block-end:1px solid var(--arcane-border);
546
+ margin-block-end:clamp(1.5rem,4vw,2.5rem);
547
+ padding-block-end:clamp(1.5rem,4vw,2.5rem);
548
+ }
549
+
550
+ .static-document__header h1{
551
+ font-size:clamp(2.4rem,5vw,4.15rem);
552
+ margin:.35rem 0 1rem;
553
+ overflow-wrap:anywhere;
554
+ }
555
+
556
+ .static-document__summary{
557
+ color:var(--arcane-muted);
558
+ font-size:clamp(1.05rem,2vw,1.23rem);
559
+ line-height:1.68;
560
+ margin:0;
561
+ }
562
+
563
+ .static-document-meta{
564
+ display:flex;
565
+ flex-wrap:wrap;
566
+ gap:.5rem;
567
+ list-style:none;
568
+ margin:var(--arcane-space-5) 0 0;
569
+ padding:0;
570
+ }
571
+
572
+ .static-document-meta li{
573
+ background:var(--arcane-secondary);
574
+ border:1px solid var(--arcane-border);
575
+ border-radius:999px;
576
+ color:var(--arcane-muted);
577
+ font-size:.78rem;
578
+ padding:.25rem .65rem;
579
+ }
580
+
581
+ .static-document-callout,
582
+ .static-on-this-page{
583
+ box-shadow:none;
584
+ margin-block:var(--arcane-space-5);
585
+ }
586
+
587
+ .static-document-callout{
588
+ border-inline-start:.3rem solid var(--arcane-warning);
589
+ }
590
+
591
+ .static-document-callout ul,
592
+ .static-on-this-page ol{
593
+ margin-block:.65rem 0;
594
+ padding-inline-start:1.35rem;
595
+ }
596
+
597
+ .static-on-this-page ol{
598
+ columns:2 16rem;
599
+ }
600
+
601
+ .static-on-this-page li{
602
+ break-inside:avoid;
603
+ margin-block:.35rem;
604
+ }
605
+
606
+ .static-on-this-page li[data-level="3"]{
607
+ margin-inline-start:.8rem;
608
+ }
609
+
610
+ .static-document__content{
611
+ font-size:1rem;
612
+ line-height:1.75;
613
+ min-inline-size:0;
614
+ overflow-wrap:break-word;
615
+ }
616
+
617
+ .static-document__content :where(h2,h3,h4,h5,h6){
618
+ font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
619
+ letter-spacing:-.02em;
620
+ line-height:1.2;
621
+ scroll-margin-block-start:6rem;
622
+ text-wrap:balance;
623
+ }
624
+
625
+ .static-document__content h2{
626
+ font-size:clamp(1.65rem,3vw,2.25rem);
627
+ margin-block:2.75rem 1rem;
628
+ }
629
+
630
+ .static-document__content h3{
631
+ font-size:clamp(1.3rem,2vw,1.65rem);
632
+ margin-block:2rem .75rem;
633
+ }
634
+
635
+ .static-document__content :where(h4,h5,h6){
636
+ font-size:1.08rem;
637
+ margin-block:1.6rem .65rem;
638
+ }
639
+
640
+ .static-document__content p,
641
+ .static-document__content ul,
642
+ .static-document__content ol,
643
+ .static-document__content blockquote{
644
+ margin-block:0 1.15rem;
645
+ }
646
+
647
+ .static-document__content blockquote{
648
+ border-inline-start:.3rem solid var(--arcane-review);
649
+ color:var(--arcane-muted);
650
+ margin-inline:0;
651
+ padding:.4rem 0 .4rem 1.2rem;
652
+ }
653
+
654
+ .static-document__content :where(code,kbd){
655
+ background:var(--arcane-secondary);
656
+ border-radius:.25rem;
657
+ font-family:ui-monospace,"Cascadia Code",Consolas,monospace;
658
+ font-size:.9em;
659
+ padding:.1em .32em;
660
+ }
661
+
662
+ .static-document__content pre{
663
+ background:var(--arcane-secondary);
664
+ border:1px solid var(--arcane-border);
665
+ border-radius:var(--arcane-radius-medium);
666
+ max-inline-size:100%;
667
+ overflow:auto;
668
+ padding:clamp(.85rem,2.5vw,1.25rem);
669
+ }
670
+
671
+ .static-document__content pre code{
672
+ background:transparent;
673
+ padding:0;
674
+ }
675
+
676
+ .static-document__content img{
677
+ block-size:auto;
678
+ border:1px solid var(--arcane-border);
679
+ border-radius:var(--arcane-radius-medium);
680
+ box-shadow:var(--arcane-shadow-small);
681
+ display:block;
682
+ margin-block:1.5rem;
683
+ max-inline-size:100%;
684
+ }
685
+
686
+ .static-document__content table{
687
+ border-collapse:collapse;
688
+ display:block;
689
+ inline-size:100%;
690
+ margin-block:1.5rem;
691
+ max-inline-size:100%;
692
+ overflow-x:auto;
693
+ overscroll-behavior-inline:contain;
694
+ }
695
+
696
+ .static-document__content table :where(code,kbd){
697
+ overflow-wrap:normal;
698
+ white-space:normal;
699
+ word-break:normal;
700
+ }
701
+
702
+ .static-document__content pre:focus-visible,
703
+ .static-document__content table:focus-visible{
704
+ outline:3px solid var(--arcane-focus);
705
+ outline-offset:.2rem;
706
+ }
707
+
708
+ .static-document__content :where(th,td){
709
+ border:1px solid var(--arcane-border);
710
+ padding:.65rem .75rem;
711
+ text-align:start;
712
+ vertical-align:top;
713
+ }
714
+
715
+ .static-document__content th{
716
+ background:var(--arcane-secondary);
717
+ }
718
+
719
+ .document-image-fallback{
720
+ background:var(--arcane-secondary);
721
+ border:1px dashed var(--arcane-border);
722
+ border-radius:var(--arcane-radius-small);
723
+ color:var(--arcane-muted);
724
+ display:block;
725
+ font-size:.88rem;
726
+ margin-block:1rem;
727
+ padding:.75rem;
728
+ }
729
+
730
+ .static-document__source{
731
+ border-block-start:1px solid var(--arcane-border);
732
+ font-size:.88rem;
733
+ margin-block:clamp(2rem,5vw,4rem);
734
+ padding-block-start:var(--arcane-space-4);
735
+ }
736
+
737
+ .static-related{
738
+ margin-block:clamp(2.5rem,6vw,5rem);
739
+ }
740
+
741
+ .static-related__grid{
742
+ grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));
743
+ }
744
+
745
+ .static-previous-next{
746
+ border-block-start:1px solid var(--arcane-border);
747
+ display:grid;
748
+ gap:var(--arcane-space-4);
749
+ grid-template-columns:repeat(2,minmax(0,1fr));
750
+ padding-block-start:var(--arcane-space-5);
751
+ }
752
+
753
+ .static-previous-next a{
754
+ background:var(--arcane-surface-raised);
755
+ border:1px solid var(--arcane-border);
756
+ border-radius:var(--arcane-radius-medium);
757
+ color:var(--text-color);
758
+ display:grid;
759
+ gap:.25rem;
760
+ padding:var(--arcane-space-4);
761
+ text-decoration:none;
762
+ }
763
+
764
+ .static-previous-next a:last-child{
765
+ text-align:end;
766
+ }
767
+
768
+ .static-previous-next span{
769
+ color:var(--arcane-muted);
770
+ font-size:.75rem;
771
+ letter-spacing:.08em;
772
+ text-transform:uppercase;
773
+ }
774
+
775
+ .static-not-found{
776
+ align-content:center;
777
+ display:grid;
778
+ min-block-size:100vh;
779
+ max-inline-size:52rem;
780
+ }
781
+
782
+ .static-not-found h1{
783
+ font-size:clamp(2.8rem,7vw,5.5rem);
784
+ margin:.2rem 0 1rem;
785
+ }
786
+
787
+ .static-not-found>p:not(.eyebrow){
788
+ color:var(--arcane-muted);
789
+ font-size:1.15rem;
790
+ }
791
+
792
+ .static-site-footer{
793
+ border-block-start:1px solid var(--arcane-border);
794
+ color:var(--arcane-muted);
795
+ font-size:.84rem;
796
+ }
797
+
798
+ .static-site-footer__inner{
799
+ align-items:center;
800
+ display:flex;
801
+ gap:var(--arcane-space-5);
802
+ justify-content:space-between;
803
+ min-block-size:7rem;
804
+ padding-block:var(--arcane-space-5);
805
+ }
806
+
807
+ @media (max-width:72rem){
808
+ .static-site-header{
809
+ position:static;
810
+ }
811
+
812
+ .static-site-header__inner{
813
+ align-items:flex-start;
814
+ flex-wrap:wrap;
815
+ }
816
+
817
+ .static-site-nav{
818
+ flex-wrap:wrap;
819
+ justify-content:flex-start;
820
+ order:3;
821
+ inline-size:100%;
822
+ }
823
+
824
+ .static-site-header__inner>.arcane-badge{
825
+ margin-inline-start:auto;
826
+ }
827
+
828
+ .static-hero{
829
+ grid-template-columns:1fr;
830
+ min-block-size:0;
831
+ }
832
+
833
+ .static-hero__copy{
834
+ max-inline-size:54rem;
835
+ }
836
+
837
+ .static-hero__visual{
838
+ max-inline-size:52rem;
839
+ transform:none;
840
+ }
841
+ }
842
+
843
+ @media (max-width:58rem){
844
+ .static-document-layout{
845
+ display:flex;
846
+ flex-direction:column;
847
+ }
848
+
849
+ .static-document{
850
+ order:1;
851
+ }
852
+
853
+ .static-section-nav{
854
+ border:1px solid var(--arcane-border);
855
+ border-radius:var(--arcane-radius-medium);
856
+ inline-size:100%;
857
+ max-block-size:none;
858
+ order:2;
859
+ overflow:visible;
860
+ padding:var(--arcane-space-4);
861
+ position:static;
862
+ }
863
+
864
+ .static-section-nav>ol{
865
+ grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));
866
+ }
867
+
868
+ .static-section-nav li ol{
869
+ border:0;
870
+ margin-inline:0;
871
+ padding-inline:0;
872
+ }
873
+
874
+ .static-document{
875
+ inline-size:100%;
876
+ }
877
+ }
878
+
879
+ @media (max-width:38rem){
880
+ .static-site-header__inner,
881
+ .static-site-footer__inner,
882
+ .static-site-main{
883
+ padding-inline:clamp(.9rem,5vw,1.25rem);
884
+ }
885
+
886
+ .static-site-brand span:last-child{
887
+ max-inline-size:8.5rem;
888
+ }
889
+
890
+ .static-hero{
891
+ gap:var(--arcane-space-6);
892
+ grid-template-columns:minmax(0,1fr);
893
+ }
894
+
895
+ .static-hero__visual{
896
+ inline-size:100%;
897
+ }
898
+
899
+ .static-hero h1,
900
+ .static-page-heading h1,
901
+ .static-document__header h1{
902
+ overflow-wrap:anywhere;
903
+ }
904
+
905
+ .static-section-card{
906
+ min-block-size:0;
907
+ }
908
+
909
+ .static-on-this-page ol{
910
+ columns:1;
911
+ }
912
+
913
+ .static-previous-next{
914
+ grid-template-columns:1fr;
915
+ }
916
+
917
+ .static-previous-next a:last-child{
918
+ text-align:start;
919
+ }
920
+
921
+ .static-site-footer__inner{
922
+ align-items:flex-start;
923
+ flex-direction:column;
924
+ justify-content:center;
925
+ }
926
+ }
927
+
928
+ @media (forced-colors:active){
929
+ .static-site-brand__mark,
930
+ .static-section-card,
931
+ .static-document-meta li,
932
+ .static-document__content :where(th,td),
933
+ .static-previous-next a{
934
+ border-color:CanvasText;
935
+ }
936
+
937
+ .static-doc-site :where(a,button,input,summary):focus-visible{
938
+ outline-color:Highlight;
939
+ }
940
+
941
+ .static-document__content pre:focus-visible,
942
+ .static-document__content table:focus-visible{
943
+ outline-color:Highlight;
944
+ }
945
+ }
946
+
947
+ @media print{
948
+ .static-site-header,
949
+ .static-site-footer,
950
+ .static-section-nav,
951
+ .static-previous-next,
952
+ .static-related,
953
+ .static-document__source,
954
+ .skip-link{
955
+ display:none;
956
+ }
957
+
958
+ .static-site-main,
959
+ .static-site-main--document{
960
+ max-inline-size:none;
961
+ padding:0;
962
+ }
963
+
964
+ .static-document-layout{
965
+ display:block;
966
+ }
967
+
968
+ .static-document{
969
+ inline-size:100%;
970
+ }
971
+
972
+ .static-document__content table{
973
+ display:table;
974
+ overflow:visible;
975
+ }
976
+
977
+ .static-document__content table :where(code,kbd){
978
+ overflow-wrap:anywhere;
979
+ word-break:break-word;
980
+ }
981
+ }