@marinoscar/platform-web 0.1.0-next.3 → 0.1.0-next.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 (2022) hide show
  1. package/CHANGELOG.md +270 -0
  2. package/README.md +39 -6
  3. package/dist/ai/headless/adapters.d.ts +55 -0
  4. package/dist/ai/headless/adapters.d.ts.map +1 -0
  5. package/dist/ai/headless/adapters.js +44 -0
  6. package/dist/ai/headless/adapters.js.map +1 -0
  7. package/dist/ai/headless/ai-config-provider.d.ts +26 -0
  8. package/dist/ai/headless/ai-config-provider.d.ts.map +1 -0
  9. package/dist/ai/headless/ai-config-provider.js +27 -0
  10. package/dist/ai/headless/ai-config-provider.js.map +1 -0
  11. package/dist/ai/headless/capability-labels.d.ts +43 -0
  12. package/dist/ai/headless/capability-labels.d.ts.map +1 -0
  13. package/dist/ai/headless/capability-labels.js +69 -0
  14. package/dist/ai/headless/capability-labels.js.map +1 -0
  15. package/dist/ai/headless/chat-attachments.d.ts +116 -0
  16. package/dist/ai/headless/chat-attachments.d.ts.map +1 -0
  17. package/dist/ai/headless/chat-attachments.js +136 -0
  18. package/dist/ai/headless/chat-attachments.js.map +1 -0
  19. package/dist/ai/headless/client.d.ts +201 -0
  20. package/dist/ai/headless/client.d.ts.map +1 -0
  21. package/dist/ai/headless/client.js +321 -0
  22. package/dist/ai/headless/client.js.map +1 -0
  23. package/dist/ai/headless/errors.d.ts +32 -0
  24. package/dist/ai/headless/errors.d.ts.map +1 -0
  25. package/dist/ai/headless/errors.js +72 -0
  26. package/dist/ai/headless/errors.js.map +1 -0
  27. package/dist/ai/headless/index.d.ts +34 -0
  28. package/dist/ai/headless/index.d.ts.map +1 -0
  29. package/dist/ai/headless/index.js +34 -0
  30. package/dist/ai/headless/index.js.map +1 -0
  31. package/dist/ai/headless/schema-presets.d.ts +67 -0
  32. package/dist/ai/headless/schema-presets.d.ts.map +1 -0
  33. package/dist/ai/headless/schema-presets.js +86 -0
  34. package/dist/ai/headless/schema-presets.js.map +1 -0
  35. package/dist/ai/headless/types.d.ts +1770 -0
  36. package/dist/ai/headless/types.d.ts.map +1 -0
  37. package/dist/ai/headless/types.js +393 -0
  38. package/dist/ai/headless/types.js.map +1 -0
  39. package/dist/ai/headless/use-ai-admin-config.d.ts +115 -0
  40. package/dist/ai/headless/use-ai-admin-config.d.ts.map +1 -0
  41. package/dist/ai/headless/use-ai-admin-config.js +260 -0
  42. package/dist/ai/headless/use-ai-admin-config.js.map +1 -0
  43. package/dist/ai/headless/use-ai-api.d.ts +22 -0
  44. package/dist/ai/headless/use-ai-api.d.ts.map +1 -0
  45. package/dist/ai/headless/use-ai-api.js +31 -0
  46. package/dist/ai/headless/use-ai-api.js.map +1 -0
  47. package/dist/ai/headless/use-ai-capabilities.d.ts +23 -0
  48. package/dist/ai/headless/use-ai-capabilities.d.ts.map +1 -0
  49. package/dist/ai/headless/use-ai-capabilities.js +62 -0
  50. package/dist/ai/headless/use-ai-capabilities.js.map +1 -0
  51. package/dist/ai/headless/use-ai-chat.d.ts +114 -0
  52. package/dist/ai/headless/use-ai-chat.d.ts.map +1 -0
  53. package/dist/ai/headless/use-ai-chat.js +274 -0
  54. package/dist/ai/headless/use-ai-chat.js.map +1 -0
  55. package/dist/ai/headless/use-ai-config.d.ts +73 -0
  56. package/dist/ai/headless/use-ai-config.d.ts.map +1 -0
  57. package/dist/ai/headless/use-ai-config.js +127 -0
  58. package/dist/ai/headless/use-ai-config.js.map +1 -0
  59. package/dist/ai/headless/use-ai-models.d.ts +68 -0
  60. package/dist/ai/headless/use-ai-models.d.ts.map +1 -0
  61. package/dist/ai/headless/use-ai-models.js +191 -0
  62. package/dist/ai/headless/use-ai-models.js.map +1 -0
  63. package/dist/ai/headless/use-ai-realtime-session.d.ts +185 -0
  64. package/dist/ai/headless/use-ai-realtime-session.d.ts.map +1 -0
  65. package/dist/ai/headless/use-ai-realtime-session.js +413 -0
  66. package/dist/ai/headless/use-ai-realtime-session.js.map +1 -0
  67. package/dist/ai/headless/use-ai-run.d.ts +80 -0
  68. package/dist/ai/headless/use-ai-run.d.ts.map +1 -0
  69. package/dist/ai/headless/use-ai-run.js +212 -0
  70. package/dist/ai/headless/use-ai-run.js.map +1 -0
  71. package/dist/ai/headless/use-ai-storage.d.ts +13 -0
  72. package/dist/ai/headless/use-ai-storage.d.ts.map +1 -0
  73. package/dist/ai/headless/use-ai-storage.js +19 -0
  74. package/dist/ai/headless/use-ai-storage.js.map +1 -0
  75. package/dist/ai/headless/use-ai-usage.d.ts +30 -0
  76. package/dist/ai/headless/use-ai-usage.d.ts.map +1 -0
  77. package/dist/ai/headless/use-ai-usage.js +80 -0
  78. package/dist/ai/headless/use-ai-usage.js.map +1 -0
  79. package/dist/ai/headless/use-ai-user-settings.d.ts +38 -0
  80. package/dist/ai/headless/use-ai-user-settings.d.ts.map +1 -0
  81. package/dist/ai/headless/use-ai-user-settings.js +20 -0
  82. package/dist/ai/headless/use-ai-user-settings.js.map +1 -0
  83. package/dist/ai/headless/use-microphone-permission.d.ts +95 -0
  84. package/dist/ai/headless/use-microphone-permission.d.ts.map +1 -0
  85. package/dist/ai/headless/use-microphone-permission.js +200 -0
  86. package/dist/ai/headless/use-microphone-permission.js.map +1 -0
  87. package/dist/ai/headless/use-org-ai-keys.d.ts +47 -0
  88. package/dist/ai/headless/use-org-ai-keys.d.ts.map +1 -0
  89. package/dist/ai/headless/use-org-ai-keys.js +112 -0
  90. package/dist/ai/headless/use-org-ai-keys.js.map +1 -0
  91. package/dist/ai/headless/use-org-ai-policy.d.ts +33 -0
  92. package/dist/ai/headless/use-org-ai-policy.d.ts.map +1 -0
  93. package/dist/ai/headless/use-org-ai-policy.js +41 -0
  94. package/dist/ai/headless/use-org-ai-policy.js.map +1 -0
  95. package/dist/ai/headless/use-usable-ai-models.d.ts +24 -0
  96. package/dist/ai/headless/use-usable-ai-models.d.ts.map +1 -0
  97. package/dist/ai/headless/use-usable-ai-models.js +49 -0
  98. package/dist/ai/headless/use-usable-ai-models.js.map +1 -0
  99. package/dist/ai/headless/use-user-ai-keys.d.ts +35 -0
  100. package/dist/ai/headless/use-user-ai-keys.d.ts.map +1 -0
  101. package/dist/ai/headless/use-user-ai-keys.js +76 -0
  102. package/dist/ai/headless/use-user-ai-keys.js.map +1 -0
  103. package/dist/ai/internal/use-is-mounted.d.ts +9 -0
  104. package/dist/ai/internal/use-is-mounted.d.ts.map +1 -0
  105. package/dist/ai/internal/use-is-mounted.js +19 -0
  106. package/dist/ai/internal/use-is-mounted.js.map +1 -0
  107. package/dist/ai/ui/AiConfigPage.d.ts +102 -0
  108. package/dist/ai/ui/AiConfigPage.d.ts.map +1 -0
  109. package/dist/ai/ui/AiConfigPage.js +379 -0
  110. package/dist/ai/ui/AiConfigPage.js.map +1 -0
  111. package/dist/ai/ui/AiModelsPage.d.ts +75 -0
  112. package/dist/ai/ui/AiModelsPage.d.ts.map +1 -0
  113. package/dist/ai/ui/AiModelsPage.js +210 -0
  114. package/dist/ai/ui/AiModelsPage.js.map +1 -0
  115. package/dist/ai/ui/AiPlaygroundPage.d.ts +33 -0
  116. package/dist/ai/ui/AiPlaygroundPage.d.ts.map +1 -0
  117. package/dist/ai/ui/AiPlaygroundPage.js +384 -0
  118. package/dist/ai/ui/AiPlaygroundPage.js.map +1 -0
  119. package/dist/ai/ui/AiUsagePage.d.ts +43 -0
  120. package/dist/ai/ui/AiUsagePage.d.ts.map +1 -0
  121. package/dist/ai/ui/AiUsagePage.js +93 -0
  122. package/dist/ai/ui/AiUsagePage.js.map +1 -0
  123. package/dist/ai/ui/OrgAiKeysPage.d.ts +56 -0
  124. package/dist/ai/ui/OrgAiKeysPage.d.ts.map +1 -0
  125. package/dist/ai/ui/OrgAiKeysPage.js +59 -0
  126. package/dist/ai/ui/OrgAiKeysPage.js.map +1 -0
  127. package/dist/ai/ui/RequireAiEnabled.d.ts +48 -0
  128. package/dist/ai/ui/RequireAiEnabled.d.ts.map +1 -0
  129. package/dist/ai/ui/RequireAiEnabled.js +30 -0
  130. package/dist/ai/ui/RequireAiEnabled.js.map +1 -0
  131. package/dist/ai/ui/UserAiKeysPage.d.ts +32 -0
  132. package/dist/ai/ui/UserAiKeysPage.d.ts.map +1 -0
  133. package/dist/ai/ui/UserAiKeysPage.js +74 -0
  134. package/dist/ai/ui/UserAiKeysPage.js.map +1 -0
  135. package/dist/ai/ui/admin/AiGenericProviderCard.d.ts +49 -0
  136. package/dist/ai/ui/admin/AiGenericProviderCard.d.ts.map +1 -0
  137. package/dist/ai/ui/admin/AiGenericProviderCard.js +123 -0
  138. package/dist/ai/ui/admin/AiGenericProviderCard.js.map +1 -0
  139. package/dist/ai/ui/admin/AiModelOverrideDialog.d.ts +44 -0
  140. package/dist/ai/ui/admin/AiModelOverrideDialog.d.ts.map +1 -0
  141. package/dist/ai/ui/admin/AiModelOverrideDialog.js +132 -0
  142. package/dist/ai/ui/admin/AiModelOverrideDialog.js.map +1 -0
  143. package/dist/ai/ui/admin/AiProbeResult.d.ts +19 -0
  144. package/dist/ai/ui/admin/AiProbeResult.d.ts.map +1 -0
  145. package/dist/ai/ui/admin/AiProbeResult.js +50 -0
  146. package/dist/ai/ui/admin/AiProbeResult.js.map +1 -0
  147. package/dist/ai/ui/admin/AiProviderCard.d.ts +103 -0
  148. package/dist/ai/ui/admin/AiProviderCard.d.ts.map +1 -0
  149. package/dist/ai/ui/admin/AiProviderCard.js +128 -0
  150. package/dist/ai/ui/admin/AiProviderCard.js.map +1 -0
  151. package/dist/ai/ui/admin/AiProviderKeyActions.d.ts +50 -0
  152. package/dist/ai/ui/admin/AiProviderKeyActions.d.ts.map +1 -0
  153. package/dist/ai/ui/admin/AiProviderKeyActions.js +76 -0
  154. package/dist/ai/ui/admin/AiProviderKeyActions.js.map +1 -0
  155. package/dist/ai/ui/admin/aiModelColumns.d.ts +31 -0
  156. package/dist/ai/ui/admin/aiModelColumns.d.ts.map +1 -0
  157. package/dist/ai/ui/admin/aiModelColumns.js +97 -0
  158. package/dist/ai/ui/admin/aiModelColumns.js.map +1 -0
  159. package/dist/ai/ui/admin/aiProviderCardRegistry.d.ts +57 -0
  160. package/dist/ai/ui/admin/aiProviderCardRegistry.d.ts.map +1 -0
  161. package/dist/ai/ui/admin/aiProviderCardRegistry.js +76 -0
  162. package/dist/ai/ui/admin/aiProviderCardRegistry.js.map +1 -0
  163. package/dist/ai/ui/admin/aiProviderForm.d.ts +75 -0
  164. package/dist/ai/ui/admin/aiProviderForm.d.ts.map +1 -0
  165. package/dist/ai/ui/admin/aiProviderForm.js +227 -0
  166. package/dist/ai/ui/admin/aiProviderForm.js.map +1 -0
  167. package/dist/ai/ui/admin/builtinAiProviderCards.d.ts +5 -0
  168. package/dist/ai/ui/admin/builtinAiProviderCards.d.ts.map +1 -0
  169. package/dist/ai/ui/admin/builtinAiProviderCards.js +15 -0
  170. package/dist/ai/ui/admin/builtinAiProviderCards.js.map +1 -0
  171. package/dist/ai/ui/config-page.d.ts +2 -0
  172. package/dist/ai/ui/config-page.d.ts.map +1 -0
  173. package/dist/ai/ui/config-page.js +6 -0
  174. package/dist/ai/ui/config-page.js.map +1 -0
  175. package/dist/ai/ui/index.d.ts +19 -0
  176. package/dist/ai/ui/index.d.ts.map +1 -0
  177. package/dist/ai/ui/index.js +17 -0
  178. package/dist/ai/ui/index.js.map +1 -0
  179. package/dist/ai/ui/internal/AiSpinner.d.ts +5 -0
  180. package/dist/ai/ui/internal/AiSpinner.d.ts.map +1 -0
  181. package/dist/ai/ui/internal/AiSpinner.js +19 -0
  182. package/dist/ai/ui/internal/AiSpinner.js.map +1 -0
  183. package/dist/ai/ui/keys-page.d.ts +2 -0
  184. package/dist/ai/ui/keys-page.d.ts.map +1 -0
  185. package/dist/ai/ui/keys-page.js +6 -0
  186. package/dist/ai/ui/keys-page.js.map +1 -0
  187. package/dist/ai/ui/models-page.d.ts +2 -0
  188. package/dist/ai/ui/models-page.d.ts.map +1 -0
  189. package/dist/ai/ui/models-page.js +6 -0
  190. package/dist/ai/ui/models-page.js.map +1 -0
  191. package/dist/ai/ui/playground/AiEmbeddingsMode.d.ts +13 -0
  192. package/dist/ai/ui/playground/AiEmbeddingsMode.d.ts.map +1 -0
  193. package/dist/ai/ui/playground/AiEmbeddingsMode.js +85 -0
  194. package/dist/ai/ui/playground/AiEmbeddingsMode.js.map +1 -0
  195. package/dist/ai/ui/playground/AiFilePicker.d.ts +11 -0
  196. package/dist/ai/ui/playground/AiFilePicker.d.ts.map +1 -0
  197. package/dist/ai/ui/playground/AiFilePicker.js +12 -0
  198. package/dist/ai/ui/playground/AiFilePicker.js.map +1 -0
  199. package/dist/ai/ui/playground/AiImageMode.d.ts +22 -0
  200. package/dist/ai/ui/playground/AiImageMode.d.ts.map +1 -0
  201. package/dist/ai/ui/playground/AiImageMode.js +130 -0
  202. package/dist/ai/ui/playground/AiImageMode.js.map +1 -0
  203. package/dist/ai/ui/playground/AiPlaygroundModeSelector.d.ts +14 -0
  204. package/dist/ai/ui/playground/AiPlaygroundModeSelector.d.ts.map +1 -0
  205. package/dist/ai/ui/playground/AiPlaygroundModeSelector.js +54 -0
  206. package/dist/ai/ui/playground/AiPlaygroundModeSelector.js.map +1 -0
  207. package/dist/ai/ui/playground/AiPlaygroundPanels.d.ts +20 -0
  208. package/dist/ai/ui/playground/AiPlaygroundPanels.d.ts.map +1 -0
  209. package/dist/ai/ui/playground/AiPlaygroundPanels.js +28 -0
  210. package/dist/ai/ui/playground/AiPlaygroundPanels.js.map +1 -0
  211. package/dist/ai/ui/playground/AiSpeechMode.d.ts +14 -0
  212. package/dist/ai/ui/playground/AiSpeechMode.d.ts.map +1 -0
  213. package/dist/ai/ui/playground/AiSpeechMode.js +75 -0
  214. package/dist/ai/ui/playground/AiSpeechMode.js.map +1 -0
  215. package/dist/ai/ui/playground/AiTranscribeMode.d.ts +41 -0
  216. package/dist/ai/ui/playground/AiTranscribeMode.d.ts.map +1 -0
  217. package/dist/ai/ui/playground/AiTranscribeMode.js +115 -0
  218. package/dist/ai/ui/playground/AiTranscribeMode.js.map +1 -0
  219. package/dist/ai/ui/playground/AiVoiceMode.d.ts +25 -0
  220. package/dist/ai/ui/playground/AiVoiceMode.d.ts.map +1 -0
  221. package/dist/ai/ui/playground/AiVoiceMode.js +188 -0
  222. package/dist/ai/ui/playground/AiVoiceMode.js.map +1 -0
  223. package/dist/ai/ui/playground/aiPlaygroundModes.d.ts +170 -0
  224. package/dist/ai/ui/playground/aiPlaygroundModes.d.ts.map +1 -0
  225. package/dist/ai/ui/playground/aiPlaygroundModes.js +127 -0
  226. package/dist/ai/ui/playground/aiPlaygroundModes.js.map +1 -0
  227. package/dist/ai/ui/playground/builtinAiPlaygroundModes.d.ts +2 -0
  228. package/dist/ai/ui/playground/builtinAiPlaygroundModes.d.ts.map +1 -0
  229. package/dist/ai/ui/playground/builtinAiPlaygroundModes.js +73 -0
  230. package/dist/ai/ui/playground/builtinAiPlaygroundModes.js.map +1 -0
  231. package/dist/ai/ui/playground/embeddingMath.d.ts +15 -0
  232. package/dist/ai/ui/playground/embeddingMath.d.ts.map +1 -0
  233. package/dist/ai/ui/playground/embeddingMath.js +37 -0
  234. package/dist/ai/ui/playground/embeddingMath.js.map +1 -0
  235. package/dist/ai/ui/playground/usePlaygroundModel.d.ts +14 -0
  236. package/dist/ai/ui/playground/usePlaygroundModel.d.ts.map +1 -0
  237. package/dist/ai/ui/playground/usePlaygroundModel.js +27 -0
  238. package/dist/ai/ui/playground/usePlaygroundModel.js.map +1 -0
  239. package/dist/ai/ui/playground-modes.d.ts +3 -0
  240. package/dist/ai/ui/playground-modes.d.ts.map +1 -0
  241. package/dist/ai/ui/playground-modes.js +6 -0
  242. package/dist/ai/ui/playground-modes.js.map +1 -0
  243. package/dist/ai/ui/playground-page.d.ts +4 -0
  244. package/dist/ai/ui/playground-page.d.ts.map +1 -0
  245. package/dist/ai/ui/playground-page.js +9 -0
  246. package/dist/ai/ui/playground-page.js.map +1 -0
  247. package/dist/ai/ui/provider-cards.d.ts +6 -0
  248. package/dist/ai/ui/provider-cards.d.ts.map +1 -0
  249. package/dist/ai/ui/provider-cards.js +7 -0
  250. package/dist/ai/ui/provider-cards.js.map +1 -0
  251. package/dist/ai/ui/require-ai-enabled.d.ts +3 -0
  252. package/dist/ai/ui/require-ai-enabled.d.ts.map +1 -0
  253. package/dist/ai/ui/require-ai-enabled.js +5 -0
  254. package/dist/ai/ui/require-ai-enabled.js.map +1 -0
  255. package/dist/ai/ui/shared/AiAttachmentChips.d.ts +21 -0
  256. package/dist/ai/ui/shared/AiAttachmentChips.d.ts.map +1 -0
  257. package/dist/ai/ui/shared/AiAttachmentChips.js +28 -0
  258. package/dist/ai/ui/shared/AiAttachmentChips.js.map +1 -0
  259. package/dist/ai/ui/shared/AiCapabilityChips.d.ts +13 -0
  260. package/dist/ai/ui/shared/AiCapabilityChips.d.ts.map +1 -0
  261. package/dist/ai/ui/shared/AiCapabilityChips.js +47 -0
  262. package/dist/ai/ui/shared/AiCapabilityChips.js.map +1 -0
  263. package/dist/ai/ui/shared/AiChatAttachmentPicker.d.ts +21 -0
  264. package/dist/ai/ui/shared/AiChatAttachmentPicker.d.ts.map +1 -0
  265. package/dist/ai/ui/shared/AiChatAttachmentPicker.js +49 -0
  266. package/dist/ai/ui/shared/AiChatAttachmentPicker.js.map +1 -0
  267. package/dist/ai/ui/shared/AiChatThread.d.ts +9 -0
  268. package/dist/ai/ui/shared/AiChatThread.d.ts.map +1 -0
  269. package/dist/ai/ui/shared/AiChatThread.js +63 -0
  270. package/dist/ai/ui/shared/AiChatThread.js.map +1 -0
  271. package/dist/ai/ui/shared/AiEmbeddingsResult.d.ts +13 -0
  272. package/dist/ai/ui/shared/AiEmbeddingsResult.d.ts.map +1 -0
  273. package/dist/ai/ui/shared/AiEmbeddingsResult.js +46 -0
  274. package/dist/ai/ui/shared/AiEmbeddingsResult.js.map +1 -0
  275. package/dist/ai/ui/shared/AiErrorAlert.d.ts +26 -0
  276. package/dist/ai/ui/shared/AiErrorAlert.d.ts.map +1 -0
  277. package/dist/ai/ui/shared/AiErrorAlert.js +209 -0
  278. package/dist/ai/ui/shared/AiErrorAlert.js.map +1 -0
  279. package/dist/ai/ui/shared/AiHostedToolControls.d.ts +33 -0
  280. package/dist/ai/ui/shared/AiHostedToolControls.d.ts.map +1 -0
  281. package/dist/ai/ui/shared/AiHostedToolControls.js +96 -0
  282. package/dist/ai/ui/shared/AiHostedToolControls.js.map +1 -0
  283. package/dist/ai/ui/shared/AiHostedToolOutputs.d.ts +11 -0
  284. package/dist/ai/ui/shared/AiHostedToolOutputs.d.ts.map +1 -0
  285. package/dist/ai/ui/shared/AiHostedToolOutputs.js +138 -0
  286. package/dist/ai/ui/shared/AiHostedToolOutputs.js.map +1 -0
  287. package/dist/ai/ui/shared/AiImageGallery.d.ts +19 -0
  288. package/dist/ai/ui/shared/AiImageGallery.d.ts.map +1 -0
  289. package/dist/ai/ui/shared/AiImageGallery.js +63 -0
  290. package/dist/ai/ui/shared/AiImageGallery.js.map +1 -0
  291. package/dist/ai/ui/shared/AiModelSelect.d.ts +22 -0
  292. package/dist/ai/ui/shared/AiModelSelect.d.ts.map +1 -0
  293. package/dist/ai/ui/shared/AiModelSelect.js +61 -0
  294. package/dist/ai/ui/shared/AiModelSelect.js.map +1 -0
  295. package/dist/ai/ui/shared/AiReasoningPanel.d.ts +9 -0
  296. package/dist/ai/ui/shared/AiReasoningPanel.d.ts.map +1 -0
  297. package/dist/ai/ui/shared/AiReasoningPanel.js +20 -0
  298. package/dist/ai/ui/shared/AiReasoningPanel.js.map +1 -0
  299. package/dist/ai/ui/shared/AiRunCard.d.ts +38 -0
  300. package/dist/ai/ui/shared/AiRunCard.d.ts.map +1 -0
  301. package/dist/ai/ui/shared/AiRunCard.js +21 -0
  302. package/dist/ai/ui/shared/AiRunCard.js.map +1 -0
  303. package/dist/ai/ui/shared/AiSpeechPlayer.d.ts +9 -0
  304. package/dist/ai/ui/shared/AiSpeechPlayer.d.ts.map +1 -0
  305. package/dist/ai/ui/shared/AiSpeechPlayer.js +50 -0
  306. package/dist/ai/ui/shared/AiSpeechPlayer.js.map +1 -0
  307. package/dist/ai/ui/shared/AiStructuredOutputPanel.d.ts +7 -0
  308. package/dist/ai/ui/shared/AiStructuredOutputPanel.d.ts.map +1 -0
  309. package/dist/ai/ui/shared/AiStructuredOutputPanel.js +24 -0
  310. package/dist/ai/ui/shared/AiStructuredOutputPanel.js.map +1 -0
  311. package/dist/ai/ui/shared/AiTranscript.d.ts +9 -0
  312. package/dist/ai/ui/shared/AiTranscript.d.ts.map +1 -0
  313. package/dist/ai/ui/shared/AiTranscript.js +38 -0
  314. package/dist/ai/ui/shared/AiTranscript.js.map +1 -0
  315. package/dist/ai/ui/shared/aiCapabilities.d.ts +46 -0
  316. package/dist/ai/ui/shared/aiCapabilities.d.ts.map +1 -0
  317. package/dist/ai/ui/shared/aiCapabilities.js +89 -0
  318. package/dist/ai/ui/shared/aiCapabilities.js.map +1 -0
  319. package/dist/ai/ui/usage/AiUsageDailyChart.d.ts +11 -0
  320. package/dist/ai/ui/usage/AiUsageDailyChart.d.ts.map +1 -0
  321. package/dist/ai/ui/usage/AiUsageDailyChart.js +91 -0
  322. package/dist/ai/ui/usage/AiUsageDailyChart.js.map +1 -0
  323. package/dist/ai/ui/usage/AiUsageTable.d.ts +27 -0
  324. package/dist/ai/ui/usage/AiUsageTable.d.ts.map +1 -0
  325. package/dist/ai/ui/usage/AiUsageTable.js +107 -0
  326. package/dist/ai/ui/usage/AiUsageTable.js.map +1 -0
  327. package/dist/ai/ui/usage/AiUsageTotals.d.ts +17 -0
  328. package/dist/ai/ui/usage/AiUsageTotals.d.ts.map +1 -0
  329. package/dist/ai/ui/usage/AiUsageTotals.js +16 -0
  330. package/dist/ai/ui/usage/AiUsageTotals.js.map +1 -0
  331. package/dist/ai/ui/usage/aiUsageFormat.d.ts +32 -0
  332. package/dist/ai/ui/usage/aiUsageFormat.d.ts.map +1 -0
  333. package/dist/ai/ui/usage/aiUsageFormat.js +84 -0
  334. package/dist/ai/ui/usage/aiUsageFormat.js.map +1 -0
  335. package/dist/ai/ui/usage/index.d.ts +5 -0
  336. package/dist/ai/ui/usage/index.d.ts.map +1 -0
  337. package/dist/ai/ui/usage/index.js +5 -0
  338. package/dist/ai/ui/usage/index.js.map +1 -0
  339. package/dist/ai/ui/usage-page.d.ts +2 -0
  340. package/dist/ai/ui/usage-page.d.ts.map +1 -0
  341. package/dist/ai/ui/usage-page.js +6 -0
  342. package/dist/ai/ui/usage-page.js.map +1 -0
  343. package/dist/ai/ui/user/DefaultAiModelPicker.d.ts +13 -0
  344. package/dist/ai/ui/user/DefaultAiModelPicker.d.ts.map +1 -0
  345. package/dist/ai/ui/user/DefaultAiModelPicker.js +53 -0
  346. package/dist/ai/ui/user/DefaultAiModelPicker.js.map +1 -0
  347. package/dist/ai/ui/user/KeylessProviderCard.d.ts +10 -0
  348. package/dist/ai/ui/user/KeylessProviderCard.d.ts.map +1 -0
  349. package/dist/ai/ui/user/KeylessProviderCard.js +17 -0
  350. package/dist/ai/ui/user/KeylessProviderCard.js.map +1 -0
  351. package/dist/ai/ui/user/MyAiUsageSection.d.ts +4 -0
  352. package/dist/ai/ui/user/MyAiUsageSection.d.ts.map +1 -0
  353. package/dist/ai/ui/user/MyAiUsageSection.js +26 -0
  354. package/dist/ai/ui/user/MyAiUsageSection.js.map +1 -0
  355. package/dist/ai/ui/user/UsableAiModelsList.d.ts +10 -0
  356. package/dist/ai/ui/user/UsableAiModelsList.d.ts.map +1 -0
  357. package/dist/ai/ui/user/UsableAiModelsList.js +22 -0
  358. package/dist/ai/ui/user/UsableAiModelsList.js.map +1 -0
  359. package/dist/ai/ui/user/UserAiKeyCard.d.ts +24 -0
  360. package/dist/ai/ui/user/UserAiKeyCard.d.ts.map +1 -0
  361. package/dist/ai/ui/user/UserAiKeyCard.js +123 -0
  362. package/dist/ai/ui/user/UserAiKeyCard.js.map +1 -0
  363. package/dist/ai/ui/user/aiErrorText.d.ts +5 -0
  364. package/dist/ai/ui/user/aiErrorText.d.ts.map +1 -0
  365. package/dist/ai/ui/user/aiErrorText.js +33 -0
  366. package/dist/ai/ui/user/aiErrorText.js.map +1 -0
  367. package/dist/android-app/headless/client.d.ts +78 -0
  368. package/dist/android-app/headless/client.d.ts.map +1 -0
  369. package/dist/android-app/headless/client.js +54 -0
  370. package/dist/android-app/headless/client.js.map +1 -0
  371. package/dist/android-app/headless/hooks.d.ts +70 -0
  372. package/dist/android-app/headless/hooks.d.ts.map +1 -0
  373. package/dist/android-app/headless/hooks.js +104 -0
  374. package/dist/android-app/headless/hooks.js.map +1 -0
  375. package/dist/android-app/headless/identity.d.ts +20 -0
  376. package/dist/android-app/headless/identity.d.ts.map +1 -0
  377. package/dist/android-app/headless/identity.js +24 -0
  378. package/dist/android-app/headless/identity.js.map +1 -0
  379. package/dist/android-app/headless/index.d.ts +9 -0
  380. package/dist/android-app/headless/index.d.ts.map +1 -0
  381. package/dist/android-app/headless/index.js +9 -0
  382. package/dist/android-app/headless/index.js.map +1 -0
  383. package/dist/android-app/headless/twa.d.ts +80 -0
  384. package/dist/android-app/headless/twa.d.ts.map +1 -0
  385. package/dist/android-app/headless/twa.js +126 -0
  386. package/dist/android-app/headless/twa.js.map +1 -0
  387. package/dist/android-app/ui/AndroidAppPage.d.ts +114 -0
  388. package/dist/android-app/ui/AndroidAppPage.d.ts.map +1 -0
  389. package/dist/android-app/ui/AndroidAppPage.js +219 -0
  390. package/dist/android-app/ui/AndroidAppPage.js.map +1 -0
  391. package/dist/android-app/ui/AndroidUpdateBanner.d.ts +31 -0
  392. package/dist/android-app/ui/AndroidUpdateBanner.d.ts.map +1 -0
  393. package/dist/android-app/ui/AndroidUpdateBanner.js +77 -0
  394. package/dist/android-app/ui/AndroidUpdateBanner.js.map +1 -0
  395. package/dist/android-app/ui/DownloadApkButton.d.ts +27 -0
  396. package/dist/android-app/ui/DownloadApkButton.d.ts.map +1 -0
  397. package/dist/android-app/ui/DownloadApkButton.js +36 -0
  398. package/dist/android-app/ui/DownloadApkButton.js.map +1 -0
  399. package/dist/android-app/ui/copy.d.ts +37 -0
  400. package/dist/android-app/ui/copy.d.ts.map +1 -0
  401. package/dist/android-app/ui/copy.js +39 -0
  402. package/dist/android-app/ui/copy.js.map +1 -0
  403. package/dist/android-app/ui/index.d.ts +9 -0
  404. package/dist/android-app/ui/index.d.ts.map +1 -0
  405. package/dist/android-app/ui/index.js +9 -0
  406. package/dist/android-app/ui/index.js.map +1 -0
  407. package/dist/android-app/ui/settings-page.d.ts +19 -0
  408. package/dist/android-app/ui/settings-page.d.ts.map +1 -0
  409. package/dist/android-app/ui/settings-page.js +31 -0
  410. package/dist/android-app/ui/settings-page.js.map +1 -0
  411. package/dist/core/api-client.d.ts +20 -0
  412. package/dist/core/api-client.d.ts.map +1 -1
  413. package/dist/core/api-client.js.map +1 -1
  414. package/dist/core/host.d.ts +64 -0
  415. package/dist/core/host.d.ts.map +1 -1
  416. package/dist/core/host.js +50 -10
  417. package/dist/core/host.js.map +1 -1
  418. package/dist/core/http/client.d.ts +259 -0
  419. package/dist/core/http/client.d.ts.map +1 -0
  420. package/dist/core/http/client.js +366 -0
  421. package/dist/core/http/client.js.map +1 -0
  422. package/dist/core/http/platform-api-client.d.ts +61 -0
  423. package/dist/core/http/platform-api-client.d.ts.map +1 -0
  424. package/dist/core/http/platform-api-client.js +115 -0
  425. package/dist/core/http/platform-api-client.js.map +1 -0
  426. package/dist/core/http/sse.d.ts +284 -0
  427. package/dist/core/http/sse.d.ts.map +1 -0
  428. package/dist/core/http/sse.js +609 -0
  429. package/dist/core/http/sse.js.map +1 -0
  430. package/dist/core/index.d.ts +9 -1
  431. package/dist/core/index.d.ts.map +1 -1
  432. package/dist/core/index.js +17 -1
  433. package/dist/core/index.js.map +1 -1
  434. package/dist/core/page-slots.d.ts +201 -0
  435. package/dist/core/page-slots.d.ts.map +1 -0
  436. package/dist/core/page-slots.js +121 -0
  437. package/dist/core/page-slots.js.map +1 -0
  438. package/dist/core/viewer.d.ts +12 -0
  439. package/dist/core/viewer.d.ts.map +1 -1
  440. package/dist/credentials/headless/index.d.ts +3 -0
  441. package/dist/credentials/headless/index.d.ts.map +1 -0
  442. package/dist/credentials/headless/index.js +5 -0
  443. package/dist/credentials/headless/index.js.map +1 -0
  444. package/dist/credentials/headless/saved-secret.d.ts +75 -0
  445. package/dist/credentials/headless/saved-secret.d.ts.map +1 -0
  446. package/dist/credentials/headless/saved-secret.js +67 -0
  447. package/dist/credentials/headless/saved-secret.js.map +1 -0
  448. package/dist/credentials/index.d.ts +5 -0
  449. package/dist/credentials/index.d.ts.map +1 -0
  450. package/dist/credentials/index.js +9 -0
  451. package/dist/credentials/index.js.map +1 -0
  452. package/dist/credentials/ui/index.d.ts +3 -0
  453. package/dist/credentials/ui/index.d.ts.map +1 -0
  454. package/dist/credentials/ui/index.js +4 -0
  455. package/dist/credentials/ui/index.js.map +1 -0
  456. package/dist/credentials/ui/secret-field.d.ts +71 -0
  457. package/dist/credentials/ui/secret-field.d.ts.map +1 -0
  458. package/dist/credentials/ui/secret-field.js +47 -0
  459. package/dist/credentials/ui/secret-field.js.map +1 -0
  460. package/dist/datatable/headless/columns.d.ts +48 -0
  461. package/dist/datatable/headless/columns.d.ts.map +1 -0
  462. package/dist/datatable/headless/columns.js +70 -0
  463. package/dist/datatable/headless/columns.js.map +1 -0
  464. package/dist/datatable/headless/export/csv.d.ts +120 -0
  465. package/dist/datatable/headless/export/csv.d.ts.map +1 -0
  466. package/dist/datatable/headless/export/csv.js +151 -0
  467. package/dist/datatable/headless/export/csv.js.map +1 -0
  468. package/dist/datatable/headless/export/exportModel.d.ts +180 -0
  469. package/dist/datatable/headless/export/exportModel.d.ts.map +1 -0
  470. package/dist/datatable/headless/export/exportModel.js +230 -0
  471. package/dist/datatable/headless/export/exportModel.js.map +1 -0
  472. package/dist/datatable/headless/filter/filterMatch.d.ts +37 -0
  473. package/dist/datatable/headless/filter/filterMatch.d.ts.map +1 -0
  474. package/dist/datatable/headless/filter/filterMatch.js +49 -0
  475. package/dist/datatable/headless/filter/filterMatch.js.map +1 -0
  476. package/dist/datatable/headless/filter/filterModel.d.ts +114 -0
  477. package/dist/datatable/headless/filter/filterModel.d.ts.map +1 -0
  478. package/dist/datatable/headless/filter/filterModel.js +196 -0
  479. package/dist/datatable/headless/filter/filterModel.js.map +1 -0
  480. package/dist/datatable/headless/filter/filterTypes.d.ts +127 -0
  481. package/dist/datatable/headless/filter/filterTypes.d.ts.map +1 -0
  482. package/dist/datatable/headless/filter/filterTypes.js +308 -0
  483. package/dist/datatable/headless/filter/filterTypes.js.map +1 -0
  484. package/dist/datatable/headless/filter/filterUrl.d.ts +114 -0
  485. package/dist/datatable/headless/filter/filterUrl.d.ts.map +1 -0
  486. package/dist/datatable/headless/filter/filterUrl.js +176 -0
  487. package/dist/datatable/headless/filter/filterUrl.js.map +1 -0
  488. package/dist/datatable/headless/filter/operators.d.ts +115 -0
  489. package/dist/datatable/headless/filter/operators.d.ts.map +1 -0
  490. package/dist/datatable/headless/filter/operators.js +183 -0
  491. package/dist/datatable/headless/filter/operators.js.map +1 -0
  492. package/dist/datatable/headless/index.d.ts +22 -0
  493. package/dist/datatable/headless/index.d.ts.map +1 -0
  494. package/dist/datatable/headless/index.js +20 -0
  495. package/dist/datatable/headless/index.js.map +1 -0
  496. package/dist/datatable/headless/layout/layoutModel.d.ts +379 -0
  497. package/dist/datatable/headless/layout/layoutModel.d.ts.map +1 -0
  498. package/dist/datatable/headless/layout/layoutModel.js +459 -0
  499. package/dist/datatable/headless/layout/layoutModel.js.map +1 -0
  500. package/dist/datatable/headless/layout/preferences.d.ts +76 -0
  501. package/dist/datatable/headless/layout/preferences.d.ts.map +1 -0
  502. package/dist/datatable/headless/layout/preferences.js +65 -0
  503. package/dist/datatable/headless/layout/preferences.js.map +1 -0
  504. package/dist/datatable/headless/layout/useDataTableLayoutPrefs.d.ts +123 -0
  505. package/dist/datatable/headless/layout/useDataTableLayoutPrefs.d.ts.map +1 -0
  506. package/dist/datatable/headless/layout/useDataTableLayoutPrefs.js +434 -0
  507. package/dist/datatable/headless/layout/useDataTableLayoutPrefs.js.map +1 -0
  508. package/dist/datatable/headless/types.d.ts +757 -0
  509. package/dist/datatable/headless/types.d.ts.map +1 -0
  510. package/dist/datatable/headless/types.js +12 -0
  511. package/dist/datatable/headless/types.js.map +1 -0
  512. package/dist/datatable/headless/virtualization/cardVirtualization.d.ts +101 -0
  513. package/dist/datatable/headless/virtualization/cardVirtualization.d.ts.map +1 -0
  514. package/dist/datatable/headless/virtualization/cardVirtualization.js +139 -0
  515. package/dist/datatable/headless/virtualization/cardVirtualization.js.map +1 -0
  516. package/dist/datatable/headless/virtualization/gridVirtualization.d.ts +118 -0
  517. package/dist/datatable/headless/virtualization/gridVirtualization.d.ts.map +1 -0
  518. package/dist/datatable/headless/virtualization/gridVirtualization.js +107 -0
  519. package/dist/datatable/headless/virtualization/gridVirtualization.js.map +1 -0
  520. package/dist/datatable/index.d.ts +3 -0
  521. package/dist/datatable/index.d.ts.map +1 -0
  522. package/dist/datatable/index.js +9 -0
  523. package/dist/datatable/index.js.map +1 -0
  524. package/dist/datatable/testing/a11yGuards.d.ts +58 -0
  525. package/dist/datatable/testing/a11yGuards.d.ts.map +1 -0
  526. package/dist/datatable/testing/a11yGuards.js +59 -0
  527. package/dist/datatable/testing/a11yGuards.js.map +1 -0
  528. package/dist/datatable/testing/dom-matchers.d.ts +11 -0
  529. package/dist/datatable/testing/dom-matchers.d.ts.map +1 -0
  530. package/dist/datatable/testing/dom-matchers.js +9 -0
  531. package/dist/datatable/testing/dom-matchers.js.map +1 -0
  532. package/dist/datatable/testing/index.d.ts +6 -0
  533. package/dist/datatable/testing/index.d.ts.map +1 -0
  534. package/dist/datatable/testing/index.js +10 -0
  535. package/dist/datatable/testing/index.js.map +1 -0
  536. package/dist/datatable/testing/layoutStubs.d.ts +61 -0
  537. package/dist/datatable/testing/layoutStubs.d.ts.map +1 -0
  538. package/dist/datatable/testing/layoutStubs.js +154 -0
  539. package/dist/datatable/testing/layoutStubs.js.map +1 -0
  540. package/dist/datatable/testing/runDataTableConformanceSuite.d.ts +143 -0
  541. package/dist/datatable/testing/runDataTableConformanceSuite.d.ts.map +1 -0
  542. package/dist/datatable/testing/runDataTableConformanceSuite.js +782 -0
  543. package/dist/datatable/testing/runDataTableConformanceSuite.js.map +1 -0
  544. package/dist/datatable/ui/BulkActionBar.d.ts +57 -0
  545. package/dist/datatable/ui/BulkActionBar.d.ts.map +1 -0
  546. package/dist/datatable/ui/BulkActionBar.js +72 -0
  547. package/dist/datatable/ui/BulkActionBar.js.map +1 -0
  548. package/dist/datatable/ui/DataTable.d.ts +152 -0
  549. package/dist/datatable/ui/DataTable.d.ts.map +1 -0
  550. package/dist/datatable/ui/DataTable.js +211 -0
  551. package/dist/datatable/ui/DataTable.js.map +1 -0
  552. package/dist/datatable/ui/desktop/DesktopGridRenderer.d.ts +59 -0
  553. package/dist/datatable/ui/desktop/DesktopGridRenderer.d.ts.map +1 -0
  554. package/dist/datatable/ui/desktop/DesktopGridRenderer.js +370 -0
  555. package/dist/datatable/ui/desktop/DesktopGridRenderer.js.map +1 -0
  556. package/dist/datatable/ui/desktop/RowActionsCell.d.ts +56 -0
  557. package/dist/datatable/ui/desktop/RowActionsCell.d.ts.map +1 -0
  558. package/dist/datatable/ui/desktop/RowActionsCell.js +73 -0
  559. package/dist/datatable/ui/desktop/RowActionsCell.js.map +1 -0
  560. package/dist/datatable/ui/desktop/cells.d.ts +48 -0
  561. package/dist/datatable/ui/desktop/cells.d.ts.map +1 -0
  562. package/dist/datatable/ui/desktop/cells.js +62 -0
  563. package/dist/datatable/ui/desktop/cells.js.map +1 -0
  564. package/dist/datatable/ui/desktop/columnAdapter.d.ts +67 -0
  565. package/dist/datatable/ui/desktop/columnAdapter.d.ts.map +1 -0
  566. package/dist/datatable/ui/desktop/columnAdapter.js +116 -0
  567. package/dist/datatable/ui/desktop/columnAdapter.js.map +1 -0
  568. package/dist/datatable/ui/desktop/detailRow.d.ts +110 -0
  569. package/dist/datatable/ui/desktop/detailRow.d.ts.map +1 -0
  570. package/dist/datatable/ui/desktop/detailRow.js +88 -0
  571. package/dist/datatable/ui/desktop/detailRow.js.map +1 -0
  572. package/dist/datatable/ui/export/DataTableExportControl.d.ts +64 -0
  573. package/dist/datatable/ui/export/DataTableExportControl.d.ts.map +1 -0
  574. package/dist/datatable/ui/export/DataTableExportControl.js +123 -0
  575. package/dist/datatable/ui/export/DataTableExportControl.js.map +1 -0
  576. package/dist/datatable/ui/filter/DataTableFilterBar.d.ts +64 -0
  577. package/dist/datatable/ui/filter/DataTableFilterBar.d.ts.map +1 -0
  578. package/dist/datatable/ui/filter/DataTableFilterBar.js +95 -0
  579. package/dist/datatable/ui/filter/DataTableFilterBar.js.map +1 -0
  580. package/dist/datatable/ui/filter/FilterChips.d.ts +55 -0
  581. package/dist/datatable/ui/filter/FilterChips.d.ts.map +1 -0
  582. package/dist/datatable/ui/filter/FilterChips.js +70 -0
  583. package/dist/datatable/ui/filter/FilterChips.js.map +1 -0
  584. package/dist/datatable/ui/filter/FilterEditor.d.ts +65 -0
  585. package/dist/datatable/ui/filter/FilterEditor.d.ts.map +1 -0
  586. package/dist/datatable/ui/filter/FilterEditor.js +149 -0
  587. package/dist/datatable/ui/filter/FilterEditor.js.map +1 -0
  588. package/dist/datatable/ui/filter/QuickSearchField.d.ts +53 -0
  589. package/dist/datatable/ui/filter/QuickSearchField.d.ts.map +1 -0
  590. package/dist/datatable/ui/filter/QuickSearchField.js +100 -0
  591. package/dist/datatable/ui/filter/QuickSearchField.js.map +1 -0
  592. package/dist/datatable/ui/index.d.ts +39 -0
  593. package/dist/datatable/ui/index.d.ts.map +1 -0
  594. package/dist/datatable/ui/index.js +26 -0
  595. package/dist/datatable/ui/index.js.map +1 -0
  596. package/dist/datatable/ui/layout/DataTableViewBar.d.ts +72 -0
  597. package/dist/datatable/ui/layout/DataTableViewBar.d.ts.map +1 -0
  598. package/dist/datatable/ui/layout/DataTableViewBar.js +99 -0
  599. package/dist/datatable/ui/layout/DataTableViewBar.js.map +1 -0
  600. package/dist/datatable/ui/mobile/CardField.d.ts +95 -0
  601. package/dist/datatable/ui/mobile/CardField.d.ts.map +1 -0
  602. package/dist/datatable/ui/mobile/CardField.js +121 -0
  603. package/dist/datatable/ui/mobile/CardField.js.map +1 -0
  604. package/dist/datatable/ui/mobile/CardListRenderer.d.ts +34 -0
  605. package/dist/datatable/ui/mobile/CardListRenderer.d.ts.map +1 -0
  606. package/dist/datatable/ui/mobile/CardListRenderer.js +123 -0
  607. package/dist/datatable/ui/mobile/CardListRenderer.js.map +1 -0
  608. package/dist/datatable/ui/mobile/CardSortControl.d.ts +35 -0
  609. package/dist/datatable/ui/mobile/CardSortControl.d.ts.map +1 -0
  610. package/dist/datatable/ui/mobile/CardSortControl.js +46 -0
  611. package/dist/datatable/ui/mobile/CardSortControl.js.map +1 -0
  612. package/dist/datatable/ui/mobile/CompactPagination.d.ts +36 -0
  613. package/dist/datatable/ui/mobile/CompactPagination.d.ts.map +1 -0
  614. package/dist/datatable/ui/mobile/CompactPagination.js +47 -0
  615. package/dist/datatable/ui/mobile/CompactPagination.js.map +1 -0
  616. package/dist/datatable/ui/mobile/DataCard.d.ts +83 -0
  617. package/dist/datatable/ui/mobile/DataCard.d.ts.map +1 -0
  618. package/dist/datatable/ui/mobile/DataCard.js +122 -0
  619. package/dist/datatable/ui/mobile/DataCard.js.map +1 -0
  620. package/dist/datatable/ui/shared/IndeterminateCheckbox.d.ts +63 -0
  621. package/dist/datatable/ui/shared/IndeterminateCheckbox.d.ts.map +1 -0
  622. package/dist/datatable/ui/shared/IndeterminateCheckbox.js +62 -0
  623. package/dist/datatable/ui/shared/IndeterminateCheckbox.js.map +1 -0
  624. package/dist/datatable/ui/shared/rowActionConfirm.d.ts +49 -0
  625. package/dist/datatable/ui/shared/rowActionConfirm.d.ts.map +1 -0
  626. package/dist/datatable/ui/shared/rowActionConfirm.js +60 -0
  627. package/dist/datatable/ui/shared/rowActionConfirm.js.map +1 -0
  628. package/dist/datatable/ui/shared/visuallyHidden.d.ts +12 -0
  629. package/dist/datatable/ui/shared/visuallyHidden.d.ts.map +1 -0
  630. package/dist/datatable/ui/shared/visuallyHidden.js +16 -0
  631. package/dist/datatable/ui/shared/visuallyHidden.js.map +1 -0
  632. package/dist/datatable/ui/useContainerLayout.d.ts +105 -0
  633. package/dist/datatable/ui/useContainerLayout.d.ts.map +1 -0
  634. package/dist/datatable/ui/useContainerLayout.js +167 -0
  635. package/dist/datatable/ui/useContainerLayout.js.map +1 -0
  636. package/dist/db-backup/headless/adapters.d.ts +50 -0
  637. package/dist/db-backup/headless/adapters.d.ts.map +1 -0
  638. package/dist/db-backup/headless/adapters.js +45 -0
  639. package/dist/db-backup/headless/adapters.js.map +1 -0
  640. package/dist/db-backup/headless/db-backup-client.d.ts +740 -0
  641. package/dist/db-backup/headless/db-backup-client.d.ts.map +1 -0
  642. package/dist/db-backup/headless/db-backup-client.js +301 -0
  643. package/dist/db-backup/headless/db-backup-client.js.map +1 -0
  644. package/dist/db-backup/headless/index.d.ts +12 -0
  645. package/dist/db-backup/headless/index.d.ts.map +1 -0
  646. package/dist/db-backup/headless/index.js +9 -0
  647. package/dist/db-backup/headless/index.js.map +1 -0
  648. package/dist/db-backup/headless/table.d.ts +229 -0
  649. package/dist/db-backup/headless/table.d.ts.map +1 -0
  650. package/dist/db-backup/headless/table.js +11 -0
  651. package/dist/db-backup/headless/table.js.map +1 -0
  652. package/dist/db-backup/headless/use-db-backup.d.ts +177 -0
  653. package/dist/db-backup/headless/use-db-backup.d.ts.map +1 -0
  654. package/dist/db-backup/headless/use-db-backup.js +334 -0
  655. package/dist/db-backup/headless/use-db-backup.js.map +1 -0
  656. package/dist/db-backup/internal/format.d.ts +33 -0
  657. package/dist/db-backup/internal/format.d.ts.map +1 -0
  658. package/dist/db-backup/internal/format.js +68 -0
  659. package/dist/db-backup/internal/format.js.map +1 -0
  660. package/dist/db-backup/internal/use-is-mounted.d.ts +11 -0
  661. package/dist/db-backup/internal/use-is-mounted.d.ts.map +1 -0
  662. package/dist/db-backup/internal/use-is-mounted.js +21 -0
  663. package/dist/db-backup/internal/use-is-mounted.js.map +1 -0
  664. package/dist/db-backup/internal/use-visible-polling.d.ts +60 -0
  665. package/dist/db-backup/internal/use-visible-polling.d.ts.map +1 -0
  666. package/dist/db-backup/internal/use-visible-polling.js +103 -0
  667. package/dist/db-backup/internal/use-visible-polling.js.map +1 -0
  668. package/dist/db-backup/ui/DbBackupConfigPanel.d.ts +69 -0
  669. package/dist/db-backup/ui/DbBackupConfigPanel.d.ts.map +1 -0
  670. package/dist/db-backup/ui/DbBackupConfigPanel.js +145 -0
  671. package/dist/db-backup/ui/DbBackupConfigPanel.js.map +1 -0
  672. package/dist/db-backup/ui/DbBackupPage.d.ts +214 -0
  673. package/dist/db-backup/ui/DbBackupPage.d.ts.map +1 -0
  674. package/dist/db-backup/ui/DbBackupPage.js +430 -0
  675. package/dist/db-backup/ui/DbBackupPage.js.map +1 -0
  676. package/dist/db-backup/ui/DbBackupRestoreDialog.d.ts +117 -0
  677. package/dist/db-backup/ui/DbBackupRestoreDialog.d.ts.map +1 -0
  678. package/dist/db-backup/ui/DbBackupRestoreDialog.js +243 -0
  679. package/dist/db-backup/ui/DbBackupRestoreDialog.js.map +1 -0
  680. package/dist/db-backup/ui/copy.d.ts +13 -0
  681. package/dist/db-backup/ui/copy.d.ts.map +1 -0
  682. package/dist/db-backup/ui/copy.js +15 -0
  683. package/dist/db-backup/ui/copy.js.map +1 -0
  684. package/dist/db-backup/ui/dbBackupTable.d.ts +192 -0
  685. package/dist/db-backup/ui/dbBackupTable.d.ts.map +1 -0
  686. package/dist/db-backup/ui/dbBackupTable.js +491 -0
  687. package/dist/db-backup/ui/dbBackupTable.js.map +1 -0
  688. package/dist/db-backup/ui/index.d.ts +14 -0
  689. package/dist/db-backup/ui/index.d.ts.map +1 -0
  690. package/dist/db-backup/ui/index.js +13 -0
  691. package/dist/db-backup/ui/index.js.map +1 -0
  692. package/dist/db-backup/ui/settings.d.ts +35 -0
  693. package/dist/db-backup/ui/settings.d.ts.map +1 -0
  694. package/dist/db-backup/ui/settings.js +36 -0
  695. package/dist/db-backup/ui/settings.js.map +1 -0
  696. package/dist/db-backup/ui/table.d.ts +9 -0
  697. package/dist/db-backup/ui/table.d.ts.map +1 -0
  698. package/dist/db-backup/ui/table.js +52 -0
  699. package/dist/db-backup/ui/table.js.map +1 -0
  700. package/dist/doctor/headless/check-renderers.d.ts +57 -0
  701. package/dist/doctor/headless/check-renderers.d.ts.map +1 -0
  702. package/dist/doctor/headless/check-renderers.js +69 -0
  703. package/dist/doctor/headless/check-renderers.js.map +1 -0
  704. package/dist/doctor/headless/index.d.ts +2 -0
  705. package/dist/doctor/headless/index.d.ts.map +1 -1
  706. package/dist/doctor/headless/index.js +2 -0
  707. package/dist/doctor/headless/index.js.map +1 -1
  708. package/dist/doctor/ui/check-row.d.ts +19 -2
  709. package/dist/doctor/ui/check-row.d.ts.map +1 -1
  710. package/dist/doctor/ui/check-row.js +9 -3
  711. package/dist/doctor/ui/check-row.js.map +1 -1
  712. package/dist/doctor/ui/doctor-page.d.ts +35 -7
  713. package/dist/doctor/ui/doctor-page.d.ts.map +1 -1
  714. package/dist/doctor/ui/doctor-page.js +7 -3
  715. package/dist/doctor/ui/doctor-page.js.map +1 -1
  716. package/dist/doctor/ui/index.d.ts +2 -2
  717. package/dist/doctor/ui/index.d.ts.map +1 -1
  718. package/dist/email/headless/index.d.ts +5 -0
  719. package/dist/email/headless/index.d.ts.map +1 -0
  720. package/dist/email/headless/index.js +5 -0
  721. package/dist/email/headless/index.js.map +1 -0
  722. package/dist/email/headless/normalize-email-settings.d.ts +18 -0
  723. package/dist/email/headless/normalize-email-settings.d.ts.map +1 -0
  724. package/dist/email/headless/normalize-email-settings.js +71 -0
  725. package/dist/email/headless/normalize-email-settings.js.map +1 -0
  726. package/dist/email/headless/use-email-settings.d.ts +95 -0
  727. package/dist/email/headless/use-email-settings.d.ts.map +1 -0
  728. package/dist/email/headless/use-email-settings.js +212 -0
  729. package/dist/email/headless/use-email-settings.js.map +1 -0
  730. package/dist/email/ui/EmailGenericTransportPanel.d.ts +42 -0
  731. package/dist/email/ui/EmailGenericTransportPanel.d.ts.map +1 -0
  732. package/dist/email/ui/EmailGenericTransportPanel.js +47 -0
  733. package/dist/email/ui/EmailGenericTransportPanel.js.map +1 -0
  734. package/dist/email/ui/EmailSettingsPage.d.ts +93 -0
  735. package/dist/email/ui/EmailSettingsPage.d.ts.map +1 -0
  736. package/dist/email/ui/EmailSettingsPage.js +391 -0
  737. package/dist/email/ui/EmailSettingsPage.js.map +1 -0
  738. package/dist/email/ui/SesTransportPanel.d.ts +31 -0
  739. package/dist/email/ui/SesTransportPanel.d.ts.map +1 -0
  740. package/dist/email/ui/SesTransportPanel.js +75 -0
  741. package/dist/email/ui/SesTransportPanel.js.map +1 -0
  742. package/dist/email/ui/SmtpTransportPanel.d.ts +38 -0
  743. package/dist/email/ui/SmtpTransportPanel.d.ts.map +1 -0
  744. package/dist/email/ui/SmtpTransportPanel.js +111 -0
  745. package/dist/email/ui/SmtpTransportPanel.js.map +1 -0
  746. package/dist/email/ui/builtinEmailTransportPanels.d.ts +5 -0
  747. package/dist/email/ui/builtinEmailTransportPanels.d.ts.map +1 -0
  748. package/dist/email/ui/builtinEmailTransportPanels.js +20 -0
  749. package/dist/email/ui/builtinEmailTransportPanels.js.map +1 -0
  750. package/dist/email/ui/emailTransportPanelRegistry.d.ts +126 -0
  751. package/dist/email/ui/emailTransportPanelRegistry.d.ts.map +1 -0
  752. package/dist/email/ui/emailTransportPanelRegistry.js +91 -0
  753. package/dist/email/ui/emailTransportPanelRegistry.js.map +1 -0
  754. package/dist/email/ui/index.d.ts +5 -0
  755. package/dist/email/ui/index.d.ts.map +1 -0
  756. package/dist/email/ui/index.js +9 -0
  757. package/dist/email/ui/index.js.map +1 -0
  758. package/dist/email/ui/transport-panels.d.ts +4 -0
  759. package/dist/email/ui/transport-panels.d.ts.map +1 -0
  760. package/dist/email/ui/transport-panels.js +7 -0
  761. package/dist/email/ui/transport-panels.js.map +1 -0
  762. package/dist/exports/headless/client.d.ts +61 -0
  763. package/dist/exports/headless/client.d.ts.map +1 -0
  764. package/dist/exports/headless/client.js +80 -0
  765. package/dist/exports/headless/client.js.map +1 -0
  766. package/dist/exports/headless/hooks.d.ts +118 -0
  767. package/dist/exports/headless/hooks.d.ts.map +1 -0
  768. package/dist/exports/headless/hooks.js +184 -0
  769. package/dist/exports/headless/hooks.js.map +1 -0
  770. package/dist/exports/headless/index.d.ts +5 -0
  771. package/dist/exports/headless/index.d.ts.map +1 -0
  772. package/dist/exports/headless/index.js +7 -0
  773. package/dist/exports/headless/index.js.map +1 -0
  774. package/dist/exports/ui/DataExportPage.d.ts +48 -0
  775. package/dist/exports/ui/DataExportPage.d.ts.map +1 -0
  776. package/dist/exports/ui/DataExportPage.js +40 -0
  777. package/dist/exports/ui/DataExportPage.js.map +1 -0
  778. package/dist/exports/ui/ExportDialog.d.ts +54 -0
  779. package/dist/exports/ui/ExportDialog.d.ts.map +1 -0
  780. package/dist/exports/ui/ExportDialog.js +88 -0
  781. package/dist/exports/ui/ExportDialog.js.map +1 -0
  782. package/dist/exports/ui/ExportsList.d.ts +65 -0
  783. package/dist/exports/ui/ExportsList.d.ts.map +1 -0
  784. package/dist/exports/ui/ExportsList.js +120 -0
  785. package/dist/exports/ui/ExportsList.js.map +1 -0
  786. package/dist/exports/ui/copy.d.ts +19 -0
  787. package/dist/exports/ui/copy.d.ts.map +1 -0
  788. package/dist/exports/ui/copy.js +20 -0
  789. package/dist/exports/ui/copy.js.map +1 -0
  790. package/dist/exports/ui/index.d.ts +9 -0
  791. package/dist/exports/ui/index.d.ts.map +1 -0
  792. package/dist/exports/ui/index.js +9 -0
  793. package/dist/exports/ui/index.js.map +1 -0
  794. package/dist/exports/ui/settings-pages.d.ts +17 -0
  795. package/dist/exports/ui/settings-pages.d.ts.map +1 -0
  796. package/dist/exports/ui/settings-pages.js +28 -0
  797. package/dist/exports/ui/settings-pages.js.map +1 -0
  798. package/dist/host/headless/contract.d.ts +328 -0
  799. package/dist/host/headless/contract.d.ts.map +1 -0
  800. package/dist/host/headless/contract.js +12 -0
  801. package/dist/host/headless/contract.js.map +1 -0
  802. package/dist/host/headless/host-client.d.ts +31 -0
  803. package/dist/host/headless/host-client.d.ts.map +1 -0
  804. package/dist/host/headless/host-client.js +42 -0
  805. package/dist/host/headless/host-client.js.map +1 -0
  806. package/dist/host/headless/index.d.ts +12 -0
  807. package/dist/host/headless/index.d.ts.map +1 -0
  808. package/dist/host/headless/index.js +8 -0
  809. package/dist/host/headless/index.js.map +1 -0
  810. package/dist/host/headless/maintenance-block.d.ts +205 -0
  811. package/dist/host/headless/maintenance-block.d.ts.map +1 -0
  812. package/dist/host/headless/maintenance-block.js +243 -0
  813. package/dist/host/headless/maintenance-block.js.map +1 -0
  814. package/dist/host/headless/use-about.d.ts +67 -0
  815. package/dist/host/headless/use-about.d.ts.map +1 -0
  816. package/dist/host/headless/use-about.js +87 -0
  817. package/dist/host/headless/use-about.js.map +1 -0
  818. package/dist/host/headless/use-maintenance.d.ts +122 -0
  819. package/dist/host/headless/use-maintenance.d.ts.map +1 -0
  820. package/dist/host/headless/use-maintenance.js +185 -0
  821. package/dist/host/headless/use-maintenance.js.map +1 -0
  822. package/dist/host/internal/format-duration.d.ts +2 -0
  823. package/dist/host/internal/format-duration.d.ts.map +1 -0
  824. package/dist/host/internal/format-duration.js +25 -0
  825. package/dist/host/internal/format-duration.js.map +1 -0
  826. package/dist/host/internal/relative-time.d.ts +2 -0
  827. package/dist/host/internal/relative-time.d.ts.map +1 -0
  828. package/dist/host/internal/relative-time.js +29 -0
  829. package/dist/host/internal/relative-time.js.map +1 -0
  830. package/dist/host/internal/use-is-mounted.d.ts +9 -0
  831. package/dist/host/internal/use-is-mounted.d.ts.map +1 -0
  832. package/dist/host/internal/use-is-mounted.js +19 -0
  833. package/dist/host/internal/use-is-mounted.js.map +1 -0
  834. package/dist/host/ui/about-page.d.ts +146 -0
  835. package/dist/host/ui/about-page.d.ts.map +1 -0
  836. package/dist/host/ui/about-page.js +351 -0
  837. package/dist/host/ui/about-page.js.map +1 -0
  838. package/dist/host/ui/index.d.ts +15 -0
  839. package/dist/host/ui/index.d.ts.map +1 -0
  840. package/dist/host/ui/index.js +12 -0
  841. package/dist/host/ui/index.js.map +1 -0
  842. package/dist/host/ui/install-prompt.d.ts +57 -0
  843. package/dist/host/ui/install-prompt.d.ts.map +1 -0
  844. package/dist/host/ui/install-prompt.js +156 -0
  845. package/dist/host/ui/install-prompt.js.map +1 -0
  846. package/dist/host/ui/loading-spinner.d.ts +2 -0
  847. package/dist/host/ui/loading-spinner.d.ts.map +1 -0
  848. package/dist/host/ui/loading-spinner.js +9 -0
  849. package/dist/host/ui/loading-spinner.js.map +1 -0
  850. package/dist/host/ui/maintenance-banner.d.ts +84 -0
  851. package/dist/host/ui/maintenance-banner.d.ts.map +1 -0
  852. package/dist/host/ui/maintenance-banner.js +54 -0
  853. package/dist/host/ui/maintenance-banner.js.map +1 -0
  854. package/dist/host/ui/maintenance-gate.d.ts +76 -0
  855. package/dist/host/ui/maintenance-gate.d.ts.map +1 -0
  856. package/dist/host/ui/maintenance-gate.js +38 -0
  857. package/dist/host/ui/maintenance-gate.js.map +1 -0
  858. package/dist/host/ui/maintenance-page.d.ts +96 -0
  859. package/dist/host/ui/maintenance-page.d.ts.map +1 -0
  860. package/dist/host/ui/maintenance-page.js +179 -0
  861. package/dist/host/ui/maintenance-page.js.map +1 -0
  862. package/dist/host/ui/maintenance-screen.d.ts +79 -0
  863. package/dist/host/ui/maintenance-screen.d.ts.map +1 -0
  864. package/dist/host/ui/maintenance-screen.js +48 -0
  865. package/dist/host/ui/maintenance-screen.js.map +1 -0
  866. package/dist/host/ui/update-prompt.d.ts +109 -0
  867. package/dist/host/ui/update-prompt.d.ts.map +1 -0
  868. package/dist/host/ui/update-prompt.js +121 -0
  869. package/dist/host/ui/update-prompt.js.map +1 -0
  870. package/dist/identity/headless/adapters.d.ts +85 -0
  871. package/dist/identity/headless/adapters.d.ts.map +1 -0
  872. package/dist/identity/headless/adapters.js +71 -0
  873. package/dist/identity/headless/adapters.js.map +1 -0
  874. package/dist/identity/headless/api.d.ts +492 -0
  875. package/dist/identity/headless/api.d.ts.map +1 -0
  876. package/dist/identity/headless/api.js +115 -0
  877. package/dist/identity/headless/api.js.map +1 -0
  878. package/dist/identity/headless/auth-context.d.ts +80 -0
  879. package/dist/identity/headless/auth-context.d.ts.map +1 -0
  880. package/dist/identity/headless/auth-context.js +235 -0
  881. package/dist/identity/headless/auth-context.js.map +1 -0
  882. package/dist/identity/headless/auth-provider-registry.d.ts +67 -0
  883. package/dist/identity/headless/auth-provider-registry.d.ts.map +1 -0
  884. package/dist/identity/headless/auth-provider-registry.js +60 -0
  885. package/dist/identity/headless/auth-provider-registry.js.map +1 -0
  886. package/dist/identity/headless/device-credential.d.ts +144 -0
  887. package/dist/identity/headless/device-credential.d.ts.map +1 -0
  888. package/dist/identity/headless/device-credential.js +174 -0
  889. package/dist/identity/headless/device-credential.js.map +1 -0
  890. package/dist/identity/headless/guards.d.ts +122 -0
  891. package/dist/identity/headless/guards.d.ts.map +1 -0
  892. package/dist/identity/headless/guards.js +115 -0
  893. package/dist/identity/headless/guards.js.map +1 -0
  894. package/dist/identity/headless/hooks/use-allowlist.d.ts +39 -0
  895. package/dist/identity/headless/hooks/use-allowlist.d.ts.map +1 -0
  896. package/dist/identity/headless/hooks/use-allowlist.js +78 -0
  897. package/dist/identity/headless/hooks/use-allowlist.js.map +1 -0
  898. package/dist/identity/headless/hooks/use-organizations.d.ts +107 -0
  899. package/dist/identity/headless/hooks/use-organizations.d.ts.map +1 -0
  900. package/dist/identity/headless/hooks/use-organizations.js +216 -0
  901. package/dist/identity/headless/hooks/use-organizations.js.map +1 -0
  902. package/dist/identity/headless/hooks/use-personal-access-tokens.d.ts +31 -0
  903. package/dist/identity/headless/hooks/use-personal-access-tokens.d.ts.map +1 -0
  904. package/dist/identity/headless/hooks/use-personal-access-tokens.js +73 -0
  905. package/dist/identity/headless/hooks/use-personal-access-tokens.js.map +1 -0
  906. package/dist/identity/headless/hooks/use-roles.d.ts +47 -0
  907. package/dist/identity/headless/hooks/use-roles.d.ts.map +1 -0
  908. package/dist/identity/headless/hooks/use-roles.js +64 -0
  909. package/dist/identity/headless/hooks/use-roles.js.map +1 -0
  910. package/dist/identity/headless/hooks/use-users.d.ts +42 -0
  911. package/dist/identity/headless/hooks/use-users.d.ts.map +1 -0
  912. package/dist/identity/headless/hooks/use-users.js +86 -0
  913. package/dist/identity/headless/hooks/use-users.js.map +1 -0
  914. package/dist/identity/headless/index.d.ts +29 -0
  915. package/dist/identity/headless/index.d.ts.map +1 -0
  916. package/dist/identity/headless/index.js +20 -0
  917. package/dist/identity/headless/index.js.map +1 -0
  918. package/dist/identity/headless/last-provider.d.ts +28 -0
  919. package/dist/identity/headless/last-provider.d.ts.map +1 -0
  920. package/dist/identity/headless/last-provider.js +52 -0
  921. package/dist/identity/headless/last-provider.js.map +1 -0
  922. package/dist/identity/headless/table.d.ts +222 -0
  923. package/dist/identity/headless/table.d.ts.map +1 -0
  924. package/dist/identity/headless/table.js +12 -0
  925. package/dist/identity/headless/table.js.map +1 -0
  926. package/dist/identity/headless/types.d.ts +186 -0
  927. package/dist/identity/headless/types.d.ts.map +1 -0
  928. package/dist/identity/headless/types.js +5 -0
  929. package/dist/identity/headless/types.js.map +1 -0
  930. package/dist/identity/headless/use-permissions.d.ts +42 -0
  931. package/dist/identity/headless/use-permissions.d.ts.map +1 -0
  932. package/dist/identity/headless/use-permissions.js +58 -0
  933. package/dist/identity/headless/use-permissions.js.map +1 -0
  934. package/dist/identity/headless/user-extensions.d.ts +44 -0
  935. package/dist/identity/headless/user-extensions.d.ts.map +1 -0
  936. package/dist/identity/headless/user-extensions.js +61 -0
  937. package/dist/identity/headless/user-extensions.js.map +1 -0
  938. package/dist/identity/index.d.ts +4 -0
  939. package/dist/identity/index.d.ts.map +1 -0
  940. package/dist/identity/index.js +11 -0
  941. package/dist/identity/index.js.map +1 -0
  942. package/dist/identity/internal/use-is-mounted.d.ts +9 -0
  943. package/dist/identity/internal/use-is-mounted.d.ts.map +1 -0
  944. package/dist/identity/internal/use-is-mounted.js +19 -0
  945. package/dist/identity/internal/use-is-mounted.js.map +1 -0
  946. package/dist/identity/ui/ActivateDevicePage.d.ts +34 -0
  947. package/dist/identity/ui/ActivateDevicePage.d.ts.map +1 -0
  948. package/dist/identity/ui/ActivateDevicePage.js +118 -0
  949. package/dist/identity/ui/ActivateDevicePage.js.map +1 -0
  950. package/dist/identity/ui/AuthCallbackPage.d.ts +45 -0
  951. package/dist/identity/ui/AuthCallbackPage.d.ts.map +1 -0
  952. package/dist/identity/ui/AuthCallbackPage.js +75 -0
  953. package/dist/identity/ui/AuthCallbackPage.js.map +1 -0
  954. package/dist/identity/ui/LoginPage.d.ts +74 -0
  955. package/dist/identity/ui/LoginPage.d.ts.map +1 -0
  956. package/dist/identity/ui/LoginPage.js +69 -0
  957. package/dist/identity/ui/LoginPage.js.map +1 -0
  958. package/dist/identity/ui/OAuthButton.d.ts +31 -0
  959. package/dist/identity/ui/OAuthButton.d.ts.map +1 -0
  960. package/dist/identity/ui/OAuthButton.js +77 -0
  961. package/dist/identity/ui/OAuthButton.js.map +1 -0
  962. package/dist/identity/ui/OrgSwitcher.d.ts +31 -0
  963. package/dist/identity/ui/OrgSwitcher.d.ts.map +1 -0
  964. package/dist/identity/ui/OrgSwitcher.js +49 -0
  965. package/dist/identity/ui/OrgSwitcher.js.map +1 -0
  966. package/dist/identity/ui/PageHeader.d.ts +14 -0
  967. package/dist/identity/ui/PageHeader.d.ts.map +1 -0
  968. package/dist/identity/ui/PageHeader.js +11 -0
  969. package/dist/identity/ui/PageHeader.js.map +1 -0
  970. package/dist/identity/ui/SignInErrorView.d.ts +37 -0
  971. package/dist/identity/ui/SignInErrorView.d.ts.map +1 -0
  972. package/dist/identity/ui/SignInErrorView.js +53 -0
  973. package/dist/identity/ui/SignInErrorView.js.map +1 -0
  974. package/dist/identity/ui/device/ActivationSuccess.d.ts +7 -0
  975. package/dist/identity/ui/device/ActivationSuccess.d.ts.map +1 -0
  976. package/dist/identity/ui/device/ActivationSuccess.js +19 -0
  977. package/dist/identity/ui/device/ActivationSuccess.js.map +1 -0
  978. package/dist/identity/ui/device/CredentialGrantNotice.d.ts +37 -0
  979. package/dist/identity/ui/device/CredentialGrantNotice.d.ts.map +1 -0
  980. package/dist/identity/ui/device/CredentialGrantNotice.js +72 -0
  981. package/dist/identity/ui/device/CredentialGrantNotice.js.map +1 -0
  982. package/dist/identity/ui/device/DeviceCodeInput.d.ts +8 -0
  983. package/dist/identity/ui/device/DeviceCodeInput.d.ts.map +1 -0
  984. package/dist/identity/ui/device/DeviceCodeInput.js +41 -0
  985. package/dist/identity/ui/device/DeviceCodeInput.js.map +1 -0
  986. package/dist/identity/ui/device/DeviceInfoCard.d.ts +32 -0
  987. package/dist/identity/ui/device/DeviceInfoCard.d.ts.map +1 -0
  988. package/dist/identity/ui/device/DeviceInfoCard.js +112 -0
  989. package/dist/identity/ui/device/DeviceInfoCard.js.map +1 -0
  990. package/dist/identity/ui/index.d.ts +33 -0
  991. package/dist/identity/ui/index.d.ts.map +1 -0
  992. package/dist/identity/ui/index.js +24 -0
  993. package/dist/identity/ui/index.js.map +1 -0
  994. package/dist/identity/ui/org/InviteMemberDialog.d.ts +15 -0
  995. package/dist/identity/ui/org/InviteMemberDialog.d.ts.map +1 -0
  996. package/dist/identity/ui/org/InviteMemberDialog.js +60 -0
  997. package/dist/identity/ui/org/InviteMemberDialog.js.map +1 -0
  998. package/dist/identity/ui/org/OrgInvitesPanel.d.ts +32 -0
  999. package/dist/identity/ui/org/OrgInvitesPanel.d.ts.map +1 -0
  1000. package/dist/identity/ui/org/OrgInvitesPanel.js +48 -0
  1001. package/dist/identity/ui/org/OrgInvitesPanel.js.map +1 -0
  1002. package/dist/identity/ui/org/OrgMembersPanel.d.ts +58 -0
  1003. package/dist/identity/ui/org/OrgMembersPanel.d.ts.map +1 -0
  1004. package/dist/identity/ui/org/OrgMembersPanel.js +59 -0
  1005. package/dist/identity/ui/org/OrgMembersPanel.js.map +1 -0
  1006. package/dist/identity/ui/org/OrganizationPage.d.ts +54 -0
  1007. package/dist/identity/ui/org/OrganizationPage.d.ts.map +1 -0
  1008. package/dist/identity/ui/org/OrganizationPage.js +45 -0
  1009. package/dist/identity/ui/org/OrganizationPage.js.map +1 -0
  1010. package/dist/identity/ui/org/OrganizationsPage.d.ts +53 -0
  1011. package/dist/identity/ui/org/OrganizationsPage.d.ts.map +1 -0
  1012. package/dist/identity/ui/org/OrganizationsPage.js +117 -0
  1013. package/dist/identity/ui/org/OrganizationsPage.js.map +1 -0
  1014. package/dist/identity/ui/org/orgLabels.d.ts +15 -0
  1015. package/dist/identity/ui/org/orgLabels.d.ts.map +1 -0
  1016. package/dist/identity/ui/org/orgLabels.js +25 -0
  1017. package/dist/identity/ui/org/orgLabels.js.map +1 -0
  1018. package/dist/identity/ui/settings.d.ts +53 -0
  1019. package/dist/identity/ui/settings.d.ts.map +1 -0
  1020. package/dist/identity/ui/settings.js +91 -0
  1021. package/dist/identity/ui/settings.js.map +1 -0
  1022. package/dist/identity/ui/sign-in-error-content.d.ts +76 -0
  1023. package/dist/identity/ui/sign-in-error-content.d.ts.map +1 -0
  1024. package/dist/identity/ui/sign-in-error-content.js +110 -0
  1025. package/dist/identity/ui/sign-in-error-content.js.map +1 -0
  1026. package/dist/identity/ui/table.d.ts +5 -0
  1027. package/dist/identity/ui/table.d.ts.map +1 -0
  1028. package/dist/identity/ui/table.js +25 -0
  1029. package/dist/identity/ui/table.js.map +1 -0
  1030. package/dist/identity/ui/tokens/CreatePatDialog.d.ts +14 -0
  1031. package/dist/identity/ui/tokens/CreatePatDialog.d.ts.map +1 -0
  1032. package/dist/identity/ui/tokens/CreatePatDialog.js +83 -0
  1033. package/dist/identity/ui/tokens/CreatePatDialog.js.map +1 -0
  1034. package/dist/identity/ui/tokens/PatTokenRevealDialog.d.ts +8 -0
  1035. package/dist/identity/ui/tokens/PatTokenRevealDialog.d.ts.map +1 -0
  1036. package/dist/identity/ui/tokens/PatTokenRevealDialog.js +32 -0
  1037. package/dist/identity/ui/tokens/PatTokenRevealDialog.js.map +1 -0
  1038. package/dist/identity/ui/tokens/PersonalAccessTokens.d.ts +34 -0
  1039. package/dist/identity/ui/tokens/PersonalAccessTokens.d.ts.map +1 -0
  1040. package/dist/identity/ui/tokens/PersonalAccessTokens.js +64 -0
  1041. package/dist/identity/ui/tokens/PersonalAccessTokens.js.map +1 -0
  1042. package/dist/identity/ui/tokens/UserTokensPage.d.ts +54 -0
  1043. package/dist/identity/ui/tokens/UserTokensPage.d.ts.map +1 -0
  1044. package/dist/identity/ui/tokens/UserTokensPage.js +25 -0
  1045. package/dist/identity/ui/tokens/UserTokensPage.js.map +1 -0
  1046. package/dist/identity/ui/tokens/patColumns.d.ts +70 -0
  1047. package/dist/identity/ui/tokens/patColumns.d.ts.map +1 -0
  1048. package/dist/identity/ui/tokens/patColumns.js +142 -0
  1049. package/dist/identity/ui/tokens/patColumns.js.map +1 -0
  1050. package/dist/identity/ui/users/AddEmailDialog.d.ts +8 -0
  1051. package/dist/identity/ui/users/AddEmailDialog.d.ts.map +1 -0
  1052. package/dist/identity/ui/users/AddEmailDialog.js +51 -0
  1053. package/dist/identity/ui/users/AddEmailDialog.js.map +1 -0
  1054. package/dist/identity/ui/users/AllowlistTable.d.ts +36 -0
  1055. package/dist/identity/ui/users/AllowlistTable.d.ts.map +1 -0
  1056. package/dist/identity/ui/users/AllowlistTable.js +115 -0
  1057. package/dist/identity/ui/users/AllowlistTable.js.map +1 -0
  1058. package/dist/identity/ui/users/ManageRolesDialog.d.ts +42 -0
  1059. package/dist/identity/ui/users/ManageRolesDialog.d.ts.map +1 -0
  1060. package/dist/identity/ui/users/ManageRolesDialog.js +73 -0
  1061. package/dist/identity/ui/users/ManageRolesDialog.js.map +1 -0
  1062. package/dist/identity/ui/users/UserList.d.ts +68 -0
  1063. package/dist/identity/ui/users/UserList.d.ts.map +1 -0
  1064. package/dist/identity/ui/users/UserList.js +169 -0
  1065. package/dist/identity/ui/users/UserList.js.map +1 -0
  1066. package/dist/identity/ui/users/UsersPage.d.ts +90 -0
  1067. package/dist/identity/ui/users/UsersPage.d.ts.map +1 -0
  1068. package/dist/identity/ui/users/UsersPage.js +55 -0
  1069. package/dist/identity/ui/users/UsersPage.js.map +1 -0
  1070. package/dist/identity/ui/users/allowlistColumns.d.ts +46 -0
  1071. package/dist/identity/ui/users/allowlistColumns.d.ts.map +1 -0
  1072. package/dist/identity/ui/users/allowlistColumns.js +121 -0
  1073. package/dist/identity/ui/users/allowlistColumns.js.map +1 -0
  1074. package/dist/identity/ui/users/userListColumns.d.ts +55 -0
  1075. package/dist/identity/ui/users/userListColumns.d.ts.map +1 -0
  1076. package/dist/identity/ui/users/userListColumns.js +158 -0
  1077. package/dist/identity/ui/users/userListColumns.js.map +1 -0
  1078. package/dist/jobs/headless/adapters.d.ts +76 -0
  1079. package/dist/jobs/headless/adapters.d.ts.map +1 -0
  1080. package/dist/jobs/headless/adapters.js +82 -0
  1081. package/dist/jobs/headless/adapters.js.map +1 -0
  1082. package/dist/jobs/headless/api.d.ts +44 -0
  1083. package/dist/jobs/headless/api.d.ts.map +1 -0
  1084. package/dist/jobs/headless/api.js +94 -0
  1085. package/dist/jobs/headless/api.js.map +1 -0
  1086. package/dist/jobs/headless/format.d.ts +33 -0
  1087. package/dist/jobs/headless/format.d.ts.map +1 -0
  1088. package/dist/jobs/headless/format.js +65 -0
  1089. package/dist/jobs/headless/format.js.map +1 -0
  1090. package/dist/jobs/headless/index.d.ts +16 -0
  1091. package/dist/jobs/headless/index.d.ts.map +1 -0
  1092. package/dist/jobs/headless/index.js +16 -0
  1093. package/dist/jobs/headless/index.js.map +1 -0
  1094. package/dist/jobs/headless/table.d.ts +229 -0
  1095. package/dist/jobs/headless/table.d.ts.map +1 -0
  1096. package/dist/jobs/headless/table.js +14 -0
  1097. package/dist/jobs/headless/table.js.map +1 -0
  1098. package/dist/jobs/headless/types.d.ts +112 -0
  1099. package/dist/jobs/headless/types.d.ts.map +1 -0
  1100. package/dist/jobs/headless/types.js +37 -0
  1101. package/dist/jobs/headless/types.js.map +1 -0
  1102. package/dist/jobs/headless/use-job-insights.d.ts +73 -0
  1103. package/dist/jobs/headless/use-job-insights.d.ts.map +1 -0
  1104. package/dist/jobs/headless/use-job-insights.js +122 -0
  1105. package/dist/jobs/headless/use-job-insights.js.map +1 -0
  1106. package/dist/jobs/headless/use-jobs.d.ts +146 -0
  1107. package/dist/jobs/headless/use-jobs.d.ts.map +1 -0
  1108. package/dist/jobs/headless/use-jobs.js +236 -0
  1109. package/dist/jobs/headless/use-jobs.js.map +1 -0
  1110. package/dist/jobs/headless/use-visible-polling.d.ts +61 -0
  1111. package/dist/jobs/headless/use-visible-polling.d.ts.map +1 -0
  1112. package/dist/jobs/headless/use-visible-polling.js +102 -0
  1113. package/dist/jobs/headless/use-visible-polling.js.map +1 -0
  1114. package/dist/jobs/internal/use-is-mounted.d.ts +9 -0
  1115. package/dist/jobs/internal/use-is-mounted.d.ts.map +1 -0
  1116. package/dist/jobs/internal/use-is-mounted.js +19 -0
  1117. package/dist/jobs/internal/use-is-mounted.js.map +1 -0
  1118. package/dist/jobs/ui/JobInsightsPage.d.ts +178 -0
  1119. package/dist/jobs/ui/JobInsightsPage.d.ts.map +1 -0
  1120. package/dist/jobs/ui/JobInsightsPage.js +333 -0
  1121. package/dist/jobs/ui/JobInsightsPage.js.map +1 -0
  1122. package/dist/jobs/ui/JobsPage.d.ts +145 -0
  1123. package/dist/jobs/ui/JobsPage.d.ts.map +1 -0
  1124. package/dist/jobs/ui/JobsPage.js +296 -0
  1125. package/dist/jobs/ui/JobsPage.js.map +1 -0
  1126. package/dist/jobs/ui/PageHeader.d.ts +23 -0
  1127. package/dist/jobs/ui/PageHeader.d.ts.map +1 -0
  1128. package/dist/jobs/ui/PageHeader.js +7 -0
  1129. package/dist/jobs/ui/PageHeader.js.map +1 -0
  1130. package/dist/jobs/ui/copy.d.ts +5 -0
  1131. package/dist/jobs/ui/copy.d.ts.map +1 -0
  1132. package/dist/jobs/ui/copy.js +10 -0
  1133. package/dist/jobs/ui/copy.js.map +1 -0
  1134. package/dist/jobs/ui/index.d.ts +10 -0
  1135. package/dist/jobs/ui/index.d.ts.map +1 -0
  1136. package/dist/jobs/ui/index.js +11 -0
  1137. package/dist/jobs/ui/index.js.map +1 -0
  1138. package/dist/jobs/ui/jobsTable.d.ts +128 -0
  1139. package/dist/jobs/ui/jobsTable.d.ts.map +1 -0
  1140. package/dist/jobs/ui/jobsTable.js +321 -0
  1141. package/dist/jobs/ui/jobsTable.js.map +1 -0
  1142. package/dist/jobs/ui/settings.d.ts +33 -0
  1143. package/dist/jobs/ui/settings.d.ts.map +1 -0
  1144. package/dist/jobs/ui/settings.js +65 -0
  1145. package/dist/jobs/ui/settings.js.map +1 -0
  1146. package/dist/jobs/ui/spinner.d.ts +3 -0
  1147. package/dist/jobs/ui/spinner.d.ts.map +1 -0
  1148. package/dist/jobs/ui/spinner.js +10 -0
  1149. package/dist/jobs/ui/spinner.js.map +1 -0
  1150. package/dist/jobs/ui/table.d.ts +5 -0
  1151. package/dist/jobs/ui/table.d.ts.map +1 -0
  1152. package/dist/jobs/ui/table.js +47 -0
  1153. package/dist/jobs/ui/table.js.map +1 -0
  1154. package/dist/nodes/headless/adapters.d.ts +76 -0
  1155. package/dist/nodes/headless/adapters.d.ts.map +1 -0
  1156. package/dist/nodes/headless/adapters.js +70 -0
  1157. package/dist/nodes/headless/adapters.js.map +1 -0
  1158. package/dist/nodes/headless/api.d.ts +39 -0
  1159. package/dist/nodes/headless/api.d.ts.map +1 -0
  1160. package/dist/nodes/headless/api.js +53 -0
  1161. package/dist/nodes/headless/api.js.map +1 -0
  1162. package/dist/nodes/headless/capabilities.d.ts +35 -0
  1163. package/dist/nodes/headless/capabilities.d.ts.map +1 -0
  1164. package/dist/nodes/headless/capabilities.js +65 -0
  1165. package/dist/nodes/headless/capabilities.js.map +1 -0
  1166. package/dist/nodes/headless/format.d.ts +33 -0
  1167. package/dist/nodes/headless/format.d.ts.map +1 -0
  1168. package/dist/nodes/headless/format.js +64 -0
  1169. package/dist/nodes/headless/format.js.map +1 -0
  1170. package/dist/nodes/headless/index.d.ts +16 -0
  1171. package/dist/nodes/headless/index.d.ts.map +1 -0
  1172. package/dist/nodes/headless/index.js +14 -0
  1173. package/dist/nodes/headless/index.js.map +1 -0
  1174. package/dist/nodes/headless/node-vitals.d.ts +91 -0
  1175. package/dist/nodes/headless/node-vitals.d.ts.map +1 -0
  1176. package/dist/nodes/headless/node-vitals.js +129 -0
  1177. package/dist/nodes/headless/node-vitals.js.map +1 -0
  1178. package/dist/nodes/headless/table.d.ts +229 -0
  1179. package/dist/nodes/headless/table.d.ts.map +1 -0
  1180. package/dist/nodes/headless/table.js +15 -0
  1181. package/dist/nodes/headless/table.js.map +1 -0
  1182. package/dist/nodes/headless/types.d.ts +46 -0
  1183. package/dist/nodes/headless/types.d.ts.map +1 -0
  1184. package/dist/nodes/headless/types.js +46 -0
  1185. package/dist/nodes/headless/types.js.map +1 -0
  1186. package/dist/nodes/headless/use-visible-polling.d.ts +60 -0
  1187. package/dist/nodes/headless/use-visible-polling.d.ts.map +1 -0
  1188. package/dist/nodes/headless/use-visible-polling.js +101 -0
  1189. package/dist/nodes/headless/use-visible-polling.js.map +1 -0
  1190. package/dist/nodes/headless/use-worker-nodes.d.ts +207 -0
  1191. package/dist/nodes/headless/use-worker-nodes.d.ts.map +1 -0
  1192. package/dist/nodes/headless/use-worker-nodes.js +324 -0
  1193. package/dist/nodes/headless/use-worker-nodes.js.map +1 -0
  1194. package/dist/nodes/index.d.ts +4 -0
  1195. package/dist/nodes/index.d.ts.map +1 -0
  1196. package/dist/nodes/index.js +10 -0
  1197. package/dist/nodes/index.js.map +1 -0
  1198. package/dist/nodes/internal/format-bytes.d.ts +2 -0
  1199. package/dist/nodes/internal/format-bytes.d.ts.map +1 -0
  1200. package/dist/nodes/internal/format-bytes.js +17 -0
  1201. package/dist/nodes/internal/format-bytes.js.map +1 -0
  1202. package/dist/nodes/internal/relative-time.d.ts +2 -0
  1203. package/dist/nodes/internal/relative-time.d.ts.map +1 -0
  1204. package/dist/nodes/internal/relative-time.js +31 -0
  1205. package/dist/nodes/internal/relative-time.js.map +1 -0
  1206. package/dist/nodes/internal/use-is-mounted.d.ts +9 -0
  1207. package/dist/nodes/internal/use-is-mounted.d.ts.map +1 -0
  1208. package/dist/nodes/internal/use-is-mounted.js +19 -0
  1209. package/dist/nodes/internal/use-is-mounted.js.map +1 -0
  1210. package/dist/nodes/ui/CreateNodeCredentialDialog.d.ts +63 -0
  1211. package/dist/nodes/ui/CreateNodeCredentialDialog.d.ts.map +1 -0
  1212. package/dist/nodes/ui/CreateNodeCredentialDialog.js +125 -0
  1213. package/dist/nodes/ui/CreateNodeCredentialDialog.js.map +1 -0
  1214. package/dist/nodes/ui/NodeCredentialRevealDialog.d.ts +46 -0
  1215. package/dist/nodes/ui/NodeCredentialRevealDialog.d.ts.map +1 -0
  1216. package/dist/nodes/ui/NodeCredentialRevealDialog.js +72 -0
  1217. package/dist/nodes/ui/NodeCredentialRevealDialog.js.map +1 -0
  1218. package/dist/nodes/ui/NodeCredentials.d.ts +89 -0
  1219. package/dist/nodes/ui/NodeCredentials.d.ts.map +1 -0
  1220. package/dist/nodes/ui/NodeCredentials.js +125 -0
  1221. package/dist/nodes/ui/NodeCredentials.js.map +1 -0
  1222. package/dist/nodes/ui/NodeVitalsDialog.d.ts +48 -0
  1223. package/dist/nodes/ui/NodeVitalsDialog.d.ts.map +1 -0
  1224. package/dist/nodes/ui/NodeVitalsDialog.js +73 -0
  1225. package/dist/nodes/ui/NodeVitalsDialog.js.map +1 -0
  1226. package/dist/nodes/ui/PageHeader.d.ts +23 -0
  1227. package/dist/nodes/ui/PageHeader.d.ts.map +1 -0
  1228. package/dist/nodes/ui/PageHeader.js +7 -0
  1229. package/dist/nodes/ui/PageHeader.js.map +1 -0
  1230. package/dist/nodes/ui/WorkersPage.d.ts +153 -0
  1231. package/dist/nodes/ui/WorkersPage.d.ts.map +1 -0
  1232. package/dist/nodes/ui/WorkersPage.js +306 -0
  1233. package/dist/nodes/ui/WorkersPage.js.map +1 -0
  1234. package/dist/nodes/ui/copy.d.ts +3 -0
  1235. package/dist/nodes/ui/copy.d.ts.map +1 -0
  1236. package/dist/nodes/ui/copy.js +6 -0
  1237. package/dist/nodes/ui/copy.js.map +1 -0
  1238. package/dist/nodes/ui/index.d.ts +9 -0
  1239. package/dist/nodes/ui/index.d.ts.map +1 -0
  1240. package/dist/nodes/ui/index.js +8 -0
  1241. package/dist/nodes/ui/index.js.map +1 -0
  1242. package/dist/nodes/ui/settings.d.ts +31 -0
  1243. package/dist/nodes/ui/settings.d.ts.map +1 -0
  1244. package/dist/nodes/ui/settings.js +42 -0
  1245. package/dist/nodes/ui/settings.js.map +1 -0
  1246. package/dist/nodes/ui/spinner.d.ts +3 -0
  1247. package/dist/nodes/ui/spinner.d.ts.map +1 -0
  1248. package/dist/nodes/ui/spinner.js +10 -0
  1249. package/dist/nodes/ui/spinner.js.map +1 -0
  1250. package/dist/nodes/ui/table.d.ts +5 -0
  1251. package/dist/nodes/ui/table.d.ts.map +1 -0
  1252. package/dist/nodes/ui/table.js +47 -0
  1253. package/dist/nodes/ui/table.js.map +1 -0
  1254. package/dist/nodes/ui/workerVitals.d.ts +120 -0
  1255. package/dist/nodes/ui/workerVitals.d.ts.map +1 -0
  1256. package/dist/nodes/ui/workerVitals.js +228 -0
  1257. package/dist/nodes/ui/workerVitals.js.map +1 -0
  1258. package/dist/nodes/ui/workersTable.d.ts +163 -0
  1259. package/dist/nodes/ui/workersTable.d.ts.map +1 -0
  1260. package/dist/nodes/ui/workersTable.js +572 -0
  1261. package/dist/nodes/ui/workersTable.js.map +1 -0
  1262. package/dist/notifications/headless/NotificationContext.d.ts +143 -0
  1263. package/dist/notifications/headless/NotificationContext.d.ts.map +1 -0
  1264. package/dist/notifications/headless/NotificationContext.js +723 -0
  1265. package/dist/notifications/headless/NotificationContext.js.map +1 -0
  1266. package/dist/notifications/headless/api.d.ts +170 -0
  1267. package/dist/notifications/headless/api.d.ts.map +1 -0
  1268. package/dist/notifications/headless/api.js +168 -0
  1269. package/dist/notifications/headless/api.js.map +1 -0
  1270. package/dist/notifications/headless/broadcasts.d.ts +272 -0
  1271. package/dist/notifications/headless/broadcasts.d.ts.map +1 -0
  1272. package/dist/notifications/headless/broadcasts.js +235 -0
  1273. package/dist/notifications/headless/broadcasts.js.map +1 -0
  1274. package/dist/notifications/headless/browserNotifications.d.ts +131 -0
  1275. package/dist/notifications/headless/browserNotifications.d.ts.map +1 -0
  1276. package/dist/notifications/headless/browserNotifications.js +326 -0
  1277. package/dist/notifications/headless/browserNotifications.js.map +1 -0
  1278. package/dist/notifications/headless/index.d.ts +15 -0
  1279. package/dist/notifications/headless/index.d.ts.map +1 -0
  1280. package/dist/notifications/headless/index.js +15 -0
  1281. package/dist/notifications/headless/index.js.map +1 -0
  1282. package/dist/notifications/headless/internalLink.d.ts +36 -0
  1283. package/dist/notifications/headless/internalLink.d.ts.map +1 -0
  1284. package/dist/notifications/headless/internalLink.js +43 -0
  1285. package/dist/notifications/headless/internalLink.js.map +1 -0
  1286. package/dist/notifications/headless/notificationStream.d.ts +144 -0
  1287. package/dist/notifications/headless/notificationStream.d.ts.map +1 -0
  1288. package/dist/notifications/headless/notificationStream.js +186 -0
  1289. package/dist/notifications/headless/notificationStream.js.map +1 -0
  1290. package/dist/notifications/headless/pushConfig.d.ts +190 -0
  1291. package/dist/notifications/headless/pushConfig.d.ts.map +1 -0
  1292. package/dist/notifications/headless/pushConfig.js +90 -0
  1293. package/dist/notifications/headless/pushConfig.js.map +1 -0
  1294. package/dist/notifications/headless/pushDiagnostics.d.ts +153 -0
  1295. package/dist/notifications/headless/pushDiagnostics.d.ts.map +1 -0
  1296. package/dist/notifications/headless/pushDiagnostics.js +709 -0
  1297. package/dist/notifications/headless/pushDiagnostics.js.map +1 -0
  1298. package/dist/notifications/headless/pushSubscription.d.ts +97 -0
  1299. package/dist/notifications/headless/pushSubscription.d.ts.map +1 -0
  1300. package/dist/notifications/headless/pushSubscription.js +281 -0
  1301. package/dist/notifications/headless/pushSubscription.js.map +1 -0
  1302. package/dist/notifications/headless/service-worker.d.ts +242 -0
  1303. package/dist/notifications/headless/service-worker.d.ts.map +1 -0
  1304. package/dist/notifications/headless/service-worker.js +226 -0
  1305. package/dist/notifications/headless/service-worker.js.map +1 -0
  1306. package/dist/notifications/headless/sse.d.ts +58 -0
  1307. package/dist/notifications/headless/sse.d.ts.map +1 -0
  1308. package/dist/notifications/headless/sse.js +23 -0
  1309. package/dist/notifications/headless/sse.js.map +1 -0
  1310. package/dist/notifications/headless/types.d.ts +424 -0
  1311. package/dist/notifications/headless/types.d.ts.map +1 -0
  1312. package/dist/notifications/headless/types.js +10 -0
  1313. package/dist/notifications/headless/types.js.map +1 -0
  1314. package/dist/notifications/headless/useBroadcasts.d.ts +90 -0
  1315. package/dist/notifications/headless/useBroadcasts.d.ts.map +1 -0
  1316. package/dist/notifications/headless/useBroadcasts.js +187 -0
  1317. package/dist/notifications/headless/useBroadcasts.js.map +1 -0
  1318. package/dist/notifications/headless/useBrowserNotificationPermission.d.ts +64 -0
  1319. package/dist/notifications/headless/useBrowserNotificationPermission.d.ts.map +1 -0
  1320. package/dist/notifications/headless/useBrowserNotificationPermission.js +119 -0
  1321. package/dist/notifications/headless/useBrowserNotificationPermission.js.map +1 -0
  1322. package/dist/notifications/headless/useIsMounted.d.ts +9 -0
  1323. package/dist/notifications/headless/useIsMounted.d.ts.map +1 -0
  1324. package/dist/notifications/headless/useIsMounted.js +19 -0
  1325. package/dist/notifications/headless/useIsMounted.js.map +1 -0
  1326. package/dist/notifications/headless/useNotificationCapability.d.ts +304 -0
  1327. package/dist/notifications/headless/useNotificationCapability.d.ts.map +1 -0
  1328. package/dist/notifications/headless/useNotificationCapability.js +411 -0
  1329. package/dist/notifications/headless/useNotificationCapability.js.map +1 -0
  1330. package/dist/notifications/headless/useNotificationChannels.d.ts +39 -0
  1331. package/dist/notifications/headless/useNotificationChannels.d.ts.map +1 -0
  1332. package/dist/notifications/headless/useNotificationChannels.js +48 -0
  1333. package/dist/notifications/headless/useNotificationChannels.js.map +1 -0
  1334. package/dist/notifications/headless/useNotificationConfig.d.ts +46 -0
  1335. package/dist/notifications/headless/useNotificationConfig.d.ts.map +1 -0
  1336. package/dist/notifications/headless/useNotificationConfig.js +66 -0
  1337. package/dist/notifications/headless/useNotificationConfig.js.map +1 -0
  1338. package/dist/notifications/headless/useNotificationEvents.d.ts +49 -0
  1339. package/dist/notifications/headless/useNotificationEvents.d.ts.map +1 -0
  1340. package/dist/notifications/headless/useNotificationEvents.js +64 -0
  1341. package/dist/notifications/headless/useNotificationEvents.js.map +1 -0
  1342. package/dist/notifications/headless/usePushConfig.d.ts +50 -0
  1343. package/dist/notifications/headless/usePushConfig.d.ts.map +1 -0
  1344. package/dist/notifications/headless/usePushConfig.js +143 -0
  1345. package/dist/notifications/headless/usePushConfig.js.map +1 -0
  1346. package/dist/notifications/headless/usePushSubscriptionSync.d.ts +54 -0
  1347. package/dist/notifications/headless/usePushSubscriptionSync.d.ts.map +1 -0
  1348. package/dist/notifications/headless/usePushSubscriptionSync.js +83 -0
  1349. package/dist/notifications/headless/usePushSubscriptionSync.js.map +1 -0
  1350. package/dist/notifications/headless/useVisiblePolling.d.ts +55 -0
  1351. package/dist/notifications/headless/useVisiblePolling.d.ts.map +1 -0
  1352. package/dist/notifications/headless/useVisiblePolling.js +96 -0
  1353. package/dist/notifications/headless/useVisiblePolling.js.map +1 -0
  1354. package/dist/notifications/ui/AddToHomeScreenPanel.d.ts +52 -0
  1355. package/dist/notifications/ui/AddToHomeScreenPanel.d.ts.map +1 -0
  1356. package/dist/notifications/ui/AddToHomeScreenPanel.js +61 -0
  1357. package/dist/notifications/ui/AddToHomeScreenPanel.js.map +1 -0
  1358. package/dist/notifications/ui/BroadcastComposer.d.ts +87 -0
  1359. package/dist/notifications/ui/BroadcastComposer.d.ts.map +1 -0
  1360. package/dist/notifications/ui/BroadcastComposer.js +331 -0
  1361. package/dist/notifications/ui/BroadcastComposer.js.map +1 -0
  1362. package/dist/notifications/ui/BroadcastDetailDialog.d.ts +33 -0
  1363. package/dist/notifications/ui/BroadcastDetailDialog.d.ts.map +1 -0
  1364. package/dist/notifications/ui/BroadcastDetailDialog.js +43 -0
  1365. package/dist/notifications/ui/BroadcastDetailDialog.js.map +1 -0
  1366. package/dist/notifications/ui/BroadcastsPage.d.ts +100 -0
  1367. package/dist/notifications/ui/BroadcastsPage.d.ts.map +1 -0
  1368. package/dist/notifications/ui/BroadcastsPage.js +340 -0
  1369. package/dist/notifications/ui/BroadcastsPage.js.map +1 -0
  1370. package/dist/notifications/ui/LoadingSpinner.d.ts +7 -0
  1371. package/dist/notifications/ui/LoadingSpinner.d.ts.map +1 -0
  1372. package/dist/notifications/ui/LoadingSpinner.js +15 -0
  1373. package/dist/notifications/ui/LoadingSpinner.js.map +1 -0
  1374. package/dist/notifications/ui/NotificationBell.d.ts +85 -0
  1375. package/dist/notifications/ui/NotificationBell.d.ts.map +1 -0
  1376. package/dist/notifications/ui/NotificationBell.js +161 -0
  1377. package/dist/notifications/ui/NotificationBell.js.map +1 -0
  1378. package/dist/notifications/ui/NotificationPermissionBanner.d.ts +56 -0
  1379. package/dist/notifications/ui/NotificationPermissionBanner.d.ts.map +1 -0
  1380. package/dist/notifications/ui/NotificationPermissionBanner.js +106 -0
  1381. package/dist/notifications/ui/NotificationPermissionBanner.js.map +1 -0
  1382. package/dist/notifications/ui/NotificationSettings.d.ts +304 -0
  1383. package/dist/notifications/ui/NotificationSettings.d.ts.map +1 -0
  1384. package/dist/notifications/ui/NotificationSettings.js +466 -0
  1385. package/dist/notifications/ui/NotificationSettings.js.map +1 -0
  1386. package/dist/notifications/ui/NotificationSettingsPage.d.ts +80 -0
  1387. package/dist/notifications/ui/NotificationSettingsPage.d.ts.map +1 -0
  1388. package/dist/notifications/ui/NotificationSettingsPage.js +166 -0
  1389. package/dist/notifications/ui/NotificationSettingsPage.js.map +1 -0
  1390. package/dist/notifications/ui/PushConfigConfirmDialog.d.ts +40 -0
  1391. package/dist/notifications/ui/PushConfigConfirmDialog.d.ts.map +1 -0
  1392. package/dist/notifications/ui/PushConfigConfirmDialog.js +72 -0
  1393. package/dist/notifications/ui/PushConfigConfirmDialog.js.map +1 -0
  1394. package/dist/notifications/ui/PushConfigPage.d.ts +84 -0
  1395. package/dist/notifications/ui/PushConfigPage.d.ts.map +1 -0
  1396. package/dist/notifications/ui/PushConfigPage.js +205 -0
  1397. package/dist/notifications/ui/PushConfigPage.js.map +1 -0
  1398. package/dist/notifications/ui/PushTestPanel.d.ts +25 -0
  1399. package/dist/notifications/ui/PushTestPanel.d.ts.map +1 -0
  1400. package/dist/notifications/ui/PushTestPanel.js +304 -0
  1401. package/dist/notifications/ui/PushTestPanel.js.map +1 -0
  1402. package/dist/notifications/ui/SystemSettingsSection.d.ts +69 -0
  1403. package/dist/notifications/ui/SystemSettingsSection.d.ts.map +1 -0
  1404. package/dist/notifications/ui/SystemSettingsSection.js +63 -0
  1405. package/dist/notifications/ui/SystemSettingsSection.js.map +1 -0
  1406. package/dist/notifications/ui/UserNotificationsPage.d.ts +101 -0
  1407. package/dist/notifications/ui/UserNotificationsPage.d.ts.map +1 -0
  1408. package/dist/notifications/ui/UserNotificationsPage.js +197 -0
  1409. package/dist/notifications/ui/UserNotificationsPage.js.map +1 -0
  1410. package/dist/notifications/ui/UserSettingsSection.d.ts +99 -0
  1411. package/dist/notifications/ui/UserSettingsSection.d.ts.map +1 -0
  1412. package/dist/notifications/ui/UserSettingsSection.js +78 -0
  1413. package/dist/notifications/ui/UserSettingsSection.js.map +1 -0
  1414. package/dist/notifications/ui/broadcastsTable.d.ts +117 -0
  1415. package/dist/notifications/ui/broadcastsTable.d.ts.map +1 -0
  1416. package/dist/notifications/ui/broadcastsTable.js +312 -0
  1417. package/dist/notifications/ui/broadcastsTable.js.map +1 -0
  1418. package/dist/notifications/ui/datatable.d.ts +14 -0
  1419. package/dist/notifications/ui/datatable.d.ts.map +1 -0
  1420. package/dist/notifications/ui/datatable.js +8 -0
  1421. package/dist/notifications/ui/datatable.js.map +1 -0
  1422. package/dist/notifications/ui/index.d.ts +14 -0
  1423. package/dist/notifications/ui/index.d.ts.map +1 -0
  1424. package/dist/notifications/ui/index.js +13 -0
  1425. package/dist/notifications/ui/index.js.map +1 -0
  1426. package/dist/notifications/ui/relativeTime.d.ts +25 -0
  1427. package/dist/notifications/ui/relativeTime.d.ts.map +1 -0
  1428. package/dist/notifications/ui/relativeTime.js +70 -0
  1429. package/dist/notifications/ui/relativeTime.js.map +1 -0
  1430. package/dist/onboarding/headless/client.d.ts +44 -0
  1431. package/dist/onboarding/headless/client.d.ts.map +1 -0
  1432. package/dist/onboarding/headless/client.js +44 -0
  1433. package/dist/onboarding/headless/client.js.map +1 -0
  1434. package/dist/onboarding/headless/feature-notices.d.ts +56 -0
  1435. package/dist/onboarding/headless/feature-notices.d.ts.map +1 -0
  1436. package/dist/onboarding/headless/feature-notices.js +62 -0
  1437. package/dist/onboarding/headless/feature-notices.js.map +1 -0
  1438. package/dist/onboarding/headless/getting-started.d.ts +35 -0
  1439. package/dist/onboarding/headless/getting-started.d.ts.map +1 -0
  1440. package/dist/onboarding/headless/getting-started.js +28 -0
  1441. package/dist/onboarding/headless/getting-started.js.map +1 -0
  1442. package/dist/onboarding/headless/index.d.ts +12 -0
  1443. package/dist/onboarding/headless/index.d.ts.map +1 -0
  1444. package/dist/onboarding/headless/index.js +10 -0
  1445. package/dist/onboarding/headless/index.js.map +1 -0
  1446. package/dist/onboarding/headless/provider.d.ts +94 -0
  1447. package/dist/onboarding/headless/provider.d.ts.map +1 -0
  1448. package/dist/onboarding/headless/provider.js +204 -0
  1449. package/dist/onboarding/headless/provider.js.map +1 -0
  1450. package/dist/onboarding/headless/use-onboarding-metrics.d.ts +35 -0
  1451. package/dist/onboarding/headless/use-onboarding-metrics.d.ts.map +1 -0
  1452. package/dist/onboarding/headless/use-onboarding-metrics.js +58 -0
  1453. package/dist/onboarding/headless/use-onboarding-metrics.js.map +1 -0
  1454. package/dist/onboarding/index.d.ts +3 -0
  1455. package/dist/onboarding/index.d.ts.map +1 -0
  1456. package/dist/onboarding/index.js +8 -0
  1457. package/dist/onboarding/index.js.map +1 -0
  1458. package/dist/onboarding/internal/use-is-mounted.d.ts +3 -0
  1459. package/dist/onboarding/internal/use-is-mounted.d.ts.map +1 -0
  1460. package/dist/onboarding/internal/use-is-mounted.js +13 -0
  1461. package/dist/onboarding/internal/use-is-mounted.js.map +1 -0
  1462. package/dist/onboarding/ui/ActivationMetrics.d.ts +40 -0
  1463. package/dist/onboarding/ui/ActivationMetrics.d.ts.map +1 -0
  1464. package/dist/onboarding/ui/ActivationMetrics.js +73 -0
  1465. package/dist/onboarding/ui/ActivationMetrics.js.map +1 -0
  1466. package/dist/onboarding/ui/FeatureUnavailableNotice.d.ts +30 -0
  1467. package/dist/onboarding/ui/FeatureUnavailableNotice.d.ts.map +1 -0
  1468. package/dist/onboarding/ui/FeatureUnavailableNotice.js +43 -0
  1469. package/dist/onboarding/ui/FeatureUnavailableNotice.js.map +1 -0
  1470. package/dist/onboarding/ui/GettingStartedMenuItem.d.ts +28 -0
  1471. package/dist/onboarding/ui/GettingStartedMenuItem.d.ts.map +1 -0
  1472. package/dist/onboarding/ui/GettingStartedMenuItem.js +30 -0
  1473. package/dist/onboarding/ui/GettingStartedMenuItem.js.map +1 -0
  1474. package/dist/onboarding/ui/GettingStartedPage.d.ts +42 -0
  1475. package/dist/onboarding/ui/GettingStartedPage.d.ts.map +1 -0
  1476. package/dist/onboarding/ui/GettingStartedPage.js +34 -0
  1477. package/dist/onboarding/ui/GettingStartedPage.js.map +1 -0
  1478. package/dist/onboarding/ui/OnboardingChecklist.d.ts +55 -0
  1479. package/dist/onboarding/ui/OnboardingChecklist.d.ts.map +1 -0
  1480. package/dist/onboarding/ui/OnboardingChecklist.js +91 -0
  1481. package/dist/onboarding/ui/OnboardingChecklist.js.map +1 -0
  1482. package/dist/onboarding/ui/SetupGuidePage.d.ts +46 -0
  1483. package/dist/onboarding/ui/SetupGuidePage.d.ts.map +1 -0
  1484. package/dist/onboarding/ui/SetupGuidePage.js +40 -0
  1485. package/dist/onboarding/ui/SetupGuidePage.js.map +1 -0
  1486. package/dist/onboarding/ui/WelcomeDialog.d.ts +56 -0
  1487. package/dist/onboarding/ui/WelcomeDialog.d.ts.map +1 -0
  1488. package/dist/onboarding/ui/WelcomeDialog.js +66 -0
  1489. package/dist/onboarding/ui/WelcomeDialog.js.map +1 -0
  1490. package/dist/onboarding/ui/copy.d.ts +67 -0
  1491. package/dist/onboarding/ui/copy.d.ts.map +1 -0
  1492. package/dist/onboarding/ui/copy.js +69 -0
  1493. package/dist/onboarding/ui/copy.js.map +1 -0
  1494. package/dist/onboarding/ui/index.d.ts +16 -0
  1495. package/dist/onboarding/ui/index.d.ts.map +1 -0
  1496. package/dist/onboarding/ui/index.js +14 -0
  1497. package/dist/onboarding/ui/index.js.map +1 -0
  1498. package/dist/onboarding/ui/settings-pages.d.ts +33 -0
  1499. package/dist/onboarding/ui/settings-pages.d.ts.map +1 -0
  1500. package/dist/onboarding/ui/settings-pages.js +56 -0
  1501. package/dist/onboarding/ui/settings-pages.js.map +1 -0
  1502. package/dist/settings/headless/features.d.ts +74 -0
  1503. package/dist/settings/headless/features.d.ts.map +1 -0
  1504. package/dist/settings/headless/features.js +94 -0
  1505. package/dist/settings/headless/features.js.map +1 -0
  1506. package/dist/settings/headless/index.d.ts +39 -0
  1507. package/dist/settings/headless/index.d.ts.map +1 -0
  1508. package/dist/settings/headless/index.js +12 -0
  1509. package/dist/settings/headless/index.js.map +1 -0
  1510. package/dist/settings/headless/org-field-renderers.d.ts +57 -0
  1511. package/dist/settings/headless/org-field-renderers.d.ts.map +1 -0
  1512. package/dist/settings/headless/org-field-renderers.js +59 -0
  1513. package/dist/settings/headless/org-field-renderers.js.map +1 -0
  1514. package/dist/settings/headless/profile-image.d.ts +62 -0
  1515. package/dist/settings/headless/profile-image.d.ts.map +1 -0
  1516. package/dist/settings/headless/profile-image.js +51 -0
  1517. package/dist/settings/headless/profile-image.js.map +1 -0
  1518. package/dist/settings/headless/theme-options.d.ts +33 -0
  1519. package/dist/settings/headless/theme-options.d.ts.map +1 -0
  1520. package/dist/settings/headless/theme-options.js +47 -0
  1521. package/dist/settings/headless/theme-options.js.map +1 -0
  1522. package/dist/settings/headless/use-org-settings.d.ts +41 -0
  1523. package/dist/settings/headless/use-org-settings.d.ts.map +1 -0
  1524. package/dist/settings/headless/use-org-settings.js +84 -0
  1525. package/dist/settings/headless/use-org-settings.js.map +1 -0
  1526. package/dist/settings/headless/use-pluggable-config-form.d.ts +72 -0
  1527. package/dist/settings/headless/use-pluggable-config-form.d.ts.map +1 -0
  1528. package/dist/settings/headless/use-pluggable-config-form.js +106 -0
  1529. package/dist/settings/headless/use-pluggable-config-form.js.map +1 -0
  1530. package/dist/settings/headless/use-storage-status.d.ts +30 -0
  1531. package/dist/settings/headless/use-storage-status.d.ts.map +1 -0
  1532. package/dist/settings/headless/use-storage-status.js +59 -0
  1533. package/dist/settings/headless/use-storage-status.js.map +1 -0
  1534. package/dist/settings/headless/use-system-settings.d.ts +70 -0
  1535. package/dist/settings/headless/use-system-settings.d.ts.map +1 -0
  1536. package/dist/settings/headless/use-system-settings.js +116 -0
  1537. package/dist/settings/headless/use-system-settings.js.map +1 -0
  1538. package/dist/settings/headless/use-user-settings.d.ts +96 -0
  1539. package/dist/settings/headless/use-user-settings.d.ts.map +1 -0
  1540. package/dist/settings/headless/use-user-settings.js +113 -0
  1541. package/dist/settings/headless/use-user-settings.js.map +1 -0
  1542. package/dist/settings/index.d.ts +9 -0
  1543. package/dist/settings/index.d.ts.map +1 -0
  1544. package/dist/settings/index.js +17 -0
  1545. package/dist/settings/index.js.map +1 -0
  1546. package/dist/settings/internal/LoadingSpinner.d.ts +6 -0
  1547. package/dist/settings/internal/LoadingSpinner.d.ts.map +1 -0
  1548. package/dist/settings/internal/LoadingSpinner.js +9 -0
  1549. package/dist/settings/internal/LoadingSpinner.js.map +1 -0
  1550. package/dist/settings/internal/use-is-mounted.d.ts +2 -0
  1551. package/dist/settings/internal/use-is-mounted.d.ts.map +1 -0
  1552. package/dist/settings/internal/use-is-mounted.js +14 -0
  1553. package/dist/settings/internal/use-is-mounted.js.map +1 -0
  1554. package/dist/settings/testing/index.d.ts +7 -0
  1555. package/dist/settings/testing/index.d.ts.map +1 -0
  1556. package/dist/settings/testing/index.js +12 -0
  1557. package/dist/settings/testing/index.js.map +1 -0
  1558. package/dist/settings/testing/routes.d.ts +28 -0
  1559. package/dist/settings/testing/routes.d.ts.map +1 -0
  1560. package/dist/settings/testing/routes.js +62 -0
  1561. package/dist/settings/testing/routes.js.map +1 -0
  1562. package/dist/settings/testing/sections.d.ts +28 -0
  1563. package/dist/settings/testing/sections.d.ts.map +1 -0
  1564. package/dist/settings/testing/sections.js +27 -0
  1565. package/dist/settings/testing/sections.js.map +1 -0
  1566. package/dist/settings/testing/settings-ai-cards.suite.d.ts +10 -0
  1567. package/dist/settings/testing/settings-ai-cards.suite.d.ts.map +1 -0
  1568. package/dist/settings/testing/settings-ai-cards.suite.js +143 -0
  1569. package/dist/settings/testing/settings-ai-cards.suite.js.map +1 -0
  1570. package/dist/settings/testing/settings-card-routes.suite.d.ts +10 -0
  1571. package/dist/settings/testing/settings-card-routes.suite.d.ts.map +1 -0
  1572. package/dist/settings/testing/settings-card-routes.suite.js +74 -0
  1573. package/dist/settings/testing/settings-card-routes.suite.js.map +1 -0
  1574. package/dist/settings/testing/settings-registry-gates.suite.d.ts +10 -0
  1575. package/dist/settings/testing/settings-registry-gates.suite.d.ts.map +1 -0
  1576. package/dist/settings/testing/settings-registry-gates.suite.js +277 -0
  1577. package/dist/settings/testing/settings-registry-gates.suite.js.map +1 -0
  1578. package/dist/settings/testing/settings-registry-shape.suite.d.ts +11 -0
  1579. package/dist/settings/testing/settings-registry-shape.suite.d.ts.map +1 -0
  1580. package/dist/settings/testing/settings-registry-shape.suite.js +115 -0
  1581. package/dist/settings/testing/settings-registry-shape.suite.js.map +1 -0
  1582. package/dist/settings/testing/settings-route-ownership.suite.d.ts +10 -0
  1583. package/dist/settings/testing/settings-route-ownership.suite.d.ts.map +1 -0
  1584. package/dist/settings/testing/settings-route-ownership.suite.js +115 -0
  1585. package/dist/settings/testing/settings-route-ownership.suite.js.map +1 -0
  1586. package/dist/settings/ui/ImageUpload.d.ts +49 -0
  1587. package/dist/settings/ui/ImageUpload.d.ts.map +1 -0
  1588. package/dist/settings/ui/ImageUpload.js +96 -0
  1589. package/dist/settings/ui/ImageUpload.js.map +1 -0
  1590. package/dist/settings/ui/OrgSettingsPage.d.ts +41 -0
  1591. package/dist/settings/ui/OrgSettingsPage.d.ts.map +1 -0
  1592. package/dist/settings/ui/OrgSettingsPage.js +99 -0
  1593. package/dist/settings/ui/OrgSettingsPage.js.map +1 -0
  1594. package/dist/settings/ui/PluggableConfigForm.d.ts +96 -0
  1595. package/dist/settings/ui/PluggableConfigForm.d.ts.map +1 -0
  1596. package/dist/settings/ui/PluggableConfigForm.js +95 -0
  1597. package/dist/settings/ui/PluggableConfigForm.js.map +1 -0
  1598. package/dist/settings/ui/ProfileSettings.d.ts +75 -0
  1599. package/dist/settings/ui/ProfileSettings.d.ts.map +1 -0
  1600. package/dist/settings/ui/ProfileSettings.js +270 -0
  1601. package/dist/settings/ui/ProfileSettings.js.map +1 -0
  1602. package/dist/settings/ui/SettingsHub.d.ts +97 -0
  1603. package/dist/settings/ui/SettingsHub.d.ts.map +1 -0
  1604. package/dist/settings/ui/SettingsHub.js +134 -0
  1605. package/dist/settings/ui/SettingsHub.js.map +1 -0
  1606. package/dist/settings/ui/ThemeSettings.d.ts +65 -0
  1607. package/dist/settings/ui/ThemeSettings.d.ts.map +1 -0
  1608. package/dist/settings/ui/ThemeSettings.js +26 -0
  1609. package/dist/settings/ui/ThemeSettings.js.map +1 -0
  1610. package/dist/settings/ui/UserAppearancePage.d.ts +65 -0
  1611. package/dist/settings/ui/UserAppearancePage.d.ts.map +1 -0
  1612. package/dist/settings/ui/UserAppearancePage.js +33 -0
  1613. package/dist/settings/ui/UserAppearancePage.js.map +1 -0
  1614. package/dist/settings/ui/UserProfilePage.d.ts +60 -0
  1615. package/dist/settings/ui/UserProfilePage.d.ts.map +1 -0
  1616. package/dist/settings/ui/UserProfilePage.js +29 -0
  1617. package/dist/settings/ui/UserProfilePage.js.map +1 -0
  1618. package/dist/settings/ui/UserSettingsSection.d.ts +141 -0
  1619. package/dist/settings/ui/UserSettingsSection.d.ts.map +1 -0
  1620. package/dist/settings/ui/UserSettingsSection.js +94 -0
  1621. package/dist/settings/ui/UserSettingsSection.js.map +1 -0
  1622. package/dist/settings/ui/index.d.ts +23 -0
  1623. package/dist/settings/ui/index.d.ts.map +1 -0
  1624. package/dist/settings/ui/index.js +16 -0
  1625. package/dist/settings/ui/index.js.map +1 -0
  1626. package/dist/settings/ui/registry.d.ts +102 -0
  1627. package/dist/settings/ui/registry.d.ts.map +1 -0
  1628. package/dist/settings/ui/registry.js +98 -0
  1629. package/dist/settings/ui/registry.js.map +1 -0
  1630. package/dist/sharing/headless/client.d.ts +181 -0
  1631. package/dist/sharing/headless/client.d.ts.map +1 -0
  1632. package/dist/sharing/headless/client.js +102 -0
  1633. package/dist/sharing/headless/client.js.map +1 -0
  1634. package/dist/sharing/headless/errors.d.ts +35 -0
  1635. package/dist/sharing/headless/errors.d.ts.map +1 -0
  1636. package/dist/sharing/headless/errors.js +93 -0
  1637. package/dist/sharing/headless/errors.js.map +1 -0
  1638. package/dist/sharing/headless/granteePickers.d.ts +127 -0
  1639. package/dist/sharing/headless/granteePickers.d.ts.map +1 -0
  1640. package/dist/sharing/headless/granteePickers.js +143 -0
  1641. package/dist/sharing/headless/granteePickers.js.map +1 -0
  1642. package/dist/sharing/headless/index.d.ts +22 -0
  1643. package/dist/sharing/headless/index.d.ts.map +1 -0
  1644. package/dist/sharing/headless/index.js +17 -0
  1645. package/dist/sharing/headless/index.js.map +1 -0
  1646. package/dist/sharing/headless/linkRenderers.d.ts +129 -0
  1647. package/dist/sharing/headless/linkRenderers.d.ts.map +1 -0
  1648. package/dist/sharing/headless/linkRenderers.js +143 -0
  1649. package/dist/sharing/headless/linkRenderers.js.map +1 -0
  1650. package/dist/sharing/headless/types.d.ts +63 -0
  1651. package/dist/sharing/headless/types.d.ts.map +1 -0
  1652. package/dist/sharing/headless/types.js +3 -0
  1653. package/dist/sharing/headless/types.js.map +1 -0
  1654. package/dist/sharing/headless/useGranteeKinds.d.ts +25 -0
  1655. package/dist/sharing/headless/useGranteeKinds.d.ts.map +1 -0
  1656. package/dist/sharing/headless/useGranteeKinds.js +29 -0
  1657. package/dist/sharing/headless/useGranteeKinds.js.map +1 -0
  1658. package/dist/sharing/headless/useGrants.d.ts +68 -0
  1659. package/dist/sharing/headless/useGrants.d.ts.map +1 -0
  1660. package/dist/sharing/headless/useGrants.js +61 -0
  1661. package/dist/sharing/headless/useGrants.js.map +1 -0
  1662. package/dist/sharing/headless/useGroupInvites.d.ts +36 -0
  1663. package/dist/sharing/headless/useGroupInvites.d.ts.map +1 -0
  1664. package/dist/sharing/headless/useGroupInvites.js +43 -0
  1665. package/dist/sharing/headless/useGroupInvites.js.map +1 -0
  1666. package/dist/sharing/headless/useGroupMembers.d.ts +22 -0
  1667. package/dist/sharing/headless/useGroupMembers.d.ts.map +1 -0
  1668. package/dist/sharing/headless/useGroupMembers.js +28 -0
  1669. package/dist/sharing/headless/useGroupMembers.js.map +1 -0
  1670. package/dist/sharing/headless/useGroupRoles.d.ts +25 -0
  1671. package/dist/sharing/headless/useGroupRoles.d.ts.map +1 -0
  1672. package/dist/sharing/headless/useGroupRoles.js +29 -0
  1673. package/dist/sharing/headless/useGroupRoles.js.map +1 -0
  1674. package/dist/sharing/headless/useGroups.d.ts +111 -0
  1675. package/dist/sharing/headless/useGroups.d.ts.map +1 -0
  1676. package/dist/sharing/headless/useGroups.js +79 -0
  1677. package/dist/sharing/headless/useGroups.js.map +1 -0
  1678. package/dist/sharing/headless/useLinkGrants.d.ts +43 -0
  1679. package/dist/sharing/headless/useLinkGrants.d.ts.map +1 -0
  1680. package/dist/sharing/headless/useLinkGrants.js +35 -0
  1681. package/dist/sharing/headless/useLinkGrants.js.map +1 -0
  1682. package/dist/sharing/headless/usePublicLink.d.ts +68 -0
  1683. package/dist/sharing/headless/usePublicLink.d.ts.map +1 -0
  1684. package/dist/sharing/headless/usePublicLink.js +145 -0
  1685. package/dist/sharing/headless/usePublicLink.js.map +1 -0
  1686. package/dist/sharing/headless/useSharedWithMe.d.ts +23 -0
  1687. package/dist/sharing/headless/useSharedWithMe.d.ts.map +1 -0
  1688. package/dist/sharing/headless/useSharedWithMe.js +26 -0
  1689. package/dist/sharing/headless/useSharedWithMe.js.map +1 -0
  1690. package/dist/sharing/internal/clipboard.d.ts +2 -0
  1691. package/dist/sharing/internal/clipboard.d.ts.map +1 -0
  1692. package/dist/sharing/internal/clipboard.js +34 -0
  1693. package/dist/sharing/internal/clipboard.js.map +1 -0
  1694. package/dist/sharing/internal/format.d.ts +8 -0
  1695. package/dist/sharing/internal/format.d.ts.map +1 -0
  1696. package/dist/sharing/internal/format.js +25 -0
  1697. package/dist/sharing/internal/format.js.map +1 -0
  1698. package/dist/sharing/internal/live-region.d.ts +6 -0
  1699. package/dist/sharing/internal/live-region.d.ts.map +1 -0
  1700. package/dist/sharing/internal/live-region.js +20 -0
  1701. package/dist/sharing/internal/live-region.js.map +1 -0
  1702. package/dist/sharing/internal/use-action-runner.d.ts +6 -0
  1703. package/dist/sharing/internal/use-action-runner.d.ts.map +1 -0
  1704. package/dist/sharing/internal/use-action-runner.js +28 -0
  1705. package/dist/sharing/internal/use-action-runner.js.map +1 -0
  1706. package/dist/sharing/internal/use-async-resource.d.ts +6 -0
  1707. package/dist/sharing/internal/use-async-resource.d.ts.map +1 -0
  1708. package/dist/sharing/internal/use-async-resource.js +52 -0
  1709. package/dist/sharing/internal/use-async-resource.js.map +1 -0
  1710. package/dist/sharing/internal/use-can.d.ts +3 -0
  1711. package/dist/sharing/internal/use-can.d.ts.map +1 -0
  1712. package/dist/sharing/internal/use-can.js +14 -0
  1713. package/dist/sharing/internal/use-can.js.map +1 -0
  1714. package/dist/sharing/internal/use-is-mounted.d.ts +2 -0
  1715. package/dist/sharing/internal/use-is-mounted.d.ts.map +1 -0
  1716. package/dist/sharing/internal/use-is-mounted.js +15 -0
  1717. package/dist/sharing/internal/use-is-mounted.js.map +1 -0
  1718. package/dist/sharing/internal/use-sharing-client.d.ts +3 -0
  1719. package/dist/sharing/internal/use-sharing-client.d.ts.map +1 -0
  1720. package/dist/sharing/internal/use-sharing-client.js +18 -0
  1721. package/dist/sharing/internal/use-sharing-client.js.map +1 -0
  1722. package/dist/sharing/ui/GroupDetailPage.d.ts +119 -0
  1723. package/dist/sharing/ui/GroupDetailPage.d.ts.map +1 -0
  1724. package/dist/sharing/ui/GroupDetailPage.js +254 -0
  1725. package/dist/sharing/ui/GroupDetailPage.js.map +1 -0
  1726. package/dist/sharing/ui/GroupsPage.d.ts +70 -0
  1727. package/dist/sharing/ui/GroupsPage.d.ts.map +1 -0
  1728. package/dist/sharing/ui/GroupsPage.js +91 -0
  1729. package/dist/sharing/ui/GroupsPage.js.map +1 -0
  1730. package/dist/sharing/ui/PendingGroupInvites.d.ts +56 -0
  1731. package/dist/sharing/ui/PendingGroupInvites.d.ts.map +1 -0
  1732. package/dist/sharing/ui/PendingGroupInvites.js +56 -0
  1733. package/dist/sharing/ui/PendingGroupInvites.js.map +1 -0
  1734. package/dist/sharing/ui/PublicLinkPage.d.ts +76 -0
  1735. package/dist/sharing/ui/PublicLinkPage.d.ts.map +1 -0
  1736. package/dist/sharing/ui/PublicLinkPage.js +102 -0
  1737. package/dist/sharing/ui/PublicLinkPage.js.map +1 -0
  1738. package/dist/sharing/ui/ShareDialog.d.ts +129 -0
  1739. package/dist/sharing/ui/ShareDialog.d.ts.map +1 -0
  1740. package/dist/sharing/ui/ShareDialog.js +242 -0
  1741. package/dist/sharing/ui/ShareDialog.js.map +1 -0
  1742. package/dist/sharing/ui/SharedWithMeList.d.ts +64 -0
  1743. package/dist/sharing/ui/SharedWithMeList.d.ts.map +1 -0
  1744. package/dist/sharing/ui/SharedWithMeList.js +58 -0
  1745. package/dist/sharing/ui/SharedWithMeList.js.map +1 -0
  1746. package/dist/sharing/ui/copy.d.ts +26 -0
  1747. package/dist/sharing/ui/copy.d.ts.map +1 -0
  1748. package/dist/sharing/ui/copy.js +30 -0
  1749. package/dist/sharing/ui/copy.js.map +1 -0
  1750. package/dist/sharing/ui/index.d.ts +14 -0
  1751. package/dist/sharing/ui/index.d.ts.map +1 -0
  1752. package/dist/sharing/ui/index.js +11 -0
  1753. package/dist/sharing/ui/index.js.map +1 -0
  1754. package/dist/sharing/ui/settings-page.d.ts +20 -0
  1755. package/dist/sharing/ui/settings-page.d.ts.map +1 -0
  1756. package/dist/sharing/ui/settings-page.js +32 -0
  1757. package/dist/sharing/ui/settings-page.js.map +1 -0
  1758. package/dist/shell/headless/index.d.ts +9 -0
  1759. package/dist/shell/headless/index.d.ts.map +1 -0
  1760. package/dist/shell/headless/index.js +8 -0
  1761. package/dist/shell/headless/index.js.map +1 -0
  1762. package/dist/shell/headless/navigation.d.ts +270 -0
  1763. package/dist/shell/headless/navigation.d.ts.map +1 -0
  1764. package/dist/shell/headless/navigation.js +138 -0
  1765. package/dist/shell/headless/navigation.js.map +1 -0
  1766. package/dist/shell/headless/providers.d.ts +40 -0
  1767. package/dist/shell/headless/providers.d.ts.map +1 -0
  1768. package/dist/shell/headless/providers.js +27 -0
  1769. package/dist/shell/headless/providers.js.map +1 -0
  1770. package/dist/shell/headless/rail-preference.d.ts +34 -0
  1771. package/dist/shell/headless/rail-preference.d.ts.map +1 -0
  1772. package/dist/shell/headless/rail-preference.js +67 -0
  1773. package/dist/shell/headless/rail-preference.js.map +1 -0
  1774. package/dist/shell/headless/theme.d.ts +190 -0
  1775. package/dist/shell/headless/theme.d.ts.map +1 -0
  1776. package/dist/shell/headless/theme.js +235 -0
  1777. package/dist/shell/headless/theme.js.map +1 -0
  1778. package/dist/shell/internal/use-is-mounted.d.ts +3 -0
  1779. package/dist/shell/internal/use-is-mounted.d.ts.map +1 -0
  1780. package/dist/shell/internal/use-is-mounted.js +13 -0
  1781. package/dist/shell/internal/use-is-mounted.js.map +1 -0
  1782. package/dist/shell/ui/ShellAppBar.d.ts +58 -0
  1783. package/dist/shell/ui/ShellAppBar.d.ts.map +1 -0
  1784. package/dist/shell/ui/ShellAppBar.js +81 -0
  1785. package/dist/shell/ui/ShellAppBar.js.map +1 -0
  1786. package/dist/shell/ui/ShellBottomNav.d.ts +31 -0
  1787. package/dist/shell/ui/ShellBottomNav.d.ts.map +1 -0
  1788. package/dist/shell/ui/ShellBottomNav.js +144 -0
  1789. package/dist/shell/ui/ShellBottomNav.js.map +1 -0
  1790. package/dist/shell/ui/ShellLayout.d.ts +49 -0
  1791. package/dist/shell/ui/ShellLayout.d.ts.map +1 -0
  1792. package/dist/shell/ui/ShellLayout.js +95 -0
  1793. package/dist/shell/ui/ShellLayout.js.map +1 -0
  1794. package/dist/shell/ui/ShellNavigationRail.d.ts +34 -0
  1795. package/dist/shell/ui/ShellNavigationRail.d.ts.map +1 -0
  1796. package/dist/shell/ui/ShellNavigationRail.js +195 -0
  1797. package/dist/shell/ui/ShellNavigationRail.js.map +1 -0
  1798. package/dist/shell/ui/ShellThemeProvider.d.ts +64 -0
  1799. package/dist/shell/ui/ShellThemeProvider.d.ts.map +1 -0
  1800. package/dist/shell/ui/ShellThemeProvider.js +105 -0
  1801. package/dist/shell/ui/ShellThemeProvider.js.map +1 -0
  1802. package/dist/shell/ui/ShellUserMenu.d.ts +36 -0
  1803. package/dist/shell/ui/ShellUserMenu.d.ts.map +1 -0
  1804. package/dist/shell/ui/ShellUserMenu.js +76 -0
  1805. package/dist/shell/ui/ShellUserMenu.js.map +1 -0
  1806. package/dist/shell/ui/destination-parts.d.ts +48 -0
  1807. package/dist/shell/ui/destination-parts.d.ts.map +1 -0
  1808. package/dist/shell/ui/destination-parts.js +54 -0
  1809. package/dist/shell/ui/destination-parts.js.map +1 -0
  1810. package/dist/shell/ui/index.d.ts +13 -0
  1811. package/dist/shell/ui/index.d.ts.map +1 -0
  1812. package/dist/shell/ui/index.js +10 -0
  1813. package/dist/shell/ui/index.js.map +1 -0
  1814. package/dist/storage/headless/index.d.ts +7 -0
  1815. package/dist/storage/headless/index.d.ts.map +1 -0
  1816. package/dist/storage/headless/index.js +9 -0
  1817. package/dist/storage/headless/index.js.map +1 -0
  1818. package/dist/storage/headless/objects-client.d.ts +112 -0
  1819. package/dist/storage/headless/objects-client.d.ts.map +1 -0
  1820. package/dist/storage/headless/objects-client.js +93 -0
  1821. package/dist/storage/headless/objects-client.js.map +1 -0
  1822. package/dist/storage/headless/storage-config.d.ts +454 -0
  1823. package/dist/storage/headless/storage-config.d.ts.map +1 -0
  1824. package/dist/storage/headless/storage-config.js +143 -0
  1825. package/dist/storage/headless/storage-config.js.map +1 -0
  1826. package/dist/storage/headless/use-storage-config.d.ts +126 -0
  1827. package/dist/storage/headless/use-storage-config.d.ts.map +1 -0
  1828. package/dist/storage/headless/use-storage-config.js +248 -0
  1829. package/dist/storage/headless/use-storage-config.js.map +1 -0
  1830. package/dist/storage/index.d.ts +3 -0
  1831. package/dist/storage/index.d.ts.map +1 -0
  1832. package/dist/storage/index.js +8 -0
  1833. package/dist/storage/index.js.map +1 -0
  1834. package/dist/storage/ui/S3FamilyDriverPanel.d.ts +67 -0
  1835. package/dist/storage/ui/S3FamilyDriverPanel.d.ts.map +1 -0
  1836. package/dist/storage/ui/S3FamilyDriverPanel.js +195 -0
  1837. package/dist/storage/ui/S3FamilyDriverPanel.js.map +1 -0
  1838. package/dist/storage/ui/StorageConfigPage.d.ts +95 -0
  1839. package/dist/storage/ui/StorageConfigPage.d.ts.map +1 -0
  1840. package/dist/storage/ui/StorageConfigPage.js +404 -0
  1841. package/dist/storage/ui/StorageConfigPage.js.map +1 -0
  1842. package/dist/storage/ui/StorageGenericDriverPanel.d.ts +42 -0
  1843. package/dist/storage/ui/StorageGenericDriverPanel.d.ts.map +1 -0
  1844. package/dist/storage/ui/StorageGenericDriverPanel.js +47 -0
  1845. package/dist/storage/ui/StorageGenericDriverPanel.js.map +1 -0
  1846. package/dist/storage/ui/StorageSwitchConfirmDialog.d.ts +55 -0
  1847. package/dist/storage/ui/StorageSwitchConfirmDialog.d.ts.map +1 -0
  1848. package/dist/storage/ui/StorageSwitchConfirmDialog.js +64 -0
  1849. package/dist/storage/ui/StorageSwitchConfirmDialog.js.map +1 -0
  1850. package/dist/storage/ui/builtinStorageDriverPanels.d.ts +5 -0
  1851. package/dist/storage/ui/builtinStorageDriverPanels.d.ts.map +1 -0
  1852. package/dist/storage/ui/builtinStorageDriverPanels.js +18 -0
  1853. package/dist/storage/ui/builtinStorageDriverPanels.js.map +1 -0
  1854. package/dist/storage/ui/driver-panels.d.ts +4 -0
  1855. package/dist/storage/ui/driver-panels.d.ts.map +1 -0
  1856. package/dist/storage/ui/driver-panels.js +7 -0
  1857. package/dist/storage/ui/driver-panels.js.map +1 -0
  1858. package/dist/storage/ui/index.d.ts +7 -0
  1859. package/dist/storage/ui/index.d.ts.map +1 -0
  1860. package/dist/storage/ui/index.js +11 -0
  1861. package/dist/storage/ui/index.js.map +1 -0
  1862. package/dist/storage/ui/storageDriverPanelRegistry.d.ts +107 -0
  1863. package/dist/storage/ui/storageDriverPanelRegistry.d.ts.map +1 -0
  1864. package/dist/storage/ui/storageDriverPanelRegistry.js +91 -0
  1865. package/dist/storage/ui/storageDriverPanelRegistry.js.map +1 -0
  1866. package/dist/telemetry/headless/context/metricUnitFormats.d.ts +28 -0
  1867. package/dist/telemetry/headless/context/metricUnitFormats.d.ts.map +1 -0
  1868. package/dist/telemetry/headless/context/metricUnitFormats.js +44 -0
  1869. package/dist/telemetry/headless/context/metricUnitFormats.js.map +1 -0
  1870. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +84 -2
  1871. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts.map +1 -1
  1872. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js +24 -0
  1873. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js.map +1 -1
  1874. package/dist/telemetry/headless/hooks/useTelemetryStore.d.ts +35 -0
  1875. package/dist/telemetry/headless/hooks/useTelemetryStore.d.ts.map +1 -0
  1876. package/dist/telemetry/headless/hooks/useTelemetryStore.js +84 -0
  1877. package/dist/telemetry/headless/hooks/useTelemetryStore.js.map +1 -0
  1878. package/dist/telemetry/headless/index.d.ts +9 -1
  1879. package/dist/telemetry/headless/index.d.ts.map +1 -1
  1880. package/dist/telemetry/headless/index.js +7 -1
  1881. package/dist/telemetry/headless/index.js.map +1 -1
  1882. package/dist/telemetry/headless/lib/dashboardState.d.ts +14 -1
  1883. package/dist/telemetry/headless/lib/dashboardState.d.ts.map +1 -1
  1884. package/dist/telemetry/headless/lib/dashboardState.js.map +1 -1
  1885. package/dist/telemetry/headless/lib/format.d.ts +37 -6
  1886. package/dist/telemetry/headless/lib/format.d.ts.map +1 -1
  1887. package/dist/telemetry/headless/lib/format.js +77 -3
  1888. package/dist/telemetry/headless/lib/format.js.map +1 -1
  1889. package/dist/telemetry/headless/lib/metrics/presentation.d.ts +137 -0
  1890. package/dist/telemetry/headless/lib/metrics/presentation.d.ts.map +1 -0
  1891. package/dist/telemetry/headless/lib/metrics/presentation.js +185 -0
  1892. package/dist/telemetry/headless/lib/metrics/presentation.js.map +1 -0
  1893. package/dist/telemetry/headless/services/client.d.ts +11 -2
  1894. package/dist/telemetry/headless/services/client.d.ts.map +1 -1
  1895. package/dist/telemetry/headless/services/client.js +5 -0
  1896. package/dist/telemetry/headless/services/client.js.map +1 -1
  1897. package/dist/telemetry/headless/services/telemetry.d.ts +22 -1
  1898. package/dist/telemetry/headless/services/telemetry.d.ts.map +1 -1
  1899. package/dist/telemetry/headless/services/telemetry.js +0 -12
  1900. package/dist/telemetry/headless/services/telemetry.js.map +1 -1
  1901. package/dist/telemetry/headless/services/telemetryDashboard.d.ts +28 -1
  1902. package/dist/telemetry/headless/services/telemetryDashboard.d.ts.map +1 -1
  1903. package/dist/telemetry/headless/services/telemetryDashboard.js.map +1 -1
  1904. package/dist/telemetry/ui/components/TelemetryStoreSection.d.ts +24 -0
  1905. package/dist/telemetry/ui/components/TelemetryStoreSection.d.ts.map +1 -0
  1906. package/dist/telemetry/ui/components/TelemetryStoreSection.js +56 -0
  1907. package/dist/telemetry/ui/components/TelemetryStoreSection.js.map +1 -0
  1908. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts +5 -0
  1909. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -1
  1910. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -1
  1911. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts +9 -0
  1912. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts.map +1 -1
  1913. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js.map +1 -1
  1914. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts +3 -1
  1915. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -1
  1916. package/dist/telemetry/ui/components/dashboard/KpiTiles.js +11 -5
  1917. package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -1
  1918. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +15 -36
  1919. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -1
  1920. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +92 -163
  1921. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -1
  1922. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -1
  1923. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +4 -2
  1924. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -1
  1925. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -1
  1926. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +16 -5
  1927. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -1
  1928. package/dist/telemetry/ui/components/dashboard/panels/builtinPanelViews.d.ts +12 -0
  1929. package/dist/telemetry/ui/components/dashboard/panels/builtinPanelViews.d.ts.map +1 -0
  1930. package/dist/telemetry/ui/components/dashboard/panels/builtinPanelViews.js +59 -0
  1931. package/dist/telemetry/ui/components/dashboard/panels/builtinPanelViews.js.map +1 -0
  1932. package/dist/telemetry/ui/components/dashboard/panels/dashboardPanelViews.d.ts +155 -0
  1933. package/dist/telemetry/ui/components/dashboard/panels/dashboardPanelViews.d.ts.map +1 -0
  1934. package/dist/telemetry/ui/components/dashboard/panels/dashboardPanelViews.js +74 -0
  1935. package/dist/telemetry/ui/components/dashboard/panels/dashboardPanelViews.js.map +1 -0
  1936. package/dist/telemetry/ui/dashboard-page.d.ts +1 -0
  1937. package/dist/telemetry/ui/dashboard-page.d.ts.map +1 -1
  1938. package/dist/telemetry/ui/dashboard-panels.d.ts +5 -0
  1939. package/dist/telemetry/ui/dashboard-panels.d.ts.map +1 -0
  1940. package/dist/telemetry/ui/dashboard-panels.js +8 -0
  1941. package/dist/telemetry/ui/dashboard-panels.js.map +1 -0
  1942. package/dist/telemetry/ui/explorer-page.d.ts +1 -0
  1943. package/dist/telemetry/ui/explorer-page.d.ts.map +1 -1
  1944. package/dist/telemetry/ui/index.d.ts +5 -0
  1945. package/dist/telemetry/ui/index.d.ts.map +1 -1
  1946. package/dist/telemetry/ui/index.js +3 -0
  1947. package/dist/telemetry/ui/index.js.map +1 -1
  1948. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts +23 -1
  1949. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts.map +1 -1
  1950. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js +135 -52
  1951. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js.map +1 -1
  1952. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts +30 -1
  1953. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts.map +1 -1
  1954. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js +26 -8
  1955. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js.map +1 -1
  1956. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts +23 -1
  1957. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -1
  1958. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +40 -11
  1959. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -1
  1960. package/dist/telemetry/ui/settings-page.d.ts +1 -0
  1961. package/dist/telemetry/ui/settings-page.d.ts.map +1 -1
  1962. package/dist/testing/conformance.d.ts +335 -0
  1963. package/dist/testing/conformance.d.ts.map +1 -0
  1964. package/dist/testing/conformance.js +150 -0
  1965. package/dist/testing/conformance.js.map +1 -0
  1966. package/dist/testing/index.d.ts +2 -0
  1967. package/dist/testing/index.d.ts.map +1 -1
  1968. package/dist/testing/index.js +3 -1
  1969. package/dist/testing/index.js.map +1 -1
  1970. package/dist/testing/test-platform-host.d.ts +9 -1
  1971. package/dist/testing/test-platform-host.d.ts.map +1 -1
  1972. package/dist/testing/test-platform-host.js +19 -5
  1973. package/dist/testing/test-platform-host.js.map +1 -1
  1974. package/dist/user-data/headless/client.d.ts +63 -0
  1975. package/dist/user-data/headless/client.d.ts.map +1 -0
  1976. package/dist/user-data/headless/client.js +44 -0
  1977. package/dist/user-data/headless/client.js.map +1 -0
  1978. package/dist/user-data/headless/index.d.ts +7 -0
  1979. package/dist/user-data/headless/index.d.ts.map +1 -0
  1980. package/dist/user-data/headless/index.js +7 -0
  1981. package/dist/user-data/headless/index.js.map +1 -0
  1982. package/dist/user-data/headless/sections.d.ts +54 -0
  1983. package/dist/user-data/headless/sections.d.ts.map +1 -0
  1984. package/dist/user-data/headless/sections.js +43 -0
  1985. package/dist/user-data/headless/sections.js.map +1 -0
  1986. package/dist/user-data/headless/use-destructive-job.d.ts +84 -0
  1987. package/dist/user-data/headless/use-destructive-job.d.ts.map +1 -0
  1988. package/dist/user-data/headless/use-destructive-job.js +110 -0
  1989. package/dist/user-data/headless/use-destructive-job.js.map +1 -0
  1990. package/dist/user-data/ui/FactoryResetPage.d.ts +66 -0
  1991. package/dist/user-data/ui/FactoryResetPage.d.ts.map +1 -0
  1992. package/dist/user-data/ui/FactoryResetPage.js +82 -0
  1993. package/dist/user-data/ui/FactoryResetPage.js.map +1 -0
  1994. package/dist/user-data/ui/OffboardOrganizationButton.d.ts +38 -0
  1995. package/dist/user-data/ui/OffboardOrganizationButton.d.ts.map +1 -0
  1996. package/dist/user-data/ui/OffboardOrganizationButton.js +27 -0
  1997. package/dist/user-data/ui/OffboardOrganizationButton.js.map +1 -0
  1998. package/dist/user-data/ui/OrgOffboardingDialog.d.ts +43 -0
  1999. package/dist/user-data/ui/OrgOffboardingDialog.d.ts.map +1 -0
  2000. package/dist/user-data/ui/OrgOffboardingDialog.js +56 -0
  2001. package/dist/user-data/ui/OrgOffboardingDialog.js.map +1 -0
  2002. package/dist/user-data/ui/TypedConfirmDialog.d.ts +62 -0
  2003. package/dist/user-data/ui/TypedConfirmDialog.d.ts.map +1 -0
  2004. package/dist/user-data/ui/TypedConfirmDialog.js +36 -0
  2005. package/dist/user-data/ui/TypedConfirmDialog.js.map +1 -0
  2006. package/dist/user-data/ui/UserDangerZonePage.d.ts +66 -0
  2007. package/dist/user-data/ui/UserDangerZonePage.d.ts.map +1 -0
  2008. package/dist/user-data/ui/UserDangerZonePage.js +102 -0
  2009. package/dist/user-data/ui/UserDangerZonePage.js.map +1 -0
  2010. package/dist/user-data/ui/copy.d.ts +15 -0
  2011. package/dist/user-data/ui/copy.d.ts.map +1 -0
  2012. package/dist/user-data/ui/copy.js +34 -0
  2013. package/dist/user-data/ui/copy.js.map +1 -0
  2014. package/dist/user-data/ui/index.d.ts +13 -0
  2015. package/dist/user-data/ui/index.d.ts.map +1 -0
  2016. package/dist/user-data/ui/index.js +12 -0
  2017. package/dist/user-data/ui/index.js.map +1 -0
  2018. package/dist/user-data/ui/settings-pages.d.ts +31 -0
  2019. package/dist/user-data/ui/settings-pages.d.ts.map +1 -0
  2020. package/dist/user-data/ui/settings-pages.js +52 -0
  2021. package/dist/user-data/ui/settings-pages.js.map +1 -0
  2022. package/package.json +229 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,275 @@
