@antelopejs/dms 0.9.2 → 0.9.3

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 (1207) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +92 -35
  3. package/dist/config.d.ts +2 -0
  4. package/dist/config.js +7 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/db/models/attachments.model.d.ts +1 -0
  7. package/dist/db/models/signInAttempts.model.d.ts +1 -0
  8. package/dist/db/models/systemState.model.d.ts +1 -0
  9. package/dist/db/models/userEmailChanges.model.d.ts +1 -0
  10. package/dist/db/models/userKnownDevices.model.d.ts +1 -0
  11. package/dist/db/models/userNotificationPreferences.model.d.ts +1 -0
  12. package/dist/db/models/userNotifications.model.d.ts +1 -0
  13. package/dist/index.js +4 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/pages/public/preview/block-types.d.ts +7 -0
  16. package/dist/pages/public/preview/block-types.js +19 -0
  17. package/dist/pages/public/preview/block-types.js.map +1 -0
  18. package/dist/pages/public/preview/index.d.ts +10 -0
  19. package/dist/pages/public/preview/index.js +44 -0
  20. package/dist/pages/public/preview/index.js.map +1 -0
  21. package/dist/routes/block-preview.d.ts +8 -0
  22. package/dist/routes/block-preview.js +32 -0
  23. package/dist/routes/block-preview.js.map +1 -0
  24. package/dist/routes/index.d.ts +1 -0
  25. package/dist/routes/index.js +1 -0
  26. package/dist/routes/index.js.map +1 -1
  27. package/frontend-vue/dms.frontend.ts +4 -2
  28. package/frontend-vue/layers/dms-core/app/composables/user/useUserRegionalPreferences.ts +4 -1
  29. package/frontend-vue/layers/dms-core/app/types/menu.ts +3 -2
  30. package/frontend-vue/layers/dms-layout/app/assets/css/main.css +5 -5
  31. package/frontend-vue/layers/dms-layout/app/composables/page/usePageComponentPreload.ts +8 -3
  32. package/frontend-vue/layers/dms-layout/app/custom-layouts/PreviewLayout.vue +34 -0
  33. package/frontend-vue/layers/dms-layout/app/plugins/font-preload.ts +18 -16
  34. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +3 -0
  35. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +3 -0
  36. package/frontend-vue/layers/dms-onboarding/app/middleware/onboarding.global.ts +4 -0
  37. package/frontend-vue/layers/dms-ui/app/build/components/block-preview/BlockPreviewIssue.vue +25 -0
  38. package/frontend-vue/layers/dms-ui/app/build/components/sortable/SortableList.vue +144 -0
  39. package/frontend-vue/layers/dms-ui/app/build/components/table/MenuColumns.vue +23 -21
  40. package/frontend-vue/layers/dms-ui/app/build/composables/block-preview/useBlockPreviewEmbed.ts +123 -0
  41. package/frontend-vue/layers/dms-ui/app/build/composables/blocks/useRefreshTriggers.ts +23 -6
  42. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableRows.ts +81 -3
  43. package/frontend-vue/layers/dms-ui/app/build/utils/blockPreview.ts +432 -0
  44. package/frontend-vue/layers/dms-ui/app/components/block-preview/BlockPreview.vue +172 -0
  45. package/frontend-vue/layers/dms-ui/app/components/table-view/KanbanBoard.vue +17 -15
  46. package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +1 -4
  47. package/frontend-vue/layers/dms-ui/app/composables/chart/useChartFetch.ts +47 -9
  48. package/frontend-vue/layers/dms-ui/app/composables/form/useForm.ts +4 -1
  49. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +8 -0
  50. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +8 -0
  51. package/frontend-vue/package.json +5 -4
  52. package/package.json +44 -17
  53. package/skills/dms/REFERENCE.md +21 -19
  54. package/skills/dms/SKILL.md +64 -138
  55. package/skills/dms-auth/SKILL.md +4 -1
  56. package/skills/dms-best-practices/REFERENCE.md +93 -0
  57. package/skills/dms-best-practices/SKILL.md +77 -0
  58. package/skills/dms-module/REFERENCE.md +7 -5
  59. package/skills/dms-module/SKILL.md +9 -3
  60. package/skills/dms-pages/REFERENCE.md +112 -26
  61. package/skills/dms-pages/SKILL.md +12 -11
  62. package/skills/dms-project/DEV-SERVERS.md +74 -0
  63. package/skills/dms-project/SKILL.md +102 -14
  64. package/dist/test/antelope.test.d.ts +0 -2
  65. package/dist/test/antelope.test.js +0 -148
  66. package/dist/test/antelope.test.js.map +0 -1
  67. package/dist/test/api-endpoint/index.d.ts +0 -5
  68. package/dist/test/api-endpoint/index.js +0 -8
  69. package/dist/test/api-endpoint/index.js.map +0 -1
  70. package/dist/test/attachment-host/archive.d.ts +0 -58
  71. package/dist/test/attachment-host/archive.js +0 -79
  72. package/dist/test/attachment-host/archive.js.map +0 -1
  73. package/dist/test/attachment-host/capabilities.d.ts +0 -109
  74. package/dist/test/attachment-host/capabilities.js +0 -252
  75. package/dist/test/attachment-host/capabilities.js.map +0 -1
  76. package/dist/test/attachment-host/derived.d.ts +0 -74
  77. package/dist/test/attachment-host/derived.js +0 -96
  78. package/dist/test/attachment-host/derived.js.map +0 -1
  79. package/dist/test/attachment-host/index.d.ts +0 -4
  80. package/dist/test/attachment-host/index.js +0 -7
  81. package/dist/test/attachment-host/index.js.map +0 -1
  82. package/dist/test/attachment-host/native.d.ts +0 -39
  83. package/dist/test/attachment-host/native.js +0 -217
  84. package/dist/test/attachment-host/native.js.map +0 -1
  85. package/dist/test/helpers/attachments.d.ts +0 -18
  86. package/dist/test/helpers/attachments.js +0 -57
  87. package/dist/test/helpers/attachments.js.map +0 -1
  88. package/dist/test/helpers/auth.d.ts +0 -22
  89. package/dist/test/helpers/auth.js +0 -57
  90. package/dist/test/helpers/auth.js.map +0 -1
  91. package/dist/test/helpers/db.d.ts +0 -3
  92. package/dist/test/helpers/db.js +0 -69
  93. package/dist/test/helpers/db.js.map +0 -1
  94. package/dist/test/helpers/derived-controller.d.ts +0 -12
  95. package/dist/test/helpers/derived-controller.js +0 -20
  96. package/dist/test/helpers/derived-controller.js.map +0 -1
  97. package/dist/test/helpers/emails.d.ts +0 -10
  98. package/dist/test/helpers/emails.js +0 -36
  99. package/dist/test/helpers/emails.js.map +0 -1
  100. package/dist/test/helpers/fixtures.d.ts +0 -22
  101. package/dist/test/helpers/fixtures.js +0 -61
  102. package/dist/test/helpers/fixtures.js.map +0 -1
  103. package/dist/test/helpers/http.d.ts +0 -4
  104. package/dist/test/helpers/http.js +0 -34
  105. package/dist/test/helpers/http.js.map +0 -1
  106. package/dist/test/helpers/logging.d.ts +0 -6
  107. package/dist/test/helpers/logging.js +0 -26
  108. package/dist/test/helpers/logging.js.map +0 -1
  109. package/dist/test/helpers/page-access.d.ts +0 -17
  110. package/dist/test/helpers/page-access.js +0 -49
  111. package/dist/test/helpers/page-access.js.map +0 -1
  112. package/dist/test/helpers/reload-host.d.ts +0 -14
  113. package/dist/test/helpers/reload-host.js +0 -40
  114. package/dist/test/helpers/reload-host.js.map +0 -1
  115. package/dist/test/integration/account-deletion.test.d.ts +0 -1
  116. package/dist/test/integration/account-deletion.test.js +0 -84
  117. package/dist/test/integration/account-deletion.test.js.map +0 -1
  118. package/dist/test/integration/auth/auth-key-rotation.test.d.ts +0 -1
  119. package/dist/test/integration/auth/auth-key-rotation.test.js +0 -78
  120. package/dist/test/integration/auth/auth-key-rotation.test.js.map +0 -1
  121. package/dist/test/integration/auth/client-ip.test.d.ts +0 -1
  122. package/dist/test/integration/auth/client-ip.test.js +0 -14
  123. package/dist/test/integration/auth/client-ip.test.js.map +0 -1
  124. package/dist/test/integration/auth/current-password.test.d.ts +0 -1
  125. package/dist/test/integration/auth/current-password.test.js +0 -66
  126. package/dist/test/integration/auth/current-password.test.js.map +0 -1
  127. package/dist/test/integration/auth/login-throttle.test.d.ts +0 -1
  128. package/dist/test/integration/auth/login-throttle.test.js +0 -88
  129. package/dist/test/integration/auth/login-throttle.test.js.map +0 -1
  130. package/dist/test/integration/auth/password-reset.test.d.ts +0 -1
  131. package/dist/test/integration/auth/password-reset.test.js +0 -126
  132. package/dist/test/integration/auth/password-reset.test.js.map +0 -1
  133. package/dist/test/integration/auth/session-revocation.test.d.ts +0 -1
  134. package/dist/test/integration/auth/session-revocation.test.js +0 -46
  135. package/dist/test/integration/auth/session-revocation.test.js.map +0 -1
  136. package/dist/test/integration/auth/sign-in-country.test.d.ts +0 -1
  137. package/dist/test/integration/auth/sign-in-country.test.js +0 -76
  138. package/dist/test/integration/auth/sign-in-country.test.js.map +0 -1
  139. package/dist/test/integration/auth/two-factor-codes.test.d.ts +0 -1
  140. package/dist/test/integration/auth/two-factor-codes.test.js +0 -338
  141. package/dist/test/integration/auth/two-factor-codes.test.js.map +0 -1
  142. package/dist/test/integration/auth/two-factor-password.test.d.ts +0 -1
  143. package/dist/test/integration/auth/two-factor-password.test.js +0 -45
  144. package/dist/test/integration/auth/two-factor-password.test.js.map +0 -1
  145. package/dist/test/integration/auth/two-factor-token.test.d.ts +0 -1
  146. package/dist/test/integration/auth/two-factor-token.test.js +0 -92
  147. package/dist/test/integration/auth/two-factor-token.test.js.map +0 -1
  148. package/dist/test/integration/derived-controller.test.d.ts +0 -1
  149. package/dist/test/integration/derived-controller.test.js +0 -105
  150. package/dist/test/integration/derived-controller.test.js.map +0 -1
  151. package/dist/test/integration/email-change.test.d.ts +0 -1
  152. package/dist/test/integration/email-change.test.js +0 -137
  153. package/dist/test/integration/email-change.test.js.map +0 -1
  154. package/dist/test/integration/export-cleanup.test.d.ts +0 -1
  155. package/dist/test/integration/export-cleanup.test.js +0 -144
  156. package/dist/test/integration/export-cleanup.test.js.map +0 -1
  157. package/dist/test/integration/files/component-file-retries.test.d.ts +0 -1
  158. package/dist/test/integration/files/component-file-retries.test.js +0 -219
  159. package/dist/test/integration/files/component-file-retries.test.js.map +0 -1
  160. package/dist/test/integration/files/component-files.test.d.ts +0 -1
  161. package/dist/test/integration/files/component-files.test.js +0 -264
  162. package/dist/test/integration/files/component-files.test.js.map +0 -1
  163. package/dist/test/integration/files/field-constraints.test.d.ts +0 -1
  164. package/dist/test/integration/files/field-constraints.test.js +0 -100
  165. package/dist/test/integration/files/field-constraints.test.js.map +0 -1
  166. package/dist/test/integration/files/page-mode-form-files.test.d.ts +0 -1
  167. package/dist/test/integration/files/page-mode-form-files.test.js +0 -114
  168. package/dist/test/integration/files/page-mode-form-files.test.js.map +0 -1
  169. package/dist/test/integration/files/resource-form-files.test.d.ts +0 -1
  170. package/dist/test/integration/files/resource-form-files.test.js +0 -121
  171. package/dist/test/integration/files/resource-form-files.test.js.map +0 -1
  172. package/dist/test/integration/files/shared-controller-files.test.d.ts +0 -1
  173. package/dist/test/integration/files/shared-controller-files.test.js +0 -146
  174. package/dist/test/integration/files/shared-controller-files.test.js.map +0 -1
  175. package/dist/test/integration/files/sign-upload-token.test.d.ts +0 -1
  176. package/dist/test/integration/files/sign-upload-token.test.js +0 -16
  177. package/dist/test/integration/files/sign-upload-token.test.js.map +0 -1
  178. package/dist/test/integration/files/upload.test.d.ts +0 -1
  179. package/dist/test/integration/files/upload.test.js +0 -114
  180. package/dist/test/integration/files/upload.test.js.map +0 -1
  181. package/dist/test/integration/frontend-endpoints.test.d.ts +0 -1
  182. package/dist/test/integration/frontend-endpoints.test.js +0 -132
  183. package/dist/test/integration/frontend-endpoints.test.js.map +0 -1
  184. package/dist/test/integration/invite-extension-edit.test.d.ts +0 -1
  185. package/dist/test/integration/invite-extension-edit.test.js +0 -121
  186. package/dist/test/integration/invite-extension-edit.test.js.map +0 -1
  187. package/dist/test/integration/invite-link-status.test.d.ts +0 -1
  188. package/dist/test/integration/invite-link-status.test.js +0 -110
  189. package/dist/test/integration/invite-link-status.test.js.map +0 -1
  190. package/dist/test/integration/invite-resolution.test.d.ts +0 -1
  191. package/dist/test/integration/invite-resolution.test.js +0 -433
  192. package/dist/test/integration/invite-resolution.test.js.map +0 -1
  193. package/dist/test/integration/member-change-notifications.test.d.ts +0 -1
  194. package/dist/test/integration/member-change-notifications.test.js +0 -52
  195. package/dist/test/integration/member-change-notifications.test.js.map +0 -1
  196. package/dist/test/integration/member-settings-access.test.d.ts +0 -1
  197. package/dist/test/integration/member-settings-access.test.js +0 -118
  198. package/dist/test/integration/member-settings-access.test.js.map +0 -1
  199. package/dist/test/integration/menu-access-events.test.d.ts +0 -1
  200. package/dist/test/integration/menu-access-events.test.js +0 -148
  201. package/dist/test/integration/menu-access-events.test.js.map +0 -1
  202. package/dist/test/integration/notification-inbox.test.d.ts +0 -1
  203. package/dist/test/integration/notification-inbox.test.js +0 -100
  204. package/dist/test/integration/notification-inbox.test.js.map +0 -1
  205. package/dist/test/integration/notification-locked-subjects.test.d.ts +0 -1
  206. package/dist/test/integration/notification-locked-subjects.test.js +0 -82
  207. package/dist/test/integration/notification-locked-subjects.test.js.map +0 -1
  208. package/dist/test/integration/notification-unread-badge.test.d.ts +0 -1
  209. package/dist/test/integration/notification-unread-badge.test.js +0 -138
  210. package/dist/test/integration/notification-unread-badge.test.js.map +0 -1
  211. package/dist/test/integration/notifications.test.d.ts +0 -1
  212. package/dist/test/integration/notifications.test.js +0 -311
  213. package/dist/test/integration/notifications.test.js.map +0 -1
  214. package/dist/test/integration/page-layout-route-guard.test.d.ts +0 -1
  215. package/dist/test/integration/page-layout-route-guard.test.js +0 -56
  216. package/dist/test/integration/page-layout-route-guard.test.js.map +0 -1
  217. package/dist/test/integration/page-session.test.d.ts +0 -1
  218. package/dist/test/integration/page-session.test.js +0 -52
  219. package/dist/test/integration/page-session.test.js.map +0 -1
  220. package/dist/test/integration/permission-warnings.test.d.ts +0 -1
  221. package/dist/test/integration/permission-warnings.test.js +0 -72
  222. package/dist/test/integration/permission-warnings.test.js.map +0 -1
  223. package/dist/test/integration/removed-member-notifications.test.d.ts +0 -1
  224. package/dist/test/integration/removed-member-notifications.test.js +0 -81
  225. package/dist/test/integration/removed-member-notifications.test.js.map +0 -1
  226. package/dist/test/integration/role-delete-reassign.test.d.ts +0 -1
  227. package/dist/test/integration/role-delete-reassign.test.js +0 -69
  228. package/dist/test/integration/role-delete-reassign.test.js.map +0 -1
  229. package/dist/test/integration/role-permission-ancestors.test.d.ts +0 -1
  230. package/dist/test/integration/role-permission-ancestors.test.js +0 -147
  231. package/dist/test/integration/role-permission-ancestors.test.js.map +0 -1
  232. package/dist/test/integration/saas-mode-ownership.test.d.ts +0 -1
  233. package/dist/test/integration/saas-mode-ownership.test.js +0 -81
  234. package/dist/test/integration/saas-mode-ownership.test.js.map +0 -1
  235. package/dist/test/integration/setup.test.d.ts +0 -1
  236. package/dist/test/integration/setup.test.js +0 -45
  237. package/dist/test/integration/setup.test.js.map +0 -1
  238. package/dist/test/integration/sign-in-records.test.d.ts +0 -1
  239. package/dist/test/integration/sign-in-records.test.js +0 -41
  240. package/dist/test/integration/sign-in-records.test.js.map +0 -1
  241. package/dist/test/integration/table-view-archive.test.d.ts +0 -1
  242. package/dist/test/integration/table-view-archive.test.js +0 -46
  243. package/dist/test/integration/table-view-archive.test.js.map +0 -1
  244. package/dist/test/integration/table-view-capabilities.test.d.ts +0 -1
  245. package/dist/test/integration/table-view-capabilities.test.js +0 -177
  246. package/dist/test/integration/table-view-capabilities.test.js.map +0 -1
  247. package/dist/test/integration/tenant-lifecycle.test.d.ts +0 -1
  248. package/dist/test/integration/tenant-lifecycle.test.js +0 -278
  249. package/dist/test/integration/tenant-lifecycle.test.js.map +0 -1
  250. package/dist/test/reload-host/index.d.ts +0 -2
  251. package/dist/test/reload-host/index.js +0 -58
  252. package/dist/test/reload-host/index.js.map +0 -1
  253. package/dist/test/reload-host/package.json +0 -8
  254. package/dist/test/unit/api-base-url.test.d.ts +0 -1
  255. package/dist/test/unit/api-base-url.test.js +0 -31
  256. package/dist/test/unit/api-base-url.test.js.map +0 -1
  257. package/dist/test/unit/auth-session-revocation.test.d.ts +0 -1
  258. package/dist/test/unit/auth-session-revocation.test.js +0 -105
  259. package/dist/test/unit/auth-session-revocation.test.js.map +0 -1
  260. package/dist/test/unit/auth-token-purpose.test.d.ts +0 -1
  261. package/dist/test/unit/auth-token-purpose.test.js +0 -84
  262. package/dist/test/unit/auth-token-purpose.test.js.map +0 -1
  263. package/dist/test/unit/automation-registration-lifecycle.test.d.ts +0 -1
  264. package/dist/test/unit/automation-registration-lifecycle.test.js +0 -23
  265. package/dist/test/unit/automation-registration-lifecycle.test.js.map +0 -1
  266. package/dist/test/unit/client-ip.test.d.ts +0 -1
  267. package/dist/test/unit/client-ip.test.js +0 -71
  268. package/dist/test/unit/client-ip.test.js.map +0 -1
  269. package/dist/test/unit/db/email-normalization.test.d.ts +0 -1
  270. package/dist/test/unit/db/email-normalization.test.js +0 -58
  271. package/dist/test/unit/db/email-normalization.test.js.map +0 -1
  272. package/dist/test/unit/db/notification-feed-filter.test.d.ts +0 -1
  273. package/dist/test/unit/db/notification-feed-filter.test.js +0 -128
  274. package/dist/test/unit/db/notification-feed-filter.test.js.map +0 -1
  275. package/dist/test/unit/db/notification-feed-index.test.d.ts +0 -1
  276. package/dist/test/unit/db/notification-feed-index.test.js +0 -35
  277. package/dist/test/unit/db/notification-feed-index.test.js.map +0 -1
  278. package/dist/test/unit/db/notification-inbox.test.d.ts +0 -1
  279. package/dist/test/unit/db/notification-inbox.test.js +0 -160
  280. package/dist/test/unit/db/notification-inbox.test.js.map +0 -1
  281. package/dist/test/unit/db/notification-preferences.test.d.ts +0 -1
  282. package/dist/test/unit/db/notification-preferences.test.js +0 -39
  283. package/dist/test/unit/db/notification-preferences.test.js.map +0 -1
  284. package/dist/test/unit/db/session-refresh-token.test.d.ts +0 -1
  285. package/dist/test/unit/db/session-refresh-token.test.js +0 -41
  286. package/dist/test/unit/db/session-refresh-token.test.js.map +0 -1
  287. package/dist/test/unit/db/session-sweep.test.d.ts +0 -1
  288. package/dist/test/unit/db/session-sweep.test.js +0 -43
  289. package/dist/test/unit/db/session-sweep.test.js.map +0 -1
  290. package/dist/test/unit/db/system-state.model.test.d.ts +0 -1
  291. package/dist/test/unit/db/system-state.model.test.js +0 -55
  292. package/dist/test/unit/db/system-state.model.test.js.map +0 -1
  293. package/dist/test/unit/dev/module-update-notifications.test.d.ts +0 -1
  294. package/dist/test/unit/dev/module-update-notifications.test.js +0 -43
  295. package/dist/test/unit/dev/module-update-notifications.test.js.map +0 -1
  296. package/dist/test/unit/dist-self-imports.test.d.ts +0 -1
  297. package/dist/test/unit/dist-self-imports.test.js +0 -25
  298. package/dist/test/unit/dist-self-imports.test.js.map +0 -1
  299. package/dist/test/unit/frontend-bootstrap.test.d.ts +0 -1
  300. package/dist/test/unit/frontend-bootstrap.test.js +0 -88
  301. package/dist/test/unit/frontend-bootstrap.test.js.map +0 -1
  302. package/dist/test/unit/frontend-renderer-range.test.d.ts +0 -1
  303. package/dist/test/unit/frontend-renderer-range.test.js +0 -45
  304. package/dist/test/unit/frontend-renderer-range.test.js.map +0 -1
  305. package/dist/test/unit/implementations/dms/archive-filter.test.d.ts +0 -1
  306. package/dist/test/unit/implementations/dms/archive-filter.test.js +0 -63
  307. package/dist/test/unit/implementations/dms/archive-filter.test.js.map +0 -1
  308. package/dist/test/unit/implementations/dms/category-slug-registry.test.d.ts +0 -1
  309. package/dist/test/unit/implementations/dms/category-slug-registry.test.js +0 -196
  310. package/dist/test/unit/implementations/dms/category-slug-registry.test.js.map +0 -1
  311. package/dist/test/unit/implementations/dms/dev-reload.test.d.ts +0 -1
  312. package/dist/test/unit/implementations/dms/dev-reload.test.js +0 -100
  313. package/dist/test/unit/implementations/dms/dev-reload.test.js.map +0 -1
  314. package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.d.ts +0 -1
  315. package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.js +0 -171
  316. package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.js.map +0 -1
  317. package/dist/test/unit/implementations/dms/dynamic-menu.test.d.ts +0 -1
  318. package/dist/test/unit/implementations/dms/dynamic-menu.test.js +0 -478
  319. package/dist/test/unit/implementations/dms/dynamic-menu.test.js.map +0 -1
  320. package/dist/test/unit/implementations/dms/empty-menu-group.test.d.ts +0 -1
  321. package/dist/test/unit/implementations/dms/empty-menu-group.test.js +0 -133
  322. package/dist/test/unit/implementations/dms/empty-menu-group.test.js.map +0 -1
  323. package/dist/test/unit/implementations/dms/frontend-backend-proxies.test.d.ts +0 -1
  324. package/dist/test/unit/implementations/dms/frontend-backend-proxies.test.js +0 -66
  325. package/dist/test/unit/implementations/dms/frontend-backend-proxies.test.js.map +0 -1
  326. package/dist/test/unit/implementations/dms/frontend-establish-endpoints.test.d.ts +0 -1
  327. package/dist/test/unit/implementations/dms/frontend-establish-endpoints.test.js +0 -58
  328. package/dist/test/unit/implementations/dms/frontend-establish-endpoints.test.js.map +0 -1
  329. package/dist/test/unit/implementations/dms/frontend-module-metadata.test.d.ts +0 -1
  330. package/dist/test/unit/implementations/dms/frontend-module-metadata.test.js +0 -38
  331. package/dist/test/unit/implementations/dms/frontend-module-metadata.test.js.map +0 -1
  332. package/dist/test/unit/implementations/dms/frontend-public-endpoints.test.d.ts +0 -1
  333. package/dist/test/unit/implementations/dms/frontend-public-endpoints.test.js +0 -74
  334. package/dist/test/unit/implementations/dms/frontend-public-endpoints.test.js.map +0 -1
  335. package/dist/test/unit/implementations/dms/gate-consistency.test.d.ts +0 -1
  336. package/dist/test/unit/implementations/dms/gate-consistency.test.js +0 -112
  337. package/dist/test/unit/implementations/dms/gate-consistency.test.js.map +0 -1
  338. package/dist/test/unit/implementations/dms/layout-banners.test.d.ts +0 -1
  339. package/dist/test/unit/implementations/dms/layout-banners.test.js +0 -307
  340. package/dist/test/unit/implementations/dms/layout-banners.test.js.map +0 -1
  341. package/dist/test/unit/implementations/dms/manifest-strip.test.d.ts +0 -1
  342. package/dist/test/unit/implementations/dms/manifest-strip.test.js +0 -141
  343. package/dist/test/unit/implementations/dms/manifest-strip.test.js.map +0 -1
  344. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.d.ts +0 -1
  345. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.js +0 -149
  346. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.js.map +0 -1
  347. package/dist/test/unit/implementations/dms/missing-category.test.d.ts +0 -1
  348. package/dist/test/unit/implementations/dms/missing-category.test.js +0 -220
  349. package/dist/test/unit/implementations/dms/missing-category.test.js.map +0 -1
  350. package/dist/test/unit/implementations/dms/module-address-page.test.d.ts +0 -1
  351. package/dist/test/unit/implementations/dms/module-address-page.test.js +0 -107
  352. package/dist/test/unit/implementations/dms/module-address-page.test.js.map +0 -1
  353. package/dist/test/unit/implementations/dms/nav-badges.test.d.ts +0 -1
  354. package/dist/test/unit/implementations/dms/nav-badges.test.js +0 -211
  355. package/dist/test/unit/implementations/dms/nav-badges.test.js.map +0 -1
  356. package/dist/test/unit/implementations/dms/notify-menu-changed.test.d.ts +0 -1
  357. package/dist/test/unit/implementations/dms/notify-menu-changed.test.js +0 -68
  358. package/dist/test/unit/implementations/dms/notify-menu-changed.test.js.map +0 -1
  359. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.d.ts +0 -1
  360. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.js +0 -118
  361. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.js.map +0 -1
  362. package/dist/test/unit/implementations/dms/page-tenant-gate.test.d.ts +0 -1
  363. package/dist/test/unit/implementations/dms/page-tenant-gate.test.js +0 -189
  364. package/dist/test/unit/implementations/dms/page-tenant-gate.test.js.map +0 -1
  365. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.d.ts +0 -1
  366. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.js +0 -132
  367. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.js.map +0 -1
  368. package/dist/test/unit/implementations/dms/permission-preview-cost.test.d.ts +0 -1
  369. package/dist/test/unit/implementations/dms/permission-preview-cost.test.js +0 -120
  370. package/dist/test/unit/implementations/dms/permission-preview-cost.test.js.map +0 -1
  371. package/dist/test/unit/implementations/dms/permission-preview-header.test.d.ts +0 -1
  372. package/dist/test/unit/implementations/dms/permission-preview-header.test.js +0 -78
  373. package/dist/test/unit/implementations/dms/permission-preview-header.test.js.map +0 -1
  374. package/dist/test/unit/implementations/dms/permission-preview-menu.test.d.ts +0 -1
  375. package/dist/test/unit/implementations/dms/permission-preview-menu.test.js +0 -188
  376. package/dist/test/unit/implementations/dms/permission-preview-menu.test.js.map +0 -1
  377. package/dist/test/unit/implementations/dms/permission-teardown.test.d.ts +0 -1
  378. package/dist/test/unit/implementations/dms/permission-teardown.test.js +0 -105
  379. package/dist/test/unit/implementations/dms/permission-teardown.test.js.map +0 -1
  380. package/dist/test/unit/implementations/dms/quick-actions-access.test.d.ts +0 -1
  381. package/dist/test/unit/implementations/dms/quick-actions-access.test.js +0 -159
  382. package/dist/test/unit/implementations/dms/quick-actions-access.test.js.map +0 -1
  383. package/dist/test/unit/implementations/dms/quick-actions-button.test.d.ts +0 -1
  384. package/dist/test/unit/implementations/dms/quick-actions-button.test.js +0 -222
  385. package/dist/test/unit/implementations/dms/quick-actions-button.test.js.map +0 -1
  386. package/dist/test/unit/implementations/dms/quick-actions-openform.test.d.ts +0 -1
  387. package/dist/test/unit/implementations/dms/quick-actions-openform.test.js +0 -184
  388. package/dist/test/unit/implementations/dms/quick-actions-openform.test.js.map +0 -1
  389. package/dist/test/unit/implementations/dms/subscribe-message.test.d.ts +0 -1
  390. package/dist/test/unit/implementations/dms/subscribe-message.test.js +0 -68
  391. package/dist/test/unit/implementations/dms/subscribe-message.test.js.map +0 -1
  392. package/dist/test/unit/implementations/dms/surface-redaction.test.d.ts +0 -1
  393. package/dist/test/unit/implementations/dms/surface-redaction.test.js +0 -171
  394. package/dist/test/unit/implementations/dms/surface-redaction.test.js.map +0 -1
  395. package/dist/test/unit/implementations/dms/user-can-access-page.test.d.ts +0 -1
  396. package/dist/test/unit/implementations/dms/user-can-access-page.test.js +0 -113
  397. package/dist/test/unit/implementations/dms/user-can-access-page.test.js.map +0 -1
  398. package/dist/test/unit/implementations/dms/user-permissions-gate.test.d.ts +0 -1
  399. package/dist/test/unit/implementations/dms/user-permissions-gate.test.js +0 -159
  400. package/dist/test/unit/implementations/dms/user-permissions-gate.test.js.map +0 -1
  401. package/dist/test/unit/implementations/dms/warn-once.test.d.ts +0 -1
  402. package/dist/test/unit/implementations/dms/warn-once.test.js +0 -179
  403. package/dist/test/unit/implementations/dms/warn-once.test.js.map +0 -1
  404. package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.d.ts +0 -1
  405. package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.js +0 -121
  406. package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.js.map +0 -1
  407. package/dist/test/unit/implementations/dms-base/filter-tokens.test.d.ts +0 -1
  408. package/dist/test/unit/implementations/dms-base/filter-tokens.test.js +0 -39
  409. package/dist/test/unit/implementations/dms-base/filter-tokens.test.js.map +0 -1
  410. package/dist/test/unit/implementations/dms-base/footer-summary.test.d.ts +0 -1
  411. package/dist/test/unit/implementations/dms-base/footer-summary.test.js +0 -51
  412. package/dist/test/unit/implementations/dms-base/footer-summary.test.js.map +0 -1
  413. package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.d.ts +0 -1
  414. package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.js +0 -120
  415. package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.js.map +0 -1
  416. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.d.ts +0 -1
  417. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js +0 -114
  418. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js.map +0 -1
  419. package/dist/test/unit/implementations/dms-html-render/built-in-emails.test.d.ts +0 -1
  420. package/dist/test/unit/implementations/dms-html-render/built-in-emails.test.js +0 -34
  421. package/dist/test/unit/implementations/dms-html-render/built-in-emails.test.js.map +0 -1
  422. package/dist/test/unit/implementations/dms-html-render/generate-html.test.d.ts +0 -1
  423. package/dist/test/unit/implementations/dms-html-render/generate-html.test.js +0 -62
  424. package/dist/test/unit/implementations/dms-html-render/generate-html.test.js.map +0 -1
  425. package/dist/test/unit/implementations/dms-html-render/service-jwt.test.d.ts +0 -1
  426. package/dist/test/unit/implementations/dms-html-render/service-jwt.test.js +0 -37
  427. package/dist/test/unit/implementations/dms-html-render/service-jwt.test.js.map +0 -1
  428. package/dist/test/unit/implementations/dms-notifications/delivery-dedupe.test.d.ts +0 -1
  429. package/dist/test/unit/implementations/dms-notifications/delivery-dedupe.test.js +0 -100
  430. package/dist/test/unit/implementations/dms-notifications/delivery-dedupe.test.js.map +0 -1
  431. package/dist/test/unit/implementations/dms-notifications/delivery-guard.test.d.ts +0 -1
  432. package/dist/test/unit/implementations/dms-notifications/delivery-guard.test.js +0 -20
  433. package/dist/test/unit/implementations/dms-notifications/delivery-guard.test.js.map +0 -1
  434. package/dist/test/unit/implementations/notification-subject-lock.test.d.ts +0 -1
  435. package/dist/test/unit/implementations/notification-subject-lock.test.js +0 -31
  436. package/dist/test/unit/implementations/notification-subject-lock.test.js.map +0 -1
  437. package/dist/test/unit/interfaces/dms/category-default-layout.test.d.ts +0 -1
  438. package/dist/test/unit/interfaces/dms/category-default-layout.test.js +0 -85
  439. package/dist/test/unit/interfaces/dms/category-default-layout.test.js.map +0 -1
  440. package/dist/test/unit/interfaces/dms/client-ip.test.d.ts +0 -1
  441. package/dist/test/unit/interfaces/dms/client-ip.test.js +0 -61
  442. package/dist/test/unit/interfaces/dms/client-ip.test.js.map +0 -1
  443. package/dist/test/unit/interfaces/dms/component-children-permissions.test.d.ts +0 -1
  444. package/dist/test/unit/interfaces/dms/component-children-permissions.test.js +0 -362
  445. package/dist/test/unit/interfaces/dms/component-children-permissions.test.js.map +0 -1
  446. package/dist/test/unit/interfaces/dms/component-transform.test.d.ts +0 -1
  447. package/dist/test/unit/interfaces/dms/component-transform.test.js +0 -45
  448. package/dist/test/unit/interfaces/dms/component-transform.test.js.map +0 -1
  449. package/dist/test/unit/interfaces/dms/database-initialized-hook.test.d.ts +0 -1
  450. package/dist/test/unit/interfaces/dms/database-initialized-hook.test.js +0 -92
  451. package/dist/test/unit/interfaces/dms/database-initialized-hook.test.js.map +0 -1
  452. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.d.ts +0 -1
  453. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.js +0 -133
  454. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.js.map +0 -1
  455. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.d.ts +0 -1
  456. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.js +0 -149
  457. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.js.map +0 -1
  458. package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.d.ts +0 -1
  459. package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.js +0 -70
  460. package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.js.map +0 -1
  461. package/dist/test/unit/interfaces/dms/hook-handler-results.test.d.ts +0 -1
  462. package/dist/test/unit/interfaces/dms/hook-handler-results.test.js +0 -49
  463. package/dist/test/unit/interfaces/dms/hook-handler-results.test.js.map +0 -1
  464. package/dist/test/unit/interfaces/dms/invite-extension.test.d.ts +0 -1
  465. package/dist/test/unit/interfaces/dms/invite-extension.test.js +0 -569
  466. package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +0 -1
  467. package/dist/test/unit/interfaces/dms/member-access.test.d.ts +0 -1
  468. package/dist/test/unit/interfaces/dms/member-access.test.js +0 -143
  469. package/dist/test/unit/interfaces/dms/member-access.test.js.map +0 -1
  470. package/dist/test/unit/interfaces/dms/module-permission-registration.test.d.ts +0 -1
  471. package/dist/test/unit/interfaces/dms/module-permission-registration.test.js +0 -107
  472. package/dist/test/unit/interfaces/dms/module-permission-registration.test.js.map +0 -1
  473. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.d.ts +0 -1
  474. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js +0 -51
  475. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js.map +0 -1
  476. package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.d.ts +0 -1
  477. package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.js +0 -28
  478. package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.js.map +0 -1
  479. package/dist/test/unit/interfaces/dms/native-file-registration.test.d.ts +0 -1
  480. package/dist/test/unit/interfaces/dms/native-file-registration.test.js +0 -135
  481. package/dist/test/unit/interfaces/dms/native-file-registration.test.js.map +0 -1
  482. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.d.ts +0 -1
  483. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.js +0 -31
  484. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.js.map +0 -1
  485. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.d.ts +0 -1
  486. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js +0 -153
  487. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js.map +0 -1
  488. package/dist/test/unit/interfaces/dms/page-extension.test.d.ts +0 -1
  489. package/dist/test/unit/interfaces/dms/page-extension.test.js +0 -662
  490. package/dist/test/unit/interfaces/dms/page-extension.test.js.map +0 -1
  491. package/dist/test/unit/interfaces/dms/page-layout-gate.test.d.ts +0 -1
  492. package/dist/test/unit/interfaces/dms/page-layout-gate.test.js +0 -143
  493. package/dist/test/unit/interfaces/dms/page-layout-gate.test.js.map +0 -1
  494. package/dist/test/unit/interfaces/dms/page-layout-query.test.d.ts +0 -1
  495. package/dist/test/unit/interfaces/dms/page-layout-query.test.js +0 -134
  496. package/dist/test/unit/interfaces/dms/page-layout-query.test.js.map +0 -1
  497. package/dist/test/unit/interfaces/dms/page-permission-teardown.test.d.ts +0 -1
  498. package/dist/test/unit/interfaces/dms/page-permission-teardown.test.js +0 -75
  499. package/dist/test/unit/interfaces/dms/page-permission-teardown.test.js.map +0 -1
  500. package/dist/test/unit/interfaces/dms/page-registration-identity.test.d.ts +0 -1
  501. package/dist/test/unit/interfaces/dms/page-registration-identity.test.js +0 -204
  502. package/dist/test/unit/interfaces/dms/page-registration-identity.test.js.map +0 -1
  503. package/dist/test/unit/interfaces/dms/page-teardown.test.d.ts +0 -1
  504. package/dist/test/unit/interfaces/dms/page-teardown.test.js +0 -291
  505. package/dist/test/unit/interfaces/dms/page-teardown.test.js.map +0 -1
  506. package/dist/test/unit/interfaces/dms/page-topics.test.d.ts +0 -1
  507. package/dist/test/unit/interfaces/dms/page-topics.test.js +0 -308
  508. package/dist/test/unit/interfaces/dms/page-topics.test.js.map +0 -1
  509. package/dist/test/unit/interfaces/dms/password-policy.test.d.ts +0 -1
  510. package/dist/test/unit/interfaces/dms/password-policy.test.js +0 -43
  511. package/dist/test/unit/interfaces/dms/password-policy.test.js.map +0 -1
  512. package/dist/test/unit/interfaces/dms/permission-requirements.test.d.ts +0 -1
  513. package/dist/test/unit/interfaces/dms/permission-requirements.test.js +0 -144
  514. package/dist/test/unit/interfaces/dms/permission-requirements.test.js.map +0 -1
  515. package/dist/test/unit/interfaces/dms/saas-mode.test.d.ts +0 -1
  516. package/dist/test/unit/interfaces/dms/saas-mode.test.js +0 -42
  517. package/dist/test/unit/interfaces/dms/saas-mode.test.js.map +0 -1
  518. package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.d.ts +0 -1
  519. package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.js +0 -92
  520. package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.js.map +0 -1
  521. package/dist/test/unit/interfaces/dms/tenant-invite-email.test.d.ts +0 -1
  522. package/dist/test/unit/interfaces/dms/tenant-invite-email.test.js +0 -53
  523. package/dist/test/unit/interfaces/dms/tenant-invite-email.test.js.map +0 -1
  524. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.d.ts +0 -1
  525. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js +0 -141
  526. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js.map +0 -1
  527. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.d.ts +0 -1
  528. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js +0 -53
  529. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js.map +0 -1
  530. package/dist/test/unit/interfaces/dms-base/block-vocabulary.test.d.ts +0 -1
  531. package/dist/test/unit/interfaces/dms-base/block-vocabulary.test.js +0 -77
  532. package/dist/test/unit/interfaces/dms-base/block-vocabulary.test.js.map +0 -1
  533. package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.d.ts +0 -1
  534. package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.js +0 -29
  535. package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.js.map +0 -1
  536. package/dist/test/unit/interfaces/dms-base/code-block-catalog.test.d.ts +0 -1
  537. package/dist/test/unit/interfaces/dms-base/code-block-catalog.test.js +0 -46
  538. package/dist/test/unit/interfaces/dms-base/code-block-catalog.test.js.map +0 -1
  539. package/dist/test/unit/interfaces/dms-base/column-display.test.d.ts +0 -1
  540. package/dist/test/unit/interfaces/dms-base/column-display.test.js +0 -194
  541. package/dist/test/unit/interfaces/dms-base/column-display.test.js.map +0 -1
  542. package/dist/test/unit/interfaces/dms-base/confirm-dialog-secondary-action.test.d.ts +0 -1
  543. package/dist/test/unit/interfaces/dms-base/confirm-dialog-secondary-action.test.js +0 -26
  544. package/dist/test/unit/interfaces/dms-base/confirm-dialog-secondary-action.test.js.map +0 -1
  545. package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.d.ts +0 -1
  546. package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.js +0 -254
  547. package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.js.map +0 -1
  548. package/dist/test/unit/interfaces/dms-base/data-types/field-types.test.d.ts +0 -1
  549. package/dist/test/unit/interfaces/dms-base/data-types/field-types.test.js +0 -194
  550. package/dist/test/unit/interfaces/dms-base/data-types/field-types.test.js.map +0 -1
  551. package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.d.ts +0 -1
  552. package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.js +0 -56
  553. package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.js.map +0 -1
  554. package/dist/test/unit/interfaces/dms-base/date-type-filter.test.d.ts +0 -1
  555. package/dist/test/unit/interfaces/dms-base/date-type-filter.test.js +0 -34
  556. package/dist/test/unit/interfaces/dms-base/date-type-filter.test.js.map +0 -1
  557. package/dist/test/unit/interfaces/dms-base/date-type-range.test.d.ts +0 -1
  558. package/dist/test/unit/interfaces/dms-base/date-type-range.test.js +0 -29
  559. package/dist/test/unit/interfaces/dms-base/date-type-range.test.js.map +0 -1
  560. package/dist/test/unit/interfaces/dms-base/display-blocks-catalog.test.d.ts +0 -1
  561. package/dist/test/unit/interfaces/dms-base/display-blocks-catalog.test.js +0 -159
  562. package/dist/test/unit/interfaces/dms-base/display-blocks-catalog.test.js.map +0 -1
  563. package/dist/test/unit/interfaces/dms-base/export-jobs-binding.test.d.ts +0 -1
  564. package/dist/test/unit/interfaces/dms-base/export-jobs-binding.test.js +0 -49
  565. package/dist/test/unit/interfaces/dms-base/export-jobs-binding.test.js.map +0 -1
  566. package/dist/test/unit/interfaces/dms-base/form-catalog.test.d.ts +0 -1
  567. package/dist/test/unit/interfaces/dms-base/form-catalog.test.js +0 -67
  568. package/dist/test/unit/interfaces/dms-base/form-catalog.test.js.map +0 -1
  569. package/dist/test/unit/interfaces/dms-base/form-footer.test.d.ts +0 -1
  570. package/dist/test/unit/interfaces/dms-base/form-footer.test.js +0 -12
  571. package/dist/test/unit/interfaces/dms-base/form-footer.test.js.map +0 -1
  572. package/dist/test/unit/interfaces/dms-base/form-sections.test.d.ts +0 -1
  573. package/dist/test/unit/interfaces/dms-base/form-sections.test.js +0 -93
  574. package/dist/test/unit/interfaces/dms-base/form-sections.test.js.map +0 -1
  575. package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.d.ts +0 -1
  576. package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.js +0 -174
  577. package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.js.map +0 -1
  578. package/dist/test/unit/interfaces/dms-base/guard.test.d.ts +0 -1
  579. package/dist/test/unit/interfaces/dms-base/guard.test.js +0 -53
  580. package/dist/test/unit/interfaces/dms-base/guard.test.js.map +0 -1
  581. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.d.ts +0 -1
  582. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.js +0 -328
  583. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.js.map +0 -1
  584. package/dist/test/unit/interfaces/dms-base/layouts.test.d.ts +0 -1
  585. package/dist/test/unit/interfaces/dms-base/layouts.test.js +0 -49
  586. package/dist/test/unit/interfaces/dms-base/layouts.test.js.map +0 -1
  587. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.d.ts +0 -1
  588. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.js +0 -43
  589. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.js.map +0 -1
  590. package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.d.ts +0 -1
  591. package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.js +0 -85
  592. package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.js.map +0 -1
  593. package/dist/test/unit/interfaces/dms-base/page-live.test.d.ts +0 -1
  594. package/dist/test/unit/interfaces/dms-base/page-live.test.js +0 -121
  595. package/dist/test/unit/interfaces/dms-base/page-live.test.js.map +0 -1
  596. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.d.ts +0 -1
  597. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.js +0 -53
  598. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.js.map +0 -1
  599. package/dist/test/unit/interfaces/dms-base/query-response-delta.test.d.ts +0 -1
  600. package/dist/test/unit/interfaces/dms-base/query-response-delta.test.js +0 -29
  601. package/dist/test/unit/interfaces/dms-base/query-response-delta.test.js.map +0 -1
  602. package/dist/test/unit/interfaces/dms-base/resource-form.test.d.ts +0 -1
  603. package/dist/test/unit/interfaces/dms-base/resource-form.test.js +0 -141
  604. package/dist/test/unit/interfaces/dms-base/resource-form.test.js.map +0 -1
  605. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.d.ts +0 -1
  606. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.js +0 -87
  607. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.js.map +0 -1
  608. package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.d.ts +0 -1
  609. package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.js +0 -29
  610. package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.js.map +0 -1
  611. package/dist/test/unit/interfaces/dms-base/table-view-after-write.test.d.ts +0 -1
  612. package/dist/test/unit/interfaces/dms-base/table-view-after-write.test.js +0 -62
  613. package/dist/test/unit/interfaces/dms-base/table-view-after-write.test.js.map +0 -1
  614. package/dist/test/unit/interfaces/dms-base/table-view-bulk-operations.test.d.ts +0 -1
  615. package/dist/test/unit/interfaces/dms-base/table-view-bulk-operations.test.js +0 -259
  616. package/dist/test/unit/interfaces/dms-base/table-view-bulk-operations.test.js.map +0 -1
  617. package/dist/test/unit/interfaces/dms-base/table-view-column-validator.test.d.ts +0 -1
  618. package/dist/test/unit/interfaces/dms-base/table-view-column-validator.test.js +0 -87
  619. package/dist/test/unit/interfaces/dms-base/table-view-column-validator.test.js.map +0 -1
  620. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.d.ts +0 -5
  621. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.js +0 -82
  622. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.js.map +0 -1
  623. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.d.ts +0 -1
  624. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.js +0 -24
  625. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.js.map +0 -1
  626. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.d.ts +0 -1
  627. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.js +0 -91
  628. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.js.map +0 -1
  629. package/dist/test/unit/interfaces/dms-base/table-view-footer.test.d.ts +0 -1
  630. package/dist/test/unit/interfaces/dms-base/table-view-footer.test.js +0 -177
  631. package/dist/test/unit/interfaces/dms-base/table-view-footer.test.js.map +0 -1
  632. package/dist/test/unit/interfaces/dms-base/table-view-form-page-texts.test.d.ts +0 -1
  633. package/dist/test/unit/interfaces/dms-base/table-view-form-page-texts.test.js +0 -36
  634. package/dist/test/unit/interfaces/dms-base/table-view-form-page-texts.test.js.map +0 -1
  635. package/dist/test/unit/interfaces/dms-base/table-view-form-page-urls.test.d.ts +0 -1
  636. package/dist/test/unit/interfaces/dms-base/table-view-form-page-urls.test.js +0 -362
  637. package/dist/test/unit/interfaces/dms-base/table-view-form-page-urls.test.js.map +0 -1
  638. package/dist/test/unit/interfaces/dms-base/table-view-form-redirect.test.d.ts +0 -1
  639. package/dist/test/unit/interfaces/dms-base/table-view-form-redirect.test.js +0 -253
  640. package/dist/test/unit/interfaces/dms-base/table-view-form-redirect.test.js.map +0 -1
  641. package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.d.ts +0 -1
  642. package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.js +0 -80
  643. package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.js.map +0 -1
  644. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.d.ts +0 -1
  645. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js +0 -211
  646. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js.map +0 -1
  647. package/dist/test/unit/interfaces/dms-base/table-view-hidden-columns.test.d.ts +0 -1
  648. package/dist/test/unit/interfaces/dms-base/table-view-hidden-columns.test.js +0 -105
  649. package/dist/test/unit/interfaces/dms-base/table-view-hidden-columns.test.js.map +0 -1
  650. package/dist/test/unit/interfaces/dms-base/table-view-meta-inherit.test.d.ts +0 -1
  651. package/dist/test/unit/interfaces/dms-base/table-view-meta-inherit.test.js +0 -119
  652. package/dist/test/unit/interfaces/dms-base/table-view-meta-inherit.test.js.map +0 -1
  653. package/dist/test/unit/interfaces/dms-base/table-view-one-writer.test.d.ts +0 -1
  654. package/dist/test/unit/interfaces/dms-base/table-view-one-writer.test.js +0 -179
  655. package/dist/test/unit/interfaces/dms-base/table-view-one-writer.test.js.map +0 -1
  656. package/dist/test/unit/interfaces/dms-base/table-view-realtime-no-change.test.d.ts +0 -1
  657. package/dist/test/unit/interfaces/dms-base/table-view-realtime-no-change.test.js +0 -23
  658. package/dist/test/unit/interfaces/dms-base/table-view-realtime-no-change.test.js.map +0 -1
  659. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.d.ts +0 -1
  660. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.js +0 -139
  661. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.js.map +0 -1
  662. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.d.ts +0 -1
  663. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.js +0 -487
  664. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.js.map +0 -1
  665. package/dist/test/unit/interfaces/dms-base/table-view-route-param-filter-defaults.test.d.ts +0 -1
  666. package/dist/test/unit/interfaces/dms-base/table-view-route-param-filter-defaults.test.js +0 -256
  667. package/dist/test/unit/interfaces/dms-base/table-view-route-param-filter-defaults.test.js.map +0 -1
  668. package/dist/test/unit/interfaces/dms-base/table-view-row-menu-label.test.d.ts +0 -1
  669. package/dist/test/unit/interfaces/dms-base/table-view-row-menu-label.test.js +0 -27
  670. package/dist/test/unit/interfaces/dms-base/table-view-row-menu-label.test.js.map +0 -1
  671. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.d.ts +0 -1
  672. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.js +0 -145
  673. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.js.map +0 -1
  674. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.d.ts +0 -1
  675. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js +0 -272
  676. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js.map +0 -1
  677. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.d.ts +0 -1
  678. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js +0 -96
  679. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js.map +0 -1
  680. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.d.ts +0 -1
  681. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js +0 -209
  682. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js.map +0 -1
  683. package/dist/test/unit/interfaces/dms-base/table-view-views.test.d.ts +0 -1
  684. package/dist/test/unit/interfaces/dms-base/table-view-views.test.js +0 -317
  685. package/dist/test/unit/interfaces/dms-base/table-view-views.test.js.map +0 -1
  686. package/dist/test/unit/interfaces/dms-base/table-view-writer-row-rules.test.d.ts +0 -1
  687. package/dist/test/unit/interfaces/dms-base/table-view-writer-row-rules.test.js +0 -292
  688. package/dist/test/unit/interfaces/dms-base/table-view-writer-row-rules.test.js.map +0 -1
  689. package/dist/test/unit/oauth-account-guard.test.d.ts +0 -1
  690. package/dist/test/unit/oauth-account-guard.test.js +0 -96
  691. package/dist/test/unit/oauth-account-guard.test.js.map +0 -1
  692. package/dist/test/unit/oauth-claim-account.test.d.ts +0 -1
  693. package/dist/test/unit/oauth-claim-account.test.js +0 -90
  694. package/dist/test/unit/oauth-claim-account.test.js.map +0 -1
  695. package/dist/test/unit/oauth-config.test.d.ts +0 -1
  696. package/dist/test/unit/oauth-config.test.js +0 -112
  697. package/dist/test/unit/oauth-config.test.js.map +0 -1
  698. package/dist/test/unit/oauth-linking-policy.test.d.ts +0 -1
  699. package/dist/test/unit/oauth-linking-policy.test.js +0 -114
  700. package/dist/test/unit/oauth-linking-policy.test.js.map +0 -1
  701. package/dist/test/unit/oauth-provider-identity.test.d.ts +0 -1
  702. package/dist/test/unit/oauth-provider-identity.test.js +0 -126
  703. package/dist/test/unit/oauth-provider-identity.test.js.map +0 -1
  704. package/dist/test/unit/oauth-relay.test.d.ts +0 -1
  705. package/dist/test/unit/oauth-relay.test.js +0 -40
  706. package/dist/test/unit/oauth-relay.test.js.map +0 -1
  707. package/dist/test/unit/oauth-state.test.d.ts +0 -1
  708. package/dist/test/unit/oauth-state.test.js +0 -61
  709. package/dist/test/unit/oauth-state.test.js.map +0 -1
  710. package/dist/test/unit/onboarding-platform.test.d.ts +0 -1
  711. package/dist/test/unit/onboarding-platform.test.js +0 -76
  712. package/dist/test/unit/onboarding-platform.test.js.map +0 -1
  713. package/dist/test/unit/pages/settings/account-activity-feed.test.d.ts +0 -1
  714. package/dist/test/unit/pages/settings/account-activity-feed.test.js +0 -116
  715. package/dist/test/unit/pages/settings/account-activity-feed.test.js.map +0 -1
  716. package/dist/test/unit/pages/settings/account-activity.test.d.ts +0 -1
  717. package/dist/test/unit/pages/settings/account-activity.test.js +0 -271
  718. package/dist/test/unit/pages/settings/account-activity.test.js.map +0 -1
  719. package/dist/test/unit/pages/settings/account-data.test.d.ts +0 -1
  720. package/dist/test/unit/pages/settings/account-data.test.js +0 -255
  721. package/dist/test/unit/pages/settings/account-data.test.js.map +0 -1
  722. package/dist/test/unit/pages/settings/account-security.test.d.ts +0 -1
  723. package/dist/test/unit/pages/settings/account-security.test.js +0 -208
  724. package/dist/test/unit/pages/settings/account-security.test.js.map +0 -1
  725. package/dist/test/unit/pages/settings/invite-availability.test.d.ts +0 -1
  726. package/dist/test/unit/pages/settings/invite-availability.test.js +0 -112
  727. package/dist/test/unit/pages/settings/invite-availability.test.js.map +0 -1
  728. package/dist/test/unit/pages/settings/invite-email-delivery.test.d.ts +0 -1
  729. package/dist/test/unit/pages/settings/invite-email-delivery.test.js +0 -146
  730. package/dist/test/unit/pages/settings/invite-email-delivery.test.js.map +0 -1
  731. package/dist/test/unit/pages/settings/invite-email-validation-option.test.d.ts +0 -1
  732. package/dist/test/unit/pages/settings/invite-email-validation-option.test.js +0 -33
  733. package/dist/test/unit/pages/settings/invite-email-validation-option.test.js.map +0 -1
  734. package/dist/test/unit/pages/settings/invite-member-quick-action.test.d.ts +0 -1
  735. package/dist/test/unit/pages/settings/invite-member-quick-action.test.js +0 -104
  736. package/dist/test/unit/pages/settings/invite-member-quick-action.test.js.map +0 -1
  737. package/dist/test/unit/pages/settings/member-lists-page-size.test.d.ts +0 -1
  738. package/dist/test/unit/pages/settings/member-lists-page-size.test.js +0 -22
  739. package/dist/test/unit/pages/settings/member-lists-page-size.test.js.map +0 -1
  740. package/dist/test/unit/pages/settings/member-roles-field.test.d.ts +0 -1
  741. package/dist/test/unit/pages/settings/member-roles-field.test.js +0 -47
  742. package/dist/test/unit/pages/settings/member-roles-field.test.js.map +0 -1
  743. package/dist/test/unit/pages/settings/member-table-widths.test.d.ts +0 -1
  744. package/dist/test/unit/pages/settings/member-table-widths.test.js +0 -53
  745. package/dist/test/unit/pages/settings/member-table-widths.test.js.map +0 -1
  746. package/dist/test/unit/pages/settings/members-page.test.d.ts +0 -1
  747. package/dist/test/unit/pages/settings/members-page.test.js +0 -231
  748. package/dist/test/unit/pages/settings/members-page.test.js.map +0 -1
  749. package/dist/test/unit/pages/settings/notifications-access-gate.test.d.ts +0 -1
  750. package/dist/test/unit/pages/settings/notifications-access-gate.test.js +0 -71
  751. package/dist/test/unit/pages/settings/notifications-access-gate.test.js.map +0 -1
  752. package/dist/test/unit/pages/settings/permission-tree-nodes.test.d.ts +0 -1
  753. package/dist/test/unit/pages/settings/permission-tree-nodes.test.js +0 -161
  754. package/dist/test/unit/pages/settings/permission-tree-nodes.test.js.map +0 -1
  755. package/dist/test/unit/pages/settings/permission-warnings.test.d.ts +0 -1
  756. package/dist/test/unit/pages/settings/permission-warnings.test.js +0 -49
  757. package/dist/test/unit/pages/settings/permission-warnings.test.js.map +0 -1
  758. package/dist/test/unit/pages/settings/profile-email-change.test.d.ts +0 -1
  759. package/dist/test/unit/pages/settings/profile-email-change.test.js +0 -50
  760. package/dist/test/unit/pages/settings/profile-email-change.test.js.map +0 -1
  761. package/dist/test/unit/pages/settings/regional-preferences.test.d.ts +0 -1
  762. package/dist/test/unit/pages/settings/regional-preferences.test.js +0 -118
  763. package/dist/test/unit/pages/settings/regional-preferences.test.js.map +0 -1
  764. package/dist/test/unit/pages/settings/role-delete-confirm.test.d.ts +0 -1
  765. package/dist/test/unit/pages/settings/role-delete-confirm.test.js +0 -77
  766. package/dist/test/unit/pages/settings/role-delete-confirm.test.js.map +0 -1
  767. package/dist/test/unit/pages/settings/role-editor.test.d.ts +0 -1
  768. package/dist/test/unit/pages/settings/role-editor.test.js +0 -277
  769. package/dist/test/unit/pages/settings/role-editor.test.js.map +0 -1
  770. package/dist/test/unit/pages/settings/role-preview.test.d.ts +0 -1
  771. package/dist/test/unit/pages/settings/role-preview.test.js +0 -207
  772. package/dist/test/unit/pages/settings/role-preview.test.js.map +0 -1
  773. package/dist/test/unit/pages/settings/security-attention.test.d.ts +0 -1
  774. package/dist/test/unit/pages/settings/security-attention.test.js +0 -74
  775. package/dist/test/unit/pages/settings/security-attention.test.js.map +0 -1
  776. package/dist/test/unit/realtime/menu-topics.test.d.ts +0 -1
  777. package/dist/test/unit/realtime/menu-topics.test.js +0 -26
  778. package/dist/test/unit/realtime/menu-topics.test.js.map +0 -1
  779. package/dist/test/unit/realtime/stop-closes-streams.test.d.ts +0 -1
  780. package/dist/test/unit/realtime/stop-closes-streams.test.js +0 -99
  781. package/dist/test/unit/realtime/stop-closes-streams.test.js.map +0 -1
  782. package/dist/test/unit/request-authenticators.test.d.ts +0 -1
  783. package/dist/test/unit/request-authenticators.test.js +0 -153
  784. package/dist/test/unit/request-authenticators.test.js.map +0 -1
  785. package/dist/test/unit/request-tenant-guards.test.d.ts +0 -1
  786. package/dist/test/unit/request-tenant-guards.test.js +0 -200
  787. package/dist/test/unit/request-tenant-guards.test.js.map +0 -1
  788. package/dist/test/unit/sanitize-user.test.d.ts +0 -1
  789. package/dist/test/unit/sanitize-user.test.js +0 -21
  790. package/dist/test/unit/sanitize-user.test.js.map +0 -1
  791. package/dist/test/unit/signup-account-guard.test.d.ts +0 -1
  792. package/dist/test/unit/signup-account-guard.test.js +0 -141
  793. package/dist/test/unit/signup-account-guard.test.js.map +0 -1
  794. package/dist/test/unit/signup-email-validation.test.d.ts +0 -1
  795. package/dist/test/unit/signup-email-validation.test.js +0 -79
  796. package/dist/test/unit/signup-email-validation.test.js.map +0 -1
  797. package/dist/test/unit/store/store.test.d.ts +0 -1
  798. package/dist/test/unit/store/store.test.js +0 -127
  799. package/dist/test/unit/store/store.test.js.map +0 -1
  800. package/dist/test/unit/upload-constraints.test.d.ts +0 -1
  801. package/dist/test/unit/upload-constraints.test.js +0 -43
  802. package/dist/test/unit/upload-constraints.test.js.map +0 -1
  803. package/dist/test/unit/upload-token.test.d.ts +0 -1
  804. package/dist/test/unit/upload-token.test.js +0 -46
  805. package/dist/test/unit/upload-token.test.js.map +0 -1
  806. package/dist/test/unit/utils/admin-invite-email.test.d.ts +0 -1
  807. package/dist/test/unit/utils/admin-invite-email.test.js +0 -69
  808. package/dist/test/unit/utils/admin-invite-email.test.js.map +0 -1
  809. package/dist/test/unit/utils/attempt-limiter.test.d.ts +0 -1
  810. package/dist/test/unit/utils/attempt-limiter.test.js +0 -43
  811. package/dist/test/unit/utils/attempt-limiter.test.js.map +0 -1
  812. package/dist/test/unit/utils/email-subjects.test.d.ts +0 -1
  813. package/dist/test/unit/utils/email-subjects.test.js +0 -27
  814. package/dist/test/unit/utils/email-subjects.test.js.map +0 -1
  815. package/dist/test/unit/utils/failed-sign-ins.test.d.ts +0 -1
  816. package/dist/test/unit/utils/failed-sign-ins.test.js +0 -57
  817. package/dist/test/unit/utils/failed-sign-ins.test.js.map +0 -1
  818. package/dist/test/unit/utils/notification-rules.test.d.ts +0 -1
  819. package/dist/test/unit/utils/notification-rules.test.js +0 -60
  820. package/dist/test/unit/utils/notification-rules.test.js.map +0 -1
  821. package/dist/test/unit/utils/notification-tones.test.d.ts +0 -1
  822. package/dist/test/unit/utils/notification-tones.test.js +0 -18
  823. package/dist/test/unit/utils/notification-tones.test.js.map +0 -1
  824. package/dist/test/unit/utils/owned-registry.test.d.ts +0 -1
  825. package/dist/test/unit/utils/owned-registry.test.js +0 -61
  826. package/dist/test/unit/utils/owned-registry.test.js.map +0 -1
  827. package/dist/test/unit/utils/row-action-rule-evaluator.test.d.ts +0 -1
  828. package/dist/test/unit/utils/row-action-rule-evaluator.test.js +0 -143
  829. package/dist/test/unit/utils/row-action-rule-evaluator.test.js.map +0 -1
  830. package/dist/test/unit/utils/sign-in-country.test.d.ts +0 -1
  831. package/dist/test/unit/utils/sign-in-country.test.js +0 -70
  832. package/dist/test/unit/utils/sign-in-country.test.js.map +0 -1
  833. package/dist/test/unit/utils/sign-in-devices.test.d.ts +0 -1
  834. package/dist/test/unit/utils/sign-in-devices.test.js +0 -105
  835. package/dist/test/unit/utils/sign-in-devices.test.js.map +0 -1
  836. package/dist/test/unit/utils/tenant-export-archive.test.d.ts +0 -1
  837. package/dist/test/unit/utils/tenant-export-archive.test.js +0 -138
  838. package/dist/test/unit/utils/tenant-export-archive.test.js.map +0 -1
  839. package/dist/test/unit/utils/tenant-instances.test.d.ts +0 -1
  840. package/dist/test/unit/utils/tenant-instances.test.js +0 -53
  841. package/dist/test/unit/utils/tenant-instances.test.js.map +0 -1
  842. package/dist/test/unit/utils/type-check.test.d.ts +0 -1
  843. package/dist/test/unit/utils/type-check.test.js +0 -143
  844. package/dist/test/unit/utils/type-check.test.js.map +0 -1
  845. package/dist/test/unit/utils/user-activity.test.d.ts +0 -1
  846. package/dist/test/unit/utils/user-activity.test.js +0 -77
  847. package/dist/test/unit/utils/user-activity.test.js.map +0 -1
  848. package/dist/test/unit/utils/value-parser.test.d.ts +0 -1
  849. package/dist/test/unit/utils/value-parser.test.js +0 -166
  850. package/dist/test/unit/utils/value-parser.test.js.map +0 -1
  851. package/dist/test/unit/utils/workspace-notifications.test.d.ts +0 -1
  852. package/dist/test/unit/utils/workspace-notifications.test.js +0 -32
  853. package/dist/test/unit/utils/workspace-notifications.test.js.map +0 -1
  854. package/dist/test/unit/validation/auth.schema.test.d.ts +0 -1
  855. package/dist/test/unit/validation/auth.schema.test.js +0 -77
  856. package/dist/test/unit/validation/auth.schema.test.js.map +0 -1
  857. package/dist/test/unit/validation/file.schema.test.d.ts +0 -1
  858. package/dist/test/unit/validation/file.schema.test.js +0 -140
  859. package/dist/test/unit/validation/file.schema.test.js.map +0 -1
  860. package/dist/test/unit/validation/member-invite.schema.test.d.ts +0 -1
  861. package/dist/test/unit/validation/member-invite.schema.test.js +0 -79
  862. package/dist/test/unit/validation/member-invite.schema.test.js.map +0 -1
  863. package/dist/test/unit/validation/onboarding/register-admin.schema.test.d.ts +0 -1
  864. package/dist/test/unit/validation/onboarding/register-admin.schema.test.js +0 -109
  865. package/dist/test/unit/validation/onboarding/register-admin.schema.test.js.map +0 -1
  866. package/dist/test/unit/validation/user-notification-preferences.schema.test.d.ts +0 -1
  867. package/dist/test/unit/validation/user-notification-preferences.schema.test.js +0 -41
  868. package/dist/test/unit/validation/user-notification-preferences.schema.test.js.map +0 -1
  869. package/frontend-vue/.prettierrc +0 -10
  870. package/frontend-vue/.vscode/settings.json +0 -42
  871. package/frontend-vue/eslint.config.mjs +0 -50
  872. package/frontend-vue/pnpm-lock.yaml +0 -8182
  873. package/frontend-vue/pnpm-workspace.yaml +0 -9
  874. package/frontend-vue/tests/accessibility-preferences.test.ts +0 -320
  875. package/frontend-vue/tests/activity-feed-days.test.ts +0 -139
  876. package/frontend-vue/tests/activity-feed-fill-height.test.ts +0 -115
  877. package/frontend-vue/tests/activity-feed-fold.test.ts +0 -119
  878. package/frontend-vue/tests/activity-feed-head.test.ts +0 -140
  879. package/frontend-vue/tests/admin-invite-email.test.ts +0 -86
  880. package/frontend-vue/tests/api-error-title.test.ts +0 -24
  881. package/frontend-vue/tests/api-message-i18n.test.ts +0 -46
  882. package/frontend-vue/tests/async-data-key-owners.test.ts +0 -74
  883. package/frontend-vue/tests/async-data-scope.test.ts +0 -121
  884. package/frontend-vue/tests/auth-middleware-error.test.ts +0 -58
  885. package/frontend-vue/tests/banner-block-fetch.test.ts +0 -165
  886. package/frontend-vue/tests/banner-tone-icon.test.ts +0 -55
  887. package/frontend-vue/tests/block-fetch-options-forwarding.test.ts +0 -108
  888. package/frontend-vue/tests/block-items-period-realtime.test.ts +0 -150
  889. package/frontend-vue/tests/block-not-found.test.ts +0 -234
  890. package/frontend-vue/tests/block-page-refresh.test.ts +0 -131
  891. package/frontend-vue/tests/block-route-params.test.ts +0 -241
  892. package/frontend-vue/tests/branding-defaults.test.ts +0 -34
  893. package/frontend-vue/tests/breadcrumb-target.test.ts +0 -60
  894. package/frontend-vue/tests/builtin-emails.test.ts +0 -162
  895. package/frontend-vue/tests/button-disabled-theme.test.ts +0 -21
  896. package/frontend-vue/tests/cascader.test.ts +0 -216
  897. package/frontend-vue/tests/category-nav-cards.test.ts +0 -105
  898. package/frontend-vue/tests/chart-absent-value.test.ts +0 -78
  899. package/frontend-vue/tests/chart-auto-y-range.test.ts +0 -131
  900. package/frontend-vue/tests/chart-click-payload.test.ts +0 -34
  901. package/frontend-vue/tests/chart-colors.browser.html +0 -157
  902. package/frontend-vue/tests/chart-colors.test.ts +0 -185
  903. package/frontend-vue/tests/chart-legend.test.ts +0 -133
  904. package/frontend-vue/tests/chart-live-pause.test.ts +0 -77
  905. package/frontend-vue/tests/chart-nested-donut.test.ts +0 -97
  906. package/frontend-vue/tests/chart-options.test.ts +0 -281
  907. package/frontend-vue/tests/chart-resize-after-animation.test.ts +0 -100
  908. package/frontend-vue/tests/chart-series-styles.test.ts +0 -131
  909. package/frontend-vue/tests/chart-type-defaults.test.ts +0 -128
  910. package/frontend-vue/tests/chart-value-precision.test.ts +0 -54
  911. package/frontend-vue/tests/chart-value-propagation.test.ts +0 -159
  912. package/frontend-vue/tests/check-list-marker.test.ts +0 -58
  913. package/frontend-vue/tests/chip-group.test.ts +0 -68
  914. package/frontend-vue/tests/choice-cards-columns.test.ts +0 -60
  915. package/frontend-vue/tests/code-block.test.ts +0 -183
  916. package/frontend-vue/tests/code-highlight.test.ts +0 -72
  917. package/frontend-vue/tests/color-mode-server-render.test.ts +0 -84
  918. package/frontend-vue/tests/color-mode-sync.test.ts +0 -320
  919. package/frontend-vue/tests/command-palette-assistant.test.ts +0 -344
  920. package/frontend-vue/tests/command-palette-search-text.test.ts +0 -118
  921. package/frontend-vue/tests/component-id.test.ts +0 -18
  922. package/frontend-vue/tests/composed-text-blocks.test.ts +0 -213
  923. package/frontend-vue/tests/composed-text-more-blocks.test.ts +0 -391
  924. package/frontend-vue/tests/composed-text.test.ts +0 -265
  925. package/frontend-vue/tests/confirm-action-errors.test.ts +0 -324
  926. package/frontend-vue/tests/confirm-dialog-fields.test.ts +0 -283
  927. package/frontend-vue/tests/confirm-from.test.ts +0 -101
  928. package/frontend-vue/tests/confirm-secondary-action.test.ts +0 -267
  929. package/frontend-vue/tests/confirm-typed-text.test.ts +0 -236
  930. package/frontend-vue/tests/context-links.test.ts +0 -220
  931. package/frontend-vue/tests/copy-feedback.test.ts +0 -48
  932. package/frontend-vue/tests/custom-action-confirm-from.test.ts +0 -85
  933. package/frontend-vue/tests/dev-reload-stream.test.ts +0 -139
  934. package/frontend-vue/tests/dev-reload.test.ts +0 -252
  935. package/frontend-vue/tests/download-action-target.test.ts +0 -172
  936. package/frontend-vue/tests/drawer-target-direction.test.ts +0 -206
  937. package/frontend-vue/tests/email-layout.test.ts +0 -186
  938. package/frontend-vue/tests/empty-state-late-slots.test.ts +0 -53
  939. package/frontend-vue/tests/error-page-message.test.ts +0 -121
  940. package/frontend-vue/tests/favicon.test.ts +0 -131
  941. package/frontend-vue/tests/favorite-page.test.ts +0 -104
  942. package/frontend-vue/tests/field-errors.test.ts +0 -247
  943. package/frontend-vue/tests/field-options-i18n.test.ts +0 -41
  944. package/frontend-vue/tests/field-row.test.ts +0 -115
  945. package/frontend-vue/tests/field-suffix-count.test.ts +0 -121
  946. package/frontend-vue/tests/file-constraints.test.ts +0 -72
  947. package/frontend-vue/tests/file-drop-prompt.test.ts +0 -72
  948. package/frontend-vue/tests/file-fields-ssr.test.ts +0 -145
  949. package/frontend-vue/tests/file-read-urls.test.ts +0 -246
  950. package/frontend-vue/tests/file-unavailable.test.ts +0 -117
  951. package/frontend-vue/tests/fixtures/TableCellLayout.vue +0 -73
  952. package/frontend-vue/tests/fixtures/chart-axes.html +0 -39
  953. package/frontend-vue/tests/fixtures/chart-axes.ts +0 -67
  954. package/frontend-vue/tests/fixtures/chart-precision.html +0 -37
  955. package/frontend-vue/tests/fixtures/chart-precision.ts +0 -118
  956. package/frontend-vue/tests/fixtures/dashboard-search-stub.ts +0 -91
  957. package/frontend-vue/tests/fixtures/dataEngine.ts +0 -44
  958. package/frontend-vue/tests/fixtures/theming/app/app.vue +0 -49
  959. package/frontend-vue/tests/fixtures/theming/base/app/app.config.ts +0 -1
  960. package/frontend-vue/tests/fixtures/theming/config.ts +0 -7
  961. package/frontend-vue/tests/fixtures/theming/consumer/app/app.config.ts +0 -15
  962. package/frontend-vue/tests/fixtures/theming/consumer/public/brand/dark.svg +0 -1
  963. package/frontend-vue/tests/fixtures/theming/consumer/public/brand/icon.svg +0 -1
  964. package/frontend-vue/tests/fixtures/theming/consumer/public/brand/light.svg +0 -1
  965. package/frontend-vue/tests/fixtures/theming/consumer.css +0 -19
  966. package/frontend-vue/tests/fixtures/theming/index.html +0 -11
  967. package/frontend-vue/tests/fixtures/theming/main.ts +0 -36
  968. package/frontend-vue/tests/fixtures/theming/runtime.ts +0 -12
  969. package/frontend-vue/tests/fixtures/theming/vite.config.ts +0 -36
  970. package/frontend-vue/tests/flow-canvas-delete-badge.test.ts +0 -88
  971. package/frontend-vue/tests/footer-config.test.ts +0 -135
  972. package/frontend-vue/tests/forgot-validation-resend.test.ts +0 -234
  973. package/frontend-vue/tests/form-action-reset.test.ts +0 -106
  974. package/frontend-vue/tests/form-actions.test.ts +0 -33
  975. package/frontend-vue/tests/form-control-error-state.test.ts +0 -164
  976. package/frontend-vue/tests/form-display-options.test.ts +0 -64
  977. package/frontend-vue/tests/form-enclosing-form.test.ts +0 -120
  978. package/frontend-vue/tests/form-entry-order.test.ts +0 -45
  979. package/frontend-vue/tests/form-footer-kind.test.ts +0 -101
  980. package/frontend-vue/tests/form-load-error.test.ts +0 -229
  981. package/frontend-vue/tests/form-page-url-fill.test.ts +0 -63
  982. package/frontend-vue/tests/form-redirect-placeholders.test.ts +0 -80
  983. package/frontend-vue/tests/form-required-fields.test.ts +0 -148
  984. package/frontend-vue/tests/form-required-legend.test.ts +0 -34
  985. package/frontend-vue/tests/form-required-validation.test.ts +0 -407
  986. package/frontend-vue/tests/form-reset.test.ts +0 -66
  987. package/frontend-vue/tests/form-saved-before-success.test.ts +0 -110
  988. package/frontend-vue/tests/form-section-nav-groups.test.ts +0 -177
  989. package/frontend-vue/tests/form-sections.test.ts +0 -94
  990. package/frontend-vue/tests/form-server-field-errors.test.ts +0 -204
  991. package/frontend-vue/tests/form-submit-clear.test.ts +0 -406
  992. package/frontend-vue/tests/form-submit-only-changed.test.ts +0 -195
  993. package/frontend-vue/tests/form-submit-target.test.ts +0 -28
  994. package/frontend-vue/tests/form-validation.test.ts +0 -213
  995. package/frontend-vue/tests/github-star-prompt.test.ts +0 -328
  996. package/frontend-vue/tests/grid-responsive-columns.test.ts +0 -180
  997. package/frontend-vue/tests/guard.test.ts +0 -242
  998. package/frontend-vue/tests/header-action-page-query.test.ts +0 -426
  999. package/frontend-vue/tests/header-action-press-in-place.test.ts +0 -231
  1000. package/frontend-vue/tests/header-actions.test.ts +0 -237
  1001. package/frontend-vue/tests/helpers/api-data-runtime.ts +0 -77
  1002. package/frontend-vue/tests/image-hydration-ids.test.ts +0 -101
  1003. package/frontend-vue/tests/image-reference-preservation.test.ts +0 -266
  1004. package/frontend-vue/tests/input-number-adjust.test.ts +0 -190
  1005. package/frontend-vue/tests/input-number-range.test.ts +0 -135
  1006. package/frontend-vue/tests/input-tags.test.ts +0 -146
  1007. package/frontend-vue/tests/instant-save-badge.test.ts +0 -202
  1008. package/frontend-vue/tests/instant-save.test.ts +0 -217
  1009. package/frontend-vue/tests/invites-edit-modal.test.ts +0 -157
  1010. package/frontend-vue/tests/key-value-list-copy.test.ts +0 -117
  1011. package/frontend-vue/tests/key-value-rows.test.ts +0 -52
  1012. package/frontend-vue/tests/keyboard-platform.test.ts +0 -87
  1013. package/frontend-vue/tests/kpi-no-comparison.test.ts +0 -92
  1014. package/frontend-vue/tests/layout-banners.test.ts +0 -280
  1015. package/frontend-vue/tests/list-row-truncate.test.ts +0 -46
  1016. package/frontend-vue/tests/live-hold-banner.test.ts +0 -95
  1017. package/frontend-vue/tests/live-toggle.test.ts +0 -248
  1018. package/frontend-vue/tests/master-detail-layout.test.ts +0 -53
  1019. package/frontend-vue/tests/member-role-picker.test.ts +0 -255
  1020. package/frontend-vue/tests/menu-hidden-page.test.ts +0 -93
  1021. package/frontend-vue/tests/menu-navigation.test.ts +0 -135
  1022. package/frontend-vue/tests/menu-sync-reconnect.test.ts +0 -47
  1023. package/frontend-vue/tests/metadata-retry.test.ts +0 -202
  1024. package/frontend-vue/tests/meter-block-load-error.test.ts +0 -70
  1025. package/frontend-vue/tests/module-routing.test.ts +0 -155
  1026. package/frontend-vue/tests/module-store-catalog.test.ts +0 -371
  1027. package/frontend-vue/tests/modules-catalog.test.ts +0 -165
  1028. package/frontend-vue/tests/modules-listing-transfer.test.ts +0 -95
  1029. package/frontend-vue/tests/mono-cell-truncate.test.ts +0 -50
  1030. package/frontend-vue/tests/multi-account-validate.test.ts +0 -121
  1031. package/frontend-vue/tests/nav-badge-tones.test.ts +0 -337
  1032. package/frontend-vue/tests/nav-card-badge.test.ts +0 -73
  1033. package/frontend-vue/tests/nav-card-grid-empty-category.test.ts +0 -164
  1034. package/frontend-vue/tests/notification-counts-from-writes.test.ts +0 -223
  1035. package/frontend-vue/tests/notification-counts-transfer.test.ts +0 -88
  1036. package/frontend-vue/tests/notification-inbox-display.test.ts +0 -221
  1037. package/frontend-vue/tests/notification-popover-errors.test.ts +0 -320
  1038. package/frontend-vue/tests/notification-preferences-groups.test.ts +0 -268
  1039. package/frontend-vue/tests/notification-tone-contract.test.ts +0 -70
  1040. package/frontend-vue/tests/nuxt-ui-aria-labels.test.ts +0 -31
  1041. package/frontend-vue/tests/oauth-complete-handoff.test.ts +0 -209
  1042. package/frontend-vue/tests/onboarding-middleware.test.ts +0 -103
  1043. package/frontend-vue/tests/onboarding-register.test.ts +0 -155
  1044. package/frontend-vue/tests/onboarding-transfer.test.ts +0 -106
  1045. package/frontend-vue/tests/otp-input.test.ts +0 -97
  1046. package/frontend-vue/tests/page-data-refresh.test.ts +0 -141
  1047. package/frontend-vue/tests/page-fill-height.test.ts +0 -456
  1048. package/frontend-vue/tests/page-layout-registration.test.ts +0 -71
  1049. package/frontend-vue/tests/page-live-gate.test.ts +0 -241
  1050. package/frontend-vue/tests/page-live-parity.test.ts +0 -367
  1051. package/frontend-vue/tests/page-live-refresh.test.ts +0 -169
  1052. package/frontend-vue/tests/page-no-visible-blocks.test.ts +0 -212
  1053. package/frontend-vue/tests/page-realtime-remount.test.ts +0 -185
  1054. package/frontend-vue/tests/page-record-label.test.ts +0 -46
  1055. package/frontend-vue/tests/page-validation-redirect.test.ts +0 -231
  1056. package/frontend-vue/tests/password-input.test.ts +0 -122
  1057. package/frontend-vue/tests/password-strength-meter.test.ts +0 -33
  1058. package/frontend-vue/tests/period-day-rollover.test.ts +0 -80
  1059. package/frontend-vue/tests/period-draft.test.ts +0 -120
  1060. package/frontend-vue/tests/period-hydration-now.test.ts +0 -185
  1061. package/frontend-vue/tests/period-live-pause.test.ts +0 -110
  1062. package/frontend-vue/tests/period-max-days.test.ts +0 -114
  1063. package/frontend-vue/tests/period-presets.test.ts +0 -108
  1064. package/frontend-vue/tests/period-reader-zone.test.ts +0 -137
  1065. package/frontend-vue/tests/period-relative-refresh.test.ts +0 -61
  1066. package/frontend-vue/tests/period-scope-first-fetch.test.ts +0 -377
  1067. package/frontend-vue/tests/period-selector-parity.test.ts +0 -138
  1068. package/frontend-vue/tests/period-selector-url.test.ts +0 -382
  1069. package/frontend-vue/tests/period-ssr.test.ts +0 -195
  1070. package/frontend-vue/tests/period-url-query.test.ts +0 -403
  1071. package/frontend-vue/tests/permission-preview-partial.test.ts +0 -299
  1072. package/frontend-vue/tests/permission-preview-session.test.ts +0 -69
  1073. package/frontend-vue/tests/permission-preview.test.ts +0 -196
  1074. package/frontend-vue/tests/permission-veil-stable-content.test.ts +0 -191
  1075. package/frontend-vue/tests/permissions-transfer.test.ts +0 -194
  1076. package/frontend-vue/tests/post-login-redirect.test.ts +0 -92
  1077. package/frontend-vue/tests/preferences-cookie-size.test.ts +0 -311
  1078. package/frontend-vue/tests/profile-personal-info-ssr.test.ts +0 -150
  1079. package/frontend-vue/tests/profile-preferences-summary.test.ts +0 -538
  1080. package/frontend-vue/tests/profile-security-summary.test.ts +0 -121
  1081. package/frontend-vue/tests/quick-action-intent.test.ts +0 -74
  1082. package/frontend-vue/tests/quick-actions.test.ts +0 -55
  1083. package/frontend-vue/tests/realtime-auth-recovery.test.ts +0 -146
  1084. package/frontend-vue/tests/realtime-reconnect.test.ts +0 -234
  1085. package/frontend-vue/tests/record-card.test.ts +0 -73
  1086. package/frontend-vue/tests/regional-format.test.ts +0 -134
  1087. package/frontend-vue/tests/regional-preferences.test.ts +0 -209
  1088. package/frontend-vue/tests/relation-badges.test.ts +0 -32
  1089. package/frontend-vue/tests/relation-value.test.ts +0 -39
  1090. package/frontend-vue/tests/resolve-dms-component.test.ts +0 -47
  1091. package/frontend-vue/tests/response-warning-toast.test.ts +0 -57
  1092. package/frontend-vue/tests/revealed-backup-codes.test.ts +0 -58
  1093. package/frontend-vue/tests/role-permission-tree.test.ts +0 -564
  1094. package/frontend-vue/tests/role-permissions.test.ts +0 -661
  1095. package/frontend-vue/tests/roles-name-errors.test.ts +0 -294
  1096. package/frontend-vue/tests/route-param-filter-defaults.test.ts +0 -59
  1097. package/frontend-vue/tests/route-param-occurrences.test.ts +0 -118
  1098. package/frontend-vue/tests/row-side-panel.test.ts +0 -831
  1099. package/frontend-vue/tests/save-bar.test.ts +0 -167
  1100. package/frontend-vue/tests/save-status-error.test.ts +0 -66
  1101. package/frontend-vue/tests/scroll-to-block.test.ts +0 -171
  1102. package/frontend-vue/tests/search-input.test.ts +0 -91
  1103. package/frontend-vue/tests/section-description-only.test.ts +0 -33
  1104. package/frontend-vue/tests/security-email-panel.test.ts +0 -378
  1105. package/frontend-vue/tests/security-password-modal.test.ts +0 -128
  1106. package/frontend-vue/tests/security-password-panel.test.ts +0 -267
  1107. package/frontend-vue/tests/security-sessions-load-error.test.ts +0 -125
  1108. package/frontend-vue/tests/security-status-load-error.test.ts +0 -106
  1109. package/frontend-vue/tests/selection-scope.test.ts +0 -24
  1110. package/frontend-vue/tests/server-routes-vs-pages.test.ts +0 -26
  1111. package/frontend-vue/tests/server-routes.test.ts +0 -582
  1112. package/frontend-vue/tests/session-handoff.test.ts +0 -60
  1113. package/frontend-vue/tests/settings-navigation.test.ts +0 -170
  1114. package/frontend-vue/tests/settings-reads-ssr.test.ts +0 -232
  1115. package/frontend-vue/tests/settings-search-shortcuts.test.ts +0 -208
  1116. package/frontend-vue/tests/shortcuts-aggregate.test.ts +0 -48
  1117. package/frontend-vue/tests/side-panels.test.ts +0 -477
  1118. package/frontend-vue/tests/sidebar-footer-navigation.test.ts +0 -138
  1119. package/frontend-vue/tests/sidebar-search-hint.test.ts +0 -191
  1120. package/frontend-vue/tests/sidebar-widget-position.test.ts +0 -117
  1121. package/frontend-vue/tests/sign-in-exit-history.test.ts +0 -219
  1122. package/frontend-vue/tests/signup-invitation-link.test.ts +0 -247
  1123. package/frontend-vue/tests/site-layout-categories.test.ts +0 -42
  1124. package/frontend-vue/tests/site-layout-hydration.test.ts +0 -82
  1125. package/frontend-vue/tests/site-layout-refresh.test.ts +0 -131
  1126. package/frontend-vue/tests/site-layout-rendered.test.ts +0 -103
  1127. package/frontend-vue/tests/site-layout-resync.test.ts +0 -87
  1128. package/frontend-vue/tests/sse-stream.test.ts +0 -268
  1129. package/frontend-vue/tests/ssr-guard-preload.test.ts +0 -188
  1130. package/frontend-vue/tests/stat-cell-shared.test.ts +0 -64
  1131. package/frontend-vue/tests/stat-group-detail-lines.test.ts +0 -63
  1132. package/frontend-vue/tests/string-type-parser.test.ts +0 -50
  1133. package/frontend-vue/tests/tab-fit.test.ts +0 -99
  1134. package/frontend-vue/tests/tab-url-slot.test.ts +0 -150
  1135. package/frontend-vue/tests/tab-without-component-id.test.ts +0 -51
  1136. package/frontend-vue/tests/table-actions-column-width.test.ts +0 -135
  1137. package/frontend-vue/tests/table-actions-search-label.test.ts +0 -224
  1138. package/frontend-vue/tests/table-async-data-key.test.ts +0 -33
  1139. package/frontend-vue/tests/table-cell-sublines.test.ts +0 -481
  1140. package/frontend-vue/tests/table-cell-tones.test.ts +0 -211
  1141. package/frontend-vue/tests/table-cell-wrap.test.ts +0 -61
  1142. package/frontend-vue/tests/table-clear-filters.test.ts +0 -374
  1143. package/frontend-vue/tests/table-column-visibility.test.ts +0 -20
  1144. package/frontend-vue/tests/table-data-ssr.test.ts +0 -195
  1145. package/frontend-vue/tests/table-density-menu.test.ts +0 -108
  1146. package/frontend-vue/tests/table-list-data-requests.test.ts +0 -154
  1147. package/frontend-vue/tests/table-live-hold.test.ts +0 -340
  1148. package/frontend-vue/tests/table-metric-cells.test.ts +0 -165
  1149. package/frontend-vue/tests/table-page-size-options.test.ts +0 -20
  1150. package/frontend-vue/tests/table-pills-cell.test.ts +0 -126
  1151. package/frontend-vue/tests/table-retry-loading.test.ts +0 -37
  1152. package/frontend-vue/tests/table-row-action-errors.test.ts +0 -386
  1153. package/frontend-vue/tests/table-row-action-labels.test.ts +0 -181
  1154. package/frontend-vue/tests/table-row-hover.test.ts +0 -182
  1155. package/frontend-vue/tests/table-scroll-area.test.ts +0 -37
  1156. package/frontend-vue/tests/table-source-navigation.test.ts +0 -122
  1157. package/frontend-vue/tests/table-source-period-scope.test.ts +0 -171
  1158. package/frontend-vue/tests/table-url-filters.test.ts +0 -158
  1159. package/frontend-vue/tests/table-view-bulk-actions.test.ts +0 -154
  1160. package/frontend-vue/tests/table-view-bulk-drawer.test.ts +0 -451
  1161. package/frontend-vue/tests/table-view-card-props.test.ts +0 -215
  1162. package/frontend-vue/tests/table-view-cards-reorder.test.ts +0 -234
  1163. package/frontend-vue/tests/table-view-cards-reread.test.ts +0 -77
  1164. package/frontend-vue/tests/table-view-chrome.test.ts +0 -175
  1165. package/frontend-vue/tests/table-view-display-registry.test.ts +0 -59
  1166. package/frontend-vue/tests/table-view-escape-shortcut.test.ts +0 -141
  1167. package/frontend-vue/tests/table-view-expanded-band.test.ts +0 -143
  1168. package/frontend-vue/tests/table-view-expanded-row-details.test.ts +0 -88
  1169. package/frontend-vue/tests/table-view-expanded-rows.test.ts +0 -55
  1170. package/frontend-vue/tests/table-view-form-texts.test.ts +0 -124
  1171. package/frontend-vue/tests/table-view-grouped.test.ts +0 -222
  1172. package/frontend-vue/tests/table-view-hidden-filters-page.test.ts +0 -134
  1173. package/frontend-vue/tests/table-view-pagination-modes.test.ts +0 -48
  1174. package/frontend-vue/tests/table-view-pinned-rows.test.ts +0 -128
  1175. package/frontend-vue/tests/table-view-record-link.test.ts +0 -190
  1176. package/frontend-vue/tests/table-view-refresh.test.ts +0 -67
  1177. package/frontend-vue/tests/table-view-reorder.test.ts +0 -122
  1178. package/frontend-vue/tests/table-view-selection-footer-empty.test.ts +0 -379
  1179. package/frontend-vue/tests/table-view-sortable-columns.test.ts +0 -338
  1180. package/frontend-vue/tests/table-view-sources.test.ts +0 -222
  1181. package/frontend-vue/tests/table-view-url-tab.test.ts +0 -183
  1182. package/frontend-vue/tests/table-view-views.test.ts +0 -581
  1183. package/frontend-vue/tests/tag-values.test.ts +0 -32
  1184. package/frontend-vue/tests/template-tokens.test.ts +0 -235
  1185. package/frontend-vue/tests/time-span.test.ts +0 -37
  1186. package/frontend-vue/tests/tone.test.ts +0 -26
  1187. package/frontend-vue/tests/top-list-card-actions.test.ts +0 -94
  1188. package/frontend-vue/tests/top-list-card-period-badge-ssr.test.ts +0 -212
  1189. package/frontend-vue/tests/top-list-card-period-badge.test.ts +0 -79
  1190. package/frontend-vue/tests/top-list-card-value-suffix.test.ts +0 -110
  1191. package/frontend-vue/tests/trailing-deduper.test.ts +0 -96
  1192. package/frontend-vue/tests/trend-delta-format.test.ts +0 -24
  1193. package/frontend-vue/tests/unsaved-changes.test.ts +0 -184
  1194. package/frontend-vue/tests/upload-forbidden-headers.test.ts +0 -52
  1195. package/frontend-vue/tests/url-interpolation.test.ts +0 -51
  1196. package/frontend-vue/tests/use-api-data-update.test.ts +0 -119
  1197. package/frontend-vue/tests/use-api-data.test.ts +0 -410
  1198. package/frontend-vue/tests/user-language.test.ts +0 -61
  1199. package/frontend-vue/tests/widget-label-i18n.test.ts +0 -182
  1200. package/frontend-vue/vitest.config.ts +0 -36
  1201. package/skills/dms-dev/SKILL.md +0 -119
  1202. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/Geist-Italic-Variable.woff2 +0 -0
  1203. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/Geist-Variable.woff2 +0 -0
  1204. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/GeistMono-Italic-Variable.woff2 +0 -0
  1205. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/GeistMono-Variable.woff2 +0 -0
  1206. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/LICENSE.txt +0 -0
  1207. /package/skills/{dms-dev → dms-project}/scripts/dms-dev.sh +0 -0
