@aglyn/aglyn 1.0.0-beta.143

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 (963) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/package.json +66 -0
  4. package/src/index.d.ts +25 -0
  5. package/src/index.js +26 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/aglyn.d.ts +31 -0
  8. package/src/lib/aglyn.js +114 -0
  9. package/src/lib/aglyn.js.map +1 -0
  10. package/src/lib/app-utils/abuse-report.d.ts +193 -0
  11. package/src/lib/app-utils/abuse-report.js +321 -0
  12. package/src/lib/app-utils/abuse-report.js.map +1 -0
  13. package/src/lib/app-utils/accept-negotiation.d.ts +129 -0
  14. package/src/lib/app-utils/accept-negotiation.js +266 -0
  15. package/src/lib/app-utils/accept-negotiation.js.map +1 -0
  16. package/src/lib/app-utils/account-emails.d.ts +263 -0
  17. package/src/lib/app-utils/account-emails.js +264 -0
  18. package/src/lib/app-utils/account-emails.js.map +1 -0
  19. package/src/lib/app-utils/actions.d.ts +717 -0
  20. package/src/lib/app-utils/actions.js +1031 -0
  21. package/src/lib/app-utils/actions.js.map +1 -0
  22. package/src/lib/app-utils/activity-presenter.d.ts +152 -0
  23. package/src/lib/app-utils/activity-presenter.js +326 -0
  24. package/src/lib/app-utils/activity-presenter.js.map +1 -0
  25. package/src/lib/app-utils/advertising-tag-mounts.d.ts +133 -0
  26. package/src/lib/app-utils/advertising-tag-mounts.js +118 -0
  27. package/src/lib/app-utils/advertising-tag-mounts.js.map +1 -0
  28. package/src/lib/app-utils/advertising-tags.d.ts +307 -0
  29. package/src/lib/app-utils/advertising-tags.js +525 -0
  30. package/src/lib/app-utils/advertising-tags.js.map +1 -0
  31. package/src/lib/app-utils/agent-api-catalog.d.ts +94 -0
  32. package/src/lib/app-utils/agent-api-catalog.js +106 -0
  33. package/src/lib/app-utils/agent-api-catalog.js.map +1 -0
  34. package/src/lib/app-utils/agent-openapi.d.ts +103 -0
  35. package/src/lib/app-utils/agent-openapi.js +1128 -0
  36. package/src/lib/app-utils/agent-openapi.js.map +1 -0
  37. package/src/lib/app-utils/analytics-beacon.d.ts +154 -0
  38. package/src/lib/app-utils/analytics-beacon.js +152 -0
  39. package/src/lib/app-utils/analytics-beacon.js.map +1 -0
  40. package/src/lib/app-utils/analytics-environment.d.ts +133 -0
  41. package/src/lib/app-utils/analytics-environment.js +152 -0
  42. package/src/lib/app-utils/analytics-environment.js.map +1 -0
  43. package/src/lib/app-utils/analytics-events.d.ts +744 -0
  44. package/src/lib/app-utils/analytics-events.js +650 -0
  45. package/src/lib/app-utils/analytics-events.js.map +1 -0
  46. package/src/lib/app-utils/analytics-link-clicks.d.ts +102 -0
  47. package/src/lib/app-utils/analytics-link-clicks.js +267 -0
  48. package/src/lib/app-utils/analytics-link-clicks.js.map +1 -0
  49. package/src/lib/app-utils/analytics-path-key.d.ts +46 -0
  50. package/src/lib/app-utils/analytics-path-key.js +46 -0
  51. package/src/lib/app-utils/analytics-path-key.js.map +1 -0
  52. package/src/lib/app-utils/api-adapter.d.ts +47 -0
  53. package/src/lib/app-utils/api-adapter.js +367 -0
  54. package/src/lib/app-utils/api-adapter.js.map +1 -0
  55. package/src/lib/app-utils/api-idempotency.d.ts +169 -0
  56. package/src/lib/app-utils/api-idempotency.js +213 -0
  57. package/src/lib/app-utils/api-idempotency.js.map +1 -0
  58. package/src/lib/app-utils/api-plugins.d.ts +210 -0
  59. package/src/lib/app-utils/api-plugins.js +221 -0
  60. package/src/lib/app-utils/api-plugins.js.map +1 -0
  61. package/src/lib/app-utils/assist-credits.d.ts +482 -0
  62. package/src/lib/app-utils/assist-credits.js +509 -0
  63. package/src/lib/app-utils/assist-credits.js.map +1 -0
  64. package/src/lib/app-utils/attribution-attribute.d.ts +34 -0
  65. package/src/lib/app-utils/attribution-attribute.js +34 -0
  66. package/src/lib/app-utils/attribution-attribute.js.map +1 -0
  67. package/src/lib/app-utils/attribution-guard.d.ts +130 -0
  68. package/src/lib/app-utils/attribution-guard.js +410 -0
  69. package/src/lib/app-utils/attribution-guard.js.map +1 -0
  70. package/src/lib/app-utils/author-css.d.ts +123 -0
  71. package/src/lib/app-utils/author-css.js +275 -0
  72. package/src/lib/app-utils/author-css.js.map +1 -0
  73. package/src/lib/app-utils/author-html-markdown.d.ts +31 -0
  74. package/src/lib/app-utils/author-html-markdown.js +497 -0
  75. package/src/lib/app-utils/author-html-markdown.js.map +1 -0
  76. package/src/lib/app-utils/author-html.d.ts +135 -0
  77. package/src/lib/app-utils/author-html.js +1037 -0
  78. package/src/lib/app-utils/author-html.js.map +1 -0
  79. package/src/lib/app-utils/automation-placeholders.d.ts +72 -0
  80. package/src/lib/app-utils/automation-placeholders.js +207 -0
  81. package/src/lib/app-utils/automation-placeholders.js.map +1 -0
  82. package/src/lib/app-utils/bandwidth-cap.d.ts +183 -0
  83. package/src/lib/app-utils/bandwidth-cap.js +193 -0
  84. package/src/lib/app-utils/bandwidth-cap.js.map +1 -0
  85. package/src/lib/app-utils/binding-token-catalog.d.ts +82 -0
  86. package/src/lib/app-utils/binding-token-catalog.js +293 -0
  87. package/src/lib/app-utils/binding-token-catalog.js.map +1 -0
  88. package/src/lib/app-utils/binding-tokens.d.ts +157 -0
  89. package/src/lib/app-utils/binding-tokens.js +251 -0
  90. package/src/lib/app-utils/binding-tokens.js.map +1 -0
  91. package/src/lib/app-utils/breadcrumb-json-ld.d.ts +57 -0
  92. package/src/lib/app-utils/breadcrumb-json-ld.js +67 -0
  93. package/src/lib/app-utils/breadcrumb-json-ld.js.map +1 -0
  94. package/src/lib/app-utils/campaign-attribution.d.ts +117 -0
  95. package/src/lib/app-utils/campaign-attribution.js +162 -0
  96. package/src/lib/app-utils/campaign-attribution.js.map +1 -0
  97. package/src/lib/app-utils/campaign-forwarding.d.ts +220 -0
  98. package/src/lib/app-utils/campaign-forwarding.js +332 -0
  99. package/src/lib/app-utils/campaign-forwarding.js.map +1 -0
  100. package/src/lib/app-utils/campaign-membership.d.ts +109 -0
  101. package/src/lib/app-utils/campaign-membership.js +176 -0
  102. package/src/lib/app-utils/campaign-membership.js.map +1 -0
  103. package/src/lib/app-utils/campaign-touch.d.ts +206 -0
  104. package/src/lib/app-utils/campaign-touch.js +326 -0
  105. package/src/lib/app-utils/campaign-touch.js.map +1 -0
  106. package/src/lib/app-utils/child-contract-compose.d.ts +28 -0
  107. package/src/lib/app-utils/child-contract-compose.js +140 -0
  108. package/src/lib/app-utils/child-contract-compose.js.map +1 -0
  109. package/src/lib/app-utils/child-contract.d.ts +129 -0
  110. package/src/lib/app-utils/child-contract.js +153 -0
  111. package/src/lib/app-utils/child-contract.js.map +1 -0
  112. package/src/lib/app-utils/collection-delete.d.ts +113 -0
  113. package/src/lib/app-utils/collection-delete.js +120 -0
  114. package/src/lib/app-utils/collection-delete.js.map +1 -0
  115. package/src/lib/app-utils/collection-entries.d.ts +833 -0
  116. package/src/lib/app-utils/collection-entries.js +1285 -0
  117. package/src/lib/app-utils/collection-entries.js.map +1 -0
  118. package/src/lib/app-utils/collection-entry-date.d.ts +129 -0
  119. package/src/lib/app-utils/collection-entry-date.js +183 -0
  120. package/src/lib/app-utils/collection-entry-date.js.map +1 -0
  121. package/src/lib/app-utils/collection-kind.d.ts +55 -0
  122. package/src/lib/app-utils/collection-kind.js +69 -0
  123. package/src/lib/app-utils/collection-kind.js.map +1 -0
  124. package/src/lib/app-utils/collection-slug.d.ts +79 -0
  125. package/src/lib/app-utils/collection-slug.js +70 -0
  126. package/src/lib/app-utils/collection-slug.js.map +1 -0
  127. package/src/lib/app-utils/compose-layout-nodes.d.ts +147 -0
  128. package/src/lib/app-utils/compose-layout-nodes.js +261 -0
  129. package/src/lib/app-utils/compose-layout-nodes.js.map +1 -0
  130. package/src/lib/app-utils/compose-layout-props.d.ts +71 -0
  131. package/src/lib/app-utils/compose-layout-props.js +61 -0
  132. package/src/lib/app-utils/compose-layout-props.js.map +1 -0
  133. package/src/lib/app-utils/compose-reusable-components.d.ts +504 -0
  134. package/src/lib/app-utils/compose-reusable-components.js +1366 -0
  135. package/src/lib/app-utils/compose-reusable-components.js.map +1 -0
  136. package/src/lib/app-utils/compress.d.ts +35 -0
  137. package/src/lib/app-utils/compress.js +38 -0
  138. package/src/lib/app-utils/compress.js.map +1 -0
  139. package/src/lib/app-utils/consent-banner-ui.d.ts +226 -0
  140. package/src/lib/app-utils/consent-banner-ui.js +583 -0
  141. package/src/lib/app-utils/consent-banner-ui.js.map +1 -0
  142. package/src/lib/app-utils/consent-groups.d.ts +189 -0
  143. package/src/lib/app-utils/consent-groups.js +219 -0
  144. package/src/lib/app-utils/consent-groups.js.map +1 -0
  145. package/src/lib/app-utils/consent-preferences-dialog.d.ts +58 -0
  146. package/src/lib/app-utils/consent-preferences-dialog.js +106 -0
  147. package/src/lib/app-utils/consent-preferences-dialog.js.map +1 -0
  148. package/src/lib/app-utils/console-record-links.d.ts +163 -0
  149. package/src/lib/app-utils/console-record-links.js +178 -0
  150. package/src/lib/app-utils/console-record-links.js.map +1 -0
  151. package/src/lib/app-utils/console-routes.d.ts +658 -0
  152. package/src/lib/app-utils/console-routes.js +489 -0
  153. package/src/lib/app-utils/console-routes.js.map +1 -0
  154. package/src/lib/app-utils/console-widget-slot-context.d.ts +46 -0
  155. package/src/lib/app-utils/console-widget-slot-context.js +23 -0
  156. package/src/lib/app-utils/console-widget-slot-context.js.map +1 -0
  157. package/src/lib/app-utils/contact-custom-fields.d.ts +191 -0
  158. package/src/lib/app-utils/contact-custom-fields.js +349 -0
  159. package/src/lib/app-utils/contact-custom-fields.js.map +1 -0
  160. package/src/lib/app-utils/contact-holder.d.ts +52 -0
  161. package/src/lib/app-utils/contact-holder.js +98 -0
  162. package/src/lib/app-utils/contact-holder.js.map +1 -0
  163. package/src/lib/app-utils/contact-merge.d.ts +136 -0
  164. package/src/lib/app-utils/contact-merge.js +379 -0
  165. package/src/lib/app-utils/contact-merge.js.map +1 -0
  166. package/src/lib/app-utils/contacts.d.ts +554 -0
  167. package/src/lib/app-utils/contacts.js +401 -0
  168. package/src/lib/app-utils/contacts.js.map +1 -0
  169. package/src/lib/app-utils/content-author-profile.d.ts +68 -0
  170. package/src/lib/app-utils/content-author-profile.js +118 -0
  171. package/src/lib/app-utils/content-author-profile.js.map +1 -0
  172. package/src/lib/app-utils/content-authors.d.ts +662 -0
  173. package/src/lib/app-utils/content-authors.js +771 -0
  174. package/src/lib/app-utils/content-authors.js.map +1 -0
  175. package/src/lib/app-utils/content-schema-type.d.ts +81 -0
  176. package/src/lib/app-utils/content-schema-type.js +87 -0
  177. package/src/lib/app-utils/content-schema-type.js.map +1 -0
  178. package/src/lib/app-utils/contexts.d.ts +35 -0
  179. package/src/lib/app-utils/contexts.js +35 -0
  180. package/src/lib/app-utils/contexts.js.map +1 -0
  181. package/src/lib/app-utils/create-resource-uid.d.ts +18 -0
  182. package/src/lib/app-utils/create-resource-uid.js +23 -0
  183. package/src/lib/app-utils/create-resource-uid.js.map +1 -0
  184. package/src/lib/app-utils/crm-booking.d.ts +75 -0
  185. package/src/lib/app-utils/crm-booking.js +133 -0
  186. package/src/lib/app-utils/crm-booking.js.map +1 -0
  187. package/src/lib/app-utils/crm-csv.d.ts +232 -0
  188. package/src/lib/app-utils/crm-csv.js +432 -0
  189. package/src/lib/app-utils/crm-csv.js.map +1 -0
  190. package/src/lib/app-utils/crm-digest.d.ts +179 -0
  191. package/src/lib/app-utils/crm-digest.js +271 -0
  192. package/src/lib/app-utils/crm-digest.js.map +1 -0
  193. package/src/lib/app-utils/crm-email-templates.d.ts +172 -0
  194. package/src/lib/app-utils/crm-email-templates.js +382 -0
  195. package/src/lib/app-utils/crm-email-templates.js.map +1 -0
  196. package/src/lib/app-utils/crm-inbound.d.ts +245 -0
  197. package/src/lib/app-utils/crm-inbound.js +407 -0
  198. package/src/lib/app-utils/crm-inbound.js.map +1 -0
  199. package/src/lib/app-utils/crm-kinds.d.ts +73 -0
  200. package/src/lib/app-utils/crm-kinds.js +92 -0
  201. package/src/lib/app-utils/crm-kinds.js.map +1 -0
  202. package/src/lib/app-utils/crm-next-activity.d.ts +107 -0
  203. package/src/lib/app-utils/crm-next-activity.js +140 -0
  204. package/src/lib/app-utils/crm-next-activity.js.map +1 -0
  205. package/src/lib/app-utils/crm-reports.d.ts +479 -0
  206. package/src/lib/app-utils/crm-reports.js +680 -0
  207. package/src/lib/app-utils/crm-reports.js.map +1 -0
  208. package/src/lib/app-utils/crm-task-reminders.d.ts +129 -0
  209. package/src/lib/app-utils/crm-task-reminders.js +139 -0
  210. package/src/lib/app-utils/crm-task-reminders.js.map +1 -0
  211. package/src/lib/app-utils/crm.d.ts +1546 -0
  212. package/src/lib/app-utils/crm.js +1814 -0
  213. package/src/lib/app-utils/crm.js.map +1 -0
  214. package/src/lib/app-utils/csp-report.d.ts +84 -0
  215. package/src/lib/app-utils/csp-report.js +177 -0
  216. package/src/lib/app-utils/csp-report.js.map +1 -0
  217. package/src/lib/app-utils/csv-import.d.ts +192 -0
  218. package/src/lib/app-utils/csv-import.js +279 -0
  219. package/src/lib/app-utils/csv-import.js.map +1 -0
  220. package/src/lib/app-utils/dataset-csv.d.ts +109 -0
  221. package/src/lib/app-utils/dataset-csv.js +235 -0
  222. package/src/lib/app-utils/dataset-csv.js.map +1 -0
  223. package/src/lib/app-utils/dataset-models.d.ts +194 -0
  224. package/src/lib/app-utils/dataset-models.js +409 -0
  225. package/src/lib/app-utils/dataset-models.js.map +1 -0
  226. package/src/lib/app-utils/dataset-query.d.ts +57 -0
  227. package/src/lib/app-utils/dataset-query.js +126 -0
  228. package/src/lib/app-utils/dataset-query.js.map +1 -0
  229. package/src/lib/app-utils/datasets.d.ts +136 -0
  230. package/src/lib/app-utils/datasets.js +177 -0
  231. package/src/lib/app-utils/datasets.js.map +1 -0
  232. package/src/lib/app-utils/decompress.d.ts +36 -0
  233. package/src/lib/app-utils/decompress.js +32 -0
  234. package/src/lib/app-utils/decompress.js.map +1 -0
  235. package/src/lib/app-utils/dedicated-sending-domain.d.ts +47 -0
  236. package/src/lib/app-utils/dedicated-sending-domain.js +114 -0
  237. package/src/lib/app-utils/dedicated-sending-domain.js.map +1 -0
  238. package/src/lib/app-utils/deferred-image.d.ts +86 -0
  239. package/src/lib/app-utils/deferred-image.js +83 -0
  240. package/src/lib/app-utils/deferred-image.js.map +1 -0
  241. package/src/lib/app-utils/definition-canvas-tree.d.ts +61 -0
  242. package/src/lib/app-utils/definition-canvas-tree.js +126 -0
  243. package/src/lib/app-utils/definition-canvas-tree.js.map +1 -0
  244. package/src/lib/app-utils/deployment-shape.d.ts +167 -0
  245. package/src/lib/app-utils/deployment-shape.js +238 -0
  246. package/src/lib/app-utils/deployment-shape.js.map +1 -0
  247. package/src/lib/app-utils/detect-template-placeholders.d.ts +30 -0
  248. package/src/lib/app-utils/detect-template-placeholders.js +53 -0
  249. package/src/lib/app-utils/detect-template-placeholders.js.map +1 -0
  250. package/src/lib/app-utils/dmca-counter-notice.d.ts +185 -0
  251. package/src/lib/app-utils/dmca-counter-notice.js +277 -0
  252. package/src/lib/app-utils/dmca-counter-notice.js.map +1 -0
  253. package/src/lib/app-utils/docs-deflection.d.ts +156 -0
  254. package/src/lib/app-utils/docs-deflection.js +547 -0
  255. package/src/lib/app-utils/docs-deflection.js.map +1 -0
  256. package/src/lib/app-utils/docs-help.d.ts +57 -0
  257. package/src/lib/app-utils/docs-help.generated.d.ts +303 -0
  258. package/src/lib/app-utils/docs-help.generated.js +867 -0
  259. package/src/lib/app-utils/docs-help.generated.js.map +1 -0
  260. package/src/lib/app-utils/docs-help.js +46 -0
  261. package/src/lib/app-utils/docs-help.js.map +1 -0
  262. package/src/lib/app-utils/docs-index.generated.d.ts +29 -0
  263. package/src/lib/app-utils/docs-index.generated.js +8388 -0
  264. package/src/lib/app-utils/docs-index.generated.js.map +1 -0
  265. package/src/lib/app-utils/docs-retrieval.d.ts +67 -0
  266. package/src/lib/app-utils/docs-retrieval.js +188 -0
  267. package/src/lib/app-utils/docs-retrieval.js.map +1 -0
  268. package/src/lib/app-utils/document-landmark.d.ts +50 -0
  269. package/src/lib/app-utils/document-landmark.js +100 -0
  270. package/src/lib/app-utils/document-landmark.js.map +1 -0
  271. package/src/lib/app-utils/duplicate-resource.d.ts +101 -0
  272. package/src/lib/app-utils/duplicate-resource.js +206 -0
  273. package/src/lib/app-utils/duplicate-resource.js.map +1 -0
  274. package/src/lib/app-utils/dynamic-list-rule.d.ts +471 -0
  275. package/src/lib/app-utils/dynamic-list-rule.js +914 -0
  276. package/src/lib/app-utils/dynamic-list-rule.js.map +1 -0
  277. package/src/lib/app-utils/element-animation.d.ts +200 -0
  278. package/src/lib/app-utils/element-animation.js +233 -0
  279. package/src/lib/app-utils/element-animation.js.map +1 -0
  280. package/src/lib/app-utils/element-hidden-style.d.ts +46 -0
  281. package/src/lib/app-utils/element-hidden-style.js +48 -0
  282. package/src/lib/app-utils/element-hidden-style.js.map +1 -0
  283. package/src/lib/app-utils/element-ui.d.ts +243 -0
  284. package/src/lib/app-utils/element-ui.js +459 -0
  285. package/src/lib/app-utils/element-ui.js.map +1 -0
  286. package/src/lib/app-utils/email-starter-policy.d.ts +160 -0
  287. package/src/lib/app-utils/email-starter-policy.js +327 -0
  288. package/src/lib/app-utils/email-starter-policy.js.map +1 -0
  289. package/src/lib/app-utils/email-topics.d.ts +310 -0
  290. package/src/lib/app-utils/email-topics.js +336 -0
  291. package/src/lib/app-utils/email-topics.js.map +1 -0
  292. package/src/lib/app-utils/enabled-plugins-context.d.ts +100 -0
  293. package/src/lib/app-utils/enabled-plugins-context.js +113 -0
  294. package/src/lib/app-utils/enabled-plugins-context.js.map +1 -0
  295. package/src/lib/app-utils/ensure-canvas-root.d.ts +38 -0
  296. package/src/lib/app-utils/ensure-canvas-root.js +61 -0
  297. package/src/lib/app-utils/ensure-canvas-root.js.map +1 -0
  298. package/src/lib/app-utils/entity-picker-context.d.ts +199 -0
  299. package/src/lib/app-utils/entity-picker-context.js +93 -0
  300. package/src/lib/app-utils/entity-picker-context.js.map +1 -0
  301. package/src/lib/app-utils/error-beacon.d.ts +107 -0
  302. package/src/lib/app-utils/error-beacon.js +296 -0
  303. package/src/lib/app-utils/error-beacon.js.map +1 -0
  304. package/src/lib/app-utils/expand-repeatables.d.ts +172 -0
  305. package/src/lib/app-utils/expand-repeatables.js +299 -0
  306. package/src/lib/app-utils/expand-repeatables.js.map +1 -0
  307. package/src/lib/app-utils/foreign-script.d.ts +82 -0
  308. package/src/lib/app-utils/foreign-script.js +102 -0
  309. package/src/lib/app-utils/foreign-script.js.map +1 -0
  310. package/src/lib/app-utils/form-abuse-ceiling.d.ts +146 -0
  311. package/src/lib/app-utils/form-abuse-ceiling.js +158 -0
  312. package/src/lib/app-utils/form-abuse-ceiling.js.map +1 -0
  313. package/src/lib/app-utils/form-contract.d.ts +198 -0
  314. package/src/lib/app-utils/form-contract.js +282 -0
  315. package/src/lib/app-utils/form-contract.js.map +1 -0
  316. package/src/lib/app-utils/form-dataset-binding.d.ts +50 -0
  317. package/src/lib/app-utils/form-dataset-binding.js +74 -0
  318. package/src/lib/app-utils/form-dataset-binding.js.map +1 -0
  319. package/src/lib/app-utils/forms.d.ts +727 -0
  320. package/src/lib/app-utils/forms.js +777 -0
  321. package/src/lib/app-utils/forms.js.map +1 -0
  322. package/src/lib/app-utils/functions.d.ts +188 -0
  323. package/src/lib/app-utils/functions.js +529 -0
  324. package/src/lib/app-utils/functions.js.map +1 -0
  325. package/src/lib/app-utils/guarded-version-save.d.ts +91 -0
  326. package/src/lib/app-utils/guarded-version-save.js +131 -0
  327. package/src/lib/app-utils/guarded-version-save.js.map +1 -0
  328. package/src/lib/app-utils/health-report.d.ts +1766 -0
  329. package/src/lib/app-utils/health-report.js +2072 -0
  330. package/src/lib/app-utils/health-report.js.map +1 -0
  331. package/src/lib/app-utils/host-naming.d.ts +135 -0
  332. package/src/lib/app-utils/host-naming.js +188 -0
  333. package/src/lib/app-utils/host-naming.js.map +1 -0
  334. package/src/lib/app-utils/host-permissions.d.ts +76 -0
  335. package/src/lib/app-utils/host-permissions.js +119 -0
  336. package/src/lib/app-utils/host-permissions.js.map +1 -0
  337. package/src/lib/app-utils/host-tokens.d.ts +228 -0
  338. package/src/lib/app-utils/host-tokens.js +304 -0
  339. package/src/lib/app-utils/host-tokens.js.map +1 -0
  340. package/src/lib/app-utils/idp-profile.d.ts +83 -0
  341. package/src/lib/app-utils/idp-profile.js +268 -0
  342. package/src/lib/app-utils/idp-profile.js.map +1 -0
  343. package/src/lib/app-utils/image-upload-types.d.ts +49 -0
  344. package/src/lib/app-utils/image-upload-types.js +86 -0
  345. package/src/lib/app-utils/image-upload-types.js.map +1 -0
  346. package/src/lib/app-utils/index.d.ts +18 -0
  347. package/src/lib/app-utils/index.js +23 -0
  348. package/src/lib/app-utils/index.js.map +1 -0
  349. package/src/lib/app-utils/internal-traffic.d.ts +197 -0
  350. package/src/lib/app-utils/internal-traffic.js +288 -0
  351. package/src/lib/app-utils/internal-traffic.js.map +1 -0
  352. package/src/lib/app-utils/lineal-order.d.ts +62 -0
  353. package/src/lib/app-utils/lineal-order.js +65 -0
  354. package/src/lib/app-utils/lineal-order.js.map +1 -0
  355. package/src/lib/app-utils/link-references.d.ts +36 -0
  356. package/src/lib/app-utils/link-references.js +89 -0
  357. package/src/lib/app-utils/link-references.js.map +1 -0
  358. package/src/lib/app-utils/link-target-search-context.d.ts +123 -0
  359. package/src/lib/app-utils/link-target-search-context.js +221 -0
  360. package/src/lib/app-utils/link-target-search-context.js.map +1 -0
  361. package/src/lib/app-utils/list-assignment-policy.d.ts +169 -0
  362. package/src/lib/app-utils/list-assignment-policy.js +170 -0
  363. package/src/lib/app-utils/list-assignment-policy.js.map +1 -0
  364. package/src/lib/app-utils/list-import.d.ts +158 -0
  365. package/src/lib/app-utils/list-import.js +332 -0
  366. package/src/lib/app-utils/list-import.js.map +1 -0
  367. package/src/lib/app-utils/llms-txt.d.ts +104 -0
  368. package/src/lib/app-utils/llms-txt.js +144 -0
  369. package/src/lib/app-utils/llms-txt.js.map +1 -0
  370. package/src/lib/app-utils/local-storage-budget.d.ts +75 -0
  371. package/src/lib/app-utils/local-storage-budget.js +153 -0
  372. package/src/lib/app-utils/local-storage-budget.js.map +1 -0
  373. package/src/lib/app-utils/lockdown.d.ts +698 -0
  374. package/src/lib/app-utils/lockdown.js +929 -0
  375. package/src/lib/app-utils/lockdown.js.map +1 -0
  376. package/src/lib/app-utils/margin-utilization.d.ts +267 -0
  377. package/src/lib/app-utils/margin-utilization.js +351 -0
  378. package/src/lib/app-utils/margin-utilization.js.map +1 -0
  379. package/src/lib/app-utils/markdown-lite.d.ts +297 -0
  380. package/src/lib/app-utils/markdown-lite.js +705 -0
  381. package/src/lib/app-utils/markdown-lite.js.map +1 -0
  382. package/src/lib/app-utils/marketing-consent.d.ts +704 -0
  383. package/src/lib/app-utils/marketing-consent.js +783 -0
  384. package/src/lib/app-utils/marketing-consent.js.map +1 -0
  385. package/src/lib/app-utils/marketplace-listing-visibility.d.ts +120 -0
  386. package/src/lib/app-utils/marketplace-listing-visibility.js +139 -0
  387. package/src/lib/app-utils/marketplace-listing-visibility.js.map +1 -0
  388. package/src/lib/app-utils/marketplace-overrides.d.ts +271 -0
  389. package/src/lib/app-utils/marketplace-overrides.js +462 -0
  390. package/src/lib/app-utils/marketplace-overrides.js.map +1 -0
  391. package/src/lib/app-utils/marketplace-provenance.d.ts +150 -0
  392. package/src/lib/app-utils/marketplace-provenance.js +136 -0
  393. package/src/lib/app-utils/marketplace-provenance.js.map +1 -0
  394. package/src/lib/app-utils/marketplace-theme.d.ts +237 -0
  395. package/src/lib/app-utils/marketplace-theme.js +525 -0
  396. package/src/lib/app-utils/marketplace-theme.js.map +1 -0
  397. package/src/lib/app-utils/marketplace-update-state.d.ts +119 -0
  398. package/src/lib/app-utils/marketplace-update-state.js +132 -0
  399. package/src/lib/app-utils/marketplace-update-state.js.map +1 -0
  400. package/src/lib/app-utils/marketplace-verification.d.ts +95 -0
  401. package/src/lib/app-utils/marketplace-verification.js +81 -0
  402. package/src/lib/app-utils/marketplace-verification.js.map +1 -0
  403. package/src/lib/app-utils/measure-node-map.d.ts +76 -0
  404. package/src/lib/app-utils/measure-node-map.js +111 -0
  405. package/src/lib/app-utils/measure-node-map.js.map +1 -0
  406. package/src/lib/app-utils/media-alt.d.ts +55 -0
  407. package/src/lib/app-utils/media-alt.js +58 -0
  408. package/src/lib/app-utils/media-alt.js.map +1 -0
  409. package/src/lib/app-utils/media-asset-facts.d.ts +125 -0
  410. package/src/lib/app-utils/media-asset-facts.js +467 -0
  411. package/src/lib/app-utils/media-asset-facts.js.map +1 -0
  412. package/src/lib/app-utils/media-cdn-scope.d.ts +65 -0
  413. package/src/lib/app-utils/media-cdn-scope.js +75 -0
  414. package/src/lib/app-utils/media-cdn-scope.js.map +1 -0
  415. package/src/lib/app-utils/media-folders.d.ts +161 -0
  416. package/src/lib/app-utils/media-folders.js +230 -0
  417. package/src/lib/app-utils/media-folders.js.map +1 -0
  418. package/src/lib/app-utils/media-metadata.d.ts +277 -0
  419. package/src/lib/app-utils/media-metadata.js +388 -0
  420. package/src/lib/app-utils/media-metadata.js.map +1 -0
  421. package/src/lib/app-utils/media-picker-context.d.ts +93 -0
  422. package/src/lib/app-utils/media-picker-context.js +26 -0
  423. package/src/lib/app-utils/media-picker-context.js.map +1 -0
  424. package/src/lib/app-utils/media-quarantine.d.ts +247 -0
  425. package/src/lib/app-utils/media-quarantine.js +323 -0
  426. package/src/lib/app-utils/media-quarantine.js.map +1 -0
  427. package/src/lib/app-utils/media-ref.d.ts +661 -0
  428. package/src/lib/app-utils/media-ref.js +1055 -0
  429. package/src/lib/app-utils/media-ref.js.map +1 -0
  430. package/src/lib/app-utils/media-takedown-reach.d.ts +126 -0
  431. package/src/lib/app-utils/media-takedown-reach.js +143 -0
  432. package/src/lib/app-utils/media-takedown-reach.js.map +1 -0
  433. package/src/lib/app-utils/member-email-aliases.d.ts +180 -0
  434. package/src/lib/app-utils/member-email-aliases.js +217 -0
  435. package/src/lib/app-utils/member-email-aliases.js.map +1 -0
  436. package/src/lib/app-utils/merge-node-sx.d.ts +47 -0
  437. package/src/lib/app-utils/merge-node-sx.js +123 -0
  438. package/src/lib/app-utils/merge-node-sx.js.map +1 -0
  439. package/src/lib/app-utils/name-match.d.ts +155 -0
  440. package/src/lib/app-utils/name-match.js +175 -0
  441. package/src/lib/app-utils/name-match.js.map +1 -0
  442. package/src/lib/app-utils/name-search.d.ts +117 -0
  443. package/src/lib/app-utils/name-search.js +145 -0
  444. package/src/lib/app-utils/name-search.js.map +1 -0
  445. package/src/lib/app-utils/node-capabilities.d.ts +85 -0
  446. package/src/lib/app-utils/node-capabilities.js +88 -0
  447. package/src/lib/app-utils/node-capabilities.js.map +1 -0
  448. package/src/lib/app-utils/node-definition-sanitizer.d.ts +164 -0
  449. package/src/lib/app-utils/node-definition-sanitizer.js +402 -0
  450. package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -0
  451. package/src/lib/app-utils/node-identity.d.ts +47 -0
  452. package/src/lib/app-utils/node-identity.js +50 -0
  453. package/src/lib/app-utils/node-identity.js.map +1 -0
  454. package/src/lib/app-utils/node-interactions.d.ts +102 -0
  455. package/src/lib/app-utils/node-interactions.js +192 -0
  456. package/src/lib/app-utils/node-interactions.js.map +1 -0
  457. package/src/lib/app-utils/node-url-policy.d.ts +54 -0
  458. package/src/lib/app-utils/node-url-policy.js +72 -0
  459. package/src/lib/app-utils/node-url-policy.js.map +1 -0
  460. package/src/lib/app-utils/notifications.d.ts +71 -0
  461. package/src/lib/app-utils/notifications.js +101 -0
  462. package/src/lib/app-utils/notifications.js.map +1 -0
  463. package/src/lib/app-utils/onboarding-deep-link.d.ts +120 -0
  464. package/src/lib/app-utils/onboarding-deep-link.js +142 -0
  465. package/src/lib/app-utils/onboarding-deep-link.js.map +1 -0
  466. package/src/lib/app-utils/operator-identity.d.ts +207 -0
  467. package/src/lib/app-utils/operator-identity.js +186 -0
  468. package/src/lib/app-utils/operator-identity.js.map +1 -0
  469. package/src/lib/app-utils/org-billing-doc.d.ts +231 -0
  470. package/src/lib/app-utils/org-billing-doc.js +238 -0
  471. package/src/lib/app-utils/org-billing-doc.js.map +1 -0
  472. package/src/lib/app-utils/org-override-reason.d.ts +100 -0
  473. package/src/lib/app-utils/org-override-reason.js +116 -0
  474. package/src/lib/app-utils/org-override-reason.js.map +1 -0
  475. package/src/lib/app-utils/org-permissions.d.ts +194 -0
  476. package/src/lib/app-utils/org-permissions.js +357 -0
  477. package/src/lib/app-utils/org-permissions.js.map +1 -0
  478. package/src/lib/app-utils/org-roles.d.ts +72 -0
  479. package/src/lib/app-utils/org-roles.js +131 -0
  480. package/src/lib/app-utils/org-roles.js.map +1 -0
  481. package/src/lib/app-utils/organizations.d.ts +407 -0
  482. package/src/lib/app-utils/organizations.js +511 -0
  483. package/src/lib/app-utils/organizations.js.map +1 -0
  484. package/src/lib/app-utils/page-header-actions-context.d.ts +83 -0
  485. package/src/lib/app-utils/page-header-actions-context.js +58 -0
  486. package/src/lib/app-utils/page-header-actions-context.js.map +1 -0
  487. package/src/lib/app-utils/page-header-record-context.d.ts +80 -0
  488. package/src/lib/app-utils/page-header-record-context.js +64 -0
  489. package/src/lib/app-utils/page-header-record-context.js.map +1 -0
  490. package/src/lib/app-utils/page-markdown.d.ts +103 -0
  491. package/src/lib/app-utils/page-markdown.js +385 -0
  492. package/src/lib/app-utils/page-markdown.js.map +1 -0
  493. package/src/lib/app-utils/paid-media-source.d.ts +90 -0
  494. package/src/lib/app-utils/paid-media-source.js +184 -0
  495. package/src/lib/app-utils/paid-media-source.js.map +1 -0
  496. package/src/lib/app-utils/palette-sx.d.ts +34 -0
  497. package/src/lib/app-utils/palette-sx.js +150 -0
  498. package/src/lib/app-utils/palette-sx.js.map +1 -0
  499. package/src/lib/app-utils/password-policy.d.ts +47 -0
  500. package/src/lib/app-utils/password-policy.js +46 -0
  501. package/src/lib/app-utils/password-policy.js.map +1 -0
  502. package/src/lib/app-utils/payments-configured.d.ts +84 -0
  503. package/src/lib/app-utils/payments-configured.js +88 -0
  504. package/src/lib/app-utils/payments-configured.js.map +1 -0
  505. package/src/lib/app-utils/person-erasure.d.ts +126 -0
  506. package/src/lib/app-utils/person-erasure.js +121 -0
  507. package/src/lib/app-utils/person-erasure.js.map +1 -0
  508. package/src/lib/app-utils/person-key.d.ts +32 -0
  509. package/src/lib/app-utils/person-key.js +62 -0
  510. package/src/lib/app-utils/person-key.js.map +1 -0
  511. package/src/lib/app-utils/plan-entitlements.d.ts +2756 -0
  512. package/src/lib/app-utils/plan-entitlements.js +4085 -0
  513. package/src/lib/app-utils/plan-entitlements.js.map +1 -0
  514. package/src/lib/app-utils/platform-ad-conversions.d.ts +122 -0
  515. package/src/lib/app-utils/platform-ad-conversions.js +174 -0
  516. package/src/lib/app-utils/platform-ad-conversions.js.map +1 -0
  517. package/src/lib/app-utils/platform-advertising-tags.d.ts +139 -0
  518. package/src/lib/app-utils/platform-advertising-tags.js +203 -0
  519. package/src/lib/app-utils/platform-advertising-tags.js.map +1 -0
  520. package/src/lib/app-utils/platform-brand.d.ts +151 -0
  521. package/src/lib/app-utils/platform-brand.js +175 -0
  522. package/src/lib/app-utils/platform-brand.js.map +1 -0
  523. package/src/lib/app-utils/platform-consent-default.d.ts +142 -0
  524. package/src/lib/app-utils/platform-consent-default.js +295 -0
  525. package/src/lib/app-utils/platform-consent-default.js.map +1 -0
  526. package/src/lib/app-utils/platform-marketing-consent.d.ts +151 -0
  527. package/src/lib/app-utils/platform-marketing-consent.js +182 -0
  528. package/src/lib/app-utils/platform-marketing-consent.js.map +1 -0
  529. package/src/lib/app-utils/platform-marketing-host.d.ts +33 -0
  530. package/src/lib/app-utils/platform-marketing-host.js +97 -0
  531. package/src/lib/app-utils/platform-marketing-host.js.map +1 -0
  532. package/src/lib/app-utils/platform-visitor-consent.d.ts +252 -0
  533. package/src/lib/app-utils/platform-visitor-consent.js +533 -0
  534. package/src/lib/app-utils/platform-visitor-consent.js.map +1 -0
  535. package/src/lib/app-utils/plugin-api-cross-origin.d.ts +61 -0
  536. package/src/lib/app-utils/plugin-api-cross-origin.js +202 -0
  537. package/src/lib/app-utils/plugin-api-cross-origin.js.map +1 -0
  538. package/src/lib/app-utils/plugin-api-rate-limit.d.ts +192 -0
  539. package/src/lib/app-utils/plugin-api-rate-limit.js +270 -0
  540. package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -0
  541. package/src/lib/app-utils/plugin-artifact-path.d.ts +32 -0
  542. package/src/lib/app-utils/plugin-artifact-path.js +33 -0
  543. package/src/lib/app-utils/plugin-artifact-path.js.map +1 -0
  544. package/src/lib/app-utils/plugin-bundle-checks.d.ts +148 -0
  545. package/src/lib/app-utils/plugin-bundle-checks.js +989 -0
  546. package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -0
  547. package/src/lib/app-utils/plugin-manifest.d.ts +516 -0
  548. package/src/lib/app-utils/plugin-manifest.js +687 -0
  549. package/src/lib/app-utils/plugin-manifest.js.map +1 -0
  550. package/src/lib/app-utils/published-legal-pages.d.ts +71 -0
  551. package/src/lib/app-utils/published-legal-pages.js +90 -0
  552. package/src/lib/app-utils/published-legal-pages.js.map +1 -0
  553. package/src/lib/app-utils/publisher-agreement.d.ts +254 -0
  554. package/src/lib/app-utils/publisher-agreement.js +274 -0
  555. package/src/lib/app-utils/publisher-agreement.js.map +1 -0
  556. package/src/lib/app-utils/publisher-attestation.d.ts +99 -0
  557. package/src/lib/app-utils/publisher-attestation.js +158 -0
  558. package/src/lib/app-utils/publisher-attestation.js.map +1 -0
  559. package/src/lib/app-utils/recipient-email-render.d.ts +216 -0
  560. package/src/lib/app-utils/recipient-email-render.js +221 -0
  561. package/src/lib/app-utils/recipient-email-render.js.map +1 -0
  562. package/src/lib/app-utils/redispatch-caught-error.d.ts +38 -0
  563. package/src/lib/app-utils/redispatch-caught-error.js +46 -0
  564. package/src/lib/app-utils/redispatch-caught-error.js.map +1 -0
  565. package/src/lib/app-utils/registering-plugin.d.ts +19 -0
  566. package/src/lib/app-utils/registering-plugin.js +38 -0
  567. package/src/lib/app-utils/registering-plugin.js.map +1 -0
  568. package/src/lib/app-utils/release-flags.d.ts +283 -0
  569. package/src/lib/app-utils/release-flags.js +518 -0
  570. package/src/lib/app-utils/release-flags.js.map +1 -0
  571. package/src/lib/app-utils/repair-canvas-nodes.d.ts +130 -0
  572. package/src/lib/app-utils/repair-canvas-nodes.js +298 -0
  573. package/src/lib/app-utils/repair-canvas-nodes.js.map +1 -0
  574. package/src/lib/app-utils/repeat-infringer.d.ts +166 -0
  575. package/src/lib/app-utils/repeat-infringer.js +188 -0
  576. package/src/lib/app-utils/repeat-infringer.js.map +1 -0
  577. package/src/lib/app-utils/repeat-sources.d.ts +115 -0
  578. package/src/lib/app-utils/repeat-sources.js +86 -0
  579. package/src/lib/app-utils/repeat-sources.js.map +1 -0
  580. package/src/lib/app-utils/request-geo.d.ts +114 -0
  581. package/src/lib/app-utils/request-geo.js +247 -0
  582. package/src/lib/app-utils/request-geo.js.map +1 -0
  583. package/src/lib/app-utils/request-ip.d.ts +213 -0
  584. package/src/lib/app-utils/request-ip.js +344 -0
  585. package/src/lib/app-utils/request-ip.js.map +1 -0
  586. package/src/lib/app-utils/resolve-named-tokens.d.ts +26 -0
  587. package/src/lib/app-utils/resolve-named-tokens.js +59 -0
  588. package/src/lib/app-utils/resolve-named-tokens.js.map +1 -0
  589. package/src/lib/app-utils/responsive-typography-sx.d.ts +77 -0
  590. package/src/lib/app-utils/responsive-typography-sx.js +122 -0
  591. package/src/lib/app-utils/responsive-typography-sx.js.map +1 -0
  592. package/src/lib/app-utils/reusable-component-keys.d.ts +135 -0
  593. package/src/lib/app-utils/reusable-component-keys.js +140 -0
  594. package/src/lib/app-utils/reusable-component-keys.js.map +1 -0
  595. package/src/lib/app-utils/reusable-prop-values.d.ts +199 -0
  596. package/src/lib/app-utils/reusable-prop-values.js +494 -0
  597. package/src/lib/app-utils/reusable-prop-values.js.map +1 -0
  598. package/src/lib/app-utils/safe-json-ld.d.ts +29 -0
  599. package/src/lib/app-utils/safe-json-ld.js +37 -0
  600. package/src/lib/app-utils/safe-json-ld.js.map +1 -0
  601. package/src/lib/app-utils/sanitize-svg.d.ts +55 -0
  602. package/src/lib/app-utils/sanitize-svg.js +460 -0
  603. package/src/lib/app-utils/sanitize-svg.js.map +1 -0
  604. package/src/lib/app-utils/scheme-sx.d.ts +84 -0
  605. package/src/lib/app-utils/scheme-sx.js +148 -0
  606. package/src/lib/app-utils/scheme-sx.js.map +1 -0
  607. package/src/lib/app-utils/scope-tokens.d.ts +249 -0
  608. package/src/lib/app-utils/scope-tokens.js +331 -0
  609. package/src/lib/app-utils/scope-tokens.js.map +1 -0
  610. package/src/lib/app-utils/screen-link-context-value.d.ts +57 -0
  611. package/src/lib/app-utils/screen-link-context-value.js +43 -0
  612. package/src/lib/app-utils/screen-link-context-value.js.map +1 -0
  613. package/src/lib/app-utils/screen-link-context.d.ts +185 -0
  614. package/src/lib/app-utils/screen-link-context.js +304 -0
  615. package/src/lib/app-utils/screen-link-context.js.map +1 -0
  616. package/src/lib/app-utils/screen-link-value.d.ts +269 -0
  617. package/src/lib/app-utils/screen-link-value.js +384 -0
  618. package/src/lib/app-utils/screen-link-value.js.map +1 -0
  619. package/src/lib/app-utils/screen-route.d.ts +669 -0
  620. package/src/lib/app-utils/screen-route.js +751 -0
  621. package/src/lib/app-utils/screen-route.js.map +1 -0
  622. package/src/lib/app-utils/screen-seo-fields.d.ts +37 -0
  623. package/src/lib/app-utils/screen-seo-fields.js +42 -0
  624. package/src/lib/app-utils/screen-seo-fields.js.map +1 -0
  625. package/src/lib/app-utils/search-indexing.d.ts +162 -0
  626. package/src/lib/app-utils/search-indexing.js +207 -0
  627. package/src/lib/app-utils/search-indexing.js.map +1 -0
  628. package/src/lib/app-utils/seo-listing-fields.d.ts +70 -0
  629. package/src/lib/app-utils/seo-listing-fields.js +75 -0
  630. package/src/lib/app-utils/seo-listing-fields.js.map +1 -0
  631. package/src/lib/app-utils/seo-locale.d.ts +119 -0
  632. package/src/lib/app-utils/seo-locale.js +133 -0
  633. package/src/lib/app-utils/seo-locale.js.map +1 -0
  634. package/src/lib/app-utils/seo-title-variables.d.ts +149 -0
  635. package/src/lib/app-utils/seo-title-variables.js +190 -0
  636. package/src/lib/app-utils/seo-title-variables.js.map +1 -0
  637. package/src/lib/app-utils/seo-title.d.ts +70 -0
  638. package/src/lib/app-utils/seo-title.js +117 -0
  639. package/src/lib/app-utils/seo-title.js.map +1 -0
  640. package/src/lib/app-utils/server.d.ts +174 -0
  641. package/src/lib/app-utils/server.js +314 -0
  642. package/src/lib/app-utils/server.js.map +1 -0
  643. package/src/lib/app-utils/site-context.d.ts +106 -0
  644. package/src/lib/app-utils/site-context.js +100 -0
  645. package/src/lib/app-utils/site-context.js.map +1 -0
  646. package/src/lib/app-utils/sitemap.d.ts +117 -0
  647. package/src/lib/app-utils/sitemap.js +183 -0
  648. package/src/lib/app-utils/sitemap.js.map +1 -0
  649. package/src/lib/app-utils/social-image.d.ts +112 -0
  650. package/src/lib/app-utils/social-image.js +191 -0
  651. package/src/lib/app-utils/social-image.js.map +1 -0
  652. package/src/lib/app-utils/starter-templates.d.ts +99 -0
  653. package/src/lib/app-utils/starter-templates.js +579 -0
  654. package/src/lib/app-utils/starter-templates.js.map +1 -0
  655. package/src/lib/app-utils/stored-nodes.d.ts +120 -0
  656. package/src/lib/app-utils/stored-nodes.js +174 -0
  657. package/src/lib/app-utils/stored-nodes.js.map +1 -0
  658. package/src/lib/app-utils/strip-undefined.d.ts +59 -0
  659. package/src/lib/app-utils/strip-undefined.js +95 -0
  660. package/src/lib/app-utils/strip-undefined.js.map +1 -0
  661. package/src/lib/app-utils/stripe-deployment-mode.d.ts +47 -0
  662. package/src/lib/app-utils/stripe-deployment-mode.js +70 -0
  663. package/src/lib/app-utils/stripe-deployment-mode.js.map +1 -0
  664. package/src/lib/app-utils/support-tiers.d.ts +108 -0
  665. package/src/lib/app-utils/support-tiers.js +201 -0
  666. package/src/lib/app-utils/support-tiers.js.map +1 -0
  667. package/src/lib/app-utils/timezone-geo-hint.d.ts +36 -0
  668. package/src/lib/app-utils/timezone-geo-hint.js +180 -0
  669. package/src/lib/app-utils/timezone-geo-hint.js.map +1 -0
  670. package/src/lib/app-utils/upload-cors.d.ts +155 -0
  671. package/src/lib/app-utils/upload-cors.js +254 -0
  672. package/src/lib/app-utils/upload-cors.js.map +1 -0
  673. package/src/lib/app-utils/upload-inspection.d.ts +159 -0
  674. package/src/lib/app-utils/upload-inspection.js +539 -0
  675. package/src/lib/app-utils/upload-inspection.js.map +1 -0
  676. package/src/lib/app-utils/url-slug.d.ts +40 -0
  677. package/src/lib/app-utils/url-slug.js +42 -0
  678. package/src/lib/app-utils/url-slug.js.map +1 -0
  679. package/src/lib/app-utils/usage-budget.d.ts +429 -0
  680. package/src/lib/app-utils/usage-budget.js +421 -0
  681. package/src/lib/app-utils/usage-budget.js.map +1 -0
  682. package/src/lib/app-utils/variables.d.ts +96 -0
  683. package/src/lib/app-utils/variables.js +233 -0
  684. package/src/lib/app-utils/variables.js.map +1 -0
  685. package/src/lib/app-utils/video-asset-facts.d.ts +61 -0
  686. package/src/lib/app-utils/video-asset-facts.js +70 -0
  687. package/src/lib/app-utils/video-asset-facts.js.map +1 -0
  688. package/src/lib/app-utils/video-object.d.ts +89 -0
  689. package/src/lib/app-utils/video-object.js +245 -0
  690. package/src/lib/app-utils/video-object.js.map +1 -0
  691. package/src/lib/app-utils/visitor-consent.d.ts +757 -0
  692. package/src/lib/app-utils/visitor-consent.js +981 -0
  693. package/src/lib/app-utils/visitor-consent.js.map +1 -0
  694. package/src/lib/app-utils/visitor-record-ceiling.d.ts +223 -0
  695. package/src/lib/app-utils/visitor-record-ceiling.js +215 -0
  696. package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -0
  697. package/src/lib/app-utils/web-vitals-rum.d.ts +53 -0
  698. package/src/lib/app-utils/web-vitals-rum.js +278 -0
  699. package/src/lib/app-utils/web-vitals-rum.js.map +1 -0
  700. package/src/lib/app-utils/webhook-delivery.d.ts +324 -0
  701. package/src/lib/app-utils/webhook-delivery.js +413 -0
  702. package/src/lib/app-utils/webhook-delivery.js.map +1 -0
  703. package/src/lib/app-utils/where-used.d.ts +57 -0
  704. package/src/lib/app-utils/where-used.js +59 -0
  705. package/src/lib/app-utils/where-used.js.map +1 -0
  706. package/src/lib/app-utils/wistia-embed.d.ts +86 -0
  707. package/src/lib/app-utils/wistia-embed.js +119 -0
  708. package/src/lib/app-utils/wistia-embed.js.map +1 -0
  709. package/src/lib/app-utils/workflows.d.ts +136 -0
  710. package/src/lib/app-utils/workflows.js +346 -0
  711. package/src/lib/app-utils/workflows.js.map +1 -0
  712. package/src/lib/canvas-manager/canvas-manager-tree.d.ts +109 -0
  713. package/src/lib/canvas-manager/canvas-manager-tree.js +139 -0
  714. package/src/lib/canvas-manager/canvas-manager-tree.js.map +1 -0
  715. package/src/lib/canvas-manager/canvas-manager.d.ts +549 -0
  716. package/src/lib/canvas-manager/canvas-manager.js +1311 -0
  717. package/src/lib/canvas-manager/canvas-manager.js.map +1 -0
  718. package/src/lib/canvas-manager/index.d.ts +20 -0
  719. package/src/lib/canvas-manager/index.js +21 -0
  720. package/src/lib/canvas-manager/index.js.map +1 -0
  721. package/src/lib/canvas-manager/stores/index.d.ts +17 -0
  722. package/src/lib/canvas-manager/stores/index.js +18 -0
  723. package/src/lib/canvas-manager/stores/index.js.map +1 -0
  724. package/src/lib/canvas-manager/stores/node.store.d.ts +30 -0
  725. package/src/lib/canvas-manager/stores/node.store.js +45 -0
  726. package/src/lib/canvas-manager/stores/node.store.js.map +1 -0
  727. package/src/lib/components-manager/components-manager.d.ts +56 -0
  728. package/src/lib/components-manager/components-manager.js +191 -0
  729. package/src/lib/components-manager/components-manager.js.map +1 -0
  730. package/src/lib/components-manager/index.d.ts +18 -0
  731. package/src/lib/components-manager/index.js +19 -0
  732. package/src/lib/components-manager/index.js.map +1 -0
  733. package/src/lib/emit-manager/emit-manager.d.ts +56 -0
  734. package/src/lib/emit-manager/emit-manager.js +60 -0
  735. package/src/lib/emit-manager/emit-manager.js.map +1 -0
  736. package/src/lib/emit-manager/index.d.ts +18 -0
  737. package/src/lib/emit-manager/index.js +19 -0
  738. package/src/lib/emit-manager/index.js.map +1 -0
  739. package/src/lib/foundation/constants/_internal.d.ts +18 -0
  740. package/src/lib/foundation/constants/_internal.js +62 -0
  741. package/src/lib/foundation/constants/_internal.js.map +1 -0
  742. package/src/lib/foundation/constants/app.d.ts +23 -0
  743. package/src/lib/foundation/constants/app.js +25 -0
  744. package/src/lib/foundation/constants/app.js.map +1 -0
  745. package/src/lib/foundation/constants/canvas.d.ts +18 -0
  746. package/src/lib/foundation/constants/canvas.js +18 -0
  747. package/src/lib/foundation/constants/canvas.js.map +1 -0
  748. package/src/lib/foundation/constants/components.d.ts +54 -0
  749. package/src/lib/foundation/constants/components.js +61 -0
  750. package/src/lib/foundation/constants/components.js.map +1 -0
  751. package/src/lib/foundation/constants/shared.d.ts +50 -0
  752. package/src/lib/foundation/constants/shared.js +49 -0
  753. package/src/lib/foundation/constants/shared.js.map +1 -0
  754. package/src/lib/foundation/constants/symbol.d.ts +63 -0
  755. package/src/lib/foundation/constants/symbol.js +75 -0
  756. package/src/lib/foundation/constants/symbol.js.map +1 -0
  757. package/src/lib/foundation/definitions/components.types.d.ts +372 -0
  758. package/src/lib/foundation/definitions/components.types.js +180 -0
  759. package/src/lib/foundation/definitions/components.types.js.map +1 -0
  760. package/src/lib/foundation/definitions/contact.types.d.ts +73 -0
  761. package/src/lib/foundation/definitions/contact.types.js +107 -0
  762. package/src/lib/foundation/definitions/contact.types.js.map +1 -0
  763. package/src/lib/foundation/definitions/host-content-collections.d.ts +137 -0
  764. package/src/lib/foundation/definitions/host-content-collections.js +219 -0
  765. package/src/lib/foundation/definitions/host-content-collections.js.map +1 -0
  766. package/src/lib/foundation/definitions/org-billing.types.d.ts +1361 -0
  767. package/src/lib/foundation/definitions/org-billing.types.js +77 -0
  768. package/src/lib/foundation/definitions/org-billing.types.js.map +1 -0
  769. package/src/lib/foundation/definitions/organization.types.d.ts +307 -0
  770. package/src/lib/foundation/definitions/organization.types.js +42 -0
  771. package/src/lib/foundation/definitions/organization.types.js.map +1 -0
  772. package/src/lib/foundation/definitions/platform.types.d.ts +1326 -0
  773. package/src/lib/foundation/definitions/platform.types.js +124 -0
  774. package/src/lib/foundation/definitions/platform.types.js.map +1 -0
  775. package/src/lib/foundation/definitions/property-kinds.d.ts +189 -0
  776. package/src/lib/foundation/definitions/property-kinds.js +565 -0
  777. package/src/lib/foundation/definitions/property-kinds.js.map +1 -0
  778. package/src/lib/foundation/definitions/shared.d.ts +23 -0
  779. package/src/lib/foundation/definitions/shared.js +18 -0
  780. package/src/lib/foundation/definitions/shared.js.map +1 -0
  781. package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +249 -0
  782. package/src/lib/foundation/definitions/write-deny-coverage.util.js +499 -0
  783. package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -0
  784. package/src/lib/foundation/index.d.ts +32 -0
  785. package/src/lib/foundation/index.js +67 -0
  786. package/src/lib/foundation/index.js.map +1 -0
  787. package/src/lib/lifecycle.d.ts +24 -0
  788. package/src/lib/lifecycle.js +39 -0
  789. package/src/lib/lifecycle.js.map +1 -0
  790. package/src/lib/mst/common.d.ts +17 -0
  791. package/src/lib/mst/common.js +23 -0
  792. package/src/lib/mst/common.js.map +1 -0
  793. package/src/lib/mst/index.d.ts +19 -0
  794. package/src/lib/mst/index.js +20 -0
  795. package/src/lib/mst/index.js.map +1 -0
  796. package/src/lib/mst/json.d.ts +22 -0
  797. package/src/lib/mst/json.js +23 -0
  798. package/src/lib/mst/json.js.map +1 -0
  799. package/src/lib/mst/types.d.ts +20 -0
  800. package/src/lib/mst/types.js +18 -0
  801. package/src/lib/mst/types.js.map +1 -0
  802. package/src/lib/plugin-manager/billing-webhook-hooks.d.ts +77 -0
  803. package/src/lib/plugin-manager/billing-webhook-hooks.js +55 -0
  804. package/src/lib/plugin-manager/billing-webhook-hooks.js.map +1 -0
  805. package/src/lib/plugin-manager/commerce-zone-props.d.ts +172 -0
  806. package/src/lib/plugin-manager/commerce-zone-props.js +31 -0
  807. package/src/lib/plugin-manager/commerce-zone-props.js.map +1 -0
  808. package/src/lib/plugin-manager/custom-fields.d.ts +60 -0
  809. package/src/lib/plugin-manager/custom-fields.js +39 -0
  810. package/src/lib/plugin-manager/custom-fields.js.map +1 -0
  811. package/src/lib/plugin-manager/editor-sessions.d.ts +109 -0
  812. package/src/lib/plugin-manager/editor-sessions.js +137 -0
  813. package/src/lib/plugin-manager/editor-sessions.js.map +1 -0
  814. package/src/lib/plugin-manager/enabled-plugins.d.ts +438 -0
  815. package/src/lib/plugin-manager/enabled-plugins.js +403 -0
  816. package/src/lib/plugin-manager/enabled-plugins.js.map +1 -0
  817. package/src/lib/plugin-manager/feature-plugins.d.ts +1314 -0
  818. package/src/lib/plugin-manager/feature-plugins.js +609 -0
  819. package/src/lib/plugin-manager/feature-plugins.js.map +1 -0
  820. package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +11 -0
  821. package/src/lib/plugin-manager/first-party-plugins.generated.js +149 -0
  822. package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -0
  823. package/src/lib/plugin-manager/index.d.ts +42 -0
  824. package/src/lib/plugin-manager/index.js +46 -0
  825. package/src/lib/plugin-manager/index.js.map +1 -0
  826. package/src/lib/plugin-manager/install-presets.d.ts +93 -0
  827. package/src/lib/plugin-manager/install-presets.js +86 -0
  828. package/src/lib/plugin-manager/install-presets.js.map +1 -0
  829. package/src/lib/plugin-manager/media-delivery-provider.d.ts +124 -0
  830. package/src/lib/plugin-manager/media-delivery-provider.js +53 -0
  831. package/src/lib/plugin-manager/media-delivery-provider.js.map +1 -0
  832. package/src/lib/plugin-manager/order-fulfilment.d.ts +142 -0
  833. package/src/lib/plugin-manager/order-fulfilment.js +104 -0
  834. package/src/lib/plugin-manager/order-fulfilment.js.map +1 -0
  835. package/src/lib/plugin-manager/plugin-activity-actions.d.ts +122 -0
  836. package/src/lib/plugin-manager/plugin-activity-actions.js +140 -0
  837. package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -0
  838. package/src/lib/plugin-manager/plugin-bridge.d.ts +98 -0
  839. package/src/lib/plugin-manager/plugin-bridge.js +154 -0
  840. package/src/lib/plugin-manager/plugin-bridge.js.map +1 -0
  841. package/src/lib/plugin-manager/plugin-config.d.ts +148 -0
  842. package/src/lib/plugin-manager/plugin-config.js +228 -0
  843. package/src/lib/plugin-manager/plugin-config.js.map +1 -0
  844. package/src/lib/plugin-manager/plugin-console-crons.d.ts +139 -0
  845. package/src/lib/plugin-manager/plugin-console-crons.js +177 -0
  846. package/src/lib/plugin-manager/plugin-console-crons.js.map +1 -0
  847. package/src/lib/plugin-manager/plugin-contact-capture.d.ts +220 -0
  848. package/src/lib/plugin-manager/plugin-contact-capture.js +89 -0
  849. package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -0
  850. package/src/lib/plugin-manager/plugin-contributions.d.ts +244 -0
  851. package/src/lib/plugin-manager/plugin-contributions.js +283 -0
  852. package/src/lib/plugin-manager/plugin-contributions.js.map +1 -0
  853. package/src/lib/plugin-manager/plugin-entitlement-keys.d.ts +169 -0
  854. package/src/lib/plugin-manager/plugin-entitlement-keys.js +84 -0
  855. package/src/lib/plugin-manager/plugin-entitlement-keys.js.map +1 -0
  856. package/src/lib/plugin-manager/plugin-entitlements.d.ts +181 -0
  857. package/src/lib/plugin-manager/plugin-entitlements.js +188 -0
  858. package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -0
  859. package/src/lib/plugin-manager/plugin-events.d.ts +145 -0
  860. package/src/lib/plugin-manager/plugin-events.js +79 -0
  861. package/src/lib/plugin-manager/plugin-events.js.map +1 -0
  862. package/src/lib/plugin-manager/plugin-figures.d.ts +251 -0
  863. package/src/lib/plugin-manager/plugin-figures.js +252 -0
  864. package/src/lib/plugin-manager/plugin-figures.js.map +1 -0
  865. package/src/lib/plugin-manager/plugin-host-collections.d.ts +146 -0
  866. package/src/lib/plugin-manager/plugin-host-collections.js +116 -0
  867. package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -0
  868. package/src/lib/plugin-manager/plugin-jobs.d.ts +130 -0
  869. package/src/lib/plugin-manager/plugin-jobs.js +182 -0
  870. package/src/lib/plugin-manager/plugin-jobs.js.map +1 -0
  871. package/src/lib/plugin-manager/plugin-loader.d.ts +86 -0
  872. package/src/lib/plugin-manager/plugin-loader.js +223 -0
  873. package/src/lib/plugin-manager/plugin-loader.js.map +1 -0
  874. package/src/lib/plugin-manager/plugin-manager.d.ts +95 -0
  875. package/src/lib/plugin-manager/plugin-manager.js +343 -0
  876. package/src/lib/plugin-manager/plugin-manager.js.map +1 -0
  877. package/src/lib/plugin-manager/plugin-metered-lines.d.ts +97 -0
  878. package/src/lib/plugin-manager/plugin-metered-lines.js +123 -0
  879. package/src/lib/plugin-manager/plugin-metered-lines.js.map +1 -0
  880. package/src/lib/plugin-manager/plugin-org-erasure.d.ts +52 -0
  881. package/src/lib/plugin-manager/plugin-org-erasure.js +100 -0
  882. package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -0
  883. package/src/lib/plugin-manager/plugin-permissions.d.ts +69 -0
  884. package/src/lib/plugin-manager/plugin-permissions.js +77 -0
  885. package/src/lib/plugin-manager/plugin-permissions.js.map +1 -0
  886. package/src/lib/plugin-manager/plugin-person-erasure.d.ts +58 -0
  887. package/src/lib/plugin-manager/plugin-person-erasure.js +109 -0
  888. package/src/lib/plugin-manager/plugin-person-erasure.js.map +1 -0
  889. package/src/lib/plugin-manager/plugin-record-cards.d.ts +99 -0
  890. package/src/lib/plugin-manager/plugin-record-cards.js +59 -0
  891. package/src/lib/plugin-manager/plugin-record-cards.js.map +1 -0
  892. package/src/lib/plugin-manager/plugin-record-facts.d.ts +111 -0
  893. package/src/lib/plugin-manager/plugin-record-facts.js +51 -0
  894. package/src/lib/plugin-manager/plugin-record-facts.js.map +1 -0
  895. package/src/lib/plugin-manager/plugin-record-routes.d.ts +129 -0
  896. package/src/lib/plugin-manager/plugin-record-routes.js +93 -0
  897. package/src/lib/plugin-manager/plugin-record-routes.js.map +1 -0
  898. package/src/lib/plugin-manager/plugin-record-timeline.d.ts +147 -0
  899. package/src/lib/plugin-manager/plugin-record-timeline.js +39 -0
  900. package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -0
  901. package/src/lib/plugin-manager/plugin-resource-drafts.d.ts +137 -0
  902. package/src/lib/plugin-manager/plugin-resource-drafts.js +51 -0
  903. package/src/lib/plugin-manager/plugin-resource-drafts.js.map +1 -0
  904. package/src/lib/plugin-manager/plugin-services.d.ts +94 -0
  905. package/src/lib/plugin-manager/plugin-services.js +153 -0
  906. package/src/lib/plugin-manager/plugin-services.js.map +1 -0
  907. package/src/lib/plugin-manager/plugin-styles-ui.d.ts +71 -0
  908. package/src/lib/plugin-manager/plugin-styles-ui.js +80 -0
  909. package/src/lib/plugin-manager/plugin-styles-ui.js.map +1 -0
  910. package/src/lib/plugin-manager/plugin-styles.d.ts +176 -0
  911. package/src/lib/plugin-manager/plugin-styles.js +186 -0
  912. package/src/lib/plugin-manager/plugin-styles.js.map +1 -0
  913. package/src/lib/plugin-manager/plugin-subprocessors.d.ts +135 -0
  914. package/src/lib/plugin-manager/plugin-subprocessors.js +129 -0
  915. package/src/lib/plugin-manager/plugin-subprocessors.js.map +1 -0
  916. package/src/lib/plugin-manager/plugin-tax-profile.d.ts +84 -0
  917. package/src/lib/plugin-manager/plugin-tax-profile.js +39 -0
  918. package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -0
  919. package/src/lib/plugin-manager/plugin-user-erasure.d.ts +53 -0
  920. package/src/lib/plugin-manager/plugin-user-erasure.js +84 -0
  921. package/src/lib/plugin-manager/plugin-user-erasure.js.map +1 -0
  922. package/src/lib/plugin-manager/plugin-zones.d.ts +121 -0
  923. package/src/lib/plugin-manager/plugin-zones.js +74 -0
  924. package/src/lib/plugin-manager/plugin-zones.js.map +1 -0
  925. package/src/lib/plugin-manager/realm-plugins.d.ts +112 -0
  926. package/src/lib/plugin-manager/realm-plugins.js +196 -0
  927. package/src/lib/plugin-manager/realm-plugins.js.map +1 -0
  928. package/src/lib/plugin-manager/realm-server.d.ts +54 -0
  929. package/src/lib/plugin-manager/realm-server.js +88 -0
  930. package/src/lib/plugin-manager/realm-server.js.map +1 -0
  931. package/src/lib/plugin-manager/record-zone-props.d.ts +126 -0
  932. package/src/lib/plugin-manager/record-zone-props.js +31 -0
  933. package/src/lib/plugin-manager/record-zone-props.js.map +1 -0
  934. package/src/lib/plugin-manager/site-page-hooks.d.ts +102 -0
  935. package/src/lib/plugin-manager/site-page-hooks.js +114 -0
  936. package/src/lib/plugin-manager/site-page-hooks.js.map +1 -0
  937. package/src/lib/plugin-manager/site-runtime.d.ts +57 -0
  938. package/src/lib/plugin-manager/site-runtime.js +25 -0
  939. package/src/lib/plugin-manager/site-runtime.js.map +1 -0
  940. package/src/lib/plugin-manager/usage-alert-contributors.d.ts +115 -0
  941. package/src/lib/plugin-manager/usage-alert-contributors.js +106 -0
  942. package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -0
  943. package/src/lib/types/ast.d.ts +199 -0
  944. package/src/lib/types/ast.js +20 -0
  945. package/src/lib/types/ast.js.map +1 -0
  946. package/src/lib/types/index.d.ts +20 -0
  947. package/src/lib/types/index.js +21 -0
  948. package/src/lib/types/index.js.map +1 -0
  949. package/src/lib/types/nodes.d.ts +608 -0
  950. package/src/lib/types/nodes.js +28 -0
  951. package/src/lib/types/nodes.js.map +1 -0
  952. package/src/lib/types/routing.d.ts +17 -0
  953. package/src/lib/types/routing.js +18 -0
  954. package/src/lib/types/routing.js.map +1 -0
  955. package/src/lib/types/screen.d.ts +23 -0
  956. package/src/lib/types/screen.js +18 -0
  957. package/src/lib/types/screen.js.map +1 -0
  958. package/src/lib/utils.d.ts +25 -0
  959. package/src/lib/utils.js +42 -0
  960. package/src/lib/utils.js.map +1 -0
  961. package/src/server.d.ts +37 -0
  962. package/src/server.js +55 -0
  963. package/src/server.js.map +1 -0