1
1
  # @marinoscar/platform-web
2
2
 
3
+ ## 0.1.0-next.5
4
+
5
+ ### Patch Changes
6
+
7
+ - @marinoscar/platform-contract@0.1.0-next.5
8
+
9
+ ## 0.1.0-next.4
10
+
11
+ ### Minor Changes
12
+
13
+ - a426fd8: Open the AI capability and operation vocabularies, add a custom-operation port, richer transcription results and per-feature usage (PP-14.17). API: `registerAiCapability` and `registerAiOperation` (the 14 built-in capabilities and the usage operations register through them; `AiCapability` and `AiUsageOperation` become `Builtin | (string & {})`; `AI_CAPABILITIES` stays as a deprecated alias of `BUILTIN_AI_CAPABILITIES`); `AiProviderAdapter.operations` and `AiService.forUser(...).run(operationId, input)` run an app's operation through the same gate pipeline as a built-in port (kill switch, schema-validated input and output, model and capability gates, key policy, rate limits, one usage row, one span), never logging or recording its input or output and refusing an output or an error that carries the key; `AiTranscriptionResult.extras` (speaker-labelled segments, language and any JSON, at most 64 KiB, dropped when malformed) reaches the run output, and a transcription's `providerOptions` is bounded to 4 KiB and never logged; `GET /api/admin/ai/capabilities` (`ai_config:read`) lists the vocabularies; the usage reports take a `feature` filter and group by `feature` and `operation`; `AiModule.forRoot({ pricing })` binds the `AI_PRICING` port and the admin and organization reports then carry `priced` and a `cost` per bucket. The provider conformance kit gains `operations.*` scenarios, `FakeAiProvider` gains `operations` and `transcriptionExtras`, and `ai-secret-egress` covers the new route and fields. Contract: `AI_CAPABILITY_ID_PATTERN`, `AI_OPERATION_ID_PATTERN`, `AI_FEATURE_ID_PATTERN` and the capability, operation and cost schemas. Web: `registerAiPlaygroundMode` (subpath `/ai/ui/playground-modes`; the six built-in modes register through it, DOM unchanged; the fixed `AI_PLAYGROUND_MODES` tuple and `AiModePlaceholder` are removed), `useAiCapabilities` and `registerAiCapabilityLabel` (the Models page filter and the override dialog list an app's capabilities), Feature and Operation breakdowns, a Cost tile and column on a priced usage report, and speaker-labelled transcripts. DB: migration `0035_ai_usage_feature` adds the nullable `feature` column to `ai_usage_events` and `ai_runs` and the `(org_id, feature, created_at)` index on usage (both tables are row-level-security tables, so the migration runs in the `app.rls_bypass` transaction form); apply it with `npm run db:sync`, then `prisma:migrate`. Back-compat: every existing route, shape and id is unchanged; rows written before the column have no feature. The OpenAPI document shows a pattern where the models list's `capability` query and a provider's `supportedCapabilities` showed an enum.
14
+ - b2df59a: Let an app or package add an AI provider (PP-14.6, #924): `registerAiProvider(AiProviderDefinition)` of `@marinoscar/platform-api/ai`, backed by the `ai-provider` pluggable kind. A definition carries the provider's id, label, Nest module, zod `settingsSchema` and `defaults` for its non-secret settings, `requiresKey`, `requiresBaseUrl`, `help` and `sdkPackages`; the five built-ins register through the same function. `AiModule.forRoot({ providers })` takes any registered id (default: every registered definition) and imports each definition's `module`; the closed `AiProviderModuleId` union (now `string`) and `PROVIDER_MODULES` are gone.
15
+
16
+ `ai.providers` is a record keyed by provider id (`aiProviderIdSchema`, `aiProviderSlotSchema`; `BUILTIN_AI_PROVIDER_IDS`, with `AI_PROVIDER_IDS` kept as a deprecated alias). The namespace reads, merges and validates each slot with its provider's `settingsSchema`: an unregistered id is `400 AI_UNKNOWN_PROVIDER` on write and dropped with one warning on read, so removing a provider never bricks the row. The stored shape of the five built-ins is unchanged. `AI_PROVIDER_SETTINGS_FIELDS` and `PROVIDERS_REQUIRING_BASE_URL` are replaced by the definition; `providerRequiresKey(slot, providerId?)` takes the provider id.
17
+
18
+ `GET /api/admin/ai/config` gains `descriptors` (one `PluggableDescriptor` per registered provider) and, per provider, `settings`, `requiresBaseUrl` and `help`; `settingsFields` is now `string[]`. `createAiRuntimeHarness` takes `extraProviders`, `extraAdapters` and `extraProviderSettings`; `ai-no-sdk-leak` takes `providerDirs` and bans the registered definitions' `sdkPackages` outside them; the provider conformance kit checks the provider id pattern (no underscore). `describeConfigField` unwraps `default` and `prefault`.
19
+
20
+ Web: `registerAiProviderCard(id, Component)` (`@marinoscar/platform-web/ai/ui`, and the new `/ai/ui/provider-cards` subpath) chooses the component that draws a provider on the admin AI page. The five built-ins register their bespoke cards through it (markup unchanged); any other provider is drawn by `AiGenericProviderCard` from the descriptor the API serves: a switch, `PluggableConfigForm` for its settings and a write-only key with the deployment-key actions, saved as `{ enabled, ...settings }`. The endpoint rule and help text come from the API (`requiresBaseUrl`, `help`) instead of a switch on the provider id; `AiAdminProvider` gained `settings`, `requiresBaseUrl` and `help`, `AiAdminConfig` gained `descriptors`, and `AiProviderSettingsField` is now `string`.
21
+
22
+ - 3bc72e9: Fix the admin AI page failing to save once an app registers an AI adapter under a new provider id (#921). `GET /api/admin/ai/config` marks a provider that has no settings slot `configurable: false` (a new optional field of the admin provider shape, absent otherwise); `PUT /api/admin/ai/config` ignores such an entry when it is submitted as listed (disabled, no settings) and still answers `400 AI_UNKNOWN_PROVIDER` for any other payload for it and for an id the registry does not know. `AiConfigPage` shows these providers as "Registered, not configurable yet" and does not submit them. The page is unchanged when every provider has a slot.
23
+ - 823ec07: Add the AI slice: `@marinoscar/platform-api/ai` (`AiModule.forRoot` with the `AI_SYSTEM_PRISMA`, `AI_OBJECT_STORE` and `AI_METRICS` host ports, `AiService.forUser(userId, { orgId, feature })` and the gate pipeline, the OpenAI, Anthropic, Gemini, Azure OpenAI and OpenAI-compatible adapters with their SDKs confined to `ai/providers/`, the model catalogue, the `ai` settings namespaces with a tighten-only org layer, the organization key tier (`/api/admin/ai/org-keys`, `org_ai_config:read`/`write`) and `deploymentKeyServesOrgs`, per-organization daily caps (`limits.perOrg`) and usage (`/api/admin/ai/org-usage`, `groupBy=org`), `registerAiFeature` and `GET /api/ai/features`, `AI_TARGET_RESOLVER`, `UserAiKeysService.importKey`, the `ai-outputs/` key prefix registered with the storage slice, and at `/ai/testing` the fake provider, runtime harness, adapter conformance kit and `runOrchestrationBoundarySuite`), `@marinoscar/platform-contract/ai` (the `ai` namespace schemas, `orgAiSettingsSchema`, `tightenAiPolicy`, the org-key and feature shapes) and `@marinoscar/platform-web/ai` (`useOrgAiKeys`, `useOrgAiPolicy`, `OrgAiKeysPage`).
24
+ - 6a7af76: Add the email slice: `@marinoscar/platform-api/email` (`EmailModule.forRoot`, the SES and SMTP transports with inline attachments, the `email` settings row on `SystemSettingsRowStore`, the template registry with `EmailTemplateDataMap` augmentation and explicit overrides, the layout theme and brand-mark slot, the safe-HTML helpers, the `email` conformance suite at `/email/testing`), `@marinoscar/platform-contract/email` (the admin route DTOs) and `@marinoscar/platform-web/email` (`useEmailSettings`, `EmailSettingsPage`); `SystemSettingsRowStore.write` accepts `auditMeta`, and `PlatformViewer` an optional `email`.
25
+ - deeb8b5: Add the notifications slice: `@marinoscar/platform-api/notifications` (`NotificationsModule.forRoot`, the event, channel and template registries with open channel ids and `registerNotificationChannel`, `NotificationsService` with org-aware policy, the `notifications` system namespace with an org layer that only tightens, runtime Web Push (VAPID) configuration on `SystemSettingsRowStore`, broadcasts with `targetOrgId` and the org-scoped `org_broadcasts:*` pair, the SSE stream on `NOTIFICATIONS_EVENT_BUS`, the email channel forwarding template attachments, the `notifications` conformance suite at `/notifications/testing`), `@Auth({ anyPermissions })` in the identity slice, a `SystemSettingsRowStore` row key that admits camelCase (`webPush`), `@marinoscar/platform-contract/notifications` (the wire shapes, `BROADCAST_CHUNK_SIZE`), `@marinoscar/platform-web/notifications/{headless,ui}` (`configureNotificationsWeb`, `NotificationProvider`, `usePushSubscriptionSync`, `NotificationBell` with slots, the banner and the four pages, the service-worker helpers `registerNotificationServiceWorkerHandlers`, `handlePushEvent`, `handleNotificationClick`, `handlePushSubscriptionChange`), any-of card permissions in the settings hub (`SettingsCardDef.permission: string | readonly string[]`, `cardPermissionGranted`), and the platform migration `0032_add_broadcast_target_org` (`notification_broadcasts.target_org_id`).
26
+ - ca591e3: Every module-augmentation target is declared in the entry module its public subpath resolves to, so an app's `declare module '@marinoscar/platform-*/<subpath>'` merges with the slices' own augmentations in any file order (#865): `EmailTemplateDataMap` (`/email`), `IdentityPermissionIds` and `IdentityRoleIds` (`/identity`), `NotificationChannelIds` (`/notifications`), `AppMetricKeys` (`/otel-core`), `MetricGroupIds` (`/telemetry`), `PlatformConformanceSuiteOptions` (`/testing`) and `SettingsFeatureRegistry` (`@marinoscar/platform-web/settings/headless`). The names and import paths an app uses are unchanged, except that `@marinoscar/platform-web/settings/ui` no longer re-exports `SettingsFeatureRegistry`: import and augment it from `/settings/headless`.
27
+ - 3420fbc: Conformance suites for the remaining invariants. `runPlatformConformance` accepts a suite that registers its own tree (`ConformanceAppSuite`) and an opt-out with a reason (`{ skip: 'reason' }`; an empty reason throws) and prints a summary of suites run and skipped. New suites: `on-event-no-io` (`@marinoscar/platform-api/jobs/testing`) and `ai-kill-switch`, `ai-rbac-matrix`, `ai-secret-egress`, `ai-key-policy`, `ai-jobs-server-only`, `ai-no-sdk-leak` and `ai-orchestration-boundary` (`@marinoscar/platform-api/ai/testing`, with `AiConformanceFixture`). `supertest` becomes an optional peer. `@marinoscar/platform-web/testing` gains `runPlatformWebConformance`, and `@marinoscar/platform-web/settings/testing` registers the settings registry suites.
28
+ - f80189d: Add the pluggable-kind primitive (PP-14.5, #923). `@marinoscar/platform-api/core` gains `definePluggableKind` (one registry of implementations per kind, each with its own zod settings schema, defaults, declared secrets and `build`; settings stored as a record keyed by implementation id with `parseSettings`, `mergeSettingsRecord` that rejects unknown ids on write and `readSettingsRecord` that drops them with one warning on read; `describe` and `describeAll` returning the descriptor a generated form renders, with presence flags for secrets), `PluggableUnknownError`, `PluggableSettingsError` and `describeConfigFields` (the organization settings field description, generalised, adding `label` and `help`). The new `@marinoscar/platform-api/core/testing` entry exports `describePluggableKindConformance`. `@marinoscar/platform-contract/settings` gains `configFieldSchema` (with a write-only `secret` kind), `pluggableDescriptorSchema`, `CONFIG_FIELD_KINDS` and `PLUGGABLE_ID_PATTERN`. `orgSettingsFieldSchema` and the organization settings response are unchanged. `@marinoscar/platform-web/settings/ui` gains `PluggableConfigForm` (the generated configuration form of one implementation: Switch, select, text and number inputs, a note for `other`, a write-only `SecretField` for `secret`, optional `slots`) and `@marinoscar/platform-web/settings/headless` gains `usePluggableConfigForm` (`value`, `secrets`, `dirty`, `setField`, `setSecret`, `reset`, `payload()` which omits untouched secrets). The settings web slice now depends on the credentials slice.
29
+ - 3e0c7bb: Open the access-reason, principal/credential-kind and error-code vocabularies, and let an extension package declare a web host port (PP-14.14, #932).
30
+
31
+ `@marinoscar/platform-api/core`: `registerSystemAccessReason({ id, description })` and `systemAccessReasonRegistry`; the platform's nine reasons register through it. `SystemAccessReason` is `BuiltinSystemAccessReason | (string & {})` and the bypass entry points (`forSystem`, `runAsSystem`, `systemScopeExtension`) check the registry, so an unregistered reason still throws `ScopedAccessError`. Opening which reason does not open who may bypass: the system-client injection allowlist is unchanged. `SYSTEM_ACCESS_REASONS` stays as a deprecated alias of `BUILTIN_SYSTEM_ACCESS_REASONS`.
32
+
33
+ `PrincipalKind` and `CredentialKind` are `keyof` the augmentable `PrincipalKinds` and `CredentialKinds` interfaces (unaugmented, exactly the old unions; the closed originals are `BuiltinPrincipalKind` and `BuiltinCredentialKind`), with `registerPrincipalKind`, `registerCredentialKind`, `requireCredentialKind` and `UnknownCredentialKindError`. Unknown means denied: `toPrincipal` of the identity slice answers 401 for a credential kind that is not registered, or whose principal kind has no factory there, and a custom kind never becomes a node principal.
34
+
35
+ `registerErrorCode({ code, status, description })` and `errorCodeRegistry` (the ten status-derived codes plus `PAYLOAD_TOO_LARGE` register through it). `HttpExceptionFilter` passes a thrown payload's `code` through only when it is registered for the exception's own status; every other response is unchanged. `ErrorMapper` and `PlatformHostCoreModule.forRoot({ errorMappers })` map a foreign error (a Prisma `P2002`) to an `HttpException`; mappers see only values that are not already an `HttpException`, and the foreign error's message is never copied into the response. OpenAPI: `ErrorDto.code` changes from a closed enum to a string whose `examples` list every registered code (the only difference in `openapi.json`). `describeVocabularyConformance` (`@marinoscar/platform-api/core/testing`) is the kit.
36
+
37
+ `@marinoscar/platform-web/core`: `PlatformWebHost.extensions` (an optional record of ports keyed by string or symbol), `usePlatformPort<T>(key)` (throws, naming the key, when the app did not supply it) and `useOptionalPlatformPort<T>(key)`; `createTestPlatformHost({ extensions })`.
38
+
39
+ Migration: none for an app that registers nothing. Code that relied on `toPrincipal` treating an unregistered credential kind as a user now gets a 401.
40
+
41
+ - 115705f: Add the credentials slice (#735). platform-api: the `./credentials` subpath with `CredentialsModule`/`CredentialsService` (the deployment store), `UserCredentialsModule`/`UserCredentialsService` (a user's own keys) and the new `OrgCredentialsModule`/`OrgCredentialsService` (an organization's keys in `org_credentials`, under row-level security, encrypted under `org:<orgId>:<purpose>`), `UserCredentialResolver.resolve(userId, purpose, name?, { orgId })` (user, then the purpose's `fallback` of org and system, then none), the purpose registries `registerCredentialPurpose` and `registerUserCredentialPurpose` (writes to an undeclared purpose throw), `CREDENTIALS_MODEL_OWNERSHIP`/`CREDENTIALS_USER_OWNED_MODELS`, and `./credentials/testing` with the `credentials` conformance suite and `withCredentialPurposes`; core gains `orgCredentialPurpose` and `ORG_CREDENTIAL_DOMAIN_PREFIX`; telemetry exports `TELEMETRY_GREPTIME_CREDENTIAL_PURPOSE`. platform-web: `./credentials/headless` (`savedSecretHelperText`, `secretForSubmit`) and `./credentials/ui` (`SecretField`). platform-contract: `./credentials` (`credentialInfoSchema`, `userCredentialInfoSchema`, `orgCredentialInfoSchema`, `CREDENTIAL_TIERS`, `CREDENTIAL_SOURCES`, `SECRET_BEARING_KEYS`).
42
+ - d1d1258: The database backup slice has three new extension points (PP-14.12, #930).
43
+
44
+ Backup target. Where an archive is written is now a port: `DB_BACKUP_TARGET` (a `BackupTarget`: `id`, `label`, `openWrite(key, meta)` returning `{ stream, done }`, `openRead`, `delete`, an optional `list`, `isConfigured()` and `describe()`), bound with `DbBackupModule.forRoot({ target, mirrorTargets })`. The default adapter (`StorageBackupTarget`) wraps the deployment's `STORAGE_PROVIDER`, so a deployment that binds nothing behaves exactly as before. The archive is still never buffered: `pg_dump` streams through the checksum meter into the sink, and the runner awaits both the sink's `done` and the dump's exit code. The `database-backups/` key prefix rule stays in the server. After the primary archive is written and verified, the same `db.backup.run` job copies it to every mirror target (read back from the primary, written through the mirror's sink, read back from the mirror and compared by sha256, deleted on a mismatch); a mirror failure never fails the run. Each copy is recorded as an `audit_events` row (`db_backup.mirror.completed` / `db_backup.mirror.failed`), so no migration is needed, and the new `backup.mirrors` Doctor check warns when a mirror's latest copy failed or has never run. Retention deletes the same key from every mirror. `describeBackupTargetConformance` (`@marinoscar/platform-api/db-backup/testing`) is the kit every target runs: streaming without buffering, a failing sink rejects `done`, read-back equals write, delete is idempotent, an unconfigured target says so.
45
+
46
+ Schedule policy. `frequency` gains `'cron'` with a `cron` field (five fields: `*`, numbers, ranges, steps and lists; month `*`; at most one of day-of-month and day-of-week restricted; at least one hour between runs, enforced when the setting is saved and when the schedule is read), evaluated in the policy's timezone with the same DST handling as the other frequencies. `retention` is now `{ count?, maxAgeDays? }`; `retentionCount` stays as an alias that is read and written in step with `retention.count`, so existing settings rows, API clients and the web page keep working. Retention deletes a completed archive when it is beyond either bound, and never the newest completed one.
47
+
48
+ Restore gates. `registerRestoreGate({ id, label, kind, check })` adds a pre-flight gate from an app or a package at import time; the eight built-in gates register through the same function (`BUILTIN_RESTORE_GATE_IDS`). Gates run in registration order (built-ins first), fail closed (a gate that throws or exceeds 10 seconds is a block), and an app gate (`kind: 'app'`) that fails is a hard block that cannot be overridden. `describeRestoreGateConformance` is the kit every gate runs: it answers within the bound, writes nothing to its context, is repeatable, and evaluates to a pre-flight row. The pre-flight stays read-only: no gate creates, drops or renames anything, and the cluster admin connection stays outside the Prisma pool.
49
+
50
+ Events. `db_backup.run.completed` and `db_backup.restore.completed`, each with `{ runId, status, targetId, sizeBytes, durationMs }`, are emitted on the event bus after the run settles and outside any transaction.
51
+
52
+ Invariants unchanged: every dump and restore still carries both `--enable-row-security` and `PGOPTIONS=-c app.rls_bypass=on` (`buildPgDumpArgs` and `buildPgRestoreArgs` are untouched), and all work stays inside the registered `db.backup.run` job.
53
+
54
+ Migration notes: `RESTORE_GATE_IDS` is now a deprecated alias of `BUILTIN_RESTORE_GATE_IDS`, and a restore gate id is an open string (`RESTORE_GATE_ID_PATTERN`) rather than a closed union; a pre-flight row can carry `kind: 'app'`; `frequency` can be `'cron'`, so code that switches over it must handle the new member; the stored `cron` and `retention` fields are optional (the defaults are unchanged); `DbBackupTx` gains `auditEvent.findMany`, so a hand-built double of that structural type needs it; the runner, retention service, restore service and pre-flight service take trailing optional constructor parameters, so code that constructs them by hand keeps working; node offload is withheld while an app binds its own primary target (only the storage-backed adapter can be read by a node).
55
+
56
+ Web: `DbBackupPage` accepts `slots.Sections` (an app's own sections below the packaged ones; the markup is identical when it is not passed), the policy panel renders a cron field for `frequency: 'cron'`, and the restore dialog lists app gates. Contract: `backupRetentionSchema`, `restoreGateIdSchema`, `BACKUP_CRON_*` limits, the event name constants and payload types, and `BackupMirrorResult`.
57
+
58
+ - b46725d: Add the database backup and restore slice: `@marinoscar/platform-contract/db-backup` (the wire shapes and the `databaseBackup` namespace), `@marinoscar/platform-api/db-backup` (`DbBackupModule.forRoot` with the deployment-mode restore gate, the `RestoreCarryOver` registry, the `rls_bypass` pre-flight gate and the `database-backups/` key prefix) and `@marinoscar/platform-web/db-backup` (the admin page, its hook and client, and the admin section entry).
59
+ - e6acb4b: Email transports are pluggable (PP-14.8, #926). `registerEmailTransport` adds a way of sending mail (SendGrid, Postmark, a log) from an app or a package: its own settings schema, declared secrets (stored encrypted at the credential purpose `email_<id>`, never in settings or the environment), and `build`, which returns an `EmailTransport` (`send`, optionally `verify` and `destroy`). Extend `BaseEmailProvider` to inherit the never-throw guarantee, secret redaction and rate-limit classification. `ses` and `smtp` are transports registered through the same function and still wrap `SesEmailProvider` and `SmtpEmailProvider` unchanged. `EmailTransportResolver` (provided and exported once by `EmailModule`) resolves the transport the settings' `provider` names; `EmailNotificationChannel` and the admin "Send test email" depend on it instead of the concrete SES and SMTP classes, so a registered transport is used by both. The Doctor check, the network-egress view and the test email name a transport by what it registers (`label`, `summary`, `missing`, `egressCapability`, `egressHosts`). `describeEmailTransportConformance` (`@marinoscar/platform-api/email/testing`) is the kit every transport runs: `send` never throws, no secret or message content in error text, attachments and headers passed through, throttles classified.
60
+
61
+ The `email` settings row stores `provider` (a transport id) and a `transports` record validated per transport. A row stored before this release loads unchanged (its `sesRegion`, `sesAccessKeyId`, `smtpHost`, `smtpPort`, `smtpUseTls` and `smtpUsername` become `transports.ses` and `transports.smtp`, field by field, and are rewritten in the new shape on the next save), the flat fields stay accepted on `PUT /api/email-settings` as aliases and published as a deprecated read view, and `smtpPassword` / `sesSecretAccessKey` stay accepted beside the new `secrets` record. A stored `provider` that names a transport nobody registers no longer makes the row unreadable: the send and the Doctor report it.
62
+
63
+ Contract: `BUILTIN_EMAIL_PROVIDER_KINDS` (`EMAIL_PROVIDER_KINDS` stays as a deprecated alias), `EMAIL_TRANSPORT_ID_PATTERN`, `emailTransportIdSchema`; `EmailProviderKind` widens to `string`; the response gains `transports`, `descriptors` and `secretStatuses`; the PUT body gains optional `transports` and `secrets`. The `email` contract slice now depends on the `settings` slice.
64
+
65
+ Migration notes for code that builds these by hand: `EmailNotificationChannel` and `EmailTestSendService` take an `EmailTransportResolver` instead of `SesEmailProvider` and `SmtpEmailProvider`; `SesEmailProvider` and `SmtpEmailProvider` take a `Pick<EmailSettingsService, 'get'>` and a `Pick<CredentialsService, 'getSecret'>`; the egress view lists transports in registration order (`email.ses`, `email.smtp`, then the app's).
66
+
67
+ Web: `registerEmailTransportPanel(id, Component, { validate, toForm, toInput })` (`@marinoscar/platform-web/email/ui`, and the new `/email/ui/transport-panels` subpath) chooses the form the admin email page draws for a transport. The page lists one radio per descriptor the API serves; the built-in `ses` and `smtp` transports register their bespoke forms through the registry (markup unchanged); any other transport is drawn by `EmailGenericTransportPanel` from its descriptor (`PluggableConfigForm`, with write-only secrets), so an app that adds a transport with `registerEmailTransport` needs no web code. The page saves `{ provider, enabled, fromAddress, fromName, transports: { <selected>: settings }, secrets: { <selected>: { <name>: value } } }`, and completes a response from an API that predates the transports from its flat fields.
68
+
69
+ - c778f65: Extension-author test kits for Doctor checks and job handlers, and configurable web conformance suites (PP-14.26, #944).
70
+
71
+ API. New subpath `@marinoscar/platform-api/doctor/testing`: `describeDoctorCheckConformance(name, factory, { scenarios })` proves one check against the contract (identity, a guarded run that never throws, a valid outcome with a remedy on `warn` and `fail`, no seeded secret, read-only); `runDoctorCheck`, `findOutcomeProblems` and `findIdentityProblems`; and the doubles it runs over, `createRecordingPrisma` (records every call, refuses `create`, `update`, `upsert`, `delete`, `*Many`, `$executeRaw` and a raw write statement) and `createWriteFailingStorage`. Importing the entry registers the `doctor-read-only` conformance suite (`runPlatformConformance({ suites: { doctorReadOnly: { fixture, minChecks?, exempt?, forbiddenServices? } } })`), which runs the same proof over every check of the booted app's `DoctorCheckRegistry`: none writes through Prisma or to storage, none holds a side-effecting "test" service, and each check whose `dependsOn` passed returns a valid outcome. An app that does not list the key runs nothing.
72
+
73
+ `@marinoscar/platform-api/jobs/testing` gains `createFakeJobQueue()` (an in-memory queue with the real dedup rule, claim order, attempt budget and delete decision; `asJobsService()` for a service under test), `describeJobHandlerConformance(name, handler, { payloads })` (type, label, a profile of exactly two numbers inside ceilings, the node pair both or neither, `ai.*` server-only; per payload a settle, a double run, a failure by throwing, dedup and `canDelete`) and the pure `findJobHandlerContractViolations(handler)`. `@marinoscar/platform-api/testing` gains `resolveConformanceTestApi`, the helper both kits use. The `doctor` slice now lists `testing` as a slice dependency (`packages/platform-slices.json`); the testing README documents adding a suite from an app with `conformanceSuites.register` and a `declare module` augmentation.
74
+
75
+ Web. `runPlatformWebConformance({ suites })` takes `Record<string, options | { skip: 'reason' }>`: the entry under a suite's id is handed to `register(api, context, options)` as a third argument (`WebConformanceSuite<TOptions>`, default `undefined`, so the `settings-*` suites are unchanged). `webConformanceSuites.register` now throws on a duplicate id instead of ignoring it (a testing entry imported once registers once; guard a repeat with the new `webConformanceSuites.has(id)`). The `expect` subset gains `toBe`, `toMatchObject`, `toHaveLength` and `toThrow`; a hand-written `WebConformanceTestApi` fake must provide them.
76
+
77
+ - 65d4522: Add the host About module and web slice: `@marinoscar/platform-api/host` now owns `GET /api/admin/about` (`AboutModule.forRoot({ apiVersion })`, `AboutService`, `readDeployInfo`, the `versions` support-bundle section; the database probe reads through `PLATFORM_PRISMA`), and `@marinoscar/platform-web/host/headless` and `/host/ui` own the About page, the admin Maintenance page, the public maintenance screen, the maintenance block store and recogniser and the `useAbout`, `useMaintenance` and `useMaintenanceBlock` hooks. The deploy-info fixture the CLI's tests read moved to `packages/platform-api/test/fixtures`.
78
+ - 68660c1: Host: the health probes, the maintenance window, the About report, the deployment modes, the global guards and the response envelope are open to the app. `registerHealthIndicator({ id, critical, check, timeoutMs? })` adds an indicator to `GET /api/health` and, when critical, to `/api/health/ready` (the `database` indicator registers through the same function; details are bounded and secret-filtered because the probes are public; `/live` is unchanged). `registerMaintenanceBypass({ id, allows })` lets a request through an open window after the built-in admin rule; it is fail-closed (only `true` allows) and passes the window, not authentication. `registerAboutContributor({ id, label, describe })` adds `extras` to `GET /api/admin/about` and sections to the web `AboutPage` (the DOM is unchanged when none is registered). `registerDeploymentMode` and `registerDeploymentCapability` open `DEPLOYMENT_MODE` and `DeploymentModeService.can`; `DEPLOYMENT_MODES` is a deprecated alias of `BUILTIN_DEPLOYMENT_MODES` and `DeploymentMode` widens to any registered id (so do `DbBackupDeploymentMode` and `UserDataEnvironment`). The `host` conformance suite takes `allowedAppGuards: [{ name, why }]` (an empty `why` throws) and now requires `MaintenanceGuard` to be the first `APP_GUARD`. `PlatformHostCoreModule.forRoot({ host, permissions })` and `AboutModule.forRoot({ host, permission })` route the host controllers through the app's access decorators and permission strings (defaults unchanged). `buildCorsOptions(raw, extra?)` adds `methods`, `allowedHeaders`, `exposedHeaders` and `maxAge`; `registerResponseMetaContributor` adds bounded keys to the envelope `meta`. OpenAPI: `GET /api/admin/about` gains an optional `extras` array and `api.deploymentMode` is an id pattern instead of a two-value enum. Migration: `capabilitiesFor` throws for a mode nobody registered; `HealthController`'s constructor takes a `HealthIndicatorRunner` in place of `DatabaseHealthIndicator`.
79
+ - 2c4bf2c: Slots for the identity and sharing pages, the login layout, and the shell's navigation and themes (PP-14.25, #943).
80
+
81
+ API: `registerCurrentUserExtension({ id, resolve(userId, ctx) })` and `registerUserListExtension({ id, resolve(userIds, ctx) => Map })` of `@marinoscar/platform-api/identity` add bounded JSON of the app's own to `GET /api/auth/me` and to each row of `GET /api/users` under `extensions.<id>`. The list resolver is batched: one call per request with the ids of the page, a `Map` keyed by user id, so a list never costs a query per row. Every contribution is checked (plain JSON, at most 5 levels, 4 KiB on `/auth/me` and 1 KiB per list row, no secret-named key such as `token`, `apiKey` or `clientSecret`, no credential-looking value such as a JWT or a `pat_` token) and every extension runs isolated under its own timeout: a throw, a timeout or a refused contribution skips that extension and logs a warning with its id, and never fails the request. `checkUserExtensionContribution`, `resolveCurrentUserExtensions` and `resolveUserListExtensions` are exported. OpenAPI: `CurrentUserDto` gains an optional `extensions`; the rows of `GET /api/users` reference the new `UserListItemDto` (`UserResponseDto` plus an optional `extensions`); nothing changes on the wire while no extension is registered.
82
+
83
+ Contract: `currentUserSchema` gains an optional `extensions`; new `userExtensionsSchema`, `UserExtensions`, `USER_EXTENSION_ID_PATTERN` and `USER_EXTENSION_LIMITS`.
84
+
85
+ Web: `UsersPage`, `UserList`, `OrganizationPage`, `OrgMembersPanel`, `OrganizationsPage`, `UserTokensPage`, `ActivateDevicePage`, `LoginPage`, `AuthCallbackPage`, `GroupsPage`, `GroupDetailPage` and `PublicLinkPage` take the packaged-page slot contract (`PageSlotsBase`) and leave the exempt list; the pages that draw rows add the table slots (`Columns` on the users table; `RowActions`, `DetailPanel` and `Toolbar` on the member and organization lists, which are cards, not tables). `UsersPage` adds an append-only `Tabs` slot (the Users and Allowlist tabs stay; the Settings UI rule 2 still holds), `GroupDetailPage` adds `MemberRowActions` and `Tabs`, `ShareDialog` adds `Sections` (both ends) and `Footer`, and `LoginPage` finishes its layout slots with the contract's. `AuthUser.extensions`, `UserListItem.extensions`, `useCurrentUserExtension` and `userExtension` read what the API added. `ShellDestination` gains `badge`, `group`, `external` (an `http(s)` URL opened in a new tab; any other scheme is not drawn) and `onClick` (cancel the navigation with `preventDefault`) on the rail, the bottom bar and the user menu; `ShellBottomNav` gains `maxItems` (default 4) with a More sheet for the rest (a navigation with four or fewer visible destinations renders what it did); `ShellThemeMode` and `ShellThemes` are open, `registerThemeMode({ id, label, theme })` adds a theme mode, and the `applyTheme` host port and `useUserSettings` hand a stored theme id to the app when the settings document lists it in `themeOptions` (pairs with `registerThemePreference`, #939). The five breakpoint gates did not move. A `Header` slot written against the old props of the groups and group pages keeps working; `LoginPage.slots.Title` keeps working and `Header` replaces it.
86
+
87
+ - c6f97da: Let an app or package add a sign-in provider (PP-14.9, #927): `registerAuthProvider(AuthProviderDefinition)` of `@marinoscar/platform-api/identity` now completes a full login. A definition supplies its Passport strategy as `strategy` + `guard` classes (Google) or as `createStrategy(ctx)`, built on every sign-in request from the credential store (purpose `auth_<id>`, `authCredentialPurpose`), plus `label`, `mode` (`redirect` default, or `custom`), an optionally asynchronous `isEnabled(config, ctx)`, `mapProfile`, `linkExistingByEmail`, `egressHosts` and `doctorRemedy`. `AuthProviderRegistration` is the same type under its old name: a registration written as `isEnabled: (config) => ...` is unchanged, and `strategy` and `guard` became optional (one of that pair or `createStrategy` is required).
88
+
89
+ `AuthService.completeExternalLogin(ExternalProfile)` runs the shared sign-in for any provider (`handleGoogleLogin` maps the Google profile and runs the same path with Google's rules; tokens, cookie attributes, redirects, events and metrics are unchanged). The slice mounts `GET /api/auth/:providerId` and `/callback` for every registered `redirect` provider (Google keeps its own routes; new in OpenAPI, reachable during a maintenance window), and exports the browser ending as `respondToSignIn`, `setRefreshTokenCookie`, `buildSignInSuccessRedirectUrl`, `REFRESH_TOKEN_COOKIE` and `REFRESH_TOKEN_COOKIE_OPTIONS`; the refresh cookie and its rules are unchanged. The callback no longer logs the redirect URL, which carried the access token.
90
+
91
+ Safety rules of the generic path: a profile with no address or an unverified one is refused (`access_denied`) before any lookup; a new provider is never linked to an existing user by address (matched case-insensitively) unless its definition declares `linkExistingByEmail`, which means "trusted to vouch for the address" (Google does, as it always did), otherwise that sign-in is refused; the same flag gates the `INITIAL_ADMIN_EMAIL` allowlist bypass and the first administrator's grant, so any other provider is allowlist-only; optional `pictureUrl` (https, at most 2048) and `displayName` (at most 255) are dropped when out of bounds; the ids `jwt` and `session` are reserved and a `createStrategy` strategy is registered with Passport as `auth-provider:<id>`; `createCookieStateStore` gives a `passport-oauth2` strategy login-CSRF `state` without a session plugin (`state: true` without a store throws on every sign-in here); the route overwrites `ExternalProfile.provider` with the serving definition's id; `ExternalProfile.raw` is never logged or stored.
92
+
93
+ `IdentityModule.forRoot({ signInPolicy })` binds a `SignInPolicy` (`IDENTITY_SIGNIN_POLICY`): `beforeLogin(profile, ctx)` returns `{ allow: true, roles? }` or `{ allow: false, reason }`, runs for every provider after the allowlist and before any write, maps roles onto a NEW user only, and fails closed when it throws. `IDENTITY_AUTH_CREDENTIALS` binds the credential store a provider reads (unbound, every secret is absent). New events `identity.login.succeeded` (`{ userId, provider, isNewUser }`) and `identity.org.created` (`{ orgId, createdBy }`); `identity.user.created` `source` is now the provider id. The Doctor's `auth.providers` check lists every registered provider with its `doctorRemedy`, and the egress inventory reads `egressHosts` from the definitions. `describeAuthProviderConformance` of `@marinoscar/platform-api/identity/testing` is the provider kit; `createStubIdentityHost` takes `authCredentials`.
94
+
95
+ Contract: `authProviderSchema` gains the optional `mode: 'custom'`, which `GET /api/auth/providers` sends only for a provider that owns its flow; a redirect provider's entry is unchanged. Web: `login(id)` calls the `start()` of the look registered with `registerAuthProvider` for a `custom` provider instead of navigating; `LoginPage` gains `BeforeProviders` and `AfterProviders` slots (props `{ providers, login }`); `AuthCallbackPage` reads the provider to retry from its `provider` prop, a `:provider` route segment, or the provider the sign-in started with (`lastAuthProvider`), validated as a provider id, before falling back to `google`; `AuthProviderInfo` gains `mode`. `AUTH_ERROR_CODES` stays closed.
96
+
97
+ - 8a0f3b9: Open the jobs and nodes vocabularies to an app (PP-14.19). Jobs: `registerRetentionPolicy` puts an app table on the nightly retention (the `retention` settings namespace is composed from the registry: schemas, defaults, merge and policy-by-policy read-compat; the platform's four keep their order and defaults, and the enqueue-only `RetentionPurgeTask` enqueues one purge per enabled policy whose handler is mounted); `registerJobReason` opens `jobs.reason`, with `reasonLabel` on the admin job row. Migration `0034_open_job_reason` turns `jobs.reason` from the `JobReason` enum into `TEXT`, keeping every stored value (apply it with `npm run db:sync`, then `prisma:migrate`; the table is rewritten under a short lock); `JobReason` becomes `BuiltinJobReason | (string & {})` and the contract's `reason` a pattern (`jobReasonSchema`), so the OpenAPI document shows a pattern where it showed an enum. Nodes: a heartbeat may carry `vitals.extra` (at most 16 numeric keys), `registerNodeVital` words them in the vitals dialog, which also lists the node's reported capabilities; relayed spans may be named `job.app.<name>` with attributes registered through `registerNodeSpanAttribute` (emitted as `job.app.<key>`), and a span that fails validation is now dropped and counted instead of failing its whole batch with a 400. CLI: `registerJobRequirement` and `registerProbedBinary` (with `versionArgs`) are exported from `@marinoscar/platform-cli/node` and used by the startup self-test and `node doctor`; `JobExecutor.vitals()` feeds `vitals.extra`. Back-compat: with only the built-ins nothing served changes; `JOB_REASONS` and `RETENTION_POLICY_KEYS` remain as deprecated aliases of `BUILTIN_JOB_REASONS` and `BUILTIN_RETENTION_POLICY_KEYS`. Upgrade the API before the nodes: an API that predates `vitals.extra` answers a heartbeat that carries it with a 400, and the CLI then stops sending vitals for the process.
98
+ - aeace4a: Add the worker-node admin response schemas to `@marinoscar/platform-contract/nodes` (`adminNodeSchema`, `adminNodeCredentialSchema`, `nodeCredentialListItemSchema`, `nodeCredentialCreatedSchema`, `NODE_STATUSES`, `NODE_HEALTHS`) that the API's Swagger classes now implement (#881), and add `@marinoscar/platform-web/nodes` (`/nodes/headless`, `/nodes/ui`): the fleet and credential client, hooks, adapters and the Worker Nodes page, which `@marinoscar/platform-web/jobs` re-exports for compatibility.
99
+ - fce5417: Make an app's notification channel (Slack, SMS, Teams, a webhook) first-class (PP-14.10, #928). `NotificationChannelSender.resolveRecipient(recipient, context)` resolves a destination asynchronously and returns `{ to, display }`: `to` goes to `deliver`, the redacted `display` is what the delivery row's `recipient` stores. `resolveTo` still works and is now optional (a sender has one of the two). `context.handle()` reads the app's `RecipientHandleSource` (`handleFor(userId, channelId)`), bound with `NotificationsModule.forRoot({ recipientHandles })` to the new `NOTIFICATION_RECIPIENT_HANDLES` token. `forRoot({ pushPayload })` adds allowlisted extras (`actions`, `icon`, `badge`, `urgency`, `tag`) to a Web Push payload; the service worker shows them. `registerChannelTemplate` (and `registerNotification({ channelTemplates })`) is a registry of per-channel renderers validated at registration; `renderChannelPayload` reads one from `deliver`. `NotificationChannelDef` gains `criticalCapable`, `broadcastDefault` and `rendersRawData`. `describeNotificationSenderConformance` joins `@marinoscar/platform-api/notifications/testing`, and the `notifications` conformance suite gains a `channel-templates` case.
100
+
101
+ The `notifications` system namespace (and its org layer) gains an optional `channels` record, `{ <channelId>: { enabled } }`: a switch per channel, sparse, an absent channel is enabled. `browserEnabled` stays the browser channel's spelling and `channels.browser.enabled` is its alias (a write of either sets both; the stricter wins on read), so stored rows and old clients load unchanged. `policyChannels` applies the switch to every channel; a `mandatory` event keeps its `browser` row but is no longer exempt from another channel's switch. A broadcast over a channel an administrator switched off gets a warning.
102
+
103
+ `GET /api/notifications/channels` (any signed-in user) serves every registered channel (`notificationChannelDescriptorSchema`: label, `userConfigurable`, `criticalCapable`, `broadcastCapable`, `broadcastDefault`, `order`). The critical-broadcast rule reads "a channel flagged `criticalCapable`" (`browser`) and moves from `createBroadcastSchema` to the API's registry check. The `push` channel's label is `Push`. `AndroidAppNotificationChannel` takes the push payload hook as its third constructor argument (before the sender registry). OpenAPI: one new route and optional fields only.
104
+
105
+ Web: the broadcast composer, the preferences matrix and the admin Notifications page draw channels from the descriptors (`useNotificationChannels`) instead of `CHANNEL_ORDER`, `DEFAULT_CHANNELS` and `CHANNEL_LABELS`; with only the platform's channels the markup is unchanged (a recorded-DOM snapshot test). The admin page gains one switch per app channel, `UserNotificationsPage` takes `channelStates` to gate an app channel's column like push's, and `NotificationChannelDescriptor`, `NotificationChannelSwitch`, `NotificationAction`, `ChannelState` and `ChannelAlert` are exported.
106
+
107
+ - 48b275d: Close the small vocabularies of onboarding, the DataTable and exports (PP-14.20, #938).
108
+
109
+ Onboarding. The audience vocabulary is open: `registerOnboardingAudience({ id, label, matches(principal, ctx) })` of `@marinoscar/platform-api/onboarding`, with `user`, `admin` and the new `org_admin` (the holder of the `org_admin` role of an active organization) registered through it. `OnboardingAudience` is `Builtin | (string & {})`; `onboardingAudienceSchema` is a string pattern (the OpenAPI `audience` enum becomes a pattern); `ONBOARDING_AUDIENCES` (`admin`, `user`) is deprecated for `BUILTIN_ONBOARDING_AUDIENCES`. `GET /api/onboarding` gains an optional `audiences` record with the block of every other audience the caller matches and that has a step for them, absent otherwise; `user` and `admin` keep their rules (the engine ignores a rule registered for those ids). `evaluateOnboarding` takes optional `audiences` and `audienceContext`, the `onboarding` conformance suite derives the `org_admin` block and flags a step naming an unregistered audience, and the web provider keeps the `audiences` blocks and their skip overlay.
110
+
111
+ DataTable. `registerDataTableFilterType({ type, operators, Editor, matches, coerce?, format? })` of `@marinoscar/platform-web/datatable/headless`; the five built-ins register through it, `FilterOperator` and `DataTableFilterType` are open (`BuiltinFilterOperator`, `BuiltinDataTableFilterType`), `DataTableColumn.filter = { type, editor?, operators? }` declares a column's filter, and `matchesFilters` filters rows on the page with the type's rules. `DataTableStoredLayout` gains `extra` (bounded plain JSON, 8 KiB, 32 keys, 8 levels) and `savedViews` (at most 20), validated by the user-settings API on write (`dataTableExtraSchema`, `dataTableSavedViewSchema`, a 32 KiB cap per table entry; the user-settings OpenAPI gains both fields) and sanitised on read; `useDataTableLayoutPrefs` gains `extra`, `setExtra`, `savedViews`, `saveView`, `applyView` and `deleteView`, and `reset` keeps the saved views. `DataTable` takes `slots={{ Toolbar, BulkBar }}`. The filter-model operator unions of the jobs, nodes, identity and db-backup slices gain `(string & {})`. A table that uses none of this renders the markup it did.
112
+
113
+ Exports. `registerExportWriter({ attachTo: '*' | string[], columnTypes? })` offers a writer on sources that do not list it, `ExportSource.columnTypes` and `acceptsAttachedWriters` gate and pin it, and `writersFor` returns the listed formats then the attached ones (platform writers first). The platform sources list no formats: their formats are the writers attached to them, so json, csv and xlsx are unchanged and an app's writer follows. A writer that cannot write a column type fails the export before any row (`guardWriterColumns`). `ExportColumn.meta` (flat scalars, at most 16 keys) carries a custom writer's own typing; the built-in writers never write it. `ExportsList` takes `slots={{ Columns, RowActions }}`. A source may now list an empty `formats`; `exports` conformance flags a writer attached to an unknown source.
114
+
115
+ - fe61ffe: Roles: an app's own roles are assignable end to end, and an app can grant platform permissions to them, with no package edit and no migration (roles are strings). New `GET /api/roles?scope=system|org` lists `{ id, label, description, scope, assignable }` (`users:read` for `system`, `org_members:read` for `org`). `RoleDeclaration` gains `label` and `assignable` (registry-only, never seeded). The invite, org member update, user-role and test-login routes check the role registry and fail closed: an unknown role, a role of the other scope (`admin` on an invitation) or an `assignable: false` role is a `400` with the error code `ROLE_NOT_ASSIGNABLE` (registered through `registerErrorCode`, also `details.reason`); an invitation whose role stopped being assignable is left pending at sign-in, and `PUT /api/users/:id/roles` leaves a user's `assignable: false` system role in place. Manifest: `registerPlatformPermissions({ app: { grants } })` and `grantPermissions` give an app role platform permissions (validated, folded into the catalog's `rolePermissions`, so the seed and the permission resolver agree; a platform role cannot be the target), and `registerPermissionSet({ slice, roles, permissions })` lets a package declare its own slice, with `PlatformPermissionSlice` open and `identity` still mandatory. Contract: `roleIdSchema` (a string pattern) replaces the `z.enum` of `roleName` on the invite and member routes (OpenAPI: enum to pattern), `BUILTIN_ORG_ROLES` is the new name of `ASSIGNABLE_ORG_ROLES` (kept as a deprecated alias), `AssignableOrgRole` widens to any string. Web: `useRoles` reads the API; the invite dialog, member role select, invitation labels and Manage roles dialog offer the assignable roles with the API's labels and the hard-coded role lists are gone (`ORG_ROLES` is deprecated, `buildUserColumns(roles?)` and `ManageRolesDialog` take the roles, `InviteMemberDialog` takes `roles`); the user-roles call now sends `roleNames`, the field the API reads. Migration: a request that named `admin` as an org role used to fail request validation and is now refused by the service with the same `400` status; group roles stay `admin`, `editor` and `viewer` (a database enum).
116
+ - b480c02: Open the settings slice to an app and to an installed package (PP-14.21, #939). Nothing changes for an app that registers none of the new points: no schema, stored value or OpenAPI field moves.
117
+
118
+ `@marinoscar/platform-api/settings`: `extendSystemSettingsNamespace` and `extendUserSettingsNamespace` take a dot `path` to an object field and add the fields inside it (an existing leaf key is refused, the parent is not; a stored value that predates the field keeps everything else). A system extension takes an `org` block (`mode: 'override' | 'tighten'`, `fields`, `tighten` per field as `'and'`, `'or'`, `'min'`, `'max'` or a function) that makes ONLY the added fields organization-overridable, composed with an existing org layer (`SettingsNamespaceOrgLayer` gained an optional `mode`). `overrideSettingsNamespaceDefaults(key, partial)` changes a namespace's defaults only, checked against its stored schema. `registerSettingsContribution({ id, system, user, extensions })` lets a package contribute namespaces and extensions from a side-effect import; `assembleSystemSettingsNamespaces` and `assembleUserSettingsNamespaces` list the platform's namespaces, the contributions' (import order) and the app's, fold the extensions and apply the defaults overrides. `extendUserProfile({ fields })` adds optional, bounded fields to the core user `profile`, and `registerThemePreference({ id, label })` adds a theme id `theme` accepts, listed in the new optional `themeOptions` of `GET /api/user-settings` while any is registered. `security` stays closed.
119
+
120
+ `@marinoscar/platform-contract/settings`: `THEME_PREFERENCE_ID_PATTERN`, `THEME_OPTION_LABEL_MAX`, `themePreferenceIdSchema`, `themeOptionSchema`, `ThemeOption`, `ThemePreferenceId` and `UserSettingsResponseBase.themeOptions`.
121
+
122
+ `@marinoscar/platform-web/settings`: `ProfileSettings` and `ThemeSettings` take `slots.ExtraFields` (and `UserProfilePage` and `UserAppearancePage` pass `slots` through), `ThemeSettings` offers `extraOptions`, `themePreferenceOptions` and `useThemePreferenceOptions` derive them from the settings document, and `registerOrgSettingsFieldRenderer(namespace, field, Component)` draws an `other` field of the organization settings page. `useUserSettings` hands `applyTheme` only `light`, `dark` and `system`; `UserSettingsDocument.theme`, `UserSettingsUpdateBase.theme` and `ThemeSettings`' `currentTheme` and `onThemeChange` widened to a theme id. The DOM of the three controls is unchanged without a slot, a renderer or a registered theme.
123
+
124
+ - 9f4c147: Open the two places sharing hard-coded (PP-14.16, #934): who a grant can name, and how a decision is made.
125
+
126
+ `@marinoscar/platform-api/sharing`: `registerGranteeKind(GranteeKindDef)` and `registerAccessRule(AccessRuleDef)`. The built-in `user`, `group` and `link` kinds register through `registerGranteeKind` (no private fast path); `AccessPolicy`, `accessibleWhere`, `accessibleSql` and `POST /api/grants` compose the registry, with behaviour and SQL shape unchanged for the built-ins. A kind supplies `validateGrantee`, `describe` and the in-memory (`matchesPrincipal`) and SQL (`resolvePrincipalMatch`, parameterised through the app's SQL kit) spellings of one predicate. An access rule joins the documented order (owner and bypass first, rules `before-grants`, grants, rules `after-grants`, the org default): `deny` from any rule wins, a failing rule denies (logged with the rule id only), the record's user owner and a bypass holder are decided before the rules, and an allow confers a `role` (default the weakest). A rule gives `sql({ allow?, deny? })` so lists agree with decisions; a rule that can deny (`mayDeny`) must. `AccessVia` is open (`BuiltinAccessVia | (string & {})`: a widening of a stable type), rule ids and kind `via` values cannot impersonate a platform source, registered definitions are shallow-frozen, the decision counter's `via` label gains `app` and its `outcome` label gains `rule_error` (an access rule failed or was misconfigured; `AccessDecision.ruleFailure`). `AccessPolicy` takes a savepoint per call when rules apply so a failing rule statement cannot abort the shared transaction; the slice refuses the caller alias `g` in `accessibleSql`. `GET /api/sharing/grantee-kinds` (`sharing:read`) serves the registered kinds. `POST /api/grants` accepts `{ kind: 'custom', granteeKind, ref }` and answers 422 `GRANTEE_KIND_UNKNOWN`, `GRANTEE_INVALID` or `GRANTEE_KIND_NOT_PERSISTABLE`. New kits in `@marinoscar/platform-api/sharing/testing`: `describeGranteeKindConformance`, `describeAccessRuleConformance`, `recordingSqlKit`, `HOSTILE_STRINGS`.
127
+
128
+ A grant of an app-registered kind cannot be stored yet: `grants.grantee_kind` is an enum, so `registerGranteeKind` refuses `persisted: true` for a non-built-in kind until the sharing storage migration (tracked with the group-role migration) ships. No migration in this change.
129
+
130
+ `@marinoscar/platform-contract/sharing`: `BUILTIN_GRANTEE_KINDS`, `GRANTEE_KIND_ID_PATTERN`, `GRANTEE_KIND_INPUTS`, `granteeKindDescriptorSchema`, `granteeKindListSchema`, `customGranteeSchema` (a third `grantGranteeInputSchema` variant; the `user` and `group` shapes keep their validation), `SHARING_LIMITS.granteeRefMax`. `GRANT_GRANTEE_KINDS` is unchanged (the stored vocabulary).
131
+
132
+ `@marinoscar/platform-web/sharing`: `registerGranteePicker(kind, Component)`, `freezeGranteePickers()`, `useGranteeKinds()`, `SharingClient.listGranteeKinds`, `ShareActions.shareWithGrantee` and the `granteePickers` prop of `ShareDialog`. The dialog offers each non-built-in kind a grant can be stored for as one more choice (a text field, or the registered picker); the DOM is unchanged when only the built-ins are listed.
133
+
134
+ - d35900e: Sharing: open group roles and persisted app grantee kinds. Migration `0037_open_sharing_vocabularies` turns `group_members.role`, `group_invites.role` and `grants.grantee_kind` from Prisma enums into text, adds the nullable `grants.grantee_ref` and relaxes `grants_grantee_consistency_check`; an app registers a group role with `registerGroupRole` and a persisted grantee kind with `registerGranteeKind({ persisted: true })`, and the share dialog and member role pickers read the registries.
135
+ - 74c4aff: Declare peer dependencies per slice (`packages/platform-slice-peers.json`, checked by `npm run check:slice-peers`) and make every peer that the universal slice does not need optional. `platform-api` now requires only what `core` needs (`@nestjs/common`, `@nestjs/core`, `@nestjs/swagger`, `@opentelemetry/api`, `@prisma/client`, `nestjs-zod`, `reflect-metadata`, `rxjs`, `zod`); `@nestjs/config`, `@nestjs/schedule`, `@nestjs/event-emitter`, `@nestjs/jwt`, `@nestjs/passport`, `passport`, `@nestjs/terminus` and `@prisma/client-runtime-utils` become optional peers an app installs for the slices that use them. `platform-web` requires only `@mui/material`, Emotion, `react` and `react-dom`; `@mui/icons-material`, `react-router-dom` and `zod` become optional. `platform-db` no longer lists `@prisma/client` (its seed takes the app's client structurally) and `prisma` becomes optional; `platform-cli`'s `react` becomes optional. An app that installed every peer needs no change; an app that imports only some slices can now install only their peers. The datatable no longer imports the undeclared transitive `@mui/utils`.
136
+ - 5e98e3d: Storage drivers are pluggable (PP-14.7, #925). `registerStorageDriver` adds an object store (Azure Blob, Google Cloud Storage, a local disk) from an app or a package: its own settings schema, declared secrets (stored encrypted at the credential purpose `storage_<id>`, never in settings or the environment), `build`, `testConnection`, and optionally `provision`, `listKeys` and `purge`. `s3`, `r2` and `s3compatible` are drivers registered through the same function, and all S3-specific code (the connection test, bucket provisioning, the purge lister, the per-flavour requirements and region fallback, the Doctor egress host) moved into them. The connection test, provisioning, purge, egress and the resolving provider delegate to the active driver. `describeStorageDriverConformance` (`@marinoscar/platform-api/storage/testing`) is the kit every driver runs.
137
+
138
+ The `storage` settings namespace stores `provider` (a driver id) and a `drivers` record validated per driver. A row stored before this release loads unchanged (its flat fields become `drivers.<provider>`, field by field), and the flat fields (`bucket`, `region`, `endpoint`, `accountId`, `accessKeyId`, `forcePathStyle`) stay accepted on PUT, PATCH and the admin routes and published as a deprecated read view. `databaseBackup.storageProvider` accepts any driver id.
139
+
140
+ Contract: `BUILTIN_STORAGE_PROVIDER_KINDS` (`STORAGE_PROVIDER_KINDS` stays as a deprecated alias), `storageDriverIdSchema`, `StorageProviderKind` widens to `string`; the admin config view gains `drivers` and `descriptors` and `missing` becomes a list of strings; the admin PUT, test and bucket bodies gain optional `drivers` and `secrets`; the test and provisioning results gain `message`. The `storage` contract slice now depends on the `settings` slice.
141
+
142
+ Migration notes for code that builds these by hand: `ResolvedStorageConfig` is the generic active configuration (`provider`, `bucket`, `region`, `endpoint?`, `settings`, `secrets`; the S3 family's is `ResolvedS3Config`); `StorageConnectionTestService` and `StorageBucketProvisionService` take a `StorageSubmissionService`; `resolveStorageConfig` (S3 only) is deprecated; `npm run storage:purge` exits `3` for a driver that can neither purge nor list its keys. New installs seed `storage` as `{ provider, drivers }`.
143
+
144
+ Web: `registerStorageDriverPanel(id, Component, { validate })` (`@marinoscar/platform-web/storage/ui`, and the new `/storage/ui/driver-panels` subpath) chooses the form the admin storage page draws for a driver. The page lists one radio per descriptor the API serves and the built-in `s3`, `r2` and `s3compatible` drivers register their bespoke form through the registry (markup unchanged); any other driver is drawn by `StorageGenericDriverPanel` from its descriptor (`PluggableConfigForm`, with write-only secrets), so an app that adds a driver with `registerStorageDriver` needs no web code. The page saves, tests and provisions with `{ provider, drivers: { <id>: settings }, secrets: { <id>: { <name>: value } } }`, shows a driver's `message` and `details` and offers provisioning after a failed test that reported no checks. `StorageProviderKind` and `MissingStorageConfigField` are `string`, `StorageConfigView` gained `drivers` and `descriptors`, `StorageConfigInput` needs only `provider`, and the test and provisioning results gained `message`. The S3-compatible radio label is now the driver's own ("S3-compatible"). The `storage` web slice now depends on `settings`.
145
+
146
+ - 5425626: Let an app put its own numbers on the Telemetry Dashboard and in the assistant (PP-14.18, #936).
147
+
148
+ Units: `registerMetricUnit(MetricUnitDef)` of `@marinoscar/platform-api/telemetry`; the 15 built-in units register through it (`BUILTIN_METRIC_UNITS`, with `METRIC_UNITS` kept as a deprecated alias), `assertUnit` reads the registry and `GET dashboard/metric-groups` serves, per group, `units` (the descriptors of the units it uses beyond the built-ins) so the browser formats an app unit with no web change. A unit descriptor has one of nine fixed formats and no code (`metricUnitDescriptorSchema`).
149
+
150
+ Presentation: `MetricGroupDef.presentation` is data (tiles, charts with theme-token colours, tables with Top N and `problems-first` or `value-desc` sort and column displays, and `ratio`, `delta` and `rate` virtual columns), zod-validated and bounded when the group is registered, and served on `/metric-groups`. The six platform groups declare theirs (`PLATFORM_METRIC_PRESENTATIONS` of the contract) instead of the web's section table, and draw with the same DOM. `metricGroupPresentationSchema` and the presentation interfaces are new contract exports.
151
+
152
+ Panels: `registerDashboardPanel(DashboardPanelDef)` and `dashboardPanelRegistry` (API; `GET dashboard/panels` and `panels/:id`, payload at most 256 KiB, a time budget, a generic failure) with `registerDashboardPanelView(id, View, { frame? })` (web, also from the new `@marinoscar/platform-web/telemetry/ui/dashboard-panels`). The platform's `api` and `logs` panels register through the same calls. `TelemetryQueryFacade` (`query`, `sql`, `dialect`) is the only way a panel reads the store: one guarded, capped, timed-out and audited statement per call (audit source `panel`), under a per-request statement budget.
153
+
154
+ Assistant: `registerTelemetryAssistantTool(TelemetryAssistantToolDef)` adds a read-only tool that receives the facade and never a client (a name that shadows one of the eight built-ins is refused; `rows` output is withheld from the model while `assistant.shareResults` is off), and `TelemetryModule.forRoot({ assistant: { extraInstructions } })` appends developer notes (at most 4 000 characters of plain text) to the system prompt as an `APPLICATION NOTES` section.
155
+
156
+ Pages: `TelemetryDashboardPage`, `TelemetrySettingsPage` and `TelemetryExplorerPage` take `slots` of the page-slot contract and are off `page-slots.exempt.json`; the explorer also takes `starterQueries`.
157
+
158
+ otel-core: `initializeOtel` accepts `spanProcessors`, `logRecordProcessors`, `metricReaders`, `views`, `sampler`, `textMapPropagator` and `resourceAttributes`; every processor and reader is wrapped in a gated one (`GatedSpanProcessor`, `GatedLogRecordProcessor`, `GatedMetricReader`), so nothing exports while the runtime gate is closed.
159
+
160
+ Conformance: the `telemetry` suite gains check 9 (registered panels and tools are well formed, the platform's panels remain) and check 10 (the facade has exactly `query`, `sql` and `dialect` and is frozen), and check 1 validates presentations. `/telemetry/testing` exports `createQueryFacade`, `checkFacadeSurface` and `checkRegisteredExtensions`.
161
+
162
+ Additive: a host that registers nothing sees no change except the new optional `presentation` and `units` fields on `GET dashboard/metric-groups` and the new `dashboard/panels` routes.
163
+
164
+ - 175ddd3: Make the dashboard metric tables' freshness window an option: `TelemetryModule.forRoot({ metrics: { freshMs } })` (default `METRIC_FRESH_MS`, 150 s; resolved into the `TELEMETRY_METRIC_FRESH_MS` token). The `/metrics` response reports it as the optional `freshMs`, and each dashboard section with a table shows it in its header ("Current within 2 min 30 s").
165
+ - 1171b1c: Complete the telemetry slice in all five packages. `@marinoscar/platform-api/telemetry/testing` gains the telemetry conformance suite (registered with `runPlatformConformance()` as `suites.telemetry`: metric groups, route permissions, read-only Doctor checks, no secrets in responses, the cron coverage and the boot without a store), the stub host ports, and the five activity and six coach fixture tables; `ConformanceCase.run` may be async and a slice may add a suite key by augmenting `PlatformConformanceSuiteOptions`. Every telemetry slice README now follows the Package documentation standard with a catalog that links a working example in the reference app.
166
+ - 2732024: The telemetry store is replaceable (PP-14.11, #929). The explorer, the export, the assistant's statements, the Telemetry Dashboard, the status page, the retention job, the Doctor checks and the support bundle now depend on two injection tokens, `TELEMETRY_STORE` (a `TelemetryStore`: `query(sql, params, { readOnly: true, timeoutMs, signal })`, `schema()`, `ping()`, `close()`, `isConfigured()`, an optional `retention` control) and `TELEMETRY_SQL_DIALECT` (a `TelemetrySqlDialect`: the time bucket, the percentile, the regular-expression replace, the JSON attribute read, the case-insensitive substring match, the text cast, the row cap and the metric tables' time and value columns), and never on `GreptimeClient`. `registerTelemetryStore` adds a store from an app or a package at import time (its own settings schema, defaults and declared secrets, stored encrypted at the credential purpose `telemetry_<id>`, and `build`, which returns the store and its dialect), and `TelemetryModule.forRoot({ store: '<id>' })` selects it (default `greptime`; an id nobody registered fails boot naming the registered ones). `greptime` is the built-in store, registered through the same function: `GreptimeClient` now implements `TelemetryStore` (its `query()` runs on the read-only login, `queryReader()` and `queryAdmin()` are unchanged), its dialect, retention control and schema read live under `telemetry/stores/greptime/`, and its connection, the `telemetry_connection` row and the `telemetry_greptime` credential purpose are unchanged. The explorer's guard (one read-only statement, the row cap, the timeout, the audit row) stays in the platform, above the store. `describeTelemetryStoreConformance` (`@marinoscar/platform-api/telemetry/testing`) is the kit every store runs: writes refused, timeout and abort honoured, `schema()` shape, a `ping()` that never throws or leaks a secret, an unconfigured store, and, over a fixture, every dashboard statement built with the store's dialect.
167
+
168
+ A store that is not GreptimeDB has `GET` and `PUT /api/admin/telemetry/store` (`telemetry:read` / `telemetry:write`, `If-Match`): its non-secret settings are one entry of the new `telemetry_store` system-settings row and its secrets are write-only. `GET /api/admin/telemetry/config` gains an optional `store: { id, label }`. The dashboard SQL builders take an optional trailing `TelemetrySqlDialect` (default: the GreptimeDB one, so their text is unchanged), and the stub ports of `telemetry/testing` take a `policy` patch and per-purpose secrets.
169
+
170
+ Migration notes: the app's `TELEMETRY_SETTINGS_STORE` adapter must allow the new row key (`telemetry_store`, beside `telemetry_connection`; the reference app's `TELEMETRY_OWNED_ROW_KEYS`); code that constructs `TelemetryQueryService`, `TelemetrySchemaService`, `TelemetryStatusService`, `TelemetryRetentionHandler`, `TelemetrySettingsService`, the Doctor reachability and freshness checks or the support-bundle section by hand now passes a `TelemetryStore` (a `GreptimeClient` is one) where it passed the client; the `greptime/greptime.client.ts`, `greptime-host.ts` and `greptime.errors.ts` files moved under `telemetry/stores/` (the public exports are unchanged, and the store errors are now exported too); the `telemetry` platform-api slice depends on `credentials`, and the `telemetry` contract and web slices on `settings`.
171
+
172
+ Web: the Telemetry settings page keeps the Telemetry services and GreptimeDB Connection sections for the built-in store (markup unchanged) and draws a Store section for any other registered store: the settings slice's `PluggableConfigForm` over the descriptor `GET /admin/telemetry/store` serves, with write-only secrets and an `If-Match` on every save, so an app that registers a store needs no web code. `useTelemetryStore` and the `TelemetryStoreConfig` types are exported from `@marinoscar/platform-web/telemetry/headless`; the settings slice's index exports `usePluggableConfigForm`. Contract: `telemetryStoreSummarySchema`, `telemetryStoreResponseSchema` and `updateTelemetryStoreSchema`.
173
+
174
+ - 125b54b: User-data slice: `UserDataModule.forRoot` now defaults `USER_DATA_ENVIRONMENT` (the host slice's `DeploymentModeService` and identity's `TenancyService`; override with `environment`), so an app binds only the bypass client `USER_DATA_DB`. Adds `composedSchemaDatamodel(__dirname)` / `findComposedSchemaPath` for the `datamodel` option and the `user-data.registries` Doctor check (the conformance suite's three checks, on a running deployment; they now live in `registry-checks.ts` and are re-exported from `user-data/testing`). The slice now depends on the `doctor` and `host` slices. Web: `PlatformViewer` gains an optional `refresh()`, and the Danger Zone and factory reset pages call it after a successful action, so an app mounts them without a callback.
175
+ - 39b5300: Add the user-data slice (#743): registry-driven per-user deletion with scopes (`user.data.purge`), the admin factory reset (`admin.factory_reset`) and organization offboarding (`org.offboard`), with the Danger Zone, factory reset and offboarding UI; `StorageKeyPrefixDef.survivesFactoryReset`; `OrganizationsPage` `renderActions`.
176
+ - 56a68c0: The AI pages draw the model catalogue and the usage breakdowns with the datatable slice's `DataTable` directly. Removed `AiWebAdapters.DataTable` and the `AiDataTableComponent`, `AiDataTableProps`, `AiTableColumn`, `AiTableColumnPriority` and `AiTableRowAction` types of `/ai/headless`; the `ai` slice now depends on `datatable`.
177
+ - 4c003a1: Move the AI web pages into `@marinoscar/platform-web/ai`: the admin AI, AI Models and AI Usage pages, the user AI Keys page and the Playground (`AiConfigPage`, `AiModelsPage`, `AiUsagePage`, `UserAiKeysPage`, `AiPlaygroundPage`, each also a subpath such as `/ai/ui/models-page`), the hooks behind them (`useAiConfig`, `AiConfigProvider`, `useAiAdminConfig`, `useAiModels`, `useAiUsage`, `useUserAiKeys`, `useUsableAiModels`, `useAiChat`, `useAiRun`, `useAiRealtimeSession`, `useMicrophonePermission`, `useAiUserSettings`) and the AI calls over the host transport (`createAiResponse`, `streamAiResponse`, ... each taking the `PlatformApiClient` first), with `AiWebAdaptersProvider` slots for the app's spinner and table. `PlatformApiClient` gains an optional `postFormData` (uploads) and `PlatformRequestOptions.jsonBody` (a DELETE with a typed confirmation); the storage and settings slices gain a sibling entry for the AI slice.
178
+ - 3390de6: Add the `RequireAiEnabled` route guard to `@marinoscar/platform-web/ai` (`/ai/ui`, and a subpath of its own, `/ai/ui/require-ai-enabled`, so a router can import it without the pages).
179
+ - fe122b9: Add `@marinoscar/platform-web/android-app` (`/headless`: the TWA launch helpers, `androidIdentity`, the client and hooks; `/ui`: `AndroidAppPage`, `AndroidUpdateBanner`, `DownloadApkButton` and the `androidAppSettingsPage` descriptor) (#746).
180
+ - b1a2838: Add `createPlatformApiClient(http, { postSse? })` to `@marinoscar/platform-web/core`: the adapter from the app's one `PlatformHttpClient` to the `PlatformApiClient` every packaged page calls (the `ApiError` to `PlatformApiError` mapping, `If-Match`, extra headers first, `getBlob`/`postBlob` as `blobWithHeaders`), with `toPlatformApiError` and `toHttpRequestOptions`. Moved from the reference app's platform host.
181
+ - 05284de: Add `PlatformHttpClient` and `ApiError` to `@marinoscar/platform-web/core`: the browser transport (access-token holder, one-shot refresh and retry, cross-page refresh lock, session-expired signal) moved from the reference app, with the API base, the refresh lock name and an error-response hook as options (experimental; `ApiError` stable).
182
+ - a697d5a: Add the Server-Sent Events client to `@marinoscar/platform-web/core` (#900): `connectSse` (reconnecting `GET` stream), `postSse` (one `POST`ed request, one streamed answer) and `SseParser`, moved from the reference app's `services/sse.ts` with their tests. `postSse` takes an optional `onErrorResponse` hook in place of the app's maintenance import; behaviour is otherwise unchanged.
183
+ - 1cd5fc6: Add `@marinoscar/platform-web/datatable/headless`, `/datatable/ui` and `/datatable/testing` (#897): the responsive `DataTable` (desktop grid, tablet expander, phone cards) with filters, view bar, CSV export and bulk actions, the `DataTablePreferencesPort` that keeps a table's layout (default: the user-settings routes over the host transport), and the jsdom layout stubs and the shared conformance suite.
184
+ - 0b9962b: Add `@marinoscar/platform-web/exports/headless` and `/exports/ui` (#744): the exports client and hooks (`useExportSources`, `useExports`, `useCreateExport`, `useExport`, with polling), `ExportDialog` (request fields from the source's descriptor, or `slots.form`), `ExportsList`, `DataExportPage` and the "Download your data" settings card descriptor.
185
+ - ff1a1a7: Move `MaintenanceGate`, `MaintenanceBanner`, `InstallPrompt` and `UpdatePrompt` into `@marinoscar/platform-web/host/ui` (#901). DOM and styles are unchanged; the gate and the install prompt take `appName`, and the update prompt takes vite-plugin-pwa's `useRegisterSW` as a prop.
186
+ - 677b58e: Add `@marinoscar/platform-web/identity/headless`: `AuthProvider`, `useAuth`, `usePermissions`, `RequireAuth`, `RequirePermission`, `RequireMultiOrg` and `useOrgsFeature` (stable), plus the identity API client and data hooks, the web `registerAuthProvider` registry and `IdentityWebAdaptersProvider` (experimental), moved from the reference app.
187
+ - 61ac4ee: Add `@marinoscar/platform-web/identity/ui`: the login page with `slots` (`Logo`, `Title`, `Footer`, `ProviderButton`), the callback and device-activation pages, `SignInErrorView`, a registry-driven `OAuthButton`, `OrgSwitcher`, the Access Tokens, Users & Allowlist, Organization and Organizations pages (the app's table through the identity adapters), and the `identityAdminSections` / `identityUserSettingsSections` registry entries as data, moved from the reference app (stable pages, experimental slots and entries).
188
+ - 1f4a163: Add `@marinoscar/platform-web/jobs` (#854): `/jobs/headless` (`createJobsApi` over the host transport with the `orgId` list filter, the wire types from `@marinoscar/platform-contract/jobs` and `/nodes`, `useJobs`, `useJobStats`, `useJobActions`, `useJobInsights`, `useWorkerNodes`, `useWorkerNode`, `useNodeCredentials`, `useNodeActions`, `useVisiblePolling`, `JobsWebAdaptersProvider`, the formatters) and `/jobs/ui` (`JobsPage`, `JobInsightsPage`, `WorkersPage` with a `slots.Header`, and `jobsAdminSections`), moved from the reference app with the same DOM, styles, routes and permissions.
189
+ - 077c0c0: Add the `./onboarding/headless` and `./onboarding/ui` subpaths (#745): `OnboardingProvider`, `useOnboarding`, `useOnboardingMetrics`, the onboarding client, the feature-notice registry and the "Getting started" action; `WelcomeDialog` (app panes as slots), `OnboardingChecklist`, `SetupGuidePage` with the Activation section, `GettingStartedPage`, `FeatureUnavailableNotice`, `GettingStartedMenuItem` and the `setupGuideSettingsPage` / `gettingStartedSettingsPage` descriptors.
190
+ - 6321fa5: Apply the page-slot contract to the last three packaged pages (PP-14.24b, #974), so `test/page-slots.exempt.json` is empty. `DataExportPage` takes `slots: DataExportPageSlots` (`PageSlotsBase`, plus the exports list's `Columns` and `RowActions`, which it forwards to `ExportsList`, plus the existing `form`); `GettingStartedPage` takes `slots: GettingStartedPageSlots` and `SetupGuidePage` takes `slots: SetupGuidePageSlots` (both `PageSlotsBase`: `Header`, `BeforeContent`, `Sections` at both ends, `AfterContent`). New exported types: `DataExportPageSlots` (`@marinoscar/platform-web/exports/ui`), `GettingStartedPageProps`, `GettingStartedPageSlots` and `SetupGuidePageSlots` (`@marinoscar/platform-web/onboarding/ui`). Back-compat: every slot is optional and the pages' markup with none is unchanged (pinned by snapshots recorded from the old pages); `SetupGuidePage` keeps `showActivation` and `footer`, and `<GettingStartedPage />` takes no required props.
191
+ - 8246e10: The packaged-page slot contract (PP-14.23) is applied to the AI, storage, email, Android, host, profile, appearance, organization settings, user-data and notification pages (PP-14.24, #942). Every page takes an optional `slots` prop typed to `PageSlotsBase`; a page given none renders the markup it always did (each page group has a DOM snapshot recorded from the old components).
192
+
193
+ - **Web, `@marinoscar/platform-web/core`**: `PageSlotsFrame` lays a page body out in slot order (no wrapper element), for the packaged pages and for an app's own page.
194
+ - **AI**: `AiConfigPage` (`ProviderCardExtra`, drawn under each provider's card), `AiModelsPage` and `AiUsagePage` (the table slots), `UserAiKeysPage`, `OrgAiKeysPage` and `AiPlaygroundPage` (the playground `Header` receives its "New conversation" button as `actions`). `AiUsageTable` takes `slots` too.
195
+ - **Storage, email**: `StorageConfigPage` and `EmailSettingsPage` take the base slots (the driver and transport panels stay registries).
196
+ - **Android**: `AndroidAppPage` takes the base slots; `TrustedAppsSection`, `ReleasesSection` and `NotificationsSection` are exported from `android-app/ui`.
197
+ - **Host**: `AboutPage` and `MaintenancePage` take the base slots. `MaintenanceScreen` gains `logo`, `actions` and `children`; `InstallPrompt` `icon` and `copy`; `MaintenanceBanner` `copy` and `actions`.
198
+ - **Settings**: `UserProfilePage`, `UserAppearancePage` and `OrgSettingsPage` take the base slots.
199
+ - **Notifications**: `BroadcastsPage`, `PushConfigPage`, `NotificationSettingsPage` and `UserNotificationsPage` take the base slots.
200
+ - **User data**: `FactoryResetPage` and `UserDangerZonePage` take `slots` and `copy`, and print the kept and deleted lines of the summary responses instead of constants (the constants stay as the fallback, word for word).
201
+ - **API and contract (user-data)**: `GET /api/user-data/summary` returns `kept: string[]`, `GET /api/admin/factory-reset/summary` returns `deleted: string[]` and `kept: string[]`. The platform's lines are exactly the text the web bundle held; `UserDataModelHint.summary` (a kept model) and `FactoryResetStepDef.summary` (a step) add one line each. `userDataSummarySchema` and `factoryResetSummarySchema` gain the required arrays: deploy the API before the web, and add the arrays to any hand-built summary in a test.
202
+ - The telemetry pages, the identity and sharing pages and the exports and onboarding pages stay on `test/page-slots.exempt.json`.
203
+
204
+ - be4564b: The packaged-page slot contract (PP-14.23, #941) in `@marinoscar/platform-web/core`: `PageSlotsBase` (`Header`, `BeforeContent`, `Sections` rendered at both ends with `position`, `AfterContent`), `TableSlots<Row, Column>` (`Columns`, `RowActions`, `DetailPanel`, `Toolbar`), `PageSlot`, `PageHeaderSlotProps`, `PageSectionsSlotProps`, `SlotTableColumn` and `useTableSlotColumns`. Every slot is optional and a page with none renders the markup it always did. `test/page-slots.contract.test.ts` reads the `ui` entries of the package's `exports` map and fails, naming the page, when an exported `*Page` has no `slots` prop extending `PageSlotsBase`, unless `test/page-slots.exempt.json` lists it with a reason.
205
+
206
+ The five operations pages take it. `JobsPage` and `JobInsightsPage`: the base slots, `TableSlots` and `Filters`. `WorkersPage`: the base slots, `TableSlots` and `VitalsPanel` (extra section in the node vitals dialog). `DbBackupPage`: the base slots and `RunRowActions` (its `Sections` now also receives `position` and renders at both ends). `DoctorPage`: the base slots and `CheckRowActions`, plus `registerDoctorCheckRenderer(checkId, Component)` (`@marinoscar/platform-web/doctor/headless`) to draw a check's `data` inside its row. The page `Header` slots of the jobs, nodes and doctor pages keep their props and gain `actions`.
207
+
208
+ Migration note: a `slots.Sections` component written for the database backup page, which rendered once at the bottom, now renders at both ends; return `null` when `position === 'top'`.
209
+
210
+ - 8c69f19: Add the settings pages to `@marinoscar/platform-web/settings/ui`: `OrgSettingsPage` (the Organization settings card), `UserProfilePage`, `UserAppearancePage`, `UserSettingsSection`, `ProfileSettings`, `ThemeSettings` and `ImageUpload`, moved from the reference app with DOM, copy and permissions unchanged, plus `createProfileImageClient`, `useProfileImageClient` and `useStorageStatus` in `/settings/headless`. The host gains optional `applyTheme` and the transport an optional `postFormData` (`createPlatformApiClient` provides it); the test host answers both. The settings slice now depends on `identity` and `onboarding`.
211
+ - fc11b22: Add the `./settings/ui` and `./settings/headless` subpaths (#733): `SettingsHub` (moved without behavioural change; breakpoint gate 4), `SettingsCardDef`, `SettingsSectionDef`, `visibleSettingsSections`, `settingsPageTitle`, `isFeatureEnabled`, the open feature registry (`SettingsFeatureRegistry`, `registerSettingsFeature`, `useSettingsFeatures`) and the hooks `useSystemSettings`, `useUserSettings` and `useOrgSettings`.
212
+ - e30ad6e: Add the sharing UI (#731): `@marinoscar/platform-web/sharing/headless` (the sharing client, `useGroups`, `useGroup`, `useGroupActions`, `useGroupMembers`, `useGroupInvites`, `useMyGroupInvites`, `useGrants`, `useShareActions`, `useLinkGrants`, `useSharedWithMe`, `usePublicLink` and the `registerLinkRenderer` registry) and `@marinoscar/platform-web/sharing/ui` (`ShareDialog`, `GroupsPage`, `GroupDetailPage`, `PendingGroupInvites`, `SharedWithMeList`, `PublicLinkPage` and the `groupsSettingsPage` descriptor). `PlatformRequestOptions` gains `headers` (a page's extra request headers, such as `x-link-token`), and the test host records them and takes an error's `details`.
213
+ - 581a4ab: Add the shell slice: `@marinoscar/platform-web/shell/headless` (the `ShellNavigation` model with `owns`, `isDestinationVisible` and `resolveActiveDestination`, the rail's collapse preference `useShellRailPreference`, `createShellTheme` with its palette and component overrides and the theme context, and the providers composition `ShellProviders`) and `@marinoscar/platform-web/shell/ui` (`ShellLayout`, `ShellAppBar`, `ShellNavigationRail` with Console mode, `ShellBottomNav`, `ShellUserMenu`, `ShellThemeProvider` and `ShellRoot`), with slots for branding and navigation. The five coupled breakpoint gates stay together at `sm`. `@marinoscar/platform-web/settings`' sibling entry now also exposes the registry helpers and the feature map to the shell.
214
+ - 17d6ed1: Add `@marinoscar/platform-web/storage/headless` and `/storage/ui` (#736): `useStorageConfig`, the storage-config client and a new objects client (simple and resumable upload, download URL, delete, status, wait-for-ready) over the host's transport, and the `/admin/settings/storage` page `StorageConfigPage` with `StorageSwitchConfirmDialog`, moved from the reference app with their behaviour unchanged.
215
+
216
+ ### Patch Changes
217
+
218
+ - f6e319b: Documentation only: every slice README's Extension-point catalog links the new extension author guide (`docs/EXTENDING.md`); the email README no longer promises that a provider of `SmtpEmailProvider` in the app module replaces the transport (it does not reach the package's consumers; a transport registry is not supported yet); the AI READMEs say that a provider cannot be enabled from an app yet; the platform-db README documents `rlsPolicies` in `platform.lock` with the migration SQL for an app table protected by row-level security.
219
+ - fe73d7a: Documentation only: the overview READMEs list every shipped slice and subpath, and the stale "version 0.0.0" status lines are replaced.
220
+ - 7e667e2: `POST /api/admin/ai/models/refresh` now answers `409` with `details.reason` `AI_DISABLED` or `AI_PROVIDER_DISABLED` when AI, or the provider, is switched off, instead of queueing an `ai.catalog.refresh` job that silently skipped. New `AiCatalogService.disabledReason(providerId)` is the single policy read behind both the route and the sync.
221
+
222
+ In `@marinoscar/platform-web`, `useAiModels().refreshCatalog` no longer clears `refreshError` per call: it shows the server's own message for these refusals and collects (de-duplicated) the refusals of several providers, and `AiModelsPage` clears the error once before refreshing and shows the "Refresh queued" snackbar only when a job was queued.
223
+
224
+ - 6487697: Finish the identity slice move (#727): the reference app now imports identity only from `@marinoscar/platform-{api,web,contract}/identity`, so the web identity catalog's examples point at the app's real uses (`App.tsx`, and one example per data hook in `apps/web/src/identity/dataHookExamples.tsx`), the identity hook, page, guard and component suites the app kept run in `platform-web`'s own tests (with a `fakeIdentityApi` test helper), and comments naming the app's old identity paths point at the packages. No API change.
225
+ - 346e661: The sharing slice's READMEs are complete in all three packages (#732): quick start, the full extension-point catalog with a compiled, tested reference example for every entry (`apps/api/test/examples/sharing/`, `apps/web/src/__tests__/examples/sharing/`), minimal examples, observability, security notes, the conformance suite, troubleshooting, and two migration recipes (a per-record share table, kvox-style; circles and public links, MemoriaHub-style). `ownedByMeOrMyGroups`, `ShareDialog`, `useGrants`, `useShareActions` and `useSharedWithMe` are now catalogued extension points.
226
+ - c318559: Add the React-free `@marinoscar/platform-web/notifications/service-worker` entry and point the reference app's `sw.ts` at it. Importing `registerNotificationServiceWorkerHandlers` from the `/headless` barrel loaded React into the service worker in Vite dev mode (nothing is tree-shaken there), which threw "window is not defined" and kept the worker from installing (#886). The barrel still re-exports the handlers.
227
+ - Updated dependencies [a426fd8]
228
+ - Updated dependencies [b2df59a]
229
+ - Updated dependencies [823ec07]
230
+ - Updated dependencies [6a7af76]
231
+ - Updated dependencies [deeb8b5]
232
+ - Updated dependencies [a20f306]
233
+ - Updated dependencies [2be194f]
234
+ - Updated dependencies [0b9962b]
235
+ - Updated dependencies [606d231]
236
+ - Updated dependencies [0426848]
237
+ - Updated dependencies [077c0c0]
238
+ - Updated dependencies [fc11b22]
239
+ - Updated dependencies [685657b]
240
+ - Updated dependencies [5d0dd86]
241
+ - Updated dependencies [03eeaab]
242
+ - Updated dependencies [17d6ed1]
243
+ - Updated dependencies [f80189d]
244
+ - Updated dependencies [115705f]
245
+ - Updated dependencies [d1d1258]
246
+ - Updated dependencies [b46725d]
247
+ - Updated dependencies [f6e319b]
248
+ - Updated dependencies [fe73d7a]
249
+ - Updated dependencies [e6acb4b]
250
+ - Updated dependencies [2c4bf2c]
251
+ - Updated dependencies [c6f97da]
252
+ - Updated dependencies [6487697]
253
+ - Updated dependencies [8a0f3b9]
254
+ - Updated dependencies [aeace4a]
255
+ - Updated dependencies [fce5417]
256
+ - Updated dependencies [48b275d]
257
+ - Updated dependencies [fe61ffe]
258
+ - Updated dependencies [b480c02]
259
+ - Updated dependencies [f994de1]
260
+ - Updated dependencies [346e661]
261
+ - Updated dependencies [9f4c147]
262
+ - Updated dependencies [d35900e]
263
+ - Updated dependencies [74c4aff]
264
+ - Updated dependencies [5e98e3d]
265
+ - Updated dependencies [5425626]
266
+ - Updated dependencies [175ddd3]
267
+ - Updated dependencies [1171b1c]
268
+ - Updated dependencies [2732024]
269
+ - Updated dependencies [39b5300]
270
+ - Updated dependencies [8246e10]
271
+ - @marinoscar/platform-contract@0.1.0-next.4
272
+
3
273
  ## 0.1.0-next.3
4
274
 
5
275
  ### Minor Changes
package/README.md CHANGED
@@ -4,14 +4,32 @@ The React side of the platform: pages, components and hooks built on MUI, expose
4
4
 
5
5
  ## Purpose and scope
6
6
 
7
- Pages, components, hooks and settings-page descriptors of the platform's web slices. It does not own the app's router, theme or settings registries; the app binds the package's descriptors into its own.
7
+ Pages, components, hooks and settings-page descriptors of the platform's web slices. It does not own the app's router or settings registries; the app binds the package's descriptors into its own. The app's theme is the app's: the shell slice offers one to build on (`createShellTheme`).
8
8
 
9
- Status: pre-release (version `0.0.0`). The root export is only the package name (`PLATFORM_PACKAGE`); the slices are subpath exports, each with its own README:
9
+ Status: pre-release (the current channel and how to install it: the [release runbook](../../docs/runbooks/release-platform-packages.md)). The root export is only the package name (`PLATFORM_PACKAGE`); the slices are subpath exports, each with its own README:
10
10
 
11
11
  - `@marinoscar/platform-web/core`: the web host ports every packaged page reuses (`PlatformHostProvider`, `PlatformApiClient`, `PlatformViewer`, `PlatformSettingsPage`). [README](src/core/README.md).
12
12
  - `@marinoscar/platform-web/testing`: test doubles for those ports (`createTestPlatformHost`). [README](src/testing/README.md).
13
13
  - `@marinoscar/platform-web/doctor/headless` and `@marinoscar/platform-web/doctor/ui`: the admin Doctor page, its hook and client, and its settings-page descriptor (#696). [README](src/doctor/README.md).
14
14
  - `@marinoscar/platform-web/telemetry/headless` and `@marinoscar/platform-web/telemetry/ui` (plus `/telemetry/ui/settings-page`, `/explorer-page`, `/dashboard-page`): the telemetry settings page, explorer and dashboard, their client, hooks, app adapters, admin cards and theme-token contract (#704). [README](src/telemetry/README.md).
15
+ - `@marinoscar/platform-web/identity/headless` and `@marinoscar/platform-web/identity/ui`: the auth context and route guards, the identity client and data hooks, the sign-in provider registry, and the login, callback, device-activation, Access Tokens, Users & Allowlist and organization pages with their registry entries (#727). [README](src/identity/README.md).
16
+ - `@marinoscar/platform-web/settings/headless` and `@marinoscar/platform-web/settings/ui`: `SettingsHub`, the section registry's types and helpers, the open feature registry (`registerSettingsFeature`) and the settings hooks (`useSystemSettings`, `useUserSettings`, `useOrgSettings`) (#733). [README](src/settings/README.md).
17
+ - `@marinoscar/platform-web/sharing/headless` and `@marinoscar/platform-web/sharing/ui`: the sharing hooks and client (groups, members, invites, grants, link grants, shared with me, the public link), the link-renderer registry, the share dialog, the group pages, the public `/s` page and the groups settings-page descriptor (#731). [README](src/sharing/README.md).
18
+ - `@marinoscar/platform-web/credentials/headless` and `@marinoscar/platform-web/credentials/ui`: the write-only secret field `SecretField` and its unified helper text `savedSecretHelperText` (#735). [README](src/credentials/README.md).
19
+ - `@marinoscar/platform-web/onboarding/headless` and `@marinoscar/platform-web/onboarding/ui`: `OnboardingProvider` and `useOnboarding`, the welcome dialog, the checklist, the Setup guide and Getting started pages, the Activation section, `FeatureUnavailableNotice` and its registry, and the "Getting started" menu item (#745). [README](src/onboarding/README.md).
20
+ - `@marinoscar/platform-web/email/headless` and `@marinoscar/platform-web/email/ui`: the email settings hook `useEmailSettings` and the `/admin/settings/email` page `EmailSettingsPage` (#737). [README](src/email/README.md).
21
+ - `@marinoscar/platform-web/jobs/headless` and `@marinoscar/platform-web/jobs/ui`: the job queue client, hooks and adapters, and the Jobs and Job Insights pages with their registry entries (#854); it re-exports the worker-fleet names of the nodes slice. [README](src/jobs/README.md).
22
+ - `@marinoscar/platform-web/nodes/headless` and `@marinoscar/platform-web/nodes/ui`: the worker-fleet and node-credential client, hooks and adapters, and the Worker Nodes page with its registry entry (#881). [README](src/nodes/README.md).
23
+ - `@marinoscar/platform-web/storage/headless` and `@marinoscar/platform-web/storage/ui`: the storage config hook `useStorageConfig`, the storage-config and objects clients, and the `/admin/settings/storage` page `StorageConfigPage` with its switch dialog (#736). [README](src/storage/README.md).
24
+ - `@marinoscar/platform-web/exports/headless` and `@marinoscar/platform-web/exports/ui`: the exports client and hooks (`useExportSources`, `useExports`, `useCreateExport`, `useExport` with polling), `ExportDialog` (fields from the source's descriptor, `slots.form`), `ExportsList`, `DataExportPage` and the "Download your data" card descriptor (#744). [README](src/exports/README.md).
25
+ - `@marinoscar/platform-web/ai/headless` and `@marinoscar/platform-web/ai/ui`: the organization's own AI keys and effective AI policy hooks (`useOrgAiKeys`, `useOrgAiPolicy`) and the Organization AI keys page `OrgAiKeysPage` (#739). [README](src/ai/README.md).
26
+ - `@marinoscar/platform-web/db-backup/headless` and `@marinoscar/platform-web/db-backup/ui`: the db-backup client `createDbBackupApi`, the hooks `useDbBackupConfig` / `useDbBackupRuns` / `useDbBackupActions`, and the `/admin/settings/db-backup` page `DbBackupPage` with its admin card `dbBackupAdminSections` (#740). [README](src/db-backup/README.md).
27
+ - `@marinoscar/platform-web/notifications/headless` and `@marinoscar/platform-web/notifications/ui`: the notification provider and hooks, the push subscription services, the service-worker helpers, the AppBar bell, the permission banner, the preferences matrix and the user, admin policy, Web Push and Broadcasts pages. [README](src/notifications/README.md).
28
+ - `@marinoscar/platform-web/android-app/headless` and `@marinoscar/platform-web/android-app/ui`: the Trusted Web Activity launch helpers, the Android client and hooks, the update banner and the admin Android app page. [README](src/android-app/README.md).
29
+ - `@marinoscar/platform-web/user-data/headless` and `@marinoscar/platform-web/user-data/ui`: the user Danger Zone page, the admin factory reset page, the organization offboarding dialog, the typed-confirmation dialog and the start-and-poll hook. [README](src/user-data/README.md).
30
+ - `@marinoscar/platform-web/shell/headless` and `@marinoscar/platform-web/shell/ui`: the app shell: `ShellLayout` (the five coupled breakpoint gates), `ShellAppBar`, `ShellNavigationRail` (with Console mode), `ShellBottomNav`, `ShellUserMenu`, the navigation model (`ShellNavigation`, `ShellDestination`), the rail's collapse preference, `createShellTheme` with `ShellThemeProvider` / `ShellRoot`, and `ShellProviders`, with slots for branding and navigation (#868). [README](src/shell/README.md).
31
+ - `@marinoscar/platform-web/host/headless` and `@marinoscar/platform-web/host/ui`: the About page, the admin Maintenance page and the public maintenance screen, with the maintenance recogniser and block store, `createHostApi` and the `useAbout`, `useMaintenance` and `useMaintenanceBlock` hooks (#891). [README](src/host/README.md).
32
+ - `@marinoscar/platform-web/datatable/headless`, `@marinoscar/platform-web/datatable/ui` and `@marinoscar/platform-web/datatable/testing`: the responsive `DataTable` (desktop grid, tablet expander, phone cards) with its filters, view bar, CSV export and bulk actions, the layout-preference port `DataTablePreferencesPort`, and the jsdom layout stubs and conformance suite (#897). [README](src/datatable/README.md).
15
33
 
16
34
  ## Install and peer dependencies
17
35
 
@@ -19,19 +37,32 @@ Status: pre-release (version `0.0.0`). The root export is only the package name
19
37
  npm install @marinoscar/platform-web
20
38
  ```
21
39
 
22
- Install these in the app; the package never bundles its own copy (a second copy breaks dependency injection, hooks or theme context).
40
+ Install these in the app; the package never bundles its own copy (a second copy breaks dependency injection, hooks or theme context). Which ones depends on the slices you import: only what `core` needs is required, the rest are optional peers npm does not install for you ([the rule](../../docs/PACKAGES.md#peer-dependencies-per-slice)). Import slices by their subpath, never from the package root, which may touch any slice.
41
+
42
+ Required by every slice (`core`, with the peers MUI and Emotion need in turn):
23
43
 
24
44
  | Package | Range |
25
45
  |---|---|
26
46
  | `@emotion/react` | `^11.14.0` |
27
47
  | `@emotion/styled` | `^11.14.1` |
28
- | `@mui/icons-material` | `^9.1.0` |
29
48
  | `@mui/material` | `^9.1.0` |
30
49
  | `react` | `^19.2.7` |
31
50
  | `react-dom` | `^19.2.7` |
32
- | `react-router-dom` | `^7.17.0` |
33
51
 
34
- Optional peers, needed only by `@marinoscar/platform-web/telemetry/ui` (#704): `@mui/x-charts` `^9.14.0`, `@mui/x-data-grid` `^9.10.1`, `@uiw/react-codemirror` `^4.25.12` and `@codemirror/lang-sql` `^6.10.0`.
52
+ Optional peers, installed for the slices that need them:
53
+
54
+ | Package | Range | Needed by |
55
+ |---|---|---|
56
+ | `@mui/icons-material` | `^9.1.0` | every slice with a `/ui` entry (`doctor`, `identity`, `settings`, `sharing`, `onboarding`, `email`, `nodes`, `jobs`, `storage`, `notifications`, `exports`, `ai`, `db-backup`, `android-app`, `user-data`, `shell`, `host`, `datatable`, `telemetry`) |
57
+ | `react-router-dom` | `^7.17.0` | the same slices, except `exports` and `datatable` |
58
+ | `zod` | `^4.4.3` | `nodes`, `jobs` (and the app's own use of `@marinoscar/platform-contract`) |
59
+ | `@mui/x-data-grid` | `^9.10.1` | `datatable/ui` and, since the AI lists use it, `ai/ui`; `telemetry/ui` |
60
+ | `@mui/x-charts` | `^9.14.0` | `telemetry/ui` (#704) |
61
+ | `@uiw/react-codemirror` | `^4.25.12` | `telemetry/ui` |
62
+ | `@codemirror/lang-sql` | `^6.10.0` | `telemetry/ui` |
63
+ | `vitest`, `vitest-axe`, `@testing-library/react`, `@testing-library/user-event` | `^4.1.8`, `^1.0.0-pre.5`, `^16.3.2`, `^14.6.1` | `datatable/testing` only |
64
+
65
+ A slice also needs what the slices it depends on need (`packages/platform-slices.json`); the exact set per slice is `packages/platform-slice-peers.json`, and `node scripts/check-slice-peers.mjs --table` prints it.
35
66
 
36
67
  ## Quick start
37
68
 
@@ -54,6 +85,8 @@ None at the package level. `PlatformHostProvider`'s host is documented in the [c
54
85
 
55
86
  None. The root export is only the package name; the extension points live in the slice catalogs ([core](src/core/README.md#extension-point-catalog), [doctor](src/doctor/README.md#extension-point-catalog)).
56
87
 
88
+ The extension ladder and a recipe per extension: [docs/EXTENDING.md](../../docs/EXTENDING.md).
89
+
57
90
  ## Data
58
91
 
59
92
  None. The browser holds no data model; it reads and writes through the API.
@@ -0,0 +1,55 @@
1
+ import type { ComponentType, ReactElement, ReactNode } from 'react';
2
+ /**
3
+ * What {@link AiWebAdapters.Spinner} takes.
4
+ *
5
+ * @stability experimental
6
+ */
7
+ export interface AiSpinnerProps {
8
+ /** A whole-page wait. The AI pages never ask for one. */
9
+ fullScreen?: boolean;
10
+ }
11
+ /**
12
+ * What the AI pages take from the app. Every member is optional; keep the
13
+ * object a module constant.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * // apps/web/src/platform/aiAdapters.ts
18
+ * export const appAiAdapters: AiWebAdapters = { Spinner: LoadingSpinner };
19
+ * ```
20
+ *
21
+ * @extensionPoint option
22
+ * @stability experimental
23
+ */
24
+ export interface AiWebAdapters {
25
+ /** The app's loading spinner. Default an MUI `CircularProgress`. */
26
+ Spinner?: ComponentType<AiSpinnerProps>;
27
+ }
28
+ /**
29
+ * Hands the app's {@link AiWebAdapters} to every AI page below it. Mount it
30
+ * once, around the signed-in shell.
31
+ *
32
+ * @param props - `adapters`: the app's adapters (a module constant); `children`: the routed tree.
33
+ * @returns the provider element.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * <AiWebAdaptersProvider adapters={appAiAdapters}>{shell}</AiWebAdaptersProvider>
38
+ * ```
39
+ *
40
+ * @extensionPoint component
41
+ * @stability experimental
42
+ */
43
+ export declare function AiWebAdaptersProvider(props: {
44
+ adapters: AiWebAdapters;
45
+ children: ReactNode;
46
+ }): ReactElement;
47
+ /**
48
+ * The adapters in context (an empty object without a provider).
49
+ *
50
+ * @returns the app's AI adapters.
51
+ *
52
+ * @stability experimental
53
+ */
54
+ export declare function useAiWebAdapters(): AiWebAdapters;
55
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/ai/headless/adapters.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACzC;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,YAAY,CAMf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}