@@ -140,6 +140,45 @@ export function processSourceRows<T extends Record<string, unknown>>(
140
140
  };
141
141
  }
142
142
 
143
+ type SourceAnswer<T> = { results: T[]; total: number };
144
+
145
+ /** A source read some callers wait on, and what cancels it. */
146
+ interface SharedRead<T> {
147
+ answer: Promise<SourceAnswer<T>>;
148
+ controller: AbortController;
149
+ /** The callers still waiting on it. */
150
+ waiting: number;
151
+ }
152
+
153
+ /**
154
+ * The key of one read of a source: its URL and the query sent, whatever the
155
+ * order its keys were built in.
156
+ */
157
+ const sourceReadKey = (url: string, query: Query): string =>
158
+ JSON.stringify([url, Object.entries(query).sort(([a], [b]) => a.localeCompare(b))]);
159
+
160
+ /**
161
+ * Settles with `answer`, or rejects as soon as `signal` aborts, calling
162
+ * `leave` once then.
163
+ */
164
+ function awaitUnlessAborted<R>(
165
+ answer: Promise<R>,
166
+ signal: AbortSignal,
167
+ leave: () => void,
168
+ ): Promise<R> {
169
+ return new Promise((resolve, reject) => {
170
+ const abort = () => {
171
+ leave();
172
+ reject(signal.reason);
173
+ };
174
+ if (signal.aborted) return abort();
175
+ signal.addEventListener("abort", abort, { once: true });
176
+ answer.then(resolve, reject).finally(() =>
177
+ signal.removeEventListener("abort", abort),
178
+ );
179
+ });
180
+ }
181
+
143
182
  /** A page with no rows: what a source shows while its URL is unresolved. */