@@ -0,0 +1,1314 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import type { OrgPermissions } from '../app-utils/org-permissions';
18
+ import type { SeoListingFieldKey } from '../app-utils/seo-listing-fields';
19
+ import type { AglynOrgBilling, OrgFeatureFlags } from '../foundation';
20
+ import type { ComponentSchema, MdiIconProps, PresetSchema } from '../types/nodes';
21
+ import type { Plugin, PluginId } from './plugin-manager';
22
+ import type { HostThemeSource } from '../app-utils/marketplace-theme';
23
+ import type { HostTheme, HostThemeScheme } from '@aglyn/shared-data-types';
24
+ import type { ComponentType } from 'react';
25
+ export type { ConsoleProductCopyValues, ConsoleProductDraft, ConsoleProductEditorZoneProps, ConsoleProductImportZoneProps, ConsoleProductOption, ConsoleProductSummary, ConsoleProductType, ConsoleProductsHubZoneProps, ConsoleProposedDiscount, ConsoleProposedProduct, } from './commerce-zone-props';
26
+ export type { ConsoleImportMappingZoneProps, ConsoleRecordEmailZoneProps, ConsoleRecordInsightsZoneProps, } from './record-zone-props';
27
+ /** The mui bundle id every UI feature bundle depends on. */
28
+ export declare const MUI_BUNDLE_ID: PluginId;
29
+ export interface FeatureBundleEntry {
30
+ component: any;
31
+ schema: ComponentSchema<any>;
32
+ presets?: PresetSchema[];
33
+ }
34
+ /** The slice of ComponentManager a feature bundle needs (structural). */
35
+ export interface ComponentRegistrar {
36
+ registerComponent(component: any, schema: ComponentSchema<any>): void;
37
+ registerPreset(presets: PresetSchema[]): void;
38
+ unregisterComponent(componentId: string): void;
39
+ unregisterPreset(presetIds: string[]): void;
40
+ }
41
+ export interface UiFeatureBundleOptions {
42
+ /** Stable bundle id — persisted as `pluginId` in screen docs; never rename. */
43
+ bundleId: PluginId;
44
+ displayName: string;
45
+ description?: string;
46
+ icon?: MdiIconProps;
47
+ /** Extra bundle ids this feature needs beyond mui. */
48
+ dependsOn?: PluginId[];
49
+ components: FeatureBundleEntry[];
50
+ }
51
+ /**
52
+ * UI half of the pattern: a plugin-registry bundle whose load/destroy
53
+ * register the feature's components + presets against the given
54
+ * registrar (`Aglyn.components` in apps), declared as depending on the
55
+ * mui bundle so the registry loads mui first.
56
+ */
57
+ export declare function defineUiFeatureBundle(options: UiFeatureBundleOptions, registrar: ComponentRegistrar): Plugin;
58
+ /**
59
+ * One of the organization's sites, as the shell hands them to a surface
60
+ * mounted at the ORGANIZATION level (AGL-2630).
61
+ *
62
+ * The three facts a cross-site surface needs and a record never carries: a
63
+ * record holds a host DOCUMENT ID, a console URL under `/hosts/[host]` takes
64
+ * the SUBDOMAIN, and a person reads the NAME. `subdomain` is null for a site
65
+ * whose document did not answer — such a site is still named (the
66
+ * relationship is real) and never linked (the route would not exist).
67
+ */
68
+ export interface ConsolePluginOrgHost {
69
+ id: string;
70
+ name: string;
71
+ subdomain: string | null;
72
+ }
73
+ /**
74
+ * The organization a surface is mounted under when it is mounted at the
75
+ * org level rather than under a site (AGL-2630).
76
+ *
77
+ * The CRM exists at two levels: the site hub, where `hostId` names the site
78
+ * and every read is scoped to it, and `/[orgSlug]/crm`, where an org-wide
79
+ * member sees every site's records at once. At the org level there is no
80
+ * site, so the shell hands the org's own site list instead — the pickers a
81
+ * create needs (a record is always captured BY a site) and the names a
82
+ * cross-site fact is shown under. `hostsReady` separates "no sites" from
83
+ * "not yet".
84
+ */
85
+ export interface ConsolePluginOrgMount {
86
+ orgId: string;
87
+ hosts: readonly ConsolePluginOrgHost[];
88
+ hostsReady: boolean;
89
+ /**
90
+ * The console path every site's own hub hangs beneath — `/[orgSlug]/hosts`
91
+ * — so a cross-site fact can link a person into the site that holds them:
92
+ * a site's CRM is `${hostsPath}/${subdomain}/crm`. A path rather than a
93
+ * builder because the mount is data the shell hands over and a plugin
94
+ * cannot import the console's route table.
95
+ */
96
+ hostsPath: string;
97
+ }
98
+ /**
99
+ * Props every plugin-contributed console page receives from the shell's
100
+ * generic host route. The shell owns auth + chrome + flag gating and
101
+ * passes the resolved host and entitlement state in, so plugin pages stay
102
+ * free of console-app hooks.
103
+ */
104
+ export interface ConsolePluginPageProps {
105
+ /**
106
+ * The site this surface is mounted under — or `null` when it is mounted at
107
+ * the ORGANIZATION level, where there is no site and {@link orgMount} says
108
+ * which org (AGL-2630). Two things mount there: the CRM's own org route,
109
+ * and every {@link ConsoleExtension.orgNavItems} surface through the
110
+ * generic org route (AGL-2974). A surface reached through a site route
111
+ * always receives a string.
112
+ */
113
+ hostId: string | null;
114
+ /** Present only at an org-level mount — see {@link ConsolePluginOrgMount}. */
115
+ orgMount?: ConsolePluginOrgMount;
116
+ /** True when the org holds the extension's `featureFlag` entitlement. */
117
+ entitled: boolean;
118
+ /**
119
+ * The absolute console path this surface is mounted at — the nav item's
120
+ * `href` under the active org and site, e.g. `/acme/hosts/shop/products`
121
+ * (AGL-2501).
122
+ *
123
+ * A plugin page is handed a host DOC ID and nothing else, so building a
124
+ * link to itself meant resolving the org slug and subdomain from Firestore
125
+ * — two `getDoc`s that answer `null` on first paint, which for a section
126
+ * rail means drawing it without hrefs. The shell already knows this string
127
+ * synchronously; the alternative is paying for it again, later, per page.
128
+ */
129
+ basePath?: string;
130
+ /**
131
+ * The nav item's declared {@link ConsoleNavItem.sections}, resolved: an
132
+ * absolute `href` per section, and the release-flag verdict already applied
133
+ * to `visible` (AGL-2501).
134
+ *
135
+ * The plugin DECLARES sections; the shell RESOLVES them. Release flags live
136
+ * in `scope:app` and a `scope:lib` plugin may not import the hooks that read
137
+ * them, so a page that filtered its own rail could only do it by guessing —
138
+ * and a rail offering a link into the shell's own "coming soon" notice is
139
+ * the guess going wrong. Feed this straight to `HubSections`.
140
+ */
141
+ sections?: readonly ResolvedConsoleNavSection[];
142
+ /**
143
+ * The id of the section the URL names, or undefined on the nav item's own
144
+ * href (AGL-2501).
145
+ *
146
+ * Always one of the declared `sections` — the shell 404s an id it does not
147
+ * recognize rather than passing it down, so a page may switch on this
148
+ * without a fallback branch for a section it does not have.
149
+ */
150
+ section?: string;
151
+ /**
152
+ * Path segments beneath `basePath`, `[]` on the nav item's own href
153
+ * (AGL-2501). `segments[0]` is `section`; anything after it is the section's
154
+ * own, so a section can own deeper routes (`…/orders/ord_123`) without a
155
+ * further registry change.
156
+ */
157
+ segments?: readonly string[];
158
+ /**
159
+ * The ORG billing doc (`orgs/{orgId}`) the shell already loaded to
160
+ * compute `entitled` (prop renamed from `tenant` in AGL-444). Passed
161
+ * through so a plugin page can run its own `checkEntitlement`/
162
+ * `checkQuota` (e.g. per-plan service limits) without reaching for the
163
+ * console-app org/session hooks.
164
+ */
165
+ org?: Partial<AglynOrgBilling>;
166
+ /**
167
+ * The signed-in user's resolved org permissions (AGL-395), passed through
168
+ * so a plugin page can gate actions (e.g. install/publish) without the
169
+ * console-app session/permission hooks.
170
+ */
171
+ /**
172
+ * Widened past the legacy six (AGL-2474): plugin-declared keys such as
173
+ * commerce's `managePos` are resolved into the same map, and typing this
174
+ * `Partial<OrgPermissions>` meant a plugin could not read its OWN
175
+ * permission without a cast — the declared key was not assignable.
176
+ */
177
+ permissions?: Partial<OrgPermissions> & Record<string, boolean | undefined>;
178
+ /**
179
+ * The verdict for the release flag that governs this surface (AGL-1662),
180
+ * resolved by the shell from the nav item's `navTabId` — the same flag
181
+ * `FeatureGate` applies around the page body.
182
+ *
183
+ * `FeatureGate` admits staff with the flag OFF, so a plugin page can be
184
+ * looking at an org that does not have the feature and is not being
185
+ * billed for it. Anything the page says about MONEY has to follow the
186
+ * flag rather than the viewer, and this is how a plugin page gets that
187
+ * answer without reaching for the console-app release-flag hooks (which
188
+ * live in `scope:app` and are off-limits to a `scope:lib` plugin).
189
+ */
190
+ releaseFlag?: {
191
+ /**
192
+ * The rollout verdict for this ORG — staff bypass deliberately NOT
193
+ * applied. `visible` is what decides who sees a page; this is what
194
+ * decides what the invoice carries, and staff opening a page must not
195
+ * put a line on a customer's bill.
196
+ */
197
+ released: boolean;
198
+ /**
199
+ * True once the flag verdict has settled. Release flags are default-off
200
+ * before Remote Config activation, so an ungated claim asserts the
201
+ * withheld case for one paint on an org that may well be billed.
202
+ */
203
+ ready: boolean;
204
+ };
205
+ /**
206
+ * What the viewer's role on THIS SITE lets them do, for a surface that
207
+ * publishes.
208
+ *
209
+ * The `author` host role edits content and may not make it live; that is
210
+ * enforced in the Firestore rules and by the promotion routes, and the
211
+ * console's job is to say no with a reason rather than let a click come
212
+ * back as a bare `permission-denied`. Resolving it needs the org member
213
+ * document and the host-access predicate over it, which the shell already
214
+ * reaches for — a plugin cannot, for the same reason it cannot read a
215
+ * release flag.
216
+ *
217
+ * `loaded` separates "no" from "not yet", so a surface disables with a
218
+ * reason rather than hiding a control that is about to be allowed. Read it
219
+ * the safe way round: `canPublish` is false until the read lands.
220
+ */
221
+ hostRole?: {
222
+ canPublish: boolean;
223
+ loaded: boolean;
224
+ };
225
+ }
226
+ export type ConsolePluginPage = ComponentType<ConsolePluginPageProps>;
227
+ /**
228
+ * One routed section of a plugin console page (AGL-2501).
229
+ *
230
+ * A section is a real URL beneath the nav item's `href`, not a panel: it is
231
+ * linkable, the back button walks sections, and the page mounts the one being
232
+ * read. That last part is the reason this exists — a six-panel hub subscribes
233
+ * every panel's queries on load, and the reader is looking at one.
234
+ */
235
+ export interface ConsoleNavSection {
236
+ /**
237
+ * URL segment beneath the nav item's `href`, and the id the shell hands the
238
+ * page as `section`. Appears in links people keep — treat it as persisted.
239
+ */
240
+ id: string;
241
+ label: string;
242
+ /**
243
+ * Release-flag nav-tab id gating THIS section, when it ships on a different
244
+ * schedule than the surface around it. Omit to inherit the nav item's gate,
245
+ * which is the common case.
246
+ *
247
+ * Declaring one NARROWS, never widens: the nav item's own gate is applied
248
+ * outside this one, so a section of a flagged-off surface stays unreachable
249
+ * whatever it declares. A section gated by its own flag is refused on a deep
250
+ * link exactly as it is hidden from the rail — one verdict, both places.
251
+ */
252
+ navTabId?: string;
253
+ /**
254
+ * Entitlement flag gating THIS section, when the org's plan may include
255
+ * the surface and not the whole of it (AGL-2611). Omit to inherit the
256
+ * extension's `featureFlag`, which is the common case.
257
+ *
258
+ * Composes by AND with the extension's, the way `navTabId` composes with
259
+ * the nav item's release gate: the shell answers the extension's flag
260
+ * first and this one inside it, so a section can only ever be NARROWER
261
+ * than the surface holding it. A section this refuses is resolved
262
+ * `locked` for the rail and refused on a deep link with the shell's own
263
+ * upgrade notice — one verdict, both places — and the page body never
264
+ * mounts, which is the whole of the shell's promise about entitlements.
265
+ *
266
+ * The case it exists for is a hub whose first section ships on every
267
+ * plan and whose others do not: the CRM's contacts list is on Free, and
268
+ * the sales suite built on that list starts at Starter.
269
+ */
270
+ featureFlag?: keyof OrgFeatureFlags;
271
+ }
272
+ /** A {@link ConsoleNavSection} with the shell's answers filled in. */
273
+ export interface ResolvedConsoleNavSection {
274
+ id: string;
275
+ label: string;
276
+ /** Absolute console path — `${basePath}/${id}`. */
277
+ href: string;
278
+ /** False when this section's release flag hides it from this viewer. */
279
+ visible: boolean;
280
+ /**
281
+ * True when the org's SETTLED plan does not carry the section's
282
+ * `featureFlag` (AGL-2611). The rail draws it locked and still links it —
283
+ * the notice behind the link is the way to buy it — and the shell refuses
284
+ * the body. Never true while the org read is pending: an unsettled plan
285
+ * is not a refusal, and a lock that appeared for one paint on a paying
286
+ * workspace would be the AGL-1380 defect in a new place.
287
+ */
288
+ locked?: boolean;
289
+ }
290
+ export interface ConsoleNavItem {
291
+ label: string;
292
+ /**
293
+ * Host-relative console route (e.g. '/events'). The shell mounts it
294
+ * under the active host ('/[hostId]/events') via its generic plugin
295
+ * route, so the same string keys both the nav link and the page.
296
+ */
297
+ href: string;
298
+ icon?: MdiIconProps;
299
+ /**
300
+ * Release-flag nav-tab id (e.g. 'nav-tab-events'). Lets the shell apply
301
+ * the same staff-preview gating hardcoded tabs get; omit for always-on.
302
+ */
303
+ navTabId?: string;
304
+ /**
305
+ * The permission THIS surface requires, when it is narrower than the
306
+ * extension's own {@link ConsoleExtension.permission}.
307
+ *
308
+ * Declaring one NARROWS, never widens: the extension's requirement is
309
+ * applied alongside this one and both must be held, so a surface cannot
310
+ * escape its extension's gate by naming a key its reader happens to have.
311
+ * The composition is the release-flag one a nav item and its section
312
+ * already have, for the same reason.
313
+ *
314
+ * The granularity exists because one extension can register surfaces with
315
+ * genuinely different answers — a catalog anyone who edits the site may
316
+ * open, beside a register that takes money.
317
+ */
318
+ permission?: string;
319
+ /**
320
+ * Page body rendered by the shell's generic host route. When present,
321
+ * the plugin owns the whole surface — no core page file needed.
322
+ */
323
+ Component?: ConsolePluginPage;
324
+ /**
325
+ * Routed sections of this page (AGL-2501). Each becomes a URL at
326
+ * `${href}/${section.id}`, and the shell tells the page which one it is on.
327
+ *
328
+ * Optional, and omitting it is not a lesser option — it means the surface is
329
+ * ONE page, which is what every plugin surface was before this existed and
330
+ * what most should stay. A nav item without sections resolves exactly as it
331
+ * always has: its own href and nothing beneath it, so a path under it is a
332
+ * 404 rather than this page rendered again.
333
+ */
334
+ sections?: readonly ConsoleNavSection[];
335
+ /**
336
+ * Whether this nav item claims every path beneath its own href, with no
337
+ * declared section naming them.
338
+ *
339
+ * The case is a surface whose deeper URLs are ENTITIES rather than
340
+ * sections: `/forms` is a list, `/forms/{formId}` is one of its rows, and
341
+ * the set of ids is a property of the workspace's data, so no static
342
+ * `sections` list could enumerate them. Without this a nav item matches its
343
+ * own href and nothing else, and every row's page is a 404.
344
+ *
345
+ * The trade is deliberate and is why it must be asked for. A surface that
346
+ * owns its subtree can no longer distinguish a typo'd path from an entity
347
+ * id — `/forms/bogus` reaches the page rather than the shell's 404 — so it
348
+ * takes on the duty of saying "no such thing" itself, which a list-detail
349
+ * surface has to be able to do anyway for an id that was deleted while a
350
+ * link to it was still in someone's inbox.
351
+ *
352
+ * Sections win where both are declared: an id the `sections` list names is
353
+ * resolved as a section, and this only widens what happens when none
354
+ * matches.
355
+ */
356
+ ownsSubtree?: boolean;
357
+ /**
358
+ * Hrefs this nav item answered to before it moved (AGL-2595).
359
+ *
360
+ * A console path is something people keep — a bookmark, a docs link, an
361
+ * email from the console itself — and a nav item that changes its `href`
362
+ * would otherwise turn every one of them into the shell's "not available"
363
+ * notice. Matching here is identical to matching on `href` (the same
364
+ * sections, the same subtree rule), and the resolved page carries
365
+ * `legacy: true` so the shell can replace the address with the current one
366
+ * rather than leave a moved page living at two.
367
+ */
368
+ legacyHrefs?: readonly string[];
369
+ /**
370
+ * Dashboard header for the plugin page (title + icon), and the docs topic
371
+ * its help `?` explains.
372
+ *
373
+ * `docsTopic` is a plain string rather than the console's
374
+ * `DocsHelpTopicKey` because that registry lives in `apps/console` and a
375
+ * lib cannot import from an app. The console validates it and falls back
376
+ * to the marketplace topic when it does not resolve — which is not just
377
+ * defensive: a third-party plugin can name any string, and the alternative
378
+ * to a fallback is a help button that throws on hover (AGL-1074).
379
+ *
380
+ * Every surface mounted by the shell's generic plugin route shares one
381
+ * `help=` prop, so a surface that omits this is not "help-less" — it
382
+ * inherits Plugins & Marketplace, which reads as if it were its own.
383
+ */
384
+ header?: {
385
+ title: string;
386
+ icon?: MdiIconProps;
387
+ docsTopic?: string;
388
+ };
389
+ }
390
+ export interface ConsoleDashboardCard {
391
+ /** Card registry key the dashboard resolves to a component. */
392
+ cardId: string;
393
+ title: string;
394
+ }
395
+ export interface ConsoleSettingsSection {
396
+ sectionId: string;
397
+ title: string;
398
+ /** Rendered inside the org/host settings surface when present (AGL-419). */
399
+ Component?: ComponentType<ConsolePluginPageProps>;
400
+ }
401
+ /**
402
+ * The injection-zone catalog (AGL-433, Strapi injection-zone parity):
403
+ * every named slot the console shell renders through `PluginWidgetSlot`,
404
+ * with what the slot receives. `slot` stays an open string so apps can
405
+ * add custom zones without a core release; these are the guaranteed ones.
406
+ */
407
+ export declare const CONSOLE_WIDGET_SLOTS: {
408
+ /** Host dashboard + screen view activity column. Props: hostId. */
409
+ readonly hostActivity: "hostActivity";
410
+ /**
411
+ * The host dashboard's glance row — one card per capability the site
412
+ * actually has. Props: hostId.
413
+ *
414
+ * The dashboard's own cards used to be imported by the page, which made
415
+ * enablement a decision nobody was making: `New site users` rendered on a
416
+ * site that has never turned member accounts on, and `Last campaign` on a
417
+ * workspace with the email plugin switched off. A card that answers a
418
+ * question about a capability belongs to the capability, so it registers
419
+ * here and the shell's entitlement + enablement gate decides.
420
+ */
421
+ readonly hostDashboard: "hostDashboard";
422
+ /**
423
+ * The organization's sites page, above the site grid (AGL-2636): the
424
+ * org-level twin of `hostDashboard`, for a card that totals the
425
+ * organization rather than one site. Props: `hostId` (always `null`),
426
+ * `orgMount` (the org and its sites — the {@link ConsolePluginOrgMount}
427
+ * the org-level hub page hands its plugin page), `basePath` (that hub's
428
+ * own path, `/[orgSlug]/crm`, for the links a widget builds when there is
429
+ * no site to derive them from).
430
+ *
431
+ * Every widget here reads ACROSS the host boundary — an org-wide total
432
+ * carries no scope clause — which is the one read a site collaborator may
433
+ * never make, so the page gates the whole row on the org hub's own access
434
+ * verdict before any widget mounts, and renders nothing at all (no empty
435
+ * row, no heading) when no widget survives the gates.
436
+ */
437
+ readonly orgDashboard: "orgDashboard";
438
+ /** Host dashboard commerce summary. Props: hostId, org. */
439
+ readonly commerceGlance: "commerceGlance";
440
+ /** Org Data page body. Props: orgId, org. */
441
+ readonly orgData: "orgData";
442
+ /** Besigner functions (ƒx) panel. Props: hostId. */
443
+ readonly besignerFunctions: "besignerFunctions";
444
+ /** Marketplace listing detail body. Props: hostId, listingId, permissions. */
445
+ readonly marketplaceListing: "marketplaceListing";
446
+ /**
447
+ * Org marketplace browse body (AGL-772). Props: hostId (acting site),
448
+ * permissions, orgScoped. The single org-scope place to browse + install,
449
+ * replacing the per-site marketplace tab.
450
+ */
451
+ readonly orgMarketplace: "orgMarketplace";
452
+ /** Plugins & add-ons hub installs section. Props: hostId. */
453
+ readonly orgAddons: "orgAddons";
454
+ /** Bottom of the host dashboard. Props: hostId, org. (AGL-433) */
455
+ readonly dashboardFooter: "dashboardFooter";
456
+ /** Org settings page, below the tabbed cards. Props: orgId, org. */
457
+ readonly orgSettings: "orgSettings";
458
+ /** Host setup page, below the built-in cards. Props: hostId, org. */
459
+ readonly hostSettings: "hostSettings";
460
+ /**
461
+ * The top of the page a newly created site lands on (AGL-2918): where a
462
+ * widget may offer to START the site for the person rather than leave them
463
+ * an empty one. Props: {@link ConsoleHostFirstRunZoneProps}.
464
+ *
465
+ * ── The blank path is the default, not the fallback ──────────────────────
466
+ *
467
+ * The site already exists, blank, and the page beneath this zone is the
468
+ * ordinary one every site gets. A widget here is an OFFER on top of that
469
+ * page: it asks the person what they want, it builds only what they then
470
+ * confirm, and everything it makes is a draft the site does not serve.
471
+ *
472
+ * So a zone with no widget — no plugin loaded, a feature not released, a
473
+ * reader without the permission — is not a degraded state. It is the blank
474
+ * path, unchanged and complete, which is why nothing on the page below
475
+ * depends on anything here.
476
+ *
477
+ * ── A widget here MUST offer `startBlank` ────────────────────────────────
478
+ *
479
+ * A guided start that a person cannot leave turns creating a site into a
480
+ * funnel, so `startBlank` is handed down rather than left to each widget to
481
+ * invent: a widget draws it where its questions START, not at the end of
482
+ * them, and taking it leaves the person on this same page with nothing
483
+ * begun behind them. The shell remembers the choice for this site and stops
484
+ * asking.
485
+ *
486
+ * A widget that takes the screen rather than sitting on the page — a full
487
+ * screen dialog, an overlay — owes the same exit in every shape it has one:
488
+ * a close control, and the key a person presses to dismiss it. Each of them
489
+ * is `startBlank`, because a takeover somebody can only dismiss BACK INTO is
490
+ * the funnel this zone exists to refuse, and nothing here is a half-answered
491
+ * state worth returning to.
492
+ */
493
+ readonly hostFirstRun: "hostFirstRun";
494
+ /**
495
+ * The host setup Theme section, between the "What you have changed" card
496
+ * and the editor (AGL-2938). Props: {@link ConsoleHostThemeZoneProps} — the
497
+ * site, the theme the editor shows, where that theme came from, the
498
+ * editor's own preview, and `proposeDraft`, which puts a theme in the
499
+ * editor as unsaved changes.
500
+ *
501
+ * A widget here proposes and never writes. The person saves what it
502
+ * proposed through the editor's own Save — the guarded write that stores
503
+ * an installed theme's edits as its override patch — or discards it. A
504
+ * palette importer, a brand kit and a generator are the same shape of
505
+ * widget.
506
+ */
507
+ readonly hostTheme: "hostTheme";
508
+ /**
509
+ * Staff admin org detail (staff-only surfaces). Props: orgId. A staff
510
+ * zone — see {@link CONSOLE_STAFF_WIDGET_SLOTS}.
511
+ */
512
+ readonly adminOrgDetail: "adminOrgDetail";
513
+ /**
514
+ * Billing → Usage, below the meters (AGL-2940). Props: `orgId`, `org` (the
515
+ * billing-merged org doc), `canManage` (the reader holds
516
+ * `billing.manage`). A card here explains or controls consumption the
517
+ * meters above it show.
518
+ */
519
+ readonly orgBillingUsage: "orgBillingUsage";
520
+ /**
521
+ * Billing → Overview, among the plan and add-on cards (AGL-2940). Props:
522
+ * `orgId`, `org`, `plan` (the page's own defaulted plan), `canManage`.
523
+ */
524
+ readonly orgBillingOverview: "orgBillingOverview";
525
+ /**
526
+ * The staff org page, among its cards (AGL-2940). Props: `orgId`. Staff
527
+ * only — the page is behind `StaffOnly`, and a widget here may read the
528
+ * staff-only routes. A staff zone — see {@link CONSOLE_STAFF_WIDGET_SLOTS}.
529
+ */
530
+ readonly staffOrg: "staffOrg";
531
+ /**
532
+ * The staff user page, below the account's activity. Props: `uid`. A
533
+ * staff zone — see {@link CONSOLE_STAFF_WIDGET_SLOTS}.
534
+ */
535
+ readonly staffUser: "staffUser";
536
+ /**
537
+ * A COLUMN of the staff Organizations list (AGL-2984) — see
538
+ * {@link ConsoleWidget.column}. The list renders the widget's component
539
+ * once per row with `{ row, orgId, orgIds }`: the row as the list route
540
+ * serves it, that row's org id, and every org id on the page, so a column
541
+ * that reads figures of its own asks once for the page rather than once
542
+ * per row. Its `Header` receives `{ orgIds }` beside the sort props. A
543
+ * staff zone — see {@link CONSOLE_STAFF_WIDGET_SLOTS}.
544
+ */
545
+ readonly staffOrgsListColumn: "staffOrgsListColumn";
546
+ /**
547
+ * The staff org usage table (AGL-2984): the monthly rollups on the staff
548
+ * org page and in the Organizations list's usage dialog. A widget with a
549
+ * `column` is a column of the table, between Forms and Cost, rendered once
550
+ * per month with `{ month, orgId }` — `month` is the rollup row as
551
+ * `/api/admin/org-usage` serves it. A widget without one renders above
552
+ * the table with `{ orgId, org }`, where `org` is the org document when the
553
+ * surface holds one and `undefined` when it does not. A staff zone — see
554
+ * {@link CONSOLE_STAFF_WIDGET_SLOTS}.
555
+ */
556
+ readonly staffOrgUsageColumn: "staffOrgUsageColumn";
557
+ /**
558
+ * The org's team member detail page, below the member's activity
559
+ * (AGL-2940). Props: `orgId`, `orgSlug`, `uid`, `member` (the org member
560
+ * document as the page loaded it), `hosts` (the org's sites, for naming
561
+ * them), `canManage` (the reader may manage the org).
562
+ */
563
+ readonly orgMember: "orgMember";
564
+ /**
565
+ * A COLUMN of the org Team table (AGL-2940) — see
566
+ * {@link ConsoleWidget.column}: the widget declares the header and the
567
+ * shell renders its component once per row with `{ member, orgId,
568
+ * canManage }`. A widget on this slot without a `column` renders nothing.
569
+ */
570
+ readonly orgMembersListColumn: "orgMembersListColumn";
571
+ /**
572
+ * The site collaborators card (AGL-2940). A widget with a `column` is a
573
+ * column of its table, rendered per row with `{ member, orgId, hostId,
574
+ * canManage }` — the owner's row too, with `member` carrying the owner's
575
+ * `uid` and `role: 'owner'`; a widget without one renders beneath the
576
+ * table with `{ hostId, canManage }`.
577
+ */
578
+ readonly hostMembers: "hostMembers";
579
+ /**
580
+ * The console shell's assistant dock (AGL-2940): the one position above
581
+ * every route boundary in both the `(app)` and `(editor)` shells, where a
582
+ * floating helper survives a navigation. Props: none — a widget here
583
+ * resolves its own scope from the URL, as the shell's own chrome does.
584
+ */
585
+ readonly assistPanel: "assistPanel";
586
+ /**
587
+ * A section at the bottom of the besigner's Attributes panel (AGL-2940),
588
+ * under the selected element's own fields. Props: `hostId` (`null` on an
589
+ * editor that names no site), and `node`, the selected element (AGL-2984)
590
+ * — present wherever the designer draws the panel for a selection.
591
+ */
592
+ readonly besignerInspector: "besignerInspector";
593
+ /**
594
+ * Inside a SEARCH LISTING editor (AGL-2910), under its fields. Props:
595
+ * {@link ConsoleSeoFieldsZoneProps} — what the listing describes, the
596
+ * fields the editor edits and what they hold, and `proposeValues`, which
597
+ * stages values in those fields as unsaved edits.
598
+ *
599
+ * Two editors host it: the screen detail page's SEO card, and the commerce
600
+ * product editor's search engine listing, which draws it through
601
+ * `useConsoleWidgetSlot` because a plugin's dialog cannot mount the shell's
602
+ * slot itself. A widget here proposes and never writes: the editor's own
603
+ * Save is the write, with the guards that write carries. A keyword checker,
604
+ * a translation memory and a generator are the same shape of widget.
605
+ */
606
+ readonly seoFields: "seoFields";
607
+ /**
608
+ * The host setup SEO section, above the site SEO form (AGL-2910). Props:
609
+ * {@link ConsoleHostSeoZoneProps} — the site, its stored SEO settings, and
610
+ * `proposeDraft`, which puts values in the form as unsaved edits. The
611
+ * form's Update stores them; nothing a widget proposes reaches the
612
+ * published site before that.
613
+ */
614
+ readonly hostSeo: "hostSeo";
615
+ /** {@link ConsoleRecordInsightsZoneProps} */
616
+ readonly recordInsights: "recordInsights";
617
+ /** {@link ConsoleRecordEmailZoneProps} */
618
+ readonly recordEmail: "recordEmail";
619
+ /** {@link ConsoleImportMappingZoneProps} */
620
+ readonly importMapping: "importMapping";
621
+ /**
622
+ * The besigner's secondary toolbar, after the undo and redo controls
623
+ * (AGL-2984), on every editor the designer opens: screens, layouts,
624
+ * components, forms, templates and email designs. A control here acts on
625
+ * the document in the editor. Props: `hostId` (`null` on an editor that
626
+ * names no site).
627
+ */
628
+ readonly besignerToolbar: "besignerToolbar";
629
+ /**
630
+ * A site's Screens page, beside its Templates and Create New Screen actions
631
+ * (AGL-2907): another way to start a screen. Props:
632
+ * {@link ConsoleHostScreensZoneProps}. A widget here runs its own flow and
633
+ * writes nothing through the page; the screens list shows what it makes once
634
+ * it exists.
635
+ */
636
+ readonly hostScreens: "hostScreens";
637
+ /**
638
+ * A site's Templates page, beside its Create Template action (AGL-3043):
639
+ * another way to start a template. Props:
640
+ * {@link ConsoleHostTemplatesZoneProps}. The `hostScreens` contract: a
641
+ * widget here runs its own flow and writes nothing through the page, and
642
+ * the template list shows what it makes once it exists.
643
+ */
644
+ readonly hostTemplates: "hostTemplates";
645
+ /**
646
+ * A site's Layouts page, beside its Templates and Create New Layout actions
647
+ * (AGL-3043): another way to start a layout. Props:
648
+ * {@link ConsoleHostLayoutsZoneProps}, on the `hostScreens` contract.
649
+ */
650
+ readonly hostLayouts: "hostLayouts";
651
+ /**
652
+ * The Forms page of a site, beside its Create Form action (AGL-3043):
653
+ * another way to start a form. Props: {@link ConsoleHostFormsZoneProps}, on
654
+ * the `hostScreens` contract.
655
+ *
656
+ * The Forms page is the forms plugin's own surface, so the plugin HOSTS
657
+ * this zone: it draws the renderer `useConsoleWidgetSlot` hands down, as
658
+ * the product editor draws `seoFields`, and every gate a console page's
659
+ * slot applies applies here too.
660
+ */
661
+ readonly hostForms: "hostForms";
662
+ /**
663
+ * A site's Components page, beside its Templates and Create Component
664
+ * actions (AGL-3051): another way to start a reusable component. Props:
665
+ * {@link ConsoleHostComponentsZoneProps}, on the `hostScreens` contract.
666
+ */
667
+ readonly hostComponents: "hostComponents";
668
+ /**
669
+ * The organization's sites page, beside the sites themselves (AGL-2911):
670
+ * an action a member takes across MANY of the org's sites at once, rather
671
+ * than a card totaling them. Props: {@link ConsoleOrgSitesZoneProps}.
672
+ *
673
+ * Distinct from `orgDashboard`, which is on the same page and gated on the
674
+ * org CRM hub's reach verdict because every card there reads across the
675
+ * host boundary. A widget here reads nothing of the kind: the sites it acts
676
+ * on are the ones the page already resolved for this reader, and its own
677
+ * door proves the reader's permission on each of them again. So the zone
678
+ * carries no gate beyond the slot's own — enablement, entitlement, and the
679
+ * widget's declared permission.
680
+ */
681
+ readonly orgSites: "orgSites";
682
+ /**
683
+ * The Automation page's Actions, beside Add action and Recipes (AGL-2919):
684
+ * another way to start an automation. Props:
685
+ * {@link ConsoleHostAutomationsZoneProps}.
686
+ *
687
+ * The Automation page is the workflows plugin's own surface, so the plugin
688
+ * HOSTS this zone through the renderer `useConsoleWidgetSlot` hands down, as
689
+ * the product editor hosts `seoFields`, and every gate a console page's slot
690
+ * applies applies here too. A widget here writes nothing through the page:
691
+ * the Actions list shows what it makes once it exists, and `openAction`
692
+ * opens a listed action in the Actions editor.
693
+ */
694
+ readonly hostAutomations: "hostAutomations";
695
+ /**
696
+ * The editor of one SAVED automation — an action or a workflow — on the
697
+ * Automation page (AGL-2919). Props: {@link ConsoleAutomationEditorZoneProps}.
698
+ * Hosted by the workflows plugin, as `hostAutomations` is. A widget here
699
+ * reads the automation as it is stored and changes nothing in the editor.
700
+ */
701
+ readonly automationEditor: "automationEditor";
702
+ /**
703
+ * One FAILED run in an automation's run history (AGL-2919), drawn once per
704
+ * failed row. Props: {@link ConsoleAutomationRunZoneProps}. Hosted by the
705
+ * workflows plugin. A widget here reads the run as it was recorded and
706
+ * changes nothing.
707
+ */
708
+ readonly automationRun: "automationRun";
709
+ /** The commerce product editor's fields (AGL-2916). Props: {@link ConsoleProductEditorZoneProps}. */
710
+ readonly productEditor: "productEditor";
711
+ /** Above the commerce products hub's catalog table (AGL-2916). Props: {@link ConsoleProductsHubZoneProps}. */
712
+ readonly productsHub: "productsHub";
713
+ /** Inside the commerce CSV import dialog (AGL-2916). Props: {@link ConsoleProductImportZoneProps}. */
714
+ readonly productImport: "productImport";
715
+ };
716
+ export type ConsoleWidgetSlot = (typeof CONSOLE_WIDGET_SLOTS)[keyof typeof CONSOLE_WIDGET_SLOTS];
717
+ /** What the `hostScreens` zone hands each widget (AGL-2907). */
718
+ export interface ConsoleHostScreensZoneProps {
719
+ hostId: string;
720
+ /** The org the page names; `undefined` while it resolves. */
721
+ orgId: string | undefined;
722
+ }
723
+ /**
724
+ * What the `hostTemplates`, `hostLayouts` and `hostForms` zones (AGL-3043) and
725
+ * the `hostComponents` zone (AGL-3051) hand each widget: the site and its org,
726
+ * as `hostScreens` hands them.
727
+ */
728
+ export type ConsoleHostTemplatesZoneProps = ConsoleHostScreensZoneProps;
729
+ /** See {@link ConsoleHostTemplatesZoneProps}. */
730
+ export type ConsoleHostLayoutsZoneProps = ConsoleHostScreensZoneProps;
731
+ /** See {@link ConsoleHostTemplatesZoneProps}. */
732
+ export type ConsoleHostFormsZoneProps = ConsoleHostScreensZoneProps;
733
+ /** See {@link ConsoleHostTemplatesZoneProps}. */
734
+ export type ConsoleHostComponentsZoneProps = ConsoleHostScreensZoneProps;
735
+ /** What the `hostAutomations` zone hands each widget (AGL-2919). */
736
+ export interface ConsoleHostAutomationsZoneProps {
737
+ hostId: string;
738
+ /** The org the page names; `undefined` while it resolves. */
739
+ orgId: string | undefined;
740
+ /**
741
+ * Opens the Actions editor on a listed action. `false` when the id names no
742
+ * action the list has read yet, which is how a widget whose draft was just
743
+ * written tells a list that has not caught up from one that opened it.
744
+ */
745
+ openAction: (actionId: string) => boolean;
746
+ }
747
+ /** One automation on the Automation page: an action, or a workflow (AGL-2919). */
748
+ export interface ConsoleAutomationTarget {
749
+ type: 'action' | 'workflow';
750
+ id: string;
751
+ name: string;
752
+ }
753
+ /** What the `automationEditor` zone hands each widget (AGL-2919). */
754
+ export interface ConsoleAutomationEditorZoneProps {
755
+ hostId: string;
756
+ /** The org the page names; `undefined` while it resolves. */
757
+ orgId: string | undefined;
758
+ /** The automation the editor has open, as it is stored. */
759
+ target: ConsoleAutomationTarget;
760
+ }
761
+ /** What the `automationRun` zone hands each widget (AGL-2919). */
762
+ export interface ConsoleAutomationRunZoneProps {
763
+ hostId: string;
764
+ /** The org the page names; `undefined` while it resolves. */
765
+ orgId: string | undefined;
766
+ /** The automation the run belongs to. */
767
+ target: ConsoleAutomationTarget;
768
+ /** The run's entry in the site's activity log. */
769
+ runId: string;
770
+ }
771
+ /** What the `orgSites` zone hands each widget (AGL-2911). */
772
+ export interface ConsoleOrgSitesZoneProps {
773
+ /** Always `null`: the zone belongs to the organization, not to one site. */
774
+ hostId: null;
775
+ /** The org and the sites the page resolved for this reader. */
776
+ orgMount: ConsolePluginOrgMount;
777
+ /** The sites page's own path, for the links a widget builds. */
778
+ basePath: string;
779
+ }
780
+ /** What the `hostFirstRun` zone hands each widget (AGL-2918). */
781
+ export interface ConsoleHostFirstRunZoneProps {
782
+ hostId: string;
783
+ /** The org the page names; `undefined` while it resolves. */
784
+ orgId: string | undefined;
785
+ /** Path slug for building `/[orgSlug]/…` links. */
786
+ orgSlug: string;
787
+ /** The site's subdomain, which is what a console URL names a site by. */
788
+ host: string | null;
789
+ /**
790
+ * Leaves the guided start for the blank site the person already has: this
791
+ * same page, with nothing created and nothing begun. The shell records the
792
+ * choice for this site and draws the zone no more.
793
+ *
794
+ * Required of every widget on this zone, drawn where its questions start
795
+ * rather than after them, and — for a widget that takes the screen — what
796
+ * every way of dismissing it does. See `hostFirstRun` in
797
+ * {@link CONSOLE_WIDGET_SLOTS}.
798
+ */
799
+ startBlank: () => void;
800
+ }
801
+ /** What the `hostTheme` zone hands each widget (AGL-2938). */
802
+ export interface ConsoleHostThemeZoneProps {
803
+ hostId: string;
804
+ /** The org the page names; `undefined` while it resolves. */
805
+ orgId: string | undefined;
806
+ /** Path slug for building `/[orgSlug]/…` links. */
807
+ orgSlug: string;
808
+ /** The site's subdomain, which is what a console URL names a site by. */
809
+ host: string | null;
810
+ /** The theme the editor shows: the site's theme with its overrides resolved. */
811
+ theme: HostTheme | undefined;
812
+ /** Where that theme came from, which decides how an edit to it is stored. */
813
+ themeSource: HostThemeSource;
814
+ /** The editor's own preview, which renders a theme over the brand base. */
815
+ ThemePreview: ComponentType<{
816
+ theme: HostTheme;
817
+ scheme: HostThemeScheme;
818
+ }>;
819
+ /**
820
+ * Puts `theme` in the editor as unsaved changes under `key`. A new key
821
+ * replaces the previous draft; the same key again changes nothing until
822
+ * the editor has saved or discarded it.
823
+ */
824
+ proposeDraft: (theme: HostTheme, key: string) => void;
825
+ }
826
+ /**
827
+ * The zones on the STAFF pages (AGL-2939): the staff org page, its detail
828
+ * zone, and the staff user page.
829
+ *
830
+ * No workspace names the plugin set there. A staff page is ABOUT an org or
831
+ * an account, and the reader's own memberships have nothing to do with what
832
+ * it shows, so the console reads these zones from the plugins it loads for
833
+ * the staff area — every plugin that declares a `staff` register surface —
834
+ * and consults neither a widget's entitlement nor its permission: both are
835
+ * answers about a workspace, and the staff area's guard is what admits the
836
+ * reader.
837
+ */
838
+ export declare const CONSOLE_STAFF_WIDGET_SLOTS: readonly ConsoleWidgetSlot[];
839
+ /** Whether a slot is one of the {@link CONSOLE_STAFF_WIDGET_SLOTS}. */
840
+ export declare function isConsoleStaffWidgetSlot(slot: string): boolean;
841
+ /** Search listing values by field; a field the editor does not hold is absent. */
842
+ export type ConsoleSeoFieldValues = Partial<Record<SeoListingFieldKey, string>>;
843
+ /**
844
+ * What a search listing describes (AGL-2910). A screen is read from its own
845
+ * documents by whoever needs more than its name; a product travels with its
846
+ * name and description, because the product document is the commerce
847
+ * plugin's and nothing else reads it.
848
+ */
849
+ export type ConsoleSeoFieldsSubject = {
850
+ kind: 'screen';
851
+ /** The screen document id. */
852
+ id: string;
853
+ /** The version the page is showing, whose content the listing is about. */
854
+ versionId: string | null;
855
+ name: string;
856
+ } | {
857
+ kind: 'product';
858
+ /** `null` for a product that has not been saved yet. */
859
+ id: string | null;
860
+ name: string;
861
+ description: string;
862
+ };
863
+ /** What the `seoFields` zone hands each widget (AGL-2910). */
864
+ export interface ConsoleSeoFieldsZoneProps {
865
+ hostId: string;
866
+ /** The org the page names; `undefined` while it resolves. */
867
+ orgId: string | undefined;
868
+ /** Path slug for building `/[orgSlug]/…` links. */
869
+ orgSlug: string;
870
+ subject: ConsoleSeoFieldsSubject;
871
+ /**
872
+ * The fields this editor edits, in its order — the only ones a widget may
873
+ * propose. Keys of the `seo-listing-fields` catalog, which carries each
874
+ * field's label and length.
875
+ */
876
+ fields: readonly SeoListingFieldKey[];
877
+ /** What each field holds as the editor shows it: saved, or staged and unsaved. */
878
+ values: ConsoleSeoFieldValues;
879
+ /** Whether the listing has a social image — an image description needs one. */
880
+ hasImage: boolean;
881
+ /**
882
+ * Stages `values` in the editor as unsaved edits under `key`. Fields the
883
+ * editor does not edit are ignored. The editor's own Save is what stores
884
+ * them; a widget never writes the listing itself.
885
+ */
886
+ proposeValues: (values: ConsoleSeoFieldValues, key: string) => void;
887
+ }
888
+ /** What the `hostSeo` zone hands each widget (AGL-2910). */
889
+ export interface ConsoleHostSeoZoneProps {
890
+ hostId: string;
891
+ /** The org the page names; `undefined` while it resolves. */
892
+ orgId: string | undefined;
893
+ /** Path slug for building `/[orgSlug]/…` links. */
894
+ orgSlug: string;
895
+ /** The site's subdomain, which is what a console URL names a site by. */
896
+ host: string | null;
897
+ /** The site's stored `seo` settings, as the form was seeded with them. */
898
+ seo: Record<string, unknown> | undefined;
899
+ /**
900
+ * Puts `values` in the site SEO form as unsaved edits, keyed by the form's
901
+ * field names (`seo.entity.description`, `seo.agent.whenToUse`). Proposals
902
+ * land in the form's draft beside what was typed, the same `key` twice
903
+ * applies once, and the form's Update is what stores them.
904
+ */
905
+ proposeDraft: (values: Record<string, string>, key: string) => void;
906
+ }
907
+ /**
908
+ * A column a widget contributes to a shell-owned table (AGL-2940) — the org
909
+ * Team table and the site collaborators table read these. The widget's
910
+ * `Component` is the CELL renderer, mounted once per row with the row as a
911
+ * prop beside the slot's own props; the header and the sort key are the
912
+ * table's to draw.
913
+ */
914
+ export interface ConsoleWidgetColumn {
915
+ /** The header cell's text, and the column's name wherever it is listed. */
916
+ header: string;
917
+ /**
918
+ * The row field a table that sorts orders this column by. Carried for
919
+ * every column contract so a sortable table can honor it; the two member
920
+ * tables render in fetch order and do not read it today.
921
+ */
922
+ sortKey?: string;
923
+ align?: 'left' | 'right' | 'center';
924
+ /**
925
+ * The header cell's content when a plain `header` is not enough
926
+ * (AGL-2939): a hint, or a sort over values only the plugin can read.
927
+ * Mounted once per table with the slot's props beside
928
+ * {@link ConsoleWidgetColumnHeaderProps}; without it the table draws
929
+ * `header` as text.
930
+ */
931
+ Header?: ComponentType<any>;
932
+ }
933
+ /**
934
+ * What a column's own header receives beside the slot's props (AGL-2939).
935
+ * The table keeps one sort at a time, so a column that sorts replaces
936
+ * another's order.
937
+ */
938
+ export interface ConsoleWidgetColumnHeaderProps {
939
+ /**
940
+ * Hands the table a row comparator, or `null` to put the rows back in the
941
+ * table's own order. Stable for the life of the table.
942
+ */
943
+ onSort: (compare: ((a: never, b: never) => number) | null) => void;
944
+ /** Whether the rows are in this column's order. */
945
+ sorted: boolean;
946
+ }
947
+ /**
948
+ * A component a plugin renders into a NAMED console slot (AGL-419/433) —
949
+ * see {@link CONSOLE_WIDGET_SLOTS} for the guaranteed zones and their
950
+ * props. The shell owns placement; the plugin owns the UI.
951
+ */
952
+ export interface ConsoleWidget {
953
+ slot: string;
954
+ /**
955
+ * Present when the widget is a table COLUMN rather than a card (AGL-2940)
956
+ * — see {@link ConsoleWidgetColumn}. Only the slots documented as column
957
+ * slots read it; elsewhere it is ignored.
958
+ */
959
+ column?: ConsoleWidgetColumn;
960
+ /**
961
+ * Stable identity for this widget, unique within the plugin per slot.
962
+ * The id names the CARD, not its placement: the same card registered on
963
+ * a second slot — the CRM's glance on the host dashboard and again on the
964
+ * org's sites page — carries one id on both.
965
+ *
966
+ * A PERSISTED IDENTIFIER wherever the shell lets someone arrange the
967
+ * surface it lands on — the console stores dashboard cards a reader has
968
+ * switched off by this string, and reads it back sessions later. Giving a
969
+ * retired id to a different card therefore shows that reader an
970
+ * arrangement they never chose. Retire an id by leaving it reserved and
971
+ * minting a new one, never by reusing it.
972
+ */
973
+ widgetId: string;
974
+ /**
975
+ * What to call this widget where it is LISTED rather than rendered — the
976
+ * console's dashboard customize dialog is the one such place today.
977
+ *
978
+ * Match the card's own heading: the two names sit a click apart, and a
979
+ * switch labeled differently from the card it controls reads as a switch
980
+ * for something else. Omitting it falls back to the extension's
981
+ * `displayName`, which is right for a plugin contributing one card and
982
+ * ambiguous for one contributing several.
983
+ */
984
+ title?: string;
985
+ /**
986
+ * The permission a reader must hold for this card, when it is narrower
987
+ * than its extension's own {@link ConsoleExtension.permission}.
988
+ *
989
+ * Composes by AND with the extension's, like a nav item's does: a widget
990
+ * cannot escape its extension's gate by naming a key its reader happens to
991
+ * hold, and declaring nothing here inherits the extension's requirement
992
+ * rather than clearing it.
993
+ *
994
+ * A card is a surface the reader never asked for — the shell drops it onto
995
+ * a page they opened for something else — so there is nowhere in it to put
996
+ * an upsell or a refusal, and a widget its reader may not have is simply
997
+ * absent. That is the same treatment the entitlement gate gives a widget,
998
+ * and for the same reason.
999
+ */
1000
+ permission?: string;
1001
+ /**
1002
+ * The entitlement THIS card needs, when it is narrower than its
1003
+ * extension's {@link ConsoleExtension.featureFlag} (AGL-2611).
1004
+ *
1005
+ * Composes by AND with the extension's, exactly as `permission` above
1006
+ * does: a card cannot escape its extension's gate by declaring nothing,
1007
+ * and declaring one here can only narrow. The case is an extension whose
1008
+ * surface ships on every plan while one of its cards belongs to a paid
1009
+ * part of it. Absent without an upsell, for the reason `permission` gives.
1010
+ */
1011
+ featureFlag?: keyof OrgFeatureFlags;
1012
+ Component: ComponentType<any>;
1013
+ }
1014
+ /**
1015
+ * Console half of the pattern: everything a feature contributes to the
1016
+ * console shell. Declarative — the shell owns rendering and applies the
1017
+ * feature-flag gate, so extensions cannot bypass entitlements.
1018
+ *
1019
+ * That sentence describes `apps/console/utils/extension-entitlement.ts`,
1020
+ * which the plugin route and `PluginWidgetSlot` both call before they mount
1021
+ * anything an extension registered (AGL-2484). It was an aspiration until
1022
+ * then: the route resolved the entitlement and handed it to the extension as
1023
+ * the `entitled` PROP, and the widget slot did not resolve it at all, so
1024
+ * enforcement rested on each extension policing itself — which one
1025
+ * first-party page did not do.
1026
+ *
1027
+ * What the gate covers, exactly: a `featureFlag` refuses to RENDER the
1028
+ * extension's page body and its widgets. Nav items stay visible on purpose.
1029
+ * Hiding the tab would hide the only route most workspaces have to the page
1030
+ * that sells the feature, and a nav entry leading to the shell's own upgrade
1031
+ * notice bypasses nothing.
1032
+ *
1033
+ * TWO QUESTIONS, BOTH ANSWERED BY THE SHELL. `featureFlag` is about the
1034
+ * organization's plan; `permission` is about the person reading, and it is
1035
+ * enforced in the same place and the same way — resolved from the member's
1036
+ * own permission map, never from anything the extension supplies, and read
1037
+ * before the surface is constructed. An extension declares what it requires
1038
+ * and the shell decides whether the requirement is met, so the sentence
1039
+ * above holds for authorization as well as for entitlements.
1040
+ */
1041
+ /**
1042
+ * What a blocked org is told about a feature it does not hold, in the
1043
+ * extension's own words.
1044
+ *
1045
+ * PRESENTATION ONLY. The shell decides entitlement from the org billing doc
1046
+ * and this extension's `featureFlag`, and reads this object solely to render
1047
+ * a refusal it has ALREADY decided on. Nothing here is an input to that
1048
+ * decision, and an extension supplying it gains no access — the surface it
1049
+ * describes stays unmounted either way.
1050
+ *
1051
+ * It exists because the shell's own copy can only speak in generalities. An
1052
+ * entitlement that no plan grants — one sold as a per-organization add-on —
1053
+ * is described exactly wrong by "not included in your current plan", which
1054
+ * sends the reader to compare plan tiers that would not have helped.
1055
+ */
1056
+ export interface ConsoleUpgradeNotice {
1057
+ /**
1058
+ * The sentence a blocked org reads. Plain text: the shell renders it as a
1059
+ * string, never as markup, and a third-party extension writes this.
1060
+ */
1061
+ message: string;
1062
+ /**
1063
+ * Which card on the billing page sells it, as a bare fragment id
1064
+ * ('addons'). The console validates it against the anchors that page
1065
+ * actually has and drops it otherwise — the `docsTopic` treatment, for the
1066
+ * same reason: an extension can name any string, and an unrecognized one
1067
+ * must degrade to the plain Billing link rather than build a dead URL.
1068
+ *
1069
+ * Deliberately not an href. A full URL from an extension would be an
1070
+ * open redirect rendered by the console's own chrome; the shell keeps
1071
+ * ownership of the route and accepts only which part of it to scroll to.
1072
+ */
1073
+ billingAnchor?: string;
1074
+ }
1075
+ /** What the console's generic staff route hands a staff page. */
1076
+ export interface ConsoleStaffPageProps {
1077
+ /** The page's own console path, `/admin/{id}`. */
1078
+ basePath: string;
1079
+ }
1080
+ /**
1081
+ * A page a plugin adds to the STAFF area (AGL-2939): a tab in the staff
1082
+ * strip and a page at `/admin/{id}`, rendered by the console's generic staff
1083
+ * route. The shell owns the layout, the header, the breadcrumbs, the staff
1084
+ * guard and the tab; the plugin owns the body.
1085
+ *
1086
+ * Staff pages load with the staff area's plugins — those declaring a `staff`
1087
+ * register surface — not with a workspace's, because no org names the plugin
1088
+ * set on `/admin`. They are admitted by the staff claim alone, so the
1089
+ * extension's `featureFlag` and `permission` do not apply, and every read a
1090
+ * staff page makes is refused server-side to a caller without the claim.
1091
+ */
1092
+ export interface ConsoleStaffPage {
1093
+ /**
1094
+ * The URL segment under `/admin`, and the page's identity. The console's
1095
+ * own staff routes win a segment they use, so pick one they do not. It is
1096
+ * in links staff keep — treat it as persisted.
1097
+ */
1098
+ id: string;
1099
+ /** The tab's label in the staff strip. */
1100
+ label: string;
1101
+ /**
1102
+ * The page header (title and icon), and the docs topic its help `?`
1103
+ * explains — a plain string for the reason {@link ConsoleNavItem.header}
1104
+ * gives, validated by the console.
1105
+ */
1106
+ header?: {
1107
+ title: string;
1108
+ icon?: MdiIconProps;
1109
+ docsTopic?: string;
1110
+ };
1111
+ Component: ComponentType<ConsoleStaffPageProps>;
1112
+ }
1113
+ export interface ConsoleExtension {
1114
+ pluginId: PluginId;
1115
+ displayName: string;
1116
+ /** Entitlement flag gating every surface this extension registers. */
1117
+ featureFlag?: keyof OrgFeatureFlags;
1118
+ /**
1119
+ * The permission a reader must hold for every surface this extension
1120
+ * registers — the AUTHORIZATION half of the sentence above `featureFlag`.
1121
+ *
1122
+ * `featureFlag` answers what the ORGANIZATION bought; this answers what
1123
+ * the PERSON reading may open, and the two are independent: an org can
1124
+ * hold a feature that most of its members have no business using.
1125
+ *
1126
+ * A key in the console's permission vocabulary, which is two spaces and
1127
+ * they are not interchangeable. Either a dotted {@link OrgPermission} from
1128
+ * the built-in catalog ('data.manage'), which the shell answers from the
1129
+ * member's resolved granular map; or a key some plugin declared through
1130
+ * `registerPluginPermissions` ('managePos'), which the shell answers from
1131
+ * the resolved permission map that carries those keys. A key belonging to
1132
+ * NEITHER space refuses the surface rather than passing it — a requirement
1133
+ * nothing can answer is not a requirement that has been met.
1134
+ *
1135
+ * Declared here rather than checked inside the page for the reason the
1136
+ * entitlement gate moved out of the pages: a check the extension performs
1137
+ * on itself is enforcement only for as long as every extension remembers
1138
+ * to perform it, and the surface has already mounted and opened its
1139
+ * listeners by the time it runs.
1140
+ *
1141
+ * Omit for a surface every member of the workspace may open.
1142
+ */
1143
+ permission?: string;
1144
+ /**
1145
+ * Refusal copy for an org that does not hold `featureFlag`, rendered by
1146
+ * the shell in place of the surface. Omit to get the shell's generic
1147
+ * plan-tier sentence.
1148
+ */
1149
+ upgradeNotice?: ConsoleUpgradeNotice;
1150
+ navItems?: ConsoleNavItem[];
1151
+ /**
1152
+ * Surfaces mounted at the ORGANIZATION level rather than under a site
1153
+ * (AGL-2974): each is served at `/[orgSlug]{href}` by the console's generic
1154
+ * org route and listed on the organization's tab strip.
1155
+ *
1156
+ * A separate list rather than a flag on {@link ConsoleNavItem}, because the
1157
+ * two levels are read by different consumers. The site strip, the site
1158
+ * route and every title and section lookup iterate `navItems`, and a scope
1159
+ * field on one of those entries would reach each of them as a site surface
1160
+ * until every one of them learned to skip it. Nothing that reads `navItems`
1161
+ * sees these.
1162
+ *
1163
+ * The same contract a site nav item has, with the site taken away: the
1164
+ * page receives `hostId: null` and an `orgMount` naming the organization
1165
+ * and its sites, sections resolve and gate the same way, and the
1166
+ * extension's `featureFlag` and `permission` apply unchanged. The shell
1167
+ * admits only a reader whose reach is the whole organization, because a
1168
+ * surface with no site has no scope to narrow a site collaborator to.
1169
+ *
1170
+ * The href must not name one of the console's own organization routes
1171
+ * (`/hosts`, `/team`, `/settings`, `/crm` and the rest): a named route
1172
+ * always wins over the generic one, so such a surface would never render.
1173
+ */
1174
+ orgNavItems?: ConsoleNavItem[];
1175
+ dashboardCards?: ConsoleDashboardCard[];
1176
+ settingsSections?: ConsoleSettingsSection[];
1177
+ /** Slot-addressed components the shell renders in place (AGL-419). */
1178
+ widgets?: ConsoleWidget[];
1179
+ /**
1180
+ * Pages in the STAFF area (AGL-2939) — see {@link ConsoleStaffPage}.
1181
+ * Neither `featureFlag` nor `permission` applies to them.
1182
+ */
1183
+ staffPages?: readonly ConsoleStaffPage[];
1184
+ /**
1185
+ * App-level providers the shell mounts around every console page
1186
+ * (AGL-419) — e.g. the marketplace plugin's AI-assist provider.
1187
+ */
1188
+ providers?: Array<ComponentType<any>>;
1189
+ }
1190
+ /** Idempotent by pluginId — re-registration replaces the previous entry. */
1191
+ export declare function registerConsoleExtension(extension: ConsoleExtension): void;
1192
+ export declare function unregisterConsoleExtension(pluginId: PluginId): void;
1193
+ /**
1194
+ * Registration-ordered extensions; the console shell filters by flag.
1195
+ *
1196
+ * AGL-758: the registry is a module-global that only ever grows — nothing
1197
+ * outside tests unregisters, and loaded chunks can't unload — so after
1198
+ * visiting two workspaces it holds the UNION of both plugin sets. Every
1199
+ * read is therefore scoped by the caller's effective enabled set; pass the
1200
+ * current org's plugin ids so one workspace never serves another's nav
1201
+ * items, widgets, pages or providers. Omitting the argument keeps the
1202
+ * unfiltered union (tests, and non-org surfaces that have no such set).
1203
+ */
1204
+ export declare function listConsoleExtensions(enabledPluginIds?: readonly PluginId[]): ConsoleExtension[];
1205
+ /** A nav item flattened with its owning extension's id + entitlement flag. */
1206
+ export interface ConsoleNavEntry extends ConsoleNavItem {
1207
+ pluginId: PluginId;
1208
+ featureFlag?: keyof OrgFeatureFlags;
1209
+ }
1210
+ /**
1211
+ * Every registered nav item, flattened for the shell's nav strip. The
1212
+ * shell appends these to its static tabs, so a plugin adds a menu item
1213
+ * by registering here — no edit to the console's nav constants.
1214
+ */
1215
+ export declare function listConsoleNavItems(enabledPluginIds?: readonly PluginId[]): ConsoleNavEntry[];
1216
+ /** What {@link resolveConsolePluginPage} answers for a matched href. */
1217
+ export interface ResolvedConsolePluginPage {
1218
+ extension: ConsoleExtension;
1219
+ navItem: ConsoleNavItem;
1220
+ /**
1221
+ * The section the href names, when the nav item declares sections and the
1222
+ * href reaches past its own. Undefined on the nav item's own href.
1223
+ */
1224
+ section?: ConsoleNavSection;
1225
+ /** Path segments beneath `navItem.href`; `[]` on the nav item's own href. */
1226
+ segments: readonly string[];
1227
+ /**
1228
+ * The href was one of the nav item's `legacyHrefs`, not its current one.
1229
+ * The shell redirects to `navItem.href` plus the same section and segments.
1230
+ */
1231
+ legacy?: boolean;
1232
+ }
1233
+ /**
1234
+ * Resolves a host-relative href (e.g. '/events', '/products/orders') to the
1235
+ * extension + nav item that owns a renderable page for it, and the section
1236
+ * within it. The shell's generic host route uses this to render plugin pages
1237
+ * without a per-plugin page file.
1238
+ *
1239
+ * ## Which registration wins (AGL-2501)
1240
+ *
1241
+ * LONGEST declared `href` wins, and an exact match therefore always beats a
1242
+ * section match — an exact `href` spans the whole path, so nothing matching a
1243
+ * prefix of it can be longer. `/products/orders` goes to a plugin that
1244
+ * declares that path over one that declares `/products` with an `orders`
1245
+ * section, and a prefix only matches on a SEGMENT boundary, so `/products`
1246
+ * never claims `/products-archive`.
1247
+ *
1248
+ * A TIE REFUSES. Two enabled plugins matching the same path at the same length
1249
+ * resolve to nothing, and the console 404s. Registry insertion order is an
1250
+ * accident of which chunk loaded first, so picking from it means one
1251
+ * workspace serves plugin A's page at a URL where another serves plugin B's —
1252
+ * silently, and differently per session. Nobody can debug that from the
1253
+ * symptom, so it is refused and logged instead. Two nav items of the SAME
1254
+ * extension are not a tie: that order is authored, and the first wins as it
1255
+ * always has.
1256
+ *
1257
+ * This is a rule rather than an accident because the registry is a
1258
+ * session-wide UNION across plugins from different authors (AGL-758) — one
1259
+ * plugin registering `/products` and another `/products/orders` is two
1260
+ * workspaces' code meeting in one module-global, not one author's tidiness
1261
+ * problem. Scoping is unchanged and load-bearing: every candidate still comes
1262
+ * from `listConsoleExtensions(enabledPluginIds)`, so a plugin the current org
1263
+ * has not enabled cannot win a path — or collide with one.
1264
+ */
1265
+ export declare function resolveConsolePluginPage(href: string, enabledPluginIds?: readonly PluginId[]): ResolvedConsolePluginPage | undefined;
1266
+ /** One organization-level nav item with the extension that declared it. */
1267
+ export interface ConsoleOrgNavEntry {
1268
+ extension: ConsoleExtension;
1269
+ navItem: ConsoleNavItem;
1270
+ }
1271
+ /**
1272
+ * Every registered {@link ConsoleExtension.orgNavItems} entry, in
1273
+ * registration order, for the organization's tab strip (AGL-2974).
1274
+ *
1275
+ * Carries the extension whole rather than a flattened copy of two of its
1276
+ * fields: a tab for a surface the reader cannot open is hidden, and deciding
1277
+ * that takes the extension's `permission`, `featureFlag` and
1278
+ * `upgradeNotice`, which is the same set the org route reads.
1279
+ */
1280
+ export declare function listConsoleOrgNavItems(enabledPluginIds?: readonly PluginId[]): ConsoleOrgNavEntry[];
1281
+ /**
1282
+ * {@link resolveConsolePluginPage} for the ORGANIZATION level (AGL-2974): an
1283
+ * org-relative href (`/outreach/sequences`) against every enabled
1284
+ * extension's `orgNavItems`, with the same matching, the same longest-href
1285
+ * rule and the same refusal of a tie between two plugins. Site nav items are
1286
+ * never candidates, so a surface registered under a site cannot be opened
1287
+ * without one.
1288
+ */
1289
+ export declare function resolveConsoleOrgPluginPage(href: string, enabledPluginIds?: readonly PluginId[]): ResolvedConsolePluginPage | undefined;
1290
+ /** A staff page flattened with its owning extension's id. */
1291
+ export interface ConsoleStaffPageEntry extends ConsoleStaffPage {
1292
+ pluginId: PluginId;
1293
+ }
1294
+ /**
1295
+ * Every registered staff page, in registration order — the staff strip's
1296
+ * plugin tabs, after the console's own.
1297
+ */
1298
+ export declare function listConsoleStaffPages(enabledPluginIds?: readonly PluginId[]): ConsoleStaffPageEntry[];
1299
+ /**
1300
+ * The staff page at `/admin/{id}` (AGL-2939), or `undefined`.
1301
+ *
1302
+ * Two plugins claiming one id resolve to nothing, and say so: registry order
1303
+ * is an accident of which chunk loaded first, and a staff page that is one
1304
+ * plugin's on one load and another's on the next cannot be debugged from the
1305
+ * symptom — the same rule {@link resolveConsolePluginPage} applies to paths.
1306
+ */
1307
+ export declare function resolveConsoleStaffPage(id: string, enabledPluginIds?: readonly PluginId[]): ConsoleStaffPageEntry | undefined;
1308
+ /** Widgets registered for a slot, across every extension (AGL-419). */
1309
+ export declare function listConsoleWidgets(slot: string, enabledPluginIds?: readonly PluginId[]): Array<{
1310
+ extension: ConsoleExtension;
1311
+ widget: ConsoleWidget;
1312
+ }>;
1313
+ /** Providers registered by every extension, in registration order. */
1314
+ export declare function listConsoleProviders(enabledPluginIds?: readonly PluginId[]): Array<ComponentType<any>>;