144
183
  function emptySourcePage<T>(query: Query): TableViewListResponse<T> {
145
184
  return {
@@ -182,6 +221,44 @@ export function useTableRows<T extends Record<string, unknown>>(
182
221
  return source.periodScope ? appendPeriodToUrl(url, periodScope.value) : url;
183
222
  });
184
223
 
224
+ // Reads of the same source with the same query, while one is in flight,
225
+ // share it: the list and the counter of a tab that filters nothing the
226
+ // route handles ask it the same thing at the same time. The request is
227
+ // cancelled once every caller waiting on it has given up.
228
+ const sharedReads = new Map<string, SharedRead<T>>();
229
+ const readSource = (
230
+ url: string,
231
+ query: Query,
232
+ signal?: AbortSignal,
233
+ ): Promise<SourceAnswer<T>> => {
234
+ const key = sourceReadKey(url, query);
235
+ let read = sharedReads.get(key);
236
+ if (!read) {
237
+ const controller = new AbortController();
238
+ const answer = api<SourceAnswer<T>>(url, {
239
+ query,
240
+ signal: controller.signal,
241
+ });
242
+ const started: SharedRead<T> = { answer, controller, waiting: 0 };
243
+ sharedReads.set(key, started);
244
+ const forget = () => {
245
+ if (sharedReads.get(key) === started) sharedReads.delete(key);
246
+ };
247
+ answer.then(forget, forget);
248
+ read = started;
249
+ }
250
+ const joined = read;
251
+ // A caller without a signal never gives up: the request stays.
252
+ joined.waiting += 1;
253
+ if (!signal) return joined.answer;
254
+ return awaitUnlessAborted(joined.answer, signal, () => {
255
+ joined.waiting -= 1;
256
+ if (joined.waiting > 0) return;
257
+ if (sharedReads.get(key) === joined) sharedReads.delete(key);
258
+ joined.controller.abort(signal.reason);
259
+ });
260
+ };
261
+
185
262
  const listFromSource = async (
186
263
  sourceConfig: TableViewSourceConfig,
187
264
  query: Query,
@@ -191,10 +268,11 @@ export function useTableRows<T extends Record<string, unknown>>(
191
268
  const url = sourceUrl.value;
192
269
  if (!url) return emptySourcePage(query);
193
270
  const { capabilities } = sourceConfig;
194
- const response = await api<{ results: T[]; total: number }>(url, {
195
- query: sourceRouteQuery(query, capabilities),
271
+ const response = await readSource(
272
+ url,
273
+ sourceRouteQuery(query, capabilities),
196
274
  signal,
197
- });
275
+ );
198
276
  if (capabilities.paginate) {
199
277
  return {
200
278
  ...response,
@@ -0,0 +1,432 @@
1
+ /**
2
+ * The block preview's contract: the tree a docs site or a chat hands
3
+ * `DmsBlockPreview`, the `?state=` parameter carrying it, the `postMessage`
4
+ * protocol of the embedded page, and the allowlist resolution that keeps the
5
+ * preview to registered blocks reading relative URLs.
6
+ */
7
+
8
+ /** A block of a preview tree, named by its registry type or component name. */
9
+ export interface PreviewNode {
10
+ /** Block registry type, e.g. `KpiCard`. Wins over `componentName`. */
11
+ type?: string;
12
+ /** Component a registered block type emits, e.g. `dms-kpi-card`. */
13
+ componentName?: string;
14
+ options?: Record<string, unknown>;
15
+ children?: PreviewChildNode[];
16
+ }
17
+
18
+ /** A child of a container block, with what a page child carries besides. */
19
+ export interface PreviewChildNode extends PreviewNode {
20
+ id?: string;
21
+ slot?: string;
22
+ colSpan?: number;
23
+ }
24
+
25
+ export type PreviewTree = PreviewNode | PreviewNode[];
26
+
27
+ export type PreviewTheme = "light" | "dark";
28
+
29
+ /** What `?state=` carries, as base64url-encoded JSON. */
30
+ export interface PreviewState {
31
+ tree: PreviewTree;
32
+ theme?: PreviewTheme;
33
+ locale?: string;
34
+ /** Pads the blocks off the frame's edges. Defaults to true. */
35
+ padding?: boolean;
36
+ /** Paints no background, so the embedding page shows through. */
37
+ transparent?: boolean;
38
+ }
39
+
40
+ /** What the preview knows of one registered block type. */
41
+ export interface PreviewBlockType {
42
+ componentName: string;
43
+ /** Options the factory sets whatever its caller passes. */
44
+ fixedOptions?: Record<string, unknown>;
45
+ /** Takes a controller class: drawn only when built from a route instead. */
46
+ needsController?: boolean;
47
+ }
48
+
49
+ export type PreviewBlockTypes = Record<string, PreviewBlockType>;
50
+
51
+ export type PreviewIssueKey =
52
+ | "unknown_block"
53
+ | "needs_backend"
54
+ | "unsafe_url"
55
+ | "unsafe_method";
56
+
57
+ /** Why a node is drawn as an inline notice instead of its block. */
58
+ export interface PreviewIssue {
59
+ key: PreviewIssueKey;
60
+ /** The block type, or the name that matched none. */
61
+ name: string;
62
+ /** The option value refused, for the `unsafe_*` issues. */
63
+ value?: string;
64
+ }
65
+
66
+ /** A node checked against the allowlist, ready to map onto a page tree. */
67
+ export interface PreviewResolvedNode {
68
+ id: string;
69
+ componentName?: string;
70
+ options: Record<string, unknown>;
71
+ children: PreviewResolvedNode[];
72
+ slot?: string;
73
+ colSpan?: number;
74
+ issue?: PreviewIssue;
75
+ }
76
+
77
+ export const PREVIEW_CHANNEL = "dms-preview";
78
+
79
+ export const PREVIEW_THEMES: readonly PreviewTheme[] = ["light", "dark"];
80
+
81
+ /** Parent → iframe: draw this tree. */
82
+ export interface PreviewRenderMessage {
83
+ channel: typeof PREVIEW_CHANNEL;
84
+ type: "render";
85
+ tree: PreviewTree;
86
+ theme?: PreviewTheme;
87
+ locale?: string;
88
+ /** Paints no background; kept from the previous state when absent. */
89
+ transparent?: boolean;
90
+ }
91
+
92
+ /** Parent → iframe: switch the color mode. */
93
+ export interface PreviewThemeMessage {
94
+ channel: typeof PREVIEW_CHANNEL;
95
+ type: "theme";
96
+ theme: PreviewTheme;
97
+ }
98
+
99
+ export type PreviewInboundMessage = PreviewRenderMessage | PreviewThemeMessage;
100
+
101
+ /** Iframe → parent: mounted, ready for `render`. */
102
+ export interface PreviewReadyMessage {
103
+ channel: typeof PREVIEW_CHANNEL;
104
+ type: "ready";
105
+ }
106
+
107
+ /** Iframe → parent: the content is now this tall, in CSS pixels. */
108
+ export interface PreviewResizeMessage {
109
+ channel: typeof PREVIEW_CHANNEL;
110
+ type: "resize";
111
+ height: number;
112
+ }
113
+
114
+ /** Iframe → parent: something could not be drawn. */
115
+ export interface PreviewErrorMessage {
116
+ channel: typeof PREVIEW_CHANNEL;
117
+ type: "error";
118
+ message: string;
119
+ }
120
+
121
+ export type PreviewOutboundMessage =
122
+ | PreviewReadyMessage
123
+ | PreviewResizeMessage
124
+ | PreviewErrorMessage;
125
+
126
+ const ROOT_ID_PREFIX = "block-";
127
+ const RELATIVE_PATH_PATTERN = /^\/(?![/\\])/;
128
+ const SAFE_METHODS = new Set(["GET", "HEAD"]);
129
+ const ROUTE_SOURCE_OPTION = "source";
130
+ const BASE64_PADDING_LENGTH = 4;
131
+
132
+ function isRecord(value: unknown): value is Record<string, unknown> {
133
+ return typeof value === "object" && value !== null && !Array.isArray(value);
134
+ }
135
+
136
+ function isOptionalString(value: unknown): boolean {
137
+ return value === undefined || typeof value === "string";
138
+ }
139
+
140
+ function isPreviewNode(value: unknown): value is PreviewNode {
141
+ if (!isRecord(value)) return false;
142
+ if (!isOptionalString(value.type)) return false;
143
+ if (!isOptionalString(value.componentName)) return false;
144
+ if (value.options !== undefined && !isRecord(value.options)) return false;
145
+ if (value.children === undefined) return true;
146
+ return Array.isArray(value.children) && value.children.every(isPreviewNode);
147
+ }
148
+
149
+ /** Whether `value` is a node or a list of nodes. */
150
+ export function isPreviewTree(value: unknown): value is PreviewTree {
151
+ return Array.isArray(value)
152
+ ? value.every(isPreviewNode)
153
+ : isPreviewNode(value);
154
+ }
155
+
156
+ export function isPreviewTheme(value: unknown): value is PreviewTheme {
157
+ return PREVIEW_THEMES.some((theme) => theme === value);
158
+ }
159
+
160
+ function isOptionalBoolean(value: unknown): boolean {
161
+ return value === undefined || typeof value === "boolean";
162
+ }
163
+
164
+ function hasValidStateExtras(value: Record<string, unknown>): boolean {
165
+ if (value.theme !== undefined && !isPreviewTheme(value.theme)) return false;
166
+ if (!isOptionalString(value.locale)) return false;
167
+ return (
168
+ isOptionalBoolean(value.padding) && isOptionalBoolean(value.transparent)
169
+ );
170
+ }
171
+
172
+ function isPreviewState(value: unknown): value is PreviewState {
173
+ return (
174
+ isRecord(value) && isPreviewTree(value.tree) && hasValidStateExtras(value)
175
+ );
176
+ }
177
+
178
+ function bytesToBinary(bytes: Uint8Array): string {
179
+ return Array.from(bytes, (byte) => String.fromCharCode(byte)).join("");
180
+ }
181
+
182
+ function binaryToBytes(binary: string): Uint8Array {
183
+ return Uint8Array.from(binary, (character) => character.charCodeAt(0));
184
+ }
185
+
186
+ /** The `?state=` value carrying `state`: base64url of its UTF-8 JSON. */
187
+ export function encodePreviewState(state: PreviewState): string {
188
+ const bytes = new TextEncoder().encode(JSON.stringify(state));
189
+ return btoa(bytesToBinary(bytes))
190
+ .replaceAll("+", "-")
191
+ .replaceAll("/", "_")
192
+ .replace(/=+$/, "");
193
+ }
194
+
195
+ /** The state a `?state=` value carries, or undefined when it is not one. */
196
+ export function decodePreviewState(param: string): PreviewState | undefined {
197
+ try {
198
+ const base64 = param.replaceAll("-", "+").replaceAll("_", "/");
199
+ const padded = base64.padEnd(
200
+ Math.ceil(base64.length / BASE64_PADDING_LENGTH) * BASE64_PADDING_LENGTH,
201
+ "=",
202
+ );
203
+ const json = new TextDecoder().decode(binaryToBytes(atob(padded)));
204
+ const state: unknown = JSON.parse(json);
205
+ return isPreviewState(state) ? state : undefined;
206
+ } catch {
207
+ return undefined;
208
+ }
209
+ }
210
+
211
+ const INBOUND_VALIDATORS: Record<
212
+ string,
213
+ (data: Record<string, unknown>) => boolean
214
+ > = {
215
+ render: (data) =>
216
+ isPreviewTree(data.tree) &&
217
+ (data.theme === undefined || isPreviewTheme(data.theme)) &&
218
+ isOptionalString(data.locale) &&
219
+ isOptionalBoolean(data.transparent),
220
+ theme: (data) => isPreviewTheme(data.theme),
221
+ };
222
+
223
+ /**
224
+ * The preview message `data` is, or undefined for anything else posted to the
225
+ * window (another channel, a malformed tree): the page ignores those.
226
+ */
227
+ export function parsePreviewMessage(
228
+ data: unknown,
229
+ ): PreviewInboundMessage | undefined {
230
+ if (!isRecord(data) || data.channel !== PREVIEW_CHANNEL) return undefined;
231
+ const isKnownType =
232
+ typeof data.type === "string" &&
233
+ Object.hasOwn(INBOUND_VALIDATORS, data.type);
234
+ const validate = isKnownType
235
+ ? INBOUND_VALIDATORS[data.type as string]
236
+ : undefined;
237
+ if (!validate?.(data)) return undefined;
238
+ return data as unknown as PreviewInboundMessage;
239
+ }
240
+
241
+ export function previewReadyMessage(): PreviewReadyMessage {
242
+ return { channel: PREVIEW_CHANNEL, type: "ready" };
243
+ }
244
+
245
+ export function previewResizeMessage(height: number): PreviewResizeMessage {
246
+ return {
247
+ channel: PREVIEW_CHANNEL,
248
+ type: "resize",
249
+ height: Math.ceil(height),
250
+ };
251
+ }
252
+
253
+ export function previewErrorMessage(message: string): PreviewErrorMessage {
254
+ return { channel: PREVIEW_CHANNEL, type: "error", message };
255
+ }
256
+
257
+ /**
258
+ * A URL a block may fetch from the preview: a path of this site. Anything
259
+ * with a scheme or a host (`https://…`, `//host/…`, `/\host`) would let an
260
+ * embedding page make the preview call out with the visitor's cookies.
261
+ */
262
+ export function isRelativePath(url: string): boolean {
263
+ return RELATIVE_PATH_PATTERN.test(url);
264
+ }
265
+
266
+ /** A method a block may load with: it reads, so loading the page changes nothing. */
267
+ export function isReadMethod(method: string): boolean {
268
+ return SAFE_METHODS.has(method.toUpperCase());
269
+ }
270
+
271
+ interface OptionRule {
272
+ issue: PreviewIssueKey;
273
+ /** Matches the option keys the rule applies to. */
274
+ key: RegExp;
275
+ isAllowed: (value: string) => boolean;
276
+ }
277
+
278
+ /**
279
+ * What a tree an embedding page hands over may not make the preview do with
280
+ * the visitor's session: call another site, or write on load (`fetchUrl`
281
+ * read with `POST`). A user action (a form's submit) stays the user's.
282
+ */
283
+ const OPTION_RULES: OptionRule[] = [
284
+ // `location` is the route a table view reads, beside its `source.fetchUrl`.
285
+ { issue: "unsafe_url", key: /(url|^location)$/i, isAllowed: isRelativePath },
286
+ { issue: "unsafe_method", key: /urlmethod$/i, isAllowed: isReadMethod },
287
+ ];
288
+
289
+ /** An option value the preview refuses, with the rule refusing it. */
290
+ export interface RefusedOption {
291
+ issue: PreviewIssueKey;
292
+ value: string;
293
+ }
294
+
295
+ function refuseEntry(key: string, entry: unknown): RefusedOption | undefined {
296
+ if (typeof entry !== "string" || entry === "") return undefined;
297
+ const rule = OPTION_RULES.find(
298
+ (candidate) => candidate.key.test(key) && !candidate.isAllowed(entry),
299
+ );
300
+ return rule ? { issue: rule.issue, value: entry } : undefined;
301
+ }
302
+
303
+ /** The first option, at any depth, an {@link OPTION_RULES} rule refuses. */
304
+ export function findRefusedOption(value: unknown): RefusedOption | undefined {
305
+ const entries: Array<[string, unknown]> = Array.isArray(value)
306
+ ? value.map((entry) => ["", entry])
307
+ : isRecord(value)
308
+ ? Object.entries(value)
309
+ : [];
310
+ for (const [key, entry] of entries) {
311
+ const refused = refuseEntry(key, entry) ?? findRefusedOption(entry);
312
+ if (refused) return refused;
313
+ }
314
+ return undefined;
315
+ }
316
+
317
+ /** Same comparison as the engine's: case, separators and `dms` prefix aside. */
318
+ function normalizeComponentName(name: string): string {
319
+ return name
320
+ .replace(/^dms[-_]?/i, "")
321
+ .replace(/[^a-z0-9]/gi, "")
322
+ .toLowerCase();
323
+ }
324
+
325
+ interface MatchedBlockType {
326
+ name: string;
327
+ blockType: PreviewBlockType;
328
+ }
329
+
330
+ function matchBlockType(
331
+ node: PreviewNode,
332
+ blockTypes: PreviewBlockTypes,
333
+ ): MatchedBlockType | undefined {
334
+ if (node.type) {
335
+ const blockType = Object.hasOwn(blockTypes, node.type)
336
+ ? blockTypes[node.type]
337
+ : undefined;
338
+ return blockType ? { name: node.type, blockType } : undefined;
339
+ }
340
+ if (!node.componentName) return undefined;
341
+ const wanted = normalizeComponentName(node.componentName);
342
+ const match = Object.entries(blockTypes).find(
343
+ ([, blockType]) =>
344
+ normalizeComponentName(blockType.componentName) === wanted,
345
+ );
346
+ return match ? { name: match[0], blockType: match[1] } : undefined;
347
+ }
348
+
349
+ /**
350
+ * Whether a block that takes a controller was built from a route instead
351
+ * (`TableView.fromSource`): it reads `source.fetchUrl`, which a preview can
352
+ * call like any other block's URL.
353
+ */
354
+ function readsRouteSource(options: Record<string, unknown>): boolean {
355
+ const source = options[ROUTE_SOURCE_OPTION];
356
+ return isRecord(source) && typeof source.fetchUrl === "string";
357
+ }
358
+
359
+ function issueFor(
360
+ node: PreviewNode,
361
+ match: MatchedBlockType | undefined,
362
+ options: Record<string, unknown>,
363
+ ): PreviewIssue | undefined {
364
+ if (!match) {
365
+ return {
366
+ key: "unknown_block",
367
+ name: node.type ?? node.componentName ?? "",
368
+ };
369
+ }
370
+ if (match.blockType.needsController && !readsRouteSource(options)) {
371
+ return { key: "needs_backend", name: match.name };
372
+ }
373
+ const refused = findRefusedOption(options);
374
+ return refused
375
+ ? { key: refused.issue, name: match.name, value: refused.value }
376
+ : undefined;
377
+ }
378
+
379
+ function resolveNode(
380
+ node: PreviewChildNode,
381
+ id: string,
382
+ blockTypes: PreviewBlockTypes,
383
+ ): PreviewResolvedNode {
384
+ const match = matchBlockType(node, blockTypes);
385
+ const options = { ...node.options, ...match?.blockType.fixedOptions };
386
+ const issue = issueFor(node, match, options);
387
+ const resolved: PreviewResolvedNode = {
388
+ id,
389
+ options: issue ? {} : options,
390
+ children: issue ? [] : resolveChildren(node.children, blockTypes),
391
+ };
392
+ if (node.slot) resolved.slot = node.slot;
393
+ if (node.colSpan !== undefined) resolved.colSpan = node.colSpan;
394
+ if (issue) resolved.issue = issue;
395
+ else resolved.componentName = match?.blockType.componentName;
396
+ return resolved;
397
+ }
398
+
399
+ function resolveChildren(
400
+ children: PreviewChildNode[] | undefined,
401
+ blockTypes: PreviewBlockTypes,
402
+ ): PreviewResolvedNode[] {
403
+ return (children ?? []).map((child, index) =>
404
+ resolveNode(child, child.id ?? String(index), blockTypes),
405
+ );
406
+ }
407
+
408
+ /**
409
+ * Checks a tree against the registered block types: each node becomes the
410
+ * component its type emits, with the factory's fixed options merged over its
411
+ * own, or carries the issue that keeps it from being drawn. Never resolves to
412
+ * a component that is not a registered block.
413
+ */
414
+ export function resolvePreviewTree(
415
+ tree: PreviewTree,
416
+ blockTypes: PreviewBlockTypes,
417
+ ): PreviewResolvedNode[] {
418
+ const roots = Array.isArray(tree) ? tree : [tree];
419
+ return roots.map((root, index) =>
420
+ resolveNode(root, `${ROOT_ID_PREFIX}${index}`, blockTypes),
421
+ );
422
+ }
423
+
424
+ /** Every issue of a resolved tree, depth first. */
425
+ export function collectPreviewIssues(
426
+ nodes: PreviewResolvedNode[],
427
+ ): PreviewIssue[] {
428
+ return nodes.flatMap((node) => [
429
+ ...(node.issue ? [node.issue] : []),
430
+ ...collectPreviewIssues(node.children),
431
+ ]);
432
+ }
@@ -0,0 +1,172 @@
1
+ <script setup lang="ts">
2
+ import { markRaw, type Component } from "vue";
3
+ import BlockPreviewIssue from "../../build/components/block-preview/BlockPreviewIssue.vue";
4
+ import { useBlockPreviewEmbed } from "../../build/composables/block-preview/useBlockPreviewEmbed";
5
+ import {
6
+ collectPreviewIssues,
7
+ decodePreviewState,
8
+ resolvePreviewTree,
9
+ type PreviewBlockTypes,
10
+ type PreviewIssue,
11
+ type PreviewResolvedNode,
12
+ type PreviewTree,
13
+ } from "../../build/utils/blockPreview";
14
+ import { childComponentId } from "../../utils/componentId";
15
+
16
+ /**
17
+ * Draws a tree of registered DMS blocks exactly as a page would.
18
+ *
19
+ * In a dashboard, hand it the tree: `<DmsBlockPreview :tree="node" />`. On
20
+ * `/dms-preview` (`embed`), it reads `?state=` and the parent window's
21
+ * `postMessage` instead, and reports back its height. There, `transparent`
22
+ * marks the root so the preview layout paints no background.
23
+ *
24
+ * Only registered block types are drawn; any other node, a block needing a
25
+ * backend resource, or one whose URL options are not relative paths of this
26
+ * site, renders an inline notice.
27
+ */
28
+ const props = withDefaults(
29
+ defineProps<{
30
+ tree?: PreviewTree;
31
+ /** The allowlist; fetched from the backend when absent. */
32
+ blockTypes?: PreviewBlockTypes;
33
+ /** Driven by `?state=` and `postMessage`, as `/dms-preview` is. */
34
+ embed?: boolean;
35
+ /** Pads the blocks off the edges; `?state=` may override it. */
36
+ padding?: boolean;
37
+ pageId?: string;
38
+ componentId?: string;
39
+ }>(),
40
+ {
41
+ tree: undefined,
42
+ blockTypes: undefined,
43
+ embed: false,
44
+ padding: false,
45
+ pageId: "dms-preview",
46
+ componentId: "preview",
47
+ },
48
+ );
49
+
50
+ const BLOCK_TYPES_ENDPOINT = "/api/block-preview/types";
51
+ const STATE_QUERY = "state";
52
+
53
+ const { t, locale, locales, setLocale } = useI18n();
54
+ const route = useDmsRoute();
55
+ const root = useTemplateRef<HTMLElement>("root");
56
+
57
+ const stateParam = route.query[STATE_QUERY];
58
+ const initialState =
59
+ props.embed && typeof stateParam === "string"
60
+ ? decodePreviewState(stateParam)
61
+ : undefined;
62
+ const isStateInvalid = props.embed && !!stateParam && !initialState;
63
+
64
+ function switchLocale(code: string): void {
65
+ const known = locales.value.some((entry) => entry.code === code);
66
+ if (known && code !== locale.value)
67
+ void setLocale(code as typeof locale.value);
68
+ }
69
+
70
+ const embed = props.embed
71
+ ? useBlockPreviewEmbed({ root, initialState, setLocale: switchLocale })
72
+ : undefined;
73
+
74
+ const fetchedBlockTypes = ref<PreviewBlockTypes>();
75
+ const blockTypes = computed(() => props.blockTypes ?? fetchedBlockTypes.value);
76
+ const tree = computed(() => (embed ? embed.tree.value : props.tree));
77
+ const revision = computed(() => embed?.revision.value ?? 0);
78
+ const isTransparent = computed(() => embed?.transparent.value ?? false);
79
+ const isPadded = computed(
80
+ () => initialState?.padding ?? (props.embed || props.padding),
81
+ );
82
+
83
+ const resolved = computed<PreviewResolvedNode[]>(() =>
84
+ tree.value && blockTypes.value
85
+ ? resolvePreviewTree(tree.value, blockTypes.value)
86
+ : [],
87
+ );
88
+
89
+ function toPageComponent(node: PreviewResolvedNode): ResolvedComponentInfo {
90
+ const component: Component | string = node.issue
91
+ ? markRaw(BlockPreviewIssue)
92
+ : (resolveDmsComponent(node.componentName) ?? "div");
93
+ return {
94
+ id: node.id,
95
+ component,
96
+ componentName: node.componentName,
97
+ options: node.issue ? { issue: node.issue } : node.options,
98
+ children: node.children.map(toPageComponent),
99
+ ...(node.slot ? { slot: node.slot } : {}),
100
+ ...(node.colSpan === undefined ? {} : { colSpan: node.colSpan }),
101
+ };
102
+ }
103
+
104
+ const components = computed(() => resolved.value.map(toPageComponent));
105
+
106
+ function describeIssue(issue: PreviewIssue): string {
107
+ return t(`dms.block_preview.${issue.key}`, {
108
+ name: issue.name,
109
+ value: issue.value ?? "",
110
+ });
111
+ }
112
+
113
+ function reportIssues(nodes: PreviewResolvedNode[]): void {
114
+ const issues = collectPreviewIssues(nodes);
115
+ if (issues.length) embed?.reportError(issues.map(describeIssue).join("\n"));
116
+ }
117
+
118
+ watch(resolved, reportIssues);
119
+
120
+ onMounted(async () => {
121
+ if (isStateInvalid) embed?.reportError(t("dms.block_preview.invalid_state"));
122
+ reportIssues(resolved.value);
123
+ // The page always hands the allowlist; fetching it is for a signed-in
124
+ // dashboard, and a public visitor would only be sent to the login page.
125
+ if (props.blockTypes || props.embed) return;
126
+ const { $authFetch } = useAuthFetch();
127
+ try {
128
+ fetchedBlockTypes.value =
129
+ await $authFetch<PreviewBlockTypes>(BLOCK_TYPES_ENDPOINT);
130
+ } catch (error: unknown) {
131
+ embed?.reportError(error instanceof Error ? error.message : String(error));
132
+ }
133
+ });
134
+ </script>
135
+
136
+ <template>
137
+ <div
138
+ ref="root"
139
+ data-dms-block-preview
140
+ :data-dms-preview-transparent="isTransparent || undefined"
141
+ :class="{ 'p-4 sm:p-6': isPadded }"
142
+ >
143
+ <UAlert
144
+ v-if="isStateInvalid"
145
+ color="error"
146
+ variant="subtle"
147
+ icon="i-ph-warning-circle"
148
+ :title="t('dms.block_preview.invalid_state')"
149
+ />
150
+ <p
151
+ v-else-if="!components.length && embed"
152
+ class="text-muted py-8 text-center text-sm"
153
+ >
154
+ {{ t("dms.block_preview.empty") }}
155
+ </p>
156
+ <div v-else :key="revision" class="dms-page-stack space-y-6">
157
+ <div
158
+ v-for="component in components"
159
+ :key="component.id"
160
+ class="empty:hidden"
161
+ data-dms-preview-block
162
+ >
163
+ <DmsRecursiveComponent
164
+ :component="component"
165
+ :page-id="pageId"
166
+ :component-id="childComponentId(componentId, component.id)"
167
+ :layout-path="component.id"
168
+ />
169
+ </div>
170
+ </div>
171
+ </div>
172
+ </template>